/* Shared public-route refinements. Specificity matches the retained correction sheet. */
:root { --dn-client-scroll-speed:180; }
html body .site-header .menu-toggle { min-width:44px; min-height:44px; justify-content:center; }
html body .site-header .menu-toggle:not([data-sh-shell]):not([data-sh-wrapper]) { padding:10px; }
html body .site-header .menu-toggle:not([data-sh-shell]) { align-items:center; }

html body #main#main#main#main#main [data-shared-client-marquee] { --logo-width:160px; --logo-gap:48px; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-track { --dn-marquee-speed:var(--dn-client-scroll-speed); }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group { flex-shrink:0; list-style:none; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group:not([data-sh-shell]) { display:flex; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group:not([data-sh-shell]):not([data-sh-flow]):not([data-sh-layout]):not([data-sh-wrapper]) { gap:var(--logo-gap); }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group:not([data-sh-shell]):not([data-sh-wrapper]) { column-gap:var(--logo-gap); }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group:not([data-sh-shell]):not([data-sh-wrapper]) { padding:0 var(--logo-gap) 0 0; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group:not([data-sh-shell]):not([data-sh-content]):not(:is([data-sh-shell],[data-sh-wrapper],[data-section-header])+*):not([data-sh-wrapper]):not([data-section-header]):not([data-sh-part]):not([data-section-header] p) { margin:0; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group > li { flex:0 0 var(--logo-width); width:var(--logo-width); }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-badge { place-items:center; width:var(--logo-width); height:64px; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-badge:not([data-sh-shell]) { display:grid; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-badge:not([data-sh-shell]):not([data-sh-wrapper]) { padding:0; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-badge img { width:100%; height:100%; max-width:160px; max-height:64px; object-fit:contain; object-position:center; transform:none; }

/* Current 4:3 frame -> 16:15: identical width with exactly 25% more height. */
html body #main#main#main#main#main :is([data-client-proof-section],[data-home-results-carousel]) .showcase-viewport { height:auto !important; max-height:none !important; min-height:0 !important; aspect-ratio:16 / 15 !important; flex:0 0 auto !important; }

/* The growth book owns its page/step layout at every breakpoint. */
html body #main#main#main#main#main .growth-book .book-spread { transform:none; min-width:0; }
html body #main#main#main#main#main .growth-book .book-page { min-width:0; }
html body #main#main#main#main#main .growth-book .book-page-right { border:1px solid var(--line); box-shadow:0 6px 18px #0b1d3a0c; padding:28px 24px 40px; }
html body #main#main#main#main#main .growth-book .book-page-right > .book-kicker { margin:0 0 8px; padding:0; }
html body #main#main#main#main#main .growth-book .book-page-right > h3 { margin:0 0 20px; font-size:clamp(28px,2.5vw,38px); line-height:1.1; }
html body #main#main#main#main#main .growth-book .book-page-right .journey { display:grid; gap:16px; padding:0; margin:0; list-style:none; }
html body #main#main#main#main#main .growth-book .book-page-right .journey::before, html body #main#main#main#main#main .growth-book .book-page-right .journey::after { content:none !important; }
html body #main#main#main#main#main .growth-book .book-page-right .journey > li { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:12px; padding:0; margin:0; border:0; position:relative; background:transparent; box-shadow:none; }
html body #main#main#main#main#main .growth-book .book-page-right .journey > li > div { min-width:0; }
html body #main#main#main#main#main .growth-book .book-page-right .journey > li:not(:last-child)::after { content:''; position:absolute; left:15.5px; top:32px; bottom:-16px; width:1px; background:var(--teal); z-index:0; }
html body #main#main#main#main#main .growth-book .book-page-right .journey [data-dnp-node] { position:relative; inset:auto; display:grid; place-items:center; width:32px; min-width:32px; height:32px; box-sizing:border-box; border:1px solid var(--teal); border-radius:50%; background:var(--cream); color:var(--deep); padding:0; margin:0; z-index:1; }
html body #main#main#main#main#main .growth-book .book-page-right .journey h4 { display:block; font-size:20px; line-height:1.25; font-weight:850; margin:3px 0 4px; }
html body #main#main#main#main#main .growth-book .book-page-right .journey p { display:block; font-size:13px; line-height:1.6; font-weight:400; color:var(--muted); margin:0; }
html body #main#main#main#main#main .growth-book .book-page-right > .book-page-note { margin:16px 0 0 44px; padding:0; max-width:none; font-size:13px; line-height:1.6; }
@media(max-width:1000px) {
  html body #main#main#main#main#main .growth-book { grid-template-columns:1fr; gap:24px; padding:0; }
  html body #main#main#main#main#main .growth-book .book-cover { width:100%; max-width:none; margin:0; transform:none; }
  html body #main#main#main#main#main .growth-book .book-spread { width:100%; max-width:none; grid-template-columns:1fr; margin:0; }
  html body #main#main#main#main#main .growth-book .book-page-left { display:none; }
  html body #main#main#main#main#main .growth-book .book-page-right { height:auto; min-height:0; padding:24px; border-radius:6px; }
  html body #main#main#main#main#main .growth-book .book-page-right > h3 { font-size:clamp(26px,5vw,34px); }
  html body #main#main#main#main#main .growth-book .book-page-right > h3 br { display:none; }
  html body #main#main#main#main#main .growth-book .book-page-right .journey p { font-size:14px; }
  html body #main#main#main#main#main .growth-book .book-page-right .page-number { display:none; }
}
@media(max-width:700px) {
  html body #main#main#main#main#main .growth-book .book-cover { width:calc(100% - 24px); height:auto; min-height:0; aspect-ratio:4 / 5; padding:24px; margin-inline:auto; transform:rotate(-3deg); }
  html body #main#main#main#main#main .growth-book .book-logo { width:110px; margin:0 0 16px; }
  html body #main#main#main#main#main .growth-book .book-cover h3 { max-width:100%; font-size:clamp(30px,8.8vw,36px); margin:0 0 12px; }
  html body #main#main#main#main#main .growth-book .book-rule { display:block; margin:3px 0 15px; }
  html body #main#main#main#main#main .growth-book .book-services { margin:0; }
  html body #main#main#main#main#main .growth-book .cover-footer { margin:20px 0 0; padding:0; background:transparent; }
  html body #main#main#main#main#main .growth-book .book-window {
    position:absolute; inset:auto 0 0 auto; z-index:-1;
    width:64%; height:51%; min-height:0; margin:0;
    border:0; border-top:3px solid #c9beaa; border-left:3px solid #c9beaa; border-radius:100px 0 0 0;
  }
}
@media(max-width:400px) {
  html body #main#main#main#main#main .growth-book .book-page-right { padding:22px 20px; }
}

html body #main#main#main#main#main [data-review-carousel] .dn-review-carousel { --review-gap:18px; --review-stride:calc(100% + var(--review-gap)); min-width:0; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-window { overflow:hidden; touch-action:pan-y pinch-zoom; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-track { will-change:transform; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-track:not([data-sh-shell]) { display:flex; align-items:stretch; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-track:not([data-sh-shell]):not([data-sh-flow]):not([data-sh-layout]):not([data-sh-wrapper]) { gap:var(--review-gap); }
html body #main#main#main#main#main [data-review-carousel] .dn-review-track:not([data-sh-shell]):not([data-sh-wrapper]) { column-gap:var(--review-gap); }
html body #main#main#main#main#main [data-review-carousel] .dn-review-slide { flex:0 0 100%; min-width:0; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-slide:not([data-sh-shell]) { display:flex; }
html body #main#main#main#main#main [data-review-carousel] .google-review { box-sizing:border-box; width:100% !important; height:auto; min-width:0; }
html body #main#main#main#main#main [data-review-carousel] .google-review:not([data-sh-shell]):not([data-sh-content]):not(:is([data-sh-shell],[data-sh-wrapper],[data-section-header])+*):not([data-sh-wrapper]):not([data-section-header]):not([data-sh-part]):not([data-section-header] p) { margin:0; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls { justify-content:center; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls:not([data-sh-shell]) { display:flex; align-items:center; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls:not([data-sh-shell]):not([data-sh-flow]):not([data-sh-layout]):not([data-sh-wrapper]) { gap:12px; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls:not([data-sh-shell]):not([data-sh-wrapper]) { column-gap:12px; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls:not([data-sh-shell]):not([data-sh-content]):not(:is([data-sh-shell],[data-sh-wrapper],[data-section-header])+*):not([data-sh-wrapper]):not([data-section-header]):not([data-sh-part]):not([data-section-header] p) { margin-top:16px; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls button { place-items:center; min-width:44px; height:44px; border:1px solid var(--teal); border-radius:50%; background:transparent; color:inherit; cursor:pointer; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls button:not([data-sh-shell]) { display:grid; font:inherit; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-controls button:not([data-sh-shell]):not([data-sh-wrapper]) { padding:0; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-dots:not([data-sh-shell]) { display:flex; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-dots button { border:0; min-width:32px; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-dots span { width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.35; }
html body #main#main#main#main#main [data-review-carousel] .dn-review-dots [aria-current="true"] span { background:var(--teal); opacity:1; }
@media(min-width:701px) {
  html body #main#main#main#main#main [data-review-carousel] .dn-review-carousel { --review-stride:calc((100% + var(--review-gap)) / 2); }
  html body #main#main#main#main#main [data-review-carousel] .dn-review-slide { flex-basis:calc((100% - var(--review-gap)) / 2); }
}
@media(max-width:700px) {
  html body #main#main#main#main#main [data-shared-client-marquee] { --logo-width:128px; --logo-gap:32px; }
  html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-badge { height:52px; }
  html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-badge img { max-width:128px; max-height:52px; }
}
@media(prefers-reduced-motion:reduce) {
  html body #main#main#main#main#main [data-review-carousel] .dn-review-track { transition:none !important; }
}

/* Existing case-index 16:8 frames gain 25% height; detail heights scale at each breakpoint. */
html body #main#main#main#main#main .dn-case-index [data-shared-screenshot] { height:auto !important; max-height:none !important; aspect-ratio:16 / 10 !important; }
html body #main#main#main#main#main .dn-case-hero [data-shared-screenshot] { height:537.5px !important; max-height:65vw !important; aspect-ratio:auto !important; }
html body #main#main#main#main#main [data-shared-screenshot] { position:relative; overflow:hidden; }
@media(max-width:850px) { html body #main#main#main#main#main .dn-case-hero [data-shared-screenshot] { height:450px !important; } }
@media(max-width:650px) { html body #main#main#main#main#main .dn-case-hero [data-shared-screenshot] { height:400px !important; max-height:none !important; } }

/* Reserve one row before hydration as well as after the drag controller starts. */
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-window { overflow:hidden !important; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-track { width:max-content !important; max-width:none !important; animation:none !important; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-track:not([data-sh-shell]) { display:flex; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-track:not([data-sh-shell]):not([data-sh-flow]):not([data-sh-layout]):not([data-sh-wrapper]) { gap:0; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-track:not([data-sh-shell]):not([data-sh-wrapper]) { column-gap:0; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group { flex-wrap:nowrap !important; width:max-content !important; }
html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group[aria-hidden="true"]:not([data-sh-shell]) { display:flex; }
html body #main#main#main#main#main [data-shared-client-marquee]:is(:hover,:focus-within) .client-logo-track { animation-play-state:paused; }
@media(prefers-reduced-motion:reduce) {
 html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-window { overflow-x:auto !important; }
 html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-track { animation:none !important; }
 html body #main#main#main#main#main [data-shared-client-marquee] .client-logo-group[aria-hidden="true"]:not([data-sh-shell]) { display:none !important; }
}

/* px/s tuning tokens; logo-interaction derives each duration from its primary group width. */
html body #main#main#main#main#main [data-dn-tools-marquee] .dn-tools-track { --dn-marquee-speed:120; animation:none !important; }
/* Natural image height restores overflow; only the frame owns screenshot sizing. */
html body #main#main#main#main#main#main [data-shared-screenshot] img { position:absolute !important; inset:0 auto auto 0; width:100% !important; height:auto !important; min-height:100%; max-height:none !important; object-fit:cover !important; object-position:top !important; }
html body #main#main#main#main#main#main [data-shared-screenshot] img:not([data-sh-shell]) { display:block; }
