:root{
  --ink:#10151F;
  --ink-soft:#4B5563;
  --paper:#F1F2F4;
  --paper-alt:#E7E9ED;
  --surface:#FFFFFF;
  --dark:#0F1420;
  --dark-surface:#161D2B;
  --dark-text:#F1F2F4;
  --dark-text-soft:#9AA3B2;
  --border:#D8DBE0;
  --border-dark:#232B3A;
  --accent:#E8A33D;
  --accent-hover:#CF8A28;
  --accent-soft:#FBEBD0;
  --signal-green:#34B27B;
  --error:#C2432F;
  --connector:#98A2B3;
  --connector-dark:#3A4356;

  --font-display:'Space Grotesk',system-ui,sans-serif;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;

  --container:1280px;
  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:32px;
  --space-5:48px; --space-6:64px; --space-7:96px; --space-8:128px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.14;margin:0 0 var(--space-2);letter-spacing:-0.012em;}
p{margin:0 0 var(--space-2);color:var(--ink-soft);}
a{color:inherit;}
img,svg{max-width:100%;display:block;}
button{font-family:var(--font-body);}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--space-3);}
@media(max-width:640px){.container{padding:0 var(--space-2);}}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

.eyebrow{font-family:var(--font-mono);font-size:12.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--accent-hover);display:flex;align-items:center;gap:8px;margin-bottom:var(--space-2);}
.eyebrow::before{content:'';width:6px;height:6px;border-radius:2px;background:var(--accent);flex-shrink:0;}
.section-dark .eyebrow{color:var(--accent);}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;padding:13px 22px;border-radius:9px;border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--accent);color:#1A1102;box-shadow:0 1px 2px rgba(16,21,31,.06);}
.btn-primary:hover{background:var(--accent-hover);}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--border);}
.btn-secondary:hover{border-color:var(--ink);}
.section-dark .btn-secondary{color:var(--dark-text);border-color:var(--border-dark);}
.section-dark .btn-secondary:hover{border-color:var(--dark-text-soft);}
.btn:focus-visible{outline:2px solid var(--accent-hover);outline-offset:2px;}

/* nav */
header.site-nav{position:sticky;top:0;z-index:100;background:rgba(241,242,244,0.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:16px var(--space-3);max-width:var(--container);margin:0 auto;}
.logo{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-0.01em;display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);}
.logo .mark{width:20px;height:20px;flex-shrink:0;}
.nav-links{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:14.5px;font-weight:500;}
.nav-links a{text-decoration:none;color:var(--ink-soft);}
.nav-links a:hover{color:var(--ink);}
.nav-cta{display:flex;align-items:center;gap:14px;}
.nav-cta .btn{padding:10px 18px;font-size:14px;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:4px;}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;}
@media(max-width:900px){.nav-links{display:none;}.nav-cta .btn-secondary{display:none;}.nav-toggle{display:block;}}

section{padding:var(--space-8) 0;}
@media(max-width:900px){section{padding:var(--space-6) 0;}}
.section-dark{background:var(--dark);color:var(--dark-text);}
.section-dark p{color:var(--dark-text-soft);}
.section-dark h2,.section-dark h3{color:var(--dark-text);}
.section-alt{background:var(--paper-alt);}

/* --- HERO --- */
.hero{position:relative;padding-top:var(--space-7);padding-bottom:var(--space-7);overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:var(--space-6);align-items:center;position:relative;z-index:1;}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:var(--space-5);}}
.hero h1{font-size:clamp(32px,4.2vw,52px);max-width:16ch;}
.hero-sub{font-size:18px;max-width:48ch;margin-bottom:var(--space-3);}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:var(--space-4);}
.hero-audience-tags{display:flex;gap:8px;flex-wrap:wrap;}
.tag-pill{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.02em;padding:6px 11px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--ink-soft);}
.hero-visual{position:relative;}
.hero-visual-label{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px;text-align:right;}

.diagram-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:var(--space-3);box-shadow:0 2px 4px rgba(16,21,31,.05), 0 32px 64px -28px rgba(16,21,31,.28);position:relative;overflow:hidden;}
.section-dark .diagram-card{background:var(--dark-surface);border-color:var(--border-dark);box-shadow:0 24px 60px -20px rgba(0,0,0,.5);}
.hero-viz-mobile{display:none;}
@media(max-width:760px){.hero-viz-desktop{display:none;}.hero-viz-mobile{display:block;}}

.flow-dot{fill:var(--accent);}
@media(prefers-reduced-motion:reduce){.flow-dot{display:none;}}
.node-pulse{animation:pulse 2.6s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.5;}}
@media(prefers-reduced-motion:reduce){.node-pulse{animation:none;}}

/* --- editorial split --- */
.split{display:grid;grid-template-columns:0.85fr 1.15fr;gap:var(--space-6);align-items:start;}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:var(--space-4);}}
.split h2{font-size:clamp(26px,3vw,38px);max-width:14ch;}
.split-body{font-size:16.5px;max-width:52ch;}

.fragment-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--space-3);}
.fragment-chip{font-size:13.5px;font-weight:500;padding:9px 14px;border-radius:8px;background:var(--surface);border:1px solid var(--border);color:var(--ink-soft);box-shadow:0 1px 2px rgba(16,21,31,.04);}

/* --- system flow --- */
.system-flow{display:flex;gap:0;align-items:stretch;overflow-x:auto;padding-bottom:8px;}
@media(max-width:900px){.system-flow{flex-direction:column;gap:12px;overflow:visible;}}
.flow-step{flex:1;min-width:150px;background:var(--dark-surface);border:1px solid var(--border-dark);border-radius:14px;padding:var(--space-3) var(--space-2);transition:transform .15s ease,border-color .15s ease;}
.flow-step:hover{transform:translateY(-3px);border-color:var(--accent);}
.flow-step .num{font-family:var(--font-mono);font-size:12px;color:var(--accent);margin-bottom:6px;display:block;}
.flow-step h4{font-family:var(--font-display);font-size:16.5px;margin-bottom:4px;color:var(--dark-text);}
.flow-step p{font-size:13.5px;color:var(--dark-text-soft);margin:0;}
.flow-connector-h{width:34px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
@media(max-width:900px){.flow-connector-h{display:none;}}

/* --- integration + workflow (merged) --- */
.integration-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-4);}
@media(max-width:760px){.integration-grid{grid-template-columns:1fr;}}
.integration-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:var(--space-3);box-shadow:0 1px 2px rgba(16,21,31,.04);}
.integration-panel .label{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:var(--space-2);display:block;}
.workflow-divider{display:flex;align-items:center;gap:14px;margin:var(--space-5) 0 var(--space-3);}
.workflow-divider::before,.workflow-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.workflow-divider span{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);white-space:nowrap;}
.pipeline{display:flex;align-items:center;gap:0;overflow-x:auto;padding:var(--space-2) 0;}
.pipe-node{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px;width:112px;text-align:center;}
.pipe-dot{width:42px;height:42px;border-radius:10px;background:var(--surface);border:1.5px solid var(--accent);color:var(--accent-hover);background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;}
.pipe-label{font-size:12.5px;font-weight:500;color:var(--ink);}
.pipe-arrow{flex-shrink:0;width:28px;color:var(--connector);}
@media(max-width:760px){.pipeline{flex-direction:column;align-items:flex-start;}.pipe-arrow{transform:rotate(90deg);margin-left:11px;}.pipe-node{flex-direction:row;width:auto;text-align:left;}}

/* --- capability grid --- */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-top:var(--space-4);}
@media(max-width:900px){.cap-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.cap-grid{grid-template-columns:1fr;}}
.cap-cell{background:var(--surface);padding:var(--space-4) var(--space-3);transition:background .15s ease;}
.cap-cell:hover{background:#FCFCFD;}
.cap-cell .tag{font-family:var(--font-mono);font-size:11.5px;color:var(--accent-hover);letter-spacing:.04em;}
.cap-cell h3{font-size:18.5px;margin:6px 0 8px;}
.cap-cell p{font-size:14.5px;margin:0;}

/* --- packages --- */
.package-track{display:flex;align-items:stretch;gap:var(--space-2);margin-top:var(--space-5);}
@media(max-width:980px){.package-track{flex-direction:column;}}
.package-arrow{display:flex;align-items:center;justify-content:center;color:var(--connector);flex-shrink:0;width:28px;}
@media(max-width:980px){.package-arrow{width:auto;height:24px;transform:rotate(90deg);align-self:flex-start;margin-left:24px;}}
.package-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;position:relative;transition:transform .15s ease,box-shadow .15s ease;}
.package-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px -24px rgba(16,21,31,.25);}
.package-card.popular{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
.popular-flag{position:absolute;top:-12px;left:24px;background:var(--accent);color:#1A1102;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;padding:4px 10px;border-radius:5px;font-weight:600;}
.package-stage{font-family:var(--font-mono);font-size:11.5px;color:var(--accent-hover);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px;}
.package-card h3{font-size:21px;margin-bottom:6px;}
.package-outcome{font-size:14.5px;color:var(--ink-soft);margin-bottom:var(--space-3);}
.package-list{list-style:none;padding:0;margin:0 0 var(--space-3);font-size:13.5px;color:var(--ink-soft);flex:1;}
.package-list li{padding:6px 0;border-top:1px solid var(--border);display:flex;gap:8px;}
.package-list li:first-child{border-top:none;}
.package-list li::before{content:'—';color:var(--accent-hover);flex-shrink:0;}
.package-list li.conditional{color:#8B93A1;font-style:italic;}
.custom-card{background:var(--dark-surface);border-color:var(--border-dark);color:var(--dark-text);}
.custom-card p,.custom-card .package-outcome{color:var(--dark-text-soft);}
.custom-card .package-list li{border-color:var(--border-dark);}
.stage-chain{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:0;}
.stage-chain .step{font-size:13px;font-weight:500;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 14px;color:var(--ink);}
.custom-card .stage-chain .step{background:var(--dark);border-color:var(--border-dark);color:var(--dark-text);}
.stage-chain .arrow{color:var(--connector);opacity:.7;}

/* --- responsibility --- */
.resp-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-4);align-items:center;margin-top:var(--space-5);}
@media(max-width:900px){.resp-grid{grid-template-columns:1fr;gap:var(--space-3);}}
.resp-col{display:flex;flex-direction:column;gap:10px;}
.resp-item{background:var(--dark-surface);border:1px solid var(--border-dark);border-radius:9px;padding:12px 14px;font-size:14px;display:flex;align-items:center;justify-content:space-between;}
.resp-item .issue{font-family:var(--font-mono);font-size:11.5px;color:#D8724F;}
.resp-hub{background:var(--accent);color:#1A1102;border-radius:16px;padding:var(--space-4) var(--space-3);text-align:center;min-width:180px;}
.resp-hub h4{font-family:var(--font-display);font-size:17px;margin-bottom:4px;}
.resp-hub p{color:#4A3110;font-size:12.5px;margin:0;}
.resp-arrows{display:flex;flex-direction:column;justify-content:center;color:var(--connector-dark);}
@media(max-width:900px){.resp-arrows{display:none;}}

/* --- care --- */
.care-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
@media(max-width:860px){.care-tiers{grid-template-columns:1fr;}}
.care-tier{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:var(--space-3);transition:transform .15s ease;}
.care-tier:hover{transform:translateY(-3px);}
.care-tier h4{font-size:17px;margin-bottom:6px;}
.care-tier p{font-size:14px;margin:0;}

/* --- agency teaser --- */
.agency-band{display:grid;grid-template-columns:1fr auto;gap:var(--space-4);align-items:center;}
@media(max-width:760px){.agency-band{grid-template-columns:1fr;}}

/* --- process --- */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-top:var(--space-4);}
@media(max-width:860px){.process-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.process-grid{grid-template-columns:1fr;}}
.process-step{padding-top:var(--space-2);border-top:2px solid var(--ink);}
.process-step .pnum{font-family:var(--font-mono);color:var(--accent-hover);font-size:13px;}
.process-step h4{font-size:17px;margin:6px 0;}
.process-step p{font-size:14px;margin:0;}

/* --- case studies (component kept, hidden by default) --- */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.case-card{background:var(--surface);border:1px dashed var(--border);border-radius:12px;padding:var(--space-3);}
.case-card .ph-badge{font-family:var(--font-mono);font-size:11px;color:var(--accent-hover);border:1px solid var(--accent);border-radius:5px;padding:3px 8px;display:inline-block;margin-bottom:10px;}
.case-card dt{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--ink-soft);margin-top:10px;letter-spacing:.04em;}
.case-card dd{margin:2px 0 0;font-size:13.5px;color:var(--ink);}

/* --- faq --- */
.faq-item{border-bottom:1px solid var(--border);}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:20px 4px;font-family:var(--font-body);font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq-q .plus{font-family:var(--font-mono);font-size:20px;color:var(--accent-hover);transition:transform .2s;flex-shrink:0;}
.faq-item[open] .plus{transform:rotate(45deg);}
.faq-a{padding:0 4px 20px;font-size:15px;color:var(--ink-soft);max-width:68ch;}
.faq-item summary{list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}

/* --- final cta --- */
.final-cta{text-align:center;}
.final-cta h2{font-size:clamp(28px,4vw,44px);max-width:18ch;margin:0 auto var(--space-2);}
.final-cta .hero-ctas{justify-content:center;}

/* footer */
footer{background:var(--dark);color:var(--dark-text-soft);padding:var(--space-6) 0 var(--space-4);font-size:13.5px;}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:var(--space-4);}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-grid h5{font-family:var(--font-mono);font-size:12px;color:var(--dark-text);letter-spacing:.05em;text-transform:uppercase;margin-bottom:12px;}
.footer-grid ul{list-style:none;padding:0;margin:0;}
.footer-grid li{margin-bottom:8px;}
.footer-grid a,.footer-grid button.link-btn{text-decoration:none;color:var(--dark-text-soft);background:none;border:none;padding:0;font-size:13.5px;cursor:pointer;font-family:var(--font-body);text-align:left;}
.footer-grid a:hover,.footer-grid button.link-btn:hover{color:var(--dark-text);}
.footer-bottom{border-top:1px solid var(--border-dark);margin-top:var(--space-5);padding-top:var(--space-3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

/* mobile nav drawer */
.mobile-drawer{position:fixed;inset:0;background:var(--dark);color:var(--dark-text);z-index:200;transform:translateX(100%);transition:transform .25s ease;padding:var(--space-3);display:flex;flex-direction:column;}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer ul{list-style:none;padding:0;margin:var(--space-4) 0;display:flex;flex-direction:column;gap:20px;font-size:20px;font-family:var(--font-display);}
.mobile-drawer a{text-decoration:none;color:var(--dark-text);}
.mobile-close{align-self:flex-end;background:none;border:none;color:var(--dark-text);font-size:28px;cursor:pointer;}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* sticky mobile CTA */
.mobile-cta-bar{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:10px 14px;z-index:90;display:none;box-shadow:0 -4px 16px rgba(0,0,0,.06);}
.mobile-cta-bar .btn{width:100%;justify-content:center;padding:12px;}
@media(max-width:640px){.mobile-cta-bar{display:block;}body{padding-bottom:64px;}}

/* ================= MODALS / FORMS ================= */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,20,32,.62);z-index:300;display:none;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto;}
.modal-backdrop.open{display:flex;}
.modal{background:var(--surface);border-radius:18px;max-width:640px;width:100%;padding:var(--space-4);position:relative;box-shadow:0 32px 80px -20px rgba(16,21,31,.4);margin:var(--space-5) 0;}
@media(max-width:640px){.modal{padding:var(--space-3);border-radius:14px;margin:var(--space-2) 0;}}
.modal-close{position:absolute;top:16px;right:16px;background:var(--paper-alt);border:none;width:34px;height:34px;border-radius:50%;font-size:18px;cursor:pointer;line-height:1;}
.modal-close:hover{background:var(--border);}
.modal-eyebrow{font-family:var(--font-mono);font-size:11.5px;color:var(--accent-hover);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;}
.modal h3{font-size:23px;margin-bottom:6px;max-width:22ch;}
.modal-context{display:none;font-family:var(--font-mono);font-size:12px;color:var(--accent-hover);background:var(--accent-soft);padding:6px 10px;border-radius:6px;margin-bottom:var(--space-2);}
.modal-sub{font-size:14.5px;margin-bottom:var(--space-3);}
.required-note{font-size:12px;color:var(--ink-soft);margin-bottom:var(--space-3);}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);}
@media(max-width:520px){.form-row{grid-template-columns:1fr;}}
.form-field{margin-bottom:var(--space-2);}
.form-field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;color:var(--ink);}
.form-field .optional{font-weight:400;color:var(--ink-soft);}
.form-field input[type=text],.form-field input[type=email],.form-field input[type=url],.form-field textarea,.form-field select{width:100%;padding:11px 13px;border:1.5px solid var(--border);border-radius:8px;font-family:var(--font-body);font-size:14.5px;background:var(--surface);color:var(--ink);}
.form-field textarea{resize:vertical;min-height:88px;}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--accent-hover);box-shadow:0 0 0 3px var(--accent-soft);}
.form-field.error input,.form-field.error textarea,.form-field.error select{border-color:var(--error);}
.field-error{font-size:12.5px;color:var(--error);margin-top:5px;display:none;}
.form-field.error .field-error{display:block;}
.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
@media(max-width:480px){.checkbox-grid{grid-template-columns:1fr;}}
.checkbox-item{display:flex;align-items:center;gap:9px;font-size:13.5px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;}
.checkbox-item input{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent-hover);}
.form-actions{margin-top:var(--space-3);display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.form-note{font-size:12px;color:var(--ink-soft);margin-top:var(--space-2);}
.form-success{display:none;text-align:center;padding:var(--space-4) 0;}
.form-success .check{width:52px;height:52px;border-radius:50%;background:#E3F3EB;color:var(--signal-green);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:24px;font-weight:700;}
.form-success h4{font-size:19px;margin-bottom:8px;}
.form-success p{font-size:14.5px;max-width:40ch;margin:0 auto;}

/* honeypot — visually hidden from sighted users AND screen readers, never reachable by tab */
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}

/* submit button loading state */
.btn[data-state="submitting"]{opacity:.75;cursor:progress;pointer-events:none;}
.btn-spinner{display:none;width:14px;height:14px;border-radius:50%;border:2px solid rgba(26,17,2,.35);border-top-color:#1A1102;animation:spin .7s linear infinite;}
.btn[data-state="submitting"] .btn-spinner{display:inline-block;}
@media(prefers-reduced-motion:reduce){.btn-spinner{animation:none;}}
@keyframes spin{to{transform:rotate(360deg);}}

/* form-level status banner (error / not-configured) */
.form-banner{display:none;align-items:flex-start;gap:10px;font-size:13.5px;padding:12px 14px;border-radius:9px;margin-bottom:var(--space-3);}
.form-banner.show{display:flex;}
.form-banner.error{background:#FDEDE9;color:#8A2F1F;border:1px solid #F1B7A8;}
.form-banner a{color:#8A2F1F;font-weight:600;text-decoration:underline;}
.form-banner .icon{flex-shrink:0;font-weight:700;}

/* modal: keep within viewport with internal scroll, never overflow horizontally */
.modal-backdrop{padding:16px;}
.modal{max-height:calc(100vh - 32px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
@media(max-width:480px){
  .modal-backdrop{padding:0;align-items:stretch;}
  .modal{max-width:100%;max-height:100vh;height:100%;border-radius:0;margin:0;}
}

/* sticky mobile CTA must not fight with an open modal */
body.modal-open{overflow:hidden;}
body.modal-open .mobile-cta-bar{display:none;}
/* ================= BREADCRUMB (shared, internal pages) ================= */
.breadcrumb{padding:14px 0;font-size:13px;color:var(--ink-soft);}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;}
.breadcrumb li{display:flex;align-items:center;gap:6px;}
.breadcrumb li:not(:last-child)::after{content:'/';color:var(--border);margin-left:6px;}
.breadcrumb a{text-decoration:none;color:var(--ink-soft);}
.breadcrumb a:hover{color:var(--ink);text-decoration:underline;}
.breadcrumb [aria-current="page"]{color:var(--ink);font-weight:500;}

/* ================= PAGE HERO (internal pages, lighter than homepage) ================= */
.page-hero{padding-top:var(--space-5);padding-bottom:var(--space-6);}
.page-hero h1{font-size:clamp(30px,4.2vw,48px);max-width:18ch;}
.page-hero-sub{font-size:17px;max-width:56ch;}

/* ================= PACKAGE PROGRESSION — ENHANCED (Solutions page) ================= */
.progression-rail{position:relative;margin:var(--space-5) 0 var(--space-6);}
.progression-track-line{position:absolute;top:34px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,var(--border) 0%,var(--accent) 100%);z-index:0;}
@media(max-width:900px){.progression-track-line{display:none;}}
.progression-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);position:relative;z-index:1;}
@media(max-width:900px){.progression-steps{grid-template-columns:1fr;gap:var(--space-3);}}
.progression-step{display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.progression-dot{width:14px;height:14px;border-radius:50%;background:var(--surface);border:2.5px solid var(--accent);flex-shrink:0;}
.progression-step:first-child .progression-dot{background:var(--accent);}
.progression-stage-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-hover);}
.progression-step h3{font-size:19px;margin:2px 0 4px;}
.progression-step p{font-size:13.5px;margin:0;}

/* implementation vs care split banner */
.lifecycle-split{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-3);align-items:center;margin:var(--space-5) 0;}
@media(max-width:760px){.lifecycle-split{grid-template-columns:1fr;}}
.lifecycle-card{border-radius:14px;padding:var(--space-3);}
.lifecycle-card.implementation{background:var(--surface);border:1.5px solid var(--ink);}
.lifecycle-card.care{background:var(--dark-surface);border:1.5px solid var(--border-dark);color:var(--dark-text);}
.lifecycle-card.care p{color:var(--dark-text-soft);}
.lifecycle-card .kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;display:block;}
.lifecycle-card.implementation .kicker{color:var(--accent-hover);}
.lifecycle-card.care .kicker{color:var(--accent);}
.lifecycle-divider{font-family:var(--font-display);font-size:20px;color:var(--connector);text-align:center;}
@media(max-width:760px){.lifecycle-divider{transform:rotate(90deg);}}

/* ================= COMPARISON TABLE / ACCORDION ================= */
.comparison-wrap{margin-top:var(--space-4);}
.comparison-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;}
.comparison-table th,.comparison-table td{padding:13px 14px;text-align:left;font-size:13.5px;border-bottom:1px solid var(--border);}
.comparison-table thead th{background:var(--paper-alt);font-family:var(--font-display);font-weight:600;font-size:14px;}
.comparison-table thead th.col-popular{background:var(--accent-soft);}
.comparison-table tbody th{font-weight:500;color:var(--ink);white-space:nowrap;}
.comparison-table tbody tr:last-child td, .comparison-table tbody tr:last-child th{border-bottom:none;}
.status-pill{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:500;}
.status-included{background:#E3F3EB;color:#1D7A50;}
.status-required{background:var(--accent-soft);color:var(--accent-hover);}
.status-scoped{background:var(--paper-alt);color:var(--ink-soft);}
@media(min-width:761px){.comparison-accordion{display:none;}}
@media(max-width:760px){
  .comparison-table-desktop{display:none;}
  .comparison-accordion{display:block;}
}
.compare-cat{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden;background:var(--surface);}
.compare-cat-head{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:none;border:none;font-family:var(--font-body);font-weight:600;font-size:15px;cursor:pointer;color:var(--ink);}
.compare-cat-head .chev{font-family:var(--font-mono);color:var(--accent-hover);transition:transform .2s;}
.compare-cat[open] .chev{transform:rotate(180deg);}
.compare-cat-head summary{list-style:none;}
.compare-cat-head summary::-webkit-details-marker{display:none;}
.compare-cat-body{padding:0 16px 14px;display:grid;grid-template-columns:1fr auto;row-gap:10px;font-size:13.5px;}
.compare-cat-body .pkg-name{color:var(--ink-soft);}

/* ================= SCENARIO SELECTOR ("Which Stack Is Right for Me?") ================= */
.scenario-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-top:var(--space-4);}
@media(max-width:980px){.scenario-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.scenario-grid{grid-template-columns:1fr;}}
.scenario-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:var(--space-3);display:flex;flex-direction:column;gap:10px;}
.scenario-card .quote{font-family:var(--font-display);font-size:16px;line-height:1.35;color:var(--ink);}
.scenario-card .stage-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-hover);}
.scenario-card p.desc{font-size:13.5px;color:var(--ink-soft);flex:1;margin:0;}
.scenario-card .btn{align-self:flex-start;margin-top:4px;padding:9px 16px;font-size:13.5px;}
