/* MontgomeryADUBuilders.com — shared design system
   Identity carried from prototype: Zodiak display + General Sans body,
   warm neutrals, deep teal accent, editorial spacing.
   Extended with: multi-step form, breadcrumbs, sticky mobile bar,
   author/reviewer blocks, disclosure boxes, dated-review stamps. */

:root, [data-theme="light"] {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --space-20:5rem;--space-24:6rem;--space-32:8rem;
  --color-bg:#f7f6f2;--color-surface:#f9f8f5;--color-surface-2:#fbfbf9;--color-surface-offset:#f0ece6;
  --color-surface-dynamic:#e6e1d9;--color-border:#d4d1ca;--color-divider:#ddd7cf;
  --color-text:#27241d;--color-text-muted:#69655e;--color-text-faint:#9a968f;--color-text-inverse:#fcfbf8;
  --color-primary:#0d6664;--color-primary-hover:#094f4d;--color-primary-highlight:#d2e1df;
  --color-success:#437a22;--color-warning:#964219;--color-orange:#da7101;
  --radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.9rem;--radius-xl:1.25rem;--radius-full:9999px;
  --shadow-sm:0 1px 2px rgba(26,20,10,.06);--shadow-md:0 10px 30px rgba(26,20,10,.08);--shadow-lg:0 24px 60px rgba(26,20,10,.12);
  --content-narrow:720px;--content-default:1120px;--content-wide:1280px;
  --font-display:'Zodiak',Georgia,serif;--font-body:'General Sans',Inter,sans-serif;
  --transition-interactive:180ms cubic-bezier(0.16,1,0.3,1);
}
[data-theme="dark"] {
  --color-bg:#161513;--color-surface:#1c1b18;--color-surface-2:#23211e;--color-surface-offset:#201d1a;
  --color-surface-dynamic:#2d2a26;--color-border:#393631;--color-divider:#2a2824;
  --color-text:#ece7df;--color-text-muted:#b3ada4;--color-text-faint:#7e786f;--color-text-inverse:#201d18;
  --color-primary:#66aba6;--color-primary-hover:#8bc1bc;--color-primary-highlight:#223231;
  --shadow-sm:0 1px 2px rgba(0,0,0,.25);--shadow-md:0 10px 30px rgba(0,0,0,.3);--shadow-lg:0 24px 60px rgba(0,0,0,.4);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth;scroll-padding-top:6rem}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg)}
img,svg{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
ul{list-style:none}
p{max-width:72ch;text-wrap:pretty}
h1,h2,h3{text-wrap:balance;line-height:1.08}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}

.skip-link{position:absolute;left:var(--space-4);top:-10rem;background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-3) var(--space-4);border-radius:var(--radius-full);z-index:100}
.skip-link:focus{top:var(--space-4)}
.container{width:min(calc(100% - 2rem),var(--content-default));margin-inline:auto}
.container-narrow{width:min(calc(100% - 2rem),var(--content-narrow));margin-inline:auto}
.section{padding-block:clamp(var(--space-12),7vw,var(--space-24))}
.eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}
.muted{color:var(--color-text-muted)}
.tiny{font-size:var(--text-xs);color:var(--color-text-muted)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:44px;padding:.95rem 1.2rem;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;transition:all var(--transition-interactive);cursor:pointer;border:none}
.btn-primary{background:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px)}
.btn-secondary{background:transparent;border:1px solid color-mix(in oklab,var(--color-text) 14%,transparent);color:var(--color-text)}
.btn-secondary:hover{background:var(--color-surface-2)}
.btn-block{width:100%}
.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;background:var(--color-primary-highlight);color:var(--color-primary)}

.site-header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--color-bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid color-mix(in oklab,var(--color-text) 10%,transparent)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0}
.brand{display:flex;align-items:center;gap:.9rem;min-width:0}
.brand-mark{width:42px;height:42px;color:var(--color-primary);padding:.55rem;border-radius:14px;background:var(--color-primary-highlight)}
.brand-copy strong{display:block;font-size:var(--text-sm);line-height:1.1}
.brand-copy span{display:block;font-size:var(--text-xs);color:var(--color-text-muted)}
.nav{display:flex;align-items:center;gap:var(--space-5)}
.nav-links{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted)}
.nav-links a:hover{color:var(--color-text)}
.theme-toggle{width:44px;height:44px;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--color-surface);border:1px solid color-mix(in oklab,var(--color-text) 10%,transparent);cursor:pointer}

.breadcrumb{padding-top:var(--space-6)}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:.5rem;font-size:var(--text-xs);color:var(--color-text-muted)}
.breadcrumb li{display:flex;align-items:center;gap:.5rem}
.breadcrumb li:not(:last-child)::after{content:'/';color:var(--color-text-faint)}
.breadcrumb a:hover{color:var(--color-primary)}

.hero{padding-top:clamp(var(--space-10),6vw,var(--space-16));position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--space-10);align-items:end}
.hero-copy h1{font-family:var(--font-display);font-size:clamp(2.8rem,4vw,5.4rem);margin-top:var(--space-4)}
.hero-copy p{font-size:var(--text-lg);color:var(--color-text-muted);margin-top:var(--space-5)}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
.hero-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-8)}
.stat{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid color-mix(in oklab,var(--color-text) 8%,transparent)}
.stat strong{display:block;font-size:var(--text-lg);font-weight:700}
.stat span{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.2rem}
.hero-card{position:relative;background:linear-gradient(180deg,color-mix(in oklab,var(--color-primary) 8%,var(--color-surface)),var(--color-surface));border:1px solid color-mix(in oklab,var(--color-primary) 18%,transparent);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-lg)}
.hero-visual{aspect-ratio:4/4.8;border-radius:calc(var(--radius-xl) - var(--space-3));overflow:hidden;margin-top:var(--space-4);background:var(--color-surface-dynamic)}
.hero-visual svg{width:100%;height:100%}

.page-hero{padding-top:var(--space-8)}
.page-hero h1{font-family:var(--font-display);font-size:var(--text-2xl);margin-top:var(--space-3);max-width:20ch}
.page-hero .lede{font-size:var(--text-lg);color:var(--color-text-muted);margin-top:var(--space-4);max-width:60ch}

.grid-3,.grid-2,.grid-4{display:grid;gap:var(--space-4)}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--color-surface);border:1px solid color-mix(in oklab,var(--color-text) 10%,transparent);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm)}
.card h3{font-size:var(--text-lg);margin-bottom:var(--space-2)}
.card p{color:var(--color-text-muted)}
.card-link{transition:transform var(--transition-interactive),box-shadow var(--transition-interactive)}
.card-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.card-link .arrow{color:var(--color-primary);font-weight:600;font-size:var(--text-sm);margin-top:var(--space-3);display:inline-block}

.section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-6)}
.section-head h2{font-family:var(--font-display);font-size:var(--text-2xl);max-width:18ch}
.section-head p{color:var(--color-text-muted)}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-8);align-items:start}

.prose{max-width:68ch}
.prose h2{font-family:var(--font-display);font-size:var(--text-xl);margin-top:var(--space-10);margin-bottom:var(--space-4)}
.prose h3{font-size:var(--text-lg);margin-top:var(--space-6);margin-bottom:var(--space-3)}
.prose p{color:var(--color-text-muted);margin-bottom:var(--space-4)}
.prose ul.bullets{margin:var(--space-4) 0;padding-left:0}
.prose ul.bullets li{position:relative;padding-left:1.6rem;margin-bottom:var(--space-3);color:var(--color-text-muted)}
.prose ul.bullets li::before{content:'';position:absolute;left:.3rem;top:.65rem;width:.4rem;height:.4rem;border-radius:50%;background:var(--color-primary)}
.prose strong{color:var(--color-text)}
.prose a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}

.steps li{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--color-divider)}
.steps li:first-child{border-top:0;padding-top:0}
.step-no{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:var(--color-primary-highlight);color:var(--color-primary);font-size:var(--text-xs);font-weight:700}
.quote{padding:var(--space-6);border-radius:var(--radius-xl);background:var(--color-surface-offset);border:1px solid color-mix(in oklab,var(--color-text) 8%,transparent)}
.quote p{font-family:var(--font-display);font-size:var(--text-xl);max-width:22ch}
.kpi{padding:var(--space-5);border-radius:var(--radius-xl);background:var(--color-surface-2);border:1px solid color-mix(in oklab,var(--color-text) 10%,transparent)}
.kpi strong{display:block;font-size:clamp(1.8rem,3vw,2.8rem);font-variant-numeric:tabular-nums}
.kpi span{color:var(--color-text-muted);font-size:var(--text-sm)}
.checklist li{padding:var(--space-3) 0;border-top:1px solid var(--color-divider);color:var(--color-text-muted)}
.checklist li:first-child{border-top:0;padding-top:0}
.checklist strong{color:var(--color-text)}

.faq details{padding:var(--space-4) 0;border-top:1px solid var(--color-divider)}
.faq summary{cursor:pointer;font-weight:600;list-style:none;padding-right:2rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:0;top:0;color:var(--color-text-muted)}
.faq details[open] summary::after{content:'\2013'}
.faq p{color:var(--color-text-muted);padding-top:var(--space-3)}

/* Disclosure + dated-review boxes — the trust/regulatory layer */
.notice{border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid;margin-block:var(--space-6)}
.notice-review{background:color-mix(in oklab,var(--color-primary) 6%,var(--color-surface));border-color:color-mix(in oklab,var(--color-primary) 22%,transparent)}
.notice-review .stamp{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary)}
.notice-review p{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}
.notice-caution{background:color-mix(in oklab,var(--color-warning) 7%,var(--color-surface));border-color:color-mix(in oklab,var(--color-warning) 25%,transparent)}
.notice-caution strong{color:var(--color-warning)}
.notice-caution p{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2)}

/* Author / reviewer trust block */
.byline{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface-offset);border:1px solid color-mix(in oklab,var(--color-text) 8%,transparent);margin-block:var(--space-8)}
.byline-avatar{width:52px;height:52px;border-radius:50%;background:var(--color-primary-highlight);color:var(--color-primary);display:grid;place-items:center;font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;flex-shrink:0}
.byline-body strong{display:block;font-size:var(--text-sm)}
.byline-body span{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.15rem}

.cta-band{padding:var(--space-8);border-radius:calc(var(--radius-xl) + 4px);background:linear-gradient(135deg,color-mix(in oklab,var(--color-primary) 9%,var(--color-surface)),var(--color-surface));border:1px solid color-mix(in oklab,var(--color-primary) 16%,transparent);display:grid;grid-template-columns:1fr auto;gap:var(--space-6);align-items:center}

/* Multi-step form */
.form-shell{background:var(--color-surface);border:1px solid color-mix(in oklab,var(--color-text) 10%,transparent);border-radius:var(--radius-xl);padding:clamp(var(--space-5),4vw,var(--space-8));box-shadow:var(--shadow-md)}
.form-progress{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6)}
.form-progress .dot{height:.4rem;flex:1;border-radius:var(--radius-full);background:var(--color-surface-dynamic);transition:background var(--transition-interactive)}
.form-progress .dot.active{background:var(--color-primary)}
.form-progress .dot.done{background:color-mix(in oklab,var(--color-primary) 55%,var(--color-surface-dynamic))}
.form-step-label{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600;margin-bottom:var(--space-2)}
.form-step h2{font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-5)}
.field{margin-bottom:var(--space-4)}
.field label{display:block;font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-2)}
.field .hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.35rem;display:block}
.field input[type=text],.field input[type=email],.field input[type=tel],.field select,.field textarea{
  width:100%;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);
  background:var(--color-surface-2);transition:border-color var(--transition-interactive)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);outline:none}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-2)}
.choice{position:relative;cursor:pointer}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.choice span{display:block;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-sm);text-align:center;transition:all var(--transition-interactive)}
.choice input:checked + span{border-color:var(--color-primary);background:var(--color-primary-highlight);color:var(--color-primary);font-weight:600}
.choice input:focus-visible + span{outline:2px solid var(--color-primary);outline-offset:2px}
.form-nav{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6)}
.form-error{color:var(--color-warning);font-size:var(--text-sm);margin-top:var(--space-3);min-height:1.2em}
.consent{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-offset);border:1px solid var(--color-border)}
.consent input{margin-top:.25rem;width:1.1rem;height:1.1rem;flex-shrink:0}
.consent label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:400}
.form-success{text-align:center;padding:var(--space-8) var(--space-4)}
.form-success .check{width:64px;height:64px;margin:0 auto var(--space-5);border-radius:50%;background:color-mix(in oklab,var(--color-success) 15%,var(--color-surface));color:var(--color-success);display:grid;place-items:center}
.form-success h2{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-3)}
.form-success p{color:var(--color-text-muted);max-width:46ch;margin-inline:auto}
.branch-note{font-size:var(--text-sm);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in oklab,var(--color-warning) 8%,var(--color-surface));border:1px solid color-mix(in oklab,var(--color-warning) 22%,transparent);color:var(--color-text-muted);margin-top:var(--space-3)}

/* Sticky mobile action bar */
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;gap:var(--space-2);padding:var(--space-3);background:color-mix(in oklab,var(--color-bg) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--color-divider)}
.sticky-bar .btn{flex:1}

.footer{padding:var(--space-10) 0 var(--space-16);border-top:1px solid var(--color-divider);margin-top:var(--space-8)}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--space-8)}
.footer-links{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}
.footer-links a{font-size:var(--text-sm);color:var(--color-text-muted)}
.footer-links a:hover{color:var(--color-primary)}

@media (max-width:980px){
  .hero-grid,.split,.footer-grid,.cta-band,.grid-3,.grid-4,.grid-2{grid-template-columns:1fr}
  .nav-links{display:none}
  .hero-meta{grid-template-columns:1fr}
  .section-head{align-items:start;flex-direction:column}
  .sticky-bar{display:flex}
  body{padding-bottom:5rem}
}
@media (max-width:640px){
  .header-inner{align-items:center}
  .hero-copy h1{font-size:clamp(2.5rem,12vw,4rem)}
  .hero-copy p{font-size:var(--text-base)}
  .cta-band{padding:var(--space-6)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
