/* Oak Bay Golf Club — site styles. Matches oakbaygolf.com layout and tokens.
   Tokens map 1:1 to theme.json at WordPress conversion. */

:root{
  --orange:#ff6c00;--orange-d:#d14800;--ink:#3a3a3a;--grey:#e8e8e8;--white:#fff;--black:#000;--red:#d63638;
  --f-body:"Mona Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-disp:"Trajan Pro 3","Trajan Pro",Cinzel,"Times New Roman",serif;
  --cw:1200px;--pad:36px;--util:38px;--hdr:137px;--bar:112px;
  --g-orange:linear-gradient(115deg,#ff6c00 0%,#d14800 100%);
  --g-dark:linear-gradient(110deg,#3a3a3a 0%,#000 100%);
  --g-grey:linear-gradient(110deg,#e8e8e8 0%,#fafafa 100%);
  --shadow:0 30px 60px rgba(0,0,0,.22);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 16px/28px var(--f-body);color:var(--ink);background:#fff;overflow-x:hidden;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
p{margin:0 0 18px}
h1,h2,h3,h4{margin:0;font-weight:400}
ul{margin:0;padding:0}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:#fff;color:var(--ink);padding:10px 16px;border-radius:8px}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:100%;max-width:calc(var(--cw) + 2*var(--pad));margin:0 auto;padding:0 var(--pad)}
body.home{--cw:1272px}
.narrow{max-width:calc(984px + 2*var(--pad))}
.center{text-align:center}

/* ---------- Type ---------- */
.disp{font-family:var(--f-disp)}
.h-xl{font:600 49px/58.8px var(--f-disp)}
.h-l{font:400 49px/58.8px var(--f-disp)}
.h-m{font:400 39px/46.8px var(--f-disp)}
.h-s{font:400 31px/37.2px var(--f-disp)}
.h-xs{font:400 24px/28.8px var(--f-disp)}
.it{font-style:italic;font-weight:800}
.lg{font-size:18px;line-height:31.5px}
.sm{font-size:14px;line-height:24.5px}
.orange{color:var(--orange)}
.white{color:#fff}
.lead20{font:600 20px/24px var(--f-body)}
.spaced{letter-spacing:.35em;text-transform:uppercase}
.price{font:400 28px/34px var(--f-disp);color:var(--orange)}
em.ext{font-style:italic}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;font:600 14px/normal var(--f-body);letter-spacing:-.28px;text-transform:uppercase;text-decoration:none;padding:14px 23px;border-radius:8px;border:1px solid transparent;background:var(--orange);color:#fff;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn:hover{background:var(--orange-d)}
.btn:active{transform:translateY(1px)}
.btn--white{background:#fff;color:var(--ink)}
.btn--white:hover{background:var(--ink);color:#fff}
.btn--dark{background:var(--ink);color:#fff}
.btn--dark:hover{background:#000}
.btn--line{background:rgba(255,255,255,.5);color:var(--orange);border-color:var(--orange)}
.btn--line:hover{background:var(--orange);color:#fff}
.dark-band .btn--line,.hero .btn--line,.band-glass .btn--line{background:transparent}
.btns{display:flex;flex-wrap:wrap;gap:15px;align-items:center}
.btns.c{justify-content:center}

/* ---------- Utility bar + header ---------- */
.util{background:var(--ink);color:#fff;height:var(--util);font-size:14px;line-height:var(--util);position:relative;z-index:60}
.util .wrap{display:flex;justify-content:space-between;align-items:center;height:100%}
.util a{text-decoration:none;margin-left:14px}
.util a:hover{color:var(--orange)}
.wx{display:flex;gap:14px;opacity:.9;min-height:1px}
.wx span{white-space:nowrap}
.hdr{position:sticky;top:0;z-index:55;height:var(--hdr);pointer-events:none}
.hdr::before{content:"";position:absolute;left:0;right:0;top:0;height:var(--hdr);background:rgba(58,58,58,.1);border-bottom:1px solid rgba(255,255,255,.14);transition:background .25s,height .25s,box-shadow .25s}
.hdr-in{position:relative;display:flex;align-items:center;justify-content:space-between;height:var(--hdr);transition:height .25s}
.hdr-in>*{pointer-events:auto}
.logo{display:block;width:201px;flex:none}
.logo img{width:201px;height:auto}
.logo .l-dark{display:none}
.nav{margin-left:auto}
.nav>ul{display:flex;list-style:none;gap:26px;align-items:center}
.nav>ul>li{position:relative}
.nav>ul>li>a{display:block;font:500 14px/28px var(--f-body);text-transform:uppercase;text-decoration:none;color:#fff;padding:20px 0;transition:color .2s}
.nav>ul>li:hover>a,.nav>ul>li:focus-within>a,.nav a[aria-current]{color:var(--orange)}
.sub{position:absolute;left:-18px;top:100%;min-width:220px;background:#fff;border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.18);padding:10px 0;list-style:none;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.nav li:hover>.sub,.nav li:focus-within>.sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:7px 22px;font-size:14px;line-height:22px;color:var(--ink);text-decoration:none;white-space:nowrap}
.sub a:hover{color:var(--orange);background:#f6f6f6}
.soc{display:flex;gap:14px;margin-left:26px;align-items:center}
.soc a{display:block;color:#fff;line-height:0}
.soc a:hover{color:var(--orange)}
.soc svg{width:16px;height:16px;fill:currentColor}
.burger{display:none;pointer-events:auto;background:none;border:0;color:#fff;padding:10px;margin-right:-10px;cursor:pointer}
.burger svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
/* header states */
.hdr.stuck::before,body.hdr-solid .hdr::before{background:#fff;height:var(--bar);border-bottom-color:transparent}
.hdr.stuck::before{box-shadow:0 6px 24px rgba(0,0,0,.12)}
.hdr.stuck .hdr-in{height:var(--bar)}
.hdr.stuck .l-light,body.hdr-solid .l-light{display:none}
.hdr.stuck .l-dark,body.hdr-solid .l-dark{display:block}
.hdr.stuck .nav>ul>li>a,body.hdr-solid .nav>ul>li>a,.hdr.stuck .soc a,body.hdr-solid .soc a,.hdr.stuck .burger,body.hdr-solid .burger{color:var(--ink)}
.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],.hdr.stuck .soc a:hover,body.hdr-solid .soc a:hover{color:var(--orange)}
body.hdr-solid .hdr{margin-bottom:0}
body:not(.hdr-solid) main{margin-top:calc(-1*var(--hdr))}
body.hdr-solid .hdr::before{height:var(--hdr)}
body.hdr-solid .hdr.stuck::before{height:var(--bar)}

/* ---------- Mobile menu ---------- */
.mnav{position:fixed;inset:0;z-index:100;background:var(--g-dark);color:#fff;overflow:auto;display:none;flex-direction:column}
.mnav.open{display:flex}
.mnav-top{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;height:90px;flex:none}
.mnav-top img{width:160px}
.mnav-x{background:none;border:0;color:#fff;padding:10px;cursor:pointer;line-height:0}
.mnav-x svg{width:28px;height:28px;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.mnav ul{list-style:none;padding:8px 24px}
.mnav>nav>ul>li{border-bottom:1px solid rgba(255,255,255,.14)}
.mnav details summary,.mnav>nav>ul>li>a{display:flex;justify-content:space-between;align-items:center;font:600 28px/1.2 var(--f-disp);text-transform:none;padding:20px 0;list-style:none;cursor:pointer;text-decoration:none;color:#fff}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary::after{content:"+";font:300 28px/1 var(--f-body);color:var(--orange)}
.mnav details[open] summary::after{content:"–"}
.mnav details ul{padding:0 0 14px}
.mnav details li a{display:block;padding:9px 0;font-size:17px;color:rgba(255,255,255,.88);text-decoration:none}
.mnav-foot{padding:24px;margin-top:auto;display:grid;gap:12px}
.mnav-foot .btn{width:100%}
.mnav-foot p{margin:8px 0 0;font-size:14px;line-height:22px;color:rgba(255,255,255,.8)}

/* ---------- Hero ---------- */
.hero{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:var(--ink);isolation:isolate}
.hero--tall{height:calc(100vh - var(--util) - 190px);min-height:560px;max-height:880px}
.hero--short{height:467px}
.hero>picture,.hero>video{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero>picture img,.hero>video{width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.42))}
.hero-copy{max-width:940px;padding:0 var(--pad);position:relative}
.hero-copy .lead20{margin:0 0 20px}
.hero-copy h1{margin:0 0 30px}
.hero--short h1{font:400 31px/37.2px var(--f-disp);margin-top:0}
.hero--short .hero-copy{padding-top:var(--hdr);margin-top:-30px}
.hero--tall .hero-copy{padding-top:var(--hdr)}

/* ---------- Sections ---------- */
.sec{padding:72px 0}
.sec--144{padding:144px 0}
.band-orange{background:var(--g-orange);color:#fff;padding:90px 0 72px}
.band-orange.s{padding:72px 0}
.band-dark{background:var(--g-dark);color:#fff}
.band-grey{background:var(--g-grey)}
.band-news{background:var(--grey);padding:44px 0 52px}
.band-glass{position:relative;color:#fff;isolation:isolate;overflow:hidden;background:#000}
.band-glass>picture{position:absolute;inset:0;z-index:-2}
.band-glass>picture img{width:100%;height:100%;object-fit:cover}
.band-glass::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.4)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.two>div>p:last-child{margin-bottom:0}
.gap36 p{margin-bottom:36px}

/* ---------- Carousel ---------- */
.car{position:relative;overflow:hidden;touch-action:pan-y}
.car--vis{overflow:visible}
.car-track{display:flex;gap:var(--gap,36px);will-change:transform;transition:transform .55s cubic-bezier(.22,.7,.2,1);cursor:grab}
.car.drag .car-track{transition:none;cursor:grabbing}
.car-slide{flex:none;width:var(--sw)}
.car-nav{position:absolute;top:50%;z-index:3;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 6px 20px rgba(0,0,0,.2);cursor:pointer;opacity:0;transition:opacity .2s,background .2s;display:grid;place-items:center}
.car:hover .car-nav,.car-nav:focus-visible{opacity:1}
.car-nav:hover{background:var(--orange);color:#fff}
.car-nav svg{width:20px;height:20px;stroke:currentColor;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.car-prev{left:max(12px,calc(50% - var(--sw)/2 - 70px))}
.car-next{right:max(12px,calc(50% - var(--sw)/2 - 70px))}
.car-dots{display:flex;justify-content:center;gap:10px;margin-top:28px}
.car-dots button{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:#c9c9c9;cursor:pointer}
.car-dots button[aria-current="true"]{background:var(--ink)}

/* strip (home) */
.strip{position:relative;z-index:3;margin-top:-37px;padding-bottom:146px}
.strip .car{--sw:min(965px,72vw);--gap:144px}
.strip .car-slide{aspect-ratio:3/2;background:#ddd;border-radius:0}
.strip img{width:100%;height:100%;object-fit:cover}
.strip .car-slide{background:#fff}
/* holes */
.holes-sec{padding:130px 0 145px}
.holes-sec h2{text-align:center;margin-bottom:84px}
.holes .car{--sw:546px;--gap:36px}
.hole{position:relative;aspect-ratio:4/5;background:#222;color:#fff;overflow:hidden;display:block;width:100%;border:0;padding:0;text-align:left;cursor:pointer;font:inherit}
.hole picture,.hole img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hole::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.45))}
.hole-t{position:absolute;left:36px;bottom:30px;z-index:2}
.hole-t h3{font:400 39px/46.8px var(--f-disp);margin:0;color:#fff}
.hole-t p{margin:0;font-size:16px;line-height:28px}
.hole-t svg{width:14px;height:14px;fill:#fff;margin-top:2px}

/* news slider (hub) */
.nslide{padding:0 0 28px}
.nslide .car{max-width:1331px;margin:0 auto;--sw:432px;--gap:18px;padding:30px 0 60px;margin-top:-30px;margin-bottom:-60px}
.ncard{position:relative;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:1/1;color:#fff;text-decoration:none;overflow:hidden;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.14);padding:30px;isolation:isolate}
.ncard picture,.ncard img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.ncard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(0,0,0,0) 35%,rgba(0,0,0,.62))}
.ncard.noimg::after{background:linear-gradient(rgba(255,255,255,0) 40%,rgba(58,58,58,.55))}
.ncard time{font:600 12px/20px var(--f-body);display:block}
.ncard h3{font:400 31px/37.2px var(--f-disp);margin-top:4px;color:#fff}

/* news text slider (news page) */
.tslide{padding:100px 0 90px}
.tcards{display:grid;grid-template-columns:repeat(3,200px);gap:134px;justify-content:center}
.tcard{display:block;text-decoration:none}
.tcard time{display:block;font:600 12px/20px var(--f-body);margin-bottom:8px}
.tcard h2{font:400 24px/30px var(--f-disp);margin-bottom:18px}
.tcard:hover h2{color:var(--orange)}
.tcard p{margin:0}
.tpage[hidden]{display:none}

/* ---------- Feature rows (home) ---------- */
.feat{display:grid;grid-template-columns:minmax(0,493px) minmax(0,712px);justify-content:space-between;align-items:center}
.feat--flip{grid-template-columns:minmax(0,712px) minmax(0,493px)}
.feat img{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow)}
.feat h2{margin-bottom:34px}
.feat p{margin-bottom:34px}

/* ---------- Rates ---------- */
.rates{max-width:1164px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:0}
.rates--2{grid-template-columns:repeat(2,1fr)}
.rate h3{font:600 31px/37.2px var(--f-body);letter-spacing:-.62px;margin-bottom:9px}
.rate .sub2{margin:0 0 40px}
.rate .row{margin-bottom:36px}
.rate .row .price{display:block;margin-bottom:6px}
.rate .row span.spaced{display:block;font-size:16px;line-height:24px;font-weight:400}
.rate .btn{margin-top:20px}

/* ---------- Footer ---------- */
.nl h2{font:800 31px/37.2px var(--f-body);font-style:italic;margin:0 0 30px;max-width:1128px}
.nl form{display:grid;grid-template-columns:1fr 1fr;gap:16px 16px}
.nl input,.field input,.field select{width:100%;height:42px;border:1px solid #cfcfcf;border-radius:8px;padding:0 14px;font:400 15px/1 var(--f-body);background:#fff;color:var(--ink)}
.nl input::placeholder{color:#8a8a8a}
.nl .sbm{grid-column:1/-1;margin-top:6px}
.btn.sub-btn{font:700 17px/1 Arial,Helvetica,sans-serif;letter-spacing:0;padding:14px 18px}
.foot{background:var(--g-dark);color:#fff;padding:110px 0 70px}
.foot-grid{display:grid;grid-template-columns:repeat(12,1fr)}
.foot-nav{grid-column:span 2}
.foot h2{font:600 20px/26px var(--f-body);margin-bottom:22px;color:#fff}
.foot ul{list-style:none}
.foot li a{display:inline-block;text-decoration:none;font-size:16px;line-height:25.5px;color:#fff}
.foot li a:hover{color:var(--orange)}
.foot-addr{grid-column:span 5;padding-left:36px}
.foot-addr p{margin:0 0 30px;line-height:25.5px}
.foot-addr .a{color:var(--orange)}
.foot-addr h3{font:400 18px/26px var(--f-body);margin:0 0 4px}
.foot-addr .logos img{height:20px;width:auto;margin-bottom:28px}
.foot-soc{grid-column:span 1;display:flex;justify-content:flex-end;gap:14px;align-items:flex-start;padding-top:3px}
.foot-soc a{color:#fff;line-height:0}
.foot-soc a:hover{color:var(--orange)}
.foot-soc svg{width:18px;height:18px;fill:currentColor}
.legal{background:var(--ink);color:#fff;font-size:12px;line-height:20px;text-align:center;padding:16px var(--pad)}
.legal a{font-weight:600;text-decoration:none}
.legal a:hover{text-decoration:underline}
.legal b{font-weight:600}

/* ---------- Forms ---------- */
.field{margin-bottom:22px}
.field>label,.field>legend,.flabel{display:block;font:600 15px/22px var(--f-body);color:var(--ink);margin-bottom:6px;padding:0}
.field fieldset{border:0;padding:0;margin:0}
.req{color:var(--red);font-weight:400}
.field small{display:block;font-size:12px;line-height:18px;color:#666;margin-top:3px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.radio{display:flex;align-items:center;gap:12px;padding:3px 0 3px 12px;font-size:15px}
.radio input{appearance:none;width:16px;height:16px;border:1px solid #888;border-radius:50%;margin:0;background:#fff;flex:none}
.radio input:checked{border:5px solid var(--orange)}
.legal-copy{color:#8c8c8c;font-size:15px;line-height:22.5px}
.legal-copy strong,.legal-copy b{color:var(--ink);font-weight:600}
.legal-copy h4{font:600 15px/22px var(--f-body);color:var(--ink);margin:0 0 16px}
.legal-copy p{margin:0 0 16px}
.fine{font-size:12px;line-height:17.5px;color:#666}
.chk{display:flex;gap:14px;align-items:flex-start;text-transform:uppercase;font-size:15px;line-height:17px;padding:4px 0 4px 12px}
.chk input{width:18px;height:18px;flex:none;margin:0;accent-color:var(--orange)}
.total{font-size:15px}
.apply-btn{font:700 17px/1 Arial,Helvetica,sans-serif;letter-spacing:0;padding:14px 18px}

/* ---------- Content pages ---------- */
.notice{text-align:center;padding:36px var(--pad) 28px}
.notice p{margin:0 0 14px}
.notice .o{color:var(--orange)}
.notice b{font-weight:600}
.restlogo{width:149px;height:149px;margin-bottom:36px}
.menus{margin-top:56px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:72px 68px 72px;max-width:1872px;margin:0 auto}
.gallery button{border:0;padding:0;cursor:zoom-in;aspect-ratio:3/2;overflow:hidden;background:#222}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery button:hover img{transform:scale(1.03)}

.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:60px}
.tri h2{margin-bottom:22px}
.tri p{margin-bottom:34px}

.stay-row{display:grid;grid-template-columns:192px 1fr;column-gap:100px;align-items:start;margin-bottom:30px}
.stay-row h2{font:400 49px/47px var(--f-disp);margin-bottom:26px}
.stay-row p{margin:0}
.stay-pics{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-bottom:80px}
.stay-pics>*{aspect-ratio:3/4;overflow:hidden}
.stay-pics img{width:100%;height:100%;object-fit:cover}
.ph{background:var(--grey);display:grid;place-items:center;text-align:center;color:#8a8a8a;font-size:13px;line-height:18px;padding:16px}
.ph b{display:block;font-weight:600;color:#666}

.visit h2.o{font:400 49px/58.8px var(--f-disp);color:var(--orange);margin-bottom:44px}
.visit h3{font:400 31px/37.2px var(--f-disp);margin:0 0 22px}
.visit ul{list-style:disc;padding-left:28px;margin:0 0 30px}
.visit li{margin:0;padding-left:4px}
.visit .grp+h2.o{margin-top:80px}
.visit .grp{margin-bottom:0}
.visit .col>*:last-child{margin-bottom:0}

.stack3{position:relative;height:540px}
.stack3 img{position:absolute;width:343px;height:343px;object-fit:cover;box-shadow:0 22px 50px rgba(0,0,0,.28)}
.stack3 .a{left:33px;top:0}
.stack3 .b{left:155px;top:77px}
.stack3 .c{left:93px;top:168px}
.t-grid{display:grid;grid-template-columns:1fr 528px;column-gap:36px;align-items:center}

.contact-hero{background:var(--g-orange);color:#fff;height:553px;display:flex;align-items:flex-end;padding-bottom:84px}
.contact-hero h1{font:600 31px/29px var(--f-disp)}
.cgrid{display:grid;grid-template-columns:1fr 449px;column-gap:100px}
.cgrid h2{font:400 31px/37.2px var(--f-disp);margin:0 0 18px}
.cgrid p{margin:0 0 30px}
.map{width:449px;max-width:100%;height:240px;border:0;background:#dfe6d9;display:block}
.map-ph{display:grid;place-items:center;text-align:center;color:#555;text-decoration:none}

.post-hero{background:var(--orange);color:#fff;text-align:center;padding:92px 0 88px}
.post-hero h1{font:400 31px/37.2px var(--f-disp);margin-bottom:12px}
.post-hero p{font:600 24px/30px var(--f-body);text-transform:uppercase;margin:0 0 36px;letter-spacing:-.2px}
.post{max-width:780px;margin:0 auto;padding:72px var(--pad) 96px;text-align:center}
.post p{font-size:18px;line-height:25.5px;margin-bottom:26px}
.post h2{font:600 24px/28.8px var(--f-disp);margin:46px 0 36px}
.post .o{color:var(--orange)}

.mem-q{font:600 39px/46.8px var(--f-body);font-style:italic;max-width:1128px;margin:0 auto 36px;text-align:center}
.mem-title{font:800 24px/30px var(--f-body);font-style:italic;text-align:center;margin-bottom:60px}
.mem-title u{text-decoration-thickness:1px;text-underline-offset:4px}

/* lightbox */
dialog.lb{border:0;padding:0;background:transparent;max-width:min(96vw,1400px);max-height:94vh;overflow:visible;color:#fff}
dialog.lb::backdrop{background:rgba(0,0,0,.88)}
dialog.lb img,dialog.lb video{max-width:96vw;max-height:86vh;margin:0 auto;box-shadow:0 20px 60px rgba(0,0,0,.5);background:#000}
dialog.lb button{position:absolute;right:0;top:-48px;background:none;border:0;color:#fff;font-size:15px;cursor:pointer;padding:8px 4px;text-transform:uppercase;font-weight:600;letter-spacing:.04em}
dialog.lb p{text-align:center;margin:10px 0 0;font-size:14px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:8px;font-size:14px;z-index:300;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.toast[hidden]{display:none}

/* reveal */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.js .rv.in{opacity:1;transform:none}

/* ---------- Tablet / mobile ---------- */
@media (max-width:1100px){
  .nav>ul{gap:18px}
  .soc{margin-left:18px}
}
@media (max-width:959px){
  :root{--pad:24px;--hdr:90px;--bar:90px}
  .util .wrap{padding:0 var(--pad)}
  .wx{display:none}
  .util{display:block}
  .util .wrap{justify-content:flex-end}
  .nav,.soc{display:none}
  .burger{display:block}
  .logo,.logo img{width:150px}
  .h-xl{font-size:31px;line-height:37px}
  .h-l{font-size:31px;line-height:37px}
  .h-m{font-size:28px;line-height:34px}
  .h-s{font-size:26px;line-height:32px}
  .hero--tall{height:auto;min-height:calc(100svh - var(--util));max-height:none}
  .hero--short{height:360px}
  .hero--short h1{font-size:26px;line-height:32px}
  .hero-copy h1{margin-bottom:24px}
  .hero-copy .btns{justify-content:center}
  .band-orange{padding:56px 0 48px}
  .sec,.band-orange.s{padding:48px 0}
  .sec--144{padding:72px 0}
  .strip{padding-bottom:72px;margin-top:-24px}
  .strip .car{--sw:84vw;--gap:16px}
  .holes-sec{padding:72px 0 72px}
  .holes-sec h2{margin-bottom:36px}
  .holes .car{--sw:80vw;--gap:16px}
  .hole-t{left:24px;bottom:22px}
  .hole-t h3{font-size:31px;line-height:37px}
  .two{grid-template-columns:1fr;gap:0}
  .gap36 p{margin-bottom:24px}
  .feat,.feat--flip{grid-template-columns:1fr;gap:28px}
  .feat--flip .feat-img{order:-1}
  .feat h2{margin-bottom:22px}
  .rates,.rates--2{grid-template-columns:1fr;gap:40px}
  .rate h3{font-size:26px;line-height:32px}
  .nl form{grid-template-columns:1fr}
  .nl h2{font-size:24px;line-height:30px}
  .foot{padding:64px 0 48px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px 24px}
  .foot-nav{grid-column:auto}
  .foot-addr{grid-column:1/-1;padding-left:0}
  .foot-soc{grid-column:1/-1;justify-content:flex-start}
  .gallery{grid-template-columns:1fr 1fr;padding:36px 16px;gap:10px}
  .tri{grid-template-columns:1fr;gap:44px}
  .tri p{margin-bottom:22px}
  .stay-row{grid-template-columns:1fr;gap:6px}
  .stay-row h2{font-size:39px;line-height:40px;margin-bottom:18px}
  .stay-row .btn{margin-bottom:22px}
  .stay-pics{gap:10px;margin-bottom:56px}
  .visit h2.o{font-size:31px;line-height:37px;margin-bottom:28px}
  .visit h3{font-size:26px;line-height:32px;margin-bottom:14px}
  .visit .grp+h2.o{margin-top:56px}
  .t-grid{grid-template-columns:1fr;gap:36px}
  .stack3{height:auto;aspect-ratio:1/1.08;max-width:420px;margin:0 auto;width:100%}
  .stack3 img{width:61%;height:auto;aspect-ratio:1/1}
  .stack3 .a{left:3%;top:0}.stack3 .b{left:35%;top:14%}.stack3 .c{left:20%;top:30%}
  .contact-hero{height:360px;padding-bottom:48px}
  .cgrid{grid-template-columns:1fr;gap:12px}
  .map{width:100%}
  .post-hero{padding:56px 0}
  .post-hero p{font-size:18px;line-height:24px}
  .post{padding:48px var(--pad) 64px}
  .mem-q{font-size:24px;line-height:31px}
  .f2{grid-template-columns:1fr}
  .tcards{grid-template-columns:1fr;gap:40px;padding:0 var(--pad)}
  .nslide .car{--sw:78vw}
  .car-nav{display:none}
  .tslide{padding:56px 0}
  .notice{padding:28px var(--pad) 20px}
  .restlogo{width:110px;height:110px;margin-bottom:24px}
}
@media (max-width:520px){
  body{font-size:16px}
  .btn{padding:13px 18px}
  .hero-copy .btns .btn{flex:1 1 40%}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
}
main{overflow-x:clip}
.hero--tall .hero-copy{max-width:1080px}
.ncard.noimg{background:var(--g-dark)}
.ncard.noimg::after{background:none}
.visit .grp+.grp{margin-top:80px}
.chk{text-transform:none}
@media(max-width:959px){.visit .grp+.grp{margin-top:56px}}
