/* =========================================================
   The Clicker Coach Positive Dog Training
   2026 refresh — Bricolage Grotesque + Instrument Sans
   Same class names as before; restyled end to end. Mobile first.
   ========================================================= */

@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700;12..96,800&family=Instrument+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap");

:root{
  /* Palette: deep forest + terracotta + sage + cream */
  --forest:#1E332B;
  --forest-deep:#14231C;
  --forest-soft:#2C4A3D;
  --sage:#5F8C74;
  --sage-light:#E8F0EA;
  --sage-tint:#ECF2EA;
  --terracotta:#C9663A;
  --terracotta-dark:#A9522C;
  --gold:#E3A63C;
  --cream:#FAF7F1;
  --sand:#F1EAE0;
  --ink:#2A322D;
  --muted:#5D6862;
  --white:#ffffff;
  --line:#EBE3D4;

  --shadow-sm:0 2px 10px rgba(20,35,28,.05);
  --shadow-md:0 14px 34px rgba(20,35,28,.12);
  --shadow-lg:0 24px 60px rgba(20,35,28,.22);

  --radius:20px;
  --radius-lg:28px;
  --maxw:1280px;

  --font-head:"Bricolage Grotesque",Georgia,serif;
  --font-body:"Instrument Sans","Segoe UI",system-ui,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  font-size:1.0625rem;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--forest);text-decoration:none}
a:hover{color:var(--terracotta-dark);text-decoration:underline}
:focus-visible{outline:3px solid var(--terracotta);outline-offset:2px}

h1,h2,h3,h4{font-family:var(--font-head);line-height:1.08;color:var(--forest);font-weight:700;margin:0 0 .5em;text-wrap:pretty}
h1{font-size:clamp(2.35rem,6vw,3.9rem);letter-spacing:-1.4px}
h2{font-size:clamp(1.9rem,4.2vw,2.85rem);letter-spacing:-.8px}
h3{font-size:clamp(1.28rem,2.4vw,1.5rem);font-weight:600;letter-spacing:-.2px}
h4{font-weight:600}
p{margin:0 0 1.1em}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.narrow{max-width:860px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-body);font-weight:700;font-size:1rem;
  padding:.92em 1.7em;border-radius:999px;border:2px solid transparent;
  min-height:50px;cursor:pointer;line-height:1;text-align:center;
  transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--terracotta);color:#fff;box-shadow:0 8px 22px rgba(201,102,58,.28)}
.btn-primary:hover{background:var(--terracotta-dark);color:#fff;transform:translateY(-2px)}
.btn-secondary{background:var(--forest);color:#fff}
.btn-secondary:hover{background:var(--forest-soft);color:#fff;transform:translateY(-2px)}
.btn-ghost{background:transparent;border-color:var(--forest);color:var(--forest)}
.btn-ghost:hover{background:var(--forest);color:#fff}
.btn-lg{padding:1.05em 2.1em;font-size:1.08rem;min-height:56px}
.section-forest .btn-ghost{border-color:#FAF7F1;color:#FAF7F1}
.section-forest .btn-ghost:hover{background:#FAF7F1;color:var(--forest)}

/* ---------- Header / Nav ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,247,241,.96);backdrop-filter:blur(10px);border-bottom:1px solid #E6DECF}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 24px;max-width:var(--maxw);margin:0 auto}
.brand{display:flex;align-items:center;gap:.75rem;font-family:var(--font-head);font-weight:700;color:var(--forest);font-size:1.125rem;line-height:1.1}
.brand:hover{text-decoration:none;color:var(--forest)}
.brand img{width:54px;height:54px;object-fit:contain;flex:0 0 auto}
.brand small{display:block;font-family:var(--font-body);font-weight:700;color:var(--terracotta);font-size:.655rem;letter-spacing:.2em;text-transform:uppercase;margin-top:.15em;white-space:nowrap}
@media(max-width:420px){.brand{font-size:1.02rem}.brand small{letter-spacing:.14em;font-size:.6rem}.brand img{width:46px;height:46px}}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nav-links a{font-weight:600;font-size:.905rem;color:#414C45;padding:.62rem .8rem;border-radius:999px;white-space:nowrap;transition:background .15s,color .15s}
.nav-links a:hover,.nav-links a.active{background:var(--sage-light);color:var(--forest);text-decoration:none}
.nav-cta{margin-left:.75rem}
.nav-cta .btn{padding:.78em 1.4em;font-size:.92rem;min-height:44px}
.nav-toggle{display:none;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--forest);border:0;cursor:pointer;padding:0;color:#FAF7F1}
.nav-toggle svg{width:22px;height:22px}

/* tap-to-call button injected on mobile by main.js */
.nav-call{display:none;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--sage-light);color:var(--forest);text-decoration:none;flex:0 0 auto}
.nav-call svg{width:20px;height:20px}
.quickbar svg{width:18px;height:18px;flex:0 0 auto}
.nav-call:hover{background:#DCE8DF;color:var(--forest);text-decoration:none}
.nav-mobile-actions{display:none;align-items:center;gap:10px}

/* dropdown (Classes) */
.has-dd{position:relative}
.dd-toggle{font-family:inherit;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;font-weight:600;font-size:.905rem;color:#414C45;padding:.62rem .8rem;border-radius:999px;transition:background .15s,color .15s}
.dd-toggle:hover,.dd-toggle.active{background:var(--sage-light);color:var(--forest)}
.dd-toggle .caret{font-size:.62rem;transition:transform .2s}
.has-dd:hover .dd-toggle .caret,.has-dd:focus-within .dd-toggle .caret{transform:rotate(180deg)}
.dd-menu{list-style:none;margin:0;padding:.45rem;position:absolute;top:calc(100% + 6px);left:0;min-width:218px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-md);display:none;flex-direction:column;z-index:60}
.has-dd:hover .dd-menu,.has-dd:focus-within .dd-menu{display:flex}
/* the menu sits 6px below the button; without a bridge across that gap the
   pointer leaves :hover on the way down and the menu vanishes mid-reach. */
.dd-menu::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
/* a little grace on the way out, so a slightly off path doesn't close it */
.has-dd::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px;display:none}
.has-dd:hover::after{display:block}
.dd-menu a{padding:.65rem .85rem;border-radius:999px;font-weight:600;font-size:.92rem;color:#414C45;white-space:nowrap}
.dd-menu a:hover,.dd-menu a.active{background:var(--sage-light);color:var(--forest);text-decoration:none}

@media(max-width:1060px){
  .nav-toggle{display:flex}
  .nav-call{display:flex}
  .nav-mobile-actions{display:flex}
  body{padding-bottom:78px}

  .nav-links{
    position:fixed;inset:0;z-index:70;
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    background:var(--cream);padding:88px 24px 32px;gap:0;overflow-y:auto;
    transform:translateX(100%);transition:transform .28s ease;
  }
  .nav-links.open{transform:translateX(0)}
  .nav-links a{font-family:var(--font-head);font-weight:600;font-size:1.4rem;padding:1.05rem .4rem;border-radius:0;border-bottom:1px solid #EDE6D8;color:#414C45}
  .nav-links a:hover,.nav-links a.active{background:transparent;color:var(--forest)}
  .nav-links a{display:block}
  .nav-cta{margin:1.4rem 0 0}
  .nav-cta .btn{width:100%;font-size:1.06rem;min-height:54px}
  .has-dd{width:100%}
  .dd-toggle{width:100%;justify-content:space-between;font-family:var(--font-head);font-size:1.4rem;padding:1.05rem .4rem;border-radius:0;border-bottom:1px solid #EDE6D8}
  .dd-menu{position:static;display:flex;box-shadow:none;border:0;background:transparent;min-width:0;padding:0 0 0 1.1rem}
  .dd-menu::before,.has-dd::after{display:none;content:none}
  .dd-menu a{font-size:1.16rem;padding:.85rem .4rem}
}
/* buttons inside the nav keep their own colours — the .nav-links a rule is
   more specific than .btn-primary and was turning the header CTA dark. */
.nav-links .btn-primary,.nav-links .btn-primary:hover{color:#fff}
.nav-links .btn-ghost{color:var(--forest)}
.nav-links a.btn{border-bottom:0}

body.menu-open{overflow:hidden}
/* .site-header uses backdrop-filter, which makes it the containing block for
   its fixed-position descendants — that pinned the open mobile panel inside
   the 120px header. Drop the blur while the menu is open so the panel can
   fill the viewport; the blur is back the moment it closes. */
body.menu-open .site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--cream)}
/* the closed mobile panel sits off-screen at translateX(100%), which would
   otherwise double the page width and let phones swipe into blank space.
   clip (not hidden) keeps position:sticky working on the header. */
html{overflow-x:clip}
body{overflow-x:clip}
@supports not (overflow:clip){
  @media(max-width:1060px){.nav-links:not(.open){visibility:hidden}}
}

/* close button injected into the mobile panel by main.js */
.menu-close{display:none;position:absolute;top:20px;right:24px;width:46px;height:46px;border-radius:50%;background:var(--sage-light);color:var(--forest);border:0;cursor:pointer;font-size:1.25rem;font-weight:700;place-items:center}
@media(max-width:1060px){.menu-close{display:grid}}

/* sticky mobile call/register bar, injected by main.js */
.quickbar{display:none;position:fixed;left:14px;right:14px;bottom:14px;z-index:60;gap:8px;background:var(--forest-deep);padding:8px;border-radius:999px;box-shadow:0 14px 36px rgba(20,35,28,.35)}
.quickbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;font-weight:700;font-size:.95rem;min-height:48px;border-radius:999px;text-decoration:none}
.quickbar .qb-call{color:#FAF7F1;background:rgba(255,255,255,.08)}
.quickbar .qb-call:hover{color:#fff;text-decoration:none}
.quickbar .qb-reg{background:var(--terracotta);color:#fff}
.quickbar .qb-reg:hover{background:var(--terracotta-dark);color:#fff;text-decoration:none}
@media(max-width:1060px){.quickbar{display:flex}}

/* ---------- Hero ---------- */
.hero{position:relative;background:linear-gradient(165deg,var(--sage-tint) 0%,#F6EEDF 100%);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(2.2rem,5vw,4.5rem);align-items:center;padding:clamp(2.8rem,7vw,6rem) 0}
.hero .eyebrow{display:inline-flex;align-items:center;background:#fff;color:var(--terracotta-dark);font-weight:700;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;padding:.6em 1.1em;border-radius:999px;box-shadow:var(--shadow-sm);margin-bottom:1.25rem}
.hero h1{line-height:1.02}
.hero p.lead{font-size:clamp(1.06rem,2vw,1.25rem);color:#525E56;max-width:44ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}
.hero-img{position:relative;padding-bottom:26px}
.hero-img img{border-radius:32px;box-shadow:var(--shadow-lg);width:100%;object-fit:cover;aspect-ratio:4/3}
.hero-badge{position:absolute;bottom:0;left:18px;background:#fff;border-radius:18px;padding:.9rem 1.25rem;box-shadow:0 12px 32px rgba(20,35,28,.16);display:flex;align-items:center;gap:.75rem;font-weight:700;color:var(--forest);font-size:.9rem;line-height:1.35}
.hero-badge .dot{width:42px;height:42px;border-radius:50%;background:var(--sage-light);display:grid;place-items:center;font-size:1.25rem;flex:0 0 auto}
@media(max-width:840px){.hero-img{order:-1}}

/* ---------- Sections ---------- */
section{padding:clamp(3rem,8vw,6.5rem) 0}
.section-tan{background:var(--sand)}
.section-sage{background:var(--sage-tint)}
.section-forest{background:var(--forest);color:#C9D6CB}
.section-forest h1,.section-forest h2,.section-forest h3,.section-forest h4{color:#fff}
.section-forest a{color:var(--gold)}
.section-head{text-align:center;max-width:720px;margin:0 auto 3rem;display:flex;flex-direction:column;gap:.6rem}
.section-head h2{margin:0}
.section-head .eyebrow{color:var(--terracotta-dark);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.78rem}
.section-head p{color:#525E56;font-size:1.08rem;margin:0}
.section-forest .section-head p{color:#C9D6CB}
.eyebrow{color:var(--terracotta-dark);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.78rem}

/* ---------- Cards / grids ---------- */
.grid{display:grid;gap:1.5rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.9rem;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.card .ico{width:54px;height:54px;border-radius:16px;background:var(--sage-light);display:grid;place-items:center;font-size:1.6rem;margin-bottom:1rem}
.card h3{margin-bottom:.45rem}
.card p{color:var(--muted);margin-bottom:1rem;font-size:.985rem}
.card .card-foot{margin-top:auto}
.card .card-foot .btn{padding:.72em 1.35em;font-size:.93rem;min-height:44px}
.card .price{font-family:var(--font-head);font-weight:600;color:var(--terracotta-dark);font-size:1.35rem}

/* service card with image */
.svc-card{padding:0;overflow:hidden}
.svc-card:hover{text-decoration:none}
.svc-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.svc-card .svc-body{padding:1.65rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.svc-card .svc-body p{flex:1;margin-bottom:.3rem}
.svc-card .btn-ghost{align-self:flex-start;border:0;padding:0;min-height:0;color:var(--terracotta);font-weight:700;font-size:.95rem;background:none}
.svc-card:hover .btn-ghost{background:none;color:var(--terracotta-dark)}

/* ---------- Split feature ---------- */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(2.2rem,5vw,4.5rem);align-items:center}
.split.reverse .split-media{order:2}
.split-media img{border-radius:32px;box-shadow:0 16px 44px rgba(20,35,28,.16);width:100%;aspect-ratio:4/3;object-fit:cover}
@media(max-width:840px){.split.reverse .split-media{order:0}}

/* ---------- Lists ---------- */
.check-list{list-style:none;padding:0;margin:1.1rem 0;display:flex;flex-direction:column;gap:.75rem}
.check-list li{position:relative;padding:0 0 0 2.25rem;color:var(--ink);font-size:1.03rem}
.check-list li::before{content:"";position:absolute;left:0;top:.22em;width:24px;height:24px;border-radius:50%;background:var(--sage)}
.check-list li::after{content:"✓";position:absolute;left:7px;top:.22em;line-height:24px;color:#fff;font-size:.72rem;font-weight:800}
.section-forest .check-list li{color:#E5EDE7}

.pain-list{list-style:none;padding:0;margin:1.1rem 0;display:flex;flex-direction:column;gap:.7rem}
.pain-list li{position:relative;padding:0 0 0 2rem;font-size:1.03rem}
.pain-list li::before{content:"🐾";position:absolute;left:0;top:0;font-size:1rem}

/* ---------- Badges row ---------- */
.trust-row{display:flex;flex-wrap:wrap;gap:1.4rem 3.2rem;justify-content:center;align-items:center;color:var(--muted);font-weight:600}
.trust-row span{display:inline-flex;align-items:baseline;gap:.6rem;font-size:.95rem}
.trust-row .num{font-family:var(--font-head);font-size:2rem;color:var(--terracotta);font-weight:700;line-height:1}
.section-forest .trust-row{color:#C9D6CB}
.section-forest .trust-row .num{color:var(--gold)}

/* ---------- Pricing cards ---------- */
.price-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.price-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.price-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.price-card .pc-body{padding:1.6rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.price-card h3{font-size:1.2rem;margin:0}
.price-card .amt{font-family:var(--font-head);font-size:1.85rem;font-weight:700;color:var(--terracotta-dark);margin:0;flex:1}
.price-card p{color:var(--muted);font-size:.96rem;margin:0}
.price-card .btn{margin-top:.6rem;width:100%}

/* ---------- Info / callout ---------- */
.callout{background:var(--sage-light);border:0;border-radius:18px;padding:1.25rem 1.5rem;margin:1.5rem 0;color:var(--ink)}
.callout strong{color:var(--forest)}
.callout p:last-child{margin-bottom:0}
.note{background:#FFF6EC;border:1px dashed var(--terracotta);border-radius:16px;padding:1.1rem 1.4rem;color:#7A4A26;font-size:.95rem}

/* ---------- FAQ ---------- */
.faq details{background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:.75rem;box-shadow:var(--shadow-sm);overflow:hidden}
.faq summary{cursor:pointer;list-style:none;padding:1.2rem 1.5rem;font-weight:700;font-size:1.05rem;color:var(--forest);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;font-weight:400;color:var(--terracotta);transition:transform .2s;line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq-a{padding:0 1.5rem 1.35rem;color:var(--muted)}

/* ---------- Forms ---------- */
.form-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:clamp(1.5rem,4vw,2.6rem)}
.field{margin-bottom:1.15rem}
.field label{display:block;font-weight:700;color:var(--forest);margin-bottom:.4rem;font-size:.9rem}
.field input,.field textarea,.field select{width:100%;border:1.5px solid #E6DECF;background:var(--cream);border-radius:14px;padding:.9rem 1rem;font-family:inherit;font-size:1rem;color:var(--ink);min-height:50px;transition:border .15s,box-shadow .15s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 4px var(--sage-light)}
.field textarea{min-height:140px;resize:vertical}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.form-note{font-size:.86rem;color:var(--muted);margin-top:.6rem}
.field select{appearance:none;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E332B' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;background-size:1.05rem;padding-right:2.9rem}

/* ---------- Contact strip ---------- */
.contact-lines{list-style:none;padding:0;margin:0}
.contact-lines li{display:flex;gap:.85rem;align-items:center;margin-bottom:.9rem;font-weight:600}
.contact-lines .ci{width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:1.15rem;flex:none}
.section-forest .contact-lines a{color:#fff}
.section-forest .contact-lines a:hover{color:var(--gold)}

/* ---------- Breadcrumb ---------- */
.crumb{font-size:.85rem;color:var(--muted);padding:1.1rem 0 0}
.crumb a{color:var(--sage);font-weight:600}

/* ---------- Page hero (interior) ---------- */
.page-hero{background:var(--forest);color:#fff;padding:clamp(3rem,8vw,5.75rem) 0}
.page-hero h1{color:#fff;margin-bottom:.35em}
.page-hero p{color:#C9D6CB;max-width:60ch;font-size:1.12rem;margin:0}
.page-hero .eyebrow{display:block;color:var(--gold);margin-bottom:.9rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--forest-deep);color:#BFCCC2;padding:4.5rem 0 6rem;font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2.5rem}
.site-footer h4{color:#fff;font-family:var(--font-head);font-size:1.06rem;font-weight:600;margin-bottom:1rem}
.site-footer p{line-height:1.7}
.site-footer a{color:#BFCCC2}
.site-footer a:hover{color:var(--gold);text-decoration:none}
.footer-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}
.footer-brand img{width:56px;height:56px;object-fit:contain;flex:0 0 auto}
.footer-brand strong{color:#fff;font-family:var(--font-head);font-size:1.15rem;font-weight:700;line-height:1.2}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:.6rem;line-height:1.6}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding-top:1.25rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;font-size:.8rem;color:#8FA396}

/* ---------- Utility ---------- */
.center{text-align:center}
.mt-2{margin-top:1.4rem}
.mb-0{margin-bottom:0}
.pill{display:inline-block;background:var(--sage-light);color:var(--forest);font-weight:700;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;padding:.6em 1.1em;border-radius:999px;margin-bottom:.9rem}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.btn:hover,.card:hover,.price-card:hover,.pn:hover{transform:none}}

/* ---------- Class banner (editable at /admin/) ---------- */
.class-banner{background:var(--forest-deep);color:#fff;padding:1.15rem 0;border-bottom:3px solid var(--gold)}
.class-banner .cb-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.8rem}
.class-banner .cb-text{flex:1 1 320px;min-width:0}
.class-banner p{margin:0}
.cb-eyebrow{display:inline-block;background:var(--gold);color:var(--forest-deep);font-weight:700;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;padding:.45em 1em;border-radius:999px;margin-bottom:.6rem}
.cb-headline{font-family:var(--font-head);font-size:clamp(1.2rem,2.6vw,1.6rem);font-weight:700;line-height:1.15;letter-spacing:-.4px;color:#fff}
.cb-when{font-weight:600;margin-top:.3rem !important;font-size:1rem;color:#D8E3DB}
.cb-when .cb-dot{opacity:.55;margin:0 .5em}
.cb-note{color:#A9BBAF;font-size:.92rem;margin-top:.3rem !important}
.class-banner .cb-action{flex:0 0 auto}
@media (max-width:640px){
  .class-banner .cb-inner{flex-direction:column;align-items:flex-start;gap:1rem}
  .class-banner .cb-text{flex:0 0 auto;width:100%}
  .class-banner .cb-action{width:100%}
  .class-banner .cb-action .btn{width:100%}
}

/* ---------- Registration form ---------- */
.steps{display:flex;align-items:center;gap:.9rem;margin:0 0 1.8rem;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--muted);font-size:.93rem}
.step-n{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:var(--line);color:var(--muted);font-size:.88rem;flex:0 0 auto}
.step-on{color:var(--forest)}
.step-on .step-n{background:var(--terracotta);color:#fff}
.step-line{flex:1 1 40px;height:2px;background:var(--line);min-width:30px}

.form-title{margin-bottom:.35rem}
.form-intro{color:var(--muted);margin-bottom:1.8rem}
.form-sec{font-size:1.15rem;margin:2.4rem 0 1.1rem;padding-bottom:.6rem;border-bottom:2px solid var(--line)}
.form-card .field{margin-bottom:1.15rem;border:0;padding:0;min-width:0}
.req{color:var(--terracotta-dark);font-weight:800}
.form-card legend{display:block;font-weight:700;color:var(--forest);margin-bottom:.5rem;font-size:.9rem;padding:0}
.choices{display:flex;flex-direction:column;gap:.6rem}
.choices-inline{flex-direction:row;flex-wrap:wrap;gap:.7rem 1.8rem}
.choice{display:flex;align-items:flex-start;gap:.6rem;font-weight:500;color:var(--ink);cursor:pointer;line-height:1.5;min-height:28px}
.choice input{width:1.2rem;height:1.2rem;margin:.22rem 0 0;accent-color:var(--sage);flex:0 0 auto}
.choice span{min-width:0}
.agreement{max-height:280px;overflow-y:auto;background:var(--cream);border:1.5px solid #E6DECF;border-radius:16px;padding:1.2rem 1.4rem;font-size:.94rem;line-height:1.65;color:var(--ink)}
.agreement p{margin-bottom:.9em}
.agreement:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 4px var(--sage-light)}
.form-card .note{font-size:.88rem;margin:.5rem 0 1.5rem}
.form-actions{margin-top:2.2rem}
.form-actions .btn{width:100%}
@media(min-width:560px){.form-actions .btn{width:auto}}

/* ---------- Blog ---------- */
.post-meta{color:#C9D6CB;font-weight:600;font-size:.92rem;margin:0}
.post-body{font-size:1.09rem;line-height:1.85;max-width:68ch}
.post-body p{margin:0 0 1.35em}
.post-body > p:first-child::first-letter{font-family:var(--font-head);font-size:3.4rem;line-height:.84;float:left;margin:.06em .12em 0 0;color:var(--terracotta);font-weight:700}
.post-quote{margin:1.8em 0;padding:1.3rem 1.6rem;border:0;background:var(--sage-light);border-radius:20px}
.post-quote p{margin:0 0 .45em;font-weight:600;color:var(--forest);line-height:1.5}
.post-quote p:last-child{margin-bottom:0}

.post-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:3.2rem 0 1.5rem;padding-top:2.2rem;border-top:1px solid var(--line)}
.pn{display:flex;flex-direction:column;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}
.pn:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);text-decoration:none}
.pn span{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terracotta-dark)}
.pn strong{font-family:var(--font-head);font-weight:600;color:var(--forest);line-height:1.25}
.pn-next{text-align:right}
.pn-prev:only-child{grid-column:1}
@media(max-width:620px){.pn-next{text-align:left}}
.post-back{margin:0}
