/* Shared presentation layer: app states, forms and checkout logic remain local. */
.revamp { --accent:#0872da; --accent-deep:#0655a4; --accent-soft:#e9f4ff; --base:#f7f9fc; --surface:#fff; --surface-alt:#edf3fa; --ink:#10283f; --ink-2:#526477; --rule:#d8e3ed; background:var(--base); color:var(--ink) }
.revamp.page-marketing main { overflow:clip }
.revamp .wrap { max-width:1200px }
.revamp.page-marketing h1 { font-size:clamp(40px,5.8vw,74px); line-height:1.04; letter-spacing:-.045em; max-width:1000px }
.revamp.page-marketing .hero { padding-top:70px; padding-bottom:68px }
.revamp.page-marketing section { padding-block:76px }
.revamp.page-marketing section h2 { max-width:850px; line-height:1.12 }
.revamp.page-marketing section.alt { background:#edf3fa }
.revamp :is(.cta,.buy,.plainlink,.bigcall) { transition:transform .22s,box-shadow .22s,background .22s }
.revamp :is(.cta,.buy):hover { transform:translateY(-3px); box-shadow:0 10px 26px #0872da29 }
.revamp :is(.cta,.buy):active { transform:translateY(0) }
.revamp :is(button,a,input,textarea,select,summary):focus-visible { outline:3px solid #31a0f1; outline-offset:4px }
.revamp .menupanel [data-ai-open] { color:#0872da; font-weight:700 }
.revamp .hero > .lede { max-width:760px; font-size:20px; line-height:1.6 }
.revamp .eyebrow { letter-spacing:.1em; font-size:12px }
.revamp .cols { gap:20px }
.revamp .cols > div { background:var(--surface); padding:28px; border:1px solid var(--rule); border-radius:18px; transition:transform .25s,box-shadow .25s }
.revamp .cols > div:hover { transform:translateY(-4px); box-shadow:0 18px 35px -22px #17375555 }
.revamp .cols h3 { font-size:21px; margin-bottom:12px; line-height:1.25 }
.revamp .cols p { font-size:17px; line-height:1.65 }
.revamp ol.steps { gap:24px }
.revamp ol.steps li { border-radius:16px; background:var(--surface); border:1px solid var(--rule); padding:26px 26px 26px 72px }
.revamp .faq details { border:1px solid var(--rule); border-radius:12px; margin-bottom:10px; background:white; overflow:clip }
.revamp .faq summary { padding:20px 24px; font-size:17px; transition:background .2s }
.revamp .faq details[open] summary { background:#eaf4ff; color:#075eaf }
.revamp .faq details > :not(summary) { padding-inline:24px }
.revamp .strip,.revamp .deal { border-radius:20px; border:1px solid #bcd3e9; background:linear-gradient(125deg,#fff,#eaf4ff); box-shadow:0 20px 45px -32px #0e548a66 }
/* The placards were blue with white type; the revamp made them white and
   left the type white. Ink on a light card, wherever the page's own rules
   still say ink-on-placard. */
.revamp .strip,.revamp .deal,.revamp .strip dt,.revamp .deal dt,.revamp .strip dd,.revamp .deal dd { color:var(--ink,#0B1220) }
.revamp .strip .kicker,.revamp .deal .kicker { color:#075eaf; border-bottom-color:#bcd3e9 }
.revamp .strip dd,.revamp .deal dd { color:#075eaf }
.revamp .stats { border-block:1px solid var(--rule); background:#fff }
.revamp .stats strong { color:#0872da }
.revamp footer { border-top:1px solid var(--rule); background:#eaf0f7; padding-block:40px; font-size:15px }
.revamp :is(.checkbox,.contactform,.intake) { border-radius:20px; box-shadow:0 20px 50px -35px #123e6866 }
.revamp :is(input,textarea,select) { border-radius:9px }
.revamp :is(input,textarea,select):focus { border-color:var(--accent) }
.ai-inline { display:flex; align-items:center; gap:12px; margin:25px 0 0; padding:15px 16px; border:1px solid #bad7ef; border-radius:12px; max-width:490px; text-decoration:none; color:#365870; background:#edf7ff; font-size:15px; line-height:1.5 }
.ai-inline strong { display:block; font-weight:600; color:#12456e }
.ai-glyph { display:grid; place-items:center; width:36px; height:36px; flex-shrink:0; border-radius:10px; background:#0872da; color:white; font-size:25px }
.ai-inline > span:last-child { margin-left:auto; font-size:23px }
/* Pricing: four genuine purchase options in one consistent comparison. */
body[data-page="pricing"] .hero::before { background:radial-gradient(ellipse at 65% 20%,#d9ecff 0%,transparent 65%) }
body[data-page="pricing"] .pricing-jump { display:flex; flex-wrap:wrap; gap:24px; margin:24px 0 34px; font-size:16px }
body[data-page="pricing"] .rates.pricing-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; align-items:stretch; margin-top:36px }
body[data-page="pricing"] .pricing-cards > :is(.rate,.tier) { display:flex; flex-direction:column; position:relative; margin:0; padding:30px 23px 24px; background:white; border:1px solid #cfdde9; border-radius:20px; color:#10283f; box-shadow:0 18px 40px -30px #194c7d55; transition:transform .25s,box-shadow .25s }
body[data-page="pricing"] .pricing-cards > :hover { transform:translateY(-5px); box-shadow:0 24px 45px -26px #194c7d66 }
body[data-page="pricing"] .pricing-cards > .tier-pick { background:#0b2e4a; color:#d0e7f8; border-color:#0b2e4a }
body[data-page="pricing"] .tier-pick h3,body[data-page="pricing"] .tier-pick .tier-price { color:white }
body[data-page="pricing"] .tier-pick .tier-count,body[data-page="pricing"] .tier-pick .tier-who,body[data-page="pricing"] .tier-pick .tier-price span { color:#c6dcef }
body[data-page="pricing"] .tier-flag { position:static; order:-2; align-self:flex-start; padding:5px 8px; margin:0 0 14px; background:#194969; color:#b8e7ff; border-radius:6px; font-size:12px }
body[data-page="pricing"] .pricing-cards h3 { font-size:23px; margin:0 0 22px; font-weight:600; order:-1 }
body[data-page="pricing"] .rate-tag { order:-2; margin-bottom:14px; font-size:12px; color:#0872da; letter-spacing:.08em }
body[data-page="pricing"] .pricing-cards > .tier:not(.tier-pick)::before { content:'MONTHLY SUBSCRIPTION'; color:#0872da; order:-2; font-size:12px; letter-spacing:.04em; margin-bottom:19px }
body[data-page="pricing"] :is(.rate-num,.tier-price) { font-size:clamp(32px,3.4vw,43px); font-weight:600; line-height:1.1; letter-spacing:-.04em; margin:0 0 15px; color:#153952 }
body[data-page="pricing"] .rate-num::after { content:'one-time service fee'; display:block; margin-top:8px; font-size:14px; font-weight:400; letter-spacing:0; color:#526477 }
body[data-page="pricing"] .tier-price span { display:block; margin-top:8px; font-size:14px; font-weight:400; letter-spacing:0 }
body[data-page="pricing"] .tier-count { font-weight:600; color:#153952; font-size:17px }
body[data-page="pricing"] .tier-each { color:#0872da; font-size:14px; margin:8px 0 20px }
body[data-page="pricing"] .tier-pick .tier-each { color:#87d7ff }
body[data-page="pricing"] :is(.rate-what,.tier-who) { font-size:16px; line-height:1.6; margin:0 0 24px }
body[data-page="pricing"] .rate ul { padding-left:18px; margin:0 0 24px; font-size:14px; line-height:1.6 }
body[data-page="pricing"] .pricing-cards .buy { margin-top:auto; min-height:48px; padding:12px 8px; width:100%; font-size:15px; border-radius:10px; text-align:center }
body[data-page="pricing"] .rate-disclosure { font-size:14px; color:#526477; line-height:1.6; max-width:780px; margin-top:20px }
body[data-page="pricing"] .zero { border:1px solid #c6dfd4; border-radius:12px; background:#eff9f3; color:#305c49; padding:18px 22px; font-size:16px }
body[data-page="pricing"] .first-free { background:#0b2e4a; color:#c8e3f7 }
body[data-page="pricing"] .first-free :is(h2,.lede,a) { color:inherit }
body[data-page="pricing"] .first-free h2 { color:white }
body[data-page="pricing"] .first-free .bigcall { font-size:32px }
/* Account, staff and document pages get the same finish without hiding working controls. */
.revamp.page-workspace :is(.box,.assistant,.card,.panel) { border:1px solid #d3e0ec; border-radius:16px; box-shadow:0 12px 32px -26px #153f6b55 }
.revamp.page-workspace :is(h1,h2) { letter-spacing:-.025em }
.revamp.page-workspace input,.revamp.page-workspace textarea,.revamp.page-workspace select { font-size:16px; padding:12px }
.revamp.page-workspace header { background:#f4f8fc; border-bottom:1px solid #d5e2ef }
.revamp.page-document main { background:white; border:1px solid #d8e3ed; border-radius:20px; padding:40px; margin-top:40px; margin-bottom:40px; box-shadow:0 20px 50px -35px #173e6655 }
.revamp.page-document h1 { color:#102f4d; letter-spacing:-.035em }
/* Motion is progressively enhanced; content is never hidden by CSS while waiting for JS. */
.site-enter { animation:site-enter .65s cubic-bezier(.2,.7,.2,1) both }
@keyframes site-enter { from { opacity:.35; transform:translateY(22px) } to { opacity:1; transform:none } }
.site-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:100; transform-origin:left; transform:scaleX(0); background:linear-gradient(90deg,#0872da,#65d9ff); pointer-events:none }
@media(max-width:1000px) { body[data-page="pricing"] .rates.pricing-cards { grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media(max-width:640px) {
 .revamp.page-marketing .hero { padding-top:36px; padding-bottom:42px }
 .revamp.page-marketing section { padding-block:48px }
 .revamp.page-marketing .hero > .lede { font-size:18px }
 .revamp .cols > div { padding:22px }
 body[data-page="pricing"] .rates.pricing-cards { grid-template-columns:minmax(0,1fr) }
 body[data-page="pricing"] .pricing-cards > :is(.rate,.tier) { padding:25px }
 .revamp.page-document main { border-radius:0; padding:28px 22px; margin:0; border-inline:0 }
}
@media(prefers-reduced-motion:reduce) {
 .revamp *, .revamp *::before, .revamp *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important }
 .revamp :is(.cols > div,.cta,.buy,.rate,.tier):hover { transform:none }
}
/* A focused, accessible AI guide shared across the public pages. */
.ai-launcher { position:fixed; right:24px; bottom:24px; z-index:80; display:flex; align-items:center; gap:10px; border:1px solid #5a9bce; background:#0a2c49; color:white; border-radius:999px; min-height:54px; padding:12px 22px; font:600 16px system-ui,sans-serif; cursor:pointer; box-shadow:0 8px 28px #06233b40; transition:transform .2s,box-shadow .2s }
.ai-launcher:hover { transform:translateY(-4px); box-shadow:0 14px 35px #06233b55 }
.ai-launcher.ai-launcher-tucked { transform:translateY(140px); opacity:0; pointer-events:none }
.ai-launcher span { font-size:25px; color:#8ed8ff }
.ai-guide { position:fixed; inset:auto 24px 88px auto; margin:0; width:min(460px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 115px); padding:0; border:1px solid #95b8d4; border-radius:22px; background:white; color:#142f46; box-shadow:0 24px 100px #02182f55; overflow:auto; font:16px/1.55 system-ui,sans-serif }
.ai-guide[open] { animation:guide-open .22s ease-out }
.ai-guide::backdrop { background:#051c394a; backdrop-filter:blur(3px) }
@keyframes guide-open { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
.guide-top { position:sticky; top:0; display:flex; justify-content:space-between; gap:14px; align-items:center; padding:20px 24px; background:#0a2c49; color:white; z-index:1 }
.guide-label { font-size:12px; letter-spacing:.13em; color:#97c8eb }
.guide-top h2 { color:white; font:600 23px/1.2 system-ui,sans-serif; margin:7px 0 0; letter-spacing:-.025em }
.guide-close { background:#ffffff16; border:1px solid #7896ad; color:white; width:44px; height:44px; flex-shrink:0; border-radius:50%; font-size:28px; cursor:pointer }
.guide-content { padding:22px 24px }
.guide-intro { margin:0 0 18px; color:#4d6477 }
.guide-examples { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px }
.guide-examples button { background:#edf6ff; color:#0866b5; border:1px solid #bddbf3; border-radius:8px; font-size:14px; padding:10px 12px; min-height:44px; cursor:pointer }
#guide-form label { display:block; font-weight:600; margin:16px 0 7px; font-size:15px }
#guide-form label span { font-weight:400; color:#607487 }
#guide-form input,#guide-form textarea { display:block; box-sizing:border-box; width:100%; padding:12px; font:16px/1.5 system-ui,sans-serif; border:1px solid #b8cddd; border-radius:9px; color:#142f46; background:#f9fcff }
#guide-form textarea { resize:vertical; min-height:120px }
.guide-privacy,.guide-disclaimer { font-size:13px; color:#607487; line-height:1.55 }
.guide-submit { display:flex; justify-content:space-between; width:100%; border:0; border-radius:10px; padding:14px 18px; margin-top:14px; min-height:50px; background:#0872da; color:white; font:600 16px system-ui,sans-serif; cursor:pointer }
.guide-submit:disabled { opacity:.6; cursor:wait }
.guide-cancel { border:0; background:transparent; color:#526477; padding:12px; min-height:44px; font-size:14px; text-decoration:underline; cursor:pointer }
.guide-status { font-size:14px; color:#176196; margin:16px 0 }
.guide-status.guide-error { color:#a13936 }
.guide-answer section { padding:18px 0; border-top:1px solid #d5e3ee; margin:0 }
.guide-answer h3 { font:600 18px/1.3 system-ui,sans-serif; margin:0 0 10px; color:#103f63 }
.guide-answer p { white-space:pre-wrap; margin:0; font-size:16px }
.guide-answer ul { padding-left:22px; margin:0 }
.guide-answer li { margin:8px 0 }
.guide-next { display:grid; gap:10px; padding:18px 0; border-top:1px solid #d5e3ee }
.guide-next a { font-size:15px; font-weight:600; color:#0866b5 }
.guide-disclaimer { border-top:1px solid #d5e3ee; padding-top:16px; margin-bottom:0 }
.ai-guide [hidden] { display:none!important }
.ai-guide a { color:#0866b5 }
@media(max-width:640px) {
 .ai-launcher { bottom:calc(88px + env(safe-area-inset-bottom)); right:16px; padding:10px 16px; min-height:48px }
 .ai-guide { inset:auto 8px 8px; width:calc(100vw - 16px); max-height:calc(100dvh - 24px); border-radius:18px; padding-bottom:env(safe-area-inset-bottom) }
 .guide-content { padding:20px }
}
.ai-guide.is-loading .guide-status::before { content:''; display:inline-block; width:12px; height:12px; border:2px solid #b9dbf3; border-top-color:#0872da; border-radius:50%; animation:guide-spin .8s linear infinite; margin-right:8px; vertical-align:-2px }
@keyframes guide-spin { to { transform:rotate(360deg) } }
body[data-page="services"] .hero,body[data-page="contractors"] .hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); column-gap:56px; align-items:start }
body[data-page="services"] .hero > :is(.eyebrow,h1,.lede),body[data-page="contractors"] .hero > :is(h1,.lede) { grid-column:1; margin-bottom:18px }
body[data-page="services"] .hero > .strip { grid-column:2; grid-row:2 / span 3; margin-top:0; width:100% }
body[data-page="contractors"] .hero > .deal { grid-column:2; grid-row:1 / span 2; margin-top:0; width:100% }
body[data-page="contractors"] .hero > .fine { grid-column:2; grid-row:3; font-size:14px; margin-top:16px }
.hero-actions { grid-column:1; display:flex; flex-wrap:wrap; gap:12px; margin-top:12px }
.hero-actions .cta { margin:0!important }
body[data-page="pricing"] .plan-benefits { padding-left:18px; font-size:14px; line-height:1.6; margin:0 0 24px }
body[data-page="pricing"] .plan-benefits li { margin-bottom:8px }
@media(max-width:900px) {
 body[data-page="services"] .hero,body[data-page="contractors"] .hero { display:block }
 body[data-page="services"] .hero > .strip,body[data-page="contractors"] .hero > .deal { margin-top:24px }
 .hero-actions { margin-top:22px }
}
/* Connect the visual model to the product itself. */
.revamp[data-page="index"] .hero h1 { font-size:clamp(39px,5.4vw,67px); line-height:1.07 }
.model-ai-link { display:flex; justify-content:space-between; gap:16px; align-items:center; margin:0 24px 22px; padding:13px 16px; border:1px solid #3879a4; border-radius:10px; background:#143e5a; color:#c8eeff!important; text-decoration:none; font:500 14px/1.5 'Chivo',sans-serif; transition:background .2s }
.model-ai-link:hover { background:#20577a }
.ai-path { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-bottom:48px }
.ai-path > a { display:flex; align-items:center; gap:16px; color:#173e60; text-decoration:none; padding:24px; background:white; border-block:1px solid #cddfee; border-right:1px solid #cddfee; transition:background .25s,transform .25s }
.ai-path > a:first-child { border-left:1px solid #cddfee; border-radius:16px 0 0 16px }
.ai-path > a:last-child { border-radius:0 16px 16px 0 }
.ai-path > a:hover { background:#eaf5ff; transform:translateY(-3px) }
.path-number { color:#1185e8; font:500 26px 'Chivo',sans-serif; letter-spacing:-.04em }
.ai-path strong { display:block; font:600 18px 'Chivo',sans-serif; margin-bottom:6px }
.ai-path small { font-size:14px; line-height:1.5; color:#526c81 }
.revamp .project-stage { background:radial-gradient(ellipse at 65% 35%,#155578 0%,#0b2c48 52%,#071c30 100%) }
@media(max-width:700px) {
 .ai-path { grid-template-columns:1fr; margin-bottom:28px }
 .ai-path > a { border:1px solid #cddfee; border-bottom:0; padding:20px }
 .ai-path > a:first-child { border-radius:14px 14px 0 0 }
 .ai-path > a:last-child { border-bottom:1px solid #cddfee; border-radius:0 0 14px 14px }
}

/* Keep scrolling inexpensive: opaque fixed surfaces avoid live backdrop sampling. */
.revamp .top,.revamp .stickybar { backdrop-filter:none; -webkit-backdrop-filter:none; background:#f8fbff }
.revamp .hero-panel { animation:none; backdrop-filter:none; -webkit-backdrop-filter:none }
.revamp .hero .cta.primary::before,.revamp .hero .cta.primary::after { animation-iteration-count:1 }
.revamp .project-stage { contain:layout paint }

/* A lightweight, user-controlled walkthrough beside the AI workflow. */
.revamp .assistant-video { padding:24px 0 64px }
.assistant-video-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:36px; align-items:center; margin-bottom:28px }
.assistant-video-heading h2 { margin-bottom:0 }
.assistant-video-heading p { color:#526c81; font-size:18px; line-height:1.65; margin:0 }
.assistant-video-player { margin:0 0 24px }
.assistant-video-player video { display:block; width:100%; height:auto; aspect-ratio:8/5; border:1px solid #cddfee; border-radius:16px; background:#112f4b }
.assistant-video-player figcaption { max-width:940px; margin:14px 0 0; color:#526c81; font-size:14px; line-height:1.6 }
@media(max-width:700px) { .assistant-video-heading { grid-template-columns:1fr; gap:18px } .revamp .assistant-video { padding-bottom:40px } }
/* Project studio: interaction creates motion; idle pages stay quiet. */
.offer-ribbon { background:#0b2c49; color:#dceeff; border-bottom:1px solid #2b5572 }
.offer-ribbon > .wrap { display:flex; align-items:center; gap:20px; padding-block:15px; flex-wrap:wrap }
.offer-ribbon strong { display:block; font-size:17px; color:#fff; font-weight:600 }
.offer-ribbon div > span { display:block; font-size:14px; color:#b5d2e7; margin-top:3px }
.offer-ribbon a { margin-left:auto; flex-shrink:0; color:#0b2c49; background:#b8e9ff; border:1px solid #b8e9ff; border-radius:8px; padding:12px 16px; text-decoration:none; font-size:15px; font-weight:600; transition:transform .2s,background .2s }
.offer-ribbon a:hover { transform:translateY(-2px); background:white }
.offer-ribbon small { font-size:13px; color:#b5d2e7 }
.revamp .hero-speed { max-width:480px; font-size:15px; line-height:1.65; margin:22px 0 0; color:#526c81 }
.hero-speed strong { color:#0b4772 }
.revamp .offer-terms { max-width:470px; font-size:13px; line-height:1.55; color:#526c81; margin:14px 0 0 }
.revamp .project-stage { background:radial-gradient(ellipse at 70% 35%,#175d7f 0%,#0c304c 42%,#061b30 86%); border-color:#4382a5; box-shadow:0 30px 65px -35px #071d4a99,inset 0 1px 0 #8bc2dd40 }
.revamp .project-stage h2 { font-size:clamp(27px,2.7vw,36px); margin-top:18px }
.model-projects { display:flex; gap:7px; margin:22px 24px 0; flex-wrap:wrap }
.model-projects button { min-height:42px; flex:1; padding:9px 10px; border:1px solid #477998; background:#0b2c4680; color:#bcd8ea; border-radius:999px; font:500 14px 'Chivo',sans-serif; cursor:pointer; white-space:nowrap; transition:background .2s,border-color .2s,transform .2s }
.model-projects button[aria-pressed="true"] { background:#b9ecff; color:#06334d; border-color:#b9ecff }
.model-projects button:hover { transform:translateY(-2px); border-color:#c5f0ff }
.revamp .model-viewport { height:360px; margin-top:0 }
.revamp .model-tag { bottom:5px; color:#d0e9f8; font-size:11px; letter-spacing:.12em }
.model-layer-control { display:grid; grid-template-columns:1fr auto; gap:2px 16px; align-items:center; padding:17px 26px 0 }
.model-layer-control label { font:500 14px 'Chivo',sans-serif; color:#d3eaff }
.model-layer-control input { grid-row:2; width:100%; min-width:0; height:30px; margin:0; accent-color:#a5e7ff; cursor:ew-resize }
.model-layer-control button { grid-column:2; grid-row:1 / span 2; padding:10px; min-height:44px; color:#d3eaff; background:#103651; border:1px solid #3a6885; border-radius:8px; font:500 14px 'Chivo',sans-serif; cursor:pointer }
.revamp .model-footer { font-size:13px }
.revamp .model-caption { min-height:65px; padding-block:12px 15px }
.revamp .model-ai-link { background:#bbeaff; color:#073957!important; border-color:#bbeaff; font-size:15px; font-weight:600; margin-bottom:24px }
.revamp .model-ai-link:hover { background:white }
.revamp .pricing-speed { max-width:740px; color:#526c81; font-size:16px; line-height:1.6; margin:20px 0 }
/* The application cards are actual readable interface examples in 3D space. */
.revamp .permit-workflow { background:linear-gradient(135deg,#e5f1fc,#f9fcff); border-block:1px solid #d2e3f2 }
.workflow-layout { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center }
.workflow-copy h2 { font-size:clamp(32px,3.8vw,48px); margin:16px 0 22px; letter-spacing:-.035em }
.workflow-copy > p { font-size:18px; line-height:1.7; color:#526c81; max-width:470px }
.workflow-tabs { display:grid; gap:10px; margin:28px 0 }
.workflow-tabs button { width:100%; display:flex; align-items:center; gap:18px; text-align:left; border:1px solid #c8daea; background:#ffffffb8; color:#173e60; border-radius:12px; padding:16px 20px; cursor:pointer; transition:background .22s,transform .22s,border-color .22s }
.workflow-tabs button > span:first-child { font:500 24px 'Chivo',sans-serif; color:#4792c4 }
.workflow-tabs strong { display:block; font:600 17px 'Chivo',sans-serif; margin-bottom:5px }
.workflow-tabs small { display:block; color:#526c81; font-size:14px; line-height:1.5 }
.workflow-tabs button[aria-pressed="true"] { background:#0c3555; border-color:#0c3555; color:white; transform:translateX(5px) }
.workflow-tabs button[aria-pressed="true"] :is(small,span:first-child) { color:#b7e5ff }
.workflow-display { min-width:0; padding:35px 0 }
.workflow-stack { position:relative; perspective:1200px; padding:0 14px 0 0 }
.workflow-ready .workflow-stack::before,.workflow-ready .workflow-stack::after { content:''; position:absolute; inset:0 14px 0 0; border:1px solid #8db5d6; border-radius:20px; background:#b8d7ee; transform:rotate(-7deg) translate(-13px,-7px); pointer-events:none }
.workflow-ready .workflow-stack::after { transform:rotate(4deg) translate(14px,10px); background:#d6e9f7; border-color:#a2c6e1 }
.workflow-card { position:relative; z-index:1; background:#fff; color:#183d5b; border:1px solid #c0d9ec; border-radius:20px; min-height:435px; padding:28px; box-shadow:0 25px 55px -35px #164870aa; margin:0 0 16px }
.workflow-ready .workflow-card { margin:0; transform:rotateY(-5deg) rotateX(2deg); animation:paper-arrive .5s cubic-bezier(.2,.7,.2,1) backwards }
.workflow-card-top { display:flex; justify-content:space-between; gap:8px; border-bottom:1px solid #dde8f2; padding-bottom:20px; font:600 12px 'Chivo',sans-serif; letter-spacing:.08em; color:#557890 }
.workflow-card h3 { font:600 24px/1.25 'Chivo',sans-serif; margin:24px 0; letter-spacing:-.025em }
.workflow-card p { font-size:16px; line-height:1.7; color:#526c81 }
.workflow-message { padding:22px; border-radius:14px 14px 3px 14px; color:#e8f7ff; background:#124669; font-size:19px; line-height:1.65; margin-bottom:25px }
.workflow-formats { display:flex; flex-wrap:wrap; gap:8px; padding-top:8px }
.workflow-formats span { font-size:14px; background:#eaf4fc; padding:8px 14px; border:1px solid #cce2f2; border-radius:999px }
.workflow-fields { margin:0 }
.workflow-fields > div { padding:11px 0; border-bottom:1px solid #e2ecf4; display:grid; grid-template-columns:1fr 1fr; gap:16px }
.workflow-fields dt { font-size:14px; color:#61778b }.workflow-fields dd { margin:0; font-size:16px; font-weight:500; color:#134d75 }
.workflow-card .workflow-source { color:#267460; font-size:14px; margin-top:22px }
.workflow-checks { list-style:none; padding:0; margin:0 }
.workflow-checks li { border-bottom:1px solid #e1eaf3; padding:12px 0 }
.workflow-checks strong { display:block; font-size:16px; color:#163f60; margin-bottom:5px }
.workflow-checks span { font-size:14px; line-height:1.5; color:#61778b }
.workflow-disclosure { font-size:13px; line-height:1.6; color:#59758b; margin:28px 14px 0 }
@keyframes paper-arrive { from { opacity:.2; transform:translateY(22px) rotateY(-22deg) rotateX(8deg) scale(.97) } }
/* Only a hovered card is promoted; no animation loops or scroll-driven parallax. */
@media(hover:hover) and (pointer:fine) {
 .revamp [data-depth-card].depth-active { transform:perspective(1000px) rotateX(var(--depth-x,0deg)) rotateY(var(--depth-y,0deg)) translateY(-4px); transition:transform .12s ease-out; will-change:transform }
 .revamp [data-depth-card] { transform-origin:center; transition:transform .25s,box-shadow .25s }
}
@media(max-width:960px) { .workflow-layout { gap:32px }.workflow-card { padding:24px;min-height:450px }.offer-ribbon small { display:none } }
@media(max-width:700px) {
 .offer-ribbon > .wrap { gap:10px; padding-block:12px }.offer-ribbon strong { font-size:15px }.offer-ribbon div > span { font-size:12px }.offer-ribbon a { font-size:13px; padding:10px 12px }.offer-ribbon small { display:block; width:100%; font-size:12px }
 .workflow-layout { grid-template-columns:minmax(0,1fr); gap:22px }.workflow-display { padding:12px 8px }.workflow-card { min-height:425px;padding:24px }.workflow-copy .cta { width:100%; text-align:center }.workflow-tabs button[aria-pressed="true"] { transform:none }
 .model-projects { margin-inline:16px; gap:6px }.model-projects button { font-size:13px;padding-inline:9px }.revamp .model-viewport { height:300px }.model-layer-control { padding-inline:20px }.revamp .hero-speed { font-size:14px }
}
@media(prefers-reduced-motion:reduce) {
 .revamp [data-depth-card].depth-active,.workflow-ready .workflow-card { transform:none!important; will-change:auto }
 .workflow-ready .workflow-stack::before { transform:translate(-7px,-7px) }.workflow-ready .workflow-stack::after { transform:translate(7px,7px) }
}
/* A focused customer workspace, with private documents kept out of overview payloads. */
body[data-page="account"].portal-signed-in .intro { padding-block:24px 8px }
body[data-page="account"].portal-signed-in .intro h1 { font-size:22px;color:#61788b;font-weight:500 }
body[data-page="account"].portal-signed-in .intro p { display:none }
.portal-welcome { display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(120deg,#103854,#0b2944);color:#c7e3f7;padding:30px 34px;border-radius:20px;margin:20px 0 24px }
.portal-kicker { display:block;font-size:12px;letter-spacing:.1em;font-weight:600;color:#4082ac;margin-bottom:12px }
.portal-welcome .portal-kicker { color:#9fd9fc }.portal-welcome h2 { color:white;font-size:32px;line-height:1.2;overflow-wrap:anywhere }.portal-welcome p { margin:12px 0 0;font-size:17px;line-height:1.6 }
.portal-new { display:block;white-space:nowrap;background:#bfebff;color:#093752!important;text-decoration:none;font-weight:600;padding:14px 22px;border-radius:10px }
.portal-nav { display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px;margin-bottom:14px }
.portal-nav button { flex:none;border:1px solid #cbdce9;background:white;color:#345570;min-height:44px;padding:11px 18px;border-radius:999px;font-size:15px;cursor:pointer }
.portal-nav button[aria-pressed="true"] { background:#0b6fd6;color:white;border-color:#0b6fd6 }
.portal-panel { min-width:0;scroll-margin-top:20px }.portal-panel[hidden] { display:none!important }
.portal-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 22px }
.portal-stats > div { border:1px solid #d3e0eb;background:#fff;border-radius:14px;padding:22px 24px }
.portal-stats span { font-size:15px;color:#5a748a;display:block }.portal-stats strong { font:600 34px/1.3 'Chivo',sans-serif;color:#143f60;display:block;margin-top:10px }
.portal-shortcuts { display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px }
.portal-shortcuts a { display:block;padding:24px;border:1px solid #c8ddeb;border-radius:14px;background:#eef6fd;text-decoration:none;transition:background .2s }
.portal-shortcuts a:hover { background:#e1f0fd }.portal-shortcuts span { display:block;font-size:12px;color:#3880b2;letter-spacing:.05em;margin-bottom:16px }.portal-shortcuts strong { display:block;font:600 20px/1.3 'Chivo',sans-serif;color:#123d60;margin-bottom:10px }.portal-shortcuts small { display:block;font-size:15px;line-height:1.55;color:#526f87 }
body[data-page="account"] #portal-home > h2 { font-size:25px;margin-bottom:12px }
body[data-page="account"] .portal-panel .assistant { margin-top:0;border-color:#cddfec;padding:28px;border-radius:18px }
body[data-page="account"] .portal-panel h2 { font-size:28px;line-height:1.25;margin-bottom:12px }
body[data-page="account"] .job { border-left:4px solid #458fc8;padding:22px 24px;border-radius:14px;margin-bottom:15px }
.job-file summary { cursor:pointer;padding:12px 0;font-size:16px;color:#155b8f;font-weight:600 }.job-file > .status { margin-block:10px }
body[data-page="account"] .job-file button { margin:8px 8px 8px 0 }
.vault-heading { display:flex;justify-content:space-between;gap:24px;align-items:start }.vault-heading p { max-width:650px;line-height:1.6;margin:0;color:#526e83 }
.vault-security { display:inline-block;flex-shrink:0;font-size:13px;border:1px solid #bddccc;background:#eff8f3;color:#276c4f;border-radius:999px;padding:8px 12px }
.vault-note { font-size:14px;line-height:1.6;color:#5b7388;margin-block:18px }
.vault-files { display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0 }
.vault-card { background:#f6faff;border:1px solid #cddfec;padding:24px;border-radius:14px;min-width:0 }
.vault-card h3 { font-size:21px;margin:0 0 14px }.vault-card p { font-size:16px;line-height:1.6;color:#536f85;margin:0 0 12px }.vault-filename { overflow-wrap:anywhere }.vault-card small { display:block;color:#317655;font-size:13px }
.vault-actions { display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:16px 0 }.vault-actions a { font-size:15px;text-underline-offset:3px }
.vault-card label { margin-top:18px;font-size:15px }.vault-card select { width:100%;margin-block:8px 12px;min-height:44px }
.vault-card button { font-size:15px;min-height:42px }.vault-card > button { background:#126fc6;color:white;border-color:#126fc6 }
#vault-form { border-top:1px solid #d0e1ed;padding-top:24px }.vault-form-grid { display:grid;grid-template-columns:1fr 1.6fr;gap:22px }.vault-form-grid input { max-width:100% }
.vault-consent { display:flex;align-items:start;gap:10px;font-size:15px;line-height:1.6;margin-block:16px!important }.vault-consent input { width:18px!important;min-width:18px;margin:4px 0!important }
#vault-save { background:#0b6fd6;color:white;border:1px solid #0b6fd6;border-radius:9px;padding:13px 20px;font-size:16px;cursor:pointer;min-height:46px }#vault-save:disabled { opacity:.5;cursor:not-allowed }
#vault-status { min-height:26px;font-size:16px;color:#154f77;line-height:1.6;margin:18px 0 0 }
@media(max-width:800px) { .portal-shortcuts { grid-template-columns:1fr }.portal-shortcuts a { padding:20px }.portal-shortcuts span { margin-bottom:8px }.vault-heading { display:block }.vault-security { margin-top:18px }.portal-stats > div { padding:18px }.portal-welcome h2 { font-size:27px } }
@media(max-width:600px) { .portal-welcome { display:block;padding:24px }.portal-new { text-align:center;margin-top:22px }.portal-stats { grid-template-columns:1fr;gap:10px }.portal-stats > div { display:flex;align-items:center;justify-content:space-between;gap:20px }.portal-stats strong { margin:0;font-size:29px }.vault-files,.vault-form-grid { grid-template-columns:1fr }.portal-panel .assistant { padding:20px!important }.vault-card { padding:20px } }
/* An immersive blue architectural field behind the public-facing hero. */
.revamp.immersive-site { background:radial-gradient(ellipse at 78% 12%,#174968 0%,#0a2743 44%,#07192f 90%) }
.ambient-scene { position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;contain:strict }
.immersive-site > main,.immersive-site > footer { position:relative;z-index:1 }
.immersive-site > header { z-index:60 }
.immersive-site main > section { position:relative;background:#f7f9fc }
.immersive-site main > section.coverage { background:#071d33db }
.immersive-site main > section.alt { background:#edf3fa }
.immersive-site main > section.permit-workflow { background:linear-gradient(135deg,#e5f1fc,#f9fcff) }
.immersive-site main > section.option-finder { background:#eaf2fa }
.immersive-site main > section.first-free { background:#0b2e4a }
.immersive-site .hero::before { background:none!important }
.immersive-site .hero-copy::before { background:radial-gradient(ellipse,#0b2746bb 0%,#0b274600 75%)!important }
.immersive-site .hero > h1,.immersive-site .hero-copy > h1 { color:#f5fbff }
.immersive-site .hero > h1 em,.immersive-site .hero-copy > h1 em { color:#8cddff }
.immersive-site .hero > .lede,.immersive-site .hero-copy > .lede { color:#c8dcea }
/* The eyebrow is a pale pill on the light pages; on the blue field the pill
   itself has to go dark, or "SERVICES" is pale blue on pale blue. As a grid
   item it is also stretched to the column, so it is told to hug its text. */
.immersive-site .hero > .eyebrow,.immersive-site .hero-copy > .eyebrow { color:#dff3ff; background:#16476a; border:1px solid #45708f; display:inline-block; width:auto; justify-self:start }
.immersive-site .hero .cta.second { color:#e6f4ff; border-color:#8fb6d4; background:transparent }
.immersive-site .hero-paths a,.immersive-site .hero-copy .hero-paths a { color:#a3deff }
.immersive-site .hero .cta.second:hover { background:#16476a }
.immersive-site .hero-speed,.immersive-site .offer-terms,.immersive-site .pricing-speed { color:#bcd5e7!important }
.immersive-site .hero-speed strong { color:#c6efff }
.immersive-site .hero-alt a,.immersive-site .pricing-jump a { color:#a3deff }
.immersive-site .proofbar { color:#d4eaf8 }
.immersive-site .proofbar span { border-color:#608098;background:#183d5b }
.immersive-site .proofbar span:first-child { background:#16476a;border-color:#9de4ff }
.immersive-site .proofbar strong { color:#fff }
.immersive-site .assistant-peek { background:#eef6fc;color:#153e5d }
.immersive-site .hero .fine { color:#c7dded }
.scene-toggle { position:fixed;left:18px;bottom:18px;z-index:45;border:1px solid #45708f;border-radius:999px;background:#102d46;color:#dcf3ff;min-height:42px;padding:9px 14px;font:500 13px 'Chivo',sans-serif;cursor:pointer;box-shadow:0 5px 14px #00142a26 }
.scene-toggle:hover { background:#19415e }
@media(max-width:700px) { .scene-toggle { left:12px;bottom:78px;font-size:12px;padding:8px 12px;min-height:38px }.immersive-site .hero .cta.second { color:#c2eaff } }
@media(prefers-reduced-motion:reduce) { .scene-toggle { display:none } }

.immersive-site .hero .cta.second { color:#c2eaff;border-color:#6394b6;background:#123c58 }
.immersive-site .hero .cta.second:hover { color:white;background:#1d516f }
body.immersive-site[data-page="pricing"] :is(.rate-disclosure,.pricing-access-note) { color:#c6ddec }
body.immersive-site[data-page="pricing"] .pricing-access-note a { color:#a3deff }
/* The pricing hero had no gap between the headline and the lede; the
   services and contractors heroes already get one below. */
body[data-page="pricing"] .hero > :is(h1,.lede) { margin-bottom:18px }
/* Two fixed buttons sat on the same corner: the "Text us" pill under the
   Ask AI launcher, which is drawn on top of it and hid all but the T. */
body:has(.ai-launcher) .textpill { right:160px }
/* On a phone the launcher and the scene toggle cover the bottom of the
   hero at first paint, including the main button. Give the hero room. */
@media(max-width:700px) { .immersive-site .hero { padding-bottom:110px } }
/* The Earth is the backdrop for a working county-to-town filing selector. */
.revamp .earth-hero { isolation:isolate }
.earth-hero .hero-grid { align-items:start;gap:54px }
.location-experience { min-width:0;position:relative;scroll-margin-top:100px }
.location-experience::before { content:'';position:absolute;inset:-45px -70px 120px;z-index:-1;background:radial-gradient(ellipse,#19648866 0%,transparent 68%);pointer-events:none }
.location-kicker { font:500 12px 'Chivo',sans-serif;letter-spacing:.13em;color:#99d4ed }
.location-heading h2 { color:#f3fbff;font:500 clamp(29px,3vw,38px)/1.12 'Chivo',sans-serif;letter-spacing:-.035em;margin:14px 0 }
.location-heading p { font-size:16px;line-height:1.6;color:#bcd5e7;margin:0;max-width:430px }
.location-map-wrap { height:380px;width:100%;position:relative;overflow:hidden;margin:4px 0 14px;contain:layout paint }
#permit-earth,#county-map { position:absolute;inset:0 0 auto;display:block;width:100%;height:calc(100% - 44px) }
#permit-earth[hidden],#county-map[hidden] { display:none }
#county-map { overflow:visible }
.county-choice { cursor:pointer;outline:none }
.county-choice path { fill:#245d7c;stroke:#87bfdb;stroke-width:1.15;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .16s,stroke .16s }
.county-choice:hover path,.county-choice:focus-visible path { fill:#5ebce2;stroke:#effaff;stroke-width:2 }
.county-choice[aria-pressed="true"] path { fill:#a5ebff;stroke:white;stroke-width:2 }
.location-map-caption { position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none }
#location-map-label { font:500 12px 'Chivo',sans-serif;letter-spacing:.08em;color:#c5e8f8 }
#location-tour,#location-skip { pointer-events:auto;color:#d4f3ff;background:#123a56;border:1px solid #467993;border-radius:8px;font:500 13px 'Chivo',sans-serif;min-height:40px;padding:9px 12px;cursor:pointer }
#location-skip { position:absolute;bottom:48px;right:0 }
.location-form { position:relative;background:#0b2743ed;border:1px solid #3a6581;border-radius:17px;padding:22px;box-shadow:0 20px 40px -25px #010d23;backdrop-filter:none }
.location-selects { display:grid;grid-template-columns:1fr 1.15fr;gap:14px }
.location-selects > div { min-width:0 }.location-selects label { display:block;font:500 14px 'Chivo',sans-serif;color:#d0e8f7;margin-bottom:9px }
.location-selects select { width:100%;min-width:0;min-height:48px;background:#f4faff;color:#11334c;border:1px solid #8bb8d0;padding:10px;font:400 16px 'Chivo',sans-serif;border-radius:8px }
.location-selects select:disabled { background:#21415b;color:#aac8da;border-color:#4a6b83;opacity:1 }
#location-status { font-size:14px;line-height:1.5;color:#c3dceb;min-height:42px;margin:14px 0 }
#location-continue { width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;font:600 16px 'Chivo',sans-serif;padding:15px 17px;border-radius:9px;border:1px solid #bdefff;background:#bdefff;color:#083653;cursor:pointer;min-height:51px;transition:background .2s,transform .2s }
#location-continue:hover:enabled { background:white;transform:translateY(-2px) }
#location-continue:disabled { background:#244b66;border-color:#4c738d;color:#adcede;cursor:not-allowed }
#location-ai { display:block;text-align:center;color:#bceaff;font-size:15px;margin:18px 0 0;text-underline-offset:4px }
.location-terms { font-size:13px!important;line-height:1.6;color:#9fbed3;margin:16px 0 6px }
.location-direct { font-size:13px;color:#c6e9f8;text-underline-offset:3px }
.location-credit { font-size:12px;line-height:1.6;color:#94b5ca;margin:13px 0 0 }.location-credit a { color:inherit;text-underline-offset:3px }
#location-retry { color:#c1ecff;background:none;border:1px solid #6b9cb8;border-radius:7px;font:500 14px 'Chivo',sans-serif;padding:10px;margin:0 0 14px;cursor:pointer }
.project-studio-layout { display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px }
.project-studio-copy h2 { font-size:clamp(32px,3.5vw,48px);margin:18px 0 24px;letter-spacing:-.035em }
.project-studio-copy p { max-width:430px;font-size:18px;line-height:1.7;color:#526c81;margin-bottom:28px }
.project-studio-layout .project-experience { min-width:0;max-width:550px;width:100% }
@media(max-width:980px) { .earth-hero .hero-grid { grid-template-columns:1fr;gap:44px }.location-experience { width:100%;max-width:630px;margin-inline:auto }.project-studio-layout { grid-template-columns:1fr;gap:35px }.project-studio-layout .project-experience { max-width:630px;margin-inline:auto }.project-studio-copy { max-width:630px;margin-inline:auto;width:100% } }
@media(max-width:600px) { .location-map-wrap { height:330px }.location-form { padding:18px }.location-selects { grid-template-columns:1fr;gap:16px }.location-heading h2 { font-size:30px }.location-map-caption { gap:8px }#location-map-label { font-size:12px;letter-spacing:.03em }.location-experience::before { inset:-15px -20px 240px } }

@media(max-width:700px) { .earth-hero .hero-copy > :is(.hero-speed,.ai-inline,.proofbar) { display:none }.earth-hero .hero-copy > .offer-terms { margin-top:10px }.earth-hero .hero-copy h1 { margin-bottom:20px }.earth-hero .hero-copy .lede { margin-bottom:22px }.location-map-wrap { height:280px }.earth-hero .hero-grid { gap:30px } }
