/* ==========================================================================
   Top Sydney Cleaners - Privacy Policy + Trust pages
   --------------------------------------------------------------------------
   Page-scoped only (loaded when tsc_use_new_privacy()/tsc_use_new_trust() is
   true). Built entirely on the existing token set (style.css :root +
   components.css :root, both resolved through body.tsc-scope's navy/gold
   remap) - no new colours, no new font. New classes only; nothing here
   touches .tsc-svc-* (the service-page system) or any shared/global rule.
   ========================================================================== */

/* ---- 1. Legal / editorial hero (Privacy) -------------------------------- */
.tsc-legal-hero{
  position:relative;
  overflow:hidden;
  background:var(--tsc-navy-050);
  padding-block:clamp(56px,8vw,104px) clamp(40px,6vw,64px);
  border-bottom:1px solid var(--tsc-rule);
}
.tsc-legal-hero__shape{
  position:absolute;
  top:-120px; right:-120px;
  width:420px; height:420px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%, var(--tsc-gold-050), transparent 70%);
  pointer-events:none;
}
.tsc-legal-hero__shape--b{
  top:auto; bottom:-160px; right:auto; left:-140px;
  width:320px; height:320px;
  background:radial-gradient(circle at 70% 70%, var(--tsc-navy-050), transparent 70%);
  opacity:.6;
}
.tsc-legal-hero__inner{ position:relative; max-width:760px; }
.tsc-legal-hero__icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px;
  border-radius:var(--tsc-radius-lg);
  background:var(--tsc-white);
  box-shadow:var(--tsc-shadow-sm);
  color:var(--tsc-navy);
  margin-bottom:var(--tsc-space-5);
}
.tsc-legal-hero h1{
  font-size:var(--tsc-h1);
  line-height:var(--tsc-leading-tight);
  font-weight:700;
  letter-spacing:-.01em;
  margin:0 0 var(--tsc-space-4);
  color:var(--tsc-navy);
}
.tsc-legal-hero__lead{
  font-size:var(--tsc-text-lg);
  line-height:var(--tsc-leading-normal);
  color:var(--tsc-ink-70);
  max-width:62ch;
  margin:0 0 var(--tsc-space-5);
}
.tsc-legal-hero__meta{
  display:flex; flex-wrap:wrap; gap:var(--tsc-space-5);
  font-size:var(--tsc-text-sm); color:var(--tsc-ink-45);
}
.tsc-legal-hero__meta span{ display:inline-flex; align-items:center; gap:6px; }

/* ---- 2. Two-column legal layout ------------------------------------------ */
.tsc-legal-layout{
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:clamp(32px,5vw,64px);
  align-items:start;
  padding-block:clamp(40px,6vw,72px);
}
.tsc-legal-toc{
  position:sticky;
  top:calc(var(--tsc-header-h, 60px) + 24px);
  max-height:calc(100vh - 100px);
  overflow-y:auto;
  padding-right:var(--tsc-space-3);
}
.tsc-legal-toc__label{
  font-size:var(--tsc-text-xs); font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--tsc-ink-45); margin:0 0 var(--tsc-space-3);
}
.tsc-legal-toc ol{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.tsc-legal-toc a{
  display:block;
  padding:7px 10px;
  border-radius:var(--tsc-radius-sm);
  font-size:var(--tsc-text-sm);
  line-height:1.35;
  color:var(--tsc-ink-70);
  text-decoration:none;
  border-left:2px solid transparent;
  transition:background var(--tsc-dur-fast) var(--tsc-ease), color var(--tsc-dur-fast) var(--tsc-ease);
}
.tsc-legal-toc a:hover{ background:var(--tsc-navy-050); color:var(--tsc-navy); }
.tsc-legal-toc a:focus-visible{ outline:2px solid var(--tsc-navy); outline-offset:1px; }
.tsc-legal-toc a.is-active{
  background:var(--tsc-navy-050);
  color:var(--tsc-navy);
  font-weight:600;
  border-left-color:var(--tsc-gold);
}

.tsc-legal-toc-mobile{ display:none; }

.tsc-legal-content{ max-width:74ch; }
.tsc-legal-content section{ scroll-margin-top:calc(var(--tsc-header-h, 60px) + 16px); padding-block:var(--tsc-space-8) 0; }
.tsc-legal-content section:first-child{ padding-top:0; }
.tsc-legal-content h2{
  font-size:var(--tsc-h3);
  line-height:var(--tsc-leading-tight);
  font-weight:700;
  color:var(--tsc-navy);
  margin:0 0 var(--tsc-space-4);
  padding-top:var(--tsc-space-4);
  border-top:1px solid var(--tsc-rule);
}
.tsc-legal-content section:first-child h2{ border-top:0; padding-top:0; }
.tsc-legal-content h3{
  font-size:var(--tsc-h4); font-weight:600; color:var(--tsc-ink);
  margin:var(--tsc-space-6) 0 var(--tsc-space-2);
}
.tsc-legal-content p{
  font-size:var(--tsc-text-base);
  line-height:var(--tsc-leading-normal);
  color:var(--tsc-ink-70);
  margin:0 0 var(--tsc-space-4);
}
.tsc-legal-content ul{ margin:0 0 var(--tsc-space-4); padding-left:1.2em; color:var(--tsc-ink-70); }
.tsc-legal-content li{ margin-bottom:var(--tsc-space-2); line-height:var(--tsc-leading-normal); }
.tsc-legal-content a{ color:var(--tsc-navy); text-decoration:underline; text-underline-offset:2px; }
.tsc-legal-content a:hover{ color:var(--tsc-gold-600); }
.tsc-legal-note{
  background:var(--tsc-navy-050);
  border:1px solid var(--tsc-rule);
  border-radius:var(--tsc-radius-md);
  padding:var(--tsc-space-5);
  font-size:var(--tsc-text-sm);
  color:var(--tsc-ink-70);
  margin:0 0 var(--tsc-space-5);
}
.tsc-legal-updated{
  display:inline-flex; align-items:center; gap:6px;
  font-size:var(--tsc-text-xs); color:var(--tsc-ink-45);
  background:var(--tsc-color-surface-2);
  border-radius:var(--tsc-radius-pill);
  padding:5px 12px;
  margin-bottom:var(--tsc-space-6);
}

/* ---- 3. Privacy trust strip ---------------------------------------------- */
.tsc-privacy-trust{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
  gap:var(--tsc-space-5);
  margin:var(--tsc-space-8) 0;
}
.tsc-privacy-trust__item{
  display:flex; flex-direction:column; gap:var(--tsc-space-2);
  padding:var(--tsc-space-5);
  border:1px solid var(--tsc-rule);
  border-radius:var(--tsc-radius-md);
  background:var(--tsc-white);
}
.tsc-privacy-trust__item .tsc-ico{ color:var(--tsc-navy); }
.tsc-privacy-trust__item strong{ font-size:var(--tsc-text-base); color:var(--tsc-ink); }
.tsc-privacy-trust__item span{ font-size:var(--tsc-text-sm); color:var(--tsc-ink-45); }

/* ---- Mobile legal layout -------------------------------------------------- */
@media (max-width:921px){
  .tsc-legal-layout{ grid-template-columns:1fr; }
  .tsc-legal-toc{ display:none; }
  .tsc-legal-toc-mobile{
    display:block;
    margin-bottom:var(--tsc-space-6);
    border:1px solid var(--tsc-rule);
    border-radius:var(--tsc-radius-md);
    background:var(--tsc-white);
  }
  .tsc-legal-toc-mobile summary{
    cursor:pointer;
    list-style:none;
    display:flex; align-items:center; justify-content:space-between;
    padding:var(--tsc-space-4) var(--tsc-space-5);
    font-weight:600; color:var(--tsc-navy);
  }
  .tsc-legal-toc-mobile summary::-webkit-details-marker{ display:none; }
  .tsc-legal-toc-mobile summary .tsc-ico{ transition:transform var(--tsc-dur) var(--tsc-ease); }
  .tsc-legal-toc-mobile[open] summary .tsc-ico{ transform:rotate(180deg); }
  .tsc-legal-toc-mobile ol{ list-style:none; margin:0; padding:0 var(--tsc-space-3) var(--tsc-space-3); }
  .tsc-legal-toc-mobile a{ display:block; padding:9px 12px; border-radius:var(--tsc-radius-sm); font-size:var(--tsc-text-sm); color:var(--tsc-ink-70); text-decoration:none; }
  .tsc-legal-toc-mobile a:hover, .tsc-legal-toc-mobile a:focus-visible{ background:var(--tsc-navy-050); color:var(--tsc-navy); }
}

/* ==========================================================================
   TRUST PAGE
   ========================================================================== */

/* ---- 4. Trust hero --------------------------------------------------------*/
.tsc-trust-hero{
  position:relative;
  background:linear-gradient(180deg, var(--tsc-navy) 0%, var(--tsc-navy-900) 100%);
  color:var(--tsc-white);
  padding-block:clamp(64px,9vw,112px);
  overflow:hidden;
}
.tsc-trust-hero::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(ellipse at 80% 0%, rgba(244,166,42,.14), transparent 55%);
  pointer-events:none;
}
.tsc-trust-hero__inner{
  position:relative;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(32px,5vw,64px);
  align-items:center;
}
.tsc-trust-hero__eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:var(--tsc-text-sm); font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--tsc-gold);
  margin:0 0 var(--tsc-space-4);
}
.tsc-trust-hero h1{
  font-size:var(--tsc-h1);
  line-height:1.12;
  font-weight:700;
  letter-spacing:-.01em;
  margin:0 0 var(--tsc-space-5);
  color:var(--tsc-white);
  text-wrap:balance;
}
.tsc-trust-hero__lead{
  font-size:var(--tsc-text-lg);
  line-height:var(--tsc-leading-normal);
  color:#C9D6E4;
  max-width:52ch;
  margin:0 0 var(--tsc-space-7);
}
.tsc-trust-hero__cta{ display:flex; flex-wrap:wrap; gap:var(--tsc-space-3); }

.tsc-trust-hero__media{ position:relative; }
.tsc-trust-hero__frame{
  position:relative;
  border-radius:var(--tsc-radius-lg);
  overflow:hidden;
  box-shadow:var(--tsc-shadow-lg);
  aspect-ratio:4/5;
}
.tsc-trust-hero__frame img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; }
.tsc-trust-hero__badge{
  position:absolute; left:-16px; bottom:-16px;
  background:var(--tsc-white);
  color:var(--tsc-ink);
  border-radius:var(--tsc-radius-md);
  box-shadow:var(--tsc-shadow-lg);
  padding:var(--tsc-space-4) var(--tsc-space-5);
  display:flex; align-items:center; gap:var(--tsc-space-3);
  max-width:min(260px, 80vw);
}
.tsc-trust-hero__badge b{ display:block; font-size:var(--tsc-text-md); }
.tsc-trust-hero__badge span{ display:block; font-size:var(--tsc-text-xs); color:var(--tsc-ink-45); }

@media (max-width:921px){
  .tsc-trust-hero__inner{ grid-template-columns:1fr; }
  .tsc-trust-hero__media{ order:-1; max-width:340px; margin-inline:auto; }
}

/* ---- 5. Trust signals strip ---------------------------------------------- */
.tsc-trust-signals{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px,1fr));
  gap:1px;
  background:var(--tsc-rule);
  border:1px solid var(--tsc-rule);
  border-radius:var(--tsc-radius-lg);
  overflow:hidden;
}
.tsc-trust-signals__item{
  background:var(--tsc-white);
  padding:var(--tsc-space-6) var(--tsc-space-5);
  display:flex; flex-direction:column; gap:var(--tsc-space-2);
}
.tsc-trust-signals__item .tsc-ico{ color:var(--tsc-gold-600); }
.tsc-trust-signals__item strong{ font-size:var(--tsc-text-base); color:var(--tsc-navy); }
.tsc-trust-signals__item span{ font-size:var(--tsc-text-sm); color:var(--tsc-ink-45); line-height:1.45; }

/* ---- 6. Numbered trust pillars (editorial) -------------------------------- */
.tsc-pillars{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:var(--tsc-space-8) var(--tsc-space-7);
}
.tsc-pillar{ display:flex; gap:var(--tsc-space-5); }
.tsc-pillar__num{
  flex:none;
  font-size:2.25rem;
  font-weight:800;
  line-height:1;
  color:var(--tsc-navy-050);
  -webkit-text-stroke:1.5px var(--tsc-navy);
  font-variant-numeric:tabular-nums;
}
.tsc-pillar__body h3{ margin:0 0 6px; font-size:var(--tsc-h4); font-weight:700; color:var(--tsc-navy); }
.tsc-pillar__body p{ margin:0; font-size:var(--tsc-text-sm); line-height:var(--tsc-leading-normal); color:var(--tsc-ink-70); }

/* ---- 7. Process timeline --------------------------------------------------*/
.tsc-timeline{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:var(--tsc-space-4);
  counter-reset:tsc-step;
  position:relative;
}
.tsc-timeline::before{
  content:"";
  position:absolute; top:22px; left:6%; right:6%;
  height:2px;
  background:linear-gradient(90deg, var(--tsc-rule), var(--tsc-gold) 50%, var(--tsc-rule));
  z-index:0;
}
.tsc-timeline__step{ position:relative; z-index:1; text-align:center; }
.tsc-timeline__dot{
  width:44px; height:44px; margin:0 auto var(--tsc-space-4);
  border-radius:50%;
  background:var(--tsc-white);
  border:2px solid var(--tsc-navy);
  color:var(--tsc-navy);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:var(--tsc-text-base);
  transition:background var(--tsc-dur-slow) var(--tsc-ease), color var(--tsc-dur-slow) var(--tsc-ease), transform var(--tsc-dur-slow) var(--tsc-ease);
}
.tsc-timeline__step.is-visible .tsc-timeline__dot{ background:var(--tsc-navy); color:var(--tsc-white); }
.tsc-timeline__step h3{ margin:0 0 4px; font-size:var(--tsc-text-md); font-weight:700; color:var(--tsc-ink); }
.tsc-timeline__step p{ margin:0; font-size:var(--tsc-text-sm); color:var(--tsc-ink-45); line-height:1.45; }

@media (max-width:921px){
  .tsc-timeline{ grid-template-columns:1fr; gap:var(--tsc-space-6); text-align:left; }
  .tsc-timeline::before{ top:0; bottom:0; left:22px; right:auto; width:2px; height:auto; background:linear-gradient(180deg, var(--tsc-rule), var(--tsc-gold) 50%, var(--tsc-rule)); }
  .tsc-timeline__step{ display:flex; gap:var(--tsc-space-4); text-align:left; }
  .tsc-timeline__dot{ margin:0; flex:none; }
}

/* ---- 8. Trust-by-service cards -------------------------------------------- */
.tsc-trust-services{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:var(--tsc-space-5);
}
.tsc-trust-service{
  display:flex; flex-direction:column; gap:var(--tsc-space-3);
  padding:var(--tsc-space-6);
  background:var(--tsc-white);
  border:1px solid var(--tsc-rule);
  border-radius:var(--tsc-radius-lg);
  text-decoration:none;
  transition:transform var(--tsc-dur) var(--tsc-ease), box-shadow var(--tsc-dur) var(--tsc-ease), border-color var(--tsc-dur) var(--tsc-ease);
}
.tsc-trust-service:hover{ transform:translateY(-3px); box-shadow:var(--tsc-shadow-md); border-color:var(--tsc-navy-050); }
.tsc-trust-service:focus-visible{ outline:2px solid var(--tsc-navy); outline-offset:2px; }
.tsc-trust-service__ico{
  width:44px; height:44px; border-radius:var(--tsc-radius-md);
  background:var(--tsc-navy-050); color:var(--tsc-navy);
  display:flex; align-items:center; justify-content:center;
}
.tsc-trust-service h3{ margin:0; font-size:var(--tsc-text-md); font-weight:700; color:var(--tsc-navy); }
.tsc-trust-service p{ margin:0; font-size:var(--tsc-text-sm); color:var(--tsc-ink-70); line-height:1.5; }
.tsc-trust-service__link{ margin-top:auto; font-size:var(--tsc-text-sm); font-weight:600; color:var(--tsc-gold-600); display:inline-flex; align-items:center; gap:4px; }

/* ---- 9. Customer journey (request -> follow up) --------------------------- */
.tsc-journey{
  display:flex; flex-wrap:wrap; align-items:stretch; justify-content:center;
  gap:0;
}
.tsc-journey__step{
  flex:1 1 140px; min-width:120px;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:var(--tsc-space-3);
  padding:var(--tsc-space-5) var(--tsc-space-3);
  position:relative;
}
.tsc-journey__step + .tsc-journey__step::before{
  content:"";
  position:absolute; left:0; top:26px;
  width:100%; height:0;
  border-top:2px dashed var(--tsc-rule);
  transform:translateX(-50%);
}
.tsc-journey__icowrap{
  width:48px; height:48px; border-radius:50%;
  background:var(--tsc-navy); color:var(--tsc-white);
  display:flex; align-items:center; justify-content:center;
  position:relative; z-index:1;
}
.tsc-journey__step span{ font-size:var(--tsc-text-sm); font-weight:700; color:var(--tsc-ink); }

@media (max-width:767px){
  .tsc-journey{ flex-direction:column; }
  .tsc-journey__step + .tsc-journey__step::before{ display:none; }
}

/* ---- 10. Reviews (reuses tsc-card / tsc-review primitives from home) ------ */
.tsc-trust-reviews{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:var(--tsc-space-5);
}

/* ---- 11. Shared section rhythm helpers ------------------------------------ */
.tsc-trust-section{ padding-block:var(--tsc-section-y); }
.tsc-trust-section--alt{ background:var(--tsc-color-surface-2); }
.tsc-trust-section__head{ max-width:640px; margin:0 auto var(--tsc-space-8); text-align:center; }
.tsc-trust-section__head p.tsc-eyebrow{ justify-content:center; display:flex; }

/* ---- 12. Reduced motion ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .tsc-legal-content,
  html.tsc-smooth{ scroll-behavior:auto !important; }
  .tsc-timeline__dot,
  .tsc-trust-service,
  .tsc-legal-toc a{ transition:none !important; }
  .tsc-reveal{ opacity:1 !important; transform:none !important; }
}

/* ---- 13. Scroll-reveal (progressive enhancement, JS adds .is-visible) -----
   Fail-safe: .tsc-reveal is fully visible by default. The hidden "about to
   animate in" state applies ONLY under html.js-reveal, a class trust-privacy.js
   adds synchronously as its very first line. If that script is blocked, errors,
   or never runs, this content is never hidden in the first place - it just
   never gets the (optional) entrance animation. Confirmed via real scroll
   (not full-page screenshot capture, which doesn't fire scroll/Intersection
   events) that the reveal itself fires correctly once JS is running. */
.tsc-reveal{ opacity:1; transform:none; }
html.js-reveal .tsc-reveal{ opacity:0; transform:translateY(14px); transition:opacity 480ms var(--tsc-ease), transform 480ms var(--tsc-ease); }
html.js-reveal .tsc-reveal.is-visible{ opacity:1; transform:none; }
