/* =========================================================================
   Shared base
   ========================================================================= */
:root{
  --pub-bg:#fffdf9;
  --pub-ink:#17181a;
  --pub-muted:#55585c;
  --pub-green:#2f6b4f;
  --pub-green-dark:#1f4d38;
  --pub-green-tint:#e9f2ec;
  --pub-cream:#f7f0e2;
  --pub-cream-border:#e2d3ab;
  --pub-cta:#141414;
  --pub-rule:#e7e2d6;

  --off-bg:#ffffff;
  --off-ink:#1f2937;
  --off-muted:#5b6470;
  --off-teal:#0b7d70;
  --off-teal-dark:#085f55;
  --off-teal-tint:#e3f8f5;
  --off-coral:#b8452a;
  --off-coral-dark:#973a22;
  --off-border:#e2e8f0;
  --off-card:#f8fbfb;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;overflow-x:hidden;}
img,video{max-width:100%;height:auto;display:block;}
a{text-decoration:none;}
button{font:inherit;cursor:pointer;}

.skip-link{
  position:absolute;left:-9999px;top:0;background:#111;color:#fff;padding:.75rem 1.25rem;
  z-index:100;border-radius:0 0 .5rem 0;
}
.skip-link:focus{left:0;}

:focus-visible{outline:3px solid #0b7d70;outline-offset:2px;}

.media-frame{
  position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#111;
}
.media-frame video, .media-frame img{width:100%;height:100%;object-fit:cover;}

.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;
}

/* Cookie banner (shared, no tracking - purely local UI state) */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:80;background:#141414;color:#f4f1ea;
  padding:1rem;box-shadow:0 -6px 24px rgba(0,0,0,.25);
  transform:translateY(110%);transition:transform .35s ease;
}
.cookie-banner.is-visible{transform:translateY(0);}
.cookie-banner__inner{max-width:72rem;margin:0 auto;display:flex;flex-direction:column;gap:.75rem;}
.cookie-banner__actions{display:flex;flex-wrap:wrap;gap:.6rem;}
.cookie-btn{
  padding:.6rem 1.1rem;border-radius:.4rem;font-size:.9rem;font-weight:600;min-height:44px;
  border:1px solid transparent;
}
.cookie-btn--accept{background:#f4f1ea;color:#141414;}
.cookie-btn--accept:hover{background:#fff;}
.cookie-btn--reject{background:transparent;color:#f4f1ea;border-color:#5a5a5a;}
.cookie-btn--reject:hover{border-color:#f4f1ea;}

/* =========================================================================
   Disclaimer + Footer (shared skeleton, family-tinted)
   ========================================================================= */
.site-disclaimer{
  display:block;max-width:64rem;margin:0 auto;padding:1.25rem 1.25rem;
  font-size:.9rem;line-height:1.6;border-top:1px solid var(--rule,#e2e8f0);
  border-bottom:1px solid var(--rule,#e2e8f0);
}
.site-disclaimer a{text-decoration:underline;font-weight:600;}

.site-footer{padding:2.5rem 1.25rem 2.25rem;}
.site-footer__inner{max-width:64rem;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem;}
.site-footer__company{font-size:.9rem;line-height:1.7;}
.site-footer__company p{margin:0 0 .15rem;}
.site-footer__links{display:flex;flex-wrap:wrap;gap:.9rem 1.4rem;font-size:.9rem;}
.site-footer__links a{min-height:44px;display:inline-flex;align-items:center;}

/* =========================================================================
   PUBLICATION family (advertorial + about)
   ========================================================================= */
.pub-page{background:var(--pub-bg);color:var(--pub-ink);font-family:Georgia,'Times New Roman',serif;}
.pub-page .site-disclaimer{--rule:var(--pub-rule);background:var(--pub-cream);}
.pub-page .site-footer{background:var(--pub-ink);color:#f2efe6;}
.pub-page .site-footer__links a{color:#cfd6cf;}
.pub-page .site-footer__links a:hover, .pub-page .site-footer__links a:focus-visible{color:#fff;}

.pub-ribbon{
  background:var(--pub-ink);color:#efece2;font-family:Arial,Helvetica,sans-serif;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-align:center;
  padding:.55rem 1rem;
}
.pub-header{
  max-width:64rem;margin:0 auto;padding:1.4rem 1.25rem .8rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.pub-logo{
  font-family:Arial,Helvetica,sans-serif;font-weight:800;font-size:1.4rem;letter-spacing:.02em;
  color:var(--pub-ink);
}
.pub-logo span{color:var(--pub-green);}
.pub-tagbar{display:flex;flex-wrap:wrap;gap:.5rem;}
.pub-tag{
  font-family:Arial,Helvetica,sans-serif;background:var(--pub-green-tint);color:var(--pub-green-dark);
  font-size:.78rem;font-weight:700;padding:.4rem .8rem;border-radius:999px;white-space:nowrap;
}
.pub-article-head{max-width:52rem;margin:0 auto;padding:.4rem 1.25rem 1.5rem;text-align:center;}
.pub-article-head .pub-meta{justify-content:center;}
.pub-h1{
  font-family:Arial,Helvetica,sans-serif;font-weight:800;letter-spacing:-.01em;
  font-size:clamp(1.8rem,5.2vw,2.9rem);line-height:1.14;margin:0 0 .9rem;color:var(--pub-ink);
}
.pub-subhead{font-size:clamp(1.05rem,2.6vw,1.25rem);color:var(--pub-green-dark);font-weight:700;
  font-family:Arial,Helvetica,sans-serif;margin:0 0 .9rem;}
.pub-meta{
  font-family:Arial,Helvetica,sans-serif;font-size:.85rem;color:var(--pub-muted);
  display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
}

.pub-figure{max-width:52rem;margin:0 auto 2rem;padding:0 1.25rem;}
.pub-figure figcaption{
  font-family:Arial,Helvetica,sans-serif;font-size:.8rem;color:var(--pub-muted);margin-top:.6rem;
}
.pub-figure .media-frame{border-radius:.5rem;}

.pub-article-body{max-width:42rem;margin:0 auto;padding:0 1.25rem;font-size:1.08rem;line-height:1.75;}
.pub-article-body p{margin:0 0 1.35rem;}
.pub-article-body h2{
  font-family:Arial,Helvetica,sans-serif;font-weight:800;color:var(--pub-ink);
  font-size:clamp(1.35rem,3.6vw,1.85rem);line-height:1.25;margin:2.4rem 0 1rem;
}
.pub-article-body h3{
  font-family:Arial,Helvetica,sans-serif;font-weight:700;color:var(--pub-ink);
  font-size:clamp(1.1rem,2.8vw,1.3rem);margin:1.6rem 0 .8rem;
}
.pub-lead{font-size:1.18rem;font-weight:600;color:#2a2b2d;}

.pub-kicker{
  font-family:Arial,Helvetica,sans-serif;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--pub-green);font-size:.85rem;display:block;margin-bottom:.5rem;
}

.pub-card{
  background:var(--pub-cream);border:1px solid var(--pub-cream-border);border-left:5px solid var(--pub-green);
  border-radius:.35rem;padding:1.3rem 1.4rem;margin:1.8rem 0;font-size:1.05rem;
}
.pub-card p{margin:0;}
.pub-card p + p{margin-top:.8rem;}

.pub-callout-band{
  background:var(--pub-ink);color:#f4f1e7;border-radius:.6rem;padding:1.9rem 1.6rem;margin:2.2rem 0;
}
.pub-callout-band .pub-kicker{color:#9fd9b8;}
.pub-callout-band h3{color:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:800;
  font-size:clamp(1.2rem,3vw,1.55rem);margin:0 0 .7rem;}
.pub-callout-band p{margin:0 0 .8rem;line-height:1.7;font-size:1.02rem;}
.pub-callout-band p:last-child{margin-bottom:0;}

.pub-list-numbered{list-style:none;margin:1.5rem 0;padding:0;counter-reset:pubcount;}
.pub-list-numbered li{
  counter-increment:pubcount;position:relative;padding:.2rem 0 1.4rem 3rem;border-bottom:1px solid var(--pub-rule);
  margin-bottom:1.4rem;
}
.pub-list-numbered li:last-child{border-bottom:none;margin-bottom:0;}
.pub-list-numbered li::before{
  content:counter(pubcount);position:absolute;left:0;top:.1rem;width:2.15rem;height:2.15rem;
  background:var(--pub-green);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:Arial,Helvetica,sans-serif;font-weight:800;font-size:1.05rem;
}
.pub-list-numbered h3{margin:0 0 .4rem;}
.pub-list-numbered p{margin:0;}

.pub-figstrip{
  display:grid;grid-template-columns:1fr;gap:1rem;margin:1.6rem 0 2rem;
}
.pub-figstrip__item{
  border:1px solid var(--pub-cream-border);background:#fffefb;border-radius:.5rem;padding:1.1rem 1.2rem;
}
.pub-figstrip__item strong{
  display:block;font-family:Arial,Helvetica,sans-serif;font-size:1.25rem;color:var(--pub-green-dark);
  margin-bottom:.25rem;
}
.pub-figstrip__item span{font-size:.92rem;color:var(--pub-muted);}

.pub-table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1.4rem 0 2rem;}
.pub-table caption{
  text-align:left;font-family:Arial,Helvetica,sans-serif;font-weight:700;margin-bottom:.6rem;
}
.pub-table th, .pub-table td{
  border:1px solid var(--pub-cream-border);padding:.7rem .8rem;text-align:left;
}
.pub-table thead th{
  background:var(--pub-green);color:#fff;font-family:Arial,Helvetica,sans-serif;
  text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;
}
.pub-table tbody tr:nth-child(even){background:var(--pub-cream);}

.pub-cta-row{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.8rem 0;}
.pub-btn{
  font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:.98rem;padding:.9rem 1.5rem;
  border-radius:.35rem;display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  transition:transform .15s ease, background .2s ease, color .2s ease;border:2px solid var(--pub-cta);
}
.pub-btn--primary{background:var(--pub-cta);color:#fff;}
.pub-btn--primary:hover,.pub-btn--primary:focus-visible{background:var(--pub-green-dark);border-color:var(--pub-green-dark);transform:translateY(-1px);}
.pub-btn--ghost{background:transparent;color:var(--pub-cta);}
.pub-btn--ghost:hover,.pub-btn--ghost:focus-visible{background:var(--pub-cta);color:#fff;transform:translateY(-1px);}

.pub-summary-box{
  background:var(--pub-green-tint);border:1px solid #c9e0d2;border-radius:.6rem;padding:1.4rem 1.5rem;margin:2rem 0;
}
.pub-summary-box h2{margin-top:0;}
.pub-summary-box ul{margin:.6rem 0 0;padding-left:1.2rem;}
.pub-summary-box li{margin-bottom:.5rem;}

.pub-faq{border-top:1px solid var(--pub-rule);margin-top:1rem;}
.pub-faq details{border-bottom:1px solid var(--pub-rule);padding:1rem 0;}
.pub-faq summary{
  font-family:Arial,Helvetica,sans-serif;font-weight:700;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
}
.pub-faq summary::-webkit-details-marker{display:none;}
.pub-faq summary::after{content:'+';font-size:1.4rem;color:var(--pub-green);flex-shrink:0;}
.pub-faq details[open] summary::after{content:'\2212';}
.pub-faq p{margin:.8rem 0 0;}

/* =========================================================================
   OFFER family (offer page + legal pages)
   ========================================================================= */
.off-page{background:var(--off-bg);color:var(--off-ink);font-family:Arial,Helvetica,sans-serif;}
.off-page .site-disclaimer{--rule:var(--off-border);background:var(--off-teal-tint);}
.off-page .site-footer{background:#0f2a27;color:#dff4f0;}
.off-page .site-footer__links a{color:#b8ded8;}
.off-page .site-footer__links a:hover,.off-page .site-footer__links a:focus-visible{color:#fff;}

.off-nav{
  max-width:68rem;margin:0 auto;padding:1.1rem 1.25rem;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;
}
.off-logo{font-weight:800;font-size:1.3rem;color:var(--off-teal-dark);letter-spacing:-.01em;}
.off-nav-cta{
  background:var(--off-teal);color:#fff;font-weight:700;font-size:.85rem;padding:.7rem 1.2rem;
  border-radius:.4rem;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;
  transition:background .2s ease;
}
.off-nav-cta:hover,.off-nav-cta:focus-visible{background:var(--off-teal-dark);}

.off-divider{
  border:none;border-top:2px dashed #c9e7e2;margin:2.6rem auto;max-width:68rem;position:relative;
}
.off-divider::before,.off-divider::after{
  content:'';position:absolute;top:-5px;width:10px;height:10px;border-radius:50%;background:#c9e7e2;
}
.off-divider::before{left:0;}
.off-divider::after{right:0;}

.off-hero{max-width:44rem;margin:0 auto;padding:1.5rem 1.25rem 0;text-align:center;}
.off-kicker{
  display:inline-block;font-weight:800;letter-spacing:.09em;text-transform:uppercase;font-size:.8rem;
  color:var(--off-teal-dark);background:var(--off-teal-tint);padding:.4rem .9rem;border-radius:999px;
  margin-bottom:1.1rem;
}
.off-h1{
  font-weight:800;letter-spacing:-.01em;font-size:clamp(1.7rem,5.4vw,2.7rem);line-height:1.2;
  color:var(--off-ink);margin:0 0 1rem;
}
.off-h2-hero{
  font-weight:700;font-size:clamp(1.05rem,2.8vw,1.35rem);color:var(--off-teal-dark);margin:0 0 1.1rem;
  line-height:1.4;
}
.off-lead{font-size:1.05rem;color:var(--off-muted);line-height:1.7;margin:0 auto 1.6rem;max-width:38rem;}

.off-section{max-width:64rem;margin:0 auto;padding:0 1.25rem;}
.off-section h2{
  font-weight:800;font-size:clamp(1.35rem,3.4vw,1.9rem);line-height:1.25;margin:0 0 .9rem;color:var(--off-ink);
  text-align:center;
}
.off-section > .off-section-sub{
  text-align:center;color:var(--off-muted);max-width:38rem;margin:0 auto 2rem;line-height:1.65;
}

.off-card{
  background:var(--off-card);border:1px solid var(--off-border);border-radius:.9rem;
  box-shadow:0 10px 30px -18px rgba(15,42,39,.35);
}

.off-table-wrap{overflow-x:auto;margin:0 auto;max-width:40rem;}
.off-table{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff;border:1px solid var(--off-border);border-radius:.6rem;overflow:hidden;}
.off-table th,.off-table td{padding:.75rem .9rem;text-align:left;border-bottom:1px solid var(--off-border);}
.off-table thead th{background:var(--off-teal);color:#fff;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;}
.off-table tbody tr:last-child td{border-bottom:none;}
.off-table tbody tr:nth-child(even){background:#f4fbfa;}
.off-table td.num, .off-table th.num{text-align:right;font-variant-numeric:tabular-nums;}

.off-compare{width:100%;border-collapse:collapse;font-size:.95rem;}
.off-compare th,.off-compare td{padding:.85rem 1rem;border-bottom:1px solid var(--off-border);text-align:left;}
.off-compare thead th{
  background:var(--off-teal-dark);color:#fff;font-size:1rem;
}
.off-compare tbody tr:nth-child(even){background:#f4fbfa;}
.off-compare td:first-child{font-weight:600;color:var(--off-ink);}
.off-compare .check{color:var(--off-teal-dark);font-weight:800;}
.off-compare .price-row td{font-size:1.4rem;font-weight:800;color:var(--off-coral-dark);background:#fff6f2;}

.off-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:1.1rem;}
.off-step{
  background:#fff;border:1px solid var(--off-border);border-radius:.7rem;padding:1.2rem 1.3rem;
  display:flex;gap:1rem;align-items:flex-start;
}
.off-step__num{
  flex-shrink:0;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--off-teal-tint);
  color:var(--off-teal-dark);font-weight:800;display:flex;align-items:center;justify-content:center;
}
.off-step h3{margin:.1rem 0 .35rem;font-size:1.05rem;color:var(--off-ink);}
.off-step p{margin:0;color:var(--off-muted);line-height:1.6;font-size:.95rem;}

.off-addon-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
.off-addon{
  background:#fff;border:1px solid var(--off-border);border-radius:.7rem;padding:1.1rem 1.2rem;
  display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;
}
.off-addon__price{font-weight:800;color:var(--off-teal-dark);white-space:nowrap;font-size:1.05rem;}
.off-addon h3{margin:0 0 .3rem;font-size:1rem;}
.off-addon p{margin:0;color:var(--off-muted);font-size:.9rem;line-height:1.55;}

.off-perk-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:.75rem;}
.off-perk-item{
  display:flex;gap:.7rem;align-items:flex-start;background:var(--off-teal-tint);border-radius:.5rem;
  padding:.75rem .9rem;font-size:.95rem;line-height:1.5;
}
.off-perk-item::before{content:'\2713';color:var(--off-teal-dark);font-weight:800;flex-shrink:0;}

.off-limits{
  background:#fdf3ef;border:1px solid #f3d9cd;border-radius:.7rem;padding:1.3rem 1.4rem;
}
.off-limits ul{margin:.6rem 0 0;padding-left:1.2rem;}
.off-limits li{margin-bottom:.5rem;line-height:1.6;}

.off-btn{
  font-weight:700;font-size:1rem;padding:.95rem 1.7rem;border-radius:.5rem;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease, transform .15s ease;
}
.off-btn--primary{background:var(--off-coral);color:#fff;}
.off-btn--primary:hover,.off-btn--primary:focus-visible{background:var(--off-coral-dark);transform:translateY(-1px);}
.off-btn--teal{background:var(--off-teal);color:#fff;}
.off-btn--teal:hover,.off-btn--teal:focus-visible{background:var(--off-teal-dark);transform:translateY(-1px);}

.off-form{display:grid;grid-template-columns:1fr;gap:1rem;}
.off-field{display:flex;flex-direction:column;gap:.4rem;}
.off-field label{font-weight:700;font-size:.9rem;}
.off-field input, .off-field textarea{
  font-size:1rem;padding:.75rem .85rem;border:1px solid var(--off-border);border-radius:.5rem;
  min-height:44px;font-family:inherit;background:#fff;color:var(--off-ink);
}
.off-field input:focus, .off-field textarea:focus{border-color:var(--off-teal);}
.off-field--checkbox{flex-direction:row;align-items:flex-start;gap:.6rem;}
.off-field--checkbox input{width:1.2rem;height:1.2rem;min-height:0;flex-shrink:0;margin-top:.2rem;}
.off-field--checkbox label{font-weight:400;font-size:.9rem;}
.off-error{color:#b3261e;font-size:.85rem;min-height:1.1rem;}
.off-form-status{
  border-radius:.5rem;padding:1rem 1.1rem;font-weight:600;display:none;
}
.off-form-status.is-success{display:block;background:var(--off-teal-tint);color:var(--off-teal-dark);}
.off-form-status.is-error{display:block;background:#fdeceb;color:#b3261e;}

.off-badge{
  position:absolute;top:-.9rem;left:50%;transform:translateX(-50%);background:var(--off-coral);color:#fff;
  font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:.35rem .9rem;
  border-radius:999px;white-space:nowrap;
}
.off-compare-wrap{position:relative;padding-top:1rem;overflow-x:auto;}

/* utility used on both families */
.hairline{border:none;border-top:1px solid var(--off-border);}

@media (min-width:480px){
  .pub-figstrip{grid-template-columns:repeat(3,1fr);}
  .off-addon-grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:768px){
  .off-steps{grid-template-columns:repeat(2,1fr);}
  .off-perk-list{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:1024px){
  .off-addon-grid{grid-template-columns:repeat(4,1fr);}
}
