/* =====================================================================
   EVERCREST — site.css
   Page-type styles layered on evercrest.css: dropdown nav, breadcrumb,
   interior hero, stats/credibility bands, prose, what-we-do, includes
   row, FAQ, CTA band, insights index, team, contact.
   ===================================================================== */

/* ---- Nav dropdowns ---- */
.nav-links li.has-menu{ position:relative; }
.nav-links .menu-trigger{ display:inline-flex; align-items:center; gap:.35rem; background:none; border:0; font-family:var(--sans); font-size:.95rem; font-weight:500; color:var(--slate); cursor:pointer; padding-block:.4rem; position:relative; }
.nav-links .menu-trigger .chev{ width:11px; height:11px; transition:transform .2s ease; }
.nav-links .menu-trigger::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.nav-links li.has-menu:hover .menu-trigger::after,
.nav-links li.has-menu.open .menu-trigger::after{ transform:scaleX(1); }
.nav-links li.has-menu:hover .chev,
.nav-links li.has-menu.open .chev{ transform:rotate(180deg); }

.menu{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(-6px);
  background:var(--paper); border:1px solid var(--hairline); border-radius:10px;
  box-shadow:0 16px 40px -18px rgba(56,69,79,.4);
  min-width:300px; padding:.6rem; opacity:0; visibility:hidden; transition:transform .18s ease; z-index:60;
}
.nav-links li.has-menu:hover .menu,
.nav-links li.has-menu:focus-within .menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.nav-links li.has-menu.open .menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.menu a{ display:block; padding:.7rem .8rem; border-radius:7px; font-size:.95rem; font-weight:500; color:var(--slate-deep); transition:.14s ease; }
.menu a .d{ display:block; font-weight:400; font-size:.82rem; color:var(--ash-soft); margin-top:.1rem; }
.menu a:hover{ background:var(--sand); }
.menu a:hover .d{ color:var(--ash); }

/* mobile nav groups */
.m-group > .m-head{ width:100%; display:flex; justify-content:space-between; align-items:center; background:none; border:0; padding:16px 2px; font-family:var(--sans); font-weight:500; font-size:1.05rem; color:var(--slate); border-bottom:1px solid var(--hairline); }
.m-group .m-sub{ display:none; padding:4px 2px 10px; }
.m-group.open .m-sub{ display:block; }
.m-group .m-sub a{ padding:11px 2px 11px 16px !important; font-size:.98rem !important; color:var(--ash) !important; border-bottom:1px solid var(--hairline-2); }
.m-group .m-head .chev{ width:13px; height:13px; transition:transform .2s; }
.m-group.open .m-head .chev{ transform:rotate(180deg); }

/* ---- Breadcrumb ---- */
.crumb{ display:flex; gap:.5rem; align-items:center; font-size:.85rem; color:var(--ash-soft); padding-top:28px; flex-wrap:wrap; }
.crumb a:hover{ color:var(--slate); }
.crumb .sep{ color:var(--hairline); }

/* ---- Interior hero ---- */
.ihero{ padding-block:clamp(34px,4.5vw,52px) clamp(22px,3vw,38px); }
/* Tighten the gap between an interior hero and the section directly below it */
.ihero + .section{ padding-top:clamp(12px,1.8vw,24px); }
.ihero-grid{ display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(32px,5vw,64px); align-items:center; }
.ihero h1{ margin-bottom:1.3rem; }
.ihero .lede{ max-width:34em; }
.ihero-actions{ margin-top:2rem; display:flex; gap:14px; flex-wrap:wrap; }
.ihero-aside{ background:var(--paper); border:1px solid var(--hairline); border-radius:var(--r-card); padding:2rem; }
.ihero-aside h4{ font-family:var(--sans); font-weight:600; font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; color:var(--steel); margin-bottom:1.2rem; }
.aside-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem; }
.aside-list li{ display:flex; gap:.8rem; align-items:flex-start; font-size:1rem; line-height:1.45; }
.aside-list svg{ flex:none; margin-top:3px; color:var(--accent); }
@media (max-width:860px){ .ihero-grid{ grid-template-columns:1fr; } }

/* ---- Stats / credibility band ---- */
.cred{ display:grid; grid-template-columns:repeat(var(--cols,4),1fr); gap:0; }
.cred .c{ padding:clamp(24px,3.5vw,40px) clamp(18px,2.5vw,32px); border-left:1px solid var(--hairline); }
.cred .c:first-child{ border-left:0; }
.cred .num{ font-family:var(--serif); font-size:clamp(1.8rem,3.2vw,2.6rem); color:var(--slate-deep); line-height:1.05; letter-spacing:-.02em; }
.cred .num .unit{ color:var(--steel); }
.cred .lab{ margin-top:.6rem; font-size:.9rem; color:var(--ash-soft); line-height:1.4; }
@media (max-width:680px){ .cred{ grid-template-columns:1fr 1fr; } .cred .c{ border-left:0; border-top:1px solid var(--hairline); padding:24px 0; } .cred .c:nth-child(2n){ padding-left:24px; border-left:1px solid var(--hairline); } .cred .c:nth-child(1),.cred .c:nth-child(2){ border-top:0; } }

/* credibility statement band */
.credline{ font-family:var(--serif); font-size:clamp(1.3rem,2.2vw,1.7rem); line-height:1.4; color:var(--slate-deep); max-width:32em; }
.credline .ph{ background:#FBF1D9; border-bottom:2px solid #C9A227; padding:0 .15em; border-radius:2px; }

/* ---- Prose body ---- */
.prose{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,5vw,72px); }
.prose .stick{ position:sticky; top:96px; align-self:start; }
.prose h2{ margin-bottom:1.2rem; }
.prose p{ margin-bottom:1.2rem; font-size:1.08rem; }
.prose p:last-child{ margin-bottom:0; }
.pull{ border-left:3px solid var(--accent); padding:.2rem 0 .2rem 1.4rem; margin:2rem 0; font-family:var(--serif); font-size:1.5rem; line-height:1.35; color:var(--slate-deep); }
@media (max-width:760px){ .prose{ grid-template-columns:1fr; } .prose .stick{ position:static; } }

/* ---- What we do / what's included grid ---- */
.wwd{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.wwd .card{ display:flex; flex-direction:column; gap:.6rem; }
.wwd .ic{ margin-bottom:.6rem; }
.wwd h4{ font-size:1.16rem; }
.wwd p{ font-size:.97rem; color:var(--ash-soft); }
@media (max-width:860px){ .wwd{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .wwd{ grid-template-columns:1fr; } }

/* ---- Who this includes row ---- */
.includes{ display:flex; flex-wrap:wrap; gap:12px; }
.includes .chip{ background:var(--paper); border:1px solid var(--hairline); border-radius:999px; padding:.6rem 1.1rem; font-size:.95rem; font-weight:500; color:var(--slate-deep); }

/* ---- FAQ ---- */
.faq{ max-width:820px; margin-inline:auto; }
.qa{ border-bottom:1px solid var(--hairline); }
.qa summary{ list-style:none; cursor:pointer; padding:1.5rem 0; display:flex; justify-content:space-between; gap:1.5rem; align-items:center; font-family:var(--serif); font-size:1.28rem; color:var(--slate-deep); }
.qa summary::-webkit-details-marker{ display:none; }
.qa .pm{ flex:none; width:22px; height:22px; transition:.2s; color:var(--accent); }
.qa[open] .pm{ transform:rotate(45deg); }
.qa .ans{ padding:0 0 1.6rem; max-width:66ch; color:var(--ash); font-size:1.05rem; line-height:1.6; }

/* ---- CTA band ---- */
.cta-band{ display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:center; }
.cta-band .actions{ display:flex; gap:14px; flex-wrap:wrap; justify-content:flex-end; }
@media (max-width:760px){ .cta-band{ grid-template-columns:1fr; } .cta-band .actions{ justify-content:flex-start; } }

/* ---- Insights index ---- */
.ins-list{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--hairline); }
.ins-row{ display:grid; grid-template-columns:170px 1fr auto; gap:32px; align-items:center; padding:2rem 0; border-bottom:1px solid var(--hairline); transition:.15s; }
.ins-row:hover{ background:var(--paper); }
.ins-row .cat{ font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; font-weight:600; color:var(--steel); }
.ins-row .date{ font-size:.85rem; color:var(--ash-soft); margin-top:.3rem; }
.ins-row h3{ font-size:1.5rem; margin-bottom:.4rem; }
.ins-row p{ color:var(--ash-soft); font-size:.98rem; max-width:60ch; }
.ins-row .go{ color:var(--accent); }
@media (max-width:760px){ .ins-row{ grid-template-columns:1fr; gap:.6rem; } .ins-row .go{ display:none; } }

/* ---- Team ---- */
.team-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.bio{ display:grid; grid-template-columns:160px 1fr; gap:28px; }
.bio .photo{ aspect-ratio:4/5; border-radius:var(--r-card); background:repeating-linear-gradient(135deg,#EEF2F6,#EEF2F6 10px,#E7EDF2 10px,#E7EDF2 20px); border:1px solid var(--hairline); display:grid; place-items:center; }
.bio .photo span{ font-family:var(--sans); font-size:.7rem; letter-spacing:.08em; color:var(--ash-soft); text-transform:uppercase; text-align:center; padding:0 10px; }
.bio h3{ font-size:1.4rem; margin-bottom:.2rem; }
.bio .role{ font-size:.9rem; color:var(--steel); font-weight:600; letter-spacing:.04em; margin-bottom:.9rem; }
.bio p{ font-size:1rem; color:var(--ash); }
.bio .ln{ margin-top:1rem; }
@media (max-width:860px){ .team-grid{ grid-template-columns:1fr; } }
@media (max-width:480px){ .bio{ grid-template-columns:1fr; } .bio .photo{ max-width:200px; } }

/* ---- Contact ---- */
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(36px,6vw,80px); align-items:start; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:.85rem; font-weight:500; color:var(--slate-deep); margin-bottom:.4rem; }
.field input, .field textarea{ width:100%; padding:.8rem .95rem; border:1px solid var(--hairline); border-radius:var(--r-btn); font-family:var(--sans); font-size:1rem; color:var(--ash); background:#fff; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--steel); box-shadow:0 0 0 3px rgba(101,141,173,.15); }
.contact-info{ background:var(--paper); border:1px solid var(--hairline); border-radius:var(--r-card); padding:2rem; }
.contact-info dt{ font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; color:var(--steel); font-weight:600; margin-bottom:.3rem; }
.contact-info dd{ margin:0 0 1.4rem; font-size:1.05rem; color:var(--slate-deep); }
.contact-info dd:last-child{ margin-bottom:0; }
@media (max-width:760px){ .contact-grid{ grid-template-columns:1fr; } }

/* page intro header (insights/team/contact) */
.page-intro{ padding-block:clamp(40px,6vw,72px) 0; }
.page-intro h1{ margin:.7rem 0 1rem; }
.page-intro .lede{ max-width:46em; }

/* ---- Article (insight post) ---- */
.article{ max-width:720px; }
.article-hero{ padding-block:clamp(36px,5vw,56px) 0; }
.article-cat{ font-family:var(--sans); font-weight:600; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 1rem; }
.article-hero h1{ font-size:clamp(2.1rem,4vw,3rem); line-height:1.12; }
.article-body{ padding-block:clamp(28px,4vw,40px) var(--sec-y); }
.article-body .lead{ font-size:1.28rem; line-height:1.6; color:var(--slate-deep); margin-bottom:1.6rem; }
.article-body p{ font-size:1.1rem; line-height:1.75; color:var(--ash); margin-bottom:1.4rem; }
.article-body h2{ font-family:var(--serif); font-weight:400; font-size:1.5rem; line-height:1.25; color:var(--slate-deep); margin:2.6rem 0 1rem; }
.article-back{ display:inline-flex; align-items:center; gap:.45rem; font-size:.9rem; font-weight:500; color:var(--ash-soft); margin-bottom:1.4rem; }
.article-back:hover{ color:var(--slate); }
.article-back svg{ width:16px; height:16px; }

/* insights — topic groups */
.ins-group{ border-top:1px solid var(--hairline); padding-top:2rem; margin-top:2.6rem; }
.ins-group:first-of-type{ margin-top:0; }
.ins-group > h2{ font-size:1.05rem; font-family:var(--sans); font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--steel); margin-bottom:1.4rem; }

/* ---- Legal pages ---- */
.legal{ max-width:760px; }
.legal .updated{ font-size:.85rem; color:var(--ash-soft); margin-top:.6rem; }
.legal-body{ padding-block:clamp(28px,4vw,44px) var(--sec-y); }
.legal-body p, .legal-body li{ font-size:1rem; line-height:1.7; color:var(--ash); margin:0 0 1.1rem; }
.legal-body h2{ font-size:1.3rem; margin:2.4rem 0 1rem; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body .preamble{ font-size:.95rem; letter-spacing:.01em; }
.legal-body ul{ padding-left:1.2rem; margin:0 0 1.1rem; }
.legal-body ul li{ margin-bottom:.7rem; }
.legal-body a{ color:var(--accent); word-break:break-word; }
.legal-body a:hover{ text-decoration:underline; }
.legal-body strong{ color:var(--slate-deep); }

/* placeholder flag (shared) */
.ph{ background:#FBF1D9; border-bottom:2px solid #C9A227; padding:0 .2em; border-radius:2px 2px 0 0; color:#6B5410; }
