@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&family=Inter:wght@400;500;600&display=swap');

:root{
  --ink:#16243B;
  --paper:#FAF9F5;
  --paper-alt:#F1EFE7;
  --emerald:#1F5C4D;
  --emerald-dark:#123F34;
  --brass:#A47B3D;
  --line:#DAD5C6;
  --text:#262A2E;
  --text-muted:#5B6169;
  --serif:'Source Serif 4', Georgia, serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw:1080px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--emerald); text-decoration:none;}
a:hover{text-decoration:underline;}
a:focus-visible, button:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}

h1,h2,h3{
  font-family:var(--serif);
  color:var(--ink);
  font-weight:600;
  line-height:1.15;
  margin:0 0 .5em;
}

p{margin:0 0 1em; max-width:64ch;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

/* ---------- Header ---------- */
header.site{
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:sticky; top:0; z-index:20;
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 0;
  gap:24px;
}
.wordmark{
  font-family:var(--serif);
  font-size:1.28rem;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.01em;
  white-space:nowrap;
}
.wordmark span{color:var(--emerald);}
nav.links{display:flex; align-items:center; gap:28px; flex-wrap:wrap;}
nav.links a{color:var(--text); font-size:.95rem;}
nav.links a:hover{color:var(--emerald); text-decoration:none; border-bottom:1px solid var(--emerald);}

.lang-toggle{
  display:inline-flex; border:1px solid var(--line); border-radius:3px; overflow:hidden;
}
.lang-toggle button{
  font-family:var(--sans); font-size:.85rem; font-weight:500; color:var(--text-muted);
  background:transparent; border:none; padding:6px 12px; cursor:pointer;
}
.lang-toggle button[aria-pressed="true"]{background:var(--ink); color:var(--paper);}
.lang-toggle button:not([aria-pressed="true"]):hover{background:var(--paper-alt); color:var(--text);}

/* ---------- Hero ---------- */
.hero{padding:88px 0 56px;}
.hero h1{
  font-size:clamp(2.2rem, 4.6vw, 3.4rem);
  max-width:16ch;
  opacity:0; transform:translateY(10px);
  animation:rise .7s ease-out forwards;
}
.hero p.lede{
  font-size:1.15rem; color:var(--text-muted); max-width:46ch;
  opacity:0; transform:translateY(10px);
  animation:rise .7s ease-out .12s forwards;
}
@keyframes rise{to{opacity:1; transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){
  .hero h1, .hero p.lede{animation:none; opacity:1; transform:none;}
}

.cta-row{display:flex; gap:16px; margin:28px 0 48px; flex-wrap:wrap;}
.btn{
  display:inline-block; font-family:var(--sans); font-weight:500; font-size:.98rem;
  padding:13px 26px; border-radius:3px; border:1px solid transparent; cursor:pointer;
}
.btn-primary{background:var(--emerald); color:#fff;}
.btn-primary:hover{background:var(--emerald-dark); text-decoration:none;}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:#fff; text-decoration:none;}

/* Ledger stat strip */
.ledger{border-top:1px solid var(--line); display:flex; flex-wrap:wrap;}
.ledger .row{
  flex:1 1 160px; padding:20px 24px 20px 0; border-right:1px solid var(--line);
}
.ledger .row:last-child{border-right:none;}
.ledger .figure{font-family:var(--serif); font-size:1.9rem; color:var(--ink); font-weight:600;}
.ledger .label{color:var(--text-muted); font-size:.92rem; margin-top:2px;}

/* ---------- Section generic ---------- */
section{padding:64px 0;}
.section-alt{background:var(--paper-alt);}
.section-head{max-width:56ch; margin-bottom:36px;}
.section-head .eyebrow{
  color:var(--brass); font-family:var(--serif); font-style:italic; font-size:1.02rem; margin-bottom:6px; display:block;
}

/* Services as ledger list */
.service-list{border-top:1px solid var(--line);}
.service-row{
  display:grid; grid-template-columns:220px 1fr; gap:24px;
  padding:26px 0; border-bottom:1px solid var(--line);
}
.service-row h3{font-size:1.15rem; margin:0;}
.service-row p{margin:0; color:var(--text-muted); max-width:52ch;}
@media (max-width:640px){
  .service-row{grid-template-columns:1fr; gap:6px;}
}

/* About */
.about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start;}
@media (max-width:760px){.about-grid{grid-template-columns:1fr;}}
.principles{list-style:none; margin:0; padding:0; border-top:1px solid var(--line);}
.principles li{padding:16px 0; border-bottom:1px solid var(--line); color:var(--text-muted);}
.principles li strong{color:var(--ink); font-family:var(--serif); font-weight:600; display:block; margin-bottom:2px;}

/* Contact */
.contact-panel{
  border:1px solid var(--line); background:var(--paper); padding:40px; border-radius:3px;
}
.contact-panel h2{margin-bottom:.3em;}
.contact-list{list-style:none; padding:0; margin:24px 0 0; display:grid; gap:14px;}
.contact-list a{color:var(--ink); font-weight:500;}
.contact-list .k{color:var(--text-muted); font-size:.88rem; display:block;}
.optin-form{border-top:1px solid var(--line); margin-top:30px; padding-top:26px;}
.optin-form h3{font-size:1.25rem; margin-bottom:.35em;}
.optin-form > p{font-size:.94rem; color:var(--text-muted);}
.field-label{display:block; font-size:.92rem; font-weight:600; margin:18px 0 7px;}
.optin-form input[type="tel"]{width:100%; max-width:440px; min-height:46px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--text); font:inherit; padding:10px 12px;}
.consent-option{display:flex; align-items:flex-start; gap:10px; margin-top:18px; font-size:.88rem; line-height:1.5;}
.consent-option input{flex:0 0 auto; width:18px; height:18px; margin:2px 0 0; accent-color:var(--emerald);}
.consent-option a{text-decoration:underline;}
.required-consent{margin-top:14px;}
.optin-form .form-note{font-size:.82rem; margin:18px 0;}
.optin-form button{font:inherit;}

/* ---------- Footer ---------- */
footer.site{border-top:1px solid var(--line); padding:36px 0; margin-top:20px;}
.footer-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.footer-links{display:flex; gap:22px; flex-wrap:wrap;}
.footer-links a{color:var(--text-muted); font-size:.9rem;}
.footer-links a:hover{color:var(--emerald);}
.copyright{color:var(--text-muted); font-size:.85rem;}

/* ---------- Legal pages ---------- */
.legal{padding:64px 0 96px;}
.legal h1{font-size:2.1rem;}
.legal .updated{color:var(--text-muted); font-size:.9rem; margin-bottom:36px;}
.legal h2{font-family:var(--serif); font-size:1.3rem; margin-top:2em;}
.legal p, .legal li{color:var(--text); max-width:70ch;}
.legal ul{padding-left:1.2em;}
.back-link{display:inline-block; margin-bottom:28px; font-size:.92rem;}
