@font-face{font-family:'Bricolage Grotesque';src:url('/assets/fonts/bricolage-grotesque-latin.woff2') format('woff2');font-weight:500 800;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('/assets/fonts/inter-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

/* ---------- tokens ---------- */
:root{
  --navy:#0F172A;--blue:#2563EB;--blue-deep:#1D4ED8;--teal:#2DD4BF;--cool-white:#F8FAFC;
  --ivory:#FAF7F2;--sand:#EFE7DB;--white:#FFFFFF;--muted:#475569;--ink-soft:#CBD5E1;
  --line:#DDD6CA;--line-dark:#243047;
  --display:'Bricolage Grotesque',Inter,system-ui,sans-serif;
  --sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --header-h:76px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
  color-scheme:light;font-family:var(--sans);color:var(--navy);background:var(--ivory);
  font-synthesis:none;font-size:100%;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;line-height:1.6;overflow-x:clip}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0;text-align:inherit}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:2px}
.hero :focus-visible,.custom-invite :focus-visible,.preview-footer :focus-visible,.primary-navigation.is-open :focus-visible,body.menu-open .site-header :focus-visible{outline-color:var(--teal)}
::selection{background:var(--teal);color:var(--navy)}
h1,h2,h3,p,figure,ul{margin:0}
ul{padding:0;list-style:none}
strong{font-weight:650}
.container{width:min(1280px,calc(100% - 96px));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:20px;top:12px;padding:12px 20px;background:var(--navy);color:var(--white);z-index:100;transform:translateY(-160%);border-radius:6px;font-weight:600;text-decoration:none}
.skip-link:focus{transform:translateY(0)}
[hidden]{display:none!important}
html:not(.js) .service-detail,html:not(.js) .demo-step-body{display:block!important}

/* ---------- type ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;font-weight:650}
.eyebrow-dot{width:10px;height:10px;background:var(--teal);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);flex-shrink:0}
.section-title{font-family:var(--display);font-weight:800;font-size:clamp(2.5rem,1.4rem + 4.2vw,5rem);line-height:.98;letter-spacing:-.035em;margin-top:18px;text-wrap:balance}
.section-lede{font-size:18px;line-height:1.65;color:var(--muted);max-width:560px;margin-top:22px}
.section-head{max-width:820px;margin-bottom:56px}

/* ---------- buttons ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:0 24px;min-height:52px;background:var(--blue);color:var(--white);border:2px solid var(--blue);border-radius:999px;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .2s var(--ease-soft),border-color .2s var(--ease-soft),transform .25s var(--ease-out),color .2s}
.button:hover{background:var(--blue-deep);border-color:var(--blue-deep);transform:translateY(-2px)}
.button:active{transform:translateY(0)}
.button-large{min-height:60px;padding:0 30px;font-size:16px}
.button-small{min-height:44px;padding:0 20px;font-size:14px}
.button-arrow{font-size:20px;line-height:1;transition:transform .25s var(--ease-out)}
.button:hover .button-arrow{transform:translateX(4px)}
.button-ghost{background:transparent;border-color:rgba(255,255,255,.35);color:var(--white)}
.button-ghost:hover{background:rgba(255,255,255,.08);border-color:var(--white)}
.button-ghost-dark{background:transparent;border-color:var(--navy);color:var(--navy)}
.button-ghost-dark:hover{background:var(--navy);border-color:var(--navy);color:var(--white)}
.button-light{background:var(--white);border-color:var(--white);color:var(--navy)}
.button-light:hover{background:var(--teal);border-color:var(--teal);color:var(--navy)}
.text-link{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;min-height:44px;text-decoration:none;color:var(--blue);border-bottom:2px solid transparent;transition:border-color .2s}
.text-link:hover{border-bottom-color:var(--blue)}
.text-link>span[aria-hidden]{transition:transform .25s var(--ease-out)}
.text-link:hover>span[aria-hidden]{transform:translateX(4px)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:var(--ivory);border-bottom:1px solid transparent;transition:box-shadow .3s,border-color .3s}
.header-inner,.brand-symbol,.wordmark,.header-cta{transition:min-height .35s var(--ease-out),width .35s var(--ease-out),height .35s var(--ease-out),font-size .35s var(--ease-out),min-height .35s var(--ease-out)}
.site-header.is-compact .header-inner{min-height:58px}
.site-header.is-compact .brand-symbol{width:36px;height:36px}
.site-header.is-compact .wordmark{font-size:17px}
.site-header.is-compact .wordmark>span{font-size:8px;margin-top:3px}
.site-header.is-compact .header-cta{min-height:38px;font-size:13px}
.site-header.is-compact .nav-list a{min-height:38px}
.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:0 8px 30px rgba(15,23,42,.06)}
.header-inner{min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;position:relative;z-index:60}
.brand-symbol{width:48px;height:48px;object-fit:contain;margin:-6px -4px -6px -8px}
.wordmark{font-family:var(--display);font-size:22px;letter-spacing:-.01em;font-weight:800;line-height:1;text-transform:uppercase}
.wordmark>span{display:block;font-family:var(--sans);font-size:9.5px;letter-spacing:.24em;line-height:1;font-weight:650;margin-top:5px;color:var(--muted)}
.nav-list{display:flex;align-items:center;gap:6px}
.nav-list a,.nav-list button{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;font-size:15px;font-weight:550;text-decoration:none;transition:background .2s,color .2s}
.nav-list a:hover,.nav-list button:hover{background:var(--sand)}
.nav-footer{display:none}
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;position:relative;z-index:60}
.menu-toggle{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 4px 0 14px;border-radius:999px;font-size:14px;font-weight:600}
.menu-icon{display:grid;gap:5px;width:40px;height:40px;place-content:center;border-radius:50%;background:var(--navy);transition:background .2s}
.menu-icon i{display:block;background:var(--white);width:18px;height:2px;border-radius:2px;transition:transform .3s var(--ease-out),opacity .2s}
.menu-toggle[aria-expanded="true"] .menu-icon i:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-icon i:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--navy);color:var(--white);overflow:hidden}
/* Past 1600px the copy stays inside a readable column while the stage extends to the screen edge. */
.hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);max-width:1600px;margin-inline:auto;min-height:min(860px,calc(100vh - var(--header-h)))}
.hero-copy{position:relative;z-index:2;padding:clamp(56px,7vw,104px) 40px clamp(56px,6vw,88px) max(48px,calc((min(100vw,1600px) - 1280px)/2 + 48px));display:flex;flex-direction:column;justify-content:center}
.hero-title{font-family:var(--display);font-weight:800;font-size:clamp(2.75rem,.6rem + 5.3vw,5.4rem);line-height:.96;letter-spacing:-.04em;text-wrap:balance}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hero-title .line>span{display:block;transform:translateY(110%);animation:rise .9s var(--ease-out) forwards}
.hero-title .line:nth-child(1)>span{animation-delay:.05s}
.hero-title .line:nth-child(2)>span{animation-delay:.15s}
.hero-title .line:nth-child(3)>span{animation-delay:.25s}
.hero-title em{font-style:normal;color:var(--teal)}
.hero-description{font-size:clamp(17px,1.25vw,20px);line-height:1.6;max-width:520px;margin-top:30px;color:var(--ink-soft);animation:fade-up .8s .45s var(--ease-out) both}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:36px;animation:fade-up .8s .55s var(--ease-out) both}
.hero-note{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-soft);margin-top:36px;animation:fade-up .8s .65s var(--ease-out) both}
.hero-note svg{width:18px;height:18px;flex-shrink:0;color:var(--teal)}

.hero-stage{position:relative;min-height:520px;isolation:isolate;margin-right:min(0px,calc((1600px - 100vw) / 2))}
.stage-cut{position:absolute;inset:0;background:var(--blue);clip-path:polygon(18% 0,100% 0,100% 100%,0 100%);animation:cut-in 1s .1s var(--ease-out) both;z-index:0}
.stage-cut::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 45%,rgba(15,23,42,.18))}
.stage-inner{position:absolute;inset:0;padding:clamp(40px,5vw,72px) clamp(28px,4vw,56px) clamp(56px,6vw,80px) clamp(72px,9vw,120px);z-index:1;--px:0;--py:0}
.stage-inner [data-layer]{will-change:transform}
.concept-hero{position:absolute;left:clamp(72px,10vw,120px);top:clamp(44px,6vw,80px);width:min(78%,640px);transform:translate(calc(var(--px) * 6px),calc(var(--py) * 6px));animation:assemble 1s .35s var(--ease-out) both}
.concept-phone{position:absolute;right:clamp(20px,3vw,48px);bottom:clamp(64px,7vw,96px);width:clamp(150px,17vw,210px);transform:translate(calc(var(--px) * -14px),calc(var(--py) * -10px));animation:assemble 1s .6s var(--ease-out) both}
.stage-chip{position:absolute;display:inline-flex;align-items:center;gap:8px;background:var(--white);color:var(--navy);font-size:13px;font-weight:600;padding:10px 16px 10px 12px;border-radius:999px;box-shadow:0 16px 40px rgba(15,23,42,.35);animation:pop .7s var(--ease-out) both}
.chip-check{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--teal);color:var(--navy);font-size:12px;font-weight:800}
.stage-chip-1{left:clamp(16px,2.5vw,40px);top:60%;animation-delay:.9s;transform:translate(calc(var(--px) * -20px),calc(var(--py) * -16px))}
.stage-chip-2{right:clamp(140px,19vw,240px);bottom:clamp(40px,4.5vw,64px);animation-delay:1.05s;transform:translate(calc(var(--px) * 18px),calc(var(--py) * 12px))}
.stage-caption{position:absolute;left:clamp(72px,10vw,120px);bottom:20px;font-size:12px;letter-spacing:.02em;color:rgba(255,255,255,.75);z-index:2}
.stage-caption-light{position:static;color:var(--muted);margin-top:14px}

@keyframes rise{to{transform:translateY(0)}}
@keyframes fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes cut-in{from{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}to{clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}}
@keyframes assemble{from{opacity:0;transform:translateY(40px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.hero-stage.is-ready [data-layer]{animation:none;opacity:1}

/* ---------- concept site (shared by hero + demo) ---------- */
.concept{--cb-accent:#C2410C;--cb-on-accent:#FFFFFF;--cb-bg:#FFF7ED;--cb-ink:#3B2A1A;--cb-card:#FFFFFF;--cb-radius:12px;--cb-title-font:var(--display);--cb-title-weight:800;--cb-title-spacing:-.02em;
  --cb-soft:color-mix(in srgb,var(--cb-accent) 22%,var(--cb-bg));--cb-muted:color-mix(in srgb,var(--cb-ink) 55%,var(--cb-bg));
  background:var(--white);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(15,23,42,.35),0 2px 6px rgba(15,23,42,.2);color:var(--cb-ink);font-family:var(--sans);transition:width .6s var(--ease-out),max-width .6s var(--ease-out),border-radius .6s}
.concept[data-brand="legal"]{--cb-accent:#14532D;--cb-bg:#F3F6F4;--cb-ink:#0B2E2A}
.concept[data-brand="studio"]{--cb-accent:#DB2777;--cb-bg:#FBF7F9;--cb-ink:#2A1B24}
.concept[data-brand="fitness"]{--cb-accent:#2563EB;--cb-bg:#F4F7FB;--cb-ink:#0F172A}
.concept[data-theme="dark"]{--cb-bg:#16161C;--cb-ink:#F5F5F7;--cb-card:#23232B}
.concept[data-theme="dark"][data-brand="bakery"]{--cb-bg:#1D1712}
.concept[data-theme="dark"][data-brand="legal"]{--cb-bg:#0F1A17}
.concept[data-theme="dark"][data-brand="fitness"]{--cb-bg:#0F172A}
.concept[data-corners="sharp"]{--cb-radius:3px}
.concept[data-type="classic"]{--cb-title-font:Georgia,'Times New Roman',serif;--cb-title-weight:600;--cb-title-spacing:-.01em}
.concept[data-type="minimal"]{--cb-title-font:var(--sans);--cb-title-weight:500;--cb-title-spacing:-.03em}
.concept-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#E9EDF2;color:#475569;font-size:11px;line-height:1;border-bottom:1px solid #D9DEE5}
.concept-dots{display:flex;gap:5px}
.concept-dots i{width:8px;height:8px;border-radius:50%;background:#C3CAD4}
.concept-url{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--white);border-radius:6px;padding:6px 10px;color:#64748B}
.concept-tag{font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:9px;background:var(--navy);color:var(--white);padding:5px 8px;border-radius:4px}
.concept-body{background:var(--cb-bg);padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px;transition:background .5s,color .5s}
.c-brand{font-family:var(--cb-title-font);font-weight:var(--cb-title-weight);font-size:12px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;transition:opacity .35s}
.c-nav{display:flex;align-items:center;gap:14px;min-height:22px}
.c-logo{width:26px;height:26px;border-radius:calc(var(--cb-radius) * .6);background:var(--cb-accent);color:var(--cb-on-accent);flex-shrink:0;transition:background .5s,border-radius .5s;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:13px;line-height:1}
.c-links{display:flex;gap:10px;flex:1;transition:opacity .35s,transform .45s var(--ease-out)}
.c-links i{display:block;width:28px;height:6px;border-radius:3px;background:var(--cb-ink);opacity:.35}
.c-btn{width:64px;height:22px;border-radius:calc(var(--cb-radius) * 2);background:var(--cb-accent);transition:opacity .35s,transform .45s var(--ease-out),background .5s,border-radius .5s}
.c-burger{display:none;margin-left:auto;width:18px;flex-direction:column;gap:4px}
.c-burger i{display:block;height:2px;border-radius:2px;background:var(--cb-ink)}
.c-hero{display:flex;gap:16px;align-items:stretch;padding:16px 0 6px}
.c-hero-text{flex:1 1 55%;display:flex;flex-direction:column;gap:8px;justify-content:center;min-width:0}
.c-title{font-family:var(--cb-title-font);font-weight:var(--cb-title-weight);font-size:clamp(17px,2vw,24px);line-height:1.05;letter-spacing:var(--cb-title-spacing);text-wrap:balance;transition:font-size .3s}
.c-sub{display:block;height:7px;width:88%;border-radius:4px;background:var(--cb-ink);opacity:.2}
.c-sub.short{width:60%}
.c-cta{display:inline-flex;align-self:flex-start;align-items:center;white-space:nowrap;padding:7px 12px;border-radius:calc(var(--cb-radius) * 2);background:var(--cb-accent);color:var(--cb-on-accent);font-size:11px;font-weight:700;margin-top:4px;transition:background .5s,color .5s,border-radius .5s}
.c-art{flex:1 1 45%;position:relative;min-height:96px;border-radius:var(--cb-radius);background:var(--cb-soft);overflow:hidden;transition:background .5s,border-radius .5s}
.c-art-shape{position:absolute;border-radius:50%;background:var(--cb-accent);transition:background .5s,transform .6s var(--ease-out)}
.c-art-shape.a{width:58%;padding-top:58%;right:-14%;bottom:-24%;opacity:.9}
.c-art-shape.b{width:30%;padding-top:30%;left:10%;top:12%;opacity:.55;border-radius:30%;transform:rotate(12deg)}
.c-grid{display:flex;flex-wrap:wrap;gap:10px}
.c-card{flex:1 1 30%;min-width:0;background:var(--cb-card);border-radius:var(--cb-radius);padding:10px;display:flex;flex-direction:column;gap:7px;box-shadow:0 1px 2px rgba(15,23,42,.06);transition:flex-basis .55s var(--ease-out),background .5s,border-radius .5s}
.c-card i{display:block;height:34px;border-radius:calc(var(--cb-radius) * .5);background:var(--cb-soft);transition:background .5s}
.c-card b{display:block;height:7px;width:70%;border-radius:4px;background:var(--cb-ink);opacity:.55}
.c-card s{display:block;height:6px;width:90%;border-radius:4px;background:var(--cb-ink);opacity:.18;text-decoration:none}
.c-tool{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--cb-radius);background:var(--cb-card);border:1.5px dashed var(--cb-accent);animation:tool-in .5s var(--ease-out) both}
@keyframes tool-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.c-tool-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cb-accent)}
.c-slots{display:flex;flex-wrap:wrap;gap:6px}
.c-slots i{font-style:normal;font-size:11px;padding:5px 9px;border-radius:6px;background:var(--cb-soft);color:var(--cb-ink)}
.c-slots i.on{background:var(--cb-accent);color:var(--cb-on-accent)}
.c-calc{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}
.c-calc b{font-family:var(--display);font-size:16px;color:var(--cb-accent)}
.c-bubble{align-self:flex-start;font-size:11px;line-height:1.35;padding:7px 10px;border-radius:10px 10px 10px 3px;background:var(--cb-soft);max-width:85%}
.c-bubble.reply{align-self:flex-end;border-radius:10px 10px 3px 10px;background:var(--cb-accent);color:var(--cb-on-accent)}
.c-field{display:flex;align-items:center;gap:8px}
.c-field i{flex:1;font-style:normal;font-size:11px;padding:7px 10px;border-radius:6px;background:var(--cb-bg);border:1px solid var(--cb-soft);color:var(--cb-muted)}
.c-field b{font-size:11px;padding:7px 12px;border-radius:6px;background:var(--cb-accent);color:var(--cb-on-accent)}
.c-hours{display:flex;gap:12px;align-items:stretch}
.c-hours-list{flex:1;display:flex;flex-direction:column;gap:5px;font-size:11px}
.c-hours-list i{font-style:normal;display:flex;justify-content:space-between;gap:8px;color:var(--cb-muted)}
.c-hours-list b{color:var(--cb-ink);font-weight:600}
.c-map{flex:0 0 40%;position:relative;min-height:56px;border-radius:calc(var(--cb-radius) * .6);background:var(--cb-soft);overflow:hidden}
.c-map-road{position:absolute;background:var(--cb-card);opacity:.9}
.c-map-road.r1{left:0;right:0;top:45%;height:8px;transform:rotate(-8deg)}
.c-map-road.r2{top:0;bottom:0;left:38%;width:8px;transform:rotate(12deg)}
.c-map-pin{position:absolute;left:52%;top:32%;width:14px;height:14px;border-radius:50% 50% 50% 0;background:var(--cb-accent);transform:rotate(-45deg);box-shadow:0 3px 6px rgba(0,0,0,.25)}

/* concept: phone layout */
.concept[data-view="mobile"]{border-radius:22px}
.concept[data-view="mobile"] .concept-bar{display:none}
.concept[data-view="mobile"] .concept-body{padding:18px 14px 16px}
.concept[data-view="mobile"] .c-links,.concept[data-view="mobile"] .c-btn{opacity:0;transform:translateX(12px);pointer-events:none;position:absolute}
.concept[data-view="mobile"] .c-brand{max-width:150px}
.concept[data-view="mobile"] .c-hours{flex-direction:column}
.concept[data-view="mobile"] .c-map{flex-basis:auto;min-height:48px}
.concept[data-view="mobile"] .c-burger{display:flex}
.concept[data-view="mobile"] .c-hero{flex-direction:column;padding-top:8px}
.concept[data-view="mobile"] .c-art{min-height:80px}
.concept[data-view="mobile"] .c-card{flex-basis:100%}
.concept-phone{border:5px solid #0B1222;background:#0B1222;box-shadow:0 30px 60px rgba(15,23,42,.45)}
.concept-phone .c-title{font-size:15px}
.concept-phone .c-brand{font-size:11px}
.concept-phone .c-art{min-height:64px}
.concept-phone .concept-body{padding:24px 12px 14px;gap:10px}

/* ---------- fact strip ---------- */
.strip{background:var(--teal);color:var(--navy)}
.strip-list{display:grid;grid-template-columns:repeat(4,1fr);padding:22px 0}
.strip-list li{display:flex;flex-direction:column;gap:2px;padding:6px 24px;border-left:1px solid rgba(15,23,42,.18)}
.strip-list li:first-child{border-left:0;padding-left:0}
.strip-list strong{font-family:var(--display);font-weight:750;font-size:19px;letter-spacing:-.01em;line-height:1.15}
.strip-list span{font-size:13px;opacity:.8}

/* ---------- services ---------- */
.services{padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h)}
.service-list{border-top:2px solid var(--navy)}
.service{border-bottom:1px solid var(--line);transition:background .3s}
.service.is-open{background:var(--white)}
.services{position:relative;overflow:hidden}
.services-backdrop{position:absolute;inset:0;pointer-events:none}
.services-backdrop span{position:absolute;background:var(--sand);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);opacity:.7}
.services-backdrop span:first-child{width:520px;height:520px;right:-200px;top:-120px}
.services-backdrop span:last-child{width:320px;height:320px;left:-160px;bottom:120px;opacity:.5}
.services .container{position:relative}
.service-summary{display:grid;grid-template-columns:168px 1fr 56px;align-items:center;gap:32px;width:100%;padding:28px 0;position:relative}
.service-art{display:block;width:168px;height:126px;border-radius:16px;background:var(--sand);overflow:hidden;transition:transform .45s var(--ease-out),box-shadow .45s}
.service[data-accent="blue"] .service-art{background:linear-gradient(135deg,#DBE7FF,#EFF4FF)}
.service[data-accent="teal"] .service-art{background:linear-gradient(135deg,#CCFBF1,#F0FDFA)}
.service[data-accent="navy"] .service-art{background:linear-gradient(135deg,#0F172A,#1E293B)}
.service[data-accent="sand"] .service-art{background:linear-gradient(135deg,#EFE7DB,#FAF7F2)}
.service[data-accent="gradient"] .service-art{background:linear-gradient(135deg,#2563EB,#2DD4BF)}
.service-summary:hover .service-art{transform:translateY(-4px) rotate(-1.5deg);box-shadow:0 18px 36px rgba(15,23,42,.12)}
.art-svg{width:100%;height:100%;display:block}
.art-svg *{transition:transform .5s var(--ease-out),opacity .4s}
/* 01 */
.art-frame{fill:#fff}.art-bar{fill:#0F172A}.art-dot{fill:#94A3B8}.art-hero{fill:#2563EB}.art-line{fill:#CBD5E1}.art-cta{fill:#2DD4BF}.art-card{fill:#E2E8F0}.art-cursor{fill:#0F172A}
.service-summary:hover .art-cursor{transform:translate(-14px,-10px)}
.service-summary:hover .art-hero{transform:scale(1.04);transform-origin:53px 57px}
/* 02 */
.art-old{fill:#E7E5E4}.art-old-line{fill:#B8B3AC}.art-crack{fill:none;stroke:#9C9690;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.art-arrow{fill:none;stroke:#0F172A;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.art-new{fill:#0F172A}.art-new-hero{fill:#2DD4BF}.art-new-line{fill:#64748B}.art-new-cta{fill:#fff}.art-spark{fill:#2DD4BF}
.service-summary:hover .art-before{transform:translateX(-4px);opacity:.75}
.service-summary:hover .art-after{transform:translateX(4px) translateY(-3px)}
.service-summary:hover .art-spark{transform:scale(1.6);transform-origin:140px 22px}
/* 03 */
.art-cal{fill:#fff}.art-cal-head{fill:#2563EB}.art-cal-grid rect{fill:#E2E8F0}.art-cal-grid .art-cal-on{fill:#2DD4BF}.art-bubble-shape{fill:#2DD4BF}.art-bubble-line{fill:#0F172A;opacity:.6}.art-switch-track{fill:#2563EB}.art-switch-knob{fill:#fff}
.service-summary:hover .art-switch-knob{transform:translateX(-20px)}
.service-summary:hover .art-bubble{transform:translateY(-4px)}
.service-summary:hover .art-cal-on{transform:scale(1.25);transform-origin:43px 62px}
/* 04 */
.art-bars rect{fill:#2563EB}.art-bars rect:nth-child(odd){fill:#93C5FD}.art-lens-ring{fill:#fff;stroke:#0F172A;stroke-width:3}.art-lens-handle{stroke:#0F172A;stroke-width:4;stroke-linecap:round}.art-check{fill:none;stroke:#2DD4BF;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.art-shield{fill:#2DD4BF}.art-shield-check{fill:none;stroke:#0F172A;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.service-summary:hover .art-bars rect{transform:scaleY(1.12);transform-origin:50% 100%}
.service-summary:hover .art-lens{transform:translate(-3px,3px)}
/* 05 */
.art-badge{fill:#fff}.art-mark{fill:none;stroke:#0F172A;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.art-swatch{stroke:#fff;stroke-width:2}.art-swatch.s1{fill:#0F172A}.art-swatch.s2{fill:#fff}.art-swatch.s3{fill:#FAF7F2}.art-ruler{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;opacity:.8}
.service-summary:hover .art-badge{transform:rotate(-4deg);transform-origin:64px 60px}
.service-summary:hover .art-swatch{transform:translateX(-4px)}
.service-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:650;color:var(--blue);margin-bottom:2px}
.service-summary::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--blue);transition:width .35s var(--ease-out)}
.service-summary:hover::before,.service.is-open .service-summary::before{width:4px}
.service-text{display:flex;flex-direction:column;gap:10px;min-width:0}
.service-title{font-family:var(--display);font-weight:750;font-size:clamp(1.6rem,1rem + 1.9vw,2.6rem);line-height:1.05;letter-spacing:-.025em;transition:transform .4s var(--ease-out),color .3s;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.service-summary:hover .service-title{transform:translateX(6px)}
.service-blurb{font-size:17px;line-height:1.55;color:var(--muted);max-width:640px}
.pill{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:var(--teal);color:var(--navy);line-height:1;vertical-align:middle}
.service-toggle{position:relative;width:44px;height:44px;border-radius:50%;border:2px solid var(--navy);margin-top:4px;justify-self:end;transition:background .3s,transform .4s var(--ease-out)}
.service-toggle i{position:absolute;left:50%;top:50%;width:16px;height:2px;background:var(--navy);transform:translate(-50%,-50%);transition:transform .35s var(--ease-out),background .3s}
.service-toggle i:last-child{transform:translate(-50%,-50%) rotate(90deg)}
.service-summary:hover .service-toggle{background:var(--navy)}
.service-summary:hover .service-toggle i{background:var(--white)}
.service.is-open .service-toggle{background:var(--blue);border-color:var(--blue);transform:rotate(45deg)}
.service.is-open .service-toggle i{background:var(--white)}
.service-detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease-out)}
.service-detail.is-visible{grid-template-rows:1fr}
.service-detail-inner{overflow:hidden;min-height:0}
.service-detail .capability-list,.service-detail .service-cta{opacity:0;transform:translateY(8px);transition:opacity .4s .1s,transform .45s .1s var(--ease-out)}
.service-detail.is-visible .capability-list,.service-detail.is-visible .service-cta{opacity:1;transform:none}
html:not(.js) .service-detail{grid-template-rows:1fr}
html:not(.js) .service-detail .capability-list,html:not(.js) .service-detail .service-cta{opacity:1;transform:none}
.capability-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;margin:0 0 0 200px;padding-right:80px}
.capability-list li{position:relative;padding-left:26px;font-size:16px;line-height:1.5}
.capability-list li::before{content:"";position:absolute;left:0;top:9px;width:12px;height:12px;background:var(--teal);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.service-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 32px;margin:26px 80px 34px 200px;padding-top:22px;border-top:1px solid var(--line)}
.service-cta p{font-size:15px;color:var(--muted)}

.custom-invite{margin-top:56px;display:grid;grid-template-columns:1fr auto;gap:28px 48px;align-items:center;background:var(--navy);color:var(--ink-soft);padding:36px 44px;border-radius:18px;position:relative;overflow:hidden}
.custom-invite::before{content:"";position:absolute;right:-40px;top:-60px;width:260px;height:260px;background:var(--blue);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);opacity:.5}
.custom-invite>div{position:relative}
.custom-invite-title{font-family:var(--display);font-weight:750;font-size:clamp(1.3rem,1rem + 1.2vw,1.9rem);line-height:1.15;letter-spacing:-.02em;color:var(--white);margin-bottom:10px}
.custom-invite p:not(.custom-invite-title){font-size:15px;max-width:560px}
.custom-invite .button{position:relative}

/* ---------- capability demo ---------- */
.demo{background:var(--sand);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h)}
.demo-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.demo-steps{display:flex;flex-direction:column}
.demo-step{border-top:1px solid rgba(15,23,42,.2);padding:32px 0 40px;transition:opacity .4s}
.demo-step:last-child{border-bottom:1px solid rgba(15,23,42,.2)}
.desktop-demo .demo-step{min-height:clamp(360px,50vh,520px);opacity:.45}
.desktop-demo .demo-step.is-active{opacity:1}
.demo-step-head{display:flex;align-items:center;gap:18px;width:100%}
.step-index{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--navy);color:var(--white);font-family:var(--display);font-weight:800;font-size:16px;flex-shrink:0;transition:background .3s,color .3s}
.demo-step.is-active .step-index{background:var(--blue)}
.step-title{font-family:var(--display);font-weight:750;font-size:clamp(1.4rem,1rem + 1.4vw,2.1rem);line-height:1.1;letter-spacing:-.02em}
.step-title-short{display:none}
.demo-step-body{padding:18px 0 0 58px}
.demo-step-body p{font-size:16px;line-height:1.6;color:var(--muted);max-width:460px}
.control-group{display:inline-flex;gap:4px;margin-top:20px;padding:4px;background:rgba(15,23,42,.08);border-radius:999px}
.control-group-wrap{display:flex;flex-wrap:wrap;background:none;padding:0;gap:8px}
.seg{min-height:40px;padding:0 18px;border-radius:999px;font-size:14px;font-weight:600;color:var(--navy);transition:background .25s,color .25s,transform .2s}
.seg:hover{background:rgba(255,255,255,.7)}
.seg.is-on{background:var(--navy);color:var(--white)}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px 0 12px;border-radius:999px;font-size:14px;font-weight:600;background:var(--white);border:2px solid transparent;color:var(--navy);transition:background .25s,border-color .25s,color .25s}
.chip::before{content:"+";display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--navy);color:var(--white);font-size:13px;font-weight:700;line-height:1;transition:transform .3s var(--ease-out),background .25s}
.chip:hover{border-color:var(--navy)}
.chip.is-on{background:var(--navy);color:var(--white);border-color:var(--navy)}
.chip.is-on::before{background:var(--teal);color:var(--navy);transform:rotate(45deg)}
.demo-stage{min-width:0;align-self:stretch}
.demo-stage-sticky{position:sticky;top:calc(var(--header-h) + 24px);display:flex;flex-direction:column;align-items:center}
.concept-demo{width:100%;max-width:680px;box-shadow:0 30px 70px rgba(15,23,42,.22),0 2px 6px rgba(15,23,42,.1)}
.concept-demo .concept-body{padding:18px 22px 22px;gap:14px}
.concept-demo .c-title{font-size:clamp(20px,2.4vw,30px)}
.concept-demo .c-art{min-height:130px}
.concept-demo .c-card i{height:44px}
.concept-demo[data-view="mobile"]{max-width:300px;border:6px solid #0B1222;background:#0B1222}
.concept-demo[data-view="mobile"] .concept-body{padding:26px 16px 18px}
.concept-demo[data-view="mobile"] .c-title{font-size:22px}
.concept-demo[data-view="mobile"] .c-art{min-height:96px}
.concept-demo[data-view="mobile"] .c-card i{height:36px}

/* ---------- reveals ---------- */
.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease-out),transform .8s var(--ease-out)}
.js [data-reveal].in-view{opacity:1;transform:none}
.js .service-list .service[data-reveal]:nth-child(2){transition-delay:.06s}
.js .service-list .service[data-reveal]:nth-child(3){transition-delay:.12s}
.js .service-list .service[data-reveal]:nth-child(4){transition-delay:.18s}
.js .service-list .service[data-reveal]:nth-child(5){transition-delay:.24s}

/* ---------- responsive ---------- */
@media(max-width:1279px){
  .container{width:calc(100% - 64px)}
  .hero-copy{padding-left:32px;padding-right:32px}
  .concept-hero{left:clamp(56px,8vw,96px)}
  .stage-caption{left:clamp(56px,8vw,96px)}
  .capability-list{margin-left:96px;padding-right:32px}
  .service-cta{margin-right:32px}
  .demo-layout{gap:40px}
}
@media(max-width:1023px){
  .hero-inner{grid-template-columns:1fr;min-height:0}
  .hero-copy{max-width:none;padding:56px 32px 40px}
  .hero-title{font-size:clamp(2.75rem,1.1rem + 8vw,5.5rem)}
  .hero-stage{min-height:0;height:clamp(420px,62vw,560px);margin-top:8px;margin-right:0}
  .stage-cut{clip-path:polygon(0 12%,100% 0,100% 100%,0 100%)}
  @keyframes cut-in{from{clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}to{clip-path:polygon(0 12%,100% 0,100% 100%,0 100%)}}
  .concept-hero{left:32px;top:clamp(80px,14vw,120px);width:min(70%,600px)}
  .concept-phone{right:32px;bottom:28px;width:clamp(130px,17vw,168px)}
  .concept-phone .c-grid .c-card:nth-child(2){display:none}
  .concept-phone .c-title{font-size:13px}
  .stage-chip-1{left:32px;top:clamp(36px,6vw,56px)}
  .stage-chip-2{right:auto;left:32px;bottom:40px}
  .stage-caption{left:32px;bottom:16px}
  .nav-list{display:none}
  .menu-toggle:not([hidden]){display:inline-flex}
  .header-cta{display:none}
  .js .primary-navigation{position:fixed;inset:0;background:var(--navy);color:var(--white);z-index:50;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--header-h) + 24px) 32px 40px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .35s var(--ease-soft),transform .4s var(--ease-out),visibility 0s .4s}
  .js .primary-navigation.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .35s var(--ease-soft),transform .4s var(--ease-out),visibility 0s}
  .js .primary-navigation .nav-list{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
  .js .primary-navigation .nav-list a,.js .primary-navigation .nav-list button{font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,9vw,3.6rem);letter-spacing:-.03em;line-height:1;min-height:0;padding:10px 0;border-radius:0;color:var(--white);transform:translateY(12px);opacity:0;transition:transform .5s var(--ease-out),opacity .4s,color .2s}
  .js .primary-navigation.is-open .nav-list a,.js .primary-navigation.is-open .nav-list button{transform:none;opacity:1}
  .js .primary-navigation.is-open .nav-list li:nth-child(2) *{transition-delay:.05s}
  .js .primary-navigation.is-open .nav-list li:nth-child(3) *{transition-delay:.1s}
  .js .primary-navigation.is-open .nav-list li:nth-child(4) *{transition-delay:.15s}
  .js .primary-navigation.is-open .nav-list li:nth-child(5) *{transition-delay:.2s}
  .js .primary-navigation .nav-list a:hover,.js .primary-navigation .nav-list button:hover{background:none;color:var(--teal)}
  .js .primary-navigation .nav-footer{display:flex;flex-direction:column;gap:6px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line-dark);font-size:16px}
  .js .primary-navigation .nav-footer a{text-decoration:none;padding-block:6px;color:var(--ink-soft)}
  .js .primary-navigation .nav-footer a:hover{color:var(--teal)}
  body.menu-open .site-header{background:var(--navy);color:var(--white);border-bottom-color:transparent;box-shadow:none}
  body.menu-open .wordmark>span{color:var(--ink-soft)}
  body.menu-open .menu-icon{background:var(--white)}
  body.menu-open .menu-icon i{background:var(--navy)}
  body.menu-open{overflow:hidden}
  .strip-list{grid-template-columns:repeat(2,1fr);gap:16px 0;padding:20px 0}
  .strip-list li{padding:4px 20px}
  .strip-list li:nth-child(odd){border-left:0;padding-left:0}
  .section-head{margin-bottom:40px}
  .service-summary{grid-template-columns:120px 1fr 44px;gap:16px;padding:24px 0}
  .service-art{width:120px;height:90px;border-radius:12px}
  .capability-list{grid-template-columns:1fr;margin-left:136px;padding-right:0;gap:10px}
  .service-cta{margin:22px 0 30px 136px}
  .services-backdrop span:first-child{width:320px;height:320px;right:-140px;top:-60px}
  .custom-invite{grid-template-columns:1fr;padding:32px 28px}
  .demo-layout{grid-template-columns:minmax(0,1fr);gap:28px}
  .demo-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:12px 6px;align-items:start}
  .demo-step{display:contents}
  .demo-step-head{gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:rgba(15,23,42,.06);white-space:nowrap;width:100%;min-width:0;justify-content:center;transition:background .25s,color .25s}
  .demo-step.is-active .demo-step-head{background:var(--navy);color:var(--white)}
  .demo-step.is-active .step-index{background:var(--teal);color:var(--navy)}
  .step-index{width:30px;height:30px;font-size:13px}
  .step-title{font-size:14px;font-family:var(--sans);font-weight:600;letter-spacing:-.01em}
  .step-title-long{display:none}
  .step-title-short{display:inline}
  .demo-step-body{grid-column:1 / -1;padding:8px 0 0}
  .demo-stage{order:3}
  .demo-stage-sticky{position:static}
  .concept-demo{max-width:none}
}
@media(max-width:599px){
  :root{--header-h:68px}
  .container{width:calc(100% - 40px)}
  .brand-symbol{width:42px;height:42px}
  .wordmark{font-size:19px}
  .wordmark>span{font-size:8.5px}
  .menu-toggle .menu-label{display:none}
  .menu-toggle{padding:0}
  .hero-copy{padding:44px 20px 32px}
  .hero-title{font-size:clamp(2.5rem,1.2rem + 9.5vw,3.6rem);line-height:.98}
  .hero-description{font-size:17px;margin-top:22px}
  .hero-actions{margin-top:28px;gap:10px}
  .hero-actions .button{width:100%;min-height:56px}
  .hero-note{margin-top:26px;font-size:13px;align-items:flex-start}
  .hero-note svg{margin-top:2px}
  .hero-stage{height:clamp(400px,118vw,520px)}
  .stage-cut{clip-path:polygon(0 8%,100% 0,100% 100%,0 100%)}
  @keyframes cut-in{from{clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}to{clip-path:polygon(0 8%,100% 0,100% 100%,0 100%)}}
  .concept-hero{left:20px;top:78px;width:calc(100% - 112px)}
  .concept-hero .c-grid .c-card:nth-child(3){display:none}
  .concept-hero .c-title{font-size:15px}
  .concept-hero .c-art{min-height:70px}
  .concept-hero .concept-body{padding:12px 12px 14px;gap:10px}
  .concept-phone{right:16px;bottom:56px;width:118px;border-width:4px;border-radius:16px}
  .concept-phone .c-title{font-size:10.5px}
  .concept-phone .c-cta{font-size:9px;padding:5px 9px}
  .concept-phone .c-art{min-height:44px}
  .concept-phone .concept-body{padding:14px 9px 10px;gap:7px}
  .concept-phone .c-logo{width:18px;height:18px;border-radius:5px}
  .concept-phone .c-logo::after{inset:5px}
  .concept-phone .c-grid .c-card:nth-child(2){display:none}
  .stage-chip{font-size:12px;padding:8px 12px 8px 10px}
  .stage-chip-1{left:auto;right:16px;top:26px}
  .stage-chip-2{left:20px;bottom:36px}
  .stage-caption{left:20px;bottom:12px;font-size:11px}
  .strip-list{grid-template-columns:1fr 1fr;gap:14px 12px;padding:18px 0}
  .strip-list li{padding:0}
  .strip-list li{border-left:0}
  .strip-list strong{font-size:16px}
  .strip-list span{font-size:12px}
  .services,.demo{padding-block:56px}
  .section-title{margin-top:14px}
  .section-lede{font-size:16px;margin-top:16px}
  .service-summary{grid-template-columns:1fr 40px;gap:12px 14px;padding:20px 0;align-items:start}
  .service-art{width:88px;height:66px;border-radius:12px;grid-column:1;grid-row:1}
  .service-art svg{transform:scale(1.12);transform-origin:50% 50%}
  .service-toggle{width:40px;height:40px;margin-top:12px;align-self:start;grid-column:2;grid-row:1}
  .service-text{grid-column:1 / -1;grid-row:2}
  .concept-demo[data-view="desktop"] .c-brand{display:none}
  .service-kicker{font-size:11px}
  .services-backdrop{display:none}
  .service-title{font-size:clamp(1.45rem,1rem + 3.6vw,2rem)}
  .capability-list{margin-left:0;padding-right:0}
  .service-cta{margin:20px 0 26px 0}
  .service-summary:hover .service-title{transform:none}
  .service-blurb{font-size:15.5px}
  .capability-list li{font-size:15px}
  .service-cta .button,.service-cta .text-link{width:100%;justify-content:center}
  .custom-invite{margin-top:40px;padding:28px 22px;border-radius:14px}
  .custom-invite .button{width:100%}
  .demo-step-body p{font-size:15.5px}
  .demo-steps{gap:12px 6px}
  .demo-step-head{padding:5px 8px 5px 5px;gap:6px}
  .step-index{width:26px;height:26px;font-size:12px}
  .step-title{font-size:13px}
  .control-group{margin-top:16px}
  .concept-demo .concept-body{padding:14px 14px 16px;gap:12px}
  .concept-demo .c-title{font-size:19px}
  .concept-demo .c-art{min-height:88px}
  .concept-demo[data-view="mobile"]{max-width:260px}
}
@media(max-width:379px){
  .hero-title{font-size:2.4rem}
  .strip-list{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}
  .hero-description,.hero-actions,.hero-note,.stage-cut,.stage-inner [data-layer],.c-tool,.est-step,.view-panel,.faq-body{opacity:1}
  .js [data-reveal]{opacity:1;transform:none}
  .stage-inner [data-layer]{transform:none!important}
  .hero-title .line>span{transform:none}
}

/* ======================================================================
   Sections added after the approved first stage
   ====================================================================== */

/* ---------- shared form components ---------- */
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field-label{font-size:14px;font-weight:600;line-height:1.4;display:block}
.field-label small{font-weight:500;color:var(--muted);margin-left:6px}
.field-label b{color:var(--blue);font-weight:700}
.field input,.field select,.field textarea{font:inherit;font-size:16px;color:var(--navy);background:var(--white);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;min-height:48px;width:100%;transition:border-color .2s,box-shadow .2s}
.field textarea{resize:vertical;min-height:96px}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.2)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#B91C1C}
.field-error{font-size:13px;color:#B91C1C;font-weight:500}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.field-hint{font-size:14px;color:var(--muted);line-height:1.5;margin-top:10px}
.field-hint a{color:var(--blue)}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.choice-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.choice{position:relative;display:block;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.choice-body{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px 18px 16px;border:2px solid var(--line);border-radius:14px;background:var(--white);transition:border-color .2s,background .2s,transform .25s var(--ease-out),box-shadow .25s}
.choice-body strong{font-size:16px;line-height:1.3;font-weight:650}
.choice-body small{font-size:13.5px;line-height:1.45;color:var(--muted)}
.choice-body b{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-.02em;line-height:1;margin:4px 0 2px}
.choice-body b em{font-family:var(--sans);font-style:normal;font-weight:600;font-size:14px;letter-spacing:0;color:var(--muted)}
.choice:hover .choice-body{border-color:#B6AFA3;transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.choice input:checked+.choice-body{border-color:var(--blue);background:#EFF4FF;box-shadow:inset 0 0 0 1px var(--blue)}
.choice input:focus-visible+.choice-body{outline:3px solid var(--blue);outline-offset:3px}
.check{display:inline-flex;align-items:center;gap:10px;font-size:15px;cursor:pointer;min-height:40px}
.check input{width:20px;height:20px;margin:0;accent-color:var(--blue);flex-shrink:0}
.check-row{display:flex;flex-wrap:wrap;gap:4px 24px}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 20px}
.check-standalone{margin-top:14px}
.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;background:var(--white);overflow:hidden}
.stepper button{width:44px;height:44px;font-size:20px;font-weight:600;display:grid;place-items:center;transition:background .2s}
.stepper button:hover{background:var(--sand)}
.stepper input{width:56px;height:44px;border:0;text-align:center;font:inherit;font-size:16px;font-weight:650;color:var(--navy);background:transparent;-moz-appearance:textfield;appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper input:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--blue);border-radius:6px}
.field-stepper{flex-direction:row;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.field-stepper .field-label small{display:block;margin:2px 0 0}
.addon-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.addon{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:14px 18px;background:var(--white);border:1.5px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s}
.addon:hover{border-color:#B6AFA3}
.addon input[type="checkbox"]{width:20px;height:20px;margin:0;accent-color:var(--blue)}
.addon:has(input:checked){border-color:var(--blue);background:#EFF4FF}
.addon:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:2px}
.addon-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.addon-body strong{font-size:15.5px;font-weight:650;line-height:1.3}
.addon-body small{font-size:13.5px;line-height:1.45;color:var(--muted)}
.addon-price{font-family:var(--display);font-weight:750;font-size:17px;white-space:nowrap;letter-spacing:-.01em}
.addon-stepper{grid-template-columns:1fr auto auto;cursor:default}
.addon-radio{grid-template-columns:1fr;cursor:default;gap:10px}
.est-advanced{margin-top:22px;border-top:1px solid var(--line);padding-top:8px}
.est-advanced summary{cursor:pointer;font-weight:650;font-size:15.5px;padding:12px 0;list-style:none;display:flex;align-items:center;gap:12px}
.est-advanced summary::-webkit-details-marker{display:none}
.est-advanced summary::before{content:"+";display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--navy);color:var(--white);font-size:16px;transition:transform .3s var(--ease-out)}
.est-advanced[open] summary::before{transform:rotate(45deg)}

/* ---------- pricing ---------- */
.pricing{background:var(--navy);color:var(--white);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h)}
.section-head-dark .section-lede{color:var(--ink-soft)}
.section-head-dark .eyebrow{color:var(--teal)}
.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.package{display:flex;flex-direction:column;background:var(--white);color:var(--navy);border-radius:20px;padding:34px 30px 30px;position:relative;overflow:hidden;transition:transform .35s var(--ease-out),box-shadow .35s}
.package::before{content:"";position:absolute;left:0;top:0;width:100%;height:6px;background:var(--blue)}
.package:nth-child(2)::before{background:var(--teal)}
.package:nth-child(3)::before{background:linear-gradient(90deg,var(--blue),var(--teal))}
.package:hover{transform:translateY(-6px);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.package-audience{font-size:13.5px;color:var(--muted);line-height:1.45;min-height:40px}
.package-name{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,1.1rem + 1.2vw,2rem);letter-spacing:-.025em;line-height:1.05;margin-top:12px}
.package-price{display:flex;align-items:baseline;gap:12px;margin-top:18px;font-family:var(--display);font-weight:800;font-size:clamp(2.6rem,2rem + 2vw,3.6rem);letter-spacing:-.04em;line-height:1}
.package-price-note{font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:0;color:var(--muted)}
.package-list{margin:22px 0 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.package-list li{position:relative;padding-left:24px;font-size:15px;line-height:1.5}
.package-list li::before{content:"";position:absolute;left:0;top:8px;width:11px;height:11px;background:var(--teal);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.package-cta{width:100%}
.package-cta:hover{background:var(--blue);border-color:var(--blue)}
.pricing-details{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;margin-top:64px;padding-top:48px;border-top:1px solid var(--line-dark)}
.pricing-subhead{font-family:var(--display);font-weight:750;font-size:22px;letter-spacing:-.02em;margin-bottom:18px}
.capability-list-dark{grid-template-columns:1fr;margin:0;padding:0;color:var(--ink-soft)}
.capability-list-dark li{font-size:15.5px}
.note-list{margin:0;display:flex;flex-direction:column;gap:18px}
.note-list dt{font-weight:650;font-size:15.5px;margin-bottom:4px}
.note-list dd{margin:0;font-size:15px;line-height:1.6;color:var(--ink-soft)}

/* ---------- estimator ---------- */
.estimator{background:var(--ivory);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h)}
.est-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);gap:40px;align-items:start}
.est{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:34px 36px 30px;min-width:0}
.est-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 30px;padding:0;counter-reset:none}
.est-progress li{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--muted);padding-bottom:12px;border-bottom:3px solid var(--line);transition:color .3s,border-color .3s}
.est-progress li.is-current{color:var(--navy);border-bottom-color:var(--blue)}
.est-progress li.is-done{color:var(--navy);border-bottom-color:var(--teal)}
.est-progress-num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--sand);font-family:var(--display);font-weight:800;font-size:13px;flex-shrink:0}
.est-progress li.is-current .est-progress-num{background:var(--blue);color:var(--white)}
.est-progress li.is-done .est-progress-num{background:var(--teal);color:var(--navy)}
.est-step{border:0;padding:0;margin:0;min-width:0}
.est-step.is-entering{animation:step-in .45s var(--ease-out)}
@keyframes step-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.est-legend{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,1.2rem + 1vw,2rem);letter-spacing:-.025em;line-height:1.05;padding:0;margin-bottom:22px}
.est-subhead{font-family:var(--display);font-weight:750;font-size:19px;letter-spacing:-.015em;margin-top:28px;display:flex;align-items:center;gap:10px}
.est-block{margin-top:26px}
.est-block[hidden]{display:none}
.est-inline{margin-top:16px}
.est-note{font-size:15px;line-height:1.6;color:var(--muted);padding:14px 18px;background:var(--ivory);border-radius:12px;border-left:4px solid var(--teal)}
.est-note.small{font-size:13.5px;margin-top:16px;padding:0;background:none;border:0}
.est-nav{display:flex;justify-content:space-between;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.est-nav [data-est-nav="next"]{margin-left:auto}
.est-disclaimer{font-size:13px;color:var(--muted);line-height:1.55;margin-top:18px}
.est-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.est-copy-status{font-size:14px;font-weight:600;color:var(--blue);margin-top:12px;min-height:20px}
.est-summary{position:sticky;top:calc(var(--header-h) + 24px);background:var(--navy);color:var(--white);border-radius:22px;padding:30px 30px 26px}
.est-summary-headline{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:650;color:var(--teal);line-height:1.4}
.est-summary-total{font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,2rem + 1.5vw,3.4rem);letter-spacing:-.04em;line-height:1;margin-top:10px}
.est-summary-total small{font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:0;color:var(--ink-soft);margin-right:6px}
.est-summary-note{font-size:14px;color:var(--ink-soft);line-height:1.55;margin-top:12px}
.est-summary-note a{color:var(--white)}
.est-lines{margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--line-dark);display:flex;flex-direction:column;gap:9px}
.est-lines li{display:flex;justify-content:space-between;gap:16px;font-size:14px;line-height:1.45}
.est-lines li span:last-child{white-space:nowrap;font-weight:650}
.est-lines li.is-excluded{color:var(--ink-soft)}
.est-lines li.is-discount span:last-child{color:var(--teal)}
.est-lines li.is-excluded span:last-child{color:var(--teal);font-weight:600}
.est-lines li.is-included span:last-child{color:var(--teal)}
.est-split{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-dark);display:grid;grid-template-columns:1fr 1fr;gap:12px}
.est-split div{background:rgba(255,255,255,.06);border-radius:12px;padding:12px 14px}
.est-split small{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:4px}
.est-split strong{font-family:var(--display);font-size:20px;font-weight:800;letter-spacing:-.02em}
.est-care{margin-top:14px;display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:12px 14px;border-radius:12px;background:rgba(45,212,191,.1);border:1px solid rgba(45,212,191,.35)}
.est-care strong{white-space:nowrap}
.est-summary-notes{margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.est-summary-notes li{font-size:12.5px;line-height:1.5;color:var(--ink-soft);padding-left:14px;position:relative}
.est-summary-notes li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;background:var(--teal);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.est-summary-warning{margin-top:12px;font-size:13px;color:#FDE68A}

/* ---------- care ---------- */
.care{background:var(--white);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h);border-top:1px solid var(--line)}
.care-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:48px}
.care-head .section-lede{margin-top:0;max-width:none}
.care-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.care-plan{border:2px solid var(--line);border-radius:20px;padding:30px 28px;background:var(--ivory);transition:border-color .3s,transform .35s var(--ease-out)}
.care-plan:hover{border-color:var(--navy);transform:translateY(-4px)}
.care-plan .capability-list{grid-template-columns:1fr;margin:20px 0 0;padding:0;gap:10px}
.care-plan .capability-list li{font-size:15px}
.care-name{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.02em}
.care-price{font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,1.8rem + 1.5vw,3rem);letter-spacing:-.04em;line-height:1;margin-top:10px}
.care-price span{font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:0;color:var(--muted);margin-left:4px}
.care-plan-hourly{background:var(--navy);color:var(--ink-soft);border-color:var(--navy)}
.care-plan-hourly .care-name,.care-plan-hourly .care-price{color:var(--white)}
.care-plan-hourly .care-price span{color:var(--ink-soft)}
.care-text{font-size:14.5px;line-height:1.6;margin-top:14px}
.care-text strong{color:var(--white)}

/* ---------- selected work ---------- */
.work{background:var(--sand);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h)}
.work .section-head{margin-bottom:40px}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.work-image{display:block;border-radius:14px;overflow:hidden;background:var(--white);border:1px solid rgba(15,23,42,.12);box-shadow:0 12px 30px rgba(15,23,42,.08);transition:transform .4s var(--ease-out),box-shadow .4s}
.work-image:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(15,23,42,.14)}
.work-image img{width:100%;aspect-ratio:1440/1000;object-fit:cover;object-position:top;transition:transform .6s var(--ease-out)}
.work-image:hover img{transform:scale(1.03)}
.browser-chrome{display:flex;align-items:center;gap:5px;padding:8px 12px;background:#E9EDF2;border-bottom:1px solid #D9DEE5;font-size:10px;color:#64748B}
.browser-chrome i{width:7px;height:7px;border-radius:50%;background:#C3CAD4}
.browser-chrome span{margin-left:8px}
.work-role{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:650;color:var(--muted);margin-top:20px}
.work-name{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.02em;margin-top:6px}
.work-text{font-size:15px;line-height:1.6;color:var(--muted);margin:10px 0 8px}

/* ---------- about / process / ownership ---------- */
.about{background:var(--ivory);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.fact-list{margin-top:26px;display:flex;flex-direction:column;gap:10px}
.fact-list li{position:relative;padding-left:26px;font-size:16px;line-height:1.5}
.fact-list li::before{content:"";position:absolute;left:0;top:9px;width:12px;height:12px;background:var(--blue);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.about-text{margin-top:24px;font-size:16px;line-height:1.65;color:var(--muted);max-width:520px}
.process{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:32px 32px 28px}
.process-title{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.02em}
.process-list{margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:0;counter-reset:none}
.process-list li{display:grid;grid-template-columns:36px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--line);align-items:start}
.process-list li:first-child{border-top:0;padding-top:0}
.process-num{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--navy);color:var(--white);font-family:var(--display);font-weight:800;font-size:14px;margin-top:2px}
.process-list strong{display:block;font-size:15.5px;font-weight:650;line-height:1.35}
.process-list small{display:block;font-size:13.5px;color:var(--muted);line-height:1.45;margin-top:2px}
.process-note{margin-top:18px;font-size:13.5px;color:var(--muted);line-height:1.5}
.ownership{margin-top:56px;background:var(--blue);color:var(--white);border-radius:24px;padding:44px 48px;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:40px;position:relative;overflow:hidden}
.ownership::after{content:"";position:absolute;right:-80px;bottom:-120px;width:360px;height:360px;background:var(--navy);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);opacity:.35}
.ownership-head{position:relative}
.ownership-head .eyebrow{color:var(--teal)}
.ownership-title{font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,1.6rem + 3vw,4.5rem);letter-spacing:-.04em;line-height:.95;margin-top:14px}
.ownership-list{margin:0;position:relative;display:flex;flex-direction:column;gap:16px}
.ownership-list div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.25)}
.ownership-list div:first-child{border-top:0;padding-top:0}
.ownership-list dt{font-weight:700;font-size:15px}
.ownership-list dd{margin:0;font-size:15px;line-height:1.6;color:#DBEAFE}

/* ---------- faq ---------- */
.faq{background:var(--white);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h);border-top:1px solid var(--line)}
.faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.faq-layout .section-head{margin-bottom:0;position:sticky;top:calc(var(--header-h) + 24px)}
.faq-layout .section-lede a{color:var(--blue)}
.faq-list{border-top:2px solid var(--navy)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font-family:var(--display);font-weight:700;font-size:clamp(1.05rem,1rem + .4vw,1.3rem);letter-spacing:-.01em;line-height:1.3;transition:color .2s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";flex-shrink:0;width:36px;height:36px;border-radius:50%;border:2px solid var(--navy);background:linear-gradient(var(--navy),var(--navy)) center/14px 2px no-repeat,linear-gradient(var(--navy),var(--navy)) center/2px 14px no-repeat;transition:transform .35s var(--ease-out),background .2s}
.faq-item summary:hover{color:var(--blue)}
.faq-item[open] summary::after{transform:rotate(45deg);background-color:var(--blue);border-color:var(--blue);background-image:linear-gradient(var(--white),var(--white)),linear-gradient(var(--white),var(--white))}
.faq-body{padding:0 56px 22px 0;animation:faq-in .35s var(--ease-out)}
.faq-body p{font-size:15.5px;line-height:1.65;color:var(--muted)}
@keyframes faq-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- contact ---------- */
.contact{background:var(--navy);color:var(--white);padding-block:clamp(72px,9vw,120px);scroll-margin-top:var(--header-h)}
.contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:start}
.contact-intro .eyebrow{color:var(--teal)}
.contact-intro .section-lede{color:var(--ink-soft)}
.contact-methods{margin-top:32px;display:flex;flex-direction:column;gap:14px}
.contact-methods li{display:flex;flex-direction:column;gap:2px;font-size:15.5px;line-height:1.5}
.contact-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:650;color:var(--teal)}
.contact-methods a{text-decoration:none;font-family:var(--display);font-weight:750;font-size:22px;letter-spacing:-.01em}
.contact-methods a:hover{color:var(--teal)}
.next-steps{margin:32px 0 0;padding:0 0 0 22px;display:flex;flex-direction:column;gap:8px;color:var(--ink-soft);font-size:15px}
.next-steps li::marker{color:var(--teal);font-weight:700}
.contact-form{background:var(--white);color:var(--navy);border-radius:22px;padding:34px 36px;display:flex;flex-direction:column;gap:18px}
.contact-form .field-grid+.field-grid{margin-top:0}
.contact-logo{display:flex;flex-direction:column;gap:16px;padding:20px;background:var(--ivory);border-radius:14px;border-left:4px solid var(--teal)}
.contact-estimate{background:var(--ivory);border-radius:14px;padding:16px 18px;border:1px solid var(--line)}
.contact-estimate-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:15px}
.contact-estimate-head .text-link{min-height:32px;font-size:14px}
.contact-estimate-text{margin:10px 0 0;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;max-height:220px;overflow:auto;color:var(--muted)}
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.turnstile-slot:empty{display:none}
.contact-privacy{font-size:13.5px;color:var(--muted);line-height:1.55}
.contact-privacy a{color:var(--blue)}
.contact-submit{display:flex;flex-direction:column;gap:12px}
.contact-status{font-size:15px;line-height:1.55;font-weight:500;min-height:0}
.contact-status.is-error{color:#B91C1C}
.contact-status.is-success{color:#166534}
.contact-status a{color:var(--blue)}
.contact-form.is-sent .contact-submit .button{display:none}

/* ---------- footer ---------- */
.site-footer{background:#0A1020;color:var(--ink-soft);font-size:14.5px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr;gap:40px;padding:56px 0 40px}
.footer-brand .brand{color:var(--white)}
.footer-brand .wordmark>span{color:var(--ink-soft)}
.footer-brand p{margin-top:18px;max-width:340px;line-height:1.6}
.footer-heading{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:650;color:var(--teal);margin-bottom:12px}
.footer-col{display:flex;flex-direction:column;gap:6px;line-height:1.6}
.footer-col a{text-decoration:none;color:var(--white);padding:2px 0;width:fit-content}
.footer-col a:hover{color:var(--teal)}
.footer-legal{display:flex;justify-content:space-between;gap:16px;padding:20px 0 28px;border-top:1px solid var(--line-dark);font-size:13px}
.no-script{padding-block:24px}

/* ---------- responsive additions ---------- */
@media(max-width:1279px){
  .est-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:28px}
  .est{padding:28px}
  .ownership{padding:36px}
  .footer-grid{grid-template-columns:1.2fr 1fr 1fr 1fr}
}
@media(max-width:1023px){
  .package-grid{grid-template-columns:1fr;gap:16px;max-width:560px}
  .package{padding:28px 26px 26px}
  .package-audience{min-height:0}
  .pricing-details{grid-template-columns:1fr;gap:36px;margin-top:48px}
  .est-layout{grid-template-columns:1fr}
  .est-summary{position:static}
  .choice-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .care-head{grid-template-columns:1fr;gap:16px}
  .care-grid{grid-template-columns:1fr;max-width:600px}
  .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .ownership{grid-template-columns:1fr;gap:24px;padding:32px 28px}
  .faq-layout{grid-template-columns:1fr;gap:28px}
  .faq-layout .section-head{position:static}
  .contact-layout{grid-template-columns:1fr;gap:36px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px;padding:44px 0 32px}
}
@media(max-width:599px){
  .field-grid{grid-template-columns:1fr}
  .choice-grid,.choice-grid-3{grid-template-columns:1fr}
  .check-grid{grid-template-columns:1fr}
  .est{padding:22px 18px 20px;border-radius:16px}
  .est-progress li{font-size:0;gap:0;justify-content:center}
  .est-progress li .est-progress-num{font-size:13px}
  .est-legend{font-size:1.5rem}
  .addon{grid-template-columns:auto 1fr;gap:12px 14px;padding:14px}
  .addon-price{grid-column:2;justify-self:start;font-size:15px}
  .addon-stepper{grid-template-columns:1fr}
  .addon-stepper .addon-price{grid-column:1}
  .addon-stepper .stepper{justify-self:start}
  .addon-radio{grid-template-columns:1fr}
  .field-stepper{align-items:flex-start;flex-direction:column;gap:12px}
  .est-nav{flex-direction:column-reverse}
  .est-nav .button{width:100%}
  .est-nav [data-est-nav="next"]{margin-left:0}
  .est-actions .button{width:100%}
  .est-summary{padding:24px 20px;border-radius:16px}
  .est-split{grid-template-columns:1fr}
  .care-plan{padding:24px 20px}
  .work-grid{grid-template-columns:1fr;gap:28px}
  .process{padding:24px 20px}
  .ownership{padding:26px 20px;border-radius:16px}
  .ownership-list div{grid-template-columns:1fr;gap:4px}
  .faq-body{padding-right:0}
  .contact-form{padding:24px 18px;border-radius:16px}
  .contact-methods a{font-size:19px}
  .contact-submit .button{width:100%}
  .footer-grid{grid-template-columns:1fr;gap:24px;padding:40px 0 28px}
  .footer-legal{flex-direction:column;gap:4px}
}

/* ---------- secondary pages ---------- */
.legal{max-width:760px;padding-block:clamp(56px,7vw,96px)}
.legal-title{font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,1.6rem + 3vw,4rem);letter-spacing:-.035em;line-height:1;margin-top:16px;text-wrap:balance}
.legal-meta{font-size:14px;color:var(--muted);margin:16px 0 32px}
.legal h2{font-family:var(--display);font-weight:750;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);letter-spacing:-.02em;margin:36px 0 10px}
.legal p,.legal li{font-size:16.5px;line-height:1.7;color:#334155}
.legal p+p{margin-top:12px}
.legal ul,.legal ol{padding-left:22px;display:flex;flex-direction:column;gap:8px}
.legal ul{list-style:disc}
.legal a{color:var(--blue)}
.notfound{max-width:760px;padding-block:clamp(72px,10vw,140px)}
.notfound-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.notfound-help{margin-top:28px;font-size:15px;color:var(--muted)}
.notfound-help a{color:var(--blue)}

/* ---------- demo: added controls ---------- */
.demo-field{display:flex;flex-direction:column;gap:6px;margin-top:16px;max-width:320px}
.demo-field span{font-size:13px;font-weight:600}
.demo-field input{font:inherit;font-size:15px;padding:10px 14px;min-height:44px;border-radius:999px;border:1.5px solid rgba(15,23,42,.2);background:var(--white);color:var(--navy)}
.demo-field input:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.2)}
.demo-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:12px;margin-top:14px}
.demo-row .control-group{margin-top:0}
.demo-row-label{font-size:13px;font-weight:650;color:var(--muted)}
.swatches{display:flex;flex-wrap:wrap;gap:8px}
.swatch{width:34px;height:34px;border-radius:50%;background:var(--sw);border:3px solid var(--white);box-shadow:0 0 0 1.5px rgba(15,23,42,.18);cursor:pointer;transition:transform .25s var(--ease-out),box-shadow .25s;position:relative}
.swatch:hover{transform:scale(1.1)}
.swatch[aria-pressed="true"],.swatch.is-on{box-shadow:0 0 0 2.5px var(--navy);transform:scale(1.08)}
.swatch-custom{display:grid;place-items:center;background:conic-gradient(#C2410C,#2563EB,#14532D,#DB2777,#6D28D9,#B45309,#C2410C);color:var(--white);font-weight:800;font-size:16px;line-height:1;overflow:hidden}
.swatch-custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.swatch-custom span{text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none}
.demo-stage-bar{display:flex;justify-content:flex-end;gap:22px;width:100%;max-width:680px;margin-bottom:12px}
.demo-stage-bar .text-link{min-height:36px;font-size:14px}
.demo-shuffle span{display:inline-block;transition:transform .5s var(--ease-out)}
.demo-shuffle:hover span{transform:rotate(180deg)}
.concept.is-shuffling{animation:concept-pop .55s var(--ease-out)}
@keyframes concept-pop{0%{transform:scale(1)}40%{transform:scale(.985)}100%{transform:scale(1)}}

/* ---------- pricing: header row, view toggle, compare tables, discount ---------- */
.pricing-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:48px}
.pricing-head .section-head{margin-bottom:0}
.view-toggle{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.08);flex-shrink:0}
.view-toggle .seg{color:var(--white)}
.view-toggle .seg:hover{background:rgba(255,255,255,.12)}
.view-toggle .seg.is-on{background:var(--white);color:var(--navy)}
.view-toggle-light{background:rgba(15,23,42,.08);margin-top:18px}
.view-toggle-light .seg{color:var(--navy)}
.view-toggle-light .seg:hover{background:rgba(255,255,255,.7)}
.view-toggle-light .seg.is-on{background:var(--navy);color:var(--white)}
.view-panel[hidden]{display:none}
.view-panel{animation:view-in .4s var(--ease-out)}
@keyframes view-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.package-best{font-size:14.5px;line-height:1.55;color:var(--muted);margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.compare-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:18px;background:var(--white);color:var(--navy);box-shadow:0 30px 60px rgba(0,0,0,.25)}
.compare-wrap:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.compare{width:100%;border-collapse:separate;border-spacing:0;min-width:720px;font-size:15px}
.compare th,.compare td{padding:14px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.45}
.compare thead th{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.02em;padding-top:22px;padding-bottom:16px;background:var(--ivory);position:sticky;top:0}
.compare thead th:first-child{font-family:var(--sans);font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:650;color:var(--muted);vertical-align:bottom}
.compare-price{display:block;font-size:14px;font-weight:600;letter-spacing:0;color:var(--blue);font-family:var(--sans);margin-top:4px}
.compare tbody th{font-weight:650;color:var(--navy);width:30%;background:var(--white);position:sticky;left:0;z-index:1;box-shadow:1px 0 0 var(--line)}
.compare thead th:first-child{position:sticky;left:0;z-index:2;background:var(--ivory)}
.compare tbody td{color:var(--muted)}
.compare tbody tr:hover td{background:#F5F9FF}
.compare .yes{color:var(--navy);font-weight:650;position:relative;padding-left:20px}
.compare .yes::before{content:"";position:absolute;left:0;top:6px;width:11px;height:11px;background:var(--teal);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.compare tfoot td{border-bottom:0;padding:18px;background:var(--ivory)}
.compare tfoot .button-light{background:var(--navy);border-color:var(--navy);color:var(--white)}
.compare tfoot .button-light:hover{background:var(--blue);border-color:var(--blue)}
.compare-wrap-light{box-shadow:0 20px 50px rgba(15,23,42,.1);border:1px solid var(--line)}
.compare-light thead th,.compare-light thead th:first-child,.compare-light tfoot td{background:var(--sand)}
.discount-card{margin-top:28px;padding:22px 24px;border-radius:16px;background:linear-gradient(135deg,rgba(37,99,235,.35),rgba(45,212,191,.2));border:1px solid rgba(45,212,191,.35)}
.discount-title{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--white);margin-bottom:8px}
.discount-card p:not(.discount-title){font-size:14.5px;line-height:1.6;color:var(--ink-soft)}

/* ---------- studio values ---------- */
.value-list{margin-top:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}
.value-list li{display:flex;gap:12px;align-items:flex-start}
.value-icon{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--navy);color:var(--teal);flex-shrink:0}
.value-icon svg{width:22px;height:22px}
.value-list strong{display:block;font-size:15.5px;font-weight:650;line-height:1.3}
.value-list small{display:block;font-size:13.5px;line-height:1.45;color:var(--muted);margin-top:3px}

@media(max-width:1023px){
  .pricing-head{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:32px}
  .value-list{grid-template-columns:1fr}
  .demo-stage-bar{max-width:none;justify-content:flex-start}
}
@media(max-width:599px){
  .demo-row{grid-template-columns:1fr;gap:6px}
  .compare{min-width:600px;font-size:14px}
  .compare th,.compare td{padding:12px 12px}
  .compare thead th{font-size:16px}
  .compare tbody th{width:38%}
  .view-toggle .seg{padding:0 14px;font-size:13px}
}
@media(max-width:419px){
  .demo-steps .step-index{display:none}
  .demo-step-head{padding:8px 6px;gap:0}
}
