:root{
  --paper:#FAF8F3;
  --ink:#243029;
  --ink-soft:#51604F;
  --pine:#2E5A45;
  --pine-deep:#1E3F30;
  --sage:#E9EDE2;
  --sand:#F2ECDE;
  --sun:#DD7440;
  --sun-ink:#A84C1C;
  --sun-soft:#F4C9A8;
  --line:#DCD8CB;
  --display:"Bricolage Grotesque",Georgia,serif;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:1.0625rem;
  line-height:1.65;
}
img{max-width:100%;display:block}
a{color:var(--pine)}
h1,h2,h3{font-family:var(--display);line-height:1.15;text-wrap:balance;font-weight:640}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.eyebrow{
  font-family:var(--display);font-size:.78rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--sun-ink);
  display:flex;align-items:center;gap:.6em;margin-bottom:14px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--sun);border-radius:2px}
.btn{
  display:inline-flex;align-items:center;gap:.55em;
  font-family:var(--display);font-weight:600;font-size:1rem;
  padding:.8em 1.5em;border-radius:999px;text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.btn-solid{background:var(--pine);color:#FCFBF7;box-shadow:0 1px 0 var(--pine-deep);border:0;cursor:pointer}
.btn-solid:hover{background:var(--pine-deep)}
.btn-ghost{color:var(--pine);border:1.5px solid var(--pine)}
.btn-ghost:hover{background:var(--sage)}

/* page header */
.page-head{background:#FCFBF7;border-bottom:1px solid var(--line);padding:18px 0}
.page-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand-name{font-family:var(--display);font-weight:700;font-size:1.3rem;display:block;line-height:1.1}
.brand-sub{font-size:.78rem;color:var(--ink-soft);display:block;letter-spacing:.02em}
.page-nav{display:flex;gap:22px;flex-wrap:wrap}
.page-nav a{
  font-family:var(--display);font-weight:600;font-size:.9rem;
  color:var(--ink-soft);text-decoration:none;
}
.page-nav a:hover,.page-nav a[aria-current]{color:var(--pine)}

/* document body */
main.doc{padding:56px 0 76px}
.doc h1{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:12px}
.doc .lead{color:var(--ink-soft);max-width:44em;margin-bottom:10px}
.doc .updated{color:var(--ink-soft);font-size:.88rem;margin-bottom:30px}
.doc h2{font-size:1.28rem;margin:36px 0 10px}
.doc p,.doc li{max-width:46em}
.doc p{margin-bottom:14px}
.doc ul{margin:0 0 16px 1.25em}
.doc li{margin-bottom:8px}
.doc dt{font-family:var(--display);font-weight:600;font-size:.95rem;margin-top:14px}
.doc dd{margin:0 0 6px 0;max-width:46em}
.callout{
  background:var(--sage);border:1px solid var(--line);border-radius:18px;
  padding:20px 24px;margin:22px 0;max-width:48em;
}
.callout p:last-child{margin-bottom:0}

/* contact layout */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.info{display:grid;gap:14px;margin-top:26px}
.info a{color:var(--pine);text-decoration:none;border-bottom:1px solid var(--sun-soft)}
.info a:hover{border-bottom-color:var(--sun)}
.info-row{display:flex;gap:14px;align-items:flex-start}
.info-row svg{flex:none;margin-top:5px;color:var(--sun)}
.info-row b{font-family:var(--display);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;display:block;color:var(--ink-soft);font-weight:600}

/* form */
form{
  background:#FCFBF7;border:1px solid var(--line);border-radius:22px;padding:32px;
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
}
form label{font-family:var(--display);font-weight:600;font-size:.88rem;display:grid;gap:7px}
form label.full{grid-column:1/-1}
form input,form textarea{
  font-family:var(--serif);font-size:1rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:.7em .9em;width:100%;
}
form input:focus,form textarea:focus{outline:2px solid var(--pine);border-color:var(--pine)}
form textarea{resize:vertical;min-height:120px}
form .btn{justify-self:start;grid-column:1/-1}
.form-note{grid-column:1/-1;font-size:.88rem;color:var(--ink-soft)}
.optional{font-weight:400;color:var(--ink-soft);font-size:.82rem}
label.consent{
  grid-column:1/-1;display:flex;gap:14px;align-items:flex-start;
  background:var(--sand);border:1px solid var(--line);border-radius:16px;
  padding:18px 20px;cursor:pointer;
}
label.consent input[type=checkbox]{
  width:22px;height:22px;flex:none;margin-top:3px;padding:0;
  accent-color:var(--pine);cursor:pointer;
}
label.consent input[type=checkbox]:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
label.consent .consent-text{
  font-family:var(--serif);font-weight:400;font-size:.95rem;line-height:1.55;color:var(--ink);
}
label.consent a{color:var(--pine)}

/* footer */
footer{background:var(--pine-deep);color:#C4D0BF;padding:40px 0}
footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer a{color:#EFF2EA;text-decoration:none}
footer a:hover{text-decoration:underline}
footer small{font-size:.85rem}

.tel-img{height:1.05em;width:auto;display:inline-block;vertical-align:-0.18em}
.tel-img-sm{height:1.15em;vertical-align:-0.25em}

@media (max-width:820px){.contact-grid{grid-template-columns:1fr;gap:44px}}
@media (max-width:560px){form{grid-template-columns:1fr;padding:24px}main.doc{padding:40px 0 56px}}
@media (prefers-reduced-motion:reduce){.btn{transition:none}}
