/* ============ БАЗА ============ */
:root{
    --paper:#f6e8d0;
    --cream:#fbf2e0;
    --amber:#e79b3f;
    --amber-soft:#ffd9a3;
    --rust:#b8501f;
    --carpet:#7d2a1c;
    --carpet-deep:#571a12;
    --olive:#6f7c48;
    --olive-dark:#4c5630;
    --wood:#6a4426;
    --ink:#35241a;
    --ink-soft:#5d4433;
}

* {margin:0; padding:0; box-sizing:border-box;}

html{scroll-behavior:smooth; scroll-padding-top:92px;}

body{
    font-family:'Old Standard TT', serif;
    background:var(--paper);
    color:var(--ink);
    overflow-x:hidden;
}

/* зернистость плёнки поверх всего */
body::after{
    content:""; position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.05;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img{max-width:100%; display:block;}
a{color:inherit;}

h1,h2,h3{font-family:'Prata', serif; font-weight:400; line-height:1.15;}
h2{font-size:clamp(1.7rem, 4vw, 2.8rem);}
h2 em{font-family:'Caveat', cursive; font-style:normal; color:var(--rust); font-size:1.1em;}

.wrap{max-width:1160px; margin:0 auto; padding:0 22px;}
.section{padding:96px 0;}

.overline{
    font-family:'Caveat', cursive; font-size:1.5rem; color:var(--rust);
    letter-spacing:.02em; margin-bottom:.4rem;
}
.overline-light{color:var(--amber-soft);}

.lead{font-size:1.2rem; line-height:1.55; margin:1rem 0;}
.hand-note{font-family:'Caveat', cursive; font-size:1.45rem; color:var(--rust); margin-top:1.2rem; transform:rotate(-1.5deg);}
.big-hand{font-size:1.8rem; color:var(--amber-soft);}

section{position:relative;}

/* фестончатый «кружевной» край между секциями */
.scallop{
    height:22px;
    background:radial-gradient(circle at 50% 0, var(--sc) 0 11px, transparent 11.8px);
    background-size:22px 22px; background-repeat:repeat-x;
}

/* ============ ШАПКА ============ */
#siteHeader{
    position:fixed; top:0; left:0; right:0; z-index:50;
    transition:background .35s, box-shadow .35s; color:var(--cream);
}
#siteHeader.scrolled{
    background:rgba(246,232,208,.93); backdrop-filter:blur(10px);
    color:var(--ink); box-shadow:0 6px 24px rgba(70,35,10,.14);
}
.header-in{
    max-width:1240px; margin:0 auto; padding:16px 22px;
    display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.logo{display:flex; align-items:center; gap:.6rem; text-decoration:none;}
.logo-cherry{width:38px; height:38px;}
.logo-text{font-family:'Prata', serif; font-size:1.15rem;}

.nav{display:flex; gap:1.6rem;}
.nav a{
    text-decoration:none; font-size:1rem; letter-spacing:.03em;
    border-bottom:1px dashed transparent; padding-bottom:2px; transition:border-color .25s;
}
.nav a:hover{border-color:currentColor;}

.header-socials{display:flex; align-items:center; gap:.9rem;}
.header-socials a{display:inline-flex; width:22px; height:22px;}
.header-socials svg{width:100%; height:100%; fill:currentColor;}

.burger{display:none; background:none; border:none; cursor:pointer; width:30px; height:22px; position:relative;}
.burger span{position:absolute; left:0; right:0; height:2px; background:currentColor; transition:.3s;}
.burger span:nth-child(1){top:0;}
.burger span:nth-child(2){top:10px;}
.burger span:nth-child(3){top:20px;}

/* ============ ГЕРОЙ ============ */
.hero{
    min-height:100svh; display:flex; align-items:center; justify-content:center; 
    text-align:center; color:var(--cream); overflow:hidden; 
    background:linear-gradient(160deg, var(--carpet) 0%, var(--carpet-deep) 70%);
}
.hero-bg, .hero-bg img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hero-shade{position:absolute; inset:0; background:radial-gradient(ellipse at 50% 45%, rgba(40,10,5,.25) 0%, rgba(30,8,4,.78) 100%);}
.hero-content{position:relative; z-index:2; max-width:820px; padding:110px 22px 90px;}
.hero-plate{width:150px; margin:0 auto 1rem; display:block; filter:drop-shadow(0 4px 14px rgba(0,0,0,.4));}
.hero-kicker{letter-spacing:.28em; text-transform:uppercase; font-size:.8rem; color:var(--amber-soft); margin-bottom:1.1rem;}
.hero h1{font-size:clamp(2.8rem, 8vw, 5.6rem); text-shadow:0 6px 30px rgba(0,0,0,.45);}
.hero-tag{font-family:'Caveat', cursive; font-size:clamp(1.6rem, 3.5vw, 2.2rem); color:var(--amber-soft); margin:.7rem 0 1rem; transform:rotate(-1deg);}
.hero-sub{max-width:520px; margin:0 auto; line-height:1.6; font-size:1.05rem; opacity:.92;}
.hero-chips{display:flex; gap:.7rem; justify-content:center; flex-wrap:wrap; margin:1.6rem 0 2rem;}
.chip{
    background:rgba(20,5,2,.4); border:1px solid rgba(255,217,163,.4);
    border-radius:999px; padding:.5rem 1.1rem; font-size:.92rem; backdrop-filter:blur(4px);
}
.hero-cta{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;}

.btn{
    display:inline-block; padding:.9rem 1.9rem; border-radius:999px; text-decoration:none;
    font-family:'Old Standard TT', serif; font-size:1rem; letter-spacing:.04em;
    transition:transform .25s, box-shadow .25s; border:2px solid transparent;
}
.btn:hover{transform:translateY(-3px);}
.btn-light{background:var(--amber-soft); color:var(--carpet-deep); box-shadow:0 8px 24px rgba(0,0,0,.3);}
.btn-ghost{border-color:rgba(255,217,163,.6); color:var(--amber-soft);}
.btn-dark{background:var(--carpet); color:var(--cream);}
.btn-ghost-dark{border-color:rgba(53,36,26,.4); color:var(--ink);}

.hero-scroll{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2; width:26px; height:42px; border:2px solid rgba(255,217,163,.6); border-radius:14px;}
.hero-scroll span{position:absolute; top:7px; left:50%; width:4px; height:8px; margin-left:-2px; border-radius:2px; background:var(--amber-soft); animation:drip 1.8s ease-in-out infinite;}

@keyframes drip{
    0%{opacity:0; transform:translateY(0);}
    30%{opacity:1;}
    100%{opacity:0; transform:translateY(14px);}
}

/* ============ БЕГУЩАЯ СТРОКА ============ */
.marquee{background:var(--rust); color:var(--cream); overflow:hidden; padding:.75rem 0; transform:rotate(-1.2deg) scale(1.03); box-shadow:0 8px 24px rgba(90,26,18,.25);}
.marquee-track{display:flex; gap:3rem; width:max-content; animation:mq 30s linear infinite; font-size:1.05rem; letter-spacing:.06em;}
@keyframes mq{to{transform:translateX(-50%)}}

/* ============ АТМОСФЕРА ============ */
.atmos{background:var(--paper);}
.two-col{display:grid; grid-template-columns:1.15fr .85fr; gap:4rem; align-items:center;}
.press{
    margin-top:1.6rem; padding:1.1rem 1.4rem; background:var(--cream);
    border-left:4px solid var(--amber); border-radius:0 14px 14px 0;
    font-style:italic; line-height:1.55; box-shadow:0 8px 22px rgba(90,50,15,.08);
}
.press cite{display:block; margin-top:.6rem; font-style:normal; font-family:'Caveat', cursive; font-size:1.2rem; color:var(--ink-soft);}

/* телефон-рамка для вертикальных видео */
.phone-col{text-align:center;}
.phone{
    width:min(330px, 86vw); aspect-ratio:9/16; margin:0 auto; overflow:hidden;
    border-radius:30px; border:10px solid var(--wood); background:#1d0d07;
    box-shadow:0 24px 60px rgba(70,30,8,.35), inset 0 0 0 2px rgba(255,217,163,.25);
}
.phone video{width:100%; height:100%; object-fit:cover; cursor:pointer;}
.phone-caption{margin-top:1rem;}

/* ============ ДЕТАЛИ / ОТКРЫТКИ ============ */
.detali{background:var(--cream);}
.section-head{max-width:680px; margin:0 auto 3.4rem; text-align:center;}
.section-sub{margin-top:.9rem; line-height:1.6; color:var(--ink-soft);}

.gallery{display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:2.6rem 1.8rem;}
.postcard{
    position:relative; background:#fffdf6; padding:.8rem .8rem 1rem; cursor:zoom-in;
    box-shadow:0 14px 34px rgba(70,35,10,.16);
    transform:rotate(var(--r, 0deg));
    transition:transform .4s cubic-bezier(.2,.8,.3,1.2), box-shadow .4s;
}
.postcard:nth-child(3n+1){--r:-2.1deg;}
.postcard:nth-child(3n+2){--r:1.7deg;}
.postcard:nth-child(3n){--r:-1.1deg;}
.postcard:hover{transform:rotate(0deg) translateY(-8px) scale(1.02); box-shadow:0 26px 50px rgba(70,35,10,.26); z-index:2;}

/* «скотч» */
.postcard::before{
    content:""; position:absolute; top:-13px; left:50%; width:96px; height:28px;
    transform:translateX(-50%) rotate(-3deg); opacity:.85;
    background:repeating-linear-gradient(45deg, rgba(231,155,63,.75) 0 6px, rgba(231,155,63,.55) 6px 12px);
    box-shadow:0 2px 6px rgba(70,35,10,.15);
}
.postcard img{width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--paper);}
.postcard figcaption{padding-top:.8rem; font-size:.95rem; line-height:1.4; color:var(--ink-soft); text-align:center;}

/* ============ ВИДЕО ============ */
.video-sec{background:var(--paper);}
.phones{display:flex; gap:3rem; justify-content:center; flex-wrap:wrap;}
.video-hint{text-align:center; opacity:.8;}

/* ============ МЕНЮ ============ */
.menu-sec{background:var(--cream);}
.menu-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:2rem; max-width:920px; margin:0 auto;}
.menu-card{
    background:#fffdf6; border:2px dashed rgba(184,80,31,.45); border-radius:22px;
    padding:2rem 2rem 1.6rem; box-shadow:0 14px 34px rgba(70,35,10,.1);
}
.menu-card h3{font-size:1.4rem; margin-bottom:1.3rem; color:var(--carpet);}
.menu-card ul{list-style:none;}
.menu-card li{
    display:flex; justify-content:space-between; gap:1rem; align-items:baseline;
    padding:.75rem 0; border-bottom:1px dotted rgba(106,68,38,.35);
}
.menu-card li:last-child{border-bottom:none;}
.m-name{font-size:1.06rem; font-weight:700;}
.m-name i{display:block; font-weight:400; font-style:italic; font-size:.92rem; color:var(--ink-soft); margin-top:.15rem;}
.m-price{font-family:'Caveat', cursive; font-size:1.3rem; color:var(--rust); white-space:nowrap;}

/* ============ ОТЗЫВЫ ============ */
.reviews-sec{background:var(--paper);}
.rating-badge{margin-top:1rem; font-size:1.1rem;}
.rating-badge .stars{color:var(--amber); letter-spacing:.15em; font-size:1.3rem;}
.rating-badge strong{font-size:1.4rem; margin-left:.4rem;}
.rating-src{color:var(--ink-soft);}

.reviews-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:1.6rem; margin-top:2.6rem;}
.review{
    background:var(--cream); border-radius:18px; padding:1.7rem 1.6rem 1.4rem; position:relative;
    box-shadow:0 12px 30px rgba(70,35,10,.1); display:flex; flex-direction:column; gap:.9rem;
    border:1px solid rgba(122,60,20,.12);
}
.review::before{
    content:"«"; position:absolute; top:.4rem; left:1.1rem;
    font-family:'Prata', serif; font-size:3rem; color:var(--amber); opacity:.7;
}
.review .r-stars{color:var(--amber); letter-spacing:.12em;}
.review p{line-height:1.55; font-size:.98rem; flex:1;}
.review .r-author{font-family:'Caveat', cursive; font-size:1.25rem; color:var(--rust);}
.review .r-src{font-size:.8rem; color:var(--ink-soft); opacity:.75;}
.review-note{text-align:center; min-height:1.5em;}
.reviews-cta{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:2.2rem;}

/* ============ КОНТАКТЫ ============ */
.contacts{background:var(--carpet); color:var(--cream);}
.contacts-grid{display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center;}
.light-lead{color:var(--amber-soft);}
.contact-list{list-style:none; margin-top:1.6rem; display:grid; gap:.9rem;}
.contact-list li{display:grid; grid-template-columns:110px 1fr; gap:1rem; align-items:baseline;}
.contact-list strong{font-family:'Caveat', cursive; font-size:1.3rem; color:var(--amber-soft); font-weight:500;}
.contact-list a{color:var(--cream);}

.map-frame{
    border-radius:22px; overflow:hidden; border:8px solid var(--wood);
    box-shadow:0 24px 60px rgba(0,0,0,.35); background:var(--cream);
}
.map-frame iframe{width:100%; height:420px; border:0; display:block; filter:sepia(.25) saturate(.9);}

/* ============ ФУТЕР ============ */
.footer{background:var(--carpet-deep); color:var(--cream); padding:2.6rem 0; text-align:center;}
.footer-logo{font-family:'Prata', serif; font-size:1.3rem; margin-bottom:.5rem;}
.footer-small{margin-top:.5rem; font-family:'Caveat', cursive; font-size:1.2rem; color:var(--amber-soft);}

/* ============ ЛАЙТБОКС ============ */
.lightbox{
    position:fixed; inset:0; z-index:100; background:rgba(30,10,5,.9); backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center; padding:24px;
}
.lightbox[hidden]{display:none;}
.lightbox figure{max-width:min(560px, 92vw); text-align:center;}
.lightbox img{max-height:78vh; width:auto; max-width:100%; margin:0 auto; border:10px solid #fffdf6; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.lightbox figcaption{color:var(--cream); margin-top:1rem; font-size:1.05rem;}
.lb-close{
    position:absolute; top:18px; right:22px; width:48px; height:48px; border-radius:50%;
    border:2px solid var(--amber-soft); background:none; color:var(--amber-soft);
    font-size:1.2rem; cursor:pointer; transition:transform .25s;
}
.lb-close:hover{transform:rotate(90deg);}

/* ============ ПОЯВЛЕНИЕ ============ */
.rv, .rv-r{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
.rv-r{transform:translateX(36px);}
.rv.visible, .rv-r.visible{opacity:1; transform:none;}

/* ============ АДАПТИВ ============ */
@media(max-width:900px){
    .two-col, .contacts-grid{grid-template-columns:1fr; gap:3rem;}
    .nav{
        position:fixed; top:70px; right:16px; left:16px; flex-direction:column; gap:1.1rem;
        background:var(--cream); color:var(--ink); border-radius:18px; padding:1.6rem;
        box-shadow:0 20px 50px rgba(70,35,10,.3);
        opacity:0; pointer-events:none; transform:translateY(-12px); transition:.3s;
    }
    .nav.open{opacity:1; pointer-events:auto; transform:none;}
    .burger{display:block;}
    #siteHeader{background:rgba(246,232,208,.93); color:var(--ink);}
}

@media(max-width:560px){
    .section{padding:70px 0;}
    .contact-list li{grid-template-columns:1fr; gap:.15rem;}
    .gallery{gap:2rem;}
}

@media(prefers-reduced-motion:reduce){
    *{animation:none !important; transition:none !important; scroll-behavior:auto;}
}