/* Сезонные страницы Леса Чудес. Заголовки — Belarus, остальное — Tilda Sans.
   Цвет сезона приходит из seasons/*.php: --ink (основной), --ink2 (наведение), --hl (акцент в заголовках) */
@font-face{font-family:"Belarus";src:url(fonts/belarus.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Tilda Sans";src:url(fonts/tildasans-regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Tilda Sans";src:url(fonts/tildasans-medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Tilda Sans";src:url(fonts/tildasans-semibold.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --ink:#26347c; --ink2:#1b2766; --hl:#5d74d6;
  --gray:#f2f2f2; --gray2:#e7e7ea; --cream:#fff;
  --wrap:1180px; --gutter:20px; --r:28px; --r-s:20px; --pad:clamp(10px,1.2vw,16px);
  --head:"Belarus","PT Sans Narrow","Arial Narrow",sans-serif;
  --sans:"Tilda Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;overflow-x:clip;background:#fff;color:var(--ink);font:400 17px/1.45 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:400}
em{font-style:normal;color:var(--hl)}

/* сетка: один контейнер для всех секций */
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter)}
.wrap-wide{padding-left:var(--pad);padding-right:var(--pad)}
.sec{padding-top:clamp(72px,9vw,128px)}
.head{max-width:860px;margin:0 auto 40px;text-align:center}
.center{text-align:center}

/* типографика */
.h2{font:400 calc(clamp(40px,5.6vw,76px) * var(--hs,1))/.95 var(--head);letter-spacing:.005em;margin:0 0 18px;text-wrap:balance}
.h2--light{color:#fff}
.h2--light em{color:var(--cream)}
.h2--left{text-align:left}
.txt{max-width:600px;margin:0 auto;font-size:18px;line-height:1.4;text-wrap:balance}
.txt--light{color:#fff;opacity:.92}
.txt--left{margin-left:0;text-align:left}
.note{font-size:14px;opacity:.7;margin:14px 0 0;max-width:440px}

/* кнопки-пилюли */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;font:500 16px/1 var(--sans);text-decoration:none;white-space:nowrap;transition:transform .15s,background .15s,color .15s;cursor:pointer;border:0}
.pill:hover{transform:translateY(-1px)}
.pill--ink{background:var(--ink);color:#fff}
.pill--ink:hover{background:var(--ink2)}
.pill--gray{background:var(--gray);color:var(--ink)}
.pill--gray:hover{background:var(--gray2)}
.pill--white{background:#fff;color:var(--ink)}
.pill--light{background:var(--cream);color:var(--ink)}
.pill--light:hover{background:#fff}
.pill--big{min-height:56px;padding:0 32px;font-size:18px}

/* 1. первый экран */
.hero{padding:var(--pad)}
.hero__frame{position:relative;border-radius:var(--r);overflow:hidden;min-height:min(94vh,900px);display:flex;flex-direction:column;color:#fff;isolation:isolate}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero__frame::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,14,30,.55) 0%,rgba(10,14,30,.12) 36%,rgba(10,14,30,0) 52%,rgba(10,14,30,.72) 100%)}
.top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:18px 24px}
.logo{font:400 calc(30px * var(--hs,1))/1 var(--head);text-decoration:none;justify-self:start}
.top__nav{display:flex;gap:30px;font-size:15px}
.top__nav a{text-decoration:none;opacity:.9}
.top__nav a:hover{opacity:1;text-decoration:underline}
.top__right{justify-self:end;display:flex;align-items:center;gap:18px}
.top__ph{display:flex;flex-direction:column;align-items:flex-end;font-size:15px;line-height:1.2}
.top__ph a{text-decoration:none;font-weight:500}
.top__ph span{opacity:.75;font-size:12px}
.top__cta{min-height:42px;padding:0 20px;font-size:15px}
.hero__in{text-align:center;padding:4px 20px 0}
.hero__pre{margin:0 0 clamp(18px,2.4vw,30px)}
.hero__pre span{display:inline-flex;align-items:center;min-height:34px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:clamp(13px,1.05vw,15px);letter-spacing:.02em}
.hero__title{font:400 calc(clamp(84px,15vw,230px) * var(--hs,1))/.86 var(--head);letter-spacing:.01em;margin:0;text-shadow:0 6px 40px rgba(0,0,0,.2)}
.hero__title em{color:var(--cream)}
.hero__kick{display:block;font-size:.3em;line-height:1;letter-spacing:.02em;margin-bottom:.12em}
.hero__bottom{margin-top:auto;padding:0 20px 26px;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero__lead{max-width:520px;margin:0 0 20px;font-size:17px;line-height:1.4;text-wrap:balance;text-shadow:0 1px 14px rgba(0,0,0,.45)}
.hero__price{color:var(--cream);font-weight:500;white-space:nowrap}

/* переключатель сезонов */
.seasons{position:relative;display:grid;grid-template-columns:repeat(4,1fr);width:min(392px,100%);padding:4px;border-radius:999px;background:rgba(12,16,24,.38);border:1px solid rgba(255,255,255,.16);box-shadow:0 8px 24px rgba(0,0,0,.16);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2)}
.seasons__i{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:38px;padding:0 8px;border-radius:999px;font:400 15px/1 var(--sans);letter-spacing:.01em;color:rgba(255,255,255,.82);text-decoration:none;transition:color .25s}
.seasons__i:hover{color:#fff}
.seasons__i.is-on{background:var(--cream);color:#1d2a1d;font-weight:500}
.seasons__knob{display:none}
.seasons.js .seasons__i.is-on{background:transparent}
.seasons.js .seasons__knob{display:block;position:absolute;z-index:0;top:4px;bottom:4px;left:4px;border-radius:999px;background:var(--cream);box-shadow:0 2px 8px rgba(0,0,0,.18);transition:transform .32s cubic-bezier(.3,.7,.2,1),width .32s}
.seasons.js .seasons__i.is-on,.seasons.js .seasons__i.is-target{color:#1d2a1d;font-weight:500}
.seasons.js.is-moving .seasons__i.is-on{color:rgba(255,255,255,.82);font-weight:400}

/* 2. интро + коллаж */
.collage{display:flex;justify-content:center;margin:0 auto 34px;height:clamp(220px,28vw,330px)}
.collage__c{margin:0 -20px;width:clamp(150px,21vw,260px);border-radius:26px;overflow:hidden;box-shadow:0 18px 40px rgba(20,24,40,.18);transition:transform .3s}
.collage__c img{width:100%;height:100%;object-fit:cover}
.c1{transform:rotate(-8deg) translateY(16px);z-index:1}
.c2{transform:rotate(-3deg);z-index:2}
.c3{transform:rotate(3deg) translateY(6px);z-index:3}
.c4{transform:rotate(8deg) translateY(-4px);z-index:2}
.collage__c:hover{transform:rotate(0) scale(1.04);z-index:5}

/* 3. сетка */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.tile{background:var(--gray);border-radius:var(--r);aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:8px;font-size:16px;line-height:1.3}
.tile__num{font:400 calc(clamp(72px,8vw,112px) * var(--hs,1))/.9 var(--head)}
.tile span{max-width:220px;text-wrap:balance}
.tile--plain{background:transparent;border:1.5px solid var(--gray2)}
.tile--plain span{font-size:18px}
.tile--ink{background:var(--ink);color:#fff}
.tile--ink span{font-size:19px}
.tile--pic{padding:0;overflow:hidden;margin:0;border:0}
.tile--pic img{width:100%;height:100%;object-fit:cover}

/* 4. баннер */
.banner{padding-top:clamp(72px,9vw,128px)}
.banner__frame{position:relative;border-radius:var(--r);overflow:hidden;min-height:clamp(420px,46vw,620px);isolation:isolate;display:flex}
.banner__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.banner__frame::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,14,30,.6),rgba(10,14,30,.12) 58%,rgba(10,14,30,.4))}
.banner__in{width:100%;max-width:900px;margin:0 auto;padding:clamp(34px,5vw,64px) 20px;text-align:center}

/* 5. карточки цен */
.cards{display:grid;gap:14px}
.cards--3{grid-template-columns:repeat(3,1fr)}
.cards--4{grid-template-columns:repeat(4,1fr)}
.card{display:flex;flex-direction:column}
/* строки карточек выравниваются между собой: заголовок, цена, подпись и кнопки на одной линии в ряду */
@supports (grid-template-rows:subgrid){
  .cards{grid-auto-flow:row}
  .card{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:0;align-content:start}
  .card__t,.card__note{min-height:0}
  .card__t{align-self:start}
  .card__btns{align-self:end}
}
.card__pic{position:relative;margin:0 0 16px;border-radius:var(--r-s);overflow:hidden;aspect-ratio:3/3.7}
.card__pic img{width:100%;height:100%;object-fit:cover}
.card__tag{position:absolute;top:12px;right:12px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:13px}
.card__t{font:400 calc(clamp(28px,2.4vw,36px) * var(--hs,1))/1 var(--head);margin-bottom:10px}
.card__sum{margin:0;font-size:20px;font-weight:600}
.card__note{margin:2px 0 16px;font-size:14px;opacity:.7}
.card__btns{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:8px}
.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:40px}
.perks--2{grid-template-columns:repeat(2,1fr)}
.perks--4{grid-template-columns:repeat(4,1fr)}
.perk{background:var(--gray);border-radius:var(--r-s);padding:22px 24px 24px;display:flex;flex-direction:column;gap:8px}
.perk__v{font:400 calc(clamp(30px,2.6vw,38px) * var(--hs,1))/1 var(--head);color:var(--ink)}
.perk__d{font-size:15px;line-height:1.4;opacity:.8}

/* 6. шаги */
.steps{display:grid;gap:10px}
.step{background:var(--gray);border-radius:var(--r-s);padding:26px 28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:6px 40px;align-items:center}
.step h3{font:400 calc(30px * var(--hs,1))/1 var(--head);display:flex;align-items:center;gap:22px}
.step p{margin:0;font-size:16px;line-height:1.4}
.step__n{flex:none;width:1.25em;font:400 calc(66px * var(--hs,1))/.8 var(--head);color:var(--ink);opacity:.14}
.step--ink .step__txt{padding-left:calc(66px * 1.25 + 22px)}
.step--ink h3{display:flex;align-items:center;gap:22px;margin-left:calc(-66px * 1.25 - 22px)}
.step--ink .step__n{color:#fff;opacity:.2}
.step--ink{background:var(--ink);color:#fff;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:stretch;gap:40px;padding:28px}
.step__txt{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px}
.step--ink h3{font-size:40px}
.step--ink p{max-width:330px;margin-bottom:10px}
.step--ink figure{margin:0;border-radius:var(--r-s);overflow:hidden;min-height:300px}
.step--ink figure img{width:100%;height:100%;object-fit:cover}

/* 7. герои — лента, начинается от края общего контейнера */
.cast{--edge:max(var(--gutter),calc((100vw - var(--wrap))/2));display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--edge);padding:4px var(--edge) 6px;scrollbar-width:none}
.cast::-webkit-scrollbar{display:none}
.cast__c{position:relative;flex:0 0 clamp(250px,24vw,290px);aspect-ratio:3/3.7;margin:0;border-radius:var(--r-s);overflow:hidden;scroll-snap-align:start}
.cast__c img{width:100%;height:100%;object-fit:cover}
.cast__c figcaption{position:absolute;left:12px;right:12px;bottom:12px;display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:14px;background:rgba(255,255,255,.2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;font-size:14px}
.cast__c b{font:400 calc(26px * var(--hs,1))/1 var(--head)}
.cast__nav{display:flex;justify-content:center;gap:10px;margin-top:20px}
.arrow{width:46px;height:46px;border-radius:12px;border:0;background:var(--gray);color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
.arrow:hover{background:var(--gray2)}

/* 8. группам */
.gift{background:var(--gray);border-radius:var(--r);padding:clamp(28px,4vw,56px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center}
.gift__text .h2{font-size:clamp(36px,4vw,56px)}
.gift__text .txt{max-width:420px;opacity:.75;margin-top:14px}
.gift__btns{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:28px}
.gift__tel{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
.gift__tel b{font-weight:500;font-size:18px}
.gift__tel span{font-size:13px;opacity:.6}
.gift__tel:hover b{color:var(--hl)}
.gift__card{--cy:-40px;position:relative;isolation:isolate;padding:30px 30px 18px;max-width:440px;width:100%;justify-self:end}
.gift__card::before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;border-radius:var(--r-s);-webkit-mask:radial-gradient(circle 11px at 0 var(--cy),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--cy),#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 var(--cy),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--cy),#0000 97%,#000) right/51% 100% no-repeat}
.gift__card .pkg__chip{background:var(--gray)}
.gift__head{display:flex;flex-direction:column;align-items:flex-start}
.gift__price{margin:16px 0 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}
.gift__price span{font-size:15px;opacity:.7}
.gift__big{display:block;font:400 calc(clamp(44px,4.4vw,60px) * var(--hs,1))/1 var(--head);color:var(--hl)}
.gift__small{margin:8px 0 0;font-size:15px;line-height:1.4;opacity:.7}
.gift__card .pkg__cut{margin:24px -19px 8px}
.gift__list{list-style:none;margin:0;padding:0}
.gift__list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;font-size:15px;line-height:1.35}
.gift__list li+li{border-top:1px dashed rgba(0,0,0,.08)}
.gift__list span{opacity:.75}
.gift__list b{font-weight:600;white-space:nowrap;text-align:right}

/* 9. вопросы */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.faq details{background:var(--gray);border-radius:var(--r-s)}
.faq summary{list-style:none;cursor:pointer;padding:22px 66px 22px 26px;position:relative;font-size:18px;font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{margin:0;padding:0 26px 22px;font-size:16px;line-height:1.45}

/* 10. карта — тот же скруглённый блок, по высоте вдвое ниже финала */
.map{padding-top:clamp(72px,9vw,128px)}
.map__frame{position:relative;border-radius:var(--r);overflow:hidden;height:clamp(280px,24vw,330px);background:var(--gray);isolation:isolate}
.map__iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.map__frame.is-active .map__iframe{pointer-events:auto}
.map__card{position:absolute;z-index:2;left:clamp(12px,2vw,24px);top:50%;transform:translateY(-50%);width:min(360px,calc(100% - 24px));padding:22px 24px;border-radius:var(--r-s);background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 30px rgba(20,24,40,.14)}
.map__h{display:block;font:400 calc(34px * var(--hs,1))/1 var(--head);margin-bottom:10px}
.map__addr{margin:0;font-size:16px;line-height:1.35;font-weight:500}
.map__note{margin:4px 0 16px;font-size:14px;opacity:.7}
.map__btns{display:flex;flex-wrap:wrap;gap:8px}
.map__btns .pill{min-height:42px;padding:0 18px;font-size:15px}
.map__btns .pill--white{background:var(--gray)}
.map__unlock{position:absolute;z-index:1;right:16px;bottom:16px;border:0;border-radius:999px;padding:10px 16px;background:rgba(255,255,255,.9);color:var(--ink);font:500 13px/1 var(--sans);cursor:pointer;box-shadow:0 6px 16px rgba(20,24,40,.12)}
.map__frame.is-active .map__unlock{display:none}
.final.final--after-map{padding-top:12px}

/* 10. финал + подвал */
.final{padding-top:clamp(72px,9vw,128px);padding-bottom:var(--pad)}
.final__frame{position:relative;border-radius:var(--r);overflow:hidden;isolation:isolate;padding:clamp(34px,5vw,64px) clamp(20px,4vw,52px) clamp(16px,2vw,28px);color:#fff}
.final__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.final__frame::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,14,30,.74),rgba(10,14,30,.22) 72%),linear-gradient(0deg,rgba(10,14,30,.55),transparent 50%)}
.final__in{max-width:640px;min-height:300px}
.final__in .pill{margin-top:26px}
.foot{margin-top:64px;display:grid;grid-template-columns:1fr 1.2fr 1.5fr 1fr;gap:24px;padding:28px 30px;border-radius:var(--r-s);background:rgba(255,255,255,.13);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:15px}
.foot>div{display:flex;flex-direction:column;gap:6px}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot__logo{font:400 calc(40px * var(--hs,1))/1 var(--head)}
.foot__h{opacity:.65;font-size:13px;margin-bottom:4px}
.foot__big{font-size:20px;font-weight:600}
.foot__legal{grid-column:1/-1;flex-direction:column;gap:6px!important;margin-top:6px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);font-size:13px;line-height:1.45;opacity:.78}
.foot__legal p{margin:0}
.foot__docs{display:flex;flex-wrap:wrap;gap:6px 20px}
.foot__docs a{text-decoration:underline!important;text-underline-offset:3px}

/* ещё можно заказать */
.xtra{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.xtra__i{display:flex;flex-direction:column;gap:10px;background:var(--gray);border-radius:var(--r-s);padding:22px 24px}
.xtra__top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.xtra__t{font:400 calc(clamp(26px,2.2vw,32px) * var(--hs,1))/1 var(--head);margin:0}
.xtra__p{flex:0 0 auto;padding:6px 12px;border-radius:999px;background:#fff;font-weight:600;font-size:14px;white-space:nowrap}
.xtra__d{margin:0;font-size:15px;line-height:1.4;opacity:.8}
.xtra__go{margin-top:auto;padding-top:6px;font-weight:600;font-size:15px;text-decoration:none}
.xtra__go:hover{text-decoration:underline}
@media (max-width:980px){.xtra{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.xtra{grid-template-columns:1fr;gap:8px}.xtra__i{padding:18px 20px}}

/* переключатель-якоря на странице «Ваш праздник» */
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:4px;border-radius:999px;background:rgba(12,16,24,.38);border:1px solid rgba(255,255,255,.16);box-shadow:0 8px 24px rgba(0,0,0,.16);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.chips__i{display:flex;align-items:center;min-height:38px;padding:0 16px;border-radius:999px;color:rgba(255,255,255,.88);font-size:15px;text-decoration:none;transition:background .2s,color .2s}
.chips__i:hover{background:var(--cream);color:var(--ink)}

/* пакеты */
.pkg__grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}
.pkg__grid--1{grid-template-columns:minmax(0,520px);justify-content:center}
.pkg__grid--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1040px;margin:0 auto}
.pkg__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pkg__i{--cy:-40px;position:relative;isolation:isolate;display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;padding:26px 26px 24px;transition:transform .25s}
.pkg__i::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gray);border-radius:var(--r-s);-webkit-mask:radial-gradient(circle 11px at 0 var(--cy),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--cy),#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 var(--cy),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--cy),#0000 97%,#000) right/51% 100% no-repeat}
.pkg__i:hover{transform:translateY(-4px)}
.pkg__top{display:flex;flex-direction:column;gap:14px}
.pkg__meta{display:flex;flex-wrap:wrap;gap:6px}
.pkg__chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 9px;border-radius:999px;background:#fff;font-size:13px;line-height:1.2;color:var(--ink)}
.pkg__chip::before{content:"";width:14px;height:14px;flex:none;background:var(--hl);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.pkg__chip--ppl{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm7 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM9 13c-4 0-7 2-7 4.5V20h14v-2.5C16 15 13 13 9 13zm7.5.1c1.7.6 3.5 1.8 3.5 4.4V20h2v-2.5c0-2.4-2.4-4-5.5-4.4z'/%3E%3C/svg%3E")}
.pkg__chip--time{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 10.4 3.2 3.2-1.4 1.4L11 13.2V6h2z'/%3E%3C/svg%3E")}
.pkg__chip--dot{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3C/svg%3E")}
.pkg__t{font:400 calc(clamp(26px,2.1vw,31px) * var(--hs,1))/1.02 var(--head);margin:0;color:var(--ink)}
.pkg__p{margin:18px 0 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}
.pkg__p b{font:400 calc(clamp(40px,3.4vw,50px) * var(--hs,1))/1 var(--head);color:var(--hl)}
.pkg__p span{font-size:15px;opacity:.7}
.pkg__body{display:flex;flex-direction:column}
.pkg__cut{position:relative;display:block;height:0;margin:20px -15px 18px;border-top:2px dashed rgba(0,0,0,.12)}
.pkg__l{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:15px;line-height:1.38}
.pkg__l li{position:relative;padding-left:28px}
.pkg__l li::before{content:"";position:absolute;left:0;top:1px;width:19px;height:19px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/11px no-repeat}
.pkg__btn{margin-top:22px;align-self:end;background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);transition:background .2s,color .2s}
.pkg__i:hover .pkg__btn,.pkg__btn:hover{background:var(--ink);color:#fff}
.pkg__note{margin:18px auto 0;max-width:760px;display:flex;gap:10px;align-items:flex-start;padding:14px 20px;border-radius:18px;background:var(--gray);font-size:15px;line-height:1.4}
.pkg__note::before{content:"i";flex:none;width:22px;height:22px;border-radius:50%;background:var(--hl);color:#fff;font:600 13px/22px var(--sans);text-align:center}

/* блок «Ваш праздник» */
.party__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.party__i{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--r-s);overflow:hidden;color:#fff;text-decoration:none;isolation:isolate}
.party__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .4s}
.party__i::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,14,30,0) 35%,rgba(10,14,30,.75))}
.party__i:hover .party__img{transform:scale(1.04)}
.party__b{position:absolute;left:18px;right:18px;bottom:16px;display:flex;flex-direction:column;gap:2px}
.party__b b{font:400 calc(clamp(28px,2.4vw,34px) * var(--hs,1))/1 var(--head)}
.party__b span{font-size:14px;opacity:.9}
.party__b em{position:absolute;right:0;bottom:2px;font-style:normal;font-weight:600;font-size:14px;padding:6px 12px;border-radius:999px;background:var(--cream);color:var(--ink)}
.party__more{margin-top:24px}
@media (max-width:980px){.pkg__grid,.pkg__grid--3{grid-template-columns:repeat(2,1fr)}.party__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.pkg__grid,.pkg__grid--2,.pkg__grid--3{grid-template-columns:1fr}.party__grid{grid-template-columns:1fr 1fr;gap:8px}.party__i{aspect-ratio:3/4}.party__b{left:12px;right:12px;bottom:12px}.party__b b{font-size:24px}.party__b span{display:none}.party__b em{position:static;align-self:flex-start;margin-top:6px;font-size:12px;padding:4px 10px}.chips{flex-wrap:nowrap;max-width:100%;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips__i{flex:0 0 auto;min-height:34px;padding:0 12px;font-size:13.5px}}

/* меню в шапке */
.top__nav a.is-cur{opacity:1;text-decoration:underline;text-underline-offset:5px}
.burger{display:none;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0}
.burger span{display:block;width:18px;height:2px;border-radius:2px;background:#fff}
.mnav{position:fixed;inset:0;z-index:50;background:rgba(10,14,30,.5);opacity:0;transition:opacity .25s}
.mnav.is-on{opacity:1}
.mnav__panel{position:absolute;top:0;right:0;bottom:0;width:min(380px,100%);background:#fff;color:var(--ink);padding:18px 20px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;overflow:auto;transform:translateX(100%);transition:transform .25s}
.mnav.is-on .mnav__panel{transform:none}
.mnav__top{display:flex;justify-content:space-between;align-items:center}
.mnav__logo{font:400 calc(30px * var(--hs,1))/1 var(--head);text-decoration:none}
.mnav__x{width:44px;height:44px;border:0;border-radius:50%;background:var(--gray);color:var(--ink);font-size:26px;cursor:pointer}
.mnav__h{margin:6px 0 0;font-size:13px;opacity:.6}
.mnav__seasons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mnav__seasons a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:14px;background:var(--gray);text-decoration:none;font-weight:500}
.mnav__seasons a.is-cur{background:var(--ink);color:#fff}
.mnav__list{display:flex;flex-direction:column}
.mnav__list a{display:flex;justify-content:space-between;align-items:center;padding:16px 4px;border-bottom:1px solid var(--gray2);font:400 calc(28px * var(--hs,1))/1 var(--head);text-decoration:none}
.mnav__list a.is-cur{color:var(--hl)}
.mnav__foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;align-items:stretch;text-align:center;font-size:13px;opacity:.9}

/* цены по датам */

/* галерея */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gal__i{padding:0;border:0;border-radius:var(--r-s);overflow:hidden;aspect-ratio:1;cursor:zoom-in;background:var(--gray)}
.gal__i img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.gal__i:hover img{transform:scale(1.05)}
.lbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh}
.lbox::backdrop{background:rgba(8,10,20,.9)}
.lbox[open]{display:flex;align-items:center;justify-content:center}
.lbox__f{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:min(1200px,92vw)}
.lbox__f img{max-width:100%;max-height:82dvh;border-radius:16px;object-fit:contain}
.lbox__f figcaption{color:#fff;font-size:15px;opacity:.85}
.lbox__x,.lbox__a{position:fixed;border:0;border-radius:50%;width:48px;height:48px;background:rgba(255,255,255,.14);color:#fff;font-size:28px;cursor:pointer}
.lbox__x{top:16px;right:16px}
.lbox__a--p{left:16px;top:50%}
.lbox__a--n{right:16px;top:50%}

@media (max-width:1080px){ .burger{display:flex} }
@media (max-width:640px){
  .top__right{gap:10px}
  .gal{grid-template-columns:1fr 1fr;gap:6px}
  .lbox__a{top:auto;bottom:24px}
}

/* соцсети в подвале */
.soc{display:flex;gap:8px;margin-bottom:4px}
.soc__i{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);color:#fff;transition:background .15s}
.soc__i:hover{background:rgba(255,255,255,.3)}
.soc__i svg{width:22px;height:22px}

/* форма заявки */
.lead{border:0;padding:0;border-radius:var(--r);width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 24px);color:var(--ink);background:#fff;box-shadow:0 30px 80px rgba(10,14,30,.35)}
.lead::backdrop{background:rgba(10,14,30,.55);backdrop-filter:blur(4px)}
.lead__f{position:relative;display:grid;gap:12px;padding:clamp(22px,4vw,34px)}
.lead__x{position:absolute;right:14px;top:14px;width:40px;height:40px;border:0;border-radius:50%;background:var(--gray);color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.lead__t{font:400 calc(clamp(34px,5vw,46px) * var(--hs,1))/1 var(--head);margin:0;padding-right:44px}
.lead__sub{margin:0 0 6px;font-size:15px;opacity:.75}
.lf{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:14px;font-weight:500}
.lf i{font-style:normal;font-weight:400;opacity:.6}
.lf input,.lf select,.lf textarea{width:100%;min-width:0;min-height:48px;padding:11px 14px;border:1.5px solid transparent;border-radius:14px;background:var(--gray);color:var(--ink);font:400 16px/1.3 var(--sans);outline:none;-webkit-appearance:none;appearance:none}
.lf select{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.lf input:focus,.lf select:focus,.lf textarea:focus{border-color:var(--ink)}
.lf2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lead__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.lcheck{display:flex;gap:10px;align-items:flex-start;font-size:14px;cursor:pointer}
.lcheck input{width:20px;height:20px;margin:0;accent-color:var(--ink);flex:0 0 auto}
.lead__err{margin:0;padding:10px 14px;border-radius:12px;background:#fdecea;color:#8a1f12;font-size:14px}
.lead__go{width:100%}
.lead__ok{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;background:#fff;border-radius:var(--r);text-align:center}
.lead__ok[hidden],.lead__err[hidden]{display:none}
.lead__ok b{font:400 calc(48px * var(--hs,1))/1 var(--head)}
.lead__ok span{max-width:340px;font-size:16px;line-height:1.4}
@media (max-width:640px){.lf2{grid-template-columns:1fr}}

.sticky{display:none}

/* адаптив */
@media (max-width:1080px){
  .top{grid-template-columns:1fr auto}
  .top__nav{display:none}
  .cards--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:980px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .cards--3{grid-template-columns:repeat(2,1fr)}
  .gift{grid-template-columns:1fr}
  .faq{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr 1fr}
  .perks--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  :root{--gutter:16px}
  body{font-size:16px}
  .top{padding:14px 16px}
  .logo{font-size:26px}
  .top__ph span{display:none}
  .top__ph{font-size:14px}
  .top__cta{display:none}
  .hero__frame{min-height:88svh}
  .hero__in{padding-top:2px}
  .hero__title{font-size:clamp(84px,27vw,124px)}
  .hero__lead{font-size:15.5px}
  .hero__lead{margin-bottom:16px}
  .seasons{width:min(340px,100%);padding:3px}
  .seasons.js .seasons__knob{top:3px;bottom:3px;left:3px}
  .seasons__i{min-height:36px;font-size:14px;padding:0 4px}
  .head{margin-bottom:28px}
  .h2{font-size:clamp(38px,11vw,50px)}
  .txt{font-size:16.5px}
  .collage{height:180px;margin-bottom:24px}
  .collage__c{width:104px;margin:0 -10px;border-radius:18px}
  .tile{padding:14px;font-size:14px}
  .tile__num{font-size:64px}
  .tile--plain span,.tile--ink span{font-size:15px}
  .cards--3,.cards--4{grid-template-columns:1fr;gap:34px}
  .card__pic{aspect-ratio:4/3.3}
  .card__t,.card__note{min-height:0}
  .perks,.perks--2,.perks--4{grid-template-columns:1fr;gap:8px;margin-top:28px}
  .perk{padding:18px 20px;flex-direction:row;align-items:baseline;gap:14px}
  .perk__v{font-size:28px;flex:0 0 auto;max-width:45%}
  .perk__d{font-size:14.5px}
  .hero__pre{margin-bottom:16px}
  .hero__pre span{min-height:30px;font-size:13px;padding:0 12px}
  .step,.step--ink{grid-template-columns:1fr;gap:10px}
  .step{padding:18px}
  .step__n{font-size:52px}
  .step--ink .step__txt{padding-left:0}
  .step--ink h3{margin-left:0}
  .step h3{font-size:28px}
  .step--ink{padding:18px}
  .step--ink figure{min-height:200px}
  .cast__c{flex-basis:74vw}
  .gift__card{justify-self:stretch;max-width:none;padding:24px 22px 14px}
  .gift__card .pkg__cut{margin-left:-11px;margin-right:-11px}
  .faq summary{font-size:16.5px;padding:18px 58px 18px 18px}
  .faq details p{padding:0 18px 18px}
  .map__frame{height:auto;display:flex;flex-direction:column}
  .map__iframe{position:relative;height:260px;order:2}
  .map__card{position:relative;left:auto;top:auto;transform:none;width:100%;border-radius:0;box-shadow:none;background:var(--gray);padding:20px 18px;order:1}
  .map__h{font-size:30px}
  .map__btns .pill{flex:1}
  .map__unlock{bottom:12px;right:12px}
  .final.final--after-map{padding-top:10px}
  .map__btns .pill--white{background:#fff}
  .final__in{min-height:220px}
  .foot{grid-template-columns:1fr;margin-top:40px;padding:20px}
  .final{padding-bottom:84px}
  .sticky{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:20;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 -6px 20px rgba(20,24,40,.12);transform:translateY(110%);transition:transform .25s}
  .sticky.is-on{transform:none}
  .sticky .pill{flex:1;min-height:50px}
  .sticky__ph{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--gray);color:var(--ink);text-decoration:none;font-size:20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.nobr{white-space:nowrap}

.foot__meta{margin:6px 0 0;font-size:12px;opacity:.55}

/* Календарь цен (зима) */
.cal{--p0:color-mix(in srgb,var(--hl) 20%,#fff);--p1:color-mix(in srgb,var(--hl) 55%,#fff);--p2:var(--ink);background:var(--gray);border-radius:var(--r);padding:clamp(20px,3vw,36px);margin-bottom:14px}
.cal__legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.cal__lg{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:#fff;font-size:14px}
.cal__lg b{font-weight:600}
.cal__lg--off{opacity:.6}
.cal__dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);flex:none}
.cal__dot.cal--p0{background:var(--p0,color-mix(in srgb,var(--hl) 20%,#fff));box-shadow:none}
.cal__dot.cal--p1{background:var(--p1,color-mix(in srgb,var(--hl) 55%,#fff));box-shadow:none}
.cal__dot.cal--p2{background:var(--ink);box-shadow:none}
.cal__months{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(18px,3vw,40px)}
.cal__mt{margin:0 0 10px;font:400 calc(28px * var(--hs,1))/1 var(--head)}
.cal__g{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal__wd{font-size:12px;text-align:center;opacity:.55;padding-bottom:2px}
.cal__d{display:flex;align-items:center;justify-content:center;height:46px;border-radius:10px;font-size:15px;font-weight:500;text-decoration:none;color:var(--ink);transition:transform .15s}
.cal__d.is-off{opacity:.3;font-weight:400}
a.cal__d:hover{transform:scale(1.08)}
.cal__d.cal--p0{background:var(--p0)}
.cal__d.cal--p1{background:var(--p1)}
.cal__d.cal--p2{background:var(--p2);color:#fff}
.cal__hint{margin:18px 0 0;font-size:13px;opacity:.6}
.dinfo{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:14px}
.dinfo__i{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:var(--r-s);border:1.5px solid var(--gray)}
.dinfo__i b{font:400 calc(24px * var(--hs,1))/1 var(--head);color:var(--hl)}
.dinfo__i span{font-size:14px;line-height:1.4;opacity:.8}
.pkg__p--txt b{font-size:clamp(28px,2.4vw,34px)}
@media (max-width:640px){.dinfo{grid-template-columns:1fr 1fr;gap:8px}.dinfo__i{padding:12px 14px}.dinfo__i b{font-size:20px}.dinfo__i span{font-size:13px}.cal__d{font-size:14px;border-radius:8px;height:40px}.cal__g{gap:4px}.cal__lg{font-size:13px;padding:6px 12px}}

/* Цены по датам — упрощённая таблица */
.dates{background:var(--gray);border-radius:var(--r);padding:clamp(18px,2.6vw,30px) clamp(18px,3vw,36px)}
.dates__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.dates__lbl{font:400 calc(28px * var(--hs,1))/1 var(--head)}
.dates__sw{display:inline-flex;padding:4px;border-radius:999px;background:#fff}
.dates__b{border:0;background:transparent;font:500 14px/1 var(--sans);color:var(--ink);padding:10px 16px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}
.dates__b.is-on{background:var(--ink);color:#fff}
.dates__row{display:grid;grid-template-columns:1.4fr repeat(3,1fr);align-items:center;gap:10px;padding:16px 0;border-top:1px solid rgba(0,0,0,.07)}
.dates__row--h{border-top:0;padding:6px 0;font-size:13px;opacity:.6;align-items:end}
.dates__row--h span:not(:first-child),.dates__p{text-align:center}
.dates__row--h small{display:block;font-size:11px}
.dates__when{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.dates__when b{font:400 calc(26px * var(--hs,1))/1 var(--head)}
.dates__when small{flex-basis:100%;font-size:13px;opacity:.7}
.dates__p b{font-weight:600;font-size:19px}
.dates .bus,.dates[data-t=bus] .own{display:none}
.dates[data-t=bus] .bus{display:inline}
.dates__note{margin:10px 0 0;font-size:13px;opacity:.6}
.dates .cal__dot.cal--p0{background:color-mix(in srgb,var(--hl) 20%,#fff)}
.dates .cal__dot.cal--p1{background:color-mix(in srgb,var(--hl) 55%,#fff)}
@media (max-width:640px){
  .dates__row{grid-template-columns:repeat(3,1fr);gap:6px 8px;padding:14px 0}
  .dates__row--h span:first-child{display:none}
  .dates__when{grid-column:1/-1}
  .dates__when b{font-size:22px}
  .dates__p b{font-size:16px}
  .dates__b{padding:9px 12px;font-size:13px}
  .dates__lbl{font-size:24px}
}

/* ===== Иконки в плитках «Что входит» ===== */
.tile__ic{display:block;width:46px;height:46px;color:var(--hl);margin-bottom:4px}
.tile__ic svg{width:100%;height:100%;display:block}
.tile--ink .tile__ic{color:#fff;opacity:.92}
@media (max-width:640px){.tile__ic{width:34px;height:34px;margin-bottom:0}}

/* ===== Новый вид (look 1–3): праздничная палитра + шрифт заголовков. Палитра — 'fest' в seasons/*.php ===== */
@font-face{font-family:"Kurale";src:url(fonts/kurale.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
@font-face{font-family:"Kurale";src:url(fonts/kurale-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+20BD,U+2122,U+2212;font-display:swap}
@font-face{font-family:"Yeseva One";src:url(fonts/yeseva.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
@font-face{font-family:"Yeseva One";src:url(fonts/yeseva-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+20BD,U+2122,U+2212;font-display:swap}
@font-face{font-family:"Prata";src:url(fonts/prata.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
@font-face{font-family:"Prata";src:url(fonts/prata-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+20BD,U+2122,U+2212;font-display:swap}
.look-1{--head:"Kurale",Georgia,serif;--hs:.74}
.look-2{--head:"Yeseva One",Georgia,serif;--hs:.7}
.look-3{--head:"Prata",Georgia,serif;--hs:.68}
.look-1,.look-2,.look-3{--gray:var(--tint);--gray2:var(--tint2);--cream:#ffe7a8}
.look-1 .h2,.look-2 .h2,.look-3 .h2{line-height:1.06}
.look-1 .hero__title,.look-2 .hero__title,.look-3 .hero__title{line-height:.98}
.look-1 .hero__title em,.look-2 .hero__title em,.look-3 .hero__title em{color:var(--acc)}
.look-1 .hero__price,.look-2 .hero__price,.look-3 .hero__price{color:var(--acc)}
/* орнамент Леса Чудес на цветных плитках и карточках */
.look-1 .tile--ink,.look-2 .tile--ink,.look-3 .tile--ink{position:relative;overflow:hidden;isolation:isolate}
.look-1 .tile--ink::before,.look-2 .tile--ink::before,.look-3 .tile--ink::before{content:"";position:absolute;inset:-20%;z-index:-1;background:var(--acc);opacity:.28;
  -webkit-mask:url(img/orn-flower.svg) 0 0/160px 160px repeat;mask:url(img/orn-flower.svg) 0 0/160px 160px repeat}
.s-zima.look-1 .tile--ink::before,.s-zima.look-2 .tile--ink::before,.s-zima.look-3 .tile--ink::before{-webkit-mask-image:url(img/orn-winter.svg);mask-image:url(img/orn-winter.svg);opacity:.35}
.look-1 .tile:not(.tile--pic):not(.tile--ink),.look-2 .tile:not(.tile--pic):not(.tile--ink),.look-3 .tile:not(.tile--pic):not(.tile--ink){background:var(--tint);border:0}
.look-1 .tile--plain .tile__ic,.look-2 .tile--plain .tile__ic,.look-3 .tile--plain .tile__ic{color:var(--hl)}
.look-1 .tile__num,.look-2 .tile__num,.look-3 .tile__num{color:var(--hl)}
@media (max-width:640px){.look-1 .tile--ink::before,.look-2 .tile--ink::before,.look-3 .tile--ink::before{-webkit-mask-size:110px 110px;mask-size:110px 110px}}

/* Первый экран с заголовком внизу ('low' => true в seasons/*.php) — когда лицо на фото вверху кадра */
.hero__frame--low .hero__in{margin-top:auto;padding-bottom:14px}
.hero__frame--low .hero__bottom{margin-top:0}
.hero__frame--low .hero__title{font-size:calc(clamp(72px,11vw,170px) * var(--hs,1))}
.hero__frame--low::after{background:linear-gradient(180deg,rgba(10,14,30,.45) 0%,rgba(10,14,30,0) 22%,rgba(10,14,30,0) 42%,rgba(10,14,30,.55) 64%,rgba(10,14,30,.82) 100%)}
@media (max-width:640px){.hero__frame--low .hero__title{font-size:calc(clamp(64px,19vw,96px) * var(--hs,1))}}

/* ===== Шрифт заголовков (lc_cfg 'font'). Playfair Display Bold — выбран 15.10 ===== */
@font-face{font-family:"Playfair Display";src:url(fonts/playfair.woff2) format("woff2");font-weight:100 900;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
@font-face{font-family:"Playfair Display";src:url(fonts/playfair-latin.woff2) format("woff2");font-weight:100 900;unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+20BD,U+2122,U+2212;font-display:swap}
body.font-playfair{--head:"Playfair Display",Georgia,serif;--hs:.66}
body.font-playfair{font-synthesis:none}
body.font-playfair .h2{line-height:1.08}
body.font-playfair .hero__title{line-height:1}

/* ===== Rupster Script (шрифт из названия/логотипа клиента) — font=rupster, 15.10 =====
   В шрифте нет цифр, ₽, №, скобок и татарских букв — они автоматически берутся из Playfair Display. */
@font-face{font-family:"Rupster Script";src:url(fonts/rupster.woff2) format("woff2");font-weight:400;font-display:swap}
body.font-rupster{--head:"Rupster Script","Tilda Sans",system-ui,sans-serif;--hs:.8;font-synthesis:none}
body.font-rupster .h2{line-height:1.05;letter-spacing:0}
body.font-rupster .hero__title{line-height:1.02;letter-spacing:0}
body.font-rupster .hero__kick{margin-bottom:.6em;font-size:.34em}
body.font-rupster :is(.h2,.hero__title,.bhero__title,.lead__t,.logo,.foot__logo,.mnav__logo){word-spacing:.14em}
/* Playfair по умолчанию рисует «старостильные» цифры (3 уходит под строку, 8 выше) — включаем ровные */
body.font-rupster,body.font-playfair{font-variant-numeric:lining-nums}
body.font-rupster .tile__num,body.font-playfair .tile__num{font-variant-numeric:lining-nums;line-height:1;display:block;margin-bottom:.12em}
/* подпись под цифрой/иконкой всегда занимает 2 строки — цифры в соседних плитках стоят на одной высоте */
.tile:not(.tile--pic)>span{display:block;min-height:2.6em}

/* ===== Правило двух шрифтов (15.10): рукописный Rupster — только большие заголовки и логотип,
   всё остальное — Tilda Sans. Подзаголовки карточек и элементов — капсом. ===== */
body.font-rupster{--sub:"Tilda Sans",system-ui,sans-serif}
body.font-rupster :is(.card__t,.xtra__t,.pkg__t,.cast__c b,.step h3,.map__h,.party__b b,.cal__mt,.dates__lbl,.perk__v,.dinfo__i b,.dates__when b,.mnav__list a,.sum__t,.bstep__h h2){
  font-family:var(--sub);font-weight:600;text-transform:uppercase;letter-spacing:.06em;line-height:1.2;word-spacing:normal}
body.font-rupster :is(.card__t,.pkg__t,.party__b b){font-size:clamp(18px,1.5vw,21px)}
body.font-rupster :is(.xtra__t,.cast__c b,.map__h,.cal__mt,.dates__lbl,.bstep__h h2){font-size:clamp(16px,1.3vw,18px)}
body.font-rupster .step h3{font-size:clamp(16px,1.4vw,19px)}
body.font-rupster :is(.perk__v,.sum__t){font-size:clamp(18px,1.6vw,22px)}
body.font-rupster :is(.dinfo__i b,.dates__when b){font-size:15px}
body.font-rupster .mnav__list a{font-size:18px}
/* цифры и суммы — тоже Tilda Sans, без капса */
body.font-rupster :is(.tile__num,.gift__big,.pkg__p b,.step__n,.lead__ok b,.sum__total b,.bsticky__sum b,.bstep__n){font-family:var(--sub);font-weight:600;letter-spacing:-.01em;word-spacing:normal}
body.font-rupster .tile__num{font-size:clamp(64px,6vw,92px)}
body.font-rupster .step__n{font-size:44px}
body.font-rupster .gift__big{font-size:clamp(36px,3.4vw,48px)}
body.font-rupster .pkg__p b{font-size:clamp(30px,2.6vw,38px)}
body.font-rupster .sum__total b{font-size:36px}
body.font-rupster .bstep__n{font-size:16px}
button,input,select,textarea{font-family:inherit}
/* шаг 04: номер стал Tilda Sans 44px — пересчитываем отступ текста и кнопки под заголовок */
body.font-rupster .step__n{width:56px;line-height:1}
body.font-rupster .step--ink .step__txt{padding-left:78px}
body.font-rupster .step--ink h3{margin-left:-78px}
@media (max-width:640px){body.font-rupster .step__n{font-size:36px;width:46px}body.font-rupster .step--ink .step__txt{padding-left:0}body.font-rupster .step--ink h3{margin-left:0}}
/* Рукописные цифры: в Rupster их нет — берём цифры из Kaushan Script (OFL) и подмешиваем в то же семейство */
@font-face{font-family:"Rupster Script";src:url(fonts/kaushan-digits.woff2) format("woff2");font-weight:400;unicode-range:U+0030-0039,U+003A,U+0025,U+002B;size-adjust:92%;font-display:swap}
body.font-rupster .bento .tile__num{font-family:var(--head);font-weight:400;letter-spacing:0;font-size:clamp(70px,6.6vw,100px);line-height:1}

/* ===== Мобильная доводка (17.10): рукописные заголовки не наезжают строками, первый экран помещается,
   мелкий серый текст читается, кнопки в финале одна под другой ===== */
.final__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.final__btns .pill{margin-top:0}
@media (max-width:640px){
  body.font-rupster .h2{font-size:clamp(34px,9.6vw,44px);line-height:1.2;word-spacing:.06em}
  body.font-rupster .h2 em{display:inline}
  body.font-rupster .hero__title{font-size:clamp(62px,18.5vw,96px);line-height:1.08;word-spacing:.04em}
  body.font-rupster .hero__kick{font-size:.36em;margin-bottom:.75em;line-height:1.15}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile{min-width:0;overflow-wrap:anywhere}
  .hero__in{padding-top:18px}
  body.font-rupster .lead__t{line-height:1.15}
  .card__note,.xtra__d,.pkg__d{opacity:.85}
  .txt{line-height:1.5}
  .final__btns{flex-direction:column;align-items:stretch}
  .final__btns .pill{width:100%;justify-content:center}
}
@media (max-width:380px){
  body.font-rupster .h2{font-size:clamp(30px,9.4vw,38px)}
  body.font-rupster .hero__title{font-size:clamp(56px,17.5vw,72px)}
  .top__ph{font-size:13px}
  .logo{font-size:23px}
}

/* логотип «Лес Чудес» в кавычках — всегда в одну строку (17.10) */
.logo,.foot__logo,.mnav__logo{white-space:nowrap}
.top__ph a{white-space:nowrap}
@media (max-width:380px){.logo{font-size:21px}.top__ph{font-size:12.5px}.top{gap:10px}}

/* мобильная доводка 2 (17.10): фото-плитки без рамки, цифры в плитках на одной линии, строки «доп. услуг» не скачут */
@media (max-width:640px){
  .tile.tile--pic{padding:0;border:0;background:none}
  .tile:not(.tile--pic){justify-content:center;gap:6px}
  body.font-rupster .bento .tile__num,.bento .tile__num{font-size:58px;line-height:.95;margin:0}
  .tile:not(.tile--pic)>span{min-height:0;font-size:14.5px;line-height:1.3}
  .tile{overflow-wrap:normal;hyphens:manual}
  .perk{flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px}
  .perk__v,body.font-rupster .perk__v{max-width:none;font-size:17px;line-height:1.25}
  .perk__d{font-size:15px}
}

/* 23.10 — мобильные правки: карточка групп и коллаж не выходят за край экрана */
@media (max-width:980px){
  .gift{grid-template-columns:minmax(0,1fr)}
  .gift__card,.gift__text{min-width:0}
}
@media (max-width:640px){
  .gift{padding:24px 18px}
  .gift__list li{flex-wrap:wrap;gap:2px 12px}
  .gift__list span{flex:1 1 150px;min-width:0}
  .gift__list b{margin-left:auto}
  .gift__small{overflow-wrap:anywhere}
  .collage__c{width:min(104px,calc((100vw - 8px) / 3.6))}
}

/* 27.10 — два телефона в блоке для групп */
.gift__tels{display:flex;flex-direction:column;gap:6px}
@media (max-width:640px){.xtra{grid-template-columns:minmax(0,1fr)}.xtra__t{min-width:0;overflow-wrap:break-word;hyphens:auto}}

/* 27.10 — переключатель сезонов крупнее, с иконками; на телефоне — во всю ширину, отступ снизу = отступ по краям */
.seasons{width:min(520px,100%);padding:5px}
.seasons.js .seasons__knob{top:5px;bottom:5px;left:5px}
.seasons__i{min-height:48px;gap:8px;font-size:16.5px;padding:0 12px}
.seasons__ic{flex:none;width:19px;height:19px;opacity:.9}
.perks__h{margin:34px 0 14px;font:400 calc(26px * var(--hs,1))/1.15 var(--head);color:var(--ink);text-align:center}
.perks__h em{font-style:normal;color:var(--hl)}
.perks__h + .perks{margin-top:0}
@media (max-width:640px){
  .hero__frame .hero__bottom{padding:0 10px 10px}
  .hero__lead{padding:0 10px}
  .seasons{width:100%;padding:4px}
  .seasons.js .seasons__knob{top:4px;bottom:4px;left:4px}
  .seasons__i{min-height:50px;flex-direction:column;gap:3px;font-size:13.5px;padding:0 2px}
  .seasons__ic{width:18px;height:18px}
  .perks__h{font-size:calc(24px * var(--hs,1))}
}

/* 28.10 — переключатель сезонов ещё крупнее на компьютере; юрлицо в подвале крупнее */
@media (min-width:641px){
  .seasons{width:min(650px,100%);padding:6px}
  .seasons.js .seasons__knob{top:6px;bottom:6px;left:6px}
  .seasons__i{min-height:60px;gap:10px;font-size:20px;padding:0 16px}
  .seasons__ic{width:24px;height:24px}
}
.foot__legal{font-size:15px;opacity:.88}

/* Календарь всех сезонов и открытие программы — 05.11.2026. */
.season-calendar{padding-top:clamp(32px,5vw,64px)}
.calendar-head .h2{margin-bottom:16px}
.calendar-head .txt{max-width:720px;margin-inline:auto}
.cal__program{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:22px;margin-top:22px;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
.cal__program-info{flex:1;min-width:0;color:var(--ink)}
.cal__program-info b{display:block;font-size:19px;font-weight:500}
.cal__program-actions{display:flex;flex-wrap:wrap;gap:10px}
.program-action{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:13px 20px;border-radius:999px;text-decoration:none;font-size:16px;line-height:1.25;transition:background .2s,color .2s}
.program-action svg{flex:none}
.program-action--open{background:var(--ink);color:#fff}
.program-action--open:hover{background:var(--ink2)}
.program-action:focus-visible{outline:3px solid var(--hl);outline-offset:3px}
.season-calendar .cal__months{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.season-calendar .cal__months--single{max-width:440px;margin-inline:auto}
.cal--season .cal--p0{background:color-mix(in srgb,var(--hl) 15%,#fff)}
.season-calendar .cal__d:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:800px){.cal__program{align-items:flex-start;flex-direction:column;gap:16px}.cal__program-actions{width:100%}.program-action{flex:1}}
@media(max-width:480px){.cal__program-actions{flex-direction:column}.program-action{width:100%;justify-content:space-between}}
@media(max-width:420px){.season-calendar .cal{padding:18px 14px}.season-calendar .dinfo{grid-template-columns:1fr}}

/* Минимальный обычный билет сезона — рядом с обозначениями календаря. */
.cal__top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.cal__top .cal__legend{margin:0;flex:1;min-width:0}
.cal__price{flex:none;background:var(--ink);color:#fff;white-space:nowrap}
.hero__period{display:block;margin-bottom:8px;font-weight:600}
@media(max-width:800px){.cal__top{align-items:flex-start;flex-wrap:wrap}.cal__price{margin-left:auto}}
@media(max-width:480px){.cal__top{gap:14px}.cal__top .cal__legend{flex-basis:100%}.cal__price{margin-left:0}}

/* На телефоне зимний заголовок над портретом, описание — у нижней кромки. */
@media(max-width:640px){
  .s-zima .hero__frame--low{min-height:max(88svh,680px)}
  .s-zima .hero__frame--low .hero__in{margin-top:0;padding:18px 12px 0}
  .s-zima .hero__frame--low .hero__title{font-size:clamp(40px,12vw,62px);line-height:1.1;white-space:nowrap;text-shadow:0 2px 4px rgba(0,24,46,.5),0 5px 18px rgba(0,24,46,.38)}
  .s-zima .hero__frame--low .hero__kick{font-size:.42em;line-height:1.1;margin-bottom:.4em}
  .s-zima .hero__frame--low .hero__bottom{margin-top:auto}
}
@media(max-width:380px){
  .s-zima .top{padding-inline:12px;gap:8px}
  .s-zima .top__right{gap:8px}
  .s-zima .top__ph{font-size:11px}
  .s-zima .logo{font-size:20px}
  .s-zima .top .burger{width:36px;height:36px}
}

/* Полный состав программ — сверка 05.11.2026. */
.program-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.program-detail{min-width:0;background:var(--gray);border-radius:var(--r-s);overflow:hidden}
.program-detail summary{list-style:none;cursor:pointer;position:relative;padding:24px 64px 24px 24px;color:var(--ink)}
.program-detail summary::-webkit-details-marker{display:none}
.program-detail summary b{display:block;font-size:19px;font-weight:500;line-height:1.3}
.program-detail summary small{display:block;margin-top:8px;font-size:14px;line-height:1.4;opacity:.75}
.program-detail summary::after{content:"+";position:absolute;right:20px;top:24px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;font-size:22px}
.program-detail[open] summary::after{content:"−"}
.program-detail summary:focus-visible{outline:3px solid var(--hl);outline-offset:-3px}
.program-detail__body{padding:0 24px 24px;font-size:16px;line-height:1.55;overflow-wrap:break-word}
.program-detail__body p{margin:0 0 14px}.program-detail__body p:last-child{margin-bottom:0}
.program-detail__price{font-weight:500;color:var(--ink)}
@media(max-width:800px){.program-list{grid-template-columns:1fr}}
@media(max-width:420px){.program-detail summary{padding:20px 56px 20px 18px}.program-detail summary b{font-size:17px}.program-detail summary::after{right:16px;top:20px}.program-detail__body{padding:0 18px 20px}}
