/* GENERATED by tools/build_inner.py from distinctive-media-dot/pages.css + styles.css. Do not edit;
   css/inner.css holds this site's overrides. */
/* ---------- Page head ---------- */
.page-head{ padding:calc(var(--head-h) + clamp(2rem, 5vw, 3.5rem)) 0 clamp(2.5rem, 5vw, 4rem); }
.page-head .wrap{ display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, .9fr); gap:clamp(1.5rem, 4vw, 3.5rem); align-items:end; }
.page-head.solo .wrap{ grid-template-columns:1fr; }
.page-head h1{
  font-size:clamp(2.8rem, 6.4vw, 5.4rem); font-variation-settings:"wdth" 116;
  line-height:.92; letter-spacing:-.04em;
}
.page-head h1 .dot{ width:.19em; height:.19em; }
.lede{ margin-top:1.2rem; max-width:50ch; font-size:clamp(1.08rem, 1.4vw, 1.25rem); color:var(--white); font-weight:500; line-height:1.5; }
.page-head .hero-ctas{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.6rem; }
.head-media{ position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/3; background:var(--ink-2); }
.head-media img{ width:100%; height:100%; object-fit:cover; }
.head-media figcaption{
  position:absolute; left:.8rem; bottom:.8rem; display:flex; align-items:center; gap:.5rem;
  font-size:.82rem; font-weight:600; letter-spacing:0; color:var(--white);
  background:rgba(7,13,25,.8); padding:.45rem .8rem; border-radius:999px;
}
.head-media figcaption::before{ content:""; width:.45rem; height:.45rem; border-radius:50%; background:var(--miami); }
@media (max-width:900px){ .page-head .wrap{ grid-template-columns:1fr; } }

.sec{ padding:0 0 var(--pad); }
.note{ margin-top:1.2rem; color:var(--mist); font-size:.92rem; max-width:70ch; }

/* ---------- Dot list ---------- */
.dots{ display:grid; gap:.55rem; }
.dots li{ position:relative; padding-left:1.15rem; }
.dots li::before{ content:""; position:absolute; left:0; top:.6em; width:.42rem; height:.42rem; border-radius:50%; background:var(--miami); }
.dots b{ color:var(--white); }

/* ---------- Price tickets ---------- */
.tickets{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1rem; }
.ticket{
  position:relative; display:flex; flex-direction:column; padding:clamp(1.4rem, 2.6vw, 2rem);
  background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r-lg);
  transition:transform .6s var(--ease), border-color .4s;
}
.ticket:hover{ transform:translateY(-6px); border-color:var(--line-2); }
.ticket.featured{ border-color:var(--miami); }
.tk-tag{ position:absolute; top:1.2rem; right:1.2rem; font-size:.75rem; font-weight:700; color:var(--harbor); background:var(--miami); padding:.3rem .7rem; border-radius:999px; }
.ticket h3{ font-size:1.6rem; }
.tk-price{ margin-top:.8rem; font-size:clamp(2.8rem, 4.6vw, 3.8rem); font-weight:800; color:var(--white); font-variation-settings:"wdth" 118; letter-spacing:-.045em; line-height:1; font-variant-numeric:tabular-nums; }
.tk-sub{ margin-top:.3rem; color:var(--mist); font-size:.9rem; }
.ticket .dots{ margin:1.3rem 0 1.6rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.ticket .btn{ margin-top:auto; align-self:flex-start; }
@media (max-width:900px){ .tickets{ grid-template-columns:1fr; } }

/* ---------- Stat row ---------- */
.stats{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:1rem; }
.stat{ display:flex; flex-direction:column; padding:1.4rem 1.4rem 1.3rem; background:var(--ink-2); border:1px solid var(--line); border-top:3px solid var(--miami); border-radius:var(--r-lg); }
.stat b{ display:block; font-size:clamp(2.4rem, 4vw, 3.4rem); font-weight:800; color:var(--white); font-variation-settings:"wdth" 118; letter-spacing:-.04em; line-height:1; }
.stat p{ flex:1; margin-top:.7rem; font-size:.98rem; line-height:1.45; }
.stat small{ display:block; margin-top:1rem; padding-top:.7rem; border-top:1px solid var(--line); font-size:.8rem; color:var(--mist); }
@media (max-width:900px){ .stats{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1.4rem 1rem; } }

/* ---------- Compare cards ---------- */
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cmp{ padding:clamp(1.4rem, 2.6vw, 2rem); border-radius:var(--r-lg); background:var(--ink-2); border:1px solid var(--line); }
.cmp.good{ border-color:var(--miami); }
.cmp h3{ font-size:1.5rem; }
.cmp p.cmp-k{ font-size:.85rem; font-weight:600; color:var(--mist); margin-bottom:.4rem; }
.cmp ul{ display:grid; gap:.6rem; margin-top:1.1rem; }
.cmp li{ position:relative; padding-left:1.3rem; }
.cmp li::before{ content:"×"; position:absolute; left:0; top:-.05em; color:var(--mist); font-weight:700; }
.cmp.good li::before{ content:""; top:.6em; width:.42rem; height:.42rem; border-radius:50%; background:var(--miami); }
@media (max-width:760px){ .compare{ grid-template-columns:1fr; } }

/* numbered line, static variant used on inner pages */
.line.four{ grid-template-columns:repeat(4, 1fr); }
@media (max-width:900px){ .line.four{ grid-template-columns:1fr; } }

/* ---------- Photo set ---------- */
.shots{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:.8rem; }
.shots figure{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:4/3; background:var(--ink-2); }
.shots img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.shots figure:hover img{ transform:scale(1.05); }
.shots figcaption{ position:absolute; left:.7rem; bottom:.7rem; font-weight:700; color:var(--white); background:rgba(7,13,25,.8); padding:.35rem .75rem; border-radius:999px; font-size:.85rem; }
@media (max-width:760px){ .shots{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.5rem; } }

/* ---------- Product strip (print page) ---------- */
.strip{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:.8rem; }
.strip a{ display:block; border-radius:var(--r); overflow:hidden; background:#EEF3F5; transition:transform .6s var(--ease); }
.strip a:hover{ transform:translateY(-5px); }
.strip img{ width:100%; aspect-ratio:1; object-fit:contain; }
.strip span{ display:block; padding:.6rem .8rem; background:var(--ink-2); color:var(--white); font-weight:650; font-size:.92rem; }
@media (max-width:760px){ .strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* ---------- Scorecard (consulting) ---------- */
.split2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem, 4vw, 3.5rem); align-items:start; }
@media (max-width:900px){ .split2{ grid-template-columns:1fr; } }
.score{ background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.4rem; }
.score-top{ display:flex; justify-content:space-between; gap:1rem; padding-bottom:.9rem; border-bottom:1px solid var(--line); color:var(--white); font-weight:700; }
.score-top span{ font-size:.82rem; font-weight:600; letter-spacing:0; color:var(--mist); font-weight:400; }
.score-row{ padding:.9rem 0; border-bottom:1px solid var(--line); }
.score-row div{ display:flex; justify-content:space-between; gap:1rem; color:var(--white); font-weight:650; }
.leak{ font-size:.72rem; font-weight:700; color:#FFB4A8; border:1px solid rgba(255,140,120,.45); border-radius:999px; padding:.1rem .55rem; }
.score-row p{ margin-top:.3rem; font-size:.88rem; color:var(--prose); }
.score-verdict{ margin-top:1rem; display:flex; align-items:center; gap:.6rem; color:var(--white); font-weight:700; }
.score-verdict::before{ content:""; width:.55rem; height:.55rem; border-radius:50%; background:var(--miami); }

/* ---------- Prose (privacy) ---------- */
.prose{ max-width:70ch; }
.prose h2{ margin-top:2.2rem; font-size:1.6rem; }
.prose p, .prose ul{ margin-top:.8rem; }
.prose ul{ display:grid; gap:.5rem; }
.prose a{ color:var(--miami); text-decoration:underline; text-underline-offset:3px; }
.updated{ margin-top:1rem; font-size:.88rem; font-weight:600; letter-spacing:0; color:var(--mist); }

/* ---------- 404 ---------- */
.nf{ min-height:78svh; display:grid; place-items:center; text-align:center; padding:calc(var(--head-h) + 2rem) 0 3rem; }
.nf-num{ font-size:clamp(7rem, 26vw, 18rem); font-weight:800; color:var(--white); font-variation-settings:"wdth" 118; letter-spacing:-.06em; line-height:.8; }
.nf-num .dot{ width:.17em; height:.17em; }
.nf h1{ margin-top:1.2rem; font-size:clamp(1.8rem, 3.4vw, 2.6rem); }
.nf p{ margin:.8rem auto 0; max-width:42ch; }
.nf .hero-ctas{ justify-content:center; display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.6rem; }

.line{ position:relative; display:grid; grid-template-columns:repeat(5, 1fr); gap:2rem; padding-top:2.6rem; }
.line::before, .line::after{ content:""; position:absolute; top:.55rem; left:0; right:0; height:2px; background:var(--line-2); border-radius:2px; }
.line::after{ background:var(--miami); transform:scaleX(var(--p, 0)); transform-origin:0 50%; }
.node{
  position:absolute; top:0; width:1.1rem; height:1.1rem; border-radius:50%;
  background:var(--ink); border:2px solid var(--line-2); z-index:1;
  transition:background .4s, border-color .4s, transform .5s var(--ease-pop);
}
.line li{ position:relative; }
.line li .node{ top:-2.6rem; }
.line li.on .node{ background:var(--miami); border-color:var(--miami); transform:scale(1.25); }
.line h3{ font-size:clamp(1.25rem, 1.7vw, 1.5rem); }
.line p{ margin-top:.7rem; font-size:1rem; max-width:28ch; }
@media (max-width:900px){
  .line{ grid-template-columns:1fr; gap:1.4rem; padding:0 0 0 2.6rem; }
  .line::before, .line::after{ top:0; bottom:0; left:.5rem; right:auto; width:2px; height:auto; }
  .line::after{ transform:scaleY(var(--p, 0)); transform-origin:50% 0; }
  .line li .node{ top:.25rem; left:-2.6rem; }
}

