:root { --ink:#132734; --paper:#f7f6f1; --white:#fff; --green:#a9dc4f; --green-dark:#8cc72b; --muted:#617078; --line:#d8ddd8; --serif:"Fraunces", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font:400 1rem/1.6 var(--sans); } a { color:inherit; } img { max-width:100%; display:block; } .skip-link { position:absolute; left:-999px; } .skip-link:focus { left:1rem; top:1rem; z-index:99; background:var(--white); padding:.5rem 1rem; }
.site-header { min-height:76px; padding:1rem 5vw; display:flex; align-items:center; justify-content:space-between; background:rgba(247,246,241,.94); position:sticky; top:0; z-index:10; border-bottom:1px solid transparent; } .brand { text-decoration:none; line-height:1; font:700 1.15rem var(--serif); letter-spacing:-.04em; } .brand span { color:#619505; } .menu-toggle { border:0; background:transparent; font:600 .85rem var(--sans); text-transform:uppercase; letter-spacing:.1em; } .primary-nav { display:none; position:absolute; inset:76px 0 auto; padding:1.2rem 5vw 1.5rem; background:var(--paper); border-bottom:1px solid var(--line); } .primary-nav.open { display:grid; gap:1rem; } .primary-nav a { text-decoration:none; font-weight:600; } .nav-cta { color:#385e00; }
.section { padding:5.5rem 5vw; max-width:1200px; margin:auto; } .hero { padding-top:3.5rem; display:grid; gap:2.5rem; align-items:center; } .eyebrow { margin:0 0 .7rem; color:#5d890d; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.13em; } h1,h2,h3,p { margin-top:0; } h1,h2,h3 { line-height:1.06; letter-spacing:-.05em; } h1,h2 { font-family:var(--serif); } h1 { font-size:clamp(3.15rem,14vw,6.5rem); margin-bottom:1.2rem; } h1 em { color:#659a0c; font-style:normal; } h2 { font-size:clamp(2.2rem,8vw,4rem); margin-bottom:1.1rem; } h3 { font:600 1.5rem var(--serif); } .hero-intro,.section-heading>p { color:var(--muted); max-width:34rem; font-size:1.06rem; } .hero-actions { display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; margin-top:1.7rem; } .button { display:inline-flex; gap:.75rem; align-items:center; padding:.85rem 1.1rem; text-decoration:none; font-weight:700; border-radius:2px; } .button-primary { background:var(--green); } .button-primary:hover { background:var(--green-dark); } .text-link { font-weight:700; text-decoration-thickness:1px; text-underline-offset:4px; } .hero-image { margin:0 auto; position:relative; width:100%; max-width:340px; } .hero-image::before { content:""; position:absolute; inset:auto -.7rem -.7rem auto; width:62%; height:62%; background:var(--green); border-radius:4px; z-index:0; } .hero-image img { position:relative; z-index:1; display:block; width:100%; height:auto; border-radius:4px; box-shadow:0 18px 40px -18px rgba(19,39,52,.45); transition:transform .3s ease, box-shadow .3s ease; } .hero-image:hover img { transform:translateY(-4px); box-shadow:0 26px 50px -20px rgba(19,39,52,.55); } figcaption { position:absolute; z-index:2; bottom:0; right:0; background:var(--ink); color:#fff; padding:.45rem .75rem; font-size:.78rem; }
.stats-band { max-width:1200px; margin:auto; padding:2rem 5vw; display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line); } .stat { background:var(--paper); padding:1.4rem 1rem; text-align:center; } .stat-value { display:block; font:700 2rem/1 var(--serif); letter-spacing:-.04em; color:var(--ink); } .stat-label { display:block; margin-top:.45rem; font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.coaching-section { border-top:1px solid var(--line); } .services-grid { display:grid; gap:1rem; margin-top:2.5rem; } .service-card { min-height:255px; display:flex; flex-direction:column; align-items:flex-start; padding:1.6rem; background:var(--white); border:1px solid var(--line); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; } .service-card:hover { transform:translateY(-4px); border-color:var(--green-dark); box-shadow:0 16px 32px -20px rgba(19,39,52,.4); } .service-card p { color:var(--muted); } .service-card .text-link { margin-top:auto; } .service-number { color:#6c9c18; font-weight:700; font-size:.8rem; letter-spacing:.1em; margin-bottom:1.3rem; }
.venue-section { border-top:1px solid var(--line); }
.about-section { display:grid; gap:2rem; align-items:center; } .about-copy p:not(.eyebrow) { color:var(--muted); max-width:37rem; } .button-secondary { margin-top:.8rem; border:1px solid var(--ink); } .credential-card { background:#e8efe0; padding:1.2rem; } .credential-card img { width:100%; height:auto; display:block; border-radius:2px; } .credential-label { margin:1.3rem 0 .35rem; font-weight:700; } .credential-card p:last-child { margin-bottom:0; color:var(--muted); }
.faq-section { border-top:1px solid var(--line); } .faq-list { margin-top:2.3rem; border-top:1px solid var(--line); } details { border-bottom:1px solid var(--line); padding:1.05rem 0; } summary { cursor:pointer; list-style:none; font-weight:700; padding-right:2rem; position:relative; } summary::after { content:"+"; position:absolute; right:.2rem; font-size:1.4rem; font-weight:400; top:-.25rem; } details[open] summary::after { content:"–"; } details p { margin:1rem 0 0; color:var(--muted); max-width:43rem; }
.booking-section { padding:4.5rem 5vw; display:grid; gap:2rem; background:var(--ink); color:#fff; } .booking-section .eyebrow { color:var(--green); } .booking-section h2 { margin-bottom:.8rem; } .booking-copy>p:not(.eyebrow) { color:#bec8cc; } .calendly-inline-widget { min-width:320px; height:700px; overflow:hidden; background:#fff; }
.site-footer { padding:2.5rem 5vw; display:grid; gap:.65rem; background:#0d1d27; color:#edf1eb; font-size:.88rem; } .site-footer a:not(.brand) { color:var(--green); } .site-footer p { margin:0; color:#b6c1c5; } .copyright { margin-top:1.25rem!important; font-size:.75rem; }
@media (min-width:720px) { .site-header { padding-left:7vw; padding-right:7vw; } .menu-toggle { display:none; } .primary-nav { position:static; display:flex; align-items:center; gap:1.5rem; padding:0; background:none; border:0; } .nav-cta { padding:.55rem .8rem; border:1px solid var(--ink); } .section { padding:7.5rem 7vw; } .hero { grid-template-columns:1.05fr .8fr; gap:6vw; min-height:calc(100vh - 76px); } .stats-band { grid-template-columns:repeat(4,1fr); padding:2.5rem 7vw; } .services-grid { grid-template-columns:repeat(3,1fr); } .about-section { grid-template-columns:1.4fr .7fr; gap:7vw; } .booking-section { grid-template-columns:1fr 1fr; padding:6rem 12vw; align-items:center; } .site-footer { padding-left:7vw; padding-right:7vw; } }
@media (min-width:1050px) { .section { padding-left:0; padding-right:0; } .site-header { padding-left:max(5vw, calc((100vw - 1200px)/2)); padding-right:max(5vw, calc((100vw - 1200px)/2)); } .stats-band { padding-left:max(5vw, calc((100vw - 1200px)/2)); padding-right:max(5vw, calc((100vw - 1200px)/2)); } }
