/* Home con fotografía y vídeo reales de Padel Slide */
.site-atmosphere{background:#06182b!important}
.active-tournament-board.is-male{background-image:none!important}

.real-photo-hero{min-height:720px;background:#021923;isolation:isolate}
.real-photo-hero::before{position:absolute;z-index:0;left:5.5vw;bottom:0;width:1px;height:31%;background:linear-gradient(transparent,rgba(18,189,211,.35));content:""}
.real-photo-hero .hero-media{position:absolute;z-index:0;top:118px;right:4vw;bottom:56px;width:min(45vw,710px);overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#061f2a}
.real-photo-hero .hero-media::after{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,25,35,.34),transparent 34%),linear-gradient(0deg,rgba(2,25,35,.24),transparent 40%);content:"";pointer-events:none}
.real-photo-hero .hero-image{width:108%;height:108%;object-fit:cover;object-position:center 46%;animation:hero-photo-drift 14s ease-in-out infinite alternate;will-change:transform}
.real-photo-hero .hero-overlay{z-index:1;background:linear-gradient(90deg,#021923 0%,#021923 35%,rgba(2,25,35,.9) 43%,transparent 63%)}
.real-photo-hero .hero-content{z-index:2;max-width:none;text-align:left}
.real-photo-hero .hero-content h1{max-width:650px;font-size:clamp(72px,7.5vw,112px)}
.real-photo-hero .hero-copy{max-width:510px}
.hero-photo-index{position:absolute;z-index:2;right:20px;bottom:18px;color:rgba(255,255,255,.7);font:700 8px/1 "Space Grotesk",sans-serif;letter-spacing:.16em}
.hero-scroll{position:absolute;z-index:3;right:clamp(24px,4vw,64px);bottom:30px;display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.65);font-size:8px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.hero-scroll i{display:block;width:38px;height:1px;background:var(--green)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.banner-hero{align-items:flex-end;background:#020d1d}
.banner-hero::before{display:none}
.banner-hero .hero-media{inset:86px 0 0;width:100%;border:0;background:#020d1d}
.banner-hero .hero-media::after{background:linear-gradient(0deg,rgba(2,13,29,.7),transparent 30%)}
.banner-hero .hero-image{width:100%;height:100%;object-fit:cover;object-position:center;animation:banner-hero-zoom 14s ease-in-out infinite alternate}
.banner-hero .hero-overlay{background:linear-gradient(0deg,rgba(2,13,29,.82) 0%,rgba(2,13,29,.16) 30%,transparent 60%)}
.banner-hero .hero-banner-content{display:flex;align-items:flex-end;justify-content:center;padding-top:0;padding-bottom:48px}
.banner-hero .hero-actions{position:relative;z-index:3;justify-content:center}

.training-brand-title{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-bottom:54px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.12);opacity:1!important;transform:none!important}
.training-brand-title>div{width:min(380px,46%)}
.training-logo-lockup{position:relative;aspect-ratio:2/1}
.training-logo-lockup img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.training-logo-symbol{clip-path:inset(0 0 32% 0)}
.training-logo-wordmark{clip-path:inset(68% 0 0 0);filter:invert(1) grayscale(1) brightness(1.8)}
.training-brand-title p{margin:0;color:#8ba4aa;font-size:10px;font-weight:800;letter-spacing:.18em;text-align:right;text-transform:uppercase}
.training-story{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);gap:clamp(54px,7vw,105px);align-items:center;opacity:1!important;transform:none!important}
.training-media-composition{position:relative;min-height:650px;padding:0 72px 74px 0}
.training-video-frame{position:absolute;inset:0 72px 74px 0;overflow:hidden;background:#031721}
.training-video-frame::after{position:absolute;inset:0;border:1px solid rgba(255,255,255,.12);content:"";pointer-events:none}
.training-video-frame video{display:block;width:100%;height:100%;object-fit:cover;background:#031721}
.training-video-label{position:absolute;left:22px;bottom:20px;padding:8px 11px;color:#fff;background:rgba(3,23,33,.76);font-size:8px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;backdrop-filter:blur(8px)}
.training-video-toggle{position:absolute;z-index:3;top:20px;right:20px;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.55);border-radius:50%;color:#fff;background:rgba(3,23,33,.56);cursor:pointer;backdrop-filter:blur(8px);transition:.2s ease}
.training-video-toggle:hover{color:#03212b;border-color:var(--green);background:var(--green)}
.training-video-toggle:active{transform:scale(.94)}
.training-video-toggle:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.training-video-toggle span{transform:translateX(1px)}
.training-facility-photo{position:absolute;z-index:4;right:0;bottom:0;width:42%;height:38%;margin:0;border:8px solid #041a24;background:#062733;box-shadow:0 24px 54px rgba(0,0,0,.32);overflow:hidden}
.training-facility-photo img{width:100%;height:100%;object-fit:cover}
.training-story .training-copy{padding:20px 0}
.training-story .training-copy>p:not(.eyebrow){max-width:480px}

.class-card-image img,.catalog-image img,.club-editorial figure img{filter:none!important}
.catalog-image img{object-position:center}
.catalog-card[data-catalog-category="accesorios"] .catalog-image img{object-position:center 38%}
.club-photo-main img{object-position:center}
.club-editorial figure:nth-of-type(2) img{object-position:center 24%}
.club-editorial figure:nth-of-type(3) img{object-position:center 35%}
.footer-contact-links{display:grid!important;gap:8px!important}
.footer-contact-links a{width:max-content;color:#bac9d3;font-size:13px;transition:color .2s ease}
.footer-contact-links a:hover{color:var(--green)}
.footer-contact-links a:last-child{margin-top:4px;color:var(--blue);font-weight:800}
.footer-contact-links a:last-child span{margin-left:8px;color:var(--green)}

.contact-intro .contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.contact-intro .contact-actions .ghost{border-color:rgba(255,255,255,.28)}
.contact-details article{align-items:start}
.contact-details article>a{display:grid;gap:9px;width:fit-content;color:#eef6f4;transition:color .2s ease}
.contact-details article>a:hover{color:var(--green)}
.contact-details article>a>span{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.contact-phone-list{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.contact-phone-list a{color:#eef6f4;font:600 18px "Space Grotesk",sans-serif;transition:color .2s ease}
.contact-phone-list a:hover{color:var(--green)}
.contact-details a:focus-visible,.contact-actions a:focus-visible{outline:2px solid var(--green);outline-offset:5px}

/* Ranking casi transparente sobre el degradado general */
.rankings-section .public-table-card{border-color:rgba(18,189,211,.28);background:rgba(0,0,0,.06);backdrop-filter:blur(3px)}
.rankings-section .public-table-card thead{background:rgba(0,0,0,.16)}
.rankings-section .public-table-card td,
.rankings-section .public-table-card tbody tr:hover td,
.rankings-section .public-table-card tr.rank-top td,
.rankings-section .public-table-card tr.rank-1 td{background:rgba(0,0,0,.12)!important}
.rankings-section .public-table-card td:first-child,
.rankings-section .public-table-card tr.rank-top td:first-child,
.rankings-section .public-table-card tr.rank-1 td:first-child{background:rgba(0,0,0,.2)!important}

/* Superficies transparentes para que el fondo sea el protagonista */
.ranking-tabs,
.public-encounters,
.class-public-card,
.class-grid .public-item-card,
.public-item-card,
.active-tournament-board,
.active-tournament-board.is-male,
.item-empty-card{border-color:rgba(18,189,211,.24)!important;background:rgba(0,0,0,.08)!important;box-shadow:none!important;backdrop-filter:blur(3px)}
#public-encounter-list article,
.public-item-card .card-meta,
.active-tournament-selectors select,
.active-group,
.active-round article,
.active-rules{border-color:rgba(255,255,255,.12)!important;background:rgba(0,0,0,.13)!important;box-shadow:none!important}
.active-standing{background:rgba(0,0,0,.1)!important}
.active-tournament-board.is-male{color:#edf7f8!important}
.active-tournament-board.is-male .active-group h4,
.active-tournament-board.is-male .active-round h4,
.active-tournament-board.is-male .active-standing,
.active-tournament-board.is-male .active-round article div,
.active-tournament-board.is-male .active-rules{color:#dbeaec!important}
.active-tournament-board.is-male .active-standing small,
.active-tournament-board.is-male .active-round article small{color:#8fa8ae!important}

.facilities-section{padding:clamp(88px,9vw,138px) 0;background:#031923;color:#fff}
.facilities-section .reveal{opacity:1!important;transform:none!important}
.facilities-section .public-section-head h2{color:#f1f7f6!important}
.facilities-section .public-section-head>p{color:#8fa5aa}
.court-explorer{margin-top:58px}
.court-explorer-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12)}
.court-explorer-heading span{color:#7f989f;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.court-explorer-heading strong{color:var(--green);font:600 clamp(24px,3vw,40px)/1 "Space Grotesk",sans-serif;letter-spacing:-.04em}
.court-mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(150px,15vw,220px);gap:8px}
.court-tile{position:relative;order:0;min-width:0;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.11);color:#fff;background:#061f2a;cursor:pointer;transition:border-color .25s ease,filter .25s ease}
.court-tile.active{order:-1;grid-column:span 2;grid-row:span 2;border-color:var(--blue)}
.court-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .3s ease}
.court-tile:not(.active) img{filter:saturate(.7) brightness(.72)}
.court-tile:hover img,.court-tile:focus-visible img{filter:none;transform:scale(1.025)}
.court-tile:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.court-tile span{position:absolute;z-index:2;right:12px;bottom:10px;display:grid;place-items:center;width:34px;height:34px;color:#fff;background:rgba(3,25,35,.76);font:700 9px "Space Grotesk",sans-serif;backdrop-filter:blur(6px)}
.court-tile.active span{color:#031923;background:var(--green)}

.today-availability{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,2fr);align-items:center;gap:34px;margin-top:24px;padding:24px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.today-availability-copy small{color:var(--blue);font-size:8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.today-availability-copy h3{margin-top:5px;color:#f1f7f6;font-size:clamp(21px,2.5vw,31px);letter-spacing:-.04em}
.today-availability-copy p{margin:5px 0 0;color:#81979d;font-size:10px;font-weight:700;text-transform:capitalize}
.today-availability-copy .availability-action-hint{max-width:230px;margin-top:15px;color:#a6bcc1;font-size:10px;font-weight:600;line-height:1.55;text-transform:none}
.mobile-action-hint{display:none}
.ranking-action-hint{margin-top:12px;margin-bottom:0;color:#a6bcc1;font-size:10px;font-weight:700;line-height:1.5}
.today-availability-content{min-width:0}
.availability-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(58px,1fr));gap:6px;margin-bottom:13px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.09);overflow-x:auto;overscroll-behavior-x:contain}
.availability-day-tabs button{display:grid;grid-template-columns:1fr;place-items:center;gap:3px;min-width:58px;height:54px;padding:5px;border:1px solid rgba(18,189,211,.25);border-radius:3px;color:#91a7ad;background:rgba(18,189,211,.04);cursor:pointer}
.availability-day-tabs button small{font:700 9px "Space Grotesk",sans-serif;text-transform:uppercase}
.availability-day-tabs button strong{color:#f1f7f6;font:700 15px "Space Grotesk",sans-serif}
.availability-day-tabs button:hover,.availability-day-tabs button:focus-visible{border-color:#12bdd3;outline:0}
.availability-day-tabs button.active{color:#073741;border-color:#7bdc45;background:#7bdc45}
.availability-day-tabs button.active strong{color:#031923}
.today-availability-courts{display:grid;gap:9px}
.today-availability-courts article{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.today-availability-courts article:last-child{border-bottom:0}
.today-availability-courts strong{color:var(--green);font:700 12px "Space Grotesk",sans-serif}
.today-availability-courts article div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.today-availability-courts article div>a{display:grid;min-width:67px;height:34px;padding:0 10px;place-items:center;border:1px solid rgba(18,189,211,.32);color:#eff9fa;background:rgba(18,189,211,.07);font:700 12px "Space Grotesk",sans-serif;transition:border-color .18s ease,color .18s ease,background .18s ease}.today-availability-courts article div>a:hover,.today-availability-courts article div>a:focus-visible{border-color:#7bdc45;color:#031923;background:#7bdc45;outline:0}
.today-availability-courts p{margin:0;color:#91a7ad;font-size:12px}

.social-gallery{margin-top:clamp(80px,9vw,130px)}
.social-gallery-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:26px}
.social-gallery-head small{color:var(--blue);font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.social-gallery-head h3{margin-top:7px;color:#f1f7f6;font-size:clamp(34px,4.5vw,62px);letter-spacing:-.055em}
.bar-carousel-controls{display:flex;align-items:center;gap:8px}
.bar-carousel-controls>span{min-width:64px;margin-right:8px;color:#81979d;font:700 9px "Space Grotesk",sans-serif;letter-spacing:.12em}
.bar-carousel-controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.18);color:#fff;background:transparent;font-size:18px;cursor:pointer;transition:.2s ease}
.bar-carousel-controls button:hover{color:#031923;border-color:var(--green);background:var(--green)}
.bar-carousel-controls button:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.carousel-chevron{width:9px;height:9px;display:block;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}.carousel-chevron.previous{transform:rotate(-135deg)}.carousel-chevron.next{transform:rotate(45deg)}
.bar-carousel-track{display:grid;grid-auto-flow:column;grid-auto-columns:min(68%,820px);gap:16px;overflow-x:auto;padding-bottom:14px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--blue) rgba(255,255,255,.08);overscroll-behavior-x:contain}
.bar-carousel-track:focus-visible{outline:2px solid var(--green);outline-offset:5px}
.bar-carousel-track figure{height:clamp(340px,42vw,570px);margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.12);scroll-snap-align:start;background:#061f2a}
.bar-carousel-track img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.bar-carousel-track figure:hover img{transform:scale(1.025)}

@keyframes hero-photo-drift{0%{transform:translate3d(-1.8%,0,0) scale(1.04)}100%{transform:translate3d(1.8%,-.6%,0) scale(1.11)}}
@keyframes banner-hero-zoom{0%{transform:scale(1.01)}100%{transform:scale(1.075)}}

@media(max-width:1000px){
  .training-story{grid-template-columns:1fr;gap:58px}
  .training-media-composition{min-height:620px}
  .training-story .training-copy{max-width:700px}
}

@media(max-width:800px){
  .real-photo-hero{min-height:760px;align-items:flex-end;padding-bottom:38px}
  .real-photo-hero .hero-media{top:70px;right:0;bottom:auto;width:78%;height:44%;border-right:0}
  .real-photo-hero .hero-image{object-position:center 42%}
  .real-photo-hero .hero-overlay{background:linear-gradient(0deg,#021923 0%,#021923 38%,rgba(2,25,35,.86) 51%,transparent 70%)}
  .real-photo-hero .hero-content{padding-top:330px}
  .real-photo-hero .hero-content h1{font-size:clamp(56px,16vw,76px)}
  .banner-hero{min-height:720px;padding-bottom:24px}
  .banner-hero .hero-media{inset:70px 0 0;width:100%;height:auto;border:0}
  .banner-hero .hero-image{object-position:center}
  .banner-hero .hero-overlay{background:linear-gradient(0deg,rgba(2,13,29,.94) 0%,rgba(2,13,29,.28) 34%,transparent 65%)}
  .banner-hero .hero-banner-content{padding-top:0;padding-bottom:22px}
  .banner-hero .hero-actions{width:min(100%,520px)}
  .hero-scroll{display:none}
  .training-brand-title{align-items:flex-start;flex-direction:column;margin-bottom:42px}
  .training-brand-title>div{width:min(380px,78%)}
  .training-brand-title p{text-align:left}
  .training-media-composition{min-height:520px;padding:0 38px 48px 0}
  .training-video-frame{right:38px;bottom:48px}
  .training-facility-photo{width:45%;height:36%;border-width:6px}
  .court-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px}
  .court-tile.active{grid-column:span 2;grid-row:span 2}
  .bar-carousel-track{grid-auto-columns:86%}
  .bar-carousel-track figure{height:430px}
}

@media(max-width:520px){
  .real-photo-hero{min-height:730px}
  .real-photo-hero .hero-media{width:88%;height:42%}
  .real-photo-hero .hero-content{padding-top:300px}
  .real-photo-hero .hero-copy{margin:22px 0}
  .banner-hero{min-height:690px}
  .banner-hero .hero-content{padding-top:0}
  .banner-hero .hero-actions{width:100%;max-width:340px;margin-inline:auto}
  .banner-hero .hero-actions .button{width:100%}
  .contact-intro .contact-actions{align-items:stretch;flex-direction:column}
  .contact-intro .contact-actions .button{width:100%}
  .training-brand-title>div{width:100%;max-width:340px}
  .training-story{gap:42px}
  .training-media-composition{min-height:440px;padding:0 22px 40px 0}
  .training-video-frame{right:22px;bottom:40px}
  .training-video-toggle{top:14px;right:14px;width:44px;height:44px}
  .training-video-label{left:14px;bottom:14px;max-width:55%;line-height:1.5}
  .training-facility-photo{width:48%;height:32%;border-width:5px}
  .court-explorer{margin-top:40px}
  .court-explorer-heading{align-items:flex-start;flex-direction:column-reverse;gap:8px}
  .court-mosaic{grid-auto-rows:112px;gap:5px}
  .court-tile.active{grid-row:span 2}
  .today-availability{grid-template-columns:1fr;gap:17px;margin-top:18px;padding:20px 0}
  .today-availability-courts article{grid-template-columns:1fr;gap:8px}
  .today-availability-courts article div{justify-content:flex-start}
  .today-availability-courts article div>a{min-width:64px;height:36px;padding:0 9px;font-size:12px}
  .social-gallery-head{align-items:flex-start;flex-direction:column}
  .bar-carousel-controls{width:100%;justify-content:flex-end}
  .bar-carousel-controls>span{margin-right:auto}
  .bar-carousel-track{grid-auto-columns:92%;gap:10px}
  .bar-carousel-track figure{height:360px}
  .rankings-section .public-table-card{background:rgba(0,0,0,.09);backdrop-filter:none}
  .rankings-section .public-table-card tbody tr{background:rgba(0,0,0,.14)}
  .ranking-tabs,.public-encounters,.class-public-card,.class-grid .public-item-card,.public-item-card,.active-tournament-board,.active-tournament-board.is-male,.item-empty-card{backdrop-filter:none}
}

/* Fondo fotográfico continuo de Padel Slide */
body{position:relative;isolation:isolate;overflow-x:clip;background-color:#000!important;background-image:linear-gradient(135deg,#000 0%,#001316 36%,#004e53 70%,#01d3dd 100%)!important;background-repeat:no-repeat!important;background-size:180% 180%!important;background-position:var(--section-bg-x) var(--section-bg-y)!important;background-attachment:fixed!important;animation:site-background-pan 24s ease-in-out infinite alternate}
body::before{position:fixed;z-index:0;inset:0;background:rgba(0,0,0,.38);content:"";pointer-events:none}
.site-atmosphere{display:none}
main,footer{position:relative;z-index:1}
main>section:not(.hero){background-color:transparent!important;background-image:none!important;animation:none!important}
.facilities-section{background-color:#031923!important}
footer{background:transparent!important;backdrop-filter:none}

@property --section-bg-x{syntax:"<percentage>";inherits:false;initial-value:15%}
@property --section-bg-y{syntax:"<percentage>";inherits:false;initial-value:25%}
@keyframes site-background-pan{0%{--section-bg-x:15%;--section-bg-y:25%}100%{--section-bg-x:85%;--section-bg-y:72%}}

@media(max-width:800px){
  body{background-size:210% 210%!important;animation-duration:30s}
}

@media(prefers-reduced-motion:reduce){
  .real-photo-hero .hero-image{animation:none;transform:none}
  .training-video-toggle{transition:none}
  .court-tile,.court-tile img,.bar-carousel-controls button,.bar-carousel-track img{transition:none}
  body{animation:none!important;background-position:center!important}
}

/* Ajuste final para pantallas móviles */
@media(max-width:700px){
  html{scroll-padding-top:72px}
  body{background-attachment:scroll!important;background-size:240% 240%!important}
  img,video{max-width:100%}
  .shell{width:calc(100% - 32px)}
  .header{position:sticky;top:0}
  .nav{height:68px;padding-inline:16px}
  .brand-logo{max-width:118px;height:auto}
  .nav-links{top:68px;max-height:calc(100svh - 68px);overflow-y:auto;padding:18px 24px 24px}
  .banner-hero{min-height:calc(100svh - 68px);padding-bottom:18px}
  .banner-hero .hero-media{inset:0;height:100%}
  .banner-hero .hero-image{object-position:58% center}
  .banner-hero .hero-overlay{background:linear-gradient(0deg,rgba(2,13,29,.98) 0%,rgba(2,13,29,.72) 43%,rgba(2,13,29,.14) 72%)}
  .banner-hero .hero-banner-content{width:calc(100% - 32px);padding-bottom:24px}
  .banner-hero .hero-banner-content h1{max-width:100%;font-size:clamp(42px,13vw,66px);line-height:.92;overflow-wrap:anywhere}
  .hero-copy{max-width:100%;font-size:14px;line-height:1.65}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .hero-actions .button{width:100%;min-width:0}
  .premium-info-grid{grid-template-columns:1fr}
  .premium-info-grid article{min-width:0;padding-inline:0}
  .public-data-section,.active-tournaments-section,.training-section,.catalog-section,.club-section,.contact-section,.facilities-section{padding:60px 0}
  .public-section-head,.active-tournaments-head{gap:20px}
  .public-section-head h2,.active-tournaments-head h2,.training-copy h2,.club-copy h2,.contact-layout h2{font-size:clamp(36px,11vw,52px);line-height:.98;overflow-wrap:anywhere}
  .public-section-head>p,.active-tournaments-head>p,.training-copy>p:not(.eyebrow),.club-copy>p:not(.eyebrow){font-size:14px;line-height:1.7}
  .ranking-tabs,.class-tabs,.catalog-filters{margin-top:30px;margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px}
  .public-table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .public-table-card table{min-width:720px}
  .training-story{gap:38px}
  .training-media-composition{min-height:390px;padding:0}
  .training-video-frame{inset:0;width:100%;height:100%}
  .training-facility-photo{display:none}
  .class-card-image{height:220px}
  .class-card-content{padding:26px 22px}
  .catalog-grid{grid-template-columns:1fr;gap:28px;margin-top:28px}
  .catalog-image{aspect-ratio:4/3}
  .catalog-card h3{font-size:23px}
  .item-empty-card{grid-column:1/-1;padding:30px 20px;text-align:center}
  .tournament-grid{grid-template-columns:1fr}
  .public-item-card,.featured-tournament{min-height:0;padding:25px 21px}
  .club-editorial{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:14px}
  .club-copy,.club-photo-main{grid-column:auto;grid-row:auto;padding:0}
  .club-editorial figure{height:240px}
  .contact-layout{grid-template-columns:1fr;gap:42px}
  .contact-details article{grid-template-columns:1fr;gap:7px}
  .court-mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:108px}
  .court-tile.active{grid-column:1/-1;grid-row:span 2}
  .social-gallery{margin-top:64px}
  .bar-carousel-track{grid-auto-columns:92%}
  .bar-carousel-track figure{height:min(92vw,360px)}
  .footer-grid{align-items:flex-start;gap:24px}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:8px}
  .mobile-booking-cta{right:14px;bottom:14px;left:14px;width:auto}
}

@media(max-width:420px){
  .shell,.banner-hero .hero-banner-content{width:calc(100% - 24px)}
  .nav{padding-inline:12px}
  .banner-hero .hero-banner-content h1{font-size:clamp(39px,13vw,54px)}
  .public-data-section,.active-tournaments-section,.training-section,.catalog-section,.club-section,.contact-section,.facilities-section{padding:52px 0}
  .ranking-tabs,.class-tabs,.catalog-filters{margin-inline:-12px;padding-inline:12px}
  .training-media-composition{min-height:330px}
  .class-card-content,.public-item-card,.featured-tournament{padding:22px 18px}
  .club-editorial figure{height:210px}
  .court-mosaic{grid-auto-rows:96px}
}

/* El ranking móvil permanece inmóvil durante hover, foco y pulsación */
@media(max-width:800px){
  .rankings-section .ranking-tabs{
    width:100%;
    max-width:100%;
    margin:30px auto 0!important;
    padding-inline:0!important;
    overflow:hidden;
  }
  .rankings-section .ranking-gender-switch,
  .rankings-section .ranking-division-selector,
  .rankings-section .ranking-category-options{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .rankings-section .ranking-category-options{
    overscroll-behavior-x:contain;
  }
  .rankings-section .public-table-card tbody tr,
  .rankings-section .public-table-card tbody tr:hover,
  .rankings-section .public-table-card tbody tr:active,
  .rankings-section .public-table-card tbody tr:focus-within{
    position:static!important;
    transform:none!important;
    translate:none!important;
    transition:none!important;
  }
  .rankings-section .ranking-player-name,
  .rankings-section .ranking-player-name:hover,
  .rankings-section .ranking-player-name:focus,
  .rankings-section .ranking-player-name:focus-visible,
  .rankings-section .ranking-player-name:active{
    position:static!important;
    inset:auto!important;
    margin:0!important;
    transform:none!important;
    translate:none!important;
    transition:none!important;
    -webkit-tap-highlight-color:transparent;
  }
  .rankings-section .public-table-card tbody tr td:nth-child(2),
  .rankings-section .public-table-card tbody tr:hover td:nth-child(2),
  .rankings-section .public-table-card tbody tr:active td:nth-child(2),
  .rankings-section .public-table-card tbody tr:focus-within td:nth-child(2){
    padding-inline:4px!important;
    text-align:left!important;
  }
}

/* Control de jugador estable: solo cambia el color, nunca la geometría */
.rankings-section .ranking-player-name{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  color:#f4fbfd!important;
  background:transparent!important;
  box-shadow:none!important;
  font:inherit!important;
  font-weight:800!important;
  line-height:inherit!important;
  text-align:left!important;
  text-decoration-color:rgba(123,220,69,.48)!important;
  cursor:pointer;
  transform:none!important;
  translate:none!important;
}
.rankings-section .ranking-player-name:hover,
.rankings-section .ranking-player-name:focus,
.rankings-section .ranking-player-name:focus-visible,
.rankings-section .ranking-player-name:active,
.rankings-section .ranking-player-name.is-selected{
  padding:0!important;
  border:0!important;
  color:#12bdd3!important;
  background:transparent!important;
  box-shadow:none!important;
  text-decoration-color:#12bdd3!important;
  outline:0!important;
  transform:none!important;
  translate:none!important;
}

/* Ajustes finales de presentación */
@media(min-width:801px){
  #public-encounter-list article{
    grid-template-columns:70px minmax(0,1fr) 60px minmax(0,1fr) 70px;
  }
  #public-encounter-list article>strong:first-of-type{text-align:right}
  #public-encounter-list article>strong:last-of-type{text-align:left}

  .catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .catalog-image{aspect-ratio:4/3}
}

@media(max-width:700px){
  .banner-hero{
    display:block;
    min-height:0;
    height:auto;
    padding:0 0 22px;
    background:#020d1d;
  }
  .banner-hero .hero-media{
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    aspect-ratio:1672/941;
    background:#020d1d;
  }
  .banner-hero .hero-image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    animation:none;
    transform:none;
  }
  .banner-hero .hero-overlay{display:none}
  .banner-hero .hero-banner-content{
    display:block;
    width:calc(100% - 32px);
    padding:18px 0 0;
  }
  .banner-hero .hero-actions{
    width:100%;
    max-width:none;
    margin:0;
  }

  .class-card-image{
    height:auto;
    aspect-ratio:16/10;
    background:#031721;
  }
  .class-card-image img{
    display:block;
    object-fit:contain;
    object-position:center;
  }

  .rankings-section .public-table-card{
    padding:4px;
    overflow:hidden;
  }
  .rankings-section .public-table-wrap{
    width:100%;
    overflow:visible;
  }
  .rankings-section .public-table-card table{
    display:table;
    width:100%;
    min-width:0;
    table-layout:fixed;
    border-collapse:collapse;
  }
  .rankings-section .public-table-card thead{display:table-header-group}
  .rankings-section .public-table-card tbody{display:table-row-group}
  .rankings-section .public-table-card tbody tr{
    display:table-row;
    border:0;
    background:transparent;
  }
  .rankings-section .public-table-card th{
    height:38px;
    padding:6px 2px;
    font-size:6px;
    letter-spacing:.02em;
    text-align:center;
  }
  .rankings-section .public-table-card th:first-child{width:9%}
  .rankings-section .public-table-card th:nth-child(2){width:29%;text-align:left}
  .rankings-section .public-table-card th:nth-child(n+3):nth-child(-n+6){width:10%}
  .rankings-section .public-table-card th:last-child{width:22%}
  .rankings-section .public-table-card td,
  .rankings-section .public-table-card tbody tr:hover td,
  .rankings-section .public-table-card tr.rank-top td,
  .rankings-section .public-table-card tr.rank-1 td{
    display:table-cell;
    height:48px!important;
    padding:7px 2px!important;
    border-bottom:1px solid rgba(255,255,255,.075)!important;
    font-size:9px;
    text-align:center;
    vertical-align:middle;
  }
  .rankings-section .public-table-card td:first-child{
    width:auto;
    font-size:12px;
  }
  .rankings-section .public-table-card td:first-child>span{
    display:inline!important;
    width:auto!important;
    height:auto!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .rankings-section .public-table-card td:nth-child(2){
    padding-inline:4px!important;
    text-align:left;
  }
  .rankings-section .ranking-player-name{
    display:block;
    overflow:hidden;
    font-size:9px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .rankings-section .public-table-card td.journey-points::before{
    display:none!important;
    content:none!important;
  }
  .rankings-section .public-table-card td.total-points{font-size:11px}
  .rankings-section .total-points strong{font-size:13px}
  .rankings-section .total-points small{font-size:6px}

  .catalog-image{
    width:min(100%,280px);
    aspect-ratio:4/3;
  }
}

/* Hero actions: compactas, táctiles y con una jerarquía más limpia */
.banner-hero .hero-actions{
  display:flex;
  width:auto;
  max-width:none;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.banner-hero .hero-actions .button{
  width:auto;
  min-height:46px;
  padding:0 20px;
  border-radius:999px;
  letter-spacing:.01em;
  box-shadow:0 10px 28px rgba(0,0,0,.2);
  transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.banner-hero .hero-actions .button:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(0,0,0,.27);
}
.banner-hero .hero-actions .primary{
  border-color:#7bdc45;
  background:#7bdc45;
}
.banner-hero .hero-actions .ghost{
  border-color:rgba(255,255,255,.5);
  background:rgba(2,17,27,.58);
  backdrop-filter:blur(10px);
}
.banner-hero .hero-actions .button span{
  display:grid;
  width:22px;
  height:22px;
  margin-left:10px;
  place-items:center;
  border-radius:50%;
  color:currentColor;
  background:rgba(255,255,255,.14);
}
@media(max-width:560px){
  .banner-hero .hero-banner-content{
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:0 16px 20px;
  }
  .banner-hero .hero-actions{
    display:flex;
    width:auto;
    max-width:100%;
    flex-direction:row;
    flex-wrap:wrap;
    gap:8px;
    margin:0 auto;
  }
  .banner-hero .hero-actions .button{
    width:auto;
    min-height:42px;
    padding:0 15px;
    flex:0 0 auto;
    font-size:10px;
  }
  .banner-hero .hero-actions .button span{
    width:19px;
    height:19px;
    margin-left:7px;
  }
}

/* En móvil, las acciones forman parte de la fotografía del hero */
@media(max-width:700px){
  .banner-hero{
    position:relative;
    padding-bottom:0;
  }
  .banner-hero .hero-media::after{
    z-index:1;
    background:linear-gradient(0deg,rgba(2,13,29,.88) 0%,rgba(2,13,29,.38) 24%,transparent 52%);
  }
  .banner-hero .hero-banner-content{
    position:absolute;
    z-index:4;
    right:auto;
    bottom:12px;
    left:50%;
    display:flex;
    width:100%;
    padding:0 12px;
    transform:translateX(-50%);
  }
  .banner-hero .hero-actions{
    width:auto;
    max-width:100%;
    flex-wrap:nowrap;
    gap:7px;
  }
  .banner-hero .hero-actions .button{
    min-height:36px;
    padding:0 12px;
    font-size:9px;
    box-shadow:0 7px 20px rgba(0,0,0,.3);
  }
  .banner-hero .hero-actions .button span{
    width:17px;
    height:17px;
    margin-left:6px;
    font-size:8px;
  }

  /* Todas las filas del ranking comparten exactamente la misma alineación */
  .rankings-section .public-table-card tbody tr td:nth-child(2),
  .rankings-section .public-table-card tr.rank-top td:nth-child(2),
  .rankings-section .public-table-card tr.rank-1 td:nth-child(2){
    padding-inline:4px!important;
  }
  .rankings-section .public-table-card tr.promotion-zone td:first-child{
    border-left:0!important;
    box-shadow:inset 3px 0 var(--green)!important;
  }
  .rankings-section .public-table-card tr.relegation-zone td:first-child{
    border-left:0!important;
    box-shadow:inset 3px 0 #d56569!important;
  }

}

.mobile-quick-nav{display:none}
@media(max-width:700px){
  html{scroll-padding-top:76px}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  main section[id],footer[id]{scroll-margin-top:76px}
  .mobile-quick-nav{position:fixed;z-index:60;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));left:8px;display:grid;grid-template-columns:repeat(4,1fr);min-height:56px;padding:5px;border:1px solid rgba(18,189,211,.28);border-radius:16px;background:rgba(2,20,28,.94);box-shadow:0 18px 44px rgba(0,0,0,.42);backdrop-filter:blur(16px)}
  .mobile-quick-nav a{display:grid;min-width:0;place-items:center;gap:2px;padding:7px 3px;border-radius:11px;color:#a8bec3;font-size:9px;font-weight:800}
  .mobile-quick-nav a span{color:#12bdd3;font:700 7px "Space Grotesk",sans-serif;letter-spacing:.12em}
  .mobile-quick-nav a.active{color:#031923;background:#7bdc45}
  .mobile-quick-nav a.active span{color:#075a63}
  .facilities-section,.public-data-section,.active-tournaments-section,.training-section,.catalog-section,.club-section,.contact-section{padding:56px 0!important}
  .facilities-section .public-section-head{margin-bottom:28px}
  .today-availability{margin-top:0}
  .today-availability-copy .availability-action-hint{display:none}
  .mobile-action-hint{display:block;margin:0 0 10px;color:#a6bcc1;font-size:10px;font-weight:700;line-height:1.5}
  .availability-day-tabs{grid-template-columns:repeat(7,minmax(45px,1fr));gap:4px;margin-bottom:12px;padding-bottom:10px}
  .availability-day-tabs button{min-width:45px;height:50px;padding:4px}
  .availability-day-tabs button small{font-size:8px}
  .availability-day-tabs button strong{font-size:14px}
  .today-availability-courts{grid-auto-flow:row;grid-template-columns:1fr;gap:10px;overflow:visible;padding:2px 0;scroll-snap-type:none}
  .today-availability-courts article{grid-template-columns:72px minmax(0,1fr);align-items:start;gap:10px;min-height:0;padding:12px;border:1px solid rgba(18,189,211,.23);border-radius:12px;background:rgba(0,0,0,.12)}
  .today-availability-courts article:last-child{border-bottom:1px solid rgba(18,189,211,.23)}
  .today-availability-courts article div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:none;overflow:visible}
  .today-availability-courts article div>a{width:100%;min-width:0;padding:0 4px}
  .court-explorer{margin-top:46px}
  .court-mosaic{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,300px);grid-template-columns:none;grid-template-rows:190px;gap:9px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
  .court-tile,.court-tile.active{order:0;grid-column:auto;grid-row:auto;scroll-snap-align:start}
  .social-gallery{margin-top:56px}
  .bar-carousel-track figure{height:300px}
  .training-media-composition{min-height:340px}
  .training-brand-title{margin-bottom:30px}
  .training-facility-photo{display:none}
  .training-story{gap:28px}
  .training-copy>p:not(.eyebrow){display:none}
  .training-metrics{margin-top:0}
  .public-table-wrap{max-height:none;overflow:visible;overscroll-behavior:auto}
  .public-table-wrap thead{position:static}
  .public-encounters #public-encounter-list{max-height:360px;overflow:auto;overscroll-behavior:contain}
  .active-tournament-board{max-height:620px;overflow:auto;overscroll-behavior:contain}
  .club-editorial{gap:14px}
  .club-editorial figure{height:230px}
  .club-editorial>figure:not(.club-photo-main){display:none}
  .contact-details article{padding-block:18px}
  footer{padding-bottom:22px}
}
