:root{
  --ivory: #E7E4DC;
  --ivory-warm: #EFEDE5;
  --ink: #24302B;
  --moss: #57694A;
  --moss-dark: #3B4A32;
  --mist: #D3CFC2;
  --taupe: #A69574;
  --quartz: #F5F3EC;
  --max: 1120px;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--moss-dark);}
:focus-visible{outline:2px solid var(--moss); outline-offset:3px;}

h1,h2,h3{font-family:var(--serif); font-weight:600; color:var(--ink); margin:0;}
p{margin:0 0 16px;}

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

/* Header (shared) */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(231,228,220,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--taupe);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px; gap:20px; max-width:var(--max); margin:0 auto;
}
.wordmark{font-family:var(--serif); font-size:22px; font-weight:600; text-decoration:none; color:var(--ink); white-space:nowrap;}
.nav{display:flex; gap:26px;}
.nav a{text-decoration:none; font-size:14.5px; font-weight:500; color:var(--ink); opacity:.82;}
.nav a:hover{opacity:1; color:var(--moss-dark);}
.phone-pill{
  border:1px solid var(--moss-dark); color:var(--moss-dark); border-radius:999px;
  padding:8px 18px; font-size:14px; font-weight:600; text-decoration:none; white-space:nowrap;
}
.phone-pill:hover{background:var(--moss-dark); color:var(--ivory-warm);}
.nav-toggle{display:none; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink);}

/* Matches the breakpoint in index.html — the nav grew past what fits
   inline below this width, and items were wrapping onto three lines. */
@media (max-width:940px){
  .nav{
    position:absolute; top:100%; left:0; right:0;
    background:var(--ivory-warm);
    flex-direction:column; gap:0;
    border-bottom:1px solid var(--taupe);
    max-height:0; overflow:hidden;
  }
  .nav.open{max-height:400px;}
  .nav a{padding:14px 28px; border-top:1px solid var(--mist);}
  .nav-toggle{display:block;}
}

/* Article layout */
.article-wrap{max-width:700px; margin:0 auto; padding:56px 28px 80px;}
.breadcrumb{font-size:13px; opacity:.65; margin-bottom:22px;}
.breadcrumb a{color:var(--moss-dark);}
.eyebrow{
  font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--moss-dark); font-weight:600; margin-bottom:12px;
}
h1{font-size:clamp(28px,4vw,40px); line-height:1.15; margin-bottom:14px;}
.meta{font-size:13px; opacity:.6; margin-bottom:30px;}

.quick-answer{
  border-left:4px solid var(--moss-dark);
  background:var(--ivory-warm);
  border-radius:6px;
  padding:20px 24px;
  margin:0 0 36px;
}
.qa-label{
  font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--moss-dark); font-weight:600; margin-bottom:8px;
}
.quick-answer p{margin-bottom:0; font-size:16.5px;}

.article-wrap h2{font-size:23px; margin-top:38px; margin-bottom:12px;}
.article-wrap p{font-size:16.5px; opacity:.92;}
.article-wrap ul, .article-wrap ol{padding-left:22px; margin-bottom:18px;}
.article-wrap li{font-size:16.5px; margin-bottom:8px; opacity:.92;}

details{border-bottom:1px solid var(--mist); padding:16px 2px;}
summary{font-weight:600; font-size:15.5px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;}
summary::-webkit-details-marker{display:none;}
summary::after{content:'+'; font-size:18px; color:var(--moss-dark); font-weight:400;}
details[open] summary::after{content:'\2013';}
details p{margin-top:10px; font-size:15px; opacity:.88;}

.article-cta{
  background:var(--moss-dark); color:var(--quartz);
  border-radius:10px; padding:30px 28px; margin:44px 0 36px;
  text-align:center;
}
.article-cta p{color:var(--quartz); opacity:.92; margin-bottom:18px; font-size:16px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:13px 24px; border-radius:6px; font-weight:600; font-size:15px;
  text-decoration:none; border:1px solid transparent;
}
.article-cta .btn{background:var(--quartz); color:var(--moss-dark);}
.article-cta .btn:hover{background:var(--ivory);}

.related{border-top:1px solid var(--mist); padding-top:26px; margin-top:20px;}
.related ul{list-style:none; padding:0; margin:0;}
.related li{margin-bottom:10px; font-size:15.5px;}

footer{padding:32px 28px; text-align:center; font-size:13px; opacity:.75;}

/* Contact form */
.contact-wrap{max-width:560px; margin:0 auto; padding:56px 28px 80px;}
.form-field{margin-bottom:20px;}
.form-field label{display:block; font-size:14px; font-weight:600; margin-bottom:7px;}
.form-field .optional{font-weight:400; opacity:.6;}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%; padding:12px 14px; font-family:var(--sans); font-size:15.5px;
  color:var(--ink); background:var(--quartz); border:1px solid var(--mist);
  border-radius:6px; box-sizing:border-box;
}
.form-field textarea{resize:vertical; min-height:110px;}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:2px solid var(--moss); outline-offset:1px; border-color:var(--moss-dark);
}
.form-submit{
  width:100%; background:var(--moss-dark); color:var(--quartz);
  border:none; cursor:pointer; margin-top:6px;
}
.form-submit:hover{background:var(--moss);}
.form-note{font-size:13px; opacity:.65; margin-top:14px; text-align:center;}
.contact-alt{
  border-top:1px solid var(--mist); margin-top:40px; padding-top:28px;
  text-align:center; font-size:15px; opacity:.85;
}
.contact-alt a{color:var(--moss-dark); font-weight:600;}
.honeypot-field{position:absolute; left:-9999px; top:-9999px;}
.confirm-wrap{max-width:560px; margin:0 auto; padding:100px 28px 120px; text-align:center;}
.confirm-wrap h1{font-size:clamp(28px,4vw,38px); margin-bottom:18px;}
.confirm-wrap p{font-size:16.5px; opacity:.85; margin-bottom:32px;}

/* Hub page */
.hub-hero{max-width:760px; margin:0 auto; text-align:center; padding:64px 28px 20px;}
.hub-hero h1{font-size:clamp(30px,4.4vw,44px); margin-bottom:16px;}
.hub-hero p{font-size:17px; opacity:.85; max-width:56ch; margin:0 auto;}

.article-grid{
  max-width:var(--max); margin:0 auto; padding:40px 28px 80px;
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
.article-card{
  background:var(--ivory-warm); border:1px solid var(--mist); border-radius:10px;
  padding:26px 24px; text-decoration:none; color:var(--ink);
  display:flex; flex-direction:column;
}
.article-card .cat{font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--moss-dark); font-weight:600; margin-bottom:10px;}
.article-card h2{font-size:19px; margin-bottom:10px; line-height:1.25;}
.article-card p{font-size:14px; opacity:.8; margin-bottom:0;}
.article-card:hover{border-color:var(--moss-dark);}
@media (max-width:900px){ .article-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .article-grid{grid-template-columns:1fr;} }
