/* Forte Golf — on top of the studio stylesheet.
   The grammar of the world's best golf sites: one full-bleed film of the
   course, a serif name, almost nothing else. The interface gets out of the
   way of the photograph. */

/* full-bleed: break out of .wrap to the viewport edges, and cancel the generic
   section padding or the 100vh stage becomes 100vh + 192px */
.film{position:relative;height:100vh;height:100svh;min-height:560px;padding:0;overflow:hidden;
  width:100vw;margin-left:calc(50% - 50vw);background:oklch(28% 0.04 150);color:oklch(97% 0.008 84)}
.film + section{border-top:0}
.film video,.film .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.film .poster{z-index:0}
.film video{z-index:1;opacity:0;transition:opacity 1.4s ease}
.film.playing video{opacity:1}
/* legibility: a dark grade that lives at the bottom and clears the sky */
.film::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,oklch(20% 0.03 150 / .30) 0%,oklch(16% 0.03 150 / .08) 35%,oklch(16% 0.03 150 / .16) 60%,oklch(16% 0.03 150 / .70) 100%)}

/* the club, centred, the way Royal County Down and Kingsbarns do it:
   crest, name, two buttons, and nothing else */
.club{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;padding:0 22px;gap:0;
  transform:translateY(2vh)}
.crest{color:oklch(98% 0.006 84);filter:drop-shadow(0 2px 14px oklch(10% 0.03 150 / .5));
  width:clamp(72px,8vw,100px);height:auto;margin-bottom:22px}
.club-name{font:600 clamp(2.4rem,6.4vw,5.2rem)/1 var(--f-disp);letter-spacing:.06em;
  text-transform:uppercase;color:oklch(98% 0.006 84);font-variation-settings:"SOFT" 20,"WONK" 0;
  text-shadow:0 2px 28px oklch(10% 0.03 150 / .55);margin:0}
.club-sub{margin:14px 0 0;font:500 11px/1 var(--f-mono);letter-spacing:.26em;text-transform:uppercase;
  color:oklch(92% 0.03 84);text-shadow:0 1px 12px oklch(10% 0.03 150 / .6)}
.club-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin:34px 0 0}
.film .btn{background:oklch(98% 0.006 84);color:oklch(20% 0.02 150);border-color:oklch(98% 0.006 84);
  min-width:180px;justify-content:center}
.film .btn.ghost{background:oklch(16% 0.03 150 / .28);color:oklch(98% 0.006 84);border-color:oklch(98% 0.006 84 / .6);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.film .btn.ghost:hover{border-color:oklch(98% 0.006 84);background:oklch(16% 0.03 150 / .45)}
@media(max-width:520px){.club-cta{flex-direction:column;width:min(320px,86vw)}.film .btn{width:100%}
  .club-sub{font-size:9.5px;letter-spacing:.18em}}

/* scroll cue, bottom centre */
.scroll-cue{position:absolute;left:50%;bottom:clamp(26px,5vh,44px);transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;
  font:500 10.5px/1 var(--f-mono);letter-spacing:.24em;text-transform:uppercase;
  color:oklch(94% 0.01 84);text-shadow:0 1px 10px oklch(10% 0.03 150 / .6)}
.scroll-cue i{display:block;width:1px;height:38px;background:oklch(98% 0.006 84 / .8);
  animation:cue 2s var(--ez) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}
  55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* the club's name stays out of the hero (the crest and the H1 carry it); it returns
   in a slim bar once the film has been scrolled past */
.club-bar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:22px;
  padding:11px clamp(22px,4vw,56px);background:oklch(97% 0.008 84 / .94);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid oklch(86% 0.012 84);
  color:oklch(22% 0.03 150);transform:translateY(-100%);transition:transform .5s var(--ez);margin:0;width:auto}
.club-bar.on{transform:none}
.cb-name{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;
  font:600 .92rem/1 var(--f-disp);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.cb-name img,.cb-name svg{height:34px;width:auto;color:inherit;filter:none;margin:0}
.club-bar nav{display:flex;gap:20px;margin-left:auto;font:500 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.club-bar nav a{color:inherit;text-decoration:none;opacity:.8}
.club-bar nav a:hover{opacity:1}
.club-bar .btn{padding:10px 16px;font-size:11px;min-width:0;margin-left:8px}
@media(max-width:720px){.club-bar nav{display:none}.club-bar .btn{margin-left:auto}}

/* the name, top left, the way a crest sits on a club's page */
.film-mark{position:absolute;left:clamp(22px,4vw,56px);top:clamp(26px,5vh,48px);z-index:3;
  font:600 clamp(1rem,1.3vw,1.15rem)/1 var(--f-disp);letter-spacing:.22em;text-transform:uppercase;
  color:oklch(97% 0.008 84);text-decoration:none}
.film-mark{text-shadow:0 1px 12px oklch(10% 0.03 150 / .6)}
.film-mark small{display:block;margin-top:7px;font:500 9.5px/1 var(--f-mono);letter-spacing:.24em;
  color:oklch(94% 0.03 84)}
.film-nav{position:absolute;right:clamp(22px,4vw,56px);top:clamp(26px,5vh,48px);z-index:3;
  display:flex;gap:22px;font:500 11.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.film-nav a{color:oklch(96% 0.01 84);text-decoration:none;opacity:.9;text-shadow:0 1px 10px oklch(10% 0.03 150 / .6)}
.film-nav a:hover{opacity:1}
@media(max-width:720px){.film-nav a.hide-s{display:none}.film-copy p{font-size:.97rem}}

/* the studio masthead is hidden on this page; the film carries the top */
.top{display:none}

.pause{position:absolute;right:clamp(22px,4vw,56px);bottom:clamp(26px,5vh,44px);z-index:3;
  width:40px;height:40px;border-radius:50%;border:1px solid oklch(98% 0.006 84 / .6);
  background:oklch(16% 0.03 150 / .35);color:oklch(98% 0.006 84);cursor:pointer;
  display:grid;place-items:center;padding:0;font-size:12px;letter-spacing:0}
.pause:hover{background:oklch(16% 0.03 150 / .6)}
@media(max-width:720px){.pause{display:none}}

.credit{position:absolute;left:clamp(22px,4vw,56px);bottom:12px;z-index:3;max-width:34vw;line-height:1.5;
  font:400 10px/1 var(--f-mono);letter-spacing:.08em;color:oklch(85% 0.02 84 / .55)}
.credit a{color:inherit;text-decoration:none}

/* below the fold: same rhythm as the studio */
.parts.golf dd{font-variant-numeric:tabular-nums}
.demos{margin:34px 0 0;border-top:1px solid var(--rule)}
.demos a{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr) auto;gap:22px;
  align-items:baseline;padding:20px 0;border-bottom:1px solid var(--hair);
  text-decoration:none;color:inherit}
.demos .sn{transition:transform .45s var(--ez),color .3s;display:inline-block}
.demos a:hover .sn{color:var(--blue);transform:translateX(7px)}
@media(max-width:720px){.demos a{grid-template-columns:1fr;gap:6px}}

@media(max-width:720px){.credit{display:none}}
@media (prefers-reduced-motion:reduce){.film video{display:none}.film .poster{opacity:1}.scroll-cue i{animation:none}}


/* =====================================================================
   THE CLUB, below the hero. Same grammar as the world's best: photographic
   bands with a serif statement on them, cream editorial sections between,
   gold for eyebrows and rules, no blue (that is Forte's colour), no cards.
   ===================================================================== */
.film ~ *{--club-ink:oklch(22% 0.03 150);--club-paper:oklch(97% 0.008 84);
  --club-mut:oklch(46% 0.02 150);--club-rule:oklch(86% 0.012 84);--gold:oklch(70% 0.10 84)}

.eyebrow{font:500 10.5px/1 var(--f-mono);letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold);margin:0 0 18px}
.link{font:500 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;
  color:inherit;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:5px;
  transition:opacity .3s}
.link:hover{opacity:.7}

/* photographic band: full-bleed still, dark grade, cream serif on top */
.band{position:relative;width:100vw;margin-left:calc(50% - 50vw);padding:0;
  min-height:min(88vh,760px);display:grid;align-items:end;color:oklch(98% 0.006 84);
  background:var(--img) center/cover no-repeat,oklch(28% 0.04 150);border:0}
.band.tall{min-height:min(96vh,860px)}
.band::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,oklch(16% 0.03 150 / .12) 0%,oklch(16% 0.03 150 / .12) 40%,oklch(16% 0.03 150 / .78) 100%)}
.band-in{position:relative;z-index:1;width:100%;max-width:1140px;margin:0 auto;
  padding:clamp(56px,9vh,110px) 26px clamp(52px,8vh,88px);display:grid;gap:22px;
  justify-items:start}
.statement{font:600 clamp(2rem,4.6vw,3.6rem)/1.06 var(--f-disp);letter-spacing:-.015em;max-width:20ch;
  font-variation-settings:"SOFT" 30,"WONK" 0;text-shadow:0 2px 28px oklch(10% 0.03 150 / .5);margin:0}
.band-copy{margin:0;max-width:56ch;font-size:1.06rem;line-height:1.6;color:oklch(93% 0.01 84)}
.band .link{color:oklch(96% 0.01 84)}
.band .btn{background:oklch(98% 0.006 84);color:oklch(20% 0.02 150);border-color:oklch(98% 0.006 84)}

/* facts and tiers: a yardage-card strip */
.facts,.tiers{display:flex;flex-wrap:wrap;gap:0;margin:8px 0 0;padding:0;
  border-top:1px solid oklch(98% 0.006 84 / .35)}
.facts div,.tiers div{padding:16px 34px 4px 0;margin-right:30px;border-right:1px solid oklch(98% 0.006 84 / .22)}
.facts div:last-child,.tiers div:last-child{border-right:0}
.facts dt,.tiers dt{font:500 10px/1 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;
  color:oklch(90% 0.05 84);margin:0 0 8px}
.tiers dt small{display:block;margin-top:5px;letter-spacing:.08em;text-transform:none;opacity:.8}
.facts dd,.tiers dd{margin:0;font:600 1.45rem/1 var(--f-disp);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
@media(max-width:620px){.facts div,.tiers div{padding-right:18px;margin-right:16px}}

/* cream editorial sections */
.club-sec{padding:clamp(72px,10vh,120px) 0;background:var(--club-paper);color:var(--club-ink);
  width:100vw;margin-left:calc(50% - 50vw);border:0}
.club-sec > *{max-width:1140px;margin-left:auto;margin-right:auto;padding-left:26px;padding-right:26px}
.club-h2{font:600 clamp(1.7rem,3.4vw,2.5rem)/1.12 var(--f-disp);letter-spacing:-.015em;
  max-width:22ch;margin:0;font-variation-settings:"SOFT" 24,"WONK" 0;text-wrap:balance}
.club-p{margin:18px 0 0;max-width:56ch;color:var(--club-mut);font-size:1.03rem;line-height:1.62}
.club-cta-row{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin:30px 0 0}
.club-btn{background:var(--club-ink);color:var(--club-paper);border-color:var(--club-ink)}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.split.rev > img{order:-1}
.split img{width:100%;height:auto;display:block;border-radius:2px}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:34px}.split.rev > img{order:0}}

/* the green-fee table: a price list, not a data table */
.fees{width:100%;border-collapse:collapse;font-size:1rem}
.fees caption{text-align:left;font:500 10.5px/1 var(--f-mono);letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold);padding:0 0 14px}
.fees tr{border-top:1px solid var(--club-rule)}
.fees tr:last-child{border-bottom:1px solid var(--club-rule)}
.fees th{text-align:left;font-weight:400;padding:15px 16px 15px 0;color:var(--club-ink)}
.fees td{text-align:right;padding:15px 0;font:600 1.15rem/1 var(--f-disp);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.fees td small{font:400 12px/1 var(--f-body);color:var(--club-mut);margin-left:4px}

/* holes */
.holes-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:start;margin-top:40px}
.holes-grid img{width:100%;height:auto;display:block;border-radius:2px;position:sticky;top:28px}
@media(max-width:860px){.holes-grid{grid-template-columns:1fr;gap:30px}.holes-grid img{position:static}}
.hole-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--club-rule)}
.hole-list li{padding:24px 0;border-bottom:1px solid var(--club-rule)}
.hole-list b{display:block;font:600 1.5rem/1.1 var(--f-disp);letter-spacing:-.01em}
.hole-list b span{font-weight:500;font-style:italic;margin-left:10px;font-variation-settings:"SOFT" 50,"WONK" 1}
.hole-list i{display:block;margin:8px 0 0;font:500 11px/1 var(--f-mono);letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold)}
.hole-list p{margin:12px 0 0;color:var(--club-mut);max-width:48ch;line-height:1.6}

/* today strip */
.today{width:100vw;margin-left:calc(50% - 50vw);padding:0;border:0;
  background:var(--club-ink);color:oklch(95% 0.01 84)}
.today-in{max-width:1140px;margin:0 auto;padding:22px 26px;display:flex;gap:34px;align-items:center;flex-wrap:wrap}
.today .eyebrow{margin:0;color:var(--gold)}
.today ul{list-style:none;margin:0;padding:0;display:flex;gap:30px;flex-wrap:wrap;font-size:.95rem}
.today li b{font-weight:500;color:oklch(78% 0.04 84);margin-right:8px;font-family:var(--f-mono);
  font-size:11px;letter-spacing:.12em;text-transform:uppercase}

/* club footer */
.club-foot{width:100vw;margin-left:calc(50% - 50vw);padding:0;border:0;margin-top:0;
  background:oklch(18% 0.03 150);color:oklch(90% 0.01 84);display:block;font:inherit}
.club-foot-in{max-width:1140px;margin:0 auto;padding:64px 26px 72px;display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:48px;align-items:start}
@media(max-width:860px){.club-foot-in{grid-template-columns:1fr}}
.cf-brand{display:flex;gap:18px;align-items:flex-start;color:oklch(96% 0.01 84)}
.crest.small{color:oklch(96% 0.01 84);filter:none;width:48px;margin:0}
.cf-brand b{display:block;font:600 1.25rem/1.2 var(--f-disp);letter-spacing:.02em}
.cf-brand span{display:block;margin-top:8px;font-size:.9rem;line-height:1.55;color:oklch(72% 0.02 84)}
.cf-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media(max-width:560px){.cf-nav{grid-template-columns:1fr 1fr}}
.cf-nav b{display:block;font:500 10.5px/1 var(--f-mono);letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin-bottom:16px}
.cf-nav a{display:block;color:oklch(88% 0.01 84);text-decoration:none;font-size:.95rem;padding:5px 0;opacity:.85}
.cf-nav a:hover{opacity:1}

/* the line between the demonstration and the price */
.forte-divider{padding:clamp(72px,10vh,120px) 0 8px;border-top:0}
.forte-divider + section{padding-top:28px;border-top:0}
.forte-divider + section .parts{margin-top:0}
.forte-divider .orelse{max-width:66ch}

/* facts strip on cream */
.facts.cream{border-top-color:var(--club-rule);margin-top:28px}
.facts.cream div{border-right-color:var(--club-rule)}
.facts.cream dt{color:var(--gold)}
.facts.cream dd{color:var(--club-ink)}
/* the first cream section after the film needs a little more air at the top */
.film + .club-sec{padding-top:clamp(84px,12vh,140px)}
