/* =====================================================================
   BLISS MARKETING — UX POLISH V22
   Responsive layout, motion refinement, smooth mobile navigation.
   ===================================================================== */

html,
body.bm-v2 {
  max-width: 100%;
  overflow-x: clip;
}

body.bm-v2 main,
body.bm-v2 main > section,
body.bm-v2 main .container,
body.bm-v2 main :is(.grid-2,.grid-3,.grid-4,.v2-service-grid,.v2-values-grid,.v2-results-grid,.v2-diagnosis-steps,.v2-mode-grid,.v2-portfolio-grid,.v2-scan-grid,.v2-phase-list,.v2-system-compare,.v2-section-head,.section-header) {
  min-width: 0;
}

body.bm-v2 :is(p,li,a) {
  overflow-wrap: anywhere;
}

body.bm-v2 :is(h1,h2,h3,.hero-title,.h-section,.v3-case-name,.v3-case-headline) {
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: balance;
}

/* ------------------------- Motion refinement ------------------------- */
/*
   V22 intentionally avoids CSS filter/blur on content reveals.
   Safari can keep a filtered compositing layer active after the transition,
   leaving whole sections permanently soft. Motion now uses opacity,
   translation, scale and clipping only.
*/
body.bm-v2 .reveal[data-v2-reveal] {
  animation: none !important;
}

body.bm-v2 [data-v2-reveal] {
  --v22-x: 0px;
  --v22-y: 52px;
  --v22-scale: .975;
  opacity: 0;
  transform: translate3d(var(--v22-x),var(--v22-y),0) scale(var(--v22-scale));
  transform-origin: 50% 50%;
  filter: none !important;
  transition:
    opacity .88s cubic-bezier(.16,1,.3,1),
    transform 1.08s cubic-bezier(.16,1,.3,1),
    clip-path 1.02s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform;
}

body.bm-v2 [data-v2-reveal="left"] { --v22-x: -58px; --v22-y: 0px; }
body.bm-v2 [data-v2-reveal="right"] { --v22-x: 58px; --v22-y: 0px; }

body.bm-v2 [data-v2-reveal].is-inview {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: none !important;
}

/* Headings enter with a more editorial horizontal reveal. */
body.bm-v2 :is(.section-header,.v2-section-head)[data-v2-reveal] {
  --v22-x: -34px;
  --v22-y: 0px;
  --v22-scale: 1;
  clip-path: inset(0 10% 0 0 round 8px);
}
body.bm-v2 :is(.section-header,.v2-section-head)[data-v2-reveal].is-inview {
  clip-path: inset(0 0 0 0 round 0);
}

/* Feature panels and case studies have a deeper, clearly visible entrance. */
body.bm-v2 :is(.band-night,.case-study-shell,.form-wrap,.web-form,.multi-step-form)[data-v2-reveal] {
  --v22-y: 66px;
  --v22-scale: .95;
  transform-origin: 50% 0%;
}

body.results-page-v2 .case-study-shell[data-v2-reveal] {
  --v22-y: 76px;
  --v22-scale: .94;
}

body.results-page-v2 .case-study-shell :is(.case-media,.metric-row,.v3-case-details)[data-v2-reveal] {
  --v22-scale: .985;
}
body.results-page-v2 .case-study-shell .case-media[data-v2-reveal] { transition-delay: .12s; }
body.results-page-v2 .case-study-shell .metric-row[data-v2-reveal] { transition-delay: .22s; }
body.results-page-v2 .case-study-shell .v3-case-details[data-v2-reveal] { transition-delay: .32s; }

body.bm-v2 :is(.cta-inner,.web-faq-shell)[data-v2-reveal] {
  --v22-y: 64px;
  --v22-scale: .955;
  transform-origin: 50% 0%;
}

/* Method steps alternate direction on desktop, like a guided timeline. */
@media (min-width: 761px) {
  body.method-page-v2 .v2-phase[data-v2-reveal]:nth-child(odd) {
    --v22-x: -64px;
    --v22-y: 0px;
    --v22-scale: .985;
  }
  body.method-page-v2 .v2-phase[data-v2-reveal]:nth-child(even) {
    --v22-x: 64px;
    --v22-y: 0px;
    --v22-scale: .985;
  }
}

body.bm-v2 [data-v2-stagger] > * {
  --v22-item-x: 0px;
  opacity: 0;
  transform: translate3d(var(--v22-item-x),46px,0) scale(.955) rotateX(3deg);
  transform-origin: 50% 100%;
  filter: none !important;
  transition:
    opacity .72s cubic-bezier(.16,1,.3,1),
    transform .96s cubic-bezier(.16,1,.3,1),
    border-color .42s ease,
    box-shadow .55s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform;
}

@media (min-width: 761px) {
  body.bm-v2 [data-v2-stagger] > *:nth-child(odd) { --v22-item-x: -18px; }
  body.bm-v2 [data-v2-stagger] > *:nth-child(even) { --v22-item-x: 18px; }
}

body.bm-v2 [data-v2-stagger].is-inview > * {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1) rotateX(0);
  filter: none !important;
}

body.bm-v2 [data-v2-stagger].is-inview > *:nth-child(2) { transition-delay:.09s; }
body.bm-v2 [data-v2-stagger].is-inview > *:nth-child(3) { transition-delay:.18s; }
body.bm-v2 [data-v2-stagger].is-inview > *:nth-child(4) { transition-delay:.27s; }
body.bm-v2 [data-v2-stagger].is-inview > *:nth-child(5) { transition-delay:.36s; }
body.bm-v2 [data-v2-stagger].is-inview > *:nth-child(6) { transition-delay:.45s; }
body.bm-v2 [data-v2-stagger].is-inview > *:nth-child(7) { transition-delay:.54s; }
body.bm-v2 [data-v2-stagger].is-inview > *:nth-child(8) { transition-delay:.63s; }

/* Extra targets discovered at runtime on sections that had no reveal hook. */
html.bliss-polish-motion body.bm-v2 .bliss-motion-item {
  --v22-x: 0px;
  --v22-y: 54px;
  --v22-scale: .97;
  opacity: 0;
  transform: translate3d(var(--v22-x),var(--v22-y),0) scale(var(--v22-scale));
  filter: none !important;
  transition:
    opacity .86s cubic-bezier(.16,1,.3,1),
    transform 1.04s cubic-bezier(.16,1,.3,1),
    clip-path 1s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--bliss-polish-delay,0ms);
  will-change: opacity, transform;
}

html.bliss-polish-motion body.bm-v2 .bliss-motion-heading {
  --v22-x: -36px;
  --v22-y: 0px;
  --v22-scale: 1;
  clip-path: inset(0 12% 0 0 round 8px);
}

html.bliss-polish-motion body.bm-v2 .bliss-motion-panel {
  --v22-y: 68px;
  --v22-scale: .95;
  transform-origin: 50% 0%;
}

html.bliss-polish-motion body.bm-v2 .bliss-motion-item.is-visible {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  clip-path: inset(0 0 0 0 round 0);
  filter: none !important;
}

html.bliss-polish-motion body.bm-v2 .bliss-motion-group > * {
  --v22-item-x: 0px;
  opacity: 0;
  transform: translate3d(var(--v22-item-x),44px,0) scale(.96);
  filter: none !important;
  transition: opacity .72s cubic-bezier(.16,1,.3,1), transform .94s cubic-bezier(.16,1,.3,1);
}

@media (min-width: 761px) {
  html.bliss-polish-motion body.bm-v2 .bliss-motion-group > *:nth-child(odd) { --v22-item-x: -16px; }
  html.bliss-polish-motion body.bm-v2 .bliss-motion-group > *:nth-child(even) { --v22-item-x: 16px; }
}

html.bliss-polish-motion body.bm-v2 .bliss-motion-group.is-visible > * {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: none !important;
}
html.bliss-polish-motion body.bm-v2 .bliss-motion-group.is-visible > *:nth-child(2) { transition-delay:.09s; }
html.bliss-polish-motion body.bm-v2 .bliss-motion-group.is-visible > *:nth-child(3) { transition-delay:.18s; }
html.bliss-polish-motion body.bm-v2 .bliss-motion-group.is-visible > *:nth-child(4) { transition-delay:.27s; }
html.bliss-polish-motion body.bm-v2 .bliss-motion-group.is-visible > *:nth-child(5) { transition-delay:.36s; }
html.bliss-polish-motion body.bm-v2 .bliss-motion-group.is-visible > *:nth-child(6) { transition-delay:.45s; }

/* The animated state is temporary: once complete, browser compositing is released. */
body.bm-v2 :is([data-v2-reveal].motion-complete,[data-v2-stagger].motion-complete),
html.bliss-polish-motion body.bm-v2 :is(.bliss-motion-item.motion-complete,.bliss-motion-group.motion-complete) {
  will-change: auto;
}

/* ---------------------- Smooth mobile top navigation ---------------------- */
@media (max-width: 920px) {
  body.bliss-content-page #bliss-global-nav {
    --nav-scroll-progress: 0;
    --nav-fg: rgb(41 32 79);
    isolation: isolate;
    overflow: visible;
    background: transparent !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    transition:
      min-height .42s cubic-bezier(.16,1,.3,1),
      padding .42s cubic-bezier(.16,1,.3,1),
      top .42s cubic-bezier(.16,1,.3,1) !important;
  }

  body.bliss-content-page #bliss-global-nav::before,
  body.bliss-content-page #bliss-global-nav::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    pointer-events: none;
  }

  body.bliss-content-page #bliss-global-nav::before {
    opacity: var(--nav-scroll-progress);
    background:
      radial-gradient(circle at 18% 18%,rgba(115,86,230,.24),transparent 38%),
      linear-gradient(100deg,rgba(29,22,61,.91),rgba(13,10,38,.965));
    box-shadow: 0 12px 34px rgba(24,14,67,calc(.18 * var(--nav-scroll-progress)));
    backdrop-filter: blur(calc(22px * var(--nav-scroll-progress))) saturate(calc(100% + (32% * var(--nav-scroll-progress))));
    -webkit-backdrop-filter: blur(calc(22px * var(--nav-scroll-progress))) saturate(calc(100% + (32% * var(--nav-scroll-progress))));
    will-change: opacity, backdrop-filter;
  }

  body.bliss-content-page #bliss-global-nav::after {
    top: auto;
    height: 1px;
    opacity: calc(.9 * var(--nav-scroll-progress));
    background: linear-gradient(90deg,transparent,rgba(206,194,255,.23),transparent);
  }

  body.bliss-content-page #bliss-global-nav > * { position: relative; z-index: 1; }

  body.bliss-content-page #bliss-global-nav .bliss-global-nav__logo img,
  body.bliss-content-page #bliss-global-nav.is-scrolled .bliss-global-nav__logo img {
    content: normal !important;
    filter:
      brightness(calc(1 - var(--nav-scroll-progress)))
      invert(var(--nav-scroll-progress))
      drop-shadow(0 7px 18px rgba(0,0,0,calc(.16 * var(--nav-scroll-progress))));
    transition: filter .08s linear;
  }

  body.bliss-content-page #bliss-global-nav .bliss-global-nav__mobile summary,
  body.bliss-content-page #bliss-global-nav.is-scrolled .bliss-global-nav__mobile summary {
    color: var(--nav-fg) !important;
    border-color: rgb(68 54 128 / calc(.34 - (.10 * var(--nav-scroll-progress)))) !important;
    background: rgb(255 255 255 / calc(.20 - (.15 * var(--nav-scroll-progress)))) !important;
    box-shadow:
      inset 0 1px 0 rgb(255 255 255 / calc(.42 - (.34 * var(--nav-scroll-progress)))),
      0 8px 22px rgb(18 11 55 / calc(.10 * var(--nav-scroll-progress))) !important;
    backdrop-filter: blur(calc(8px + (10px * var(--nav-scroll-progress))));
    transition: transform .38s cubic-bezier(.16,1,.3,1), border-color .12s linear, background-color .12s linear, color .12s linear !important;
  }

  body.bliss-nav-open #bliss-global-nav::before,
  body.bliss-nav-open #bliss-global-nav::after { opacity: 0 !important; }

  body.bliss-nav-open #bliss-global-nav .bliss-global-nav__logo img {
    filter: brightness(0) invert(1) drop-shadow(0 7px 18px rgba(0,0,0,.18)) !important;
  }

  body.bliss-nav-open #bliss-global-nav .bliss-global-nav__mobile summary {
    color: #fff !important;
    background: rgba(28,20,72,.64) !important;
  }

  .bliss-global-nav__mobile-panel {
    transform: translate3d(0,-42px,0) scale(1.015);
    clip-path: inset(0 0 100% 0 round 0 0 34px 34px);
    filter: none;
    transition:
      clip-path .72s cubic-bezier(.16,1,.3,1),
      transform .72s cubic-bezier(.16,1,.3,1),
      opacity .42s ease,
      filter .46s ease,
      visibility 0s linear .72s;
  }

  .bliss-global-nav__mobile.is-active .bliss-global-nav__mobile-panel {
    transform: none;
    clip-path: inset(0 0 0 0 round 0);
    filter: none;
    transition-delay: 0s;
  }

  .bliss-global-nav__mobile-link {
    transform: translate3d(0,22px,0) scale(.985);
    filter: none;
  }
}

/* ----------------------------- WhatsApp ----------------------------- */
body.bm-v2 .bliss-whatsapp-float {
  border-color: rgba(91,69,222,.48) !important;
  background:
    radial-gradient(circle at 18% 14%,rgba(184,74,215,.22),transparent 35%),
    linear-gradient(145deg,rgba(27,18,79,.97),rgba(47,30,112,.98)) !important;
  box-shadow: 0 18px 48px rgba(25,14,77,.31), 0 0 0 7px rgba(91,69,222,.08) !important;
}

body.bm-v2 .bliss-whatsapp-float:hover,
body.bm-v2 .bliss-whatsapp-float:focus-visible {
  border-color: rgba(184,74,215,.74) !important;
  box-shadow: 0 22px 58px rgba(25,14,77,.38), 0 0 0 9px rgba(91,69,222,.12) !important;
}

body.bm-v2 .bliss-whatsapp-float:focus-visible {
  outline-color: #7d68ec !important;
}

body.bm-v2 .bliss-whatsapp-icon {
  background: linear-gradient(135deg,#5b45de 0%,#8b4ee4 48%,#b431cd 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 10px 26px rgba(72,45,190,.33) !important;
}

body.bm-v2 .bliss-whatsapp-icon svg { fill: #fff !important; }
body.bm-v2 .menu-mobile-whatsapp,
body.bm-v2 .menu-mobile-whatsapp-arrow { color:#c9bcff !important; }
body.bm-v2 .menu-mobile-whatsapp-dot {
  background:linear-gradient(135deg,#7c65ef,#c146d2) !important;
  box-shadow:0 0 0 0 rgba(124,101,239,.42),0 0 18px rgba(177,70,209,.48) !important;
}

/* --------------------------- Shared desktop polish --------------------------- */
@media (min-width: 921px) {
  body.bm-v2 main > section:not(.hero) {
    padding-block: clamp(5.2rem,7vw,8.5rem);
  }

  body.bm-v2 .hero-inner {
    padding-top: clamp(8rem,11vh,10rem);
    padding-bottom: clamp(5.5rem,8vh,8rem);
  }

  body.bm-v2 .section-header,
  body.bm-v2 .v2-section-head {
    margin-bottom: clamp(2.8rem,4vw,4.6rem);
  }

  body.bm-v2 :is(.v2-card,.problem-card,.v2-mode-card,.v2-diagnosis-step,.proc-step,.case-study-shell,.v2-phase) {
    transition:
      transform .55s cubic-bezier(.16,1,.3,1),
      border-color .45s ease,
      box-shadow .55s cubic-bezier(.16,1,.3,1),
      background-color .45s ease;
  }

  body.bm-v2 :is(.v2-card,.problem-card,.v2-mode-card,.v2-diagnosis-step,.proc-step):hover {
    transform: translate3d(0,-6px,0) scale(1.004);
    box-shadow: 0 30px 74px rgba(47,30,135,.16);
  }

  body.method-page-v2 .v2-phase:hover {
    transform: translate3d(8px,0,0);
    border-color: rgba(191,176,255,.28);
  }

  body.results-page-v2 .case-study-shell:hover {
    transform: translate3d(0,-5px,0);
    box-shadow: 0 42px 110px rgba(25,14,88,.24);
  }

  body.results-page-v2 .case-study-shell .case-media img {
    transition: transform 1.1s cubic-bezier(.16,1,.3,1), filter .7s ease;
  }

  body.results-page-v2 .case-study-shell:hover .case-media img {
    transform: scale(1.018);
    filter: saturate(1.03) contrast(1.02);
  }

  body.web-page-v2 .hero-inner { padding-right: clamp(24rem,42vw,38rem); }
  body.web-page-v2 .v3-web-visual {
    top: 14%;
    right: max(2rem,calc((100vw - 1440px)/2 + 1rem));
    width: clamp(330px,30vw,470px);
    height: clamp(330px,33vw,470px);
  }

  body.web-page-v2 .v3-browser-body b {
    margin-bottom: clamp(1.25rem,2.3vw,2.7rem);
  }

  body.web-page-v2 .v3-browser-body em {
    max-width: 9.5ch;
    font-size: clamp(1.85rem,2.65vw,2.95rem);
    line-height: .97;
  }
  body.web-page-v2 .web-offer-timer-card {
    top: auto;
    right: 0;
    bottom: 7%;
    width: min(30vw,340px);
  }
}

/* ------------------------- Tablet corrections ------------------------- */
@media (min-width: 761px) and (max-width: 1100px) {
  body.bm-v2 .hero { min-height:auto; }
  body.bm-v2 .hero-inner { padding-block:8rem 5rem; }
  body.bm-v2 main > section:not(.hero) { padding-block:5.5rem; }
  body.web-page-v2 .hero-inner { padding-right:var(--gutter); }
  body.web-page-v2 .web-offer-timer-card { width:min(100%,31rem); }
  body.method-page-v2 .v2-phase { grid-template-columns:minmax(90px,.18fr) 1fr; }
}

/* ------------------------------ Mobile ------------------------------ */
@media (max-width: 760px) {
  :root { --gutter: clamp(16px,5vw,22px); }

  body.bm-v2 main { overflow: clip; }

  body.bm-v2 .hero {
    min-height: auto !important;
    padding: clamp(7rem,23vw,8.2rem) 0 clamp(3rem,10vw,4.3rem) !important;
    overflow: hidden;
  }

  body.web-page-v2 .hero {
    margin-top: 54px !important;
    padding-top: clamp(5.8rem,18vw,7rem) !important;
  }

  body.bm-v2 .hero-inner,
  body.method-page-v2 .hero-inner,
  body.results-page-v2 .hero-inner,
  body.web-page-v2 .hero-inner,
  body.diagnosis-page-v2 .hero-inner {
    display: flex !important;
    width: 100%;
    min-height: 0 !important;
    flex-direction: column;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 0;
    padding: 0 var(--gutter) !important;
    text-align: left !important;
  }

  body.bm-v2 .hero-eyebrow { margin:0 0 1.15rem !important; }

  body.bm-v2 .hero-title,
  body.method-page-v2 .hero-title,
  body.results-page-v2 .hero-title,
  body.web-page-v2 .hero-title,
  body.diagnosis-page-v2 .hero-title {
    width:100%;
    max-width: 11.7ch !important;
    margin:0 !important;
    padding:.04em 0 .12em !important;
    font-size: clamp(2.55rem,11.6vw,4rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -.052em;
    overflow: visible !important;
  }

  body.results-page-v2 .hero-title { max-width:12.8ch !important; }
  body.web-page-v2 .hero-title { max-width:12.4ch !important; }

  body.bm-v2 .hero-subtitle-wrap {
    width:100%;
    min-height:0 !important;
    margin:1.35rem 0 0 !important;
  }

  body.bm-v2 .hero-subtitle {
    width:100% !important;
    max-width:35ch !important;
    margin:0 !important;
    font-size:clamp(.97rem,4.15vw,1.06rem) !important;
    line-height:1.58 !important;
  }

  body.bm-v2 .hero-actions {
    display:grid !important;
    grid-template-columns:1fr;
    width:100% !important;
    max-width:23rem;
    margin:1.55rem 0 0 !important;
    gap:.72rem !important;
  }

  body.bm-v2 .hero-actions .btn {
    width:100%;
    min-height:3.25rem;
    justify-content:center;
    padding:.9rem 1.05rem;
  }

  body.bm-v2 .hero-micro {
    max-width:35ch !important;
    margin:1rem 0 0 !important;
    font-size:.85rem !important;
    line-height:1.55;
  }

  body.bm-v2 .trustbar {
    display:flex;
    width:100%;
    flex-wrap:wrap;
    gap:.55rem .85rem;
    margin-top:1.25rem !important;
  }

  body.bm-v2 main > section:not(.hero) {
    padding-block: clamp(3.7rem,14vw,5rem) !important;
  }

  body.bm-v2 main > section:not(.hero) + section:not(.hero) {
    border-top-color: rgba(83,60,182,.055);
  }

  body.bm-v2 .section-header,
  body.bm-v2 .v2-section-head {
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100%;
    gap:1rem !important;
    margin:0 0 2rem !important;
    text-align:left !important;
  }

  body.bm-v2 .section-header > *,
  body.bm-v2 .v2-section-head > * { width:100%; min-width:0; }

  body.bm-v2 :is(.section-header,.v2-section-head) :is(.h-section,p,.eyebrow,.v2-label) {
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    text-align:left !important;
    justify-content:flex-start !important;
  }

  body.bm-v2 .h-section,
  body.bm-v2 .section-header .h-section,
  body.bm-v2 .v2-section-head .h-section {
    width:100%;
    font-size:clamp(2rem,9.5vw,2.85rem) !important;
    line-height:1.04 !important;
    letter-spacing:-.045em;
  }

  body.bm-v2 .band-night {
    width:100%;
    padding:1.55rem !important;
    border-radius:24px !important;
    overflow:hidden;
  }

  body.bm-v2 :is(.grid-2,.grid-3,.grid-4,.grid-5,.grid-2x4),
  body.home-v2 :is(.grid-3,.v2-service-grid,.v2-values-grid,.v2-results-grid,.v2-diagnosis-steps),
  body.method-page-v2 .grid-4,
  body.web-page-v2 .v2-portfolio-grid,
  body.diagnosis-page-v2 .v2-scan-grid {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    gap:1rem !important;
    overflow:visible !important;
    scroll-snap-type:none !important;
  }

  body.home-v2 :is(.grid-3,.v2-service-grid,.v2-values-grid,.v2-results-grid,.v2-diagnosis-steps) > *,
  body.method-page-v2 .grid-4 > *,
  body.web-page-v2 .v2-portfolio-grid > *,
  body.diagnosis-page-v2 .v2-scan-grid > * {
    width:100% !important;
    max-width:100% !important;
    flex:none !important;
    min-width:0 !important;
    scroll-snap-align:none !important;
  }

  body.bm-v2 :is(.v2-card,.problem-card,.v2-mode-card,.v2-diagnosis-step,.proc-step) {
    width:100%;
    min-height:0 !important;
    padding:1.3rem !important;
    border-radius:21px !important;
  }

  body.bm-v2 :is(.v2-card,.problem-card,.v2-mode-card,.v2-diagnosis-step,.proc-step) h3 {
    font-size:clamp(1.25rem,5.7vw,1.55rem);
    line-height:1.12;
  }

  body.home-v2 .hero .hero-visual {
    position:relative !important;
    inset:auto !important;
    width:calc(100% - (var(--gutter) * 2)) !important;
    height:clamp(285px,83vw,370px) !important;
    margin:1.45rem var(--gutter) 0 !important;
    border-radius:26px !important;
    overflow:hidden !important;
  }

  body.home-v2 .hero .float-card { transform:scale(.88); transform-origin:center; }

  body.method-page-v2 .bliss-hero-asset,
  body.results-page-v2 .bliss-hero-asset,
  body.diagnosis-page-v2 .bliss-hero-asset {
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:min(88vw,350px) !important;
    min-height:290px;
    margin:1.8rem auto 0 !important;
    transform:none !important;
  }

  body.method-page-v2 .v2-method-orbit {
    width:min(100%,330px) !important;
    margin:1.5rem auto 0 !important;
    transform:scale(.91) !important;
  }

  body.method-page-v2 .v2-phase-list {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    margin:2.1rem 0 0 !important;
    padding:0 !important;
    gap:1rem !important;
    border-top:0 !important;
    overflow:visible !important;
    scroll-snap-type:none !important;
  }

  body.method-page-v2 .v2-phase {
    display:grid !important;
    grid-template-columns:58px minmax(0,1fr) !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    gap:1rem !important;
    margin:0 !important;
    padding:1.25rem !important;
    border:1px solid rgba(205,195,255,.16) !important;
    border-radius:22px !important;
    scroll-snap-align:none !important;
  }

  body.method-page-v2 .v2-phase-number {
    margin:0 !important;
    font-size:2.25rem !important;
    line-height:.9;
  }

  body.method-page-v2 .v2-phase-content { min-width:0; }
  body.method-page-v2 .v2-phase-content h3 { font-size:1.65rem !important; }
  body.method-page-v2 .v2-phase-output { padding:.95rem !important; }
  body.method-page-v2 .v2-phase-output ul { grid-template-columns:1fr !important; }

  body.results-page-v2 .case-study-section { padding-block:3.3rem !important; }
  body.results-page-v2 .case-study-shell,
  body.results-page-v2 .case-study-section .band-night {
    width:100%;
    padding:1rem !important;
    gap:1.15rem !important;
    border-radius:23px !important;
    overflow:hidden;
  }

  body.results-page-v2 .v3-case-name {
    font-size:clamp(2rem,10vw,2.7rem) !important;
    line-height:1 !important;
  }

  body.results-page-v2 .v3-case-headline { font-size:1.28rem !important; }
  body.results-page-v2 .metric-row {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:.65rem !important;
  }
  body.results-page-v2 .metric-row > div { min-width:0; text-align:left !important; }
  body.results-page-v2 .case-media { width:100% !important; margin-inline:0 !important; border-radius:18px !important; }
  body.results-page-v2 .v3-case-details { gap:1rem; }
  body.results-page-v2 .v3-case-proof { padding:1.1rem !important; }

  body.web-page-v2 .v3-web-visual { display:none !important; }
  body.web-page-v2 .web-offer-timer-card {
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    max-width:23rem;
    margin:1.45rem 0 0 !important;
    padding:1.2rem !important;
    border-radius:22px !important;
  }
  body.web-page-v2 .timer-digits strong { font-size:3rem !important; }
  body.web-page-v2 .timer-units { width:min(78%,12rem); }
  body.web-page-v2 .v2-portfolio-card .case-media { border-radius:16px; }
  body.web-page-v2 .v2-project-meta { gap:.55rem; flex-wrap:wrap; }
  body.web-page-v2 .web-price-section .section-header > div:last-child { text-align:left !important; }
  body.web-page-v2 .web-price-section .btn-row { width:100% !important; margin-inline:0 !important; }
  body.web-page-v2 .web-price-section .btn { width:100%; justify-content:center; }
  body.web-page-v2 .web-faq-heading { text-align:left !important; }
  body.web-page-v2 .web-faq-shell .faq-item { padding:1.15rem 2.8rem 1.15rem 1rem !important; }

  body.diagnosis-page-v2 .diagnosis-flow {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:.85rem !important;
    margin-top:1.5rem !important;
  }
  body.diagnosis-page-v2 .diagnosis-flow .proc-step { padding:1.25rem !important; }
  body.diagnosis-page-v2 .diagnosis-flow .n { margin-bottom:1rem !important; }

  body.bm-v2 :is(.form-wrap,.web-form,.multi-step-form) {
    width:100% !important;
    max-width:100% !important;
    margin-top:1.7rem !important;
    padding:1rem !important;
    border-radius:21px !important;
    overflow:hidden;
  }

  body.bm-v2 .form-step { min-height:0 !important; }
  body.bm-v2 :is(.step-options,.step-fields-grid,.web-form-grid) { grid-template-columns:1fr !important; }
  body.bm-v2 .step-actions { display:grid !important; grid-template-columns:1fr !important; }
  body.bm-v2 .step-actions .btn { width:100%; justify-content:center; }

  body.bm-v2 .bliss-whatsapp-float {
    right:14px !important;
    bottom:calc(14px + env(safe-area-inset-bottom)) !important;
    width:58px !important;
    height:58px !important;
    min-height:58px !important;
  }

  body.bm-v2 .bliss-whatsapp-icon { width:40px !important; height:40px !important; }
}

@media (max-width: 420px) {
  body.bm-v2 .hero-title,
  body.method-page-v2 .hero-title,
  body.results-page-v2 .hero-title,
  body.web-page-v2 .hero-title,
  body.diagnosis-page-v2 .hero-title {
    font-size:clamp(2.25rem,11vw,2.8rem) !important;
  }

  body.method-page-v2 .v2-phase {
    grid-template-columns:1fr !important;
    gap:.65rem !important;
  }

  body.method-page-v2 .v2-phase-number { margin-bottom:.15rem !important; }
  body.results-page-v2 .metric-row { grid-template-columns:1fr 1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
  html.bliss-polish-motion body.bm-v2 .bliss-motion-item,
  html.bliss-polish-motion body.bm-v2 .bliss-motion-group,
  body.bm-v2 [data-v2-reveal],
  body.bm-v2 [data-v2-stagger] > *,
  .bliss-global-nav__mobile-panel,
  .bliss-global-nav__mobile-link {
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
  }
}


/* ================================================================
   V25 — feedback refinement
   - hero Siti Web desktop: visual + timer più vicini
   - ribbon mobile più leggibile
   - prezzo 797€ senza tagli
   - hero Home mobile: float-card più vicine e più dinamiche
   - ripristino caroselli orizzontali richiesti su Home mobile
   - spazio migliore tra eyebrow e titolo nel blocco Metodo proprietario
   ================================================================ */

@media (min-width:1101px) {
  body.web-page-v2 .hero-inner {
    padding-right: clamp(21rem, 38vw, 33rem);
  }

  body.web-page-v2 .v3-web-visual {
    top: 11.5%;
    right: max(1.25rem, calc((100vw - 1440px) / 2 + 1.75rem));
    width: clamp(295px, 26vw, 410px);
    height: clamp(245px, 23vw, 345px);
  }

  body.web-page-v2 .web-offer-timer-card {
    right: clamp(.75rem, 1.4vw, 1.4rem);
    bottom: 13.5%;
    width: min(26vw, 320px);
  }
}

/* Movimento più ricco del sistema di leve nella hero Home. */
body.home-v2 .hero .hero-visual {
  isolation: isolate;
}

body.home-v2 .hero .float-card {
  will-change: transform;
  backface-visibility: hidden;
  transform-origin: center center;
}

body.home-v2 .hero .hero-visual.is-entered .c1 { animation: bliss-card-drift-1 8.4s ease-in-out infinite .2s; }
body.home-v2 .hero .hero-visual.is-entered .c2 { animation: bliss-card-drift-2 7.8s ease-in-out infinite .6s; }
body.home-v2 .hero .hero-visual.is-entered .c3 { animation: bliss-card-drift-3 9.4s ease-in-out infinite .15s; }
body.home-v2 .hero .hero-visual.is-entered .c4 { animation: bliss-card-drift-4 8.8s ease-in-out infinite .9s; }
body.home-v2 .hero .hero-visual.is-entered .c5 { animation: bliss-card-drift-5 7.4s ease-in-out infinite .35s; }
body.home-v2 .hero .hero-visual.is-entered .c6 { animation: bliss-card-drift-6 8.1s ease-in-out infinite .5s; }

@keyframes bliss-card-drift-1 {
  0%,100% { transform: translate3d(0,0,0) rotate(-2deg); }
  22% { transform: translate3d(-10px,8px,0) rotate(2deg); }
  51% { transform: translate3d(12px,-10px,0) rotate(-1.5deg); }
  77% { transform: translate3d(-6px,-14px,0) rotate(2.8deg); }
}
@keyframes bliss-card-drift-2 {
  0%,100% { transform: translate3d(0,0,0) rotate(1deg); }
  28% { transform: translate3d(12px,-8px,0) rotate(-3deg); }
  56% { transform: translate3d(-10px,9px,0) rotate(2deg); }
  82% { transform: translate3d(7px,12px,0) rotate(-1deg); }
}
@keyframes bliss-card-drift-3 {
  0%,100% { transform: translate3d(0,0,0) rotate(-1deg); }
  20% { transform: translate3d(10px,-12px,0) rotate(2deg); }
  48% { transform: translate3d(-12px,6px,0) rotate(-3deg); }
  72% { transform: translate3d(8px,12px,0) rotate(1.6deg); }
}
@keyframes bliss-card-drift-4 {
  0%,100% { transform: translate3d(0,0,0) rotate(2deg); }
  27% { transform: translate3d(-8px,-9px,0) rotate(-2deg); }
  53% { transform: translate3d(13px,6px,0) rotate(3deg); }
  79% { transform: translate3d(-10px,12px,0) rotate(-1deg); }
}
@keyframes bliss-card-drift-5 {
  0%,100% { transform: translate3d(0,0,0) rotate(-2.2deg); }
  24% { transform: translate3d(9px,10px,0) rotate(1deg); }
  47% { transform: translate3d(-14px,-6px,0) rotate(2.5deg); }
  76% { transform: translate3d(11px,-10px,0) rotate(-1.8deg); }
}
@keyframes bliss-card-drift-6 {
  0%,100% { transform: translate3d(0,0,0) rotate(1.5deg); }
  19% { transform: translate3d(-11px,6px,0) rotate(-2.5deg); }
  46% { transform: translate3d(8px,-12px,0) rotate(1deg); }
  70% { transform: translate3d(12px,8px,0) rotate(3deg); }
}

@media (max-width:760px) {
  /* Ribbon più presente, con testo più grande a parità di fascia. */
  body.web-page-v2 .web-offer-ribbon {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    min-height: 54px;
    gap: .55rem;
    padding: .38rem .7rem;
    font-size: .78rem;
  }

  body.web-page-v2 .web-offer-ribbon > span {
    max-width: none;
    font-size: .88rem;
    line-height: 1.12;
    letter-spacing: -.01em;
  }

  body.web-page-v2 .web-offer-ribbon strong {
    min-width: 68px;
    min-height: 32px;
    padding-inline: .7rem;
    font-size: .82rem;
  }

  /* Fix crop prezzo hero siti web. */
  body.web-page-v2 .hero-title {
    max-width: 13.1ch !important;
  }

  body.web-page-v2 .hero-title em.t-shimmer {
    padding-left: .12em !important;
    padding-right: .08em !important;
    margin-left: -.01em;
  }

  /* Card hero Home più vicine e più vive. */
  body.home-v2 .hero .hero-visual {
    height: clamp(300px, 82vw, 360px) !important;
    margin-top: 1.2rem !important;
  }

  body.home-v2 .hero .float-card {
    min-height: 42px;
    padding: .6rem .78rem;
    border-radius: 15px;
  }

  body.home-v2 .hero .float-card .label {
    font-size: .78rem;
  }

  body.home-v2 .hero .float-card.c1 { top: 7%; right: 10%; left: auto; }
  body.home-v2 .hero .float-card.c5 { top: 19%; left: 6%; right: auto; }
  body.home-v2 .hero .float-card.c2 { top: 36%; right: 4%; left: auto; }
  body.home-v2 .hero .float-card.c3 { top: 54%; left: 7%; right: auto; }
  body.home-v2 .hero .float-card.c6 { right: 7%; bottom: 11%; left: auto; }
  body.home-v2 .hero .float-card.c4 { left: 29%; bottom: 2%; right: auto; }

  /* Ripristino carousel orizzontale richiesto in Home. */
  body.home-v2 .grid-3,
  body.home-v2 .v2-service-grid {
    display: flex !important;
    align-items: stretch;
    gap: 1rem !important;
    width: calc(100% + (var(--gutter) * 2)) !important;
    max-width: none !important;
    margin-inline: calc(var(--gutter) * -1) !important;
    padding: 0 var(--gutter) 1rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-padding-inline: var(--gutter);
    scroll-snap-type: x mandatory !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  body.home-v2 .grid-3::-webkit-scrollbar,
  body.home-v2 .v2-service-grid::-webkit-scrollbar {
    display: none;
  }

  body.home-v2 .grid-3 > *,
  body.home-v2 .v2-service-grid > * {
    flex: 0 0 min(84vw, 325px) !important;
    width: min(84vw, 325px) !important;
    max-width: none !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always;
  }

  /* Più aria tra eyebrow e titolo nel blocco Metodo Proprietario della Home. */
  body.home-v2 .band-night > .eyebrow,
  body.home-v2 .band-night > .v2-label {
    margin-bottom: .95rem !important;
  }

  body.home-v2 .band-night > .h-section {
    margin-top: 0 !important;
  }
}

@media (max-width:420px) {
  body.web-page-v2 .web-offer-ribbon > span {
    font-size: .82rem;
  }

  body.web-page-v2 .hero-title em.t-shimmer {
    padding-left: .14em !important;
  }

  body.home-v2 .hero .float-card .label {
    font-size: .74rem;
  }
}


/* ================================================================
   V26 — mobile carousels, method centering and standalone quote
   ================================================================ */

body.home-v2 .v2-quote-standalone {
  display:none;
  width:100%;
  min-height:clamp(210px,28vw,290px);
  margin-top:1.25rem;
  padding:clamp(2rem,5vw,4rem);
  border-radius:26px;
}

@media (max-width:760px) {
  /* Shared mobile horizontal collection behavior. */
  body.home-v2 .v2-mode-grid,
  body.home-v2 .v2-question-list,
  body.home-v2 .v2-values-grid,
  body.home-v2 .v2-diagnosis-steps,
  body.method-page-v2 .v2-phase-list {
    display:flex !important;
    align-items:stretch !important;
    gap:1rem !important;
    width:calc(100% + (var(--gutter) * 2)) !important;
    max-width:none !important;
    margin-inline:calc(var(--gutter) * -1) !important;
    padding:0 var(--gutter) 1.1rem !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    scroll-padding-inline:var(--gutter) !important;
    scroll-snap-type:x mandatory !important;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  body.home-v2 .v2-mode-grid::-webkit-scrollbar,
  body.home-v2 .v2-question-list::-webkit-scrollbar,
  body.home-v2 .v2-values-grid::-webkit-scrollbar,
  body.home-v2 .v2-diagnosis-steps::-webkit-scrollbar,
  body.method-page-v2 .v2-phase-list::-webkit-scrollbar {
    display:none;
  }

  body.home-v2 .v2-mode-grid > *,
  body.home-v2 .v2-question-list > *,
  body.home-v2 .v2-values-grid > *,
  body.home-v2 .v2-diagnosis-steps > *,
  body.method-page-v2 .v2-phase-list > * {
    flex:0 0 min(86vw,338px) !important;
    width:min(86vw,338px) !important;
    max-width:none !important;
    min-width:0 !important;
    scroll-snap-align:center !important;
    scroll-snap-stop:always;
  }

  body.home-v2 .v2-mode-grid {
    margin-top:.2rem !important;
  }

  body.home-v2 .v2-mode-grid > * {
    flex-basis:min(88vw,350px) !important;
    width:min(88vw,350px) !important;
  }

  body.home-v2 .v2-question-list {
    border-top:0 !important;
    margin-top:.2rem !important;
  }

  body.home-v2 .v2-question-row {
    display:flex !important;
    flex-direction:column;
    justify-content:flex-start;
    gap:.85rem !important;
    min-height:220px;
    padding:1.45rem !important;
    border:1px solid rgba(83,60,182,.13) !important;
    border-radius:22px;
    background:rgba(255,255,255,.46);
    box-shadow:0 20px 48px rgba(58,39,145,.08);
    text-align:left !important;
  }

  body.home-v2 .v2-question-row strong,
  body.home-v2 .v2-question-row p {
    max-width:none !important;
    margin:0 !important;
    text-align:left !important;
  }

  body.home-v2 .v2-question-row strong {
    font-size:1.18rem;
  }

  body.home-v2 .v2-values-grid {
    margin-top:2.2rem !important;
  }

  body.home-v2 .v2-quote-in-grid {
    display:none !important;
  }

  body.home-v2 .v2-quote-standalone {
    display:grid !important;
    width:100% !important;
    min-height:210px !important;
    margin:1rem 0 0 !important;
    padding:1.75rem !important;
    text-align:center !important;
  }

  body.home-v2 .v2-quote-standalone p {
    text-align:center !important;
  }

  body.home-v2 .v2-diagnosis-steps > * {
    flex-basis:min(82vw,315px) !important;
    width:min(82vw,315px) !important;
  }

  /* The 8 Method phases become one compact horizontal path on mobile. */
  body.method-page-v2 .v2-phase-list {
    margin-top:2rem !important;
  }

  body.method-page-v2 .v2-phase {
    display:grid !important;
    grid-template-columns:1fr !important;
    align-content:start;
    gap:.75rem !important;
    flex-basis:min(89vw,355px) !important;
    width:min(89vw,355px) !important;
    margin:0 !important;
    padding:1.35rem !important;
    border:1px solid rgba(205,195,255,.18) !important;
    border-radius:23px !important;
  }

  body.method-page-v2 .v2-phase-number {
    margin:0 0 .25rem !important;
  }

  body.method-page-v2 .v2-phase-content h3 {
    margin-top:.2rem;
  }

  /* The orbit was visually shifted by the old scale/margin combination. */
  body.method-page-v2 .v2-method-orbit {
    position:relative !important;
    left:50% !important;
    width:330px !important;
    max-width:calc(100vw - 44px) !important;
    margin:1.8rem 0 1rem !important;
    transform:translateX(-50%) scale(.9) !important;
    transform-origin:50% 50% !important;
  }
}

@media (max-width:420px) {
  body.home-v2 .v2-mode-grid > *,
  body.method-page-v2 .v2-phase-list > * {
    flex-basis:88vw !important;
    width:88vw !important;
  }

  body.method-page-v2 .v2-method-orbit {
    width:318px !important;
    transform:translateX(-50%) scale(.88) !important;
  }
}


/* ================================================================
   V27 — final alignment and visual refinements
   ================================================================ */

/* Method orbit: optically centered labels and core copy. */
body.method-page-v2 .v2-method-core,
body.method-page-v2 .v2-method-node {
  text-align:center;
  line-height:1.25;
}

body.method-page-v2 .v2-method-core {
  padding:.35rem;
  justify-items:center;
  align-items:center;
}

/* Diagnosis cards: each card receives the same premium moving edge,
   with a distinct chromatic identity. */
body.diagnosis-page-v2 .v2-scan-card {
  --scan-edge-a:#9f8cff;
  --scan-edge-b:#e150cf;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid transparent !important;
}

body.diagnosis-page-v2 .v2-scan-card:nth-child(2) {
  --scan-edge-a:#71b7ff;
  --scan-edge-b:#6a5cff;
}

body.diagnosis-page-v2 .v2-scan-card:nth-child(3) {
  --scan-edge-a:#f071c6;
  --scan-edge-b:#9e63ff;
}

body.diagnosis-page-v2 .v2-scan-card:nth-child(4) {
  --scan-edge-a:#64a6ff;
  --scan-edge-b:#b66cff;
}

body.diagnosis-page-v2 .v2-scan-card::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  padding:1.5px;
  border-radius:inherit;
  pointer-events:none;
  background:conic-gradient(from var(--iride-ang),transparent 0 10%,var(--scan-edge-a) 22%,var(--scan-edge-b) 42%,transparent 58% 72%,var(--scan-edge-a) 88%,transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  animation:iride-spin 6.8s linear infinite;
  opacity:.9;
}

body.diagnosis-page-v2 .v2-scan-card::after {
  content:"";
  position:absolute;
  z-index:0;
  width:12rem;
  height:12rem;
  right:-5rem;
  bottom:-6rem;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--scan-edge-b) 48%,transparent),transparent 69%);
  filter:blur(4px);
  opacity:.55;
  animation:bliss-scan-aura 5.6s ease-in-out infinite alternate;
}

body.diagnosis-page-v2 .v2-scan-card:nth-child(2)::before,
body.diagnosis-page-v2 .v2-scan-card:nth-child(2)::after { animation-delay:-1.2s; }
body.diagnosis-page-v2 .v2-scan-card:nth-child(3)::before,
body.diagnosis-page-v2 .v2-scan-card:nth-child(3)::after { animation-delay:-2.4s; }
body.diagnosis-page-v2 .v2-scan-card:nth-child(4)::before,
body.diagnosis-page-v2 .v2-scan-card:nth-child(4)::after { animation-delay:-3.6s; }

body.diagnosis-page-v2 .v2-scan-card > * {
  position:relative;
  z-index:1;
}

@keyframes bliss-scan-aura {
  to { transform:translate3d(-2.2rem,-1.6rem,0) scale(1.18); opacity:.82; }
}

@media (min-width:1101px) {
  /* Siti Web desktop: the two right-hand cards form one compact stack. */
  body.web-page-v2 .v3-web-visual {
    top:11%;
    right:max(1.4rem,calc((100vw - 1440px)/2 + 1.8rem));
    width:clamp(315px,26vw,410px);
    height:clamp(275px,24vw,350px);
  }

  body.web-page-v2 .web-offer-timer-card {
    top:52%;
    right:max(1.4rem,calc((100vw - 1440px)/2 + 1.8rem));
    bottom:auto;
    width:min(26vw,320px);
  }

  /* Prevent the last line (“forte.”) from being clipped. */
  body.web-page-v2 .v3-browser-body {
    padding:clamp(1.25rem,1.8vw,1.75rem);
  }

  body.web-page-v2 .v3-browser-body b {
    margin-bottom:.8rem;
  }

  body.web-page-v2 .v3-browser-body span {
    margin:.4rem 0;
  }

  body.web-page-v2 .v3-browser-body em {
    max-width:100%;
    font-size:clamp(1.65rem,2.2vw,2.45rem);
    line-height:.94;
  }
}

@media (max-width:760px) {
  /* Offer timer card centered as a complete composition. */
  body.web-page-v2 .web-offer-timer-card {
    align-self:center !important;
    width:min(100%,23rem) !important;
    margin:1.45rem auto 0 !important;
    text-align:center !important;
  }

  body.web-page-v2 .web-offer-timer-card .timer-kicker,
  body.web-page-v2 .web-offer-timer-card p {
    width:100%;
    margin-left:auto;
    margin-right:auto;
    text-align:center !important;
  }

  body.web-page-v2 .timer-digits {
    justify-content:center;
  }

  body.web-page-v2 .timer-units {
    width:min(78%,12rem);
    margin-left:auto;
    margin-right:auto;
  }

  body.web-page-v2 .timer-units span,
  body.web-page-v2 .timer-units span:last-child {
    text-align:center !important;
  }

  /* Diagnosis hero micro-copy now follows the centered CTA instead of
     appearing detached on the left. */
  body.diagnosis-page-v2 .hero-actions {
    margin-left:auto !important;
    margin-right:auto !important;
  }

  body.diagnosis-page-v2 .hero-micro {
    width:100%;
    max-width:28rem !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
  }

  /* Faster, denser movement for the Home system card. */
  body.home-v2 .hero .hero-visual {
    height:clamp(285px,76vw,330px) !important;
  }

  body.home-v2 .hero .hero-visual.is-entered .c1 { animation-duration:4.6s; animation-delay:.05s; }
  body.home-v2 .hero .hero-visual.is-entered .c2 { animation-duration:4.1s; animation-delay:.25s; }
  body.home-v2 .hero .hero-visual.is-entered .c3 { animation-duration:5s; animation-delay:.1s; }
  body.home-v2 .hero .hero-visual.is-entered .c4 { animation-duration:4.4s; animation-delay:.35s; }
  body.home-v2 .hero .hero-visual.is-entered .c5 { animation-duration:3.9s; animation-delay:.18s; }
  body.home-v2 .hero .hero-visual.is-entered .c6 { animation-duration:4.3s; animation-delay:.28s; }

  body.home-v2 .hero .float-card.c1 { top:7%; right:8%; left:auto; }
  body.home-v2 .hero .float-card.c5 { top:20%; left:7%; right:auto; }
  body.home-v2 .hero .float-card.c2 { top:34%; right:5%; left:auto; }
  body.home-v2 .hero .float-card.c3 { top:50%; left:8%; right:auto; }
  body.home-v2 .hero .float-card.c6 { right:6%; bottom:13%; left:auto; }
  body.home-v2 .hero .float-card.c4 { left:29%; bottom:2%; right:auto; }

  /* Stronger organic paths without causing viewport overflow. */
  @keyframes bliss-card-drift-1 {
    0%,100% { transform:translate3d(0,0,0) rotate(-3deg); }
    22% { transform:translate3d(-14px,10px,0) rotate(3deg); }
    51% { transform:translate3d(15px,-12px,0) rotate(-2deg); }
    77% { transform:translate3d(-8px,-15px,0) rotate(3.5deg); }
  }
  @keyframes bliss-card-drift-2 {
    0%,100% { transform:translate3d(0,0,0) rotate(2deg); }
    28% { transform:translate3d(15px,-10px,0) rotate(-4deg); }
    56% { transform:translate3d(-13px,11px,0) rotate(3deg); }
    82% { transform:translate3d(9px,14px,0) rotate(-2deg); }
  }
  @keyframes bliss-card-drift-3 {
    0%,100% { transform:translate3d(0,0,0) rotate(-2deg); }
    20% { transform:translate3d(13px,-14px,0) rotate(3deg); }
    48% { transform:translate3d(-15px,8px,0) rotate(-4deg); }
    72% { transform:translate3d(10px,14px,0) rotate(2.5deg); }
  }
  @keyframes bliss-card-drift-4 {
    0%,100% { transform:translate3d(0,0,0) rotate(3deg); }
    27% { transform:translate3d(-11px,-12px,0) rotate(-3deg); }
    53% { transform:translate3d(15px,8px,0) rotate(4deg); }
    79% { transform:translate3d(-12px,14px,0) rotate(-2deg); }
  }
  @keyframes bliss-card-drift-5 {
    0%,100% { transform:translate3d(0,0,0) rotate(-3deg); }
    24% { transform:translate3d(12px,12px,0) rotate(2deg); }
    47% { transform:translate3d(-16px,-8px,0) rotate(3.5deg); }
    76% { transform:translate3d(13px,-12px,0) rotate(-2.5deg); }
  }
  @keyframes bliss-card-drift-6 {
    0%,100% { transform:translate3d(0,0,0) rotate(2deg); }
    19% { transform:translate3d(-14px,8px,0) rotate(-3.5deg); }
    46% { transform:translate3d(10px,-14px,0) rotate(2deg); }
    70% { transform:translate3d(14px,10px,0) rotate(4deg); }
  }

  /* More precise optical centering of the method diagram on small screens. */
  body.method-page-v2 .v2-method-orbit {
    left:50% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:translateX(-50%) scale(.88) !important;
  }
}

@media (max-width:420px) {
  body.method-page-v2 .v2-method-orbit {
    transform:translateX(-50%) scale(.86) !important;
  }
}

/* V27.1 — compact web stack and clearer scan-card edges. */
body.diagnosis-page-v2 .v2-scan-card {
  box-shadow:
    0 26px 68px color-mix(in srgb,var(--scan-a) 24%,transparent),
    inset 0 0 0 1px color-mix(in srgb,var(--scan-edge-a) 62%,rgba(255,255,255,.45)) !important;
}

@media (min-width:1101px) {
  body.web-page-v2 .web-offer-timer-card {
    top:clamp(29rem,36vw,33rem);
  }
}
@media (min-width:1101px) {
  body.web-page-v2 .web-offer-timer-card {
    top:clamp(19rem,23vw,21rem);
  }
}


/* ================================================================
   V28 — final bugfix pass
   ================================================================ */

@media (min-width:1101px) {
  /* The offer card must be positioned against the hero, not against the
     narrower text container. This prevents it from crossing the headline
     on wide/ultrawide desktop viewports. */
  body.web-page-v2 .hero-inner {
    position:static !important;
  }

  body.web-page-v2 .v3-web-visual {
    top:9.5%;
    right:max(1.5rem,calc((100vw - 1440px)/2 + 1.8rem));
    width:clamp(315px,25vw,410px);
    height:clamp(270px,22vw,345px);
  }

  body.web-page-v2 .web-offer-timer-card {
    position:absolute !important;
    top:calc(9.5% + clamp(270px,22vw,345px) + 1rem) !important;
    right:max(1.5rem,calc((100vw - 1440px)/2 + 1.8rem)) !important;
    bottom:auto !important;
    left:auto !important;
    width:min(25vw,320px) !important;
    margin:0 !important;
  }
}

@media (max-width:760px) {
  /* A tighter visual cluster: the cards stay close even before their
     animated drift brings them toward one another. */
  body.home-v2 .hero .hero-visual {
    height:clamp(255px,68vw,285px) !important;
  }

  body.home-v2 .hero .float-card {
    min-height:39px !important;
    padding:.52rem .68rem !important;
    gap:.55rem !important;
  }

  body.home-v2 .hero .float-card.c1 { top:8%; right:15%; left:auto; }
  body.home-v2 .hero .float-card.c5 { top:19%; left:10%; right:auto; }
  body.home-v2 .hero .float-card.c2 { top:29%; right:6%; left:auto; }
  body.home-v2 .hero .float-card.c3 { top:40%; left:14%; right:auto; }
  body.home-v2 .hero .float-card.c4 { top:52%; left:34%; right:auto; bottom:auto; }
  body.home-v2 .hero .float-card.c6 { top:66%; right:16%; bottom:auto; left:auto; }
}

@media (max-width:420px) {
  body.home-v2 .hero .hero-visual {
    height:260px !important;
  }
}


/* ================================================================
   V29 — final web-stack tuning + case-study recolor alignment
   ================================================================ */

@media (min-width:1101px) {
  /* Compact, self-contained right stack on Siti Web desktop. */
  body.web-page-v2 .hero-inner {
    padding-right: clamp(22rem, 36vw, 31rem) !important;
  }

  body.web-page-v2 .v3-web-visual {
    top: 6.2% !important;
    right: max(1.35rem, calc((100vw - 1440px) / 2 + 1.6rem)) !important;
    width: clamp(300px, 23vw, 380px) !important;
    height: clamp(250px, 19vw, 320px) !important;
  }

  body.web-page-v2 .web-offer-timer-card {
    top: calc(6.2% + clamp(250px, 19vw, 320px) + .7rem) !important;
    right: max(1.35rem, calc((100vw - 1440px) / 2 + 1.6rem)) !important;
    width: min(22vw, 300px) !important;
  }
}

@media (max-width:760px) {
  /* Hero system cluster even more compact on mobile. */
  body.home-v2 .hero .hero-visual {
    width: min(86vw, 320px) !important;
    height: clamp(228px, 61vw, 255px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.home-v2 .hero .float-card {
    min-height: 38px !important;
    padding: .48rem .64rem !important;
    gap: .48rem !important;
    border-radius: 14px !important;
  }

  body.home-v2 .hero .float-card .label { font-size: .73rem !important; }
  body.home-v2 .hero .float-card .value { font-size: 1.05rem !important; }

  body.home-v2 .hero .float-card.c1 { top: 10%; right: 16%; left: auto; }
  body.home-v2 .hero .float-card.c5 { top: 18%; left: 14%; right: auto; }
  body.home-v2 .hero .float-card.c2 { top: 29%; right: 10%; left: auto; }
  body.home-v2 .hero .float-card.c3 { top: 40%; left: 16%; right: auto; }
  body.home-v2 .hero .float-card.c4 { top: 51%; left: 35%; right: auto; bottom: auto; }
  body.home-v2 .hero .float-card.c6 { top: 64%; right: 15%; left: auto; bottom: auto; }
}

@media (max-width:420px) {
  body.home-v2 .hero .hero-visual {
    width: min(88vw, 312px) !important;
    height: 242px !important;
  }
}


/* ================================================================
   V30 — web hero alignment + final case-study background cleanup
   ================================================================ */

@media (min-width:1101px) {
  /* The right-hand stack must sit lower, aligned with the visual start of
     the hero title rather than hugging the top edge of the viewport. */
  body.web-page-v2 .hero {
    min-height: calc(100svh - 44px);
  }

  body.web-page-v2 .hero-inner {
    padding-right: clamp(23rem, 37vw, 32rem) !important;
  }

  body.web-page-v2 .v3-web-visual {
    top: clamp(11rem, 18vh, 13.5rem) !important;
    right: max(1.5rem, calc((100vw - 1440px) / 2 + 1.9rem)) !important;
    width: clamp(285px, 22vw, 360px) !important;
    height: clamp(240px, 18vw, 305px) !important;
  }

  body.web-page-v2 .web-offer-timer-card {
    top: calc(clamp(11rem, 18vh, 13.5rem) + clamp(240px, 18vw, 305px) + .9rem) !important;
    right: max(1.5rem, calc((100vw - 1440px) / 2 + 1.9rem)) !important;
    width: min(21vw, 280px) !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  body.web-page-v2 .web-offer-timer-card .timer-kicker,
  body.web-page-v2 .web-offer-timer-card p {
    width: 100%;
    text-align: center !important;
    margin-left: auto;
    margin-right: auto;
  }

  body.web-page-v2 .web-offer-timer-card p {
    max-width: 22ch;
    margin-top: .2rem;
  }

  body.web-page-v2 .timer-digits {
    justify-content: center;
  }

  body.web-page-v2 .timer-units {
    width: min(11.2rem, 100%);
    margin-left: auto;
    margin-right: auto;
  }

  body.web-page-v2 .timer-units span,
  body.web-page-v2 .timer-units span:last-child {
    text-align: center !important;
  }
}
