:root{--deep:#23402a;--s1:#2b4f32;--s2:#33603b;--lime:#b9d66a;--leaf:#e3ebcb;--soil:#5a4632;--ink:#1c2a1f;--white:#fff}
*{box-sizing:border-box}
body{margin:0;background:var(--white);color:var(--ink);font:400 1.0625rem/1.6 Karla,system-ui,sans-serif}
h1,h2,h3{font-family:"Zilla Slab",Georgia,serif;line-height:1.1;margin:0}
h2{font-size:clamp(1.75rem,3.6vw,2.5rem);font-weight:700;color:var(--deep)}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px}

.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(16px,4vw,48px);background:var(--deep);color:var(--white)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo svg{width:42px;height:42px}
.logo span{font:700 1.3rem/1 "Zilla Slab",serif}
.logo small{display:block;font:500 .85rem Karla,sans-serif;color:var(--lime);margin-top:3px}
.bar-call{font-weight:700;text-decoration:none;border:2px solid var(--lime);color:var(--lime);padding:8px 14px;border-radius:999px}
.bar-call:hover{background:var(--lime);color:var(--deep)}

.hero{background:repeating-linear-gradient(100deg,var(--s1) 0 90px,var(--s2) 90px 180px);color:var(--white);padding:clamp(56px,9vw,112px) clamp(16px,4vw,48px)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end}
.hero-in{max-width:760px}
.hero-flag{width:clamp(220px,24vw,300px);height:auto;margin-bottom:calc(-1 * clamp(56px,9vw,112px))}
.since{display:inline-block;background:var(--lime);color:var(--deep);font-weight:700;padding:4px 12px;border-radius:4px;font-size:.95rem}
.hero h1{font-size:clamp(2.3rem,5.6vw,4.2rem);margin-top:18px;letter-spacing:-.01em}
.hero-lede{margin-top:18px;font-size:1.2rem;max-width:48ch;color:#e6efd9}
.hero-services{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.hero-services li{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);padding:5px 12px;border-radius:999px;font-size:.95rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:6px;font:700 1rem Karla,sans-serif;text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn-lime{background:var(--lime);color:var(--deep)}
.btn-lime:hover{background:#cfe68c}
.btn-line{border-color:var(--white);color:var(--white)}
.btn-line:hover{background:var(--white);color:var(--deep)}

.program{padding:80px clamp(16px,4vw,48px);max-width:1200px;margin:0 auto}
.sec-lede{margin-top:10px;color:#4b5a4d;font-size:1.1rem}
.season{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:6px solid var(--deep)}
.season li{padding:20px 16px 8px 0;position:relative}
.season li::before{content:"";position:absolute;top:-14px;left:0;width:20px;height:20px;border-radius:50%;background:var(--lime);border:4px solid var(--deep)}
.when{display:block;font-weight:700;color:var(--soil);font-size:.95rem;margin-top:6px}
.season h3{font-size:1.2rem;margin:6px 0 6px;color:var(--deep)}
.season p{font-size:.95rem;color:#4b5a4d}

.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;padding:72px clamp(16px,4vw,48px);background:var(--leaf)}
.hours dl{margin:24px 0 0}
.hours dl div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:2px dotted #a9b98a}
.hours dt{font-weight:500}.hours dd{margin:0;font-weight:700}
.hours-note{margin-top:20px;color:#4b5a4d;max-width:40ch}
.map{width:100%;height:auto;display:block;margin-top:20px;border-radius:10px;border:3px solid var(--deep)}
.area-note{margin-top:12px;color:#4b5a4d}

.reviews{padding:80px clamp(16px,4vw,48px);max-width:1200px;margin:0 auto}
.rev-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sample-tag{font-size:.85rem;color:#6a756b}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:32px}
.rev-grid figure{margin:0;padding-left:20px;border-left:4px solid var(--lime)}
.stars{color:#c9961a;letter-spacing:2px}
blockquote{margin:10px 0 12px;font:500 1.15rem/1.45 "Zilla Slab",serif;color:var(--ink)}
figcaption{font-weight:700;color:var(--soil);font-size:.95rem}

.quote{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:72px clamp(16px,4vw,48px) 96px;background:var(--deep);color:var(--white)}
.quote h2{color:var(--lime)}
.quote-copy p{margin-top:14px;max-width:40ch;color:#e6efd9;font-size:1.1rem}
.qform{display:grid;gap:14px}
.qform label{display:grid;gap:6px;font-weight:700;font-size:.95rem}
.qform input,.qform select{font:inherit;font-weight:400;min-height:48px;padding:10px 12px;border-radius:6px;border:2px solid var(--lime);background:#fff;color:var(--ink);width:100%}
.demo-note{background:var(--lime);color:var(--deep);padding:8px 12px;border-radius:6px;font-weight:700;font-size:.9rem}
.form-status{min-height:1.5em;color:var(--lime);font-weight:700}

.foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:32px clamp(16px,4vw,48px) 40px;background:#182d1e;color:#cbd8c3;font-size:.95rem}
.foot strong{color:var(--white)}

.callbar{display:none}
@media (max-width:860px){
  .hero{grid-template-columns:1fr}
  .hero-flag{display:none}
  .season{grid-template-columns:1fr;border-top:0;border-left:6px solid var(--deep);margin-left:8px}
  .season li{padding:0 0 22px 26px}
  .season li::before{top:4px;left:-14px}
  .when{margin-top:0}
  .split,.quote{grid-template-columns:1fr}
  .rev-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .bar-call{display:none}
  .callbar{display:flex;align-items:center;justify-content:center;position:fixed;left:12px;right:12px;bottom:12px;min-height:56px;border-radius:10px;background:var(--lime);color:var(--deep);font-weight:700;font-size:1.1rem;text-decoration:none;box-shadow:0 6px 20px rgba(0,0,0,.25);z-index:40}
  .foot{padding-bottom:96px}
}
