/* Oak Bay Golf Club — v5. Built on the Oak Bay Golf Club Design System.
   Tokens below are the DS values (colors.css, typography.css, spacing.css, radius.css, elevation.css, motion.css, gradients.css).
   Same flow and layout as oakbaygolf.com. Loaded after site.css. */

@font-face{font-family:"Trajan Pro 3";src:url(../fonts/TrajanPro3-Regular.woff2) format("woff2"),url(../fonts/TrajanPro3-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Trajan Pro 3";src:url(../fonts/TrajanPro3-Bold.woff2) format("woff2"),url(../fonts/TrajanPro3-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Mona Sans";src:url(../fonts/MonaSans-Variable.woff2) format("woff2"),url(../fonts/MonaSans-Variable.woff) format("woff");font-weight:200 900;font-stretch:75% 100%;font-style:normal;font-display:swap}
@font-face{font-family:"Mona Sans";src:url(../fonts/MonaSans-Italic-Variable.woff2) format("woff2"),url(../fonts/MonaSans-Italic-Variable.woff) format("woff");font-weight:400 600;font-stretch:75%;font-style:italic;font-display:swap}

:root{
  /* colour — approved palette only */
  --orange:#FF6C00;--orange-hi:#FF7700;--orange-d:#FF7700;
  --ink:#3A3A3C;--ink-2:#5f5f62;--grey:#E7E7E7;--panel:#F9F9F9;--near-black:#0A0A0A;
  --blue:#2190F3;--blue-hi:#00A9FF;
  --line:#E7E7E7;--line-strong:#3A3A3C;--line-invert:rgba(255,255,255,.28);
  --g-dark:linear-gradient(180deg,#3A3A3C 0%,#0A0A0A 100%);
  --g-light:linear-gradient(180deg,#F9F9F9 0%,#E7E7E7 100%);
  --g-orange:linear-gradient(180deg,#FF7700 0%,#FF6C00 100%);
  --g-grey:var(--g-light);
  /* type */
  --f-disp:"Trajan Pro 3","Trajan Pro",Cinzel,"Times New Roman",serif;
  --f-body:"Mona Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  /* shape + elevation (DS: small, consistent radii; shadows only on interactive surfaces) */
  --r-cta:6px;--r-panel:4px;--r-band:10px;--inset:16px;
  --shadow-interactive:0 1px 2px rgba(58,58,60,.08),0 4px 12px rgba(58,58,60,.06);
  --shadow:none;
  --shade-bottom:linear-gradient(180deg,rgba(10,10,10,0) 0%,rgba(10,10,10,.55) 100%);
  --shade-top:linear-gradient(180deg,rgba(10,10,10,.45) 0%,rgba(10,10,10,0) 60%);
  --grain:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  /* motion */
  --t-micro:180ms;--t-control:240ms;--ease:cubic-bezier(.32,.72,.24,1);
  /* layout */
  --hdr:116px;--bar:84px;--util:36px;--pad:40px;
}
html{background:#fff}
body{font:400 16px/26px var(--f-body);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;letter-spacing:0}
p{margin:0 0 20px}
::selection{background:var(--orange);color:#fff}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:2px}
a:hover{color:inherit}

/* ---------- Type: Trajan establishes the moment, Mona Sans explains ---------- */
.h-xl,.h-l,.h-m,.h-s,.h-xs,.hole-t h3,.price,.tcard h2,.visit h2.o,.visit h3,.cgrid h2,.post h2,.post-hero h1,.hero--short h1,.contact-hero h1,.stay-row h2,.ncard h3,.rate h3,.foot-h{font-family:var(--f-disp);text-transform:none;font-variant-caps:small-caps;letter-spacing:.02em;font-weight:400}
.h-xl{font-weight:700;font-size:clamp(38px,5.6vw,80px);line-height:1.02}
.h-l{font-size:clamp(30px,3.4vw,50px);line-height:1.08}
.h-m{font-size:clamp(26px,2.6vw,38px);line-height:1.12}
.h-s{font-size:clamp(22px,2.1vw,30px);line-height:1.18}
.h-xs{font-size:clamp(18px,1.7vw,22px);line-height:1.3;letter-spacing:.04em}
.lg{font-size:18px;line-height:29px}
.sm{font-size:14px;line-height:22px;color:var(--ink-2)}
.orange{color:var(--orange)}
.spaced{letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:500}
/* subhead: Mona Sans regular width, upright, sentence case — a quiet counterpoint to Trajan capitals */
.subhead,.lead20{font-family:var(--f-body);font-style:normal;font-weight:450;font-stretch:100%;font-variation-settings:"wdth" 100,"wght" 450;font-size:clamp(18px,1.6vw,22px);line-height:1.45;letter-spacing:.005em;text-transform:none;opacity:1}
.subhead{margin:18px 0 28px;color:var(--ink-2)}
.price{font-weight:700;font-size:38px;line-height:1;color:var(--orange)}

/* ---------- Buttons ---------- */
.btn{font:600 13px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;padding:16px 28px;min-height:48px;border-radius:var(--r-cta);border:1px solid var(--orange);background:var(--orange);color:#fff;box-shadow:none;transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease),border-color var(--t-micro) var(--ease)}
.btn:hover{background:var(--orange-hi);border-color:var(--orange-hi);transform:none;color:#fff}
.btn:active{transform:none;filter:brightness(.94)}
.btn--white{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.btn--white:hover{background:#fff;border-color:#fff;color:var(--ink)}
.btn--dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn--dark:hover{background:#000;border-color:#000}
.btn--line{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn--line:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.band-glass .btn--line,.hero .btn--line,.band-dark .btn--line,.band-orange .btn--line{color:#fff;border-color:rgba(255,255,255,.7)}
.band-glass .btn--line:hover,.hero .btn--line:hover,.band-dark .btn--line:hover{background:#fff;color:var(--ink)}
.btns{gap:12px}

/* ---------- Utility bar + header ---------- */
.util{background:var(--ink);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.util a{margin-left:26px;opacity:.9}
.util a:hover{opacity:1;color:#fff}
.wx{letter-spacing:.04em;text-transform:none;font-weight:400}
.hdr::before{left:0;right:0;top:0;height:calc(var(--hdr) + 30px);border-radius:0;background:var(--shade-top);border-bottom:0}
.hdr-in{height:var(--hdr)}
.logo,.logo img{width:190px}
.nav>ul{gap:34px}
.nav>ul>li>a{font:500 12px/28px var(--f-body);letter-spacing:.14em;text-transform:uppercase;padding:20px 0}
.nav>ul>li>a::after{content:"";display:block;height:2px;margin-top:-8px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform var(--t-control) var(--ease)}
.nav>ul>li:hover>a::after,.nav>ul>li:focus-within>a::after,.nav a[aria-current]::after{transform:none}
.nav>ul>li:hover>a,.nav>ul>li:focus-within>a,.nav a[aria-current]{color:#fff}
.sub{border-radius:var(--r-panel);padding:8px;min-width:230px;left:-18px;border:1px solid var(--line);box-shadow:var(--shadow-interactive)}
.sub a{padding:9px 14px;border-radius:2px;font-size:14px;line-height:22px}
.sub a:hover{background:var(--panel);color:var(--orange)}
.soc{margin-left:34px;gap:18px}
.hdr.stuck::before,body.hdr-solid .hdr::before{left:0;right:0;top:0;height:var(--bar);border-radius:0;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid var(--line);box-shadow:var(--shadow-interactive)}
body.hdr-solid .hdr::before{height:var(--hdr)}
.hdr.stuck .hdr-in{height:var(--bar)}
body.hdr-solid{--hdr:104px}
body.hdr-solid .hdr{height:var(--hdr)}
body.hdr-solid .hdr-in{height:var(--hdr)}
.hdr.stuck .nav>ul>li:hover>a,.hdr.stuck .nav a[aria-current],body.hdr-solid .nav>ul>li:hover>a,body.hdr-solid .nav a[aria-current]{color:var(--ink)}
.hdr.stuck .logo,.hdr.stuck .logo img,body.hdr-solid .logo,body.hdr-solid .logo img{width:160px}
.hdr .logo,.hdr .logo img{transition:width var(--t-control) var(--ease)}

/* ---------- Hero: full-bleed photograph, type-protect gradient, fine grain ---------- */
.hero{margin:0;border-radius:0;background:var(--near-black)}
.hero--tall{height:min(860px,calc(100svh - var(--util)));min-height:620px}
.hero--short{height:440px}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);background-size:140px;opacity:.06;mix-blend-mode:overlay;pointer-events:none}
.hero::after{background:var(--shade-top),var(--shade-bottom)}
.hero-copy{max-width:1120px;animation:rise 1.2s var(--ease) .1s both;display:flex;flex-direction:column;align-items:center}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero--tall .hero-copy{padding-top:calc(var(--hdr) - 30px)}
.hero-copy h1{margin:0 0 20px;text-wrap:balance;order:1}
.hero-copy .lead20{margin:0 0 40px;color:#fff;order:2}
.hero-copy .btns{order:3}
.hero--short h1{font-weight:700;font-size:clamp(32px,4.2vw,56px);line-height:1.04}
.hero--short .hero-copy{margin-top:-6px}

/* ---------- Bands: inset, small-radius rectangles; DS surfaces only ---------- */
.band-orange,.band-dark,.band-grey,.band-news,.band-glass,.contact-hero,.post-hero{margin-left:var(--inset);margin-right:var(--inset);border-radius:var(--r-band)}
.band-orange{background:var(--g-dark);position:relative;overflow:hidden;isolation:isolate;padding:130px 0}
.band-orange.s{background:var(--g-orange);padding:64px 0}
.band-grey,.band-news{background:var(--g-light);border:1px solid var(--line)}
.band-dark{background:var(--g-dark);position:relative;isolation:isolate}
.band-orange::before,.band-dark::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);background-size:140px;opacity:.07;mix-blend-mode:overlay;pointer-events:none}
.band-glass::after{background:var(--g-dark);opacity:.62}
.band-glass>picture img{filter:grayscale(1) contrast(1.18) brightness(.96)}
.contact-hero,.post-hero{background:var(--g-orange)}
.sec{padding:112px 0}
.sec--144{padding:140px 0}
.two{gap:56px}

/* ---------- Home: photo strip ---------- */
.strip{margin-top:-120px;padding-bottom:128px}
.strip .car{--sw:min(940px,74vw);--gap:20px}
.strip .car-slide{border-radius:var(--r-panel);overflow:hidden;background:var(--grey);transform:scale(.94);filter:brightness(.82);transition:transform .6s var(--ease),filter .6s var(--ease)}
.strip .car-slide.is-active{transform:none;filter:none}
.car-nav{width:48px;height:48px;border-radius:var(--r-cta);background:#fff;color:var(--ink);box-shadow:var(--shadow-interactive)}
.car-nav:hover{background:var(--blue);color:#fff}
.hero picture img,.hero>video,.strip img,.feat img,.hole img,.gallery img,.ncard img,.stay-pics img,.stack3 img{filter:saturate(1.28) contrast(1.1) brightness(1.03)}

/* ---------- Home: Experience band — the one memorable device: contour watermark ---------- */
.contours{position:absolute;left:-120px;bottom:-200px;width:900px;height:auto;z-index:-1;pointer-events:none;color:#fff;opacity:.035;overflow:visible}
.contours path{fill:none;stroke:currentColor;stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.band-orange .wrap.gap36{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:96px;align-items:start;position:relative}
.band-orange .wrap.gap36 h2{grid-column:1;grid-row:1/span 6;margin:0!important;position:sticky;top:130px;font-size:clamp(34px,4vw,56px);line-height:1.06;color:#fff}
.band-orange .wrap.gap36>*:not(h2){grid-column:2}
.band-orange .lg{font-size:16px;line-height:26px;margin:0 0 20px;color:var(--grey);max-width:66ch}
.band-orange .lg:first-of-type{font-size:clamp(19px,1.7vw,22px);line-height:1.55;color:#fff;margin-bottom:32px}
.band-orange .btns{margin-top:28px}

/* ---------- Home: feature rows ---------- */
.feat{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:104px;align-items:center}
.feat--flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.feat img{border-radius:var(--r-panel);aspect-ratio:5/4;box-shadow:none}
.feat h2{margin-bottom:0;font-size:clamp(30px,3.4vw,50px)}
.feat p{margin-bottom:34px;color:var(--ink-2);font-size:16px;line-height:26px;max-width:62ch}
.feat p.subhead{color:var(--ink-2);font-size:clamp(18px,1.5vw,21px);margin:18px 0 28px;line-height:1.45}

/* ---------- Holes / news cards ---------- */
.holes-sec{padding:120px 0 130px}
.holes-sec h2{margin-bottom:64px}
.hole{border-radius:var(--r-panel)}
.hole::after{background:var(--shade-bottom)}
.hole-t h3{font-size:36px;line-height:1.05}
.nslide .car{--sw:420px;--gap:20px}
.ncard{border-radius:var(--r-panel);box-shadow:none}
.ncard::after{background:var(--shade-bottom)}
.ncard h3{font-size:26px;line-height:1.12}
.ncard time{font:500 12px/20px var(--f-body);letter-spacing:.08em;text-transform:uppercase}
.ncard.noimg{background:var(--g-dark)}
.ncard.noimg::after{background:none}

/* ---------- Rates ---------- */
.rate h3{font-size:clamp(26px,2.4vw,34px);line-height:1.1}
.rate .sub2{color:var(--ink-2);font-size:14px}
.band-dark .rate .sub2,.band-dark .sm{color:var(--grey)}
.band-glass .sm{color:var(--grey)}
.band-orange.s .sm,.band-orange.s h2{color:#fff}
.rate .btn{margin-top:18px}

/* ---------- Newsletter: light-grey gradient panel, hairline edge ---------- */
.band-news.nl{padding:80px 0;margin-top:32px}
.nl .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:96px;align-items:end}
.nl h2{font:400 clamp(24px,2.4vw,34px)/1.16 var(--f-disp);text-transform:none;font-variant-caps:small-caps;letter-spacing:.02em;font-style:normal;margin:0;max-width:22ch}
.nl form{gap:4px 28px}
.nl input{height:54px;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;padding:0 2px;font-size:15px;color:var(--ink)}
.nl input::placeholder{color:var(--ink-2)}
.nl input:focus{outline:0;border-bottom-color:var(--blue);box-shadow:0 1px 0 var(--blue)}
.nl .sbm{margin-top:24px}
.btn.sub-btn{font:600 13px/1 var(--f-body);letter-spacing:.14em;padding:16px 34px}
.field input,.field select{border-radius:var(--r-panel);height:48px;border:1px solid var(--ink);background:#fff}
.field input:focus,.field select:focus{outline:2px solid var(--blue);outline-offset:1px}

/* ---------- Footer: compact, column-based ---------- */
.foot{background:none;color:#fff;padding:32px var(--inset) var(--inset)}
.foot-card{background:var(--g-dark);border-radius:var(--r-band);padding:72px 0 0;overflow:hidden;position:relative;isolation:isolate}
.foot-card::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);background-size:140px;opacity:.07;mix-blend-mode:overlay;pointer-events:none}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));column-gap:56px}
.foot-nav{grid-column:auto}
.foot-brand img{width:176px;margin-bottom:26px}
.foot-brand p{margin:0 0 14px;font-size:14px;line-height:22px;color:var(--grey)}
.foot-brand .a{color:#fff}
.foot-brand a{text-decoration:none;color:#fff}
.foot-brand a:hover{color:var(--blue-hi)}
.foot h2{font:600 12px/16px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:6px 0 20px}
.foot li a{font-size:15px;line-height:32px;color:#fff;opacity:.88;transition:color var(--t-micro) var(--ease),opacity var(--t-micro) var(--ease)}
.foot li a:hover{color:var(--blue-hi);opacity:1}
.foot-bar{display:flex;flex-wrap:wrap;gap:18px 32px;align-items:center;justify-content:space-between;margin-top:52px;padding:26px 0;border-top:1px solid var(--line-invert)}
.foot-book{display:flex;flex-wrap:wrap;gap:12px}
.foot-book a{display:inline-flex;align-items:center;gap:12px;padding:12px 18px;border-radius:var(--r-cta);border:1px solid rgba(255,255,255,.5);text-decoration:none;font:600 12px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:#fff;transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
.foot-book a:hover{background:#fff;color:var(--ink)}
.foot-book a:hover img{filter:invert(1)}
.foot-book img{height:15px;width:auto}
.foot-note{margin:0;font-size:13px;line-height:20px;color:var(--orange);font-weight:500;letter-spacing:.02em}
.foot-soc{display:flex;gap:20px}
.foot-soc a{display:block;color:#fff;opacity:.88}
.foot-soc a:hover{color:var(--blue-hi);opacity:1;background:none}
.foot-soc svg{width:19px;height:19px}
.foot-legal{font-size:12px;line-height:20px;color:rgba(255,255,255,.6);padding:18px 0 26px;border-top:1px solid var(--line-invert)}
.foot-legal a{color:#fff;opacity:.85;text-decoration:none;font-weight:500}
.foot-legal a:hover{opacity:1;color:var(--blue-hi);text-decoration:underline}
.foot-legal b{font-weight:600;color:#fff}
.legal{display:none}

/* ---------- Other pages: carried through ---------- */
.notice{padding:44px var(--pad) 8px}
.gallery{gap:12px}.gallery button{border-radius:var(--r-panel)}
.stay-pics>*,.ph{border-radius:var(--r-panel)}
.stack3 img{border-radius:var(--r-panel);box-shadow:none}
.tcard h2{font-size:24px;line-height:1.15}
.tcard time{font:500 12px/20px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.visit h2.o{font-size:clamp(28px,3vw,42px);line-height:1.08;color:var(--orange)}
.visit h3{font-size:clamp(20px,1.9vw,26px);line-height:1.2}
.stay-row h2{font-size:clamp(30px,3vw,44px);line-height:1.04}
.cgrid h2{font-size:28px;line-height:1.15}
.post-hero h1{font-size:clamp(30px,3.6vw,50px);line-height:1.06}
.post-hero p{font-family:var(--f-body);font-style:italic;font-weight:500;font-stretch:75%;font-variation-settings:"wdth" 75,"wght" 500;font-size:22px;line-height:1.3;letter-spacing:.05em;text-transform:uppercase}
.post h2{font-size:30px;line-height:1.15}
.post p{font-size:17px;line-height:28px}
.post .o{color:var(--orange)}
.mem-q{font:500 clamp(24px,2.6vw,36px)/1.25 var(--f-body);font-style:italic;font-stretch:75%;font-variation-settings:"wdth" 75,"wght" 500;text-transform:uppercase;letter-spacing:.04em}
.mem-title,.it{font-family:var(--f-body);font-style:italic;font-weight:500;letter-spacing:.05em}
.contact-hero h1{font-size:clamp(34px,4.2vw,60px);line-height:1.02;font-weight:700}
.js .rv{opacity:1;transform:none;transition:none}
.legal-copy{color:var(--ink-2)}

/* ---------- Tablet / mobile ---------- */
@media (max-width:1100px){.nav>ul{gap:22px}.soc{margin-left:22px}}
@media (max-width:959px){
  :root{--inset:10px;--r-band:8px;--hdr:84px;--bar:72px;--pad:24px}
  body{font-size:16px;line-height:26px}
  .logo,.logo img,.hdr.stuck .logo,.hdr.stuck .logo img,body.hdr-solid .logo,body.hdr-solid .logo img{width:138px}
  .hdr.stuck .hdr-in{height:var(--bar)}
  .hero--tall{height:min(740px,calc(100svh - var(--util)));min-height:580px}
  .hero--short{height:340px}
  .hero--tall .hero-copy{padding-top:calc(var(--hdr) - 16px)}
  .hero-copy .btns .btn{white-space:nowrap;padding:16px 12px;flex:1 1 40%}
  .hero-copy h1{font-size:clamp(32px,9.4vw,46px)}
  .hero-copy .lead20{margin-bottom:30px;font-size:16px}
  .band-orange{padding:68px 0}
  .band-orange .wrap.gap36{display:block}
  .band-orange .wrap.gap36 h2{position:static;margin-bottom:28px!important;font-size:clamp(30px,8.4vw,40px)}
  .contours{left:-200px;bottom:-120px;width:700px}
  .sec{padding:64px 0}.sec--144{padding:72px 0}
  .strip{margin-top:-64px;padding-bottom:72px}
  .strip .car{--sw:84vw;--gap:12px}
  .feat,.feat--flip{grid-template-columns:1fr;gap:28px}
  .feat img{aspect-ratio:4/3}
  .feat h2{font-size:clamp(28px,7.6vw,38px)}
  .band-news.nl{padding:52px 0}
  .nl .wrap{display:block}
  .nl h2{margin-bottom:28px}
  .foot-card{padding-top:48px}
  .foot-grid{grid-template-columns:1fr 1fr;row-gap:36px;column-gap:24px}
  .foot-brand{grid-column:1/-1}
  .foot-bar{margin-top:34px;flex-direction:column;align-items:flex-start}
  .holes-sec{padding:72px 0}
  .hole-t h3{font-size:30px}
}
@media (prefers-reduced-motion:reduce){.hero-copy{animation:none}}

/* ---------- Utility bar v2: soft gradient + announcement ticker ---------- */
.util{background:linear-gradient(180deg,#3A3A3C,#2b2b2d);color:rgba(255,255,255,.86);box-shadow:inset 0 -1px 0 rgba(255,255,255,.07)}
.util .util-row{display:flex;justify-content:space-between;align-items:center;gap:28px}
.util-cta{display:flex;flex:none;align-items:center;height:100%}
.util-cta a{margin:0 0 0 22px;opacity:1;color:#fff;transition:color .2s var(--ease)}
.util-cta a:first-child{margin-left:0;padding-right:22px;border-right:1px solid rgba(255,255,255,.16)}
.util-cta a:hover{color:var(--orange-hi)}
.tick{flex:1 1 auto;min-width:0;height:100%;overflow:hidden;position:relative;opacity:1;transition:opacity .5s var(--ease) .15s;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 40px),transparent)}
.tick--wait{opacity:0;visibility:hidden}
.tick-track{display:flex;width:max-content;height:100%;animation:tick 38s linear infinite}
.tick:hover .tick-track,.tick:focus-within .tick-track{animation-play-state:paused}
.tick-set{display:flex;align-items:center;flex:none}
.tick a{color:inherit;text-decoration:none;white-space:nowrap}
.tk-ev,.tk-i{white-space:nowrap}
.tk-ev span{margin-left:12px;color:#fff}
.tk-ev:hover{color:#fff}
.tk-ev:hover span{text-decoration:underline;text-underline-offset:3px}
.tk-dot{display:inline-block;flex:none;width:4px;height:4px;margin:0 26px;border-radius:50%;background:var(--orange)}
@keyframes tick{to{transform:translateX(-50%)}}
.tick--static .tick-track{animation:none}
.tick--static .tick-set+.tick-set{display:none}
@media (prefers-reduced-motion:reduce){.tick-track{animation:none}.tick-set+.tick-set{display:none}}
.tick-no-event .tk-ev,.tick-no-event .tk-ev+.tk-dot{display:none}

.util{height:auto;line-height:36px;overflow:hidden;position:relative}
.util .util-row{height:36px;line-height:36px}
.util.util--open .util-row{display:none}
.util.util--anim{transition:height .55s var(--ease)}
.annc{color:#fff;line-height:1.4}
.annc[hidden]{display:none}
.util .annc-in{height:auto;display:flex;align-items:center;gap:40px;padding-top:20px;padding-bottom:20px;position:relative}
.annc-txt{flex:1 1 auto;min-width:0}
.annc-t{margin:0 0 4px;font:600 17px/1.3 var(--f-body);letter-spacing:0;text-transform:none;color:#fff}
.annc-p{margin:0;font-size:15px;line-height:1.5;color:var(--grey);max-width:62ch;letter-spacing:0;text-transform:none;font-weight:400}
.annc-b{display:flex;flex:none;align-items:center;gap:12px}
.annc-b .btn{padding:12px 20px;font-size:12px;line-height:1.2}
.annc-l{font-size:14px;line-height:1.2;font-weight:500;letter-spacing:0;text-transform:none;color:#fff;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.4);transition:color .2s var(--ease),text-decoration-color .2s var(--ease)}
.annc-l:hover{color:var(--blue-hi);text-decoration-color:currentColor}
.annc-x{flex:none;width:36px;height:36px;margin-right:-8px;display:grid;place-items:center;border:0;border-radius:var(--r-cta);background:transparent;color:#fff;cursor:pointer;transition:background .2s var(--ease)}
.annc-x:hover{background:var(--blue)}
.annc-x:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.annc-x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.annc.annc--off{opacity:0;transition:opacity .25s linear}
@media (prefers-reduced-motion:reduce){.util.util--anim{transition:none}}
@media (max-width:959px){
  .util{display:block;font-size:12px;letter-spacing:.05em}
  .util .wrap{justify-content:space-between;gap:14px}
  .util-cta a{margin-left:14px}
  .util-cta a:first-child{padding-right:14px;margin-left:0}
  .tk-dot{margin:0 18px}
  .annc-in{flex-direction:column;align-items:flex-start;gap:16px;padding-top:18px;padding-bottom:20px}
  .annc-t{margin-right:36px}
  .annc-x{position:absolute;top:10px;right:14px;margin:0}
}


/* =====================================================================
   Consistency pass — one system for every page type
   Feature pages (home/golf/restaurant): tall hero. Section pages: short hero + breadcrumb.
   Posts: orange post-hero + 68ch article. Orange is for actions and prices, not headings.
   ===================================================================== */
.hero-copy .kicker{order:0;margin:0 0 18px;font:500 clamp(17px,1.5vw,20px)/1.35 var(--f-body);font-variation-settings:"wdth" 100,"wght" 500;letter-spacing:.01em;color:#fff}
.hero-copy h1{line-height:1.06}
.hero--short h1{line-height:1.06}

/* breadcrumb */
.crumbs{border-bottom:1px solid var(--line)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0;padding:18px 0;font-size:13px;line-height:1.3;color:var(--ink-2)}
.crumbs li+li::before{content:"/";margin:0 10px;color:#b4b4b6}
.crumbs a{color:var(--ink-2);text-decoration:none;transition:color .2s var(--ease)}
.crumbs a:hover{color:var(--blue)}
.crumbs [aria-current]{color:var(--ink)}
.crumbs+.sec{padding-top:64px!important}

/* tap targets */
.soc a,.foot-soc a{display:grid;place-items:center;width:40px;height:40px;margin:-12px -4px}
.soc{gap:6px}
.foot-soc{gap:4px}
.car-dots{gap:0}
.car-dots button{width:24px;height:24px;background:none;position:relative}
.car-dots button::after{content:"";position:absolute;left:7px;top:7px;width:10px;height:10px;border-radius:50%;background:#c9c9c9}
.car-dots button[aria-current="true"]{background:none}
.car-dots button[aria-current="true"]::after{background:var(--ink)}

/* notice under the restaurant hero */
.notice{max-width:760px;margin:0 auto;padding:40px var(--pad) 8px}
.notice p{margin:0 0 6px;font-size:15px;line-height:1.55;color:var(--ink-2)}
.notice b{font-weight:500;color:var(--ink)}

/* orange headings on light grounds become ink */
.visit h2.o,.post .o,.notice .o{color:var(--ink)}
.visit h2.o{padding-bottom:18px;margin-bottom:36px;border-bottom:1px solid var(--grey)}
.post .o{font-weight:600}
.h-m,.h-m.orange{font-size:clamp(26px,2.6vw,36px);line-height:1.12}

/* memberships */
.mem-q{font:450 clamp(20px,2.1vw,28px)/1.45 var(--f-body);font-style:normal;font-stretch:100%;font-variation-settings:"wdth" 100,"wght" 450;text-transform:none;letter-spacing:0;max-width:60ch;margin:0 auto 36px;color:#fff}
.mem-title,.it{font:inherit;font-style:normal}
.radio{gap:12px;padding:6px 0}
.radio input[type=radio],.chk input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;min-height:0;padding:0;margin:0;border:1.5px solid #8a8a8c;background:#fff;box-shadow:none}
.radio input[type=radio]{border-radius:50%}
.chk input[type=checkbox]{border-radius:4px}
.radio input[type=radio]:checked{border:6px solid var(--orange)}
.chk input[type=checkbox]:checked{background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;border-color:var(--orange)}
.radio input:focus-visible,.chk input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
fieldset.field{border:1px solid var(--grey);border-radius:var(--r-panel);padding:18px 20px 14px;margin:0}
fieldset.field legend{padding:0 8px;font:600 15px/22px var(--f-body)}
.chk{text-transform:none;font-size:15px;line-height:1.5;padding:4px 0}
.apply-btn{font:600 13px/1 var(--f-body);letter-spacing:.14em;padding:18px 28px}

/* stay & play: wider title column, landscape photos */
.stay-row{grid-template-columns:minmax(220px,300px) 1fr;column-gap:72px}
.stay-pics>*{aspect-ratio:4/3}
.ph{background:var(--g-light);border:1px solid var(--line);color:#8a8a8c}

/* news placeholders get the contour mark instead of a blank dark tile */
.ncard.noimg{background:url(../img/contours-light.svg) no-repeat right -12% bottom -30%/90% auto,var(--g-dark)}

/* posts */
.post{text-align:left;max-width:calc(680px + 2*var(--pad))}
.post h2{margin-top:44px}
.post-hero p{font:450 clamp(17px,1.6vw,20px)/1.45 var(--f-body);font-style:normal;font-stretch:100%;font-variation-settings:"wdth" 100,"wght" 450;text-transform:none;letter-spacing:0;max-width:56ch;margin:0 auto 32px}
.post-hero{padding:88px 0 80px}

/* restaurant bands */
.band-grey[aria-labelledby="gr-t"]{padding:104px 0!important}
.band-grey[aria-labelledby="lm-t"]{padding:104px 0!important}
.menus .btn{white-space:nowrap}

@media (min-width:641px) and (max-width:959px){
  .rates{grid-template-columns:repeat(3,1fr);gap:24px}
  .rates--2{grid-template-columns:repeat(2,1fr);gap:32px}
  .rate h3{font-size:clamp(22px,3vw,28px)}
}
@media (max-width:959px){
  .stay-row{grid-template-columns:1fr;column-gap:0}
  .hero-copy h1{line-height:1.08}
  .hero .shade-m{display:block}
  .crumbs ol{padding:14px 0}
  .crumbs+.sec{padding-top:44px!important}
}
.stay-pics>.ph,.stay-pics>*{aspect-ratio:4/3!important}
.hero+.band-grey{margin-top:16px}
.band-orange.s .sm{font-size:15px;line-height:1.5}
@media (max-width:640px){.ph{font-size:10px;line-height:13px;padding:6px;overflow:hidden}.ph b{display:none}}
.band-orange .lg:first-of-type{color:var(--orange)}

/* footer: booking actions live under the logo */
.foot-brand .foot-book{flex-direction:column;align-items:flex-start;gap:10px;margin:0 0 14px}
.foot-brand .foot-note{margin:0 0 30px}
.foot-brand .foot-soc{margin-top:18px;gap:4px}
.foot-brand .foot-soc a{margin:-12px -4px;opacity:.88}
.foot-brand .foot-book a{color:#fff}
.foot-card .foot-legal{margin-top:44px}
@media (max-width:959px){.foot-card .foot-legal{margin-top:32px}}
.foot-brand .foot-book img{margin:0;height:15px;width:auto}
.foot-brand .foot-book a{display:flex;width:100%;max-width:260px;justify-content:space-between}
.foot-brand .foot-soc{justify-content:flex-start;margin-left:-8px}
.foot-brand .foot-note{margin-bottom:26px}

/* ===== Comment pass ===== */
/* footer: credit link, orange cashless note below phones, working button hover */
.foot-legal .foot-credit{color:inherit;text-decoration:none}
.foot-legal .foot-credit:hover{color:var(--blue-hi)}
.foot-brand .foot-note{margin:0 0 26px;color:var(--orange)}
.foot-brand .foot-book a:hover,.foot-brand .foot-book a:focus-visible{background:#fff;color:var(--ink);border-color:#fff}
.foot-brand .foot-book a:hover img,.foot-brand .foot-book a:focus-visible img{filter:invert(1)}
.foot-brand .foot-soc{margin-top:0}
/* newsletter heading: Mona, bolder */
.nl h2{font-family:var(--f-body);font-variant-caps:normal;font-weight:700;font-variation-settings:"wdth" 100,"wght" 700;letter-spacing:-.005em;line-height:1.14}
/* announcement stays in view while open */
.util.util--open{position:sticky;top:0;z-index:70}
body:has(.util--open) .hdr{top:var(--util)}
/* band overlays */
.band-glass--deep::after{background:#000;opacity:.74}
.band-glass--menus::after{background:#000;opacity:.78}
/* menu buttons: two rows */
.btns.menus{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));justify-content:center;gap:16px 18px}
@media (max-width:520px){.btns.menus{grid-template-columns:1fr 1fr;gap:12px}.btns.menus .btn{padding-left:12px;padding-right:12px;text-align:center;justify-content:center}}
/* events carousel (replaces the notice strip) */
.evs{padding:72px 0 80px;background:var(--panel,#F9F9F9)}
.evs-h{margin-bottom:28px}
.evs-h h2{margin:0;text-align:left}
.evs .car{--sw:272px;--gap:16px;padding:6px 0 14px;max-width:1331px;margin:0 auto}
.evc{display:flex;flex-direction:column;align-items:flex-start;height:100%;min-height:236px;padding:24px 24px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--r-panel);box-sizing:border-box}
.evc-w{margin:0 0 14px;font:600 13px/1 var(--f-body);letter-spacing:.02em;color:var(--orange)}
.evc h3{margin:0 0 8px;font:600 21px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 600;text-transform:none;font-variant-caps:normal;color:var(--ink)}
.evc p:not(.evc-w){margin:0 0 20px;font-size:15px;line-height:1.5;color:var(--ink-2)}
.evc-a{margin-top:auto;font:600 14px/1 var(--f-body);color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--orange);text-decoration-thickness:2px;transition:color .2s var(--ease)}
.evc-a:hover{color:var(--blue)}
@media (max-width:959px){.evs{padding:56px 0 60px}.evs .car{--sw:72vw}}
.evs .evs-row{max-width:calc(var(--cw) + 2*var(--pad));margin:0 auto;padding:6px var(--pad) 18px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:var(--pad);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--orange) transparent}
.evs-track{display:flex;gap:16px;width:max-content}
.evs .evc{flex:none;width:272px;scroll-snap-align:start}
@media (max-width:959px){.evs .evc{width:70vw;max-width:300px}}

/* ===== Clubhouse events v2: photo tiles, one featured ===== */
.evs{background:#fff;padding:96px 0 104px}
.evs-h{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:36px}
.evs-nav{display:flex;gap:10px;flex:none}
.evs-nav .car-nav{position:static;transform:none;width:48px;height:48px;margin:0}
.evs .evs-row{padding-bottom:6px}
.evs-track{gap:18px}
.evs .evc{position:relative;display:block;width:300px;height:400px;padding:0;border:0;border-radius:var(--r-panel);overflow:hidden;background:#000;color:#fff;isolation:isolate}
.evs .evc picture{position:absolute;inset:0;z-index:-2}
.evs .evc img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.evs .evc:hover img{transform:scale(1.04)}
.evs .evc::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.05) 20%,rgba(0,0,0,.88) 100%)}
.evc-b{position:absolute;left:0;right:0;bottom:0;padding:24px;display:flex;flex-direction:column;align-items:flex-start}
.evs .evc-w{margin:0 0 6px;font:400 17px/1.2 var(--f-disp);font-variant-caps:small-caps;letter-spacing:.04em;color:#fff}
.evs .evc h3{margin:0 0 8px;font:600 24px/1.15 var(--f-body);font-variation-settings:"wdth" 100,"wght" 600;font-variant-caps:normal;text-transform:none;color:#fff}
.evs .evc .evc-x{margin:0 0 18px;font-size:15px;line-height:1.45;color:rgba(255,255,255,.88)}
.evs .evc-a{margin:0;display:inline-block;padding:11px 18px;border-radius:var(--r-cta);background:#fff;color:var(--ink);font:600 12px/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:background .2s var(--ease),color .2s var(--ease)}
.evs .evc-a:hover,.evs .evc-a:focus-visible{background:var(--blue);color:#fff}
.evs .evc--hot{width:360px}
.evs .evc--hot::after{background:linear-gradient(180deg,rgba(255,108,0,.12) 0%,rgba(150,55,0,.55) 45%,rgba(60,24,0,.92) 100%)}
.evs .evc--hot .evc-w{color:#fff}
.evs .evc--hot .evc-a{background:var(--orange);color:#fff}
.evs .evc--hot .evc-a:hover{background:var(--blue)}
@media (max-width:959px){.evs{padding:64px 0 72px}.evs .evc{width:74vw;max-width:300px;height:380px}.evs .evc--hot{width:82vw;max-width:340px}.evs-nav{display:none}}
.evs-nav .car-nav{opacity:1;background:#fff;border:1px solid var(--line);box-shadow:none;transition:background .2s,color .2s,border-color .2s}
.evs-nav .car-nav:hover,.evs-nav .car-nav:focus-visible{background:var(--blue);border-color:var(--blue);color:#fff}
.evs-nav svg{width:20px;height:20px}

/* ===== Comment pass 2 ===== */
.band-glass--menus .btns.menus{justify-content:start}
@media (max-width:959px){.feat--flip .feat-img{order:2}}
/* the section after the events row now follows the menus band directly */
#menus + .gallery{margin-top:72px}
/* events: identical tiles, no colour wash */
.evs .evc,.evs .evc--hot{width:300px;height:400px}
@media (max-width:959px){.evs .evc,.evs .evc--hot{width:74vw;max-width:300px;height:380px}}
.evs .evc--hot::after{background:linear-gradient(180deg,rgba(0,0,0,.05) 20%,rgba(0,0,0,.88) 100%)}
.evs .evc--hot .evc-a{background:#fff;color:var(--ink)}
.evs .evc--hot .evc-a:hover{background:var(--blue);color:#fff}
.evs .evc .evc-x{min-height:66px}
.evs .evs-h h2{max-width:15em;font-size:clamp(32px,4vw,56px);line-height:1.06;text-align:left}
.evs-sub{margin:18px 0 0;max-width:46ch;font-size:clamp(17px,1.4vw,20px);line-height:1.45;color:var(--ink-2)}
.evs-h{align-items:flex-end;margin-bottom:44px}

/* hero copy: centred between the menu bar and the photo strip that overlaps the hero's bottom edge */
.hero--tall{box-sizing:border-box;padding:89px 0 101px}
.hero--tall .hero-copy{padding-top:0;padding-bottom:0}
@media (max-width:959px){.hero--tall{padding:63px 0 58px}.hero--tall .hero-copy{padding-top:0}}
.hero--tall{padding-bottom:0}
.hero--tall:has(+ .strip){padding-bottom:128px}
@media (max-width:959px){.hero--tall:has(+ .strip){padding-bottom:58px}}
.evs{padding:56px 0 72px}
.evs .evs-h{justify-content:flex-end;margin-bottom:20px}
@media (max-width:959px){.evs{padding:40px 0 56px}}

/* hole tiles match the restaurant event tiles: 300 x 400 */
.holes .car{--sw:300px;--gap:18px}
.hole{aspect-ratio:3/4}
.hole-t{left:24px;bottom:22px}
.hole-t h3{font-size:28px}
.hole-t p{font-size:15px;line-height:24px}
@media (max-width:959px){.holes .car{--sw:74vw;--gap:12px}.holes .car-slide{max-width:300px}.hole-t h3{font-size:26px}}

/* in-page anchors land clear of the sticky header (and the announcement while it is open) */
[id]{scroll-margin-top:calc(var(--bar) + 12px)}
body:has(.util--open) [id]{scroll-margin-top:calc(var(--bar) + var(--util) + 12px)}
@media (max-width:959px){[id]{scroll-margin-top:calc(var(--bar) + 8px)}body:has(.util--open) [id]{scroll-margin-top:calc(var(--bar) + var(--util) + 8px)}}
#pagetop{scroll-margin-top:0!important}

/* =====================================================================
   Type system v3 — Trajan Pro (bold) for key headlines only; everything else is Mona Sans.
   Key headlines: page heroes (h1) and the main section headlines (.h-l). Small caps with true capitals.
   Headings below that are Mona Sans Bold; subheads and lead lines are Mona Sans Italic.
   ===================================================================== */
.h-xl,.h-l,.hero--short h1,.contact-hero h1,.post-hero h1{font-family:var(--f-disp);font-weight:700;font-variant-caps:small-caps;text-transform:none;letter-spacing:.02em}
.h-m,.h-s,.h-xs,.hole-t h3,.tcard h2,.visit h2.o,.visit h3,.cgrid h2,.post h2,.stay-row h2,.ncard h3,.rate h3,.foot-h,.nl h2,.evc-w,.price{font-family:var(--f-body);font-variant-caps:normal;text-transform:none;font-weight:700;font-variation-settings:"wdth" 100,"wght" 700;letter-spacing:-.005em}
.h-m{line-height:1.14}
.h-s{line-height:1.2}
.h-xs{letter-spacing:0}
.hole-t h3{font-size:30px;line-height:1.1}
.evs .evc-w{font:600 15px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 600;font-variant-caps:normal;letter-spacing:.01em}
.price{font-weight:700;letter-spacing:-.01em}
/* subheads: Mona Sans italic */
.subhead,.lead20,.hero-copy .kicker{font-style:italic;font-stretch:75%;font-weight:450;font-variation-settings:"wdth" 75,"wght" 450;letter-spacing:.01em}
.subhead{font-size:clamp(20px,1.8vw,25px)}
.hero-copy .lead20{font-size:clamp(20px,1.9vw,26px)}
@media (max-width:959px){.hero-copy .lead20{font-size:19px}}
.hero-copy .kicker{font-size:clamp(20px,1.9vw,27px);font-weight:500;font-variation-settings:"wdth" 75,"wght" 500}
.subhead{font-size:clamp(22px,2vw,28px)}
.hero-copy .lead20{font-size:clamp(22px,2.1vw,29px)}
@media (max-width:959px){.hero-copy .lead20{font-size:21px}.hero-copy .kicker{font-size:20px}}

/* golf + restaurant heroes share the short hero height used by Info & News and Contact */
.hero--feature h1{font-size:clamp(28px,3.3vw,46px);line-height:1.06;max-width:20em;margin-bottom:16px}
.hero--feature .hero-copy{margin-top:0;padding-top:0}
.hero--feature .kicker{margin-bottom:12px;font-size:clamp(18px,1.6vw,23px)}
@media (max-width:959px){.hero--feature h1{font-size:clamp(24px,6.6vw,32px)}.hero--feature .hero-copy .btns .btn{padding:14px 18px}}

/* subheads: Mona Sans, width 100, weight 800, upright */
.subhead,.lead20,.hero-copy .kicker{font-style:normal;font-stretch:100%;font-weight:800;font-variation-settings:"wdth" 100,"wght" 800;letter-spacing:0}
.subhead{font-size:clamp(19px,1.6vw,22px);line-height:1.4}
.hero-copy .lead20{font-size:clamp(19px,1.7vw,23px)}
.hero-copy .kicker{font-size:clamp(16px,1.4vw,19px)}
@media (max-width:959px){.hero-copy .lead20{font-size:18px}.hero-copy .kicker{font-size:16px}}
.nom-cta{margin-top:20px}

/* Mona Sans upright file registered on its own so italics are slanted at full width (wdth 100) */
@font-face{font-family:"Mona Sans Slant";src:url(../fonts/MonaSans-Variable.woff2) format("woff2"),url(../fonts/MonaSans-Variable.woff) format("woff");font-weight:200 900;font-stretch:75% 100%;font-style:normal;font-display:swap}
#nom-t{font-family:"Mona Sans Slant",var(--f-body)!important;font-style:italic!important;font-weight:800!important;font-variation-settings:"wdth" 100,"wght" 800;font-variant-caps:normal!important;text-transform:none;letter-spacing:-.01em;color:var(--orange)!important;line-height:1.12!important}

/* subheads: Mona Sans Italic, ExtraBold, width 100 */
.subhead,.lead20,.hero-copy .kicker{font-family:"Mona Sans Slant",var(--f-body);font-style:italic;font-stretch:100%;font-weight:800;font-variation-settings:"wdth" 100,"wght" 800;letter-spacing:0}
.band-orange .lg:first-of-type{font-family:"Mona Sans Slant",var(--f-body);font-style:italic;font-stretch:100%;font-weight:800;font-variation-settings:"wdth" 100,"wght" 800;letter-spacing:0;line-height:1.5}

/* announcement: centred, Trajan heading */
.util .annc-in{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding-top:26px;padding-bottom:26px}
.annc-txt{flex:none;max-width:760px}
.annc-t{margin:0 0 8px;font-family:var(--f-disp);font-weight:700;font-size:clamp(20px,2vw,26px);line-height:1.2;font-variant-caps:small-caps;letter-spacing:.03em}
.annc-p{margin:0 auto;max-width:56ch}
.annc-b{justify-content:center}
.annc-x{position:absolute;top:14px;right:0;margin:0}
@media (max-width:959px){.util .annc-in{align-items:center;gap:16px;padding-top:44px;padding-bottom:22px}.annc-t{margin-right:0}.annc-x{top:6px;right:10px}}
.annc-p{max-width:none;text-wrap:balance}

/* continuous strip: every photo at full strength, no snap effect */
.strip .car--auto .car-slide{transform:none;filter:none;transition:none}
.strip .car--auto img{-webkit-user-drag:none;user-select:none;pointer-events:none}
.strip .car--auto.drag .car-track{cursor:grabbing}

/* ===== Compact desktop / tablet pass: less stacking, shorter images, smaller display type ===== */
.h-xl{font-size:clamp(36px,4.6vw,72px)}
.h-l{font-size:clamp(28px,3vw,46px)}
.strip .car-slide{aspect-ratio:16/10}
.strip .car{--sw:min(860px,62vw)}
.util .annc-in{gap:12px;padding-top:20px;padding-bottom:20px}
.annc-t{font-size:clamp(18px,1.7vw,23px)}
.annc-b .btn{padding:10px 18px}
@media (min-width:600px) and (max-width:959px){
  .hero--tall{height:clamp(460px,64vw,640px);min-height:0}
  .strip .car{--sw:min(620px,76vw);--gap:14px}
  .strip{padding-bottom:64px}
}
@media (min-width:720px) and (max-width:959px){
  .feat,.feat--flip{grid-template-columns:1fr 1fr;column-gap:40px;gap:40px;align-items:center}
  .feat--flip .feat-img{order:0}
  .feat img{aspect-ratio:4/5}
  .feat h2{font-size:clamp(28px,4.4vw,38px)}
  .feat p{font-size:15px;line-height:24px}
}
@media (max-width:719px){.feat img{aspect-ratio:16/10}.strip .car-slide{aspect-ratio:3/2}}
@media (min-width:960px) and (max-height:760px){
  .hero--tall{height:max(540px,calc(100svh - var(--util)))}
  .util .annc-in{padding-top:14px;padding-bottom:14px}
}

/* taller hero images on sub pages */
.hero--short{height:560px}
@media (max-width:959px){.hero--short{height:460px}}
@media (max-width:599px){.hero--short{height:400px}}

/* carousels drift on their own: no arrow buttons anywhere */
.car-nav,.evs-nav{display:none!important}
.evs{padding:56px 0 72px}
.evs .evs-car{--sw:300px;--gap:18px;max-width:none;margin:0;padding:0;overflow:hidden}
.evs .car-slide{width:var(--sw);height:400px}
.evs .evc{width:100%;height:100%}
.evs .evc--hot{width:100%}
@media (max-width:959px){.evs .evs-car{--sw:74vw}.evs .car-slide{max-width:300px;height:380px}}
.holes .car--auto .car-slide{transform:none;filter:none;transition:none}
.holes .car--auto .hole{pointer-events:auto}

/* ===== Green fees: season tabs + rate card ===== */
.fees{max-width:calc(940px + 2*var(--pad))}
.fees-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.fees-head h3{margin:0}
.fees-tabs{display:inline-flex;padding:4px;border-radius:999px;background:var(--grey-l,#E7E7E7)}
.fees-tabs button{appearance:none;border:0;background:transparent;padding:11px 22px;border-radius:999px;font:600 14px/1 var(--f-body);font-variation-settings:"wdth" 100,"wght" 600;color:var(--ink-2);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}
.fees-tabs button:hover{color:var(--ink)}
.fees-tabs button[aria-selected="true"]{background:var(--ink);color:#fff}
.fees-tabs button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.fees-panel{background:#F9F9F9;border:1px solid var(--line);border-radius:var(--r-band);padding:12px 36px 20px}
.fees-panel[hidden]{display:none}
.fees-table{width:100%;border-collapse:collapse;text-align:center}
.fees-table th,.fees-table td{padding:26px 12px;vertical-align:middle}
.fees-table thead th{font:700 20px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--ink);padding-bottom:22px}
.fees-table small{display:block;margin-top:6px;font:400 13px/1.3 var(--f-body);font-variation-settings:"wdth" 100,"wght" 400;color:var(--ink-2)}
.fees-table tbody th{text-align:left;font:700 17px/1.25 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--ink);width:24%}
.fees-table tbody tr+tr>*,.fees-table tbody tr:first-child>*{border-top:1px solid var(--line)}
.fees-table tbody td{font:700 clamp(30px,3.6vw,48px)/1 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--orange);letter-spacing:-.01em}
.fees-table td.fees-jr{border-left:1px solid var(--line)}
.fees-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:28px}
.fees-foot .sm{margin:0;max-width:52ch}
@media (max-width:719px){
  .fees-head{flex-direction:column;align-items:flex-start}
  .fees-panel{padding:6px 14px 10px}
  .fees-table th,.fees-table td{padding:18px 4px}
  .fees-table thead th{font-size:15px}
  .fees-table small{font-size:11px}
  .fees-table tbody th{font-size:14px;width:26%}
  .fees-table tbody td{font-size:26px}
  .fees-foot{flex-direction:column;align-items:flex-start}
}

/* ===== Green fees v2: lives inside the orange band like the rest of the site ===== */
.fees-band{padding:88px 0 96px}
.fees-band .fees{max-width:calc(940px + 2*var(--pad))}
.fees-band h2{margin:0;color:#fff}
.fees-sub{margin:16px 0 36px;color:rgba(255,255,255,.95);font-size:17px;line-height:1.5}
.fees-band .fees-tabs{display:inline-flex;gap:10px;padding:0;background:transparent;border-radius:0;margin-bottom:28px}
.fees-band .fees-tabs button{padding:15px 24px;border:1px solid rgba(255,255,255,.75);border-radius:var(--r-cta);background:transparent;color:#fff;font:600 13px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;font-variation-settings:"wdth" 100,"wght" 600}
.fees-band .fees-tabs button:hover{background:rgba(255,255,255,.14);color:#fff}
.fees-band .fees-tabs button[aria-selected="true"]{background:#fff;color:var(--ink);border-color:#fff}
.fees-band .fees-panel{background:#fff;border:0;border-radius:var(--r-panel);padding:10px 36px 16px;text-align:center;box-shadow:0 18px 40px rgba(120,45,0,.28)}
.fees-band .fees-foot{flex-direction:column;align-items:center;justify-content:center;gap:18px;margin-top:36px}
.fees-band .fees-foot .sm{color:rgba(255,255,255,.92);margin:0;max-width:none}
@media (max-width:719px){
  .fees-band{padding:64px 0 72px}
  .fees-band .fees-tabs{display:flex;flex-direction:row;width:100%}
  .fees-band .fees-tabs button{flex:1;padding:14px 8px;font-size:11px;letter-spacing:.08em}
  .fees-band .fees-panel{padding:4px 12px 8px}
}
.band-orange.s.fees-band{padding:88px 0 96px}
@media (max-width:719px){.band-orange.s.fees-band{padding:64px 0 72px}}
.fees-band .fees-panel{box-shadow:0 18px 40px rgba(120,45,0,.28)}
/* rate card: no grid lines, spacing does the work */
.fees-table tbody tr+tr>*,.fees-table tbody tr:first-child>*,.fees-table td.fees-jr,.fees-table thead th{border:0}
.fees-table th,.fees-table td{padding:22px 12px}
.fees-table thead th{padding-bottom:10px}
@media (max-width:719px){.fees-table th,.fees-table td{padding:16px 4px}}
/* junior rate sits outside the grid: it never changes */
.fees-table tbody th{width:30%}
.fees-junior{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;padding:22px 36px;background:#fff;border-radius:var(--r-panel);box-shadow:0 18px 40px rgba(120,45,0,.2);text-align:left}
.fees-junior p{margin:0;font:700 17px/1.25 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--ink)}
.fees-junior small{display:block;margin-top:4px;font:400 13px/1.3 var(--f-body);font-variation-settings:"wdth" 100,"wght" 400;color:var(--ink-2)}
.fees-junior span{font:700 clamp(30px,3.6vw,48px)/1 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--orange);letter-spacing:-.01em;margin-right:14%}
@media (max-width:719px){.fees-junior{padding:16px 16px}.fees-junior p{font-size:14px}.fees-junior span{font-size:26px;margin-right:6%}}

/* ===== Pre-paid packages: same rate-card language as green fees, on the dark band ===== */
.band-dark.pack-band{padding:88px 0 96px}
.pack-band .fees{max-width:calc(940px + 2*var(--pad))}
.pack-band h2{margin:0;color:#fff}
.pack-band .fees-sub{color:rgba(255,255,255,.88)}
.pack-band .fees-panel{background:#fff;border:0;border-radius:var(--r-panel);padding:10px 36px 20px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.pack-band .fees-table tfoot td{padding:12px 12px 6px;border:0}
.pack-band .fees-table tfoot .btn{width:100%;max-width:240px}
.pack-note{margin:32px auto 0;max-width:62ch;color:rgba(255,255,255,.8);font-size:14px;line-height:1.6}
@media (max-width:719px){
  .band-dark.pack-band{padding:64px 0 72px}
  .pack-band .fees-panel{padding:4px 12px 14px}
  .pack-band .fees-table tfoot .btn{padding:14px 6px;font-size:11px;letter-spacing:.06em;min-height:44px}
}

/* ===== Mobile menu: calm light sheet, big type ===== */
.mnav{background:#fff;color:var(--dg,#3A3A3C)}
.mnav-top{height:84px;padding:14px 24px;border-bottom:0}
.mnav-top img{width:150px}
.mnav-x{color:#3A3A3C}
.mnav ul{padding:12px 24px}
.mnav>nav>ul>li{border:0}
.mnav details summary,.mnav>nav>ul>li>a{font:800 clamp(38px,11vw,52px)/1.08 var(--f-body);letter-spacing:-.02em;color:#3A3A3C;padding:14px 0}
.mnav summary::after{content:"";width:12px;height:12px;border-right:3px solid #FF6C00;border-bottom:3px solid #FF6C00;transform:rotate(45deg) translateY(-3px);transition:transform .2s;margin-right:6px;flex:none}
.mnav details[open] summary::after{content:"";transform:rotate(-135deg) translate(-3px,-3px)}
.mnav details ul{padding:0 0 18px}
.mnav details li a{font:500 22px/1.3 var(--f-body);padding:9px 0;color:#6b6b6e}
@media (hover:hover){.mnav details li a:hover,.mnav>nav>ul>li>a:hover{color:#FF6C00}}
.mnav-foot{border-top:1px solid #E7E7E7;margin-top:24px;padding:20px 24px 28px;grid-template-columns:1fr 1fr}
.mnav-foot p{grid-column:1/-1;color:#6b6b6e;margin:6px 0 0}
.mnav-foot .btn{padding:14px 8px;font-size:12px;min-height:46px}
.mnav-foot .btn.white,.mnav-foot .btn--white{background:#fff;color:#3A3A3C;border:1.5px solid #3A3A3C}

/* announcement buttons: equal width */
.annc-b{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.annc-b .btn{width:100%;min-width:168px;justify-content:center;text-align:center;white-space:nowrap}
@media (max-width:480px){.annc-b{width:100%}.annc-b .btn{min-width:0;padding-left:8px;padding-right:8px}}

/* announcement buttons: compact, never overflow */
.annc-b{display:flex;justify-content:center;gap:10px;width:auto;max-width:100%}
.annc-b .btn{flex:0 0 auto;width:152px;min-width:0;padding:11px 8px;font-size:11.5px;letter-spacing:.08em}
@media (max-width:480px){.annc-b{width:auto}.annc-b .btn{width:min(148px,calc(50vw - 28px))}}
.annc-b .btn{margin:0}

/* Fees + packs: no white boxes, type sits directly on the band */
.fees-band .fees-panel,.pack-band .fees-panel{background:transparent;box-shadow:none;border-radius:0;padding:0 0 8px}
.fees-band .fees-table thead th,.fees-band .fees-table tbody th,.pack-band .fees-table thead th,.pack-band .fees-table tbody th{color:#fff}
.fees-band .fees-table small,.pack-band .fees-table small{color:rgba(255,255,255,.8)}
.fees-band .fees-table tbody td{color:#fff}
.pack-band .fees-table tbody td{color:var(--orange)}
.fees-band .fees-table th,.fees-band .fees-table td{padding:26px 12px}
.fees-band .fees-table thead th{padding-bottom:12px}
.fees-junior{background:transparent;box-shadow:none;border-radius:0;padding:26px 12px;margin-top:0}
.fees-junior p{color:#fff}
.fees-junior small{color:rgba(255,255,255,.8)}
.fees-junior span{color:#fff}
@media (max-width:719px){
  .fees-band .fees-table th,.fees-band .fees-table td{padding:18px 4px}
  .fees-junior{padding:18px 4px}
}
.fees-junior{display:grid;grid-template-columns:30% 1fr 1fr;align-items:center;gap:0}
.fees-junior span{grid-column:3;text-align:center;margin:0}
@media (max-width:719px){.fees-junior{grid-template-columns:26% 1fr 1fr}.fees-junior span{margin:0}}
.fees-junior{padding-left:0;padding-right:0}

/* ===== Spacing system (single source of truth; wins over earlier blocks) =====
   --sec-y  : breathing room above/below plain content sections
   --box-y  : inner padding of every boxed band
   --box-gap: gap between two boxes stacked directly */
:root{--sec-y:80px;--box-y:96px;--box-gap:16px}
@media (max-width:719px){:root{--sec-y:56px;--box-y:64px}}
main>section:not(.hero):not(.strip):not(.post-hero){margin-top:0;margin-bottom:0}
/* plain sections */
main>section.sec,main>section.holes-sec,main>section.gallery,main>section.tslide,main>section[aria-label="Plan your visit"],main>section#application,main>section.sec.visit{padding-top:var(--sec-y);padding-bottom:var(--sec-y)}
/* plain directly after plain: one gap, not two */
main>section.sec+section.sec,main>section.sec+section#application{padding-top:0}
main>section.sec[style]{padding-top:var(--sec-y)}
/* boxes */
main>section[class*="band-"],main>section.evs,main>section.pack-band{padding-top:var(--box-y);padding-bottom:var(--box-y)}
main>section.evs{padding-top:calc(var(--box-y) - 24px);padding-bottom:calc(var(--box-y) - 24px)}
.band-orange.s.fees-band,.band-dark.pack-band,.band-orange.s.fees-band.center{padding-top:var(--box-y);padding-bottom:var(--box-y)}
#green-fees{padding:0}
/* box directly after box */
main>section[class*="band-"]+section[class*="band-"],main>section[class*="band-"]+#green-fees,#green-fees+section[class*="band-"],main>section.evs+section[class*="band-"]{margin-top:var(--box-gap)}
/* newsletter box: same plain->box rhythm */
.band-news.nl{margin-top:0;padding-top:var(--box-y);padding-bottom:var(--box-y)}
main+*>.nl,.nl{margin-top:0}
.band-news.nl{margin-top:var(--box-gap)}
main>section.sec:last-child,main>section.gallery:last-child,main>section.tslide:last-child,main>article.post:last-child,main>section.holes-sec:last-child,main>section[aria-label="Plan your visit"]:last-child{padding-bottom:calc(var(--sec-y) - var(--box-gap))}
main>section.gallery{margin-top:0;margin-bottom:0}
main>section.evs{padding-top:var(--box-y);padding-bottom:var(--box-y)}

/* ===== Typographic event tiles: no photo required =====
   Add an EVENTS row with photo=None and a tone (orange | dark | grey). */
.evs .evc--type{background:var(--g-dark);color:#fff;isolation:isolate}
.evs .evc--type::after{inset:0;z-index:-1;background:repeating-radial-gradient(circle at 108% -8%,transparent 0 26px,rgba(255,255,255,.10) 26px 27px)}
.evc-big{position:absolute;left:24px;right:24px;top:26px;margin:0;font:800 clamp(34px,3.2vw,44px)/1 var(--f-body);font-variation-settings:"wdth" 100,"wght" 800;letter-spacing:-.025em;color:#fff;text-wrap:balance}
.evs .evc--orange{background:var(--g-orange)}
.evs .evc--dark{background:var(--g-dark)}
.evs .evc--dark .evc-big{color:var(--orange)}
.evs .evc--grey{background:#E7E7E7;color:var(--ink)}
.evs .evc--grey::after{background:repeating-radial-gradient(circle at 108% -8%,transparent 0 26px,rgba(58,58,60,.09) 26px 27px)}
.evs .evc--grey .evc-big{color:var(--orange)}
.evs .evc--grey h3{color:var(--ink)}
.evs .evc--grey .evc-x{color:#58585b}
.evs .evc--grey .evc-a{background:var(--ink);color:#fff}
.evs .evc--grey .evc-a:hover{background:var(--blue)}
.evs .evc--type h3{color:#fff}
.evs .evc--grey h3{color:var(--ink)}
.evs .evc--orange .evc-a{background:#fff;color:var(--ink)}
.evs .evc--type picture{display:none}
.evs .evc p.evc-big{position:absolute;left:24px;right:24px;top:26px;margin:0;font:800 clamp(34px,3.2vw,44px)/1 var(--f-body);font-variation-settings:"wdth" 100,"wght" 800;letter-spacing:-.025em;color:#fff}
.evs .evc--dark p.evc-big,.evs .evc--grey p.evc-big{color:var(--orange)}
@media (max-width:959px){.evs .evc p.evc-big{font-size:36px}}
.evs .evc p.evc-big{font-size:clamp(32px,2.8vw,40px)}@media (max-width:959px){.evs .evc p.evc-big{font-size:36px}}
/* typographic tiles: flat colour, no line pattern */
.evs .evc--type::after,.evs .evc--grey::after{background:none}

/* Live Music Sundays schedule */
.lm-m{margin:36px 0 6px;font:700 20px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--ink)}
.lm{list-style:none;margin:0;padding:0}
.lm li{display:grid;grid-template-columns:104px 1fr;gap:16px;padding:9px 0;font-size:17px;line-height:1.4}
.lm time{font-weight:600;color:var(--orange)}
.lm b{font-weight:600;color:var(--ink)}
.lm em{display:block;font-style:normal;font-size:15px;color:var(--ink-2)}
@media (max-width:719px){.lm li{grid-template-columns:88px 1fr;gap:12px}}
.tk-i a{color:inherit;text-decoration:none}
.lm li{grid-template-columns:136px 1fr}@media (max-width:719px){.lm li{grid-template-columns:116px 1fr}}
.lm li{grid-template-columns:136px 64px 1fr;align-items:center;gap:16px;padding:10px 0}
.lm-ph,.lm-img{width:64px;height:64px;aspect-ratio:1/1;border-radius:var(--r-panel);flex:none}
.lm-img{object-fit:cover;display:block}
.lm-ph{display:grid;place-items:center;background:#E7E7E7;color:#8a8a8d;font:700 18px/1 var(--f-body);letter-spacing:.04em}
@media (max-width:719px){.lm li{grid-template-columns:88px 56px 1fr;gap:12px}.lm-ph,.lm-img{width:56px;height:56px}.lm time{font-size:15px}}
.post .post-cta{margin-top:56px}.post .post-cta+p{margin-top:28px}
.lm-none{margin:6px 0 0;color:var(--ink-2)}
.lm--past li{opacity:.72}
.lm-d{margin-top:36px;border-top:1px solid var(--line)}
.lm-d[hidden]{display:none}
.lm-d summary{display:flex;justify-content:space-between;align-items:center;padding:20px 0;cursor:pointer;list-style:none;font:700 20px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--ink)}
.lm-d summary::-webkit-details-marker{display:none}
.lm-d summary span{font-weight:500;color:var(--ink-2);margin-left:8px;flex:1}
.lm-d summary::after{content:"";width:11px;height:11px;border-right:3px solid var(--orange);border-bottom:3px solid var(--orange);transform:rotate(45deg) translateY(-3px);transition:transform .2s;margin-right:4px}
.lm-d[open] summary::after{transform:rotate(-135deg) translate(-3px,-3px)}
.lm-d summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.lm--past li{opacity:1}
.post .post-cta{display:flex;flex-wrap:wrap;gap:12px}

/* Footer booking buttons: compact, equal width, one row, orange */
.foot-brand .foot-book{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:340px;margin:28px 0 32px}
.foot-brand .foot-book a,.foot-book a{display:flex;justify-content:center;align-items:center;width:100%;max-width:none;padding:13px 8px;min-height:44px;border:1px solid var(--orange);border-radius:var(--r-cta);background:var(--orange);color:#fff;font:600 11.5px/1.1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;text-align:center;text-decoration:none;white-space:nowrap}
.foot-brand .foot-book a:hover,.foot-brand .foot-book a:focus-visible,.foot-book a:hover{background:#fff;border-color:#fff;color:var(--ink)}
@media (max-width:719px){.foot-brand .foot-book{max-width:none;margin:24px 0 28px}.foot-brand .foot-book a{font-size:11px;letter-spacing:.07em}}

/* Mobile menu accordion: open section shrinks and offers its main page */
.mnav details summary{transition:font-size .2s var(--ease,ease)}
.mnav details[open] summary{font-size:clamp(24px,7vw,30px);color:#6b6b6e;padding-bottom:6px}
.mnav details li.mn-all a{display:inline-block;margin:4px 0 8px;padding:10px 18px;border:1.5px solid #FF6C00;border-radius:var(--r-cta);font:600 13px/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:#FF6C00}

.mnav details summary a{color:inherit;text-decoration:none;font:inherit;pointer-events:auto}
.mnav details[open] summary{font:500 22px/1.3 var(--f-body);letter-spacing:0;color:#6b6b6e;padding:9px 0}
@media (hover:hover){.mnav details[open] summary a:hover{color:#FF6C00}}
.mnav details[open] summary::after{margin-right:4px}
.mnav details[open]>ul{padding-top:0}

/* announcement: no top bar until the announcement opens */
html.annc-wait .util{height:0!important;overflow:hidden}

/* Cookie notice */
.cookie{position:fixed;left:16px;bottom:16px;z-index:90;display:flex;align-items:center;gap:20px;max-width:520px;padding:16px 16px 16px 22px;background:var(--ink);color:#fff;border-radius:var(--r-panel);box-shadow:0 14px 36px rgba(0,0,0,.35);opacity:0;transform:translateY(12px);transition:opacity .25s var(--ease),transform .25s var(--ease)}
.cookie[hidden]{display:none}
.cookie--in{opacity:1;transform:none}
.cookie p{margin:0;font-size:14px;line-height:1.45;color:rgba(255,255,255,.92)}
.cookie a{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.5)}
.cookie a:hover{text-decoration-color:var(--orange)}
.cookie .btn{flex:none;padding:12px 20px;font-size:12px;min-height:44px}
@media (max-width:719px){.cookie{left:10px;right:10px;bottom:10px;max-width:none;gap:14px;padding:14px 14px 14px 16px}.cookie p{font-size:13px}}
@media (prefers-reduced-motion:reduce){.cookie{transition:none}}
/* Cookie notice: light, slightly transparent; secondary button */
.cookie{background:rgba(231,231,231,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.5)}
.cookie p{color:var(--ink)}
.cookie a{color:var(--ink);text-decoration-color:rgba(58,58,60,.45)}
.cookie a:hover{text-decoration-color:var(--orange)}
.cookie .btn{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.cookie .btn:hover{background:var(--ink);color:#fff}
.post-hero p:last-child{margin-bottom:0}
.foot-nav h2 a{color:inherit;text-decoration:none}.foot-nav h2 a:hover,.foot-nav h2 a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--orange)}

/* Tournaments: photos in one horizontal row above the copy (replaces the overlapping stack) */
.t-grid{grid-template-columns:1fr;row-gap:48px;align-items:start}
.stack3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;height:auto;aspect-ratio:auto;max-width:none;width:100%;margin:0}
.stack3 img,.stack3 .a,.stack3 .b,.stack3 .c{position:static;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;left:auto;top:auto;box-shadow:none}
.stack3 picture{display:block}
.t-grid>.rv:last-child{max-width:760px}
@media (max-width:719px){.stack3{gap:8px}.stack3 img{aspect-ratio:3/4}.t-grid{row-gap:32px}}
@media (max-width:719px){.stack3 img,.stack3 .a,.stack3 .b,.stack3 .c{aspect-ratio:3/4}}
/* Newsletter box: tighter inner padding */
.band-news.nl{padding-top:56px;padding-bottom:56px}
@media (max-width:719px){.band-news.nl{padding-top:44px;padding-bottom:44px}}
/* Stay & Play: Learn More sits under the copy, above the photos */
.stay-txt .btn{margin-top:24px}
.stay-row{margin-bottom:32px}
@media (max-width:719px){.stay-row .btn{margin:0}.stay-txt .btn{margin-top:20px}.stay-row{margin-bottom:24px}}

/* ===== Memberships ===== */
.mem-intro .wrap{max-width:calc(1040px + 2*var(--pad))}
.mem-lede{margin:0 0 56px;max-width:46ch;font:500 clamp(24px,2.6vw,34px)/1.3 var(--f-body);font-variation-settings:"wdth" 100,"wght" 500;letter-spacing:-.01em;color:var(--ink)}
.mem-perks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:40px 32px}
.mem-perks h3{margin:0 0 8px;font:700 20px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;text-transform:none;font-variant-caps:normal;color:var(--ink)}
.mem-perks p{margin:0;font-size:16px;line-height:1.5;color:var(--ink-2)}
.mem-cart{margin:48px 0 0;font-size:16px;color:var(--ink-2)}
@media (max-width:959px){.mem-perks{grid-template-columns:1fr 1fr}}
@media (max-width:519px){.mem-perks{grid-template-columns:1fr;gap:28px}.mem-lede{margin-bottom:40px}}

.mem-price h2{margin:0 0 56px;color:#fff}
.mem-prices{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:860px;margin:0 auto 40px}
.mem-prices h3{margin:0 0 8px;font:700 22px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;text-transform:none;font-variant-caps:normal;color:#fff}
.mem-prices p{margin:0 0 24px;font-size:15px;color:rgba(255,255,255,.8)}
.mem-prices .price{display:block;font:700 clamp(40px,5vw,64px)/1 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--orange);letter-spacing:-.02em}
.mem-plan{margin:0 auto 36px;max-width:60ch;color:rgba(255,255,255,.88)}
@media (max-width:719px){.mem-prices{grid-template-columns:1fr;gap:40px}}

/* application */
#application .wrap{max-width:calc(1120px + 2*var(--pad))}
#application h2{margin:0 0 8px}
.ap-lede{margin:0 0 48px;color:var(--ink-2);font-size:17px}
.ap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}
.ap-main{display:grid;gap:44px}
fieldset.ap-sec{border:0;padding:0;margin:0;min-width:0}
fieldset.ap-sec legend{padding:0;margin:0 0 20px;font:700 24px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--ink)}
.ap-grp{margin:0 0 28px}
.ap-gl{margin:0 0 10px;font:600 15px/1.3 var(--f-body);color:var(--ink)}
.ap-opt{display:flex;align-items:center;gap:14px;padding:16px 18px;margin:0 0 10px;border:1.5px solid #cfcfd1;border-radius:var(--r-panel);cursor:pointer;background:#fff;transition:border-color .15s,background .15s;min-height:64px}
.ap-opt:hover{border-color:var(--ink)}
.ap-opt input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:0;border:1.5px solid #8a8a8d;border-radius:50%;background:#fff}
.ap-opt input:checked{border:7px solid var(--orange)}
.ap-opt:has(input:checked){border-color:var(--orange);background:#FFF6EE}
.ap-opt:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.ap-opt-t{flex:1;display:flex;flex-direction:column;gap:2px}
.ap-opt-t b{font:600 17px/1.3 var(--f-body);color:var(--ink)}
.ap-opt-t small{font-size:14px;color:var(--ink-2)}
.ap-opt-p{font:700 18px/1 var(--f-body);color:var(--ink);white-space:nowrap}
.ap-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ap-f{margin:0 0 20px;min-width:0}
.ap-f label{display:block;margin:0 0 6px;font:600 15px/1.3 var(--f-body);color:var(--ink)}
.ap-f input,.ap-f select{width:100%;min-height:52px;padding:12px 14px;font:400 16px/1.3 var(--f-body);color:var(--ink);background:#fff;border:1.5px solid #cfcfd1;border-radius:var(--r-panel);transition:border-color .15s,box-shadow .15s}
.ap-f input:hover,.ap-f select:hover{border-color:var(--ink)}
.ap-f input:focus,.ap-f select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(33,144,243,.25)}
.ap-e{margin:6px 0 0;font:500 14px/1.4 var(--f-body);color:#B3261E}
.ap-bad input,.ap-bad select{border-color:#B3261E}
.ap-opt-bad,.ap-grp.ap-bad .ap-opt{border-color:#B3261E}
.ap-sec.ap-bad .ap-chk{outline:2px solid #B3261E;outline-offset:4px;border-radius:4px}
.ap-legal{max-height:220px;overflow:auto;padding:20px 22px;margin:0 0 18px;border:1.5px solid #cfcfd1;border-radius:var(--r-panel);background:#F7F7F7;font-size:14px;line-height:1.55;color:var(--ink-2)}
.ap-legal:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ap-legal h4{margin:0 0 10px;font:700 16px/1.3 var(--f-body);color:var(--ink)}
.ap-legal p{margin:0 0 12px}.ap-legal b{color:var(--ink);font-weight:600}
.ap-chk{display:flex;gap:14px;align-items:flex-start;padding:6px 0;cursor:pointer;font-size:16px;line-height:1.45;color:var(--ink)}
.ap-chk input{appearance:none;-webkit-appearance:none;flex:none;width:24px;height:24px;margin:0;border:1.5px solid #8a8a8d;border-radius:4px;background:#fff}
.ap-chk input:checked{background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat;border-color:var(--orange)}
.ap-chk input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ap-side{position:sticky;top:calc(var(--bar) + 24px)}
.ap-card{padding:28px;background:#F4F4F5;border-radius:var(--r-panel)}
.ap-card h3{margin:0 0 18px;font:700 22px/1.2 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;text-transform:none;font-variant-caps:normal;color:var(--ink)}
.ap-card dl{margin:0 0 20px;display:grid;gap:12px}
.ap-card dl div{display:flex;flex-direction:column;gap:2px}
.ap-card dt{font-size:14px;color:var(--ink-2)}
.ap-card dd{margin:0;font:600 16px/1.35 var(--f-body);color:var(--ink)}
.ap-total{display:flex;align-items:baseline;gap:10px;margin:0 0 18px;padding-top:18px;border-top:1px solid #d6d6d8}
.ap-total span{font:700 40px/1 var(--f-body);font-variation-settings:"wdth" 100,"wght" 700;color:var(--ink);letter-spacing:-.02em}
.ap-total small{font-size:14px;color:var(--ink-2)}
.ap-fine{margin:0 0 22px;font-size:13px;line-height:1.5;color:var(--ink-2)}
.ap-submit{width:100%;min-height:52px}
.ap-note{margin:12px 0 0;font:500 14px/1.4 var(--f-body);color:var(--ink-2);min-height:0}
.ap-note--bad{color:#B3261E}
@media (max-width:959px){.ap{grid-template-columns:1fr;gap:36px}.ap-side{position:static}}
@media (max-width:719px){.ap-row{grid-template-columns:1fr;gap:0}.ap-opt{padding:14px}.ap-opt-p{font-size:16px}.ap-card{padding:22px}fieldset.ap-sec legend{font-size:22px}}

/* ===== Smaller hero headlines (all pages) ===== */
.hero--tall .hero-copy h1{font-size:clamp(30px,3.9vw,60px)}
.hero--short .hero-copy h1{font-size:clamp(28px,3.5vw,46px)}
.hero.hero--feature .hero-copy h1{font-size:clamp(24px,2.8vw,39px)}
.post-hero h1{font-size:clamp(27px,3.1vw,42px)}
.contact-hero h1{font-size:clamp(30px,3.5vw,50px)}
.hero-copy .kicker{font-size:clamp(15px,1.25vw,17px)}
@media (max-width:959px){
  .hero--tall .hero-copy h1{font-size:clamp(28px,8vw,38px)}
  .hero--short .hero-copy h1{font-size:clamp(26px,7.4vw,34px)}
  .hero.hero--feature .hero-copy h1{font-size:clamp(22px,5.6vw,28px)}
  .post-hero h1{font-size:clamp(25px,7vw,32px)}
  .contact-hero h1{font-size:clamp(27px,7.6vw,34px)}
  .hero-copy .kicker{font-size:15px}
}

/* ---- Netlify launch: cookie Accept/Decline, footer cookie settings, form honeypot ---- */
.cookie-b{display:flex;gap:10px;flex:none}
.cookie .btn#cookie-ok{background:var(--ink);color:#fff}
.cookie .btn#cookie-ok:hover,.cookie .btn#cookie-ok:focus-visible{background:var(--blue-hi);border-color:var(--blue-hi)}
@media (max-width:719px){.cookie{flex-wrap:wrap}.cookie-b{width:100%}.cookie-b .btn{flex:1}}
.foot-ck{background:none;border:0;padding:0;font:inherit;font-weight:500;color:#fff;opacity:.85;cursor:pointer}
.foot-ck:hover,.foot-ck:focus-visible{opacity:1;color:var(--blue-hi);text-decoration:underline}
.hp{display:none!important}

/* ---- Policy pages: lists match body copy ---- */
.post ul,.post ol{margin:0 0 24px;padding-left:22px}
.post li{font-size:17px;line-height:28px;margin:0 0 6px}
.post li ul,.post li ol{margin:8px 0 0}

/* ---- Newsletter: CASL consent line under the button ---- */
.nl .nl-consent{grid-column:1/-1;margin:14px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-2);max-width:62ch}
.nl .nl-consent a{color:inherit;text-underline-offset:2px}
.nl .nl-consent a:hover{color:var(--blue)}
