/* ============================================================
   savethisguide site stylesheet
   Brand: #EFEFEF surfaces, near-black ink, yellow #ffcc62 accents,
   every yellow element carries a hairline outline (matches the PDF
   guides and the cover ribbon). Inter throughout, Anton for display.
   Structure follows Templates/sales-page/SECTION-SPEC.md, derived
   from the proven FMAT /tgth page.
   ============================================================ */

:root{
  --ink:#0c0c0e;
  --muted:#5c5c62;
  --surface:#EFEFEF;
  --card:#ffffff;
  --accent:#ffcc62;
  --line:#d8d8d8;
  --hair:#0c0c0e;
  --ok:#1a7f4b;
  --maxw:1080px;
}

*{box-sizing:border-box;}
html{scroll-behavior:auto;}
body{
  margin:0;
  background:var(--surface);
  color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--ink);}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px;}
.narrow{max-width:760px;}

/* ---------- Announcement bar ---------- */
.announce{
  background:var(--ink);color:#fff;text-align:center;
  padding:10px 16px;font-size:15px;font-weight:600;letter-spacing:.01em;
}
.announce a{color:var(--accent);text-decoration:underline;}

/* ---------- Header / logo ---------- */
.site-head{background:var(--surface);border-bottom:1px solid var(--line);}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding-top:14px;padding-bottom:14px;}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;}
.brand svg{width:22px;height:30px;display:block;flex:0 0 auto;}
.brand span{
  font-family:'Anton','Inter',sans-serif;font-weight:400;
  font-size:22px;letter-spacing:.01em;color:var(--ink);line-height:1;
}
.head-links{display:flex;gap:20px;font-size:15px;font-weight:600;}
.head-links a{text-decoration:none;color:var(--muted);}
.head-links a:hover{color:var(--ink);}

/* ---------- Type ---------- */
h1,h2,h3{margin:0 0 14px;line-height:1.15;text-wrap:balance;}
h1{font-family:'Anton','Inter',sans-serif;font-weight:400;font-size:clamp(34px,5.4vw,54px);}
h2{font-family:'Anton','Inter',sans-serif;font-weight:400;font-size:clamp(26px,3.6vw,38px);}
h3{font-size:21px;font-weight:700;}
p{margin:0 0 16px;text-wrap:pretty;}
.lede{font-size:21px;color:#26262b;}
.eyebrow{
  display:inline-block;font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);margin-bottom:10px;
}
.rule{height:6px;width:96px;background:var(--accent);border:1px solid var(--hair);
  border-radius:3px;margin:0 0 22px;}

section{padding:56px 0;}
section.tight{padding:36px 0;}
section.alt{background:var(--card);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;background:var(--accent);color:var(--ink);
  border:1px solid var(--hair);border-radius:8px;
  padding:15px 26px;font-size:18px;font-weight:700;text-decoration:none;
  cursor:pointer;
}
.btn:hover{filter:brightness(1.04);}
.btn.block{display:block;width:100%;text-align:center;}
.btn.ghost{background:transparent;}
.btn-note{font-size:14px;color:var(--muted);margin-top:10px;}

/* ---------- Stat pills ---------- */
.pills{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 26px;}
.pill{
  background:var(--card);border:1px solid var(--hair);border-radius:999px;
  padding:8px 18px;font-weight:700;font-size:16px;text-decoration:none;
}

/* ---------- Bento grid ---------- */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.bento.two{grid-template-columns:1fr 1fr;}
.box{
  background:var(--card);border:1px solid var(--hair);border-radius:10px;
  padding:22px 22px;
  /* Equal height with the CTA pinned to the bottom, so buttons line up across
     the row even when the copy lengths differ (QA 2026-07-25). */
  display:flex;flex-direction:column;height:100%;
}
.bento{align-items:stretch;}
.box > p:last-child:has(> .btn){margin-top:auto;padding-top:6px;}
.box h3{margin-bottom:8px;}
.box p{margin:0;color:#3a3a40;font-size:17px;}
.box .num{font-family:'Anton','Inter',sans-serif;font-size:34px;line-height:1;
  display:block;margin-bottom:8px;}

/* ---------- Checklist ---------- */
ul.checks{list-style:none;padding:0;margin:0 0 20px;}
ul.checks li{position:relative;padding-left:34px;margin-bottom:12px;}
ul.checks li::before{
  content:"";position:absolute;left:0;top:4px;width:20px;height:20px;
  background:var(--accent);border:1px solid var(--hair);border-radius:5px;
}

/* ---------- Pricing cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start;}
.card{
  background:var(--surface);border:1px solid var(--hair);border-radius:12px;
  padding:26px 22px;display:flex;flex-direction:column;height:100%;
}
.card.best{background:var(--accent);}
.card .badge{
  display:inline-block;background:var(--ink);color:var(--accent);
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:5px 11px;border-radius:6px;margin-bottom:12px;align-self:flex-start;
}
.card h3{font-family:'Anton','Inter',sans-serif;font-weight:400;font-size:25px;}
.price{font-family:'Anton','Inter',sans-serif;font-size:40px;line-height:1;margin:6px 0 4px;}
.price s{font-family:'Inter',sans-serif;font-size:19px;color:var(--muted);
  font-weight:500;margin-right:10px;}
.card ul{list-style:none;padding:0;margin:14px 0 18px;font-size:16.5px;}
.card ul li{padding-left:20px;position:relative;margin-bottom:9px;}
.card ul li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;
  border-radius:50%;background:var(--ink);}
.card .upsell{font-size:15px;color:#44444a;margin:0 0 16px;}
.card .cta{margin-top:auto;}
.guarantee{text-align:center;font-size:15.5px;color:var(--muted);margin-top:20px;}

/* ---------- FAQ ---------- */
details{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:16px 20px;margin-bottom:10px;}
details[open]{border-color:var(--hair);}
summary{cursor:pointer;font-weight:700;font-size:18px;list-style:none;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";float:right;font-weight:700;color:var(--muted);}
details[open] summary::after{content:"\2013";}
details p{margin:12px 0 0;color:#3a3a40;}

/* ---------- Forms ---------- */
.field{margin-bottom:16px;}
label{display:block;font-weight:700;font-size:15px;margin-bottom:6px;}
input[type=email],input[type=text]{
  width:100%;padding:14px 15px;font-size:18px;font-family:inherit;
  border:1px solid var(--hair);border-radius:8px;background:#fff;
}
.msg{padding:14px 16px;border-radius:8px;border:1px solid var(--hair);
  background:var(--card);margin-top:16px;font-size:16.5px;}
.msg.ok{background:#eefaf2;border-color:var(--ok);}

/* ---------- Footer ---------- */
.site-foot{background:var(--ink);color:#c9c9cf;padding:40px 0 46px;font-size:15px;}
.site-foot .brand span{color:#fff;}
.site-foot a{color:#c9c9cf;}
.foot-links{display:flex;flex-wrap:wrap;gap:18px;margin:18px 0 14px;}
.site-foot .fine{color:#8a8a92;font-size:13.5px;}

/* ---------- Responsive ----------
   Breakpoints mirror the proven FMAT page: 1279px (tablet ceiling),
   770px (mobile), 480px (small phone). A single breakpoint collapsed
   3 columns straight to 1 and left tablet unhandled (QA 2026-07-25). */

/* Tablet: 770 to 1279. Three-up becomes two-up; hero stacks but stays wide. */
@media (max-width:1279px){
  .wrap{max-width:920px;}
  .bento{grid-template-columns:repeat(2,1fr);}
  .tiles{grid-template-columns:repeat(3,1fr);}
  .cards{grid-template-columns:repeat(3,1fr);gap:14px;}
  .card{padding:22px 18px;}
  .card ul{font-size:15.5px;}
  .hero-split{grid-template-columns:1.15fr .85fr;gap:26px;}
  .ph.hero{max-width:320px;}
}

/* Mobile: up to 770. Everything single column, hero image above the fold copy. */
@media (max-width:770px){
  body{font-size:17px;}
  section{padding:40px 0;}
  .wrap{padding:0 18px;}
  .bento,.bento.two,.cards{grid-template-columns:1fr;}
  .tiles{grid-template-columns:1fr 1fr;}
  .head-links{display:none;}
  .hero-split{grid-template-columns:1fr;gap:22px;}
  .ph.hero{max-width:260px;order:-1;}
  .card .ph{max-width:120px;}
  h1{font-size:clamp(30px,8vw,40px);}
  .lede{font-size:19px;}
  .btn{display:block;width:100%;text-align:center;}
  .pills{gap:9px;}
  .pill{font-size:15px;padding:7px 15px;}
  .foot-links{gap:12px;flex-direction:column;}
}

/* Small phone: up to 480. Tiles single column, tighter type. */
@media (max-width:480px){
  .tiles{grid-template-columns:1fr;}
  body{font-size:16.5px;}
  section{padding:32px 0;}
  .brand span{font-size:19px;}
  .announce{font-size:13.5px;padding:9px 12px;}
  .price{font-size:34px;}
  .ph.hero{max-width:210px;}
}

/* ---------- Image placeholders (1:1) ----------
   Square slots marking where real art goes. FMAT's proven page carries a hero
   product shot, a six tile icon row, and a cover in every pricing card; those
   slots were missing here (Gabriel, 2026-07-25). Swap .ph for an <img> when
   the art exists; the aspect ratio is already correct. */
.ph{
  aspect-ratio:1/1;width:100%;
  background:
    repeating-linear-gradient(45deg,#e4e4e4 0 10px,#ededed 10px 20px);
  border:1px solid var(--hair);border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  text-align:center;padding:14px;
  font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#6a6a72;
}
.ph.sm{max-width:120px;}
.ph.hero{max-width:380px;margin:0 0 26px;}
.hero-split{display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:start;}

/* six tile icon row */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.tile{
  background:var(--card);border:1px solid var(--hair);border-radius:10px;
  padding:20px;text-align:center;
}
.tile .ph{max-width:78px;margin:0 auto 12px;}
.tile h3{font-size:18px;margin-bottom:6px;}
.tile p{font-size:15.5px;color:#3a3a40;margin:0;}

/* cover slot inside a pricing card */
.card .ph{max-width:150px;margin:0 auto 14px;}


/* ---------- Hero carousel (image LEFT, matching the proven FMAT layout) ----
   Native scroll-snap instead of Swiper: no CDN dependency, no external
   request that can fail, swipeable on touch, arrow + dot controls on desktop. */
.hero-split{grid-template-columns:.9fr 1.1fr;}
/* Image column sits LEFT, matching the FMAT sales page (Gabriel 2026-07-25).
   order:-1 must be global, not only inside the mobile query. */
.hero-media{position:relative;order:-1;}
.carousel{
  display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  gap:0;border:1px solid var(--hair);border-radius:12px;background:#e9e9e9;
  scrollbar-width:none;-ms-overflow-style:none;
}
.carousel::-webkit-scrollbar{display:none;}
.carousel > *{flex:0 0 100%;scroll-snap-align:center;}
.carousel .ph{border:0;border-radius:0;}
.car-dots{display:flex;justify-content:center;gap:8px;margin-top:12px;}
.car-dots button{
  width:9px;height:9px;padding:0;border-radius:50%;cursor:pointer;
  background:#c6c6cc;border:1px solid var(--hair);
}
.car-dots button[aria-current="true"]{background:var(--accent);}
.car-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:38px;height:38px;border-radius:50%;cursor:pointer;
  background:var(--card);border:1px solid var(--hair);
  font-size:17px;font-weight:700;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.car-arrow.prev{left:-14px;}
.car-arrow.next{right:-14px;}
@media (max-width:770px){
  .hero-split{grid-template-columns:1fr;}
  .hero-media{order:-1;max-width:340px;margin:0 auto;}
  .car-arrow{display:none;}
}

/* ---------- Pricing ladder (FMAT proven layout) ----------
   Horizontal rows, cover left, title+price on one line, a flowing
   description with bold highlights, full width CTA. Stacks at 820px.
   Replaces the 3-up vertical card grid (Gabriel, 2026-07-25). */
.ladder{max-width:900px;margin:0 auto;}
.ld-rows{display:flex;flex-direction:column;gap:18px;}
.ld{
  display:flex;align-items:center;gap:26px;
  background:var(--card);border:1px solid var(--hair);border-radius:12px;
  padding:24px 26px;
}
.ld.best{background:var(--accent);}
.ld-img{flex:0 0 190px;}
.ld-img .ph{border-radius:8px;}
.ld-body{flex:1;min-width:0;}
.ld-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.ld-head h3{
  font-family:'Anton','Inter',sans-serif;font-weight:400;font-size:26px;margin:0;
}
.ld-price{font-family:'Anton','Inter',sans-serif;font-size:32px;line-height:1;white-space:nowrap;}
.ld-price s{font-family:'Inter',sans-serif;font-size:17px;color:var(--muted);font-weight:500;margin-right:9px;}
.ld-badge{
  display:inline-block;background:var(--ink);color:var(--accent);
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:4px 10px;border-radius:6px;margin-bottom:8px;
}
.ld-desc{font-size:16.5px;line-height:1.55;margin:10px 0 16px;color:#26262b;}
.ld-desc b{font-weight:700;color:var(--ink);}
.ld .cta{
  display:block;width:100%;text-align:center;cursor:pointer;
  font-family:inherit;font-size:17.5px;font-weight:700;
  background:transparent;color:var(--ink);
  border:1px solid var(--hair);border-radius:10px;padding:14px 26px;
  transition:filter .15s,transform .05s;
}
.ld.best .cta{background:var(--ink);color:var(--accent);}
.ld .cta:hover{filter:brightness(1.06);}
.ld .cta:active{transform:translateY(1px);}
.ld-note{text-align:center;font-weight:700;font-size:16.5px;margin:20px 0 0;color:#26262b;}

@media (max-width:820px){
  .ld{flex-direction:column;align-items:stretch;gap:16px;padding:22px 20px;}
  .ld-img{flex:none;max-width:230px;margin:0 auto;}
  .ld-head{justify-content:flex-start;}
  .ld-price{font-size:28px;}
}

/* Support strip under the offer bar on sales pages. Sales pages carry no nav
   header at all: cold traffic gets no exit links above the fold, and the space
   goes to the offer instead (Gabriel 2026-07-25, matching FMAT). */
.announce.sub{
  background:var(--card);color:var(--ink);
  border-bottom:1px solid var(--line);
  font-weight:600;font-size:14px;
}
.announce.sub a{color:var(--ink);text-decoration:underline;}
section:first-of-type{padding-top:40px;}
