/* Restoration contract: loaded last, shared by all pages.
   Based on Design Standard 1.0, while preserving current copy and assets. */
:root{--header-clearance:var(--ds-header);--mobile-header-space:var(--ds-header);--section-room:var(--ds-available);--h1:var(--ds-hero);--h2:var(--ds-title);--h3:var(--ds-card);--section-y:var(--ds-pad);--text-1:var(--ds-hero);--text-2:var(--ds-title);--text-3:var(--ds-card)}
html{scroll-padding-top:var(--ds-header);font-synthesis:none}
body{font-family:var(--ds-body)}
*,*::before,*::after{box-sizing:border-box}
html body main [hidden]{display:none!important}
html body main :is(.wrap,.section-copy,.zgo-shell,.zs-wrap,.zc-inner,.zx-inner,.znf-shell,.znf-panel,.territory-card,.conventional-cards>article){min-width:0}
html body main :is(h1,h2,h3):not(:is(dialog,.device-art,[class*="device-"],.book-pin,.zc-profile,.zc-console-panels) *){font-family:var(--ds-display)!important;font-weight:400!important;font-synthesis:none!important;letter-spacing:0!important}
html body main h2:not(:is(dialog,.device-art,[class*="device-"],.book-pin,.form-card,.znf-panel,.zc-profile,.zc-console-panels) *){font-size:var(--ds-title)!important;line-height:1.1!important;overflow-wrap:normal;word-break:normal}
html body main h3:not(:is(dialog,.device-art,[class*="device-"],.book-pin,.zc-profile,.zc-console-panels) *){font-size:var(--ds-card)!important;line-height:1.15!important;overflow-wrap:normal;word-break:normal}
html body main :is(.section-copy,.zgo-copy,.zs-copy,.zsa-copy,.zx-copy)>p:not(:is(.eyebrow,[class$="eyebrow"],.note,[class$="note"])){font:400 var(--ds-copy)/1.55 var(--ds-body)}
html body main :is(.territory-card,.conventional-cards article,.zs-step-copy,.zgo-step-copy) p{font:400 1rem/1.5 var(--ds-body)}
html body main :is(input,select,textarea){font-family:var(--ds-body);font-size:1rem;max-width:100%}
html body main :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]),select){min-height:48px}
html body main textarea{min-height:120px;resize:vertical}
html body main :is(.button.outline,.zh-cta--secondary,.znh-secondary){background:#031529cc!important;color:#fff!important;border-color:#70bfff!important}
html body main .button.outline-blue{background:transparent!important;color:#0062ff!important}
html body main :is(a,button):focus-visible{outline:3px solid #008bff;outline-offset:4px}
/* One navigation size and one real logo. No raster navigation overlay. */
html body #header{min-height:var(--ds-header);max-height:none;padding:12px var(--ds-gutter);visibility:visible!important;pointer-events:auto!important;}
html body #header .logo{width:clamp(140px,14vw,190px)}
html body #header .logo img{width:100%;height:auto;object-fit:contain}
html body #header .nav-trigger{font:600 var(--ds-nav)/1.25 var(--ds-ui)}
html body #header :is(a,button){cursor:pointer}
html body #header .menu-toggle{width:44px;height:44px;min-width:44px;min-height:44px}
html body #header .nav-cta{font:700 1rem/1.25 var(--ds-ui);min-height:48px}
html body main :is(.zh-hero,.znh-hero,.page-hero.mh-hero) h1{width:100%!important;max-width:100%;transform:none!important;scale:none!important}
html body main .znh-scene img{object-fit:cover!important}
/* Tournament hero uses the same height rule as Players and Home. */
html body main #hero.tp-hero{height:auto;min-height:calc(var(--ds-header) + min(var(--ds-hero-height),var(--ds-available)));max-height:none;margin:0;padding:calc(var(--ds-header) + 40px) var(--ds-gutter) 40px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:visible;}
#hero.tp-hero .tp-copy{min-width:0;max-width:600px}
#hero.tp-hero .tp-trust{flex-wrap:wrap;gap:12px 18px}
#hero.tp-hero .tp-trust li{white-space:normal}
html body main #hero.tp-hero h1{font:400 var(--ds-hero)/1.05 var(--ds-display);overflow-wrap:normal;}
/* Footer contact text follows the footer scale; signature artwork is untouched. */
html body .zgf :is(.zgf-nav,.zgf-contact) h3{font:700 1.125rem/1.25 var(--ds-ui);letter-spacing:.08em}
html body .zgf :is(.zgf-nav a,.zgf-contact-link,.zgf-gst,address){font:400 1rem/1.5 var(--ds-body);overflow-wrap:anywhere;word-break:normal}
html body .zgf .zgf-contact-link{max-width:100%;min-width:0}
html body .zgf .zgf-contact-link span{min-width:0}
/* Cards surround the court but remain in flow, so longer headings cannot overlap. */
@media(min-width:1024px){
 html body #ecosystem{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1.3fr) minmax(0,1fr);grid-template-rows:auto auto auto;gap:24px 20px;min-height:0;max-height:none;padding:var(--ds-pad) var(--ds-gutter);}
 /* Player record shares the heading row (top right), so the section needs no fourth row. */
 #ecosystem .eco-heading{grid-column:1/3;grid-row:1;align-self:end;width:100%;margin:0 0 4px;}
 #ecosystem .eco-cards{display:contents}
 #ecosystem .eco-card{position:relative;inset:auto;width:100%;height:auto;min-height:0;align-self:center;padding:20px;}
 #ecosystem .eco-tour{grid-area:2/1}#ecosystem .eco-player{grid-area:2/3}
 #ecosystem .eco-clubs{grid-area:3/1}#ecosystem .eco-sponsor{grid-area:3/3}
 #ecosystem .eco-record{grid-area:1/3;width:100%;align-self:end}
 #ecosystem .eco-scene{position:relative;inset:auto;grid-area:2/2/4/3;margin:0 -24%;min-height:310px;align-self:stretch;}
 #ecosystem .eco-icon{width:44px;height:44px}
 #ecosystem .eco-card>div{padding-left:10px}
 html body #ecosystem h3{font-size:var(--ds-card)!important}
}
@media(max-width:1023px){
 html body #header .nav-bar,html body #header .nav-cta{display:none!important}
 html body #header .menu-toggle{display:flex!important}
 html body .header-actions{margin-left:auto}
 html body .menu-dialog{max-width:100vw;max-height:100dvh;overflow-y:auto}
 html body main .section{padding-inline:var(--ds-gutter)}
 html body main :is(.section,.v-section,.v5-band,.zgo,.zs-section,.zsa-section,.zc-section,.z4):not(.mh-hero){height:auto;max-height:none;}
 html body main :is(.territory-section,.national-sponsorship,.conventional-sponsorship){padding:var(--ds-pad) var(--ds-gutter)}
 html body main :is(.territory-section,.national-sponsorship,.conventional-sponsorship)>.wrap{width:100%;max-width:720px;margin-inline:auto;}
 html body main .territory-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;gap:16px;padding:4px 2px 16px;max-width:100%;}
 html body main .territory-card{flex:0 0 min(88%,420px);min-width:0;scroll-snap-align:start;padding:20px;}
 html body main .territory-card img{height:160px;object-fit:contain}
 html body main .national-sponsorship>.wrap{display:flex;flex-direction:column;gap:20px;align-items:stretch}
 html body main .national-sponsorship img{order:-1;width:100%;height:220px;max-height:none;object-fit:contain}
 html body main .conventional-cards{grid-template-columns:minmax(0,1fr);gap:16px}
 html body main .v-sponsor-audience .v-audience-nodes{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px 16px!important}
 html body main .v-sponsor-audience .v-audience-nodes h3{font:700 var(--ds-row)/1.2 var(--ds-ui)!important;overflow-wrap:normal;}
 html body main .v-sponsor-audience .v-audience>:is(.v-wire,.v-live-wire){display:none!important}
 html body main .zsa-terms-intro{display:flex;flex-direction:column;min-height:0;gap:20px;align-items:stretch}
 html body main .zsa-terms-intro .zsa-copy{max-width:100%;padding-bottom:0}
 html body main .zsa-terms-art{position:relative;inset:auto;width:100%;max-width:600px;aspect-ratio:847/535;margin:0 auto;max-height:280px;}
 html body main .zsa-term-grid{grid-template-columns:1fr;gap:16px}
 html body main #requirements.ground-types>.wrap{display:flex;width:100%;flex-direction:column;align-items:stretch;gap:20px}
 html body main .zs-coverage .zs-wrap{display:flex;flex-direction:column;gap:20px}
 html body main .zs-coverage-head{order:0}.zs-coverage .zs-venue{order:1}.zs-coverage .zs-top-points{order:2}.zs-coverage .zs-bottom-points{order:3}.zs-coverage .zs-focus-note{order:4}
 html body main .zs-coverage :is(.zs-top-points,.zs-bottom-points){display:grid;grid-template-columns:1fr;gap:14px}
 html body main .zs-coverage .zs-connectors{display:none}
 html body main .zs-touchpoint>span>span{font-size:1rem;line-height:1.5}
 html body main .zs-partner .zs-steps{grid-template-columns:1fr;gap:28px}
 html body main #hero.tp-hero{display:flex;flex-direction:column;align-items:stretch;padding:calc(var(--ds-header) + 24px) var(--ds-gutter) 28px;gap:16px;}
 #hero.tp-hero .tp-art{position:relative;flex:none;min-height:220px;height:clamp(220px,55vw,300px);max-height:none;width:100%;margin:0;container-type:normal;}
 #hero.tp-hero .tp-trust{margin:0;justify-content:flex-start}
 #hero.tp-hero .tp-mobile-art{object-fit:contain;object-position:center;mask-image:none}
 #hero.tp-hero .tp-tagline{margin:0;font-size:.75rem;line-height:1.5}
 html body main .zc-section[data-kind]{height:auto;max-height:none;min-height:0;display:block}
 html body main .zc-section[data-kind] .zc-hero{height:auto;min-height:0;aspect-ratio:auto;padding:24px 0 280px}
 html body main .zc-section[data-kind] .zc-copy{position:relative;inset:auto;width:auto;max-width:none;margin:0 var(--ds-gutter);padding:0}
 html body main .zc-section[data-kind] .zc-cup{left:25%;top:auto;bottom:8px;width:50%;height:260px;max-height:none}
 html body main .zc-section[data-kind] .zc-nav{height:auto;min-height:0}
 html body main .zc-section[data-kind] .zc-tab{min-width:0;min-height:150px;padding:12px 6px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
 html body main .zc-section[data-kind] .zc-tab-copy{padding:0;border:0}
 html body main .zc-section[data-kind] .zc-tab img{width:42px;height:60px!important;object-fit:contain}
 html body main .zc-section[data-kind] .zc-tab-description{font-size:.875rem;line-height:1.4;max-width:none}
 html body main .zc-section[data-kind] .zc-tab-name{font-size:1rem;white-space:normal}
 html body main .zc-section[data-kind] .zc-intro{font:400 1rem/1.5 var(--ds-body)}
 html body main :is(.znf-shell,.znf-story,.znf-panel){min-width:0;max-width:100%;height:auto;max-height:none}
 html body main .znf-shell{grid-template-columns:1fr}
 html body main .znf-story{padding:0!important;min-height:0!important}
 html body .zgf :is(.zgf-nav,.zgf-contact) h3{font-size:1rem}
 html body .zgf :is(.zgf-nav a,.zgf-contact-link,.zgf-gst,address){font-size:.9375rem}
}
@media(max-width:767px){
 html body main .mh-hero h1 .znh-br{display:none!important}
 html body main :is(h1,h2,h3) br{display:none}
 html body main :is(h1,h2,h3) .ln{display:inline}
 html body main .mh-hero .mh-intro{max-width:34ch!important}
 html body main .rg-hero{min-height:120px}
 html body main .rg-grid{grid-template-columns:1fr}
 html body main .rg-wide{grid-column:1}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}html body main .eco-wire-pulses{animation:none}}
/* Inner landing pages use the same single copy inset as the primary pages. */
@media(min-width:1024px){
 html body main .page-hero.mh-hero .page-hero-copy{position:relative;width:48%;max-width:600px;padding:0;margin:0;min-width:0;z-index:3;}
 html body main .page-hero.mh-hero .page-hero-art{position:absolute;inset:0;height:100%;width:100%;}
 html body main .page-hero.mh-hero h1{font:400 var(--ds-hero)/1.05 var(--ds-display);margin-bottom:20px;}
 html body main .page-hero.mh-hero .page-hero-lede{font:400 var(--ds-lead)/1.5 var(--ds-body);margin-top:0;}
 html body.bengaluru-page main #hero.mh-hero{height:auto;min-height:calc(var(--ds-header) + min(var(--ds-hero-height),var(--ds-available)));max-height:none;margin:0;padding:0!important;}
 html body.bengaluru-page main #hero .section-inner{height:auto;min-height:inherit;max-width:1360px;margin:auto;padding:calc(var(--ds-header) + 40px) var(--ds-gutter) 40px;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;}
 html body.bengaluru-page main #hero .copy{min-width:0;max-width:600px;padding:0;}
}
