/* =========================================================
   Clear Signal / AdCraft Académie — shared stylesheet
   Bootstrap 5 provides grid/utilities; this file overrides
   and adds the publication + offer design languages.
   ========================================================= */

:root{
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --space-xs: .5rem;
  --space-sm: 1rem;
  --space-md: 1.75rem;
  --space-lg: 3rem;
  --space-xl: 4.5rem;
  --shadow-soft: 0 8px 24px rgba(20,20,20,.08);
  --shadow-card: 0 2px 10px rgba(20,20,20,.07);
}

*{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; }
body{
  margin:0;
  min-width: 0;
  overflow-x: hidden;
  color:#1a1a1a;
  background:#fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.6;
}
img, video{ max-width:100%; height:auto; display:block; }
a{ text-decoration: none; }
.container{ max-width: 1120px; }
.visually-hidden-focusable:not(:focus){ position:absolute!important; width:1px;height:1px;overflow:hidden; }

/* Focus visibility everywhere */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

/* =========================================================
   PUBLICATION FAMILY (advertorial + about)
   ========================================================= */
body[data-theme="pub"]{
  --pub-bg:#ffffff;
  --pub-ink:#1c1c1c;
  --pub-muted:#5c5c5c;
  --pub-rule:#1c1c1c;
  --pub-accent:#a8431b;
  --pub-accent-dark:#7e2f11;
  --pub-ribbon-bg:#fbe4cc;
  --pub-ribbon-ink:#8a4a17;
  --pub-panel:#f7f4ef;
  --pub-panel-line:#e4ddd2;
  font-family: Georgia, "Iowan Old Style", "Times New Roman", serif;
  background: var(--pub-bg);
  color: var(--pub-ink);
}
body[data-theme="pub"] .sans{ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }

.pub-topline{
  display:flex; justify-content:space-between; align-items:center;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:.78rem; letter-spacing:.04em; text-transform:uppercase;
  color: var(--pub-muted);
  padding: .9rem 0 .6rem;
}
.pub-ribbon{
  display:inline-block;
  background: var(--pub-ribbon-bg);
  color: var(--pub-ribbon-ink);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.06em;
  padding:.3rem .7rem;
  border-radius: 4px;
}
.pub-masthead{
  text-align:center;
  padding: .4rem 0 1.1rem;
}
.pub-masthead__name{
  font-family: Georgia, "Times New Roman", serif;
  font-weight:700;
  font-size: clamp(1.7rem, 5vw, 2.6rem);
  margin:0;
  letter-spacing:.01em;
}
.pub-masthead__tag{
  font-family: Georgia, serif;
  font-style: italic;
  color: var(--pub-muted);
  font-size: .95rem;
  margin:.15rem 0 0;
}
.pub-rule{
  border:0; border-top: 3px solid var(--pub-rule);
  margin: 0 0 .3rem;
}
.pub-rule--thin{
  border:0; border-top: 1px solid var(--pub-rule);
  margin: 0 0 1.4rem;
}
.pub-nav{
  display:flex; gap: 1.1rem; justify-content:center; flex-wrap:wrap;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:.9rem; font-weight:600;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--pub-panel-line);
  margin-bottom: 1.6rem;
}
.pub-nav a{ color: var(--pub-ink); min-height:44px; display:flex; align-items:center; }
.pub-nav a:hover{ color: var(--pub-accent); }

.pub-kicker{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  text-transform: uppercase; letter-spacing:.06em; font-size:.78rem;
  color: var(--pub-accent-dark); font-weight:700; margin-bottom:.6rem;
}
.pub-h1{
  font-family: Georgia, "Times New Roman", serif;
  font-weight:700;
  font-size: clamp(1.7rem, 3.6vw + 1rem, 2.9rem);
  line-height:1.14;
  margin: 0 0 .9rem;
  color: var(--pub-ink);
}
.pub-dek{
  font-family: Georgia, serif;
  font-style: italic;
  font-size: clamp(1.05rem, 1.4vw + .7rem, 1.3rem);
  color:#3a3a3a;
  margin: 0 0 1.1rem;
}
.pub-byline{
  display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:.9rem; color: var(--pub-muted);
  margin-bottom: 1.3rem;
}
.pub-byline strong{ color: var(--pub-ink); }
.pub-stars{ color:#d99a1b; letter-spacing:1px; }
.pub-readcount{
  display:flex; align-items:center; gap:.4rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:.85rem; color: var(--pub-muted);
  margin-bottom: 1.6rem;
}
.pub-readcount__dot{
  width:8px; height:8px; border-radius:50%; background:#3fae4f; display:inline-block;
}

.pub-figure{ margin: 1.6rem 0; }
.pub-figure img, .pub-figure video{
  width:100%; border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
}
.pub-figure figcaption{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:.8rem; color: var(--pub-muted); margin-top:.5rem; text-align:center;
}
.pub-video-frame{
  position:relative; width:100%; aspect-ratio: 16/9;
  border-radius: var(--radius-md); overflow:hidden; box-shadow: var(--shadow-soft);
  background:#000;
}
.pub-video-frame video{ width:100%; height:100%; object-fit:cover; border-radius:0; box-shadow:none; }

.pub-article{ max-width: 720px; margin: 0 auto; }
.pub-article p{ font-size: 1.08rem; margin-bottom: 1.15rem; color:#2a2a2a; }
.pub-article h2{
  font-family: Georgia, "Times New Roman", serif;
  font-weight:700; font-size: clamp(1.35rem, 1.4vw + 1.1rem, 1.75rem);
  margin: 2.2rem 0 1rem;
  color: var(--pub-ink);
}
.pub-article h2 .kw{ color: var(--pub-accent-dark); }
.pub-article blockquote{
  border-left: 4px solid var(--pub-accent);
  margin: 1.6rem 0; padding: .2rem 0 .2rem 1.2rem;
  font-family: Georgia, serif; font-style: italic; font-size:1.15rem; color:#3a3a3a;
}

.pub-numbered{ list-style:none; margin:0 0 1.4rem; padding:0; counter-reset: reasons; }
.pub-numbered li{
  counter-increment: reasons;
  display:flex; gap: 1rem; margin-bottom: 1.1rem; align-items:flex-start;
}
.pub-numbered li::before{
  content: counter(reasons);
  flex: 0 0 auto;
  width: 2.1rem; height: 2.1rem; border-radius:50%;
  background: var(--pub-accent); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight:700; font-size:.95rem;
}
.pub-numbered li p{ margin:0; }
.pub-numbered li strong{ display:block; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; margin-bottom:.15rem; }

.pub-steps{
  display:grid; grid-template-columns: 1fr; gap: 1rem;
  margin: 1.5rem 0 1.8rem;
}
@media (min-width: 768px){
  .pub-steps{ grid-template-columns: repeat(4, 1fr); }
}
.pub-step{
  background: var(--pub-panel);
  border: 1px solid var(--pub-panel-line);
  border-radius: var(--radius-md);
  padding: 1.1rem 1.1rem 1.2rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.pub-step__num{ font-weight:800; color: var(--pub-accent); font-size:1.5rem; }
.pub-step h3{ font-size:1rem; margin:.3rem 0 .35rem; }
.pub-step p{ font-size:.9rem; color:#4a4a4a; margin:0; }

.pub-figstrip{
  display:grid; grid-template-columns: 1fr; gap: .9rem;
  margin: 1.4rem 0 1.8rem;
}
@media (min-width: 480px){
  .pub-figstrip{ grid-template-columns: repeat(3, 1fr); }
}
.pub-figstrip__item{
  background: var(--pub-panel); border:1px solid var(--pub-panel-line);
  border-radius: var(--radius-md); padding: 1rem; text-align:center;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.pub-figstrip__amount{ font-weight:800; font-size:1.25rem; color: var(--pub-accent-dark); display:block; }
.pub-figstrip__label{ font-size:.82rem; color:#4a4a4a; }

.pub-worked{
  background: var(--pub-panel);
  border: 1px solid var(--pub-panel-line);
  border-left: 5px solid var(--pub-accent);
  border-radius: var(--radius-md);
  padding: 1.4rem 1.5rem;
  margin: 1.4rem 0 1.8rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.pub-worked h3{ font-family: Georgia, serif; font-size:1.15rem; margin:0 0 .6rem; }
.pub-worked dl{ display:grid; grid-template-columns: 1fr auto; gap:.4rem 1rem; margin:.8rem 0 0; font-size:.95rem;}
.pub-worked dt{ color:#4a4a4a; }
.pub-worked dd{ margin:0; font-weight:700; text-align:right; }

.pub-verdict{
  display:flex; gap:1.2rem; align-items:center; flex-wrap:wrap;
  background:#fff; border: 2px solid var(--pub-ink);
  border-radius: var(--radius-md);
  padding: 1.3rem 1.4rem; margin: 1.6rem 0;
}
.pub-verdict__score{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight:800; font-size:2rem; color: var(--pub-accent-dark);
  border-right: 1px solid var(--pub-panel-line); padding-right:1.2rem;
}
.pub-verdict__text{ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size:.92rem; flex:1 1 200px; }

.pub-ctablock{
  text-align:center; background: var(--pub-panel);
  border-radius: var(--radius-lg); padding: 2rem 1.4rem;
  margin: 2rem 0;
}
.pub-ctablock p{ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.btn-pub{
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--pub-accent); color:#fff; font-weight:700;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  padding: .85rem 1.7rem; border-radius: 999px; min-height:48px;
  font-size: 1rem; border:none; transition: background .15s ease, transform .15s ease;
}
.btn-pub:hover{ background: var(--pub-accent-dark); transform: translateY(-1px); }
.btn-pub:focus-visible{ outline-offset:3px; }

.pub-toast{
  position: fixed; left: 12px; bottom: 12px; z-index: 40;
  background:#fff; border-radius: var(--radius-md); box-shadow: var(--shadow-soft);
  padding:.7rem .9rem; display:flex; gap:.6rem; align-items:center;
  max-width: 260px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:.78rem; border:1px solid var(--pub-panel-line);
  transition: opacity .4s ease, transform .4s ease;
}
.pub-toast__dot{ width:9px;height:9px;border-radius:50%;background:#3fae4f;flex:0 0 auto; margin-top:.2rem;}
.pub-toast.is-hidden{ opacity:0; transform: translateY(10px); pointer-events:none; }
@media (max-width: 480px){ .pub-toast{ max-width: 220px; font-size:.72rem; } }

/* About (publication family) simple content blocks */
.pub-about-lede{ font-size:1.15rem; color:#3a3a3a; }
.pub-values{ list-style:none; padding:0; margin: 1.4rem 0; display:grid; gap:1rem; }
@media (min-width:768px){ .pub-values{ grid-template-columns: repeat(3,1fr); } }
.pub-values li{ background: var(--pub-panel); border:1px solid var(--pub-panel-line); border-radius: var(--radius-md); padding:1.1rem; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size:.92rem;}

/* =========================================================
   OFFER FAMILY (academy + legal pages)
   ========================================================= */
body[data-theme="offer"]{
  --offer-bg:#fbfbf7;
  --offer-ink:#161a12;
  --offer-muted:#585f52;
  --offer-green:#5c8a1f;
  --offer-green-dark:#496d17;
  --offer-green-pale:#eef4e3;
  --offer-card:#ffffff;
  --offer-line:#e2e6d9;
  --offer-navy:#1c3b57;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--offer-bg);
  color: var(--offer-ink);
}
.offer-display{
  font-weight:800; letter-spacing:-.01em;
}

.offer-header{
  background:#fff; border-bottom:1px solid var(--offer-line);
  position: sticky; top:0; z-index:50;
}
.offer-header__bar{
  display:flex; align-items:center; justify-content:space-between;
  padding: .85rem 0;
  gap: 1rem;
}
.offer-logo{
  display:flex; align-items:center; gap:.5rem;
  font-weight:800; font-size:1.15rem; color: var(--offer-ink);
}
.offer-logo__mark{
  width:34px; height:34px; border-radius:9px;
  background: var(--offer-green);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:800; font-size:1rem;
}
.offer-logo__accent{ color: var(--offer-green); }
.offer-nav{
  display:none; gap:1.4rem; align-items:center;
  font-weight:700; font-size:.92rem;
}
.offer-nav a{ color: var(--offer-ink); min-height:44px; display:flex; align-items:center; }
.offer-nav a:hover{ color: var(--offer-green-dark); }
@media (min-width: 768px){ .offer-nav{ display:flex; } .offer-toggle{ display:none; } }
.offer-toggle{
  min-width:44px; min-height:44px; border-radius: var(--radius-sm);
  border:1px solid var(--offer-line); background:#fff;
  display:flex; align-items:center; justify-content:center;
}
.offer-mobile-menu{
  display:none; flex-direction:column; gap:.2rem;
  padding: .5rem 0 1rem;
  border-top: 1px solid var(--offer-line);
}
.offer-mobile-menu.is-open{ display:flex; }
.offer-mobile-menu a{
  padding: .7rem .2rem; font-weight:700; color: var(--offer-ink); min-height:44px;
  border-bottom: 1px solid var(--offer-line);
}
@media (min-width: 768px){ .offer-mobile-menu{ display:none!important; } }

.offer-hero{
  padding: clamp(2rem, 4vw, 3.4rem) 0 clamp(1.6rem, 3vw, 2.4rem);
  text-align:center;
}
.offer-kicker{
  display:inline-flex; align-items:center; gap:.4rem;
  background: var(--offer-green-pale); color: var(--offer-green-dark);
  font-weight:700; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase;
  padding:.35rem .8rem; border-radius:999px; margin-bottom:1rem;
}
.offer-h1{
  font-size: clamp(1.8rem, 4vw + 1rem, 3.1rem);
  line-height:1.1; margin: 0 auto .9rem; max-width: 880px;
}
.offer-subhead{
  font-size: clamp(1.02rem, 1vw + .8rem, 1.25rem);
  color: var(--offer-muted); max-width: 700px; margin: 0 auto 1.5rem;
}
.offer-rule{
  width:64px; height:4px; background: var(--offer-green); border-radius:2px; margin: 0 auto 1.5rem;
}
.offer-hero__ctas{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-bottom: 1.6rem; }

.btn-offer{
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  background: var(--offer-green); color:#fff; font-weight:700;
  padding: .9rem 1.8rem; border-radius: 10px; min-height:48px;
  font-size:1rem; border:none; transition: background .15s ease, transform .15s ease;
  box-shadow: 0 4px 14px rgba(92,138,31,.28);
}
.btn-offer:hover{ background: var(--offer-green-dark); transform: translateY(-1px); color:#fff; }
.btn-offer--outline{
  background:#fff; color: var(--offer-green-dark); border:2px solid var(--offer-green);
  box-shadow:none;
}
.btn-offer--outline:hover{ background: var(--offer-green-pale); }

.offer-hero__frame{
  border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-soft);
  max-width: 760px; margin: 0 auto; border: 1px solid var(--offer-line);
}
.offer-hero__frame img{ width:100%; }

.offer-section{ padding: clamp(2.2rem,4vw,3.6rem) 0; }
.offer-section--alt{ background: #fff; border-top:1px solid var(--offer-line); border-bottom:1px solid var(--offer-line); }
.offer-section--dark{ background: var(--offer-navy); color:#fff; }
.offer-section--green{ background: var(--offer-green-pale); }

.offer-section__kicker{
  color: var(--offer-green-dark); font-weight:800; text-transform:uppercase;
  letter-spacing:.05em; font-size:.8rem; margin-bottom:.5rem;
}
.offer-h2{
  font-size: clamp(1.5rem, 2.2vw + 1rem, 2.15rem);
  margin: 0 0 .9rem; line-height:1.15;
}
.offer-section--dark .offer-h2{ color:#fff; }
.offer-section--dark .offer-section__kicker{ color:#bfe28c; }
.offer-lede{ color: var(--offer-muted); font-size:1.05rem; max-width: 700px; margin-bottom:1.6rem; }
.offer-section--dark .offer-lede{ color:#dbe6ee; }

.offer-figure{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-card); border:1px solid var(--offer-line); }
.offer-figure img, .offer-figure video{ width:100%; }
.offer-video-frame{ position:relative; width:100%; aspect-ratio: 4/5; background:#000; }
@media (min-width:768px){ .offer-video-frame{ aspect-ratio: 16/10; } }
.offer-video-frame video{ width:100%; height:100%; object-fit:cover; }

.offer-cards{ display:grid; grid-template-columns:1fr; gap:1.1rem; }
@media (min-width:768px){ .offer-cards{ grid-template-columns: repeat(3,1fr); } }
.offer-card{
  background: var(--offer-card); border:1px solid var(--offer-line);
  border-radius: var(--radius-md); padding: 1.4rem; box-shadow: var(--shadow-card);
}
.offer-card__icon{
  width:42px; height:42px; border-radius:10px; background: var(--offer-green-pale);
  color: var(--offer-green-dark); display:flex; align-items:center; justify-content:center;
  font-weight:800; margin-bottom:.8rem;
}
.offer-card h3{ font-size:1.05rem; margin-bottom:.4rem; }
.offer-card p{ font-size:.92rem; color: var(--offer-muted); margin:0; }

.offer-steps{ display:grid; grid-template-columns:1fr; gap:1rem; counter-reset: osteps; }
@media (min-width:768px){ .offer-steps{ grid-template-columns: repeat(4,1fr); } }
.offer-step{
  background:#fff; border:1px solid var(--offer-line); border-radius: var(--radius-md);
  padding:1.2rem; position:relative; counter-increment: osteps;
}
.offer-step::before{
  content: counter(osteps);
  display:flex; align-items:center; justify-content:center;
  width:2rem; height:2rem; border-radius:50%; background:var(--offer-green); color:#fff;
  font-weight:800; margin-bottom:.7rem; font-size:.95rem;
}
.offer-step h3{ font-size:1rem; margin-bottom:.35rem; }
.offer-step p{ font-size:.88rem; color: var(--offer-muted); margin:0; }

.offer-quote{
  background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft);
  padding: 1.8rem 1.9rem; max-width: 760px; margin: 0 auto;
  border-top: 5px solid var(--offer-green);
}
.offer-quote p{ font-size:1.15rem; font-style: italic; margin:0 0 .8rem; color:#22281c; }
.offer-quote cite{ font-size:.85rem; color: var(--offer-muted); font-style:normal; font-weight:700; }

.offer-rate-panel{
  background:#fff; border:1px solid var(--offer-line); border-radius: var(--radius-lg);
  padding: 1.6rem; box-shadow: var(--shadow-card);
}
.offer-rate-row{
  display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0;
  border-bottom: 1px dashed var(--offer-line); font-size:.98rem;
}
.offer-rate-row:last-child{ border-bottom:none; }
.offer-rate-row span:first-child{ color:#333; }
.offer-rate-row span:last-child{ font-weight:800; color: var(--offer-green-dark); white-space:nowrap; }
.offer-rate-math{
  margin-top:1.2rem; padding-top:1.2rem; border-top:2px solid var(--offer-ink);
  font-size:.95rem; color:#333;
}
.offer-rate-math strong{ color: var(--offer-ink); }
.offer-rate-note{ font-size:.8rem; color: var(--offer-muted); margin-top:1rem; }

.offer-pricing{
  background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft);
  border: 2px solid var(--offer-green); overflow:hidden; max-width: 760px; margin:0 auto;
}
.offer-pricing__head{
  background: var(--offer-green); color:#fff; padding: 1.3rem 1.6rem; text-align:center;
}
.offer-pricing__head .badge-highlight{
  background:#fff; color: var(--offer-green-dark); font-weight:800; font-size:.72rem;
  text-transform:uppercase; letter-spacing:.05em; padding:.25rem .6rem; border-radius:999px;
  display:inline-block; margin-bottom:.5rem;
}
.offer-pricing__name{ font-size:1.5rem; font-weight:800; margin:0; }
.offer-pricing__price{ font-size:2.3rem; font-weight:800; margin:.2rem 0 0; }
.offer-pricing__price small{ font-size:1rem; font-weight:600; opacity:.85; }
.offer-pricing table{ width:100%; border-collapse: collapse; }
.offer-pricing td{ padding: .85rem 1.6rem; border-bottom:1px solid var(--offer-line); font-size:.96rem; }
.offer-pricing tr:last-child td{ border-bottom:none; }
.offer-pricing td.check{ width:2.2rem; color: var(--offer-green); font-weight:800; font-size:1.1rem; }
.offer-pricing__cta{ padding: 1.4rem 1.6rem; text-align:center; }
.offer-pricing__cta .btn-offer{ width:100%; max-width: 320px; }

.offer-addons{ display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width:576px){ .offer-addons{ grid-template-columns: repeat(2,1fr); } }
.offer-addon{
  background:#fff; border:1px solid var(--offer-line); border-radius: var(--radius-md);
  padding:1.2rem; display:flex; flex-direction:column; gap:.5rem;
}
.offer-addon__row{ display:flex; justify-content:space-between; align-items:baseline; gap:.6rem; }
.offer-addon__row h3{ font-size:1rem; margin:0; }
.offer-addon__price{ font-weight:800; color: var(--offer-green-dark); font-size:1.05rem; white-space:nowrap; }
.offer-addon p{ font-size:.88rem; color: var(--offer-muted); margin:0; }

.offer-perks{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:.8rem; }
@media (min-width:768px){ .offer-perks{ grid-template-columns: 1fr 1fr; } }
.offer-perks li{
  display:flex; gap:.7rem; align-items:flex-start; background:#fff;
  border:1px solid var(--offer-line); border-radius: var(--radius-md); padding:1rem 1.1rem; font-size:.95rem;
}
.offer-perks li::before{ content:"✓"; color:#fff; background: var(--offer-green); border-radius:50%; width:1.5rem; height:1.5rem; flex:0 0 auto; display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:800; }

.offer-curriculum{ list-style:none; margin:0; padding:0; counter-reset: curr; display:grid; gap:.9rem; }
.offer-curriculum li{
  counter-increment: curr;
  background:#fff; border:1px solid var(--offer-line); border-radius: var(--radius-md);
  padding: 1rem 1.2rem 1rem 3.2rem; position:relative; font-size:.96rem;
}
.offer-curriculum li::before{
  content: "0" counter(curr);
  position:absolute; left:1rem; top:1rem; font-weight:800; color: var(--offer-green); font-size:1.05rem;
}

.offer-limits{
  background:#fff; border-left:5px solid var(--offer-navy); border-radius: var(--radius-md);
  padding: 1.3rem 1.5rem; box-shadow: var(--shadow-card);
}
.offer-limits ul{ margin:.6rem 0 0; padding-left: 1.2rem; }
.offer-limits li{ margin-bottom:.5rem; font-size:.95rem; color:#333; }

.offer-lead{
  background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft);
  padding: 1.8rem; max-width: 640px; margin:0 auto; border:1px solid var(--offer-line);
}
.offer-field{ margin-bottom: 1.1rem; }
.offer-field label{ display:block; font-weight:700; font-size:.92rem; margin-bottom:.35rem; }
.offer-field input, .offer-field textarea{
  width:100%; font-size:1rem; padding:.75rem .9rem; border-radius: var(--radius-sm);
  border: 1.5px solid var(--offer-line); background:#fbfbf7; min-height:48px; font-family: inherit;
}
.offer-field textarea{ min-height:110px; resize:vertical; }
.offer-field input:focus, .offer-field textarea:focus{ border-color: var(--offer-green); outline:none; background:#fff; }
.invalid-feedback{ display:none; color:#b3261e; font-size:.82rem; margin-top:.35rem; }
.offer-field.is-invalid input, .offer-field.is-invalid textarea{ border-color:#b3261e; }
[data-field].is-invalid .invalid-feedback{ display:block; }
.offer-consent{ display:flex; gap:.6rem; align-items:flex-start; margin-bottom:1.2rem; font-size:.9rem; }
.offer-consent input{ width:20px; height:20px; margin-top:.15rem; flex:0 0 auto; }
.offer-consent.is-invalid{ outline: 1.5px solid #b3261e; outline-offset:4px; border-radius: 6px; }
.offer-form-note{ font-size:.8rem; color: var(--offer-muted); margin-top:1rem; }
.offer-success{
  display:none; background: var(--offer-green-pale); border:1.5px solid var(--offer-green);
  color: var(--offer-green-dark); border-radius: var(--radius-md); padding: 1.1rem 1.2rem;
  font-weight:700; margin-top: 1rem;
}
.offer-success.is-visible{ display:block; }
.offer-lead.is-submitted form{ display:none; }

/* Legal page content inside offer family */
.legal-wrap{ max-width: 760px; margin: 0 auto; }
.legal-wrap h2{ font-size:1.3rem; margin: 2rem 0 .7rem; }
.legal-wrap h2:first-of-type{ margin-top:1rem; }
.legal-wrap p, .legal-wrap li{ font-size:.98rem; color:#2c3226; }
.legal-wrap ul{ padding-left:1.3rem; }
.legal-updated{ color: var(--offer-muted); font-size:.85rem; margin-bottom:1.6rem; }
.legal-contact-box{
  background:#fff; border:1px solid var(--offer-line); border-radius: var(--radius-md);
  padding:1.2rem 1.4rem; margin: 1.4rem 0;
}

/* Table (accent borrow: table styling) used for offer comparisons where needed */
.overflow-table{ width:100%; overflow-x:auto; -webkit-overflow-scrolling: touch; }
.overflow-table table{ width:100%; }

/* =========================================================
   SHARED: disclaimer + footer + cookie banner
   ========================================================= */
.site-disclaimer{
  display:block; max-width: 1120px; margin: 0 auto; padding: 1.6rem 1rem 0;
  font-size: .9rem; line-height:1.55; color:#3a3a3a;
}
.site-disclaimer p{ margin: 0 0 .5rem; }
.site-disclaimer a{ color: inherit; text-decoration: underline; font-weight:700; }
body[data-theme="offer"] .site-disclaimer{ color:#3a4033; }

.site-footer{ margin-top: 1.6rem; padding: 2.2rem 0 2.6rem; }
body[data-theme="pub"] .site-footer{ background:#1c1c1c; color:#e7e2da; }
body[data-theme="pub"] .site-footer a{ color:#f0d9bf; }
body[data-theme="offer"] .site-footer{ background: var(--offer-navy); color:#eaf0f4; }
body[data-theme="offer"] .site-footer a{ color:#bfe28c; }

.site-footer__inner{ max-width:1120px; margin:0 auto; padding: 0 1rem; display:flex; flex-direction:column; gap:1.4rem; }
.site-footer__company{ font-size:.92rem; line-height:1.7; white-space:pre-line; }
.site-footer__links{ display:flex; flex-wrap:wrap; gap: .9rem 1.4rem; font-size:.92rem; font-weight:600; }
.site-footer__links a{ min-height:44px; display:flex; align-items:center; }
.site-footer__links a:hover{ text-decoration: underline; }
.site-footer__bottom{ font-size:.8rem; opacity:.75; }
@media (min-width: 768px){
  .site-footer__inner{ flex-direction:row; justify-content:space-between; align-items:flex-start; }
  .site-footer__links{ flex-direction:column; gap:.65rem; }
}

.cookie-banner{
  position: fixed; left:0; right:0; bottom:0; z-index:100;
  background:#1c1c1c; color:#fff; padding: 1rem;
  display:none; box-shadow: 0 -4px 18px rgba(0,0,0,.25);
}
.cookie-banner.is-visible{ display:block; }
.cookie-banner__inner{
  max-width:1120px; margin:0 auto; display:flex; flex-direction:column; gap:.9rem;
}
@media (min-width:768px){ .cookie-banner__inner{ flex-direction:row; align-items:center; justify-content:space-between; } }
.cookie-banner p{ margin:0; font-size:.88rem; line-height:1.5; }
.cookie-banner a{ color:#f0d9bf; text-decoration:underline; }
.cookie-banner__actions{ display:flex; gap:.7rem; flex-wrap:wrap; }
.cookie-banner__actions button{
  min-height:44px; padding: .6rem 1.2rem; border-radius:8px; font-weight:700; font-size:.88rem; border:none;
  cursor:pointer;
}
.cookie-accept{ background:#fff; color:#1c1c1c; }
.cookie-reject{ background:transparent; color:#fff; border:1.5px solid #666; }
.cookie-accept:hover{ background:#e9e2d6; }
.cookie-reject:hover{ border-color:#fff; }

/* sticky mobile CTA rail (guide-explainer template) */
.sticky-cta{
  position: fixed; left:0; right:0; bottom:0; z-index:60;
  background:#fff; border-top:1px solid rgba(0,0,0,.12);
  padding: .7rem 1rem; box-shadow: 0 -6px 18px rgba(0,0,0,.1);
  display:flex; justify-content:center;
}
.sticky-cta.is-hidden{ display:none; }
.sticky-cta-space{ height: 76px; }
@media (min-width: 1024px){ .sticky-cta{ display:none; } .sticky-cta-space{ display:none; } }

.skip-link{
  position:absolute; left:-999px; top:0; background:#fff; padding:.6rem 1rem; z-index:200;
}
.skip-link:focus{ left: 12px; top: 12px; }
