/* Shared public-page enhancements. Desktop composition remains unchanged. */
html { --site-header-height: 90px; scroll-padding-top: calc(var(--site-header-height) + 16px); }
body.mobile-ready main, body.mobile-ready main > *, .responsive-page :is(.section,.roster-body,.stats-body,.profile-body) { min-width:0; }
.responsive-page :is(input,select,textarea) { max-width:100%; }
.responsive-page :is(input,select,textarea,summary):focus-visible { outline:3px solid #b18219; outline-offset:3px; }
.responsive-page :is(section[id],div[id],aside[id]) { scroll-margin-top:16px; }
.responsive-page :is(.table-wrap,.standings-scroll,.cup-graphic) { max-width:100%; overscroll-behavior-x:contain; }
.scroll-cue { font:500 12px/1.6 Montserrat,Arial,sans-serif; margin:8px 0; color:#4a5c70; }
.scroll-cue[hidden] { display:none; }
.responsive-page .standings-team-tabs { top:var(--site-header-height); }
.responsive-page .group-summary,.responsive-page .ticket-box { top:calc(var(--site-header-height) + 20px); }
.responsive-page .group-summary { scroll-margin-top:20px; }
.responsive-page .group-selection-link { display:block; margin-top:12px; text-decoration:underline; font-size:13px; line-height:1.5; padding:8px 0; }
.responsive-page .mobile-register-link { display:none; }
.responsive-page :is(#fcm-newsletter,#partner-dialog) { max-height:calc(var(--visible-height,100dvh) - 32px); max-width:calc(100% - 32px); overscroll-behavior:contain; }
.responsive-page :is(.newsletter-close,.partner-close) { position:sticky; float:right; top:0; right:auto; margin:-12px -8px 4px 12px; width:44px; height:44px; min-height:44px; display:grid; place-items:center; padding:0; border:1px solid #d5dce4; border-radius:4px; background:white; z-index:3; line-height:1; }
.responsive-page :is(#fcm-newsletter,#partner-dialog) h2 { clear:both; }
.responsive-page :is(#fcm-newsletter,#partner-dialog) { scrollbar-gutter:stable; }
.responsive-page form[aria-busy=true] button[type=submit] { cursor:wait; }
@media(max-width:1100px) {
  header.centered-header > nav { max-height:var(--menu-available-height,calc(100dvh - 112px)); overscroll-behavior:contain; padding-bottom:max(20px,env(safe-area-inset-bottom)); }
  header.centered-header .menu { min-width:76px; min-height:44px; white-space:nowrap; }
  header.centered-header .nav-half > a,header.centered-header .nav-category summary { min-height:48px; font-size:16px; letter-spacing:.08em; }
  header.centered-header .nav-dropdown a { min-height:44px; font-size:15px; }
}
@media(max-width:768px) {
  .responsive-page { -webkit-text-size-adjust:100%; }
  .responsive-page :is(#fcm-newsletter,#partner-dialog) { position:fixed; top:calc(var(--visible-top,0px) + max(16px,env(safe-area-inset-top))); bottom:auto; left:0; right:0; margin:0 auto; }
  .responsive-page main nav:not(.seo-breadcrumbs) { position:static; top:auto; left:auto; right:auto; box-shadow:none; flex-direction:row; flex-wrap:wrap; }
  .responsive-page main nav.stat-subnav { flex-wrap:nowrap; }
  .responsive-page main nav.schedule-jump-links { padding:0; background:transparent; }
  .responsive-page main h1 { font-size:clamp(36px,10vw,58px); line-height:1.08; overflow-wrap:break-word; }
  .responsive-page :is(h2,h3,p,a,label,summary) { overflow-wrap:break-word; }
  .responsive-page main :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.responsive-page dialog :is(input,select,textarea) { font-size:16px; line-height:1.5; min-height:46px; }
  .responsive-page textarea { min-height:130px; }
  .responsive-page :is(input[type=checkbox],input[type=radio]) { width:20px; height:20px; min-height:20px; accent-color:#071b36; flex-shrink:0; }
  .responsive-page :is(.button,.tabs button,.roster-filters button,.stats-filters button,.player-tabs button,.schedule-tabs button,.college-school-button) { min-height:44px; }
  .responsive-page .button { white-space:normal; text-align:left; line-height:1.5; gap:12px; padding-top:12px; padding-bottom:12px; }
  .responsive-page :is(.roster-filters button,.stats-filters button,.tabs button) { font-size:13px; }
  .responsive-page :is(.guide-nav,.partner-nav,.cup-nav,.club-pages-nav) a { display:inline-flex; align-items:center; min-height:44px; padding:10px 4px; font-size:14px; }
  .responsive-page :is(.profile-links a,.player-stat-link,.college-player-link,.match-links a,.community-links a) { min-height:44px; display:inline-flex; align-items:center; font-size:13px; line-height:1.6; }
  .responsive-page .college-player-link { display:flex; }
  .responsive-page summary { min-height:44px; padding-top:10px; padding-bottom:10px; }
  .responsive-page :is(.player-info p,.profile-intro > p:not(.eyebrow),.roster-season-label,.results-line p,.filter-status,.stats-key,.stats-explainer,.leader-person small) { font-size:12px; line-height:1.65; }
  .responsive-page :is(.roster-player-stats dt,.stat-cards dt) { font-size:11px; letter-spacing:0; }
  .responsive-page .roster-player-stats dd { font-size:18px; }
  .responsive-page .roster-stats { flex-wrap:wrap; row-gap:12px; font-size:11px; letter-spacing:0; }
  .responsive-page .roster-team-tabs { flex-wrap:wrap; }
  .responsive-page .roster-team-tab { gap:10px; padding:16px 12px; }
  .responsive-page .player-tabs { display:flex; flex-wrap:wrap; gap:8px; }
  .responsive-page .player-tabs button { padding:12px 14px; font-size:14px; }
  .responsive-page .leader-row { gap:8px; padding:14px 12px; }
  .responsive-page .leader-person { gap:8px; }
  .responsive-page .leader-person strong { font-size:13px; }
  .responsive-page .leader-value { margin-left:0; }
  .responsive-page .leader-category-title { flex-wrap:wrap; gap:8px; }
  .responsive-page .leader-category-title > span { font-size:11px; }
  .responsive-page .stats-table { font-size:13px; }
  .responsive-page .stats-table thead th { font-size:11px; }
  .responsive-page .schedule-options { width:100%; }
  .responsive-page .schedule-options label { flex:1 1 130px; min-width:0; font-size:11px; }
  .responsive-page .schedule-options select { max-width:100%; width:100%; }
  .responsive-page .schedule-jump-links .button { width:100%; }
  .responsive-page .standings-team-tabs { gap:8px; }
  .responsive-page .standings-team-tabs button { min-height:48px; font-size:12px; }
  .responsive-page .ticket-total,.responsive-page .tryout-total { flex-wrap:wrap; gap:12px; align-items:center; }
  .responsive-page :is(.ticket-fee-breakdown,.registration-fees) { grid-template-columns:minmax(0,1fr) auto; }
  .responsive-page .group-summary,.responsive-page .ticket-box { position:static; }
  .responsive-page .ticket-box { padding:24px 20px; }
  .responsive-page .tryout-visual > img { max-height:360px; object-fit:cover; object-position:center 35%; }
  .responsive-page .mobile-register-link { display:inline-flex; margin:8px 0 0; }
  .responsive-page .tryout-product { gap:28px; }
  .responsive-page .group-builder,.responsive-page .package-grid,.responsive-page .tryout-fields,.responsive-page .tryout-dates { min-width:0; }
  .responsive-page .package-card { min-width:0; }
  .responsive-page .tv-section-top { flex-wrap:wrap; align-items:flex-start; }
  .responsive-page .tv-pill { max-width:100%; }
  .responsive-page .article-body iframe { height:auto; aspect-ratio:16/9; }
  .responsive-page .news-masthead h1 { font-size:clamp(36px,10vw,58px); }
  .responsive-page .footer-links { gap:4px 20px; }
  .responsive-page .footer-links a { display:flex; align-items:center; min-height:44px; font-size:12px; line-height:1.5; }
  .responsive-page .footer-social .top-social-icon { width:44px; height:44px; }
  .responsive-page .footer-social .top-social-icons { gap:2px; }
  .responsive-page .footer-bottom a { display:inline-flex; align-items:center; min-height:44px; }
  .responsive-page .hero { height:auto; min-height:580px; display:flex; flex-direction:column; }
  .responsive-page .hero-content { padding:100px 6% 28px; }
  .responsive-page .hero h1 { font-size:clamp(36px,10vw,64px); line-height:1.05; letter-spacing:-1px; }
  .responsive-page .hero .actions { margin-top:24px; gap:16px; }
  .responsive-page .hero .actions .text-link { min-height:44px; align-items:center; font-size:12px; }
  .responsive-page .hero-countdown { position:relative; inset:auto; max-width:none; margin:auto 6% 20px; padding:16px; gap:16px; flex-wrap:wrap; }
  .responsive-page .countdown-match { width:100%; max-width:none; }
  .responsive-page .countdown-match > a { font-size:14px; }
  .responsive-page .countdown-match > p:last-child { font-size:11px; }
  .responsive-page .countdown-digits { justify-content:space-between; gap:16px; width:100%; }
  .responsive-page .hero-bottom { position:relative; inset:auto; padding:0 6% 16px; font-size:9px; }
  .responsive-page .intro-copy p:not(.large),.responsive-page .community-copy p:not(.eyebrow) { font-size:15px; }
  .responsive-page .section .under-link { min-height:44px; align-items:center; }
  .responsive-page .tabs { flex-wrap:wrap; max-width:100%; }
}
@media(max-width:600px) {
  header.centered-header { grid-template-columns:minmax(0,1fr) auto; gap:10px; padding:8px 16px; }
  header.centered-header > .brand { grid-column:1; justify-self:center; }
  header.centered-header > .menu { grid-column:2; padding:10px; font-size:12px; }
  header.centered-header .club-identity-row { gap:8px; }
  header.centered-header .club-identity-row > img:not(.club-horizontal-logo) { width:40px; height:48px; padding:0; }
  header.centered-header .club-identity-row > .club-horizontal-logo { width:124px; height:auto; }
  header.centered-header > .brand > small { font-size:8px; }
  .responsive-page .top-social { gap:8px; }
  .responsive-page .top-social-handle { font-size:10px; }
  .responsive-page .topbar .top-social-icons { gap:2px; }
  .responsive-page .topbar .top-social-icon { width:28px; height:36px; }
  .responsive-page .field-gallery { width:100%; min-width:0; }
  .responsive-page .field-gallery-controls { gap:10px; }
  .responsive-page .field-gallery-controls p { font-size:12px; }
  .responsive-page .section h2 { font-size:clamp(28px,8.5vw,40px); }
  .responsive-page #club .club-quick-tile span { font-size:clamp(17px,5vw,22px); }
  .responsive-page .search-card-grid article { min-width:0; padding:22px; }
  .responsive-page .tryout-registration h2 { font-size:32px; }
}
@media(max-width:360px) {
  .responsive-page .player-info,.responsive-page .roster-stat-details { padding-left:10px; padding-right:10px; }
  .responsive-page .players-grid { grid-template-columns:1fr; }
  .responsive-page .player-photo { aspect-ratio:4/3; }
  .responsive-page .roster-player-stats { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .responsive-page .stat-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .responsive-page .leader-person > img,.responsive-page .leader-first .leader-person > img { width:42px; height:48px; }
  .responsive-page .leader-rank { width:18px; }
  .responsive-page .leader-first .leader-value { font-size:30px; }
  .responsive-page .topbar { padding-left:8px; padding-right:8px; }
}
@media(max-height:480px) and (orientation:landscape) {
  .responsive-page .standings-team-tabs { position:static; }
  dialog.field-lightbox[open] { padding:10px 16px; grid-template-rows:auto minmax(70px,1fr) 58px; gap:8px; }
  dialog.field-lightbox .field-lightbox-header { min-height:52px; padding-right:160px; gap:4px; }
  dialog.field-lightbox .field-lightbox-header > div:first-child { min-height:0; padding-right:0; flex-direction:row; justify-content:flex-start; align-items:center; gap:12px; }
  dialog.field-lightbox .field-lightbox-header strong { display:none; }
  dialog.field-lightbox .field-lightbox-toolbar { gap:8px; }
  dialog.field-lightbox .field-lightbox-toolbar button { min-height:36px; padding:6px 12px; }
  dialog.field-lightbox .field-lightbox-label { display:none; }
  dialog.field-lightbox .field-lightbox-thumbnails { grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:64px; overflow:auto; }
  dialog.field-lightbox .field-lightbox-thumbnails img { height:42px; }
}
@media(prefers-reduced-motion:reduce) {
  .responsive-page *, .responsive-page *::before, .responsive-page *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}
@media(max-width:600px) {
  .responsive-page .footer-top { grid-template-columns:minmax(0,1fr); }
  .responsive-page .footer-top > .footer-links { grid-column:1; }
}
@media(max-width:850px) { .responsive-page .season-stamp { display:none; } .responsive-page .schedule-hero > div:first-child { min-width:0; width:100%; } }
