/* Tanglewood Greens comp stylesheet, shipped verbatim from _internal/mockups/tanglewood-greens-v2/assets/tw.css by sync-from-comp.py.
   Only change: url() paths point at the theme's assets/. Fixes go in theme-overrides.css. */
/* ============================================================
   Tanglewood Greens — Homepage mockup (Bear North Digital)
   Brand: tanglewoodgreens.com Elementor kit
   greens #003B28 / #005B3B / #42705F / sage #8FB3A6
   cream #EFEEE1 / taupe #A1A087
   Display: Noah Head (self-hosted). Body: freight-sans-pro
   (Adobe, domain-locked) with Source Sans 3 as the portable match.
   Pattern: newworks destination hero + burkhardt facet quick-nav.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

@font-face{
  font-family:'Noah Head';
  src:url('../assets/fonts/noahhead-medium-webfont.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Noah Head';
  src:url('../assets/fonts/noahhead-bold-webfont.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Noah Head';
  src:url('../assets/fonts/noahhead-extrabold-webfont.woff2') format('woff2');
  font-weight:800;font-style:normal;font-display:swap;
}

:root{
  --green-dark:#003B28; --green:#005B3B; --green-mid:#42705F; --sage:#8FB3A6;
  --cream:#EFEEE1; --paper:#F9F9F7; --taupe:#A1A087; --white:#fff;
  --ink:#26291f; --muted:#686C5B;  /* was #6f7361 (4.18:1 on cream); 4.63:1 passes AA, 2026-10-07 */
  --head:'Noah Head','Helvetica Neue',Arial,sans-serif;
  --body:'freight-sans-pro','Source Sans 3','Helvetica Neue',Arial,sans-serif;
  --ui:'sweet-gothic','Source Sans 3','Helvetica Neue',Arial,sans-serif;
  --wrap:1180px;
  --gutter:24px;
  --shadow-card:0 18px 48px rgba(0,40,28,.07);
  --shadow-btn:0 12px 30px rgba(0,25,17,.22);
  --hairline:1px solid rgba(0,59,40,.10);
}

*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:100px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.6;font-size:18px;-webkit-font-smoothing:antialiased}
body.nav-open{overflow:hidden}
.container{max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);width:100%}
h1,h2,h3,h4,.display{font-family:var(--head);font-weight:800;line-height:1.06;color:var(--green-dark);letter-spacing:.2px}
a{color:var(--green);text-decoration:none}
img{max-width:100%;display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--ui);font-weight:600;font-size:14px;
  letter-spacing:2.2px;text-transform:uppercase;padding:18px 36px;border-radius:2px;border:2px solid transparent;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;white-space:nowrap;line-height:1}
.btn:hover{transform:translateY(-2px)}
.btn-book{background:var(--cream);color:var(--green-dark);box-shadow:var(--shadow-btn)}
.btn-book:hover{background:#fff;box-shadow:0 14px 30px rgba(0,25,17,.36)}
.btn-green{background:var(--green-dark);color:var(--cream);box-shadow:0 10px 24px rgba(0,40,28,.22)}
.btn-green:hover{background:var(--green);color:#fff}
.btn-white{background:#fff;color:var(--green-dark);box-shadow:0 8px 20px rgba(0,25,17,.18)}
.btn-white:hover{background:var(--cream)}
.btn-sm{padding:13px 22px;font-size:13px;letter-spacing:1.4px}

/* ---------- utility bar ---------- */
.utility{background:var(--green-dark);color:var(--cream);font-family:var(--ui);font-size:13.5px;letter-spacing:.6px}
.utility .container{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:42px;padding-top:6px;padding-bottom:6px}
.utility a{color:var(--cream)}
.utility a:hover{color:var(--sage)}
.utility__promo{display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.utility__promo .flag{display:inline-block;background:var(--sage);color:var(--green-dark);font-weight:700;font-size:11px;
  letter-spacing:1.4px;text-transform:uppercase;border-radius:2px;padding:3px 8px;flex:none}
.utility__promo u{text-underline-offset:3px}
.utility__right{display:flex;align-items:center;gap:20px;white-space:nowrap}
.utility__right .divider{opacity:.35}
.utility .deal-short{display:none}

/* ---------- header (transparent over the hero, solid on scroll, like the live site) ---------- */
.header{position:fixed;top:42px;left:0;right:0;z-index:80;
  background:linear-gradient(180deg,rgba(2,26,18,.55) 0%,rgba(2,26,18,.18) 72%,rgba(2,26,18,0) 100%);
  transition:top .25s ease,background .25s ease,box-shadow .25s ease}
.header .container{display:flex;align-items:center;gap:28px;height:86px;position:relative}
.header .container::after{content:'';position:absolute;left:var(--gutter);right:var(--gutter);bottom:0;height:1px;background:rgba(255,255,255,.22);transition:opacity .25s}
.header.scrolled{top:0;background:var(--green);box-shadow:0 2px 18px rgba(0,20,13,.28)}
.header.scrolled .container::after{opacity:0}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:46px;width:auto}
.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav__item{position:relative}
.nav__link{display:flex;align-items:center;gap:7px;color:#fff;font-family:var(--ui);font-weight:600;font-size:13.5px;
  letter-spacing:1.5px;text-transform:uppercase;padding:12px 13px;border-radius:3px;white-space:nowrap}
.nav__link:hover{color:var(--sage)}
.nav__link .caret{width:9px;height:9px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.nav__item:hover .nav__link .caret{transform:rotate(225deg) translateY(-1px)}
.nav__menu{position:absolute;top:calc(100% + 10px);left:0;min-width:236px;background:#fff;border-radius:6px;
  box-shadow:0 22px 50px rgba(0,25,17,.24);padding:10px;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s}
.nav__item:hover .nav__menu,.nav__item:focus-within .nav__menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav__menu::before{content:'';position:absolute;top:-10px;left:0;right:0;height:10px}
.nav__menu a{display:block;padding:11px 14px;border-radius:4px;color:var(--green-dark);font-family:var(--ui);
  font-weight:600;font-size:13.5px;letter-spacing:.8px}
.nav__menu a:hover{background:var(--cream)}
.nav__menu a span{display:block;font-family:var(--body);font-weight:400;font-size:13px;letter-spacing:0;color:var(--muted);text-transform:none;margin-top:1px}
.header__cta{display:flex;align-items:center;gap:14px;flex:none}
.header__phone{color:#fff;font-family:var(--ui);font-weight:700;font-size:15px;letter-spacing:.8px;white-space:nowrap}
.header__phone:hover{color:var(--sage)}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:10px;margin-right:-10px}
.menu-toggle .bars{display:block;width:26px;height:2px;background:#fff;position:relative;transition:background .15s}
.menu-toggle .bars::before,.menu-toggle .bars::after{content:'';position:absolute;left:0;width:26px;height:2px;background:#fff;transition:transform .2s,top .2s}
.menu-toggle .bars::before{top:-8px}
.menu-toggle .bars::after{top:8px}
body.nav-open .menu-toggle .bars{background:transparent}
body.nav-open .menu-toggle .bars::before{top:0;transform:rotate(45deg)}
body.nav-open .menu-toggle .bars::after{top:0;transform:rotate(-45deg)}

/* ---------- mobile drawer ---------- */
.drawer{position:fixed;inset:0 0 0 auto;width:min(420px,92vw);z-index:90;background:var(--green-dark);color:#fff;
  transform:translateX(103%);visibility:hidden;transition:transform .32s cubic-bezier(.2,.7,.2,1),visibility 0s linear .32s;
  display:flex;flex-direction:column;overflow-y:auto}
body.nav-open .drawer{transform:translateX(0);visibility:visible;transition:transform .32s cubic-bezier(.2,.7,.2,1)}
.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid rgba(255,255,255,.14)}
.drawer__head img{height:38px}
.drawer__close{background:none;border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer;padding:4px 8px}
.drawer__nav{padding:10px 8px;flex:1}
.drawer__group{border-bottom:1px solid rgba(255,255,255,.10)}
.drawer__group>button,.drawer__group>a{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;
  color:#fff;font-family:var(--ui);font-weight:600;font-size:15px;letter-spacing:1.6px;text-transform:uppercase;
  padding:17px 16px;cursor:pointer;text-align:left}
.drawer__group>button .caret{width:10px;height:10px;border-right:2px solid var(--sage);border-bottom:2px solid var(--sage);
  transform:rotate(45deg);transition:transform .2s;flex:none}
.drawer__group.open>button .caret{transform:rotate(225deg)}
.drawer__sub{max-height:0;overflow:hidden;transition:max-height .28s ease}
.drawer__group.open .drawer__sub{max-height:320px}
.drawer__sub a{display:block;color:var(--cream);opacity:.92;font-size:16px;padding:11px 16px 11px 28px}
.drawer__sub a:hover{color:var(--sage)}
.drawer__foot{padding:20px 22px 26px;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:12px}
.drawer__foot .btn{width:100%}
.drawer__call{display:block;text-align:center;color:#fff;font-family:var(--head);font-weight:700;font-size:26px}
.drawer__hours{text-align:center;color:var(--sage);font-size:14.5px;line-height:1.5}
.drawer__social{display:flex;justify-content:center;gap:18px}
.drawer__social a{color:var(--cream);opacity:.85}
.drawer__social a:hover{opacity:1;color:var(--sage)}
.drawer__social svg{width:22px;height:22px;fill:currentColor}
.nav-overlay{position:fixed;inset:0;background:rgba(2,20,14,.55);z-index:85;opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s}
body.nav-open .nav-overlay{opacity:1;visibility:visible}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100vh,940px);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 38%;animation:heroZoom 14s ease-out forwards}
@keyframes heroZoom{from{transform:scale(1.07)}to{transform:scale(1)}}
/* staggered entrance */
.hero__eyebrow,.hero h1,.hero__headline,.hero__sub,.hero__actions,.hero__trust{opacity:0;transform:translateY(22px);
  animation:heroUp .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero h1{animation-delay:.12s}
.hero__headline{animation-delay:.22s}
.hero__sub{animation-delay:.38s}
.hero__actions{animation-delay:.52s}
.hero__trust{animation-delay:.66s}
@keyframes heroUp{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .hero__media img{animation:none}
  .hero__eyebrow,.hero h1,.hero__headline,.hero__sub,.hero__actions,.hero__trust{animation:none;opacity:1;transform:none}
}
.hero__scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(2,26,18,.58) 0%,rgba(2,26,18,.22) 30%,rgba(2,26,18,.28) 62%,rgba(2,26,18,.74) 100%)}
.hero .container{padding-top:150px;padding-bottom:150px}
.hero__inner{max-width:880px;margin:0 auto}
.hero__eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--ui);font-weight:600;letter-spacing:3px;
  text-transform:uppercase;font-size:13.5px;color:var(--cream);margin-bottom:26px;white-space:nowrap}
.hero__eyebrow::before,.hero__eyebrow::after{content:'';width:34px;height:1px;background:var(--sage);opacity:.85}
.hero h1{font-size:14.5px;font-family:var(--ui);font-weight:700;letter-spacing:2.4px;text-transform:uppercase;color:rgba(239,238,225,.92);line-height:1.45;margin-bottom:14px;text-shadow:0 1px 14px rgba(0,0,0,.55)}
.hero__headline{font-family:var(--head);font-weight:800;color:#fff;font-size:clamp(42px,6.4vw,84px);line-height:1.0;
  letter-spacing:.4px;text-shadow:0 2px 30px rgba(0,0,0,.35);text-wrap:balance}
.hero__sub{font-size:clamp(18px,2.1vw,22px);margin:26px auto 0;max-width:620px;color:rgba(255,255,255,.94);line-height:1.55}
.hero__actions{display:flex;justify-content:center;gap:16px;margin-top:38px;flex-wrap:wrap}
.hero__trust{display:inline-flex;align-items:center;gap:10px;margin-top:30px;font-size:16px;color:rgba(255,255,255,.95)}
.hero__trust .stars{color:#F5C452;letter-spacing:2px;font-size:17px}
.hero__trust a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.hero__trust a:hover{color:var(--sage)}

/* ---------- facet quick-nav ---------- */
.facets{position:relative;z-index:5;margin-top:-84px;padding-bottom:10px}
.facets__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.facet{position:relative;display:block;border-radius:8px;overflow:hidden;min-height:230px;box-shadow:0 18px 42px rgba(0,25,17,.22);
  transition:transform .22s ease,box-shadow .22s ease;isolation:isolate}
.facet:hover{transform:translateY(-5px);box-shadow:0 26px 54px rgba(0,25,17,.30)}
.facet img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .4s ease}
.facet:hover img{transform:scale(1.05)}
.facet::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,26,18,.06) 30%,rgba(2,26,18,.82) 100%)}
.facet__body{position:absolute;left:0;right:0;bottom:0;padding:20px 22px;color:#fff}
.facet__body h3{color:#fff;font-size:23px;font-weight:800;letter-spacing:.4px}
.facet__body p{font-size:14.5px;color:rgba(255,255,255,.88);margin-top:4px;line-height:1.4}
.facet__body .go{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-family:var(--ui);font-weight:700;
  font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--sage)}
.facet__body .go::after{content:'\2192'}

/* ---------- watermark device (echoes the live site's oversized logomark) ---------- */
.wm{position:relative;overflow:hidden}
.wm>.container{position:relative;z-index:2}
.wm::before{content:'';position:absolute;z-index:1;width:640px;height:640px;pointer-events:none;
  background:url('../assets/img/logomark-white.png') no-repeat center/contain;opacity:.055}
.wm--right::before{right:-150px;top:50%;transform:translateY(-50%) rotate(-6deg)}
.wm--left::before{left:-170px;bottom:-140px;transform:rotate(5deg)}
.wm--light::before{background-image:url('../assets/img/logomark-green.png');opacity:.05}

/* ---------- sections ---------- */
.section{padding:108px 0}
.section--cream{background:var(--cream)}
.section--white{background:#fff}
.section--green{background:var(--green-dark);color:#fff}
.section--green h2,.section--green h3{color:#fff}
.kicker{display:inline-flex;align-items:center;gap:14px;font-family:var(--ui);font-weight:600;letter-spacing:3.2px;text-transform:uppercase;font-size:12.5px;color:var(--green-mid);margin-bottom:18px}
.kicker::before{content:'';width:34px;height:1px;background:var(--sage)}
.section__head--center .kicker::after{content:'';width:34px;height:1px;background:var(--sage)}
.section--green .kicker{color:var(--sage)}
.title{font-size:clamp(32px,4.2vw,50px);margin-bottom:22px;text-wrap:balance;font-weight:700}
.lede{font-size:20px;max-width:62ch;color:var(--muted);line-height:1.65}
.section--green .lede{color:rgba(255,255,255,.88)}
.section__head{max-width:760px;margin-bottom:52px}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center}
.section__head--center .lede{margin-left:auto;margin-right:auto}

/* split */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:76px;align-items:center}
.split.qcard>.split__media{order:2}
.split__media{position:relative}
.split__media img{border-radius:12px;box-shadow:0 26px 56px rgba(0,40,28,.16);width:100%;aspect-ratio:4/3;object-fit:cover}
.split__media .badge-photo{position:absolute;right:-18px;bottom:-26px;width:44%;border-radius:12px;
  box-shadow:0 18px 40px rgba(0,40,28,.26);border:6px solid #fff;aspect-ratio:1/1;object-fit:cover}
.split__txt h2{margin-bottom:18px}
.wv-logo{height:58px;width:auto;margin:2px 0 16px}
.split__txt p{color:var(--muted);line-height:1.7}
.split__txt p+p{margin-top:16px}
.section--green .split__txt p{color:rgba(255,255,255,.86)}
.split__actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}

/* checline list */
.checks{list-style:none;display:grid;gap:13px;margin-top:22px}
.checks li{position:relative;padding-left:34px;font-size:17px}
.checks li::before{content:'';position:absolute;left:0;top:2px;width:21px;height:21px;border-radius:50%;background:var(--sage);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003B28' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size:13px;background-repeat:no-repeat;background-position:center}

/* rate cards */
.rates{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.rate{background:#fff;border:var(--hairline);border-radius:10px;padding:30px 26px;text-align:center;transition:box-shadow .25s ease,transform .25s ease}
.rate:hover{box-shadow:var(--shadow-card);transform:translateY(-3px)}
.section--cream .rate{background:var(--paper)}
.rate .label{font-family:var(--ui);font-weight:600;font-size:12px;letter-spacing:2.6px;text-transform:uppercase;color:var(--green-mid)}
.rate .price{font-family:var(--head);font-weight:700;font-size:52px;color:var(--green-dark);line-height:1.05;margin:12px 0 2px}
.rate .per{font-size:14.5px;color:var(--muted)}
.rate .note{font-size:14.5px;color:var(--muted);margin-top:12px;line-height:1.5}
.rate--flag{position:relative;border:2px solid var(--green);overflow:hidden}
.rate--flag .flag{position:absolute;top:14px;right:-42px;transform:rotate(38deg);background:var(--green);color:var(--cream);
  font-family:var(--ui);font-weight:700;font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;padding:5px 44px}

/* stat band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.stat{padding:6px 18px;border-left:1px solid rgba(239,238,225,.16)}
.stat:first-child{border-left:0}
.stat .n{font-family:var(--head);font-weight:700;font-size:clamp(36px,4.4vw,56px);color:var(--cream);line-height:1}
.stat .l{font-family:var(--ui);font-weight:600;font-size:12px;letter-spacing:2.4px;text-transform:uppercase;color:var(--sage);margin-top:12px}

/* promo band */
.promo{background:linear-gradient(120deg,var(--green) 0%,var(--green-dark) 78%);color:#fff;position:relative;overflow:hidden}
.promo::after{content:'';position:absolute;right:-130px;top:50%;transform:translateY(-50%) rotate(-8deg);width:480px;height:480px;pointer-events:none;
  background:url('../assets/img/logomark-white.png') no-repeat center/contain;opacity:.07}
.promo .container{display:flex;align-items:center;justify-content:space-between;gap:34px;padding-top:54px;padding-bottom:54px;position:relative;z-index:2}
.promo__txt .flag{display:inline-block;background:var(--sage);color:var(--green-dark);font-family:var(--ui);font-weight:700;
  font-size:12px;letter-spacing:2px;text-transform:uppercase;border-radius:2px;padding:5px 12px;margin-bottom:14px}
.promo__txt h2{color:#fff;font-size:clamp(28px,3.6vw,42px)}
.promo__txt p{color:rgba(255,255,255,.88);margin-top:10px;max-width:56ch}
.promo__txt p small{display:block;margin-top:6px;font-size:13.5px;color:rgba(255,255,255,.62)}
.promo .btn{flex:none}

/* testimonials */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.quote{position:relative;background:#fff;border:var(--hairline);border-radius:10px;padding:34px 30px 28px;display:flex;flex-direction:column;gap:16px;transition:box-shadow .25s ease,transform .25s ease}
.quote:hover{box-shadow:var(--shadow-card);transform:translateY(-3px)}
.quote::before{content:'\201C';position:absolute;top:6px;right:22px;font-family:var(--head);font-weight:800;font-size:84px;line-height:1;color:var(--cream);pointer-events:none}
.quote .stars{color:#F5C452;font-size:15px;letter-spacing:3px}
.quote p{font-size:16.5px;line-height:1.65;color:var(--ink);flex:1}
.quote footer{display:flex;align-items:center;gap:12px}
.quote .avatar{width:42px;height:42px;border-radius:50%;background:var(--green-dark);color:var(--cream);display:flex;
  align-items:center;justify-content:center;font-family:var(--head);font-weight:700;font-size:16px;flex:none}
.quote .who b{display:block;font-family:var(--ui);font-weight:700;font-size:14.5px;letter-spacing:.4px;color:var(--green-dark)}
.quote .who span{font-size:13px;color:var(--muted)}
.quotes__foot{text-align:center;margin-top:34px}
.quotes__foot a{font-family:var(--ui);font-weight:700;letter-spacing:1.4px;text-transform:uppercase;font-size:13.5px;
  color:var(--green);text-decoration:underline;text-underline-offset:4px}

/* drive time */
.drive{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.drive__card{background:#fff;border:var(--hairline);border-top:3px solid var(--sage);border-radius:10px;padding:26px 24px;text-align:center;transition:box-shadow .25s ease,transform .25s ease}
.drive__card:hover{box-shadow:var(--shadow-card);transform:translateY(-3px)}
.drive__card .city{font-family:var(--head);font-weight:700;font-size:21px;color:var(--green-dark)}
.drive__card .time{font-family:var(--head);font-weight:800;font-size:34px;color:var(--green);margin-top:6px;line-height:1}
.drive__card .via{font-size:13.5px;color:var(--muted);margin-top:8px}

/* faq */
.faq{max-width:820px;margin:0 auto}
.faq details{background:#fff;border:var(--hairline);border-radius:10px;margin-bottom:12px;overflow:hidden;transition:box-shadow .25s ease}
.faq details[open]{box-shadow:var(--shadow-card)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:22px 26px;font-family:var(--head);font-weight:700;font-size:19px;color:var(--green-dark)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ind{flex:none;width:26px;height:26px;border-radius:50%;background:var(--cream);position:relative}
.faq summary .ind::before,.faq summary .ind::after{content:'';position:absolute;top:50%;left:50%;width:12px;height:2px;
  background:var(--green-dark);transform:translate(-50%,-50%)}
.faq summary .ind::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .2s}
.faq details[open] summary .ind::after{transform:translate(-50%,-50%) rotate(0)}
.faq details>div{padding:0 26px 24px;color:var(--muted);line-height:1.7}

/* final cta */
.final{position:relative;color:#fff;text-align:center;isolation:isolate;padding:130px 0}
.final__mark{display:block;width:min(340px,64vw);margin:0 auto 26px;opacity:.95}
.final__media{position:absolute;inset:0;z-index:-2}
.final__media img{width:100%;height:100%;object-fit:cover}
.final::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,26,18,.72),rgba(2,26,18,.78))}
.final h2{color:#fff;font-size:clamp(34px,4.6vw,56px);text-wrap:balance}
.final p{color:rgba(255,255,255,.9);max-width:56ch;margin:18px auto 0;font-size:19px}
.final .hero__actions{margin-top:34px}

/* ---------- footer ---------- */
.footer{position:relative;overflow:hidden;background:#04231A;color:rgba(255,255,255,.82)}
.footer::before{content:'';position:absolute;right:-190px;top:-60px;width:760px;height:760px;pointer-events:none;
  background:url('../assets/img/logomark-white.png') no-repeat center/contain;opacity:.04}
.footer>*{position:relative;z-index:2}
.footer a{color:rgba(255,255,255,.82)}
.footer a:hover{color:var(--sage)}
.footer__trust{border-bottom:1px solid rgba(255,255,255,.10)}
.footer__trust .container{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:26px;padding-bottom:26px;flex-wrap:wrap}
.footer__trust .item{display:flex;align-items:center;gap:11px;font-family:var(--ui);font-weight:600;font-size:13.5px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--cream);white-space:nowrap}
.footer__trust .item svg{width:22px;height:22px;fill:none;stroke:var(--sage);stroke-width:1.8;flex:none}
.footer__grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1.2fr;gap:44px;padding:64px 0 50px}
.footer__brand img{height:52px;margin-bottom:18px}
.footer__brand p{font-size:15.5px;line-height:1.7;max-width:34ch}
.footer__brand .social{display:flex;gap:16px;margin-top:20px}
.footer__brand .social svg{width:21px;height:21px;fill:currentColor}
.footer h4{color:#fff;font-family:var(--ui);font-weight:700;font-size:13.5px;letter-spacing:2px;text-transform:uppercase;margin-bottom:18px}
.footer ul{list-style:none;display:grid;gap:11px;font-size:15.5px}
.footer__visit p{font-size:15.5px;line-height:1.75}
.footer__visit p+p{margin-top:14px}
.footer__visit .tel{font-family:var(--head);font-weight:700;font-size:23px;color:#fff;display:inline-block;margin-top:2px}
.footer__area{border-top:1px solid rgba(255,255,255,.10)}
.footer__area .container{padding-top:22px;padding-bottom:22px;font-size:14px;line-height:1.8;color:rgba(255,255,255,.55)}
.footer__area b{color:rgba(255,255,255,.78);font-weight:600}
.footer__bottom{border-top:1px solid rgba(255,255,255,.10)}
.footer__bottom .container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;padding-bottom:20px;
  font-size:13.5px;color:rgba(255,255,255,.5);flex-wrap:wrap}
.footer__bottom .top{display:inline-flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:600;font-size:12.5px;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--cream);cursor:pointer;background:none;border:0}
.footer__bottom .top:hover{color:var(--sage)}
.footer__bottom .top .up{width:10px;height:10px;border-left:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg) translate(2px,2px)}

/* ---------- sticky mobile bar ---------- */
.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;grid-template-columns:1.4fr 1fr 1fr;
  box-shadow:0 -6px 24px rgba(0,20,13,.28)}
.mobile-bar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 6px;font-family:var(--ui);
  font-weight:700;font-size:12.5px;letter-spacing:1.2px;text-transform:uppercase;white-space:nowrap}
.mobile-bar .book{background:var(--cream);color:var(--green-dark)}
.mobile-bar .call{background:var(--green);color:#fff}
.mobile-bar .dir{background:var(--green-dark);color:#fff}
.mobile-bar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;flex:none}

/* ---------- reveal (staggered within grids) ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .65s ease,transform .65s ease}
.reveal.in{opacity:1;transform:none}
.facet:nth-child(2),.rate:nth-child(2),.quote:nth-child(2),.drive__card:nth-child(2),.stat:nth-child(2){transition-delay:.1s}
.facet:nth-child(3),.rate:nth-child(3),.quote:nth-child(3),.drive__card:nth-child(3),.stat:nth-child(3){transition-delay:.2s}
.facet:nth-child(4),.drive__card:nth-child(4),.stat:nth-child(4){transition-delay:.3s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1080px){
  .nav{display:none}
  .header__phone{display:none}
  /* .nav carries the margin-left:auto that right-aligns this row, but it is
     display:none below 1080px, so the CTA group has to take over the push.
     Without this the hamburger sits glued to the wordmark with up to 722px
     of dead space beside it. Inherited from v1. */
  .header__cta{margin-left:auto}
  .menu-toggle{display:block}
  .header__cta .btn{display:none}
  .header .container{height:74px}
  .brand img{height:40px}
  .facets__grid{grid-template-columns:repeat(2,1fr)}
  .facets{margin-top:-56px}
  .split{grid-template-columns:1fr;gap:40px}
  .split.qcard>.split__media{order:0}
  .footer__grid{grid-template-columns:1fr 1fr;gap:36px}
}
@media (max-width:720px){
  :root{--gutter:20px}
  body{font-size:17px}
  .utility .container{justify-content:center}
  .utility__right{display:none}
  .utility .deal-long{display:none}
  .utility .deal-short{display:inline;white-space:nowrap}
  .section{padding:64px 0}
  .section__head{margin-bottom:36px}
  .hero{min-height:88vh}
  .hero .container{padding-top:84px;padding-bottom:118px}
  .hero__eyebrow{font-size:11.5px;letter-spacing:2.2px}
  .hero__eyebrow::before,.hero__eyebrow::after{width:22px}
  .hero h1{font-size:12.5px;letter-spacing:1.8px}
  .hero__actions .btn{width:100%;max-width:360px}
  .facets__grid{grid-template-columns:1fr;gap:14px}
  .facet{min-height:170px}
  .facets{margin-top:-48px}
  .rates{grid-template-columns:1fr;gap:14px}
  .stats{grid-template-columns:repeat(2,1fr);gap:26px 12px}
  .promo .container{flex-direction:column;align-items:flex-start;padding-top:44px;padding-bottom:44px}
  .quotes{grid-template-columns:1fr;gap:14px}
  .drive{grid-template-columns:repeat(2,1fr);gap:12px}
  .wm::before{width:380px;height:380px}
  .wm--right::before{right:-140px}
  .stats{gap:0}
  .stat{padding:14px 10px}
  .stat:nth-child(odd){border-left:0}
  .stat:nth-child(-n+2){border-bottom:1px solid rgba(239,238,225,.16);padding-bottom:22px}
  .stat:nth-child(n+3){padding-top:22px}
  .drive__card .time{font-size:28px}
  .split__media .badge-photo{right:6px;bottom:-20px;border-width:4px}
  .footer__grid{grid-template-columns:1fr;gap:34px;padding:48px 0 40px}
  .footer__trust .container{justify-content:flex-start;gap:14px 22px}
  .mobile-bar{display:grid}
  body{padding-bottom:52px}
  .final{padding:84px 0}
}

/* ============================================================
   v2 additions — Bear North Digital
   Booking bar, course map panel, weekly rhythm, I-94 corridor.
   Extends the v1 token system above; no tokens redefined.
   ============================================================ */

/* hero: no in-hero button now (the booking bar owns the action) */
.hero__media img{object-position:center 46%}
.hero .container{padding-bottom:190px}

/* unify a mixed-source photo library with one gentle grade */
.split__media img,.facet img,.coursemap__figure img{filter:saturate(1.05) contrast(1.03)}

/* ---------- booking bar ---------- */
.bookbar-wrap{position:relative;z-index:6;margin-top:-96px}
.bookbar{background:#fff;border-radius:12px;box-shadow:0 28px 64px rgba(0,30,20,.24);padding:24px 28px 20px;
  border-top:4px solid var(--green)}
.bookbar__title{font-family:var(--head);font-weight:800;font-size:24px;color:var(--green-dark);line-height:1}
.facets{margin-top:46px}

/* ---------- course map panel ---------- */
.coursemap__panel{display:grid;grid-template-columns:1.25fr .85fr;grid-template-areas:'fig facts' 'fig notes' 'fig act';
  gap:22px 44px;align-items:start;background:#fff;border:var(--hairline);border-radius:14px;padding:34px;
  box-shadow:var(--shadow-card)}
.coursemap__figure{grid-area:fig;margin:0}
.coursemap__figure img{border-radius:10px;width:100%;background:var(--cream)}
.coursemap__facts{grid-area:facts;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cfact{text-align:center;background:var(--cream);border-radius:8px;padding:16px 6px}
.cfact__n{display:block;font-family:var(--head);font-weight:800;font-size:26px;color:var(--green-dark);line-height:1}
.cfact__l{display:block;font-family:var(--ui);font-weight:600;font-size:10.5px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--green-mid);margin-top:7px}
.coursemap__notes{grid-area:notes;list-style:none;display:grid;gap:14px}
.coursemap__notes li{position:relative;padding-left:26px;font-size:16.5px;color:var(--muted);line-height:1.6}
.coursemap__notes li::before{content:'';position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:50%;background:var(--sage)}
.coursemap__notes b{color:var(--green-dark);font-weight:700}
.coursemap__actions{grid-area:act;display:flex;gap:12px;flex-wrap:wrap}

/* ---------- weekly rhythm ---------- */
.week__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.wcard{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:26px 24px;
  display:flex;flex-direction:column;gap:9px;transition:background .22s ease,transform .22s ease,border-color .22s ease}
.wcard:hover{background:rgba(255,255,255,.10);border-color:rgba(143,179,166,.5);transform:translateY(-4px)}
.wcard__day{font-family:var(--ui);font-weight:700;font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:var(--sage)}
.wcard h3{color:#fff;font-size:24px;font-weight:800}
.wcard p{color:rgba(255,255,255,.82);font-size:16px;line-height:1.6;flex:1}
.wcard a{font-family:var(--ui);font-weight:700;font-size:12.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--sage);margin-top:4px}
.wcard a:hover{color:#fff}
.week__foot{text-align:center;margin-top:34px}
.week__foot a{font-family:var(--ui);font-weight:700;font-size:13.5px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--cream);text-decoration:underline;text-underline-offset:4px}
.week__foot a:hover{color:var(--sage)}

/* ---------- I-94 corridor ---------- */
.corridor{position:relative;margin:60px 0 44px;padding:0 90px}
.corridor__line{position:relative;height:6px;border-radius:100px;
  background:linear-gradient(90deg,var(--sage) 0%,var(--green) 62%,var(--green-dark) 100%)}
.corridor__stops{position:relative;height:132px}
.stop{position:absolute;left:var(--at);top:0;transform:translateX(-50%);width:180px;text-align:center}
.stop__dot{position:absolute;top:-27px;left:50%;transform:translateX(-50%);width:16px;height:16px;border-radius:50%;
  background:#fff;border:3px solid var(--green);box-shadow:0 3px 10px rgba(0,40,28,.22)}
.stop--home .stop__dot{width:26px;height:26px;top:-32px;border-width:4px;border-color:var(--green-dark);background:var(--cream)}
.stop__city{display:block;font-family:var(--head);font-weight:700;font-size:19px;color:var(--green-dark);margin-top:14px}
.stop__mi{display:block;font-family:var(--head);font-weight:800;font-size:30px;color:var(--green);line-height:1.1;margin-top:2px}
.stop--home .stop__mi{color:var(--green-dark)}
.stop__via{display:block;font-size:13.5px;color:var(--muted);margin-top:7px;line-height:1.45}
.corridor__road{position:absolute;left:50%;top:-34px;transform:translateX(-50%);background:var(--green-dark);color:var(--cream);
  font-family:var(--ui);font-weight:700;font-size:11px;letter-spacing:2.2px;text-transform:uppercase;padding:5px 14px;border-radius:3px}
.drive__foot{text-align:center;margin-top:10px}

/* ---------- v2 responsive ---------- */
@media (max-width:1080px){
  .coursemap__panel{grid-template-columns:1fr;grid-template-areas:'fig' 'facts' 'notes' 'act';gap:24px;padding:26px}
  .week__grid{grid-template-columns:repeat(2,1fr)}
  .corridor{padding:0 70px}
  .stop{width:140px}
  .stop__mi{font-size:26px}
}
@media (max-width:720px){
  .hero .container{padding-bottom:120px}
  .bookbar-wrap{margin-top:-70px}
  .bookbar{padding:20px 18px 16px}
  .bookbar__title{font-size:21px}
  .facets{margin-top:34px}
  .coursemap__facts{grid-template-columns:repeat(2,1fr)}
  .week__grid{grid-template-columns:1fr;gap:14px}
  /* corridor becomes a vertical timeline on small screens */
  .corridor{padding:0 0 0 34px;margin:34px 0 30px}
  .corridor__line{position:absolute;left:7px;top:6px;bottom:6px;width:6px;height:auto;
    background:linear-gradient(180deg,var(--sage) 0%,var(--green) 62%,var(--green-dark) 100%)}
  .corridor__stops{height:auto;display:grid;gap:26px}
  .stop{position:static;transform:none;width:auto;text-align:left;padding-left:6px}
  .stop__dot{position:absolute;left:0;top:auto;transform:none;margin-top:6px}
  .stop--home .stop__dot{left:-5px}
  .stop__city{margin-top:0;font-size:18px}
  .stop__mi{font-size:24px;display:inline-block;margin-left:0}
  .corridor__road{position:static;transform:none;display:inline-block;margin-bottom:22px}
}

/* ---------- v2 QA fixes (from the first capture pass) ---------- */

/* the narrow right-hand column of the course panel overflowed with
   two side-by-side buttons; stack them full width instead */
.coursemap__actions{display:grid;grid-template-columns:1fr;gap:11px}
.coursemap__actions .btn{width:100%}

/* facet cards 3 and 4 sit over bright sky; deepen the scrim so the
   white label copy holds its contrast */
.facet::after{background:linear-gradient(180deg,rgba(2,26,18,.10) 18%,rgba(2,26,18,.55) 62%,rgba(2,26,18,.90) 100%)}

/* the golf split now carries an inset photo, so give the media column
   the same breathing room the other splits have */
#golf .split__media{align-self:center}

/* ---------- v2 tap targets (measured, not eyeballed) ----------
   Every interactive control gets a >=44px touch box on mobile.
   Visual size is unchanged; only the hit area grows. */
@media (max-width:720px){
  .menu-toggle{padding:21px 9px;margin-right:-9px}
  .brand{padding:4px 0}
  .utility .deal-short{display:inline-block;padding:11px 0}
  .hero__trust a{display:inline-block;padding:9px 0}


  .wcard a{display:inline-block;padding:12px 0;min-height:44px}
  .week__foot a{display:inline-block;padding:13px 0;min-height:44px}
  .quotes__foot a{display:inline-block;padding:13px 0;min-height:44px}

  .footer ul{gap:0}
  .footer ul li a{display:inline-block;padding:11px 0;min-height:44px}
  .footer__brand .social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:-11px}
  .drawer__social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px}
  .footer__bottom .top{padding:13px 0;min-height:44px}
  .footer__visit .tel{padding:6px 0}
}

/* ---------- v2 fix: mobile corridor geometry ----------
   The stops were position:static, so their absolutely-positioned dots
   anchored to .corridor instead of the stop and stacked on top of the
   Eau Claire label. Give each stop its own positioning context and sit
   the dots on the vertical line (line centre is 10px from the corridor
   edge; stops start at the 34px padding edge). */
@media (max-width:720px){
  .corridor{display:flex;flex-direction:column}
  .corridor__road{order:-1;align-self:flex-start}
  .corridor__stops{order:1}
  /* left:auto is load-bearing: .stop carries left:var(--at) for the
     desktop scale, and position:relative would otherwise offset each
     stop by that percentage and walk them off the line. */
  .stop{position:relative;left:auto}
  .stop__dot{left:-32px;top:4px;margin-top:0}
  .stop--home .stop__dot{left:-37px;top:0}
}

/* ---------- v2 revision: booking band without fake inputs ----------
   Tee Snap cannot be deep-linked (in-memory SPA state) or embedded
   (x-frame-options:SAMEORIGIN), so the band carries the real booking
   rules and two honest CTAs instead of a form that drops its values. */
.bookbar__top{display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap}
.bookbar__main{min-width:0;flex:1 1 380px}
.bookbar__rule{color:var(--muted);font-size:16.5px;line-height:1.55;margin-top:7px;max-width:52ch}
.bookbar__rule b{color:var(--green-dark);font-weight:700}
.bookbar__actions{display:flex;gap:12px;flex-wrap:wrap;flex:none}
.bookbar__rates{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:18px;padding-top:16px;
  border-top:1px solid rgba(0,59,40,.09)}
.rchip{display:inline-flex;align-items:baseline;gap:7px;background:var(--cream);border:1px solid rgba(0,59,40,.10);
  border-radius:100px;padding:8px 16px;font-size:14.5px;color:var(--muted);white-space:nowrap}
.rchip b{font-family:var(--head);font-weight:800;font-size:19px;color:var(--green-dark);line-height:1}
.rchip--deal{background:var(--green-dark);border-color:var(--green-dark);color:rgba(255,255,255,.82)}
.rchip--deal b{color:#fff}
.bookbar__deal{font-family:var(--ui);font-weight:700;font-size:12.5px;letter-spacing:1.2px;text-transform:uppercase;
  margin-left:auto;padding:7px 0}

@media (max-width:1080px){
  .bookbar__actions{width:100%}
  .bookbar__actions .btn{flex:1 1 auto}
}
@media (max-width:720px){
  .bookbar__top{gap:18px}
  .bookbar__actions{display:grid;grid-template-columns:1fr;gap:10px;width:100%}
  .bookbar__deal{margin-left:0;width:100%;min-height:44px;display:inline-block}
  .rchip{font-size:13.5px;padding:7px 13px}
}

/* ============================================================
   Inner pages — page hero, breadcrumbs, tiles, rules band,
   inquiry band, schedule rows. Reuses the v1/v2 token system.
   ============================================================ */

/* active nav state */
.nav__link.is-active{color:var(--sage)}
.nav__link.is-active::after{content:'';position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:var(--sage);border-radius:2px}
.nav__item{position:relative}

/* ---------- page hero ---------- */
.phero{position:relative;display:flex;align-items:flex-end;color:#fff;isolation:isolate;min-height:min(74vh,620px)}
.phero__media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.phero__media img{width:100%;height:100%;object-fit:cover;object-position:center 46%}
.phero__scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(2,26,18,.66) 0%,rgba(2,26,18,.30) 42%,rgba(2,26,18,.80) 100%)}
.phero .container{padding-top:170px;padding-bottom:62px}
.phero__eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--ui);font-weight:600;letter-spacing:3px;
  text-transform:uppercase;font-size:13px;color:var(--sage);margin-bottom:18px}
.phero__eyebrow::before{content:'';width:34px;height:1px;background:var(--sage);opacity:.85}
.phero h1{font-family:var(--head);font-weight:800;color:#fff;font-size:clamp(38px,5.6vw,68px);line-height:1.02;
  letter-spacing:.3px;text-shadow:0 2px 30px rgba(0,0,0,.35);text-wrap:balance}
.phero__sub{font-size:clamp(17px,1.9vw,20px);margin-top:20px;max-width:60ch;color:rgba(255,255,255,.93);line-height:1.55}
.phero__actions{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}

/* ---------- breadcrumbs ---------- */
.crumbs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:22px;
  font-family:var(--ui);font-size:12px;letter-spacing:1.6px;text-transform:uppercase}
.crumbs a{color:rgba(255,255,255,.72)}
.crumbs a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.crumbs span{color:rgba(255,255,255,.38)}
.crumbs b{color:var(--sage);font-weight:700}

/* ---------- tiles (light-background card grid) ---------- */
.tiles{display:grid;gap:18px}
.tiles--3{grid-template-columns:repeat(3,1fr)}
.tiles--4{grid-template-columns:repeat(4,1fr)}
.tile{display:flex;flex-direction:column;gap:9px;background:#fff;border:var(--hairline);border-top:3px solid var(--sage);
  border-radius:10px;padding:28px 26px;transition:box-shadow .24s ease,transform .24s ease,border-color .24s ease}
.section--cream .tile{background:var(--paper)}
.tile:hover{box-shadow:var(--shadow-card);transform:translateY(-4px);border-top-color:var(--green)}
.tile__eyebrow{font-family:var(--ui);font-weight:700;font-size:10.5px;letter-spacing:2.2px;text-transform:uppercase;color:var(--green-mid)}
.tile h3{font-size:23px;font-weight:800;color:var(--green-dark)}
.tile p{color:var(--muted);font-size:16px;line-height:1.6;flex:1}
.tile__go{display:inline-flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:700;font-size:12px;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--green);margin-top:2px}
.tile__go::after{content:'\2192'}

/* ---------- booking rules band ---------- */
.rules{display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap;margin-top:36px;
  background:var(--cream);border-radius:12px;padding:28px 32px;border-left:4px solid var(--green)}
.section--cream .rules{background:#fff}
.rules__main{flex:1 1 380px;min-width:0}
.rules__main h3{font-size:22px;color:var(--green-dark);margin-bottom:6px}
.rules__main p{color:var(--muted);font-size:16.5px;line-height:1.55;max-width:56ch}
.rules__main b{color:var(--green-dark);font-weight:700}
.rules__actions{display:flex;gap:12px;flex-wrap:wrap;flex:none}

/* ---------- inquiry band ---------- */
.ask{display:flex;align-items:center;justify-content:space-between;gap:38px;flex-wrap:wrap;
  background:var(--green-dark);color:#fff;border-radius:14px;padding:44px 46px;position:relative;overflow:hidden}
.ask::after{content:'';position:absolute;right:-120px;top:50%;transform:translateY(-50%) rotate(-8deg);
  width:420px;height:420px;pointer-events:none;background:url('../assets/img/logomark-white.png') no-repeat center/contain;opacity:.07}
.ask__txt{flex:1 1 420px;min-width:0;position:relative;z-index:2}
.ask__txt h3{color:#fff;font-size:clamp(24px,3vw,32px);margin-bottom:10px}
.ask__txt p{color:rgba(255,255,255,.86);font-size:17px;line-height:1.6;max-width:60ch}
.ask__note{margin-top:12px;font-size:15px;color:rgba(255,255,255,.62)}
.ask__note a{color:var(--sage);text-decoration:underline;text-underline-offset:3px}
.ask__actions{display:flex;gap:12px;flex-wrap:wrap;flex:none;position:relative;z-index:2}
.ask .btn-green{background:var(--cream);color:var(--green-dark)}
.ask .btn-green:hover{background:#fff}

/* ---------- schedule rows ---------- */
.sched{display:grid;gap:12px}
.srow{display:grid;grid-template-columns:190px 1fr 190px;gap:26px;align-items:center;background:#fff;
  border:var(--hairline);border-radius:10px;padding:24px 28px;transition:box-shadow .24s ease,transform .24s ease}
.section--cream .srow{background:var(--paper)}
.srow:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.srow__when{font-family:var(--ui);font-weight:700;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;color:var(--green-mid)}
.srow__what h3{font-size:22px;font-weight:800;color:var(--green-dark)}
.srow__what p{color:var(--muted);font-size:16px;line-height:1.55;margin-top:3px}
.srow__where{font-size:14px;color:var(--muted);text-align:right}
.sched__note{text-align:center;margin-top:26px;color:var(--muted);font-size:16px}
.sched__note a{text-decoration:underline;text-underline-offset:3px}

/* ---------- inner-page responsive ---------- */
@media (max-width:1080px){
  .tiles--3,.tiles--4{grid-template-columns:repeat(2,1fr)}
  .rules__actions,.ask__actions{width:100%}
  .rules__actions .btn,.ask__actions .btn{flex:1 1 auto}
  .srow{grid-template-columns:150px 1fr;gap:18px}
  .srow__where{grid-column:2;text-align:left}
}
@media (max-width:720px){
  .phero{min-height:auto}
  .phero .container{padding-top:120px;padding-bottom:44px}
  .phero__actions{display:grid;grid-template-columns:1fr;gap:10px}
  .phero__actions .btn{width:100%}
  .crumbs{font-size:11px;gap:7px;margin-bottom:16px}
  .tiles--3,.tiles--4{grid-template-columns:1fr;gap:14px}
  .rules{padding:22px 20px;gap:18px}
  .rules__actions{display:grid;grid-template-columns:1fr;gap:10px}
  .ask{padding:30px 22px;gap:22px}
  .ask__actions{display:grid;grid-template-columns:1fr;gap:10px}
  .srow{grid-template-columns:1fr;gap:8px;padding:20px}
  .srow__where{grid-column:1}
}

/* Breadcrumb links were 18px tall on mobile. Inline links inside a
   sentence (.ask__note a, .sched__note a) are deliberately left alone:
   WCAG 2.5.8 exempts targets inline in a block of text, and padding
   them would break the line box. */
@media (max-width:720px){
  .crumbs{margin-bottom:8px;margin-left:-8px}
  /* 13px vertical clears 44px; 8px horizontal clears the short crumb
     words ("Golf", "Home") which are narrower than 44px on their own */
  .crumbs a,.crumbs b{display:inline-block;padding:13px 8px}
  /* footer nav words like "Events" measure 42.6px wide; pad right only
     so the column stays left-aligned */
  .footer ul li a{padding:11px 10px 11px 0}
}

/* ---------- SEO hero variant: small keyword H1 + large persuasive H2 ---------- */
.phero--seo .phero__kw{font-family:var(--ui);font-weight:700;font-size:14px;letter-spacing:2.4px;text-transform:uppercase;
  color:rgba(239,238,225,.92);line-height:1.45;margin-bottom:14px;text-shadow:0 1px 14px rgba(0,0,0,.55)}
.phero--seo .phero__headline{font-family:var(--head);font-weight:800;color:#fff;font-size:clamp(38px,5.4vw,66px);
  line-height:1.02;letter-spacing:.3px;text-shadow:0 2px 30px rgba(0,0,0,.35);text-wrap:balance}

/* ---------- Eau Claire drive stats ---------- */
.ecdrive{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:8px}
.ecstat{text-align:center;background:var(--cream);border-radius:10px;padding:30px 18px;border-top:3px solid var(--sage)}
.section--cream .ecstat{background:var(--paper)}
.ecstat__n{display:block;font-family:var(--head);font-weight:800;font-size:clamp(30px,3.6vw,44px);color:var(--green-dark);line-height:1}
.ecstat__l{display:block;font-family:var(--ui);font-weight:600;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--green-mid);margin-top:12px;line-height:1.4}
@media (max-width:1080px){.ecdrive{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){.ecdrive{grid-template-columns:repeat(2,1fr);gap:12px}.ecstat{padding:22px 12px}}

/* ============================================================
   Ad landing pages — conversion chrome. No primary nav, no
   drawer: paid traffic gets one path (book) and one fallback (call).
   ============================================================ */
.lp-head{position:absolute;top:0;left:0;right:0;z-index:60;
  background:linear-gradient(180deg,rgba(2,26,18,.55) 0%,rgba(2,26,18,0) 100%)}
.lp-head .container{display:flex;align-items:center;justify-content:space-between;gap:20px;height:88px}
.lp-head .brand img{height:46px;width:auto}
.lp-head__cta{display:flex;align-items:center;gap:14px}
.lp-head__phone{color:#fff;font-family:var(--ui);font-weight:700;font-size:15px;letter-spacing:.8px;white-space:nowrap}
.lp-head__phone:hover{color:var(--sage)}

.lp-hero .container{padding-top:150px;padding-bottom:64px}
.lp-hero .hero__trust{margin-top:26px}
.lp-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.lp-chip{font-family:var(--ui);font-weight:700;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--cream);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);
  border-radius:100px;padding:8px 16px;backdrop-filter:blur(3px)}

.final__note{font-size:14.5px !important;color:rgba(255,255,255,.62) !important;margin-top:22px !important}

.lp-foot{background:#04231A;color:rgba(255,255,255,.72);text-align:center;padding:52px 0 60px}
.lp-foot img{height:48px;width:auto;margin:0 auto 18px}
.lp-foot p{font-size:15.5px;line-height:1.7}
.lp-foot a{color:#fff;font-family:var(--head);font-weight:700;font-size:19px}
.lp-foot a:hover{color:var(--sage)}
.lp-foot__fine{font-size:13px !important;color:rgba(255,255,255,.42);margin-top:16px}

@media (max-width:720px){
  .lp-head .container{height:70px;gap:12px}
  .lp-head .brand img{height:36px}
  .lp-head__phone{display:none}
  /* the wordmark plus a full-size button overran 375px by ~1px once the
     phone link is hidden; shrink the button rather than clip the brand */
  .lp-head__cta{min-width:0}
  .lp-head__cta .btn{padding:12px 15px;font-size:11.5px;letter-spacing:1px;min-height:44px}
  .lp-hero .container{padding-top:110px;padding-bottom:46px}
  .lp-chip{font-size:10px;padding:7px 12px}
}

/* ============================================================
   v3 homepage — Bear North Digital, 2026-09-10
   Destination system: photography-forward, asymmetric, one
   typographic motif (the scorecard ledger: rules, tabular
   numerals, hole numbers). Extends the token set; nothing
   redefined. Sections: hero (type left, booking card right),
   itinerary route, course + scorecard, fees ledger + Two-Fer,
   Toptracer trace, Wood & Vine week, events mosaic, story,
   reviews. Corridor / FAQ / final CTA reuse v2 components.
   ============================================================ */

.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.tnum{font-variant-numeric:tabular-nums}

/* ---------- section heads with the lede beside the title ---------- */
.day__head,.wv__head,.gather__head{display:grid;grid-template-columns:1.05fr .95fr;gap:24px 64px;align-items:end}
.day__head .kicker,.day__head .title,.wv__head .kicker,.wv__head .title,.wv__head .wv-logo,.gather__head .kicker,.gather__head .title{grid-column:1}
.day__head .lede,.wv__head .lede,.gather__head .lede{grid-column:2;grid-row:1/4;align-self:end;margin-bottom:22px}
.day__head .title,.wv__head .title,.gather__head .title{margin-bottom:0}
.day .title,.course .title,.fees .title,.trace .title,.wv .title,.gather .title{font-size:clamp(34px,4.6vw,58px);font-weight:800;line-height:1.02}

/* ---------- hero v3 ---------- */
.hero--v3{text-align:left;min-height:min(100vh,920px);align-items:stretch}
.hero--v3 .hero__media img{object-position:56% 48%}
.hero--v3 .hero__scrim{background:
  linear-gradient(90deg,rgba(2,26,18,.88) 0%,rgba(2,26,18,.58) 36%,rgba(2,26,18,.14) 62%,rgba(2,26,18,.04) 100%),
  linear-gradient(180deg,rgba(2,26,18,.52) 0%,rgba(2,26,18,0) 28%,rgba(2,26,18,0) 70%,rgba(2,26,18,.42) 100%)}
.hero--v3 .container{padding-top:0;padding-bottom:0;display:flex}
.hero__grid{display:grid;grid-template-columns:1.12fr .88fr;gap:56px;align-items:center;width:100%;padding:176px 0 112px}
.hero--v3 .hero__inner{max-width:none}
.hero--v3 .hero__eyebrow{margin-bottom:22px}
.hero--v3 .hero__eyebrow::after{display:none}
.hero--v3 h1{max-width:52ch}
@media (max-width:720px){.hero--v3 h1{font-size:12px;letter-spacing:1.6px}}
.hero--v3 .hero__headline{font-size:clamp(46px,6.3vw,92px);line-height:.98;letter-spacing:-.2px;text-wrap:balance}
.hero--v3 .hero__sub{margin:26px 0 0;max-width:520px}
.hero--v3 .hero__trust{margin-top:30px;font-size:15px}
.gchip{display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--ink);border-radius:100px;padding:7px 16px 7px 7px;
  box-shadow:0 10px 26px rgba(0,20,13,.28);white-space:nowrap}
.gchip .g{width:28px;height:28px;border-radius:50%;background:var(--green-dark);color:#fff;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--head);font-weight:800;font-size:15px}
.gchip b{font-family:var(--head);font-weight:800;font-size:16px;color:var(--green-dark)}
.gchip .stars{color:#F5C452;font-size:13px;letter-spacing:1px}
.gchip a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;font-size:14px}
.gchip a:hover{color:var(--green)}

/* booking card */
.teecard{background:#fff;color:var(--ink);border-radius:16px;padding:28px 28px 22px;max-width:440px;margin-left:auto;width:100%;
  box-shadow:0 34px 80px rgba(0,20,13,.42);border-top:5px solid var(--green);opacity:0;transform:translateY(22px);
  animation:heroUp .9s cubic-bezier(.2,.7,.2,1) .45s forwards}
@media (prefers-reduced-motion:reduce){.teecard{animation:none;opacity:1;transform:none}}
.teecard__kicker{display:block;font-family:var(--ui);font-weight:700;font-size:11.5px;letter-spacing:2.4px;text-transform:uppercase;color:var(--green-mid)}
.teecard__title{font-size:28px;font-weight:800;margin-top:6px;color:var(--green-dark)}
.teecard__rule{color:var(--muted);font-size:15px;line-height:1.5;margin-top:8px}
.teecard__rule b{color:var(--green-dark);font-weight:700}
.teecard__rates{width:100%;border-collapse:collapse;margin-top:18px;font-variant-numeric:tabular-nums}
.teecard__rates th,.teecard__rates td{padding:11px 0;border-top:1px solid rgba(0,59,40,.10);text-align:left;font-size:15px;vertical-align:middle}
.teecard__rates th{font-family:var(--ui);font-weight:700;color:var(--green-dark);letter-spacing:.3px;white-space:nowrap}
.teecard__rates .tc-note{color:var(--muted);font-size:13.5px;padding-left:12px}
.teecard__rates .tc-price{text-align:right;font-family:var(--head);font-weight:800;font-size:22px;color:var(--green-dark);white-space:nowrap}
.teecard__rates .tc-price small{font-family:var(--body);font-weight:400;font-size:12.5px;color:var(--muted);margin-left:2px}
.teecard__rates .tc-deal th,.teecard__rates .tc-deal td{background:var(--cream)}
.teecard__rates .tc-deal th{padding-left:10px;border-radius:6px 0 0 6px}
.teecard__rates .tc-deal .tc-price{padding-right:10px;border-radius:0 6px 6px 0;color:var(--green)}
.teecard__actions{display:grid;gap:12px;margin-top:18px}
.teecard__actions .btn{width:100%}
.teecard__call{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--ui);font-weight:700;font-size:14px;
  letter-spacing:.6px;color:var(--green-dark);padding:12px 0;min-height:44px}
.teecard__call svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.teecard__call:hover{color:var(--green)}
.teecard__foot{display:block;text-align:center;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,59,40,.10);
  font-size:13.5px;color:var(--muted)}
.teecard__foot:hover{color:var(--green)}

/* ---------- itinerary route ---------- */
.day{background:var(--paper);padding:112px 0 104px}
.route{list-style:none;position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:56px}
.route::before{content:'';position:absolute;left:10%;right:10%;top:22px;border-top:2px dashed rgba(143,179,166,.75);z-index:0}
.stop-card a{display:block;color:inherit;position:relative}
.stop-card__n{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;
  background:var(--green-dark);color:var(--cream);font-family:var(--head);font-weight:800;font-size:15px;letter-spacing:.5px;
  border:4px solid var(--paper);margin-bottom:16px;transition:transform .22s ease,background .22s ease}
.stop-card a:hover .stop-card__n{transform:scale(1.08);background:var(--green)}
.stop-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;box-shadow:0 18px 40px rgba(0,40,28,.14);transition:transform .35s ease,box-shadow .35s ease}
.stop-card a:hover img{transform:translateY(-6px);box-shadow:0 28px 54px rgba(0,40,28,.22)}
.stop-card__when{display:block;margin-top:18px;font-family:var(--ui);font-weight:700;font-size:11.5px;letter-spacing:2.2px;text-transform:uppercase;color:var(--green-mid)}
.stop-card h3{font-size:22px;font-weight:800;margin-top:6px;color:var(--green-dark)}
.stop-card p{font-size:15px;color:var(--muted);line-height:1.5;margin-top:6px}
.stop-card:nth-child(2) img{aspect-ratio:4/5}

/* ---------- the course (dark) + scorecard ---------- */
.course{background:var(--green-dark);color:#fff;padding:120px 0 110px;position:relative;overflow:hidden}
.course::before{content:'';position:absolute;left:-220px;bottom:-200px;width:720px;height:720px;pointer-events:none;
  background:url('../assets/img/logomark-white.png') no-repeat center/contain;opacity:.05;transform:rotate(6deg)}
.course .container{position:relative;z-index:2}
.course__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center}
.course .kicker{color:var(--sage)}
.course .title{color:#fff}
.course__copy p{color:rgba(255,255,255,.84);line-height:1.7;font-size:18px}
.course__copy p+p{margin-top:16px}
.course__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.course__map{margin:0}
.course__map img{width:100%;border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.course__map figcaption{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:16px;background:rgba(255,255,255,.14);border-radius:12px;overflow:hidden}
.course__map figcaption span{background:rgba(255,255,255,.05);padding:16px 10px 14px;text-align:center;font-family:var(--ui);font-weight:600;font-size:11px;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--sage);line-height:1.35}
.course__map figcaption b{display:block;font-family:var(--head);font-weight:800;font-size:26px;color:#fff;letter-spacing:0;text-transform:none;line-height:1;margin-bottom:6px}

.scorecard{margin-top:72px;background:var(--cream);color:var(--ink);border-radius:16px;padding:22px 26px;display:grid;grid-template-columns:1fr 290px;gap:28px;align-items:center;
  box-shadow:0 30px 70px rgba(0,0,0,.28)}
.scorecard__scroll{overflow-x:auto;scrollbar-width:thin}
.scorecard table{width:100%;min-width:720px;border-collapse:collapse;font-family:var(--ui);font-variant-numeric:tabular-nums;text-align:center;font-size:14.5px}
.scorecard th[scope=row]{text-align:left;font-weight:700;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--green-mid);padding-right:14px;white-space:nowrap}
.scorecard thead th{font-family:var(--head);font-weight:800;font-size:16px;color:var(--green-dark);padding:8px 3px 10px;border-bottom:2px solid var(--green-dark)}
.scorecard tbody td{padding:9px 3px;border-bottom:1px solid rgba(0,59,40,.12)}
.scorecard tbody tr:last-child td,.scorecard tbody tr:last-child th{border-bottom:0}
.scorecard tbody th[scope=row]{border-bottom:1px solid rgba(0,59,40,.12)}
.scorecard .par td{font-weight:700;color:var(--green-dark)}
.scorecard .yds td{color:var(--ink)}
.scorecard .hcp td{color:var(--muted);font-size:13px}
.scorecard .tot{background:rgba(0,59,40,.06);font-weight:700;color:var(--green-dark)}
.scorecard thead th.tot{font-size:13px;letter-spacing:1px;text-transform:uppercase}
.scorecard .sig{color:var(--green)}
.scorecard thead th.sig{background:var(--green-dark);color:#fff;border-radius:6px 6px 0 0}
.scorecard tbody td.sig{background:rgba(0,91,59,.09);font-weight:700}
.scorecard__sig{border-left:1px solid rgba(0,59,40,.16);padding-left:28px}
.scorecard__sign{display:block;font-family:var(--ui);font-weight:700;font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:var(--green-mid);margin-bottom:8px}
.scorecard__sig p{font-size:16.5px;line-height:1.55;color:var(--ink)}
.scorecard__sig b{font-family:var(--head);font-weight:800;font-size:22px;color:var(--green-dark)}

/* ---------- fees ledger + two-fer ---------- */
.fees{background:#fff;padding:112px 0}
.fees__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:start}
.ledger{width:100%;border-collapse:collapse;margin-top:10px;font-variant-numeric:tabular-nums}
.ledger thead th{font-family:var(--ui);font-weight:700;font-size:12px;letter-spacing:2.2px;text-transform:uppercase;color:var(--green-mid);
  padding:30px 0 10px;border-bottom:2px solid var(--green-dark);text-align:right;white-space:nowrap}
.ledger thead th:first-child{text-align:left;font-family:var(--head);font-size:20px;letter-spacing:0;text-transform:none;color:var(--green-dark);font-weight:800}
.ledger tbody th{text-align:left;font-weight:500;font-size:17px;color:var(--ink);padding:14px 0;border-bottom:1px solid rgba(0,59,40,.12)}
.ledger tbody td{text-align:right;font-family:var(--head);font-weight:700;font-size:21px;color:var(--green-dark);padding:14px 0 14px 18px;border-bottom:1px solid rgba(0,59,40,.12);white-space:nowrap}
.ledger tbody td[colspan]{font-family:var(--body);font-weight:400;font-size:15.5px;color:var(--muted)}
.ledger tbody tr:hover th,.ledger tbody tr:hover td{background:var(--paper)}
.fees__note{margin-top:20px;font-size:15px;color:var(--muted);line-height:1.6}
.fees__note a{font-weight:600;text-decoration:underline;text-underline-offset:3px}

.twofer{position:relative;overflow:hidden;background:var(--green-dark);color:#fff;border-radius:18px;padding:42px 40px 40px;box-shadow:0 30px 70px rgba(0,40,28,.22);margin-top:8px}
.twofer::after{content:'';position:absolute;right:-120px;bottom:-140px;width:440px;height:440px;pointer-events:none;
  background:url('../assets/img/logomark-white.png') no-repeat center/contain;opacity:.08;transform:rotate(-8deg)}
.twofer>*{position:relative;z-index:2}
.twofer__flag{display:inline-block;background:var(--sage);color:var(--green-dark);font-family:var(--ui);font-weight:700;font-size:11.5px;letter-spacing:2.2px;
  text-transform:uppercase;border-radius:3px;padding:6px 12px}
.twofer__price{font-family:var(--head);font-weight:800;font-size:clamp(72px,7vw,104px);line-height:.9;margin-top:22px;color:#fff;display:flex;align-items:flex-start;gap:6px;letter-spacing:-1px}
.twofer__price .cur{font-size:.42em;margin-top:.18em;color:var(--sage)}
.twofer__price .per{align-self:flex-end;font-family:var(--ui);font-weight:600;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--sage);margin:0 0 10px 12px;letter-spacing:2px}
.twofer h3{color:#fff;font-size:30px;font-weight:800;margin-top:18px}
.twofer p{color:rgba(255,255,255,.86);margin-top:10px;font-size:17px;line-height:1.6}
.twofer p b{color:#fff}
.twofer__inc{list-style:none;display:grid;gap:11px;margin-top:22px}
.twofer__inc li{position:relative;padding-left:32px;font-size:16px;color:rgba(255,255,255,.9)}
.twofer__inc li::before{content:'';position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--sage);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003B28' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size:12px;background-repeat:no-repeat;background-position:center}
.twofer .btn{margin-top:30px}

/* ---------- toptracer trace ---------- */
.trace{position:relative;isolation:isolate;color:#fff;padding:150px 0 140px;overflow:hidden}
.trace__media{position:absolute;inset:0;z-index:-2}
.trace__media img{width:100%;height:100%;object-fit:cover;object-position:58% 45%}
.trace__media::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(2,20,14,.90) 0%,rgba(2,20,14,.74) 34%,rgba(2,20,14,.30) 62%,rgba(2,20,14,.12) 100%),
  linear-gradient(180deg,rgba(2,20,14,.35),rgba(2,20,14,0) 30%,rgba(2,20,14,0) 70%,rgba(2,20,14,.45))}
.trace__arc{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.trace__arc path{fill:none;stroke:var(--sage);stroke-width:2.25;stroke-linecap:round;stroke-dasharray:1800;stroke-dashoffset:1800;opacity:.9;
  filter:drop-shadow(0 0 6px rgba(143,179,166,.6))}
.trace__arc circle{fill:#fff;opacity:0}
.trace.in .trace__arc path{animation:traceDraw 2.4s cubic-bezier(.3,.6,.2,1) .3s forwards}
.trace.in .trace__arc circle{animation:traceDot .4s ease forwards}
.trace.in .trace__arc circle:last-child{animation-delay:2.5s}
@keyframes traceDraw{to{stroke-dashoffset:0}}
@keyframes traceDot{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.trace__arc path{stroke-dashoffset:0;animation:none}.trace__arc circle{opacity:1;animation:none}}
.trace .container{position:relative;z-index:2}
.trace__panel{max-width:600px}
.trace .kicker{color:var(--sage)}
.trace .title{color:#fff}
.trace__panel>p{color:rgba(255,255,255,.88);font-size:18px;line-height:1.7;max-width:56ch}
.trace__facts{display:grid;grid-template-columns:1fr 1fr;gap:0 34px;margin-top:30px;max-width:520px}
.trace__facts div{padding:14px 0;border-top:1px solid rgba(255,255,255,.22)}
.trace__facts dt{font-family:var(--ui);font-weight:600;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sage)}
.trace__facts dd{font-family:var(--head);font-weight:700;font-size:20px;color:#fff;margin-top:4px;line-height:1.2}
.trace__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}

/* ---------- wood & vine ---------- */
.wv{background:var(--cream);padding:112px 0}
.wv__head .wv-logo{height:64px;margin:6px 0 14px}
.wv__grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto auto;gap:18px;margin-top:56px}
.wv__photo{margin:0;position:relative;border-radius:14px;overflow:hidden;box-shadow:0 22px 50px rgba(0,40,28,.14)}
.wv__photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block;transition:transform .5s ease}
.wv__photo:hover img{transform:scale(1.03)}
.wv__photo--wide{grid-column:1/8;grid-row:1}
.wv__photo--wide img{aspect-ratio:16/8.4}
.wv__photo:nth-child(2){grid-column:1/4;grid-row:2}
.wv__photo:nth-child(3){grid-column:4/8;grid-row:2}
.wv__photo figcaption{position:absolute;left:16px;bottom:14px;font-family:var(--ui);font-weight:700;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;
  color:#fff;background:rgba(2,26,18,.62);backdrop-filter:blur(4px);padding:7px 12px;border-radius:100px}
.wv__week{grid-column:8/13;grid-row:1/3;background:#fff;border-radius:16px;padding:34px 32px 30px;box-shadow:var(--shadow-card);display:flex;flex-direction:column}
.wv__week h3{font-size:24px;font-weight:800;color:var(--green-dark);margin-bottom:14px}
.menu{list-style:none;display:grid}
.menu li{display:grid;grid-template-columns:42px auto 1fr auto;align-items:baseline;gap:10px;padding:11px 0;border-bottom:1px solid rgba(0,59,40,.08)}
.menu li:last-child{border-bottom:0}
.menu__day{font-family:var(--ui);font-weight:700;font-size:11.5px;letter-spacing:1.8px;text-transform:uppercase;color:var(--green-mid)}
.menu__item{font-weight:600;font-size:16px;color:var(--ink);white-space:nowrap}
.menu__item em{font-style:normal;font-weight:600;font-size:12.5px;color:var(--green);margin-left:6px;white-space:nowrap}
.menu__dots{border-bottom:2px dotted rgba(0,59,40,.25);transform:translateY(-5px);min-width:14px}
.menu__drink{font-size:14.5px;color:var(--muted);text-align:right}
.wv__hours{display:grid;gap:6px;margin-top:20px;padding-top:18px;border-top:2px solid var(--green-dark);font-size:14.5px;color:var(--muted)}
.wv__hours b{color:var(--green-dark);font-weight:700;display:inline-block;min-width:92px}
.wv__igloo{color:var(--green)}
.wv__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto;padding-top:26px}
.wv__actions .btn{flex:1 1 auto;padding-left:22px;padding-right:22px}

/* ---------- events mosaic ---------- */
.gather{background:#fff;padding:112px 0}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:252px;gap:16px;margin-top:56px}
.tile-photo{position:relative;display:block;border-radius:14px;overflow:hidden;isolation:isolate;color:#fff;box-shadow:0 18px 44px rgba(0,40,28,.14)}
.tile-photo--tall{grid-column:span 2;grid-row:span 2}
.tile-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s ease}
.tile-photo:hover img{transform:scale(1.04)}
.tile-photo::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,26,18,0) 40%,rgba(2,26,18,.42) 70%,rgba(2,26,18,.86) 100%)}
.tile-photo__cap{position:absolute;left:22px;right:22px;bottom:20px}
.tile-photo__cap b{display:block;font-family:var(--head);font-weight:800;font-size:22px;line-height:1.1}
.tile-photo--tall .tile-photo__cap b{font-size:30px}
.tile-photo__cap span{display:block;font-size:14px;color:rgba(255,255,255,.86);margin-top:5px;line-height:1.4}
.gather__foot{display:flex;gap:14px;justify-content:center;margin-top:40px;flex-wrap:wrap}

/* ---------- story ---------- */
.story{position:relative;isolation:isolate;color:#fff;padding:130px 0;overflow:hidden}
.story__media{position:absolute;inset:0;z-index:-2}
.story__media img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.story__media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,26,18,.90) 0%,rgba(2,26,18,.80) 50%,rgba(2,26,18,.62) 100%)}
.story .container{position:relative;z-index:2}
.story__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:84px;align-items:center}
.story .kicker{color:var(--sage)}
.story blockquote p{font-family:var(--head);font-weight:700;font-size:clamp(26px,2.9vw,38px);line-height:1.2;color:#fff;text-wrap:balance}
.story blockquote cite{display:block;margin-top:16px;font-style:normal;font-family:var(--ui);font-weight:700;font-size:12px;letter-spacing:2.2px;text-transform:uppercase;color:var(--sage)}
.story__body{color:rgba(255,255,255,.84);margin-top:26px;line-height:1.7;font-size:17.5px}
.story__quote .btn{margin-top:30px}
.story__line{list-style:none;border-left:2px solid rgba(143,179,166,.45);padding-left:32px;display:grid;gap:34px}
.story__line li{position:relative}
.story__line li::before{content:'';position:absolute;left:-40px;top:8px;width:14px;height:14px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 5px rgba(143,179,166,.22)}
.story__line .yr{display:block;font-family:var(--head);font-weight:800;font-size:26px;color:var(--cream);line-height:1}
.story__line .ev{display:block;margin-top:8px;font-size:16px;color:rgba(255,255,255,.82);line-height:1.55;max-width:38ch}

/* ---------- reviews ---------- */
.reviews{background:var(--paper);padding:112px 0}
.reviews__grid{display:grid;grid-template-columns:320px 1fr;gap:72px;align-items:start}
.reviews__big{font-family:var(--head);font-weight:800;font-size:clamp(88px,9vw,132px);line-height:.9;color:var(--green-dark);letter-spacing:-2px;margin-top:4px}
.reviews__stars{color:#F5C452;font-size:24px;letter-spacing:4px;margin-top:10px}
.reviews__score>p{color:var(--muted);font-size:16px;margin-top:8px}
.reviews__score>p a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.reviews__fine{font-size:14.5px !important;line-height:1.6;max-width:30ch;margin-top:20px !important}
.reviews__list{display:grid;gap:14px}
.qcard{background:#fff;border:var(--hairline);border-radius:14px;padding:28px 32px;display:grid;grid-template-columns:1fr 150px;gap:24px;align-items:center;margin:0;transition:box-shadow .25s ease,transform .25s ease}
.qcard:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.qcard p{font-size:17px;line-height:1.65;color:var(--ink)}
.qcard footer{text-align:right;border-left:1px solid rgba(0,59,40,.12);padding-left:22px}
.qcard footer b{display:block;font-family:var(--head);font-weight:700;font-size:16px;color:var(--green-dark)}
.qcard footer span{font-size:13px;color:var(--muted)}
.qcard footer span::before{content:'\2605\2605\2605\2605\2605';display:block;color:#F5C452;font-size:12px;letter-spacing:2px;margin-bottom:3px}

.drive__foot{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- footer: the live site's giant script wordmark ---------- */
.footer::before{display:none}
.footer__wm{overflow:hidden;line-height:0;margin:-64px 0 -5vw;pointer-events:none;position:relative;z-index:1 !important}
.footer__wm img{width:96vw;max-width:none;margin-left:2vw;opacity:.07}

/* ============================================================
   v3 responsive
   ============================================================ */
@media (max-width:1080px){
  .hero__grid{grid-template-columns:1fr;gap:34px;padding:140px 0 80px}
  .teecard{margin-left:0;max-width:520px}
  .route{grid-template-columns:repeat(5,1fr);gap:12px}
  .stop-card img{aspect-ratio:3/4}
  .course__grid{grid-template-columns:1fr;gap:44px}
  .scorecard{grid-template-columns:1fr;gap:18px}
  .scorecard__sig{border-left:0;padding-left:0;border-top:1px solid rgba(0,59,40,.16);padding-top:16px}
  .fees__grid{grid-template-columns:1fr;gap:48px}
  .twofer{max-width:560px}
  .wv__grid{grid-template-columns:1fr 1fr}
  .wv__photo--wide{grid-column:1/3;grid-row:auto}
  .wv__photo:nth-child(2){grid-column:1;grid-row:auto}
  .wv__photo:nth-child(3){grid-column:2;grid-row:auto}
  .wv__week{grid-column:1/3;grid-row:auto}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:220px}
  .story__grid{grid-template-columns:1fr;gap:48px}
  .reviews__grid{grid-template-columns:1fr;gap:36px}
  .reviews__score{display:grid;grid-template-columns:auto 1fr;gap:6px 26px;align-items:center}
  .reviews__score .kicker{grid-column:1/3}
  .reviews__big{grid-row:2/4;font-size:88px}
  .reviews__fine{grid-column:1/3;max-width:none}
}
@media (max-width:900px){
  .day__head,.wv__head,.gather__head{grid-template-columns:1fr;gap:0}
  .day__head .lede,.wv__head .lede,.gather__head .lede{grid-column:1;grid-row:auto;margin:16px 0 0}
  /* phones: the photo comes first and unobstructed, type on an ink band */
  .hero--v3{display:block;min-height:0;background:var(--green-dark)}
  .hero--v3 .hero__media{position:relative;inset:auto;height:clamp(300px,50vh,440px);z-index:0}
  .hero--v3 .hero__media img{object-position:60% 55%;animation:none}
  .hero--v3 .hero__scrim{display:none}
  .hero--v3 .container{display:block}
  .hero__grid{padding:34px 0 40px;gap:26px}
  .hero--v3 .hero__headline{font-size:clamp(42px,12vw,60px)}
  .hero--v3 .hero__sub{font-size:17px;margin-top:18px}
  .hero--v3 .hero__trust{margin-top:22px}
  .teecard{max-width:none;padding:24px 22px 18px;box-shadow:0 20px 50px rgba(0,0,0,.35);animation-delay:.3s}
  .route{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:40px calc(-1*var(--gutter)) 0;padding:0 var(--gutter) 8px;scrollbar-width:none}
  .route::-webkit-scrollbar{display:none}
  .route::before{display:none}
  .stop-card{flex:0 0 min(70vw,300px);scroll-snap-align:start}
  .stop-card img{aspect-ratio:4/3.4}
  .trace{padding:96px 0 84px}
  .trace__media img{object-position:70% 45%}
  .trace__media::after{background:linear-gradient(180deg,rgba(2,20,14,.30) 0%,rgba(2,20,14,.78) 40%,rgba(2,20,14,.90) 100%)}
  .trace__arc{opacity:.4}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:190px;gap:12px}
  .tile-photo--tall{grid-column:span 2;grid-row:span 1}
  .tile-photo--tall .tile-photo__cap b{font-size:24px}
  .footer__wm{margin:-24px 0 -4vw}
  .footer__wm img{width:126vw;margin-left:-13vw}
}
@media (max-width:720px){
  .day,.course,.fees,.trace,.wv,.gather,.story,.reviews{padding:68px 0}
  .day .title,.course .title,.fees .title,.trace .title,.wv .title,.gather .title{font-size:clamp(32px,9vw,42px)}
  .hero__grid{padding:28px 0 34px}
  .gchip{white-space:normal;padding-right:14px}
  .teecard__rates .tc-note{display:none}
  .scorecard{padding:18px 16px;border-radius:12px}
  .scorecard table{min-width:680px;font-size:13.5px}
  .course__map figcaption{grid-template-columns:1fr 1fr}
  .course__actions .btn,.trace__actions .btn,.story__quote .btn,.gather__foot .btn,.drive__foot .btn,.wv__actions .btn{width:100%}
  .ledger tbody th{font-size:15.5px;padding:12px 0}
  .ledger tbody td{font-size:19px;padding:12px 0 12px 12px}
  .ledger thead th{padding-top:24px}
  .twofer{padding:32px 24px 30px;max-width:none}
  .twofer .btn{width:100%}
  .trace__facts{grid-template-columns:1fr 1fr;gap:0 18px}
  .trace__facts dd{font-size:17px}
  .wv__grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:36px}
  .wv__photo--wide img{aspect-ratio:16/10}
  .wv__photo:not(.wv__photo--wide) img{aspect-ratio:1/1}
  .wv__photo figcaption{left:8px;bottom:8px;font-size:9px;letter-spacing:1px;padding:4px 8px}
  .wv__week{padding:24px 20px 22px}
  .menu li{grid-template-columns:40px 1fr;gap:2px 10px;padding:10px 0}
  .menu__day{grid-row:1/3;align-self:start;padding-top:3px}
  .menu__item{font-size:15px}
  .menu__item em{display:inline}
  .menu__dots{display:none}
  .menu__drink{grid-column:2;text-align:left;font-size:13.5px}
  .wv__hours b{min-width:84px}
  .mosaic{grid-auto-rows:170px}
  .tile-photo__cap{left:16px;right:16px;bottom:14px}
  .tile-photo__cap b{font-size:18px}
  .tile-photo__cap span{font-size:13px}
  .story{padding:84px 0}
  .story__line{gap:24px}
  .reviews__big{font-size:76px}
  .reviews__score{grid-template-columns:auto 1fr;gap:4px 18px}
  .qcard{grid-template-columns:1fr;gap:14px;padding:22px 22px}
  .qcard footer{text-align:left;border-left:0;padding-left:0;display:flex;align-items:center;gap:12px}
  .qcard footer span::before{display:inline;margin:0 8px 0 0}
  .qcard footer span{display:inline-flex;align-items:center}
}
/* tap targets (>=44px) for the new controls on phones */
@media (max-width:720px){
  .teecard__foot{padding:13px 0 2px;min-height:44px}
  .gchip a{display:inline-block;padding:12px 0}
  .fees__note a{display:inline-block;padding:10px 0}
  .reviews__score>p a{display:inline-block;padding:10px 0}
}

/* ============================================================
   v3 inner-page kit — 2026-09-11
   The homepage rebuild left the 15 inner pages on the v1
   skeleton (hero, one split, one tile row, one ask band, CTA)
   and, worse, refusing to print facts the client publishes.
   These components exist to carry that data: dated events,
   membership fee tables, bay pricing, wedding packages, named
   rooms. Reuses .ledger / .menu / .scorecard from the homepage.
   ============================================================ */

/* ---------- dated event list (tournaments, music, calendar) ---------- */
.dates{display:grid;gap:12px;max-width:860px}
.dates--wide{max-width:none}
.devent{display:grid;grid-template-columns:88px 1fr auto;gap:26px;align-items:center;background:#fff;border:var(--hairline);
  border-radius:12px;padding:20px 26px;transition:box-shadow .24s ease,transform .24s ease}
.section--cream .devent{background:var(--paper)}
.devent:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.devent__cal{text-align:center;background:var(--green-dark);color:#fff;border-radius:10px;padding:10px 6px 12px;line-height:1}
.devent__mo{display:block;font-family:var(--ui);font-weight:700;font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:var(--sage)}
.devent__d{display:block;font-family:var(--head);font-weight:800;font-size:30px;margin-top:5px}
.devent__what h3{font-size:22px;font-weight:800;color:var(--green-dark);line-height:1.15}
.devent__what p{color:var(--muted);font-size:15.5px;line-height:1.5;margin-top:4px}
.devent__kind{display:inline-block;font-family:var(--ui);font-weight:700;font-size:10.5px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--green-mid);background:var(--cream);border-radius:100px;padding:6px 13px;white-space:nowrap}
.section--cream .devent__kind{background:#fff}
.devent--past{opacity:.5}
.devent--past .devent__cal{background:var(--taupe)}
.dates__note{margin-top:22px;color:var(--muted);font-size:15.5px;line-height:1.6;max-width:70ch}
.dates__note a{text-decoration:underline;text-underline-offset:3px}

/* ---------- membership fee ledger: two value columns ---------- */
.ledger--two tbody td{width:118px}
.ledger--two thead th:nth-child(n+2){width:118px}
.ledger td.na{font-family:var(--body);font-weight:400;font-size:15px;color:var(--muted)}
.ledger__foot{margin-top:14px;font-size:14px;color:var(--muted)}

/* ---------- inclusions (what a membership / package covers) ---------- */
.incl{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin-top:22px}
.incl li{position:relative;padding-left:32px;font-size:16.5px;line-height:1.5}
.incl li::before{content:'';position:absolute;left:0;top:2px;width:21px;height:21px;border-radius:50%;background:var(--sage);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003B28' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size:13px;background-repeat:no-repeat;background-position:center}
.incl--dark li{color:rgba(255,255,255,.9)}

/* ---------- price rows (Toptracer bays) ---------- */
.prices{display:grid;gap:14px;margin-top:30px;max-width:620px}
.prow{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:22px 26px}
.prow__what b{display:block;font-family:var(--head);font-weight:800;font-size:22px;color:#fff;line-height:1.1}
.prow__what span{display:block;font-size:15px;color:rgba(255,255,255,.78);margin-top:4px}
.prow__price{font-family:var(--head);font-weight:800;font-size:34px;color:var(--sage);line-height:1;white-space:nowrap}
.prow__price small{font-family:var(--body);font-weight:400;font-size:14px;color:rgba(255,255,255,.7);margin-left:3px}
.prices__note{margin-top:16px;font-size:15px;color:rgba(255,255,255,.72);line-height:1.6;max-width:60ch}
.prices__note a{color:var(--sage);text-decoration:underline;text-underline-offset:3px}

/* light variant on a pale ground */
.prices--light .prow{background:#fff;border:var(--hairline);border-left:4px solid var(--green)}
.prices--light .prow__what b{color:var(--green-dark)}
.prices--light .prow__what span{color:var(--muted)}
.prices--light .prow__price{color:var(--green-dark)}
.prices--light .prow__price small{color:var(--muted)}
.prices--light+.prices__note{color:var(--muted)}

/* ---------- package tiers (wedding packages) ---------- */
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:8px}
.tier{background:#fff;border:var(--hairline);border-top:3px solid var(--sage);border-radius:12px;padding:28px 24px;display:flex;flex-direction:column;gap:10px;
  transition:box-shadow .24s ease,transform .24s ease,border-top-color .24s ease}
.section--cream .tier{background:var(--paper)}
.tier:hover{box-shadow:var(--shadow-card);transform:translateY(-4px);border-top-color:var(--green)}
.tier--flag{border-top-color:var(--green);position:relative}
.tier__flag{position:absolute;top:-11px;left:24px;background:var(--green);color:var(--cream);font-family:var(--ui);font-weight:700;
  font-size:10px;letter-spacing:1.8px;text-transform:uppercase;padding:4px 11px;border-radius:3px}
.tier h3{font-size:20px;font-weight:800;color:var(--green-dark);line-height:1.15}
.tier p{color:var(--muted);font-size:15.5px;line-height:1.6;flex:1}
.tiers__foot{margin-top:24px;color:var(--muted);font-size:15.5px;line-height:1.6;max-width:72ch}
.tiers__foot b{color:var(--green-dark);font-weight:700}

/* ---------- named rooms / spaces ---------- */
.spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px}
.space{margin:0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px rgba(0,40,28,.12)}
.section--cream .space{background:var(--paper)}
.space img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.space figcaption{padding:22px 24px 24px}
.space__n{display:block;font-family:var(--ui);font-weight:700;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--green-mid)}
.space h3{font-size:21px;font-weight:800;color:var(--green-dark);margin-top:6px}
.space p{color:var(--muted);font-size:15.5px;line-height:1.6;margin-top:6px}

/* ---------- rule band: the terms a venue has to state plainly ---------- */
.terms{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:36px;background:rgba(0,59,40,.14);border-radius:12px;overflow:hidden}
.terms div{background:var(--cream);padding:26px 24px}
.section--cream .terms div{background:#fff}
.terms dt{font-family:var(--ui);font-weight:700;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--green-mid)}
.terms dd{font-size:16.5px;line-height:1.55;color:var(--ink);margin-top:8px}
.terms dd b{color:var(--green-dark);font-weight:700}

/* ---------- section variants used by the inner pages ---------- */
.section--green .ledger thead th{color:var(--sage);border-bottom-color:var(--sage)}
.section--green .ledger thead th:first-child{color:#fff}
.section--green .ledger tbody th{color:rgba(255,255,255,.9);border-bottom-color:rgba(255,255,255,.16)}
.section--green .ledger tbody td{color:#fff;border-bottom-color:rgba(255,255,255,.16)}
.section--green .ledger tbody td.na{color:rgba(255,255,255,.7)}
.section--green .ledger tbody tr:hover th,.section--green .ledger tbody tr:hover td{background:rgba(255,255,255,.05)}
.section--green .ledger__foot{color:rgba(255,255,255,.66)}
.section--green .incl li{color:rgba(255,255,255,.9)}
.section--green .dates__note{color:rgba(255,255,255,.78)}
.section--green .devent{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.section--green .devent__what h3{color:#fff}
.section--green .devent__what p{color:rgba(255,255,255,.78)}
.section--green .devent__kind{background:rgba(255,255,255,.12);color:var(--sage)}

/* two-column text + panel layout for inner pages */
.duo{display:grid;grid-template-columns:1.05fr .95fr;gap:26px 72px;align-items:start}
.duo__head{grid-column:1}
.duo__aside{grid-column:2;grid-row:1/3;align-self:start}
.duo__body{grid-column:1}

/* ---------- inner-kit responsive ---------- */
@media (max-width:1080px){
  .tiers{grid-template-columns:1fr 1fr}
  .spaces{grid-template-columns:1fr 1fr}
  .terms{grid-template-columns:1fr}
  .duo{grid-template-columns:1fr;gap:30px}
  .duo__head,.duo__aside,.duo__body{grid-column:1;grid-row:auto}
}
@media (max-width:720px){
  .devent{grid-template-columns:62px 1fr;gap:8px 16px;padding:16px 18px}
  .devent__cal{grid-row:1/3;align-self:start;padding:8px 4px 10px}
  .devent__d{font-size:24px}
  .devent__mo{font-size:10px;letter-spacing:1.6px}
  .devent__what h3{font-size:18px}
  .devent__kind{grid-column:2;justify-self:start;margin-top:2px}
  .incl{grid-template-columns:1fr;gap:11px}
  .tiers{grid-template-columns:1fr;gap:12px}
  .spaces{grid-template-columns:1fr;gap:14px}
  .prices{gap:11px}
  .prow{grid-template-columns:1fr;gap:10px;padding:18px 20px}
  .prow__price{font-size:28px}
  .terms div{padding:20px 18px}
  .ledger--two tbody td,.ledger--two thead th:nth-child(n+2){width:84px}
  .ledger--two tbody td{font-size:17px;padding-left:8px}
  .ledger--two td.na{font-size:13.5px}
}

/* ---------- drawer tap targets (measured 2026-09-11) ----------
   The open drawer's close button rendered 34x38 and its phone link 42px tall
   on every one of the 16 pages. Both are primary mobile controls. The earlier
   sweep missed them because it read getComputedStyle().visibility, which
   reports an off-canvas drawer as visible-but-zero rather than measuring it;
   checkVisibility() sees them. Visual size is unchanged, only the hit area. */
.drawer__close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;margin-right:-8px}
.drawer__call{padding:9px 0;min-height:44px;display:flex;align-items:center;justify-content:center}

/* ---------- .duo aside: follow the table ----------
   The rate and fee ledgers run long, which left the aside card stranded at the
   top of a tall empty column. Sticking it keeps the booking rules (golf) and
   the payback maths (membership) beside whichever row you are reading. */
@media (min-width:1081px){
  .duo__aside{position:sticky;top:124px}
}

/* four named rooms across (weddings) */
.spaces--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1080px){.spaces--4{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.spaces--4{grid-template-columns:1fr}}

/* dated rows sit under centred section heads, so centre the block with them */
.dates{margin-left:auto;margin-right:auto}
.dates__note{margin-left:auto;margin-right:auto;text-align:center}
/* a past event still has to be readable, not just dimmed: the month was
   sage-on-taupe and effectively invisible at 50% opacity */
.devent--past{opacity:1}
.devent--past .devent__cal{background:var(--taupe)}
.devent--past .devent__mo{color:rgba(255,255,255,.88)}
.devent--past .devent__what h3,.devent--past .devent__what p{color:var(--muted)}
.devent--past .devent__what h3{font-weight:700}

/* off-season: a dated list with nothing in it (Tanglewood is seasonal) */
.dates__empty{max-width:64ch;margin:0 auto;text-align:center;color:var(--muted);font-size:17px;line-height:1.65;
  background:var(--cream);border-radius:12px;padding:28px 32px;border:var(--hairline)}
.section--white .dates__empty{background:var(--paper)}
.dates__empty a{text-decoration:underline;text-underline-offset:3px}

/* ---------- 2026-10-06 refinements: season close, priced packages, inquiry preview ---------- */
.teecard__close{margin-top:10px;padding-top:10px;border-top:var(--hairline);color:var(--green-dark);font-size:14.5px;line-height:1.5}
.teecard__close b{font-weight:700}
.menu__item--drinks{color:var(--muted);font-weight:500;font-style:italic}

/* tiers with a price and an inclusion list */
.tiers--3{grid-template-columns:repeat(3,1fr)}
.tiers--2{grid-template-columns:repeat(2,1fr)}
.tier__price{font-family:var(--head);font-weight:800;font-size:40px;line-height:1;color:var(--green-dark);display:flex;flex-direction:column;gap:6px}
.tier__price small{font-family:var(--ui);font-weight:700;font-size:11.5px;letter-spacing:1.8px;text-transform:uppercase;color:var(--green-mid)}
.tier__inc{list-style:none;display:grid;gap:7px;margin-top:6px;padding-top:14px;border-top:var(--hairline)}
.tier__inc li{position:relative;padding-left:20px;font-size:14.5px;line-height:1.45;color:var(--ink)}
.tier__inc li::before{content:'';position:absolute;left:2px;top:7px;width:8px;height:8px;border-radius:50%;background:var(--sage)}
.tiers--3 .tier p{flex:none}

/* inquiry form (static preview of the live Elementor form) */
.inq{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px 60px;align-items:start;background:#fff;border-radius:14px;
  padding:40px;border-left:4px solid var(--green);box-shadow:var(--shadow-card)}
.inq__txt h3{font-size:clamp(24px,3vw,32px);margin-bottom:10px}
.inq__txt p{color:var(--muted);font-size:17px;line-height:1.6}
.inq__txt a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.inq__form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.inq__f{display:flex;flex-direction:column;gap:6px;min-width:0}
.inq__f--wide{grid-column:1/-1}
.inq__f label{font-family:var(--ui);font-weight:700;font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--green-dark)}
.inq__f label span{color:var(--green-mid)}
.inq__f input,.inq__f textarea,.inq__f select{font:inherit;font-size:16px;color:var(--ink);background:var(--paper);border:1px solid rgba(0,59,40,.22);
  border-radius:6px;padding:12px 14px;min-height:48px;width:100%}
.inq__f input:focus,.inq__f textarea:focus,.inq__f select:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
.inq__go{grid-column:1/-1}
.inq__after{grid-column:1/-1;background:var(--cream);border-radius:8px;padding:14px 16px;font-size:15.5px;line-height:1.5;color:var(--green-dark)}
@media (max-width:1080px){
  .tiers--3,.tiers--2{grid-template-columns:1fr 1fr}
  .inq{grid-template-columns:1fr;padding:32px 26px}
}
@media (max-width:720px){
  .tiers--3,.tiers--2{grid-template-columns:1fr}
  .inq__form{grid-template-columns:1fr}
  .inq__go .btn{width:100%}
}

/* ---------- blog (2026-10-06) ---------- */
.plead{display:grid;grid-template-columns:1.15fr .85fr;gap:34px 56px;align-items:center}
.plead__img{display:block;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-card)}
.plead__img img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
.plead__img:hover img{transform:scale(1.03)}
.plead__txt h2 a{color:inherit}
.plead__txt p{color:var(--muted);font-size:17.5px;line-height:1.6;margin:14px 0 24px}
.pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pcard{display:flex;flex-direction:column;gap:8px;background:#fff;border-radius:12px;overflow:hidden;border:var(--hairline);
  padding-bottom:22px;transition:box-shadow .2s ease,transform .2s ease}
.pcard:hover{box-shadow:var(--shadow-card);transform:translateY(-4px)}
.pcard img{width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:8px}
.pcard__date,.pcard h3,.pcard p,.pcard .tile__go{padding:0 22px}
.pcard__date{font-family:var(--ui);font-weight:700;font-size:11.5px;letter-spacing:1.8px;text-transform:uppercase;color:var(--green-mid)}
.pcard h3{font-size:20px;line-height:1.2}
.pcard p{color:var(--muted);font-size:15.5px;line-height:1.55;flex:1}
.post{max-width:72ch;margin:0 auto;font-size:18.5px;line-height:1.75}
.post h2{font-size:clamp(24px,3vw,30px);margin:42px 0 12px}
.post h2:first-child{margin-top:0}
.post p{margin:0 0 18px}
.post a{text-decoration:underline;text-underline-offset:3px}
.post__fig{margin:30px 0}
.post__fig img{width:100%;border-radius:10px}
.post__fig figcaption{font-size:14px;color:var(--muted);margin-top:8px}
.post p:last-child{margin-top:40px;padding-top:22px;border-top:var(--hairline);font-size:16px;line-height:1.7;color:var(--muted)}
@media (max-width:1080px){.pcards{grid-template-columns:1fr 1fr}.plead{grid-template-columns:1fr}}
@media (max-width:720px){.pcards{grid-template-columns:1fr}.post{font-size:17.5px}}
.footer__grid li a{display:inline-block;min-width:44px}
.post p:last-child a{display:inline-block;padding:11px 0}
.footer__visit .footer__contact{display:inline-flex;align-items:center;min-height:44px}
.terms dd a{display:inline-block;padding:10px 0}

/* ---------- brand & media page (2026-10-07) ---------- */
.brandcards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.brandcard{display:flex;flex-direction:column;gap:10px;background:#fff;border:var(--hairline);border-radius:12px;overflow:hidden;padding-bottom:20px;transition:box-shadow .2s ease,transform .2s ease}
.brandcard:hover{box-shadow:var(--shadow-card);transform:translateY(-4px)}
.brandcard__img{display:flex;align-items:center;justify-content:center;height:180px;background:#fff;border-bottom:var(--hairline);padding:28px}
.brandcard__img img{max-height:100%;width:auto;max-width:100%}
.brandcard__name,.brandcard .tile__go{padding:0 22px}
.brandcard__name{font-family:var(--head);font-weight:800;font-size:20px;color:var(--green-dark)}
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.swatch{display:flex;flex-direction:column;gap:4px;background:#fff;border-radius:12px;padding:14px 14px 18px;border:var(--hairline)}
.swatch__chip{display:block;height:96px;border-radius:8px;border:1px solid rgba(0,0,0,.08);margin-bottom:8px}
.swatch b{font-family:var(--head);font-weight:800;color:var(--green-dark);font-size:18px}
.swatch span{font-family:var(--ui);font-weight:700;font-size:12px;letter-spacing:1.4px;color:var(--muted)}
@media (max-width:1080px){.brandcards{grid-template-columns:1fr 1fr}.swatches{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.brandcards{grid-template-columns:1fr}}

.typespec{display:grid;gap:0;border-top:var(--hairline)}
.typespec__row{display:grid;grid-template-columns:170px 220px 1fr;gap:18px;align-items:baseline;padding:20px 0;border-bottom:var(--hairline)}
.typespec__use{font-family:var(--ui);font-weight:700;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--green-mid)}
.typespec__name{font-weight:600;color:var(--ink)}
.typespec__sample{font-size:28px;line-height:1.2;color:var(--green-dark)}
@media (max-width:720px){.typespec__row{grid-template-columns:1fr;gap:4px}.typespec__sample{font-size:24px}}

/* ---------- accessibility pass 2026-10-07 (WCAG 2.2 AA: 1.4.3 contrast, 2.5.8 target size) ---------- */
.devent--past .devent__cal{background:#6B6A58}          /* white on taupe was 2.66:1; now 5.49:1 */
.ask .kicker{color:var(--sage)}                          /* green-mid on the dark band was 2.24:1 */
.section--cream .prices__note a,.section--white .prices__note a{color:var(--green)}  /* sage on cream was 1.96:1 */
/* Desktop only: under 721px the comp already sizes these to 44px, and a later
   unscoped rule would shrink them back (it did, on the first try). */
@media (min-width:721px){
  .utility__right a{display:inline-flex;align-items:center;min-height:24px}
  .footer__brand .social a,.drawer__social a{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}
  .footer__bottom .top{min-height:24px}
  .crumbs a{display:inline-block;padding:3px 0}
  .gchip a,.quotes__foot a,.reviews__score p a{display:inline-block;padding:3px 0}
}

/* Safari draws native <select>s at their intrinsic ~27px and ignores
   min-height; drop the native look so the form fields match (48px) in every
   browser, with our own arrow. Found in the WebKit QA pass 2026-10-07. */
.inq__f select{-webkit-appearance:none;appearance:none;padding-right:42px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003B28' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px}
