/* ============================================================
   BASHUNDHARA SUPERGOLF — Design System v2
   Brand: Victory Red #EA2128 · Midnight Black · Sky White
   Type:  Bebas Neue (display) · Manrope (body)
   ============================================================ */

:root {
  --red:        #EA2128;
  --red-dark:   #C0151B;
  --red-glow:   rgba(234,33,40,0.45);
  --black:      #000000;
  --ink:        #0B0B0C;
  --ink-2:      #16161A;
  --ink-3:      #24242B;
  --white:      #FFFFFF;
  --purple:     #7A3FF2;
  --pink:       #FF4D8D;
  --neon:       #1FE06B;
  --lagoon:     #1FAEDC;
  --paper:      #F7F5F0;
  --smoke:      #ECE8E0;
  --line:       #E2DDD2;
  --line-dark:  rgba(255,255,255,0.12);
  --muted:      #8A857C;
  --muted-dark: rgba(255,255,255,0.55);
  --display: 'Bebas Neue', 'Arial Narrow', sans-serif;
  --body: 'Manrope', system-ui, sans-serif;
  --container: 1240px;
  --gutter: clamp(20px, 4vw, 56px);
  --radius: 4px;
  --radius-lg: 10px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --accent: var(--red);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:var(--body); background:var(--paper); color:var(--ink); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; }

.display,h1,h2,h3 { font-family:var(--display); font-weight:400; line-height:0.92; letter-spacing:0.01em; text-transform:uppercase; margin:0; }
h1 { font-size:clamp(48px,8vw,120px); }
h2 { font-size:clamp(36px,5vw,76px); }
h3 { font-size:clamp(26px,3vw,40px); }

.kicker { font-family:var(--body); font-weight:700; font-size:12px; letter-spacing:0.22em; text-transform:uppercase; color:var(--red); display:inline-flex; align-items:center; gap:10px; }
.kicker::before { content:''; width:28px; height:2px; background:var(--red); display:inline-block; }
.kicker.on-dark { color:#fff; }
.kicker.on-dark::before { background:var(--red); }
.kicker.r-accent { color:var(--accent); }
.kicker.r-accent::before { background:var(--accent); }

.lead { font-size:clamp(17px,2vw,21px); line-height:1.55; color:var(--muted); max-width:56ch; }
.on-dark .lead,.lead.on-dark { color:var(--muted-dark); }

.container { max-width:var(--container); margin:0 auto; padding-inline:var(--gutter); }
.section { padding-block:clamp(56px,9vw,130px); }
.section-tight { padding-block:clamp(40px,6vw,80px); }
.dark { background:var(--ink); color:#fff; }
.dark h1,.dark h2,.dark h3 { color:#fff; }

.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(28px,4vw,52px); flex-wrap:wrap; }
.section-head .titles { max-width:60ch; }
.section-head h2 { margin-top:14px; }

/* ---- Buttons ---- */
.btn { display:inline-flex; align-items:center; gap:10px; padding:15px 26px; font-family:var(--body); font-weight:700; font-size:14px; letter-spacing:0.04em; text-transform:uppercase; border:2px solid transparent; border-radius:2px; transition:transform .25s var(--ease),background .25s,color .25s,box-shadow .25s; position:relative; white-space:nowrap; }
.btn:hover { transform:translateY(-2px); }
.btn:active { transform:translateY(0); }
.btn--primary { background:var(--red); color:#fff; box-shadow:0 8px 24px -8px var(--red-glow); }
.btn--primary:hover { background:var(--red-dark); box-shadow:0 14px 32px -10px var(--red-glow); }
.btn--ghost { background:transparent; border-color:currentColor; color:var(--ink); }
.btn--ghost.on-dark { color:#fff; }
.btn--ghost:hover { background:var(--ink); color:#fff; }
.btn--ghost.on-dark:hover { background:#fff; color:var(--ink); }
.btn--light { background:#fff; color:var(--ink); }
.btn--light:hover { background:var(--paper); }
.btn .ico { width:18px; height:18px; }
.btn--sm { padding:10px 16px; font-size:12px; }
.btn--block { width:100%; justify-content:center; }

.arrow-link { display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px; letter-spacing:0.03em; text-transform:uppercase; color:var(--ink); transition:gap .25s var(--ease),color .2s; }
.arrow-link .ico { transition:transform .25s var(--ease); }
.arrow-link:hover { color:var(--red); }
.arrow-link:hover .ico { transform:translateX(4px); }
.on-dark .arrow-link,.arrow-link.on-dark { color:#fff; }

/* ---- Tags / pills ---- */
.tag { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; padding:5px 11px; border-radius:2px; background:var(--ink); color:#fff; }
.tag--red { background:var(--red); }
.tag--outline { background:transparent; border:1.5px solid currentColor; }
.tag--purple { background:var(--purple); }
.tag--lagoon { background:var(--lagoon); }
.tag--neon { background:var(--neon); color:#06301a; }
.tag--pink { background:var(--pink); }
.tag.r-accent { background:var(--accent); color:#fff; }
.r-accent-text { color:var(--accent); }

.pill { display:inline-flex; align-items:center; gap:8px; padding:9px 18px; border-radius:999px; border:1.5px solid var(--line); font-weight:600; font-size:14px; background:#fff; color:var(--ink); transition:all .2s var(--ease); cursor:pointer; }
.pill:hover { border-color:var(--ink); }
.pill[aria-pressed="true"],.pill.is-active { background:var(--ink); color:#fff; border-color:var(--ink); }
.dark .pill { background:transparent; color:#fff; border-color:var(--line-dark); }
.dark .pill[aria-pressed="true"],.dark .pill.is-active { background:var(--red); border-color:var(--red); }

/* ---- Cards ---- */
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; transition:transform .35s var(--ease),box-shadow .35s var(--ease); display:flex; flex-direction:column; }
.card:hover { transform:translateY(-6px); box-shadow:0 28px 50px -28px rgba(0,0,0,.35); }
.card__media { position:relative; overflow:hidden; aspect-ratio:4/3; }
.card__media img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.card:hover .card__media img { transform:scale(1.06); }
.card__media .tag { position:absolute; top:14px; left:14px; }
.card__body { padding:20px; display:flex; flex-direction:column; gap:10px; flex:1; }
.card__title { font-family:var(--display); font-size:26px; line-height:0.95; }
.card__meta { font-size:13px; color:var(--muted); font-weight:600; display:flex; gap:14px; flex-wrap:wrap; }
.card__foot { margin-top:auto; padding-top:14px; display:flex; align-items:center; justify-content:space-between; }
.price { font-family:var(--display); font-size:30px; color:var(--ink); line-height:1; }
.price small { font-family:var(--body); font-size:12px; font-weight:600; color:var(--muted); }

.sig-card .card__media { aspect-ratio:4/3; }
.sig-card .card__foot { border-top:1px solid var(--line); }
.dark .sig-card { background:var(--ink-2); border-color:var(--line-dark); }
.dark .sig-card .card__title { color:#fff; }
.dark .sig-card .card__foot { border-top-color:var(--line-dark); }

.zoom { overflow:hidden; }
.zoom img { transition:transform .8s var(--ease); width:100%; height:100%; object-fit:cover; }
.zoom:hover img { transform:scale(1.05); }

.scrim::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,0.78) 100%); }

.grid { display:grid; gap:clamp(16px,2vw,24px); }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-4 { grid-template-columns:repeat(4,1fr); }

/* ============================================================
   NAVBAR (v2 — with dropdowns)
   ============================================================ */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; transition:background .4s var(--ease),box-shadow .4s,padding .4s; padding:18px 0; }
.nav__inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.nav.scrolled { background:rgba(11,11,12,.86); backdrop-filter:blur(14px); padding:12px 0; box-shadow:0 1px 0 var(--line-dark); }

.brand { display:flex; align-items:center; gap:11px; color:#fff; flex:0 0 auto; }
.brand__mark { width:40px; height:40px; border-radius:50%; background:var(--red); color:#fff; display:grid; place-items:center; font-family:var(--display); font-size:20px; letter-spacing:0; box-shadow:0 0 0 4px rgba(234,33,40,.18); }
.brand__name { font-family:var(--display); font-size:23px; line-height:0.8; color:#fff; }
.brand__name small { display:block; font-family:var(--body); font-weight:700; font-size:8.5px; letter-spacing:0.34em; color:var(--muted-dark); }
.brand__logo { height:38px; width:auto; display:block; }
.nav.scrolled .brand__logo { height:34px; transition:height .4s var(--ease); }
.brand--footer { display:inline-block; }
.brand__logo--vertical { height:auto; width:132px; }

.nav__links { display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.nav__links > li > a,
.nav__links > li > button.sub-toggle {
  display:block; padding:9px 14px; color:rgba(255,255,255,.82); font-weight:600; font-size:14px;
  border-radius:2px; white-space:nowrap; transition:color .2s; position:relative;
  background:none; border:none; font-family:var(--body); cursor:pointer;
}
.nav__links > li > a::after,.nav__links > li > button.sub-toggle::after {
  content:''; position:absolute; left:14px; right:14px; bottom:4px; height:2px;
  background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
.nav__links > li > a:hover,.nav__links > li > button.sub-toggle:hover { color:#fff; }
.nav__links > li > a:hover::after,.nav__links > li > a.active::after { transform:scaleX(1); }
.nav__links > li > a.active { color:#fff; }

.nav__links .has-sub { position:relative; }
.nav__links .sub-toggle { display:flex; align-items:center; gap:6px; }
.nav__links .sub-toggle .caret { width:12px; height:12px; transition:transform .28s var(--ease); opacity:.7; }
.has-sub:hover .sub-toggle .caret,.has-sub.is-open .sub-toggle .caret { transform:rotate(180deg); opacity:1; }

.subnav { position:absolute; top:100%; left:0; padding-top:14px; min-width:248px; opacity:0; visibility:hidden; transform:translateY(8px); pointer-events:none; transition:opacity .24s var(--ease),transform .24s var(--ease),visibility .24s; }
.has-sub:hover .subnav,.has-sub:focus-within .subnav,.has-sub.is-open .subnav { opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.subnav__panel { background:rgba(11,11,12,.96); backdrop-filter:blur(16px); border:1px solid var(--line-dark); border-radius:10px; padding:8px; display:flex; flex-direction:column; gap:2px; max-height:min(72vh,540px); overflow-y:auto; box-shadow:0 28px 60px -24px rgba(0,0,0,.8); }
.subnav__panel a { display:flex; flex-direction:column; gap:2px; padding:11px 14px; border-radius:7px; transition:background .18s; }
.subnav__panel a::after { content:none !important; }
.subnav__panel a b { font-family:var(--display); font-size:21px; font-weight:400; letter-spacing:.02em; color:#fff; line-height:1; }
.subnav__panel a small { font-size:12px; color:var(--muted-dark); font-weight:500; }
.subnav__panel a:hover { background:rgba(255,255,255,.07); }
.subnav__panel a.current-page-ancestor,.subnav__panel a.current_page_item,.subnav__panel a.active { background:rgba(234,33,40,.16); }
.subnav__panel a.current-page-ancestor b,.subnav__panel a.current_page_item b,.subnav__panel a.active b { color:var(--red); }

.nav__cta { display:flex; align-items:center; gap:12px; }
.nav__lang { color:var(--muted-dark); font-weight:700; font-size:13px; cursor:pointer; }
.nav__burger { display:none; background:none; border:none; color:#fff; padding:6px; }
.nav__burger svg { width:28px; height:28px; }

/* mobile drawer */
.drawer { position:fixed; inset:0; z-index:200; background:var(--ink); display:flex; flex-direction:column; padding:24px var(--gutter); transform:translateX(100%); transition:transform .4s var(--ease); visibility:hidden; overflow-y:auto; }
.drawer.open { transform:translateX(0); visibility:visible; }
.drawer__top { display:flex; justify-content:space-between; align-items:center; }
.drawer__close { background:none; border:none; color:#fff; }
.drawer__close svg { width:30px; height:30px; }
.drawer nav { display:flex; flex-direction:column; gap:4px; margin-top:32px; }
.drawer nav a { font-family:var(--display); font-size:34px; color:#fff; padding:8px 0; border-bottom:1px solid var(--line-dark); display:block; }
.drawer nav a.current-menu-item,.drawer nav a.active { color:var(--red); }
.drawer__group { display:flex; flex-direction:column; }
.drawer__grouplabel { font-family:var(--body); font-weight:800; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted-dark); margin:18px 0 4px; }
.drawer__group a { font-size:26px !important; border-bottom:1px solid var(--line-dark); }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background:var(--black); color:rgba(255,255,255,.7); padding-top:clamp(56px,8vw,100px); }
.footer__cta { border:1px solid var(--line-dark); border-radius:var(--radius-lg); padding:clamp(32px,5vw,64px); display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:clamp(48px,7vw,90px); background:radial-gradient(120% 140% at 100% 0%,rgba(234,33,40,.22),transparent 60%),var(--ink-2); }
.footer__cta h2 { color:#fff; }
.footer__grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:48px; }
.footer h5 { font-family:var(--body); font-weight:800; font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:#fff; margin:0 0 18px; }
.footer ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.footer ul a { font-size:14.5px; transition:color .2s; }
.footer ul a:hover { color:#fff; }
.footer__brandblock p { font-size:14.5px; max-width:34ch; }
.socials { display:flex; gap:10px; margin-top:20px; }
.socials a { width:40px; height:40px; border-radius:50%; border:1px solid var(--line-dark); display:grid; place-items:center; transition:all .25s; }
.socials a:hover { background:var(--red); border-color:var(--red); color:#fff; transform:translateY(-3px); }
.socials svg { width:18px; height:18px; }
.footer__bottom { border-top:1px solid var(--line-dark); padding:24px 0; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; }

/* ============================================================
   HERO
   ============================================================ */
.hero { position:relative; min-height:100svh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; }
.hero__media { position:absolute; inset:0; z-index:0; }
.hero__media img,.hero__media video { width:100%; height:100%; object-fit:cover; }
.hero__media::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.1) 35%,rgba(0,0,0,.85) 100%),linear-gradient(90deg,rgba(0,0,0,.6) 0%,transparent 55%); }
.hero__inner { position:relative; z-index:2; width:100%; padding-bottom:clamp(48px,8vw,110px); padding-top:140px; }
.hero h1 { max-width:16ch; }
.hero h1 .accent { color:var(--red); }
.hero__sub { margin-top:22px; max-width:48ch; font-size:clamp(16px,1.6vw,20px); color:rgba(255,255,255,.85); }
.hero__actions { margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
.hero__scroll { position:absolute; right:var(--gutter); bottom:40px; z-index:2; writing-mode:vertical-rl; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.6); display:flex; align-items:center; gap:12px; }
.hero__scroll::after { content:''; width:1px; height:50px; background:linear-gradient(rgba(255,255,255,.7),transparent); animation:scrollpulse 2s var(--ease) infinite; }
@keyframes scrollpulse { 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

.statbar { display:flex; flex-wrap:wrap; gap:clamp(20px,4vw,56px); margin-top:44px; padding-top:28px; border-top:1px solid rgba(255,255,255,.18); }
.statbar .stat b { font-family:var(--display); font-size:clamp(34px,4vw,52px); color:#fff; display:block; line-height:.9; }
.statbar .stat span { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.statbar .stat .live { color:var(--neon); }

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee { background:var(--red); color:#fff; overflow:hidden; padding:14px 0; border-block:2px solid var(--ink); }
.marquee__track { display:flex; gap:0; white-space:nowrap; width:max-content; animation:marquee 30s linear infinite; }
.marquee:hover .marquee__track { animation-play-state:paused; }
.marquee span { font-family:var(--display); font-size:26px; letter-spacing:.04em; padding:0 28px; display:inline-flex; align-items:center; gap:28px; }
.marquee span::after { content:'★'; font-size:16px; }
@keyframes marquee { to { transform:translateX(-50%); } }

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
[data-reveal] { opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease-out),transform .7s var(--ease-out); }
[data-reveal].in { opacity:1; transform:none; }
[data-reveal-delay="1"] { transition-delay:.08s; }
[data-reveal-delay="2"] { transition-delay:.16s; }
[data-reveal-delay="3"] { transition-delay:.24s; }
[data-reveal-delay="4"] { transition-delay:.32s; }
@media (prefers-reduced-motion:reduce) {
  [data-reveal] { opacity:1; transform:none; transition:none; }
  .marquee__track,.hero__scroll::after { animation:none; }
  html { scroll-behavior:auto; }
}

/* ============================================================
   CAROUSEL
   ============================================================ */
.carousel { position:relative; }
.carousel__track { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; scrollbar-width:none; }
.carousel__track::-webkit-scrollbar { display:none; }
.carousel__track > * { scroll-snap-align:start; flex:0 0 clamp(260px,30vw,340px); }
.carousel__nav { display:flex; gap:10px; }
.carousel__btn { width:50px; height:50px; border-radius:50%; border:1.5px solid var(--line); background:#fff; display:grid; place-items:center; transition:all .2s; }
.carousel__btn:hover { background:var(--ink); color:#fff; border-color:var(--ink); }
.carousel__btn:disabled { opacity:.3; cursor:default; }
.carousel__btn svg { width:20px; height:20px; }
.dark .carousel__btn { background:transparent; color:#fff; border-color:var(--line-dark); }
.dark .carousel__btn:hover { background:var(--red); border-color:var(--red); }

/* ============================================================
   MODAL (booking)
   ============================================================ */
.modal-backdrop { position:fixed; inset:0; z-index:300; background:rgba(5,5,6,.7); backdrop-filter:blur(6px); display:grid; place-items:center; padding:20px; opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; }
.modal-backdrop.open { opacity:1; visibility:visible; }
.modal { width:min(680px,100%); max-height:92vh; overflow-y:auto; background:var(--paper); border-radius:var(--radius-lg); transform:translateY(20px) scale(.98); transition:transform .35s var(--ease); box-shadow:0 40px 90px -30px rgba(0,0,0,.6); }
.modal-backdrop.open .modal { transform:none; }
.modal__head { position:relative; padding:28px 32px; color:#fff; overflow:hidden; background:var(--ink); }
.modal__head::before { content:''; position:absolute; inset:0; background:radial-gradient(120% 160% at 100% 0,rgba(234,33,40,.5),transparent 55%); }
.modal__head > * { position:relative; }
.modal__close { position:absolute; top:18px; right:18px; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.12); border:none; color:#fff; display:grid; place-items:center; z-index:2; transition:background .2s; }
.modal__close:hover { background:var(--red); }
.modal__close svg { width:20px; height:20px; }
.modal__body { padding:28px 32px 32px; }
.field { margin-bottom:18px; }
.field > label { display:block; font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.input,select.input { width:100%; padding:14px 16px; border:1.5px solid var(--line); border-radius:var(--radius); background:#fff; font-family:var(--body); font-size:15px; color:var(--ink); transition:border .2s,box-shadow .2s; }
.input:focus { outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(234,33,40,.15); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.choices { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.choice { border:1.5px solid var(--line); border-radius:var(--radius); padding:14px; cursor:pointer; transition:all .2s; background:#fff; text-align:left; }
.choice b { font-family:var(--display); font-size:22px; display:block; }
.choice span { font-size:12px; color:var(--muted); }
.choice.sel { border-color:var(--red); box-shadow:0 0 0 3px rgba(234,33,40,.13); }
.choice.sel b { color:var(--red); }
.stepper { display:flex; align-items:center; border:1.5px solid var(--line); border-radius:var(--radius); width:fit-content; overflow:hidden; }
.stepper button { width:46px; height:46px; background:#fff; border:none; font-size:20px; color:var(--ink); }
.stepper button:hover { background:var(--smoke); }
.stepper span { min-width:48px; text-align:center; font-weight:700; }
.modal__summary { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; display:flex; justify-content:space-between; align-items:center; margin:6px 0 20px; }
.modal__summary .price { font-size:34px; }
.toast-ok { text-align:center; padding:30px 10px; }
.toast-ok .check { width:74px; height:74px; border-radius:50%; background:var(--neon); display:grid; place-items:center; margin:0 auto 18px; }
.toast-ok .check svg { width:38px; height:38px; color:#06301a; }

/* ============================================================
   FEATURE / SPLIT
   ============================================================ */
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,60px); align-items:center; }
.media-frame { border-radius:var(--radius-lg); overflow:hidden; position:relative; aspect-ratio:4/3; }
.media-frame img { width:100%; height:100%; object-fit:cover; }
.bignum { font-family:var(--display); font-size:clamp(54px,8vw,110px); line-height:.85; color:var(--red); }
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.step__n { font-family:var(--display); font-size:64px; line-height:.8; -webkit-text-stroke:1px var(--muted); color:transparent; }
.dark .step__n { -webkit-text-stroke:1px rgba(255,255,255,.3); }
.step h4 { font-family:var(--display); font-size:24px; margin:12px 0 8px; }
.step p { font-size:14.5px; color:var(--muted); margin:0; }
.dark .step p { color:var(--muted-dark); }

.tiles { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:16px; }
.tile { position:relative; border-radius:var(--radius-lg); overflow:hidden; color:#fff; display:flex; align-items:flex-end; padding:22px; }
.tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); z-index:0; }
.tile:hover img { transform:scale(1.07); }
.tile::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.78)); z-index:1; }
.tile > * { position:relative; z-index:2; }
.tile h4 { font-family:var(--display); font-size:30px; line-height:.95; }
.tile p { font-size:13.5px; color:rgba(255,255,255,.82); margin:6px 0 0; }
.tile--big { grid-column:span 2; grid-row:span 2; }
.tile--wide { grid-column:span 2; }

.feed { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; }
.feed a { position:relative; aspect-ratio:1; border-radius:var(--radius); overflow:hidden; }
.feed img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.feed a:hover img { transform:scale(1.1); }
.feed a::after { content:''; position:absolute; inset:0; background:rgba(234,33,40,0); transition:background .25s; }
.feed a:hover::after { background:rgba(234,33,40,.35); }

/* page hero (inner) */
.pagehero { position:relative; padding-top:160px; padding-bottom:clamp(40px,6vw,80px); color:#fff; overflow:hidden; }
.pagehero__media { position:absolute; inset:0; z-index:0; }
.pagehero__media img { width:100%; height:100%; object-fit:cover; }
.pagehero__media::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,11,12,.7),rgba(11,11,12,.92)); }
.pagehero__inner { position:relative; z-index:2; }
.pagehero h1 { max-width:18ch; }
.crumbs { font-size:13px; color:rgba(255,255,255,.6); font-weight:600; margin-bottom:18px; letter-spacing:.04em; }
.crumbs a:hover { color:#fff; }

/* tier comparison table */
.tier-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.tier-table th,.tier-table td { padding:16px 18px; text-align:center; border-bottom:1px solid var(--line); }
.tier-table th:first-child,.tier-table td:first-child { text-align:left; font-weight:600; }
.tier-table thead th { background:var(--ink); color:#fff; font-family:var(--display); font-size:24px; font-weight:400; }
.tier-table thead th small { display:block; font-family:var(--body); font-size:12px; font-weight:700; color:var(--muted-dark); }
.tier-table .feat { color:var(--neon); font-weight:800; }
.tier-table .no { color:var(--line); }
.tier-table tr:last-child td { border-bottom:none; }
.tier-table .hl { background:rgba(234,33,40,.05); }

/* ============================================================
   RESTAURANT PAGES
   ============================================================ */
.menu-cols { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); }
.menu-group { margin-bottom:34px; }
.menu-group:last-child { margin-bottom:0; }
.menu-group > h3 { font-size:30px; display:flex; align-items:baseline; gap:12px; }
.menu-group > h3 small { font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.menu-list { margin-top:16px; display:flex; flex-direction:column; }
.menu-item { display:flex; gap:16px; align-items:baseline; padding:13px 0; border-bottom:1px solid var(--line); }
.menu-item:last-child { border-bottom:none; }
.menu-item .mi-main { flex:1; }
.menu-item .mi-name { font-weight:700; font-size:16px; }
.menu-item .mi-desc { color:var(--muted); font-size:13.5px; margin-top:3px; line-height:1.45; }
.menu-item .mi-price { font-family:var(--display); font-size:23px; white-space:nowrap; color:var(--ink); letter-spacing:.02em; }

.visit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.visit-card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:22px; }
.visit-card .vc-k { font-family:var(--display); font-size:24px; color:var(--accent); line-height:1; }
.visit-card p { color:var(--muted); font-size:14px; margin:8px 0 0; }

/* ============================================================
   GOLF BAY PAGES
   ============================================================ */
.bay-feats { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.bay-feat { border:1px solid var(--line-dark); border-radius:6px; padding:13px 16px; font-weight:600; font-size:14.5px; }
.bay-feat::before { content:'✓'; color:var(--accent); font-weight:800; margin-right:9px; }
.bay-stat { background:var(--ink-2); border:1px solid var(--line-dark); border-radius:var(--radius-lg); padding:22px; }
.bay-stat .bs-n { font-family:var(--display); font-size:44px; color:var(--accent); line-height:1; }
.bay-stat .bs-l { font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-dark); margin-top:8px; }

/* ============================================================
   LOYALTY PAGE
   ============================================================ */
.tier-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.tier { border-radius:var(--radius-lg); padding:28px 24px 32px; display:flex; flex-direction:column; position:relative; overflow:hidden; }
.tier::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:var(--tier-color,var(--red)); }
.tier-icon { font-family:var(--display); font-size:44px; color:var(--tier-color,var(--red)); line-height:1; }
.tier-name { font-family:var(--display); font-size:34px; margin:10px 0 4px; }
.tier-req { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:20px; }
.tier-perks { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; flex:1; }
.tier-perks li { font-size:14px; display:flex; gap:9px; align-items:flex-start; }
.tier-perks li::before { content:'✓'; font-weight:800; color:var(--tier-color,var(--red)); flex-shrink:0; margin-top:1px; }
.tier-cta { margin-top:24px; }
.tier.light { background:#fff; border:1px solid var(--line); }
.tier.dark-card { background:var(--ink-2); border:1px solid var(--line-dark); }
.tier.dark-card .tier-name { color:#fff; }
.tier.dark-card .tier-req { color:var(--muted-dark); }
.tier.dark-card .tier-perks li { color:var(--muted-dark); }
.tier.featured { background:linear-gradient(135deg,rgba(181,133,42,.16),rgba(181,133,42,.06)); border:1.5px solid rgba(181,133,42,.45); }
.tier.featured .tier-name,.tier.featured .tier-perks li { color:#fff; }
.tier.featured .tier-req { color:rgba(255,255,255,.55); }
.tier.featured .tier-perks li { color:rgba(255,255,255,.8); }

.earn-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.earn-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; }
.earn-card .ec-ico { font-family:var(--display); font-size:46px; color:var(--accent); line-height:1; }
.earn-card h4 { font-family:var(--display); font-size:26px; margin:8px 0 6px; }
.earn-card p { color:var(--muted); font-size:14.5px; margin:0; }
.earn-card .ec-rate { font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-top:10px; }

.redeem-table { width:100%; border-collapse:collapse; }
.redeem-table th { text-align:left; font-weight:800; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:0 0 14px; border-bottom:1px solid var(--line); }
.redeem-table td { padding:15px 0; border-bottom:1px solid var(--line); font-size:15px; }
.redeem-table td:last-child { text-align:right; font-family:var(--display); font-size:22px; color:var(--accent); }
.redeem-table tr:last-child td { border-bottom:none; }

/* ============================================================
   LEAGUE PAGE
   ============================================================ */
.standings { width:100%; border-collapse:collapse; }
.standings th { text-align:left; font-weight:800; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:0 0 14px; border-bottom:1px solid var(--line); }
.standings th.num,.standings td.num { text-align:right; }
.standings td { padding:15px 0; border-bottom:1px solid var(--line); }
.standings .pos { font-family:var(--display); font-size:24px; color:var(--muted); width:44px; }
.standings tr:nth-child(-n+3) .pos { color:var(--accent); }
.standings .team { font-weight:700; font-size:16px; }
.standings .pts { font-family:var(--display); font-size:24px; }

/* ============================================================
   PRO SHOP
   ============================================================ */
.cat-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,2vw,20px); }
.cat { position:relative; border-radius:var(--radius-lg); overflow:hidden; min-height:200px; display:flex; align-items:flex-end; padding:24px; color:#fff; }
.cat img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); z-index:0; }
.cat:hover img { transform:scale(1.06); }
.cat::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.78)); z-index:1; }
.cat > * { position:relative; z-index:2; }
.cat h3 { font-size:34px; color:#fff; }
.cat span { font-size:13px; color:rgba(255,255,255,.8); display:flex; align-items:center; gap:7px; margin-top:4px; font-weight:600; }
.cat .ico { width:16px; height:16px; transition:transform .25s var(--ease); }
.cat:hover .ico { transform:translateX(4px); }

.shop-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:clamp(22px,3vw,34px); }
.shop-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,22px); }
.prod { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .35s var(--ease),box-shadow .35s var(--ease); }
.prod:hover { transform:translateY(-5px); box-shadow:0 24px 44px -26px rgba(0,0,0,.32); }
.prod__ph { position:relative; aspect-ratio:1; background:var(--smoke); display:grid; place-items:center; }
.prod__ph::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(45deg,transparent 0 10px,rgba(0,0,0,.028) 10px 11px); }
.prod__ph .ph-label { position:relative; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); text-align:center; padding:0 10px; }
.prod__tag { position:absolute; top:12px; left:12px; }
.prod__body { padding:16px 16px 18px; display:flex; flex-direction:column; gap:5px; flex:1; }
.prod__name { font-family:var(--display); font-size:24px; line-height:.95; }
.prod__meta { font-size:13px; color:var(--muted); margin:0; }
.prod__foot { margin-top:auto; padding-top:13px; display:flex; align-items:center; justify-content:space-between; }

.fitting { position:relative; overflow:hidden; color:#fff; padding-block:clamp(56px,9vw,130px); }
.fitting__bg { position:absolute; inset:0; z-index:0; }
.fitting__bg img { width:100%; height:100%; object-fit:cover; }
.fitting::after { content:''; position:absolute; inset:0; z-index:1; background:radial-gradient(120% 130% at 88% 8%,rgba(234,33,40,.42),transparent 52%),linear-gradient(180deg,rgba(11,11,12,.82),rgba(11,11,12,.96)); }
.fitting .container { position:relative; z-index:2; }
.fitting h2 { color:#fff; }
.fit-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:30px; }
.fit-step { border:1px solid var(--line-dark); border-radius:var(--radius-lg); padding:22px; background:rgba(255,255,255,.03); }
.fit-step .n { font-family:var(--display); font-size:30px; color:var(--red); line-height:1; }
.fit-step h4 { font-family:var(--display); font-size:23px; margin:10px 0 6px; color:#fff; }
.fit-step p { font-size:14px; color:var(--muted-dark); margin:0; }

.cart-fab { position:fixed; right:20px; bottom:20px; z-index:90; display:inline-flex; align-items:center; gap:11px; background:var(--ink); color:#fff; border:none; padding:14px 20px 14px 18px; border-radius:999px; box-shadow:0 18px 44px -14px rgba(0,0,0,.55); font-family:var(--body); font-weight:700; font-size:14px; letter-spacing:.03em; text-transform:uppercase; transform:translateY(120px); opacity:0; transition:transform .4s var(--ease),opacity .4s; }
.cart-fab.show { transform:none; opacity:1; }
.cart-fab .count { display:grid; place-items:center; min-width:24px; height:24px; padding:0 7px; border-radius:999px; background:var(--red); font-size:13px; }
.shop-toast { position:fixed; left:50%; bottom:30px; z-index:120; transform:translate(-50%,90px); opacity:0; background:var(--ink); color:#fff; padding:13px 22px; border-radius:999px; font-weight:600; font-size:14px; box-shadow:0 16px 40px -12px rgba(0,0,0,.5); transition:transform .4s var(--ease),opacity .4s; pointer-events:none; }
.shop-toast.show { transform:translate(-50%,0); opacity:1; }

/* ============================================================
   PRIVATE EVENTS PAGE
   ============================================================ */
.catering-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.catering-card { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); background:#fff; display:flex; flex-direction:column; transition:transform .35s var(--ease),box-shadow .35s var(--ease); }
.catering-card:hover { transform:translateY(-5px); box-shadow:0 24px 44px -26px rgba(0,0,0,.28); }
.catering-card .cc-media { position:relative; aspect-ratio:4/3; overflow:hidden; }
.catering-card .cc-media img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.catering-card:hover .cc-media img { transform:scale(1.05); }
.catering-card .cc-tag { position:absolute; top:14px; left:14px; }
.catering-card .cc-body { padding:24px; flex:1; display:flex; flex-direction:column; gap:10px; }
.catering-card h3 { font-family:var(--display); font-size:32px; line-height:1; }
.catering-card p { color:var(--muted); font-size:14.5px; margin:0; flex:1; }
.catering-card .cc-time { font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.catering-card .cc-menu { list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:7px; }
.catering-card .cc-menu li { font-size:13.5px; color:var(--muted); display:flex; gap:8px; }
.catering-card .cc-menu li::before { content:'·'; color:var(--accent); font-weight:800; flex-shrink:0; }

.room-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.room-card { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line-dark); background:var(--ink-2); display:flex; flex-direction:column; }
.room-card .rc-media { position:relative; aspect-ratio:16/9; overflow:hidden; }
.room-card .rc-media img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.room-card:hover .rc-media img { transform:scale(1.05); }
.room-card .rc-body { padding:24px 24px 28px; flex:1; display:flex; flex-direction:column; gap:12px; }
.room-card h3 { font-family:var(--display); font-size:34px; color:#fff; line-height:1; }
.room-card .rc-cap { font-family:var(--display); font-size:56px; color:var(--accent); line-height:1; }
.room-card .rc-cap small { font-family:var(--body); font-size:13px; font-weight:700; color:var(--muted-dark); display:block; margin-top:4px; }
.room-card p { color:var(--muted-dark); font-size:14.5px; margin:0; }
.room-card .rc-specs { display:flex; flex-direction:column; gap:7px; margin-top:4px; padding:0; list-style:none; }
.room-card .rc-specs li { font-size:13.5px; color:var(--muted-dark); display:flex; gap:8px; }
.room-card .rc-specs li::before { content:'✓'; color:var(--accent); font-weight:800; flex-shrink:0; }

/* ============================================================
   ENTRY CONTENT
   ============================================================ */
.entry-content p { margin-top:0; margin-bottom:1.4em; }
.entry-content a { color:var(--red); text-decoration:underline; }
.entry-content h2,.entry-content h3,.entry-content h4 { margin-top:1.5em; margin-bottom:.5em; }
.entry-content ul,.entry-content ol { padding-left:1.5em; margin-bottom:1.4em; }
.entry-content li { margin-bottom:.4em; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px) {
  .grid-4 { grid-template-columns:repeat(2,1fr); }
  .footer__grid { grid-template-columns:1fr 1fr; gap:32px; }
  .tiles { grid-auto-rows:170px; }
  .tier-grid { grid-template-columns:repeat(2,1fr); }
  .earn-grid { grid-template-columns:repeat(2,1fr); }
  .shop-grid { grid-template-columns:repeat(2,1fr); }
  .cat-strip { grid-template-columns:1fr; }
  .fit-steps { grid-template-columns:1fr; }
  .catering-grid,.room-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:860px) {
  .nav__links,.nav__lang { display:none; }
  .nav__burger { display:block; }
  .grid-3 { grid-template-columns:repeat(2,1fr); }
  .steps { grid-template-columns:repeat(2,1fr); }
  .split { grid-template-columns:1fr; }
  .split .media-frame { order:-1; }
  .field-row { grid-template-columns:1fr; }
  .tier-table { font-size:13px; }
  .tier-table th,.tier-table td { padding:11px 9px; }
  .menu-cols { grid-template-columns:1fr; gap:30px; }
  .visit-grid { grid-template-columns:1fr 1fr; }
  .bay-feats { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  body { font-size:16px; }
  .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; }
  .tiles { grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
  .tile--big { grid-column:span 2; grid-row:span 1; }
  .feed { grid-template-columns:repeat(3,1fr); }
  .footer__grid { grid-template-columns:1fr; }
  .footer__cta { flex-direction:column; align-items:flex-start; }
  .choices { grid-template-columns:1fr; }
  .hero__scroll { display:none; }
  .tier-grid { grid-template-columns:1fr; }
  .earn-grid { grid-template-columns:1fr; }
  .visit-grid { grid-template-columns:1fr; }
  .shop-grid { grid-template-columns:repeat(2,1fr); }
  .catering-grid,.room-grid { grid-template-columns:1fr; }
}
