:root {
  --pf-web-surface: hsl(var(--pf-brand-cream));
  --pf-web-text: hsl(var(--pf-brand-brown));
  --pf-web-accent: hsl(var(--pf-brand-gold));
  --pf-web-rule: hsl(var(--pf-brand-brown) / .2);
  --pf-web-gutter: clamp(20px, 4vw, 72px);
  --pf-web-pill: 999px;
  --pf-web-control: 48px;
  --pf-web-fast: 180ms;
  --pf-web-reveal: 320ms;
}
html { scroll-padding-top:110px; scroll-padding-bottom:100px; }
.pf-header { position:fixed; inset:12px 12px auto; z-index:100; color:var(--pf-web-text); background:var(--pf-web-surface); border:1px solid var(--pf-web-rule); border-radius:28px; box-shadow:0 8px 40px hsl(var(--pf-brand-brown)/.08); }
.pf-nav { display:flex; align-items:center; gap:12px; padding:10px 16px; min-height:68px; }
.pf-logo { display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.pf-logo img { width:52px; height:auto; aspect-ratio:65/36; object-fit:contain; }
.pf-logo span { font:400 28px var(--pf-font-headline); letter-spacing:-1px; }
.pf-nav .pf-logo span { display:none; }
.pf-nav .pf-logo img { display:none; }
.pf-nav .pf-logo::before { content:''; width:52px; height:29px; background:var(--pf-web-text); mask:url('/relaunch/assets/logo.svg') center/contain no-repeat; }
.pf-button { display:inline-flex; align-items:center; justify-content:center; min-height:var(--pf-web-control); padding:12px 24px; border:1px solid transparent; border-radius:var(--pf-web-pill); background:var(--pf-web-text); color:var(--pf-web-surface); font:500 14px var(--pf-font-body); text-decoration:none; transition:background var(--pf-web-fast), transform var(--pf-web-fast); }
.pf-button:hover { transform:translateY(-2px); background:hsl(var(--pf-brand-brown)/.88); }
.pf-button-gold { background:var(--pf-web-accent); color:var(--pf-web-text); }
.pf-button-gold:hover { background:var(--pf-web-surface); }
.pf-nav-join { margin-left:auto; padding:10px 16px; font-size:12px; }
.pf-desktop { display:none; }
.pf-menu-toggle,.pf-nav-trigger { background:none; border:0; color:inherit; font:500 14px var(--pf-font-body); min-height:48px; cursor:pointer; }
.pf-menu-toggle { padding:0 4px; }
.pf-menu-toggle span,.pf-nav-trigger span { display:inline-block; margin-left:8px; transition:transform var(--pf-web-fast); }
.pf-menu-toggle[aria-expanded=true] > span,.pf-nav-trigger[aria-expanded=true] > span { transform:rotate(45deg); }
.pf-header :focus-visible,.pf-footer :focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.pf-header a[aria-current=page] { text-decoration:underline; text-underline-offset:6px; }
#pf-mobile { max-height:calc(100dvh - 100px); overflow:auto; overscroll-behavior:contain; padding:12px 24px 24px; border-top:1px solid var(--pf-web-rule); }
#pf-mobile details { border-bottom:1px solid var(--pf-web-rule); }
#pf-mobile summary,.pf-mobile-offer { display:flex; align-items:center; justify-content:space-between; min-height:68px; font:400 32px var(--pf-font-headline); cursor:pointer; list-style:none; text-decoration:none; }
#pf-mobile summary::-webkit-details-marker { display:none; }
#pf-mobile summary { justify-content:flex-start;gap:16px;padding-block:12px; }
#pf-mobile details div>img { width:100%;height:auto;aspect-ratio:2.5;object-fit:cover;border-radius:12px;margin:4px 0 16px; }
.pf-menu-toggle:focus:not(:focus-visible){outline:none;box-shadow:none}
#pf-mobile summary>span { margin-left:auto;transition:transform .2s; }
@media(max-width:360px){#pf-mobile summary{gap:12px;font-size:28px}#pf-mobile summary>img{width:60px;height:40px}}
@media(prefers-reduced-motion:reduce){#pf-mobile summary>span{transition:none}}
#pf-mobile details[open] summary span { transform:rotate(45deg); }
#pf-mobile details div { padding-bottom:16px; }
#pf-mobile details a { display:flex; align-items:center; min-height:48px; font-size:15px; text-decoration:none; }
.pf-quick { display:flex; flex-wrap:wrap; gap:4px 20px; margin:20px 0; }
.pf-quick a { display:flex; align-items:center; min-height:44px; font-size:13px; text-underline-offset:5px; }
.pf-mobile-signature { font:400 34px/1.05 var(--pf-font-headline); margin:24px 0 0; }
.pf-panel[hidden],#pf-mobile[hidden] { display:none; }
body.pf-navigation-open { overflow:hidden; }
body.pf-navigation-open .booking-dock { visibility:hidden; }
.pf-panel { padding:32px; border-top:1px solid var(--pf-web-rule); gap:36px; grid-template-columns:1fr 1fr 1fr; align-items:center; animation:pf-panel-in var(--pf-web-reveal) both; }
.pf-kicker { font:500 11px var(--pf-font-body); letter-spacing:.12em; text-transform:uppercase; margin:0 0 20px; }
.pf-panel-title { font:400 clamp(28px,3vw,48px)/1.04 var(--pf-font-headline); margin:0 0 28px; letter-spacing:-.035em; }
.pf-inline { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-underline-offset:6px; }
.pf-panel-links { display:grid; }
.pf-panel-links a { display:flex; align-items:center; min-height:48px; font-size:17px; text-decoration:none; border-bottom:1px solid var(--pf-web-rule); transition:padding var(--pf-web-fast); }
.pf-panel-links a:hover { padding-left:8px; }
.pf-header a:has(.pf-nav-club-badge){display:flex;align-items:center;justify-content:space-between;gap:12px}
.pf-header .pf-nav-club-badge{font-size:11px;line-height:1.3;padding:5px 10px;border-radius:999px;border:1px solid hsl(var(--pf-brand-brown)/.25);background:hsl(var(--pf-brand-cream)/.65);color:hsl(var(--pf-brand-brown));white-space:nowrap;flex-shrink:0}
.pf-header .pf-nav-club-badge-signature{background:hsl(var(--pf-brand-brown));color:hsl(var(--pf-brand-cream));border-color:transparent}
.pf-header a.pf-nav-concept-link{font-size:12px;line-height:1.5;border-bottom:0;gap:8px;margin-top:10px;text-decoration:underline;text-underline-offset:4px}
.pf-panel figure { margin:0; }
.pf-panel img { width:100%; height:250px; object-fit:cover; border-radius:16px; }
.pf-footer { background:var(--pf-web-text); color:var(--pf-web-surface); padding:64px var(--pf-web-gutter) 100px; }
.pf-footer-invite { display:grid; gap:24px; padding-bottom:48px; border-bottom:1px solid hsl(var(--pf-brand-cream)/.25); }
.pf-footer-invite h2 { font:400 clamp(44px,6vw,88px)/1.02 var(--pf-font-headline); letter-spacing:-.04em; margin:0; }
.pf-footer-invite h2 span { color:var(--pf-web-accent); }
.pf-footer-invite > div:last-child { display:flex; align-items:flex-start; flex-direction:column; gap:12px; }
.pf-footer-grid { display:grid; grid-template-columns:1fr 1fr; gap:36px 24px; padding:48px 0; }
.pf-footer-brand { grid-column:1/-1; }
.pf-footer-brand img { filter:brightness(0) invert(1); }
.pf-footer-brand p { font-size:14px; line-height:1.7; margin:20px 0; }
.pf-footer-grid h3 { font:500 14px var(--pf-font-body); margin:0 0 16px; }
.pf-footer-grid nav a { display:flex; align-items:center; min-height:44px; font-size:13px; line-height:1.5; text-decoration:none; }
.pf-footer a:hover { text-decoration:underline; text-underline-offset:5px; }
.pf-footer-legal { display:flex; flex-wrap:wrap; gap:20px 32px; border-top:1px solid hsl(var(--pf-brand-cream)/.25); padding:24px 0; font-size:12px; }
.pf-footer-legal nav { display:flex; flex-wrap:wrap; gap:4px 24px; }
.pf-legal-row { display:flex; flex-wrap:wrap; gap:4px 24px; }
.pf-footer-legal a { display:inline-flex; align-items:center; min-height:44px; }
.pf-footer .prototype-note { color:inherit; opacity:.8; font-size:11px; }
@keyframes pf-panel-in { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
@media(min-width:1000px) {
  .pf-header { inset:18px 28px auto; border-radius:28px; }
  .pf-nav { padding:12px 24px; gap:28px; }
  .pf-desktop { display:flex; align-items:center; gap:28px; margin-left:auto; }
  .pf-desktop > a { display:flex; align-items:center; min-height:48px; font-size:14px; text-decoration:none; }
  .pf-nav-join { margin-left:8px; font-size:14px; padding-inline:24px; }
  .pf-menu-toggle { display:none; }
  .pf-panel { display:grid; }
  .pf-footer-invite { grid-template-columns:1.5fr 1fr; align-items:center; }
  .pf-footer-grid { grid-template-columns:1.5fr 1fr 1fr 1fr; }
  .pf-footer-brand { grid-column:auto; }
  .pf-footer-legal nav { margin-left:auto; }
}
@media(prefers-reduced-motion:reduce) { .pf-panel { animation:none; } .pf-header *, .pf-footer * { transition:none; } }
@media(max-width:360px) { .pf-nav { gap:8px; padding-inline:10px; } .pf-nav .pf-logo::before { width:38px; height:22px; } .pf-nav-join { padding-inline:10px; font-size:11px; } .pf-menu-toggle { font-size:12px; } }

/* Keep the primary membership entry reachable before opening the menu. */
@media(max-width:999px){
 .pf-nav-join{display:inline-flex;margin-left:auto;min-height:44px;padding:10px 14px;font-size:12px}
 .pf-menu-toggle{min-width:70px}
 .pf-mobile-join{width:100%;margin:12px 0 18px}
 .pf-footer-grid{grid-template-columns:1fr;gap:0;padding-block:32px}
 .pf-footer-brand{padding-bottom:30px}
 .pf-footer-group{border-top:1px solid hsl(var(--pf-brand-cream)/.25)}
 .pf-footer-group summary{display:flex;justify-content:space-between;align-items:center;min-height:64px;font:400 24px var(--pf-font-headline);cursor:pointer;list-style:none}
 .pf-footer-group summary::-webkit-details-marker{display:none}
 .pf-footer-group[open] summary span{transform:rotate(45deg)}
 .pf-footer-group nav{padding-bottom:20px}
 .pf-footer-grid nav a{font-size:14px}
 .pf-footer-invite{padding-bottom:32px}
 .pf-footer-legal{gap:12px}
 .pf-footer-legal nav{width:100%;flex-direction:column;gap:0}
 .pf-legal-row{gap:0 20px}
}
@media(max-width:360px){.pf-nav-join{padding-inline:10px;font-size:11px}.pf-menu-toggle{min-width:62px}}
.pf-panel figure{justify-self:end;width:100%;max-width:410px}
.pf-panel img{height:auto;aspect-ratio:1.5;object-fit:cover}
#nav-training img{object-position:50% 40%}
#nav-clubs img{object-position:50% 45%}
#nav-peoples img{object-position:50% 38%}
@media(min-width:1000px){.pf-footer-group summary{font:500 14px var(--pf-font-body);margin-bottom:16px;list-style:none;pointer-events:none}.pf-footer-group summary span{display:none}.pf-footer-group summary::-webkit-details-marker{display:none}}
@media(min-width:1000px){.pf-header{width:calc(100% - 56px);max-width:1280px;left:50%;right:auto;transform:translateX(-50%)}.pf-panel{grid-template-columns:1fr 1fr 1fr;gap:26px}.pf-panel-title{font-size:36px}}
