:root{
  --paper:#f5f3ee; --paper-2:#ebe8e0; --ink:#1c1c1a; --soft:#55534d; --rule:#cfcbc1;
  --green:#1e4a38; --green-ink:#ffffff;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif; --sans:"Public Sans","Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#161714; --paper-2:#1e1f1b; --ink:#e9e6de; --soft:#a8a59c; --rule:#3a3a34; --green:#8cc3a6; --green-ink:#10140f; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#161714; --paper-2:#1e1f1b; --ink:#e9e6de; --soft:#a8a59c; --rule:#3a3a34; --green:#8cc3a6; --green-ink:#10140f; color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16.5px;line-height:1.6}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
img{display:block;max-width:100%}
.w{max-width:1140px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;line-height:1.15;letter-spacing:-.01em}
p{margin:0 0 1em}

/* masthead */
.mast{border-bottom:1px solid var(--ink)}
.mast .w{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 32px;flex-wrap:wrap;padding-top:26px;padding-bottom:14px}
.brand{text-decoration:none;display:block;line-height:1}
.brand b{display:block;font-family:var(--serif);font-weight:600;font-size:27px;letter-spacing:.005em}
.brand span{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--soft);margin-top:6px}
.mast nav{display:flex;gap:4px 26px;flex-wrap:wrap;font-size:15px}
.mast nav a{text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.mast nav a:hover{border-bottom-color:var(--rule)}
.mast nav a[aria-current="page"]{border-bottom-color:var(--green);color:var(--green)}

/* home opening */
.open{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;padding-block:64px 56px;align-items:end}
.open h1{font-size:clamp(34px,4.6vw,58px)}
.open .sub{font-family:var(--serif);font-size:20px;color:var(--soft);margin:22px 0 0;max-width:30em;line-height:1.5}
.open figure{margin:0}
.open figure img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.open figcaption{font-size:13px;color:var(--soft);margin-top:8px}

.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}
.facts div{padding:16px 18px 18px 0}
.facts div+div{padding-left:18px;border-left:1px solid var(--rule)}
.facts dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.facts dd{margin:4px 0 0;font-weight:600}

/* sections */
.s{padding-block:72px}
.s.tint{background:var(--paper-2)}
.side{display:grid;grid-template-columns:240px 1fr;gap:48px}
.side > h2{font-size:26px}
.side > h2 small{display:block;font-family:var(--sans);font-size:13px;color:var(--soft);font-weight:400;letter-spacing:0;margin-top:10px;line-height:1.5}
.prose{max-width:66ch}
.prose p{color:var(--ink)}
.big{font-family:var(--serif);font-size:22px;line-height:1.5}

/* service ledger */
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.ledger li{display:grid;grid-template-columns:44px 1fr 1.25fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--rule)}
.ledger .n{font-family:var(--serif);color:var(--soft);font-size:15px;padding-top:3px}
.ledger h3{font-size:21px}
.ledger p{margin:0;color:var(--soft)}
.ledger .eg{grid-column:3;font-size:14.5px;color:var(--soft);margin-top:6px}
a.arrow{font-weight:600;color:var(--green);text-decoration:none;border-bottom:1px solid currentColor}

/* typical requests */
.reqs{columns:2;column-gap:48px;margin:0;padding:0;list-style:none}
.reqs li{break-inside:avoid;padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--rule)}
.reqs q{font-family:var(--serif);font-size:19px;quotes:"“" "”"}
.reqs span{display:block;color:var(--soft);font-size:15px;margin-top:6px}

/* inner page heads */
.phead{padding-block:56px 36px;border-bottom:1px solid var(--rule)}
.phead h1{font-size:clamp(34px,4vw,50px)}
.phead p{font-family:var(--serif);font-size:20px;color:var(--soft);margin:16px 0 0;max-width:36em}

.pic{margin:0 auto}
.pic img{width:100%;aspect-ratio:16/7;object-fit:cover;filter:grayscale(1) contrast(1.05)}

table.reg{width:100%;border-collapse:collapse;font-size:15.5px}
.reg th,.reg td{text-align:left;vertical-align:top;padding:11px 0;border-bottom:1px solid var(--rule)}
.reg th{font-weight:400;color:var(--soft);width:38%;padding-right:20px}
.reg td{font-weight:600}
.reg tr:first-child th,.reg tr:first-child td{border-top:1px solid var(--ink)}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.plain{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.plain li{padding:11px 0;border-bottom:1px solid var(--rule)}
.plain li span{color:var(--soft);font-size:14.5px;margin-left:6px}
h3.lbl{font-family:var(--sans);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);font-weight:600;margin-bottom:12px}

.terms{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--ink)}
.terms div{padding:20px 22px 8px 0}
.terms div+div{padding-left:22px;border-left:1px solid var(--rule)}
.terms h3{font-size:20px;margin-bottom:8px}
.terms p{color:var(--soft);font-size:15.5px}

.svc-full{border-top:1px solid var(--ink)}
.svc-full article{display:grid;grid-template-columns:44px 1fr 1fr;gap:24px;padding:30px 0;border-bottom:1px solid var(--rule)}
.svc-full h2{font-size:24px;margin-bottom:10px}
.svc-full p{color:var(--soft);margin:0}
.svc-full ul{margin:0;padding-left:18px}
.svc-full li{margin:0 0 4px}

/* contact */
.addr{font-family:var(--serif);font-size:21px;line-height:1.5;margin:0 0 26px}
form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
form .full{grid-column:1/-1}
label{display:grid;gap:6px;font-size:14px;font-weight:600}
input,textarea,select{width:100%;font:16px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);padding:8px 0;border-radius:0}
select{background:var(--paper)}
textarea{min-height:120px;resize:vertical;border:1px solid var(--ink);padding:10px}
button{font:600 15px var(--sans);background:var(--green);color:var(--green-ink);border:0;padding:12px 24px;cursor:pointer}
button:hover{filter:brightness(1.1)}
.note{color:var(--green);font-size:14.5px;margin:0}

.closing{border-top:1px solid var(--ink);padding-block:40px}
.closing p{font-family:var(--serif);font-size:24px;margin:0;max-width:30em}

footer{border-top:1px solid var(--ink);font-size:14px;color:var(--soft)}
footer .w{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px;padding-block:36px 44px}
footer b{color:var(--ink);font-weight:600;display:block;margin-bottom:6px}
footer a{text-decoration:none}
footer a:hover{text-decoration:underline}

@media (max-width:900px){
  .open,.side,.cols2{grid-template-columns:1fr;gap:28px}
  .open{padding-block:40px}
  .open figure img{aspect-ratio:3/2}
  .facts{grid-template-columns:1fr 1fr}
  .facts div:nth-child(3){padding-left:0;border-left:0}
  .facts div:nth-child(n+3){border-top:1px solid var(--rule)}
  .ledger li{grid-template-columns:36px 1fr;gap:6px 14px}
  .ledger li p,.ledger .eg{grid-column:2}
  .reqs{columns:1}
  .terms{grid-template-columns:1fr}
  .terms div+div{padding-left:0;border-left:0;border-top:1px solid var(--rule)}
  .svc-full article{grid-template-columns:36px 1fr;gap:10px 14px}
  .svc-full article > ul{grid-column:2}
  footer .w{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .s{padding-block:52px}
  form{grid-template-columns:1fr}
  .reg th{width:42%}
  .brand b{font-size:24px}
}
