/* Grand Float · 2026-10 · дизайн-слой «вода и тишина».
   Подключается последним, поверх style.css и refinement.css. */

@font-face{font-family:Arsenal;src:url('/fonts/Arsenal-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Arsenal;src:url('/fonts/Arsenal-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
 --ink:#132a45;
 --ink-soft:#40566d;
 --blue:#05517d;
 --blue-deep:#043f62;
 --aqua:#5ec4e6;
 --aqua-soft:#d9f0f8;
 --sand:#ddac7b;
 --sand-deep:#b9824d;
 --paper:#f8f3ec;
 --mist:#f1f6f9;
 --page:#fdfbf8;
 --line:rgba(19,42,69,.09);
 --shadow-soft:0 1px 2px rgba(19,42,69,.04),0 12px 32px -12px rgba(19,42,69,.14);
 --shadow-lift:0 2px 4px rgba(19,42,69,.05),0 30px 60px -22px rgba(5,60,95,.32);
 --ease-out:cubic-bezier(.16,1,.3,1);
 --ease-water:cubic-bezier(.65,0,.35,1);
}

@view-transition{navigation:auto}
::view-transition-old(root){animation:gf-vt-out .35s var(--ease-water) both}
::view-transition-new(root){animation:gf-vt-in .55s var(--ease-out) both}
@keyframes gf-vt-out{to{opacity:0;filter:blur(6px)}}
@keyframes gf-vt-in{from{opacity:0;transform:translateY(14px)}}

html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

body{background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--aqua-soft);color:var(--blue-deep)}
p{color:var(--ink-soft)}

/* ---------- Читаемость: убираем мелкий кегль ---------- */
.section-heading>p,.split>div>p,.quiz-banner p,.gift-block p,.experience-copy p,.star-head>p{font-size:17px;line-height:1.7}
.program-card>p{font-size:15px;line-height:1.6;color:var(--ink-soft)}
.program-meta{font-size:12.5px;color:#6b7f92;letter-spacing:.01em}
.program-card details,.program-card details summary{font-size:13.5px}
.guest-review>p{font-size:15px;line-height:1.7;color:var(--ink-soft)}
.faq details p,.faq details>p{font-size:16px;line-height:1.7}
.star-rail p{font-size:15px}
.footer-addresses span,.footer-contact-actions>a:not(.button){font-size:14px}
.footer-bottom{font-size:12.5px}
.breadcrumb{font-size:13px}
.header-address{font-size:12px}
.lead-form label,.contact-choice legend{font-size:14px}
.lead-form .form-consent{font-size:12px}
.form-preview-note{font-size:12px!important}
.hero-video .hero-copy>p{font-size:17px;line-height:1.65;max-width:390px;color:rgba(255,255,255,.9)}
.hero-video .seo-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
@media(max-width:600px){
 .section-heading>p,.split>div>p,.quiz-banner p,.gift-block p,.experience-copy p,.star-head>p{font-size:16px}
 .program-card>p,.guest-review>p,.faq details p{font-size:15px}
}

/* ---------- Шапка: плавающая стеклянная капсула ---------- */
body .header{
 position:sticky;top:12px;z-index:40;
 height:76px;margin-top:12px;margin-bottom:16px;
 padding:0 12px 0 22px;
 border-radius:999px;
 background:#fff;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 box-shadow:0 0 0 1px rgba(19,42,69,.06),0 10px 30px -14px rgba(19,42,69,.18);
 transition:box-shadow .3s ease;
 gap:18px;
}
html.gf-scrolled body .header{box-shadow:0 0 0 1px rgba(19,42,69,.07),0 18px 40px -18px rgba(19,42,69,.28)}
body .header .brand{width:auto;flex:none}
body .header .brand img{height:50px;width:auto}
body .header nav{background:transparent;padding:0;gap:6px}
body .header nav a{position:relative;font-size:14.5px;padding:10px 14px;border-radius:999px;color:var(--ink);transition:background .25s ease,color .25s ease}
body .header nav a:hover{opacity:1;background:rgba(5,81,125,.07);color:var(--blue)}
body .header nav a[aria-current=page]{background:rgba(5,81,125,.09);color:var(--blue)}
body .header nav a::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--aqua);opacity:0;transform:translateY(4px);transition:.3s var(--ease-out)}
body .header nav a[aria-current=page]::after{opacity:1;transform:none}
body .header .header-phone{font-size:16px;font-weight:700;letter-spacing:.01em;color:var(--ink)}
body .header .header-address{color:#6b7f92}
body .header>.social-icons a{width:40px;height:40px;transition:transform .3s var(--ease-out),filter .3s}
body .header>.social-icons a:hover{transform:translateY(-2px)}
body .header>.social-icons a[aria-label=Telegram]{background:#229ed9}
body .header>.social-icons a[aria-label=ВКонтакте]{background:#0077ff}
.gf-head-cta{display:none}
.gf-burger{display:none}
@media(min-width:1201px){
 .gf-head-cta{display:inline-flex;align-items:center;min-height:46px;padding:0 20px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:14.5px;white-space:nowrap;position:relative;overflow:hidden;transition:background .3s,transform .3s var(--ease-out)}
 .gf-head-cta:hover{background:var(--blue-deep)}
}
/* компактная шапка: планшет и телефон */
@media(max-width:900px){
 body .header{
  display:flex!important;align-items:center;gap:8px;
  height:64px!important;min-height:0!important;
  padding:0 8px 0 16px!important;
  top:10px;margin-top:10px;
 }
 body .header .brand img{height:42px!important;width:auto!important}
 body .header .header-contact,body .header>.social-icons{display:none!important}
 body .header .menu-toggle{display:none!important}
 .gf-head-cta{display:inline-flex;align-items:center;margin-left:auto;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:14.5px;white-space:nowrap}
 .gf-burger{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:rgba(5,81,125,.08);color:var(--ink);padding:0;flex:none}
 .gf-burger i{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;box-shadow:0 -6px currentColor,0 6px currentColor}
 .gf-phone-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(5,81,125,.08);color:var(--blue);flex:none}
 .gf-phone-btn svg{width:19px;height:19px}
}
@media(min-width:901px){.gf-phone-btn{display:none}}
@media(max-width:370px){.gf-head-cta{padding:0 12px;font-size:13.5px}body .header .brand img{height:36px!important}}
.mobile-menu{display:none!important}

/* ---------- Меню-шторка (паттерн Спички, палитра Grand Float) ---------- */
dialog.gf-menu{position:fixed;inset:8px 8px auto auto;margin:0;width:min(440px,calc(100% - 16px));max-width:none;height:auto;max-height:calc(100dvh - 16px);padding:14px 14px 16px;border:0;border-radius:28px;background:#fbf8f4;color:var(--ink);box-shadow:0 30px 80px -20px rgba(4,40,64,.45),0 0 0 1px rgba(19,42,69,.06);overflow-y:auto;overscroll-behavior:contain;transform-origin:calc(100% - 40px) 30px}
dialog.gf-menu:not([open]){display:none}
dialog.gf-menu::backdrop{background:rgba(6,32,52,.38);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.gf-menu-top{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 14px 8px}
.gf-menu-top img{height:44px;width:auto}
.gf-menu-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#eee8e0;color:var(--ink);padding:0;transition:transform .3s var(--ease-out),background .2s}
.gf-menu-close:hover{transform:rotate(90deg);background:#e6ded3}
.gf-menu-close svg{width:18px;height:18px}
.gf-menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.gf-menu-links a{display:flex;align-items:center;gap:11px;min-height:58px;padding:10px 12px;border-radius:17px;background:#fff;box-shadow:inset 0 0 0 1px rgba(19,42,69,.07);font-size:16px;line-height:1.2;color:var(--ink);transition:box-shadow .25s,transform .25s var(--ease-out)}
.gf-menu-links a:hover,.gf-menu-links a:active{box-shadow:inset 0 0 0 1.5px rgba(5,81,125,.35)}
.gf-menu-links a[aria-current=page]{box-shadow:inset 0 0 0 1.5px var(--blue);color:var(--blue)}
.gf-menu-links .ico{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:11px;background:var(--mist);color:var(--blue)}
.gf-menu-links svg{width:19px;height:19px}
.gf-menu-label{margin:16px 0 8px 6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#8a96a3}
.gf-menu-contacts{border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1px rgba(19,42,69,.07);overflow:hidden}
.gf-menu-phone{display:flex;align-items:center;gap:12px;padding:12px}
.gf-menu-phone .ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:13px;background:var(--blue);color:#fff}
.gf-menu-phone .ico svg{width:20px;height:20px}
.gf-menu-phone small{display:block;font-size:12.5px;color:#8a96a3}
.gf-menu-phone strong{display:block;font-size:22px;font-weight:700;letter-spacing:.005em;white-space:nowrap}
.gf-menu-addr{display:block;padding:11px 14px 11px 68px;border-top:1px solid rgba(19,42,69,.07);font-size:15px;line-height:1.35}
.gf-menu-addr small{display:block;font-size:12.5px;color:#8a96a3}
.gf-menu-msg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.gf-menu-msg a{display:flex;align-items:center;justify-content:center;gap:7px;height:48px;border-radius:15px;color:#fff;font-size:13.5px;font-weight:700;transition:transform .25s var(--ease-out),filter .2s}
.gf-menu-msg a:hover{transform:translateY(-2px);filter:brightness(1.06)}
.gf-menu-msg svg{width:18px;height:18px;fill:#fff;flex:none}
.gf-menu-msg .tg{background:#229ed9}.gf-menu-msg .wa{background:#25d366}.gf-menu-msg .vk{background:#0077ff}
.gf-menu-msg .max{background:linear-gradient(135deg,#00bfff 0%,#471aff 56%,#9500ff 100%)}
.gf-menu-cta{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;margin-top:10px;border:0;border-radius:17px;background:var(--blue);color:#fff;font-size:16.5px;position:relative;overflow:hidden}
.gf-menu-quiz{display:block;width:100%;margin-top:6px;padding:12px;border:0;background:none;color:var(--blue);font-size:15px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(5,81,125,.3)}
@media(max-width:360px){.gf-menu-links a{font-size:14.5px;gap:8px;padding:9px}.gf-menu-links .ico{width:32px;height:32px}.gf-menu-phone strong{font-size:19px}}

/* ---------- Кнопки: блик и «круги на воде» ---------- */
.button,.card-bottom .text-link,.gf-head-cta,.gf-menu-cta{position:relative;overflow:hidden;isolation:isolate;transition:background .3s ease,transform .45s var(--ease-out),box-shadow .35s ease}
.button::before,.card-bottom .text-link::before,.gf-head-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.32) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease-out)}
@media(hover:hover){
 .button:hover::before,.card-bottom .text-link:hover::before,.gf-head-cta:hover::before{transform:translateX(120%)}
 .button:not(.secondary):hover{box-shadow:0 14px 30px -12px rgba(5,81,125,.55)}
}
.gf-ripple{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.55) 0,rgba(255,255,255,.18) 45%,transparent 70%);transform:scale(0);animation:gf-ripple .85s var(--ease-out) forwards}
.button.secondary .gf-ripple,.hero-video .button:not(.secondary) .gf-ripple{background:radial-gradient(circle,rgba(94,196,230,.45) 0,rgba(94,196,230,.12) 45%,transparent 70%)}
@keyframes gf-ripple{to{transform:scale(1);opacity:0}}
.button.secondary{border-color:rgba(19,42,69,.22)}
.hero-video .button{min-height:56px;padding:15px 28px;font-size:15.5px}
.hero-video .button.secondary{background:rgba(255,255,255,.1)}

/* ---------- Первый экран: вода ---------- */
.hero.hero-video{animation:gf-hero-open 1.6s var(--ease-out) both;box-shadow:0 40px 90px -40px rgba(4,50,80,.55)}
@keyframes gf-hero-open{from{clip-path:inset(7% 5% 7% 5% round 48px);opacity:.25}to{clip-path:inset(0 0 0 0 round 28px);opacity:1}}
@media(max-width:600px){@keyframes gf-hero-open{from{clip-path:inset(5% 4% 5% 4% round 40px);opacity:.25}to{clip-path:inset(0 0 0 0 round 24px);opacity:1}}}
.hero-video #hero-film,.hero-video .hero-poster{scale:1.14;animation:gf-dive 2.6s var(--ease-out) forwards;will-change:scale,translate}
@keyframes gf-dive{to{scale:1.02}}
.hero-video .hero-copy{animation:none}
.gf-caustics{position:absolute;inset:-20%;z-index:1;pointer-events:none;opacity:.32;will-change:transform;
 background:
  radial-gradient(38% 28% at 70% 30%,rgba(160,230,255,.55),transparent 70%),
  radial-gradient(30% 22% at 30% 75%,rgba(120,210,245,.4),transparent 70%),
  radial-gradient(25% 18% at 85% 80%,rgba(255,255,255,.35),transparent 70%);
 animation:gf-caustics 14s ease-in-out infinite alternate}
html.gf-scrolled-far .gf-caustics,html.gf-scrolled-far .gf-waves *{animation-play-state:paused}
@keyframes gf-caustics{0%{transform:translate3d(-4%,-2%,0) rotate(0)}50%{transform:translate3d(3%,3%,0) rotate(4deg)}100%{transform:translate3d(-2%,4%,0) rotate(-3deg)}}
.gf-bubbles{position:absolute;inset:0;z-index:1;pointer-events:none;width:100%;height:100%}
.gf-waves{position:absolute;left:0;right:0;bottom:-1px;z-index:2;height:clamp(46px,6vw,84px);pointer-events:none;overflow:hidden}
.gf-waves svg{position:absolute;bottom:0;left:0;width:200%;height:100%}
.gf-waves .w1{fill:rgba(255,255,255,.07);animation:gf-wave 16s linear infinite}
.gf-waves .w2{fill:rgba(255,255,255,.09);animation:gf-wave 11s linear infinite reverse}
.gf-waves .w3{fill:rgba(190,235,250,.10);animation:gf-wave 8s linear infinite}
@keyframes gf-wave{to{transform:translateX(-50%)}}
.hero-video .hero-copy{z-index:3;max-width:780px!important}
.gf-scroll-cue{position:absolute;right:clamp(22px,3vw,44px);bottom:clamp(64px,8vw,110px);z-index:3;display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.85);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none;animation:gf-fade-in 1s 1.6s both}
.gf-scroll-cue i{position:relative;width:26px;height:40px;border:1.5px solid rgba(255,255,255,.7);border-radius:14px}
.gf-scroll-cue i::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:3px;background:#fff;animation:gf-cue 2s var(--ease-water) infinite}
@keyframes gf-cue{0%{opacity:0;transform:translateY(-3px)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
@keyframes gf-fade-in{from{opacity:0;transform:translateY(10px)}}
@media(max-width:600px){.gf-scroll-cue{display:none}}

/* разбивка заголовков на слова */
.gf-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.gf-w>span{display:inline-block;transform:translateY(105%);filter:blur(8px);opacity:0;transition:transform 1.1s var(--ease-out),filter 1.1s var(--ease-out),opacity .9s ease;transition-delay:calc(var(--i,0) * 55ms + var(--d,0ms))}
.gf-split.is-in .gf-w>span{transform:none;filter:none;opacity:1}
html.gf-js .hero-video h1:not(.gf-split){opacity:0;animation:gf-failsafe 0s 2.5s forwards}
html.gf-js .hero-video .hero-copy>p,html.gf-js .hero-video .hero-actions{opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease-out),transform 1.2s var(--ease-out);animation:gf-failsafe 0s 3s forwards}
html.gf-hero-in .hero-video .hero-copy>p{opacity:1;transform:none;transition-delay:.55s}
html.gf-hero-in .hero-video .hero-actions{opacity:1;transform:none;transition-delay:.75s}
@keyframes gf-failsafe{to{opacity:1;transform:none}}

/* ---------- Появление при прокрутке ---------- */
html.gf-js [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease-out),transform 1.2s var(--ease-out);transition-delay:calc(var(--stagger,0) * 90ms)}
html.gf-js [data-reveal].is-in{opacity:1;transform:none}
html.gf-js [data-reveal-img]{clip-path:inset(18% 6% 0 6% round 30px);transition:clip-path 1.4s var(--ease-out);transition-delay:calc(var(--stagger,0) * 90ms)}
html.gf-js [data-reveal-img] img{scale:1.18;transition:scale 1.8s var(--ease-out);transition-delay:calc(var(--stagger,0) * 90ms)}
html.gf-js [data-reveal-img].is-in{clip-path:inset(0 0 0 0 round 0)}
html.gf-js [data-reveal-img].is-in img{scale:1}
html.gf-js img[data-reveal-img]{scale:1}
.gf-parallax{will-change:translate;scale:1.12}
html.gf-js [data-reveal-img] img.gf-parallax{scale:1.3}
html.gf-js [data-reveal-img].is-in img.gf-parallax{scale:1.12}

/* ---------- Сторис: живое кольцо ---------- */
.story{position:relative;isolation:isolate;transition:transform .4s var(--ease-out)}
.story img{border:0!important;padding:4px!important;background:var(--page)!important;position:relative;z-index:1;transition:scale .5s var(--ease-out)}
.story::before{content:"";position:absolute;z-index:0;top:-3px;left:50%;width:103px;height:103px;translate:-50% 0;border-radius:50%;background:conic-gradient(from 0deg,#05517d,#5ec4e6,#ddac7b,#05517d);animation:gf-spin 5s linear infinite}
.story.viewed::before{background:#d3dbe3;animation:none}
@keyframes gf-spin{to{rotate:360deg}}
@media(hover:hover){.story:hover img{scale:1.06}.story:hover{transform:translateY(-3px)}}
.story span{font-size:13px;color:var(--ink)}
@media(max-width:600px){.story::before{width:100px;height:100px}.story span{font-size:12px}}

/* ---------- Карточки программ ---------- */
.program-card{background:#fff!important;box-shadow:var(--shadow-soft);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out)!important;will-change:transform}
.program-photo img{transition:scale 1.2s var(--ease-out)!important}
@media(hover:hover){
 .program-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift)!important}
 .program-card:hover .program-photo img{scale:1.07}
}
.program-card .price{font-weight:700;color:var(--ink);letter-spacing:-.01em}
.program-card details summary span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--mist);color:var(--blue);transition:rotate .4s var(--ease-out)}
.guest-switch{position:relative;background:var(--mist)!important}
.guest-switch button{position:relative;z-index:1;transition:color .35s ease}
.guest-switch button[aria-pressed=true]{background:transparent!important;color:#fff}
.gf-pill{position:absolute;z-index:0;top:5px;bottom:5px;border-radius:40px;background:var(--blue);box-shadow:0 6px 16px -6px rgba(5,81,125,.6);transition:left .5s var(--ease-out),width .5s var(--ease-out)}
.guest-switch:not(:has(.gf-pill)) button[aria-pressed=true]{background:var(--blue)!important}
.price.gf-tick{animation:gf-tick .5s var(--ease-out)}
@keyframes gf-tick{from{opacity:.2;transform:translateY(8px)}}

/* ---------- Разделы ---------- */
.experience-stage{background:linear-gradient(160deg,#eaf4f9 0%,#f9fbfc 55%,#f3ece3 100%)}
.quiz-preview,.gift-block .split,.faq details,.guest-review{background:var(--paper)!important}
.quiz-preview button{transition:transform .45s var(--ease-out),box-shadow .35s,background .25s}
@media(hover:hover){.quiz-preview button:hover{transform:translateX(6px);box-shadow:var(--shadow-soft);background:#fff}}
.faq details{transition:background .3s,box-shadow .3s}
.faq details[open]{background:#fff!important;box-shadow:var(--shadow-soft)}
.faq summary span,.program-card details summary span{transition:rotate .45s var(--ease-out)}
details[open]>summary span{transform:none!important;rotate:45deg}
.gf-details-body{overflow:hidden}
.guest-review{transition:transform .5s var(--ease-out),box-shadow .5s}
@media(hover:hover){.guest-review:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}}
.review-carousel.gf-drag{cursor:grab;user-select:none}
.review-carousel.gf-dragging{cursor:grabbing;scroll-snap-type:none}
.review-navigation button,.star-navigation button{transition:transform .35s var(--ease-out),background .25s,border-color .25s}
.review-navigation button:hover{transform:scale(1.08);border-color:var(--blue)}

/* звёздный зал */
.star-experience{background:radial-gradient(120% 80% at 80% 0%,#0b5d8c 0%,transparent 60%),linear-gradient(160deg,#0a1630 0%,#08365a 55%,#05517d 100%)!important}
.star-experience.gf-has-sky::before,.star-experience.gf-has-sky::after{display:none}
.gf-sky{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}
.star-rail article{transition:transform .6s var(--ease-out),box-shadow .6s,border-color .4s;transform-style:preserve-3d}
.star-rail article img{transition:scale 1.2s var(--ease-out)}
@media(hover:hover){
 .star-rail article:hover{border-color:rgba(255,255,255,.4);box-shadow:0 30px 60px -25px rgba(94,196,230,.45)}
 .star-rail article:hover img{scale:1.06}
}
.star-rail article{overflow:hidden}
.star-rail article>img{display:block}
.vetrino-accent{color:#e8bc8c!important}
@keyframes gf-shimmer{50%{background-position:100% 0}}

/* программа: подвижные карточки «пути» */
.program-journey{background:radial-gradient(90% 70% at 85% 10%,#0c6a99 0%,transparent 60%),#063f5d!important;position:relative;overflow:hidden;isolation:isolate}
.program-journey-grid article{transition:transform .6s var(--ease-out),background .4s}
@media(hover:hover){.program-journey-grid article:hover{transform:translateY(-6px);background:rgba(255,255,255,.12)!important}}
.program-fit li{transition:transform .5s var(--ease-out),box-shadow .4s,background .3s}
@media(hover:hover){.program-fit li:hover{transform:translateX(6px);background:#fff!important;box-shadow:var(--shadow-soft)}}

/* подвал */
#contacts{background:linear-gradient(180deg,#eef5f9 0%,#f6efe6 100%)!important;position:relative;overflow:hidden;isolation:isolate}
.gf-footer-mark{position:absolute;z-index:-1;left:50%;bottom:-.18em;translate:-50% 0;font-family:Vetrino,Georgia,serif;font-size:clamp(80px,15vw,230px);line-height:1;white-space:nowrap;color:rgba(5,81,125,.06);pointer-events:none;user-select:none}
.footer-addresses>a{transition:padding .4s var(--ease-out),color .3s}
@media(hover:hover){.footer-addresses>a:hover{padding-left:8px;color:var(--blue)}}

/* ---------- Плавающие мессенджеры: один «пузырь» ---------- */
.floating-actions.gf-fan{gap:10px}
.floating-actions.gf-fan .float-action{opacity:0;visibility:hidden;transform:translateY(16px) scale(.6);transition:opacity .35s ease,transform .5s var(--ease-out),visibility .35s,width .45s var(--ease-out);transition-delay:calc((2 - var(--n,0)) * 45ms)}
.floating-actions.gf-fan.is-open .float-action{opacity:1;visibility:visible;transform:none;transition-delay:calc(var(--n,0) * 55ms)}
.gf-chat{position:relative;display:grid;place-items:center;width:58px;height:58px;padding:0;border:0;border-radius:50%;background:var(--blue);color:#fff;box-shadow:0 14px 34px -10px rgba(5,81,125,.65);transition:transform .45s var(--ease-out),background .3s}
.gf-chat:hover{transform:scale(1.06)}
.gf-chat svg{position:absolute;width:24px;height:24px;transition:opacity .3s,rotate .45s var(--ease-out),scale .45s var(--ease-out)}
.gf-chat .x{opacity:0;rotate:-90deg;scale:.5}
.gf-fan.is-open .gf-chat .x{opacity:1;rotate:0deg;scale:1}
.gf-fan.is-open .gf-chat .bubble{opacity:0;rotate:90deg;scale:.5}
.gf-fan.is-open .gf-chat{background:var(--ink)}
.gf-chat::before,.gf-chat::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--aqua);opacity:0;animation:gf-ping 3.2s var(--ease-out) infinite}
.gf-chat::after{animation-delay:.5s}
.gf-fan.is-open .gf-chat::before,.gf-fan.is-open .gf-chat::after{animation:none}
@keyframes gf-ping{0%{opacity:.7;transform:scale(1)}60%,100%{opacity:0;transform:scale(1.7)}}
@media(max-width:600px){
 body .floating-actions.gf-fan{right:14px;bottom:max(16px,env(safe-area-inset-bottom))}
 .gf-chat{width:54px;height:54px}
 body .back-to-top{bottom:max(84px,calc(env(safe-area-inset-bottom) + 84px));right:20px}
}

/* ---------- Полоса прогресса чтения ---------- */
.gf-progress{position:fixed;left:0;top:0;right:0;z-index:60;height:3px;background:linear-gradient(90deg,var(--aqua),var(--blue));transform-origin:0 50%;transform:scaleX(0);pointer-events:none}

/* ---------- Диалоги: мягкое появление ---------- */
dialog[open]:not(.gf-menu):not(.story-dialog){animation:gf-dialog .6s var(--ease-out)}
dialog[open]::backdrop{animation:gf-backdrop .4s ease}
@keyframes gf-dialog{from{opacity:0;transform:translateY(24px) scale(.97)}}
@keyframes gf-backdrop{from{opacity:0}}
.quiz-options button{transition:transform .4s var(--ease-out),background .25s,border-color .25s}
@media(hover:hover){.quiz-options button:hover{transform:translateX(5px);border-color:var(--blue)}}

/* ---------- Формы ---------- */
.lead-form input:not([type=radio]):not([type=checkbox]),.lead-form textarea{transition:border-color .25s,box-shadow .25s}
.lead-form input:not([type=radio]):not([type=checkbox]):focus,.lead-form textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(94,196,230,.25)}
.lead-form .contact-choice label{transition:border-color .25s,background .25s}
.lead-form .contact-choice label:has(:checked){border-color:var(--blue);background:var(--mist)}

@media(prefers-reduced-motion:reduce){
 .hero.hero-video,.hero-video #hero-film,.hero-video .hero-poster,.gf-caustics,.gf-waves *,.story::before,.vetrino-accent,.gf-chat::before,.gf-chat::after{animation:none!important}
 .hero-video #hero-film,.hero-video .hero-poster{scale:1}
 html.gf-js [data-reveal],html.gf-js [data-reveal-img],html.gf-js [data-reveal-img] img,.gf-w>span{opacity:1!important;transform:none!important;clip-path:none!important;scale:1!important;filter:none!important;transition:none!important}
 html.gf-js .hero-video h1,html.gf-js .hero-video .hero-copy>p,html.gf-js .hero-video .hero-actions{opacity:1;transform:none}
 ::view-transition-old(root),::view-transition-new(root){animation:none}
}

/* ---------- Типографика крупнее и спокойнее ---------- */
.section-heading h2,.experience-copy h2,.star-head h2,.quiz-banner h2,.gift-block h2,.reviews-heading h2,.program-fit h2,.program-moment h2,.program-journey-head h2,.service-story h2,.contact-studio h2,.float-principles h2,.program-review-heading h2,.program-included h2{font-size:clamp(38px,4.4vw,64px)!important;line-height:1.03!important;letter-spacing:-.012em}
.hero-video h1{font-size:clamp(46px,6.2vw,96px)!important;line-height:.98!important;letter-spacing:-.015em}
.page-intro h1,.program-landing-copy h1{letter-spacing:-.015em}
.program-card h3{font-size:clamp(25px,2.1vw,30px)!important}
@media(max-width:600px){.section-heading h2 ,.experience-copy h2 ,.star-head h2 ,.quiz-banner h2 ,.gift-block h2 ,.reviews-heading h2 ,.program-fit h2 ,.program-moment h2 ,.program-journey-head h2 ,.service-story h2 ,.contact-studio h2 ,.float-principles h2 ,.program-review-heading h2 ,.program-included h2{font-size:36px!important}.hero-video h1{font-size:clamp(40px,11vw,52px)!important}}

/* ---------- Бегущая строка-атмосфера ---------- */
.gf-marquee{overflow:hidden;padding:clamp(28px,4vw,56px) 0;pointer-events:none;user-select:none}
.gf-marquee-row{display:flex;gap:.6em;width:max-content;white-space:nowrap;font-family:Vetrino,Georgia,serif;font-size:clamp(46px,7.5vw,118px);line-height:1.1;will-change:transform}
.gf-marquee-row span{background:linear-gradient(100deg,#05517d 0%,#5ec4e6 45%,#ddac7b 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.gf-marquee-row i{font-style:normal;color:var(--sand);opacity:.7}
.gf-marquee-row.r2{opacity:.18;margin-top:-.15em}
.gf-marquee-row.r2 span{background:none;color:transparent;-webkit-text-stroke:1px var(--blue)}

/* производительность прокрутки */
.star-rail article,.float-action,.back-to-top,.floating-actions{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.star-rail article{background:rgba(255,255,255,.09)!important}
.back-to-top{background:#fff!important}
.gf-marquee-row{backface-visibility:hidden}
.gf-waves svg{will-change:transform}
.story::before{will-change:rotate}
.gf-progress{will-change:transform}

.star-rail article.gf-tilting{transition:box-shadow .6s,border-color .4s!important;will-change:transform}
.gf-sky{will-change:auto}

/* ============ UX-полировка: кнопки вместо подчёркиваний ============ */
/* «Все программы» и похожие второстепенные действия — контурная капсула со стрелкой */
.section-toolbar>.text-link,.gf-route,#gift-program-link,.quiz-result a.text-link{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 20px;border:1px solid rgba(5,81,125,.28)!important;border-radius:999px;background:#fff;color:var(--blue)!important;font-size:15px!important;line-height:1;text-decoration:none;transition:background .25s,border-color .25s,transform .4s var(--ease-out)}
.section-toolbar>.text-link::after,.gf-route::after,#gift-program-link::after,.quiz-result a.text-link::after{content:"→";transition:translate .4s var(--ease-out)}
@media(hover:hover){.section-toolbar>.text-link:hover,.gf-route:hover,#gift-program-link:hover,.quiz-result a.text-link:hover{background:var(--mist);border-color:var(--blue)}
 .section-toolbar>.text-link:hover::after,.gf-route:hover::after,#gift-program-link:hover::after,.quiz-result a.text-link:hover::after{translate:4px 0}}
@media(max-width:600px){.section-toolbar>.text-link{min-height:40px;padding:0 14px;font-size:14px!important}}
.gf-route{min-height:40px;padding:0 16px;font-size:14px!important;margin-top:6px}
.gf-route::after{content:"↗"}
/* кнопка «Записаться» в карточке — нормальный размер нажатия */
.card-bottom .text-link{min-height:46px;padding:0 22px!important;font-size:14.5px!important;display:inline-flex;align-items:center}
/* «Оригинал отзыва» — аккуратная метка, а не голая ссылка */
.guest-review .text-link{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:0!important;border-radius:999px;background:#fff;font-size:13px!important;color:var(--ink-soft)}
.guest-review .text-link::after{content:"↗"}
.platform-link{font-size:14px!important;transition:background .25s,transform .35s var(--ease-out)}
@media(hover:hover){.platform-link:hover{background:#fff!important;transform:translateY(-2px)}}

/* фильтры каталога: читаемые капсулы, на телефоне листаются */
.filter-tabs{gap:8px!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;padding:2px}
.filter-tabs::-webkit-scrollbar{display:none}
.filter-tabs button{flex:none;min-height:42px!important;padding:0 18px!important;border:1px solid rgba(19,42,69,.12)!important;border-radius:999px;font-size:15px!important;font-weight:400!important;background:#fff;transition:background .25s,color .25s,border-color .25s}
.filter-tabs button[aria-pressed=true]{background:var(--ink)!important;color:#fff;border-color:var(--ink)!important}
.filter-status{font-size:13.5px!important;color:#6b7f92}
.catalog-help{font-size:16px}
.catalog-help a{color:var(--blue);text-underline-offset:4px}

/* страница программы на телефоне: две кнопки одной ширины и высоты */
@media(max-width:600px){
 .program-hero-actions{display:grid!important;grid-template-columns:1fr;width:100%;gap:10px!important}
 .program-hero-actions .button,.program-hero-actions .gift-button{width:100%;min-height:52px;justify-content:center}
 .detail-guests,.program-detail-price .detail-guests{font-size:13px!important}
}
.gift-button{font-size:15px!important}

/* прайс: заголовки читаемые, у каждой строки — запись */
.price-section th{font-size:13px!important;color:#6b7f92;letter-spacing:.02em}
.price-service-title{font-size:17px!important;font-weight:400!important}
.price-service-includes{font-size:14.5px}
.price-value{font-size:17px!important}
.price-value-label{font-size:12.5px!important}
.gf-price-book{display:inline-flex;align-items:center;min-height:38px;margin-top:12px;padding:0 16px;border:1px solid rgba(5,81,125,.28);border-radius:999px;background:#fff;color:var(--blue);font-size:14px;transition:background .25s,border-color .25s}
.gf-price-book:hover{background:var(--mist);border-color:var(--blue)}
@media(max-width:600px){.gf-price-book{width:100%;justify-content:center;min-height:44px}.price-section tr{background:#fff!important;box-shadow:var(--shadow-soft);border:0!important}}

/* сертификаты: без пустой правой колонки, крупные варианты выбора */
.gift-config-layout:has(#gift-program-description[hidden]){grid-template-columns:minmax(0,820px)}
.choice-row label{font-size:15px!important;padding:14px 20px!important;transition:border-color .25s,background .25s}
.choice-row label:has(:checked){border-color:var(--blue)!important;background:var(--mist)!important}
.gift-config legend{font-size:20px!important}
#gift-amount>label,#gift-program>label{font-size:14px!important}
.gift-total>span{font-size:13px!important}
.gift-config .small{font-size:13.5px!important}

/* статьи: обычный регистр, крупнее */
.article>summary{font-size:clamp(19px,1.7vw,23px)!important;text-transform:none;letter-spacing:0;transition:color .25s,padding .4s var(--ease-out)}
@media(hover:hover){.article>summary:hover{color:var(--blue);padding-left:6px}}

/* контакты и подвал */
.contact-direct>a:not(.button):not(.contact-phone),.footer-contact-actions>a:not(.button){font-size:15px!important}
#contacts .social-icons a[aria-label=Telegram],.contact-direct .social-icons a[aria-label=Telegram]{background:#229ed9}
#contacts .social-icons a[aria-label=ВКонтакте],.contact-direct .social-icons a[aria-label=ВКонтакте]{background:#0077ff}
.footer-bottom a,.footer-bottom summary{font-size:14px}
.footer-contact-intro>span,.branch-card>span{font-size:12px!important;letter-spacing:.06em}
.branch-card p{font-size:15px!important}

/* форма: крупнее галочка и подсказки */
.lead-form input[type=checkbox]{width:20px!important;height:20px!important}
.lead-form .contact-choice label{font-size:14px!important;min-height:44px}
.optional{font-size:13px!important}

@media(max-width:600px){.price-section td.gf-price-cta{grid-column:1/-1;padding-top:14px!important}.gf-price-cta .gf-price-book{margin-top:0;background:var(--blue);color:#fff;border-color:var(--blue)}}

.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}

/* ============ Форма заявки ============ */
.gf-form{position:relative;gap:16px!important}
.gf-form label{font-size:14.5px!important;color:var(--ink)!important;gap:7px!important;position:relative}
.gf-form input:not([type=radio]):not([type=checkbox]),.gf-form textarea{min-height:56px;padding:15px 18px!important;border:1.5px solid #d3dee7!important;border-radius:16px!important;background:#fff!important;font-size:17px!important;color:var(--ink)!important;transition:border-color .2s,box-shadow .25s,background .2s}
.gf-form textarea{min-height:96px}
.gf-form input::placeholder,.gf-form textarea::placeholder{color:#9aabba}
.gf-form input:not([type=radio]):not([type=checkbox]):hover,.gf-form textarea:hover{border-color:#b6c8d6!important}
.gf-form input:not([type=radio]):not([type=checkbox]):focus,.gf-form textarea:focus{outline:0;border-color:var(--blue)!important;box-shadow:0 0 0 5px rgba(94,196,230,.22)!important}
.gf-form input[type=tel]{font-variant-numeric:tabular-nums;letter-spacing:.02em}
/* номер введён целиком — тонкий значок телефона в цвете бренда */
.gf-form label.gf-ok::after{content:"";position:absolute;right:16px;bottom:19px;width:20px;height:20px;border-radius:50%;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;animation:gf-pop .35s var(--ease-out)}
@keyframes gf-pop{from{transform:scale(.4);opacity:0}}
/* ошибки — по-русски, под полем */
.gf-invalid input:not([type=radio]):not([type=checkbox]),.gf-invalid textarea{border-color:#d9534f!important;background:#fffafa!important}
.gf-err{display:block;margin-top:2px;font-size:13.5px;line-height:1.35;color:#c0392b;animation:gf-err-in .3s var(--ease-out)}
@keyframes gf-err-in{from{opacity:0;transform:translateY(-4px)}}
/* способ связи */
.gf-form .contact-choice{gap:8px!important}
.gf-form .contact-choice legend{font-size:14.5px!important;color:var(--ink);margin-bottom:9px!important}
.gf-form .contact-choice label{flex:1 1 0;justify-content:center;min-height:50px!important;padding:0 14px!important;border:1.5px solid #d3dee7!important;border-radius:14px!important;background:#fff!important;font-size:15px!important;cursor:pointer;gap:8px!important;transition:border-color .2s,background .2s,color .2s,transform .3s var(--ease-out)}
.gf-form .contact-choice label:hover{border-color:#b6c8d6!important}
.gf-form .contact-choice input{position:absolute;opacity:0;pointer-events:none}
.gf-form .contact-choice .gf-ico svg{display:block;width:18px;height:18px}
.gf-form .contact-choice label[data-kind="Звонок"] .gf-ico{color:var(--blue)}
.gf-form .contact-choice label[data-kind="Telegram"] .gf-ico{color:#229ed9}
.gf-form .contact-choice label[data-kind="WhatsApp"] .gf-ico{color:#25d366}
.gf-form .contact-choice label:has(:checked){border-color:var(--blue)!important;background:var(--mist)!important;color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.gf-form .contact-choice label:has(:focus-visible){outline:3px solid var(--aqua);outline-offset:2px}
@media(max-width:380px){.gf-form .contact-choice label{padding:0 8px!important;font-size:14px!important}}
/* согласие */
.gf-form .form-consent{display:grid!important;grid-template-columns:24px 1fr;align-items:start;gap:12px!important;font-size:13px!important;line-height:1.5;color:var(--ink-soft)!important;cursor:pointer}
.gf-form .form-consent input[type=checkbox]{appearance:none;-webkit-appearance:none;width:24px!important;height:24px!important;margin:0;border:1.5px solid #b6c8d6;border-radius:8px;background:#fff;cursor:pointer;transition:background .2s,border-color .2s;display:grid;place-items:center}
.gf-form .form-consent input[type=checkbox]:checked{background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;border-color:var(--blue)}
.gf-form .form-consent input:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}
.gf-form .form-consent .gf-err{grid-column:1/-1}
.gf-invalid.form-consent input[type=checkbox]{border-color:#d9534f}
/* кнопка */
.gf-form [type=submit]{width:100%;min-height:60px!important;border-radius:18px!important;font-size:17px!important;gap:12px;align-self:stretch!important}
.gf-form [type=submit] .gf-btn-text::after{content:" →";transition:margin .3s var(--ease-out)}
.gf-form [type=submit]:hover .gf-btn-text::after{margin-left:4px}
.gf-spin{display:none;width:20px;height:20px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:gf-rot .8s linear infinite}
.gf-form.is-sending [type=submit]{pointer-events:none;opacity:.9}
.gf-form.is-sending .gf-spin{display:inline-block}
.gf-form.is-sending .gf-btn-text::after{content:""}
@keyframes gf-rot{to{transform:rotate(360deg)}}
.gf-form .form-status{display:none!important}
.gf-form .form-preview-note{text-align:center;margin-top:-4px!important}
@media(min-width:901px){.lead-section .gf-form [type=submit]{width:auto;min-width:300px;align-self:flex-start!important}}
/* экран результата — поверх формы, в её же размерах */
.gf-result{position:absolute;inset:-2px;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 22px;border-radius:20px;background:#fff;animation:gf-res-in .55s var(--ease-out)}
.lead-section .gf-result{background:var(--mist)}
@keyframes gf-res-in{from{opacity:0;transform:scale(.97)}}
.gf-result h3{margin:18px 0 10px;font-size:clamp(26px,3vw,34px)!important;line-height:1.15;color:var(--ink)}
.gf-result p{max-width:400px;margin:0 0 10px;font-size:16.5px;line-height:1.6;color:var(--ink-soft)}
.gf-result .gf-res-small{font-size:14.5px}
.gf-result .gf-res-small a{color:var(--blue);font-weight:700;white-space:nowrap}
.gf-result .gf-res-btn{margin-top:16px;min-width:220px}
.gf-res-ico{position:relative;width:84px;height:84px}
.gf-res-ico::before,.gf-res-ico::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--aqua);animation:gf-ring 1.8s var(--ease-out) .2s both}
.gf-res-ico::after{animation-delay:.55s}
@keyframes gf-ring{from{transform:scale(.8);opacity:.9}to{transform:scale(1.9);opacity:0}}
.gf-res-ico svg{width:84px;height:84px}
.gf-res-ico circle{fill:var(--blue);stroke:none;transform-origin:center;animation:gf-pop .5s var(--ease-out)}
.gf-res-ico path{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:gf-draw .5s .3s var(--ease-out) forwards}
.gf-res-ico.is-fail circle{fill:#d9534f}.gf-res-ico.is-fail::before,.gf-res-ico.is-fail::after{border-color:#f0a6a3}
@keyframes gf-draw{to{stroke-dashoffset:0}}
.gf-res-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px}
.gf-res-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;color:#fff;font-size:15px}
.gf-res-call{background:var(--blue)}.gf-res-tg{background:#229ed9}.gf-res-wa{background:#25d366}
.gf-form.has-result{min-height:440px}
.gf-form.has-result>*:not(.gf-result){visibility:hidden}
#booking-dialog:has(.has-result) .booking-context,#booking-dialog:has(.has-result) #booking-title{opacity:.25}
@media(prefers-reduced-motion:reduce){.gf-result,.gf-res-ico::before,.gf-res-ico::after,.gf-res-ico circle{animation:none}.gf-res-ico path{animation:none;stroke-dashoffset:0}}
.gf-form .contact-choice{flex-wrap:nowrap!important}
.gf-form .contact-choice label{min-width:0;white-space:nowrap}
@media(max-width:600px){.gf-form .contact-choice label{padding:0 6px!important;font-size:14px!important;gap:6px!important}.gf-form .contact-choice .gf-ico svg{width:16px;height:16px}}
@media(min-width:901px){.lead-section .gf-form .form-preview-note{text-align:left}}
.gf-form .telegram-field:not([hidden]){animation:gf-err-in .35s var(--ease-out)}

/* Без обводки фокуса после клика/тапа; для навигации с клавиатуры (Tab) остаётся :focus-visible */
:focus:not(:focus-visible){outline:none!important}
*{-webkit-tap-highlight-color:transparent}

/* ============ Акция «Дни заботы о себе» ============ */
dialog.gf-promo{width:min(880px,calc(100% - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:28px;background:#fff;overflow:hidden;box-shadow:0 40px 100px -30px rgba(4,40,64,.55)}
dialog.gf-promo[open]{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:0!important;animation:gf-promo-in .7s var(--ease-out)}
@keyframes gf-promo-in{from{opacity:0;transform:translateY(30px) scale(.97)}}
dialog.gf-promo::backdrop{background:rgba(6,32,52,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.gf-promo-photo{position:relative;min-height:100%;margin:0!important;overflow:hidden;background:#0b3550}
.gf-promo-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:64% 28%;animation:gf-promo-zoom 12s ease-out both}
@keyframes gf-promo-zoom{from{scale:1.08}}
.gf-promo-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,35,55,.55))}
/* таймер — одна стеклянная плашка на фото */
.gf-promo-timer{position:absolute;left:18px;bottom:18px;z-index:2;display:flex;align-items:baseline;gap:10px;padding:10px 16px;border-radius:16px;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);color:#fff}
.gf-promo-timer span{font-size:13px;opacity:.85}
.gf-promo-clock{font-size:21px;font-weight:700;letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.gf-promo-body{display:flex;flex-direction:column;justify-content:center;padding:40px 36px 30px;overflow-y:auto;max-height:calc(100dvh - 24px)}
.gf-promo-close{position:absolute;top:14px;right:14px;z-index:3;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92)!important;font-size:24px!important;line-height:1;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.12)}
/* три дня акции */
.gf-promo-days{display:flex;align-items:center;gap:6px;margin-bottom:14px}
.gf-promo-days span{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(185,130,77,.45);color:var(--sand-deep);font-size:16px;font-weight:700}
.gf-promo-days span.is-today{background:var(--sand-deep);border-color:var(--sand-deep);color:#fff}
.gf-promo-days span.is-today::after{content:"сегодня";position:absolute;top:calc(100% + 3px);left:50%;translate:-50% 0;font-size:10.5px;font-weight:400;color:var(--sand-deep);white-space:nowrap}
.gf-promo-days span.is-past{opacity:.35}
.gf-promo-days em{font-style:normal;margin-left:6px;font-size:15px;color:var(--sand-deep)}
.gf-promo h2{margin:6px 0 10px!important;font-family:Vetrino,Georgia,serif;font-size:clamp(36px,4.2vw,50px)!important;line-height:1!important;color:var(--ink);letter-spacing:0}
.gf-promo h2:focus{outline:none}
.gf-promo-text{margin:0 0 20px;font-size:16.5px;line-height:1.55;color:var(--ink-soft)}
.gf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gf-promo .gf-form{gap:12px!important}
.gf-promo .form-row{gap:10px!important}
.gf-promo .gf-form input:not([type=radio]):not([type=checkbox]){min-height:54px}
.gf-promo .gf-form .form-consent{font-size:12.5px!important}
.gf-promo .gf-form [type=submit]{min-height:56px!important;background:var(--sand-deep)!important}
.gf-promo .gf-form [type=submit]:hover{background:#a56f3d!important}
.gf-promo .gf-form.has-result{min-height:300px}
.gf-promo .gf-result{border-radius:20px;padding:18px 10px}
.gf-promo .gf-result h3{font-size:26px!important}
@media(max-width:760px){
 dialog.gf-promo[open]{grid-template-columns:1fr;grid-template-rows:230px auto;overflow-y:auto}
 .gf-promo-photo img{object-position:66% 18%}
 .gf-promo-timer{left:14px;bottom:14px;padding:8px 13px}
 .gf-promo-clock{font-size:19px}
 .gf-promo-body{padding:22px 18px 20px;max-height:none;overflow:visible}
 .gf-promo h2{font-size:38px!important}
 .gf-promo-text{font-size:15.5px;margin-bottom:16px}
 .gf-promo .form-row{grid-template-columns:1fr!important}
}
.gf-promo-pill{position:fixed;left:16px;bottom:max(18px,env(safe-area-inset-bottom));z-index:34;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border:0;border-radius:999px;background:#fff;color:var(--ink);font-size:15px;box-shadow:0 12px 30px -10px rgba(4,40,64,.45),0 0 0 1px rgba(19,42,69,.06);animation:gf-promo-in .6s var(--ease-out);cursor:pointer}
.gf-promo-pill:hover{transform:translateY(-2px)}
@media(max-width:600px){.gf-promo-pill{left:12px;font-size:14px;min-height:46px;padding:0 14px;max-width:calc(100% - 96px)}}
@media(prefers-reduced-motion:reduce){dialog.gf-promo[open],.gf-promo-photo img,.gf-promo-pill{animation:none}}
/* после заявки в окне акции — только экран результата, без наложений */
.gf-promo-body:has(.has-result)>:not(form){display:none}
.gf-promo .gf-form.has-result{min-height:0}
.gf-promo .gf-form.has-result>*:not(.gf-result){display:none}
.gf-promo .gf-result{position:relative;inset:auto;padding:26px 6px 6px;animation:gf-res-in .55s var(--ease-out)}
.gf-promo-days{margin-bottom:22px}
