/*
Theme Name: Олимпионник — детское плавание
Author: Shaker
Description: Яркая одностраничная тема для записи детей в бассейн.
Version: 1.3.1
Text Domain: olimp-swim
*/
:root{--navy:#082a4a;--blue:#087fce;--cyan:#54d7ef;--yellow:#ffd737;--coral:#ff6a58;--white:#fff;--mist:#edfaff;--text:#17334d;--shadow:0 18px 55px rgba(8,42,74,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);font-family:Nunito,Arial,sans-serif;background:#fff;line-height:1.55}body.admin-bar .site-header{top:32px}a{color:inherit}img,video{max-width:100%;display:block}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(8,42,74,.08)}.nav{height:78px;display:flex;align-items:center;gap:24px}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;color:var(--navy);margin-right:auto}.logo img{width:58px;height:58px;object-fit:contain;border-radius:50%}.menu{display:flex;gap:22px;font-weight:800}.menu a{text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:12px 22px;border:0;border-radius:18px;background:var(--yellow);color:var(--navy);font:900 16px Nunito,Arial;cursor:pointer;text-decoration:none;box-shadow:0 8px 0 #e1b900;transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 0 #e1b900}.btn-blue{color:#fff;background:var(--blue);box-shadow:0 8px 0 #0564a3}.hero{min-height:760px;padding:145px 0 80px;display:grid;align-items:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#e7fbff 0%,#fff 52%,#fff7cd 100%)}.bubble{position:absolute;border-radius:50%;background:rgba(84,215,239,.2);border:2px solid rgba(84,215,239,.38)}.b1{width:90px;height:90px;left:3%;top:22%}.b2{width:34px;height:34px;left:48%;top:16%}.b3{width:130px;height:130px;right:2%;bottom:4%}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:56px}.eyebrow{display:inline-flex;background:#fff;padding:9px 14px;border-radius:99px;color:var(--blue);font-weight:900;box-shadow:var(--shadow)}h1,h2,h3{margin:0;color:var(--navy);line-height:1.08}h1{font-size:clamp(46px,6vw,78px);letter-spacing:-2.5px;margin:18px 0}h1 span{color:var(--blue)}.hero p{font-size:20px;max-width:590px}.hero-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:30px}.hero-photo{position:relative}.hero-photo img{height:570px;width:100%;object-fit:cover;border-radius:45% 45% 28px 28px;box-shadow:var(--shadow)}.sticker{position:absolute;background:var(--yellow);border:5px solid #fff;border-radius:50%;width:145px;height:145px;display:grid;place-content:center;text-align:center;font-weight:1000;line-height:1.05;right:-25px;bottom:24px;transform:rotate(-7deg);box-shadow:var(--shadow)}section{padding:92px 0}.section-head{text-align:center;max-width:720px;margin:0 auto 46px}.section-head h2{font-size:clamp(36px,5vw,56px);letter-spacing:-1.5px}.section-head p{font-size:18px}.benefits{background:var(--navy);color:#fff}.benefits h2,.benefits h3{color:#fff}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{background:#fff;color:var(--text);border-radius:26px;padding:28px;box-shadow:var(--shadow)}.card .icon{width:58px;height:58px;border-radius:18px;background:var(--mist);display:grid;place-content:center;font-size:30px;margin-bottom:20px}.card h3{color:var(--navy);font-size:21px;margin-bottom:8px}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:230px;gap:14px}.gallery-grid figure{margin:0;overflow:hidden;border-radius:26px}.gallery-grid figure:nth-child(1){grid-column:span 7;grid-row:span 2}.gallery-grid figure:nth-child(2){grid-column:span 5}.gallery-grid figure:nth-child(3){grid-column:span 5}.gallery-grid figure:nth-child(n+4){grid-column:span 4}.gallery-grid img,.gallery-grid video{width:100%;height:100%;object-fit:cover}.schedule{background:var(--mist)}.schedule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.day{padding:26px;background:#fff;border-radius:25px;border-top:8px solid var(--cyan);box-shadow:var(--shadow)}.day:nth-child(2){border-color:var(--yellow)}.day:nth-child(3){border-color:var(--coral)}.day h3{font-size:27px}.times{font-size:21px;font-weight:900;color:var(--blue);margin-top:12px;white-space:pre-line}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}.contact-panel{background:var(--navy);color:#fff;border-radius:32px;padding:36px}.contact-panel h2{color:#fff;font-size:42px}.contact-list{display:grid;gap:15px;margin:28px 0}.contact-list a{font-size:20px;font-weight:900;text-decoration:none}.messengers{display:flex;gap:12px;flex-wrap:wrap}.messenger{display:flex;align-items:center;gap:9px;padding:12px 16px;border-radius:16px;background:#fff;color:var(--navy);text-decoration:none;font-weight:900}.messenger svg{width:25px;height:25px}.lead-form{background:#fff;border-radius:32px;padding:36px;box-shadow:var(--shadow)}.lead-form h3{font-size:32px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:14px;font-weight:900}.field input,.field textarea{width:100%;border:2px solid #d7edf5;border-radius:14px;padding:14px 15px;font:inherit;outline:none}.field input:focus,.field textarea:focus{border-color:var(--blue)}.consent{font-size:13px}.notice{padding:13px 16px;border-radius:14px;margin:15px 0;background:#e8fff0;color:#126b35;font-weight:800}.map{padding:0}.map iframe{width:100%;height:390px;border:0;display:block}.footer{background:#041e35;color:#d9edf8;padding:34px 0}.footer-row{display:flex;justify-content:space-between;gap:24px;align-items:center}.footer a{color:#fff}.mobile-cta{display:none}.screen-reader-text{position:absolute;left:-9999px}
@media(max-width:900px){.menu{display:none}.hero-grid,.contact-grid{grid-template-columns:1fr}.hero{padding-top:120px}.hero-photo img{height:480px}.cards{grid-template-columns:1fr 1fr}.schedule-grid{grid-template-columns:1fr}.gallery-grid figure,.gallery-grid figure:nth-child(1),.gallery-grid figure:nth-child(2),.gallery-grid figure:nth-child(3),.gallery-grid figure:nth-child(n+4){grid-column:span 6;grid-row:span 1}.gallery-grid figure:first-child{grid-column:span 12}.mobile-cta{display:flex;position:fixed;z-index:30;left:14px;right:14px;bottom:12px;gap:8px}.mobile-cta a{flex:1}.footer{padding-bottom:100px}}
@media(max-width:600px){body.admin-bar .site-header{top:46px}.wrap{width:min(100% - 26px,1160px)}.nav{height:68px}.logo span{font-size:14px}.logo img{width:45px;height:45px}.nav>.btn{display:none}.hero{min-height:auto;padding:105px 0 58px}.hero-grid{gap:30px}h1{font-size:43px;letter-spacing:-1.5px}.hero p{font-size:17px}.hero-photo img{height:390px}.sticker{width:116px;height:116px;font-size:14px;right:-5px}section{padding:65px 0}.cards{grid-template-columns:1fr}.gallery-grid{grid-auto-rows:180px}.fields{grid-template-columns:1fr}.field.full{grid-column:auto}.lead-form,.contact-panel{padding:25px}.footer-row{display:grid}.map iframe{height:320px}}

/* Brand mark uses the tightly cropped source image. */
.nav{height:96px}.logo{gap:13px}.logo img{width:82px;height:82px}
@media(max-width:600px){.nav{height:76px}.logo span{font-size:13px}.logo img{width:62px;height:62px}}

.media-card{padding:0;overflow:hidden}.media-card>img{width:100%;height:185px;object-fit:cover}.card-copy{padding:24px}.card-copy .icon{margin-top:-53px;position:relative;border:5px solid #fff}.progress{background:linear-gradient(135deg,#fff8d5,#eafaff)}.progress-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:52px;align-items:center}.progress-copy h2,.atmosphere-copy h2{font-size:clamp(38px,5vw,58px);margin:18px 0}.progress-copy p,.atmosphere-copy p{font-size:18px;margin-bottom:28px}.progress-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;transform:rotate(1deg)}.progress-photos img{width:100%;height:220px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}.progress-photos img:nth-child(2),.progress-photos img:nth-child(5){transform:translateY(22px)}.motion{background:var(--navy);color:#fff}.motion h2{color:#fff}.video-row{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.video-row figure{margin:0;position:relative;overflow:hidden;border-radius:26px;background:#031b31;aspect-ratio:9/13}.video-row video{width:100%;height:100%;object-fit:cover}.sound-toggle{position:absolute;right:12px;bottom:12px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.9);cursor:pointer;font-size:18px}.atmosphere{padding:110px 0}.atmosphere-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:54px;align-items:center}.atmosphere-copy{position:sticky;top:130px}.atmosphere-media{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:175px;gap:12px}.atmosphere-media figure{margin:0;border-radius:22px;overflow:hidden;background:var(--mist)}.atmosphere-media figure:nth-child(1),.atmosphere-media figure:nth-child(8){grid-column:span 2;grid-row:span 2}.atmosphere-media img,.atmosphere-media video{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.progress-grid,.atmosphere-grid{grid-template-columns:1fr}.video-row{grid-template-columns:1fr 1fr}.atmosphere-copy{position:static;order:-1}.progress-photos img{height:180px}}
@media(max-width:600px){.media-card>img{height:210px}.progress-photos{grid-template-columns:1fr 1fr}.progress-photos img{height:160px}.video-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}.video-row figure{min-width:78vw;scroll-snap-align:center}.atmosphere-media{grid-template-columns:1fr 1fr;grid-auto-rows:155px}.atmosphere-media figure:nth-child(1),.atmosphere-media figure:nth-child(8){grid-column:span 2}.atmosphere{padding:70px 0}}

.header-social{display:flex;gap:8px}.social-icon{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:1000;font-size:11px;line-height:1;box-shadow:0 7px 18px rgba(8,42,74,.14);transition:transform .2s}.social-icon:hover{transform:translateY(-2px)}.max-icon{color:#fff;background:linear-gradient(145deg,#695cff,#8d52f5)}.tg-icon{color:#fff;background:#28a8e9}.tg-icon svg{width:24px;height:24px;fill:currentColor}.messenger .social-icon{box-shadow:none;margin:-7px 2px -7px -9px}
.vk-icon{color:#fff;background:#2787f5;font-size:13px}
.header-tagline{color:var(--navy);font-size:18px;font-weight:1000;white-space:nowrap;margin-right:18px}
@media(max-width:1100px){.header-tagline{margin-left:auto;margin-right:4px}.logo{margin-right:0}}
@media(max-width:600px){.header-tagline{font-size:14px;line-height:1.1}.nav{gap:10px}}
@media(max-width:1100px){.header-social{margin-left:auto}.header-social+.btn{display:none}}
@media(max-width:600px){.header-social{gap:5px}.social-icon{width:38px;height:38px;flex-basis:38px;border-radius:12px}.logo span{display:none}}

/* Keep the swimmer's full face visible in the third benefit card. */
.media-card:nth-child(3)>img{object-position:center top}

/* Faces stay inside short responsive media frames on phone and desktop. */
.hero-photo img,.media-card>img,.gallery-grid img,.progress-photos img,.atmosphere-media img{object-position:center top}
.gallery-grid figure:nth-child(6) img{object-position:center center}

/* Show complete photos instead of cropping people to faces. */
.media-card>img,.gallery-grid img,.progress-photos img,.atmosphere-media img{object-fit:contain;object-position:center center;background:linear-gradient(145deg,#dff7ff,#f6fcff)}
.media-card>img{height:240px}
.gallery-grid figure,.progress-photos img,.atmosphere-media figure{background:#eaf9ff}

.achievements{overflow:hidden;background:linear-gradient(145deg,#fff9d7 0%,#fff 48%,#e6faff 100%)}.achievement-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:36px}.achievement-head>div:first-child{max-width:760px}.achievement-head h2{font-size:clamp(38px,5vw,58px);margin:18px 0 10px}.achievement-head p{font-size:18px;margin:0}.achievement-controls{display:flex;gap:10px}.achievement-arrow{width:54px;height:54px;border:0;border-radius:18px;background:var(--navy);color:#fff;font-size:25px;font-weight:900;cursor:pointer;box-shadow:0 7px 0 #031a2e}.achievement-arrow:hover{transform:translateY(-2px)}.achievement-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 4px 28px}.achievement-track::-webkit-scrollbar{display:none}.achievement-card{flex:0 0 310px;margin:0;overflow:hidden;border-radius:28px;background:#fff;box-shadow:var(--shadow);scroll-snap-align:start}.achievement-card img{width:100%;height:414px;object-fit:contain;background:linear-gradient(145deg,#fff8c6,#e6faff)}.achievement-card figcaption{display:grid;gap:4px;padding:20px 22px 23px}.achievement-card strong{font-size:20px;color:var(--navy)}.achievement-card span{font-size:14px;color:#527087}.achievement-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;border-radius:24px;background:var(--navy);color:#fff;font-size:20px;font-weight:900}.achievement-cta .btn{flex:0 0 auto}
@media(max-width:700px){.achievement-head{align-items:start}.achievement-controls{display:none}.achievement-track{margin-right:calc((100vw - 100%)/-2);padding-right:18vw}.achievement-card{flex-basis:82vw}.achievement-card img{height:auto;aspect-ratio:3/4}.achievement-cta{display:grid;text-align:center}.achievement-cta .btn{width:100%}}

/* Natural-ratio photo layout: fills each frame without cropping or side gaps. */
.media-card>img{width:100%;height:auto;aspect-ratio:3/4;object-fit:fill;object-position:center;background:none}
.media-card:nth-child(4)>img{aspect-ratio:4/3;object-fit:cover;object-position:center 20%}
.contact-phone{display:grid;grid-template-columns:1fr 52px;align-items:center;gap:12px}.phone-call{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:var(--blue);box-shadow:0 6px 0 #0564a3}.phone-call svg{width:25px;height:25px;fill:#fff}.phone-call:hover{transform:translateY(-2px)}
.map{position:relative}.map-label{position:absolute;z-index:2;left:50%;top:50%;width:230px;padding:12px 16px;border:3px solid var(--blue);border-radius:18px;background:#fff;color:var(--navy);display:grid;gap:1px;text-align:center;line-height:1.2;transform:translate(-50%,-118%);box-shadow:0 12px 28px rgba(8,42,74,.28);pointer-events:none}.map-label span{font-size:14px;font-weight:800}.map-label strong{font-size:19px}.map-label small{margin-top:4px;font-size:12px;color:#527087}.map-label:after{content:"";position:absolute;left:50%;bottom:-14px;width:22px;height:22px;background:#fff;border-right:3px solid var(--blue);border-bottom:3px solid var(--blue);transform:translateX(-50%) rotate(45deg)}
.map-label{left:16px;top:16px;width:185px;padding:8px 10px;border-width:2px;border-radius:13px;text-align:left;transform:none;box-shadow:0 7px 18px rgba(8,42,74,.2)}.map-label span{display:none}.map-label strong{font-size:15px}.map-label small{font-size:11px}.map-label:after{display:none}
.gallery-grid{display:block;column-count:3;column-gap:14px;grid-auto-rows:unset}.gallery-grid figure,.gallery-grid figure:nth-child(1),.gallery-grid figure:nth-child(2),.gallery-grid figure:nth-child(3),.gallery-grid figure:nth-child(n+4){display:inline-block;width:100%;margin:0 0 14px;break-inside:avoid;grid-column:auto;grid-row:auto;background:none}.gallery-grid img,.gallery-grid video{width:100%;height:auto;object-fit:fill;object-position:center;background:none}
.progress-photos img{width:100%;height:auto;aspect-ratio:3/4;object-fit:fill;object-position:center;background:none}
.atmosphere-media{grid-template-columns:repeat(3,1fr);grid-auto-rows:auto}.atmosphere-media figure,.atmosphere-media figure:nth-child(1),.atmosphere-media figure:nth-child(8){grid-column:auto;grid-row:auto;background:none}.atmosphere-media img{width:100%;height:auto;object-fit:fill;background:none}.atmosphere-media video{width:100%;height:auto;object-fit:contain}
@media(max-width:900px){.gallery-grid{column-count:2}.atmosphere-media{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.gallery-grid{column-count:1}.atmosphere-media{grid-template-columns:1fr 1fr}.media-card>img{height:auto}}
