/* ===== Петровский — живой макет. Стиль «Петровская эпоха» ===== */
:root{
  --green:#1F3A30; --green-deep:#14271F; --green-soft:#2C4A3E;
  --gold:#B08D57; --gold-light:#D9B880; --gold-pale:#E8D6B0;
  --milk:#F7F2EA; --beige:#EFE6D8; --ink:#24211D; --grey:#6E675D; --line:#DCD2C2;
  --serif:"Cormorant Garamond", Georgia, serif; --sans:"Montserrat", Arial, sans-serif;
  --ease:cubic-bezier(.22,.8,.2,1); --ease-in-out:cubic-bezier(.65,0,.35,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--milk);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-loading{overflow:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
.container{width:min(1200px,100% - 64px);margin:0 auto}
.section{padding:140px 0}
.section--dark{background:var(--green);color:var(--milk)}
.section--beige{background:var(--beige)}

/* ---------- типографика ---------- */
.h2{font-family:var(--serif);font-weight:500;font-size:clamp(40px,5vw,64px);line-height:1.04;letter-spacing:-.01em;margin:18px 0 26px}
.h2--light{color:#fff}
.h3{font-family:var(--serif);font-weight:500;font-size:clamp(34px,3.6vw,48px);line-height:1.1}
.lead{font-size:16px;color:var(--grey);max-width:520px;line-height:1.75}
.lead--light{color:rgba(247,242,234,.78)}
.eyebrow{display:flex;align-items:center;gap:14px;font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.eyebrow b{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:0;color:var(--gold)}
.eyebrow span{width:42px;height:1px;background:var(--gold)}
.eyebrow--light{color:var(--gold-light)}
.eyebrow--center{justify-content:center}
.dropcap::first-letter{font-family:var(--serif);float:left;font-size:72px;line-height:.8;padding:8px 10px 0 0;color:var(--gold)}
.signature{font-family:var(--serif);font-style:italic;font-size:28px;color:var(--gold);margin-top:28px}

/* ---------- кнопки ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:17px 30px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;overflow:hidden;transition:color .4s var(--ease),border-color .4s;isolation:isolate;white-space:nowrap}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn--gold{background:var(--gold);color:#fff}.btn--gold::before{background:var(--green-deep)}
.btn--green{background:var(--green);color:#fff}.btn--green::before{background:var(--gold)}
.btn--light{border:1px solid rgba(255,255,255,.7);color:#fff}.btn--light::before{background:#fff}.btn--light:hover{color:var(--green)}
.btn--line{border:1px solid var(--gold);color:#fff}.btn--line::before{background:var(--gold)}
.btn--dark-line{border:1px solid var(--green);color:var(--green)}.btn--dark-line::before{background:var(--green)}.btn--dark-line:hover{color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}

/* ---------- заставка ---------- */
.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;pointer-events:none}
.intro__curtain{position:absolute;top:0;bottom:0;width:50.5%;background:var(--green-deep);transition:transform 1.3s var(--ease-in-out)}
.intro__curtain--l{left:0}.intro__curtain--r{right:0}
.intro__curtain::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(transparent,var(--gold),transparent);opacity:.6}
.intro__curtain--l::after{right:0}.intro__curtain--r::after{left:0}
.intro__center{position:relative;text-align:center;transition:opacity .6s,transform 1s var(--ease)}
.intro__mono{width:150px;height:auto;overflow:visible}
.intro__mono .draw{fill:none;stroke:var(--gold);stroke-width:2;stroke-linejoin:round;stroke-dasharray:600;stroke-dashoffset:600;animation:draw 1.6s var(--ease) forwards}
.intro__mono .intro__ring{stroke-width:1.2;animation-delay:.1s}
.intro__mono .intro__ring--inner{stroke-width:.8;opacity:.6;animation-delay:.35s}
.intro__letter{font-family:var(--serif);font-size:110px;font-weight:500;fill:transparent;stroke:var(--gold);stroke-width:1;stroke-dasharray:500;stroke-dashoffset:500;animation:draw 1.8s .5s var(--ease) forwards,fillGold .8s 1.6s forwards}
.intro__word{font-family:var(--serif);font-size:30px;letter-spacing:.42em;color:var(--milk);margin-top:22px;padding-left:.42em;opacity:0;animation:fadeUp .9s 1.4s var(--ease) forwards}
.intro__sub{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--gold);opacity:0;animation:fadeUp .9s 1.6s var(--ease) forwards}
body.intro-open .intro__center{opacity:0;transform:scale(.94)}
body.intro-open .intro__curtain--l{transform:translateX(-101%)}
body.intro-open .intro__curtain--r{transform:translateX(101%)}
body.intro-done .intro{display:none}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fillGold{to{fill:var(--gold)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- шапка ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:36px;padding:22px 48px;color:#fff;transition:background .5s,padding .5s,box-shadow .5s}
.header.is-scrolled{background:rgba(20,39,31,.94);backdrop-filter:blur(10px);padding:12px 48px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.logo{display:flex;align-items:center;gap:12px}
.logo__crown{width:38px;height:24px;color:var(--gold)}
.logo__text{display:flex;flex-direction:column;line-height:1.05}
.logo__text b{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:.16em}
.logo__text i{font-family:var(--serif);font-size:14px;color:var(--gold-light)}
.nav{display:flex;gap:34px;margin-left:auto}
.nav a{position:relative;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__phone-mobile{display:none}
.header__phone{display:flex;flex-direction:column;font-size:14px;font-weight:500;line-height:1.3}
.header__phone small{font-size:11px;color:var(--gold-light);font-weight:400}
.header__btn{padding:13px 22px}
.burger{display:none;background:none;border:0;width:30px;height:20px;position:relative;cursor:pointer}
.burger span{position:absolute;left:0;right:0;height:1.5px;background:#fff;transition:transform .4s var(--ease),top .4s}
.burger span:first-child{top:4px}.burger span:last-child{top:14px}
body.menu-open .burger span:first-child{top:9px;transform:rotate(45deg)}
body.menu-open .burger span:last-child{top:9px;transform:rotate(-45deg)}

/* ---------- первый экран ---------- */
.hero{position:relative;height:100vh;min-height:680px;display:grid;place-items:center;overflow:hidden;color:#fff;background:var(--green-deep)}
.hero__bg{position:absolute;inset:-6% 0 -6%;}
.hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.12);transition:opacity 1.8s ease,transform 9s linear}
.hero__slide.is-active{opacity:1;transform:scale(1)}
.hero__shade{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%,rgba(20,39,31,.55) 0%,rgba(20,39,31,.78) 60%,rgba(12,24,19,.93) 100%)}
.hero__content{text-shadow:0 2px 24px rgba(10,20,16,.55)}
.hero__arches{position:absolute;inset:0;width:100%;height:100%}
.hero__arches .line{fill:none;stroke:var(--gold);stroke-width:1.2;stroke-dasharray:2200;stroke-dashoffset:2200;transition:stroke-dashoffset 2.6s var(--ease)}
.hero__arches .line--soft{opacity:.45;transition-delay:.25s}
body.intro-open .hero__arches .line{stroke-dashoffset:0}
.hero__content{position:relative;text-align:center;padding:0 20px;margin-top:40px}
.hero__kicker{font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.6vw,34px);color:var(--gold-light)}
.hero__title{font-family:var(--serif);font-weight:500;font-size:clamp(52px,10.5vw,150px);letter-spacing:.06em;line-height:1;margin:6px 0 18px;padding-left:.06em}
.hero__line{display:flex;justify-content:center;align-items:center;gap:18px;font-size:13px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--milk)}
.hero__line i{font-style:normal;color:var(--gold);font-size:10px}
.hero__text{font-family:var(--serif);font-size:clamp(20px,1.9vw,25px);color:rgba(247,242,234,.88);max-width:560px;margin:18px auto 0}
.hero__btns{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:38px}
.hero__dots{position:absolute;left:48px;bottom:48px;display:flex;flex-direction:column;gap:10px}
.hero__dots button{width:8px;height:8px;border-radius:50%;border:1px solid var(--gold);background:transparent;cursor:pointer;transition:background .4s,transform .4s}
.hero__dots button.is-active{background:var(--gold);transform:scale(1.25)}
.hero__scroll{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}
.hero__scroll i{width:1px;height:60px;background:linear-gradient(var(--gold),transparent);animation:scrollLine 2.2s var(--ease-in-out) infinite;transform-origin:top}
@keyframes scrollLine{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.hero__place{position:absolute;right:48px;bottom:44px;font-family:var(--serif);font-style:italic;font-size:16px;color:rgba(247,242,234,.65);writing-mode:vertical-rl;transform:rotate(180deg)}

/* ---------- бегущая строка ---------- */
.ticker{background:var(--green-deep);border-top:1px solid rgba(176,141,87,.4);border-bottom:1px solid rgba(176,141,87,.4);overflow:hidden;padding:20px 0}
.ticker__track{display:flex;align-items:center;gap:34px;width:max-content;animation:ticker 38s linear infinite}
.ticker span{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--gold-light);white-space:nowrap}
.ticker i{font-style:normal;color:var(--gold);font-size:13px}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ---------- декор светлых блоков ---------- */
.about,.rooms,.banquets,.booking,.contacts{position:relative;overflow:hidden;isolation:isolate}
/* лёгкая фактура бумаги */
.about::before,.rooms::before,.banquets::before,.booking::before,.contacts::before{content:"";position:absolute;inset:0;z-index:-2;opacity:.5;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .3 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* тонкая золотая рамка-«паспарту» по краю блока */
.about::after,.rooms::after,.banquets::after,.booking::after,.contacts::after{content:"";position:absolute;inset:22px;z-index:-1;border:1px solid rgba(176,141,87,.22);pointer-events:none}
.deco{position:absolute;inset:0;z-index:-1;pointer-events:none}
.deco__num{position:absolute;top:60px;font-family:var(--serif);font-weight:500;font-size:clamp(220px,26vw,380px);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(176,141,87,.26)}
.deco__arch{position:absolute;bottom:-40px;width:clamp(200px,22vw,320px);fill:none;stroke:rgba(176,141,87,.28);stroke-width:1}
.deco__num{right:3%}
.deco__arch{left:3%}
.about .deco__num,.banquets .deco__num,.contacts .deco__num{top:auto;bottom:40px}
.ornament{position:absolute;top:22px;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;padding:0 14px;background:inherit}
.rooms .ornament,.booking .ornament{background:var(--beige)}
.about .ornament,.banquets .ornament,.contacts .ornament{background:var(--milk)}
.ornament i{width:46px;height:1px;background:var(--gold)}
.ornament b{width:9px;height:9px;border:1px solid var(--gold);transform:rotate(45deg)}
.facts__icon{width:36px;height:36px;color:var(--green);display:block}

/* ---------- арки (общие) ---------- */
.arch{position:relative;overflow:hidden;border-radius:999px 999px 0 0;background:var(--beige)}
.arch img{transform:scale(1.18);transition:transform 1.8s var(--ease)}
.frame-arch{position:absolute;border:1px solid var(--gold);border-radius:999px 999px 0 0}

/* ---------- о доме ---------- */
.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.facts{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px;border-top:1px solid var(--line);padding-top:28px}
.facts b{display:block;font-family:var(--serif);font-weight:500;font-size:36px;line-height:1;color:var(--green)}
.facts span{display:block;font-size:12px;color:var(--grey);margin-top:8px;line-height:1.4}
.about__media{position:relative;height:660px}
.about__frame{left:21%;top:0;width:66%;height:94%}
.about__main{position:absolute;left:15%;top:4%;width:66%;height:94%}
.about__small{position:absolute;left:0;bottom:-4%;width:36%;height:44%;border:8px solid var(--milk);box-shadow:0 30px 60px rgba(31,58,48,.18)}
.badge{position:absolute;right:0;bottom:6%;background:var(--green);color:var(--milk);padding:18px 26px;text-align:center;box-shadow:0 20px 40px rgba(31,58,48,.25)}
.badge b{display:block;font-family:var(--serif);font-weight:500;font-size:30px;color:var(--gold-light);line-height:1}
.badge span{font-size:11px;letter-spacing:.08em}

/* ---------- история ---------- */
.heritage{position:relative;background:var(--green-deep);color:var(--milk);padding:150px 0;overflow:hidden;text-align:center}
.heritage__year{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-weight:500;font-size:clamp(180px,30vw,420px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(176,141,87,.28);white-space:nowrap;pointer-events:none}
.heritage__inner{position:relative;max-width:860px}
.heritage__crown{width:76px;height:46px;color:var(--gold);margin:0 auto 26px}
.heritage__quote{font-family:var(--serif);font-size:clamp(30px,3.6vw,48px);line-height:1.25;color:#fff}
.heritage__note{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--gold-light);margin:26px auto 0;max-width:620px}
.draw-line{display:block;width:160px;height:1px;background:var(--gold);margin:44px auto 0;transform:scaleX(0);transition:transform 1.6s .4s var(--ease)}
.draw-line.is-in{transform:scaleX(1)}

/* ---------- номера ---------- */
.section-head{margin-bottom:64px}
.section-head--center{text-align:center}
.section-head--center .lead{margin:0 auto}
.rooms{background:var(--beige)}
.rooms__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px}
.room{background:var(--milk);padding:22px 22px 0;transition:box-shadow .5s;transform-style:preserve-3d}
.room:hover{box-shadow:0 30px 60px rgba(31,58,48,.14)}
.room .arch{height:340px;border-radius:260px 260px 0 0}
.room:hover .arch img{transform:scale(1.06)}
.room__body{padding:28px 12px 30px}
.room__tag{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.room h3{font-family:var(--serif);font-weight:500;font-size:38px;margin:6px 0 8px}
.room p{font-size:15px;color:var(--grey)}
.room__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.price{font-family:var(--serif);font-size:32px;font-weight:500;color:var(--green);line-height:1}
.price small{display:block;font-family:var(--sans);font-size:11px;color:var(--grey);margin-top:4px}

/* ---------- ресторан ---------- */
.restaurant__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}
.gallery-frame{position:relative;padding:18px;background:linear-gradient(135deg,#8f6f3f,#D9B880 30%,#9b7a45 55%,#E8D6B0 75%,#8f6f3f);box-shadow:0 40px 80px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.25)}
.gallery-frame__inner{height:620px;overflow:hidden;box-shadow:inset 0 0 0 6px #14271F}
.gallery-frame__inner img{transform:scale(1.08);transition:transform 2s var(--ease)}
.gallery-frame:hover .gallery-frame__inner img{transform:scale(1.14)}
.museum-label{position:absolute;right:-30px;bottom:-34px;background:var(--milk);color:var(--ink);padding:14px 20px;font-size:12px;max-width:270px;line-height:1.5;box-shadow:0 14px 30px rgba(0,0,0,.25)}
.museum-label b{display:block;font-family:var(--serif);font-size:20px;font-weight:600}
.menu-card{margin-top:36px;border:1px solid rgba(176,141,87,.5);padding:28px 32px;position:relative}
.menu-card::before{content:"";position:absolute;inset:6px;border:1px solid rgba(176,141,87,.22);pointer-events:none}
.menu-card__title{font-family:var(--serif);font-style:italic;font-size:24px;color:var(--gold-light);margin-bottom:12px}
.menu-card ul{list-style:none}
.menu-card li{display:flex;align-items:baseline;gap:10px;padding:10px 0;font-size:15px}
.menu-card li i{flex:1;border-bottom:1px dotted rgba(217,184,128,.5);transform:translateY(-4px)}
.menu-card li b{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--gold-light);white-space:nowrap}
.seasonal{margin-top:120px}
.seasonal__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:54px;color:#fff}
.seasonal__head p{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--gold-light)}
.seasonal__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:center}
.dish__ring{position:relative;width:min(280px,100%);aspect-ratio:1;margin:0 auto 26px;border-radius:50%;padding:12px}
.dish__ring::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid var(--gold);border-left-color:transparent;border-bottom-color:rgba(176,141,87,.35);transition:transform 1.4s var(--ease)}
.dish:hover .dish__ring::before{transform:rotate(200deg)}
.dish__ring img{border-radius:50%;transition:transform 1s var(--ease)}
.dish:hover .dish__ring img{transform:scale(1.05) rotate(-3deg)}
.dish h4{font-family:var(--serif);font-weight:500;font-size:26px;color:#fff;line-height:1.2}
.dish p{font-size:14px;color:rgba(247,242,234,.7);margin-top:8px}

/* ---------- банкеты ---------- */
.banquets__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:80px;align-items:center}
.ticks{list-style:none;margin-top:26px}
.ticks li{position:relative;padding:8px 0 8px 30px;font-size:15px;color:var(--ink)}
.ticks li::before{content:"✦";position:absolute;left:0;top:8px;color:var(--gold);font-size:12px}
.banquets__arches{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:end;height:560px}
.banquets__arches .arch{height:84%}
.banquets__arches .arch--tall{height:100%}

/* ---------- бронирование ---------- */
.booking__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.messenger{display:flex;flex-direction:column;align-items:center;gap:12px;padding:70px 30px 40px;background:var(--milk);border:1px solid rgba(176,141,87,.5);border-radius:999px 999px 0 0;text-align:center;transition:box-shadow .5s,border-color .5s}
.messenger:hover{box-shadow:0 30px 60px rgba(31,58,48,.14);border-color:var(--gold)}
.messenger__icon{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#fff;font-weight:600;font-size:18px;transition:transform .6s var(--ease)}
.messenger:hover .messenger__icon{transform:translateY(-6px) scale(1.06)}
.messenger b{font-family:var(--serif);font-weight:500;font-size:34px}
.messenger small{font-size:14px;color:var(--grey)}
.messenger em{font-style:normal;margin-top:10px;padding:13px 34px;border:1px solid var(--green);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);transition:background .4s,color .4s}
.messenger:hover em{background:var(--green);color:#fff}
.warning{display:flex;align-items:center;gap:20px;max-width:760px;margin:48px auto 0;border:1px solid var(--gold);padding:22px 30px;font-size:15px}
.warning b{font-family:var(--serif);font-size:42px;color:var(--gold);line-height:1}

/* ---------- контакты ---------- */
.contacts__grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.contacts__list{display:grid;gap:22px;margin-top:10px}
.contacts__list dt{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.contacts__list dd{font-size:17px;margin-top:4px}
.contacts__list a{border-bottom:1px solid transparent;transition:border-color .3s}
.contacts__list a:hover{border-color:var(--gold)}
.map{position:relative;height:540px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#CBD5C5;border:1px solid var(--gold);border-radius:999px 999px 0 0;overflow:hidden;color:var(--green)}
.map__lines{position:absolute;inset:0;width:100%;height:100%}
.map__lines path{fill:none;stroke:rgba(255,255,255,.75);stroke-width:7}
.map__pin{position:relative;width:20px;height:20px;border-radius:50%;background:var(--green)}
.map__pin::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid var(--green);animation:pulse 2.4s var(--ease) infinite}
@keyframes pulse{from{transform:scale(.4);opacity:1}to{transform:scale(1.8);opacity:0}}
.map__label{position:relative;font-family:var(--serif);font-size:30px;font-weight:500}
.map small{position:relative;font-size:14px;color:var(--grey)}

/* ---------- подвал ---------- */
.footer{position:relative;background:var(--green-deep);color:var(--milk);text-align:center;padding:90px 20px 40px;overflow:hidden}
.footer__arch{position:absolute;left:50%;top:30px;width:300px;transform:translateX(-50%);fill:none;stroke:rgba(176,141,87,.45);stroke-width:1}
.footer__crown{position:relative;width:56px;height:34px;color:var(--gold)}
.footer__name{position:relative;font-family:var(--serif);font-size:38px;letter-spacing:.2em;margin-top:10px}
.footer__sub{position:relative;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--gold-light)}
.footer__nav{position:relative;display:flex;justify-content:center;flex-wrap:wrap;gap:30px;margin:34px 0 18px;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.footer__nav a:hover,.footer__contacts a:hover{color:var(--gold-light)}
.footer__contacts{position:relative;font-size:14px}
.footer__copy{position:relative;font-size:12px;color:rgba(247,242,234,.55);margin-top:30px}

/* ---------- печать ---------- */
.seal{position:fixed;right:28px;bottom:28px;z-index:40;width:124px;height:124px;border-radius:50%;background:var(--green);box-shadow:0 14px 36px rgba(0,0,0,.28);display:grid;place-items:center;opacity:0;transform:scale(.6);transition:opacity .6s,transform .8s var(--ease)}
body.intro-done .seal{opacity:1;transform:none}
.seal:hover{transform:scale(1.06)}
.seal__ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite}
.seal:hover .seal__ring{animation-duration:6s}
.seal__ring text{font-family:var(--sans);font-size:17px;font-weight:600;fill:var(--gold-light)}
.seal__core{position:relative;width:62px;height:62px;border-radius:50%;border:1px solid var(--gold);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gold-light)}
.seal__core svg{width:24px;height:14px;color:var(--gold)}
.seal__core b{font-family:var(--serif);font-weight:500;font-size:26px;line-height:1}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== анимации появления ===== */
.reveal-up{opacity:0;transform:translateY(40px);transition:opacity 1.1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.reveal-up.is-in{opacity:1;transform:none}
.hero .reveal-up{transition-delay:calc(var(--d,0s) + 1.9s)}
body:not(.intro-open) .hero .reveal-up{opacity:0;transform:translateY(40px)}
.arch-reveal{clip-path:inset(100% 0 0 0 round 999px 999px 0 0);transition:clip-path 1.5s var(--ease-in-out) var(--d,0s)}
.arch-reveal.is-in{clip-path:inset(0 0 0 0 round 999px 999px 0 0)}
.arch-reveal.is-in img{transform:scale(1)}
.split .ch,.split-words .w{display:inline-block;overflow:hidden;vertical-align:top}
.split .ch>span,.split-words .w>span{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease)}
.split.is-in .ch>span,.split-words.is-in .w>span{transform:none}
.hero__title.is-in .ch>span{transition-duration:1.3s}

/* ===== планшет и телефон ===== */
.logo,.header__btn,.header__phone{flex-shrink:0}
.header__phone{white-space:nowrap}
@media (max-width:1280px){.header__phone{display:none}}
@media (max-width:1100px){
  .header{gap:24px;padding:18px 28px}.header.is-scrolled{padding:10px 28px}
  .nav{gap:24px}
  .about__grid,.restaurant__grid,.banquets__grid,.contacts__grid{gap:50px}
}
@media (max-width:560px){
  .section{padding:96px 0}
  .container{width:calc(100% - 40px)}
  .burger{display:block;margin-left:auto}
  .header__btn{display:none}
  .nav{position:fixed;inset:0;z-index:-1;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:var(--green-deep);opacity:0;pointer-events:none;transition:opacity .5s}
  .nav a{font-family:var(--serif);font-size:34px;letter-spacing:.06em;text-transform:none}
  .nav__phone-mobile{display:block;font-size:20px!important;color:var(--gold-light)}
  body.menu-open .nav{opacity:1;pointer-events:auto}
  .about__grid,.restaurant__grid,.banquets__grid,.contacts__grid{grid-template-columns:1fr}
  .about__media{height:520px;max-width:460px;width:100%;margin:0 auto}
  .facts{grid-template-columns:repeat(2,1fr)}
  .rooms__grid,.booking__grid{grid-template-columns:1fr}
  .seasonal__grid{grid-template-columns:1fr;gap:60px}
  .seasonal__head{flex-direction:column;align-items:flex-start}
  .gallery-frame__inner{height:460px}
  .museum-label{right:10px}
  .banquets__arches{height:420px}
  .map{height:420px}
  .hero__dots,.hero__place{display:none}
  .about::after,.rooms::after,.banquets::after,.booking::after,.contacts::after{display:none}
  .ornament{top:0;transform:translate(-50%,0);padding-top:18px}
}
@media (max-width:520px){
  .header{padding:14px 18px}.header.is-scrolled{padding:10px 18px}
  .logo__text b{font-size:20px}
  .hero__title{font-size:11.2vw;letter-spacing:.03em;padding-left:.03em}
  .hero__line{gap:10px;font-size:10px;letter-spacing:.18em}
  .hero__btns .btn{width:100%}
  .room{padding:14px 14px 0}.room .arch{height:260px}
  .room__foot .btn{width:100%}
  .about__media{height:440px}
  .banquets__arches{height:320px;gap:10px}
  .menu-card{padding:20px 18px}
  .menu-card li{font-size:14px}
  .warning{flex-direction:column;text-align:center;padding:20px}
  .seal{width:92px;height:92px;right:16px;bottom:16px}
  .seal__core{width:46px;height:46px}.seal__core b{font-size:20px}.seal__core svg{width:18px;height:11px}
  .seal__ring text{font-size:15.6px}
  .heritage{padding:110px 0}
  .deco__num{top:40px;font-size:200px}
  .deco__arch{width:170px}
}

/* бережный режим: без движения */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ===================== ПРАВКИ 2 ===================== */

/* --- шапка как на фото Льва --- */
.header{gap:40px;padding:24px 56px}
.header.is-scrolled{padding:12px 56px}
.logo__text b{font-size:28px;letter-spacing:.14em}
.logo__text i{font-size:16px;padding-left:2px}
.nav{gap:40px}
.nav a{font-size:13px;letter-spacing:.14em}
.header__phone{display:flex;font-size:16px;font-weight:600;letter-spacing:.01em}
.header__phone small{font-size:12px;font-weight:400;color:rgba(247,242,234,.82);margin-top:2px}
.header__btn{padding:15px 28px;color:var(--gold-light);border-color:var(--gold);font-size:13px}
.header__btn:hover{color:#fff}
@media (max-width:1280px){.header__phone{display:flex}.header{gap:28px;padding:20px 32px}.header.is-scrolled{padding:10px 32px}.nav{gap:26px}}
@media (max-width:1120px){.header__phone{display:none}}

/* --- узор как на обоях номеров: «луковичная» решётка с ромбами, видна по бокам блоков --- */
.deco::before{content:"";position:absolute;inset:0;opacity:.9;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='108' viewBox='0 0 72 108'%3E%3Cg fill='none' stroke='%23B08D57' stroke-opacity='.42' stroke-width='.9'%3E%3Cpath d='M0 0 C0 27 36 27 36 54 C36 81 0 81 0 108'/%3E%3Cpath d='M72 0 C72 27 36 27 36 54 C36 81 72 81 72 108'/%3E%3Cpath d='M36 22 C30 30 30 38 36 44 C42 38 42 30 36 22Z'/%3E%3Cpath d='M0 76 C-6 84 -6 92 0 98 C6 92 6 84 0 76Z M72 76 C66 84 66 92 72 98 C78 92 78 84 72 76Z'/%3E%3C/g%3E%3Cg fill='%23B08D57' fill-opacity='.55'%3E%3Cpath d='M36 50 l4 4 -4 4 -4 -4z'/%3E%3Cpath d='M0 -4 l4 4 -4 4 -4 -4z M72 -4 l4 4 -4 4 -4 -4z M0 104 l4 4 -4 4 -4 -4z M72 104 l4 4 -4 4 -4 -4z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:72px 108px;
  -webkit-mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.85) 7%,transparent 24%,transparent 76%,rgba(0,0,0,.85) 93%,#000 100%);
          mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.85) 7%,transparent 24%,transparent 76%,rgba(0,0,0,.85) 93%,#000 100%)}
/* золотые «пилястры» по краям узора */
.deco::after{content:"";position:absolute;top:22px;bottom:22px;left:13.5%;right:13.5%;border-left:1px solid rgba(176,141,87,.35);border-right:1px solid rgba(176,141,87,.35);pointer-events:none}
.deco__num{display:none}
.deco__arch{display:none}
@media (max-width:560px){
  .deco::before{-webkit-mask-image:linear-gradient(90deg,#000 0,transparent 16%,transparent 84%,#000 100%);mask-image:linear-gradient(90deg,#000 0,transparent 16%,transparent 84%,#000 100%);opacity:.6}
  .deco::after{display:none}
}

/* --- значки фактов: единый стиль, тонкая золотая линия в кружке --- */
.facts{grid-template-columns:repeat(4,1fr);gap:12px;text-align:center}
.facts li{display:flex;flex-direction:column;align-items:center;gap:12px}
.facts__circle{width:72px;height:72px;border-radius:50%;border:1px solid rgba(176,141,87,.6);display:grid;place-items:center;transition:background .5s,transform .6s var(--ease)}
.facts li:hover .facts__circle{background:rgba(176,141,87,.12);transform:translateY(-4px)}
.facts__circle svg{width:36px;height:36px;fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.facts__label{font-size:12px;line-height:1.45;color:var(--ink);letter-spacing:.02em}

/* --- слайдер номеров --- */
.rslider{display:grid;grid-template-columns:1.05fr 1fr;gap:90px;align-items:center}
.rslider__media{position:relative;height:620px;margin-left:24px}
.rslider__frame{position:absolute;left:-24px;top:-24px;right:24px;bottom:24px;border:1px solid var(--gold);border-radius:999px 999px 0 0}
.rslider__imgs{position:absolute;inset:0}
.rslider__img{position:absolute;inset:0;margin:0;overflow:hidden;border-radius:999px 999px 0 0;clip-path:inset(100% 0 0 0 round 999px 999px 0 0);transition:clip-path 1.25s var(--ease-in-out);z-index:1}
.rslider__img img{transform:scale(1.18);transition:transform 2.6s var(--ease)}
.rslider__img.is-active{clip-path:inset(0 0 0 0 round 999px 999px 0 0);z-index:3}
.rslider__img.is-active img{transform:scale(1)}
.rslider__img.is-prev{clip-path:inset(0 0 0 0 round 999px 999px 0 0);z-index:2}
.rslider__count{position:absolute;right:-18px;bottom:40px;z-index:5;background:var(--green);color:var(--milk);padding:14px 22px;font-family:var(--serif);font-size:20px;letter-spacing:.06em}
.rslider__count b{font-weight:500;font-size:30px;color:var(--gold-light)}
.rslider__texts{display:grid}
.rslider__text{grid-area:1/1;opacity:0;transform:translateY(26px);transition:opacity .6s,transform .8s var(--ease);pointer-events:none}
.rslider__text.is-active{opacity:1;transform:none;pointer-events:auto;transition-delay:.35s}
.rslider__name{font-family:var(--serif);font-weight:500;font-size:clamp(48px,5.4vw,76px);line-height:1;margin:10px 0 18px}
.rslider__desc{font-size:16px;color:var(--grey);line-height:1.75;max-width:460px}
.rslider__am{list-style:none;display:flex;flex-wrap:wrap;gap:10px 26px;margin:24px 0 30px}
.rslider__am li{position:relative;padding-left:18px;font-size:14px;color:var(--ink)}
.rslider__am li::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;border:1px solid var(--gold);transform:translateY(-50%) rotate(45deg)}
.rslider__foot{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line)}
.rslider__nav{display:flex;align-items:center;gap:22px;margin-top:46px}
.rslider__arrow{width:58px;height:58px;flex-shrink:0;border-radius:50%;border:1px solid var(--gold);background:transparent;display:grid;place-items:center;cursor:pointer;transition:background .4s,transform .4s var(--ease)}
.rslider__arrow svg{width:24px;height:10px;fill:none;stroke:var(--green);stroke-width:1.4}
.rslider__arrow:hover{background:var(--gold);transform:scale(1.05)}
.rslider__arrow:hover svg{stroke:#fff}
.rslider__tabs{display:flex;flex-wrap:wrap;gap:6px 22px;flex:1;justify-content:center}
.rslider__tabs button{background:none;border:0;cursor:pointer;font-family:var(--serif);font-size:21px;color:var(--grey);position:relative;padding:4px 0;transition:color .4s}
.rslider__tabs button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .5s var(--ease)}
.rslider__tabs button.is-active{color:var(--green)}
.rslider__tabs button.is-active::after{transform:scaleX(1)}
.rslider__progress{height:1px;background:var(--line);margin-top:22px;overflow:hidden}
.rslider__progress i{display:block;height:100%;width:0;background:var(--gold)}
.rslider__progress i.run{width:100%;transition:width 7s linear}
@media (max-width:560px){
  .rslider{grid-template-columns:1fr;gap:56px}
  .rslider__media{height:440px;max-width:460px;width:calc(100% - 24px);margin:24px auto 0}
  .rslider__count{right:-10px;bottom:24px}
}
@media (max-width:520px){
  .rslider__media{height:360px}
  .rslider__nav{gap:12px}
  .rslider__arrow{width:46px;height:46px}
  .rslider__tabs{gap:4px 14px}.rslider__tabs button{font-size:18px}
  .rslider__foot .btn{width:100%}
  .facts{grid-template-columns:repeat(2,1fr);gap:26px 12px}
}
.facts .facts__circle{display:grid;margin-top:0}
.facts .facts__label{margin-top:0;color:var(--ink)}

/* ===================== ПРАВКИ 3: узор на весь блок ===================== */
/* узор теперь идёт по всему блоку: по краям ярче, под текстом мягче — центр не пустой */
.deco::before{opacity:1;
  -webkit-mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.75) 12%,rgba(0,0,0,.38) 32%,rgba(0,0,0,.38) 68%,rgba(0,0,0,.75) 88%,#000 100%);
          mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.75) 12%,rgba(0,0,0,.38) 32%,rgba(0,0,0,.38) 68%,rgba(0,0,0,.75) 88%,#000 100%)}
/* «пилястры» убираем — они отделяли пустую середину */
.deco::after{display:none}
@media (max-width:560px){
  .deco::before{opacity:.75;-webkit-mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.4) 25%,rgba(0,0,0,.4) 75%,#000 100%);mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.4) 25%,rgba(0,0,0,.4) 75%,#000 100%)}
}

/* ===================== ПРАВКИ 4: гравюры + свет из окна (Знакомство, Номера, Банкеты) ===================== */
/* старый узор в этих блоках выключен (не удалён) */
.about .deco::before,.rooms .deco::before,.banquets .deco::before{display:none}
.rooms{background:var(--milk)}
.rooms .ornament{background:var(--milk)}

/* свет и тень: тёплое пятно солнца и размытая тень оконной рамы */
.light{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:radial-gradient(ellipse 60% 70% at 12% 8%,rgba(255,238,205,.95),rgba(255,238,205,0) 70%),
             radial-gradient(ellipse 70% 60% at 95% 100%,rgba(120,92,58,.10),rgba(120,92,58,0) 70%)}
.light::after{content:"";position:absolute;left:-6%;top:-12%;width:58%;height:95%;
  transform:rotate(-8deg) skewX(-24deg);filter:blur(18px);opacity:.75;mix-blend-mode:screen;
  background:
    linear-gradient(90deg,transparent 0 48.5%,rgba(150,120,80,.9) 48.5% 51.5%,transparent 51.5%),
    linear-gradient(0deg,transparent 0 48.5%,rgba(150,120,80,.9) 48.5% 51.5%,transparent 51.5%),
    linear-gradient(135deg,rgba(255,244,222,.85),rgba(255,244,222,.25));
  -webkit-mask-image:radial-gradient(ellipse at 40% 40%,#000 35%,transparent 72%);mask-image:radial-gradient(ellipse at 40% 40%,#000 35%,transparent 72%)}
.light--right{transform:scaleX(-1)}

/* гравюры: проявляются «пером» слева направо */
.grav{position:absolute;z-index:-1;pointer-events:none;
  -webkit-mask-image:linear-gradient(100deg,#000 38%,transparent 62%);mask-image:linear-gradient(100deg,#000 38%,transparent 62%);
  -webkit-mask-size:260% 100%;mask-size:260% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:100% 0;mask-position:100% 0;transition:-webkit-mask-position 3.2s cubic-bezier(.45,.05,.3,1),mask-position 3.2s cubic-bezier(.45,.05,.3,1)}
.grav.is-in{-webkit-mask-position:0 0;mask-position:0 0}
.grav img{width:100%;height:auto;display:block}
.grav--ship{right:-7%;top:20px;width:min(860px,58vw);opacity:.30}
.grav--galleys{left:50%;top:0;width:min(1500px,110vw);transform:translateX(-50%);opacity:.20}
.grav--galleys img{-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 92%);mask-image:linear-gradient(180deg,#000 30%,transparent 92%)}
.grav--fireworks{left:50%;top:50%;width:min(1500px,112vw);transform:translate(-50%,-50%);opacity:.16}
@media (prefers-reduced-motion:reduce){.grav{-webkit-mask-position:0 0;mask-position:0 0;transition:none}}
@media (max-width:560px){
  .grav--ship{right:-30%;top:10px;width:110vw;opacity:.16}
  .grav--galleys{width:180vw;opacity:.16}
  .grav--fireworks{width:220vw;top:30%;opacity:.12}
  .light::after{width:100%;height:60%}
}
/* ПРАВКИ 4 — подстройка: тень рамы мягче, гравюры не мешают тексту */
.light::after{opacity:.4;filter:blur(24px)}
.grav--galleys{opacity:.14}
.grav--fireworks{opacity:.13}
.grav--ship{right:auto;left:22%;top:-10px;width:min(820px,56vw);opacity:.22}
@media (max-width:560px){.grav--ship{left:auto;right:-30%;width:110vw;opacity:.14}}

/* ===================== ПРАВКИ 5: карта Дона 1703 (блок «1709», Бронирование, Контакты) ===================== */
.booking .deco::before,.contacts .deco::before{display:none}
.booking{background:var(--beige)}
.grav--rose{left:50%;top:54%;width:min(980px,80vw);transform:translate(-50%,-50%);opacity:.20}
.grav--river{left:40%;top:40px;width:min(420px,30vw);opacity:.22}
/* блок «1709»: золотая карта на зелёном, по центру под текстом бледнее */
.heritage{padding:170px 0 120px}
.heritage .grav{z-index:0}
.heritage__inner{z-index:1}
.heritage__year{-webkit-text-stroke:1px rgba(176,141,87,.16);z-index:0}
.grav--don{left:50%;top:50%;width:min(1250px,96vw);transform:translate(-50%,-50%);opacity:.55}
.grav--don img{-webkit-mask-image:radial-gradient(ellipse 46% 40% at 50% 50%,rgba(0,0,0,.25),#000 100%);mask-image:radial-gradient(ellipse 46% 40% at 50% 50%,rgba(0,0,0,.25),#000 100%)}
.heritage__caption{margin:70px auto 0;font-size:12px;letter-spacing:.06em;line-height:1.7;color:rgba(217,184,128,.75);max-width:520px}
@media (max-width:560px){
  .grav--rose{width:150vw;opacity:.14}
  .grav--river{left:auto;right:-10%;width:60vw;opacity:.14}
  .grav--don{width:200vw;opacity:.45}
  .heritage{padding:120px 0 90px}
}
/* ПРАВКИ 5 — подстройка читаемости */
.grav--don{opacity:.42}
.grav--don img{-webkit-mask-image:radial-gradient(ellipse 42% 36% at 50% 46%,rgba(0,0,0,.12),#000 100%);mask-image:radial-gradient(ellipse 42% 36% at 50% 46%,rgba(0,0,0,.12),#000 100%)}
.heritage__caption{color:var(--gold-light)}
.grav--rose{top:66%;opacity:.15}

/* ===================== ПРАВКИ 6: «Осеннее меню» — отдельный светлый блок, «Банкеты» — тёмные ===================== */
.season{position:relative;overflow:hidden;isolation:isolate;background:var(--milk)}
.season .seasonal{margin-top:0}
.season .seasonal__head{color:var(--ink)}
.season .seasonal__head p{color:var(--gold)}
.season .dish h4{color:var(--ink)}
.season .dish p{color:var(--grey)}
.grav--autumn{top:50%;width:min(360px,24vw);opacity:.2}
.grav--autumn-l{left:-2%;transform:translateY(-50%) scaleX(-1)}
.grav--autumn-r{right:-2%;transform:translateY(-50%)}
/* «Банкеты» на тёмно-зелёном: светлый текст, золотой фейерверк */
.banquets.section--dark{background:var(--green)}
.banquets.section--dark::before,.banquets.section--dark .light{display:none}
.banquets.section--dark::after{border-color:rgba(217,184,128,.22)}
.banquets.section--dark .ornament{background:var(--green)}
.banquets.section--dark .eyebrow{color:var(--gold-light)}
.banquets.section--dark .h2{color:#fff}
.banquets.section--dark .lead{color:rgba(247,242,234,.78)}
.banquets.section--dark .ticks li{color:rgba(247,242,234,.88)}
.banquets.section--dark .btn--green{background:var(--gold)}
.banquets.section--dark .btn--green::before{background:var(--green-deep)}
.banquets.section--dark .btn--dark-line{border-color:rgba(255,255,255,.7);color:#fff}
.banquets.section--dark .btn--dark-line::before{background:#fff}
.banquets.section--dark .btn--dark-line:hover{color:var(--green)}
.banquets.section--dark .grav--fireworks{opacity:.16}
@media (max-width:560px){.grav--autumn{width:44vw;opacity:.12;top:26%}.grav--autumn-l{left:-18%}.grav--autumn-r{right:-18%}}
.grav--autumn{top:60%;width:min(300px,20vw);opacity:.17}
.grav--autumn-l{left:-4%}.grav--autumn-r{right:-4%}
@media (max-width:560px){.grav--autumn{width:44vw;opacity:.1;top:30%}.grav--autumn-l{left:-20%}.grav--autumn-r{right:-20%}}
.season .seasonal__head .eyebrow{font-family:var(--sans,inherit);font-style:normal;font-size:12px;font-weight:600;color:var(--gold);margin-bottom:0}
.season .seasonal__head .h2{margin-bottom:0}

/* ===================== ПРАВКИ 7: один блок = один экран, с мягким «притягиванием» (только компьютер) ===================== */
@media (min-width:561px) and (min-height:600px){
  html{scroll-snap-type:none}   /* жёсткое притягивание выключено — вместо него мягкое дотягивание в script.js */
  .hero{height:calc(100svh - 90px);min-height:0;scroll-snap-align:start}   /* первый экран + бегущая строка = ровно экран */
  main > section:not(.hero){min-height:100svh;display:flex;flex-direction:column;justify-content:center;
    padding:calc(104px + 2vh) 0 4vh;scroll-snap-align:start}
  main > section:not(.hero) > .container{align-self:center}
  footer{scroll-snap-align:end}
  /* крупные элементы подстраиваются под высоту экрана */
  .section-head{margin-bottom:min(64px,4vh)}
  .h2{margin:min(18px,1.6vh) 0 min(26px,2.2vh)}
  .about__media{height:min(660px,64vh)}
  .facts{margin-top:min(48px,3.5vh);padding-top:min(28px,2.5vh)}
  .rslider__media{height:min(620px,52vh)}
  .gallery-frame__inner{height:min(620px,62vh)}
  .menu-card{margin-top:min(36px,2.6vh);padding:min(28px,2.4vh) 32px}
  .menu-card li{padding:min(10px,.8vh) 0}
  .restaurant .lead{margin-bottom:0}
  .messenger{padding:min(70px,5.5vh) 30px min(40px,3.5vh)}
  .warning{margin-top:min(48px,3.5vh)}
  .map{height:min(540px,62vh)}
  .banquets__arches{height:min(560px,62vh)}
  .heritage{padding-bottom:4vh}
}
@media (min-width:561px) and (min-height:600px){
  /* «Номера»: заголовок слева, описание справа — экономим высоту */
  .rooms .section-head{display:grid;grid-template-columns:1fr 1fr;column-gap:60px;align-items:end}
  .rooms .section-head .eyebrow{grid-column:1}
  .rooms .section-head .h2{grid-column:1;margin-bottom:0}
  .rooms .section-head .lead{grid-column:2;grid-row:1 / span 2;align-self:end;margin:0}
  .dish__ring{width:min(280px,34vh)}
}
/* невысокие экраны ноутбуков: всё чуть компактнее, чтобы блок влез целиком */
@media (min-width:561px) and (min-height:600px) and (max-height:820px){
  main > section:not(.hero){padding:calc(92px + 1vh) 0 2.5vh}
  .h2{font-size:clamp(34px,6.4vh,56px)}
  .lead{font-size:15px;line-height:1.55}
  .signature{font-size:20px;margin-top:1.5vh}
  .facts__circle{transform:scale(.85)}
  .menu-card li{padding:.45vh 0;font-size:14px}
  .menu-card li b{font-size:19px}
  .menu-card__title{font-size:20px;margin-bottom:4px}
  .btn-row{margin-top:2.2vh}
  .messenger b{font-size:28px}
  .messenger{gap:8px}
  .warning{padding:14px 24px;font-size:14px}
  .seasonal__head{margin-bottom:3vh}
  .dish h4{font-size:22px}
  .rslider__name{font-size:clamp(34px,6.4vh,56px)}
}
@media (min-width:561px) and (min-height:600px){.gallery-frame__inner{height:min(620px,58vh)}}
@media (min-width:561px) and (min-height:600px){.menu-card li{padding:min(10px,.55vh) 0}.restaurant .btn-row{margin-top:min(36px,2.6vh)}}

/* ===================== ПРАВКИ 10: кружок «Забронировать» не закрывает текст (компьютер) ===================== */
@media (min-width:561px){
  .seal{width:100px;height:100px;right:22px;bottom:22px;transition:opacity .45s,transform .45s}
  .seal__core{width:50px;height:50px}.seal__core b{font-size:21px}
  .seal__ring text{font-size:16.2px}
  body.intro-done .seal.is-away{opacity:0;transform:scale(.85);pointer-events:none}
}
/* ПРАВКИ 10б: кружок исчезает и появляется плавно, без уменьшения — только мягкое растворение */
@media (min-width:561px){
  .seal{transition:opacity 1.2s cubic-bezier(.4,0,.2,1),transform .6s var(--ease)}
  body.intro-done .seal.is-away{opacity:0;transform:none;pointer-events:none}
}

/* ===================== ПРАВКИ 11: фон «Банкетов» — картина «Ассамблея при Петре I» (Хлебовский, 1858) в зелёно-золотых тонах ===================== */
.banquets .painting{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url("img/assembly-duo.jpg") center 40%/cover no-repeat}
.banquets .painting::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(20,39,31,.88) 0%,rgba(20,39,31,.7) 42%,rgba(20,39,31,.35) 70%,rgba(20,39,31,.5) 100%)}
.banquets .grav--fireworks{display:none}
.banquets__caption{position:absolute;left:56px;bottom:30px;font-size:11px;letter-spacing:.06em;color:rgba(217,184,128,.7)}
@media (max-width:560px){.banquets .painting::after{background:rgba(20,39,31,.78)}.banquets__caption{left:16px;bottom:14px}}
/* картину видно лучше: затемнение мягче, сильнее только под текстом */
.banquets .painting{background-position:center 55%}
.banquets .painting::after{background:linear-gradient(90deg,rgba(20,39,31,.8) 0%,rgba(20,39,31,.55) 38%,rgba(20,39,31,.15) 62%,rgba(20,39,31,.3) 100%)}

/* ===================== ПРАВКИ 12: «Банкеты» — снова гравюра-фейерверк, но её нижняя часть (арка, гости, фонтаны) ===================== */
.banquets .painting,.banquets__caption{display:none}
.banquets .grav--fireworks{display:block}
.banquets .grav--fireworks-low{left:50%;top:auto;bottom:0;width:min(1600px,118vw);transform:translateX(-50%);opacity:.2}

/* ===================== ПРАВКИ 13: телефон и планшет — один блок = один экран ===================== */
/* Ничего не удалено: лишнее на телефоне только скрыто (на компьютере всё на месте). */
@media (max-width:560px){
  .ticker{padding:12px 0}.ticker span{font-size:22px}
  .hero{height:calc(100svh - 61px);min-height:0}                  /* первый экран + бегущая строка = экран */
  main > section:not(.hero){min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:84px 0 22px}
  main > section:not(.hero) > .container{align-self:center}
  .h2{font-size:clamp(30px,7.6vw,46px);margin:10px 0 14px}
  .lead{font-size:15px;line-height:1.55}
  .section-head{margin-bottom:18px}
  .btn-row{margin-top:18px;flex-wrap:nowrap;gap:10px}
  .btn-row .btn{flex:1;padding:15px 12px}

  /* Знакомство: одно фото, без бейджа и подписи, значки в одну строку */
  .about__grid{gap:20px}
  .signature,.about__small,.badge,.frame-arch{display:none}
  .about__media{height:clamp(190px,28svh,340px);max-width:min(300px,62vw);margin:0 auto}
  .about__main{left:0;top:0;width:100%;height:100%}
  .facts{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:16px;padding-top:14px}
  .facts li{gap:8px}
  .facts__circle{width:50px;height:50px}.facts__circle svg{width:26px;height:26px}
  .facts .facts__label{font-size:10.5px;line-height:1.35}

  /* 1709 */
  .heritage__quote{font-size:clamp(26px,6.6vw,40px)}
  .heritage__note{font-size:18px;margin-top:16px}
  .heritage__caption{margin-top:30px}

  /* Номера: фото ниже, без описания */
  .rslider{gap:18px}
  .rslider__media{height:clamp(200px,31svh,380px);max-width:min(340px,72vw);margin:14px auto 0}
  .rslider__frame{left:-14px;top:-14px;right:14px;bottom:14px}
  .rslider__count{padding:8px 14px;font-size:16px;bottom:16px}.rslider__count b{font-size:22px}
  .rslider__desc{display:none}
  .rslider__name{font-size:clamp(32px,8vw,48px);margin:4px 0 8px}
  .rslider__am{margin:6px 0 12px;gap:6px 16px}
  .rslider__foot{padding-top:12px;gap:16px}
  .rslider__nav{margin-top:14px;gap:12px}
  .rslider__arrow{width:42px;height:42px}
  .rslider__tabs{gap:2px 14px}.rslider__tabs button{font-size:17px}
  .rslider__progress{margin-top:10px}

  /* Ресторан: картина в раме меньше, меню компактнее */
  .restaurant__grid{gap:20px}
  .gallery-frame{padding:10px;max-width:520px;width:100%;margin:0 auto}
  .gallery-frame__inner{height:clamp(160px,22svh,300px)}
  .museum-label{display:none}
  .menu-card{margin-top:16px;padding:14px 18px}
  .menu-card__title{font-size:19px;margin-bottom:4px}
  .menu-card li{padding:5px 0;font-size:14px}.menu-card li b{font-size:18px}

  /* Осеннее меню: блюда листаются вбок */
  .seasonal__head{margin-bottom:16px;gap:6px}
  .seasonal__head > p{font-size:16px}
  .seasonal__grid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px;margin:0 -20px;padding-left:20px;padding-right:20px}
  .seasonal__grid::-webkit-scrollbar{display:none}
  .seasonal__grid .dish{flex:0 0 min(78%,340px);scroll-snap-align:center}
  .dish__ring{width:min(240px,62vw,34svh);margin-bottom:14px}
  .dish h4{font-size:22px}

  /* Банкеты: арки ниже */
  .banquets__grid{gap:22px}
  .banquets__arches{height:clamp(170px,26svh,340px);gap:10px}

  /* Бронирование: мессенджеры компактными строками */
  .booking__grid{grid-template-columns:1fr;gap:10px;max-width:520px;margin:0 auto}
  .messenger{flex-direction:row;justify-content:flex-start;text-align:left;border-radius:999px;padding:10px 12px 10px 10px;gap:14px}
  .messenger__icon{width:46px;height:46px;flex-shrink:0;margin:0}
  .messenger b{font-size:24px}
  .messenger small{font-size:13px}
  .messenger em{margin:0 0 0 auto;padding:10px 16px;font-size:11px}
  .warning{margin-top:16px;padding:12px 16px;font-size:13px;gap:12px;flex-direction:row;text-align:left}
  .warning b{font-size:30px}

  /* Контакты: карта ниже, список плотнее */
  .contacts__grid{gap:20px}
  .contacts__list{gap:12px}
  .contacts__list dd{font-size:15px;margin-top:2px}
  .map{height:clamp(170px,24svh,320px)}
}
@media (max-width:560px){
  /* на телефоне прячем ещё немного */
  .rooms .section-head .lead,.restaurant .lead,.ticks,.messenger small{display:none}
  .rslider__am{display:none}
  .gallery-frame{display:none}
  .seasonal__head > p{display:none}
}
/* маленькие телефоны (высота до 720 px, например iPhone SE) */
@media (max-width:560px) and (max-height:720px){
  main > section:not(.hero){padding-top:78px;padding-bottom:16px}
  .h2{font-size:28px;margin:8px 0 10px}
  .lead{font-size:14px;line-height:1.5}
  .about__media{height:150px}
  .facts{margin-top:12px;padding-top:10px}
  .facts__circle{width:44px;height:44px}
  .rslider__media{height:170px}
  .rslider__nav{margin-top:10px}
}
@media (max-width:560px){
  .btn-row .btn{white-space:normal;text-align:center;line-height:1.3;letter-spacing:.1em;font-size:11px;padding:14px 10px}
  .rslider__tabs{flex-wrap:nowrap;gap:0 10px}.rslider__tabs button{font-size:15.5px}
}
@media (max-width:560px){.seal{transition:opacity 1.2s cubic-bezier(.4,0,.2,1)}body.intro-done .seal.is-away{opacity:0;pointer-events:none}}
@media (max-width:560px){.map__label{font-size:clamp(18px,5.2vw,26px);text-align:center;padding:0 18px}}

/* ===================== ПРАВКИ 14: телефон — фото не наезжает, блюда столбиком ===================== */
@media (max-width:560px){
  .about__media{margin-top:6px}
  .about__main{transform:none}
  /* осеннее меню: три блюда друг под другом — фото слева, название и описание справа */
  .seasonal__grid{display:grid;grid-template-columns:1fr;gap:16px;overflow:visible;scroll-snap-type:none;margin:0;padding:0}
  .seasonal__grid .dish{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:18px;align-items:center;text-align:left;flex:none}
  .seasonal__grid .dish__ring{grid-row:1 / span 2;width:clamp(100px,27vw,170px);margin:0;padding:7px}
  .seasonal__grid .dish h4{align-self:end;font-size:clamp(19px,5vw,26px)}
  .seasonal__grid .dish p{align-self:start;margin-top:4px;font-size:13.5px;line-height:1.45}
}
@media (max-width:560px){.seasonal__grid{gap:22px}.seasonal__grid .dish__ring{width:clamp(110px,32vw,180px)}}

/* ===================== ПРАВКИ 15: телефон — вернули описание номеров и фото зала ресторана ===================== */
@media (max-width:560px){
  .rslider__desc{display:block;font-size:13.5px;line-height:1.5;margin-bottom:10px}
  .rslider__media{height:clamp(170px,26svh,360px)}
  .museum-label{display:block;right:8px;bottom:-14px;padding:8px 12px;font-size:11px;max-width:220px}
  .museum-label b{font-size:16px}
}
@media (max-width:560px){
  .gallery-frame{display:block;padding:8px;margin-bottom:10px}
  .gallery-frame__inner{height:clamp(130px,19svh,200px)}
  .restaurant .menu-card{margin-top:10px}
}
@media (max-width:560px) and (max-height:720px){
  .rslider__media{height:140px}
  .gallery-frame__inner{height:110px}
}
@media (max-width:560px){
  .museum-label{padding:6px 10px;font-size:10px;line-height:1.35;max-width:170px;bottom:-10px}
  .museum-label b{font-size:14px}
  .gallery-frame__inner{height:clamp(110px,16svh,170px)}
  .restaurant .menu-card li{font-size:13px;padding:4px 0}
  .restaurant .menu-card li b{font-size:16px}
  .restaurant .h2{margin-bottom:8px}
  .seal{width:76px;height:76px;right:10px;bottom:10px}
  .seal__core{width:38px;height:38px}.seal__core b{font-size:17px}
  .seal__ring text{font-size:16px}
}

/* ===================== ПРАВКИ 16: телефон — фото зала не сплющено (картина уже, но выше) ===================== */
@media (max-width:560px){
  .gallery-frame{max-width:min(280px,76vw);margin:0 auto 10px}
  .gallery-frame__inner{height:auto;aspect-ratio:6/5}
  .museum-label{right:-14px;bottom:-12px}
  .restaurant .menu-card{padding:10px 16px}
  .restaurant .menu-card li{padding:3px 0}
  .restaurant .menu-card__title{font-size:17px;margin-bottom:2px}
}
@media (max-width:560px) and (max-height:720px){
  .gallery-frame{max-width:200px}
}
/* то же для широких телефонов и планшетов (561–860 px): фото зала не полосой, а нормальной пропорции */
@media (min-width:561px) and (max-width:560px){ /* бывшее правило для планшета — больше не срабатывает: планшет теперь как ПК */
  .gallery-frame{max-width:min(420px,60vw);margin:0 auto 10px}
  .gallery-frame__inner{height:auto;aspect-ratio:6/5}
}

/* ===================== ПРАВКИ 17: бегущая строка мельче и плотнее — только телефон/планшет (на ПК как было) ===================== */
@media (max-width:560px){
  :root{--ticker-h:44px}
  .ticker{height:var(--ticker-h);padding:0;display:flex;align-items:center}
  .ticker span{font-size:17px;letter-spacing:.01em}
  .ticker i{font-size:10px}
  .ticker__track{gap:13px}
  .hero{height:calc(100svh - var(--ticker-h))}
}


/* ===================== ПРАВКИ 19: телефон — кнопки «Забронировать» внизу первого экрана ===================== */
@media (max-width:560px){
  .hero{place-items:stretch}
  .hero__content{display:flex;flex-direction:column;align-items:center;height:100%;margin-top:0;padding:96px 20px 26px}
  .hero__kicker{margin-top:auto}
  .hero__btns{margin-top:auto;width:100%;max-width:440px}
}
@media (max-width:560px){.hero__scroll{display:none}}
@media (max-width:560px){.hero__content{padding-bottom:clamp(52px,10svh,100px)}}

/* ===================== ПРАВКИ 20: телефон — первый экран «фото в арке» (выбор Льва) ===================== */
/* сверху яркая арка со сменой фото, под ней на тёмно-зелёном — название, строка и кнопки */
@media (max-width:560px){
  .hero{--arch-top:82px;--arch-h:clamp(220px,36svh,420px);background:var(--green-deep)}
  .hero__bg{inset:auto;top:var(--arch-top);left:50%;width:min(80vw,420px);height:var(--arch-h);transform:translateX(-50%);
    border-radius:999px 999px 0 0;overflow:hidden;outline:1px solid var(--gold);outline-offset:9px}
  .hero__shade,.hero__arches{display:none}
  .hero__dots{display:flex;flex-direction:row;left:50%;bottom:auto;top:calc(var(--arch-top) + var(--arch-h) - 24px);transform:translateX(-50%);z-index:2}
  .hero__dots button{background:rgba(20,39,31,.35)}
  .hero__content{text-shadow:none;padding-top:calc(var(--arch-top) + var(--arch-h) + 24px);justify-content:flex-start}
  .hero__kicker{margin-top:0;font-size:22px}
  .hero__title{margin:2px 0 12px}
  .hero__text{margin-top:10px}
}
@media (max-width:560px){.hero__content{padding-bottom:clamp(26px,4.5svh,56px)}.hero__text{margin-bottom:20px}}
@media (max-width:560px) and (max-height:720px){.hero{--arch-top:76px;--arch-h:27svh}.hero__kicker{font-size:19px}.hero__title{margin:0 0 8px}.hero__text{margin:6px auto 14px;line-height:1.45}.hero__content{padding-top:calc(var(--arch-top) + var(--arch-h) + 16px);padding-bottom:18px}}

/* ===================== ПРАВКИ 21: телефон — текст над аркой, кнопки под ней ===================== */
@media (max-width:560px){
  .hero{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(0,1fr) auto;place-items:initial;
    padding:86px 20px clamp(22px,4svh,48px)}
  .hero__content{display:contents}
  .hero__kicker{grid-row:1;justify-self:center}
  .hero__title{grid-row:2;justify-self:center}
  .hero__line{grid-row:3;justify-self:center}
  .hero__text{grid-row:4;justify-self:center;margin:8px auto 0}
  .hero__bg{grid-row:5;position:relative;inset:auto;top:auto;left:auto;transform:none;justify-self:center;align-self:stretch;
    width:min(80vw,420px);height:auto;min-height:140px;margin:24px 0 22px}
  .hero__dots{grid-row:5;position:relative;left:auto;top:auto;bottom:auto;transform:none;justify-self:center;align-self:end;margin-bottom:34px}
  .hero__btns{grid-row:6;justify-self:center;margin-top:0}
}
@media (max-width:560px) and (max-height:720px){
  .hero{padding-top:78px;padding-bottom:16px}
  .hero__bg{margin:16px 0 14px}
  .hero__dots{margin-bottom:24px}
}
@media (max-width:560px){.hero > *,.hero__content > *{grid-column:1}}

/* ===================== ПРАВКИ 22: телефон — логотип в шапке «переезжает» из большого названия ===================== */
/* на первом экране логотипа в шапке нет (есть большое ПЕТРОВСКИЙ); листаешь вниз — логотип плавно поднимается на место */
@media (max-width:560px){
  .logo{opacity:0;transform:translateY(60px) scale(1.25);transform-origin:left center;pointer-events:none;
    transition:opacity .6s ease,transform .8s var(--ease)}
  body.logo-in .logo,body.menu-open .logo{opacity:1;transform:none;pointer-events:auto}
}

/* ===================== ПРАВКИ 23: телефон — монограмма «П» в шапке на первом экране (как в кружке «Забронировать») ===================== */
.header__mono{display:none}
@media (max-width:560px){
  .header__mono{display:grid;place-items:center;position:absolute;left:20px;top:50%;width:44px;height:44px;margin-top:-22px;border-radius:50%;
    border:1px solid var(--gold);color:var(--gold-light);background:rgba(20,39,31,.4);transition:opacity .5s ease,transform .6s var(--ease)}
  .header__mono b{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1}
  body.logo-in .header__mono,body.menu-open .header__mono{opacity:0;transform:scale(.7);pointer-events:none}
}

/* ===================== ПРАВКИ 24: телефон — в «Знакомстве» сначала фото, потом значки ===================== */
@media (max-width:560px){
  .about__grid{display:flex;flex-direction:column;gap:0}
  .about__text{display:contents}
  .about__media{order:1;margin:16px auto 0}
  .about .facts{order:2;margin-top:18px}
}
@media (max-width:560px){.about__grid{align-items:stretch}}

/* ===================== ПРАВКИ 25: телефон — подпись о карте Дона в блоке «1709» мелкая, почти незаметная ===================== */
@media (max-width:560px){
  .heritage__caption{font-size:9.5px;line-height:1.5;letter-spacing:.04em;color:rgba(217,184,128,.42);margin-top:22px;max-width:280px}
}
/* ПРАВКИ 25б: цвет подписи на телефоне прежний; текст на телефоне короткий (автор, название, год, статус прав) */
.heritage__caption .cap-short{display:none}
@media (max-width:560px){
  .heritage__caption{color:var(--gold-light)}
  .heritage__caption .cap-full{display:none}
  .heritage__caption .cap-short{display:inline}
}

/* ===================== ПРАВКИ 26: планшет (561–1100 px) = компьютерная версия в меньшем масштабе ===================== */
/* телефонные правила теперь только до 560 px; на планшете тот же вид, что на ПК */
@media (min-width:561px) and (max-width:1000px){
  /* шапка: кнопку «Забронировать» прячем (есть кружок-печать), меню и логотип чуть мельче */
  .header{gap:22px;padding:18px 28px}.header.is-scrolled{padding:10px 28px}
  .header__btn{display:none}
  .logo__text b{font-size:22px}.logo__text i{font-size:13px}
  .nav{gap:20px}.nav a{font-size:11.5px}
  /* блоки чуть компактнее, чтобы влезали в экран */
  .rslider__media{height:min(620px,46vh)}
  .rslider{gap:48px}
}
@media (min-width:561px) and (max-width:1000px){.rslider__nav{gap:12px}.rslider__arrow{width:44px;height:44px}.rslider__tabs{flex-wrap:nowrap;gap:0 12px}.rslider__tabs button{font-size:16px}}
@media (min-width:561px) and (max-width:1000px){.seasonal__grid{gap:22px}.seasonal__grid .dish{min-width:0}.dish__ring{width:min(210px,100%)}.dish h4{font-size:21px}}
/* ПРАВКИ 27: планшет — без вступительного текста в «Номерах» */
@media (min-width:561px) and (max-width:1000px){.rooms .section-head .lead{display:none}.rooms .section-head{display:block}}

/* ===================== ПРАВКИ 28: Telegram — ссылка на бота, MAX и ВК — «пока не принимают, через Telegram» ===================== */
.messenger--soon .messenger__icon{filter:grayscale(.6);opacity:.6}
.messenger--soon b{color:var(--grey)}
.messenger .messenger__soon{font-size:13px;line-height:1.45;color:var(--gold);text-align:center}
@media (max-width:560px){
  /* на телефоне строка не вмещает подпись — переносим её под название и кнопку */
  .messenger--soon{flex-wrap:wrap;row-gap:4px}
  .messenger .messenger__soon{display:block;order:3;flex-basis:100%;text-align:left;padding-left:60px;font-size:11.5px}
  .messenger .messenger__soon br{display:none}
  .messenger--soon em{font-size:10px;padding:9px 10px}
}
@media (max-width:560px){.messenger__long{display:none}.messenger--soon b{font-size:22px}}
@media (min-width:561px) and (max-width:1000px){.messenger__long{display:none}.messenger em{padding:12px 20px}}

/* ПРАВКИ 29: заставка – линия между шторами точно по центру экрана (шторы заходят друг на друга на 1 px) */
.intro__curtain{width:calc(50% + 1px)}
.intro__curtain--l::after{right:.5px}
.intro__curtain--r::after{left:.5px}

/* ПРАВКИ 30: бесконечная бегущая строка на всех экранах – 8 одинаковых наборов, сдвиг ровно на один набор (1/8), отступ после каждого элемента вместо gap */
.ticker__track{gap:0;animation-name:ticker-loop}
.ticker__track>*{margin-right:34px}
@keyframes ticker-loop{to{transform:translateX(-12.5%)}}
@media (max-width:560px){.ticker__track>*{margin-right:13px}}

/* ===================== ПРАВКИ 31: настоящие значки мессенджеров (все экраны) ===================== */
.messenger__icon{overflow:hidden}
.messenger__icon svg{display:block;width:100%;height:100%}
.messenger__icon img{border-radius:50%}
.messenger--soon .messenger__icon{filter:none;opacity:1}

/* ===================== ПРАВКИ 32: телефон — блоки пересобраны, каждый на весь экран ===================== */
/* --toolbar: высота панели Safari; блок = полный экран, содержимое выше зоны панели */
@media (max-width:560px){
  :root{--toolbar:calc(100lvh - 100svh)}
  main > section:not(.hero){min-height:100lvh;padding:86px 0 calc(var(--toolbar) + 18px)}
  .about__grid,.restaurant__grid,.banquets__grid,.contacts__grid,.rooms > .container{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}

  /* 1. Первый экран: фото на весь экран, текст сверху, кнопки снизу */
  .hero__bg{position:absolute;inset:0;grid-column:auto;grid-row:auto;justify-self:stretch;align-self:stretch;width:100%;height:100%;min-height:0;margin:0;transform:none;border-radius:0;outline:0;z-index:0}
  .hero__shade{display:block;grid-column:auto;z-index:1;background:linear-gradient(180deg,rgba(14,28,22,.9) 0%,rgba(14,28,22,.74) 40%,rgba(14,28,22,.12) 60%,rgba(14,28,22,.2) 72%,rgba(14,28,22,.88) 100%)}
  .hero__kicker,.hero__title,.hero__line,.hero__text,.hero__btns,.hero__dots{position:relative;z-index:2}
  .hero__dots{margin-bottom:14px}
  .hero__dots button{background:rgba(255,255,255,.35)}
  .hero__dots button.is-active{background:var(--gold)}

  /* 2. Знакомство: фасад крупно на всю ширину, значки меньше */
  main > section:not(.hero).about{padding-top:0}
  .about__media{order:-1;flex:1 1 0;width:100vw;max-width:none;height:auto;min-height:34svh;margin:0 calc(50% - 50vw) 16px}
  .about__main{inset:0;width:100%;height:100%;border-radius:0}
  .about__main.arch-reveal{clip-path:inset(100% 0 0 0)}
  .about__main.arch-reveal.is-in{clip-path:inset(0)}
  .about .facts{margin-top:12px;padding-top:10px;gap:4px}
  .about .facts li{gap:5px}
  .about .facts__circle{width:36px;height:36px}
  .about .facts__circle svg{width:20px;height:20px}
  .about .facts .facts__label{font-size:10px;line-height:1.3}

  /* 4. Номера: фото на всю ширину с мягкой аркой; сначала кнопка, под ней цена */
  .rooms .section-head{margin-bottom:0}
  .rooms .h2{margin-bottom:0}
  .rslider{flex:1 1 auto;display:flex;flex-direction:column;gap:0;min-height:0}
  .rslider__media{flex:1 1 0;width:100vw;max-width:none;height:auto;min-height:32svh;margin:18px calc(50% - 50vw) 12px}
  .rslider__frame{left:10px;right:10px;top:-9px;bottom:0;border-bottom:0;border-radius:50% 50% 0 0 / 30% 30% 0 0}
  .rslider__img{border-radius:0;clip-path:inset(100% 0 0 0 round 50% 50% 0 0 / 28% 28% 0 0)}
  .rslider__img.is-active,.rslider__img.is-prev{clip-path:inset(0 0 0 0 round 50% 50% 0 0 / 28% 28% 0 0)}
  .rslider__count{right:12px;bottom:12px;padding:6px 12px}
  .rslider__name{font-size:30px;margin:2px 0 4px}
  .rslider__desc{margin-bottom:8px}
  .rslider__foot{flex-direction:column-reverse;align-items:stretch;gap:6px;padding-top:0;border-top:0}
  .rslider__foot .btn{text-align:center;padding:13px 12px}
  .rslider__foot .price{display:flex;align-items:baseline;gap:8px;font-size:26px;line-height:1.1}
  .rslider__foot .price small{margin:0}
  .rslider__nav{margin-top:8px}
  .rslider__arrow{width:36px;height:36px}
  .rslider__progress{display:none}

  /* 5. Ресторан: зал на всю ширину вместо рамки */
  main > section:not(.hero).restaurant{padding-top:0}
  .restaurant__grid{gap:0}
  .gallery-frame{flex:1 1 0;width:100vw;max-width:none;min-height:34svh;margin:0 calc(50% - 50vw) 14px;padding:0;background:none;box-shadow:none}
  .gallery-frame__inner{position:absolute;inset:0;height:auto;aspect-ratio:auto;box-shadow:none}
  .gallery-frame__inner img{transform:none}
  .museum-label{left:20px;right:auto;bottom:12px;max-width:calc(100% - 40px)}

  /* 6. Осеннее меню: одно блюдо на экран */
  main > section:not(.hero).season{padding:0}
  .seasonal{position:relative;width:100%;flex:1 1 auto}
  .seasonal__head{position:absolute;left:20px;right:20px;top:94px;margin:0;z-index:2}
  .seasonal__grid{display:block}
  .seasonal__grid .dish{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100lvh;padding:86px 24px calc(var(--toolbar) + 18px);text-align:center}
  .seasonal__grid .dish:first-child{padding-top:180px}
  .seasonal__grid .dish__ring{width:min(80vw,48svh);margin:0 0 22px;padding:10px}
  .seasonal__grid .dish:first-child .dish__ring{width:min(74vw,38svh)}
  .seasonal__grid .dish h4{align-self:auto;font-size:30px}
  .seasonal__grid .dish p{align-self:auto;margin-top:10px;font-size:16px;line-height:1.5;max-width:320px}
  .seasonal__grid .dish.reveal-up{opacity:1;transform:none;transition:none}

  /* 7. Банкеты: заголовок и текст, крупные фото, кнопки внизу */
  .banquets__grid{gap:0}
  .banquets__text{display:contents}
  .banquets__arches{order:2;flex:1 1 0;width:100vw;height:auto;min-height:40svh;margin:14px calc(50% - 50vw);padding:0 8px;grid-template-columns:1fr 1.5fr 1fr;grid-template-rows:1fr;gap:8px;align-items:stretch}
  .banquets__arches .arch,.banquets__arches .arch--tall{height:auto;min-height:0}
  .banquets__arches .arch:not(.arch--tall){margin-top:16%}
  .banquets__arches .arch img{position:absolute;inset:0}
  .banquets .btn-row{order:3;margin-top:0}

  /* 8. Бронирование: плотнее, значок точно по центру овала */
  .booking .section-head{margin-bottom:12px}
  .booking .lead{font-size:13.5px;line-height:1.45}
  .booking__grid{gap:8px}
  .messenger,.messenger--soon{display:grid;grid-template-columns:46px minmax(0,1fr) auto;column-gap:12px;align-items:center;justify-content:stretch;border-radius:42px;padding:8px 12px 8px 10px}
  .messenger__icon{grid-column:1;grid-row:1 / span 2;align-self:center}
  .messenger b{grid-column:2;grid-row:1}
  .messenger .messenger__soon{grid-column:2;grid-row:2;padding-left:0;font-size:10.5px;line-height:1.3}
  .messenger em,.messenger--soon em{grid-column:3;grid-row:1 / span 2;align-self:center;margin:0;padding:9px 10px;font-size:10px}
  .messenger:not(.messenger--soon) b{grid-row:1 / span 2;align-self:center}
  .warning{margin-top:10px;padding:9px 12px;font-size:12px;line-height:1.4}
  .warning b{font-size:24px}

  /* 9. Контакты и подвал: каждый на весь экран */
  .contacts__grid{gap:0}
  .map{flex:1 1 0;height:auto;min-height:22svh;margin-top:14px}
  .footer{min-height:100lvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:86px 20px calc(var(--toolbar) + 18px)}
  .footer__arch{top:calc(50% - 210px)}
  .footer__name{font-size:clamp(28px,8.4vw,40px);letter-spacing:.14em;margin-top:0}
  .footer__nav{gap:10px 16px;font-size:11px;letter-spacing:.12em}

  /* уточнения после проверки */
  .about__grid,.restaurant__grid,.banquets__grid,.contacts__grid,.rooms > .container{align-items:stretch}
  .banquets .eyebrow{justify-content:flex-start}
  .seasonal__grid .dish__ring{flex-shrink:0;height:min(80vw,48svh)}
  .seasonal__grid .dish:first-child .dish__ring{height:min(74vw,38svh)}
}

/* ===================== ПРАВКИ 33: телефон — живое «Знакомство», блок 1709, маленькая табличка зала, меню с анимацией при листании ===================== */
.dish-dots{display:none}
@media (max-width:560px){
  /* 2. Знакомство: большая арка с фасадом у края экрана и круглое фото стола внахлёст */
  main > section:not(.hero).about{padding-top:94px}
  .about .h2{margin-bottom:0}
  .about__media{order:1;flex:1 1 0;width:100vw;min-height:30svh;margin:18px calc(50% - 50vw) 12px}
  .about__main{left:0;top:0;width:76vw;height:100%;border-radius:999px 999px 0 0}
  .about__main.arch-reveal{clip-path:inset(100% 0 0 0 round 999px 999px 0 0)}
  .about__main.arch-reveal.is-in{clip-path:inset(0 0 0 0 round 999px 999px 0 0)}
  .about__frame{display:block;left:14px;top:-10px;width:76vw;height:calc(100% + 10px);border-bottom:0}
  .about__small{display:block;left:auto;right:16px;bottom:-8px;width:min(40vw,24svh);height:min(40vw,24svh);border:5px solid var(--milk);border-radius:50%;z-index:2}
  .about__small.arch-reveal{clip-path:circle(0)}
  .about__small.arch-reveal.is-in{clip-path:circle(50%)}
  .about .lead{order:2;margin:0;font-size:14px;line-height:1.5}
  .about .facts{order:3;gap:0;margin-top:10px;padding-top:10px}
  .about .facts li{gap:3px;padding:0 4px;border-left:1px solid var(--line)}
  .about .facts li:first-child{border-left:0}
  .about .facts__circle{width:auto;height:28px;border:0;background:none}
  .about .facts__circle svg{width:26px;height:26px}

  /* 3. 1709: текст по центру блока, линия и подпись внизу блока */
  main > section:not(.hero).heritage{position:relative;justify-content:center;padding-bottom:calc(var(--toolbar) + 76px)}
  .heritage__inner{position:static}
  .heritage .draw-line{position:absolute;left:50%;bottom:calc(var(--toolbar) + 56px);margin:0 0 0 -80px}
  .heritage .heritage__caption{position:absolute;left:20px;right:20px;bottom:calc(var(--toolbar) + 18px);margin:0 auto;max-width:none}

  /* 5. Ресторан: маленькая табличка */
  .museum-label{left:12px;bottom:8px;max-width:165px;padding:4px 8px;font-size:8.5px;line-height:1.3}
  .museum-label b{font-size:12px;line-height:1.2}

  .dish-dots i{width:7px;height:7px;border:1px solid var(--gold);border-radius:50%;transition:background .3s,transform .3s}
  .dish-dots i.is-on{background:var(--gold);transform:scale(1.25)}
}
@media (max-width:560px) and (prefers-reduced-motion:no-preference){
  .about__main.is-in img{animation:aboutDrift 16s ease-in-out infinite alternate}
}
@keyframes aboutDrift{from{transform:scale(1)}to{transform:scale(1.1) translateY(-2%)}}

/* ===================== ПРАВКИ 34: телефон — значки без задержки, фото «Знакомства» меньше, подпись 1709 видна всегда, меню листается легче ===================== */
@media (max-width:560px){
  .about__media{flex:0 0 clamp(170px,27svh,240px);min-height:0}
  .about__small{width:min(34vw,20svh);height:min(34vw,20svh)}
  .about .lead{font-size:15px}
  .about .facts{margin-top:auto}
  .about .facts li{--d:0s!important;transition-duration:.5s}
  .heritage .heritage__caption.reveal-up{opacity:1;transform:none;transition:none}
  .heritage .draw-line{transform:none;transition:none}
}

/* ===================== ПРАВКИ 35: телефон — фото «Знакомства» больше, описание короче, подпись 1709 в две строки, кружок на 1-м и 2-м блоках ===================== */
.lead-short{display:none}
@media (max-width:560px){
  .lead-full{display:none}
  .lead-short{display:inline}
  .about__media{flex:1 1 0;min-height:clamp(170px,27svh,240px)}
  .about__small{width:min(38vw,23svh);height:min(38vw,23svh)}
  .about .facts{margin-top:10px}
  .heritage .draw-line{bottom:calc(var(--toolbar) + 62px)}
  .hero{padding-bottom:48px}   /* кнопка «Забронировать стол» выше кружка */
}

/* ===================== ПРАВКИ 36: телефон — осеннее меню: большой круг по центру, по бокам другие блюда, переезжают по времени ===================== */
@media (max-width:560px){
  main > section:not(.hero).season.season--orbit{display:flex;flex-direction:column;padding:86px 0 calc(var(--toolbar) + 18px);overflow:hidden}
  .season--orbit .seasonal{display:flex;flex-direction:column;flex:1 1 auto;width:calc(100% - 40px);margin:0 auto}
  .season--orbit .seasonal__head{position:static;display:block;margin:0 0 10px}
  .season--orbit .seasonal__head .h2{margin:6px 0 4px}
  .season--orbit .seasonal__head > p{display:block;font-size:17px;line-height:1.3;color:var(--gold)}
  .season--orbit .seasonal__grid{--ring:min(72vw,42svh);position:relative;flex:1 1 auto;min-height:calc(var(--ring) + 124px);touch-action:pan-y}
  .season--orbit .seasonal__grid .dish,.season--orbit .seasonal__grid .dish:first-child{position:absolute;inset:0;display:block;min-height:0;padding:calc(var(--ring) + 14px) 0 0;text-align:center;pointer-events:none}
  .season--orbit .seasonal__grid .dish .dish__ring{position:absolute;top:0;left:50%;width:var(--ring);height:var(--ring);margin:0 0 0 calc(var(--ring) / -2);padding:8px;z-index:1;pointer-events:auto;cursor:pointer;transition:transform 1.1s var(--ease-in-out)}
  .season--orbit .dish.is-center .dish__ring{z-index:3;transform:none}
  .season--orbit .dish.is-right .dish__ring{z-index:2;transform:translateX(56%) scale(.6)}
  .season--orbit .dish.is-left .dish__ring{z-index:2;transform:translateX(-56%) scale(.6)}
  .season--orbit .seasonal__grid .dish h4,.season--orbit .seasonal__grid .dish p{opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .6s var(--ease)}
  .season--orbit .seasonal__grid .dish.is-center h4,.season--orbit .seasonal__grid .dish.is-center p{opacity:1;transform:none;transition-delay:.35s}
  .season--orbit .seasonal__grid .dish h4{font-size:25px;line-height:1.15}
  .season--orbit .seasonal__grid .dish p{margin:6px auto 0;font-size:14.5px;line-height:1.4}
  .season--orbit .dish-dots{display:flex;justify-content:center;gap:10px;margin-top:6px}
}

/* ===================== ПРАВКИ 37: телефон — круги осеннего меню по центру блока и без наложения ===================== */
/* большой круг 1 = 100%, боковой — 60%: сдвиг 83% оставляет зазор и в покое, и во время движения */
@media (max-width:560px){
  main > section:not(.hero).season.season--orbit{position:relative;touch-action:pan-y}
  .season--orbit .seasonal{position:static}
  .season--orbit .seasonal__grid{--ring-top:max(calc(50lvh - var(--ring) / 2),196px);position:static;flex:none;min-height:0}
  .season--orbit .seasonal__grid .dish,.season--orbit .seasonal__grid .dish:first-child{padding:calc(var(--ring-top) + var(--ring) + 14px) 20px 0}
  .season--orbit .seasonal__grid .dish .dish__ring{top:var(--ring-top)}
  .season--orbit .dish.is-right .dish__ring{transform:translateX(83%) scale(.6)}
  .season--orbit .dish.is-left .dish__ring{transform:translateX(-83%) scale(.6)}
  .season--orbit .seasonal__grid .dish.wrap-out-l .dish__ring{transform:translateX(-160%) scale(.6);transition:transform .55s ease-in}
  .season--orbit .seasonal__grid .dish.wrap-out-r .dish__ring{transform:translateX(160%) scale(.6);transition:transform .55s ease-in}
  .season--orbit .seasonal__grid .dish.wrap-in-l .dish__ring{transform:translateX(-160%) scale(.6);transition:none}
  .season--orbit .seasonal__grid .dish.wrap-in-r .dish__ring{transform:translateX(160%) scale(.6);transition:none}
  .season--orbit .seasonal__grid .dish.wrap-land .dish__ring{transition:transform .55s ease-out}
  .season--orbit .dish-dots{position:absolute;left:0;right:0;bottom:calc(var(--toolbar) + 18px);margin:0}
}

/* ===================== ПРАВКИ 38: ноутбук — кружок виден во всех блоках, стрелка номеров не уходит под него ===================== */
@media (min-width:1001px){
  .rslider__nav{padding-right:max(0px,calc(130px - (100vw - min(1200px,100vw - 64px)) / 2))}
}
@media (min-width:1001px) and (max-height:820px){
  .seasonal__grid .dish p{max-width:230px;margin-left:auto;margin-right:auto}   /* описание третьего блюда не уходит под кружок */
}
