/*
Theme Name: VSS Recovery Mobile Safe Languages 2.6.15
Theme URI: https://vssteam.com/
Author: Vitaliy's Swimming School
Description: Recovery copy of the last pre-multilingual VSS theme for safe testing.
Version: 2.6.15
Text Domain: vss-recovery-pre-multilingual
*/
:root{--navy:#052b58;--deep:#031d3d;--blue:#0876d7;--sky:#35bdf5;--gold:#ffc400;--white:#fff;--ink:#0a2340;--muted:#5c6b7a;--pale:#eef6ff;--line:#d7e4f2;--shadow:0 16px 40px rgba(4,35,73,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.55}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.vss-wrap{width:min(1180px,92%);margin:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(3,29,61,.97);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.topbar{background:#02172f;font-size:13px}.topbar .vss-wrap{display:flex;justify-content:space-between;gap:20px;padding:7px 0}.topbar-links{display:flex;gap:18px;flex-wrap:wrap}.mainnav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 0}.brand img{width:300px;height:86px;object-fit:contain;object-position:left center}.menu{display:flex;align-items:center;gap:18px;font-size:14px;font-weight:700;text-transform:uppercase}.menu a:hover{color:var(--gold)}.lang{font-size:12px;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gold);color:#071f3d;padding:13px 19px;border-radius:7px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;border:2px solid var(--gold);transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(255,196,0,.25)}.btn.outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}.btn.blue{background:#116ec5;color:#fff;border-color:#4aa8ff}.hero{min-height:610px;color:#fff;position:relative;background:linear-gradient(90deg,rgba(2,22,48,.96) 0%,rgba(3,41,83,.83) 42%,rgba(3,35,68,.20) 75%),url('assets/images/hero.jpg') center 38%/cover no-repeat;display:flex;align-items:center}.hero:after{content:"";position:absolute;inset:auto 0 0;height:7px;background:linear-gradient(90deg,var(--gold),var(--sky),var(--gold))}.hero-content{position:relative;z-index:2;padding:86px 0 100px;max-width:720px}.eyebrow{font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-size:14px}.hero h1{font-size:clamp(48px,7vw,84px);line-height:.96;margin:12px 0 22px;text-transform:uppercase;letter-spacing:-.04em}.hero h1 span{color:var(--gold)}.hero p{font-size:20px;max-width:620px}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.feature-strip{background:var(--navy);color:#fff}.features{display:grid;grid-template-columns:repeat(4,1fr)}.feature{padding:28px 24px;border-right:1px solid rgba(255,255,255,.15)}.feature:last-child{border-right:0}.feature strong{display:block;text-transform:uppercase;margin-bottom:6px}.feature span{font-size:14px;color:#c8d8ea}.section{padding:80px 0}.section.alt{background:var(--pale)}.section.dark{background:linear-gradient(135deg,var(--deep),var(--navy));color:#fff}.section-title{text-align:center;max-width:780px;margin:0 auto 42px}.section-title h2{font-size:clamp(34px,4vw,54px);line-height:1.05;margin:8px 0 12px;text-transform:uppercase}.section-title p{color:var(--muted);font-size:18px}.dark .section-title p{color:#c7d7e9}.coach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.coach-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}.coach-photo{height:340px;object-fit:cover;width:100%}.coach-card:first-child .coach-photo{object-position:67% 32%}.coach-card:nth-child(2) .coach-photo{object-position:25% 32%}.coach-card:nth-child(3) .coach-photo{object-position:center 15%}.coach-info{background:linear-gradient(135deg,var(--navy),#084b91);color:#fff;padding:22px}.coach-info h3{font-size:25px;margin:0}.coach-role{color:var(--gold);font-weight:800;text-transform:uppercase}.coach-meta{font-size:14px;color:#dce9f7;margin:10px 0 0}.program-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.program{border:1px solid rgba(255,255,255,.28);border-radius:14px;padding:25px 19px;background:rgba(255,255,255,.04)}.program h3{font-size:17px;margin:8px 0}.program p{font-size:14px;color:#cbd9e9}.program-note{display:block;color:var(--gold);font-weight:900;margin-top:14px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:stretch}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:var(--shadow)}.panel h3{font-size:27px;margin-top:0}.schedule{width:100%;border-collapse:collapse}.schedule td{padding:11px 0;border-bottom:1px solid var(--line)}.schedule td:last-child{text-align:right;font-weight:700}.location-card{display:grid;gap:18px}.location{padding:20px;background:var(--pale);border-radius:12px;border-left:5px solid var(--gold)}.location h4{margin:0 0 5px}.success{display:grid;grid-template-columns:1.1fr .9fr;gap:38px;align-items:center}.success-image{height:470px;width:100%;object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}.success-list{display:grid;gap:14px;margin:24px 0}.success-item{padding:16px 18px;border-radius:10px;background:#f3f8ff;border-left:4px solid var(--gold);font-weight:700}.review-card{max-width:850px;margin:auto;background:#fff;border-radius:16px;padding:38px;box-shadow:var(--shadow);border:1px solid var(--line);text-align:center}.stars{color:#f6b800;font-size:26px;letter-spacing:4px}.review-card blockquote{font-size:24px;line-height:1.45;margin:20px auto;max-width:730px}.cta{background:linear-gradient(115deg,var(--gold),#ffd94f);color:#092348;padding:44px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:38px;margin:0}.cta .btn{background:var(--navy);color:#fff;border-color:var(--navy)}.site-footer{background:#021a36;color:#fff;padding:58px 0 20px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}.footer-logo{width:260px}.site-footer h4{color:var(--gold);text-transform:uppercase}.site-footer p,.site-footer li{color:#c5d4e6;font-size:14px}.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.copyright{border-top:1px solid rgba(255,255,255,.14);margin-top:36px;padding-top:18px;font-size:13px;color:#aebfd4;display:flex;justify-content:space-between}.mobile-toggle{display:none;background:none;border:0;color:#fff;font-size:28px}
@media(max-width:1000px){.menu{display:none}.mobile-toggle{display:block}.features{grid-template-columns:repeat(2,1fr)}.coach-grid{grid-template-columns:1fr 1fr}.program-grid{grid-template-columns:repeat(2,1fr)}.success,.two-col{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.hero{min-height:560px}}
@media(max-width:650px){.topbar .vss-wrap{display:block}.topbar-links{gap:8px}.brand img{width:250px;height:72px}.hero{min-height:540px;background-position:61% center}.hero-content{padding:70px 0 85px}.hero h1{font-size:48px}.hero p{font-size:17px}.actions .btn{width:100%}.features,.coach-grid,.program-grid,.footer-grid{grid-template-columns:1fr}.feature{border-right:0;border-bottom:1px solid rgba(255,255,255,.15)}.section{padding:58px 0}.coach-photo{height:330px}.cta-inner{display:block}.cta .btn{margin-top:20px}.copyright{display:block}.review-card blockquote{font-size:20px}}


/* About page */
.about-hero{background:linear-gradient(120deg,#031d3d,#07569d);color:#fff;padding:78px 0;border-bottom:7px solid var(--gold)}
.about-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.about-hero h1{font-size:clamp(44px,6vw,76px);line-height:1;margin:12px 0 22px;text-transform:uppercase;letter-spacing:-.035em}
.about-hero p{font-size:19px;color:#dbeafa;max-width:680px}
.about-hero-photo{width:100%;height:480px;object-fit:cover;object-position:center;border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.3);border:4px solid rgba(255,255,255,.16)}
.about-intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:start}
.about-heading{font-size:clamp(38px,5vw,62px);line-height:1.05;margin:8px 0 20px;text-transform:uppercase}
.lead{font-size:21px;color:#304e6b}
.philosophy{font-size:20px;font-weight:700;color:var(--navy);border-left:6px solid var(--gold);margin:28px 0 0;padding:18px 22px;background:var(--pale)}
.credentials-panel{background:linear-gradient(145deg,var(--navy),#0b5ca8);color:#fff;border-radius:18px;padding:34px;box-shadow:var(--shadow)}
.credentials-panel h3{font-size:28px;margin-top:0}
.credential-list{list-style:none;margin:0;padding:0;display:grid;gap:15px}
.credential-list li{padding:13px 14px;background:rgba(255,255,255,.09);border-left:4px solid var(--gold);border-radius:6px}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.timeline article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:var(--shadow)}
.timeline span{display:inline-block;background:var(--gold);color:var(--navy);font-weight:900;padding:6px 12px;border-radius:999px;margin-bottom:14px}
.timeline h3{margin:0 0 8px}.timeline p{color:var(--muted);margin:0}
.about-coach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.about-coach-card{background:#fff;color:var(--ink);border-radius:16px;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.22)}
.about-coach-card img{width:100%;height:330px;object-fit:cover}
.about-coach-card:nth-child(1) img{object-position:68% 30%}.about-coach-card:nth-child(2) img{object-position:24% 30%}.about-coach-card:nth-child(3) img{object-position:center 18%}
.about-coach-card>div{padding:24px}.about-coach-card h3{font-size:25px;margin:0}.about-coach-card span{display:block;color:#d39200;font-weight:900;text-transform:uppercase;margin:3px 0 12px}.about-coach-card p{color:#52677d}.about-coach-card a{font-weight:900;color:var(--blue)}
.about-success{align-items:center}
@media(max-width:1000px){.about-hero-grid,.about-intro-grid{grid-template-columns:1fr}.timeline{grid-template-columns:1fr 1fr}.about-coach-grid{grid-template-columns:1fr 1fr}.about-hero-photo{height:420px}}
@media(max-width:650px){.about-hero{padding:55px 0}.about-hero-photo{height:330px}.timeline,.about-coach-grid{grid-template-columns:1fr}.about-coach-card img{height:320px}.lead{font-size:18px}}


/* Programs page */
.programs-hero{position:relative;color:#fff;background:linear-gradient(90deg,rgba(2,23,50,.96),rgba(3,49,96,.78),rgba(3,39,76,.20)),url('assets/images/group-training.jpg') center 48%/cover no-repeat;padding:100px 0;border-bottom:7px solid var(--gold)}
.programs-hero-content{max-width:760px}.programs-hero h1{font-size:clamp(48px,7vw,82px);line-height:.96;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.programs-hero h1 span{color:var(--gold)}.programs-hero p{font-size:20px;color:#e6f0fb;max-width:680px}
.program-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.program-detail{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);display:grid;grid-template-rows:260px auto}.program-detail img{width:100%;height:260px;object-fit:cover}.program-detail-body{padding:30px}.program-detail h2{font-size:32px;margin:0 0 6px}.program-detail .program-tag{color:#ba8400;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.program-detail p{color:#4e647a}.program-detail ul{padding-left:20px;color:#304e6b}.program-detail li{margin:8px 0}.program-highlight{font-size:17px;font-weight:900;color:var(--navy);margin:18px 0}.program-actions{display:flex;gap:10px;flex-wrap:wrap}.program-actions .btn.outline-dark{background:transparent;color:var(--navy);border-color:var(--navy)}
.program-wide{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto}.program-wide img{height:100%;min-height:380px}.program-wide .program-detail-body{align-self:center}
.program-comparison{overflow:auto}.program-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}.program-table th,.program-table td{padding:18px;border-bottom:1px solid var(--line);text-align:left}.program-table th{background:var(--navy);color:#fff;text-transform:uppercase;font-size:13px}.program-table tr:last-child td{border-bottom:0}.program-table td:first-child{font-weight:900;color:var(--navy)}
.policy-box{background:linear-gradient(135deg,#fff8d7,#fff);border:1px solid #f2d35d;border-left:6px solid var(--gold);border-radius:14px;padding:26px}.policy-box h3{margin-top:0}.programs-cta-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.programs-cta-card{border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:28px;background:rgba(255,255,255,.05)}.programs-cta-card h3{color:var(--gold)}
@media(max-width:900px){.program-detail-grid{grid-template-columns:1fr}.program-wide{grid-column:auto;grid-template-columns:1fr}.program-wide img{min-height:280px}.programs-cta-cards{grid-template-columns:1fr}}
@media(max-width:650px){.programs-hero{padding:72px 0}.programs-hero h1{font-size:48px}.program-detail{grid-template-rows:220px auto}.program-detail img{height:220px}.program-detail-body{padding:24px}.program-detail h2{font-size:28px}.program-actions .btn{width:100%}}

/* Schedule & Locations page */
.schedule-hero{color:#fff;background:linear-gradient(90deg,rgba(2,22,48,.96),rgba(3,45,89,.78),rgba(3,35,68,.22)),url('assets/images/training.jpg') center 48%/cover no-repeat;padding:105px 0;border-bottom:7px solid var(--gold)}
.schedule-hero-content{max-width:760px}.schedule-hero h1{font-size:clamp(48px,7vw,82px);line-height:.96;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.schedule-hero h1 span{color:var(--gold)}.schedule-hero p{font-size:20px;color:#e2eef9;max-width:690px}
.schedule-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:stretch}.schedule-layout.reverse{grid-template-columns:.85fr 1.15fr}.schedule-card,.location-detail-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow)}.schedule-card.featured{border-top:7px solid var(--gold)}.schedule-card-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.schedule-card-head span{font-size:28px;font-weight:900;color:var(--navy)}.schedule-card-head strong{color:#b77f00;text-align:right}.schedule-large td{padding:16px 0;font-size:17px}.location-detail-card{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#fff,#eef7ff)}.location-icon{font-size:48px}.location-detail-card h3{font-size:32px;margin:10px 0}.location-detail-card p{font-size:18px}.small-note{color:var(--muted);font-size:15px!important}.privacy-badge{display:inline-block;margin-top:14px;padding:13px 16px;background:#fff7cf;border-left:5px solid var(--gold);border-radius:8px;font-weight:800;color:var(--navy)}.booking-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.booking-step{border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow);background:#fff}.booking-step>span{display:inline-flex;width:48px;height:48px;border-radius:50%;align-items:center;justify-content:center;background:var(--gold);color:var(--navy);font-size:22px;font-weight:900}.booking-step h3{font-size:24px;margin:18px 0 8px}.booking-step p{color:var(--muted)}.policy-dark,.contact-book-card{padding:36px;border-radius:18px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}.policy-dark h2,.contact-book-card h2{font-size:36px;line-height:1.05}.policy-dark p,.contact-book-card p{color:#d3e1ef;font-size:17px}
@media(max-width:900px){.schedule-layout,.schedule-layout.reverse,.booking-grid{grid-template-columns:1fr}.schedule-layout.reverse .private-location{order:2}.schedule-card-head{align-items:flex-start;flex-direction:column}.schedule-card-head strong{text-align:left}}
@media(max-width:650px){.schedule-hero{padding:72px 0}.schedule-hero h1{font-size:48px}.schedule-card,.location-detail-card{padding:24px}.schedule-large td{font-size:15px}.policy-dark h2,.contact-book-card h2{font-size:30px}}

/* v1.5 coach portrait update */
.coach-photo{object-fit:cover;object-position:center 24%;}
.team-card img{object-fit:cover;object-position:center 22%;}
@media (max-width:700px){.coach-photo,.team-card img{object-position:center 18%;}}


/* Athlete Success page */
.success-hero{color:#fff;background:linear-gradient(90deg,rgba(2,22,48,.96),rgba(3,45,89,.78),rgba(3,35,68,.18)),url('assets/images/meet-success.jpg') center 44%/cover no-repeat;padding:105px 0;border-bottom:7px solid var(--gold)}
.success-hero-content{max-width:780px}.success-hero h1{font-size:clamp(48px,7vw,82px);line-height:.96;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.success-hero h1 span{color:var(--gold)}.success-hero p{font-size:20px;color:#e2eef9;max-width:700px}
.achievement-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.achievement-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;text-align:center;box-shadow:var(--shadow)}.achievement-stat strong{display:block;font-size:36px;color:var(--navy);line-height:1}.achievement-stat span{display:block;margin-top:10px;color:var(--muted);font-weight:700}
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.story-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.story-card img{width:100%;height:330px;object-fit:cover}.story-card:nth-child(1) img{object-position:center 25%}.story-card:nth-child(2) img{object-position:center 30%}.story-card:nth-child(3) img{object-position:center 25%}.story-body{padding:25px}.story-body h3{font-size:25px;margin:0 0 10px}.story-body p{color:var(--muted)}.story-label{color:#b77f00;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.pathway{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.pathway-step{position:relative;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:28px}.pathway-step span{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:900;font-size:20px}.pathway-step h3{color:#fff}.pathway-step p{color:#cbd9e9}
.success-gallery{display:grid;grid-template-columns:1.15fr .85fr;gap:24px}.success-gallery img{width:100%;height:430px;object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}.success-gallery img:last-child{object-position:center 20%}
.privacy-note{margin-top:26px;padding:18px 20px;border-left:5px solid var(--gold);background:#fff7d1;border-radius:10px;color:var(--navy);font-weight:700}
@media(max-width:900px){.achievement-stats,.pathway{grid-template-columns:1fr 1fr}.story-grid{grid-template-columns:1fr}.success-gallery{grid-template-columns:1fr}}
@media(max-width:650px){.success-hero{padding:72px 0}.success-hero h1{font-size:48px}.achievement-stats,.pathway{grid-template-columns:1fr}.story-card img,.success-gallery img{height:320px}}


/* Parent Portal page */
.portal-hero{color:#fff;background:linear-gradient(90deg,rgba(2,22,48,.97),rgba(3,45,89,.82),rgba(3,35,68,.22)),url('assets/images/training.jpg') center 52%/cover no-repeat;padding:105px 0;border-bottom:7px solid var(--gold)}
.portal-hero-content{max-width:760px}.portal-hero h1{font-size:clamp(48px,7vw,82px);line-height:.96;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.portal-hero h1 span{color:var(--gold)}.portal-hero p{font-size:20px;color:#e4effa;max-width:690px}
.portal-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.portal-feature{background:#fff;border:1px solid var(--line);border-radius:16px;padding:27px;box-shadow:var(--shadow)}.portal-feature .portal-icon{font-size:38px}.portal-feature h3{font-size:22px;margin:12px 0 8px}.portal-feature p{color:var(--muted);margin:0}
.portal-shell{display:grid;grid-template-columns:.78fr 1.22fr;gap:30px;align-items:start}.portal-info,.portal-login{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow)}.portal-info{background:linear-gradient(145deg,#fff,#eef7ff)}.portal-info h2,.portal-login h2{font-size:32px;margin-top:0}.portal-checklist{list-style:none;padding:0;margin:22px 0;display:grid;gap:12px}.portal-checklist li{padding:14px 16px;background:#f5f9ff;border-left:5px solid var(--gold);border-radius:8px;font-weight:700}.portal-note{padding:16px 18px;background:#fff7d1;border-radius:10px;border-left:5px solid var(--gold);color:var(--navy);font-weight:700}
.portal-login .login-username,.portal-login .login-password{margin-bottom:16px}.portal-login label{display:block;font-weight:800;margin-bottom:6px}.portal-login input[type=text],.portal-login input[type=password]{width:100%;padding:13px 14px;border:1px solid #bfcfe0;border-radius:8px;font-size:16px}.portal-login input[type=submit]{background:var(--gold);color:var(--navy);border:0;border-radius:8px;padding:14px 22px;font-weight:900;text-transform:uppercase;cursor:pointer}.portal-login input[type=submit]:hover{filter:brightness(.96)}
.vss-portal{overflow:auto}.vss-portal h2{font-size:30px}.results-table{width:100%;border-collapse:collapse;min-width:760px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.results-table th,.results-table td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left}.results-table th{background:var(--navy);color:#fff;text-transform:uppercase;font-size:12px}.results-table tr:nth-child(even) td{background:#f7fbff}
.portal-help{display:grid;grid-template-columns:1fr 1fr;gap:22px}.portal-help-card{padding:30px;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}.portal-help-card h3{color:var(--gold);font-size:25px}.portal-help-card p{color:#d3e1ef}
@media(max-width:950px){.portal-feature-grid{grid-template-columns:1fr 1fr}.portal-shell{grid-template-columns:1fr}}
@media(max-width:650px){.portal-hero{padding:72px 0}.portal-hero h1{font-size:48px}.portal-feature-grid,.portal-help{grid-template-columns:1fr}.portal-info,.portal-login{padding:24px}}

/* Team Records v1.9 */
.records-hero{color:#fff;background:linear-gradient(90deg,rgba(2,22,48,.97),rgba(3,45,89,.80),rgba(3,35,68,.18)),url('assets/images/meet-success.jpg') center 40%/cover no-repeat;padding:105px 0;border-bottom:7px solid var(--gold)}
.records-hero-content{max-width:790px}.records-hero h1{font-size:clamp(48px,7vw,82px);line-height:.96;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.records-hero h1 span{color:var(--gold)}.records-hero p{font-size:20px;color:#e4effa;max-width:720px}
.records-filter{display:grid;grid-template-columns:1fr 1fr auto auto;gap:16px;align-items:end;background:#fff;padding:25px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.records-filter label{font-weight:900;color:var(--navy)}.records-filter select{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #bfcfe0;border-radius:8px;background:#fff;font-size:16px}.records-reset{padding:13px 8px;font-weight:800;color:var(--blue)}
.records-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px}.records-summary div{padding:20px;border:1px solid var(--line);border-radius:14px;background:#f7fbff}.records-summary span{display:block;color:var(--muted);font-size:13px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.records-summary strong{display:block;margin-top:5px;font-size:24px;color:var(--navy)}
.records-table-wrap{overflow:auto;border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--line)}.team-records-table{width:100%;border-collapse:collapse;min-width:920px;background:#fff}.team-records-table th,.team-records-table td{padding:16px 14px;text-align:left;border-bottom:1px solid var(--line)}.team-records-table th{background:var(--navy);color:#fff;text-transform:uppercase;font-size:12px;letter-spacing:.04em}.team-records-table tbody tr:nth-child(even){background:#f7fbff}.team-records-table tbody tr:hover{background:#fff8d8}.record-time{font-size:20px;font-weight:900;color:var(--blue)}.new-record-badge{display:block;width:max-content;margin-top:7px;padding:5px 8px;border-radius:999px;background:var(--gold);color:var(--navy);font-size:10px;font-weight:900;text-transform:uppercase}.records-empty{text-align:center!important;padding:45px!important;color:var(--muted)}.records-admin-note{margin-top:20px;padding:16px 18px;border-left:5px solid var(--gold);background:#fff7d1;border-radius:9px;font-weight:700;color:var(--navy)}
.records-values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.records-values article{padding:30px;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}.records-values article>span{font-size:42px}.records-values h3{color:var(--gold);font-size:24px}.records-values p{color:#d3e1ef}
.portal-feature-grid{grid-template-columns:repeat(5,1fr)}
@media(max-width:1050px){.portal-feature-grid{grid-template-columns:repeat(2,1fr)}.records-filter{grid-template-columns:1fr 1fr}.records-filter .btn{width:100%}.records-values{grid-template-columns:1fr}}
@media(max-width:650px){.records-hero{padding:72px 0}.records-hero h1{font-size:48px}.records-filter,.records-summary,.portal-feature-grid{grid-template-columns:1fr}.records-reset{text-align:center}}


/* Hall of Fame v2.0 */
.hof-hero{color:#fff;background:linear-gradient(90deg,rgba(2,22,48,.97),rgba(3,45,89,.79),rgba(3,35,68,.18)),url('assets/images/competitive-award.jpg') center 30%/cover no-repeat;padding:110px 0;border-bottom:7px solid var(--gold)}
.hof-hero-content{max-width:800px}.hof-hero h1{font-size:clamp(48px,7vw,84px);line-height:.95;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.hof-hero h1 span{color:var(--gold)}.hof-hero p{font-size:20px;color:#e4effa;max-width:720px}
.hof-category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.hof-category{background:#fff;border:1px solid var(--line);border-radius:17px;padding:28px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hof-category:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--gold),var(--sky))}.hof-icon{font-size:42px}.hof-category h3{font-size:24px;margin:14px 0 8px}.hof-category p{color:var(--muted)}
.hof-spotlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.hof-spotlight{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.hof-spotlight img{width:100%;height:350px;object-fit:cover}.hof-spotlight:nth-child(1) img{object-position:center 20%}.hof-spotlight:nth-child(2) img{object-position:center 24%}.hof-spotlight:nth-child(3) img{object-position:center 20%}.hof-spotlight-body{padding:25px}.hof-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#a97500}.hof-spotlight h3{font-size:25px;margin:8px 0}.hof-spotlight p{color:var(--muted)}
.hof-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.hof-year{padding:28px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);border-radius:16px}.hof-year strong{display:block;color:var(--gold);font-size:34px}.hof-year h3{color:#fff}.hof-year p{color:#cbd9e9}
.hof-nomination{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow)}.hof-nomination h2{font-size:38px;margin:0 0 10px}.hof-nomination p{color:var(--muted);font-size:17px}.hof-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.hof-actions .btn.outline{color:var(--navy);border-color:var(--navy)}
.portal-feature-grid{grid-template-columns:repeat(6,1fr)}
@media(max-width:1100px){.portal-feature-grid{grid-template-columns:repeat(3,1fr)}.hof-category-grid,.hof-spotlight-grid{grid-template-columns:1fr 1fr}.hof-timeline{grid-template-columns:1fr 1fr}}
@media(max-width:750px){.hof-hero{padding:72px 0}.hof-hero h1{font-size:48px}.hof-category-grid,.hof-spotlight-grid,.hof-timeline,.hof-nomination,.portal-feature-grid{grid-template-columns:1fr}.hof-actions{justify-content:flex-start}.hof-spotlight img{height:320px}}
/* Book a Lesson v2.1 */
.booking-hero{background:#062b54;color:#fff;padding:62px 0;border-bottom:4px solid #ffc400}.booking-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}.booking-hero h1{font-size:clamp(42px,6vw,72px);line-height:.95;margin:12px 0 20px}.booking-hero h1 em{font-style:normal;color:#ffc400}.booking-hero p{font-size:18px;max-width:620px;line-height:1.6}.booking-hero img{width:100%;height:390px;object-fit:cover;border-radius:16px;box-shadow:0 20px 50px #001b3580}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.btn-outline{background:transparent!important;border:1px solid #fff;color:#fff!important}.booking-intro,.booking-details,.request-section{padding:70px 0}.booking-intro{text-align:center;background:#eef7ff}.booking-intro h2,.booking-details h2,.request-section h2{font-size:36px;color:#062b54}.eyebrow{color:#e7ad00;font-weight:800;font-size:12px;letter-spacing:1.5px}.booking-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:35px;text-align:left}.booking-cards article,.policy-card,.request-form-card{background:#fff;border-radius:12px;padding:28px;box-shadow:0 12px 32px #0a2c4d18}.booking-cards h3{color:#07345f;font-size:23px}.booking-cards strong{color:#bd8b00}.booking-two-col{display:grid;grid-template-columns:1.5fr .8fr;gap:28px}.pool-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 12px 32px #0a2c4d18}.pool-card img{width:100%;height:330px;object-fit:cover}.pool-card div{padding:30px}.policy-card{border-top:5px solid #ffc400}.request-section{background:#eaf5ff}.request-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:45px;align-items:start}.direct-contact{display:grid;gap:12px;margin-top:25px}.direct-contact a{font-weight:800;color:#07345f}.lesson-form{display:grid;gap:17px}.lesson-form label{display:grid;gap:7px;font-weight:700;color:#12324e}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lesson-form input,.lesson-form select,.lesson-form textarea{width:100%;padding:13px;border:1px solid #cbd9e5;border-radius:7px;background:#fff;font:inherit}.consent-line{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;font-size:13px;font-weight:500!important}.consent-line input{width:auto;margin-top:3px}.form-submit{border:0;cursor:pointer;padding:15px 20px}.form-success,.form-error{padding:15px;border-radius:8px;margin-bottom:18px;font-weight:700}.form-success{background:#e4f7e8;color:#17632b}.form-error{background:#fff0f0;color:#8c2525}@media(max-width:800px){.booking-hero-grid,.booking-two-col,.request-grid,.booking-cards{grid-template-columns:1fr}.booking-hero img{height:260px}.form-row{grid-template-columns:1fr}.booking-intro,.booking-details,.request-section{padding:48px 0}}


/* Gallery v2.2 */
.gallery-hero{color:#fff;background:linear-gradient(90deg,rgba(2,22,48,.97),rgba(3,45,89,.78),rgba(3,35,68,.16)),url('assets/images/gallery-training.jpg') center 45%/cover no-repeat;padding:110px 0;border-bottom:7px solid var(--gold)}
.gallery-hero-content{max-width:800px}.gallery-hero h1{font-size:clamp(48px,7vw,84px);line-height:.95;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.gallery-hero h1 span{color:var(--gold)}.gallery-hero p{font-size:20px;color:#e4effa;max-width:720px}
.gallery-filters{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 34px}.gallery-filter{border:1px solid #b9cde1;background:#fff;color:var(--navy);padding:11px 18px;border-radius:999px;font-weight:900;text-transform:uppercase;cursor:pointer}.gallery-filter:hover,.gallery-filter.active{background:var(--gold);border-color:var(--gold)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallery-item{position:relative;min-height:340px;border-radius:17px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer;background:#061f3e}.gallery-item img{width:100%;height:100%;min-height:340px;object-fit:cover;transition:transform .4s}.gallery-item:hover img,.gallery-item:focus img{transform:scale(1.06)}.gallery-overlay{position:absolute;inset:auto 0 0;padding:70px 24px 23px;color:#fff;background:linear-gradient(transparent,rgba(2,20,42,.96))}.gallery-overlay span{color:var(--gold);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.gallery-overlay h3{font-size:24px;margin:5px 0}.gallery-overlay p{font-size:14px;color:#dce9f6;margin:0 0 10px}.gallery-overlay strong{font-size:12px;text-transform:uppercase;color:var(--gold)}.gallery-item[hidden]{display:none}
.photo-consent-note{margin-top:25px;padding:17px 20px;border-left:5px solid var(--gold);background:#fff6ca;border-radius:9px;color:var(--navy)}.gallery-values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-values article{padding:30px;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}.gallery-values article>span{font-size:42px}.gallery-values h3{color:var(--gold);font-size:24px}.gallery-values p{color:#d3e1ef}
.gallery-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,12,28,.94);display:none;align-items:center;justify-content:center;padding:30px}.gallery-lightbox.open{display:flex}.gallery-lightbox figure{margin:0;max-width:min(1100px,86vw);max-height:88vh;display:flex;flex-direction:column;align-items:center}.gallery-lightbox img{max-height:76vh;max-width:100%;object-fit:contain;border-radius:12px;box-shadow:0 25px 70px #000}.gallery-lightbox figcaption{color:#fff;text-align:center;padding:14px}.gallery-lightbox figcaption strong{display:block;font-size:22px;color:var(--gold)}.gallery-lightbox figcaption span{color:#dbe8f6}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;border-radius:50%;width:50px;height:50px;font-size:36px;line-height:1}.lightbox-close{right:25px;top:25px}.lightbox-prev{left:25px}.lightbox-next{right:25px}
@media(max-width:950px){.gallery-grid{grid-template-columns:1fr 1fr}.gallery-values{grid-template-columns:1fr}.menu{gap:10px;font-size:12px}}
@media(max-width:650px){.gallery-hero{padding:72px 0}.gallery-hero h1{font-size:47px}.gallery-grid{grid-template-columns:1fr}.gallery-item,.gallery-item img{min-height:310px}.lightbox-prev{left:5px}.lightbox-next{right:5px}.lightbox-close{right:10px;top:10px}}

/* v2.3 Dynamic Gallery and Team News */
.gallery-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#ffc400;color:#06284e;font-size:25px;z-index:2;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.lightbox-media{width:min(1100px,84vw);height:min(72vh,760px);display:grid;place-items:center}.lightbox-media img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-video,.lightbox-video iframe,.lightbox-video video{width:100%;height:100%;border:0}.lightbox-video{background:#000}
.news-hero{padding:110px 0;background:linear-gradient(90deg,rgba(2,37,75,.96),rgba(6,66,121,.82)),url('assets/images/group-training.jpg') center/cover;color:#fff}.news-hero h1{font-size:clamp(46px,7vw,84px);line-height:.92;margin:15px 0}.news-hero h1 span{color:#ffc400}.news-hero p{max-width:700px;font-size:18px;line-height:1.7}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.news-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 12px 35px rgba(6,40,77,.12)}.news-image{display:block;height:230px;overflow:hidden}.news-image img{width:100%;height:100%;object-fit:cover;transition:.35s}.news-card:hover .news-image img{transform:scale(1.04)}.news-placeholder{height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#07345f,#0b64a3);font-size:54px;font-weight:800;color:#ffc400}.news-card-body{padding:24px}.news-card-body time,.single-news-head time{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#bf8d00;font-weight:800}.news-card-body h3{font-size:24px;margin:9px 0}.news-card-body h3 a{color:#092f57;text-decoration:none}.news-card-body p{color:#4d6172;line-height:1.65}.text-link{font-weight:800;color:#07599a;text-decoration:none}.empty-news{background:#fff;padding:55px;text-align:center;border-radius:14px;box-shadow:0 12px 35px rgba(6,40,77,.1)}
.single-news-head{padding:85px 0 60px;background:#072e58;color:#fff}.single-news-head h1{font-size:clamp(40px,6vw,72px);max-width:950px;margin:12px 0}.back-news{color:#ffc400;text-decoration:none;font-weight:800}.single-news-layout{max-width:980px;padding-top:55px;padding-bottom:80px}.single-news-image img{width:100%;border-radius:16px}.single-news-content{font-size:18px;line-height:1.8;color:#253e54}.single-news-content img{max-width:100%;height:auto}
@media(max-width:900px){.news-grid{grid-template-columns:1fr 1fr}.lightbox-media{width:82vw;height:60vh}}@media(max-width:620px){.news-grid{grid-template-columns:1fr}.news-hero{padding:75px 0}.news-image{height:210px}.lightbox-media{width:86vw;height:54vh}.gallery-play{width:52px;height:52px}}


/* Stage 10: Contact + FAQ v2.5 */
.contact-hero,.faq-hero{color:#fff;background:linear-gradient(90deg,rgba(2,22,48,.97),rgba(3,48,91,.84),rgba(3,35,68,.25)),url('assets/images/training.jpg') center/cover no-repeat;padding:105px 0;border-bottom:7px solid var(--gold)}
.contact-hero-content{max-width:760px}.contact-hero h1,.faq-hero h1{font-size:clamp(48px,7vw,82px);line-height:.96;margin:12px 0 20px;text-transform:uppercase;letter-spacing:-.04em}.contact-hero h1 span,.faq-hero h1 span{color:var(--gold)}.contact-hero p,.faq-hero p{font-size:20px;color:#e2eef9;max-width:720px}
.contact-coaches{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.contact-coaches article,.contact-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:30px;box-shadow:var(--shadow)}.contact-coaches h3{font-size:25px;margin:0 0 5px}.contact-coaches strong{color:#b77f00}.contact-coaches a,.contact-panel a{font-weight:800;color:#07599a}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:26px}.contact-panel h2{font-size:34px;margin:8px 0 14px}.contact-panel p{font-size:17px;color:var(--muted)}.contact-note{margin-top:24px;padding:15px 17px;background:#fff6ca;border-left:5px solid var(--gold);border-radius:8px;color:var(--navy)!important}.contact-dark{background:var(--navy)!important;color:#fff!important}.contact-message,.faq-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:34px;border-radius:18px;background:var(--navy);color:#fff}.contact-message h3,.faq-cta h2{font-size:30px;margin:0 0 8px}.contact-message p,.faq-cta p{color:#d7e4f0;margin:0;max-width:720px}
.faq-wrap{max-width:1000px}.faq-list{display:grid;gap:13px}.faq-list details{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 7px 22px rgba(6,40,77,.07);overflow:hidden}.faq-list summary{cursor:pointer;padding:20px 24px;font-weight:900;font-size:18px;color:var(--navy);list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';float:right;color:#b77f00;font-size:25px}.faq-list details[open] summary:after{content:'–'}.faq-list details p{padding:0 24px 22px;margin:0;color:var(--muted);line-height:1.7}.faq-cta{margin-top:38px}
@media(max-width:850px){.contact-coaches,.contact-layout{grid-template-columns:1fr}.contact-message,.faq-cta{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.contact-hero,.faq-hero{padding:72px 0}.contact-hero h1,.faq-hero h1{font-size:46px}}

/* v2.5.1 mobile navigation fix */
@media(max-width:1000px){
  .site-header{position:sticky;top:0;overflow:visible}
  .mainnav{position:relative}
  .mobile-toggle{display:block;position:relative;z-index:1002;min-width:48px;min-height:48px;cursor:pointer;font-size:34px;line-height:1}
  .menu{display:none;position:absolute;z-index:1001;top:100%;left:0;right:0;margin-top:10px;padding:18px;background:#07345f;border:1px solid rgba(255,255,255,.16);border-radius:12px;box-shadow:0 18px 45px rgba(0,0,0,.28);flex-direction:column;align-items:stretch;gap:0;font-size:15px}
  .menu.is-open{display:flex}
  .menu a{display:block;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.10)}
  .menu a:last-child{border-bottom:0}
  .menu .btn{margin-top:8px;width:100%}
}
@media(max-width:650px){
  .mainnav{gap:10px}
  .menu{left:0;right:0;max-height:calc(100vh - 150px);overflow-y:auto;-webkit-overflow-scrolling:touch}
}


/* v2.5.2 mobile menu flow fix: menu expands below header instead of covering page content */
@media(max-width:1000px){
  .site-header{position:relative;top:auto;overflow:visible}
  .mainnav{position:relative;display:flex;flex-wrap:wrap;align-items:center}
  .brand{flex:1 1 auto}
  .mobile-toggle{flex:0 0 auto}
  .menu{
    position:static;
    order:3;
    flex:0 0 100%;
    width:100%;
    left:auto;
    right:auto;
    top:auto;
    margin:8px 0 0;
    max-height:none;
    overflow:visible;
    border-radius:12px;
  }
  .menu.is-open{display:flex}
}
@media(max-width:650px){
  .topbar{position:relative}
  .mainnav{padding-bottom:10px}
  .menu{margin-top:8px}
}

/* Safe language switcher: client-side only; does not alter URLs, routes, cookies or portal logic. */
.vss-safe-lang{display:flex;align-items:center;gap:8px;white-space:nowrap}
.vss-safe-lang button{appearance:none;border:0;background:transparent;color:#fff;font:inherit;font-weight:800;padding:3px 6px;border-radius:999px;cursor:pointer}
.vss-safe-lang button.is-active{background:var(--gold);color:var(--ink)}
.vss-safe-lang span{opacity:.6}
@media(max-width:650px){.vss-safe-lang{margin-top:8px;justify-content:flex-start}.vss-safe-lang button{font-size:14px;padding:5px 9px}}

/* v2.5.4: keep language controls above translated/mobile layers */
.vss-safe-lang{position:relative;z-index:200;pointer-events:auto}
.vss-safe-lang button{position:relative;z-index:201;pointer-events:auto;touch-action:manipulation}
/* v2.6.7: keep the approved desktop logo size and add breathing room around it; mobile unchanged */
@media (min-width:1001px){
  .mainnav{gap:14px}
  .brand{flex:0 0 230px;min-width:230px;padding:0 10px}
  .brand img{width:210px;height:auto;max-height:82px;object-fit:contain;object-position:left center}
  .menu{flex:1 1 auto;justify-content:flex-end;gap:10px;font-size:11px}
}


/* v2.6.8: desktop header stays in normal document flow; mobile remains unchanged */
@media (min-width:1001px){
  .site-header{
    position:relative !important;
    top:auto !important;
  }
}

/* v2.6.8: wide desktop Parent Portal results cards — mobile-style readability on large screens */
@media (min-width:901px){
  .vsspp-results-disclosure[open] .vsspp-table-wrap{
    display:none !important;
  }
  .vsspp-results-disclosure[open] .vsspp-mobile-results{
    display:grid !important;
    gap:16px;
    width:min(1180px,calc(100vw - 44px)) !important;
    max-width:none !important;
    margin-left:calc((100% - min(1180px,calc(100vw - 44px)))/2) !important;
    margin-top:14px;
  }
  .vsspp-results-disclosure[open] .vsspp-result-filters{
    width:min(1180px,calc(100vw - 44px)) !important;
    max-width:none !important;
    margin-left:calc((100% - min(1180px,calc(100vw - 44px)))/2) !important;
  }
  .vsspp-mobile-card{
    display:grid;
    grid-template-columns:minmax(250px,1.45fr) minmax(175px,.85fr) minmax(230px,1fr);
    gap:14px 20px;
    align-items:start;
    padding:22px 24px;
    background:#fff;
    border:1px solid #d7e4f2;
    border-radius:16px;
    box-shadow:0 10px 28px rgba(4,35,73,.09);
    color:#0a2340;
  }
  .vsspp-mobile-meet{
    grid-column:1 / 3;
    font-size:17px;
    line-height:1.35;
    font-weight:800;
    color:#0a2340;
  }
  .vsspp-mobile-date{
    grid-column:3;
    justify-content:flex-end;
    margin:0;
    padding:7px 10px;
    background:#f3f8ff;
    border-radius:9px;
  }
  .vsspp-mobile-event{
    grid-column:1;
    font-size:21px;
    line-height:1.2;
    font-weight:900;
    color:#0a2340;
    padding-top:4px;
  }
  .vsspp-mobile-stats{
    grid-column:2;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .vsspp-mobile-stats>div,
  .vsspp-mobile-badges>div{
    padding:10px 12px;
    border:1px solid #dbe7f2;
    border-radius:10px;
    background:#f8fbff;
  }
  .vsspp-mobile-stats span,
  .vsspp-mobile-badges>div>span:first-child,
  .vsspp-mobile-label{
    display:block;
    margin-bottom:5px;
    color:#6b7d90;
    font-size:11px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .vsspp-mobile-stats strong{
    color:#1671c5;
    font-size:18px;
    font-variant-numeric:tabular-nums;
  }
  .vsspp-mobile-badges{
    grid-column:3;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .vsspp-mobile-badges>div{
    min-width:0;
  }
  .vsspp-mobile-row{
    padding:13px 15px;
    background:#f7fbff;
    border:1px solid #dbe7f2;
    border-radius:11px;
  }
  .vsspp-mobile-next{
    grid-column:1 / 4;
  }
  .vsspp-mobile-note{
    grid-column:1 / 2;
  }
  .vsspp-mobile-progress{
    grid-column:2 / 4;
  }
  .vsspp-mobile-card .vsspp-course,
  .vsspp-mobile-card .vsspp-standard,
  .vsspp-mobile-card .vsspp-pb{
    max-width:100%;
  }
}

/* Medium desktop/tablet landscape: keep the same card concept without squeezing content. */
@media (min-width:901px) and (max-width:1100px){
  .vsspp-mobile-card{
    grid-template-columns:1.25fr 1fr;
  }
  .vsspp-mobile-meet{grid-column:1}
  .vsspp-mobile-date{grid-column:2}
  .vsspp-mobile-event{grid-column:1}
  .vsspp-mobile-stats{grid-column:2}
  .vsspp-mobile-badges{grid-column:1 / 3}
  .vsspp-mobile-next{grid-column:1 / 3}
  .vsspp-mobile-note{grid-column:1}
  .vsspp-mobile-progress{grid-column:2}
}


/* v2.6.9: desktop Parent Portal — make Oscar/athlete summary use the readable mobile-style structure too. */
@media (min-width:901px){
  /* Give the athlete area substantially more room while keeping the access-help card visible. */
  html body .portal-shell{
    grid-template-columns:300px minmax(0,1fr) !important;
    gap:28px !important;
    align-items:start !important;
  }
  html body .portal-login{
    min-width:0 !important;
    width:100% !important;
    overflow:visible !important;
  }
  html body .portal-login .vsspp-athlete,
  html body .portal-login .vsspp-athlete-summary{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /* Same clear summary-card idea used on phones, scaled for desktop. */
  html body .portal-login .vsspp-summary-metrics{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:12px !important;
    margin:0 0 18px !important;
  }
  html body .portal-login .vsspp-summary-card{
    display:flex !important;
    flex-direction:column !important;
    gap:5px !important;
    min-width:0 !important;
    padding:14px 15px !important;
    border:1px solid #dce7f0 !important;
    border-radius:11px !important;
    background:#f8fbfd !important;
  }
  html body .portal-login .vsspp-summary-label{
    display:block !important;
    font-size:11px !important;
    line-height:1.2 !important;
    color:#6a7e91 !important;
    font-weight:800 !important;
    text-transform:uppercase !important;
    letter-spacing:.03em !important;
  }
  html body .portal-login .vsspp-summary-card strong{
    display:block !important;
    margin:0 !important;
    font-size:20px !important;
    line-height:1.25 !important;
    color:#092f55 !important;
    overflow-wrap:anywhere !important;
  }
  html body .portal-login .vsspp-summary-goal{font-size:16px !important}

  /* Best Times becomes a true readable list instead of a compressed run of text. */
  html body .portal-login .vsspp-best-times{
    margin-top:16px !important;
    overflow:hidden !important;
    border:1px solid #dce7f0 !important;
    border-radius:12px !important;
    background:#fff !important;
  }
  html body .portal-login .vsspp-best-times-head{
    display:flex !important;
    align-items:flex-end !important;
    justify-content:space-between !important;
    gap:16px !important;
    padding:14px 16px !important;
    border-bottom:1px solid #e6eef5 !important;
    background:#f5f9fc !important;
  }
  html body .portal-login .vsspp-best-times-head strong{
    display:block !important;
    font-size:17px !important;
    line-height:1.2 !important;
    color:#092f55 !important;
  }
  html body .portal-login .vsspp-best-times-head span{
    display:block !important;
    margin:0 !important;
    font-size:12px !important;
    line-height:1.3 !important;
    color:#6a7e91 !important;
  }
  html body .portal-login .vsspp-best-times-grid{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
  }
  html body .portal-login .vsspp-best-time{
    display:grid !important;
    grid-template-columns:minmax(260px,1fr) 120px 72px !important;
    align-items:center !important;
    column-gap:16px !important;
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:11px 14px !important;
    border:0 !important;
    border-bottom:1px solid #edf2f7 !important;
    border-radius:0 !important;
    background:#fff !important;
  }
  html body .portal-login .vsspp-best-time:last-child{border-bottom:0 !important}
  html body .portal-login .vsspp-best-time:nth-child(even){background:#f9fbfd !important}
  html body .portal-login .vsspp-best-event{
    display:block !important;
    min-width:0 !important;
    font-size:14px !important;
    line-height:1.3 !important;
    color:#173b5b !important;
    white-space:normal !important;
  }
  html body .portal-login .vsspp-best-time strong{
    display:block !important;
    margin:0 !important;
    font-size:15px !important;
    line-height:1.2 !important;
    color:#006ac6 !important;
    text-align:right !important;
    white-space:nowrap !important;
  }
  html body .portal-login .vsspp-best-course{
    display:block !important;
    min-width:0 !important;
    font-size:12px !important;
    line-height:1.2 !important;
    color:#526b80 !important;
    font-weight:800 !important;
    text-align:right !important;
    white-space:nowrap !important;
  }

  /* When View Results is opened on desktop, force the existing mobile result cards
     instead of the compressed 11-column table.  Extra specificity beats plugin CSS. */
  html body .portal-login .vsspp-results-disclosure[open] .vsspp-table-wrap{
    display:none !important;
  }
  html body .portal-login .vsspp-results-disclosure[open] .vsspp-mobile-results{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
    width:100% !important;
    max-width:none !important;
    margin:14px 0 0 !important;
  }
  html body .portal-login .vsspp-results-disclosure[open] .vsspp-result-filters{
    width:100% !important;
    max-width:none !important;
    margin:14px 0 10px !important;
  }
}

/* Keep the desktop summary comfortable on smaller laptops without touching phone layout. */
@media (min-width:901px) and (max-width:1100px){
  html body .portal-shell{grid-template-columns:250px minmax(0,1fr) !important;gap:20px !important}
  html body .portal-login .vsspp-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  html body .portal-login .vsspp-best-time{grid-template-columns:minmax(190px,1fr) 105px 60px !important;column-gap:10px !important}
}

/* v2.6.15 — lower Vitaliy and Diana portraits slightly so the top of the head stays clear in cropped cards */
@media(max-width:650px){.coach-card:first-child .coach-photo{object-position:67% 27%}.coach-card:nth-child(2) .coach-photo{object-position:25% 27%}.about-coach-card:nth-child(1) img{object-position:68% 27%}.about-coach-card:nth-child(2) img{object-position:24% 27%}}
