/* =========================================================
   Site overrides on top of Bulma 1.0.2
   Two visual families:
   - .theme-pub   -> "Clear Bulletin" editorial/advertorial skin
   - .theme-offer -> "calenda" premium minimal offer skin
   Shared: disclaimer, footer, cookie banner, base type
   ========================================================= */

:root{
  --ink:#1c2b2a;
  --pub-bg:#f3f1ea;
  --pub-masthead:#0f3b3e;
  --pub-masthead-ink:#f2efe6;
  --pub-accent:#1f8a70;
  --pub-accent-dark:#136354;
  --pub-card-bg:#ffffff;
  --pub-border:#dcd6c8;
  --pub-text:#242321;
  --pub-muted:#5c5a52;

  --offer-bg:#efe9df;
  --offer-bg-alt:#f7f4ed;
  --offer-ink:#19180f;
  --offer-accent:#c1502c;
  --offer-accent-ink:#fff6ee;
  --offer-dark:#161510;
  --offer-border:#e1d9c8;
  --offer-muted:#6b6558;

  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:28px;
  --shadow-1: 0 8px 24px rgba(20,20,15,.08);
  --shadow-2: 0 18px 44px rgba(20,20,15,.14);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--ink);
  background:#fff;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img, video{ max-width:100%; height:auto; display:block; }
a{ text-decoration:none; }
button{ font-family:inherit; }
.wrap{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 18px;
}
@media (min-width:768px){ .wrap{ padding:0 32px; } }

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

.skip-link{
  position:absolute; left:-999px; top:0; background:#111; color:#fff;
  padding:10px 16px; z-index:200; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

/* -----------------------------------------------------------
   Cookie banner (shared, neutral)
   ----------------------------------------------------------- */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:500;
  background:#141311; color:#f4f0e8;
  padding:16px 18px;
  box-shadow:0 -8px 30px rgba(0,0,0,.25);
}
.cookie-banner__wrap{
  max-width:1180px; margin:0 auto;
  display:flex; flex-direction:column; gap:12px;
}
.cookie-banner p{ margin:0; font-size:.92rem; line-height:1.5; }
.cookie-banner a{ color:#f4c9a8; text-decoration:underline; }
.cookie-banner__actions{ display:flex; gap:10px; flex-wrap:wrap; }
.cookie-banner__actions .btn{ flex:1 1 auto; min-width:120px; text-align:center; }
@media (min-width:768px){
  .cookie-banner__wrap{ flex-direction:row; align-items:center; justify-content:space-between; }
  .cookie-banner p{ max-width:70%; }
  .cookie-banner__actions .btn{ flex:none; }
}

/* -----------------------------------------------------------
   Buttons (base, themed variants)
   ----------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; min-height:48px; padding:12px 26px;
  border-radius:999px; font-weight:600; font-size:.98rem;
  border:2px solid transparent; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  line-height:1.2;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn-pub-primary{ background:var(--pub-accent); color:#fff; box-shadow:var(--shadow-1); }
.btn-pub-primary:hover{ background:var(--pub-accent-dark); color:#fff; }
.btn-pub-ghost{ background:transparent; color:var(--pub-masthead); border-color:var(--pub-masthead); }
.btn-pub-ghost:hover{ background:var(--pub-masthead); color:#fff; }

.btn-offer-primary{ background:var(--offer-dark); color:#fdfaf3; box-shadow:var(--shadow-1); }
.btn-offer-primary:hover{ background:#000; color:#fff; }
.btn-offer-outline{ background:transparent; color:var(--offer-dark); border-color:var(--offer-dark); }
.btn-offer-outline:hover{ background:var(--offer-dark); color:#fdfaf3; }
.btn-offer-accent{ background:var(--offer-accent); color:#fff6ee; }
.btn-offer-accent:hover{ background:#9c3f22; color:#fff; }
.btn-block{ width:100%; }

/* =========================================================
   THEME: PUBLICATION (advertorial + about)
   ========================================================= */
.theme-pub{ background:var(--pub-bg); color:var(--pub-text); }
.theme-pub .h-serif{ font-family:'Lora', Georgia, serif; }

.pub-masthead{
  background:var(--pub-masthead); color:var(--pub-masthead-ink);
  padding:14px 0;
}
.pub-masthead__row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.pub-masthead__logo{
  font-family:'Lora', serif; font-weight:700; font-size:1.15rem; color:#fff; letter-spacing:.01em;
}
.pub-masthead__logo span{ font-style:italic; font-weight:400; opacity:.85; font-size:.85em; }
.pub-masthead__tag{
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  color:#f2c9a8; border:1px solid rgba(242,201,168,.5); border-radius:999px;
  padding:5px 12px; white-space:nowrap;
}

.pub-navtoggle{
  background:transparent; border:1px solid rgba(255,255,255,.4); color:#fff;
  border-radius:8px; padding:8px 12px; font-size:.85rem; min-height:44px;
}
.pub-nav{
  display:none; background:#0c2f31; border-top:1px solid rgba(255,255,255,.12);
}
.pub-nav.is-open{ display:block; }
.pub-nav__wrap{ display:flex; flex-direction:column; padding:10px 0; }
.pub-nav a{
  color:#eae6da; padding:12px 4px; font-size:.92rem; border-bottom:1px solid rgba(255,255,255,.08);
  min-height:44px; display:flex; align-items:center;
}
.pub-nav a:hover{ color:#f2c9a8; }
@media (min-width:768px){
  .pub-navtoggle{ display:none; }
  .pub-nav{ display:block; background:transparent; border-top:none; }
  .pub-nav__wrap{ flex-direction:row; gap:22px; padding:0; }
  .pub-nav a{ border-bottom:none; padding:0; min-height:auto; }
}

.pub-breadcrumb{
  background:#eae5d8; border-bottom:1px solid var(--pub-border);
  padding:12px 0; font-size:.85rem; color:var(--pub-muted);
}
.pub-breadcrumb a{ color:var(--pub-muted); }
.pub-breadcrumb a:hover{ color:var(--pub-accent-dark); }
.pub-breadcrumb__mark{
  display:inline-block; width:9px; height:9px; background:var(--pub-accent); margin-right:8px; border-radius:2px;
}

.pub-article-head{ padding:26px 0 18px; }
.pub-h1{
  font-family:'Lora', Georgia, serif; font-weight:700;
  font-size:clamp(1.7rem, 5.4vw, 2.7rem); line-height:1.18; margin:0 0 16px;
  color:#16211f;
}
.pub-standfirst{ font-size:clamp(1.05rem,2.6vw,1.2rem); line-height:1.55; color:#3a4341; margin:0 0 20px; max-width:64ch; }

.pub-byline{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px;
  border-top:1px solid var(--pub-border); border-bottom:1px solid var(--pub-border);
  padding:14px 0; margin-bottom:24px;
}
.pub-byline__meta{ font-size:.85rem; color:var(--pub-muted); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pub-byline__author strong{ display:block; color:var(--pub-text); font-size:.92rem; }
.pub-byline__author span{ font-size:.8rem; color:var(--pub-muted); }
.pub-share{ display:flex; gap:8px; }
.pub-share__btn{
  width:36px; height:36px; border-radius:50%; background:#fff; border:1px solid var(--pub-border);
  display:flex; align-items:center; justify-content:center; font-size:1rem;
}
.pub-share__btn:hover{ border-color:var(--pub-accent); }

.pub-hero-media{
  border-radius:var(--radius-sm); overflow:hidden; box-shadow:var(--shadow-1); margin-bottom:8px;
  aspect-ratio:16/10;
}
.pub-hero-media img{ width:100%; height:100%; object-fit:cover; }
.pub-caption{ font-size:.8rem; color:var(--pub-muted); margin:8px 0 0; font-style:italic; }

.pub-layout{ padding:30px 0 10px; }
.pub-layout__grid{ display:flex; flex-direction:column; gap:34px; }
@media (min-width:1024px){
  .pub-layout__grid{ flex-direction:row; align-items:flex-start; gap:44px; }
  .pub-layout__main{ flex:1 1 0; min-width:0; }
  .pub-layout__side{ flex:0 0 300px; }
}

.pub-body p{ font-size:1.02rem; line-height:1.75; margin:0 0 20px; color:var(--pub-text); }
.pub-body h2{
  font-family:'Lora', serif; font-size:clamp(1.3rem,3.4vw,1.7rem); font-weight:700;
  margin:36px 0 16px; color:#16211f; line-height:1.28;
}
.pub-body h3{ font-family:'Lora', serif; font-size:1.2rem; font-weight:700; margin:26px 0 12px; }
.pub-kicker{
  display:inline-block; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--pub-accent-dark); background:#e2f1ea; border-radius:999px; padding:6px 14px; margin-bottom:10px;
}

.pub-methodology{
  background:#fff; border:1px solid var(--pub-border); border-left:5px solid var(--pub-accent);
  border-radius:var(--radius-sm); padding:20px 22px; margin:26px 0; box-shadow:var(--shadow-1);
}
.pub-methodology h3{ margin-top:0; }
.pub-methodology ul{ margin:0; padding-left:1.15em; }
.pub-methodology li{ margin-bottom:8px; line-height:1.55; }

.pub-entry{
  display:flex; gap:16px; margin:0 0 22px; padding-bottom:22px; border-bottom:1px dashed var(--pub-border);
}
.pub-entry:last-child{ border-bottom:none; }
.pub-entry__date{
  flex:0 0 auto; width:74px; text-align:center; font-family:'Lora', serif; font-weight:700;
  color:#fff; background:var(--pub-masthead); border-radius:var(--radius-sm); padding:10px 6px; font-size:.78rem; line-height:1.3;
}
.pub-entry__body p{ margin:0; }
.pub-entry__body h4{ margin:0 0 6px; font-family:'Lora', serif; font-size:1.02rem; }

.pub-scorebars{ margin:26px 0; display:flex; flex-direction:column; gap:16px; }
.pub-scorebar__label{ display:flex; justify-content:space-between; font-size:.9rem; margin-bottom:6px; font-weight:600; }
.pub-scorebar__track{ background:#e4e0d3; border-radius:999px; height:10px; overflow:hidden; }
.pub-scorebar__fill{ background:linear-gradient(90deg, var(--pub-accent), var(--pub-accent-dark)); height:100%; border-radius:999px; }

.pub-inline-media{
  border-radius:var(--radius-sm); overflow:hidden; margin:26px 0; box-shadow:var(--shadow-1); aspect-ratio:16/10;
}
.pub-inline-media img, .pub-inline-media video{ width:100%; height:100%; object-fit:cover; }

.pub-list{ margin:20px 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
.pub-list li{
  background:#fff; border:1px solid var(--pub-border); border-radius:var(--radius-sm);
  padding:14px 16px; display:flex; gap:12px; align-items:flex-start; font-size:.96rem; line-height:1.5;
}
.pub-list li::before{ content:"✓"; color:var(--pub-accent-dark); font-weight:700; flex:0 0 auto; }

.pub-rates{
  width:100%; border-collapse:collapse; margin:22px 0; background:#fff;
  border:1px solid var(--pub-border); border-radius:var(--radius-sm); overflow:hidden;
}
.pub-rates caption{ text-align:left; font-size:.85rem; color:var(--pub-muted); padding:10px 14px 0; }
.pub-rates th, .pub-rates td{ padding:12px 14px; text-align:left; font-size:.92rem; border-bottom:1px solid var(--pub-border); }
.pub-rates thead th{ background:var(--pub-masthead); color:#fff; font-weight:600; }
.pub-rates tbody tr:last-child td{ border-bottom:none; }
.pub-rates tbody tr:nth-child(even){ background:#f7f5ec; }
.pub-rates td:last-child, .pub-rates th:last-child{ text-align:right; font-weight:600; }

.pub-rates-wrap{ overflow-x:auto; }

.pub-verdict{
  background:#0f3b3e; color:#f2efe6; border-radius:var(--radius-md); padding:28px 24px; margin:32px 0 8px;
  box-shadow:var(--shadow-2);
}
.pub-verdict h3{ font-family:'Lora', serif; color:#fff; font-size:1.4rem; margin:0 0 10px; }
.pub-verdict p{ color:#d9e4e0; margin:0 0 18px; line-height:1.6; }
.pub-verdict .btn{ background:#f2c9a8; color:#20302c; }
.pub-verdict .btn:hover{ background:#eeb583; }

.pub-side-card{
  background:#fff; border:1px solid var(--pub-border); border-radius:var(--radius-sm);
  padding:18px; margin-bottom:22px; box-shadow:var(--shadow-1);
}
.pub-side-card p{ font-size:.92rem; line-height:1.55; margin:0 0 12px; color:var(--pub-text); }
.pub-side-card h4{ font-family:'Lora', serif; font-size:1rem; margin:0 0 10px; color:#16211f; }
.pub-side-panel{
  border-radius:var(--radius-sm); overflow:hidden; margin-bottom:14px; aspect-ratio:4/3;
}
.pub-side-panel img{ width:100%; height:100%; object-fit:cover; }
.pub-side-cta{
  background:var(--pub-accent); color:#fff; border-radius:var(--radius-sm); padding:18px; text-align:center;
  margin-bottom:22px;
}
.pub-side-cta p{ color:#e7f5ee; }
.pub-side-cta .btn{ background:#fff; color:var(--pub-accent-dark); width:100%; }
.pub-side-cta .btn:hover{ background:#f0f0f0; }

.pub-drawn-panel{
  border-radius:var(--radius-sm); background:linear-gradient(135deg,#e2f1ea,#cfe8dd);
  border:1px solid #bfe0d1; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:18px; margin-bottom:14px;
}
.pub-drawn-panel span{ font-family:'Lora', serif; font-weight:700; color:var(--pub-accent-dark); font-size:1.5rem; }

/* about page (publication family, simpler) */
.pub-about-hero{ padding:34px 0 10px; }
.pub-about-body{ padding:10px 0 30px; }
.pub-about-body p{ font-size:1.02rem; line-height:1.75; margin:0 0 18px; max-width:70ch; }
.pub-about-grid{ display:grid; grid-template-columns:1fr; gap:16px; margin:22px 0; }
@media (min-width:768px){ .pub-about-grid{ grid-template-columns:repeat(3,1fr); } }
.pub-about-card{
  background:#fff; border:1px solid var(--pub-border); border-radius:var(--radius-sm); padding:18px; box-shadow:var(--shadow-1);
}
.pub-about-card h3{ font-family:'Lora', serif; font-size:1.05rem; margin:0 0 8px; }
.pub-about-card p{ font-size:.92rem; margin:0; }

/* =========================================================
   THEME: OFFER (academy + legal/contact pages)
   ========================================================= */
.theme-offer{ background:var(--offer-bg-alt); color:var(--offer-ink); }
.theme-offer .h-serif{ font-family:'Fraunces', Georgia, serif; }

.offer-topbar{
  background:#141210; color:#f4ecdd; text-align:center; font-size:.82rem; padding:9px 14px;
}
.offer-topbar strong{ color:#f2c299; }

.offer-nav{ background:var(--offer-bg-alt); border-bottom:1px solid var(--offer-border); padding:16px 0; }
.offer-nav__row{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
.offer-logo{ font-family:'Fraunces', serif; font-weight:600; font-size:1.35rem; color:var(--offer-ink); }
.offer-logo em{ font-style:italic; color:var(--offer-accent); }
.offer-nav__toggle{
  background:transparent; border:1px solid var(--offer-border); border-radius:8px; padding:8px 12px;
  min-height:44px; font-size:.85rem; color:var(--offer-ink);
}
.offer-nav__links{ display:none; width:100%; }
.offer-nav__links.is-open{ display:block; }
.offer-nav__links ul{ list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:2px; }
.offer-nav__links a{
  color:var(--offer-ink); padding:12px 6px; font-size:.96rem; border-bottom:1px solid var(--offer-border);
  min-height:44px; display:flex; align-items:center;
}
.offer-nav__cta{ margin-top:12px; }
@media (min-width:1024px){
  .offer-nav__toggle{ display:none; }
  .offer-nav__links{ display:flex !important; width:auto; align-items:center; gap:26px; }
  .offer-nav__links ul{ flex-direction:row; gap:22px; margin:0; }
  .offer-nav__links a{ border-bottom:none; padding:0; min-height:auto; font-size:.94rem; }
  .offer-nav__cta{ margin-top:0; }
}

.offer-hero{ background:var(--offer-bg); padding:44px 0 54px; }
.offer-hero__grid{ display:flex; flex-direction:column; gap:30px; }
@media (min-width:1024px){ .offer-hero__grid{ flex-direction:row; align-items:center; gap:52px; } }
.offer-hero__copy{ flex:1 1 0; }
.offer-hero__media{ flex:1 1 0; }
.offer-kicker{
  display:inline-block; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:#8a5232; background:#f2e3d0; border-radius:999px; padding:6px 14px; margin-bottom:16px;
}
.offer-h1{
  font-family:'Fraunces', Georgia, serif; font-weight:600; line-height:1.08;
  font-size:clamp(2rem, 6.4vw, 3.6rem); margin:0 0 8px; color:var(--offer-ink);
}
.offer-h1 em{ font-style:italic; color:var(--offer-accent); font-weight:500; }
.offer-subhead{ font-size:clamp(1rem,2.4vw,1.15rem); line-height:1.6; color:#3a3629; max-width:52ch; margin:16px 0 26px; }
.offer-hero__actions{ display:flex; flex-wrap:wrap; gap:12px; }
.offer-media-frame{
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-2); aspect-ratio:4/3;
}
.offer-media-frame img, .offer-media-frame video{ width:100%; height:100%; object-fit:cover; }

.offer-stats{ background:var(--offer-bg-alt); padding:26px 0; border-bottom:1px solid var(--offer-border); }
.offer-stats__row{ display:flex; flex-direction:column; gap:18px; text-align:center; }
@media (min-width:768px){ .offer-stats__row{ flex-direction:row; justify-content:space-between; text-align:left; } }
.offer-stats__item{ flex:1 1 0; font-size:.92rem; color:var(--offer-muted); line-height:1.5; }
.offer-stats__item strong{ display:block; font-family:'Fraunces', serif; font-size:1.3rem; color:var(--offer-ink); margin-bottom:4px; }

.offer-section{ padding:56px 0; }
.offer-section--alt{ background:var(--offer-bg); }
.offer-section-head{ text-align:center; max-width:640px; margin:0 auto 40px; }
.offer-section-head h2{
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.5rem,4vw,2.2rem); margin:0 0 14px; color:var(--offer-ink);
}
.offer-section-head p{ color:var(--offer-muted); font-size:1rem; line-height:1.6; }
.offer-section-head.is-left{ text-align:left; margin:0 0 34px; }

.offer-panel{
  display:flex; flex-direction:column; gap:0; border-radius:var(--radius-lg); overflow:hidden;
  background:var(--offer-bg-alt); box-shadow:var(--shadow-1); margin-bottom:30px; border:1px solid var(--offer-border);
}
.offer-panel__media{ aspect-ratio:16/10; }
.offer-panel__media img{ width:100%; height:100%; object-fit:cover; }
.offer-panel__copy{ padding:26px 24px 30px; }
.offer-panel__copy h3{ font-family:'Fraunces', serif; font-size:1.4rem; margin:0 0 12px; }
.offer-panel__copy p{ font-size:.98rem; line-height:1.6; color:#3a3629; margin:0 0 16px; }
.offer-panel__list{ list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:8px; }
.offer-panel__list li{ font-size:.92rem; padding-left:24px; position:relative; }
.offer-panel__list li::before{ content:"→"; position:absolute; left:0; color:var(--offer-accent); }
@media (min-width:768px){
  .offer-panel{ flex-direction:row; }
  .offer-panel--reverse{ flex-direction:row-reverse; }
  .offer-panel__media{ flex:0 0 46%; aspect-ratio:auto; }
  .offer-panel__copy{ flex:1 1 0; display:flex; flex-direction:column; justify-content:center; padding:36px; }
}

.offer-steps{ display:grid; grid-template-columns:1fr; gap:18px; }
@media (min-width:768px){ .offer-steps{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .offer-steps{ grid-template-columns:repeat(4,1fr); } }
.offer-step{
  background:var(--offer-bg-alt); border:1px solid var(--offer-border); border-radius:var(--radius-md);
  padding:22px 20px; box-shadow:var(--shadow-1);
}
.offer-step__num{
  width:36px; height:36px; border-radius:50%; background:var(--offer-dark); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:'Fraunces', serif; font-weight:600;
  margin-bottom:14px; font-size:1rem;
}
.offer-step h3{ font-size:1.02rem; margin:0 0 8px; font-family:'Fraunces', serif; }
.offer-step p{ font-size:.88rem; color:var(--offer-muted); line-height:1.5; margin:0; }

.offer-checklist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.offer-checklist li{
  display:flex; justify-content:space-between; gap:14px; align-items:baseline;
  background:var(--offer-bg-alt); border:1px solid var(--offer-border); border-radius:var(--radius-sm);
  padding:14px 18px; font-size:.96rem;
}
.offer-checklist li::before{ content:"✓ "; color:var(--offer-accent); font-weight:700; }
.offer-checklist .fee{ font-weight:700; color:var(--offer-ink); white-space:nowrap; }
.offer-checklist-note{ font-size:.82rem; color:var(--offer-muted); margin-top:14px; }

.offer-why{ display:grid; grid-template-columns:1fr; gap:26px; text-align:center; }
@media (min-width:768px){ .offer-why{ grid-template-columns:repeat(3,1fr); } }
.offer-why__icon{
  width:52px; height:52px; border-radius:50%; background:var(--offer-bg); margin:0 auto 16px;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; border:1px solid var(--offer-border);
}
.offer-why h3{ font-family:'Fraunces', serif; font-size:1.1rem; margin:0 0 8px; }
.offer-why p{ font-size:.9rem; color:var(--offer-muted); line-height:1.55; margin:0; }

.offer-pricing{ display:flex; flex-direction:column; gap:24px; }
.offer-pkg{
  border-radius:var(--radius-lg); border:1px solid var(--offer-border); background:var(--offer-bg-alt);
  padding:28px 24px; box-shadow:var(--shadow-1); position:relative;
}
.offer-pkg--highlight{
  background:var(--offer-dark); color:#f4ecdd; border-color:var(--offer-dark); box-shadow:var(--shadow-2);
}
.offer-pkg--highlight .offer-pkg__hours,
.offer-pkg--highlight .offer-pkg__name{ color:#f4ecdd; }
.offer-pkg--highlight .offer-pkg__list li{ color:#e7ddc9; }
.offer-pkg--highlight .offer-pkg__list li::before{ color:var(--offer-accent); }
.offer-pkg__badge{
  position:absolute; top:-14px; left:24px; background:var(--offer-accent); color:#fff;
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; padding:6px 14px; border-radius:999px;
}
.offer-pkg__head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:6px; }
.offer-pkg__name{ font-family:'Fraunces', serif; font-size:1.5rem; margin:0; color:var(--offer-ink); }
.offer-pkg__price{ font-family:'Fraunces', serif; font-size:1.7rem; font-weight:600; white-space:nowrap; }
.offer-pkg__hours{ font-size:.85rem; color:var(--offer-muted); margin:0 0 18px; }
.offer-pkg__list{ list-style:none; margin:0 0 22px; padding:0; display:flex; flex-direction:column; gap:9px; }
.offer-pkg__list li{ font-size:.94rem; padding-left:22px; position:relative; color:#33301f; }
.offer-pkg__list li::before{ content:"✓"; position:absolute; left:0; color:var(--offer-accent); font-weight:700; }

.offer-addons{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:768px){ .offer-addons{ grid-template-columns:repeat(3,1fr); } }
.offer-addon{
  background:var(--offer-bg-alt); border:1px solid var(--offer-border); border-radius:var(--radius-md);
  padding:20px; display:flex; flex-direction:column; gap:8px;
}
.offer-addon__head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.offer-addon__head h3{ font-family:'Fraunces', serif; font-size:1.05rem; margin:0; }
.offer-addon__price{ font-weight:700; white-space:nowrap; }
.offer-addon p{ font-size:.88rem; color:var(--offer-muted); margin:0; line-height:1.5; }

.offer-perks{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.offer-perks li{
  display:flex; gap:12px; align-items:flex-start; background:var(--offer-bg-alt);
  border:1px solid var(--offer-border); border-radius:var(--radius-sm); padding:14px 16px; font-size:.95rem;
}
.offer-perks li::before{ content:"★"; color:var(--offer-accent); flex:0 0 auto; }

.offer-limits{
  background:#f2e3d0; border:1px solid #e3cba7; border-radius:var(--radius-md); padding:26px 24px;
}
.offer-limits ul{ margin:0; padding-left:1.2em; }
.offer-limits li{ margin-bottom:10px; line-height:1.55; font-size:.95rem; }

.offer-form-section{ background:var(--offer-dark); color:#f4ecdd; padding:56px 0; }
.offer-form-section .offer-section-head h2{ color:#f4ecdd; }
.offer-form-section .offer-section-head p{ color:#c9c2b0; }
.offer-form{
  background:#fdfaf3; color:var(--offer-ink); border-radius:var(--radius-lg); padding:28px 22px;
  max-width:640px; margin:0 auto; box-shadow:var(--shadow-2);
}
.offer-field{ margin-bottom:18px; }
.offer-field label{ display:block; font-size:.88rem; font-weight:600; margin-bottom:6px; }
.offer-field input, .offer-field textarea, .offer-field select{
  width:100%; font-size:1rem; padding:12px 14px; border-radius:10px; border:1px solid var(--offer-border);
  background:#fff; font-family:inherit; min-height:48px;
}
.offer-field textarea{ min-height:110px; resize:vertical; }
.offer-field input:focus, .offer-field textarea:focus, .offer-field select:focus{ border-color:var(--offer-accent); }
.offer-field-check{ display:flex; gap:12px; align-items:flex-start; font-size:.86rem; margin-bottom:20px; min-height:44px; padding:6px 0; }
.offer-field-check input{ margin-top:4px; width:22px; height:22px; flex:0 0 auto; }
.offer-honeypot{ position:absolute; left:-9999px; opacity:0; height:0; width:0; overflow:hidden; }
.offer-form__error{ color:#b23a2f; font-size:.82rem; margin-top:6px; display:none; }
.offer-form__error.is-visible{ display:block; }
.offer-form__success{
  display:none; background:#e5f0e3; border:1px solid #b8d6b0; color:#2c4a24; border-radius:10px;
  padding:16px; font-size:.92rem; margin-top:18px;
}
.offer-form__success.is-visible{ display:block; }

/* legal pages */
.legal-hero{ padding:44px 0 10px; background:var(--offer-bg); }
.legal-hero h1{ font-family:'Fraunces', serif; font-size:clamp(1.8rem,5vw,2.6rem); margin:0 0 12px; }
.legal-hero p{ color:var(--offer-muted); font-size:1rem; }
.legal-body{ padding:34px 0 46px; }
.legal-body h2{ font-family:'Fraunces', serif; font-size:1.3rem; margin:30px 0 12px; }
.legal-body p, .legal-body li{ font-size:.98rem; line-height:1.7; color:#302d21; }
.legal-body ul{ padding-left:1.2em; margin:0 0 18px; }
.legal-body p{ margin:0 0 16px; }
.legal-contact-list{ list-style:none; padding:0; margin:18px 0; display:flex; flex-direction:column; gap:6px; }
.legal-contact-list li{ font-size:.95rem; }

/* -----------------------------------------------------------
   Shared: disclaimer + footer
   ----------------------------------------------------------- */
.site-disclaimer{
  display:block; max-width:1180px; margin:0 auto; padding:22px 18px;
  font-size:.86rem; line-height:1.6; color:#4b463a;
}
.theme-pub .site-disclaimer{ background:#eae5d8; border-top:1px solid var(--pub-border); color:#443f36; }
.theme-offer .site-disclaimer{ background:var(--offer-bg); border-top:1px solid var(--offer-border); color:#443f36; }
.site-disclaimer a{ text-decoration:underline; font-weight:600; }
.theme-pub .site-disclaimer a{ color:var(--pub-accent-dark); }
.theme-offer .site-disclaimer a{ color:var(--offer-accent); }

.site-footer{ padding:34px 0 calc(34px + env(safe-area-inset-bottom, 0px)); font-size:.86rem; }
.theme-pub .site-footer{ background:#0f3b3e; color:#d8e4e0; }
.theme-offer .site-footer{ background:var(--offer-dark); color:#d8d2c2; }
.site-footer__company{ line-height:1.7; margin-bottom:20px; }
.site-footer__company strong{ color:#fff; }
.site-footer__links{ display:flex; flex-direction:column; gap:10px; }
.site-footer__links a{ color:inherit; opacity:.88; min-height:24px; display:inline-block; }
.site-footer__links a:hover{ opacity:1; text-decoration:underline; }
@media (min-width:600px){
  .site-footer__links{ flex-direction:row; flex-wrap:wrap; gap:20px; }
}

/* utility */
.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;
}
.mt-0{ margin-top:0; }
