@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root { --cream:#fff8ee; --paper:#f7ead7; --ink:#243426; --forest:#15382d; --orange:#dc582e; --gold:#eab24b; --line:rgba(36,52,38,.16); --serif:'Playfair Display',Georgia,serif; --sans:Manrope,Arial,sans-serif; }
* { box-sizing:border-box } html { scroll-behavior:smooth } body { margin:0; overflow-x:hidden; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:16px } button,a { font:inherit } button { cursor:pointer } .wrap { width:min(1160px, calc(100% - 48px)); margin:auto }
.hero { min-height:760px; color:#fff9ef; background:linear-gradient(115deg,rgba(16,44,35,.97) 2%,rgba(19,57,44,.90) 48%,rgba(28,74,54,.65)),radial-gradient(circle at 88% 70%,#d99432 0 5%,transparent 5.2%),linear-gradient(145deg,#123b2f,#376a3e); position:relative; overflow:hidden; isolation:isolate }.hero:before { content:""; position:absolute; width:700px; height:700px; border:1px solid rgba(255,255,255,.16); border-radius:50%; right:-260px; bottom:-370px; z-index:-1 }.hero:after { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.15) 1px, transparent 1px); background-size:22px 22px; opacity:.25; z-index:-1 }
.nav { height:102px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.26) }.brand { display:inline-flex; flex-direction:column; color:inherit; text-decoration:none; font-size:1.18rem; letter-spacing:.065em; font-weight:800 }.brand span { width:100%; height:2px; margin-top:5px; background:var(--gold); display:block }.nav-actions { display:flex; align-items:center; gap:24px }.nav-link { color:inherit; border:0; background:none; font-weight:600 }.menu-button { border:1px solid rgba(255,255,255,.55); border-radius:50%; background:transparent; width:46px; height:46px; display:grid; align-content:center; gap:4px; padding:0 12px }.menu-button i { display:block; height:1px; background:#fff }.hero-content { padding:114px 0 110px; max-width:min(1160px,calc(100% - 48px)) }.eyebrow,.section-kicker { margin:0 0 15px; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; font-weight:800; color:var(--orange) }.hero .eyebrow { color:#ffd26a }.hero h1 { max-width:830px; font-family:var(--serif); font-size:clamp(3.4rem,7vw,6.6rem); line-height:.95; margin:0; letter-spacing:-.06em }.hero h1 em { font-size:.78em; font-weight:600; color:#ffd46b }.hero-copy { max-width:450px; font-size:1.05rem; line-height:1.65; margin:30px 0 }.hero-buttons { display:flex; flex-wrap:wrap; gap:12px }.button { padding:15px 21px; border-radius:8px; border:1px solid transparent; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:22px }.button-primary { background:var(--orange); color:white; box-shadow:0 8px 22px rgba(51,20,8,.22) }.button-primary b { font-size:1.3em; font-weight:400 }.button-ghost { color:white; border-color:rgba(255,255,255,.5) }.hero-bottom { position:absolute; bottom:29px; left:0; right:0; display:flex; justify-content:space-between; font-size:.73rem; text-transform:uppercase; letter-spacing:.13em; color:rgba(255,255,255,.68) }.hero-dumplings span { position:absolute; border-radius:50% 50% 42% 42%; background:radial-gradient(circle at 30% 28%,#fff8d9,#e3b967 58%,#b46f30); box-shadow:inset -9px -10px 14px rgba(108,55,15,.22), 8px 15px 20px rgba(0,0,0,.18); z-index:-1 }.dumpling.one { width:280px;height:185px; right:7%; top:235px; transform:rotate(-17deg) }.dumpling.two { width:160px;height:110px; right:30%; top:124px; transform:rotate(22deg) }.dumpling.three { width:125px;height:90px; right:5%; top:453px; transform:rotate(31deg) }
.intro { padding:125px 0; display:grid; grid-template-columns:.8fr 1.65fr 1fr; gap:36px; align-items:start }.intro h2,.section-head h2,.taste h2 { font:700 clamp(2.15rem,4vw,4rem)/1.05 var(--serif); margin:0; letter-spacing:-.045em }.intro>p:last-child { font-size:1.02rem; line-height:1.7; margin:3px 0 0; color:#5a675a }
.news { background:var(--paper); padding:90px 0 92px }.section-head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:35px }.section-head .section-kicker { color:#9c4b25 }.text-link { padding:0; border:0; background:none; color:var(--forest); border-bottom:1px solid currentColor; font-weight:800; padding-bottom:5px }.text-link span { color:var(--orange); margin-left:15px; font-size:1.3em }.promo-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px }.promo-card { position:relative; overflow:hidden; min-height:530px; border-radius:13px; background:#e9c684 }.promo-card img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; transition:transform .4s ease }.promo-card:hover img { transform:scale(1.025) }.promo-label { position:absolute; left:18px; bottom:17px; color:white; background:rgba(21,56,45,.92); border-radius:99px; padding:8px 12px; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; font-weight:800 }.center-action { padding-top:37px; text-align:center }.center-action .button { min-width:224px }
.taste { padding:125px 0; display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,11vw,170px); align-items:center }.taste-art { height:430px; background:linear-gradient(142deg,#d85d31,#eda747); position:relative; border-radius:50% 50% 13px 13px; overflow:hidden }.plate { position:absolute; width:360px; height:360px; background:#fff2dc; border-radius:50%; left:14%; top:18%; box-shadow:inset 0 0 0 20px #f0d4af }.plate:after { content:""; position:absolute; width:135px; height:91px; left:110px; top:120px; border-radius:55% 55% 45% 45%; background:radial-gradient(circle at 28% 25%,#fff7df,#e6b760 58%,#b96e30); transform:rotate(-19deg); box-shadow:78px 25px 0 -3px #d99f51, 40px -57px 0 -5px #e6b760 }.fork { position:absolute; right:13%; top:9%; font-size:4rem; color:#fff5e5; transform:rotate(25deg) }.leaf { position:absolute; left:10%; bottom:8%; font-size:4.5rem; color:#315f39; transform:rotate(-45deg) }.taste-copy>p:not(.section-kicker) { color:#5a675a; line-height:1.75; max-width:420px; margin:25px 0 }.taste-copy .text-link { margin-top:5px }
footer { background:var(--forest); color:#fff6e6; padding:70px 0 24px }.footer-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr .8fr; gap:30px }.footer-brand { margin-bottom:20px }.footer-grid p { color:rgba(255,246,230,.72); font-size:.88rem; line-height:1.65; margin:0 }.footer-grid strong { color:#fff6e6 }.footer-label { text-transform:uppercase; letter-spacing:.14em; font-size:.66rem!important; font-weight:800; color:#e8b649!important; margin-bottom:12px!important }.footer-order { align-self:start; justify-self:end; background:var(--gold); color:var(--forest); border:0; border-radius:50%; width:94px; height:94px; font-weight:800; line-height:1.15 }.footer-order span { display:block; font-size:1.6rem; margin-top:5px }.footer-bottom { margin-top:62px; padding-top:20px; border-top:1px solid rgba(255,255,255,.15); display:flex; justify-content:space-between; color:rgba(255,246,230,.45); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em }
.overlay { position:fixed; inset:0; z-index:10; background:rgba(14,30,22,.5); backdrop-filter:blur(3px) }.side-panel,.order-panel { position:fixed; z-index:11; background:var(--cream); box-shadow:-12px 0 40px rgba(30,30,20,.18); transition:transform .35s ease; overflow:auto }.side-panel { width:min(520px,100%); top:0; right:0; height:100vh; padding:42px; transform:translateX(105%) }.side-panel.is-open,.order-panel.is-open { transform:translateX(0) }.panel-head,.order-head,.cart-head { display:flex; align-items:start; justify-content:space-between }.panel-head h2,.order-head h2 { font:700 2.5rem var(--serif); letter-spacing:-.05em; margin:0 }.close { width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:transparent; font-size:1.8rem; line-height:1; color:var(--forest) }.category-tabs,.order-tabs { display:flex; gap:7px; overflow:auto; padding:28px 0 17px; scrollbar-width:none }.category-tabs button,.order-tabs button { flex:0 0 auto; border:1px solid var(--line); background:transparent; border-radius:99px; padding:9px 13px; color:var(--forest); font-size:.76rem; font-weight:700 }.category-tabs button.active,.order-tabs button.active { color:white; background:var(--forest); border-color:var(--forest) }.menu-list { border-top:1px solid var(--line); margin-bottom:26px }.menu-item { display:grid; grid-template-columns:1fr auto; gap:8px; padding:20px 0; border-bottom:1px solid var(--line) }.menu-item h3 { font:700 1.03rem var(--serif); margin:0 }.menu-item p { margin:6px 0 0; font-size:.78rem; line-height:1.45; color:#697269 }.menu-item strong { color:var(--orange); white-space:nowrap }.full { width:100% }.panel-note { font-size:.71rem; color:#77766d; line-height:1.55; margin:13px 0 0 }
.order-panel { inset:0; transform:translateX(105%); padding:42px max(32px,calc((100vw - 1160px)/2)); }.order-head { margin-bottom:24px }.order-layout { display:grid; grid-template-columns:1.5fr .85fr; gap:50px; align-items:start }.order-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px }.product { padding:20px; min-height:158px; border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; background:#fffdf9 }.product .tag { color:#8f9c8e; text-transform:uppercase; letter-spacing:.12em; font-size:.6rem; font-weight:800 }.product h3 { font:700 1.15rem/1.12 var(--serif); margin:10px 0 5px }.product p { font-size:.73rem; color:#697269; margin:0; line-height:1.4 }.product-bottom { width:100%; margin-top:14px; display:flex; align-items:center; justify-content:space-between }.product strong { color:var(--orange); font-size:.92rem }.add { color:var(--forest); background:#f1e4cf; border:0; border-radius:50%; width:32px; height:32px; font-size:1.2rem }.cart { position:sticky; top:20px; background:var(--forest); color:white; border-radius:12px; padding:25px }.cart-head { padding-bottom:17px; border-bottom:1px solid rgba(255,255,255,.2) }.cart h3 { margin:0; font:700 1.65rem var(--serif) }.cart-head span { color:#dcbf82; font-size:.67rem; text-transform:uppercase; letter-spacing:.11em; padding-top:8px }.cart-items { min-height:120px; padding:8px 0 }.empty-cart { color:rgba(255,255,255,.55); font-size:.78rem; line-height:1.5 }.cart-row { display:grid; grid-template-columns:1fr auto auto; gap:8px; align-items:center; padding:10px 0; font-size:.78rem; border-bottom:1px solid rgba(255,255,255,.12) }.cart-row button { border:0; color:#f3c560; background:transparent; font-size:1rem }.cart-total { display:flex; justify-content:space-between; margin:16px 0 19px; font-size:.88rem }.cart-total strong { color:#f5c766; font-size:1.05rem }.cart .button-primary { background:var(--orange) }.toast { position:fixed; left:50%; bottom:24px; z-index:20; transform:translateX(-50%); background:#263f31; color:#fff; padding:13px 18px; border-radius:9px; font-size:.85rem; box-shadow:0 8px 24px rgba(0,0,0,.2) }
@media (max-width:760px) { .wrap { width:min(100% - 32px, 620px) }.hero { min-height:700px }.nav { height:82px }.nav-link { display:none }.hero-content { padding:100px 0 }.hero h1 { font-size:clamp(3.25rem,15vw,4.5rem) }.hero-dumplings .one { width:210px;height:140px;right:-36px;top:415px }.hero-dumplings .two { width:112px;height:75px;right:30px;top:330px }.hero-dumplings .three { display:none }.hero-bottom { font-size:.58rem }.intro { grid-template-columns:1fr; gap:19px; padding:78px 0 }.promo-grid { grid-template-columns:1fr; gap:16px }.promo-card { min-height:500px }.news { padding:70px 0 }.section-head { align-items:start }.section-head .text-link { display:none }.taste { grid-template-columns:1fr; gap:42px; padding:78px 0 }.taste-art { height:350px }.plate { transform:scale(.78); transform-origin:top left; left:13%; top:18% }.footer-grid { grid-template-columns:1fr 1fr; row-gap:42px }.footer-order { justify-self:start }.footer-bottom { margin-top:42px; gap:15px; flex-direction:column }.side-panel { padding:27px 20px }.order-panel { padding:27px 18px }.order-layout { grid-template-columns:1fr; gap:24px }.order-products { grid-template-columns:1fr }.cart { position:static }.order-head h2,.panel-head h2 { font-size:2.15rem } }

/* Уточнения для фактического меню и контактов */
.nav,.hero-content { position:relative; z-index:1 }.hero-bottom { z-index:1 }.hero-dumplings { position:absolute; width:410px; height:480px; right:4%; top:155px; overflow:hidden; margin:0; border:7px solid rgba(255,248,238,.76); border-radius:48% 48% 20px 20px; box-shadow:0 25px 42px rgba(0,0,0,.28); transform:rotate(-5deg); z-index:0 }.hero-dumplings img { width:100%; height:100%; object-fit:cover; object-position:center top; transform:scale(2); transform-origin:50% 20% }.footer-grid a:not(.brand) { color:#fff6e6; text-decoration:none; border-bottom:1px solid rgba(255,246,230,.45) }.category-cover { margin:18px 0 3px; height:260px; overflow:hidden; border-radius:9px; background:#e9d4b0 }.category-cover img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 30% }.notice { position:fixed; z-index:31; inset:0; display:grid; place-items:center; padding:22px; background:rgba(13,31,23,.55); backdrop-filter:blur(5px) }.notice[hidden] { display:none }.notice-card { position:relative; width:min(450px,100%); padding:42px; background:var(--cream); border-radius:14px; box-shadow:0 24px 80px rgba(0,0,0,.28) }.notice-card .close { position:absolute; top:18px; right:18px }.notice-card h2 { font:700 2.3rem/1.05 var(--serif); letter-spacing:-.04em; margin:0 }.notice-card>p:not(.section-kicker) { color:#5a675a; line-height:1.65; margin:20px 0 28px }
@media (max-width:760px) { .hero-dumplings { width:175px; height:205px; right:-25px; top:390px; border-width:4px }.notice-card { padding:34px 25px } }

/* Иллюстрация на первом экране и программа постоянного гостя */
.hero-dumplings { width:55%; height:690px; right:-9%; top:65px; border:0; border-radius:52% 0 0 52% / 50%; box-shadow:none; transform:none; background:transparent }.hero-dumplings img { width:100%; height:100%; object-fit:cover; object-position:right center; transform:none }.loyalty { padding:115px 0; display:grid; grid-template-columns:.88fr 1.12fr; align-items:center; gap:clamp(36px,7vw,96px) }.loyalty h2 { font:700 clamp(2.15rem,4vw,4rem)/1.05 var(--serif); letter-spacing:-.045em; margin:0 }.loyalty-copy>p:not(.section-kicker) { max-width:420px; color:#5a675a; line-height:1.7; margin:25px 0 28px }.loyalty-rewards { display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:470px }.loyalty-rewards>div { display:flex; align-items:center; gap:12px; padding:13px; border:1px solid var(--line); border-radius:10px; background:#fffdf9 }.loyalty-rewards span { display:grid; flex:0 0 42px; height:42px; place-items:center; border-radius:50%; background:var(--forest); color:#f6d379; font:700 1.1rem var(--serif) }.loyalty-rewards p { margin:0; font-size:.72rem; line-height:1.45; color:#657165 }.loyalty-rewards strong { color:var(--forest); font-size:.78rem }.loyalty-visual { position:relative; min-height:470px; border-radius:18px; overflow:hidden; background:var(--forest); box-shadow:0 20px 40px rgba(43,44,25,.13) }.loyalty-banner { width:100%; height:100%; min-height:470px; display:block; object-fit:cover; object-position:center 18%; filter:saturate(.94) }.loyalty-card { position:absolute; z-index:1; width:55%; left:6%; bottom:5%; border-radius:12px; border:5px solid rgba(255,248,238,.9); box-shadow:0 15px 33px rgba(0,0,0,.35); transform:rotate(-5deg) }.taste-art { background:var(--forest); overflow:hidden }.taste-art img { width:100%; height:100%; display:block; object-fit:cover; object-position:right center }.category-cover { position:relative; height:210px; border:1px solid rgba(36,52,38,.12); box-shadow:0 8px 18px rgba(42,57,36,.08) }.category-cover:after { content:'Меню категории'; position:absolute; left:11px; bottom:11px; padding:6px 9px; background:rgba(21,56,45,.9); color:#fff8ee; border-radius:99px; font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase }
@media (max-width:900px) { .hero-dumplings { width:47%; right:-12% }.loyalty { grid-template-columns:1fr; gap:42px }.loyalty-visual { min-height:500px } }
@media (max-width:760px) { .hero { min-height:735px }.hero-dumplings { width:205px; height:230px; right:-62px; top:480px; border-radius:52% 0 0 52% / 50% }.hero-content { padding-bottom:130px }.loyalty { padding:78px 0 }.loyalty-rewards { grid-template-columns:1fr }.loyalty-visual { min-height:370px }.loyalty-banner { min-height:370px }.loyalty-card { width:64%; left:5%; bottom:8% }.taste-art { height:330px }.category-cover { height:175px } }
@media (max-width:420px) { .hero-dumplings { width:170px; height:190px; right:-48px; top:510px }.hero h1 { font-size:3.15rem } }
@media (max-height:500px) and (orientation:landscape) { .hero { min-height:510px }.hero-content { padding:104px 0 72px }.hero h1 { max-width:58%; font-size:clamp(2.35rem,5vw,3.5rem); line-height:1 }.hero-copy { max-width:48%; margin:17px 0; font-size:.88rem; line-height:1.45 }.hero-buttons { gap:9px }.button { padding:11px 15px; font-size:.84rem }.hero-dumplings { width:31%; height:325px; right:-1%; top:62px }.hero-bottom { bottom:16px }.nav { height:72px } }

/* Карта постоянного гостя не перекрывает условия акции */
.loyalty { position:relative }.loyalty-visual { min-height:690px; overflow:visible; background:transparent; box-shadow:none }.loyalty-banner { height:470px; min-height:470px; border-radius:18px; box-shadow:0 20px 40px rgba(43,44,25,.13) }.loyalty-card { width:50%; left:5%; bottom:0 }.loyalty-doodles { position:absolute; inset:0; pointer-events:none; z-index:-1 }.loyalty-doodles svg { position:absolute; fill:none; stroke:var(--forest); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; opacity:.12 }.doodle-dill { width:115px; left:-54px; top:70px; transform:rotate(-12deg) }.doodle-dumplings { width:190px; right:-42px; bottom:52px; transform:rotate(6deg) }.intro { position:relative }.intro:after { content:'❧'; position:absolute; right:2%; bottom:30px; color:var(--forest); font:400 4rem var(--serif); opacity:.09; transform:rotate(-25deg) }
@media (max-width:900px) { .loyalty-visual { min-height:680px }.loyalty-card { width:52% } }
@media (max-width:760px) { .loyalty-visual { min-height:560px }.loyalty-banner { height:370px; min-height:370px }.loyalty-card { width:42%; bottom:0 }.doodle-dill { left:-30px; top:18px; width:82px }.doodle-dumplings { width:135px; right:-18px; bottom:18px }.intro:after { right:3%; bottom:16px; font-size:3rem } }

/* Полный баннер и карта постоянного гостя стоят рядом, без перекрытий */
.loyalty { grid-template-columns:.72fr 1.28fr; gap:clamp(32px,5vw,70px) }
.loyalty-visual { position:relative; display:grid; grid-template-columns:minmax(220px,.72fr) minmax(320px,1.28fr); gap:24px; align-items:center; min-height:0; overflow:visible; border-radius:0; background:transparent; box-shadow:none }
.loyalty-banner-frame,.loyalty-card-frame { margin:0; padding:8px; background:#fffaf1; border:1px solid rgba(36,52,38,.16); box-shadow:0 18px 42px rgba(42,45,31,.16) }
.loyalty-banner-frame { border-radius:16px; transform:rotate(-1deg) }
.loyalty-card-frame { border-radius:16px; transform:rotate(3deg) }
.loyalty-banner,.loyalty-card { position:static; width:100%; height:auto; min-height:0; display:block; object-fit:contain; border:0; border-radius:10px; box-shadow:none; transform:none; filter:none }

/* Аккуратные фото-настроения вместо фотографий листов меню */
.category-cover { height:215px; margin:19px 0 8px; padding:8px; overflow:hidden; border:1px solid rgba(36,52,38,.16); border-radius:14px; background:#fffaf1; box-shadow:0 12px 28px rgba(42,57,36,.10) }
.category-cover img { border-radius:8px; object-fit:cover; object-position:center }
.category-cover:after { content:'Вкус категории'; left:19px; bottom:19px; background:rgba(21,56,45,.88); backdrop-filter:blur(5px) }
.order-products>.category-cover { grid-column:1/-1; width:100%; margin-top:0; height:230px }

.pickup-time { padding:18px 0 15px; border-top:1px solid rgba(255,255,255,.18) }
.pickup-time label { display:block; margin-bottom:9px; color:#f6d379; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase }
.pickup-time select { width:100%; min-height:45px; padding:0 38px 0 12px; border:1px solid rgba(255,255,255,.28); border-radius:8px; background:#fff8ee; color:var(--forest); font:600 .8rem var(--sans) }
.pickup-time small { display:block; margin-top:8px; color:rgba(255,255,255,.58); font-size:.66rem; line-height:1.45 }
.payment-note { margin:0 0 15px; padding:11px 12px; border-radius:8px; background:rgba(255,255,255,.09); color:#fff8ee; font-size:.72rem; line-height:1.45 }
.customer-fields { display:grid; gap:7px; padding:4px 0 17px }
.customer-fields label { color:#f6d379; font-size:.67rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase }
.customer-fields label span { color:rgba(255,255,255,.5); font-weight:600; letter-spacing:0; text-transform:none }
.customer-fields input,.customer-fields textarea { width:100%; box-sizing:border-box; border:1px solid rgba(255,255,255,.28); border-radius:8px; background:#fff8ee; color:var(--forest); font:600 .8rem var(--sans); outline:none }
.customer-fields input { min-height:43px; padding:0 12px }
.customer-fields textarea { padding:11px 12px; resize:vertical }
.customer-fields input:focus,.customer-fields textarea:focus,.pickup-time select:focus { border-color:#f5c766; box-shadow:0 0 0 3px rgba(245,199,102,.18) }
.cart [data-checkout]:disabled { opacity:.65; cursor:wait }
.fulfillment { margin:0; padding:16px 0; border:0; border-top:1px solid rgba(255,255,255,.18) }
.fulfillment legend,.delivery-fields>p { padding:0; margin:0 0 10px; color:#f6d379; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase }
.fulfillment-options { display:grid; grid-template-columns:1fr 1fr; gap:8px }
.fulfillment-options label { position:relative; cursor:pointer }.fulfillment-options input { position:absolute; opacity:0; pointer-events:none }
.fulfillment-options span { display:block; min-height:62px; padding:10px; border:1px solid rgba(255,255,255,.2); border-radius:8px; background:rgba(255,255,255,.05) }
.fulfillment-options strong,.fulfillment-options small { display:block }.fulfillment-options strong { color:#fff8ee; font-size:.76rem }.fulfillment-options small { margin-top:4px; color:rgba(255,255,255,.55); font-size:.61rem; line-height:1.35 }
.fulfillment-options input:checked+span { border-color:#f5c766; background:rgba(245,199,102,.14); box-shadow:inset 0 0 0 1px #f5c766 }
.delivery-fields { padding:16px 0; border-top:1px solid rgba(255,255,255,.18) }.delivery-fields[hidden] { display:none }
.address-main,.address-extra { display:grid; gap:8px }.address-main { grid-template-columns:minmax(0,2fr) minmax(0,1fr) }.address-extra { grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:8px }
.delivery-fields label { color:rgba(255,255,255,.66); font-size:.62rem; font-weight:700 }
.delivery-fields input { width:100%; min-width:0; min-height:41px; box-sizing:border-box; margin-top:5px; padding:0 9px; border:1px solid rgba(255,255,255,.28); border-radius:8px; background:#fff8ee; color:var(--forest); font:600 .76rem var(--sans); outline:none }
.delivery-fields input:focus { border-color:#f5c766; box-shadow:0 0 0 3px rgba(245,199,102,.18) }
.product .variant-hint { display:block; margin-top:8px; color:var(--orange); font-size:.65rem; font-weight:800 }.product .add.has-options { width:auto; padding:0 11px; border-radius:99px; font-size:.68rem; font-weight:800 }
.cart-row { grid-template-columns:1fr auto auto }.cart-item-copy { min-width:0 }.cart-item-copy>span { display:block }.cart-item-copy small { display:block; margin-top:3px; color:rgba(255,255,255,.55); font-size:.62rem; line-height:1.35 }
.variant-modal { position:fixed; z-index:35; inset:0; display:grid; place-items:center; padding:20px; background:rgba(13,31,23,.62); backdrop-filter:blur(6px) }.variant-modal[hidden] { display:none }
.variant-card { position:relative; width:min(500px,100%); max-height:min(86vh,760px); overflow:auto; padding:clamp(28px,5vw,44px); border-radius:16px; background:var(--cream); box-shadow:0 26px 90px rgba(0,0,0,.33) }.variant-card>.close { position:absolute; top:17px; right:17px }.variant-card h2 { margin:0; padding-right:35px; color:var(--forest); font:700 clamp(2rem,6vw,3.1rem)/1 var(--serif); letter-spacing:-.045em }.variant-description { margin:13px 0 23px; color:#687168; font-size:.8rem; line-height:1.55 }
.variant-group { margin:0 0 22px; padding:0; border:0 }.variant-group legend { margin-bottom:9px; color:#42291f; font-size:.73rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase }.variant-options { display:grid; gap:7px }.variant-option { position:relative; cursor:pointer }.variant-option input { position:absolute; opacity:0; pointer-events:none }.variant-option span { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:44px; padding:9px 12px; border:1px solid var(--line); border-radius:8px; background:#fffdf9; color:#405044; font-size:.8rem; font-weight:700 }.variant-option em { color:var(--orange); font-style:normal; white-space:nowrap }.variant-option input:checked+span { border-color:var(--forest); background:#e7eadf; box-shadow:inset 0 0 0 1px var(--forest) }
.variant-total { display:flex; align-items:center; justify-content:space-between; margin:4px 0 18px; padding-top:16px; border-top:1px solid var(--line); color:#5a675a }.variant-total strong { color:var(--orange); font-size:1.15rem }
.notice-card [data-setup-link] { display:inline-block; margin-right:8px }
.notice-card [data-setup-link][hidden] { display:none }

/* Локальная безопасная настройка Telegram */
.setup-page { min-height:100vh; background:linear-gradient(145deg,#173c2e,#0e281f); color:var(--forest) }
.setup-shell { width:min(100% - 34px,680px); margin:0 auto; padding:50px 0 }
.setup-brand { color:#fff8ee; display:inline-flex; margin-bottom:30px }
.setup-card { padding:clamp(27px,6vw,54px); border-radius:20px; background:var(--cream); box-shadow:0 30px 80px rgba(0,0,0,.28) }
.setup-card h1 { margin:0; font:700 clamp(2.35rem,7vw,4rem)/1 var(--serif); letter-spacing:-.05em }
.setup-lead { color:#5a675a; line-height:1.65; margin:20px 0 25px }
.setup-status { display:flex; justify-content:space-between; gap:12px; padding:15px 17px; margin:0 0 24px; border:1px solid var(--line); border-radius:10px; background:#fffaf1; font-size:.8rem }
.setup-status span { color:#687168; text-align:right }.setup-status.is-ready { border-color:#8ca98d; background:#edf3e9 }.setup-status.is-waiting { border-color:#ddb96d; background:#fff6df }
.setup-card form { display:grid; gap:10px }.setup-card form label { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em }
.setup-card input { min-height:50px; padding:0 14px; border:1px solid var(--line); border-radius:9px; background:#fffdf9; color:var(--forest); font:600 .9rem var(--sans) }
.setup-card form small { color:#73786f; font-size:.7rem; line-height:1.5; margin-bottom:5px }
.setup-actions { padding-top:2px }.setup-actions p { color:#596659; line-height:1.6 }.setup-actions code { padding:3px 6px; border-radius:5px; background:#eadcc4; color:#42291f }
.setup-actions .button { margin:4px 6px 4px 0 }.setup-actions .button-ghost { color:var(--forest); border-color:var(--line) }.setup-actions button:disabled { opacity:.45 }
.setup-message { min-height:24px; color:var(--orange); font-weight:700; font-size:.8rem; line-height:1.5; margin:20px 0 0 }
.setup-back { display:inline-block; margin-top:22px; color:#fff8ee; text-decoration:none }
@media (max-width:560px) { .setup-shell { padding:26px 0 }.setup-status { flex-direction:column }.setup-status span { text-align:left }.setup-actions .button { width:100%; margin-right:0 } }
@media (max-width:760px) { .order-panel { max-width:100vw; overflow-x:hidden }.order-layout>* { min-width:0 }.address-extra { grid-template-columns:1fr 1fr } }
@media (max-width:430px) { .fulfillment-options { grid-template-columns:1fr }.variant-card { padding:31px 20px 24px } }

@media (max-width:900px) {
  .loyalty { grid-template-columns:1fr }
  .loyalty-visual { grid-template-columns:minmax(210px,.7fr) minmax(330px,1.3fr); min-height:0 }
}
@media (max-width:760px) {
  .loyalty-visual { grid-template-columns:1fr; gap:22px; min-height:0 }
  .loyalty-banner-frame { width:min(82%,360px); justify-self:center; transform:rotate(-1deg) }
  .loyalty-card-frame { width:92%; justify-self:center; transform:rotate(2deg) }
  .loyalty-banner,.loyalty-card { height:auto; min-height:0 }
  .category-cover { height:190px }
  .order-products>.category-cover { height:190px }
  .doodle-dill { left:0 }
  .doodle-dumplings { right:8px }
}

/* Единая рекламная композиция клуба постоянных гостей */
.loyalty { grid-template-columns:.64fr 1.36fr; gap:clamp(24px,4vw,54px); padding-top:78px; padding-bottom:42px }
.loyalty-visual { position:relative; display:block; width:min(100%,730px); min-height:0; padding:2px 0 7% 8%; justify-self:end; overflow:visible }
.loyalty-banner-frame { position:relative; z-index:1; width:94%; margin:0 0 0 auto; padding:8px; border-radius:16px; transform:rotate(1deg); background:#fffaf1; border:1px solid rgba(36,52,38,.16); box-shadow:0 20px 48px rgba(42,45,31,.18) }
.loyalty-card-frame { position:absolute; z-index:2; width:36%; left:1%; bottom:4%; margin:0; padding:7px; border-radius:14px; transform:rotate(-4deg); background:#fffaf1; border:1px solid rgba(36,52,38,.16); box-shadow:0 17px 38px rgba(42,45,31,.24) }
.loyalty-banner,.loyalty-card { position:static; width:100%; height:auto; min-height:0; display:block; border:0; border-radius:9px; box-shadow:none; transform:none; filter:none }
.loyalty + .taste { padding-top:64px }

/* Минималистичные 2D-обложки категорий */
.category-cover.category-illustration { position:relative; isolation:isolate; display:grid; place-items:center; height:220px; margin:19px 0 8px; padding:18px; overflow:hidden; border:1px solid rgba(27,59,45,.14); border-radius:14px; background:linear-gradient(145deg,#f6e8d2,#efe0c6); box-shadow:0 12px 28px rgba(42,57,36,.09) }
.category-cover.category-illustration:before { content:''; position:absolute; inset:0; z-index:-1; opacity:.32; background-image:radial-gradient(rgba(21,56,45,.22) 1px,transparent 1.5px); background-size:18px 18px }
.category-cover.category-illustration:after { content:none }
.category-illustration figcaption { position:relative; z-index:2; width:min(78%,490px); padding:10px 12px; text-align:center }
.category-illustration figcaption strong { display:block; color:#42291f; font:800 clamp(1.45rem,2.8vw,2.3rem)/1.06 var(--serif); letter-spacing:-.04em }
.category-illustration figcaption small { display:block; margin-bottom:5px; color:var(--orange); font-size:.61rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase }
.category-doodle-field { position:absolute; inset:0; z-index:1 }
.category-doodle { position:absolute; width:94px; height:auto; fill:none; stroke:var(--forest); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; opacity:.8 }
.category-doodle.doodle-1 { left:3%; top:5%; transform:rotate(-12deg) }
.category-doodle.doodle-2 { right:3%; bottom:3%; transform:rotate(13deg) scale(.92) }
.category-doodle.doodle-3 { right:6%; top:3%; transform:rotate(17deg) scale(.58); opacity:.52 }
.category-fried { background:linear-gradient(145deg,#f5dfc4,#eccca8)!important }
.category-fried .category-doodle { stroke:#a34b2d }
.category-frozen { background:linear-gradient(145deg,#e9eee6,#d7e3dc)!important }
.category-frozen .category-doodle { stroke:#416a63 }
.category-cold { background:linear-gradient(145deg,#e6eee7,#d9e8df)!important }
.category-cold .category-doodle { stroke:#2f6961 }
.category-hot { background:linear-gradient(145deg,#ead9c7,#ddc3a8)!important }
.category-hot .category-doodle { stroke:#7f4c31 }
.category-pancakes { background:linear-gradient(145deg,#f7e4c8,#efd3ae)!important }
.category-pancakes .category-doodle { stroke:#b15b34 }
.category-extras { background:linear-gradient(145deg,#f2e5d3,#ead6bf)!important }
.category-extras .category-doodle { stroke:#8a4934 }
.category-combo { background:linear-gradient(145deg,#dfe8dc,#cbdacb)!important }
.order-products>.category-cover.category-illustration { grid-column:1/-1; width:100%; height:230px; margin-top:0 }

@media (max-width:900px) {
  .loyalty { grid-template-columns:1fr; gap:38px }
  .loyalty-visual { width:min(100%,560px) }
}
@media (max-width:760px) {
  .loyalty { padding-top:62px; padding-bottom:34px }
  .loyalty-visual { display:block; width:100%; min-height:0; padding:2px 0 11% 9% }
  .loyalty-banner-frame { width:96%; margin-left:auto; transform:rotate(1deg) }
  .loyalty-card-frame { width:42%; left:0; right:auto; bottom:3%; transform:rotate(-4deg) }
  .category-cover.category-illustration,.order-products>.category-cover.category-illustration { height:185px }
  .category-doodle { width:74px }
  .category-illustration figcaption { width:80%; padding:13px 12px }
  .category-illustration figcaption strong { font-size:1.35rem }
  .loyalty + .taste { padding-top:54px }
}

/* Новые условия клуба, доставки и оплаты */
.loyalty-threshold { display:flex; align-items:center; gap:13px; max-width:470px; margin-top:12px; padding:13px 15px; border:1px solid rgba(220,88,46,.24); border-radius:10px; background:linear-gradient(135deg,#fffaf1,#f6ead7) }
.loyalty-threshold>span { flex:0 0 auto; padding:8px 11px; border-radius:99px; background:var(--orange); color:#fff; font-size:.72rem; font-weight:800; white-space:nowrap }
.loyalty-threshold p { margin:0; color:#687168; font-size:.71rem; line-height:1.45 }
.loyalty-threshold strong { color:var(--forest); font-size:.76rem }
.cart-summary { margin:13px 0 4px; padding-bottom:4px; border-bottom:1px solid rgba(255,255,255,.18) }
.cart-subtotal,.cart-delivery,.cart-total { display:flex; align-items:flex-start; justify-content:space-between; gap:14px }
.cart-subtotal,.cart-delivery { padding:5px 0; color:rgba(255,255,255,.7); font-size:.72rem }
.cart-subtotal strong,.cart-delivery strong { color:#fff8ee; white-space:nowrap }
.cart-delivery small { display:block; margin-top:3px; color:#f5c766; font-size:.59rem }
.cart-delivery[hidden] { display:none }
.cart-summary .cart-total { margin:9px 0 10px; padding-top:9px; border-top:1px solid rgba(255,255,255,.1) }
.payment-method { padding-top:17px }

/* Кликабельные зоны на рекламных баннерах */
.promo-hotspots { position:absolute; inset:0; z-index:2 }
.promo-hotspot { position:absolute; border:0; border-radius:14px; background:transparent; color:#fff; outline:none }
.promo-hotspot span { position:absolute; right:10px; bottom:9px; max-width:75%; padding:7px 10px; border-radius:99px; background:rgba(21,56,45,.9); box-shadow:0 5px 18px rgba(0,0,0,.22); font-size:.62rem; font-weight:800; opacity:0; transform:translateY(5px); transition:opacity .2s ease,transform .2s ease }
.promo-hotspot:hover,.promo-hotspot:focus-visible { background:rgba(255,248,238,.08); box-shadow:inset 0 0 0 2px rgba(255,255,255,.72) }
.promo-hotspot:hover span,.promo-hotspot:focus-visible span { opacity:1; transform:translateY(0) }
.promo-combo .combo-one { left:2%; right:2%; top:18%; height:28% }
.promo-combo .combo-two { left:2%; right:2%; top:46%; height:25% }
.promo-combo .combo-three { left:2%; right:2%; top:71%; height:27% }
.promo-new .new-syrniki { left:2%; width:52%; top:19%; height:49% }
.promo-new .new-tea { right:2%; width:44%; top:19%; height:49% }
.promo-card>.promo-label { z-index:3; pointer-events:none }

/* Тарелка мягко прокатывается по безопасной правой зоне первого экрана */
.hero-dumplings { will-change:transform,opacity; transform:translate3d(calc(50% + var(--plate-x,0px)),var(--plate-y,0),0) rotate(var(--plate-turn,0deg)); opacity:var(--plate-opacity,1); transform-origin:52% 52% }
.hero-dumplings { width:min(43vw,650px); height:auto; aspect-ratio:1296/1213; right:2%; top:110px; overflow:visible; border-radius:0 }
.hero-dumplings img { width:100%; height:100%; object-fit:contain; object-position:center; border-radius:0 }
.hero-plate-backdrop { position:absolute; z-index:0; width:min(53vw,760px); height:300px; right:-7%; top:205px; border-radius:170px 0 0 170px; background:#10382d; box-shadow:none; pointer-events:none }
@media (min-width:1101px) { .hero h1 { max-width:65% } }
@media (prefers-reduced-motion:reduce) { .hero-dumplings { will-change:auto!important; transform:none!important; opacity:1!important } }
@media (min-width:761px) and (max-width:1100px) {
  .hero h1 { max-width:55%; font-size:clamp(3.1rem,6.5vw,4.7rem) }
  .hero-dumplings { width:32vw; right:2%; top:215px }
  .hero-plate-backdrop { width:48vw; height:220px; right:-8%; top:255px; border-radius:130px 0 0 130px }
}
@media (max-width:760px) {
  .hero { min-height:820px }
  .hero-dumplings { width:clamp(145px,28vw,190px); height:auto; right:8px; top:605px; aspect-ratio:1296/1213; overflow:visible; border-radius:0 }
  .hero-dumplings img { object-fit:contain }
  .hero-plate-backdrop { width:270px; height:145px; right:-95px; top:635px; border-radius:90px 0 0 90px }
  .promo-hotspot span { opacity:.9; font-size:.55rem; padding:6px 8px }
  .loyalty-threshold { align-items:flex-start }
}
@media (max-width:420px) { .hero-dumplings { width:145px; height:auto; right:8px; top:620px }.hero-plate-backdrop { width:230px; height:130px; right:-84px; top:642px } }
@media (max-height:500px) and (orientation:landscape) { .hero-dumplings { width:28vw; height:auto; right:2%; top:92px }.hero-plate-backdrop { width:42vw; height:150px; right:-8%; top:120px; border-radius:90px 0 0 90px } }

/* Плотная компоновка клуба постоянных гостей */
.loyalty-copy>p:not(.section-kicker) { margin:18px 0 17px }
.loyalty-threshold { margin-top:9px; padding:10px 12px }
@media (max-width:900px) {
  .loyalty { gap:20px; padding-top:54px; padding-bottom:30px }
  .loyalty-visual { margin-top:0 }
}
@media (max-width:760px) {
  .loyalty { gap:14px; padding-top:48px; padding-bottom:26px }
  .loyalty h2 { font-size:clamp(2rem,9.5vw,3rem) }
  .loyalty-copy>p:not(.section-kicker) { margin:13px 0 12px; line-height:1.55 }
  .loyalty-rewards { grid-template-columns:1fr 1fr; gap:7px }
  .loyalty-rewards>div { gap:8px; padding:9px }
  .loyalty-rewards span { flex-basis:34px; height:34px; font-size:.9rem }
  .loyalty-rewards p { font-size:.63rem }
  .loyalty-threshold { gap:9px; margin-top:7px; padding:9px 10px }
  .loyalty-threshold>span { padding:6px 8px; font-size:.64rem }
  .loyalty-threshold p { font-size:.64rem; line-height:1.35 }
  .loyalty-threshold strong { font-size:.68rem }
  .loyalty-visual { padding-bottom:9% }
}
