/* ============================================================
   Nicklaus.com  |  static build, no preprocessor
   Source of truth: Figma "Nicklaus Brand" > Nicklaus.com Final
   ============================================================ */

/* ---------- Fonts (self-hosted, latin subset) ---------- */
@font-face{font-family:'Geist';font-style:normal;font-weight:100 900;font-display:swap;src:url('../assets/fonts/Geist.woff2') format('woff2');}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:100 900;font-display:swap;src:url('../assets/fonts/GeistMono.woff2') format('woff2');}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/InstrumentSerif.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500 700;font-display:swap;src:url('../assets/fonts/Montserrat.woff2') format('woff2');}

/* ---------- Tokens ---------- */
:root {
  /* colour */
  --cream:        #F9F8F3;
  --cream-2:      #EFECE4;
  --green:        #167239;   /* primary: headlines, buttons */
  --forest:       #005E37;   /* deep sections: The Man, Foundation frame, footer */
  --forest-2:     #004825;   /* 18 Majors brand card */
  --gb-yellow:    #F4D03F;   /* Golden Bear card */
  --gb-green:     #4DAB5D;   /* Golden Bear accents, progress thumb */
  --gold:         #FFC300;   /* 18 Majors accents, stat numerals on green */
  --nd-slate:     #545454;   /* Nicklaus Design brand card */
  --nd-gold:      #FCB624;   /* Nicklaus Design bear and button */
  --nd-mist:      #E9E9E9;   /* behind the Nicklaus Design wordmark */
  --stix-gold:    #FCB624;
  --grey:         #545454;   /* Stix card */
  --ink:          #111111;
  --muted:        #706E6A;
  --rule:         #D9D9D9;
  --rule-light:   #CCCCCC;
  --white:        #FFFFFF;
  --cream-3:      #F1ECD5;   /* interior 'Start a conversation' ground */

  /* type */
  --serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  --sans:  'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono:  'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* layout: the Figma frame is a 1440 artboard. --u is one artboard pixel as a fraction of the viewport
     (instrument.com's model), so every size written as N * --u keeps its proportion as the window grows or
     shrinks. Phones scale the artboard from 390 (capped at 0.72), tablets re-base at 1200, and from 1024 up
     the whole artboard scales without a cap. --side is the page margin: 24 / 32 / 48 at each band's start,
     growing with the viewport, as on instrument.com. Small text and tap targets keep px floors. */
  --u: min(calc(100vw / 720), 0.72px);
  --side: max(24px, calc(48 * var(--u)));
  --content-w: calc(100vw - 2 * var(--side));   /* the width between the margins, for photo bands */
  --section-top: calc(133 * var(--u));
  --section-bottom: calc(120 * var(--u));
  --menu-w: 100vw;     /* slide-out navigation panel: the full screen until 768 */

  /* motion */
  --ease: cubic-bezier(.2,.7,.2,1);
  --dur: 480ms;
}

@media (min-width:640px){:root{--u:calc(100vw / 1200);--side:max(32px, calc(48 * var(--u)))}}
@media (min-width:768px){:root{--menu-w:max(360px, calc(440 * var(--u)))}}
@media (min-width:1024px){:root{--u:calc(100vw / 1440);--side:max(48px, calc(48 * var(--u)))}}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:max(16px, calc(16 * var(--u)));line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
h1,h2,h3,p,dl,dd,dt,figure,fieldset,hr{margin:0;padding:0}
fieldset{border:0;min-width:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
strong{font-weight:700}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--green);color:#fff;padding:10px 16px;font-weight:600}
.skip-link:focus{top:12px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}

/* ---------- Shared type ---------- */
.display{font-family:var(--serif);font-weight:400;color:var(--green);letter-spacing:-0.005em}
.display--xl{font-size:max(48px, calc(100 * var(--u)));line-height:1.1}
.display--lg{font-size:max(44px, calc(96 * var(--u)));line-height:1.1;color:var(--forest)}
.display--md{font-size:max(36px, calc(64 * var(--u)));line-height:1.12;color:var(--ink)}
.display--sm{font-size:max(30px, calc(44 * var(--u)));line-height:1.2;color:var(--ink)}
.body{font-size:max(18px, calc(18 * var(--u)));line-height:1.6;color:var(--muted)}

.eyebrow{font-family:var(--mono);font-weight:500;font-size:max(14px, calc(14 * var(--u)));letter-spacing:.02em;text-transform:uppercase;color:var(--muted);text-align:center;margin:0 0 calc(60 * var(--u))}
.eyebrow--green{color:var(--green)}
.eyebrow--white{color:var(--white)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:2px;transition:background-color 180ms var(--ease),color 180ms var(--ease),border-color 180ms var(--ease)}
.btn--outline{font-size:max(12px, calc(12 * var(--u)));font-weight:700;padding:max(6px, calc(8 * var(--u))) max(12px, calc(16 * var(--u)));border:1px solid currentColor;border-radius:0}
.btn--outline:hover{background:var(--btn-fill,var(--ink));border-color:var(--btn-fill,var(--ink));color:var(--btn-hover-text,#fff)}
.btn--solid{font-size:max(12px, calc(12 * var(--u)));font-weight:600;padding:max(12px, calc(16 * var(--u))) max(20px, calc(28 * var(--u)));background:var(--green);color:#fff}
.btn--solid:hover{background:var(--forest)}
.btn--lg{font-size:max(14px, calc(14 * var(--u)));letter-spacing:.09em;padding:max(14px, calc(17 * var(--u))) max(28px, calc(40 * var(--u)))}
.btn--wide{font-size:max(13px, calc(13 * var(--u)));min-width:min(100%, calc(290 * var(--u)));padding:max(14px, calc(18 * var(--u))) max(28px, calc(40 * var(--u)))}
.cta-row{display:flex;justify-content:center;margin-top:calc(60 * var(--u))}

/* ---------- Stats ---------- */
.stats{display:flex;gap:max(17px, calc(24 * var(--u)));justify-content:center;text-align:center;width:100%;margin-top:calc(60 * var(--u))}
.stat{flex:1 1 0;min-width:0;padding:max(17px, calc(24 * var(--u)));border-radius:12px}
.stat dt{font-family:var(--serif);font-size:max(72px, calc(128 * var(--u)));line-height:1}
.stat dd{margin-top:max(6px, calc(8 * var(--u)));font-size:max(12px, calc(12 * var(--u)));font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.stats--green{color:var(--green)}
.stats--gold{color:var(--gold)}
.stats--two{max-width:none;margin-left:auto;margin-right:auto}

/* ============================================================ HERO */
.hero{position:relative;height:100vh;height:100svh;display:flex;flex-direction:column;color:var(--cream);isolation:isolate;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:-1;overflow:hidden}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero__bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.25)}

.nav{position:relative;height:max(80px, calc(111 * var(--u)));flex:0 0 auto;background:var(--cream);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--side)}
.nav__menu{justify-self:start;width:29px;height:21px;display:flex;flex-direction:column;justify-content:space-between}
.nav__menu span{display:block;height:3px;background:var(--muted);width:28px;transition:transform 240ms var(--ease),opacity 240ms var(--ease)}
.nav__menu span:nth-child(2){width:20px}
.nav__brand{display:flex;flex-direction:column;align-items:center;gap:0;color:var(--green);margin-top:max(7px, calc(9 * var(--u)))}
.nav__bear{width:max(44px, calc(61 * var(--u)));height:max(44px, calc(61 * var(--u)))}
.nav__mark{justify-self:end;width:max(44px, calc(59 * var(--u)));height:max(46px, calc(61 * var(--u)));object-fit:contain}
.wordmark{width:max(112px, calc(137 * var(--u)));height:max(27px, calc(33 * var(--u)));color:inherit}
.nav__brand .wordmark{margin-top:-4px}

.hero__copy{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;padding:calc(32 * var(--u)) var(--side) clamp(28px,7svh,72px)}
.hero__title{font-family:var(--serif);font-weight:400;font-size:max(52px, min(13.9vw, 24svh));line-height:1;letter-spacing:-.01em;color:var(--cream);text-wrap:balance}

/* ============================================================ MANIFESTO (Figma section-manifesto-1 481:4166) */
.manifesto{background:var(--cream);padding:calc(120 * var(--u)) var(--side) calc(180 * var(--u))}
.manifesto__statement{max-width:calc(1200 * var(--u));margin:0 auto;font-family:var(--serif);font-weight:400;font-size:max(34px, calc(64 * var(--u)));line-height:1.1;color:var(--green);text-wrap:pretty}
.manifesto__statement+.manifesto__statement{margin-top:1.1em}   /* one blank line between the two paragraphs, as in the frame */

/* ---------- Slide-out menu ---------- */
/* The panel slides in from the left and pushes the whole site to the right on desktop.
   Under 768px it covers the screen. .site wraps everything except the panel. */
.site{position:relative;transition:transform 360ms var(--ease)}
body.menu-open .site{transform:translateX(var(--menu-w))}
.menu{position:fixed;top:0;left:0;bottom:0;z-index:50;width:var(--menu-w);background:var(--green);color:#fff;padding:max(88px, calc(104 * var(--u))) max(24px, calc(44 * var(--u))) calc(48 * var(--u));overflow-y:auto;overscroll-behavior:contain;transform:translateX(-100%);visibility:hidden;transition:transform 360ms var(--ease),visibility 0s linear 360ms}
.menu[hidden]{display:block}
.menu:not([hidden]){transform:none;visibility:visible;transition:transform 360ms var(--ease),visibility 0s}
@media (prefers-reduced-motion:reduce){.menu,.site,.nav__menu span{transition:none}}
.menu__close{display:none;position:absolute;top:28px;right:24px;width:44px;height:44px;font-size:36px;line-height:1;color:#fff}
.menu__nav{display:grid;gap:calc(40 * var(--u))}
.menu__group{display:grid;gap:6px}
.menu__label{font-family:var(--mono);font-size:max(10px, calc(10 * var(--u)));font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:max(6px, calc(8 * var(--u)))}
.menu__group a{font-family:var(--sans);font-size:max(18px, calc(18 * var(--u)));font-weight:500;line-height:1.35;color:#fff;transition:opacity 160ms}
.menu__group a:hover{opacity:.72}
.menu__group a:focus-visible{outline-color:var(--gold)}
/* hamburger becomes the X when the menu is open; it rides along with the pushed page */
.nav__menu[aria-expanded="true"] span{width:28px;background:var(--green)}
.nav__menu[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.nav__menu[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav__menu[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
body.menu-open{overflow:hidden}
@media (max-width:767.98px){
  body.menu-open .site{transform:none}
  .menu{width:100%}
  .menu__close{display:block}
}

/* ============================================================ BRANDS */
/* Figma section-apparel-lifestyle 461:3287: white ground, 186px below the grid before the next section */
.brands{background:var(--white);padding:var(--section-top) var(--side) calc(186 * var(--u))}
.brands .display--xl{text-align:center;line-height:1;max-width:calc(1200 * var(--u));margin-left:auto;margin-right:auto;margin-bottom:calc(60 * var(--u));padding-bottom:calc(35 * var(--u))}
.brand-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:calc(40 * var(--u));max-width:none;margin:0 auto}
.brand-card{display:flex;flex-direction:column;color:var(--card-text,var(--ink));transition:transform 320ms var(--ease),box-shadow 320ms var(--ease)}
.brand-card__image{position:relative;display:block;aspect-ratio:580/397;overflow:hidden;background:#e5e2d9}
.brand-card__image img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease)}
/* Nicklaus Design wordmark: the letters are live text in Montserrat, filled with an aerial still (background-clip) until
   the clip can play; then main.js traces the glyphs into an SVG clipPath and plays the footage through them. Hovering the
   card swaps to a reversed copy of the same clip, picked up at the matching frame, so the footage runs backwards. */
.brand-card__image--wordmark{display:grid;place-items:center;background:var(--nd-mist);container-type:inline-size}
.ndmark{position:relative;max-width:100%}
.ndmark__text{position:relative;z-index:1;margin:0;font-family:'Montserrat',var(--sans);font-weight:700;font-size:14.4cqw;line-height:.95;letter-spacing:-.05em;text-transform:uppercase;text-align:center;white-space:nowrap;color:transparent;background:url(/assets/img/brand-nicklaus-design-aerial.webp) center 40%/cover no-repeat;-webkit-background-clip:text;background-clip:text}
.ndmark__text span{display:block}
.ndmark__media{position:absolute;inset:0;z-index:2;opacity:0;transition:opacity 1.2s ease;pointer-events:none;overflow:hidden}
.ndmark--live .ndmark__media{opacity:1}
.ndmark--live .ndmark__text{background-image:none}
.ndmark__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.ndmark__video--reverse{visibility:hidden}
.ndmark--reverse .ndmark__video--reverse{visibility:visible}
.ndmark--reverse .ndmark__video:not(.ndmark__video--reverse){visibility:hidden}
.ndmark__clipdef{position:absolute;width:0;height:0;overflow:hidden}
.brand-card__arrow{position:absolute;right:max(14px, calc(24 * var(--u)));bottom:max(14px, calc(24 * var(--u)));display:grid;place-items:center;width:max(40px, calc(52 * var(--u)));height:max(40px, calc(52 * var(--u)));border-radius:50%;background:var(--card-accent);color:var(--btn-hover-text);opacity:0;transform:translateY(10px) scale(.85);transition:opacity 260ms var(--ease),transform 320ms var(--ease)}
.brand-card__arrow svg{width:45%;height:45%}
/* hovering the linked image or the button lifts the whole card and reveals the arrow */
.brand-card:has(.brand-card__image:hover,.btn:hover,.btn:focus-visible){transform:translateY(-6px) scale(1.012);box-shadow:0 18px 40px -18px rgba(0,0,0,.35)}
.brand-card:has(.brand-card__image:hover,.btn:hover,.btn:focus-visible) .brand-card__image img{transform:scale(1.04)}
.brand-card:has(.brand-card__image:hover,.btn:hover,.btn:focus-visible) .brand-card__arrow{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.brand-card,.brand-card__image img,.brand-card__arrow{transition:none}.brand-card:has(.brand-card__image:hover,.btn:hover,.btn:focus-visible){transform:none}.brand-card:has(.brand-card__image:hover,.btn:hover,.btn:focus-visible) .brand-card__image img{transform:none}}
.brand-card__copy{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(52 * var(--u)) calc(60 * var(--u)) calc(56 * var(--u));background:var(--card-bg)}
.brand-card__head{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:max(100px, calc(132 * var(--u)))}
.brand-card__mark{flex:0 0 auto;margin-bottom:max(14px, calc(20 * var(--u)))}
.brand-card__mark--bear{width:max(52px, calc(67 * var(--u)));height:auto;color:var(--gb-green)}
.brand-card__mark--18m{width:max(150px, calc(197 * var(--u)));height:auto;margin-bottom:calc(34 * var(--u))}
.brand-card__mark--sig{width:max(165px, calc(217 * var(--u)));height:auto;margin-top:6px;margin-bottom:max(14px, calc(20 * var(--u)));color:var(--sig-color,var(--ink))}
.brand-card__name{font-family:var(--serif);font-weight:400;font-size:max(24px, calc(40 * var(--u)));line-height:1.2;color:var(--gb-green);margin-bottom:max(17px, calc(24 * var(--u)))}
.brand-card__desc{flex:1;max-width:calc(450 * var(--u));font-size:max(16px, calc(16 * var(--u)));line-height:1.6;margin-bottom:max(17px, calc(24 * var(--u)))}
.brand-card .btn--outline{color:var(--card-accent);--btn-fill:var(--card-accent)}
.brand-card .btn--outline:hover{color:var(--btn-hover-text)}
.brand-card--golden-bear{--card-bg:var(--gb-yellow);--card-accent:var(--gb-green);--btn-hover-text:var(--gb-yellow)}
.brand-card--18majors{--card-bg:var(--forest-2);--card-text:#fff;--card-accent:var(--gold);--btn-hover-text:var(--forest-2)}
.brand-card--signature{--card-bg:#f5f4ef;--card-accent:var(--forest-2);--btn-hover-text:#fff;--sig-color:var(--ink)}
.brand-card--design{--card-bg:var(--nd-slate);--card-text:#fff;--card-accent:var(--nd-gold);--btn-hover-text:var(--nd-slate)}
.brand-card--design .brand-card__mark--bear{color:var(--nd-gold)}
/* Nicklaus Design lockup under the bear: NICKLAUS over a smaller DESIGN, bold geometric caps (Montserrat for the frame's Gotham) */
.brand-card__name--lockup{font-family:'Montserrat',var(--sans);font-weight:700;font-size:max(20px, calc(24 * var(--u)));line-height:1.2;text-transform:uppercase;color:#fff}
.brand-card__name--lockup span{display:block}
.brand-card__name--lockup span+span{font-size:.667em}

/* ============================================================ DESIGN */
.design{background:var(--cream-2);padding:var(--section-top) var(--side) var(--section-bottom);display:flex;flex-direction:column;align-items:center;overflow-x:clip;overflow-x:clip}
.design .eyebrow{width:100%}
.design__title{max-width:calc(687 * var(--u));text-align:center;line-height:1;margin-bottom:max(21px, calc(30 * var(--u)))}
.design__continents{font-family:var(--mono);font-weight:500;font-size:max(11px, calc(11 * var(--u)));letter-spacing:.02em;text-transform:uppercase;color:var(--green);text-align:center;margin-bottom:max(21px, calc(30 * var(--u)));display:flex;flex-wrap:wrap;justify-content:center;gap:0 4px}
.design__continents .sep{color:var(--rule-light);padding:0 max(9px, calc(12 * var(--u)))}
.design__continent{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;appearance:none;background:none;border:0;padding:4px 0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;position:relative;transition:color 200ms}
.design__continent::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--ease)}
.design__continent:hover,.design__continent[aria-pressed="true"]{color:var(--ink)}
.design__continent:hover::after,.design__continent[aria-pressed="true"]::after{transform:scaleX(1)}
.design__continent:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px}
.design__tag{font-size:max(8px, calc(8 * var(--u)));letter-spacing:.08em;line-height:1;padding:3px 6px 2px;border:1px solid currentColor;border-radius:999px;opacity:.9}

/* The course deck. Cards start stacked; a click fans them across the stage with one in focus.
   Positions come from main.js as --x/--y/--r/--s per card; the CSS only composes them. */
.carousel{position:relative;width:min(100%,calc(857 * var(--u)));margin:0 auto;--deck-ease:cubic-bezier(.22,1,.36,1);--deck-dur:680ms}
.carousel__stage{position:relative;width:100%;height:0;padding-bottom:93%;touch-action:pan-y;transition:height var(--deck-dur) var(--deck-ease);outline:none}
.carousel__stage.is-ready{padding-bottom:0}
.carousel__stage:focus-visible{outline:2px solid var(--green);outline-offset:6px;border-radius:4px}
.carousel__slide{position:absolute;left:50%;top:50%;width:var(--card,58%);aspect-ratio:1;margin:0;padding:0;border:0;background:var(--cream);appearance:none;cursor:pointer;display:block;overflow:hidden;
  transform:translate(-50%,-50%) translate(var(--x,0px),calc(var(--y,0px) + var(--lift,0px))) rotate(var(--r,0deg)) scale(var(--s,1));
  box-shadow:0 8px 32px rgba(0,0,0,.18);z-index:1;will-change:transform;
  transition:transform var(--deck-dur) var(--deck-ease),opacity 420ms var(--deck-ease),box-shadow 320ms var(--ease),filter 320ms var(--ease)}
.carousel__slide img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;transition:transform 600ms var(--deck-ease)}
.carousel__slide:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.carousel.is-stacked .carousel__slide{cursor:pointer}
.carousel.is-stacked .carousel__slide:hover img{transform:scale(1.02)}
.carousel.is-spread .carousel__slide:not(.is-focus){filter:saturate(.8) brightness(.9)}
.carousel.is-spread .carousel__slide:not(.is-focus):hover,.carousel.is-spread .carousel__slide:not(.is-focus):focus-visible{--lift:-18px;filter:none;box-shadow:0 18px 44px rgba(0,0,0,.26)}
.carousel__slide.is-focus{box-shadow:0 26px 64px rgba(0,0,0,.28);cursor:default}
.carousel__slide.is-focus::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 3px rgba(255,255,255,.85);pointer-events:none}
.carousel__slide.is-out{opacity:0;pointer-events:none}
.carousel__slide.is-buried{opacity:0;pointer-events:none}
.carousel.is-stacked .carousel__slide{box-shadow:0 10px 30px rgba(0,0,0,.14)}
@media (prefers-reduced-motion:reduce){.carousel__slide,.carousel__slide img,.carousel__stage{transition:none}}
.carousel__arrow{position:absolute;top:50%;transform:translateY(-50%);width:max(30px, calc(34 * var(--u)));height:max(30px, calc(34 * var(--u)));border-radius:999px;background:var(--cream-2);border:1px solid var(--green);color:var(--green);display:grid;place-items:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));z-index:120;transition:background-color 160ms,color 160ms,opacity 200ms}
.carousel__arrow[disabled]{opacity:.35;pointer-events:none}
.carousel__arrow svg{width:20px;height:20px}
.carousel__arrow:hover{background:var(--green);color:#fff}
.carousel__arrow--prev{left:calc(-113 * var(--u))}
.carousel__arrow--next{right:calc(-113 * var(--u))}
.carousel__caption{margin-top:max(21px, calc(30 * var(--u)));text-align:center;font-size:max(13px, calc(14 * var(--u)));line-height:1.4;color:var(--muted);max-width:calc(500 * var(--u))}
.carousel__caption strong{display:block;font-family:var(--sans);font-weight:700;font-size:max(14px, calc(15 * var(--u)));line-height:1.3;color:var(--ink);margin-bottom:2px}

/* ============================================================ ROLEX */
.rolex{background:var(--cream);padding:var(--section-top) var(--side) calc(117 * var(--u));display:flex;flex-direction:column;align-items:center}
.rolex .eyebrow{margin-bottom:calc(61 * var(--u))}
.rolex__logo{width:calc(246 * var(--u));height:auto;margin-bottom:calc(113 * var(--u))}
/* The photo's two focal points, Jack's face and the Rolex on his wrist, sit at the top and the bottom of the
   frame, so the band keeps the photo's own proportions and never crops it vertically. Where the viewport is
   too short for that, the band narrows instead of cropping. */
.rolex__hero{width:min(100%, calc(72svh * 2000 / 1283));flex:0 0 auto;background:#e5e2d9;aspect-ratio:2000 / 1283;overflow:hidden}
.rolex__hero img{width:100%;height:100%;object-fit:cover;object-position:center}
.rolex__title{width:100%;max-width:none;text-align:center;margin-top:calc(64 * var(--u));margin-bottom:calc(111 * var(--u))}

.mosaic{width:100%;max-width:none;position:relative}
.mosaic__item{flex:0 0 calc(493 * var(--u));max-width:88%;scroll-snap-align:start}
.mosaic__image{aspect-ratio:493/625;overflow:hidden;background:#e5e2d9}
.mosaic__image img{width:100%;height:100%;object-fit:cover}
.mosaic__title{font-family:var(--sans);font-weight:500;font-size:max(18px, calc(30 * var(--u)));line-height:.95;color:var(--green);margin:calc(40 * var(--u)) 0 max(16px, calc(22 * var(--u)));padding-right:calc(110 * var(--u))}
.mosaic__caption{font-size:max(18px, calc(18 * var(--u)));line-height:1.6;color:var(--muted);padding-right:calc(110 * var(--u))}
.mosaic__year{margin-top:max(14px, calc(20 * var(--u)));font-size:max(14px, calc(14 * var(--u)));font-weight:700;line-height:1.43;color:var(--ink)}
/* Rolex cards (homepage strip, Rolex page timeline): three across, no scroll, in date order; stacked on phones */
.mosaic--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:max(17px, calc(24 * var(--u)))}
.mosaic--grid .mosaic__item{max-width:none;display:flex;flex-direction:column}
.mosaic--grid .mosaic__caption{flex:1}   /* captions run to different lengths: keep the years on one line */
.mosaic--grid .mosaic__title,.mosaic--grid .mosaic__caption{padding-right:calc(40 * var(--u))}
@media (max-width:639.98px){.mosaic--grid{grid-template-columns:1fr;row-gap:48px}.mosaic--grid .mosaic__image{aspect-ratio:4/3}}
/* Rolex at Muirfield Village: a kicker and statement over the four clock portraits, four across (two on phones) */
.rolex-muirfield{padding-top:calc(120 * var(--u))}
.rolex-muirfield__gallery{margin:calc(56 * var(--u)) 0 calc(40 * var(--u))}
.gallery.rolex-muirfield__gallery .figure img{aspect-ratio:1157/1800}
@media (max-width:639.98px){.gallery.rolex-muirfield__gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}

.rolex__closing{max-width:calc(892 * var(--u));margin-top:calc(130 * var(--u));text-align:center;font-size:max(18px, calc(18 * var(--u)));line-height:1.6;color:var(--muted)}
.rolex .cta-row{margin-top:calc(73 * var(--u))}
/* Rolex page: the same section under the page-head photo, so the title takes the homepage's gap below the photo */
.rolex--page{padding-top:0}

/* ============================================================ THE MAN */
.man{background:var(--forest);color:#fff;display:flex;flex-direction:column;align-items:center}
/* A portrait photo whose focal points, Jack's face and the glove, run from a fifth to four fifths of its height.
   The band is 5:4 (which shows that middle 64%) and, where the viewport is too short, narrows instead of cropping. */
.man__image{width:min(100%, calc(70svh * 5 / 4));aspect-ratio:5 / 4;overflow:hidden;background:#2f3d34}
.man__image img{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.man__body{width:100%;max-width:none;padding:calc(64 * var(--u)) var(--side) calc(84 * var(--u));display:flex;flex-direction:column;align-items:center}
.man .eyebrow{margin-bottom:calc(61 * var(--u));width:100%}
.man__mark{width:calc(445 * var(--u));height:auto;margin:max(15px, calc(21 * var(--u))) 0 calc(35 * var(--u))}
.man__lede{max-width:calc(816 * var(--u));text-align:center;font-size:max(18px, calc(18 * var(--u)));line-height:1.6}
.man .stats{margin-top:calc(57 * var(--u))}
.man .cta-row{margin-top:calc(32 * var(--u))}
.man .btn--solid{letter-spacing:.08em}

/* ============================================================ FOUNDATION */
.foundation{background:var(--forest);padding:calc(57 * var(--u)) var(--side) calc(118 * var(--u))}
.foundation__panel{background:var(--cream);max-width:none;margin:0 auto;padding:var(--section-top) calc(80 * var(--u)) calc(95 * var(--u))}
.foundation__title{text-align:center;margin-bottom:calc(59 * var(--u))}
.foundation__block{display:grid;grid-template-columns:calc(500 * var(--u)) 1fr;gap:calc(80 * var(--u));max-width:calc(1080 * var(--u));margin:0 auto}
.foundation__photo{aspect-ratio:500/712;overflow:hidden;background:#e5e2d9}
.foundation__photo img{width:100%;height:100%;object-fit:cover}
.foundation__text{display:flex;flex-direction:column;gap:calc(32 * var(--u))}
.foundation__figure{font-family:var(--serif);font-size:max(34px, calc(50 * var(--u)));line-height:1.1;color:var(--ink);margin-top:0}
.foundation__thumb{width:calc(139 * var(--u));height:calc(114 * var(--u));object-fit:cover;margin-top:calc(-8 * var(--u))}
.foundation .cta-row{margin-top:calc(59 * var(--u))}

/* ============================================================ NEWS */
.news{background:var(--cream-2);padding:var(--section-top) var(--side) var(--section-bottom);display:flex;flex-direction:column;align-items:center}
.news .eyebrow{width:100%}
.news__feature{width:100%;max-width:none;overflow:hidden;background:#e5e2d9;height:min(calc(var(--content-w) / 2), 72svh)}
.news__feature img{width:100%;height:100%;object-fit:cover}
.news__quote{max-width:calc(957 * var(--u));margin:max(21px, calc(30 * var(--u))) 0}
.news__quote p{font-family:var(--serif);font-size:max(34px, calc(64 * var(--u)));line-height:1.25;text-align:center;color:var(--muted);text-wrap:balance}
.news__sub{max-width:calc(500 * var(--u));text-align:center;font-size:max(18px, calc(18 * var(--u)));line-height:1.4;color:var(--muted)}
.news__more{display:inline-block;margin-top:max(16px, calc(22 * var(--u)));font-size:max(13px, calc(13 * var(--u)));font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--green);border-bottom:1px solid transparent}
.news__more:hover{border-bottom-color:currentColor}

/* ============================================================ CONTACT */
.contact{background:var(--cream);padding:calc(140 * var(--u)) var(--side);display:flex;flex-direction:column;align-items:center;gap:calc(64 * var(--u))}
.contact__title{text-align:center;margin-bottom:max(14px, calc(20 * var(--u)))}
.contact__sub{max-width:calc(640 * var(--u));text-align:center;font-size:max(18px, calc(18 * var(--u)));line-height:1.6;color:var(--muted);margin-top:calc(-44 * var(--u))}
.inquiry{width:min(100%,calc(800 * var(--u)));display:flex;flex-direction:column;align-items:center}
.inquiry__categories{display:grid;grid-template-columns:repeat(3,1fr);gap:max(12px, calc(16 * var(--u)));width:100%}
.category{position:relative;display:flex;align-items:center;justify-content:center;height:auto;padding:max(14px, calc(20 * var(--u))) max(17px, calc(24 * var(--u)));border:1px solid var(--green);border-radius:2px;color:var(--green);font-size:max(14px, calc(14 * var(--u)));font-weight:500;text-align:center;cursor:pointer;transition:background-color 160ms var(--ease),color 160ms var(--ease);min-height:max(52px, calc(64 * var(--u)))}
.category input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.category:hover{background:rgba(22,114,57,.06)}
.category:has(input:checked){background:var(--green);color:#fff}
.category:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:3px}
.inquiry__fields{display:grid;grid-template-columns:1fr 1fr;gap:max(12px, calc(16 * var(--u))) max(17px, calc(24 * var(--u)));width:100%;margin-top:calc(40 * var(--u))}
.inquiry__fields[hidden]{display:none}
.field{display:flex;flex-direction:column;gap:6px}
.field--full{grid-column:1/-1}
.field label{font-size:max(12px, calc(12 * var(--u)));font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.field input,.field textarea{font:inherit;font-size:max(16px, calc(16 * var(--u)));color:var(--ink);background:#fff;border:1px solid var(--rule);border-radius:2px;padding:max(9px, calc(12 * var(--u))) max(10px, calc(14 * var(--u)))}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(22,114,57,.15)}
.field textarea{resize:vertical;min-height:max(120px, calc(140 * var(--u)))}
.inquiry .cta-row{margin-top:calc(64 * var(--u))}
.inquiry [hidden]{display:none}

/* ============================================================ FOOTER */
.footer{background:var(--forest);color:#fff;padding:calc(80 * var(--u)) var(--side) calc(64 * var(--u));display:flex;flex-direction:column;gap:calc(64 * var(--u))}
.footer__rule{border:0;border-top:1px solid rgba(255,255,255,.35)}
.footer__top{display:grid;grid-template-columns:calc(240 * var(--u)) 1fr;gap:0 calc(120 * var(--u));max-width:none;width:100%;margin:0 auto;align-items:start}
.footer__brand{display:flex;flex-direction:column;align-items:center;width:max(140px, calc(196 * var(--u)));color:#fff;padding-top:max(12px, calc(16 * var(--u)))}
.footer__brand .wordmark{margin-top:-4px}
.footer__nav{display:flex;gap:calc(40 * var(--u)) calc(56 * var(--u));flex-wrap:wrap}
.footer__col{display:flex;flex-direction:column;gap:max(9px, calc(12 * var(--u)))}
.footer__label{font-size:max(12px, calc(12 * var(--u)));font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.footer__col a{font-size:max(14px, calc(14 * var(--u)));line-height:1.4;opacity:.92}
.footer__col a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
.footer__bottom{display:flex;justify-content:space-between;gap:max(12px, calc(16 * var(--u)));flex-wrap:wrap;max-width:none;width:100%;margin:0 auto;font-family:var(--mono);font-size:max(12px, calc(12 * var(--u)));text-transform:uppercase}
.footer__bottom p:first-child{text-transform:none}

/* ============================================================ RESPONSIVE */
/* Only layout changes live here (columns, stacking, crops): every size already follows the viewport through --u. */
@media (max-width:1023.98px){
  .man__image{width:min(100%, calc(80svh * 5 / 4))}
}
@media (max-width:767.98px){
  .brand-grid{grid-template-columns:1fr}
  .foundation__block{grid-template-columns:1fr}
  .foundation__photo{max-width:calc(500 * var(--u))}
  .footer__top{grid-template-columns:1fr;gap:calc(48 * var(--u))}
  .footer__nav{gap:calc(40 * var(--u)) calc(56 * var(--u))}
  .inquiry__categories{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:639.98px){
  .man__image{width:min(100%, calc(85svh * 4 / 5));aspect-ratio:4 / 5}
  .rolex__hero,.news__feature{height:calc(var(--content-w) * 3 / 4)}
  .design__continents{justify-content:flex-start;row-gap:8px}
  .design__continents .sep{padding:0 6px}
  .carousel__arrow--prev{left:8px}
  .carousel__arrow--next{right:8px}
  .stats{flex-direction:column;gap:8px}
  .stat{padding:12px}
  .inquiry__fields{grid-template-columns:1fr}
  .footer__nav{flex-direction:column;gap:32px}
}
@media (max-width:479.98px){
  .inquiry__categories{grid-template-columns:1fr}
}

/* ============================================================
   INTERIOR PAGES
   Shared components for every page under /about-jack, /the-company,
   /news, /contact, legal and articles. Generated by scripts/build.py.
   ============================================================ */

/* ---------- Header on interior pages ---------- */
.interior .site-head{background:var(--cream)}

/* ---------- Page head (Figma: section links, serif title, optional contained image) ---------- */
.page-head{background:var(--cream);text-align:center;padding:calc(50 * var(--u)) var(--side) 0}
.page-head__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:max(6px, calc(8 * var(--u))) calc(48 * var(--u));margin:0;font-family:var(--mono);font-weight:500;font-size:max(12px, calc(12 * var(--u)));letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.page-head__nav a{color:inherit;white-space:nowrap}
.page-head__nav a:hover{color:var(--green)}
.page-head__nav a[aria-current="page"]{font-weight:700;color:var(--green)}
.page-head__title{font-family:var(--serif);font-weight:400;font-size:max(52px, calc(100 * var(--u)));line-height:1.2;letter-spacing:-.005em;color:var(--green);margin:calc(85 * var(--u)) auto 0;max-width:16ch;text-wrap:balance}
.page-head__title--wide{max-width:none}
.page-head__title--article{font-size:max(34px, calc(64 * var(--u)));line-height:1.1;max-width:20ch}
.page-head__media{max-width:none;margin:calc(87 * var(--u)) auto 0;position:relative;overflow:hidden;background:var(--cream-2);height:min(calc(var(--content-w) / 2), 72svh)}
.page-head__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.page-head__media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.25);pointer-events:none}
.page-head__media--signature{display:grid;place-items:center;background:var(--gold)}
.page-head__media--signature::after{content:none}
.page-head__media--signature img{width:58.85%;height:auto;max-height:none;object-fit:contain}
/* Article head (Figma "section-hero" 389:5787): "News" above, the headline and date line left-aligned, then the photo */
.article-head{max-width:calc(1092 * var(--u));margin:calc(44 * var(--u)) auto 0;text-align:left}
.article-head__title{font-family:var(--serif);font-weight:400;font-size:max(34px, calc(64 * var(--u)));line-height:1.2;letter-spacing:-.005em;color:var(--green);text-wrap:pretty}
.article-head__meta{margin:calc(40 * var(--u)) 0 0;font-size:max(18px, calc(18 * var(--u)));line-height:1.2;text-transform:uppercase;color:var(--muted)}
.page-head__media--article{margin-top:calc(50 * var(--u));height:min(calc(var(--content-w) * 9 / 16), 70svh)}
.page-head__media--article::after{content:none}
.page-head__media--article img{object-fit:cover;object-position:center 30%}
.page-head__media--article-contain{display:grid;place-items:center;padding:calc(60 * var(--u));height:auto}
.page-head__media--article-contain img{width:auto;max-width:100%;max-height:min(calc(843 * var(--u)), 70svh);aspect-ratio:auto;object-fit:contain;height:auto}

/* ---------- Lede: statement + body under the title ---------- */
.lede{max-width:calc(calc(1092 * var(--u)) + 2 * var(--side));margin:0 auto;padding:calc(40 * var(--u)) var(--side) 0;text-align:left}
.page-head--media+.lede{padding-top:calc(119 * var(--u))}
.lede__statement,.flow>.statement{font-family:var(--serif);font-weight:400;font-size:max(34px, calc(64 * var(--u)));line-height:1.2;color:var(--green);letter-spacing:-.005em;text-wrap:pretty;margin:0 0 calc(40 * var(--u))}
.lede p,.lede li{font-size:max(16px, calc(16 * var(--u)));line-height:1.6;color:var(--muted)}
.lede p{margin-bottom:max(16px, calc(22 * var(--u)))}
.lede ul{margin:0 0 max(16px, calc(22 * var(--u))) max(14px, calc(20 * var(--u)))}
.lede strong{color:var(--ink)}
.lede p.lede__label{margin-bottom:0}
.lede .lede__list{list-style:none;margin:0 0 max(16px, calc(22 * var(--u)));padding:0}
.lede .lede__list li{margin:0}
.lede .cta-row,.lede .cta-row--left{justify-content:flex-start;margin-top:max(12px, calc(16 * var(--u)))}
.lede>.btn{margin-top:max(6px, calc(8 * var(--u)))}
.lede__quote{margin:0 0 calc(40 * var(--u))}
.lede__quote blockquote{margin:0}
.lede__quote .lede__statement{margin-bottom:max(14px, calc(20 * var(--u)))}
.lede__cite{font-family:var(--mono);font-weight:500;font-size:max(14px, calc(14 * var(--u)));letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.lede__cite::before{content:"— "}
.lede+.flow{padding-top:calc(100 * var(--u))}

/* ---------- Flow container (page body) ---------- */
.flow{max-width:none;margin:0 auto;padding:calc(96 * var(--u)) var(--side)}
.flow--narrow{max-width:calc(calc(1092 * var(--u)) + 2 * var(--side))}
.flow--wide{max-width:none;padding-left:var(--side);padding-right:var(--side)}
.flow>p,.flow>ul,.flow>ol,.flow>h2,.flow>h3,.flow>h4,.flow>h5,.flow>h6,.flow>blockquote,.flow>.eyebrow,.flow>.cta-row--left,.flow>audio,.flow>.statement{max-width:calc(1092 * var(--u));margin-left:auto;margin-right:auto}
.flow p,.flow li{font-size:max(16px, calc(16 * var(--u)));line-height:1.6;color:var(--muted)}
.flow p{margin-bottom:max(16px, calc(22 * var(--u)))}
.flow ul,.flow ol{margin:0 0 max(17px, calc(24 * var(--u))) max(16px, calc(22 * var(--u)))}
.flow li{margin-bottom:6px}
.flow li::marker{color:var(--green)}
.flow h2{font-family:var(--serif);font-weight:400;font-size:max(30px, calc(44 * var(--u)));line-height:1.15;color:var(--green);margin:calc(56 * var(--u)) auto max(14px, calc(20 * var(--u)))}
.flow h3{font-family:var(--serif);font-weight:400;font-size:max(24px, calc(32 * var(--u)));line-height:1.2;color:var(--ink);margin:calc(32 * var(--u)) auto max(10px, calc(14 * var(--u)))}
.flow h4,.flow h5,.flow h6{font-family:var(--sans);font-size:max(14px, calc(14 * var(--u)));font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green);margin:max(20px, calc(28 * var(--u))) auto max(9px, calc(12 * var(--u)))}
.flow strong{color:var(--ink)}
.flow p a:not(.btn),.flow li a,.flow td a,.flow figcaption a,.flow blockquote a{color:var(--green);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.flow p a:not(.btn):hover,.flow li a:hover{color:var(--forest)}
.flow>:first-child{margin-top:0}
.flow>*+*{margin-top:0}
.flow>.feature,.flow>.stat-band,.flow>.cta-image,.flow>.table-section,.flow>.stat-block,.flow>.cols,.flow>.gallery,.flow>.gcard-grid,.flow>.logos,.flow>.age-row,.flow>.band,.flow>.tl-year,.flow>.video-group{margin-top:calc(72 * var(--u));margin-bottom:calc(72 * var(--u))}
.flow>.feature:first-child,.flow>.stat-band:first-child,.flow>.gcard-grid:first-child,.flow>.cols:first-child{margin-top:0}
.eyebrow--left{text-align:left;margin-bottom:max(9px, calc(12 * var(--u)))}
.rule{border:0;border-top:1px solid var(--rule);margin:calc(48 * var(--u)) auto;max-width:calc(1092 * var(--u))}
.pull{max-width:calc(1092 * var(--u));margin:calc(40 * var(--u)) auto;padding-left:max(20px, calc(28 * var(--u)));border-left:3px solid var(--gold)}
.pull p{font-family:var(--serif);font-size:max(22px, calc(30 * var(--u)));line-height:1.35;color:var(--ink)}
.btn--outline-green{color:var(--green);border-color:var(--green);--btn-fill:var(--green);--btn-hover-text:#fff}
.btn--outline-gold{color:var(--gold);border-color:var(--gold);--btn-fill:var(--gold);--btn-hover-text:var(--forest-2)}
.btn--outline-gold:hover{background:var(--gold);color:var(--forest-2)}
.btn--outline-green:hover{background:var(--green);color:#fff}
.btn--gold{background:var(--gold);color:var(--forest-2)}
.btn--gold:hover{background:#ffd54a;color:var(--forest-2)}
.cta-row--left{justify-content:flex-start;gap:max(9px, calc(12 * var(--u)));flex-wrap:wrap;margin-top:max(6px, calc(8 * var(--u)));margin-bottom:max(17px, calc(24 * var(--u)))}
audio{width:100%;display:block;margin:0 auto max(17px, calc(24 * var(--u)))}

/* ---------- Figures, galleries, video ---------- */
.figure{margin:0 auto max(20px, calc(28 * var(--u)));max-width:none}
.figure img{width:100%;height:auto;background:#e5e2d9}
.figure figcaption,.feature__media figcaption,.stat-band__media figcaption,.band__caption,.age-card__media figcaption{margin-top:max(7px, calc(10 * var(--u)));font-family:var(--mono);font-size:max(11px, calc(11 * var(--u)));letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.flow--narrow .figure{max-width:calc(1092 * var(--u))}
.gallery{display:grid;gap:max(12px, calc(16 * var(--u)));grid-template-columns:repeat(3,1fr)}
.gallery--2{grid-template-columns:repeat(2,1fr)}
.gallery--4{grid-template-columns:repeat(4,1fr)}
.gallery .figure{margin:0}
.gallery .figure img{aspect-ratio:4/3;object-fit:cover}
.video{position:relative;aspect-ratio:16/9;background:#000;margin:0 auto max(20px, calc(28 * var(--u)));max-width:none}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-group{max-width:none;margin:0 auto}
.video-group__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:max(6px, calc(8 * var(--u))) max(14px, calc(20 * var(--u)));margin-bottom:max(17px, calc(24 * var(--u)))}
.video-group__head h2{margin:0}
.video-group__head .eyebrow{margin:0}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:max(17px, calc(24 * var(--u)))}
.video-card{margin:0}
.video-card .video{margin:0}
.video-card figcaption{margin-top:max(9px, calc(12 * var(--u)));font-size:max(15px, calc(15 * var(--u)));font-weight:600;color:var(--ink)}

/* ---------- Feature: heading over a photo + copy pair (Figma "manifesto") ---------- */
.feature{max-width:calc(1080 * var(--u));margin-left:auto;margin-right:auto}
.feature__head h2,.feature__head .statement{font-family:var(--serif);font-weight:400;font-size:max(34px, calc(64 * var(--u)));line-height:1.2;color:var(--green);margin:0 0 calc(67 * var(--u));max-width:none}
.feature__grid{display:grid;grid-template-columns:minmax(0,calc(500 * var(--u))) minmax(0,1fr);gap:calc(80 * var(--u));align-items:start}
.feature__media{margin:0}
.feature__media img{width:100%;height:auto;aspect-ratio:500/340;object-fit:cover;background:#e5e2d9}
.feature__copy p{font-size:max(18px, calc(18 * var(--u)));line-height:1.6}
.feature__copy h2:first-child{margin-top:0;font-size:max(28px, calc(40 * var(--u)))}
.feature__copy .stat-block{margin:0}
.feature__copy .cta-row,.feature__copy .cta-row--left{justify-content:flex-start;margin-top:max(6px, calc(8 * var(--u)))}
/* Development page: a property is a feature with a mono kicker over the title, a photo + copy pair (alternating sides),
   then a three-up gallery or a stat row. The milestones row sits between the lede and the first property. */
.flow--development{padding-top:calc(24 * var(--u))}
.dev-milestones{max-width:calc(1080 * var(--u));margin:0 auto}
.flow>.dev-milestones+.feature--property{margin-top:calc(140 * var(--u))}
.feature--property+.feature--property{margin-top:calc(160 * var(--u))}
.feature__kicker{font-family:var(--mono);font-weight:500;font-size:max(12px, calc(12 * var(--u)));letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 max(14px, calc(20 * var(--u)))}
.feature--property .feature__head h2{margin-bottom:calc(48 * var(--u))}
.feature--property .feature__media img{aspect-ratio:3/2}
.feature--property .feature__copy p{color:var(--muted)}
.feature--flip .feature__grid{grid-template-columns:minmax(0,1fr) minmax(0,calc(500 * var(--u)))}
.feature--flip .feature__media{order:2}
.feature__gallery{margin-top:calc(56 * var(--u))}
.feature__gallery .figure img{aspect-ratio:3/2}
.feature__stats{margin-top:calc(56 * var(--u))}

/* ---------- Band: image with caption / overlaid content ---------- */
.band{position:relative;margin:0 auto;max-width:none;overflow:hidden}
.band img{width:100%;height:auto;object-fit:cover;background:#e5e2d9}
.band__body{position:absolute;left:0;right:0;bottom:0;padding:calc(32 * var(--u));background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,40,20,.75));color:#fff}
.band__body h2,.band__body h3{color:#fff;margin:0 0 max(9px, calc(12 * var(--u)))}
.band .band__caption{position:absolute;top:calc(16 * var(--u));right:calc(16 * var(--u));margin:0;color:rgba(255,255,255,.85);background:rgba(0,0,0,.35);padding:4px max(6px, calc(8 * var(--u)))}
.band__body .info-block{color:#fff}
.info-block__title{font-family:var(--serif);font-size:max(24px, calc(34 * var(--u)));line-height:1.15;margin-bottom:6px}
.info-block__years{font-family:var(--mono);font-size:max(13px, calc(13 * var(--u)));letter-spacing:.06em;color:var(--gold);text-transform:uppercase}
.band--age{margin-top:calc(72 * var(--u))}
.band--age .band__body{background:none;bottom:auto;top:0;padding:max(17px, calc(24 * var(--u)))}
.cols{display:grid;gap:calc(32 * var(--u));max-width:none;margin-left:auto;margin-right:auto;align-items:start}
.cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cols .figure,.cols .tile,.cols .band{margin:0}
.cols p:last-child{margin-bottom:0}
.cols .figure img{aspect-ratio:auto}

/* ---------- Green card (Figma brand-card): image, serif title, copy, gold outline button ---------- */
.gcard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(40 * var(--u));max-width:none;margin-left:auto;margin-right:auto}
.gcard-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(32 * var(--u));max-width:none}
.gcard{display:flex;flex-direction:column;background:var(--green);color:#fff;text-align:center;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
a.gcard:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.16)}
.gcard__media{display:block;aspect-ratio:580/397;overflow:hidden;background:var(--forest-2)}
.gcard__media img{width:100%;height:100%;object-fit:cover;object-position:center 20%;transition:transform 600ms var(--ease)}
.gcard__media--portrait img{object-position:center}
.gcard-grid--people{grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(24 * var(--u))}
.gcard-grid--people .gcard__media{aspect-ratio:4/5}
.gcard-grid--people .gcard__body{padding:calc(36 * var(--u)) max(16px, calc(20 * var(--u))) calc(40 * var(--u));gap:4px}
.gcard-grid--people .gcard .gcard__title{font-size:max(22px, calc(28 * var(--u)))}
.gcard-grid--people .gcard .gcard__text{font-size:max(14px, calc(14 * var(--u)))}
.gcard-grid--people .gcard__bio-body{display:none}
.bio{border:0;padding:0;margin:auto;background:var(--cream);color:var(--ink);width:min(calc(100% - 32px), calc(1040 * var(--u)));max-height:min(90svh, calc(100% - 32px));overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.bio::backdrop{background:rgba(0,46,28,.62)}
.bio__inner{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
.bio__media{background:var(--forest-2);aspect-ratio:4/5}
.bio__media img{width:100%;height:100%;object-fit:cover;display:block}
.bio__text{padding:calc(56 * var(--u)) calc(56 * var(--u)) calc(48 * var(--u))}
.bio__text .bio__name{font-family:var(--serif);font-weight:400;font-size:max(30px, calc(40 * var(--u)));line-height:1.15;color:var(--green);margin:0 0 6px}
.bio__text .bio__role{font-family:var(--mono);font-weight:500;font-size:max(12px, calc(12 * var(--u)));letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 calc(28 * var(--u))}
.bio__text .gcard__bio-body{display:block;max-width:none;margin:0;text-align:left}
.bio__text p{font-size:max(15px, calc(16 * var(--u)));line-height:1.6;color:var(--ink);margin:0 0 max(10px, calc(14 * var(--u)))}
.bio__text p:last-child{margin-bottom:0}
.bio__close{position:absolute;top:8px;right:8px;width:40px;height:40px;border:0;border-radius:999px;background:rgba(249,248,243,.9);color:var(--ink);font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center}
.bio__close:hover{background:var(--green);color:#fff}
a.gcard:hover .gcard__media img{transform:scale(1.03)}
.gcard__body{flex:1;display:flex;flex-direction:column;align-items:center;gap:max(6px, calc(8 * var(--u)));padding:calc(76 * var(--u)) calc(60 * var(--u)) calc(72 * var(--u))}
.gcard .gcard__title{font-family:var(--serif);font-weight:400;font-size:max(30px, calc(40 * var(--u)));line-height:1.2;color:#fff;margin:0}
.gcard .gcard__text{font-size:max(16px, calc(16 * var(--u)));line-height:1.6;color:#fff;max-width:calc(450 * var(--u));margin:0}
.gcard__body .btn{margin-top:max(6px, calc(8 * var(--u)))}
.gcard-grid--3 .gcard__body{padding:calc(36 * var(--u)) max(20px, calc(28 * var(--u))) calc(40 * var(--u));gap:6px}
.gcard-grid--3 .gcard .gcard__title{font-size:max(24px, calc(30 * var(--u)))}
.gcard-grid--3 .gcard .gcard__text{font-size:max(14px, calc(14 * var(--u)))}
.gcard-grid--3 .gcard__media{aspect-ratio:16/9}
/* leadership: the Bio button expands the biography inside the card */
.gcard__bio{width:100%;margin-top:max(6px, calc(8 * var(--u)))}
.gcard__bio summary{display:inline-flex;list-style:none;cursor:pointer}
.gcard__bio summary::-webkit-details-marker{display:none}
.gcard__bio[open] summary{background:var(--gold);color:var(--forest-2)}
.gcard__bio-body{max-width:calc(450 * var(--u));margin:max(17px, calc(24 * var(--u))) auto 0;text-align:left}
.gcard .gcard__bio-body p{font-size:max(15px, calc(15 * var(--u)));line-height:1.6;color:rgba(255,255,255,.9);margin-bottom:max(9px, calc(12 * var(--u)))}
.gcard__bio-body p:last-child{margin-bottom:0}
.partners{background:var(--cream-2);padding:calc(104 * var(--u)) var(--side)}
.partners__inner{max-width:none;margin:0 auto}
.partners__title{text-align:center;margin-bottom:calc(56 * var(--u))}

/* ---------- Logo grid ---------- */
.logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:max(12px, calc(16 * var(--u)));max-width:none;margin-left:auto;margin-right:auto}
/* every tile is exactly 3:2 whatever the logo's shape: the height comes from the ::before spacer alone
   (a square logo can't stretch it, and it needs no aspect-ratio support), the logo sits absolutely inside */
.logos__tile{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;padding:0;background:#fff;border:1px solid var(--rule);transition:border-color 160ms}
.logos__tile::before{content:"";display:block;width:0;padding-top:66.667%}
a.logos__tile:hover{border-color:var(--green)}
.logos__tile img{position:absolute;left:8%;top:8%;width:84%;height:84%;object-fit:contain}
.logos__text{padding:0 max(12px, calc(16 * var(--u)));font-family:var(--serif);font-size:max(14px, calc(24 * var(--u)));color:var(--green);text-align:center}
.logos--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.logos--3 .logos__text{font-size:max(24px, calc(32 * var(--u)))}
/* Partnerships (Figma 352:2): borderless cream tiles in the text column, marks in grey until hovered; the six
   featured partners sit three across so the grid fills two even rows with no blank tiles */
.logos--tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:max(7px, calc(9 * var(--u)))}
.logos--tiles .logos__tile{background:var(--cream-2);border:0}
.logos--tiles .logos__tile::before{padding-top:98.4%}
.logos--tiles .logos__tile img{inset:0;margin:auto;width:auto;height:auto;max-width:70%;max-height:30%;filter:grayscale(1);opacity:.75;transition:filter 160ms,opacity 160ms}
.logos--tiles a.logos__tile:hover img,.logos--tiles a.logos__tile:focus-visible img{filter:none;opacity:1}
.logos--tiles .logos__text{font-size:max(20px, calc(28 * var(--u)));color:var(--muted);opacity:.9}
.lede--partners{padding-bottom:calc(100 * var(--u))}
.lede--partners p{margin-bottom:0}
.lede--partners .logos{max-width:none;margin-top:calc(40 * var(--u))}

/* ---------- Stats ---------- */
.stats--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:max(9px, calc(12 * var(--u)));margin-top:0}
.stats--grid .stat dt{font-size:max(48px, calc(84 * var(--u)))}
.stat-block{max-width:none;margin-left:auto;margin-right:auto}
.stat-block__title{text-align:center;margin:0 0 max(17px, calc(24 * var(--u)))!important}
.stat-band{max-width:none;margin-left:auto;margin-right:auto}
.stat-band__media{margin:0 0 max(20px, calc(28 * var(--u)))}
.stat-band__media img{width:100%;height:auto;max-height:calc(640 * var(--u));object-fit:cover;object-position:center 30%;background:#e5e2d9}
.stat-band__title{text-align:center;margin:0 0 max(17px, calc(24 * var(--u)))!important}
.stat-band__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:max(9px, calc(12 * var(--u)))}
.stat-band__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat-band__grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat-band__grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.stat-band__grid--6{grid-template-columns:repeat(3,minmax(0,1fr))}
.stat-band__item{padding:max(17px, calc(24 * var(--u)));background:#fff;border:1px solid var(--rule);text-align:center}
.stat-band__value{font-family:var(--serif);font-size:max(40px, calc(64 * var(--u)));line-height:1;color:var(--green);margin-bottom:max(7px, calc(10 * var(--u)))}
.stat-band__label{overflow-wrap:anywhere;font-size:max(12px, calc(12 * var(--u)));font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);line-height:1.5;margin:0}
.stat-band__label strong{color:var(--green)}
.stat-band__label--top{color:var(--green);margin-bottom:max(7px, calc(10 * var(--u)))}
.stat-band__text{font-family:var(--serif);font-size:max(20px, calc(24 * var(--u)));line-height:1.3;color:var(--ink);margin:0}
.stat-band__text strong{font-family:var(--sans);font-weight:700;font-size:max(12px, calc(12 * var(--u)));letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;margin-top:6px}
.stat-band .cta-row{margin-top:calc(32 * var(--u))}

/* ---------- Data tables ---------- */
.table-section{max-width:none;margin-left:auto;margin-right:auto}
.table-section__title{text-align:center;margin:0 0 max(17px, calc(24 * var(--u)))!important}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);background:#fff}
.data-table{width:100%;border-collapse:collapse;font-size:max(14px, calc(14 * var(--u)));line-height:1.4}
.data-table th,.data-table td{padding:max(9px, calc(12 * var(--u))) max(12px, calc(16 * var(--u)));text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap}
.data-table thead th{font-family:var(--mono);font-size:max(11px, calc(11 * var(--u)));font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--green);background:var(--cream);position:sticky;top:0}
.data-table tbody th{font-weight:700;color:var(--ink);background:var(--cream)}
.data-table tbody td{color:var(--muted)}
.data-table tbody tr:nth-child(even) td{background:#fbfaf7}
.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}
.data-table--compact th,.data-table--compact td{padding:max(7px, calc(9 * var(--u))) max(9px, calc(12 * var(--u)));font-size:max(13px, calc(13 * var(--u)));white-space:normal}
.data-table--compact td:nth-child(3){white-space:nowrap}

/* ---------- Amateur highlights ---------- */
.age-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(32 * var(--u));max-width:none;margin-left:auto;margin-right:auto;align-items:start}
.age-row:has(> .age-card:only-child){grid-template-columns:1fr}
.age-card{background:#fff;border:1px solid var(--rule)}
.age-card__media{margin:0;padding:0}
.age-card__media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center 25%}
.age-card__media figcaption{padding:max(7px, calc(10 * var(--u))) max(17px, calc(24 * var(--u))) 0}
.age-card__body{padding:max(14px, calc(20 * var(--u))) max(17px, calc(24 * var(--u))) max(20px, calc(28 * var(--u)))}
.age-badge{display:inline-flex;flex-direction:column;align-items:center;font-family:var(--serif);font-size:max(26px, calc(44 * var(--u)));line-height:1;color:var(--green);margin-bottom:max(12px, calc(16 * var(--u)))}
.age-badge span{font-family:var(--mono);font-size:max(10px, calc(10 * var(--u)));letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.band--age .age-badge{color:#fff}
.band--age .age-badge span{color:var(--gold)}
.age-card__item{padding:max(10px, calc(14 * var(--u))) 0;border-top:1px solid var(--rule)}
.age-card__item:first-child{border-top:0;padding-top:0}
.age-card__title{font-family:var(--serif);font-size:max(14px, calc(24 * var(--u)));line-height:1.15;color:var(--ink);margin:0 0 6px}
.age-card__desc{font-size:max(13px, calc(13 * var(--u)));line-height:1.5;color:var(--muted);margin:0}
.age-card__desc strong{color:var(--green);letter-spacing:.06em;text-transform:uppercase;font-size:max(11px, calc(11 * var(--u)))}

/* ---------- Playing career timeline ---------- */
/* Playing Career (Figma 353:102): sticky decade nav, then a year section per season */
.decades{position:sticky;top:0;z-index:20;background:var(--cream);margin-top:calc(151 * var(--u))}
.decades__inner{max-width:none;margin:0 auto;padding:0 var(--side);display:flex;align-items:center;overflow-x:auto;scrollbar-width:none}
/* centred with auto margins rather than justify-content, so a row wider than the screen scrolls from its start */
.decades a:first-child{margin-left:auto}
.decades a:last-child{margin-right:auto}
.decades a{flex:0 0 auto;padding:max(13px, calc(18 * var(--u))) 0;font-family:var(--mono);font-size:max(18px, calc(18 * var(--u)));line-height:1.2;color:var(--muted)}
.decades a+a::before{content:"|";display:inline-block;margin:0 calc(72 * var(--u));color:#c4c4c4;font-weight:400}
.decades a:hover,.decades a.is-active{color:var(--green)}
.decades a.is-active{font-weight:700}
.decade-anchor{display:block;height:0;scroll-margin-top:calc(64 * var(--u))}
.flow--timeline{max-width:none;padding:0 var(--side)}
.flow>.tl-year{margin:0 auto}
.tl-year{display:flex;flex-direction:column;gap:calc(90 * var(--u));padding:calc(100 * var(--u)) 0 calc(80 * var(--u));scroll-margin-top:calc(64 * var(--u))}
.tl-year__head{display:flex;flex-direction:column;gap:calc(32 * var(--u))}
.flow .tl-year__num{font-family:var(--serif);font-weight:400;font-size:max(64px, calc(96 * var(--u)));line-height:1.2;color:var(--green);margin:0!important}
.flow .tl-year__name{max-width:calc(1036 * var(--u));margin:0;font-size:max(18px, calc(24 * var(--u)));line-height:1.2;text-transform:uppercase;color:var(--green)}
.tl-year__media{margin:0}
.tl-year__media img{display:block;width:100%;height:auto;aspect-ratio:1201/406;object-fit:cover;object-position:center 30%;background:var(--cream-2)}
.flow .tl-stats__tour{font-family:var(--sans);font-size:max(20px, calc(24 * var(--u)));font-weight:700;line-height:1.2;letter-spacing:0;text-transform:uppercase;color:var(--muted);margin:0 0 calc(50 * var(--u))}
.tl-stats+.tl-stats{margin-top:calc(-40 * var(--u))}
.tl-stats dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.tl-stat{display:flex;flex-direction:column;gap:max(17px, calc(24 * var(--u)));align-items:center;min-height:calc(175 * var(--u));text-align:center;color:var(--green)}
.tl-stat+.tl-stat{border-left:1px solid #c4c4c4}
.tl-stat dt{font-size:max(16px, calc(16 * var(--u)));line-height:1.2;text-transform:uppercase}
.tl-stat dd{margin:0;padding:0 max(6px, calc(8 * var(--u)));font-family:var(--serif);font-size:max(44px, calc(100 * var(--u)));line-height:1.2;white-space:nowrap}
.tl-stat dd small{font-size:.4em}
.tl-stat dd abbr{text-decoration:none;cursor:help}
.tl-majors{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tl-majors table{width:100%;min-width:640px;border-collapse:collapse;table-layout:fixed;color:var(--muted);text-align:left}
.tl-majors th,.tl-majors td{height:calc(64 * var(--u));padding:0 max(12px, calc(16 * var(--u))) 0 0;border-bottom:1px solid #c4c4c4;vertical-align:middle}
.tl-majors th{font-size:max(14px, calc(14 * var(--u)));font-weight:700;line-height:1.2;text-transform:uppercase}
.tl-majors td{font-size:max(16px, calc(16 * var(--u)));line-height:1.4}
.tl-majors td:nth-child(3){white-space:nowrap}
.tl-highlights{color:var(--muted);font-size:max(16px, calc(16 * var(--u)));line-height:1.8}
.flow .tl-highlights__label{font-weight:700;text-transform:uppercase;margin:0;color:var(--muted);font-size:max(16px, calc(16 * var(--u)));line-height:1.8}
.flow .tl-highlights ul{list-style:none;margin:0;padding:0}
.flow .tl-highlights li{margin:0;font-size:max(16px, calc(16 * var(--u)));line-height:1.8;color:var(--muted)}

/* ---------- Professional Stats (Figma 357:600) ---------- */
.lede--wide{max-width:none}
.lede--wide p{font-size:max(18px, calc(24 * var(--u)));line-height:1.6;margin:calc(77 * var(--u)) 0 0}
.lede--wide+.pro{margin-top:calc(90 * var(--u))}
.pro__inner{max-width:none;margin:0 auto;padding:0 var(--side)}
.pro{background:var(--cream-2);padding:calc(71 * var(--u)) 0 calc(80 * var(--u));text-align:center}
.pro--light{background:var(--cream)}
.pro-note{max-width:calc(760 * var(--u));margin:0 auto;padding:calc(24 * var(--u)) var(--side) calc(64 * var(--u));text-align:center;font-size:max(13px, calc(14 * var(--u)));line-height:1.6;color:var(--muted)}
.pro__title{font-family:var(--serif);font-weight:400;font-size:max(44px, calc(72 * var(--u)));line-height:1.2;color:var(--green);margin:calc(34 * var(--u)) 0 calc(56 * var(--u));text-wrap:balance}
.pro__sub{display:block;margin-top:max(12px, calc(16 * var(--u)));font-family:var(--sans);font-weight:600;font-size:max(18px, calc(24 * var(--u)));line-height:1.2}
.pstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(64 * var(--u)) max(17px, calc(24 * var(--u)));margin:0;color:var(--green)}
.pstat{display:flex;flex-direction:column-reverse;align-items:center;justify-content:flex-end;gap:max(6px, calc(8 * var(--u)));min-width:0;padding:0 max(9px, calc(12 * var(--u)))}
.pstat dd{margin:0;font-family:var(--serif);font-size:max(64px, calc(128 * var(--u)));line-height:1;white-space:nowrap}
.pstat dt{font-size:max(12px, calc(12 * var(--u)));font-weight:500;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}
.pstats--years .pstat dd{font-size:max(32px, calc(72 * var(--u)));white-space:normal;text-wrap:balance}
.pro__photo{margin:calc(92 * var(--u)) 0 0}
.pro__photo img{display:block;width:100%;height:auto;aspect-ratio:1201/843;object-fit:cover}
.pro-band{background:var(--forest);color:#fff;text-align:center;padding:calc(130 * var(--u)) 0 calc(104 * var(--u))}
.pro-band .pro__title{color:#fff;margin:0 0 calc(68 * var(--u))}
.pro-band .pstats{color:#fff}
.pro-band .pstat dd{color:var(--gold)}
.pstats--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pstats--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pro-band .cta-row{margin:calc(80 * var(--u)) 0 0;justify-content:center}
.pro-band .btn--solid{font-size:max(14px, calc(14 * var(--u)));letter-spacing:.08em}
.pro-band .btn--solid:hover{background:var(--forest-2)}
.pro-table{padding:calc(120 * var(--u)) 0 calc(130 * var(--u))}
.pro-table .pro__title{margin-top:0;text-align:center}
.pro-table__wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pro-table table{width:100%;min-width:640px;border-collapse:collapse;table-layout:fixed;font-size:max(12px, calc(12 * var(--u)));line-height:1.33;color:#2e2e29}
.pro-table th,.pro-table td{height:max(40px, calc(50 * var(--u)));padding:0 max(12px, calc(16 * var(--u)));text-align:center;font-weight:400;border-bottom:1px solid rgba(214,209,196,.55)}
.pro-table th:first-child,.pro-table td:first-child{text-align:left}
.pro-table thead th{height:max(40px, calc(47 * var(--u)));background:var(--green);color:#faf7f0;font-size:max(13px, calc(13 * var(--u)));line-height:1.4;border-bottom:0}
.pro-table tbody tr:nth-child(odd){background:#f2f0e8}
.pro-table tbody tr:nth-child(even){background:#fff}
.pro-cards{max-width:none;margin:0 auto;padding:calc(72 * var(--u)) var(--side) calc(125 * var(--u))}
.pro-cards .gcard-grid{max-width:none}

/* ---------- Amateur Highlights (Figma 370:2663) ---------- */
.page-head__media--tall{height:min(calc(var(--content-w) * 9 / 16), 70svh)}
.page-head__media--tall img{object-position:center 40%}
/* Rolex page hero: shown like the homepage Rolex band (.rolex__hero). Jack's face and the watch sit at the top and bottom
   of the frame, so above phone width it keeps the photo's own proportions and narrows on short viewports instead of
   cropping; phones take the same 4:3 crop as the homepage. */
.page-head__media--whole img{object-position:center}
@media (min-width:640px){.page-head__media.page-head__media--whole{width:min(100%, calc(72svh * 2000 / 1283));height:auto;aspect-ratio:2000 / 1283}}
.lede+.age-grid{margin-top:calc(116 * var(--u))}
.age-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(124 * var(--u)) calc(40 * var(--u));max-width:none;margin:0 auto;padding:0 var(--side)}
.age-gcard{display:flex;flex-direction:column;background:var(--green);color:#fff}
.age-gcard__media{margin:0;aspect-ratio:580/397;overflow:hidden;background:var(--forest-2)}
.age-gcard__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.age-gcard__body{flex:1;padding:calc(37 * var(--u)) calc(60 * var(--u)) calc(64 * var(--u))}
.age-gcard--plain .age-gcard__body{display:flex;flex-direction:column;justify-content:center}
.age-gcard__title{font-family:var(--serif);font-weight:400;font-size:max(44px, calc(64 * var(--u)));line-height:1.2;text-align:center;color:#fff;margin:0 0 calc(42 * var(--u))}
.age-gcard ul{list-style:none;margin:0 auto;padding:0;max-width:calc(450 * var(--u));display:flex;flex-direction:column;gap:max(18px, calc(25.6 * var(--u)))}
.age-gcard li{font-size:max(16px, calc(16 * var(--u)));line-height:1.6}
.age-gcard li strong{display:block;font-weight:700;color:#fff}
.age-gcard li span{display:block}
.pro-table--amateur{padding-top:calc(124 * var(--u))}
.pro-table--amateur table{min-width:420px}

/* ---------- Awards & Honors (Figma 377:3517) ---------- */
.page-head__media--clear::after{content:none}
.award-band{background:var(--forest);color:#fff;text-align:center;padding:calc(130 * var(--u)) 0 calc(112 * var(--u))}
.award-band ul{list-style:none;margin:0 auto;padding:0;max-width:calc(960 * var(--u));display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.award-band li{display:flex;flex-direction:column;align-items:center;gap:max(17px, calc(24 * var(--u)));padding:0 max(12px, calc(16 * var(--u)))}
.award-band li+li{border-left:1px solid rgba(255,255,255,.5)}
.award-band h2{font-family:var(--serif);font-weight:400;font-size:max(34px, calc(48 * var(--u)));line-height:1;color:#fff;margin:0;text-wrap:balance}
.award-band p{margin:0;font-size:max(14px, calc(14 * var(--u)));line-height:1.2;color:#fff}
.award-band strong{font-weight:500}
.honors{background:var(--cream-2);text-align:center;padding:calc(120 * var(--u)) 0 calc(125 * var(--u))}
.honors .pro__title{margin-top:0}
.honors__sub{font-family:var(--sans);font-size:max(14px, calc(14 * var(--u)));font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin:0 0 max(14px, calc(20 * var(--u)))}
.honors ul{list-style:none;margin:0 auto;padding:0;max-width:calc(928 * var(--u));display:flex;flex-direction:column;gap:max(20px, calc(28 * var(--u)))}
.honors li{font-size:max(16px, calc(16 * var(--u)));line-height:1.5;color:var(--muted)}
.honors li strong{display:block;font-weight:700;color:var(--ink);margin-bottom:4px}
.honors li span{display:block}
.honors+.pro-cards{padding-top:calc(120 * var(--u))}

/* ---------- Jack Nicklaus Museum (Figma 380:5307) ---------- */
.page-head__media--flat::after{content:none}
.lede--wide .cta-row--left{margin-top:calc(32 * var(--u))}
.museum-photos{max-width:none;margin:0 auto;padding:calc(70 * var(--u)) var(--side) calc(125 * var(--u));display:flex;flex-direction:column;gap:calc(70 * var(--u))}
.museum-photos figure{margin:0}
.museum-photos img{display:block;width:100%;height:auto}

/* ---------- CTA bands ---------- */
.cta-image{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:calc(520 * var(--u));max-width:none;margin-left:auto;margin-right:auto;color:#fff;overflow:hidden;background:var(--forest)}
.cta-image img{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover}
.cta-image::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,40,20,.75))}
.cta-image__copy{padding:calc(56 * var(--u))}
.cta-image__copy .eyebrow{text-align:left;margin-bottom:max(9px, calc(12 * var(--u)))}
.cta-image__copy .display{color:#fff;margin:0 0 max(14px, calc(20 * var(--u)));max-width:14ch}
.contact--interior{background:var(--cream-3);padding:calc(140 * var(--u)) var(--side)}
.contact--interior .contact__sub{margin-top:calc(-44 * var(--u))}

/* ---------- News ---------- */
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(40 * var(--u)) calc(32 * var(--u));max-width:none;margin:0 auto}
.news-grid+.news-grid{margin-top:calc(64 * var(--u))}
.news-grid--lead{grid-template-columns:1fr}
.news-card{display:flex;flex-direction:column}
.news-card__media{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--cream-2)}
.news-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease)}
.news-card:hover .news-card__media img{transform:scale(1.03)}
.news-card__media--contain{background:#fff}
.news-card__media--contain img{object-fit:contain;padding:6%}
.news-card:hover .news-card__media--contain img{transform:none}
.news-card__empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--forest)}
.news-card__empty img{width:72px;height:72px;opacity:.9}
.news-card__body{padding:max(13px, calc(18 * var(--u))) 0 0}
.news-card__meta{font-family:var(--mono);font-size:max(11px, calc(11 * var(--u)));letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:max(7px, calc(10 * var(--u)))}
.news-card__meta a{color:var(--green)}
.news-card__meta .sep{padding:0 6px;color:var(--rule-light)}
.news-card__title{font-family:var(--serif);font-weight:400;font-size:max(22px, calc(26 * var(--u)));line-height:1.2;color:var(--ink)}
.news-card__title a:hover{color:var(--green)}
.news-card__excerpt{margin-top:max(9px, calc(12 * var(--u)));font-size:max(16px, calc(16 * var(--u)));line-height:1.6;color:var(--muted)}
.news-card--big{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:calc(40 * var(--u));align-items:center}
.news-card--big .news-card__media{aspect-ratio:16/10}
.news-card--big .news-card__title{font-size:max(30px, calc(48 * var(--u)));line-height:1.1;color:var(--green)}
.news-card--big .news-card__body{padding:0}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:calc(80 * var(--u))}
.pagination a{min-width:40px;padding:10px 12px;text-align:center;font-family:var(--mono);font-size:13px;border:1px solid var(--rule);color:var(--ink)}
.pagination a:hover{border-color:var(--green);color:var(--green)}
.pagination a[aria-current="page"]{background:var(--green);border-color:var(--green);color:#fff}
.pagination__arrow{text-transform:uppercase;letter-spacing:.06em}

/* ---------- Article (Figma 389:5805: serif statement, 18px copy at full content width, 40px pull quotes, photos beside the copy) ---------- */
.article{padding:0}
.article__body{padding:calc(90 * var(--u)) var(--side) 0;max-width:calc(calc(1092 * var(--u)) + 2 * var(--side));margin:0 auto}
.page-head:not(.page-head--media)+.article .article__body{padding-top:calc(60 * var(--u))}
.article__body::after{content:"";display:table;clear:both}
.article__body>p,.article__body>ul,.article__body>ol,.article__body>h2,.article__body>h3,.article__body>h4,.article__body>h5,.article__body>h6,.article__body>blockquote,.article__body>.statement,.article__body .figure,.article__body .video,.article__body .pull{max-width:none}
.article__body p,.article__body li{font-size:max(18px, calc(18 * var(--u)));line-height:1.6}
.article__body p{margin-bottom:max(20px, calc(28 * var(--u)))}
.article__body>.statement{margin-bottom:calc(49 * var(--u))}
.article__body blockquote{margin:calc(49 * var(--u)) 0;padding:0;border:0;font-size:max(26px, calc(40 * var(--u)));line-height:1.3;color:var(--muted)}
.article__body blockquote p{font-size:inherit;line-height:inherit;margin:0}
.article__body blockquote p+p{margin-top:.6em;font-size:max(17px, calc(20 * var(--u)));line-height:1.6}
.article__body blockquote em{font-style:normal}
.article__body blockquote cite{display:block;margin-top:.6em;font-style:normal;font-size:max(17px, calc(20 * var(--u)));line-height:1.6}
.article__body blockquote cite::before{content:"— "}
.article__body .figure{margin:0 0 max(20px, calc(28 * var(--u)))}
.article__body .figure img{background:var(--cream-2)}
.article__body .figure--left,.article__body .figure--right{width:min(calc(500 * var(--u)),42%);margin-top:6px}
.article__body .figure--left{float:left;margin-right:calc(80 * var(--u))}
.article__body .figure--right{float:right;margin-left:calc(80 * var(--u))}
.article__body>h2{margin-top:calc(56 * var(--u))}
.article__body>h4,.article__body>h5,.article__body>h6{font-size:max(18px, calc(18 * var(--u)));letter-spacing:0;color:var(--muted)}

/* ---------- Contact page ---------- */
.offices{background:var(--cream-2);padding:calc(96 * var(--u)) var(--side)}
.offices__inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(40 * var(--u));max-width:none;margin:0 auto}
.office__name{font-family:var(--serif);font-size:max(17px, calc(28 * var(--u)));line-height:1.15;color:var(--ink);margin-bottom:max(9px, calc(12 * var(--u)))}
.office__address,.office__text{font-style:normal;font-size:max(16px, calc(16 * var(--u)));line-height:1.6;color:var(--muted);margin-bottom:max(14px, calc(20 * var(--u)))}

/* ---------- Legal ---------- */
.legal p,.legal li{font-size:max(16px, calc(16 * var(--u)));line-height:1.7;overflow-wrap:break-word}
.legal h2,.legal h3{font-size:max(22px, calc(28 * var(--u)));color:var(--ink);margin-top:calc(40 * var(--u))}
.legal h3 strong{font-weight:400}
.legal .data-table th,.legal .data-table td{white-space:normal}
.cookie-list:empty{display:none}
.footer__legal{display:flex;gap:max(14px, calc(20 * var(--u)));flex-wrap:wrap}
.footer__legal a{opacity:.85}
.footer__legal a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}

/* ---------- Responsive ---------- */
@media (max-width:1023.98px){
  .page-head__media,.page-head__media--article,.page-head__media--tall{height:min(calc(var(--content-w) * 2 / 3), 72svh)}
  .page-head__media--signature{height:calc(var(--content-w) / 2)}
  .page-head__media--article-contain{height:auto}
  .logos{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stat-band__grid--5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .article__body .figure--left,.article__body .figure--right{float:none;width:100%;margin:0 0 max(20px, calc(28 * var(--u)))}
  .cols--3,.cols--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gcard-grid--3,.gcard-grid--people{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-card--big{grid-template-columns:1fr;gap:max(16px, calc(20 * var(--u)))}
  .video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-band__grid--4,.stat-band__grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .offices__inner{grid-template-columns:1fr}
}
@media (max-width:767.98px){
  .feature__grid,.feature--flip .feature__grid{grid-template-columns:1fr}
  .feature--flip .feature__media{order:0}
  .pstats,.pstats--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pstats--2{grid-template-columns:1fr}
  .gcard-grid,.pro-cards .gcard-grid{grid-template-columns:1fr}
  .bio__inner{grid-template-columns:1fr}
  .bio__media{aspect-ratio:4/3}
  .bio__text{padding:28px 24px 32px}
  .cols--2{grid-template-columns:1fr}
  .age-row,.age-grid{grid-template-columns:1fr}
  .award-band ul{grid-template-columns:1fr;row-gap:calc(48 * var(--u))}
  .award-band li+li{border-left:0;border-top:1px solid rgba(255,255,255,.5);padding-top:calc(48 * var(--u))}
  .logos--tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:639.98px){
  .page-head__nav{gap:6px 20px;font-size:11px}
  .page-head__media,.page-head__media--article,.page-head__media--tall{height:calc(var(--content-w) * 3 / 4)}
  .page-head__media--signature{height:calc(var(--content-w) / 2)}
  .page-head__media--article-contain{height:auto}
  .article-head__meta{font-size:16px}
  .cols--3,.cols--4,.gcard-grid--3,.gcard-grid--people,.news-grid,.gallery,.gallery--2,.gallery--4,.video-grid{grid-template-columns:1fr}
  .logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats--grid,.stat-band__grid,.stat-band__grid--2,.stat-band__grid--4,.stat-band__grid--5,.stat-band__grid--6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tl-stats dl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
  .tl-stat{min-height:0;gap:12px}
  .tl-stat:nth-child(odd){border-left:0}
  .tl-stat dd{font-size:clamp(40px,12vw,56px)}
  .decades a{font-size:14px;padding:14px 0}
  .decades a+a::before{margin:0 10px}
  .tl-majors table{min-width:720px}
}
