/* =========================================================
   Happy Gifts · «Супергерои рекламы в гостях у Лаки»
   Общие стили для index.html, confirmed.html, waitlist.html
   Макет: Figma, десктоп 1440 px. Ниже — адаптив до 360 px.
   ========================================================= */

/* ---------- Шрифт (фирменный Montserrat, локальные файлы) ---------- */
@font-face{font-family:"Montserrat";font-weight:400;font-display:swap;src:url("assets/fonts/montserrat-regular.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-weight:500;font-display:swap;src:url("assets/fonts/montserrat-medium.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-weight:600;font-display:swap;src:url("assets/fonts/montserrat-semibold.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-weight:700;font-display:swap;src:url("assets/fonts/montserrat-bold.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-weight:800;font-display:swap;src:url("assets/fonts/montserrat-extrabold.woff2") format("woff2");}

/* ---------- Токены ---------- */
:root{
  --yellow:#ffe500;
  --yellow-hi:#fff57d;
  --yellow-lo:#f2c500;
  --plum-1:#8a567b; --plum-2:#522f49; --plum-3:#35192e;
  --plum-grad:linear-gradient(180deg,var(--plum-1) 0%,var(--plum-2) 50%,var(--plum-3) 100%);
  --ink:#000; --graphite:#474a55; --muted:#7d8090; --placeholder:#9a9daa;
  --clay:linear-gradient(180deg,#fff 0%,#f1f2f6 100%);
  --inset:linear-gradient(180deg,#eceef3 0%,#f7f8fb 100%);
  --wrap:1200px;
  --gutter:120px;               /* поля на десктопе 1440: (1440-1200)/2 */
  --r-big:64px;                 /* «листочек»: скругления 12 / big / 12 / big */
  --leaf:12px var(--r-big) 12px var(--r-big);
  --shadow-clay:inset 0 3px 3px #fff,inset 0 -8px 14px rgba(138,143,163,.12),0 26px 50px rgba(60,58,82,.14),0 5px 12px rgba(60,58,82,.08);
  --shadow-inset:inset 0 4px 8px rgba(125,130,150,.28),inset 0 -2px 3px #fff;
  --shadow-glass:inset 0 2px 2px #fff,0 22px 44px rgba(60,58,82,.13),0 4px 10px rgba(60,58,82,.06);
}

/* ---------- Сброс ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.6;color:var(--ink);
  background:linear-gradient(180deg,#fff 0%,#fff9d9 22%,#f2f3f7 50%,#fff6c9 78%,#fff 100%);
  background-attachment:scroll;overflow-x:hidden;position:relative;}
/* Пятна на фоне и шарики первого экрана вылезают за правый край. hidden на body
   мобильный браузер не учитывает и раскладывает страницу на ~740 px, уменьшив
   её целиком; hidden на html ломает липкую шапку. clip режет, не создавая прокрутки. */
html,body{overflow-x:clip;}
img{max-width:100%;display:block;}
h1,h2,h3,p{margin:0;}
a{color:inherit;}
button,input,select,textarea{font:inherit;color:inherit;}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
:focus-visible{outline:3px solid var(--plum-2);outline-offset:3px;}

/* Мягкие цветные пятна на фоне страницы */
body::before,body::after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none;}
body::before{width:1000px;height:1000px;left:-260px;top:-200px;background:radial-gradient(circle,rgba(255,229,0,.7),rgba(255,229,0,0) 70%);}
body::after{width:900px;height:900px;right:-200px;top:2100px;background:radial-gradient(circle,rgba(255,229,0,.5),rgba(255,229,0,0) 70%);}

.wrap{width:min(var(--wrap),calc(100% - 2*var(--gutter)));margin-inline:auto;position:relative;}

/* ---------- Типографика ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite);}
.glass{background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.4));border:1.5px solid rgba(255,255,255,.95);box-shadow:var(--shadow-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);}
.clay{background:var(--clay);border:1.5px solid rgba(255,255,255,.9);box-shadow:var(--shadow-clay);}
.inset{background:var(--inset);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-inset);}

.h-plum{background:var(--plum-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--plum-2);}
.h2{font-size:clamp(28px,4vw,52px);font-weight:800;line-height:1.12;letter-spacing:-.01em;text-transform:uppercase;}
.lead{font-size:19px;line-height:1.58;color:var(--graphite);}

/* ---------- Кнопки ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;text-decoration:none;border-radius:999px;font-weight:800;line-height:1;white-space:nowrap;}
.btn--plum{color:#fff;padding:15px 30px;font-size:15px;background:var(--plum-grad);box-shadow:inset 0 3px 3px rgba(233,198,222,.7),inset 0 -5px 8px rgba(29,10,24,.5),0 3px 3px rgba(42,18,35,.3),0 12px 22px rgba(82,47,73,.45),0 3px 5px rgba(0,0,0,.2);outline:1.5px solid rgba(255,255,255,.4);outline-offset:-1.5px;}
.btn--plum::before{content:"";position:absolute;left:8px;right:8px;top:4px;height:46%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,0));pointer-events:none;}
.btn--plum:hover{filter:brightness(1.08);transform:translateY(-1px);}
.btn--plum:active{transform:translateY(1px);}
.btn--lg{padding:22px 48px;font-size:18px;}
.btn--block{display:flex;width:100%;}
.btn--ghost{padding:15px 30px;font-size:15px;color:var(--plum-2);background:var(--clay);border:1.5px solid rgba(255,255,255,.9);box-shadow:var(--shadow-clay);}
.btn--ghost:hover{filter:brightness(.98);}
.btn--sm{padding:14px 28px;font-size:14px;}

/* ---------- Шапка ---------- */
.nav{padding-top:24px;position:sticky;top:0;z-index:50;}
.nav__pill{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 28px;border-radius:999px;}
.nav__logo img{height:30px;width:auto;}
.nav__links{display:flex;gap:36px;list-style:none;margin:0;padding:0;}
.nav__links a{font-size:14px;font-weight:600;text-decoration:none;color:var(--plum-2);}
.nav__links a:hover{text-decoration:underline;text-underline-offset:4px;}

/* ---------- Первый экран ---------- */
.hero{padding:56px 0 50px;}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) 580px;gap:48px;align-items:center;}
.hero__text{display:flex;flex-direction:column;gap:28px;align-items:flex-start;}
.hero__eyebrow::before{content:"";width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff9b0,var(--yellow) 55%,#d9ae00);box-shadow:0 3px 6px rgba(217,174,0,.4);}
.hero__title{display:flex;flex-direction:column;align-items:center;width:572px;max-width:100%;line-height:.92;text-transform:uppercase;font-weight:800;}
.hero__title span{display:block;white-space:nowrap;}
.hero__title .l1{font-size:64px;letter-spacing:-.01em;}
.hero__title .l2{font-size:94px;letter-spacing:-.01em;}
.hero__title .l3{font-size:32.6px;font-weight:600;letter-spacing:0;margin-top:6px;}
.hero__lead{max-width:572px;}
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0;}
.chip{display:inline-flex;align-items:center;padding:11px 15px;border-radius:999px;font-size:13px;font-weight:700;color:#2d2f38;white-space:nowrap;}

/* Сцена с Лаки (подиум) */
.stage{position:relative;width:580px;height:660px;max-width:100%;}
.stage__plate{position:absolute;left:30px;top:60px;width:520px;height:560px;border-radius:var(--leaf);--r-big:150px;overflow:hidden;background:linear-gradient(150deg,#fff36b 0%,var(--yellow) 50%,#f0bf00 100%);box-shadow:inset 0 6px 6px rgba(255,255,255,.85),inset 0 -14px 30px rgba(168,120,0,.4),0 36px 60px rgba(201,149,0,.45),0 6px 14px rgba(0,0,0,.12);}
.stage__plate::after{content:"";position:absolute;left:-30px;top:-90px;width:520px;height:300px;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,255,255,0));}
.stage__lucky{position:absolute;left:50px;top:90px;width:500px;height:500px;object-fit:contain;filter:drop-shadow(0 22px 18px rgba(80,50,0,.28));}
.stage__shadow{position:absolute;left:150px;bottom:48px;width:300px;height:44px;border-radius:50%;background:rgba(43,36,56,.28);filter:blur(14px);}
.sphere{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--c1),var(--c2) 55%,var(--c3) 100%);box-shadow:inset 0 -6px 10px rgba(0,0,0,.18),0 12px 18px var(--sh);}
.sphere::after{content:"";position:absolute;left:20%;top:12%;width:34%;height:20%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));}
.sphere--y{--c1:#fff9b0;--c2:var(--yellow);--c3:#d9ae00;--sh:rgba(217,174,0,.4);}
.sphere--p{--c1:#b07ba0;--c2:var(--plum-2);--c3:#2b1626;--sh:rgba(82,47,73,.4);}
.bubble{position:absolute;display:flex;flex-direction:column;gap:2px;padding:16px 22px;border-radius:24px;font-size:15px;font-weight:800;line-height:1.3;z-index:3;}
.bubble small{font-size:13px;font-weight:500;color:var(--graphite);}
.bubble--hero{left:-55px;top:9px;width:351px;}
.sticker{position:absolute;left:296px;top:592px;padding:13px 22px;border-radius:999px;font-size:14px;font-weight:700;color:#fff;background:var(--plum-grad);border:1.5px solid rgba(255,255,255,.35);box-shadow:inset 0 2px 2px rgba(255,255,255,.5),0 14px 24px rgba(82,47,73,.45);transform:rotate(4deg);z-index:3;}

/* ---------- Программа: папки-ступени ---------- */
.program{padding:30px 0 60px;}
.program__head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:56px;}
.steps{position:relative;display:flex;flex-direction:column;gap:46px;}
.step{position:relative;display:flex;align-items:center;gap:40px;margin-left:calc(var(--i)*90px);}
.step::before{content:"";position:absolute;left:90px;right:calc(-1*var(--gutter));top:20px;bottom:-4px;z-index:-1;background:linear-gradient(90deg,rgba(138,143,163,.22),rgba(138,143,163,0));filter:blur(13px);}
.folder{position:relative;flex:none;width:300px;height:196px;}
.folder__tab{position:absolute;left:0;top:0;width:120px;height:44px;border-radius:16px 16px 0 0;background:linear-gradient(180deg,var(--f1),var(--f2));box-shadow:inset 0 2px 2px rgba(255,255,255,.7);}
.folder__body{position:absolute;left:0;top:26px;width:300px;height:170px;border-radius:10px 40px 10px 40px;background:linear-gradient(180deg,var(--f1),var(--f2) 50%,var(--f3));border:1.5px solid rgba(255,255,255,.5);box-shadow:inset 0 3px 3px rgba(255,255,255,.8),inset 0 -10px 20px var(--fd),-14px 30px 44px var(--fd),0 5px 10px rgba(0,0,0,.15);display:flex;align-items:center;padding-left:26px;}
.folder__body::before{content:"";position:absolute;left:12px;top:6px;width:276px;height:70px;border-radius:30px;background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,0));}
.folder__num{position:relative;font-size:72px;font-weight:800;line-height:1;color:var(--fn);}
.folder--1{--f1:#fff36b;--f2:#ffe500;--f3:#f0bf00;--fd:#b88a00;--fn:var(--plum-2);}
.folder--2{--f1:#d3d6df;--f2:#b2b6c3;--f3:#8e92a1;--fd:#5b5f6d;--fn:#fff;}
.folder--3{--f1:#6b6f7c;--f2:#474a55;--f3:#2f323a;--fd:#23252c;--fn:#fff;}
.folder--4{--f1:#8a567b;--f2:#522f49;--f3:#35192e;--fd:#2a1223;--fn:#fff;}
.step__body{max-width:520px;display:flex;flex-direction:column;gap:10px;}
.step__title{font-size:30px;font-weight:800;line-height:1.2;}
.step__body p{font-size:16px;line-height:1.62;color:var(--graphite);}
.step__body .btn{align-self:flex-end;margin-top:8px;}
.deco{position:absolute;pointer-events:none;z-index:2;filter:drop-shadow(0 16px 14px rgba(43,36,56,.25));}
.deco--tote{right:-10px;top:0;width:230px;}
.deco--umb{left:-90px;bottom:-40px;width:300px;}
.deco--thermos{left:100px;bottom:-45px;width:150px;}
.bubble--tote{right:-20px;top:-60px;width:270px;position:absolute;}
.bubble--umb{left:-104px;bottom:260px;width:312px;position:absolute;}
.steps__lucky-tote{position:absolute;right:-30px;top:20px;width:270px;height:330px;}
.steps__lucky-umb{position:absolute;left:-110px;bottom:-75px;width:320px;height:330px;}

/* ---------- Спецпредложение ---------- */
.offer{padding:20px 0 40px;}
.offer__card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:40px;align-items:center;padding:56px 64px;border-radius:var(--leaf);--r-big:90px;color:#fff;background:linear-gradient(180deg,#8a567b,#522f49 50%,#35192e);border:1.5px solid rgba(255,255,255,.35);box-shadow:inset 2px 3px 2px rgba(217,168,204,.7),inset -1px -4px 8px rgba(29,10,24,.5),2px 8px 0 #2a1223,3px 12px 14px rgba(18,6,15,.6),6px 32px 48px rgba(51,22,44,.45);}
.offer__tag{align-self:flex-start;display:inline-flex;padding:10px 20px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#000;background:linear-gradient(180deg,var(--yellow-hi),var(--yellow) 50%,var(--yellow-lo));box-shadow:inset 0 2px 2px rgba(255,255,255,.9),0 8px 16px rgba(224,168,0,.5);}
.offer__text{display:flex;flex-direction:column;gap:18px;}
.offer__title{font-size:38px;font-weight:800;line-height:1.21;letter-spacing:-.3px;}
.offer__text p{font-size:18px;line-height:1.6;color:#ebdfe6;max-width:610px;}
.offer__art{position:relative;height:300px;}
.offer__art::before{content:"";position:absolute;left:20px;top:-40px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(255,229,0,.55),rgba(255,229,0,0) 70%);}
.offer__art img{position:absolute;left:-79px;top:-59px;width:561px;max-width:none;height:auto;filter:drop-shadow(0 20px 20px rgba(0,0,0,.35));}

/* ---------- Запись ---------- */
.register{padding:90px 0 60px;}
.register__head{display:flex;flex-direction:column;gap:14px;align-items:flex-start;}
.register__title{font-size:clamp(26px,3.6vw,52px);}
.register__lead{max-width:700px;font-size:18px;line-height:1.6;color:var(--graphite);}
.form{position:relative;margin-top:84px;padding:48px;border-radius:var(--leaf);--r-big:64px;display:flex;flex-direction:column;gap:36px;}
.form__lucky{position:absolute;right:240px;top:-122px;width:360px;height:auto;pointer-events:none;}
.form__bubble{position:absolute;right:24px;top:-95px;width:235px;}
.fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:16px;}
.fieldset>legend{padding:0;font-size:15px;font-weight:800;margin-bottom:16px;}
.slots{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;}
.slot{position:relative;}
.slot input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.slot span{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 8px;min-height:68px;justify-content:center;border-radius:12px 26px 12px 26px;font-size:22px;font-weight:800;background:var(--clay);border:1.5px solid rgba(255,255,255,.9);box-shadow:inset 0 2px 2px #fff,inset 0 -5px 8px rgba(138,143,163,.12),0 10px 20px rgba(60,58,82,.12),0 2px 4px rgba(60,58,82,.08);transition:transform .15s;}
.slot span small{display:none;font-size:13px;font-weight:800;}
.slot input:hover+span{transform:translateY(-2px);}
.slot input:checked+span{background:linear-gradient(180deg,var(--yellow-hi),var(--yellow) 50%,var(--yellow-lo));border-color:rgba(255,255,255,.8);box-shadow:inset 0 3px 3px rgba(255,255,255,.9),inset 0 -6px 10px rgba(168,120,0,.4),0 14px 26px rgba(224,168,0,.55),0 3px 5px rgba(0,0,0,.15);}
.slot input:checked+span small{display:block;}
.slot input:disabled+span{opacity:.5;cursor:not-allowed;}
.slot input:focus-visible+span{outline:3px solid var(--plum-2);outline-offset:3px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-size:13px;font-weight:600;color:var(--graphite);}
.field input,.field select{width:100%;padding:19px 22px;border-radius:18px;border:1px solid rgba(255,255,255,.9);background:var(--inset);box-shadow:var(--shadow-inset);font-size:16px;outline:0;}
.field input::placeholder{color:var(--placeholder);}
.field input:focus{box-shadow:var(--shadow-inset),0 0 0 3px rgba(82,47,73,.35);}
.field input:user-invalid,.field input[aria-invalid="true"]{box-shadow:var(--shadow-inset),0 0 0 3px rgba(190,60,60,.45);}
.field__err{display:none;font-size:12px;color:#b03a3a;}
.field input[aria-invalid="true"]~.field__err{display:block;}
.plus{padding:24px 28px;border-radius:28px;display:flex;flex-direction:column;gap:20px;background:linear-gradient(180deg,rgba(255,249,207,.85),rgba(255,243,168,.55));border:1.5px solid rgba(255,255,255,.95);box-shadow:var(--shadow-glass);}
.switch{display:flex;align-items:center;gap:16px;cursor:pointer;}
.switch input{position:absolute;opacity:0;}
.switch__track{position:relative;flex:none;width:58px;height:32px;border-radius:999px;background:linear-gradient(180deg,#4b4e5a,#2a2c33);box-shadow:inset 0 3px 6px rgba(0,0,0,.5),inset 0 -1px 2px rgba(255,255,255,.25),0 3px 6px rgba(0,0,0,.15);transition:background .2s;}
.switch__track::after{content:"";position:absolute;top:5px;left:5px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff9b0,var(--yellow) 55%,#d9ae00);box-shadow:0 4px 6px rgba(217,174,0,.4);transition:transform .2s;}
.switch input:checked+.switch__track::after{transform:translateX(26px);}
.switch input:focus-visible+.switch__track{outline:3px solid var(--plum-2);outline-offset:3px;}
.switch__text{display:flex;flex-direction:column;gap:2px;font-size:16px;font-weight:800;}
.switch__text small{font-size:13px;font-weight:400;color:var(--graphite);}
.plus__fields{display:flex;flex-direction:column;gap:16px;}
.plus__fields[hidden]{display:none;}
.consent{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--graphite);line-height:1.5;}
.consent input{position:absolute;opacity:0;}
.consent__box{flex:none;width:28px;height:28px;border-radius:9px;background:var(--inset);box-shadow:var(--shadow-inset);display:grid;place-items:center;font-weight:800;color:transparent;}
.consent input:checked+.consent__box{background:linear-gradient(180deg,var(--yellow-hi),var(--yellow-lo));box-shadow:inset 0 2px 2px rgba(255,255,255,.9),0 5px 10px rgba(224,168,0,.5);color:#000;}
.consent input:focus-visible+.consent__box{outline:3px solid var(--plum-2);outline-offset:3px;}
.consent a{color:var(--plum-2);}
.form__submit{display:flex;flex-direction:column;align-items:center;gap:14px;}
.form__note{font-size:13px;color:var(--muted);line-height:1.55;text-align:center;max-width:620px;}
.form__status{font-size:14px;font-weight:600;text-align:center;min-height:1.4em;}
.form__status.is-error{color:#b03a3a;}
.hp{position:absolute;left:-9999px;opacity:0;pointer-events:none;} /* honeypot против спама */

/* ---------- Контакты ---------- */
.contacts{padding:60px 0;}
.contacts__grid{display:grid;grid-template-columns:minmax(0,592px) minmax(0,560px);gap:48px;justify-content:space-between;align-items:center;}
.contacts__card{padding:44px;border-radius:var(--leaf);--r-big:64px;display:flex;flex-direction:column;gap:22px;}
.contacts__card .eyebrow{align-self:flex-start;}
.contacts__title{font-size:clamp(26px,3.2vw,40px);line-height:1.14;white-space:nowrap;}
@media (max-width:640px){.contacts__title{white-space:normal;}}
.crow{padding:14px 20px;border-radius:20px;display:flex;flex-direction:column;gap:6px;}
.crow dt{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.crow dd{margin:0;font-size:19px;font-weight:800;line-height:1.37;}
.crow dd a{text-decoration:none;}
.contacts__map{position:relative;padding-top:40px;}
.contacts__map-tile{position:relative;z-index:1;height:400px;border-radius:var(--leaf);--r-big:72px;overflow:hidden;box-shadow:inset 0 4px 8px rgba(125,130,150,.25),0 26px 50px rgba(60,58,82,.14);}
.contacts__map-tile img{width:100%;height:100%;object-fit:cover;}
.contacts__map-tile iframe{display:block;width:100%;height:100%;border:0;}
.contacts__lucky{position:absolute;right:20px;top:-80px;width:190px;height:auto;pointer-events:none;z-index:0;}
.contacts__bubble{position:absolute;right:215px;top:-44px;z-index:3;white-space:nowrap;}

/* ---------- Вопросы ---------- */
.faq{padding:60px 0 150px;}
.faq__title{margin:32px 0 32px;font-size:clamp(26px,3.6vw,48px);}
.faq__list{display:flex;flex-direction:column;gap:16px;}
.qa{border-radius:30px;padding:26px 32px;}
.qa__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;background:none;border:0;padding:0;cursor:pointer;text-align:left;font-size:21px;font-weight:800;}
.qa__icon{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:800;line-height:1;background:radial-gradient(circle at 35% 30%,#fff,#b9bcc8 55%,#8e92a1);box-shadow:inset 0 -4px 8px rgba(0,0,0,.18),0 9px 16px rgba(142,146,161,.4);}
.qa[open] .qa__icon,.qa.is-open .qa__icon{background:radial-gradient(circle at 35% 30%,#fff9b0,var(--yellow) 55%,#d9ae00);box-shadow:inset 0 -4px 8px rgba(0,0,0,.18),0 9px 16px rgba(255,229,0,.4);}
.qa__a{display:none;margin-top:12px;max-width:760px;font-size:17px;line-height:1.65;color:var(--graphite);}
.qa.is-open .qa__a{display:block;}

/* ---------- Подвал ---------- */
.footer{position:relative;margin-top:0;padding:60px 0;border-radius:72px 72px 0 0;background:linear-gradient(180deg,#fff36b,var(--yellow) 50%,#f0c200);border:1.5px solid rgba(255,255,255,.7);box-shadow:inset 0 4px 4px rgba(255,255,255,.85),inset 0 -10px 20px rgba(168,120,0,.3),0 -14px 40px rgba(201,149,0,.25);}
.footer__row{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.footer__logo img{height:28px;width:auto;}
.footer__info{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-size:13px;}
.footer__info strong{font-weight:600;}
.footer__lucky{position:absolute;left:calc(50% - 720px + 540px);top:-190px;width:320px;height:auto;pointer-events:none;}
.footer__bubble{position:absolute;left:calc(50% - 720px + 880px);top:-110px;z-index:2;white-space:nowrap;color:#fff;background:var(--plum-grad);border:1.5px solid rgba(255,255,255,.4);box-shadow:inset 0 3px 3px rgba(233,198,222,.7),inset 0 -5px 8px rgba(29,10,24,.5),0 14px 22px rgba(82,47,73,.45);-webkit-backdrop-filter:none;backdrop-filter:none;}
.footer__bubble small{color:#ebdfe6;}

/* ---------- Экран «Запись подтверждена» / «Хочу на праздник» ---------- */
.screen{padding:70px 0 110px;}
.screen__grid{display:grid;grid-template-columns:minmax(0,1fr) 520px;gap:56px;align-items:center;}
.screen__grid--wait{grid-template-columns:500px minmax(0,1fr);align-items:start;}
.screen__text{display:flex;flex-direction:column;gap:26px;align-items:flex-start;}
.screen__title{font-size:clamp(30px,4.3vw,62px);font-weight:800;text-transform:uppercase;line-height:1.1;letter-spacing:-.01em;}
.actions .btn--lg{padding:22px 40px;}
.actions .btn--ghost{padding:15px 22px;font-size:14px;}
.screen__title--wait{font-size:clamp(28px,3.75vw,54px);}
.summary{width:100%;padding:32px 36px;border-radius:var(--leaf);--r-big:56px;display:flex;flex-direction:column;gap:18px;}
.srow{display:flex;align-items:center;gap:20px;padding:14px 22px;border-radius:18px;}
.srow dt{flex:none;width:110px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.srow dd{margin:0;font-size:17px;font-weight:800;line-height:1.4;}
.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding-top:6px;}
.stage--sm{width:520px;height:620px;}
.stage--sm .stage__plate{left:25px;top:70px;width:470px;height:520px;--r-big:140px;}
.stage--sm .stage__lucky{left:92px;top:136px;width:336px;height:404px;}
.stage--sm .stage__shadow{left:140px;bottom:72px;width:240px;height:36px;}
.bubble--confirm{left:49px;top:17px;width:203px;}
.stage--wait{width:500px;height:330px;margin-top:18px;}
.stage--wait .stage__plate{left:40px;top:70px;width:420px;height:250px;--r-big:110px;}
.stage--wait .stage__lucky{left:94px;top:-27px;width:325px;height:340px;}
.wait-card{padding:44px;border-radius:var(--leaf);--r-big:64px;display:flex;flex-direction:column;gap:24px;}
.wait-card h2{font-size:26px;font-weight:800;}

/* ---------- Лаки с сумкой: реплика над головой, а не на лице ---------- */
/* Облачко опущено под заголовок, Лаки — под облачко; уже 1366 он наезжал
   на текст шагов, поэтому там меньше и прижат к правому краю */
@media (max-width:1365px){
  .steps__lucky-tote{width:220px;height:269px;right:-90px;}
  .bubble--tote{right:-90px;}
}

/* ---------- Лаки с телефоном выглядывает из-за карты ---------- */
/* Карта выше Лаки (z-index), над краем — голова и телефон, кнопки карты открыты.
   В одну колонку: iframe без ширины сжимался до 300px, а Лаки не помещался
   между карточкой адреса и картой */
@media (max-width:1200px){
  .contacts__grid{row-gap:100px;}
  .contacts__map{width:100%;max-width:560px;}
}

/* ---------- «Изменить или отменить запись» (manage/) ---------- */
.slots--compact{grid-template-columns:repeat(4,1fr);}

/* ---------- Экраны 901–1920: формы чуть уже, не во всю ширину экрана ---------- */
@media (min-width:901px) and (max-width:1920px){
  .register .form{width:90%;margin-inline:auto;}
  .wait-card,.screen__text .summary{max-width:560px;}
}
@media (min-width:901px) and (max-width:1200px){
  .register .form{width:80%;}
  .screen__text .summary{max-width:500px;}
  .wait-card{max-width:540px;}   /* уже — обрезаются подсказки «Название агентства», «name@company.ru» */
}

/* ---------- Все часы заняты: вместо формы карточка с кнопкой в лист ожидания ---------- */
.register__full{align-items:flex-start;gap:24px;margin-top:140px;}   /* выше Лаки задевал заголовок */

/* ---------- Остаток мест на плитке часа: «Осталось 2 места» / «Мест нет» ---------- */
.slot>span{height:100%;}   /* плитки с подписью и без — одной высоты в ряду */
.slot span em{font-style:normal;font-size:12px;font-weight:700;line-height:1.2;text-align:center;color:var(--muted);}
.slot input:checked+span em{display:none;}
/* Приподнятая при наведении плитка (transform) перекрывала радио — курсор становился стрелкой */
.slot input{z-index:1;}
.slot input:disabled{cursor:not-allowed;}
/* В часе одно место — вместо переключателя «+1» пояснение (app.js) */
.switch[hidden],.plus__none[hidden]{display:none;}
.plus__none{font-size:15px;font-weight:700;line-height:1.45;}

/* ---------- Адаптив ---------- */
@media (max-width:1200px){
  :root{--gutter:40px;}
  .hero__grid{grid-template-columns:1fr;justify-items:center;}
  .hero__text{align-items:center;text-align:center;}
  .hero__lead{margin-inline:auto;}
  .chips{justify-content:center;}
  .contacts__grid,.screen__grid,.screen__grid--wait{grid-template-columns:1fr;justify-items:center;}
  .screen__text{align-items:center;text-align:center;}
  .step{margin-left:0;}
  .deco,.bubble--tote,.bubble--umb,.steps__lucky-tote,.steps__lucky-umb{display:none;}
}
@media (max-width:900px){
  .nav__links{display:none;}
  .offer__card{grid-template-columns:1fr;padding:40px 28px;--r-big:56px;}
  .offer__art{height:240px;}
  .offer__art img{left:50%;transform:translateX(-50%);width:min(480px,120%);top:-20px;}
  .step{flex-direction:column;align-items:flex-start;gap:20px;}
  .step__body .btn{align-self:flex-start;}
  .slots{grid-template-columns:repeat(4,1fr);}
  .grid-2{grid-template-columns:1fr;}
  .form{padding:28px 20px;--r-big:40px;margin-top:110px;}
  .form__lucky{right:10px;top:-81px;width:240px;}
  .form__bubble,.contacts__bubble,.footer__bubble{display:none;}
  .contacts__lucky{width:140px;top:-48px;}
  .footer__lucky{left:50%;transform:translateX(-50%);width:200px;top:-120px;}
  .footer__row{flex-direction:column;align-items:flex-start;padding-top:50px;}
  .footer__info{align-items:flex-start;}
  .stage,.stage--sm,.stage--wait{transform-origin:top center;}
  .hero__title{width:100%;}
  .hero__title .l1{font-size:clamp(34px,10vw,64px);}
  .hero__title .l2{font-size:clamp(48px,14.5vw,94px);}
  .hero__title .l3{font-size:clamp(17px,5vw,32px);}
}
@media (max-width:640px){
  :root{--gutter:16px;}
  .hero__grid{gap:24px;}
  .stage{width:100%;height:auto;aspect-ratio:580/660;}
  .stage__plate{left:5%;top:9%;width:90%;height:85%;}
  .stage__lucky{left:12%;top:14%;width:78%;height:76%;}
  .bubble--hero{left:0;top:0;width:min(260px,80%);}
  .sticker{left:auto;right:4%;top:auto;bottom:2%;}
  .slots{grid-template-columns:repeat(3,1fr);}
  .qa__q{font-size:18px;}
  .contacts__card{padding:28px 20px;}
  .stage--sm,.stage--wait{width:100%;}
  .btn--lg{padding:20px 32px;}
  .actions .btn{width:100%;}
  /* «Спецпредложение,» кеглем 38 шире карточки на телефоне — колонка распиралась, текст резался справа */
  .offer__card{grid-template-columns:minmax(0,1fr);}
  .offer__title{font-size:min(38px,calc(8.8vw - 7px));}
  /* Сводка записи: подпись в строку со «Краснобогатырская,» не влезает — колонка экрана уезжала за край */
  .screen__grid{grid-template-columns:minmax(0,1fr);}
  .summary{padding:24px 20px;}
  .srow{flex-direction:column;gap:4px;}
  /* Карточка листа ожидания не влезала в 320: поля 44 px и кнопка
     «Записаться в лист ожидания» без переноса (~350 px) */
  .wait-card{padding:28px 20px;--r-big:40px;}
  .wait-card .btn--lg{white-space:normal;padding-inline:20px;line-height:1.25;}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;}}
