/* v42 site-wide fixes (original layout and fonts): Lenis, readable labels, tap targets, compact concierge and contact buttons. */

/* ---- Lenis (from lenis.css) */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}

/* ---- Readable labels: real text never below 11px (miniature website mock-ups keep their scale). */
.section-navigator span,.work-with-brand strong,.connection-flow-map span,.connection-flow-map small,.connection-flow footer span,
.capability-card-head span,.morph-tabs button,.care-console span,.spin-face small,.comparison-stage .comparison-label,
.website-concepts-wheel-wrap p,.website-concepts-wheel small,.concept-viewer-head p,.concept-viewer-head small,.concept-viewer-controls p,
.concept-viewer-controls span,.hr-console-tag,.hr-ring-center span,.hr-findings b,.audit-window-bar strong,.audit-form span,.audit-score small,
.v30-consultation-details span,.footer-status span,.footer-bottom span,.concierge-launcher small,.concierge-header p,.concierge-state,
.concierge-message span,.service-status span,.plan-selector-copy span,.plan-wallet-card small,.plan-wallet-pocket small,.lp-table th,
.comparison-table span,.industry-visual .concept-label,.industry-story-panel span,.story-service-list small,.story-phone small,.plan-focus span,
.lp-facts span,.concept-study-foot span{font-size:11px!important}
.connection-flow footer p,.industry-visual p,.footer-status p,.concierge-privacy,.concierge-privacy a,.concierge-prompts button,
.concierge-voice-controls button,.concierge-form button,.plan-focus button,.website-concepts-disclosure{font-size:12px!important}
.footer-index a,.footer-bottom a{font-size:13px!important}
@media (width<=999px){
  .mobile-menu-primary span,.mobile-menu-secondary p,.mobile-menu-foot,.website-concepts-mobile-controls span,.website-concepts-mobile-controls b{font-size:11px!important}
  .concierge-voice-start span{font-size:12px!important}
}

/* ---- Tap targets: at least 44px tall on touch screens. */
@media (pointer:coarse){
  .footer-maps a,.footer-index a,.footer-bottom a,.photo-credit,.lp-facts a,.lp-plan-links a{display:inline-flex;align-items:center;min-height:44px}
  .website-concepts-mobile-controls button,.morph-tabs button{min-height:44px}
  .lp-chooser label{display:flex;align-items:center;gap:12px;min-height:48px}
  .lp-chooser input[type=radio],.audit-form input[type=checkbox],.hr-consent input{width:22px;height:22px;flex:none;accent-color:#121214}
}

@media (width<=699px){
  /* Concierge: a compact orb so it never covers what you are reading. */
  .concierge-launcher{padding:6px!important;gap:0!important}
  .concierge-launcher>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* ---- v38: no floating section dots; readable concept address bars. */
.section-navigator{display:none!important}
.concept-browser small,.concept-address{color:#4f4f55!important}

/* ---- v39: compact, tactile contact buttons (were full-width slabs) and a smaller concierge launcher. */
.contact-inner{min-height:0;padding-block:clamp(56px,7vw,88px)}
.contact-actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 22px;min-width:0;width:auto}
.contact-actions .button{width:auto;min-height:48px;padding:0 16px 0 22px;gap:12px;border:0;border-radius:999px;font-size:14px;font-weight:650;
  box-shadow:inset 0 -2px 0 rgb(0 0 0/.14),0 10px 28px -14px rgb(255 255 255/.45);transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.contact-actions .button svg{width:18px;height:18px;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.contact-actions .button:hover{transform:translateY(-1px)}
.contact-actions .button:hover svg{transform:translateX(2px)}
.contact-actions .button:active{transform:translateY(1px);box-shadow:inset 0 1px 0 rgb(0 0 0/.12)}
.contact-book{display:inline-flex;justify-content:flex-start;gap:8px;min-height:44px;font-size:14px;color:var(--paper,#fff);text-decoration:underline;text-decoration-color:rgb(255 255 255/.35);text-underline-offset:5px}
.contact-book:hover{text-decoration-color:currentColor}
.contact-book svg{width:15px}
.contact-phone{flex-basis:100%;color:#9b9ba1!important;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
@media (width<=999px){.contact-actions{width:auto}}
.concierge-launcher{min-height:52px;padding:6px 16px 6px 6px;gap:10px}
.concierge-launcher-orb{flex-basis:38px;width:38px;height:38px}
.concierge-launcher strong{font-size:12.5px}

/* ---- v41: answers are visible text (good for Google and AI answers), not hover/tap cards. */
.answer-first-grid.answer-grid{border-top:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.answer-card{display:flex;flex-direction:column;gap:12px;min-height:0!important;padding:26px 28px!important;border:1px solid #2c2c31!important;border-radius:20px;background:#161618}
.answer-card small{color:#ff5a4e;font:700 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em}
.answer-card h3{margin:6px 0 0!important;color:#f5f5f2;font-size:clamp(19px,1.8vw,23px)!important;line-height:1.15;letter-spacing:-.02em}
.answer-card p{margin:0!important;max-width:none!important;color:#c9c9ce!important;font-size:15px!important;line-height:1.6!important}
@media (width<=760px){.answer-first-grid.answer-grid{grid-template-columns:1fr}}

/* ---- v41: call / contact buttons, 21st.dev "shine" pill: compact, tactile, a light sweep on hover. */
.contact-actions .button,.header-cta{position:relative;overflow:hidden;isolation:isolate}
.contact-actions .button::after,.header-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgb(255 255 255/.55) 48%,transparent 66%);transform:translateX(-120%);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.header-cta::after{background:linear-gradient(110deg,transparent 30%,rgb(255 255 255/.22) 48%,transparent 66%)}
.contact-actions .button:hover::after,.header-cta:hover::after{transform:translateX(120%)}
.contact-book{padding:0 16px;border:1px solid rgb(255 255 255/.22);border-radius:999px;text-decoration:none!important;transition:background .2s,border-color .2s}
.contact-book:hover{background:rgb(255 255 255/.08);border-color:rgb(255 255 255/.4)}
.contact-book::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E") center/contain no-repeat}
@media (prefers-reduced-motion:reduce){.contact-actions .button::after,.header-cta::after{display:none}}

/* ---- v42: one font family. The small "typewriter" labels use Helvetica (the receipt keeps its receipt font). */
.mono,.admin-audit-detail li>span,
.admin-dashboard-grid header span,
.admin-identity span,
.admin-metrics span,
.admin-mobile-header small,
.admin-sidebar footer,
.admin-sidebar nav>p,
.admin-toolbar p,
.answer-card small,
.answer-first-grid small,
.architecture-map b,
.architecture-map>span,
.audience-fit-grid li span,
.audit-findings article span,
.audit-findings article>div strong,
.audit-form label>span:first-child,
.audit-loading small,
.audit-score small,
.audit-window-bar strong,
.brief-form-heading,
.call-agenda>span,
.call-facts span,
.capability-card-head span,
.care-console span,
.comparison-label,
.comparison-reveal label,
.comparison-swipe-hint,
.comparison-table thead span,
.concierge-header p,
.concierge-message span,
.concierge-state,
.connection-flow-map li>span,
.connection-flow-map small,
.connection-flow>footer,
.contact-phone,
.contact-pulse>span,
.cross-media-index,
.cross-media-prompt,
.cross-rotate-hint,
.cross-step-copy>span,
.cross-story-control,
.footer-index a,
.footer-status span,
.footer-status>p,
.founder-connect>span,
.founder-heading>a,
.founder-heading>p,
.founder-origin>span,
.hero-cross-instruction,
.hero-cross-item figcaption,
.hero-cross-note,
.hr-console-tag,
.hr-findings b,
.hr-ring-center span,
.industry-answer-list small,
.industry-ribbon a small,
.industry-ribbon>div>span,
.industry-ruler__header[data-astro-cid-u2z54r4j],
.industry-ruler__link[data-astro-cid-u2z54r4j] em[data-astro-cid-u2z54r4j],
.industry-ruler__link[data-astro-cid-u2z54r4j] small[data-astro-cid-u2z54r4j],
.industry-story-panel>span,
.local-radar span,
.lp-facts span,
.lp-steps li::before,
.lp-table thead th,
.mobile-menu-foot,
.mobile-menu-primary a span,
.mobile-menu-secondary>p,
.mobile-menu-top>span,
.plan-focus button,
.plan-focus>span,
.plan-process li>span,
.plan-selector-copy span,
.plan-wallet-card small,
.plan-wallet-pocket small,
.process-file-footer,
.process-file-label,
.process-file-toolbar,
.process-step-marker,
.quote-fields label>span,
.quote-plans legend,
.quote-step-title,
.quote-submit small,
.record-dialog header p,
.record-fields label,
.records-summary span,
.records-table-wrap th,
.route-transition-index,
.rv-capture label>span,
.rv-cite,
.rv-elapsed,
.rv-eyebrow,
.rv-label,
.rv-meta,
.rv-pill,
.rv-score>span,
.scope-list span,
.section-navigator a,
.section-navigator-label,
.service-area-copy dt,
.service-globe-controls button,
.service-globe-drag,
.service-status span,
.story-phone>small,
.v30-consultation-details span,
.website-brief label,
.website-brief legend,
.work-with-brand strong{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;letter-spacing:.08em}

/* ---- v42: dark sections blend in and out instead of hard colour cuts. */
.capability-section,.answer-first-section,.pricing-section,.contact-band{position:relative;isolation:isolate}
.capability-section::before,.answer-first-section::before,.pricing-section::before{content:"";position:absolute;left:0;right:0;top:-1px;height:140px;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,var(--blend-from,#fff),transparent)}
.capability-section::after,.answer-first-section::after,.pricing-section::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:140px;z-index:-1;pointer-events:none;background:linear-gradient(to top,var(--blend-to,#fff),transparent)}
.capability-section{--blend-from:#fff;--blend-to:#0b0b0d}
.answer-first-section{--blend-from:#0b0b0d;--blend-to:#fff}
.contact-band{box-shadow:0 -60px 80px -40px rgb(11 11 13/.25)}

/* ---- v42: split-screen scroll on the homepage capabilities (heading stays, cards scroll). */
@media (width>=1000px){
  .capability-section>.shell{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,5vw,80px);align-items:start}
  .capability-heading{position:sticky;top:120px;align-self:start}
  .capability-bento{grid-template-columns:1fr!important;gap:18px}
  .capability-bento>*{grid-column:auto!important;grid-row:auto!important}
}

/* ---- v42: phones. Swipe decks with a counter, sticky action bar, scroll reveals. */
@media (width<=699px){
  .problem-flow,.solution-grid,.answer-first-grid.answer-grid{display:grid!important;grid-auto-flow:column;grid-template-columns:none!important;grid-auto-columns:86%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:-18px;padding:0 18px 4px;scroll-padding-inline:18px}
  .problem-flow::-webkit-scrollbar,.solution-grid::-webkit-scrollbar,.answer-first-grid::-webkit-scrollbar{display:none}
  .problem-flow>*,.solution-grid>*,.answer-first-grid>*{scroll-snap-align:start;min-width:0;grid-column:auto!important}
  .distort-card{min-height:0;transform:none!important}
  .deck-count{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;font-weight:700;letter-spacing:.1em;color:#8a8a90}
  .deck-count i{display:block;height:3px;flex:1;margin-left:14px;border-radius:3px;background:linear-gradient(to right,currentColor var(--p,33%),rgb(138 138 144/.25) 0)}
  /* v43: liquid glass bar. A dark-tinted lens so labels stay readable over light and dark sections. */
  .mobile-bar{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:150;display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:6px;padding:6px;border-radius:24px;isolation:isolate;overflow:hidden;
    background:linear-gradient(180deg,rgb(40 40 46/.38),rgb(14 14 18/.52));-webkit-backdrop-filter:blur(22px) saturate(190%) contrast(1.05);backdrop-filter:blur(22px) saturate(190%) contrast(1.05);
    border:1px solid rgb(255 255 255/.22);box-shadow:inset 0 1px 0 rgb(255 255 255/.42),inset 0 -1px 0 rgb(255 255 255/.06),inset 0 0 18px rgb(255 255 255/.06),0 22px 44px -18px rgb(0 0 0/.55),0 2px 6px rgb(0 0 0/.12);
    transform:translateY(150%);transition:transform .55s cubic-bezier(.2,.9,.25,1.15)}
  .mobile-bar::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 90% at 18% -30%,rgb(255 255 255/.32),transparent 55%),radial-gradient(80% 70% at 100% 130%,rgb(255 255 255/.12),transparent 60%)}
  .mobile-bar.is-on{transform:none}
  .mobile-bar a{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;border-radius:18px;color:#fff;font-size:13px;font-weight:650;letter-spacing:.005em;text-decoration:none;text-shadow:0 1px 1px rgb(0 0 0/.25);
    background:linear-gradient(180deg,rgb(255 255 255/.16),rgb(255 255 255/.04));border:1px solid rgb(255 255 255/.16);box-shadow:inset 0 1px 0 rgb(255 255 255/.35),inset 0 -8px 14px -10px rgb(255 255 255/.2);
    transition:transform .35s cubic-bezier(.2,.9,.25,1.3),background .25s,box-shadow .25s;overflow:hidden;-webkit-tap-highlight-color:transparent}
  .mobile-bar a::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgb(255 255 255/.35),transparent);transform:skewX(-18deg);opacity:0;pointer-events:none}
  .mobile-bar a:active{transform:scale(.94);background:linear-gradient(180deg,rgb(255 255 255/.26),rgb(255 255 255/.1))}
  .mobile-bar a:active::after{opacity:1;left:120%;transition:left .55s ease,opacity .2s}
  .mobile-bar a:last-child{color:#0a0a0c;text-shadow:none;background:linear-gradient(180deg,rgb(255 255 255/.96),rgb(236 236 240/.86));border-color:rgb(255 255 255/.9);box-shadow:inset 0 1px 0 #fff,inset 0 -6px 12px -6px rgb(0 0 0/.12),0 6px 16px -8px rgb(0 0 0/.45)}
  .mobile-bar svg{width:17px;height:17px;filter:drop-shadow(0 1px 1px rgb(0 0 0/.2))}
  @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.mobile-bar{background:rgb(14 14 18/.94)}}
  body.has-mobile-bar .elevate-concierge{bottom:84px!important}
  body.has-mobile-bar{padding-bottom:76px}
}
@media (width>=700px){.mobile-bar,.deck-count{display:none}}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.mobile-bar{transition:none}}
