/* SIGMA v2: footer and the global CTA band. On the light theme these two form the page's ONE deliberate
   navy block (the finale), so the dark token set is re-declared locally and every rule below still uses tokens. */
html.sb-v2 :is(.sbpass-main, .sbft) {
  --v2-ink: #071C33; --v2-ink-2: #0A223D; --v2-surface: #0D2744; --v2-surface-2: #12304F;
  --v2-line: rgba(160, 190, 225, .14); --v2-line-strong: rgba(160, 190, 225, .26);
  --v2-text: #F2F6FA; --v2-text-2: #BCC9D9; --v2-text-3: #93A4BA;
  --v2-accent-text: #FF9F33; --v2-accent-ink: #071C33; --v2-accent-soft: rgba(255, 138, 0, .14);
  color-scheme: dark;
}

html.sb-v2 .sbft { background: var(--v2-ink); border-top: 1px solid var(--v2-line); }
html.sb-v2 .sbft::before, html.sb-v2 .sbft::after { display: none; }
html.sb-v2 .sbft-h { color: var(--v2-text); font: 600 .8125rem/1 var(--sb-font-mono); letter-spacing: .14em; }
html.sb-v2 .sbft a:not(.sbft-logo) { color: var(--v2-text-2); transition: color .2s; }
html.sb-v2 .sbft a:not(.sbft-logo):hover { color: var(--v2-accent-text); }
html.sb-v2 .sbft-about, html.sb-v2 .sbft-copy, html.sb-v2 .sbft-news__text, html.sb-v2 .sbft-news__note { color: var(--v2-text-3); }
html.sb-v2 .sbft-bar { border-top-color: var(--v2-line); }
html.sb-v2 .sbft-social a { border-color: var(--v2-line-strong); }
html.sb-v2 .sbft-social a:hover { border-color: var(--v2-accent); }

/* ==========================================================================
   Global CTA: the consultation pass (markup: partials/cta-v2.html)
   A compact ticket that straddles the paper/footer boundary: navy main panel with a drifting
   data field, a perforated tear line with notches, and a paper stub that holds the actions.
   ========================================================================== */
html.sb-v2 .sbct--v2 {
  position: relative; padding: clamp(56px, 7vw, 96px) 0 0; color: var(--v2-text);
  /* paper above, footer navy below: the pass sits across the seam */
  background: linear-gradient(180deg, var(--v2-ink) 0, var(--v2-ink) 58%, #06182C 58%, #06182C 100%);
}
html.sb-v2 .sbct--v2 + .sbft { border-top: 0; }
/* the classic band overlay and two-column grid do not apply to the pass */
html.sb-v2 .sbct--v2::before, html.sb-v2 .sbct--v2::after { display: none; }
html.sb-v2 .sbct--v2 .sbct-inner { display: block; }
html.sb-v2 .sbpass {
  --notch: 18px; --stub: clamp(300px, 28%, 380px);
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) var(--stub);
  filter: drop-shadow(0 30px 40px rgba(7, 28, 51, .22)) drop-shadow(0 4px 8px rgba(7, 28, 51, .08));
}
/* the halves are cut with notches at the perforation (radial masks), so the tear reads physically */
html.sb-v2 .sbpass-main {
  position: relative; overflow: hidden; isolation: isolate; padding: clamp(32px, 4vw, 56px);
  background: radial-gradient(600px 300px at 0% 100%, rgba(255, 138, 0, .16), transparent 70%), linear-gradient(135deg, #0B2546 0%, #071C33 60%);
  box-shadow: inset 0 0 0 1px rgba(160, 190, 225, .16); /* rim: keeps the edge where the panel meets the navy footer */
  border-radius: var(--v2-r-media) 0 0 var(--v2-r-media);
  -webkit-mask: radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
}
/* drifting data field: the hero terrain dots, laid flat in perspective on the right */
html.sb-v2 .sbpass-field {
  position: absolute; inset: -40% -10% -40% 35%; z-index: -1; pointer-events: none;
  background-image: radial-gradient(circle, rgba(141, 190, 240, .5) 1.2px, transparent 1.6px);
  background-size: 22px 22px;
  transform: perspective(700px) rotateX(58deg) rotateZ(-8deg);
  -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent); mask-image: radial-gradient(closest-side, #000 30%, transparent);
  animation: sbpass-drift 18s linear infinite;
}
@keyframes sbpass-drift { to { background-position: 0 -220px; } }
html.sb-v2 .sbpass-title {
  max-width: 17ch; margin: 0; font-family: var(--sb-font-heading); font-stretch: 112%; font-weight: 800;
  font-size: var(--v2-fs-h2); line-height: 1.02; letter-spacing: var(--v2-track-h2); color: var(--v2-text);
}
html.sb-v2 .sbpass-title strong { color: var(--v2-accent-text); }
html.sb-v2 .sbpass-lede { max-width: 46ch; margin: 18px 0 0; font-size: var(--v2-fs-lede); color: var(--v2-text-2); }
html.sb-v2 .sbpass-points { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 26px 0 0; padding: 22px 0 0; border-top: 1px dashed var(--v2-line-strong); list-style: none; }
html.sb-v2 .sbpass-points li { display: inline-flex; align-items: center; gap: 9px; font-size: var(--v2-fs-small); font-weight: 500; color: var(--v2-text); }
html.sb-v2 .sbpass-points i { color: var(--v2-accent-text); font-size: .875rem; }

/* the stub: paper white, perforation dots on the tear edge */
html.sb-v2 .sbpass-stub {
  position: relative; display: flex; flex-direction: column; justify-content: center; gap: 18px;
  padding: clamp(28px, 3vw, 44px) clamp(24px, 3vw, 40px);
  background: #FFFFFF; color: #071C33; border-radius: 0 var(--v2-r-media) var(--v2-r-media) 0;
  -webkit-mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
  transform-origin: 0 50%; transition: transform .6s var(--v2-ease);
}
html.sb-v2 .sbpass-stub::before {
  content: ""; position: absolute; left: 0; top: calc(var(--notch) + 8px); bottom: calc(var(--notch) + 8px); width: 2px;
  background: radial-gradient(circle, rgba(7, 28, 51, .28) 1px, transparent 1.5px) 0 0 / 2px 10px repeat-y;
}
html.sb-v2 .sbpass-admit { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 4px 12px; margin: 0; }
html.sb-v2 .sbpass-admit__big { font: 800 3.25rem/1 var(--sb-font-heading); font-stretch: 118%; letter-spacing: var(--v2-track-display); color: #071C33; }
html.sb-v2 .sbpass-admit__small { font: 600 .875rem/1.2 var(--sb-font-body); color: #3B4A5F; }
html.sb-v2 .sbpass-admit__tag { align-self: start; padding: 5px 9px; border-radius: 6px; background: var(--v2-accent); color: #071C33; font: 700 .75rem/1 var(--sb-font-mono); letter-spacing: .08em; text-transform: uppercase; }
html.sb-v2 .sbpass-btn {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 0 20px;
  border-radius: var(--v2-r-ctl); background: var(--v2-accent); color: #071C33; font-weight: 700; font-size: 1rem;
  box-shadow: 0 12px 26px -12px rgba(232, 118, 0, .8); transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), background-color .2s;
}
html.sb-v2 .sbpass-btn:hover { background: #FF9A24; transform: translateY(-2px); box-shadow: 0 18px 32px -12px rgba(232, 118, 0, .9); }
html.sb-v2 .sbpass-btn:active { transform: translateY(1px) scale(.98); }
html.sb-v2 .sbpass-btn i { transition: transform .35s var(--v2-ease); }
html.sb-v2 .sbpass-btn:hover i { transform: translateX(4px); }
html.sb-v2 .sbpass-alt { display: flex; gap: 8px; }
html.sb-v2 .sbpass-alt a {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 12px;
  border: 1px solid rgba(7, 28, 51, .14); border-radius: var(--v2-r-ctl); color: #071C33; font-weight: 600; font-size: .9375rem; transition: border-color .2s, background-color .2s;
}
html.sb-v2 .sbpass-alt a:hover { border-color: #071C33; background: #F4F6F9; }
html.sb-v2 .sbpass-alt .fa-whatsapp { color: #128C4A; }
html.sb-v2 .sbpass a:focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 3px; }

/* hover: the stub leans away along the tear line */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  html.sb-v2 .sbpass:hover .sbpass-stub { transform: translateX(6px) rotate(.8deg); }
}

@media (max-width: 1100px) { html.sb-v2 .sbpass { --stub: 300px; } }
/* phone: the pass turns vertical, the tear runs across */
@media (max-width: 767px) {
  html.sb-v2 .sbct--v2 { background: linear-gradient(180deg, var(--v2-ink) 0, var(--v2-ink) 70%, #06182C 70%); }
  html.sb-v2 .sbpass { grid-template-columns: 1fr; --notch: 14px; }
  html.sb-v2 .sbpass-main {
    border-radius: var(--v2-r-media) var(--v2-r-media) 0 0;
    -webkit-mask: radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) right / 51% 100% no-repeat;
            mask: radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) right / 51% 100% no-repeat;
  }
  html.sb-v2 .sbpass-stub {
    border-radius: 0 0 var(--v2-r-media) var(--v2-r-media);
    -webkit-mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) right / 51% 100% no-repeat;
            mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) right / 51% 100% no-repeat;
  }
  html.sb-v2 .sbpass-stub::before { left: calc(var(--notch) + 8px); right: calc(var(--notch) + 8px); top: 0; bottom: auto; width: auto; height: 2px; background: radial-gradient(circle, rgba(7, 28, 51, .28) 1px, transparent 1.5px) 0 0 / 10px 2px repeat-x; }
  html.sb-v2 .sbpass:hover .sbpass-stub { transform: none; }
}
@media (prefers-reduced-motion: reduce) { html.sb-v2 .sbpass-field { animation: none; } }


/* ==========================================================================
   v2 footer: "the curtain" (markup: partials/footer-v2.html)
   Large screens: the page is a sheet that lifts to reveal a full-height footer pinned beneath it
   (html.v2-curtain, set by js/v2.js when the footer fits the viewport). Mount Kenya in a navy
   duotone, the brand line in light/bold contrast, concierge-style contact, hairlines, no boxes.
   ========================================================================== */
html.sb-v2 .sbft--v2 {
  position: relative; overflow: hidden; isolation: isolate; border-top: 0;
  background: #06182C; color: var(--v2-text-2);
}
/* photo: duotone navy, settles (scale + light) as the curtain lifts; --reveal 0..1 set by js/v2.js */
html.sb-v2 .sbfc-photo { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
html.sb-v2 .sbfc-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%;
  filter: grayscale(1) contrast(1.15) brightness(.9);
  opacity: calc(.3 + var(--reveal, 1) * .25);
  transform: scale(calc(1.14 - var(--reveal, 1) * .14));
  transform-origin: 50% 70%; will-change: transform;
}
html.sb-v2 .sbfc-photo::after { /* navy duotone + falloff toward the text */
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(6, 24, 44, .9) 0%, rgba(6, 24, 44, .35) 42%, rgba(6, 24, 44, .88) 100%),
    linear-gradient(90deg, rgba(6, 24, 44, .8) 0%, rgba(6, 24, 44, .15) 75%);
}
html.sb-v2 .sbft--v2 > .sbft-inner { width: 100%; }
html.sb-v2 .sbfc { position: relative; display: flex; flex-direction: column; gap: clamp(36px, 4vw, 56px); padding-top: clamp(56px, 6vw, 96px); padding-bottom: 28px; }

/* ---- composition: a 12-column editorial grid ----
   head:  brand line (cols 1-7) | direct line (cols 8-12, aligned to the line's baseline)
   grid:  Practices | Explore | Visit | Insights by email, each under its own hairline
   sign:  logo, copyright, legal, back to top */
html.sb-v2 .sbfc-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 48px); align-items: end; }
html.sb-v2 .sbfc-line {
  grid-column: 1 / span 7; margin: 0;
  font-family: var(--sb-font-heading); font-stretch: 112%; font-weight: 300;
  font-size: calc(var(--v2-fs-display) * 1.08); line-height: .96; letter-spacing: var(--v2-track-display); color: #F2F6FA;
}
html.sb-v2 .sbfc-line em { font-style: normal; font-weight: 800; color: #FF9F33; }

/* direct line: status, the email as the hero link with copy, the phone */
html.sb-v2 .sbfc-direct { grid-column: 8 / -1; justify-self: end; text-align: right; padding-bottom: 6px; } /* right-aligned to the grid edge: counterweight to the brand line */
html.sb-v2 .sbfc-status { display: block; margin: 0 0 18px; font-size: .8125rem; color: var(--v2-text-3); }
html.sb-v2 .sbfc-status strong { font-weight: 600; color: #DCE5EF; }
html.sb-v2 .sbfc-status__dot { position: relative; display: inline-block; vertical-align: 1px; margin-right: 10px; width: 8px; height: 8px; border-radius: 50%; background: #7C8BA0; }
html.sb-v2 .sbfc-status.is-open .sbfc-status__dot { background: #34D399; box-shadow: 0 0 0 0 rgba(52, 211, 153, .55); animation: sbfc-pulse 2.4s ease-out infinite; }
@keyframes sbfc-pulse { to { box-shadow: 0 0 0 10px rgba(52, 211, 153, 0); } }
html.sb-v2 .sbfc-mail { display: flex; align-items: center; justify-content: flex-end; gap: 16px; flex-wrap: wrap; }
html.sb-v2 .sbft--v2 .sbfc-mail__link {
  font-family: var(--sb-font-heading); font-stretch: 108%; font-weight: 300; font-size: clamp(1.5rem, 1.1rem + 1.25vw, 2.375rem); letter-spacing: -.025em; line-height: 1.1;
  color: #FFFFFF; background: linear-gradient(#FF9F33, #FF9F33) 0 100% / 0 2px no-repeat; padding-bottom: 6px; transition: background-size .6s var(--v2-ease);
}
html.sb-v2 .sbft--v2 .sbfc-mail__link:hover, html.sb-v2 .sbft--v2 .sbfc-mail__link:focus-visible { background-size: 100% 2px; color: #FFFFFF; }
html.sb-v2 .sbfc-copy-btn {
  height: 30px; padding: 0 12px; border: 1px solid rgba(160, 190, 225, .35); border-radius: 999px; background: transparent;
  font: 500 .6875rem/1 var(--sb-font-body); letter-spacing: .16em; text-transform: uppercase; color: #DCE5EF; cursor: pointer;
  transition: background-color .3s, border-color .3s, color .3s;
}
html.sb-v2 .sbfc-copy-btn:hover, html.sb-v2 .sbfc-copy-btn:focus-visible { border-color: #FF9F33; color: #FF9F33; }
html.sb-v2 .sbfc-copy-btn.is-done { background: #FF8A00; border-color: #FF8A00; color: #071C33; }
html.sb-v2 .sbft--v2 .sbfc-tel { display: inline-block; margin-top: 10px; font-family: var(--sb-font-heading); font-stretch: 108%; font-weight: 300; font-size: clamp(1.125rem, 1rem + .5vw, 1.5rem); letter-spacing: -.015em; color: #BCC9D9; }
html.sb-v2 .sbft--v2 .sbfc-tel:hover { color: #FFFFFF; }

/* four columns under hairlines */
html.sb-v2 .sbfc-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 48px); row-gap: 40px; }
html.sb-v2 .sbfc-grid > :nth-child(1) { grid-column: 1 / span 3; }
html.sb-v2 .sbfc-grid > :nth-child(2) { grid-column: 4 / span 2; }
html.sb-v2 .sbfc-grid > :nth-child(3) { grid-column: 6 / span 3; }
html.sb-v2 .sbfc-grid > :nth-child(4) { grid-column: 9 / -1; }
html.sb-v2 .sbfc-col { padding-top: 22px; border-top: 1px solid rgba(160, 190, 225, .2); font-style: normal; }
html.sb-v2 .sbfc-h { margin: 0 0 18px; font: 500 .6875rem/1 var(--sb-font-body); letter-spacing: .24em; text-transform: uppercase; color: #93A4BA; }
html.sb-v2 .sbfc-col ul { margin: 0; padding: 0; list-style: none; }
html.sb-v2 .sbfc-col li + li { margin-top: 9px; }
html.sb-v2 .sbft--v2 .sbfc-col a, html.sb-v2 .sbft--v2 .sbfc-legal a { font-size: .9375rem; color: #DCE5EF; }
html.sb-v2 .sbfc-addr { margin: 0; font-size: .9375rem; line-height: 1.5; }
html.sb-v2 .sbfc-hours { margin: 6px 0 0; font-size: .875rem; color: #93A4BA; }
html.sb-v2 .sbfc-social { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 20px !important; }
html.sb-v2 .sbfc-social li + li { margin-top: 0 !important; }
html.sb-v2 .sbfc-ext { margin-left: 6px; font-size: .7em; transform: rotate(-45deg); transition: transform .45s var(--v2-ease); }
html.sb-v2 .sbft--v2 a:hover .sbfc-ext { transform: rotate(-45deg) translate(3px, 0); }

/* text roll: the label slides up and a copy rolls in from below (data-roll added by js/v2.js) */
html.sb-v2 .sbft--v2 .sbfc-roll a { position: relative; display: inline-flex; align-items: center; overflow: hidden; vertical-align: top; }
html.sb-v2 .sbft--v2 .sbfc-roll a .v2-roll { display: inline-block; position: relative; transition: transform .55s var(--v2-ease); }
html.sb-v2 .sbft--v2 .sbfc-roll a .v2-roll::after { content: attr(data-roll); position: absolute; left: 0; top: 100%; color: #FF9F33; }
html.sb-v2 .sbft--v2 .sbfc-roll a:hover .v2-roll, html.sb-v2 .sbft--v2 .sbfc-roll a:focus-visible .v2-roll { transform: translateY(-100%); }

/* newsletter, compact */
html.sb-v2 .sbfc-label { display: block; max-width: 36ch; margin-bottom: 8px; font-size: .9375rem; line-height: 1.5; color: #BCC9D9; }
html.sb-v2 .sbfc-field { position: relative; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(160, 190, 225, .35); }
html.sb-v2 .sbfc-field::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: #FF9F33; transform: scaleX(0); transform-origin: 0 50%; transition: transform .6s var(--v2-ease); }
html.sb-v2 .sbfc-field:focus-within::after { transform: scaleX(1); }
html.sb-v2 .sbft--v2 .sbfc-field input[type="email"] {
  flex: 1; min-width: 0; height: 52px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; outline: none;
  font: 300 1.125rem/1 var(--sb-font-heading); font-stretch: 108%; color: #F2F6FA;
}
html.sb-v2 .sbft--v2 .sbfc-field input::placeholder { color: rgba(188, 201, 217, .6); opacity: 1; }
html.sb-v2 .sbft--v2 .sbfc-field input[aria-invalid="true"] { color: #FFB4A8; }
html.sb-v2 .sbft--v2 .sbfc-field button {
  position: static; flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 50%;
  border: 1px solid rgba(160, 190, 225, .4); background: transparent; color: #F2F6FA; font-size: .875rem;
  transition: background-color .35s var(--v2-ease), border-color .35s, color .35s, transform .35s var(--v2-ease);
}
html.sb-v2 .sbft--v2 .sbfc-field button:hover, html.sb-v2 .sbft--v2 .sbfc-field button:focus-visible { background: #FF8A00; border-color: #FF8A00; color: #071C33; transform: rotate(-45deg); }
html.sb-v2 .sbft--v2 .sbfc-news .sbft-news__note { margin-top: 10px; font-size: .8125rem; color: #93A4BA; }
html.sb-v2 .sbft--v2 .sbfc-news .sbft-news__note.is-error { color: #FFB4A8; }
html.sb-v2 .sbft--v2 .sbfc-news .sbft-news__note.is-info { color: #F2F6FA; }

/* signature row */
html.sb-v2 .sbfc-sign { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 28px; padding-top: 22px; border-top: 1px solid rgba(160, 190, 225, .2); }
html.sb-v2 .sbft--v2 .sbfc-logo .sbft-logo__img { height: 30px; width: auto; }
html.sb-v2 .sbfc-copy { display: block; margin: 0; font-size: .8125rem; color: #93A4BA; }
html.sb-v2 .sbfc-legal { display: flex; gap: 22px; margin: 0 0 0 auto; padding: 0; list-style: none; }
html.sb-v2 .sbft--v2 .sbfc-legal a { font-size: .8125rem; color: #93A4BA; }
html.sb-v2 .sbft--v2 .sbfc-totop { display: inline-flex; align-items: center; gap: 12px; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: #DCE5EF; background: none; }
html.sb-v2 .sbfc-totop i { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(160, 190, 225, .4); border-radius: 50%; transition: transform .45s var(--v2-ease), background-color .3s, border-color .3s, color .3s; }
html.sb-v2 .sbfc-totop:hover i, html.sb-v2 .sbfc-totop:focus-visible i { transform: translateY(-4px); background: #FF8A00; border-color: #FF8A00; color: #071C33; }
html.sb-v2 .sbft--v2 .sbfc a:focus-visible, html.sb-v2 .sbft--v2 .sbfc button:focus-visible { outline: 2px solid #FF9F33; outline-offset: 4px; }

/* ---------- the curtain (large screens, footer shorter than the viewport) ---------- */
html.sb-v2.v2-curtain .sbft--v2 { position: sticky; bottom: 0; z-index: 0; min-height: min(100dvh, 860px); display: flex; flex-direction: column; justify-content: flex-end; }
html.sb-v2.v2-curtain .v2-sheet { position: relative; z-index: 1; background-color: var(--v2-ink); }
/* the sheet edge: rounded corners and a soft shadow falling onto the footer */
html.sb-v2.v2-curtain .v2-sheet--last { border-radius: 0 0 28px 28px; box-shadow: 0 40px 60px -30px rgba(0, 8, 20, .55), 0 2px 0 rgba(255, 255, 255, .6) inset; }
/* the consultation pass now rests on the sheet (paper all round) instead of straddling a navy band */
html.sb-v2.v2-curtain .sbct--v2 { background: var(--v2-ink); padding-bottom: clamp(56px, 7vw, 96px); }

/* tablet and phone: normal flow, stacked */
@media (max-width: 1100px) {
  html.sb-v2 .sbfc-line { grid-column: 1 / -1; margin-bottom: 36px; }
  html.sb-v2 .sbfc-direct { grid-column: 1 / -1; justify-self: start; text-align: left; }
  html.sb-v2 .sbfc-mail { justify-content: flex-start; }
  html.sb-v2 .sbfc-grid > :nth-child(1) { grid-column: 1 / span 6; }
  html.sb-v2 .sbfc-grid > :nth-child(2) { grid-column: 7 / span 6; }
  html.sb-v2 .sbfc-grid > :nth-child(3) { grid-column: 1 / span 6; }
  html.sb-v2 .sbfc-grid > :nth-child(4) { grid-column: 7 / span 6; }
}
@media (max-width: 767px) {
  html.sb-v2 .sbfc { gap: 48px; padding-top: 72px; }
  html.sb-v2 .sbfc-line { font-size: var(--v2-fs-display); }
  html.sb-v2 .sbfc-grid > * { grid-column: 1 / -1 !important; }
  html.sb-v2 .sbfc-legal { margin-left: 0; }
  html.sb-v2 .sbfc-sign { padding-bottom: 88px; } /* clear the sticky mobile action bar */
}
@media (min-width: 768px) { html.sb-v2 .sbfc-sign { padding-right: 84px; } } /* floating WhatsApp button */
@media (prefers-reduced-motion: reduce) { html.sb-v2 .sbfc-photo img { transform: none; } }
