/* ================================
   ПЕРЕМЕННЫЕ
================================ */
:root {
    --color-wine: #5C1A1B;
    --color-wine-dark: #431314;
    --color-gold: #C9A227;
    --color-beige: #F5EDE0;
    --color-beige-dark: #EADFCB;
    --color-brown: #2B1B12;
    --color-text: #2B1B12;
    --color-text-light: #6B5B4E;
    --color-white: #FFFFFF;
    --color-overlay: rgba(43, 27, 18, 0.65);

    --font-heading: 'Playfair Display', Georgia, serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

    --container: 1200px;
    --radius: 8px;
    --radius-lg: 16px;

    --shadow-sm: 0 2px 8px rgba(43, 27, 18, 0.08);
    --shadow-md: 0 8px 24px rgba(43, 27, 18, 0.12);
    --shadow-lg: 0 16px 48px rgba(43, 27, 18, 0.18);

    --transition: 0.3s ease;
}

/* ================================
   СБРОС И БАЗА
================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

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

body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-beige);
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    display: block;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition);
}

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
}

ul {
    list-style: none;
}

/* ================================
   КОНТЕЙНЕР
================================ */
.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 20px;
}

/* ================================
   ТИПОГРАФИКА
================================ */
.section__title {
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-brown);
    margin-bottom: 16px;
    text-align: center;
}

.section__title--light {
    color: var(--color-white);
}

.section__subtitle {
    font-size: 17px;
    color: var(--color-text-light);
    text-align: center;
    max-width: 720px;
    margin: 0 auto 48px;
}

.section__subtitle--light {
    color: rgba(255, 255, 255, 0.85);
}

/* ================================
   КНОПКИ
================================ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    font-size: 15px;
    font-weight: 500;
    border-radius: var(--radius);
    transition: all var(--transition);
    white-space: nowrap;
    cursor: pointer;
    text-align: center;
}

.btn--primary {
    background-color: var(--color-wine);
    color: var(--color-white);
    border: 2px solid var(--color-wine);
}

.btn--primary:is(:hover, .pointer-hover) {
    background-color: var(--color-wine-dark);
    border-color: var(--color-wine-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn--outline {
    background-color: transparent;
    color: var(--color-white);
    border: 2px solid var(--color-white);
}

.btn--outline:is(:hover, .pointer-hover) {
    background-color: var(--color-white);
    color: var(--color-brown);
    transform: translateY(-2px);
}

.btn--outline-dark {
    background-color: transparent;
    color: var(--color-wine);
    border: 2px solid var(--color-wine);
}

.btn--outline-dark:is(:hover, .pointer-hover) {
    background-color: var(--color-wine);
    color: var(--color-white);
    transform: translateY(-2px);
}

.btn--lg {
    padding: 18px 36px;
    font-size: 16px;
}

.btn--full {
    width: 100%;
}

/* ================================
   ШАПКА
================================ */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background-color: rgba(245, 237, 224, 0.95);
    backdrop-filter: blur(10px);
    transition: box-shadow var(--transition), background-color var(--transition);
}

.header--scrolled {
    box-shadow: var(--shadow-sm);
    background-color: rgba(245, 237, 224, 0.98);
}

.header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
    gap: 24px;
}

.logo {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.logo__main {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 700;
    color: var(--color-wine);
}

.logo__sub {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--color-text-light);
}

.nav {
    display: flex;
    gap: 32px;
}

.nav__link {
    font-size: 15px;
    font-weight: 500;
    color: var(--color-text);
    position: relative;
}

.nav__link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--color-gold);
    transition: width var(--transition);
}

.nav__link:is(:hover, .pointer-hover)::after {
    width: 100%;
}

.nav__link:is(:hover, .pointer-hover) {
    color: var(--color-wine);
}

.burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
}

.burger span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--color-brown);
    transition: all var(--transition);
}

.burger.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.burger.active span:nth-child(2) {
    opacity: 0;
}

.burger.active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ================================
   HERO
================================ */
.hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 120px 0 80px;
}

.hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(43, 27, 18, 0.55) 0%,
        rgba(43, 27, 18, 0.7) 100%
    );
}

.hero__content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: var(--color-white);
    max-width: 900px;
}

.hero__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 5.5vw, 64px);
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 24px;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

.hero__subtitle {
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.5;
    margin-bottom: 40px;
    color: rgba(255, 255, 255, 0.92);
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.hero__buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 40px;
}

.hero__info {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.75);
    letter-spacing: 0.3px;
}

/* ================================
   УТП
================================ */
.usp {
    padding: 100px 0;
    background-color: var(--color-beige);
}

.usp__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 32px;
}

.usp__card {
    background-color: var(--color-white);
    padding: 40px 32px 36px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition), box-shadow var(--transition);
    position: relative;
    overflow: hidden;
}

.usp__number {
    display: block;
    font-family: var(--font-heading);
    font-size: 48px;
    font-weight: 700;
    line-height: 1;
    color: var(--color-wine);
    margin-bottom: 16px;
    letter-spacing: -1px;
}

.usp__line {
    display: block;
    width: 40px;
    height: 2px;
    background-color: var(--color-gold);
    margin-bottom: 24px;
    transition: width 0.4s ease;
}

.usp__title {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brown);
    margin-bottom: 12px;
    line-height: 1.25;
}

.usp__text {
    font-size: 15px;
    color: var(--color-text-light);
    line-height: 1.6;
}
/* ================================
   МЕНЮ
================================ */
.menu {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 38px 0 64px;
    background: radial-gradient(ellipse at 50% 25%, #fffaf1 0, #f7eddf 65%, #eee0cb 100%);
}

.menu__decor { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.menu__decor img { position: absolute; }
.menu__decor-jug { top: 0; left: 0; width: clamp(300px, 33vw, 560px); }
.menu__decor-mountains { top: -28px; right: -12px; width: clamp(320px, 31vw, 520px); opacity: .38; }
.menu__decor-pomegranate { bottom: -24px; left: 0; width: clamp(380px, 39vw, 650px); }
.menu > .container, .menu > .menu__grid { position: relative; z-index: 1; }
.menu__ornament { width: 390px; height: auto; margin: 0 auto 18px; }
.menu .section__title { color: #4b100d; }
.menu .section__subtitle { max-width: 900px; margin-bottom: 48px; }
.menu__full-link { display: inline-block; position: relative; width: 300px; max-width: 80%; vertical-align: middle; border-radius: 999px; }
.menu__full-link img { width: 100%; height: auto; }
.menu__full-link:focus-visible { outline: 2px solid var(--color-wine); outline-offset: 5px; }
.menu .menu__cta { position: relative; }
.menu .menu__cta::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(640px, 85vw);
    height: 50px;
    background: url('images/menu-decor/ornament.webp') center / 100% auto no-repeat;
    pointer-events: none;
}
@media (max-width: 700px) {
    .menu { padding-top: 34px; padding-bottom: 44px; }
    .menu__ornament { width: min(260px, 70%); margin-bottom: 24px; }
    .menu__decor-jug { width: 250px; left: -92px; opacity: .55; }
    .menu__decor-mountains { width: 260px; top: 20px; right: -100px; opacity: .2; }
    .menu__decor-pomegranate { width: 340px; bottom: -18px; left: -130px; }
    .menu .section__subtitle { margin-bottom: 32px; }
    .menu__full-link { width: 270px; }
}

.menu__grid {
    display: flex;
    gap: 24px;
    overflow: hidden;
    padding: 12px 0 24px;
    margin-bottom: 32px;
    touch-action: pan-y;
}

.menu__grid--animated {
    display: block;
    position: relative;
    height: calc(var(--menu-card-height) + 36px);
}

.menu__grid--animated > .menu__card {
    position: absolute;
    top: 12px;
    left: 0;
    height: var(--menu-card-height);
}

.menu__card {
    flex: 0 0 clamp(260px, 28vw, 340px);
    width: clamp(260px, 28vw, 340px);
    display: flex;
    flex-direction: column;
    background-color: var(--color-beige);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.menu__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.menu__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-beige-dark), var(--color-beige));
    color: var(--color-text-light);
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.menu__name {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 600;
    color: var(--color-brown);
    padding: 20px 24px 8px;
}

.menu__desc {
    font-size: 14px;
    color: var(--color-text-light);
    padding: 0 24px 12px;
}

.menu__price {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-top: auto;
    font-size: 18px;
    font-weight: 600;
    color: var(--color-wine);
    padding: 0 24px 24px;
}

.menu__weight {
    font-size: 14px;
    font-weight: 400;
    color: var(--color-text-light);
    white-space: nowrap;
}

.menu__cta {
    text-align: center;
}

/* ================================
   БАНКЕТЫ
================================ */
.banquets {
    padding: 100px 0;
    background-color: var(--color-brown);
    position: relative;
    overflow: hidden;
}

.banquets__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}

.banquets__content {
    color: var(--color-white);
}

.banquets__content .section__title {
    text-align: left;
    margin-bottom: 20px;
}

.banquets__content .section__subtitle {
    text-align: left;
    margin: 0 0 32px;
    color: rgba(255, 255, 255, 0.8);
}

.banquets__list {
    margin-bottom: 36px;
}

.banquets__list li {
    position: relative;
    padding: 8px 0 8px 32px;
    font-size: 16px;
    color: rgba(255, 255, 255, 0.9);
}

.banquets__list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 8px;
    color: var(--color-gold);
    font-weight: 700;
    font-size: 18px;
}

.banquets__note {
    margin-top: 16px;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.65);
}

.banquets__image {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

.banquets__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4 / 3;
    transition: transform 0.6s ease;
}

.banquets__image:is(:hover, .pointer-hover) img {
    transform: scale(1.04);
}

/* ================================
   О РЕСТОРАНЕ
================================ */
.about {
    padding: 100px 0;
    background-color: var(--color-beige);
}

.about__content {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.about__content p {
    font-size: 17px;
    line-height: 1.7;
    color: var(--color-text-light);
    margin-bottom: 20px;
}

.about__content .btn {
    margin-top: 20px;
}

/* ================================
   ОТЗЫВЫ
================================ */
.reviews {
    padding: 100px 0;
    background-color: var(--color-white);
}

.reviews__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 32px;
    margin-bottom: 48px;
}

.reviews__card {
    background-color: var(--color-beige);
    padding: 32px 28px;
    border-radius: var(--radius-lg);
    position: relative;
    border-left: 4px solid var(--color-gold);
}

.reviews__card::before {
    content: '“';
    position: absolute;
    top: 8px;
    left: 16px;
    font-family: var(--font-heading);
    font-size: 64px;
    color: var(--color-gold);
    opacity: 0.4;
    line-height: 1;
}

.reviews__text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--color-text);
    margin-bottom: 16px;
    position: relative;
    z-index: 1;
}

.reviews__author {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-wine);
}

.reviews__cta {
    text-align: center;
}

/* ================================
   КОНТАКТЫ
================================ */
.contacts {
    padding: 100px 0;
    background-color: var(--color-beige);
}

.contacts__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}

.contacts__lead {
    font-size: 17px;
    color: var(--color-text-light);
    margin-bottom: 32px;
}

.contacts__list {
    margin-bottom: 40px;
}

.contacts__list li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    font-size: 16px;
}

.contacts__list span {
    font-size: 20px;
    width: 28px;
}

.contacts__list a:is(:hover, .pointer-hover) {
    color: var(--color-wine);
}

.contacts__map {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.contacts__map iframe {
    width: 100%;
    aspect-ratio: 16 / 10;
    border: 0;
    display: block;
    filter: grayscale(0.15) contrast(1.03);
}

/* ================================
   ФОРМА
================================ */
.form {
    background-color: var(--color-white);
    padding: 40px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.form__title {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 600;
    color: var(--color-brown);
    margin-bottom: 24px;
}

.form__group {
    margin-bottom: 20px;
}

.form__group label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text);
    margin-bottom: 8px;
}

.form__group input,
.form__group textarea {
    width: 100%;
    padding: 14px 16px;
    font-family: inherit;
    font-size: 15px;
    color: var(--color-text);
    background-color: var(--color-beige);
    border: 2px solid transparent;
    border-radius: var(--radius);
    transition: border-color var(--transition), background-color var(--transition);
}

.form__group input:focus,
.form__group textarea:focus {
    outline: none;
    border-color: var(--color-wine);
    background-color: var(--color-white);
}

.form__group textarea {
    resize: vertical;
    min-height: 80px;
}

.form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form__note {
    margin-top: 16px;
    font-size: 14px;
    color: var(--color-text-light);
    text-align: center;
}

/* ================================
   ФУТЕР
================================ */
.footer {
    background-color: var(--color-brown);
    color: rgba(255, 255, 255, 0.8);
    padding: 64px 0 32px;
}

.footer__inner {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 48px;
    margin-bottom: 48px;
}

.footer__logo {
    font-family: var(--font-heading);
    font-size: 28px;
    font-weight: 700;
    color: var(--color-white);
    margin-bottom: 12px;
}

.footer__text {
    font-size: 14px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.6);
}

.footer__title {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 16px;
}

.footer__link {
    display: block;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.8);
    padding: 4px 0;
}

.footer__link:is(:hover, .pointer-hover) {
    color: var(--color-gold);
}

.footer__seo {
    font-size: 12px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.4);
    padding-top: 32px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 16px;
}

.footer__copy {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.5);
    text-align: center;
}

/* ================================
   ПЛАВАЮЩАЯ КНОПКА WHATSAPP
================================ */
.whatsapp-float {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 99;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: #25D366;
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-md);
    transition: transform var(--transition), box-shadow var(--transition);
}

.whatsapp-float:is(:hover, .pointer-hover) {
    transform: scale(1.1);
    box-shadow: var(--shadow-lg);
    color: var(--color-white);
}

/* ================================
   АДАПТИВ
================================ */
@media (max-width: 1024px) {
    .banquets__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .contacts__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .footer__inner {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .header__inner {
        height: 64px;
    }

    .nav {
        position: fixed;
        top: 64px;
        left: 0;
        right: 0;
        background-color: var(--color-beige);
        flex-direction: column;
        gap: 0;
        padding: 16px 20px 24px;
        box-shadow: var(--shadow-md);
        transform: translateY(-120%);
        transition: transform var(--transition);
        z-index: 98;
    }

    .nav.active {
        transform: translateY(0);
    }

    .nav__link {
        padding: 14px 0;
        border-bottom: 1px solid var(--color-beige-dark);
        font-size: 16px;
    }

    .nav__link::after {
        display: none;
    }

    .header__cta {
        display: none;
    }

    .burger {
        display: flex;
    }

    .hero {
        min-height: 90vh;
        padding: 100px 0 60px;
    }

    .hero__buttons {
        flex-direction: column;
        width: 100%;
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }

    .hero__buttons .btn {
        width: 100%;
    }

    .usp,
    .menu,
    .banquets,
    .about,
    .reviews,
    .contacts {
        padding: 64px 0;
    }

    .form {
        padding: 28px 20px;
    }

    .form__row {
        grid-template-columns: 1fr;
    }

    .footer__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .whatsapp-float {
        bottom: 16px;
        right: 16px;
        width: 52px;
        height: 52px;
    }
    .gallery {
        padding: 64px 0 48px;
    }

    .gallery__slider {
        gap: 14px;
        padding: 0 20px 16px;
    }

    .gallery__item {
        width: 280px;
        height: 200px;
    }

    .gallery__nav {
        width: 40px;
        height: 40px;
        font-size: 24px;
    }

    .gallery__nav--prev {
        left: 8px;
    }

    .gallery__nav--next {
        right: 8px;
    }

    .lightbox__prev,
    .lightbox__next {
        width: 44px;
        height: 44px;
        font-size: 32px;
    }

    .lightbox__prev {
        left: 8px;
    }

    .lightbox__next {
        right: 8px;
    }

    .lightbox__close {
        top: 12px;
        right: 12px;
        width: 44px;
        height: 44px;
        font-size: 26px;
    }
    .hero--page {
        min-height: 70vh;
        padding: 110px 0 60px;
    }

    .occasions,
    .services,
    .formats,
    .banquet-menu,
    .why,
    .reviews--banquets,
    .booking,
    .faq {
        padding: 64px 0;
    }

    .formats__row {
        grid-template-columns: 1fr;
    }

    .formats__row--head {
        display: none;
    }

    .formats__cell {
        padding: 12px 20px;
    }

    .formats__cell:first-child {
        font-weight: 600;
        color: var(--color-wine);
        padding-top: 20px;
        padding-bottom: 4px;
    }

    .formats__cell:nth-child(2) {
        font-size: 13px;
        color: var(--color-text-light);
        padding-top: 0;
        padding-bottom: 4px;
    }

    .formats__cell:nth-child(3) {
        padding-bottom: 20px;
        border-bottom: 1px solid var(--color-beige-dark);
    }

    .formats__row:last-child .formats__cell:nth-child(3) {
        border-bottom: none;
    }

    .booking__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .booking__text .section__title,
    .booking__text .section__subtitle {
        text-align: center;
    }

    .booking__contacts {
        text-align: left;
    }

    .form--dark {
        padding: 28px 20px;
    }

    .faq__question {
        font-size: 17px;
        padding-right: 36px;
    }

    .services__list {
        grid-template-columns: 1fr;
    }
}

/* ================================
   ГАЛЕРЕЯ — ГОРИЗОНТАЛЬНЫЙ СЛАЙДЕР
================================ */
.gallery {
    padding: 100px 0 80px;
    background-color: var(--color-beige);
    overflow: hidden;
}

.gallery__slider-wrap {
    position: relative;
    margin-top: 48px;
}

.gallery__slider {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 0 40px 20px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.gallery__slider::-webkit-scrollbar {
    display: none;
}

.gallery__item {
    flex: 0 0 auto;
    width: 420px;
    height: 300px;
    border-radius: var(--radius-lg);
    overflow: hidden;
    scroll-snap-align: center;
    cursor: pointer;
    position: relative;
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition), box-shadow var(--transition);
}

.gallery__item:is(:hover, .pointer-hover) {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

.gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    display: block;
}

.gallery__item:is(:hover, .pointer-hover) img {
    transform: scale(1.05);
}

/* Кнопки ‹ › */
.gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: var(--color-white);
    color: var(--color-wine);
    font-size: 28px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-md);
    transition: all var(--transition);
    padding-bottom: 4px;
}

.gallery__nav:is(:hover, .pointer-hover) {
    background-color: var(--color-wine);
    color: var(--color-white);
    transform: translateY(-50%) scale(1.08);
}

.gallery__nav:disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

.gallery__nav--prev {
    left: 16px;
}

.gallery__nav--next {
    right: 16px;
}

/* Точки */
.gallery__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 24px;
}

.gallery__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--color-beige-dark);
    transition: all var(--transition);
    cursor: pointer;
    border: none;
    padding: 0;
}

.gallery__dot.active {
    background-color: var(--color-wine);
    width: 24px;
    border-radius: 4px;
}

/* ================================
   ЛАЙТБОКС
================================ */
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 999;
    background-color: rgba(20, 12, 8, 0.95);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.lightbox.active {
    display: flex;
    opacity: 1;
}

.lightbox__content {
    max-width: 1100px;
    width: 100%;
    text-align: center;
    animation: lightboxFadeIn 0.35s ease;
}

@keyframes lightboxFadeIn {
    from {
        opacity: 0;
        transform: scale(0.96);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.lightbox__content img {
    max-width: 100%;
    max-height: 80vh;
    width: auto;
    height: auto;
    border-radius: var(--radius);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    margin: 0 auto;
}

.lightbox__caption {
    margin-top: 20px;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--font-body);
}

.lightbox__close,
.lightbox__prev,
.lightbox__next {
    position: absolute;
    color: var(--color-white);
    font-size: 40px;
    line-height: 1;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.08);
    transition: background-color var(--transition), transform var(--transition);
    z-index: 2;
}

.lightbox__close:is(:hover, .pointer-hover),
.lightbox__prev:is(:hover, .pointer-hover),
.lightbox__next:is(:hover, .pointer-hover) {
    background-color: rgba(255, 255, 255, 0.18);
}

.lightbox__close {
    top: 24px;
    right: 24px;
    font-size: 32px;
}

.lightbox__prev {
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
}

.lightbox__next {
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
}

.lightbox__prev:is(:hover, .pointer-hover) {
    transform: translateY(-50%) scale(1.1);
}

.lightbox__next:is(:hover, .pointer-hover) {
    transform: translateY(-50%) scale(1.1);
}

/* ================================
   HERO ДЛЯ ВНУТРЕННИХ СТРАНИЦ
================================ */
.hero--page {
    min-height: 80vh;
    padding: 140px 0 80px;
}

.hero__eyebrow {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 16px;
}

/* ================================
   ПОВОДЫ
================================ */
.occasions {
    padding: 100px 0;
    background-color: var(--color-beige);
}

.occasions__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 28px;
}

.occasion__card {
    background-color: var(--color-white);
    padding: 36px 28px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition), box-shadow var(--transition);
    border-top: 3px solid var(--color-gold);
}

.occasion__card:is(:hover, .pointer-hover) {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
}

.occasion__icon {
    font-size: 40px;
    margin-bottom: 20px;
}

.occasion__title {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-wine);
    margin-bottom: 12px;
}

.occasion__text {
    font-size: 15px;
    color: var(--color-text-light);
    line-height: 1.6;
}

/* ================================
   ЧТО МЫ БЕРЁМ НА СЕБЯ
================================ */
.services {
    padding: 100px 0;
    background-color: var(--color-white);
}

.services__list {
    max-width: 800px;
    margin: 0 auto 32px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 8px 40px;
}

.services__list li {
    position: relative;
    padding: 12px 0 12px 36px;
    font-size: 16px;
    color: var(--color-text);
    border-bottom: 1px solid var(--color-beige-dark);
}

.services__list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 12px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-wine);
    color: var(--color-white);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
}

.services__note {
    text-align: center;
    font-size: 15px;
    color: var(--color-text-light);
    font-style: italic;
}

/* ================================
   ФОРМАТЫ (таблица)
================================ */
.formats {
    padding: 100px 0;
    background-color: var(--color-beige);
}

.formats__table {
    max-width: 900px;
    margin: 0 auto 32px;
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.formats__row {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 2fr;
    border-bottom: 1px solid var(--color-beige-dark);
    transition: background-color var(--transition);
}

.formats__row:last-child {
    border-bottom: none;
}

.formats__row:not(.formats__row--head):is(:hover, .pointer-hover) {
    background-color: var(--color-beige);
}

.formats__row--head {
    background-color: var(--color-wine);
    color: var(--color-white);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.formats__cell {
    padding: 18px 24px;
    font-size: 15px;
    display: flex;
    align-items: center;
}

.formats__row--head .formats__cell {
    padding: 20px 24px;
}

.formats__note {
    text-align: center;
    font-size: 15px;
    color: var(--color-text-light);
    font-style: italic;
}

/* ================================
   МЕНЮ ДЛЯ БАНКЕТА
================================ */
.banquet-menu {
    padding: 100px 0;
    background-color: var(--color-white);
}

.banquet-menu__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 28px;
    margin-bottom: 48px;
}

.banquet-menu__card {
    background-color: var(--color-beige);
    padding: 36px 28px;
    border-radius: var(--radius-lg);
    text-align: center;
    transition: transform var(--transition), box-shadow var(--transition);
    border-bottom: 3px solid transparent;
}

.banquet-menu__card:is(:hover, .pointer-hover) {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
    border-bottom-color: var(--color-gold);
}

.banquet-menu__icon {
    font-size: 44px;
    margin-bottom: 20px;
}

.banquet-menu__title {
    font-family: var(--font-heading);
    font-size: 21px;
    font-weight: 600;
    color: var(--color-wine);
    margin-bottom: 12px;
}

.banquet-menu__text {
    font-size: 15px;
    color: var(--color-text-light);
    line-height: 1.6;
}

.banquet-menu__cta {
    text-align: center;
}


/* ================================
   ПОЧЕМУ ТИФЛИС
================================ */
.why {
    padding: 100px 0;
    background-color: var(--color-beige);
}

.why__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 28px;
}

.why__card {
    background-color: var(--color-white);
    padding: 40px 32px 36px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition), box-shadow var(--transition);
    position: relative;
    overflow: hidden;
}

.why__card:is(:hover, .pointer-hover) {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
}

.why__number {
    display: block;
    font-family: var(--font-heading);
    font-size: 48px;
    font-weight: 700;
    line-height: 1;
    color: var(--color-wine);
    margin-bottom: 16px;
    letter-spacing: -1px;
}

.why__line {
    display: block;
    width: 40px;
    height: 2px;
    background-color: var(--color-gold);
    margin-bottom: 24px;
    transition: width 0.5s ease;
}

.why__card:is(:hover, .pointer-hover) .why__line {
    width: 100%;
}

.why__title {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brown);
    margin-bottom: 12px;
    line-height: 1.25;
}

.why__text {
    font-size: 15px;
    color: var(--color-text-light);
    line-height: 1.6;
}
/* ================================
   ОТЗЫВЫ НА СТРАНИЦЕ БАНКЕТОВ
================================ */
.reviews--banquets {
    background-color: var(--color-beige);
}

/* ================================
   БЛОК ЗАЯВКИ (тёмный)
================================ */
.booking {
    padding: 100px 0;
    background-color: var(--color-brown);
    position: relative;
    overflow: hidden;
}

.booking__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}

.booking__text {
    color: var(--color-white);
}

.booking__text .section__title {
    text-align: left;
    margin-bottom: 20px;
}

.booking__text .section__subtitle {
    text-align: left;
    margin: 0 0 32px;
    color: rgba(255, 255, 255, 0.8);
}

.booking__contacts {
    margin-bottom: 28px;
}

.booking__contacts li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    font-size: 16px;
    color: rgba(255, 255, 255, 0.9);
}

.booking__contacts span {
    font-size: 20px;
    width: 28px;
}

.booking__contacts a {
    color: rgba(255, 255, 255, 0.9);
    transition: color var(--transition);
}

.booking__contacts a:is(:hover, .pointer-hover) {
    color: var(--color-gold);
}

.booking__note {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.65);
}

/* Тёмная форма */
.form--dark {
    background-color: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
}

.form--dark .form__title {
    color: var(--color-white);
}

.form--dark .form__group label {
    color: rgba(255, 255, 255, 0.85);
}

.form--dark .form__group input,
.form--dark .form__group textarea,
.form--dark .form__group select {
    background-color: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.1);
}

.form--dark .form__group input::placeholder,
.form--dark .form__group textarea::placeholder {
    color: rgba(255, 255, 255, 0.4);
}

.form--dark .form__group input:focus,
.form--dark .form__group textarea:focus,
.form--dark .form__group select:focus {
    background-color: rgba(255, 255, 255, 0.12);
    border-color: var(--color-gold);
}

.form--dark .form__group select option {
    background-color: var(--color-brown);
    color: var(--color-white);
}

.form--dark .form__note {
    color: rgba(255, 255, 255, 0.5);
}

/* ================================
   FAQ
================================ */
.faq {
    padding: 100px 0;
    background-color: var(--color-white);
}

.faq__list {
    max-width: 800px;
    margin: 0 auto;
}

.faq__item {
    border-bottom: 1px solid var(--color-beige-dark);
    padding: 0;
}

.faq__item:first-child {
    border-top: 1px solid var(--color-beige-dark);
}

.faq__question {
    font-family: var(--font-heading);
    font-size: 19px;
    font-weight: 600;
    color: var(--color-brown);
    padding: 24px 44px 24px 0;
    cursor: pointer;
    list-style: none;
    position: relative;
    transition: color var(--transition);
}

.faq__question::-webkit-details-marker {
    display: none;
}

.faq__question::after {
    content: '+';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 26px;
    font-weight: 400;
    color: var(--color-wine);
    transition: transform var(--transition);
    line-height: 1;
}

.faq__item[open] .faq__question::after {
    transform: translateY(-50%) rotate(45deg);
}

.faq__question:is(:hover, .pointer-hover) {
    color: var(--color-wine);
}

.faq__answer {
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-text-light);
    padding: 0 0 24px;
    max-width: 90%;
    animation: faqFadeIn 0.3s ease;
}

@keyframes faqFadeIn {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ================================
   АКТИВНАЯ ССЫЛКА В МЕНЮ
================================ */
.nav__link--active {
    color: var(--color-wine);
    font-weight: 600;
}

.nav__link--active::after {
    width: 100%;
}

/* ================================
   HERO ДЛЯ СТРАНИЦЫ МЕНЮ
================================ */
.hero--menu {
    min-height: 60vh;
    padding: 140px 0 60px;
}

/* ================================
   ТАБЫ КУХОНЬ
================================ */
.menu-tabs {
    padding: 0;
    background-color: var(--color-white);
    position: sticky;
    top: 72px;
    z-index: 50;
    border-bottom: 1px solid var(--color-beige-dark);
    box-shadow: 0 2px 12px rgba(43, 27, 18, 0.04);
}

.menu-tabs__list {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 16px 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.menu-tabs__list::-webkit-scrollbar {
    display: none;
}

.menu-tabs__btn {
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 500;
    color: var(--color-text-light);
    background-color: transparent;
    border: 2px solid transparent;
    border-radius: var(--radius);
    cursor: pointer;
    transition: all var(--transition);
    white-space: nowrap;
    font-family: inherit;
}

.menu-tabs__btn:is(:hover, .pointer-hover) {
    color: var(--color-wine);
    background-color: var(--color-beige);
}

.menu-tabs__btn.active {
    color: var(--color-white);
    background-color: var(--color-wine);
    border-color: var(--color-wine);
}

/* ================================
   СТРАНИЦА МЕНЮ
================================ */
.menu-page {
    padding: 80px 0 100px;
    background-color: var(--color-beige);
}

.cuisine {
    display: block;
}

.cuisine--hidden {
    display: none;
}

.menu-category {
    margin-bottom: 72px;
}

.menu-category:last-child {
    margin-bottom: 0;
}

.menu-category__title {
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 600;
    color: var(--color-wine);
    margin-bottom: 32px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--color-gold);
    display: inline-block;
}

.menu-page__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 28px;
}

.dish {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition), box-shadow var(--transition);
    display: flex;
    flex-direction: column;
    position: relative;
}

.dish:is(:hover, .pointer-hover) {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
}

.dish__image {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}

.dish__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-beige-dark), var(--color-beige));
    color: var(--color-text-light);
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.dish__body {
    padding: 24px 24px 28px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.dish__name {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 600;
    color: var(--color-brown);
    margin-bottom: 10px;
    line-height: 1.3;
}

.dish__desc {
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-text-light);
    margin-bottom: 16px;
    flex: 1;
}

.dish__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: var(--color-text-light);
    padding-top: 16px;
    border-top: 1px solid var(--color-beige-dark);
}

.dish__weight {
    font-weight: 500;
}

.dish__price {
    font-weight: 700;
    color: var(--color-wine);
    font-size: 17px;
}

.dish--banquet {
    border: 2px solid var(--color-gold);
}

.dish__badge {
    display: inline-block;
    align-self: flex-start;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-white);
    background-color: var(--color-gold);
    border-radius: 100px;
    margin-bottom: 12px;
}

/* ================================
   ЗАГЛУШКА «СКОРО»
================================ */
.cuisine__coming {
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
    padding: 60px 32px;
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.cuisine__coming-icon {
    font-size: 56px;
    margin-bottom: 20px;
}

.cuisine__coming-title {
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 600;
    color: var(--color-wine);
    margin-bottom: 16px;
}

.cuisine__coming-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text-light);
    margin-bottom: 32px;
}

/* ================================
   CTA ВНИЗУ СТРАНИЦЫ МЕНЮ
================================ */
.menu-cta {
    padding: 80px 0;
    background-color: var(--color-white);
    text-align: center;
}

.menu-cta__buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 32px;
}

/* ================================
   АДАПТИВ
================================ */
@media (max-width: 1024px) {
    .banquets__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .contacts__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .footer__inner {
        grid-template-columns: 1fr 1fr;
    }
    .menu-page__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .header__inner {
        height: 64px;
    }

    .nav {
        position: fixed;
        top: 64px;
        left: 0;
        right: 0;
        background-color: var(--color-beige);
        flex-direction: column;
        gap: 0;
        padding: 16px 20px 24px;
        box-shadow: var(--shadow-md);
        transform: translateY(-120%);
        transition: transform var(--transition);
        z-index: 98;
    }

    .nav.active {
        transform: translateY(0);
    }

    .nav__link {
        padding: 14px 0;
        border-bottom: 1px solid var(--color-beige-dark);
        font-size: 16px;
    }

    .nav__link::after {
        display: none;
    }

    .header__cta {
        display: none;
    }

    .burger {
        display: flex;
    }

    .hero {
        min-height: 90vh;
        padding: 100px 0 60px;
    }

    .hero__buttons {
        flex-direction: column;
        width: 100%;
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }

    .hero__buttons .btn {
        width: 100%;
    }

    .usp,
    .menu,
    .banquets,
    .about,
    .reviews,
    .contacts {
        padding: 64px 0;
    }

    .form {
        padding: 28px 20px;
    }

    .form__row {
        grid-template-columns: 1fr;
    }

    .footer__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .whatsapp-float {
        bottom: 16px;
        right: 16px;
        width: 52px;
        height: 52px;
    }
    .gallery {
        padding: 64px 0 48px;
    }

    .gallery__slider {
        gap: 14px;
        padding: 0 20px 16px;
    }

    .gallery__item {
        width: 280px;
        height: 200px;
    }

    .gallery__nav {
        width: 40px;
        height: 40px;
        font-size: 24px;
    }

    .gallery__nav--prev {
        left: 8px;
    }

    .gallery__nav--next {
        right: 8px;
    }

    .lightbox__prev,
    .lightbox__next {
        width: 44px;
        height: 44px;
        font-size: 32px;
    }

    .lightbox__prev {
        left: 8px;
    }

    .lightbox__next {
        right: 8px;
    }

    .lightbox__close {
        top: 12px;
        right: 12px;
        width: 44px;
        height: 44px;
        font-size: 26px;
    }
    .hero--page {
        min-height: 70vh;
        padding: 110px 0 60px;
    }

    .occasions,
    .services,
    .formats,
    .banquet-menu,
    .why,
    .reviews--banquets,
    .booking,
    .faq {
        padding: 64px 0;
    }

    .formats__row {
        grid-template-columns: 1fr;
    }

    .formats__row--head {
        display: none;
    }

    .formats__cell {
        padding: 12px 20px;
    }

    .formats__cell:first-child {
        font-weight: 600;
        color: var(--color-wine);
        padding-top: 20px;
        padding-bottom: 4px;
    }

    .formats__cell:nth-child(2) {
        font-size: 13px;
        color: var(--color-text-light);
        padding-top: 0;
        padding-bottom: 4px;
    }

    .formats__cell:nth-child(3) {
        padding-bottom: 20px;
        border-bottom: 1px solid var(--color-beige-dark);
    }

    .formats__row:last-child .formats__cell:nth-child(3) {
        border-bottom: none;
    }

    .booking__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .booking__text .section__title,
    .booking__text .section__subtitle {
        text-align: center;
    }

    .booking__contacts {
        text-align: left;
    }

    .form--dark {
        padding: 28px 20px;
    }

    .faq__question {
        font-size: 17px;
        padding-right: 36px;
    }

    .services__list {
        grid-template-columns: 1fr;
    }
    .hero--menu {
        min-height: 50vh;
        padding: 110px 0 50px;
    }

    .menu-tabs {
        top: 64px;
    }

    .menu-tabs__list {
        justify-content: flex-start;
        padding: 12px 0;
    }

    .menu-tabs__btn {
        padding: 10px 18px;
        font-size: 14px;
    }

    .menu-page {
        padding: 48px 0 64px;
    }

    .menu-category {
        margin-bottom: 48px;
    }

    .menu-category__title {
        margin-bottom: 24px;
        font-size: 22px;
    }

    .menu-page__grid {
        gap: 20px;
    }

    .dish__body {
        padding: 20px 20px 22px;
    }

    .dish__name {
        font-size: 18px;
    }

    .menu-cta {
        padding: 56px 0;
    }

    .menu-cta__buttons {
        flex-direction: column;
        align-items: center;
    }

    .menu-cta__buttons .btn {
        width: 100%;
        max-width: 320px;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 16px;
    }

    .section__subtitle {
        margin-bottom: 32px;
    }

    .usp__card,
    .reviews__card {
        padding: 28px 22px;
    }
    .gallery__item {
        width: 240px;
        height: 170px;
    }
    .occasions__grid,
    .why__grid,
    .banquet-menu__grid {
        gap: 16px;
    }

    .occasion__card,
    .why__card,
    .banquet-menu__card {
        padding: 28px 22px;
    }

    .formats__cell {
        padding: 10px 16px;
        font-size: 14px;
    }
    .menu-page__grid {
        grid-template-columns: 1fr;
    }

    .cuisine__coming {
        padding: 40px 20px;
    }

    .cuisine__coming-title {
        font-size: 26px;
    }
}


/* «Почему Тифлис»: фигурные карточки по референсу. */
.usp { position:relative; isolation:isolate; overflow:hidden; padding:52px 0 50px; background:radial-gradient(ellipse at 50% 25%,#fff7e9a6,transparent 65%),radial-gradient(ellipse at 0 100%,#b8906355,transparent 65%),#f1e3cd; }
.usp .usp__inner {max-width:1600px;padding:0 48px;position:relative;}
.usp__shapes {position:absolute;}
.usp__heading {position:absolute;top:-12px;left:29%;right:10%;text-align:center;}
.usp__heading .section__title {font-size:clamp(34px,3.6vw,64px);line-height:1.08;font-weight:700;letter-spacing:-1.3px;margin:0;color:#27160e;}
.usp__heading .section__title span {color:#57180f;}
.usp__divider {display:flex;align-items:center;justify-content:center;gap:16px;width:52%;margin:13px auto 0;color:#be9345;}
.usp__divider::before,.usp__divider::after {content:"";height:1px;flex:1;background:currentColor;}
.usp__divider span {font:38px Georgia;line-height:1;}
.usp__grid {display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;align-items:end;gap:22px;padding-top:40px;}
.usp .usp__card {padding:0;background:none;border-radius:0;overflow:visible;box-shadow:none;filter:drop-shadow(0 15px 12px #53311626);transition:none;}
.usp__surface {position:relative;height:490px;clip-path:url(#usp-arch);background:#cba363;}
.usp__card--1 .usp__surface {height:610px;}
.usp__card--3 .usp__surface {height:510px;}
.usp__card--4 .usp__surface {height:480px;}
.usp__photo {position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);object-fit:cover;filter:sepia(.18) saturate(.83) brightness(.85);clip-path:url(#usp-arch);}
.usp__card--1 .usp__photo {object-position:52% bottom;}
.usp__card--2 .usp__photo,.usp__card--4 .usp__photo {height:55%;object-position:center;}
.usp__card--3 .usp__photo {height:56%;object-position:75% 61%;}
.usp__content {position:absolute;bottom:2px;left:2px;right:2px;min-height:68%;padding:64px 26px 25px;clip-path:url(#usp-paper);background:linear-gradient(115deg,#fff9ef,#f3e8d7);border-radius:0 0 20px 20px;}
.usp__card--1 .usp__content {top:3px;bottom:auto;min-height:0;height:64%;padding:69px 30px 50px;clip-path:url(#usp-first-paper);border-radius:0;}
.usp__icon {position:absolute;right:25px;top:58px;width:52px;height:60px;color:#b98930;}
.usp__card--1 .usp__icon {top:54px;right:28px;width:65px;height:70px;}
.usp__number {font-size:48px;line-height:1;margin:0 0 14px;color:#64180f;font-family:Georgia,serif;}
.usp__line {width:24px;height:2px;margin-bottom:18px;background:#b78b2c;}
.usp__title {font-size:clamp(20px,1.65vw,28px);font-weight:700;line-height:1.15;margin:0 0 15px;color:#24180e;}
.usp__text {font-size:clamp(14px,1.15vw,18px);line-height:1.48;color:#7a6958;}
@media(min-width:1650px) {.usp__surface{height:560px}.usp__card--1 .usp__surface{height:700px}.usp__card--3 .usp__surface{height:580px}.usp__card--4 .usp__surface{height:550px}.usp__content{padding-top:80px}.usp__card--1 .usp__content{padding-top:85px}}
@media(max-width:1100px) {.usp .usp__inner{padding:0 30px}.usp__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding-top:0;align-items:start;max-width:800px;margin:auto}.usp__heading{position:static;margin-bottom:30px}.usp__heading .section__title{font-size:44px}.usp .usp__surface{height:540px}.usp__content{padding:82px 30px 28px;min-height:66%}.usp__card--1 .usp__content{height:64%;padding:55px 30px 50px}.usp__title{font-size:26px}.usp__text{font-size:17px}.usp__icon{top:78px}.usp__card--1 .usp__icon{top:47px}.usp__card--1 .usp__photo{object-position:center 120px}}
@media(max-width:600px) {.usp{padding:40px 0}.usp .usp__inner{padding:0 22px}.usp__heading .section__title{font-size:34px;letter-spacing:-.7px}.usp__heading .section__title span{display:block}.usp__heading .section__title br{display:none}.usp__divider{width:70%}.usp__grid{grid-template-columns:1fr;gap:25px;max-width:380px}.usp .usp__surface{height:535px}.usp__card--1 .usp__surface{height:570px}.usp__content{padding:77px 28px 28px;min-height:65%}.usp__title{font-size:26px}.usp__text{font-size:17px}.usp__card--1 .usp__content{padding:57px 28px 50px;height:63%}.usp__icon{top:73px}.usp__card--1 .usp__photo{object-position:center 130px}}
.usp__card--1 .usp__photo {top:auto;bottom:2px;height:54%;object-position:center;}

/* Крепость на фоне справа, как в первоначальной композиции. */
.usp__decor {position:absolute;inset:0;z-index:-1;pointer-events:none;user-select:none;overflow:hidden;mix-blend-mode:multiply;}
.usp__fortress {position:absolute;width:510px;max-width:none;height:auto;right:-12px;top:-26px;opacity:.48;}
.usp__divider {height:1px;background:#be9345;margin:24px auto 0;}
.usp__divider::before,.usp__divider::after {content:none;}
@media (min-width:1750px) {.usp__fortress{width:590px;right:0;top:-35px}}
@media (max-width:1100px) {.usp__fortress{width:360px;right:-65px;top:0;opacity:.32}}
@media (max-width:600px) {.usp__fortress{width:285px;right:-85px;top:75px;opacity:.24}}

/* Золотой знак на нижнем выступе первой карточки. */
.usp__seal {position:absolute;bottom:7px;left:50%;width:34px;height:41px;transform:translateX(-50%);pointer-events:none;}

/* Значки находятся в строке номера, ниже фигурного края фотографии. */
.usp__content {padding-top:112px;}
.usp__meta {position:relative;}
.usp__meta .usp__number {margin-bottom:0;}
.usp__meta {margin-bottom:14px;}
.usp .usp__meta .usp__icon {top:0;right:0;width:50px;height:48px;}
.usp .usp__card--1 .usp__meta .usp__icon {top:-12px;width:65px;height:70px;}
/* Два тонких золотых контура повторяют силуэт карточки. */
.usp__frame,.usp__paper-frame {position:absolute;pointer-events:none;fill:none;stroke:#bd914a;stroke-width:1;}
.usp__frame {z-index:2;}
.usp__frame--outer {inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);stroke-width:1.25;}
.usp__frame--inner {inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);opacity:.55;stroke-width:.75;}
.usp__paper-frame {inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);opacity:.7;}
@media (max-width:1100px) {.usp__content{padding-top:112px;}}

/* Разные силуэты и направления волн у каждой фотографии. */
.usp__card--2 .usp__surface {clip-path:url(#usp-arch-2);}
.usp__card--2 .usp__photo {clip-path:url(#usp-arch-2);}
.usp__card--2 .usp__content {clip-path:url(#usp-paper-2);}
.usp__card--3 .usp__surface {clip-path:url(#usp-arch-3);}
.usp__card--3 .usp__photo {clip-path:url(#usp-arch-3);}
.usp__card--3 .usp__content {clip-path:url(#usp-paper-3);}
.usp__card--4 .usp__surface {clip-path:url(#usp-arch-4);}
.usp__card--4 .usp__photo {clip-path:url(#usp-arch-4);}
.usp__card--4 .usp__content {clip-path:url(#usp-paper-4);}
.usp__card--3 .usp__photo {height:56%;object-position:75% 80%;}

/* Значки, предоставленные пользователем: сохраняем исходные PNG. */
.usp .usp__meta .usp__icon {object-fit:contain;top:-14px;width:86px;height:80px;}
.usp .usp__card--1 .usp__meta .usp__icon {top:-25px;width:92px;height:92px;}
.usp .usp__meta .usp__icon--city {top:-55px;width:168px;height:128px;}

.usp .usp__meta .usp__icon--glass,
.usp .usp__meta .usp__icon--grapes {top:-26px;}


/* Появление всей сетки отдельно от наведения на отдельные карточки. */
.usp__grid {opacity:1;transform:translate3d(0,0,0);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);}
.usp__grid--pending {opacity:.9;transform:translate3d(0,10px,0);}
/* Стабильные слои: не анимируем фильтры, масштаб и порядок наложения. */
.usp .usp__card {display:block;cursor:pointer;isolation:isolate;transform:translate3d(0,0,0);backface-visibility:hidden;will-change:transform;transition:transform .65s cubic-bezier(.2,.7,.2,1);}
.usp .usp__photo {clip-path:none;}
/* Полоса растёт через transform, без пересчёта ширины и разметки карточки. */
.usp .usp__line {position:relative;width:100%;background:none;transition:none;}
.usp__line::before,.usp__line::after {content:"";position:absolute;inset:0;background:#b78b2c;}
.usp__line::before {width:24px;}
.usp__line::after {transform:scaleX(0);transform-origin:left;transition:transform .85s cubic-bezier(.2,.7,.2,1);}
@media (hover:hover) and (pointer:fine) {
    .usp .usp__card:is(:hover, .pointer-hover) {transform:translate3d(0,-3px,0);}
    .usp .usp__card:is(:hover, .pointer-hover) .usp__line::after {transform:scaleX(1);}
}
.usp .usp__card:focus-visible {outline:2px solid #a87931;outline-offset:6px;border-radius:20px;}
.usp .usp__card:focus-visible .usp__line::after {transform:scaleX(1);}
@media (prefers-reduced-motion:reduce) {
    .usp__grid,.usp__grid--pending {opacity:1;transform:none;transition:none;}
    .usp .usp__card,.usp .usp__card:is(:hover, .pointer-hover) {transform:none;transition:none;}
    .usp__line::after {transition:none;}
}

/* ================================
   О РЕСТОРАНЕ + АТМОСФЕРА — референс пользователя
================================ */
.hospitality {
    --hospitality-paper: #f8efdf;
    --hospitality-ink: #5c1b17;
    --hospitality-gold: #be965b;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--hospitality-paper);
}
.hospitality::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('images/about/paper-texture.webp') left top / 240px 240px repeat;
    opacity: .3;
    pointer-events: none;
}
.hospitality__symbols { position: absolute; overflow: hidden; }
.hospitality .about {
    position: relative;
    display: grid;
    grid-template-columns: 47.5% 52.5%;
    min-height: clamp(480px, 32.8vw, 620px);
    padding: 0;
    background: transparent;
}
.hospitality .about::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: -16px;
    width: 25%;
    z-index: -1;
    background: url('images/about/georgian-heritage-art.svg') right center / 100% 100% no-repeat;
    /* Мягкий изогнутый край растворяет бумагу иллюстрации в общем фоне. */
    -webkit-mask-image: linear-gradient(to right, transparent, #000 42%), radial-gradient(ellipse 120% 100% at 65% 0%, #000 80%, rgba(0, 0, 0, .92) 86%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image: linear-gradient(to right, transparent, #000 42%), radial-gradient(ellipse 120% 100% at 65% 0%, #000 80%, rgba(0, 0, 0, .92) 86%, transparent 100%);
    mask-composite: intersect;
    pointer-events: none;
}
.about__visual {
    position: relative;
    align-self: stretch;
    min-width: 0;
    -webkit-mask: url('images/about/photo-edge.svg') center / 100% 100% no-repeat;
    mask: url('images/about/photo-edge.svg') center / 100% 100% no-repeat;
    background: #302016;
}
.about__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(rgba(44, 25, 8, .12), rgba(44, 25, 8, .12)), linear-gradient(90deg, rgba(18, 15, 8, .43), transparent 63%), linear-gradient(0deg, rgba(38, 16, 7, .12), transparent 50%);
    pointer-events: none;
}
.about__photo {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    object-fit: cover;
    object-position: center;
    /* Цвет и затемнение задаёт лёгкий слой .about__visual::after. */
}
.about__lettering {
    position: absolute;
    z-index: 1;
    top: 34%;
    left: 4.5%;
    width: 32%;
    height: auto;
}
.hospitality .about__content {
    position: relative;
    width: 64%;
    max-width: 650px;
    margin: 0 0 0 5.8%;
    padding: clamp(23px, 1.8vw, 36px) 0 clamp(52px, 3.5vw, 70px);
    text-align: left;
}
.about__ornament { display: block; width: 76%; height: 38px; object-fit: contain; margin: 0 0 8px; }
.hospitality .about .section__title {
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.2;
    letter-spacing: normal;
    color: var(--hospitality-ink);
    text-align: left;
    margin: 0 0 22px;
}
.hospitality .about__content p {
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.7;
    margin: 0 0 20px;
    color: #5c554e;
}
.hospitality .about__button {
    gap: 10px;
    margin-top: 12px;
    padding: 12px 32px;
    border: 1.5px solid var(--hospitality-ink);
    border-radius: 999px;
    color: var(--hospitality-ink);
    font-size: 15px;
    font-weight: 500;
    min-height: 50px;
}
.hospitality .about__button:is(:hover, .pointer-hover) { background: var(--hospitality-ink); color: #fff6e8; }
.hospitality .gallery {
    position: relative;
    padding: 4px 0 20px;
    margin-top: -10px;
    background: transparent;
    overflow: visible;
}
.hospitality .gallery::before, .hospitality .gallery::after {
    content: "";
    position: absolute;
    top: -40px;
    width: clamp(130px, 13vw, 210px);
    height: clamp(174px, 17.4vw, 280px);
    z-index: -1;
    opacity: .58;
    background: url('images/about/grapevine-corner.webp') center / contain no-repeat;
    pointer-events: none;
}
.hospitality .gallery::before { left: -18px; }
.hospitality .gallery::after { right: -18px; transform: scaleX(-1); }
.gallery__heading { position: relative; padding: 0 24px; }
.hospitality .gallery .section__title {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 28px;
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.2;
    letter-spacing: normal;
    color: var(--hospitality-ink);
    margin: 0 0 10px;
}
.gallery__flourish { width: 86px; height: 28px; flex-shrink: 0; color: var(--hospitality-gold); }
.gallery__flourish--right { transform: scaleX(-1); }
.hospitality .gallery .section__subtitle {
    max-width: none;
    margin: 0;
    color: #5c554e;
    font-size: 17px;
    line-height: 1.6;
}
.hospitality .gallery__slider-wrap { margin-top: 22px; }
.hospitality .gallery__slider {
    position: relative;
    gap: 12px;
    padding: 0 2.3% 22px;
    scroll-padding-inline: 2.3%;
    overscroll-behavior-x: contain;
    align-items: flex-start;
}
.hospitality .gallery__item {
    width: clamp(270px, 20vw, 380px);
    height: auto;
    overflow: visible;
    border-radius: 15px;
    box-shadow: none;
    scroll-snap-align: start;
    flex-shrink: 0;
}
.gallery__photo {
    display: block;
    height: clamp(185px, 13vw, 255px);
    overflow: hidden;
    border: 1.5px solid #b99665;
    border-radius: 15px;
    box-shadow: 0 3px 0 #6d3521, 0 6px 12px #6442211a;
}
.hospitality .gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.hospitality .gallery__item:is(:hover, .pointer-hover) { transform: translateY(-3px); box-shadow: none; }
.hospitality .gallery__item:is(:hover, .pointer-hover) img { transform: scale(1.035); }
.gallery__caption {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: max-content;
    max-width: 94%;
    min-height: 39px;
    padding: 9px 18px;
    margin: -20px auto 0;
    z-index: 1;
    color: #64472d;
}
.gallery__caption-frame { position: absolute; inset: 0; width: 100%; height: 100%; fill: #faf1df; stroke: #bd9657; stroke-width: 1; z-index: -1; }
.gallery__caption > svg:not(.gallery__caption-frame) { width: 19px; height: 23px; flex-shrink: 0; color: #c49c5d; }
.gallery__caption > span { font-family: 'Times New Roman', Georgia, serif; font-size: clamp(10px, .74vw, 13px); line-height: 1.2; text-transform: uppercase; white-space: nowrap; }
.hospitality .gallery__nav {
    top: calc((clamp(185px, 13vw, 255px)) / 2);
    width: 47px;
    height: 47px;
    border: 1px solid #c3a16c;
    color: var(--hospitality-ink);
    background: #fcf4e6;
    box-shadow: 0 3px 10px #64422126;
    padding: 0;
}
.hospitality .gallery__nav > svg { width: 23px; height: 23px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hospitality .gallery__nav--prev { left: 1.2%; }
.hospitality .gallery__nav--next { right: 1.2%; }
.hospitality .gallery__nav:is(:hover, .pointer-hover) { background: var(--hospitality-ink); color: #fcf4e6; }
.hospitality .gallery__nav:disabled { opacity: .55; }
.gallery__pagination { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 4px; }
.gallery__pagination > span { height: 1px; width: 80px; background: linear-gradient(to right, transparent, #bc9358); }
.gallery__pagination > span:last-child { transform: rotate(180deg); }
.hospitality .gallery__dots { margin: 0; gap: 2px; align-items: center; }
.hospitality .gallery__dot { position: relative; width: 14px; height: 24px; padding: 0; border-radius: 0; background: none; }
.hospitality .gallery__dot::before { content: ""; position: absolute; top: 10px; left: 5px; width: 4px; height: 4px; background: #c7a575; transform: rotate(45deg); }
.hospitality .gallery__dot.active { width: 30px; background: none; }
.hospitality .gallery__dot.active::before { left: 4px; top: 10px; width: 22px; height: 3px; border-radius: 50%; background: var(--hospitality-ink); transform: none; }
.hospitality :is(a, button, [tabindex]):focus-visible { outline: 2px solid var(--hospitality-ink); outline-offset: 4px; }

@media (min-width: 1900px) {
    .hospitality .about__content { width: 64%; }
    .hospitality .gallery__item { width: 20vw; }
}
@media (max-width: 1100px) {
    .hospitality .about { grid-template-columns: 44% 56%; min-height: 510px; }
    .hospitality .about__content { width: 78%; margin-left: 5%; padding-top: 26px; }
    .hospitality .about::before { width: 23%; opacity: .5; }
    .about__lettering { width: 57%; left: 7%; top: 36%; }
    .hospitality .gallery .section__title { gap: 16px; }
    .gallery__flourish { width: 60px; }
    .hospitality .gallery__item { width: 30vw; }
    .gallery__photo { height: 20vw; }
    .hospitality .gallery__nav { top: 10vw; }
    .gallery__caption > span { font-size: 10px; }
    .gallery__caption { gap: 5px; padding-inline: 12px; }
}
@media (max-width: 760px) {
    .hospitality .about { display: block; min-height: 0; }
    .about__visual { height: clamp(300px, 68vw, 440px); }
    .about__lettering { width: 42%; max-width: 230px; left: 6%; top: 31%; }
    .hospitality .about::before { top: clamp(300px, 68vw, 440px); width: 46%; bottom: -10px; opacity: .22; }
    .hospitality .about__content { width: auto; max-width: none; margin: 0; padding: 15px 24px 44px; }
    .about__ornament { width: 70%; max-width: 340px; margin-bottom: 16px; }
    .hospitality .about .section__title { margin-bottom: 20px; }
    .hospitality .about__button { margin-top: 8px; padding: 12px 24px; }
    .hospitality .gallery { padding-top: 10px; padding-bottom: 22px; margin-top: 0; }
    .gallery__heading { padding: 0 22px; }
    .hospitality .gallery .section__title { gap: 8px; }
    .gallery__flourish { width: 28px; height: 22px; }
    .hospitality .gallery .section__subtitle { line-height: 1.6; max-width: 500px; margin-inline: auto; }
    .hospitality .gallery__slider-wrap { margin-top: 22px; }
    .hospitality .gallery__slider { gap: 12px; padding-inline: 22px; scroll-padding-inline: 22px; }
    .hospitality .gallery__item { width: 76vw; max-width: 390px; }
    .gallery__photo { height: clamp(195px, 50vw, 260px); }
    .gallery__caption { min-height: 40px; padding-inline: 18px; gap: 8px; }
    .gallery__caption > span { font-size: 11px; }
    .hospitality .gallery__nav { top: calc(clamp(195px, 50vw, 260px) / 2); width: 42px; height: 42px; }
    .hospitality .gallery__nav--prev { left: 6px; }
    .hospitality .gallery__nav--next { right: 6px; }
    .hospitality .gallery::before { width: 105px; height: 140px; left: -28px; top: -15px; opacity: .38; }
    .hospitality .gallery::after { width: 105px; height: 140px; right: -28px; top: -15px; opacity: .38; }
    .gallery__pagination > span { width: 55px; }
}
@media (max-width: 360px) {
    .hospitality .about__content { padding-inline: 18px; }
    .gallery__heading { padding-inline: 18px; }
    .gallery__flourish { display: none; }
    .gallery__caption { gap: 5px; padding-inline: 11px; }
    .gallery__caption > span { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    .hospitality .gallery__slider { scroll-behavior: auto; }
    .hospitality .gallery__item, .hospitality .gallery__item img { transition: none; }
    .hospitality .gallery__item:is(:hover, .pointer-hover), .hospitality .gallery__item:is(:hover, .pointer-hover) img { transform: none; }
}

/* Галерея: стабильные слои без наведения, которое срабатывает под курсором при скролле. */
.hospitality .gallery__slider { contain: layout paint style; }
.hospitality .gallery__item,
.hospitality .gallery__item img { transition: none; }
.hospitality .gallery__item:is(:hover, .pointer-hover),
.hospitality .gallery__item:is(:hover, .pointer-hover) img { transform: none; }
.hospitality .gallery__photo {
    contain: paint;
    transform: translateZ(0);
    backface-visibility: hidden;
}
.hospitality .gallery__item img {
    content-visibility: visible;
    backface-visibility: hidden;
}

/* Ковровый орнамент в левом верхнем углу — по предоставленному референсу. */
.usp__carpet {position:absolute;left:-35px;top:-80px;width:min(52vw,850px);max-width:none;height:auto;opacity:.48;-webkit-mask-image:linear-gradient(to bottom,#000 45%,transparent 90%);mask-image:linear-gradient(to bottom,#000 45%,transparent 90%);}
@media(max-width:1100px) {.usp__carpet{width:620px;left:-100px;top:-100px;opacity:.35;}}
@media(max-width:600px) {.usp__carpet{width:440px;left:-150px;top:-90px;opacity:.28;}}

/* Надпись из фоновой иллюстрации занимает своё место рядом с кнопкой. */
.about__footer { position: relative; }
.about__signature {
    position: absolute;
    top: 0;
    right: 0;
    width: clamp(100px, 11vw, 140px);
    height: auto;
    pointer-events: none;
}
@media (max-width: 760px) {
    .about__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; }
    .about__signature { position: static; flex-shrink: 0; margin-left: auto; }
}

/* Отзывы на главной — композиция из предоставленных PNG. */
.reviews--vineyard {
    --review-unit: min(1vw, 20px);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: calc(56.28 * var(--review-unit));
    padding: calc(2 * var(--review-unit)) 0 calc(5.8 * var(--review-unit));
    background: #f4e7cf url('images/reviews/vineyard-background.png') center bottom / 100% 100% no-repeat;
}
.reviews--vineyard > .container {
    width: 100%;
    max-width: 2000px;
    padding: 0;
    margin: 0 auto;
}
.reviews--vineyard .reviews__heading {
    position: relative;
    width: 46%;
    margin: 0 0 0 28%;
}
.reviews--vineyard .reviews__heading h2 { margin: 0; }
.reviews--vineyard .reviews__heading img { width: 100%; }
.reviews--vineyard .reviews__rating {
    position: absolute;
    bottom: 25%;
    left: 15%;
    right: 11%;
    text-align: center;
    color: #2b1b12;
    font-size: clamp(12px, 1.03vw, 20px);
    line-height: 1.4;
}
.reviews--vineyard .reviews__carousel {
    position: relative;
    margin: calc(1.4 * var(--review-unit)) 7.3% 0 15%;
}
.reviews--vineyard .reviews__grid {
    display: flex;
    gap: calc(1.2 * var(--review-unit));
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    margin: 0;
    padding: 5px 0 14px;
}
.reviews--vineyard .reviews__grid::-webkit-scrollbar { display: none; }
.reviews--vineyard .reviews__card {
    flex: 0 0 calc((100% - 2.4 * var(--review-unit)) / 3);
    min-width: 0;
    min-height: calc(21.8 * var(--review-unit));
    padding: calc(4 * var(--review-unit)) calc(3.2 * var(--review-unit)) calc(1.4 * var(--review-unit));
    border: 0;
    border-radius: 0;
    background: url('images/reviews/review-frame.svg') center / 100% 100% no-repeat;
    filter: drop-shadow(0 7px 6px #71401840);
    scroll-snap-align: start;
}
.reviews--vineyard .reviews__card::before {
    top: calc(1.4 * var(--review-unit));
    left: calc(1.8 * var(--review-unit));
    font-family: Georgia, serif;
    font-size: calc(5 * var(--review-unit));
    color: #d4a657;
    opacity: .75;
}
.reviews--vineyard .reviews__text {
    font-size: clamp(13px, 1.03vw, 20px);
    line-height: 1.4;
    margin-bottom: calc(1.1 * var(--review-unit));
}
.reviews--vineyard .reviews__author {
    color: #7a1d13;
    font-size: clamp(13px, 1vw, 20px);
    line-height: 1.4;
}
.reviews--vineyard .reviews__stars {
    margin-top: calc(.8 * var(--review-unit));
    font-size: clamp(22px, 1.9vw, 38px);
    letter-spacing: .08em;
    line-height: 1;
    color: #efa327;
    -webkit-text-stroke: .5px #c6811e;
    text-shadow: 0 1px 0 #fff5cd;
}
.reviews--vineyard .reviews__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: grid;
    place-items: center;
    width: calc(3.5 * var(--review-unit));
    height: calc(3.5 * var(--review-unit));
    padding: 0 0 .08em;
    border: 2px solid #a56924;
    border-radius: 50%;
    background: #fff0ce;
    color: #572413;
    font: 400 clamp(30px, 2.7vw, 54px)/1 Georgia, serif;
    box-shadow: 0 3px 6px #63381540, inset 0 0 0 3px #fff8e5;
    cursor: pointer;
    transform: translateY(-50%);
}
.reviews--vineyard .reviews__arrow--prev { left: calc(-4.4 * var(--review-unit)); }
.reviews--vineyard .reviews__arrow--next { right: calc(-4.4 * var(--review-unit)); }
.reviews--vineyard .reviews__arrow { transition: background-color .2s ease, box-shadow .2s ease; }
.reviews--vineyard .reviews__arrow:is(:hover, .pointer-hover) { background: #ffe2a7; box-shadow: 0 4px 9px #63381560, inset 0 0 0 3px #fff8e5; }
.reviews--vineyard .reviews__cta { margin: calc(1.2 * var(--review-unit)) 7.3% 0 15%; }
.reviews--vineyard .reviews__google {
    display: block;
    position: relative;
    width: 34%;
    aspect-ratio: 5.85;
    margin: 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    filter: drop-shadow(0 4px 3px #63381560);
    transition: filter .2s, transform .2s;
}
.reviews--vineyard .reviews__google-image {
    position: absolute;
    inset: 0;
    background: url('images/reviews/google-button.png') 50% 47% / 116% auto no-repeat;
    pointer-events: none;
}
.reviews--vineyard .reviews__google:is(:hover, .pointer-hover) { transform: translateY(-2px); filter: drop-shadow(0 6px 4px #63381580) brightness(1.08); }
.reviews--vineyard :is(button, a, [tabindex]):focus-visible { outline: 3px solid #7a1d13; outline-offset: 5px; }
@media (max-width: 1000px) {
    .reviews--vineyard {
        min-height: 0;
        padding: 36px 0 68px;
        background-size: auto 100%;
        background-position: 28% bottom;
    }
    .reviews--vineyard .reviews__heading { width: min(700px, 94%); margin: 0 auto; }
    .reviews--vineyard .reviews__rating { font-size: clamp(10px, 1.7vw, 15px); }
    .reviews--vineyard .reviews__carousel { margin: 24px 9% 0; }
    .reviews--vineyard .reviews__grid { gap: 18px; }
    .reviews--vineyard .reviews__card {
        flex-basis: calc((100% - 18px) / 2);
        min-height: 350px;
        padding: 62px 30px 32px;
    }
    .reviews--vineyard .reviews__card::before { top: 20px; left: 26px; font-size: 70px; }
    .reviews--vineyard .reviews__text { font-size: 15px; line-height: 1.5; margin-bottom: 20px; }
    .reviews--vineyard .reviews__author { font-size: 15px; }
    .reviews--vineyard .reviews__stars { font-size: 28px; margin-top: 14px; }
    .reviews--vineyard .reviews__arrow { width: 42px; height: 42px; font-size: 36px; }
    .reviews--vineyard .reviews__arrow--prev { left: -48px; }
    .reviews--vineyard .reviews__arrow--next { right: -48px; }
    .reviews--vineyard .reviews__cta { margin: 22px 8% 0; }
    .reviews--vineyard .reviews__google { width: min(430px, 80%); }
}
@media (max-width: 600px) {
    .reviews--vineyard { padding: 28px 0 48px; background-position: 36% bottom; }
    .reviews--vineyard .reviews__heading { width: 100%; }
    .reviews--vineyard .reviews__rating { bottom: 24%; left: 19%; right: 15%; font-size: clamp(9px, 2.3vw, 13px); }
    .reviews--vineyard .reviews__carousel { margin: 20px 12% 0; }
    .reviews--vineyard .reviews__card { flex-basis: 100%; padding: 62px 28px 30px; min-height: 380px; }
    .reviews--vineyard .reviews__arrow { width: 34px; height: 34px; font-size: 30px; }
    .reviews--vineyard .reviews__arrow--prev { left: -40px; }
    .reviews--vineyard .reviews__arrow--next { right: -40px; }
    .reviews--vineyard .reviews__google { width: 100%; }
}

/* Орнамент заполняет прозрачную область PNG справа сверху. */
.reviews--vineyard { background-image: none; }
.reviews--vineyard::before {
    content: "";
    position: absolute;
    z-index: -2;
    top: calc(-2 * var(--review-unit));
    right: 0;
    width: 100%;
    aspect-ratio: 1;
    background: url('images/why/carpet-corner.webp') top left / contain no-repeat;
    transform: scaleX(-1);
    opacity: .48;
    mix-blend-mode: multiply;
    pointer-events: none;
}
.reviews--vineyard::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image: url('images/reviews/vineyard-background.png');
    background-position: inherit;
    background-size: inherit;
    background-repeat: no-repeat;
    pointer-events: none;
}
@media (max-width: 1000px) {
    .reviews--vineyard::before { width: 100%; opacity: .35; }
}
@media (max-width: 600px) {
    .reviews--vineyard::before { width: 150%; opacity: .28; }
}
