/* ============================================================
   Sweepo — brand stylesheet (dark, poster-style)
   ============================================================
   Deliberate site-wide rule: NO position:sticky, NO position:fixed,
   NO backdrop-filter, anywhere in this file. That combination caused
   three rounds of real, confirmed-on-device bugs on an earlier
   project (header desyncing from scroll on iOS Safari). Rather than
   patch around it again, this site doesn't use the mechanism at all.
   If you're tempted to add a sticky nav or TOC later — don't, or at
   minimum retest exhaustively on a real iPhone, not just this file.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Work+Sans:wght@400;500;600;700&display=swap');

:root{
  --ink:        #0A0B12;
  --ink-2:      #12141F;
  --paper:      #F2F3F8;
  --muted:      #9BA0BE;
  --muted-dim:  #5A5F80;
  --blue:       #0177FF;
  --blue-2:     #4FA8FF;
  --orange:     #E5322F;
  --orange-2:   #F76805;
  --green:      #3BE733;
  --green-2:    #199E2F;
  --green-deep: #2FBF52;
  --green-deep2:#0E7A2E;
  --purple:     #CB36F4;
  --purple-2:   #FB11B1;
  --line:       rgba(255,255,255,.1);
  --line-soft:  rgba(255,255,255,.08);
  --maxw:       1240px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:'Work Sans',system-ui,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

h1,h2,h3{
  font-family:'Sora',system-ui,sans-serif;
  font-weight:800;
  letter-spacing:-.02em;
  margin:0 0 .5em;
  color:#fff;
}
p{ margin:0 0 1em; color:var(--muted); }
.lede{ font-size:1.08rem; color:var(--muted); max-width:460px; line-height:1.6; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 44px; }
section{ padding:90px 0 0; }
@media (max-width:760px){ section{ padding:56px 0 0; } }

.tag{
  font-family:'Sora'; font-weight:700; font-size:.78rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--blue); margin-bottom:16px; display:block;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:13px 24px; border-radius:2px;
  font-family:'Sora'; font-weight:700; font-size:.88rem;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  transition:transform .15s ease, opacity .15s ease;
}
.btn-solid{ background:var(--paper); color:var(--ink); }
.btn-solid:hover{ transform:translateY(-2px); opacity:.92; }
.btn-blue{ background:var(--blue); color:#fff; }
.btn-blue:hover{ transform:translateY(-2px); opacity:.9; }
.btn-line{ background:transparent; color:var(--paper); border-color:var(--line); }
.btn-line:hover{ border-color:var(--paper); }
.btn-sm{ padding:10px 18px; font-size:.82rem; }

.store{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--blue); color:#fff; padding:14px 24px; border-radius:2px;
  text-decoration:none; font-family:'Sora';
}
.store small{ display:block; font-size:.62rem; color:#BFDBFF; font-weight:500; }
.store strong{ font-size:.98rem; font-weight:700; }

/* ---------- Nav: static, no sticky, no blur ---------- */
nav.site{ padding:30px 0; border-bottom:1px solid var(--line-soft); }
.nav-row{ display:flex; align-items:center; justify-content:space-between; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand img{ width:30px; height:30px; border-radius:8px; }
.brand span{ font-family:'Sora'; font-weight:700; font-size:1.05rem; color:#fff; }
.nav-links{ display:flex; gap:28px; }
.nav-links a{ text-decoration:none; color:var(--muted); font-size:.9rem; font-family:'Sora'; font-weight:600; }
.nav-links a:hover{ color:#fff; }
@media (max-width:760px){ .nav-links{ display:none; } }

/* ---------- Footer ---------- */
footer.site{ padding:60px 0 30px; border-top:1px solid var(--line-soft); margin-top:100px; }
footer.site a{ text-decoration:none; color:#C7CADC; }
footer.site a:hover{ color:var(--blue-2); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:30px; min-width:0; }
.footer-grid h4{ font-family:'Sora'; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-dim); margin-bottom:14px; font-weight:700; }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; font-size:.9rem; }
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.footer-brand img{ width:28px; height:28px; border-radius:8px; }
.footer-brand span{ font-family:'Sora'; font-weight:700; color:#fff; }
.footer-bottom{ font-size:.8rem; color:var(--muted-dim); border-top:1px solid var(--line-soft); padding-top:20px; }

/* ---------- Hero shot frame ---------- */
.hero-shot{ border-radius:4px; overflow:hidden; border:1px solid rgba(255,255,255,.08); min-width:0; }
.hero-shot img{ width:100%; display:block; }

/* ---------- Full-bleed feature sections ---------- */
.feat-section{ position:relative; overflow:hidden; padding:110px 0; }
.big-num{ position:absolute; top:-80px; font-family:'Sora'; font-weight:800; font-size:22rem; line-height:1; z-index:0; pointer-events:none; }
.feat-grid{ position:relative; z-index:1; display:grid; grid-template-columns:.95fr 1.05fr; gap:50px; align-items:center; min-width:0; }
.feat-grid.rev{ grid-template-columns:1.05fr .95fr; }

/* ---------- Legal pages ---------- */
.legal-hero{ padding:70px 0 40px; border-bottom:1px solid var(--line-soft); }
.legal-meta{ color:var(--muted-dim); font-size:.88rem; font-family:'Sora'; font-weight:600; }
.legal-body{ padding:50px 0 100px; }
.legal-layout{ display:grid; grid-template-columns:230px 1fr; gap:56px; align-items:start; min-width:0; }
/* No position:sticky on the TOC either — same rule as the rest of the site. */
.legal-toc{ border:1px solid var(--line); padding:22px; min-width:0; }
.legal-toc h4{ font-family:'Sora'; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-dim); margin-bottom:14px; }
.legal-toc ol{ list-style:none; margin:0; padding:0; counter-reset:toc; display:flex; flex-direction:column; gap:10px; }
.legal-toc li{ counter-increment:toc; }
.legal-toc a{ text-decoration:none; color:var(--muted); font-size:.86rem; display:flex; gap:8px; }
.legal-toc a::before{ content:counter(toc); font-family:'Sora'; font-weight:700; color:var(--blue-2); font-size:.76rem; }
.legal-toc a:hover{ color:#fff; }

.legal-content{ min-width:0; }
.legal-content h2{ font-size:1.3rem; margin-top:2.2em; padding-top:1.5em; border-top:1px solid var(--line-soft); scroll-margin-top:24px; }
.legal-content h2:first-child{ margin-top:0; border-top:none; padding-top:0; }
.legal-content h3{ font-size:1rem; margin-top:1.5em; color:#fff; }
.legal-content p, .legal-content li{ color:var(--muted); }
.legal-content ul, .legal-content ol{ padding-left:1.3em; }
.legal-content li{ margin-bottom:.5em; }
.legal-content table{ width:100%; border-collapse:collapse; margin:1.4em 0; font-size:.88rem; }
.legal-content th, .legal-content td{ text-align:left; padding:10px 14px; border-bottom:1px solid var(--line-soft); vertical-align:top; }
.legal-content thead th{ font-family:'Sora'; font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted-dim); }
.legal-content strong{ color:#fff; }
.callout{ background:var(--ink-2); border:1px solid var(--line); padding:18px 20px; margin:1.6em 0; font-size:.92rem; color:var(--muted); }
.callout strong{ color:var(--blue-2); }
.placeholder{ background:rgba(255,180,60,.1); border:1px dashed #C99A3B; color:#F0C77A; padding:2px 6px; font-family:monospace; font-size:.85em; }

.contact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin:2em 0; min-width:0; }
.contact-tile{ background:var(--ink); padding:22px; }
.contact-tile a.mail{ font-family:'Sora'; font-weight:700; color:var(--blue-2); text-decoration:none; word-break:break-all; }

.faq-item{ border-bottom:1px solid var(--line-soft); padding:22px 0; }
.faq-item:first-child{ border-top:1px solid var(--line-soft); }
.faq-item h3{ margin:0 0 8px; font-size:1rem; }
.faq-item p{ margin:0; font-size:.92rem; }

.text-center{ text-align:center; }
.center-col{ max-width:740px; margin:0 auto; }

/* ============================================================
   MOBILE OVERRIDES — deliberately last in the file.
   Equal-specificity CSS resolves by source order, even inside a
   media query, so every override lives down here after the rules
   it changes. Several also carry !important as a second line of
   defence. This is unrelated to the sticky/backdrop-filter policy
   above — this section is purely about narrow-viewport layout.
   ============================================================ */
@media (max-width:900px){
  .wrap{ padding:0 22px !important; }
  .feat-grid{ grid-template-columns:1fr !important; gap:32px; }
  .big-num{ font-size:8rem !important; top:-20px !important; }
  .footer-grid{ grid-template-columns:1fr 1fr !important; gap:28px; }
  .legal-layout{ grid-template-columns:1fr !important; }
  .contact-grid, .privacy-split{ grid-template-columns:1fr !important; }
}
@media (max-width:600px){
  .footer-grid{ grid-template-columns:1fr !important; }
}
