/* Player pages (professionals.html + player-<slug>.html): global black / white charter, mobile first. */
.players-page{margin:0;background:#fff;color:var(--global-black,#050505);overflow-x:hidden}
.players-page *,.players-page *::before,.players-page *::after{box-sizing:border-box}
.players-page main{display:block;overflow-x:clip}
:where(.players-page main) img{display:block;max-width:100%;height:auto;border-radius:0}
.players-page main figure{margin:0}
.players-page main p{line-height:1.65}
.players-page a:focus-visible,.players-page button:focus-visible{outline:3px solid var(--global-blue,#004b87);outline-offset:4px}

/* Shared type */
.players-page .pl-eyebrow{margin:0 0 16px;color:var(--global-blue,#004b87);font-size:11px;font-weight:700;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}
html body.players-page:not(#pl) main h2{margin:0 0 22px;font-size:clamp(34px,8vw,56px)!important;font-weight:900!important;line-height:1!important;letter-spacing:-.04em!important;text-transform:none!important}
html body.players-page:not(#pl) main h3{margin:0 0 12px;font-size:13px!important;font-weight:700!important;letter-spacing:.12em!important;line-height:1.3!important;text-transform:uppercase!important}
.pl-section-head{max-width:820px;margin-bottom:36px}
.pl-section-head>p:last-child:not(.pl-eyebrow){margin:0;color:var(--global-muted,#62676d);font-size:16px}

/* Buttons (same shape as the rest of the site) */
.pl-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:16px 28px;border:1px solid var(--global-blue,#004b87);border-radius:999px;background:var(--global-blue,#004b87);color:#fff!important;font-size:12px;font-weight:700;letter-spacing:.08em;text-decoration:none;white-space:nowrap}
.pl-button:hover{filter:brightness(1.15);opacity:1}
.pl-button span{display:inline-block;transition:transform .2s}
.pl-button:hover span{transform:translateX(4px)}
.pl-button-ghost{background:transparent;border-color:rgba(255,255,255,.7)}
.pl-button-ghost:hover{filter:none;background:#fff;border-color:#fff;color:var(--global-black,#050505)!important}

/* Hero (profile + hub): black copy panel, photo */
.pl-hero,.pl-hub-hero{display:grid;background:var(--global-black,#050505);color:#fff}
.pl-hero-copy,.pl-hub-hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:40px 20px 40px}
.pl-hero .pl-eyebrow,.pl-hub-hero .pl-eyebrow,.pl-cta .pl-eyebrow,.pl-stats .pl-eyebrow{color:#8ccaff}
.pl-back{margin-bottom:28px;color:rgba(255,255,255,.75);font-size:11px;font-weight:700;letter-spacing:.14em;text-decoration:none}
.pl-back:hover{color:#fff;opacity:1}
html body.players-page:not(#pl-h1a):not(#pl-h1b) :is(.pl-hero,.pl-hub-hero) h1{margin:0 0 20px;color:#fff;font-size:clamp(52px,14vw,112px)!important;font-weight:900!important;line-height:.9!important;letter-spacing:-.05em!important;text-transform:uppercase}
.players-page .pl-hero-lead,.players-page .pl-hub-lead{margin:0;padding-top:18px;border-top:1px solid rgba(255,255,255,.3);width:100%;max-width:520px;color:rgba(255,255,255,.88);font-size:clamp(17px,4.6vw,21px);font-weight:700;letter-spacing:-.01em;line-height:1.3}
.pl-id{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;width:100%;max-width:520px;margin:28px 0 0}
.pl-id div{min-width:0}
.pl-id dt{color:rgba(255,255,255,.55);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.pl-id dd{margin:4px 0 0;font-size:14px;font-weight:700;line-height:1.35}
.pl-hero-media,.pl-hub-hero-media{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 25%}

/* Key figures */
.pl-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0 20px;border-bottom:1px solid var(--global-line,#d9dde1)}
.pl-facts>div{padding:26px 12px 24px 0;border-top:1px solid var(--global-line,#d9dde1)}
.pl-facts strong{display:block;font-size:clamp(34px,9vw,58px);font-weight:900;line-height:.95;letter-spacing:-.04em}
.pl-facts span{display:block;margin-top:10px;color:var(--global-muted,#62676d);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.players-page .pl-asof{grid-column:1/-1;margin:0;padding:14px 0 18px;color:var(--global-muted,#62676d);font-size:12px}

/* Story */
.pl-story,.pl-academy,.pl-life{display:grid;gap:36px;padding:64px 20px}
.pl-story img,.pl-academy img,.pl-life img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 25%}
.pl-story-copy,.pl-academy-copy,.pl-life-copy{max-width:640px}
.players-page .pl-story-copy p:not(.pl-eyebrow):not(.pl-feature),.players-page .pl-academy-copy p:not(.pl-eyebrow),.players-page .pl-life-copy p:not(.pl-eyebrow){margin:0 0 16px;font-size:16px}
.players-page .pl-feature{margin:28px 0 0;padding:20px 0 0;border-top:2px solid var(--global-black,#050505);font-size:17px;font-weight:700;line-height:1.45}
.pl-feature span{display:block;margin-bottom:6px;color:var(--global-blue,#004b87);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.pl-academy{background:#f4f5f6}
.pl-academy .pl-button{margin-top:12px}

/* Grand Slams */
.pl-slams,.pl-career,.pl-game{padding:64px 20px}
.pl-slam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pl-slam{display:flex;flex-direction:column;gap:6px;min-height:150px;padding:20px 18px;border:1px solid var(--global-line,#d9dde1)}
.pl-slam-name{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.pl-slam strong{margin-top:auto;font-size:clamp(22px,5vw,30px);font-weight:900;line-height:1;letter-spacing:-.03em}
.pl-slam-year{color:var(--global-muted,#62676d);font-size:13px}
.pl-slam.is-win{border-color:var(--global-black,#050505);background:var(--global-black,#050505);color:#fff}
.pl-slam.is-win .pl-slam-year{color:#8ccaff}

/* Career timeline */
.pl-career{border-top:1px solid var(--global-line,#d9dde1)}
.pl-timeline{display:grid;gap:40px}
.pl-timeline ol{margin:0;padding:0;list-style:none;border-top:2px solid var(--global-black,#050505)}
.pl-timeline li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--global-line,#d9dde1)}
.pl-timeline li span{font-size:18px;font-weight:900;letter-spacing:-.02em}
.players-page .pl-timeline li p{margin:0;font-size:15px;line-height:1.5}

/* Stats */
.pl-stats{padding:64px 20px;background:var(--global-black,#050505);color:#fff}
.pl-stats-grid{display:grid;gap:28px}
.pl-stats-grid div{padding-top:20px;border-top:1px solid rgba(255,255,255,.3)}
.pl-stats-grid strong{display:block;font-size:clamp(64px,16vw,112px);font-weight:900;line-height:.9;letter-spacing:-.05em}
.players-page .pl-stats-grid p{margin:12px 0 0;max-width:320px;color:rgba(255,255,255,.8);font-size:15px;line-height:1.45}

/* Game */
.pl-game-grid{display:grid;gap:28px}
.pl-game-grid>div{padding-top:20px;border-top:2px solid var(--global-black,#050505)}
.players-page .pl-game-grid p{margin:0;font-size:16px}

/* Gallery */
.pl-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 20px}
.pl-gallery figure:first-child{grid-column:1/-1}
.pl-gallery img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 25%}

/* Player cards */
.pl-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.pl-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--global-line,#d9dde1);background:#fff;color:inherit;text-decoration:none}
.pl-card[hidden]{display:none}
a.pl-card:hover{opacity:1;border-color:var(--global-black,#050505)}
.pl-card-photo{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:#e9ebed}
.pl-card-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;transition:transform .5s ease}
a.pl-card:hover .pl-card-photo img{transform:scale(1.03)}
.pl-card-tour{position:absolute;top:12px;left:12px;padding:6px 10px;border-radius:999px;background:#fff;color:var(--global-black,#050505);font-size:9px;font-weight:700;letter-spacing:.14em}
.pl-card-tour-rising{background:#004b87;color:#fff}
.pl-card-copy{display:flex;flex-direction:column;gap:4px;padding:16px 44px 18px 16px}
.pl-card-country{color:var(--global-muted,#62676d);font-size:11.5px;font-weight:500}
.pl-card-name{font-size:18px;font-weight:700;line-height:1.15;letter-spacing:-.01em}
.pl-card-rank{margin-top:6px;color:var(--global-muted,#62676d);font-size:12px;line-height:1.4}
.pl-card-rank strong{color:var(--global-black,#050505)}
.pl-card-arrow{position:absolute;right:16px;bottom:16px;font-size:18px;line-height:1;opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
a.pl-card:is(:hover,:focus-visible) .pl-card-arrow{opacity:1;transform:none}
@media(hover:none){.pl-card-arrow{opacity:1;transform:none}}

/* Hub */
.pl-hub{padding:40px 20px 64px}
/* Unified filters (markup + script in scripts/build-players.cjs): the menu and its Clear selection item use [hidden]. */
.pl-uf .uf-choices[hidden],.pl-uf .uf-choices button[hidden]{display:none}
.pl-uf{margin-bottom:24px}

/* More players rail */
.pl-more{padding:64px 20px;border-top:1px solid var(--global-line,#d9dde1)}
.pl-more-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}
html body.players-page:not(#pl) .pl-more-head h2{margin:0}
.pl-more-head a{flex:none;font-size:11px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--global-blue,#004b87)}

/* CTA */
.pl-cta{padding:72px 20px;background:var(--global-black,#050505);color:#fff;text-align:left}
html body.players-page:not(#pl) .pl-cta h2{color:#fff}
.pl-cta-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px}

@media(min-width:700px){
  .pl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pl-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pl-slam-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pl-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
  .pl-game-grid,.pl-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
  .pl-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pl-gallery figure:first-child{grid-column:span 2;grid-row:span 2}
  .pl-cta-actions{flex-direction:row}
}
@media(min-width:1000px){
  .pl-hero,.pl-hub-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:calc(100dvh - 84px)}
  .pl-hub-hero{min-height:560px}
  .pl-hero-copy,.pl-hub-hero-copy{padding:64px 56px 64px max(48px,calc((100vw - 1320px)/2))}
  .pl-hero-media,.pl-hub-hero-media{height:100%;aspect-ratio:auto}
  .pl-facts,.pl-story,.pl-academy,.pl-life,.pl-slams,.pl-career,.pl-game,.pl-stats,.pl-more,.pl-cta,.pl-hub,.pl-gallery{padding-left:max(48px,calc((100vw - 1320px)/2));padding-right:max(48px,calc((100vw - 1320px)/2))}
  .pl-story,.pl-academy,.pl-life{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:72px;padding-top:96px;padding-bottom:96px}
  .pl-slams,.pl-career,.pl-game,.pl-stats,.pl-more{padding-top:96px;padding-bottom:96px}
  .pl-life img{order:-1}
  .pl-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .pl-grid-rail{grid-template-columns:repeat(4,minmax(0,1fr))}

  .pl-hub{padding-top:56px;padding-bottom:96px}
  .pl-cta{padding-top:96px;padding-bottom:96px}
}
@media(min-width:1300px){.pl-grid:not(.pl-grid-rail){grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Portrait academy photo: keep both people in frame */
.pl-academy img{aspect-ratio:4/5;max-height:720px;object-position:50% 35%}
/* Hub title: "Professional" must fit the copy column */
html body.players-page:not(#pl-h1a):not(#pl-h1b) .pl-hub-hero h1{font-size:clamp(44px,11.5vw,84px)!important}
@media(min-width:1000px){html body.players-page:not(#pl-h1a):not(#pl-h1b) .pl-hub-hero h1{font-size:clamp(56px,5.6vw,88px)!important}}

/* Profile hero v2: photo first on mobile; tags, big name, three key figures, one compact id line */
.pl-hero .pl-hero-media{order:-1;aspect-ratio:4/5;object-position:50% 18%}
.pl-hero .pl-hero-copy{justify-content:flex-start;padding:26px 20px 36px}
.pl-hero .pl-back{margin-bottom:22px}
.pl-hero-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.pl-tag{display:inline-flex;align-items:center;min-height:26px;padding:0 11px;border:1px solid rgba(255,255,255,.45);border-radius:999px;color:#fff;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.pl-tag-tour{border-color:#1F92F0;background:#1F92F0}
html body.players-page:not(#pl-h1a):not(#pl-h1b) .pl-hero h1{margin:0 0 16px;font-size:clamp(64px,19vw,150px)!important;line-height:.86!important;letter-spacing:-.055em!important}
.players-page .pl-hero .pl-hero-lead{max-width:560px;padding-top:0;border-top:0;font-size:clamp(18px,4.8vw,24px);line-height:1.25}
.pl-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;max-width:600px;margin:26px 0 0;border-top:1px solid rgba(255,255,255,.3)}
.pl-hero-stats div{min-width:0;padding:16px 12px 0 0}
.pl-hero-stats div+div{padding-left:14px;border-left:1px solid rgba(255,255,255,.2)}
.pl-hero-stats dd{margin:0;font-size:clamp(34px,9.5vw,60px);font-weight:900;line-height:.95;letter-spacing:-.04em}
.pl-hero-stats dt{margin-top:8px;color:#8ccaff;font-size:10px;font-weight:700;letter-spacing:.12em;line-height:1.35;text-transform:uppercase}
.players-page .pl-hero-id{display:flex;flex-wrap:wrap;gap:6px 18px;margin:24px 0 0;color:rgba(255,255,255,.85);font-size:13px;line-height:1.4}
.pl-hero-id b{margin-right:4px;color:rgba(255,255,255,.5);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.players-page .pl-hero .pl-asof{margin:14px 0 0;padding:0;color:rgba(255,255,255,.45);font-size:11px}
@media(min-width:1000px){
  .pl-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:calc(100dvh - 76px)}
  .pl-hero .pl-hero-media{order:2;aspect-ratio:auto;height:100%;object-position:55% 22%}
  .pl-hero .pl-hero-copy{justify-content:center;padding:56px 56px 56px max(48px,calc((100vw - 1320px)/2))}
}
@media(min-width:1000px){html body.players-page:not(#pl-h1a):not(#pl-h1b) .pl-hero h1{font-size:clamp(84px,8.4vw,128px)!important}}

/* Profile hero v3 (player-page codes of the tours / sports media): first name light, last name bold,
   country code, bio grid, key figures, more air; sticky profile tabs under the hero */
html body.players-page:not(#pl-h1a):not(#pl-h1b) .pl-hero h1{margin:0 0 22px;font-size:clamp(48px,13vw,72px)!important;line-height:.9!important;letter-spacing:-.045em!important}
.pl-hero h1 .pl-first{display:block;font-size:.5em;font-weight:500;letter-spacing:-.02em;line-height:1.1;text-transform:none}
.pl-hero h1 .pl-last{display:block}
.pl-hero .pl-hero-copy{padding:32px 20px 44px}
.pl-hero .pl-back{margin-bottom:28px}
.pl-hero-tags{margin-bottom:22px}
.players-page .pl-hero .pl-hero-lead{font-size:clamp(17px,4.4vw,20px);line-height:1.4;font-weight:500;color:rgba(255,255,255,.82)}
.pl-hero-stats{margin-top:34px}
.pl-hero-stats div{padding-top:20px}
.pl-hero-stats dd{font-size:clamp(34px,9vw,52px)}
.pl-bio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;width:100%;max-width:600px;margin:30px 0 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.2)}
.pl-bio div{min-width:0}
.pl-bio dt{color:rgba(255,255,255,.5);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.pl-bio dd{margin:6px 0 0;font-size:15px;font-weight:700;line-height:1.35}
.pl-bio small{color:rgba(255,255,255,.6);font-size:12px;font-weight:500}
.players-page .pl-hero .pl-asof{margin-top:20px}
@media(min-width:1000px){
  html body.players-page:not(#pl-h1a):not(#pl-h1b) .pl-hero h1{font-size:clamp(72px,6.4vw,100px)!important}
  .pl-hero .pl-hero-copy{padding:72px 64px 72px max(48px,calc((100vw - 1320px)/2))}
  .pl-bio{grid-template-columns:repeat(4,minmax(0,auto));justify-content:start;column-gap:36px}
}

/* Sticky profile tabs */
.pl-subnav{position:sticky;top:var(--pl-subnav-top,66px);z-index:30;display:flex;gap:28px;overflow-x:auto;padding:0 20px;border-bottom:1px solid var(--global-line,#d9dde1);background:#fff;scrollbar-width:none}
.pl-subnav::-webkit-scrollbar{display:none}
.pl-subnav a{flex:none;display:flex;align-items:center;min-height:52px;border-bottom:3px solid transparent;color:var(--global-muted,#62676d);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.pl-subnav a:hover{opacity:1;color:var(--global-black,#050505)}
.pl-subnav a[aria-current="true"]{border-bottom-color:#1F92F0;color:var(--global-black,#050505)}
.players-page main section[id]{scroll-margin-top:calc(var(--pl-subnav-top,66px) + 60px)}
@media(min-width:1000px){.pl-subnav{gap:40px;padding:0 max(48px,calc((100vw - 1320px)/2))}}
.players-page main section[id]{scroll-margin-top:calc(var(--pl-subnav-top,66px) - 12px)}

/* Mobile profile hero: compact photo band with tags + name on it, then the key figures and bio in the first screen */
@media(max-width:999px){
  .players-page{overflow-x:clip}
  .pl-hero{display:grid;grid-template-columns:minmax(0,1fr);padding-bottom:28px}
  .pl-hero .pl-hero-copy{display:contents}
  .pl-hero .pl-hero-media{grid-row:1;grid-column:1;width:100%;aspect-ratio:16/10;object-position:50% 22%}
  .pl-hero::before{content:"";grid-row:1;grid-column:1;z-index:1;background:linear-gradient(180deg,rgba(5,5,5,.45) 0%,rgba(5,5,5,0) 28%,rgba(5,5,5,0) 42%,rgba(5,5,5,.92) 100%);pointer-events:none}
  .pl-hero .pl-back{display:none}
  .pl-hero .pl-hero-tags{grid-row:1;grid-column:1;align-self:start;z-index:2;margin:12px 16px 0}
  html body.players-page:not(#pl-h1a):not(#pl-h1b) .pl-hero h1{grid-row:1;grid-column:1;align-self:end;z-index:2;margin:0 16px 12px;font-size:clamp(40px,12vw,56px)!important}
  .players-page .pl-hero .pl-hero-lead{margin:16px 20px 0;width:auto;font-size:15px;line-height:1.4}
  .pl-hero .pl-hero-stats{width:auto;margin:18px 20px 0}
  .pl-hero-stats div{padding-top:14px}
  .pl-hero-stats dd{font-size:clamp(28px,8.5vw,40px)}
  .pl-hero-stats dt{font-size:9px}
  .pl-hero .pl-bio{width:auto;margin:18px 20px 0;padding-top:16px;gap:12px 16px}
  .pl-bio dd{font-size:13.5px}
  .players-page .pl-hero .pl-asof{margin:14px 20px 0}
}

/* Profile tabs: player identity on the left (desktop) */
.pl-subnav-player{display:none}
@media(min-width:1000px){
  .pl-subnav-player{display:flex!important;align-items:center;gap:12px;min-height:60px!important;margin-right:12px;padding-right:32px;border-bottom:0!important;border-right:1px solid var(--global-line,#d9dde1);color:var(--global-black,#050505)!important;text-transform:none!important;letter-spacing:0!important}
  .pl-subnav-player img{width:36px;height:36px;flex:none;border-radius:50%!important;object-fit:cover;object-position:50% 20%}
  .pl-subnav-player span{display:flex;flex-direction:column;gap:2px;line-height:1.1}
  .pl-subnav-player strong{font-size:15px;font-weight:900;letter-spacing:-.01em}
  .pl-subnav-player small{color:var(--global-muted,#62676d);font-size:10px;font-weight:700;letter-spacing:.12em}
  .pl-subnav a:not(.pl-subnav-player){min-height:60px}
}
@media(max-width:999px){.pl-subnav a.pl-subnav-player{display:none}}

/* Hero meta line under the name: flag + country · age · height (sports-media style) */
.players-page .pl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:0 0 22px;color:#fff;font-size:clamp(15px,1.4vw,19px);font-weight:700;line-height:1.3}
.pl-meta span{display:inline-flex;align-items:center;gap:8px}
.pl-meta span+span::before{content:"";width:4px;height:4px;margin:0 12px;border-radius:50%;background:rgba(255,255,255,.55)}
html body .pl-meta img.pl-flag{display:inline-block!important;width:22px;height:15px;flex:none;object-fit:cover;border-radius:2px!important}
.pl-hero .pl-bio{grid-template-columns:auto minmax(0,1fr)!important;column-gap:40px!important}
@media(max-width:999px){
  .players-page .pl-hero .pl-meta{margin:14px 20px 0;font-size:15px}
  .pl-meta span+span::before{margin:0 9px}
  .players-page .pl-hero .pl-hero-lead{margin-top:12px}
}
/* Best ranking as a tag next to the tour */
.pl-tag-rank{gap:6px;border-color:#fff;background:#fff;color:#050505}
.pl-tag-rank strong{font-weight:900;letter-spacing:.04em}
.pl-hero .pl-bio{grid-template-columns:minmax(0,1fr)!important}
/* Best ranking tag: next to the tour on desktop, under the flag line on mobile */
.pl-rank-mobile{display:none}
@media(max-width:999px){
  .pl-hero-tags .pl-tag-rank{display:none}
  .pl-hero .pl-rank-mobile{display:block;margin:12px 20px 0}
}

/* Grand Slams v2: official logos, surface, best result; champions highlighted in the tournament colour */
.pl-slam-grid{gap:16px}
.pl-slam{position:relative;display:flex;flex-direction:column;gap:0;min-height:0;padding:0;border:1px solid var(--global-line,#d9dde1);border-top:4px solid var(--slam);background:#fff;color:var(--global-black,#050505);overflow:hidden}
.pl-slam-logo{display:flex;align-items:center;justify-content:center;height:112px;padding:18px;border-bottom:1px solid var(--global-line,#d9dde1);background:#fff}
.pl-slam-logo img{max-width:100%;max-height:76px;width:auto;height:auto;object-fit:contain}
.pl-slam-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;padding:16px 18px 0}
.pl-slam-name{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.pl-slam-surface{color:var(--global-muted,#62676d);font-size:11px}
.pl-slam-label{margin:18px 18px 0;color:var(--global-muted,#62676d);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.pl-slam strong{display:flex;align-items:center;gap:8px;margin:6px 18px 0;font-size:clamp(22px,2.2vw,30px);font-weight:900;line-height:1.05;letter-spacing:-.03em;color:var(--global-black,#050505)}
.pl-slam .pl-slam-year{margin:6px 18px 20px;color:var(--global-muted,#62676d);font-size:13px}
.pl-slam.is-win{border-color:var(--slam);background:#fff;color:var(--global-black,#050505)}
.pl-slam.is-win strong{color:var(--slam)}
.pl-slam.is-win .pl-slam-year{color:var(--global-black,#050505);font-weight:700}
.pl-slam-trophy{width:22px;height:22px;flex:none;background:var(--slam);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8'/%3E%3Cpath d='M12 17v4'/%3E%3Cpath d='M7 4h10v5a5 5 0 0 1 -10 0v-5'/%3E%3Cpath d='M5 9m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0'/%3E%3Cpath d='M19 9m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8'/%3E%3Cpath d='M12 17v4'/%3E%3Cpath d='M7 4h10v5a5 5 0 0 1 -10 0v-5'/%3E%3Cpath d='M5 9m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0'/%3E%3Cpath d='M19 9m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0'/%3E%3C/svg%3E") center/contain no-repeat}
.pl-slam.is-win::after{content:"CHAMPION";position:absolute;top:12px;right:12px;padding:5px 9px;border-radius:999px;background:var(--slam);color:#fff;font-size:9px;font-weight:700;letter-spacing:.14em}
@media(max-width:699px){.pl-slam-logo{height:88px;padding:14px}.pl-slam-logo img{max-height:58px}.pl-slam-meta{padding:12px 12px 0}.pl-slam-label,.pl-slam strong,.pl-slam .pl-slam-year{margin-left:12px;margin-right:12px}.pl-slam-surface{display:none}.pl-slam.is-win::after{top:8px;right:8px;font-size:8px;padding:4px 7px}}

/* More players: horizontal carousel (scroll-snap + arrows) */
.pl-carousel{position:relative}
.pl-rail{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 20px;margin:0 -20px;padding:0 20px 8px;scrollbar-width:none;overscroll-behavior-x:contain}
.pl-rail::-webkit-scrollbar{display:none}
.pl-rail>.pl-card{scroll-snap-align:start}
.pl-carousel-btn{display:none}
@media(min-width:700px){.pl-rail{grid-auto-columns:calc((100% - 32px)/3)}}
@media(min-width:1000px){
  .pl-rail{grid-auto-columns:calc((100% - 60px)/4);gap:20px;margin:0;padding:0 0 8px;scroll-padding:0}
  .pl-carousel-btn{position:absolute;top:calc(50% - 44px);z-index:3;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--global-line,#d9dde1);border-radius:50%;background:#fff;color:var(--global-black,#050505);font-size:18px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.08);transition:opacity .2s,background .2s}
  .pl-carousel-btn[data-dir="-1"]{left:-24px}
  .pl-carousel-btn[data-dir="1"]{right:-24px}
  .pl-carousel-btn:hover{background:var(--global-black,#050505);color:#fff}
  .pl-carousel-btn:disabled{opacity:0;pointer-events:none}
}

/* Final CTA: light card with an academy photo, between the white players rail and the navy newsletter */
.pl-cta.pl-cta-card{padding:0 20px 72px;background:#fff;color:var(--global-black,#050505)}
.pl-cta-inner{display:grid;overflow:hidden;border-radius:4px;background:#f1f3f5}
.pl-cta-card .pl-cta-copy{padding:36px 24px 40px}
html body.players-page:not(#pl) .pl-cta-card h2{color:var(--global-black,#050505)}
.pl-cta-card .pl-eyebrow{color:var(--global-blue,#004b87)!important}
.players-page .pl-cta-card .pl-cta-copy>p:not(.pl-eyebrow){margin:0 0 26px;max-width:460px;color:var(--global-muted,#62676d);font-size:16px}
.pl-cta-card img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;object-position:50% 40%}
.pl-button-outline{background:transparent;border-color:var(--global-black,#050505);color:var(--global-black,#050505)!important}
.pl-button-outline:hover{filter:none;background:var(--global-black,#050505);color:#fff!important}
@media(min-width:1000px){
  .pl-cta.pl-cta-card{padding:0 max(48px,calc((100vw - 1320px)/2)) 96px}
  .pl-cta-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
  .pl-cta-card .pl-cta-copy{display:flex;flex-direction:column;justify-content:center;padding:64px 56px}
  .pl-cta-card img{aspect-ratio:auto;min-height:380px}
}

/* Gallery inside the academy section, full width under the text + photo */
.pl-academy .pl-academy-gallery{grid-column:1/-1;padding:0!important;margin-top:8px}
.pl-academy-gallery img{border-radius:0}
#gallery{scroll-margin-top:calc(var(--pl-subnav-top,66px) + 76px)}

/* Player gallery = the French Riviera camps gallery (adult-gallery.css), inside the academy section */
.pl-academy .pl-player-gallery{grid-column:1/-1;margin-top:24px;padding:0!important;background:transparent!important}
.pl-player-gallery .adult-gallery-heading p{margin:0 0 12px;color:var(--global-blue,#004b87);font-size:11px;font-weight:700;letter-spacing:.16em}
html body.players-page:not(#pl) .pl-player-gallery h2{margin:0!important;font-size:clamp(28px,3vw,40px)!important}
.pl-player-gallery .adult-gallery-tile img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
#gallery{scroll-margin-top:calc(var(--pl-subnav-top,66px) + 76px)}
/* Records: BOOK blue (#004B87) instead of sky blue */
.pl-stats-grid .pl-stat{border-top-color:#004B87}
.pl-stats-grid .pl-stat strong small{color:#004B87}
.players-page .pl-stats .pl-eyebrow{color:#004B87!important}

/* Records v2: title, number + unit, short bold label, detail; framed cards on black, BOOK blue accents */
html body.players-page:not(#pl) .pl-stats h2{color:#fff}
.pl-stats .pl-section-head{margin-bottom:40px}
.pl-stats-grid{gap:16px}
.pl-stats-grid .pl-stat{position:relative;padding:28px 26px 30px;border:1px solid rgba(255,255,255,.16);border-top:3px solid #004B87;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0))}
.pl-stats-grid .pl-stat strong{display:flex;align-items:baseline;gap:10px;font-size:clamp(64px,7vw,104px);line-height:.85}
.pl-stats-grid .pl-stat strong small{color:#004B87;font-size:.26em;font-weight:900;letter-spacing:.02em;text-transform:uppercase}
html body.players-page:not(#pl) .pl-stats .pl-stat h3{margin:22px 0 8px!important;color:#fff;font-size:13px!important}
.players-page .pl-stats-grid .pl-stat p{margin:0;max-width:none;color:rgba(255,255,255,.7);font-size:14px;line-height:1.5}
/* Records: eyebrow and units in white */
.players-page .pl-stats .pl-eyebrow{color:#fff!important}
.pl-stats-grid .pl-stat strong small{color:#fff}

/* Game & equipment on black, with a shop CTA */
.pl-game{background:#050505;color:#fff}
html body.players-page:not(#pl) .pl-game h2,html body.players-page:not(#pl) .pl-game h3{color:#fff}
.pl-game .pl-eyebrow{color:#fff!important}
.pl-game .pl-game-grid>div{border-top-color:rgba(255,255,255,.35)}
.players-page .pl-game .pl-game-grid p{color:rgba(255,255,255,.78)}
.pl-game-shop{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;margin-top:44px;padding-top:28px;border-top:1px solid rgba(255,255,255,.2)}
.players-page .pl-game-shop p{margin:0;color:#fff;font-size:17px;font-weight:700}
/* Mobile sticky bar on player pages: one full-width "Discover the academy" button (home page) */
@media(max-width:900px){
  html body.players-page .mobile-header-actions .mobile-header-actions-single{flex:1 1 100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border:1px solid #004B87;border-radius:999px;background:#004B87;color:#fff!important;font:700 12px/1 Geometria,Arial,sans-serif;letter-spacing:.1em;text-decoration:none}
  html body.players-page .mobile-header-actions .mobile-header-actions-single::after{content:"⟶"}
}
/* Long last names: smaller so they fit the hero column */
.pl-hero h1.pl-name-l .pl-last{font-size:.8em}
.pl-hero h1.pl-name-xl .pl-last{font-size:.64em}
/* Mobile (player pages): slim sticky header with the logo and a burger, same as the blog; the section tabs stick under it. */
@media(max-width:900px){
 html body.players-page:not(#pl-thin)>.site-nav{position:sticky!important;top:0!important;z-index:100;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;min-height:48px!important;height:48px!important;padding:2px 4px 2px 16px!important;background:#050505!important}
 html body.players-page>.site-nav>a:first-child{flex:0 1 118px;margin:0!important;line-height:0}
 html body.players-page>.site-nav>a:first-child img{width:118px!important;max-width:118px!important;height:auto!important}
 html body.players-page>.site-nav .generic-header-links,html body.players-page>.site-nav .generic-header-actions{display:none!important}
 html body.players-page .site-nav>.mobile-menu-toggle{display:inline-flex!important;position:relative;flex:none;width:44px;height:44px;min-height:44px;margin:0 0 0 auto!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#fff!important;font-size:0!important}
 html body.players-page .site-nav>.mobile-menu-toggle::before,html body.players-page .site-nav>.mobile-menu-toggle::after{content:"";position:absolute;left:12px;top:18px;width:20px;height:1px;background:currentColor;transition:transform .2s ease,top .2s ease}
 html body.players-page .site-nav>.mobile-menu-toggle::after{top:25px}
 html body.players-page .site-nav>.mobile-menu-toggle[aria-expanded="true"]::before{top:22px;transform:rotate(45deg)}
 html body.players-page .site-nav>.mobile-menu-toggle[aria-expanded="true"]::after{top:22px;transform:rotate(-45deg)}
 html body.players-page .site-nav .mobile-navigation{display:none!important}
 html body.players-page .site-nav .mobile-navigation.is-open{position:fixed!important;inset:48px 0 calc(72px + env(safe-area-inset-bottom))!important;height:auto;display:flex!important;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:20px 24px;gap:0;overflow-y:auto;overflow-x:hidden;z-index:2;background:#050505!important}
 html body.players-page .site-nav .mobile-navigation.is-open a{justify-content:flex-start;border:0!important;border-bottom:1px solid #333!important;border-radius:0!important;background:transparent!important;min-height:56px;padding:18px 0!important;font-size:20px!important;white-space:normal}
 html body.players-page .pl-subnav{top:48px!important}
}
html:has(body.players-page .site-nav .mobile-navigation.is-open){overflow:hidden}
