/* =========================================================================
   Shared base — resets & tokens used by both design families
   ========================================================================= */

:root{
  --radius-s: 6px;
  --radius-m: 12px;
  --radius-l: 20px;
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.75rem;
  --space-4: 2.75rem;
  --space-5: 4.5rem;
}

*, *::before, *::after{ box-sizing: border-box; }

html{ -webkit-text-size-adjust: 100%; }

body{
  margin: 0;
  overflow-x: hidden;
}

img, video{ max-width: 100%; height: auto; display: block; }
figure{ margin: 0; }

a{ text-decoration-thickness: 1.5px; }

.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.skip-link{
  position:absolute; left:-999px; top:0; background:#000; color:#fff;
  padding:.75em 1.25em; z-index:200; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

/* asterisk / disclaimer marks */
sup.note-star{ color: inherit; font-weight: 700; }

/* generic aspect-ratio media frame (images + video) */
.media-frame{
  position: relative;
  width: 100%;
  border-radius: var(--radius-m);
  overflow: hidden;
  background: #d8d2c2;
}
.media-frame.ratio-16-9{ aspect-ratio: 16/9; }
.media-frame.ratio-4-3{ aspect-ratio: 4/3; }
.media-frame.ratio-1-1{ aspect-ratio: 1/1; }
.media-frame img, .media-frame video{
  width: 100%; height: 100%; object-fit: cover;
}
.media-frame figcaption{
  font-size: .82rem;
  padding: .5rem .1rem 0;
  opacity: .75;
}

/* checkbox-driven mobile nav toggle (no JS) */
.nav-check{ position:absolute; opacity:0; pointer-events:none; }

/* =========================================================================
   PUBLICATION THEME  (body.pub)  — "Smart Signal", warm editorial, serif
   ========================================================================= */

body.pub{
  --pico-font-family: Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;
  --pico-background-color: #f7f1e3;
  --pico-color: #241d13;
  --pico-h1-color: #201808;
  --pico-h2-color: #201808;
  --pico-primary: #b1481f;
  --pico-primary-hover: #8c3616;
  --pico-primary-underline: #b1481f;
  --pico-muted-color: #6b5c3f;
  --pico-card-background-color: #fffaf0;
  --pico-card-border-color: #e4d6b4;
  --pico-blockquote-border-color: #b1481f;
  background: var(--pico-background-color);
  color: var(--pico-color);
  line-height: 1.65;
}

body.pub main{
  max-width: 760px;
  margin: 0 auto;
  padding: 0 1.1rem var(--space-5);
}

body.pub h1{ font-size: clamp(1.9rem, 5.4vw + 1rem, 2.9rem); line-height: 1.14; letter-spacing: -.01em; }
body.pub h2{ font-size: clamp(1.4rem, 2.6vw + 1rem, 1.9rem); margin-top: var(--space-4); }
body.pub h3{ font-size: clamp(1.15rem, 1.4vw + 1rem, 1.35rem); }

/* masthead */
body.pub .masthead{
  border-bottom: 3px solid #201808;
  background: #fffaf0;
}
body.pub .masthead-row{
  max-width: 900px;
  margin: 0 auto;
  padding: 1rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
body.pub .brand{ text-decoration: none; color: inherit; display:block; }
body.pub .brand-mark{
  display:block;
  font-size: clamp(1.35rem, 3vw, 1.7rem);
  font-weight: 700;
  letter-spacing: -.02em;
  color: #201808;
}
body.pub .brand-tagline{
  display:block;
  font-family: system-ui, sans-serif;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #6b5c3f;
  margin-top: .15rem;
}
body.pub .nav-toggle-label{
  display: inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 44px; min-height: 44px;
  border: 2px solid #201808;
  border-radius: var(--radius-s);
  font-family: system-ui, sans-serif;
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
  background: #fffaf0;
  padding: 0 .9rem;
}
body.pub .nav-list{
  list-style: none;
  margin: 0; padding: 0;
  display: none;
  flex-direction: column;
  gap: .1rem;
  width: 100%;
  border-top: 1px solid #e4d6b4;
}
body.pub .nav-check:checked ~ .nav-list{ display:flex; }
body.pub .nav-list li{ border-bottom: 1px solid #ece1c8; }
body.pub .nav-list a{
  display:block; padding: .9rem .2rem;
  color: #241d13; text-decoration:none;
  font-family: system-ui, sans-serif; font-size: .95rem; font-weight: 600;
}
body.pub .nav-list a:hover, body.pub .nav-list a:focus-visible{ color: #b1481f; }

/* disclosure ribbon */
body.pub .ribbon{
  margin: 0;
  background: #201808;
  color: #f3ead4;
  text-align: center;
  font-family: system-ui, sans-serif;
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: .55rem 1rem;
}

body.pub .eyebrow{
  font-family: system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .74rem;
  font-weight: 700;
  color: #b1481f;
  margin: var(--space-3) 0 .6rem;
}

body.pub .lede{
  font-size: clamp(1.05rem, 1.4vw + .9rem, 1.25rem);
  color: #3c331f;
  margin-top: .4rem;
}

body.pub .byline{
  font-family: system-ui, sans-serif;
  font-size: .82rem;
  color: #6b5c3f;
  border-top: 1px solid #e4d6b4;
  border-bottom: 1px solid #e4d6b4;
  padding: .7rem 0;
  margin: 1rem 0 var(--space-3);
}

body.pub .figure{ margin: var(--space-3) 0; }
body.pub .figure figcaption{ font-family: system-ui, sans-serif; color:#6b5c3f; }

/* numbered items */
body.pub .item{
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid #e4d6b4;
}
body.pub .item-number{
  font-family: system-ui, sans-serif;
  font-weight: 800;
  font-size: .8rem;
  letter-spacing: .08em;
  color: #b1481f;
  margin: 0 0 .3rem;
}
body.pub .item h2{ margin-top: .1rem; }

body.pub .kicker{
  display:inline-block;
  font-family: system-ui, sans-serif;
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #7a3115;
  background: #f1d9c0;
  border-radius: 999px;
  padding: .35rem .9rem;
  margin-bottom: .6rem;
}

body.pub .item-highlight{
  background: #fffaf0;
  border: 2px solid #201808;
  border-radius: var(--radius-m);
  padding: var(--space-3) 1.1rem;
  margin-top: var(--space-4);
}
body.pub .item-highlight h2{ margin-top: .2rem; }

/* rates table */
body.pub .rates-wrap{ overflow-x: auto; margin: var(--space-2) 0; }
body.pub table{
  width: 100%;
  border-collapse: collapse;
  font-family: system-ui, sans-serif;
  font-size: .92rem;
  min-width: 460px;
}
body.pub caption{ text-align:left; font-family: Georgia, serif; font-style: italic; color:#6b5c3f; margin-bottom:.4rem; }
body.pub th, body.pub td{
  padding: .7rem .8rem;
  border-bottom: 1px solid #e4d6b4;
  text-align: left;
}
body.pub thead th{
  background: #201808; color: #f3ead4;
  font-size: .74rem; text-transform: uppercase; letter-spacing: .06em;
}
body.pub tbody tr:nth-child(odd){ background: #fdf6e6; }
body.pub td strong{ color: #b1481f; }

body.pub .rate-note{
  font-family: system-ui, sans-serif;
  font-size: .8rem;
  color: #6b5c3f;
  margin-top: .3rem;
}

/* deliverables list */
body.pub .deliverables{
  list-style:none; margin: var(--space-2) 0; padding:0;
  display:grid; gap: .7rem;
}
body.pub .deliverables li{
  background: #fffaf0;
  border: 1px solid #e4d6b4;
  border-left: 4px solid #b1481f;
  border-radius: var(--radius-s);
  padding: .8rem 1rem;
}

/* summary box */
body.pub .summary-box{
  background: #f1e6cc;
  border-radius: var(--radius-m);
  padding: var(--space-3) 1.1rem;
  margin-top: var(--space-4);
}
body.pub .summary-box h2{ margin-top:0; }
body.pub .summary-box ul{ margin-bottom:0; }

/* CTA bands */
body.pub .cta-band{
  background: #201808;
  color: #f3ead4;
  border-radius: var(--radius-m);
  padding: var(--space-3) 1.1rem;
  margin: var(--space-4) 0;
  text-align:center;
}
body.pub .cta-band h2{ color:#f3ead4; margin-top:0; }
body.pub .cta-band p{ color:#e6d9ba; }
body.pub .cta-band.alt{ background: #b1481f; color:#fff; }
body.pub .cta-band.alt h2{ color:#fff; }
body.pub .cta-band.alt p{ color:#fbe6d8; }
body.pub .cta-band a[role="button"]{
  display:inline-block;
  background: #b1481f;
  color:#fff;
  border: none;
  font-family: system-ui, sans-serif;
  font-weight:700;
  padding: .85rem 1.6rem;
  border-radius: 999px;
  text-decoration:none;
  min-height:44px;
  margin-top: .5rem;
}
body.pub .cta-band.alt a[role="button"]{ background:#201808; }
body.pub .cta-band a[role="button"]:hover, body.pub .cta-band a[role="button"]:focus-visible{ background:#8c3616; }
body.pub .cta-band.alt a[role="button"]:hover, body.pub .cta-band.alt a[role="button"]:focus-visible{ background:#100d04; }
body.pub .cta-sub{ font-size:.8rem; opacity:.85; margin-top:.6rem; }

/* faq */
body.pub .faq{ margin-top: var(--space-4); }
body.pub details{
  background: #fffaf0;
  border: 1px solid #e4d6b4;
  border-radius: var(--radius-s);
  padding: .2rem 1rem;
  margin-bottom: .6rem;
}
body.pub summary{
  font-family: system-ui, sans-serif;
  font-weight: 700;
  padding: .9rem 0;
  cursor:pointer;
}
body.pub details p{ margin-top:0; }

body.pub .disclosure-note{
  font-family: system-ui, sans-serif;
  font-size: .78rem;
  color: #6b5c3f;
  border-top: 1px solid #e4d6b4;
  padding-top: 1rem;
  margin-top: var(--space-4);
}
body.pub .disclosure-note a{ color:#8c3616; }

/* pub footer */
body.pub footer.pub-footer{
  background: #201808;
  color: #d9cba7;
  margin-top: var(--space-5);
}
body.pub .footer-inner{
  max-width: 900px;
  margin:0 auto;
  padding: var(--space-4) 1.1rem;
}
body.pub .footer-inner h2{ color:#f3ead4; font-size:1.1rem; }
body.pub .footer-links{
  list-style:none; margin: 1rem 0; padding:0;
  display:grid; grid-template-columns: 1fr 1fr; gap: .5rem 1rem;
  font-family: system-ui, sans-serif; font-size: .88rem;
}
body.pub .footer-links a{ color:#e6d9ba; }
body.pub .footer-legal{
  font-family: system-ui, sans-serif;
  font-size: .76rem;
  color: #a8996f;
  border-top: 1px solid #4a3f26;
  padding-top: 1rem;
  margin-top: 1rem;
  white-space: pre-line;
}

/* about page bits reuse .pub theme + small extras */
body.pub .principles{
  list-style:none; padding:0; margin: var(--space-2) 0;
  display:grid; gap:.8rem;
}
body.pub .principles li{
  border: 1px solid #e4d6b4; border-radius: var(--radius-s);
  padding: .9rem 1rem; background:#fffaf0;
}

@media (min-width: 480px){
  body.pub .footer-links{ grid-template-columns: 1fr 1fr 1fr; }
}

@media (min-width: 768px){
  body.pub main{ padding-left: 1.5rem; padding-right: 1.5rem; }
  body.pub .nav-toggle-label{ display:none; }
  body.pub .nav-list{
    display:flex !important;
    flex-direction: row;
    border-top: none;
    gap: 1.6rem;
  }
  body.pub .nav-list li{ border-bottom:none; }
  body.pub .nav-list a{ padding: .3rem 0; white-space: nowrap; }
  body.pub .deliverables{ grid-template-columns: 1fr 1fr; }
  body.pub .principles{ grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px){
  body.pub main{ max-width: 820px; }
}

/* =========================================================================
   OFFER THEME  (body.offer) — clinical-clean palette, retro-web shapes
   ========================================================================= */

body.offer{
  --pico-font-family: "Trebuchet MS", "Century Gothic", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "Courier New", ui-monospace, monospace;
  --pico-background-color: #eef4f3;
  --pico-color: #0b1b1d;
  --pico-h1-color: #071214;
  --pico-h2-color: #071214;
  --pico-primary: #1c6fae;
  --pico-primary-hover: #144f80;
  --pico-card-background-color: #ffffff;
  --pico-card-border-color: #0b1b1d;
  --ink: #0b1b1d;
  --line: #0b1b1d;
  --blue: #1c6fae;
  --blue-dark: #144f80;
  --lime: #cdf24c;
  --soft: #dcebe9;
  background: var(--pico-background-color);
  color: var(--pico-color);
  line-height: 1.6;
}

body.offer main{
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1.1rem calc(var(--space-5) + 70px);
}

body.offer h1{ font-size: clamp(1.9rem, 6vw + .8rem, 3.1rem); line-height: 1.08; letter-spacing: -.01em; }
body.offer h2{ font-size: clamp(1.4rem, 2.6vw + 1rem, 2rem); }
body.offer h3{ font-size: clamp(1.1rem, 1.4vw + 1rem, 1.3rem); }

body.offer .badge, body.offer .tag{
  display:inline-block;
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight:700;
  padding: .35rem .8rem;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--lime);
  color: var(--ink);
}

/* header / nav */
body.offer .site-header{
  background: #ffffff;
  border-bottom: 3px solid var(--ink);
  position: sticky; top:0; z-index: 50;
}
body.offer .header-row{
  max-width: 1080px; margin:0 auto;
  padding: .9rem 1.1rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
body.offer .brand{
  font-family: var(--mono);
  font-weight:700;
  font-size: 1.15rem;
  text-decoration:none;
  color: var(--ink);
  border: 2px solid var(--ink);
  border-radius: var(--radius-s);
  padding: .3rem .6rem;
  background: var(--lime);
}
body.offer .nav-toggle-label{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; min-height:44px;
  border: 2px solid var(--ink); border-radius: var(--radius-s);
  font-family: var(--mono); font-weight:700; font-size:.85rem;
  cursor:pointer; background:#fff; padding: 0 .9rem;
}
body.offer .nav-list{
  list-style:none; margin:0; padding:0;
  display:none; flex-direction:column;
  position:absolute; left:0; right:0; top:100%;
  background:#fff; border-bottom: 3px solid var(--ink);
}
body.offer .nav-check:checked ~ .nav-list{ display:flex; }
body.offer .nav-list li{ border-top: 1px solid #d7e0df; }
body.offer .nav-list a{
  display:block; padding: 1rem 1.1rem;
  color: var(--ink); text-decoration:none;
  font-weight:600;
}
body.offer .nav-list a.nav-cta{ color: var(--blue-dark); font-weight:700; }
body.offer .header-cta{ display:none; }

/* hero */
body.offer .hero{
  padding: var(--space-4) 0 var(--space-3);
  display:grid; gap: var(--space-3);
}
body.offer .hero .eyebrow{
  font-family: var(--mono); text-transform:uppercase; letter-spacing:.08em;
  font-size:.78rem; color: var(--blue-dark); font-weight:700;
}
body.offer .hero h2{
  margin-top: .3rem;
  color: var(--blue-dark);
}
body.offer .hero-lead{ font-size: 1.08rem; max-width: 56ch; }
body.offer .hero-actions{ display:flex; flex-wrap:wrap; gap: .8rem; margin-top:.5rem; }
body.offer .hero-media{ order:-1; }

body.offer .btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height: 48px;
  padding: .8rem 1.5rem;
  border-radius: var(--radius-s);
  border: 2px solid var(--ink);
  font-weight:700;
  text-decoration:none;
  box-shadow: 4px 4px 0 var(--ink);
  transition: transform .15s ease, box-shadow .15s ease;
}
body.offer .btn:hover, body.offer .btn:focus-visible{
  transform: translate(2px,2px);
  box-shadow: 2px 2px 0 var(--ink);
}
body.offer .btn-primary{ background: var(--blue); color:#fff; }
body.offer .btn-secondary{ background: #fff; color: var(--ink); }
body.offer .btn-lime{ background: var(--lime); color: var(--ink); }

/* chip strip */
body.offer .chip-strip{
  display:flex; flex-wrap:wrap; gap:.6rem;
  padding: var(--space-2) 0;
  border-top: 1px solid #c9d8d6; border-bottom: 1px solid #c9d8d6;
}
body.offer .chip{
  font-family: var(--mono); font-size: .82rem; font-weight:700;
  border: 2px solid var(--ink); border-radius: 999px;
  padding: .4rem 1rem; background:#fff;
}

/* pull quote */
body.offer .pull-quote{
  background: var(--ink); color:#fff;
  border-radius: var(--radius-l);
  padding: var(--space-3) 1.3rem;
  margin: var(--space-4) 0;
}
body.offer .pull-quote p{
  font-family: var(--mono);
  font-size: clamp(1.1rem, 2.6vw + .6rem, 1.6rem);
  font-weight:700; line-height:1.35; margin:0;
  color: var(--lime);
}
body.offer .pull-quote span{ color:#fff; }
body.offer .pull-quote small{ display:block; margin-top:.7rem; color:#cfe0de; font-family: system-ui, sans-serif; font-size:.78rem; }
body.offer .pull-quote small a{ color:#fff; }
body.offer .hero h1{ margin-bottom: .2rem; }

/* generic section spacing + kicker/section-label */
body.offer section{ margin-top: var(--space-5); }
body.offer .figure{ margin-top: var(--space-2); }
body.offer .figure figcaption{ font-size: .82rem; opacity: .7; }
body.offer .section-kicker{
  font-family: var(--mono); text-transform:uppercase; letter-spacing:.08em;
  font-size:.78rem; font-weight:700; color: var(--blue-dark);
  display:block; margin-bottom:.4rem;
}

/* card grids */
body.offer .grid{
  display:grid; gap: 1rem;
  margin-top: var(--space-2);
}
body.offer .card{
  background:#fff;
  border: 2px solid var(--ink);
  border-radius: var(--radius-m);
  padding: 1.2rem 1.2rem;
  box-shadow: 5px 5px 0 rgba(11,27,29,.12);
}
body.offer .card h3{ margin-top:0; }
body.offer .card .price{ font-family: var(--mono); font-weight:700; color: var(--blue-dark); }

/* rates table */
body.offer .rates-wrap{ overflow-x:auto; margin-top: var(--space-2); }
body.offer table{
  width:100%; border-collapse:collapse; min-width: 480px;
  background:#fff; border: 2px solid var(--ink); border-radius: var(--radius-m); overflow:hidden;
}
body.offer th, body.offer td{ padding:.8rem 1rem; border-bottom:1px solid #d7e0df; text-align:left; }
body.offer thead th{ background: var(--ink); color:#fff; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }
body.offer tbody tr:last-child td{ border-bottom:none; }
body.offer td strong{ color: var(--blue-dark); font-family: var(--mono); }

/* arithmetic callout */
body.offer .arithmetic{
  background: var(--soft);
  border: 2px dashed var(--ink);
  border-radius: var(--radius-m);
  padding: var(--space-3) 1.2rem;
  margin-top: var(--space-2);
}

/* curriculum timeline */
body.offer .timeline{ list-style:none; margin: var(--space-2) 0 0; padding:0; counter-reset: step; }
body.offer .timeline li{
  counter-increment: step;
  position:relative;
  padding: 1rem 1rem 1rem 3.4rem;
  background:#fff; border:2px solid var(--ink); border-radius:var(--radius-s);
  margin-bottom: .8rem;
}
body.offer .timeline li::before{
  content: counter(step);
  position:absolute; left: .8rem; top:50%; transform: translateY(-50%);
  width: 1.9rem; height:1.9rem; border-radius:50%;
  background: var(--lime); border:2px solid var(--ink);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--mono); font-weight:700;
}

/* checklist (learning outcomes) */
body.offer .checklist{ list-style:none; margin: var(--space-2) 0 0; padding:0; display:grid; gap:.7rem; }
body.offer .checklist li{
  padding: .85rem 1rem .85rem 2.6rem;
  background:#fff; border:1px solid #c9d8d6; border-left: 4px solid var(--blue);
  border-radius: var(--radius-s);
  position:relative;
}
body.offer .checklist li::before{
  content:"✓"; position:absolute; left: .9rem; top: .8rem;
  color: var(--blue-dark); font-weight:700;
}

/* pricing hero card */
body.offer .pricing-card{
  background:#fff; border: 3px solid var(--ink); border-radius: var(--radius-l);
  padding: var(--space-3) 1.3rem; margin-top: var(--space-2);
  box-shadow: 8px 8px 0 var(--lime);
}
body.offer .pricing-card .price-tag{
  font-family: var(--mono); font-size: clamp(2rem, 6vw, 2.8rem); font-weight:700; color: var(--blue-dark);
}
body.offer .pricing-card ul{ margin-top: 1rem; }
body.offer .pricing-card ul li{ margin-bottom:.4rem; }

/* add-ons */
body.offer .addon-card{
  background:#fff; border: 2px solid var(--ink); border-radius: var(--radius-m);
  padding: 1.1rem; display:flex; flex-direction:column; gap:.5rem;
}
body.offer .addon-card .price{ font-size:1.2rem; }

/* perks stack */
body.offer .perks{ list-style:none; margin: var(--space-2) 0 0; padding:0; display:grid; gap:.6rem; }
body.offer .perks li{
  background: var(--soft); border-radius: var(--radius-s);
  padding: .8rem 1rem .8rem 2.5rem; position:relative;
}
body.offer .perks li::before{
  content:"★"; position:absolute; left:.85rem; top:.75rem; color: var(--blue-dark);
}

/* limits / honesty block */
body.offer .limits{
  background:#fff; border: 2px solid var(--ink); border-radius: var(--radius-m);
  padding: var(--space-3) 1.2rem;
}
body.offer .limits ul{ margin-bottom:0; }

/* how it works */
body.offer .steps{ list-style:none; margin: var(--space-2) 0 0; padding:0; display:grid; gap:.8rem; }
body.offer .steps li{
  background:#fff; border:1px solid #c9d8d6; border-radius:var(--radius-s);
  padding: .9rem 1rem;
}

/* lead form */
body.offer .lead-form-card{
  background:#fff; border: 3px solid var(--ink); border-radius: var(--radius-l);
  padding: var(--space-3) 1.2rem;
}
body.offer form .field-row{ display:grid; gap: 1rem; }
body.offer label{ font-weight:700; font-size:.92rem; }
body.offer input, body.offer textarea{
  font-size: 1rem;
  border: 2px solid var(--ink) !important;
  border-radius: var(--radius-s) !important;
}
body.offer input:focus, body.offer textarea:focus{
  outline: 3px solid var(--blue);
  outline-offset: 1px;
}
body.offer .consent-row{ display:flex; align-items:flex-start; gap:.6rem; margin-top:.4rem; }
body.offer .consent-row input{ width:20px; height:20px; margin-top: .2rem; flex-shrink:0; }
body.offer .success-note{
  background: var(--soft); border: 2px solid var(--ink); border-radius: var(--radius-s);
  padding: 1rem; margin-top:1rem; font-weight:600;
}

/* faq (offer) */
body.offer .faq{ margin-top: var(--space-4); }
body.offer details{
  background:#fff; border:2px solid var(--ink); border-radius: var(--radius-s);
  padding: .2rem 1rem; margin-bottom:.6rem;
}
body.offer summary{ font-weight:700; padding: .9rem 0; cursor:pointer; }

/* sticky cta bar */
body.offer .sticky-cta{
  position: fixed; left:0; right:0; bottom:0; z-index: 60;
  background: var(--ink); color:#fff;
  padding: .7rem 1rem;
  display:flex; align-items:center; justify-content:space-between; gap: 1rem;
  transform: translateY(110%);
  transition: transform .25s ease;
  border-top: 3px solid var(--lime);
}
body.offer .sticky-cta.is-visible{ transform: translateY(0); }
body.offer .sticky-cta p{ margin:0; font-size:.85rem; }
body.offer .sticky-cta .btn{ box-shadow: none; padding: .6rem 1.1rem; min-height:44px; flex-shrink:0; }

/* legal-content variant used on legal pages within offer theme */
body.offer .legal-body{ max-width: 74ch; }
body.offer .legal-body h2{ margin-top: var(--space-4); }
body.offer .company-card{
  background:#fff; border:2px solid var(--ink); border-radius: var(--radius-m);
  padding: 1.2rem; white-space: pre-line; font-family: var(--mono); font-size:.92rem;
}

/* offer footer */
body.offer footer.offer-footer{
  background: #fff; border-top: 3px solid var(--ink); margin-top: var(--space-5);
}
body.offer .footer-inner{ max-width: 1080px; margin:0 auto; padding: var(--space-4) 1.1rem calc(var(--space-4) + 70px); }
body.offer .footer-links{
  list-style:none; margin: 1rem 0; padding:0;
  display:grid; grid-template-columns: 1fr 1fr; gap:.6rem 1rem;
  font-size:.9rem;
}
body.offer .footer-links a{ color: var(--ink); }
body.offer .footer-legal{
  font-family: var(--mono); font-size:.76rem; color:#3c4d4f;
  border-top: 1px solid #c9d8d6; padding-top:1rem; margin-top:1rem;
  white-space: pre-line;
}

@media (min-width: 480px){
  body.offer .footer-links{ grid-template-columns: 1fr 1fr 1fr; }
  body.offer .grid.grid-2{ grid-template-columns: 1fr 1fr; }
}

@media (min-width: 768px){
  body.offer main{ padding-left: 1.6rem; padding-right: 1.6rem; }
  body.offer .nav-toggle-label{ display:none; }
  body.offer .nav-list{
    display:flex !important; position:static; flex-direction:row;
    border-bottom:none; background:transparent; gap: 1.6rem; align-items:center;
  }
  body.offer .nav-list li{ border-top:none; }
  body.offer .nav-list a{ padding: .3rem 0; white-space: nowrap; }
  body.offer .header-cta{ display:inline-flex; }
  body.offer .hero{ grid-template-columns: 1.1fr .9fr; align-items:center; }
  body.offer .hero-media{ order:0; }
  body.offer .grid.grid-3{ grid-template-columns: repeat(3, 1fr); }
  body.offer .grid.grid-2{ grid-template-columns: 1fr 1fr; }
  body.offer form .field-row.two-col{ grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px){
  body.offer .grid.grid-4{ grid-template-columns: repeat(4, 1fr); }
}
