/*
Theme Name: Kahill Digital Marketing School
Theme URI: https://kahillinsights.com
Author: Kahill Insights
Author URI: https://kahillinsights.com
Description: A conversion-focused, fully dynamic one-page theme for Kahill Digital Marketing School. Courses, trainers, testimonials and curriculum modules are managed from the admin; contact details, hero copy, stats, payment methods and the colour palette are editable in the Customizer. Pixel-faithful to the original design.
Version: 1.6.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kahill
Tags: education, one-page, custom-colors, custom-menu, featured-images, translation-ready
*/

:root{
  --ink:#16241b;
  --ink-soft:#3e4f43;
  --green:#2f8a43;
  --green-deep:#1d5e30;
  --green-dark:#143f23;
  --orange:#e8821e;
  --orange-bright:#f5951f;
  --paper:#ffffff;
  --mint:#f3f7f2;
  --mint-2:#e9f1e8;
  --line:#dde6dc;
  --shadow:0 18px 40px -22px rgba(20,63,35,.35);
  --radius:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.display{font-family:'Manrope','Inter',sans-serif;line-height:1.1;letter-spacing:-.02em;font-weight:700}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(1140px,92vw);margin-inline:auto}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:.5rem}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--orange);display:inline-block}

/* ---- chevron signature ---- */
.chev{display:inline-block;width:0;height:0;border-top:.45em solid transparent;border-bottom:.45em solid transparent;border-left:.55em solid var(--orange);vertical-align:middle;margin-left:.1em}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.98rem;padding:.85rem 1.4rem;border-radius:999px;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;border:1.5px solid transparent;cursor:pointer}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 10px 22px -10px rgba(232,130,30,.7)}
.btn-primary:hover{transform:translateY(-2px);background:var(--orange-bright)}
.btn-green{background:var(--green-deep);color:#fff}
.btn-green:hover{transform:translateY(-2px);background:var(--green)}
.btn-ghost{border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--green);color:var(--green-deep)}
.btn:focus-visible{outline:3px solid var(--orange);outline-offset:2px}

/* ---- nav ---- */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(1rem,2.2vw,2.5rem);padding:.72rem 0}
.brand{display:flex;align-items:center;gap:.75rem;font-family:'Manrope','Inter',sans-serif;font-weight:800;font-size:1.18rem;letter-spacing:-.025em;color:var(--green-deep)}
.brand .mark{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,var(--green),var(--green-deep));display:grid;place-items:center;color:#fff;font-size:1.25rem;flex:none;position:relative;box-shadow:0 8px 18px -10px rgba(20,63,35,.8)}
.brand .mark::after{content:"";position:absolute;right:-5px;top:-5px;width:15px;height:15px;border-radius:50%;background:var(--orange);border:3px solid #fff}
.brand small{display:block;font-family:'Inter';font-weight:600;font-size:.65rem;letter-spacing:.055em;color:var(--ink-soft);text-transform:uppercase}
.brand.has-custom-logo{display:block;line-height:0;padding:.22rem .45rem;border-left:4px solid var(--orange);border-radius:8px;background:#fff;box-shadow:0 5px 16px -12px rgba(20,63,35,.9)}
.brand .custom-logo{display:block;width:auto;height:auto;max-width:285px;max-height:50px;object-fit:contain;filter:contrast(1.08) saturate(1.08)}
nav.links{display:flex;align-items:center;justify-content:center;gap:clamp(.8rem,1.5vw,1.6rem);min-width:0}
nav.links a{font-size:.88rem;font-weight:600;color:var(--ink-soft);white-space:nowrap}
nav.links a:hover{color:var(--green-deep)}
.nav-cta{display:flex;gap:.55rem;align-items:center;justify-content:flex-end;white-space:nowrap}
.nav-cta .btn{min-height:42px;padding:.65rem 1.15rem;justify-content:center}
.nav-account{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.6rem .85rem;border:1px solid var(--line);border-radius:999px;font-size:.88rem;font-weight:700;color:var(--green-deep);transition:border-color .2s ease,color .2s ease,background .2s ease}
.nav-account:hover{border-color:var(--green);background:var(--mint);color:var(--green-deep)}
.menu-btn{display:none;width:42px;height:42px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--green-deep);cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;box-shadow:0 5px 14px -12px rgba(20,63,35,.8)}
.menu-btn span{display:block;width:19px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
.nav-open .menu-btn span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-open .menu-btn span:nth-child(2){opacity:0}
.nav-open .menu-btn span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu-btn:hover{border-color:var(--green);background:var(--mint)}
.menu-btn:focus-visible,.nav-account:focus-visible{outline:3px solid rgba(232,130,30,.35);outline-offset:2px}

/* ---- hero ---- */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(120% 90% at 92% 0%, var(--mint-2) 0%, transparent 55%),
  linear-gradient(180deg,#fff 0%, var(--mint) 100%)}
.hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:4.5rem 0 4rem}
.hero h1{font-size:clamp(2.3rem,5.2vw,3.75rem);font-weight:800}
.hero h1 em{font-style:normal;color:var(--green-deep);position:relative}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.18em;background:var(--orange);opacity:.35;border-radius:3px;z-index:-1}
.hero p.lead{margin-top:1.25rem;font-size:1.13rem;color:var(--ink-soft);max-width:34ch}
.hero-cta{margin-top:1.9rem;display:flex;gap:.8rem;flex-wrap:wrap}
.hero-trust{margin-top:1.8rem;display:flex;align-items:center;gap:.8rem;font-size:.86rem;color:var(--ink-soft)}
.hero-trust b{color:var(--ink)}
.pill{display:inline-block;background:#fff;border:1px solid var(--line);color:var(--green-deep);font-weight:600;font-size:.78rem;padding:.35rem .75rem;border-radius:999px}

/* hero visual card */
.hero-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:1.5rem;position:relative}
.hero-card .photo{aspect-ratio:4/3;border-radius:16px;background:
  repeating-linear-gradient(45deg, var(--mint-2) 0 14px, var(--mint) 14px 28px);
  display:grid;place-items:center;color:var(--green-deep);text-align:center;font-size:.8rem;font-weight:600;padding:1rem;overflow:hidden}
.hero-card .photo img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.hero-card .photo span{opacity:.65;max-width:22ch}

/* hero video facade — thumbnail + play button until clicked */
.hero-video{position:relative;width:100%;height:100%;border-radius:16px;overflow:hidden}
.hero-video-trigger{display:block;width:100%;height:100%;position:relative;cursor:pointer}
.hero-video .hero-video-thumb{width:100%;height:100%;object-fit:cover;border-radius:16px;display:block}
.hero-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:68px;height:48px;border-radius:12px;background:rgba(22,36,27,.72);
  transition:background .18s ease,transform .18s ease}
.hero-video-play::after{content:"";position:absolute;top:50%;left:50%;
  transform:translate(-42%,-50%);border-style:solid;border-width:11px 0 11px 18px;
  border-color:transparent transparent transparent #fff}
.hero-video-trigger:hover .hero-video-play,
.hero-video-trigger:focus-visible .hero-video-play{background:var(--green);transform:translate(-50%,-50%) scale(1.06)}
.hero-video-trigger:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.hero-video iframe{width:100%;height:100%;border:0;border-radius:16px;display:block}

/* standalone video section (Kahill · Video widget) */
.video-head{text-align:center;max-width:58ch;margin:0 auto 2.1rem}
.video-head h2{font-size:clamp(1.7rem,3.6vw,2.4rem);margin-top:.7rem}
.video-head p{color:var(--ink-soft);margin-top:.9rem}
.video-media{position:relative;aspect-ratio:16/9;width:min(960px,100%);margin-inline:auto;
  border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);
  background:repeating-linear-gradient(45deg,var(--mint-2) 0 14px,var(--mint) 14px 28px);
  display:grid;place-items:center}
.video-media .hero-video,
.video-media .hero-video-thumb,
.video-media iframe{border-radius:20px}
.video-empty{color:var(--green-deep);font-size:.82rem;font-weight:600;text-align:center;padding:1rem;opacity:.7;max-width:28ch}
@media (prefers-reduced-motion:reduce){
  .hero-video-play{transition:none}
  .hero-video-trigger:hover .hero-video-play{transform:translate(-50%,-50%)}
}
.hero-stat{display:flex;gap:1rem;margin-top:1.1rem}
.hero-stat div{flex:1;background:var(--mint);border-radius:13px;padding:.85rem .9rem}
.hero-stat .n{font-family:'Manrope';font-weight:800;font-size:1.55rem;color:var(--green-deep);line-height:1}
.hero-stat .l{font-size:.72rem;color:var(--ink-soft);margin-top:.3rem;line-height:1.3}
.float-badge{position:absolute;right:-12px;top:-14px;background:var(--orange);color:#fff;font-weight:700;font-size:.78rem;padding:.5rem .85rem;border-radius:999px;box-shadow:0 10px 20px -8px rgba(232,130,30,.7);transform:rotate(3deg)}

/* ---- demand band ---- */
.demand{background:var(--green-dark);color:#fff;padding:3.2rem 0}
.demand .eyebrow{color:#9fe0ad}
.demand .eyebrow::before{background:var(--orange-bright)}
.demand h2{font-size:clamp(1.6rem,3.6vw,2.3rem);max-width:20ch;margin-top:.7rem}
.demand p{color:#c9e2cd;margin-top:1rem;max-width:52ch}
.demand-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2.2rem}
.dcard{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:1.2rem}
.dcard .n{font-family:'Manrope';font-weight:800;font-size:2.1rem;color:var(--orange-bright);line-height:1}
.dcard .l{font-size:.82rem;color:#cfe3d2;margin-top:.45rem}

/* ---- sections ---- */
section{padding:4.5rem 0}
.sec-head{max-width:46ch}
.sec-head h2{font-size:clamp(1.8rem,4vw,2.6rem);margin-top:.7rem;font-weight:800}
.sec-head p{color:var(--ink-soft);margin-top:.8rem;font-size:1.05rem}

/* ---- courses ---- */
.courses{background:var(--mint)}
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.4rem}
.course{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .25s ease,border-color .2s ease;position:relative;overflow:hidden}
.course::before{content:"";position:absolute;left:0;top:0;height:100%;width:4px;background:var(--green);opacity:0;transition:opacity .2s}
.course:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--mint-2)}
.course:hover::before{opacity:1}
.course.flagship{border-color:var(--orange);background:linear-gradient(180deg,#fffaf3,#fff)}
.course .tag{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);margin-bottom:.6rem}
.course h3{font-size:1.22rem;font-weight:700}
.course .meta{font-size:.84rem;color:var(--ink-soft);margin-top:.5rem;display:flex;gap:.9rem;flex-wrap:wrap}
.course .meta span{display:inline-flex;align-items:center;gap:.35rem}
.course .meta .kahill-icon{width:1rem;height:1rem;color:var(--orange)}
.course .meta b{color:var(--green-deep)}
.course .price{font-family:'Manrope';font-weight:800;font-size:1.5rem;color:var(--ink);margin-top:1rem}
.course .price span{font-size:.78rem;font-weight:500;color:var(--ink-soft);font-family:'Inter'}
.course .inst{font-size:.78rem;color:var(--green-deep);font-weight:600;margin-top:.4rem;display:flex;gap:.35rem;align-items:flex-start}
.course .inst::before{content:"↳";color:var(--orange);font-weight:700}
.course .reg{margin-top:1.1rem;font-weight:600;font-size:.9rem;color:var(--green-deep);display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start}
.course .reg:hover{color:var(--orange)}

/* ---- flagship spine ---- */
.spine-sec{background:#fff}
.spine-top{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:end}
.priceblock{background:var(--green-dark);color:#fff;border-radius:var(--radius);padding:1.6rem;text-align:left}
.priceblock .n{font-family:'Manrope';font-weight:800;font-size:2.3rem;line-height:1}
.priceblock .l{color:#bcd9c1;font-size:.85rem;margin-top:.3rem}
.priceblock .feats{margin-top:1.1rem;display:grid;gap:.45rem;font-size:.88rem;color:#dcebde}
.priceblock .feats span{display:flex;gap:.5rem;align-items:flex-start}
.priceblock .feats span::before{content:"";flex:none;width:.38rem;height:.7rem;margin:.05rem .25rem 0 .15rem;border-right:2px solid var(--orange-bright);border-bottom:2px solid var(--orange-bright);transform:rotate(45deg)}
.priceblock .inst-plan{margin-top:1.1rem;font-size:.82rem;line-height:1.5;color:#cfe6d4;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:11px;padding:.7rem .8rem}
.priceblock .inst-plan b{color:var(--orange-bright)}
.spine{margin-top:2.6rem;display:grid;grid-template-columns:repeat(2,1fr);gap:0 2.5rem}
.week{display:flex;gap:1rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}
.week .wn{flex:none;width:42px;height:42px;border-radius:11px;background:var(--mint-2);color:var(--green-deep);font-family:'Manrope';font-weight:800;display:grid;place-items:center;font-size:1.05rem}
.week h4{font-size:1.02rem;font-weight:700}
.week p{font-size:.83rem;color:var(--ink-soft);margin-top:.2rem}

/* ---- how it works ---- */
.how{background:var(--mint)}
.how-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.4rem}
.how-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.how-card .ic{width:44px;height:44px;border-radius:12px;background:var(--mint-2);display:grid;place-items:center;color:var(--green-deep);margin-bottom:.9rem}
.how-card .ic .kahill-icon{width:1.35rem;height:1.35rem}
.how-card h4{font-size:1.05rem}
.how-card p{font-size:.88rem;color:var(--ink-soft);margin-top:.4rem}
.flow{margin-top:2.2rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.6rem;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between}
.flow .step{display:flex;align-items:center;gap:.6rem;font-size:.86rem}
.flow .step b{font-family:'Manrope';color:var(--orange);font-size:1.05rem}
.flow .arrow{color:var(--line);display:inline-flex}
.flow .arrow .kahill-icon{width:1.1rem;height:1.1rem;color:inherit}

/* ---- trainers ---- */
/* align-items:start so expanding one bio grows only that card, instead of
   stretching every card in the row to match. */
.trainers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.4rem;align-items:start}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;text-align:left;transition:transform .18s ease,box-shadow .25s ease,border-color .2s ease}
.tcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.tcard.lead{border-color:var(--orange);background:linear-gradient(180deg,#fffaf3,#fff)}
.tphoto{aspect-ratio:1/1;border-radius:14px;background:radial-gradient(circle at 50% 35%,var(--mint-2),var(--mint));display:grid;place-items:center;text-align:center;color:var(--green-deep);font-size:.78rem;font-weight:600;padding:1rem;margin-bottom:1rem;overflow:hidden}
.tphoto img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.tphoto span{opacity:.6;max-width:18ch}
.tcard h4{font-size:1.15rem;font-weight:700}
.tcard .role{display:inline-block;margin-top:.45rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--green-deep);padding:.28rem .65rem;border-radius:999px}
.tcard.lead .role{background:var(--orange)}
.tcard p{font-size:.9rem;color:var(--ink-soft);margin-top:.85rem}
/* trainer bio: clamped only when JS is present, so nothing is ever hidden without it */
.js .tbio.is-clamped{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tbio-toggle{margin-top:.55rem;display:inline-flex;align-items:center;gap:.38rem;background:none;border:0;padding:0;
  cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:700;color:var(--green-deep);
  transition:color .18s ease}
/* display:inline-flex above outranks the UA's [hidden]{display:none}, so the
   attribute has to be honoured explicitly or short bios still show a button. */
.tbio-toggle[hidden]{display:none}
.tbio-toggle::after{content:"";width:0;height:0;border-left:.32em solid transparent;border-right:.32em solid transparent;
  border-top:.4em solid currentColor;transition:transform .2s ease}
.tbio-toggle:hover{color:var(--orange)}
.tbio-toggle[aria-expanded="true"]::after{transform:rotate(180deg)}
.tbio-toggle:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}
.tcard.lead .tbio-toggle{color:var(--orange)}
.tcard.lead .tbio-toggle:hover{color:var(--green-deep)}
@media (prefers-reduced-motion:reduce){.tbio-toggle,.tbio-toggle::after{transition:none}}

/* ---- testimonials ---- */
.results{background:var(--mint)}
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.4rem}
.quote{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column}
.quote .mk{font-family:'Manrope';font-weight:800;font-size:2.6rem;line-height:.5;color:var(--orange);height:1rem}
.quote p{font-size:.95rem;color:var(--ink);margin-top:.7rem;flex:1}
.quote .who{margin-top:1.1rem;display:flex;align-items:center;gap:.7rem}
.quote .who .av{width:38px;height:38px;border-radius:50%;background:var(--mint-2);display:grid;place-items:center;color:var(--green-deep);font-weight:700;flex:none;font-size:.95rem;overflow:hidden}
.quote .who .av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.quote .who b{font-size:.9rem;display:block}
.quote .who small{font-size:.76rem;color:var(--ink-soft)}

/* ---- business band ---- */
.biz{background:linear-gradient(135deg,var(--green-deep),var(--green-dark));color:#fff}
.biz-in{display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:center}
.biz h2{font-size:clamp(1.7rem,3.6vw,2.4rem);max-width:18ch}
.biz p{color:#c9e2cd;margin-top:1rem;max-width:46ch}
.biz .eyebrow{color:#9fe0ad}.biz .eyebrow::before{background:var(--orange-bright)}
.biz-act{text-align:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:2rem}
.biz-act .big{font-family:'Manrope';font-weight:800;font-size:3rem;color:var(--orange-bright);line-height:1}
.biz-act p{color:#dcebde;font-size:.9rem;margin:.5rem 0 1.3rem}

/* ---- final cta ---- */
.cta-final{text-align:center;background:var(--mint)}
.cta-final h2{font-size:clamp(2rem,4.5vw,2.9rem);max-width:18ch;margin-inline:auto;font-weight:800}
.cta-final p{color:var(--ink-soft);margin:1rem auto 0;max-width:46ch;font-size:1.05rem}
.cta-btns{margin-top:2rem;display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.cta-note{margin-top:1.4rem;font-size:.85rem;color:var(--ink-soft)}
.pay-row{margin-top:1.3rem;display:inline-flex;gap:.5rem;flex-wrap:wrap;justify-content:center}
.pay-row .pay{background:#fff;border:1px solid var(--line);border-radius:9px;padding:.4rem .8rem;font-size:.78rem;font-weight:600;color:var(--ink-soft)}

/* ---- footer ---- */
footer{background:var(--ink);color:#cfd8cf;padding:3.2rem 0 2rem}
.foot-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
footer .brand{color:#fff}footer .brand small{color:#9fb3a3}
footer .brand.has-custom-logo{display:inline-block;padding:.55rem .7rem}
footer .brand .custom-logo{max-width:320px;max-height:76px}
footer h5{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#8fae97;margin-bottom:.9rem}
footer a{color:#cfd8cf;font-size:.9rem;display:block;margin-bottom:.5rem}
footer a:hover{color:var(--orange-bright)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:2.4rem;padding-top:1.4rem;font-size:.8rem;color:#8fae97;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}

/* reveal — only hides when JS is active (progressive enhancement) */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
/* Elementor's iframe does not reliably trigger IntersectionObserver while a
   widget is being edited. Never hide editable content in the builder. */
.elementor-editor-active .reveal,.elementor-editor-preview .reveal{opacity:1!important;transform:none!important}

@media (max-width:1080px){
  .nav-in{grid-template-columns:minmax(0,1fr) auto;gap:1rem}
  nav.links{display:none}
  .menu-btn{display:flex}
  .nav-cta{grid-column:2}
}
@media (max-width:880px){
  .hero-in,.spine-top,.biz-in,.foot-in{grid-template-columns:1fr}
  .demand-grid,.how-grid,.trainers-grid,.quote-grid{grid-template-columns:repeat(2,1fr)}
  .course-grid{grid-template-columns:1fr}
  .spine{grid-template-columns:1fr}
  .course.flagship{grid-column:auto !important}
}
@media (max-width:620px){
  .nav-in{gap:.6rem}
  .nav-account{display:none}
  .nav-cta{gap:.4rem}
  .nav-cta .btn{min-height:40px;padding:.58rem .9rem;font-size:.88rem}
  header .brand.has-custom-logo{padding:.18rem .3rem}
  header .brand .custom-logo{max-width:175px;max-height:42px}
  header .brand:not(.has-custom-logo){font-size:.98rem;gap:.55rem}
  header .brand .mark{width:38px;height:38px;font-size:1.05rem}
  header .brand small{font-size:.55rem}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto}
  .js .reveal{transition:none;opacity:1;transform:none}
  .btn:hover,.course:hover{transform:none}
}

/* ---- registration form ---- */
.form-alert{max-width:560px;margin:1.6rem auto 0;padding:.9rem 1.1rem;border-radius:12px;font-size:.92rem;font-weight:500;text-align:left}
.form-alert.ok{background:var(--mint-2);border:1px solid var(--green);color:var(--green-deep)}
.form-alert.err{background:#fdeceb;border:1px solid #e2725b;color:#b23b2e}
.reg-form{max-width:560px;margin:2rem auto 0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.7rem;text-align:left;position:relative}
.reg-form .reg-form-h{font-size:1.25rem;font-weight:700}
.reg-form .reg-form-intro{font-size:.9rem;color:var(--ink-soft);margin:.35rem 0 1.2rem}
.reg-form .row{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
.reg-form .field{margin-bottom:1rem}
.reg-form label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:.35rem}
.reg-form input,.reg-form select,.reg-form textarea{width:100%;font:inherit;font-size:.95rem;color:var(--ink);background:var(--mint);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.reg-form input:focus,.reg-form select:focus,.reg-form textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,138,67,.15);background:#fff}
.reg-form textarea{min-height:96px;resize:vertical}
.reg-form .btn{width:100%;justify-content:center;margin-top:.3rem}
.reg-hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.reg-alt{margin-top:1.6rem;font-size:.9rem;color:var(--ink-soft)}
.cta-final .reg-alt + .cta-btns{margin-top:.8rem}
@media (max-width:560px){.reg-form .row{grid-template-columns:1fr}}

/* ---- course card title link ---- */
.course h3 a{color:inherit}
.course h3 a:hover{color:var(--green-deep)}

/* ---- single course page (modern redesign) ---- */
.csv-hero{background:linear-gradient(135deg,#fffaf3 0%,#fff 55%,var(--mint) 100%);padding:2rem 0 2.6rem;border-bottom:1px solid var(--line)}
.csv-hero-flag{background:linear-gradient(135deg,#fff9f1 0%,#fff 54%,#f3f8f3 100%)}
.csv-hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,360px);gap:clamp(2.5rem,5vw,5rem);align-items:start}
.csv-main{padding-top:.25rem}
.csv-crumb{font-size:.82rem;color:var(--ink-soft);margin-bottom:1rem}
.csv-crumb a{color:var(--green-deep);font-weight:600}
.csv-crumb a:hover{color:var(--orange)}
.csv-crumb span{margin:0 .35rem;opacity:.5}
.csv-tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--orange);padding:.32rem .7rem;border-radius:999px;margin-bottom:.9rem}
.csv-main h1{font-size:clamp(2.25rem,4.3vw,3.45rem);font-weight:800;line-height:1.03;max-width:22ch}
.csv-sum{margin-top:1.15rem;font-size:1.08rem;line-height:1.65;color:var(--ink-soft);max-width:55ch}
.csv-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.45rem}
.csv-chip{display:inline-flex;align-items:center;gap:.42rem;font-size:.8rem;font-weight:600;color:var(--ink-soft);background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:999px;padding:.42rem .75rem}
.csv-chip b{color:var(--green-deep)}
.kahill-icon{width:1.15rem;height:1.15rem;display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--green-deep)}
.kahill-icon svg{display:block;width:100%;height:100%}
.csv-chip .kahill-icon{color:var(--green)}

/* enrol box */
.enrol-box{background:#fff;border:1px solid rgba(20,63,35,.14);border-radius:18px;box-shadow:0 22px 55px -38px rgba(20,63,35,.6);overflow:hidden;position:sticky;top:84px}
.eb-media{aspect-ratio:16/8.7;overflow:hidden;background:var(--mint-2)}
.eb-media img{width:100%;height:100%;object-fit:cover}
.eb-pad{padding:1.3rem 1.35rem 1.4rem}
.eb-price{font-family:'Manrope';font-weight:800;font-size:1.85rem;color:var(--ink);line-height:1.1;letter-spacing:-.025em}
.eb-price span{display:block;margin-top:.35rem;font-size:.75rem;font-weight:500;color:var(--ink-soft);font-family:'Inter';letter-spacing:0}
.eb-facts{list-style:none;margin:1.15rem 0 1.2rem;display:grid;gap:.65rem}
.eb-facts li{display:flex;gap:.65rem;align-items:flex-start;font-size:.9rem;color:var(--ink-soft);line-height:1.4}
.eb-facts .kahill-icon{margin-top:.05rem;color:var(--green)}
.eb-actions{display:grid;gap:.8rem}
.eb-seg{display:flex;background:#f5f8f5;border:1px solid var(--line);border-radius:12px;padding:.25rem;gap:.25rem}
.eb-opt{flex:1;border:0;background:none;border-radius:10px;padding:.6rem .35rem;cursor:pointer;font:inherit;font-size:.78rem;font-weight:600;color:var(--ink-soft);display:flex;flex-direction:column;gap:.15rem;line-height:1.15;transition:background .15s ease,box-shadow .15s ease}
.eb-opt b{font-family:'Manrope';font-size:1.02rem;color:var(--ink);font-weight:800}
.eb-opt:hover{color:var(--green-deep)}
.eb-opt.is-active{background:#fff;color:var(--green-deep);box-shadow:0 3px 10px -4px rgba(20,63,35,.3)}
.eb-opt.is-active b{color:var(--green-deep)}
.eb-enrol{width:100%;justify-content:center;font-size:1.02rem;padding:.9rem 1.2rem}
.eb-plan{font-size:.73rem;line-height:1.45;color:var(--ink-soft);text-align:center;margin:.05rem auto 0;max-width:30ch}
.eb-trust{display:flex;flex-wrap:wrap;gap:.45rem .75rem;align-items:center;justify-content:center;margin-top:.95rem;padding-top:.9rem;border-top:1px solid var(--line);font-size:.74rem;color:var(--ink-soft)}
.eb-lock{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;color:var(--green-deep)}
.eb-ask{display:block;text-align:center;margin-top:.85rem;font-size:.8rem;font-weight:600;color:var(--green-deep)}
.eb-ask:hover{color:var(--orange)}

/* body */
.csv-body{background:#fff;padding:3.4rem 0 4.5rem}
.csv-body-in{max-width:820px}
.csv-block{margin-bottom:2.6rem}
.csv-block h2{font-size:1.6rem;font-weight:800;margin-bottom:1.1rem}
.csv-outcomes{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.6rem}
.csv-outcomes li{position:relative;padding-left:2rem;color:var(--ink);font-size:1rem;line-height:1.5}
.csv-outcomes li::before{content:"";position:absolute;left:0;top:.05em;width:1.4rem;height:1.4rem;background:var(--mint-2);border-radius:50%}
.csv-outcomes li::after{content:"";position:absolute;left:.48rem;top:.3em;width:.32rem;height:.58rem;border-right:2px solid var(--green-deep);border-bottom:2px solid var(--green-deep);transform:rotate(45deg)}
.csv-rich{color:var(--ink-soft);font-size:1.05rem;line-height:1.7}
.csv-rich p{margin-bottom:1rem}
.csv-rich ul,.csv-rich ol{margin:0 0 1rem 1.2rem}
.csv-curriculum{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.csv-curriculum li{display:flex;gap:.9rem;background:var(--mint);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem}
.cc-num{flex:none;width:34px;height:34px;border-radius:9px;background:#fff;border:1px solid var(--line);color:var(--green-deep);font-family:'Manrope';font-weight:800;display:grid;place-items:center}
.cc-txt h4{font-size:1rem;font-weight:700}
.cc-txt p{font-size:.85rem;color:var(--ink-soft);margin-top:.25rem}
.csv-reqs{list-style:none;display:grid;gap:.6rem}
.csv-reqs li{position:relative;padding-left:1.3rem;color:var(--ink-soft)}
.csv-reqs li::before{content:"•";position:absolute;left:0;color:var(--orange);font-size:1.2rem;line-height:1}
.csv-cta{margin-top:1rem;background:linear-gradient(135deg,var(--green-deep),var(--green-dark));color:#fff;border-radius:20px;padding:1.8rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap}
.csv-cta h3{font-size:1.35rem;font-weight:800}
.csv-cta p{color:#c9e2cd;margin-top:.25rem;font-size:.95rem}
.csv-cta .btn{flex:none}
@media (max-width:900px){
  .csv-hero-in{grid-template-columns:1fr}
  .enrol-box{position:static;max-width:440px}
  .csv-outcomes,.csv-curriculum{grid-template-columns:1fr}
}

/* ---- in-page payment modal ---- */
body.km-open{overflow:hidden}
.kahill-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}
.kahill-modal[hidden]{display:none}
.km-backdrop{position:absolute;inset:0;background:rgba(20,63,35,.55);backdrop-filter:blur(3px)}
.km-dialog{position:relative;z-index:1;background:#fff;border-radius:20px;box-shadow:0 30px 70px -20px rgba(20,63,35,.5);width:min(470px,96vw);max-height:92vh;overflow:auto;padding:1.6rem}
.km-close{position:absolute;top:.7rem;right:.9rem;background:none;border:0;font-size:1.7rem;line-height:1;color:var(--ink-soft);cursor:pointer}
.km-close:hover{color:var(--ink)}
.km-head{padding-right:1.5rem;margin-bottom:1.1rem}
.km-title{font-family:'Manrope';font-weight:800;font-size:1.2rem;color:var(--ink);line-height:1.15}
.km-amount{font-size:1.4rem;font-weight:800;font-family:'Manrope';color:var(--green-deep);margin-top:.2rem}
.km-intro{font-size:.9rem;color:var(--ink-soft);margin-bottom:1rem}
.km-tabs{display:flex;gap:.4rem;background:var(--mint);border-radius:12px;padding:.3rem;margin-bottom:1.1rem}
.km-tab{flex:1;font:inherit;font-size:.88rem;font-weight:600;color:var(--ink-soft);background:none;border:0;border-radius:9px;padding:.55rem;cursor:pointer}
.km-tab.is-active{background:#fff;color:var(--green-deep);box-shadow:0 2px 6px -3px rgba(20,63,35,.3)}
.km-form label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:.8rem}
.km-form input{display:block;width:100%;margin-top:.3rem;font:inherit;font-size:.95rem;background:var(--mint);border:1px solid var(--line);border-radius:11px;padding:.7rem .85rem}
.km-form input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,138,67,.15);background:#fff}
.km-form .btn{width:100%;justify-content:center;margin-top:.4rem}
.km-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.km-error{margin-top:.9rem;background:#fdeceb;border:1px solid #e2725b;color:#b23b2e;border-radius:10px;padding:.7rem .9rem;font-size:.86rem}
.km-step[data-step="loading"]{text-align:center;padding:2.5rem 1rem;color:var(--ink-soft)}
.km-spinner{width:38px;height:38px;border:3px solid var(--mint-2);border-top-color:var(--green);border-radius:50%;margin:0 auto 1rem;animation:km-spin .8s linear infinite}
@keyframes km-spin{to{transform:rotate(360deg)}}
.km-frame-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden;height:min(600px,68vh)}
.km-frame{width:100%;height:100%;border:0;display:block}
.km-secure{text-align:center;font-size:.8rem;color:var(--ink-soft);margin-top:.8rem}
.km-fail-msg{color:#b23b2e;margin-bottom:1rem}
@media (prefers-reduced-motion:reduce){.km-spinner{animation:none}}

/* ---- generic page template ---- */
.page-wrap{padding:3.5rem 0 4.5rem;background:var(--mint);min-height:50vh}
.page-title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin-bottom:1.4rem}
.page-content{font-size:1.02rem;color:var(--ink-soft)}
.page-content p{margin-bottom:1rem}
.page-content h2{font-size:1.5rem;font-weight:800;color:var(--ink);margin:1.6rem 0 .8rem}

/* ---- student accounts (kahill-enroll plugin) ---- */
.kahill-auth{max-width:590px;margin-inline:auto;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 60px -38px rgba(20,63,35,.55);overflow:hidden}
.auth-switch{display:none}
.js .auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin:.55rem;padding:.35rem;background:var(--mint);border:1px solid var(--line);border-radius:15px}
.auth-tab{min-height:46px;border:0;border-radius:11px;background:transparent;color:var(--ink-soft);font:700 .92rem 'Inter',sans-serif;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}
.auth-tab:hover{color:var(--green-deep)}
.auth-tab.is-active{background:#fff;color:var(--green-deep);box-shadow:0 4px 13px -10px rgba(20,63,35,.75)}
.auth-tab:focus-visible{outline:3px solid rgba(232,130,30,.35);outline-offset:1px}
.auth-panels{position:relative}
.kahill-authform{margin:0;max-width:none;border:0;border-radius:0;box-shadow:none;padding:1.8rem 2rem 2rem}
.kahill-authform + .kahill-authform{border-top:1px solid var(--line)}
.js .auth-panel:not(.is-active){display:none}
.kahill-authform .reg-form-h{font-size:1.5rem;color:var(--ink)}
.kahill-authform .reg-form-intro{margin-top:.4rem;margin-bottom:1.5rem}
.kahill-authform .btn{width:100%;justify-content:center;margin-top:.3rem}
.auth-alt{margin-top:1rem;font-size:.85rem;color:var(--ink-soft);text-align:center}
.auth-alt a{color:var(--green-deep);font-weight:600}
.auth-alt a:hover{color:var(--orange)}

.kahill-dash{max-width:820px;margin-inline:auto}
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}
.dash-head h2{font-size:clamp(1.6rem,3.6vw,2.2rem);font-weight:800;margin-top:.4rem}
.dash-sub{font-size:1.15rem;font-weight:700;margin:2.2rem 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
.dash-courses{display:grid;gap:1rem}
.dash-course{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.3rem 1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.dash-course h4{font-size:1.12rem;font-weight:700}
.dash-course h4 a{color:var(--ink)}
.dash-course h4 a:hover{color:var(--green-deep)}
.dc-sched{display:flex;align-items:center;gap:.4rem;font-size:.86rem;color:var(--ink-soft);margin-top:.35rem}
.dc-sched .kahill-icon{width:1rem;height:1rem;color:var(--orange)}
.dc-badge{display:inline-block;margin-top:.6rem;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--green-deep);padding:.25rem .6rem;border-radius:999px}
.dc-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}
.dc-soon{font-size:.8rem;color:var(--ink-soft);font-style:italic}
.dc-balance{font-size:.85rem;color:var(--ink-soft);margin-top:.55rem}
.dc-balance strong{color:var(--orange)}
.dc-paid{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--green-deep);font-weight:600;margin-top:.55rem}
.dc-paid .kahill-icon{width:1rem;height:1rem}
.dc-pay{font-size:.85rem;padding:.6rem 1rem}
.dc-receipt{font-size:.82rem;font-weight:600;color:var(--green-deep)}
.dc-receipt:hover{color:var(--orange)}
.dash-empty{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2rem;text-align:center}
.dash-empty p{color:var(--ink-soft);margin-bottom:1.2rem}
.dash-details{list-style:none;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;display:grid;gap:.6rem}
.dash-details li{font-size:.95rem;color:var(--ink-soft)}
.dash-details strong{color:var(--ink)}

@media (max-width:620px){.kahill-authform{padding:1.4rem 1.15rem 1.5rem}.auth-tab{font-size:.84rem}.dash-course{flex-direction:column;align-items:flex-start}.dc-actions{align-items:flex-start}}

/* ---- courses catalog (/courses/) ---- */
.cat-hero{background:radial-gradient(120% 90% at 92% 0%, var(--mint-2) 0%, transparent 55%),linear-gradient(180deg,#fff 0%, var(--mint) 100%);padding:3.4rem 0 2.4rem}
.cat-hero h1{font-size:clamp(1.9rem,4.4vw,2.9rem);font-weight:800;margin-top:.6rem}
.cat-hero p{color:var(--ink-soft);margin-top:.8rem;font-size:1.05rem;max-width:52ch}
.cat-filters{margin-top:1.6rem;display:flex;gap:.6rem;flex-wrap:wrap}
.cat-filter{font:inherit;font-size:.9rem;font-weight:600;color:var(--ink-soft);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:.5rem 1.1rem;cursor:pointer;transition:all .18s ease}
.cat-filter:hover{border-color:var(--green);color:var(--green-deep)}
.cat-filter.is-active{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.cat-list{background:#fff;padding:2.8rem 0 4.5rem}
.cc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.ccard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .18s ease,box-shadow .25s ease,border-color .2s ease}
.ccard:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--mint-2)}
.ccard-flag{border-color:var(--orange)}
.cc-media{position:relative;display:block;aspect-ratio:16/10;background:linear-gradient(135deg,var(--mint-2),var(--mint));overflow:hidden}
.cc-media img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.ccard:hover .cc-media img{transform:scale(1.04)}
.cc-ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--green);opacity:.55}
.cc-ph .kahill-icon{width:3rem;height:3rem}
.cc-badge{position:absolute;top:.8rem;left:.8rem;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--orange);padding:.3rem .7rem;border-radius:999px;box-shadow:0 6px 14px -6px rgba(232,130,30,.8)}
.cc-body{padding:1.3rem 1.4rem .6rem;flex:1}
.cc-tag{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--orange);margin-bottom:.5rem}
.cc-body h3{font-size:1.2rem;font-weight:700;line-height:1.25}
.cc-body h3 a{color:var(--ink)}
.cc-body h3 a:hover{color:var(--green-deep)}
.cc-sum{font-size:.9rem;color:var(--ink-soft);margin-top:.5rem;line-height:1.5}
.cc-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}
.cc-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.76rem;color:var(--ink);background:var(--mint);border:1px solid var(--line);border-radius:999px;padding:.28rem .7rem}
.cc-chip .kahill-icon{width:.9rem;height:.9rem;color:var(--green)}
.cc-chip b{color:var(--green-deep)}
.cc-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;padding:1rem 1.4rem 1.4rem;margin-top:.4rem;border-top:1px solid var(--line)}
.cc-price{font-family:'Manrope';font-weight:800;font-size:1.15rem;color:var(--ink)}
.cc-price span{font-size:.72rem;font-weight:500;color:var(--ink-soft);font-family:'Inter'}
.cc-btn{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem;color:var(--green-deep)}
.cc-btn:hover{color:var(--orange)}
.ccard.is-hidden{display:none}
.cat-empty{color:var(--ink-soft);margin-top:1.5rem}
.courses-all{text-align:center;margin-top:2.2rem}
@media (max-width:880px){.cc-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.cc-grid{grid-template-columns:1fr}}

/* ---- receipt ---- */
.kahill-receipt{max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.8rem}
.rc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;border-bottom:2px solid var(--green-deep)}
.rc-site{font-family:'Manrope';font-weight:800;font-size:1.15rem;color:var(--green-deep)}
.rc-label{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-top:.2rem}
.rc-no{font-family:'Manrope';font-weight:800;font-size:1.05rem;color:var(--orange)}
.rc-table{width:100%;border-collapse:collapse;margin-top:1rem}
.rc-table th,.rc-table td{text-align:left;padding:.55rem 0;font-size:.92rem;vertical-align:top;border-bottom:1px solid var(--line)}
.rc-table th{color:var(--ink-soft);font-weight:600;width:42%}
.rc-table .rc-total th,.rc-table .rc-total td{font-size:1.1rem;font-weight:800;color:var(--ink);border-bottom:0;padding-top:.9rem}
.rc-table .rc-balance th,.rc-table .rc-balance td{color:var(--orange);font-weight:700;border-bottom:0}
.rc-status{margin-top:1.1rem;display:inline-block;font-weight:800;letter-spacing:.1em;font-size:.85rem;color:#fff;background:var(--green-deep);padding:.35rem .9rem;border-radius:999px}
.rc-actions{max-width:560px;margin:1.4rem auto 0;display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}

@media print{
  header.nav,footer,.rc-actions,.menu-btn,.dash-head .btn{display:none !important}
  .page-wrap{background:#fff;padding:0}
  .kahill-receipt{box-shadow:none;border:0;max-width:none}
  .no-print{display:none !important}
}

/* =========================================================================
   BLOG — asymmetric editorial layout. Same palette and type as the rest of
   the site; the difference is composition. Cards are borderless and sit on
   soft shadow rather than outline, the lead story overlaps its own image,
   and the grid steps off the baseline instead of forming even rows.
   ========================================================================= */

/* ---- masthead: heading left, meta right, soft off-grid accent ---- */
.blog-hero{position:relative;overflow:hidden;padding:4rem 0 3rem;
  background:linear-gradient(180deg,#fff 0%,var(--mint) 100%)}
.blog-hero::before{content:"";position:absolute;top:-28%;right:-6%;width:min(560px,52vw);aspect-ratio:1;
  border-radius:50%;background:radial-gradient(circle at 40% 40%,var(--mint-2),transparent 68%);
  pointer-events:none}
.blog-hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:2.5rem;align-items:end}
.blog-hero h1{font-size:clamp(2.4rem,6vw,4.1rem);font-weight:800;letter-spacing:-.03em;margin-top:.8rem}
.blog-hero-lede{color:var(--ink-soft);font-size:1.02rem;max-width:38ch;padding-bottom:.4rem}
.blog-cats{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem;position:relative}
.blog-cat{display:inline-flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.75);
  border-radius:999px;padding:.46rem 1rem;font-size:.85rem;font-weight:600;color:var(--ink-soft);
  box-shadow:0 1px 2px rgba(20,63,35,.06);
  transition:background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.blog-cat:hover{background:#fff;color:var(--green-deep);transform:translateY(-2px);
  box-shadow:0 10px 22px -14px rgba(20,63,35,.5)}
.blog-cat.is-active{background:var(--green-deep);color:#fff;box-shadow:0 10px 22px -14px rgba(20,63,35,.7)}
.blog-cat b{font-weight:700;font-size:.72rem;opacity:.6}
.blog-list{padding:3.6rem 0 5rem}

/* ---- lead story: text card overlaps the image ---- */
.plead{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;margin-bottom:4.2rem}
.plead-media{grid-column:1/8;grid-row:1;display:block;aspect-ratio:16/10;border-radius:26px;overflow:hidden;
  background:var(--mint-2);box-shadow:0 30px 60px -34px rgba(20,63,35,.5)}
.plead-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.plead:hover .plead-media img{transform:scale(1.035)}
.plead-body{grid-column:7/13;grid-row:1;position:relative;z-index:1;background:#fff;border-radius:24px;
  padding:2.1rem 2.2rem;box-shadow:0 26px 60px -34px rgba(20,63,35,.45)}
.plead-flag{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:var(--orange)}
/* .pcard-tag is absolutely positioned for the grid cards and is declared later
   in this file, so the lead-story override needs the extra specificity. */
.plead-body .plead-tag{position:static;display:inline-block;margin-left:.55rem;box-shadow:none;
  background:var(--mint);color:var(--green-deep);backdrop-filter:none}
.plead h2{font-size:clamp(1.55rem,2.9vw,2.25rem);letter-spacing:-.02em;margin-top:.55rem}
.plead h2 a{transition:color .2s ease}
.plead h2 a:hover{color:var(--green-deep)}
.plead-sum{margin-top:.85rem;color:var(--ink-soft);font-size:1rem}
.plead .pmeta{margin-top:1rem}
.plead-btn{margin-top:1.5rem}

/* ---- staggered card grid, borderless ---- */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.pcard{display:flex;flex-direction:column;background:#fff;border-radius:22px;overflow:hidden;
  box-shadow:0 1px 2px rgba(20,63,35,.06),0 12px 28px -22px rgba(20,63,35,.35);
  transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease}
.pcard:hover{box-shadow:0 1px 2px rgba(20,63,35,.06),0 34px 60px -30px rgba(20,63,35,.45)}
/* Step every third card off the baseline. Uses margin, not transform, so it
   cannot fight the .reveal animation, which owns transform. */
.pgrid .pcard:nth-child(3n+2){margin-top:2rem}
.pgrid .pcard:nth-child(3n){margin-top:4rem}
.pcard-media{display:block;position:relative;aspect-ratio:16/10;background:var(--mint-2);overflow:hidden}
.pcard-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.pcard:hover .pcard-media img{transform:scale(1.05)}
.pcard-ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--green-deep);opacity:.3}
.pcard-ph svg{width:32px;height:32px}
.pcard-tag{position:absolute;left:.85rem;top:.85rem;background:rgba(255,255,255,.92);color:var(--green-deep);
  font-size:.7rem;font-weight:700;letter-spacing:.03em;padding:.32rem .7rem;border-radius:999px;
  backdrop-filter:blur(6px)}
.pcard-body{padding:1.3rem 1.4rem 1.45rem;display:flex;flex-direction:column;flex:1}
.pcard-body h3{font-size:1.13rem;line-height:1.3;letter-spacing:-.01em}
.pcard-body h3 a{transition:color .2s ease}
.pcard-body h3 a:hover{color:var(--green-deep)}
.pcard-sum{margin-top:.55rem;font-size:.92rem;color:var(--ink-soft);flex:1}
.pcard .pmeta{margin-top:1.1rem}
/* Stagger the reveal so a row arrives as a sequence rather than a block. */
.js .pgrid .pcard:nth-child(3n+2){transition-delay:.09s}
.js .pgrid .pcard:nth-child(3n){transition-delay:.18s}

/* ---- shared meta line ---- */
.pmeta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;font-size:.8rem;color:var(--ink-soft)}
.pmeta-dot{opacity:.45}
.pmeta-cat{font-weight:700;color:var(--green-deep);transition:color .18s ease}
.pmeta-cat:hover{color:var(--orange)}

/* ---- pagination ---- */
.pager{display:flex;justify-content:center;flex-wrap:wrap;gap:.45rem;margin-top:3.6rem}
.pager .page-numbers{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 .85rem;
  border-radius:13px;font-size:.9rem;font-weight:600;color:var(--ink-soft);background:#fff;
  box-shadow:0 1px 2px rgba(20,63,35,.06);transition:transform .2s ease,color .2s ease,box-shadow .2s ease}
.pager .page-numbers:hover{color:var(--green-deep);transform:translateY(-2px);
  box-shadow:0 12px 24px -16px rgba(20,63,35,.5)}
.pager .page-numbers.current{background:var(--green-deep);color:#fff}
.pager .dots{background:transparent;box-shadow:none}

/* ---- empty state ---- */
.blog-empty{text-align:center;padding:4.5rem 1rem;color:var(--ink-soft)}
.blog-empty svg{width:40px;height:40px;opacity:.35}
.blog-empty h2{margin-top:1rem;font-size:1.45rem;color:var(--ink)}
.blog-empty p{margin:.6rem 0 1.5rem}

/* =============================== SINGLE POST =============================== */

/* reading progress */
.post-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:transparent;pointer-events:none}
.post-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--orange),var(--orange-bright));
  transition:width .1s linear}

.post-crumb{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;color:var(--ink-soft)}
.post-crumb a{transition:color .18s ease}
.post-crumb a:hover{color:var(--green-deep)}
.post-hero{position:relative;overflow:hidden;padding:3.4rem 0 2.8rem;text-align:center;
  background:linear-gradient(180deg,#fff 0%,var(--mint) 100%)}
.post-hero::before{content:"";position:absolute;top:-40%;left:50%;transform:translateX(-50%);
  width:min(760px,88vw);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 50% 45%,var(--mint-2),transparent 66%);pointer-events:none}
.post-hero .wrap{position:relative;max-width:min(780px,92vw)}
.post-crumb{justify-content:center}
.post-hero h1{font-size:clamp(2rem,4.8vw,3.25rem);font-weight:800;letter-spacing:-.03em;margin-top:1rem}
.post-standfirst{margin-top:1.15rem;font-size:1.14rem;color:var(--ink-soft);line-height:1.55}
.post-byline{display:inline-flex;align-items:center;gap:.8rem;margin-top:1.9rem;text-align:left}
.post-byline strong{display:block;font-size:.92rem;color:var(--ink)}
.post-byline .pmeta{margin-top:.15rem}
.post-avatar{width:44px;height:44px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--green),var(--green-deep));color:#fff;font-family:'Manrope';font-weight:800;
  box-shadow:0 10px 22px -14px rgba(20,63,35,.8)}
/* the featured image straddles the masthead and the body beneath it */
.post-hero.has-media{padding-bottom:6rem}
.post-media{margin-top:-4.4rem;position:relative;z-index:1}
.post-media .wrap{max-width:min(940px,92vw)}
.post-media img{width:100%;aspect-ratio:16/9;max-height:520px;object-fit:cover;border-radius:26px;
  box-shadow:0 40px 80px -44px rgba(20,63,35,.6)}
.post-main{padding:3rem 0 3.6rem}
.post-main .wrap{max-width:min(720px,92vw)}

/* reading column */
.post-body{font-size:1.07rem;line-height:1.78;color:#25352a}
.post-body > * + *{margin-top:1.2rem}
.post-body > p:first-of-type{font-size:1.16rem;color:var(--ink)}
.post-body h2{font-size:1.62rem;font-weight:800;margin-top:2.6rem;color:var(--ink);letter-spacing:-.015em}
.post-body h3{font-size:1.26rem;font-weight:700;margin-top:2rem;color:var(--ink)}
.post-body a{color:var(--green-deep);text-decoration:underline;text-underline-offset:.18em;
  text-decoration-thickness:1px;transition:color .18s ease}
.post-body a:hover{color:var(--orange)}
.post-body ul,.post-body ol{padding-left:1.35rem}
.post-body li + li{margin-top:.5rem}
.post-body img{border-radius:18px;margin-inline:auto}
.post-body blockquote{position:relative;background:var(--mint);border-radius:20px;padding:1.5rem 1.6rem 1.5rem 2.4rem;
  font-size:1.1rem;color:var(--green-dark);font-weight:500}
.post-body blockquote::before{content:"";position:absolute;left:1.2rem;top:1.6rem;bottom:1.6rem;width:4px;
  border-radius:4px;background:var(--orange)}
.post-body blockquote p + p{margin-top:.7rem}
.post-body code{background:var(--mint-2);border-radius:6px;padding:.14em .42em;font-size:.9em}
.post-body pre{background:var(--green-dark);color:#e7f2e9;padding:1.2rem 1.3rem;border-radius:18px;overflow-x:auto}
.post-body pre code{background:transparent;color:inherit;padding:0}
.post-body hr{border:0;border-top:1px solid var(--line);margin:2.4rem 0}
.post-body table{width:100%;border-collapse:collapse;font-size:.95rem}
.post-body th,.post-body td{border-bottom:1px solid var(--line);padding:.65rem .75rem;text-align:left}
.post-body th{background:var(--mint)}

.post-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:2.4rem}
.post-tags a{font-size:.82rem;font-weight:600;color:var(--ink-soft);background:var(--mint);
  border-radius:999px;padding:.36rem .85rem;transition:color .18s ease,transform .18s ease}
.post-tags a:hover{color:var(--green-deep);transform:translateY(-1px)}

.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:2.8rem;padding-top:2.2rem;
  border-top:1px solid var(--line)}
.post-nav-item{border-radius:20px;padding:1.15rem 1.3rem;background:#fff;
  box-shadow:0 1px 2px rgba(20,63,35,.06),0 12px 28px -24px rgba(20,63,35,.4);
  transition:transform .24s cubic-bezier(.2,.7,.2,1),box-shadow .24s ease}
.post-nav-item:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(20,63,35,.06),0 26px 48px -28px rgba(20,63,35,.45)}
.post-nav-item span{display:block;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--orange)}
.post-nav-item strong{display:block;margin-top:.4rem;font-size:.98rem;color:var(--ink);line-height:1.35}
.post-nav-item.is-next{text-align:right}

.post-related{background:var(--mint);padding:3.8rem 0 4.4rem}
.post-related-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.8rem}
.post-related-head h2{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}
.post-related-all{font-size:.9rem;font-weight:700;color:var(--green-deep);transition:color .18s ease}
.post-related-all:hover{color:var(--orange)}
/* the related row sits level — the staircase belongs to the index */
.post-related .pgrid .pcard{margin-top:0}
.post-comments{padding:2.6rem 0 3.6rem}
.post-comments .wrap{max-width:min(720px,92vw)}

/* ================================ ARCHIVES ================================ */
.arch-hero{position:relative;overflow:hidden;background:var(--green-dark);color:#fff;padding:3.4rem 0 3rem}
.arch-hero::before{content:"";position:absolute;top:-45%;right:-8%;width:min(580px,54vw);aspect-ratio:1;
  border-radius:50%;background:radial-gradient(circle at 45% 45%,rgba(159,224,173,.22),transparent 66%);
  pointer-events:none}
.arch-hero .wrap{position:relative}
.arch-hero .post-crumb{justify-content:flex-start;color:#a8cdb2}
.arch-hero .post-crumb a{color:#d6ecda}
.arch-hero .post-crumb a:hover{color:#fff}
.arch-hero h1{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:800;letter-spacing:-.03em;margin-top:.9rem}
.arch-desc{margin-top:.95rem;color:#c9e2cd;max-width:60ch}
.arch-hero > .wrap > p{color:#c9e2cd}
.arch-count{margin-top:1.1rem;font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#9fe0ad}

.archx{padding:3.6rem 0 5rem}
.archx-block + .archx-block{margin-top:3.6rem}
.archx-block > h2{font-size:1.35rem;font-weight:800;letter-spacing:-.015em;padding-bottom:.75rem;
  border-bottom:2px solid var(--green-deep);margin-bottom:1.6rem}
.archx-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:1rem}
.archx-topic{border-radius:18px;padding:1.1rem 1.2rem;background:#fff;
  box-shadow:0 1px 2px rgba(20,63,35,.06),0 12px 28px -24px rgba(20,63,35,.4);
  transition:transform .24s cubic-bezier(.2,.7,.2,1),box-shadow .24s ease}
.archx-topic:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(20,63,35,.06),0 26px 48px -28px rgba(20,63,35,.45)}
.archx-topic strong{display:block;font-size:1rem;color:var(--ink)}
.archx-topic span{display:block;margin-top:.22rem;font-size:.8rem;color:var(--ink-soft)}
.archx-year{display:grid;grid-template-columns:130px 1fr;gap:1.5rem;padding:1.6rem 0;border-top:1px solid var(--line)}
.archx-year:first-of-type{border-top:0;padding-top:0}
.archx-year-label span{font-family:'Manrope';font-weight:800;font-size:2.1rem;color:var(--green-deep);
  position:sticky;top:5.5rem;display:inline-block;letter-spacing:-.03em}
.archx-months{display:grid;gap:1.6rem}
.archx-month h3{font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);
  margin-bottom:.7rem}
.archx-month ul{list-style:none}
.archx-month li{display:flex;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.archx-month li:last-child{border-bottom:0}
.archx-day{flex:none;width:58px;font-size:.78rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.archx-month li a{font-weight:600;color:var(--ink);transition:color .18s ease,transform .18s ease}
.archx-month li a:hover{color:var(--green-deep)}
.archx-tags{display:flex;flex-wrap:wrap;gap:.5rem}
.archx-tags a{font-size:.85rem;font-weight:600;color:var(--ink-soft);background:var(--mint);
  border-radius:999px;padding:.4rem .9rem;transition:color .18s ease,transform .18s ease}
.archx-tags a:hover{color:var(--green-deep);transform:translateY(-1px)}

@media (max-width:980px){
  .blog-hero .wrap{grid-template-columns:1fr;gap:1.1rem;align-items:start}
  .blog-hero-lede{padding-bottom:0}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .pgrid .pcard:nth-child(3n+2),.pgrid .pcard:nth-child(3n){margin-top:0}
  .plead{gap:0}
  .plead-media{grid-column:1/13}
  .plead-body{grid-column:2/12;margin-top:-3rem}
}
@media (max-width:640px){
  .pgrid{grid-template-columns:1fr}
  .plead-body{grid-column:1/13;margin-top:-1.5rem;padding:1.5rem 1.4rem;border-radius:20px}
  .post-nav{grid-template-columns:1fr}
  .post-nav-item.is-next{text-align:left}
  .post-media{margin-top:-3.2rem}
  .post-hero.has-media{padding-bottom:4.8rem}
  .archx-year{grid-template-columns:1fr;gap:.9rem}
  .archx-year-label span{position:static;font-size:1.6rem}
  .post-related-head{flex-direction:column;align-items:flex-start;gap:.4rem}
}
@media (prefers-reduced-motion:reduce){
  .pcard,.pcard-media img,.plead-media img,.post-nav-item,.archx-topic,.blog-cat,
  .pager .page-numbers,.post-tags a,.archx-tags a,.post-progress span{transition:none}
  .pcard:hover .pcard-media img,.plead:hover .plead-media img{transform:none}
  .js .pgrid .pcard{transition-delay:0s}
}

/* ---- WordPress admin bar / mobile menu additions (design-neutral) ---- */
.nav-open nav.links{display:flex}
@media (max-width:1080px){
  .nav-open nav.links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:1rem;background:#fff;border-bottom:1px solid var(--line);padding:1.1rem 4vw;box-shadow:var(--shadow)}
  .nav-open nav.links a{width:100%;padding:.35rem 0;font-size:.95rem}
}
