/* ==========================================================================
   Top Sydney Cleaners - PREMIUM HOMEPAGE (Navy + Gold direction)
   Implementation Prompt 1 of 3: foundation, header, announcement, hero,
   trust/statistics band, services intro, animation system.

   Loaded ONLY on the custom homepage (tsc_use_new_home), AFTER home.css.
   It re-maps the design-system role tokens to navy/gold for the homepage
   (and its global header/footer) without touching style.css / components.css,
   so every other page keeps the existing look. Remove the enqueue to revert.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1 - TOKENS  (scoped: beats :root, inherits into the global header/footer)
   -------------------------------------------------------------------------- */
body.tsc-homev2,
body.tsc-homev2 .tsc-home{
  --tsc-navy:#0E2A47;
  --tsc-navy-900:#0B2138;
  --tsc-navy-600:#17395B;
  --tsc-navy-050:#EAF1F8;
  --tsc-gold:#F4A62A;
  --tsc-gold-600:#DE9012;
  --tsc-gold-050:#FCEFD9;

  /* semantic roles */
  --tsc-color-primary:        #0E2A47;
  --tsc-color-primary-strong: #0B2138;
  --tsc-color-primary-soft:   #EAF1F8;
  --tsc-color-secondary:      #0E2A47;
  --tsc-color-secondary-strong:#0B2138;
  --tsc-color-cta:            #F4A62A;
  --tsc-color-cta-strong:     #DE9012;
  --tsc-color-accent:         #F4A62A;
  --tsc-color-accent-strong:  #DE9012;

  --tsc-color-bg:        #F5F8FC;
  --tsc-color-surface:   #FFFFFF;
  --tsc-color-surface-2: #EEF3F9;
  --tsc-color-card:      #FFFFFF;

  --tsc-color-text:        #0E2A47;
  --tsc-color-text-muted:  #45566A;
  --tsc-color-text-subtle: #566579;   /* >=4.5:1 on white (AA) */
  --tsc-color-border:        #E2E9F1;
  --tsc-color-border-strong: #C7D4E1;

  /* legacy raw aliases consumed by the global header / announcement / stars */
  --tsc-amber:#F4A62A;   --tsc-amber-600:#DE9012;
  --tsc-blue:#0E2A47;    --tsc-blue-700:#0B2138;   --tsc-blue-050:#EAF1F8;
  --tsc-ink:#0E2A47;     --tsc-ink-70:#3E4E62;     --tsc-ink-45:#566579;
  --tsc-rule:#E2E9F1;

  --tsc-shadow-sm:0 1px 2px rgba(14,42,71,.08), 0 2px 6px rgba(14,42,71,.06);
  --tsc-shadow-md:0 8px 22px rgba(14,42,71,.12);
  --tsc-shadow-lg:0 20px 48px rgba(14,42,71,.18);

  --tsc-radius-lg:14px;
}

/* --------------------------------------------------------------------------
   2 - GLOBAL HEADER + ANNOUNCEMENT  (homepage only)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-annc{ background:var(--tsc-navy-900); }
body.tsc-homev2 .tsc-annc__cta{ background:var(--tsc-gold); color:var(--tsc-navy); font-weight:700; }
body.tsc-homev2 .tsc-annc__cta:hover{ background:var(--tsc-gold-600); color:var(--tsc-navy); }

body.tsc-homev2 .site-header .ast-primary-header-bar,
body.tsc-homev2 .site-header .main-header-bar{ border-bottom-color:#E2E9F1; }
body.tsc-homev2 #ast-hf-menu-1 > .menu-item > a{ color:var(--tsc-navy); font-weight:600; }
body.tsc-homev2 #ast-hf-menu-1 > .menu-item > a::after{ background:var(--tsc-gold); }
body.tsc-homev2 #ast-hf-menu-1 > .menu-item > a:hover,
body.tsc-homev2 #ast-hf-menu-1 > .menu-item.current-menu-item > a{ color:var(--tsc-navy-900); } /* navy, not gold - AA on white */

/* Header "Book a Clean" -> solid gold pill, navy text (reference) */
body.tsc-homev2 #ast-hf-menu-1 > .tsc-nav-cta > .menu-link{
  background:var(--tsc-gold) !important;
  color:var(--tsc-navy) !important;
  border-radius:999px;
  font-weight:700;
  box-shadow:0 6px 16px rgba(244,166,42,.28);
}
body.tsc-homev2 #ast-hf-menu-1 > .tsc-nav-cta > .menu-link:hover{ background:var(--tsc-gold-600) !important; }

/* Header phone -> solid navy pill, white text (reference) */
body.tsc-homev2 a.tsc-header-call{
  background:var(--tsc-navy) !important;
  border-color:var(--tsc-navy) !important;
  color:#fff !important;
}
body.tsc-homev2 a.tsc-header-call:hover{ background:var(--tsc-navy-900) !important; border-color:var(--tsc-navy-900) !important; color:#fff !important; }
body.tsc-homev2 a.tsc-header-call .tsc-header-call__icon{ color:var(--tsc-gold); }

/* --------------------------------------------------------------------------
   3 - GLOBAL FOOTER  (homepage only -> navy, per reference)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-footer{
  background:var(--tsc-navy-900);
  border-top:3px solid var(--tsc-gold);
  color:#fff;
}
body.tsc-homev2 .tsc-footer__h{ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-footer__desc,
body.tsc-homev2 .tsc-footer__addr-hint,
body.tsc-homev2 .tsc-footer__hours,
body.tsc-homev2 .tsc-footer__hours span,
body.tsc-homev2 .tsc-footer__copy{ color:rgba(255,255,255,.74); }
body.tsc-homev2 .tsc-footer__links a,
body.tsc-homev2 .tsc-footer__contact-link{ color:rgba(255,255,255,.86); }
body.tsc-homev2 .tsc-footer__links a:hover,
body.tsc-homev2 .tsc-footer__contact-link:hover,
body.tsc-homev2 .tsc-footer__contact-link:hover span:not(.tsc-footer__addr-hint){ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-footer__col[aria-label="Services"] .tsc-footer__links li:first-child a{ color:#fff; }
body.tsc-homev2 .tsc-footer__ico{ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-footer__bar{ border-top-color:rgba(255,255,255,.14); }
body.tsc-homev2 .tsc-footer__logo img{ filter:brightness(0) invert(1); opacity:.92; }
body.tsc-homev2 .tsc-footer .tsc-btn--primary{ box-shadow:0 8px 20px rgba(244,166,42,.3); }

/* --------------------------------------------------------------------------
   4 - SHARED  homepage rhythm + section helpers
   -------------------------------------------------------------------------- */
/* Astra's Google Fonts (Inter) are dropped on this page - make `body` use the
   design font so any element that inherits from it (e.g. the quote form) is
   consistent rather than falling back to a bare system serif/sans. */
body.tsc-homev2{ font-family:var(--tsc-font); }
body.tsc-homev2 .tsc-home{ background:var(--tsc-color-bg); }
body.tsc-homev2 .tsc-section--surface{ background:#fff; }
body.tsc-homev2 .tsc-section--alt{ background:var(--tsc-color-surface-2); }

body.tsc-homev2 .tsc-eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  padding:.36em .95em;
  border-radius:999px;
  background:var(--tsc-gold-050);
  color:var(--tsc-navy);              /* navy on cream = ~12:1 (AA) */
  border:1px solid rgba(244,166,42,.4);
  font-size:var(--tsc-text-xs);
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
/* Accent word in a heading: stays readable navy, gets a gold underline accent
   (gold as a TEXT colour fails contrast on light; as a rule it is fine).
   A gradient background hugs the glyphs and repeats cleanly per line fragment
   on a wrapped span (box-shadow underlines overshoot trailing space). */
body.tsc-homev2 .tsc-accent{
  color:inherit;
  background-image:linear-gradient(var(--tsc-gold), var(--tsc-gold));
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:100% .14em;
  padding-bottom:.06em;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
/* On dark panels the accent can be solid gold (gold on navy passes AA). */
body.tsc-homev2 .tsc-whyx__title .tsc-accent,
body.tsc-homev2 .tsc-cta-band--ink .tsc-accent,
body.tsc-homev2 .tsc-darkband__title .tsc-accent,
body.tsc-homev2 .tsc-syd__title .tsc-accent,
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] .tsc-accent{
  color:var(--tsc-gold); background-image:none; padding-bottom:0;
}

/* gold ring on the featured service card + navy icon chips everywhere */
body.tsc-homev2 .tsc-card--featured{ box-shadow:0 0 0 2px var(--tsc-gold) inset, var(--tsc-shadow-sm); }
body.tsc-homev2 .tsc-badge--featured{ background:var(--tsc-gold); color:var(--tsc-navy); }
body.tsc-homev2 .tsc-card__icon,
body.tsc-homev2 .tsc-feature__icon,
body.tsc-homev2 .tsc-steps__icon{ background:var(--tsc-navy); color:var(--tsc-gold); }
body.tsc-homev2 .tsc-checklist__ico,
body.tsc-homev2 .tsc-trustbar__ico{ background:var(--tsc-navy-050); color:var(--tsc-navy); }
body.tsc-homev2 .tsc-stars__s.is-on{ fill:var(--tsc-gold); }
body.tsc-homev2 .tsc-cta-band:not(.tsc-cta-band--ink){ background:#fff; border-color:var(--tsc-color-border); }
body.tsc-homev2 .tsc-cta-band--ink{ background:var(--tsc-navy); }
body.tsc-homev2 .tsc-cta-band--featured{ box-shadow:0 0 0 2px var(--tsc-gold) inset, var(--tsc-shadow-sm); }

/* --------------------------------------------------------------------------
   5 - HERO  (reference composition: copy left, image right + floating card)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-hero{
  position:relative;
  background:
    radial-gradient(1100px 520px at 82% 8%, rgba(244,166,42,.10), transparent 60%),
    linear-gradient(180deg, #EEF4FB 0%, #F5F8FC 100%);
  padding-block:clamp(28px,4vw,56px) clamp(12px,1.8vw,20px);
  overflow:hidden;
}
body.tsc-homev2 .tsc-hero__inner{
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  align-items:center;
  gap:clamp(32px,5vw,72px);
}
body.tsc-homev2 .tsc-hero__copy{ max-width:36rem; }
body.tsc-homev2 .tsc-hero__title{
  margin:.7rem 0 .8rem;
  font-size:clamp(2.05rem,1.35rem+2.7vw,3.15rem);
  line-height:1.12;
  font-weight:800;
  letter-spacing:-.015em;
  color:var(--tsc-navy);
}
body.tsc-homev2 .tsc-hero__lead{
  font-size:var(--tsc-text-md);
  color:var(--tsc-color-text-muted);
  max-width:33rem;
  text-wrap:pretty;
}

/* inline trust items (icon + label) below the lead */
body.tsc-homev2 .tsc-hero__points{
  list-style:none; margin:0 0 var(--tsc-space-6); padding:0;
  display:flex; flex-wrap:wrap; gap:.5rem 1.4rem;
}
body.tsc-homev2 .tsc-hero__points li{
  display:flex; align-items:center; gap:.5em;
  font-size:var(--tsc-text-sm); font-weight:600; color:var(--tsc-navy);
}
body.tsc-homev2 .tsc-hero__points svg{ width:1.15rem; height:1.15rem; color:var(--tsc-gold-600); flex:none; }

body.tsc-homev2 .tsc-hero .tsc-cta-group{ margin-bottom:var(--tsc-space-5); gap:var(--tsc-space-3); }
body.tsc-homev2 .tsc-hero .tsc-btn{ padding:14px 26px; font-size:var(--tsc-text-base); }
/* hero primary = gold, secondary = solid navy (dark button for contrast) */
body.tsc-homev2 .tsc-hero .tsc-btn--secondary{
  --_bg:var(--tsc-navy); --_fg:#fff; --_bg-hover:var(--tsc-navy-900);
  background:var(--tsc-navy); color:#fff; border-color:var(--tsc-navy);
}
body.tsc-homev2 .tsc-hero .tsc-btn--secondary:hover{ background:var(--tsc-navy-900); color:#fff; }

body.tsc-homev2 .tsc-hero__phone{ color:var(--tsc-color-text-muted); }
body.tsc-homev2 .tsc-hero__phone .tsc-cta-phone__ico{ color:var(--tsc-gold-600); }

/* Google rating strip (replaces the plain dot list) */
body.tsc-homev2 .tsc-hero__rating{
  margin-top:var(--tsc-space-6);
  padding-top:var(--tsc-space-4);
  border-top:1px solid var(--tsc-color-border);
  display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
  font-size:var(--tsc-text-sm); color:var(--tsc-color-text-muted);
}
body.tsc-homev2 .tsc-hero__rating .tsc-g{
  width:22px; height:22px; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:#fff; box-shadow:var(--tsc-shadow-sm);
  font-weight:800; color:#4285F4; font-size:13px;
}
body.tsc-homev2 .tsc-hero__rating strong{ color:var(--tsc-navy); font-weight:800; font-size:var(--tsc-text-md); }

/* Media column: rounded frame + subtle navy glow + floating rating card */
body.tsc-homev2 .tsc-hero__media{ position:relative; }
body.tsc-homev2 .tsc-hero__frame{
  border-radius:22px;
  box-shadow:0 30px 60px -20px rgba(14,42,71,.45);
  aspect-ratio:4 / 5;
}
body.tsc-homev2 .tsc-hero__frame img{ object-position:center 22%; }  /* favour faces on the crop */
body.tsc-homev2 .tsc-hero__frame::after{
  content:""; position:absolute; inset:0;
  border-radius:22px;
  box-shadow:0 0 0 1px rgba(14,42,71,.06) inset;
  pointer-events:none;
}
body.tsc-homev2 .tsc-hero__media::before{
  content:""; position:absolute; right:-6%; top:-8%;
  width:46%; aspect-ratio:1; z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(244,166,42,.28), transparent 70%);
}
body.tsc-homev2 .tsc-hero__badge{
  position:absolute; left:-10px; bottom:26px;
  display:flex; align-items:center; gap:.7rem;
  padding:12px 16px;
  background:#fff;
  border-radius:14px;
  box-shadow:var(--tsc-shadow-lg);
}
body.tsc-homev2 .tsc-hero__badge .tsc-stars{ gap:1px; }
body.tsc-homev2 .tsc-hero__badge .tsc-stars__s{ width:13px; height:13px; }
body.tsc-homev2 .tsc-hero__badge b{ display:block; font-size:var(--tsc-text-md); font-weight:800; color:var(--tsc-navy); line-height:1.1; }
body.tsc-homev2 .tsc-hero__badge span{ display:block; font-size:11px; color:var(--tsc-color-text-subtle); }

@media (max-width:860px){
  body.tsc-homev2 .tsc-hero__inner{ grid-template-columns:1fr; }
  body.tsc-homev2 .tsc-hero__frame{ aspect-ratio:4 / 5; }
  body.tsc-homev2 .tsc-hero__badge{ left:8px; bottom:12px; padding:10px 12px; }
  body.tsc-homev2 .tsc-hero .tsc-cta-group > .tsc-btn{ flex:1 1 100%; }
}

/* --------------------------------------------------------------------------
   6 - TRUST / STATISTICS BAND  (navy full band, verified figures only)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-statband{
  background:transparent;
  color:#fff;
  padding-block:0 clamp(10px,1.6vw,16px);
  position:relative; z-index:2;
}
body.tsc-homev2 .tsc-statband__inner{
  margin-top:clamp(28px, 4vw, 44px);       /* sits below the hero, no overlap */
  background:linear-gradient(180deg, var(--tsc-navy) 0%, var(--tsc-navy-900) 100%);
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;
  box-shadow:0 26px 60px -24px rgba(14,42,71,.55);
  padding:clamp(18px,2.5vw,24px) clamp(14px,3vw,30px);
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:var(--tsc-space-3);
  align-content:center;
}
body.tsc-homev2 .tsc-statband__item{
  text-align:center;
  padding:4px 6px;
  position:relative;
  display:flex; flex-direction:column; align-items:center;
}
body.tsc-homev2 .tsc-statband__item + .tsc-statband__item::before{
  content:""; position:absolute; left:0; top:16%; bottom:16%;
  width:1px; background:rgba(255,255,255,.12);
}
body.tsc-homev2 .tsc-statband__ico{
  display:inline-flex; width:34px; height:34px; margin-bottom:8px;
  align-items:center; justify-content:center;
  color:var(--tsc-gold);
}
body.tsc-homev2 .tsc-statband__ico svg{ width:26px; height:26px; }
body.tsc-homev2 .tsc-statband__num{
  font-size:clamp(1.35rem, 1rem + 1.1vw, 1.8rem);
  font-weight:800; line-height:1.15; letter-spacing:-.01em;
}
body.tsc-homev2 .tsc-statband__label{
  margin-top:2px;
  font-size:var(--tsc-text-xs);
  color:rgba(255,255,255,.7);
}
@media (max-width:900px){
  body.tsc-homev2 .tsc-statband__inner{ grid-template-columns:repeat(2,1fr); gap:var(--tsc-space-3); }
  body.tsc-homev2 .tsc-statband__item + .tsc-statband__item::before{ display:none; }
  body.tsc-homev2 .tsc-statband__item:nth-child(odd)::before{
    content:""; display:block; position:absolute; left:-1px; top:16%; bottom:16%; width:1px; background:rgba(255,255,255,.12);
  }
}
@media (max-width:480px){
  body.tsc-homev2 .tsc-statband__inner{ grid-template-columns:1fr 1fr; margin-top:24px; }
}

/* --------------------------------------------------------------------------
   7 - SERVICES INTRODUCTION  (split heading -> supporting copy -> link)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-servintro{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;
  gap:clamp(20px,3.4vw,44px);
  align-items:center;
  max-width:none;               /* override .tsc-section__head max-width:60ch */
  text-align:left;
}
body.tsc-homev2 .tsc-servintro__title{
  margin:.4rem 0 0;
  font-size:clamp(1.6rem,1.1rem+1.5vw,2.2rem);
  font-weight:800; line-height:1.16; color:var(--tsc-navy);
  text-wrap:balance;
}
body.tsc-homev2 .tsc-servintro__lead{
  margin:0; font-size:var(--tsc-text-base);
  line-height:var(--tsc-leading-normal); color:var(--tsc-color-text-muted);
}
body.tsc-homev2 .tsc-servintro__cta .tsc-btn{ white-space:nowrap; }
@media (max-width:900px){
  body.tsc-homev2 .tsc-servintro{ grid-template-columns:1fr; text-align:left; }
  body.tsc-homev2 .tsc-servintro__cta .tsc-btn{ width:100%; }
}

/* --------------------------------------------------------------------------
   9 - SERVICE CARDS  (S3 - image-top premium cards, reference style)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-svcgrid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap:clamp(20px,2.5vw,28px);
}
body.tsc-homev2 .tsc-svc{
  position:relative;
  display:flex; flex-direction:column;
  background:#fff;
  border:1px solid var(--tsc-color-border);
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--tsc-shadow-sm);
  transition:transform var(--tsc-dur-slow, .24s) var(--tsc-ease), box-shadow var(--tsc-dur-slow, .24s) var(--tsc-ease), border-color var(--tsc-dur-slow, .24s) var(--tsc-ease);
}
body.tsc-homev2 .tsc-svc:hover{ transform:translateY(-6px); box-shadow:var(--tsc-shadow-lg); border-color:var(--tsc-gold); }
body.tsc-homev2 .tsc-svc--featured{ box-shadow:0 0 0 2px var(--tsc-gold) inset, var(--tsc-shadow-sm); }
body.tsc-homev2 .tsc-svc--featured .tsc-badge{
  position:absolute; top:14px; right:14px; z-index:3; margin:0;
  background:var(--tsc-gold); color:var(--tsc-navy); font-weight:800;
}
body.tsc-homev2 .tsc-svc__media{
  position:relative; display:block;
  aspect-ratio:16 / 11; overflow:hidden;
  background:var(--tsc-navy-050);
}
body.tsc-homev2 .tsc-svc__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block;
  transition:transform .5s var(--tsc-ease);
}
body.tsc-homev2 .tsc-svc:hover .tsc-svc__media img{ transform:scale(1.05); }
body.tsc-homev2 .tsc-svc__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(14,42,71,.28));
}
body.tsc-homev2 .tsc-svc__icon{
  position:absolute; left:14px; bottom:14px; z-index:2;
  width:46px; height:46px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:13px;
  background:var(--tsc-navy); color:var(--tsc-gold);
  box-shadow:0 8px 18px rgba(14,42,71,.35);
}
body.tsc-homev2 .tsc-svc__icon svg{ width:23px; height:23px; }
body.tsc-homev2 .tsc-svc__body{
  display:flex; flex-direction:column; gap:8px;
  padding:var(--tsc-space-5);
}
body.tsc-homev2 .tsc-svc__title{ margin:0; font-size:var(--tsc-h4, 1.25rem); font-weight:800; color:var(--tsc-navy); }
body.tsc-homev2 .tsc-svc__text{ margin:0; font-size:var(--tsc-text-sm); line-height:var(--tsc-leading-normal); color:var(--tsc-color-text-muted); }
body.tsc-homev2 .tsc-svc .tsc-cta-link{ margin-top:auto; padding-top:8px; color:var(--tsc-navy); font-weight:700; }
body.tsc-homev2 .tsc-svc:hover .tsc-cta-link{ color:var(--tsc-navy-900); }
body.tsc-homev2 .tsc-svc:hover .tsc-cta-link::after{ transform:translateX(4px); }

/* --------------------------------------------------------------------------
   10 - WHY CHOOSE US  (S4 - navy panel + team image + floating rating card)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-whyx{ background:var(--tsc-color-bg); }
body.tsc-homev2 .tsc-whyx__inner{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4vw,56px);
  align-items:center;
}
body.tsc-homev2 .tsc-whyx__panel{
  background:linear-gradient(160deg, var(--tsc-navy) 0%, var(--tsc-navy-900) 100%);
  color:#fff;
  border-radius:20px;
  padding:clamp(26px,3.4vw,44px);
  box-shadow:var(--tsc-shadow-lg);
}
body.tsc-homev2 .tsc-whyx__panel .tsc-eyebrow{ background:rgba(244,166,42,.16); color:var(--tsc-gold); }
body.tsc-homev2 .tsc-whyx__title{
  margin:.7rem 0 .6rem;
  font-size:clamp(1.55rem,1.1rem+1.6vw,2.2rem);
  font-weight:800; line-height:1.2; color:#fff;
}
body.tsc-homev2 .tsc-whyx__lead{ margin:0 0 var(--tsc-space-5); color:rgba(255,255,255,.76); font-size:var(--tsc-text-base); }
body.tsc-homev2 .tsc-whyx__list{ list-style:none; margin:0 0 var(--tsc-space-6); padding:0; display:grid; gap:12px; }
body.tsc-homev2 .tsc-whyx__list li{
  display:grid; grid-template-columns:1.5rem 1fr; gap:.7rem; align-items:start;
  font-size:var(--tsc-text-sm); line-height:1.45; color:rgba(255,255,255,.92);
}
body.tsc-homev2 .tsc-whyx__list svg{ color:var(--tsc-gold); margin-top:1px; }
body.tsc-homev2 .tsc-whyx__media{ position:relative; }
body.tsc-homev2 .tsc-whyx__frame{
  border-radius:20px; overflow:hidden;
  box-shadow:0 24px 54px -22px rgba(14,42,71,.5);
  aspect-ratio:4 / 3;
}
body.tsc-homev2 .tsc-whyx__frame img{ width:100%; height:100%; object-fit:cover; display:block; }
body.tsc-homev2 .tsc-whyx__card{
  position:absolute; right:-14px; bottom:-18px;
  display:flex; align-items:center; gap:.7rem;
  padding:14px 18px;
  background:#fff; border-radius:16px;
  box-shadow:var(--tsc-shadow-lg);
  text-decoration:none;
  transition:transform var(--tsc-dur) var(--tsc-ease);
}
body.tsc-homev2 .tsc-whyx__card:hover{ transform:translateY(-3px); }
body.tsc-homev2 .tsc-whyx__card-g{
  width:30px; height:30px; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:#fff; box-shadow:var(--tsc-shadow-sm);
  color:#4285F4; font-weight:800; font-size:15px;
}
body.tsc-homev2 .tsc-whyx__card b{ display:block; font-size:var(--tsc-text-sm); font-weight:800; color:var(--tsc-navy); }
body.tsc-homev2 .tsc-whyx__card .tsc-stars{ display:block; margin:2px 0; }
body.tsc-homev2 .tsc-whyx__card .tsc-stars__s{ width:12px; height:12px; }
body.tsc-homev2 .tsc-whyx__card-sub{ display:block; font-size:11px; color:var(--tsc-color-text-subtle); }
@media (max-width:900px){
  body.tsc-homev2 .tsc-whyx__inner{ grid-template-columns:1fr; }
  body.tsc-homev2 .tsc-whyx__card{ right:8px; bottom:-14px; }
  body.tsc-homev2 .tsc-whyx .tsc-btn{ width:100%; }
}

/* --------------------------------------------------------------------------
   11 - HOW IT WORKS  (S8 - connected steps on a tinted band, big ghost numerals)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-how{
  background:linear-gradient(180deg, #EDF2F9 0%, var(--tsc-color-bg) 100%);
  border-block:1px solid var(--tsc-color-border);
  padding-block:clamp(44px,6vw,76px);
}
body.tsc-homev2 .tsc-how .tsc-section__cta{ margin-top:clamp(20px,3vw,32px); }
body.tsc-homev2 .tsc-section__cta.tsc-section--center{ display:flex; justify-content:center; }
body.tsc-homev2 .tsc-steps{ position:relative; counter-reset:tscstep; }
body.tsc-homev2 .tsc-steps__item{
  position:relative; overflow:hidden;
  counter-increment:tscstep;
  background:#fff; border-color:var(--tsc-color-border);
  align-items:flex-start; text-align:left;
  transition:transform var(--tsc-dur) var(--tsc-ease), box-shadow var(--tsc-dur) var(--tsc-ease), border-color var(--tsc-dur) var(--tsc-ease);
}
/* Decorative step numeral - a pseudo-element (never real text) so it stays a
   background flourish and is not evaluated for text contrast. */
body.tsc-homev2 .tsc-steps__item::after{
  content:counter(tscstep, decimal-leading-zero);
  position:absolute; top:2px; right:14px;
  font-size:3.4rem; font-weight:800; line-height:1;
  letter-spacing:-.03em;
  color:var(--tsc-navy); opacity:.09;
  transition:opacity var(--tsc-dur) var(--tsc-ease);
  pointer-events:none;
}
body.tsc-homev2 .tsc-steps__item:hover::after,
body.tsc-homev2 .tsc-steps__item:focus-within::after{ opacity:.2; }
body.tsc-homev2 .tsc-steps__icon{
  width:54px; height:54px; border-radius:16px;
  background:var(--tsc-navy); color:var(--tsc-gold);
  margin-top:2px;
}
body.tsc-homev2 .tsc-steps__icon svg{ width:26px; height:26px; }
@media (min-width:721px){
  body.tsc-homev2 .tsc-steps__item + .tsc-steps__item::before{
    content:""; position:absolute; top:52px; left:calc(-1 * var(--tsc-space-6) / 2 - 1px);
    width:var(--tsc-space-6); height:2px;
    background:repeating-linear-gradient(90deg, var(--tsc-gold) 0 6px, transparent 6px 12px);
  }
}

/* --------------------------------------------------------------------------
   12 - REVIEWS  (S9 - navy band, reference style)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"]{ background:transparent; }
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] > .tsc-container{
  background:linear-gradient(165deg, var(--tsc-navy) 0%, var(--tsc-navy-900) 100%);
  border-radius:22px;
  padding:clamp(28px,3.6vw,52px) clamp(20px,3vw,44px);
  box-shadow:var(--tsc-shadow-lg);
}
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] .tsc-section__title{ color:#fff; }
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] .tsc-eyebrow{ background:rgba(244,166,42,.16); color:var(--tsc-gold); }
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] .tsc-rating{ color:rgba(255,255,255,.82); }
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] .tsc-rating strong{ color:#fff; }
/* .tsc-review card styling lives in section 19 (carousel) below. */
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] .tsc-link{ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-section[aria-labelledby="tsc-rev-h"] .tsc-link:hover{ color:#fff; }

/* --------------------------------------------------------------------------
   13 - SERVICES CTA FOOT  (closes the S3 grid with a quote / call action)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-svcgrid__foot{
  margin-top:clamp(22px,3vw,32px);
  padding-top:clamp(18px,2.4vw,26px);
  border-top:1px solid var(--tsc-color-border);
  display:flex; flex-wrap:wrap; align-items:center;
  gap:14px 20px;
}
body.tsc-homev2 .tsc-svcgrid__foot-text{
  margin:0; font-weight:700; color:var(--tsc-navy); font-size:var(--tsc-text-base);
}
body.tsc-homev2 .tsc-svcgrid__foot-actions{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-left:auto;
}
body.tsc-homev2 .tsc-svcgrid__foot-phone{ color:var(--tsc-color-text-muted); }
body.tsc-homev2 .tsc-svcgrid__foot-phone .tsc-cta-phone__ico{ color:var(--tsc-gold-600); }
@media (max-width:640px){
  body.tsc-homev2 .tsc-svcgrid__foot-actions{ margin-left:0; width:100%; }
  body.tsc-homev2 .tsc-svcgrid__foot-actions .tsc-btn{ flex:1 1 100%; }
}

/* --------------------------------------------------------------------------
   14 - DARK VISUAL BREAK  (S4b - navy band, verified commitments only)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-darkband{
  position:relative;
  background:linear-gradient(165deg, var(--tsc-navy) 0%, var(--tsc-navy-900) 100%);
  color:#fff;
  padding-block:clamp(40px,6vw,72px);
  overflow:hidden;
}
body.tsc-homev2 .tsc-darkband::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(680px 320px at 88% -10%, rgba(244,166,42,.14), transparent 60%);
}
body.tsc-homev2 .tsc-darkband__inner{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,4vw,60px);
  align-items:center;
}
body.tsc-homev2 .tsc-darkband__lead-col .tsc-eyebrow{
  background:rgba(244,166,42,.16); color:var(--tsc-gold); border-color:rgba(244,166,42,.4);
}
body.tsc-homev2 .tsc-darkband__title{
  margin:.7rem 0 .6rem;
  font-size:clamp(1.55rem,1.1rem+1.7vw,2.25rem);
  font-weight:800; line-height:1.18; color:#fff;
}
body.tsc-homev2 .tsc-darkband__text{
  margin:0 0 var(--tsc-space-5);
  color:rgba(255,255,255,.78); font-size:var(--tsc-text-base); max-width:30rem;
}
body.tsc-homev2 .tsc-darkband__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
body.tsc-homev2 .tsc-darkband__cta .tsc-cta-phone{ color:#fff; }
body.tsc-homev2 .tsc-darkband__cta .tsc-cta-phone:hover{ color:rgba(255,255,255,.8); }
body.tsc-homev2 .tsc-darkband__cta .tsc-cta-phone__ico{ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-darkband__cta .tsc-cta-phone__label{ color:rgba(255,255,255,.72); }

body.tsc-homev2 .tsc-darkband__list{
  list-style:none; margin:0; padding:0; display:grid; gap:12px;
}
body.tsc-homev2 .tsc-darkband__item{
  display:grid; grid-template-columns:44px 1fr; gap:14px; align-items:center;
  padding:14px 16px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
}
body.tsc-homev2 .tsc-darkband__ico{
  width:44px; height:44px; border-radius:12px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(244,166,42,.14); color:var(--tsc-gold);
}
body.tsc-homev2 .tsc-darkband__ico svg{ width:22px; height:22px; }
body.tsc-homev2 .tsc-darkband__item > span:last-child{
  font-size:var(--tsc-text-xs); color:rgba(255,255,255,.72); line-height:1.45;
}
body.tsc-homev2 .tsc-darkband__item b{
  display:block; margin-bottom:2px;
  font-size:var(--tsc-text-sm); font-weight:800; color:#fff; line-height:1.25;
}
@media (max-width:860px){
  body.tsc-homev2 .tsc-darkband__inner{ grid-template-columns:1fr; }
  body.tsc-homev2 .tsc-darkband__cta .tsc-btn{ flex:1 1 100%; }
}

/* --------------------------------------------------------------------------
   15 - SERVICE SPOTLIGHTS  (S5-S7 - alternating image + copy)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-spot__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,5vw,68px);
  align-items:center;
}
body.tsc-homev2 .tsc-spot--alt .tsc-spot__media{ order:2; }
body.tsc-homev2 .tsc-spot__media{ position:relative; }
body.tsc-homev2 .tsc-spot__frame{
  border-radius:20px; overflow:hidden;
  aspect-ratio:4 / 3;
  box-shadow:0 24px 54px -24px rgba(14,42,71,.5);
}
body.tsc-homev2 .tsc-spot__frame img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; }
body.tsc-homev2 .tsc-spot__chip{
  position:absolute; left:-14px; bottom:-14px;
  width:56px; height:56px; border-radius:16px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--tsc-navy); color:var(--tsc-gold);
  box-shadow:0 12px 26px rgba(14,42,71,.4);
}
body.tsc-homev2 .tsc-spot--alt .tsc-spot__chip{ left:auto; right:-14px; }
body.tsc-homev2 .tsc-spot__chip svg{ width:26px; height:26px; }
body.tsc-homev2 .tsc-spot__title{
  margin:.6rem 0 .5rem;
  font-size:clamp(1.5rem,1.1rem+1.5vw,2.1rem);
  font-weight:800; line-height:1.2; color:var(--tsc-navy);
}
body.tsc-homev2 .tsc-spot__lead{
  margin:0 0 var(--tsc-space-4);
  color:var(--tsc-color-text-muted); font-size:var(--tsc-text-base);
}
body.tsc-homev2 .tsc-spot__list{
  list-style:none; margin:0 0 var(--tsc-space-5); padding:0; display:grid; gap:10px;
}
body.tsc-homev2 .tsc-spot__list li{
  display:grid; grid-template-columns:1.4rem 1fr; gap:.6rem; align-items:start;
  font-size:var(--tsc-text-sm); line-height:1.45; color:var(--tsc-color-text);
}
body.tsc-homev2 .tsc-spot__list svg{ color:var(--tsc-gold-600); margin-top:2px; }
body.tsc-homev2 .tsc-spot__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
@media (max-width:860px){
  body.tsc-homev2 .tsc-spot__inner{ grid-template-columns:1fr; }
  body.tsc-homev2 .tsc-spot--alt .tsc-spot__media{ order:0; }
  body.tsc-homev2 .tsc-spot__frame{ aspect-ratio:4 / 3; }
  body.tsc-homev2 .tsc-spot__cta .tsc-btn{ flex:1 1 100%; }
}

/* --------------------------------------------------------------------------
   16 - SYDNEY / SERVICE AREAS  (S10 - editorial navy panel + map motif)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-syd{ background:var(--tsc-color-bg); }
body.tsc-homev2 .tsc-syd__inner{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);
  gap:clamp(24px,4vw,52px);
  align-items:stretch;
}
body.tsc-homev2 .tsc-syd__panel{
  background:linear-gradient(160deg, var(--tsc-navy) 0%, var(--tsc-navy-900) 100%);
  color:#fff;
  border-radius:20px;
  padding:clamp(26px,3.4vw,44px);
  box-shadow:var(--tsc-shadow-lg);
}
body.tsc-homev2 .tsc-syd__panel .tsc-eyebrow{
  background:rgba(244,166,42,.16); color:var(--tsc-gold); border-color:rgba(244,166,42,.4);
}
body.tsc-homev2 .tsc-syd__title{
  margin:.7rem 0 .6rem;
  font-size:clamp(1.5rem,1.1rem+1.6vw,2.15rem);
  font-weight:800; line-height:1.2; color:#fff;
}
body.tsc-homev2 .tsc-syd__text{ margin:0 0 var(--tsc-space-5); color:rgba(255,255,255,.78); font-size:var(--tsc-text-base); }
body.tsc-homev2 .tsc-syd__meta{ list-style:none; margin:0 0 var(--tsc-space-5); padding:0; display:grid; gap:10px; }
body.tsc-homev2 .tsc-syd__meta li{
  display:grid; grid-template-columns:1.4rem 1fr; gap:.6rem; align-items:start;
  font-size:var(--tsc-text-sm); color:rgba(255,255,255,.86);
}
body.tsc-homev2 .tsc-syd__meta svg{ color:var(--tsc-gold); margin-top:2px; }
body.tsc-homev2 .tsc-syd__links-label{
  margin:0 0 .5rem; font-size:var(--tsc-text-xs); font-weight:800;
  letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.6);
}
body.tsc-homev2 .tsc-syd__links{ list-style:none; margin:0 0 var(--tsc-space-5); padding:0; display:grid; gap:8px; }
body.tsc-homev2 .tsc-syd__links .tsc-cta-link{ color:#fff; font-weight:600; }
body.tsc-homev2 .tsc-syd__links .tsc-cta-link::after{ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-syd__links .tsc-cta-link:hover{ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-syd__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
body.tsc-homev2 .tsc-syd__cta .tsc-link{ color:var(--tsc-gold); }
body.tsc-homev2 .tsc-syd__cta .tsc-link:hover{ color:#fff; }

body.tsc-homev2 .tsc-syd__aside{
  position:relative; border-radius:20px; overflow:hidden;
  background:
    radial-gradient(120% 120% at 70% 20%, rgba(244,166,42,.14), transparent 55%),
    linear-gradient(160deg, #12345A 0%, #0B2138 100%);
  border:1px solid var(--tsc-color-border);
  min-height:260px;
  display:flex; align-items:center; justify-content:center;
}
body.tsc-homev2 .tsc-syd__pin{
  position:relative; z-index:2;
  width:70px; height:70px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--tsc-gold); color:var(--tsc-navy);
  box-shadow:0 16px 34px rgba(0,0,0,.35);
}
body.tsc-homev2 .tsc-syd__pin svg{ width:32px; height:32px; }
body.tsc-homev2 .tsc-syd__ring{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:130px; height:130px; border-radius:50%;
  border:2px solid rgba(255,255,255,.16);
}
body.tsc-homev2 .tsc-syd__ring--2{ width:210px; height:210px; border-color:rgba(255,255,255,.11); }
body.tsc-homev2 .tsc-syd__ring--3{ width:300px; height:300px; border-color:rgba(255,255,255,.07); }
/* Stage 9/4 - real Google Map fills the location card frame */
body.tsc-homev2 .tsc-syd__map{ position:absolute; inset:0; }
body.tsc-homev2 .tsc-syd__map iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width:860px){
  body.tsc-homev2 .tsc-syd__inner{ grid-template-columns:1fr; }
  body.tsc-homev2 .tsc-syd__aside{ min-height:240px; }
  body.tsc-homev2 .tsc-syd__ring--3{ width:230px; height:230px; }
  body.tsc-homev2 .tsc-syd__cta .tsc-btn{ flex:1 1 100%; }
}

/* --------------------------------------------------------------------------
   17 - IMAGE BREAK  (S10b - full-bleed photo + navy overlay, short)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-imgbreak{
  position:relative;
  display:flex; align-items:center;
  min-height:clamp(240px,32vw,340px);
  padding-block:clamp(36px,5vw,56px);
  overflow:hidden;
  isolation:isolate;
}
body.tsc-homev2 .tsc-imgbreak__media{ position:absolute; inset:0; z-index:-1; }
body.tsc-homev2 .tsc-imgbreak__img{ width:100%; height:100%; object-fit:cover; display:block; }
body.tsc-homev2 .tsc-imgbreak::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(11,33,56,.88) 0%, rgba(11,33,56,.66) 60%, rgba(11,33,56,.42) 100%);
}
body.tsc-homev2 .tsc-imgbreak__inner{ color:#fff; max-width:34rem; }
body.tsc-homev2 .tsc-imgbreak__title{
  margin:0 0 .4rem;
  font-size:clamp(1.4rem,1.05rem+1.4vw,2rem);
  font-weight:800; line-height:1.2; color:#fff;
}
body.tsc-homev2 .tsc-imgbreak__text{ margin:0 0 var(--tsc-space-4); color:rgba(255,255,255,.82); font-size:var(--tsc-text-base); }
@media (max-width:600px){
  body.tsc-homev2 .tsc-imgbreak::after{ background:linear-gradient(90deg, rgba(11,33,56,.9), rgba(11,33,56,.78)); }
  body.tsc-homev2 .tsc-imgbreak .tsc-btn{ width:100%; }
}

/* --------------------------------------------------------------------------
   18 - HOW IT WORKS interaction  (S8 - hover / focus highlight, gold accent)
   (base .tsc-steps__item transition is declared in section 11)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-steps__item:hover,
body.tsc-homev2 .tsc-steps__item:focus-within{
  transform:translateY(-4px);
  border-color:var(--tsc-gold);
  box-shadow:var(--tsc-shadow-md);
}
body.tsc-homev2 .tsc-steps__item:hover .tsc-steps__icon,
body.tsc-homev2 .tsc-steps__item:focus-within .tsc-steps__icon{
  background:var(--tsc-gold); color:var(--tsc-navy);
}

/* --------------------------------------------------------------------------
   19 - REVIEWS carousel  (S9 - 3-up grid desktop, swipe carousel <= 880px)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-revwrap{ margin-top:clamp(20px,3vw,32px); }
body.tsc-homev2 .tsc-reviews{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,2vw,24px);
}
body.tsc-homev2 .tsc-reviews__slide{ display:flex; }
body.tsc-homev2 .tsc-review{
  position:relative;
  display:flex; flex-direction:column; gap:12px;
  width:100%;
  padding:clamp(20px,2.4vw,28px);
  background:#fff; border-radius:16px;
  box-shadow:0 14px 34px -22px rgba(14,42,71,.4);
}
body.tsc-homev2 .tsc-review__mark{
  font-family:Georgia, "Times New Roman", serif;
  font-size:3rem; line-height:.6; color:var(--tsc-gold);
  height:1.2rem;
}
body.tsc-homev2 .tsc-review__text{
  margin:0; color:var(--tsc-color-text); font-size:var(--tsc-text-sm); line-height:1.6;
}
body.tsc-homev2 .tsc-review__meta{
  display:flex; align-items:center; gap:.7rem;
  margin-top:auto; padding-top:14px;
  border-top:1px solid var(--tsc-color-border);
}
body.tsc-homev2 .tsc-review__avatar{
  width:38px; height:38px; border-radius:50%; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--tsc-navy-050); color:var(--tsc-navy);
  font-weight:800; font-size:var(--tsc-text-xs);
}
body.tsc-homev2 .tsc-review__name{ display:block; font-weight:700; color:var(--tsc-navy); font-size:var(--tsc-text-sm); }
body.tsc-homev2 .tsc-review__src{ display:block; font-size:11px; color:var(--tsc-color-text-subtle); }

/* nav (injected by home-v2.js only when the track actually scrolls) */
body.tsc-homev2 .tsc-revnav{
  display:flex; align-items:center; justify-content:center; gap:14px;
  margin-top:18px;
}
body.tsc-homev2 .tsc-revnav__btn{
  flex:0 0 auto;
  width:40px; height:40px; min-width:0; padding:0;
  border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; color:var(--tsc-navy);
  border:1px solid rgba(255,255,255,.5);
  box-shadow:var(--tsc-shadow-sm);
  cursor:pointer; line-height:0;
  -webkit-appearance:none; appearance:none;
  box-sizing:border-box;
}
body.tsc-homev2 .tsc-revnav__btn:hover:not(:disabled){ background:var(--tsc-gold); color:var(--tsc-navy); }
body.tsc-homev2 .tsc-revnav__btn:disabled{ opacity:.4; cursor:default; }
body.tsc-homev2 .tsc-revnav__btn:focus-visible{ outline:3px solid var(--tsc-gold); outline-offset:2px; }
body.tsc-homev2 .tsc-revnav__btn svg{ width:20px; height:20px; }
body.tsc-homev2 .tsc-revnav__dots{ display:flex; align-items:center; gap:2px; }
/* Button is a 24x24 touch target (WCAG 2.5.8); the visible dot is the ::before. */
body.tsc-homev2 .tsc-revnav__dot{
  flex:0 0 auto;
  width:24px; height:24px; min-width:0; padding:0;
  border:0; background:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  -webkit-appearance:none; appearance:none;
}
body.tsc-homev2 .tsc-revnav__dot::before{
  content:""; width:9px; height:9px; border-radius:50%;
  background:rgba(255,255,255,.45);
  transition:transform var(--tsc-dur) var(--tsc-ease), background var(--tsc-dur) var(--tsc-ease);
}
body.tsc-homev2 .tsc-revnav__dot[aria-current="true"]::before{ background:var(--tsc-gold); transform:scale(1.35); }
body.tsc-homev2 .tsc-revnav__dot:focus-visible{ outline:3px solid var(--tsc-gold); outline-offset:0; border-radius:50%; }

@media (max-width:880px){
  body.tsc-homev2 .tsc-reviews{
    display:flex; grid-template-columns:none;
    align-items:flex-start;          /* each card sizes to its own content */
    overflow-x:auto; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    margin-inline:calc(-1 * var(--tsc-space-4));
    padding-inline:var(--tsc-space-4);
    scrollbar-width:none;
  }
  body.tsc-homev2 .tsc-reviews::-webkit-scrollbar{ display:none; }
  body.tsc-homev2 .tsc-reviews__slide{
    flex:0 0 86%; scroll-snap-align:center;
  }
  body.tsc-homev2 .tsc-review__meta{ margin-top:16px; }  /* natural spacing, not pushed */
}

/* --------------------------------------------------------------------------
   20 - FAQ  (S11 - navy/gold accordion; native <details name> = exclusive)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-faq{ display:grid; gap:12px; }
body.tsc-homev2 .tsc-faq__item{
  background:#fff;
  border:1px solid var(--tsc-color-border);
  border-radius:14px;
  overflow:hidden;
  transition:border-color var(--tsc-dur) var(--tsc-ease), box-shadow var(--tsc-dur) var(--tsc-ease);
}
body.tsc-homev2 .tsc-faq__item[open]{
  border-color:var(--tsc-gold);
  box-shadow:0 12px 30px -20px rgba(14,42,71,.4);
}
body.tsc-homev2 .tsc-faq__q{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:clamp(15px,2vw,20px) clamp(16px,2.2vw,24px);
  font-weight:700; color:var(--tsc-navy); font-size:var(--tsc-text-base);
  cursor:pointer; list-style:none;
}
body.tsc-homev2 .tsc-faq__q::-webkit-details-marker{ display:none; }
body.tsc-homev2 .tsc-faq__q:focus-visible{
  outline:3px solid var(--tsc-gold); outline-offset:-3px; border-radius:12px;
}
body.tsc-homev2 .tsc-faq__q-ico{
  position:relative; flex:none;
  width:24px; height:24px; border-radius:50%;
  background:var(--tsc-navy-050);
  transition:background var(--tsc-dur) var(--tsc-ease);
}
body.tsc-homev2 .tsc-faq__q-ico::before,
body.tsc-homev2 .tsc-faq__q-ico::after{
  content:""; position:absolute; top:50%; left:50%;
  width:10px; height:2px; border-radius:2px;
  background:var(--tsc-navy);
  transform:translate(-50%,-50%);
  transition:transform var(--tsc-dur) var(--tsc-ease), opacity var(--tsc-dur) var(--tsc-ease);
}
body.tsc-homev2 .tsc-faq__q-ico::after{ transform:translate(-50%,-50%) rotate(90deg); }
body.tsc-homev2 .tsc-faq__item[open] .tsc-faq__q-ico{ background:var(--tsc-gold); }
body.tsc-homev2 .tsc-faq__item[open] .tsc-faq__q-ico::before{ background:var(--tsc-navy); }
body.tsc-homev2 .tsc-faq__item[open] .tsc-faq__q-ico::after{ transform:translate(-50%,-50%) rotate(0); opacity:0; }
body.tsc-homev2 .tsc-faq__a{
  padding:0 clamp(16px,2.2vw,24px) clamp(16px,2.2vw,22px);
  color:var(--tsc-color-text-muted); font-size:var(--tsc-text-sm); line-height:1.6;
}
body.tsc-homev2 .tsc-faq__a p{ margin:0; }
body.tsc-homev2 .tsc-faq__item[open] .tsc-faq__a{
  animation:tsc-faq-in .28s cubic-bezier(.22,1,.36,1) both;
}
@keyframes tsc-faq-in{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

/* --------------------------------------------------------------------------
   21 - FINAL CTA background image  (S13 - faint photo behind navy)
   -------------------------------------------------------------------------- */
body.tsc-homev2 .tsc-cta-band--img{ position:relative; overflow:hidden; isolation:isolate; }
body.tsc-homev2 .tsc-cta-band__bg{
  position:absolute; inset:0; z-index:-1;
  width:100%; height:100%; object-fit:cover;
  opacity:.16;
}
body.tsc-homev2 .tsc-cta-band--img::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(160deg, rgba(14,42,71,.86) 0%, rgba(11,33,56,.94) 100%);
}
body.tsc-homev2 .tsc-cta-band--img .tsc-cta-band__body,
body.tsc-homev2 .tsc-cta-band--img .tsc-cta-band__actions{ position:relative; z-index:1; }

/* --------------------------------------------------------------------------
   8 - ANIMATION SYSTEM   (entrance + scroll-reveal; JS toggles .is-* classes)
   -------------------------------------------------------------------------- */
/* reveal is only armed when JS is present (html.tsc-js) - otherwise everything
   stays fully visible (crawlers, no-JS, and any observer failure are safe). */
html.tsc-js body.tsc-homev2 [data-reveal]{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--reveal-i, 0) * 70ms);
}
/* NB: must out-specify the hiding rule above (html.tsc-js body.tsc-homev2 ...) */
html.tsc-js body.tsc-homev2 [data-reveal].is-visible{ opacity:1; transform:none; }

/* Hero entrance: stagger the copy children once the page is ready */
html.tsc-js body.tsc-homev2 .tsc-hero__copy > *,
html.tsc-js body.tsc-homev2 .tsc-hero__media{
  opacity:0; transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
}
html.tsc-js body.tsc-homev2 .tsc-hero__media{ transform:translateY(0) scale(.97); }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__copy > *{ opacity:1; transform:none; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__media{ opacity:1; transform:none; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__copy > :nth-child(1){ transition-delay:.05s; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__copy > :nth-child(2){ transition-delay:.12s; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__copy > :nth-child(3){ transition-delay:.19s; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__copy > :nth-child(4){ transition-delay:.26s; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__copy > :nth-child(5){ transition-delay:.33s; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__copy > :nth-child(6){ transition-delay:.40s; }
html.tsc-js body.tsc-homev2.is-loaded .tsc-hero__media{ transition-delay:.22s; }

/* Button micro-interaction (slight lift + gold glow on the primary) */
body.tsc-homev2 .tsc-btn{ transition:transform var(--tsc-dur) var(--tsc-ease), box-shadow var(--tsc-dur) var(--tsc-ease), background var(--tsc-dur) var(--tsc-ease); }
body.tsc-homev2 .tsc-btn--primary:hover{ box-shadow:0 10px 26px rgba(244,166,42,.4); transform:translateY(-2px); }
body.tsc-homev2 .tsc-btn:active{ transform:translateY(0); }

/* Card hover: gentle rise + gold border hint (kept subtle) */
body.tsc-homev2 .tsc-card--interactive:hover,
body.tsc-homev2 .tsc-card--interactive:focus-within{ border-color:var(--tsc-gold); transform:translateY(-4px); box-shadow:var(--tsc-shadow-md); }

@media (prefers-reduced-motion:reduce){
  body.tsc-homev2 [data-reveal],
  body.tsc-homev2 .tsc-hero__copy > *,
  body.tsc-homev2 .tsc-hero__media{ opacity:1 !important; transform:none !important; transition:none !important; }
  body.tsc-homev2 .tsc-btn,
  body.tsc-homev2 .tsc-card--interactive,
  body.tsc-homev2 .tsc-svc,
  body.tsc-homev2 .tsc-spot__frame img,
  body.tsc-homev2 .tsc-steps__item,
  body.tsc-homev2 .tsc-steps__item::after,
  body.tsc-homev2 .tsc-faq__item,
  body.tsc-homev2 .tsc-faq__q-ico,
  body.tsc-homev2 .tsc-faq__q-ico::before,
  body.tsc-homev2 .tsc-faq__q-ico::after,
  body.tsc-homev2 .tsc-revnav__dot::before{ transition:none !important; }
  body.tsc-homev2 .tsc-btn--primary:hover,
  body.tsc-homev2 .tsc-card--interactive:hover,
  body.tsc-homev2 .tsc-steps__item:hover,
  body.tsc-homev2 .tsc-steps__item:focus-within{ transform:none !important; }
  body.tsc-homev2 .tsc-faq__item[open] .tsc-faq__a{ animation:none !important; }
  body.tsc-homev2 .tsc-reviews{ scroll-behavior:auto !important; }
}
