:root {
    --red: #df1617;
    --red-dark: #bd1011;
    --brown: #2c180f;
    --brown-soft: #6c5b50;
    --cream: #fffaf2;
    --cream-deep: #faead1;
    --gold: #d89a27;
    --line: #ead9c7;
    --white: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: #f6f3ee;
    color: var(--brown);
    font-family: Arial, Helvetica, sans-serif;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-shell {
    width: min(1500px, calc(100% - 28px));
    margin: 14px auto 40px;
}

.hero {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(226, 192, 148, .66);
    border-radius: 28px;
    background:
        radial-gradient(circle at 72% 19%, rgba(255,255,255,.95) 0 7px, transparent 8px),
        radial-gradient(circle at 89% 28%, rgba(255,255,255,.9) 0 5px, transparent 6px),
        radial-gradient(circle at 18% 19%, rgba(255,255,255,.8) 0 6px, transparent 7px),
        radial-gradient(circle at 55% 9%, rgba(255,241,190,.9), transparent 20%),
        linear-gradient(112deg, #fffaf1 0%, #fff6e6 43%, #ffe2bd 100%);
    box-shadow: 0 24px 60px rgba(87, 50, 25, .08);
}
.hero::before,
.hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,.5);
    filter: blur(1px);
}
.hero::before { width: 44px; height: 44px; left: 8%; top: 25%; }
.hero::after { width: 25px; height: 25px; right: 5%; top: 9%; }

.site-header {
    position: relative;
    z-index: 20;
    display: grid;
    grid-template-columns: 150px minmax(440px, 1fr) auto;
    align-items: center;
    gap: 28px;
    min-height: 112px;
    padding: 12px 46px 6px;
}
.brand { width: 116px; }
.brand img { width: 100%; height: auto; }
.main-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: clamp(22px, 3vw, 48px);
    font-size: 14px;
    font-weight: 600;
}
.main-nav a { position: relative; padding: 12px 0; }
.main-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 6px;
    height: 2px;
    background: var(--red);
    transition: right .2s ease;
}
.main-nav a:hover::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 18px; }
.header-phone { display: flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 14px; font-weight: 700; }
.header-phone__icon { color: var(--brown); font-size: 10px; }
.header-contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 23px;
    border: 1px solid var(--red);
    border-radius: 13px;
    color: var(--red);
    font-size: 13px;
    font-weight: 700;
    transition: .2s ease;
}
.header-contact:hover { color: #fff; background: var(--red); }
.cart-button { position: relative; display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.6); }
.cart-button svg { width: 21px; fill: none; stroke: var(--brown); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.cart-count { position: absolute; right: -5px; top: -6px; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--red); color: white; font-size: 11px; font-weight: 700; }
.mobile-menu-toggle { display: none; }

.hero-content {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: 46% 54%;
    min-height: 485px;
    padding: 20px 58px 20px 180px;
}
.hero-copy { align-self: center; max-width: 540px; padding-bottom: 35px; }
.hero-kicker { margin: 0 0 18px; color: #9c7254; font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hero h1 { margin: 0; color: var(--brown); font-size: clamp(54px, 5.1vw, 82px); line-height: .93; letter-spacing: -.045em; }
.hero h1 span { color: var(--red); }
.hero-text { max-width: 440px; margin: 26px 0 28px; color: #5d5149; font-size: 18px; line-height: 1.55; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 25px; border-radius: 12px; font-size: 14px; font-weight: 700; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button--red { background: linear-gradient(180deg, #eb1e1e, #cf0c0d); color: #fff; box-shadow: 0 12px 24px rgba(211, 22, 22, .18); }
.button--outline { border: 1px solid #51392d; background: rgba(255,255,255,.45); }

.hero-visual { position: relative; min-height: 450px; }
.hero-glow { position: absolute; width: 520px; height: 390px; left: 50%; top: 47%; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.98) 0%, rgba(255,229,171,.68) 48%, rgba(255,219,157,0) 72%); }
.hero-product-stage { position: absolute; z-index: 4; left: 50%; bottom: 14px; width: min(365px, 60%); transform: translateX(-50%); filter: drop-shadow(0 28px 20px rgba(91,45,22,.22)); }
.hero-product { width: 100%; max-height: 425px; object-fit: contain; }
.hero-present { position: relative; width: 280px; height: 270px; margin: 70px auto 0; border-radius: 18px 18px 24px 24px; background: linear-gradient(145deg,#315c31,#0d3f25); box-shadow: inset -18px -18px 24px rgba(0,0,0,.12); }
.hero-present__ribbon-v, .hero-present__ribbon-h { position:absolute; background: linear-gradient(90deg,#d79016,#ffc75d,#c87906); }
.hero-present__ribbon-v { width: 54px; top:0; bottom:0; left:113px; }
.hero-present__ribbon-h { height:54px; left:0; right:0; top:102px; }
.hero-present__bow { position:absolute; left:50%; top:-48px; transform:translateX(-50%); color:#e5a631; font-size:92px; line-height:1; }
.pine { position: absolute; z-index: 2; width: 320px; height: 120px; border-radius: 55% 10% 55% 10%; opacity: .9; background: repeating-linear-gradient(13deg, transparent 0 11px, #1b522e 12px 15px, transparent 16px 23px); }
.pine--one { right: 4%; top: 90px; transform: rotate(16deg); }
.pine--two { left: 5%; bottom: 85px; transform: rotate(-18deg); }
.ornament { position: absolute; z-index: 5; width: 58px; height: 58px; border-radius: 50%; box-shadow: inset -9px -11px 16px rgba(0,0,0,.13), 0 12px 18px rgba(86,43,22,.12); }
.ornament::before { content:""; position:absolute; width:18px; height:10px; left:20px; top:-8px; border-radius:4px 4px 0 0; background:#b97815; }
.ornament--red { left: 19%; bottom: 73px; background: linear-gradient(145deg,#ff4a30,#c40a0a); }
.ornament--gold { right: 13%; bottom: 44px; width: 72px; height:72px; background: linear-gradient(145deg,#ffc758,#d27b08); }
.spark { position:absolute; z-index:3; color:#d79d2d; text-shadow:0 0 15px rgba(255,198,62,.5); }
.spark--one { left:14%; top:88px; font-size:25px; }
.spark--two { right:11%; top:122px; font-size:38px; }
.spark--three { right:6%; bottom:90px; font-size:20px; }

.benefits {
    position: relative;
    z-index: 8;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding: 20px 52px;
    border-top: 1px solid rgba(229, 204, 174, .82);
    background: rgba(255, 251, 245, .88);
    backdrop-filter: blur(8px);
}
.benefit { display: grid; grid-template-columns: 54px 1fr; align-items: center; gap: 14px; padding: 7px 28px; border-right: 1px solid #eadbc8; }
.benefit:last-child { border-right: 0; }
.benefit-icon { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--red); border-radius: 50%; color: var(--red); font-size: 22px; }
.benefit strong { display: block; margin-bottom: 5px; font-size: 14px; }
.benefit p { margin: 0; color: #73655b; font-size: 12px; line-height: 1.45; }

.catalog-preview { padding: 54px 22px 20px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin:0 auto 26px; max-width:1370px; }
.section-kicker { margin:0 0 7px; color:var(--red); font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.section-heading h2 { margin:0; font-size:34px; letter-spacing:-.025em; }
.section-link { color:var(--red); font-weight:700; font-size:14px; }
.section-link span { margin-left:5px; }
.gift-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1370px; margin:auto; }
.gift-card { overflow:hidden; border:1px solid #e5ddd3; border-radius:18px; background:#fff; transition:transform .2s ease, box-shadow .2s ease; }
.gift-card:hover { transform:translateY(-4px); box-shadow:0 18px 35px rgba(58,40,26,.09); }
.gift-card__image { display:grid; place-items:center; height:265px; padding:22px; background:linear-gradient(180deg,#fff,#fffaf3); }
.gift-card__image img { width:100%; height:100%; object-fit:contain; }
.gift-card__placeholder { color:#9b8b7d; }
.gift-card__body { padding:18px 18px 20px; }
.gift-card h3 { margin:0 0 7px; font-size:18px; }
.gift-card p { margin:0; color:#8b7f75; font-size:13px; }
.gift-card__footer { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:22px; }
.gift-card__footer strong { font-size:18px; }
.gift-card__arrow { display:grid; place-items:center; width:40px; height:40px; border:1px solid #ead3bc; border-radius:12px; color:#7c3218; font-size:21px; transition:.2s ease; }
.gift-card__arrow:hover { border-color:var(--red); color:var(--red); }
.catalog-empty { max-width:1370px; margin:auto; padding:34px; border:1px dashed #ddc7b2; border-radius:18px; background:#fffaf5; color:#75675c; text-align:center; }
.placeholder-section { max-width:1370px; margin:28px auto; padding:38px; border:1px dashed #e4d7c9; border-radius:18px; color:#8a7d72; text-align:center; background:#faf8f5; }

@media (max-width: 1220px) {
    .site-header { grid-template-columns: 120px 1fr auto; padding-left:28px; padding-right:28px; gap:18px; }
    .main-nav { gap:20px; font-size:13px; }
    .header-phone { display:none; }
    .hero-content { padding-left:90px; }
    .benefits { padding-left:20px; padding-right:20px; }
    .benefit { padding-left:16px; padding-right:16px; }
}

@media (max-width: 960px) {
    .site-shell { width:calc(100% - 16px); margin-top:8px; }
    .hero { border-radius:22px; }
    .site-header { grid-template-columns:100px 1fr auto; min-height:90px; }
    .brand { width:90px; }
    .mobile-menu-toggle { display:flex; justify-self:end; flex-direction:column; gap:5px; width:42px; height:42px; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.75); }
    .mobile-menu-toggle span:not(.sr-only) { width:19px; height:2px; background:var(--brown); }
    .main-nav { display:none; position:absolute; left:18px; right:18px; top:86px; flex-direction:column; align-items:stretch; gap:0; padding:12px; border:1px solid var(--line); border-radius:16px; background:#fffdf9; box-shadow:0 18px 40px rgba(55,31,18,.13); }
    .main-nav--open { display:flex; }
    .main-nav a { padding:13px 12px; }
    .header-actions { grid-column:2; grid-row:1; justify-content:flex-end; }
    .header-contact { display:none; }
    .hero-content { grid-template-columns:1fr 1fr; padding:30px 44px 20px; }
    .hero h1 { font-size:54px; }
    .hero-visual { min-height:390px; }
    .benefits { grid-template-columns:repeat(2,1fr); }
    .benefit:nth-child(2) { border-right:0; }
    .benefit:nth-child(-n+2) { border-bottom:1px solid #eadbc8; }
    .gift-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 680px) {
    .site-header { grid-template-columns:78px 1fr auto; padding:10px 14px 4px; }
    .brand { width:76px; }
    .cart-button { width:40px; height:40px; }
    .hero-content { grid-template-columns:1fr; min-height:auto; padding:34px 24px 0; }
    .hero-copy { padding-bottom:22px; }
    .hero-kicker { font-size:11px; }
    .hero h1 { font-size:49px; }
    .hero-text { font-size:16px; }
    .hero-visual { min-height:320px; }
    .hero-product-stage { width:min(270px,72%); }
    .ornament--red { left:10%; }
    .benefits { grid-template-columns:1fr; padding:8px 18px; }
    .benefit { border-right:0; border-bottom:1px solid #eadbc8; padding:14px 2px; }
    .benefit:last-child { border-bottom:0; }
    .catalog-preview { padding:40px 8px 10px; }
    .section-heading { align-items:flex-start; flex-direction:column; gap:10px; }
    .section-heading h2 { font-size:28px; }
    .gift-grid { grid-template-columns:1fr; }
    .gift-card__image { height:300px; }
}

/* ===== Stage 7: многостраничная публичная структура ===== */
.site-header--page {
    position: relative;
    margin: 0;
    padding: 18px 34px;
    border-bottom: 1px solid rgba(121, 74, 42, .12);
    background: rgba(255, 250, 243, .95);
}

.main-nav a.is-active {
    color: #c91915;
}

.cart-button.is-active {
    border-color: #d52b24;
}

.page-main {
    padding: 28px 36px 54px;
}

.page-hero {
    max-width: 1180px;
    margin: 0 auto 28px;
    padding: 52px 54px;
    border: 1px solid rgba(121, 74, 42, .12);
    border-radius: 30px;
    background: linear-gradient(115deg, #fffaf3 0%, #fff1dd 100%);
}

.page-hero--compact {
    margin-bottom: 18px;
}

.page-hero h1 {
    margin: 6px 0 14px;
    font-size: clamp(38px, 5vw, 68px);
    line-height: .98;
}

.page-hero > p:last-child {
    max-width: 720px;
    margin: 0;
    color: #6f645d;
    font-size: 18px;
    line-height: 1.6;
}

.page-placeholder-card,
.catalog-page,
.gift-detail {
    max-width: 1180px;
    margin: 0 auto;
    padding: 30px;
    border: 1px solid rgba(121, 74, 42, .12);
    border-radius: 26px;
    background: #fff;
}

.page-placeholder-card strong {
    font-size: 24px;
}

.page-placeholder-card p {
    color: #746a63;
}

.weight-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 26px;
}

.weight-filter a {
    padding: 10px 16px;
    border: 1px solid #e3d3c4;
    border-radius: 999px;
    color: #49362c;
    text-decoration: none;
    background: #fffaf6;
}

.weight-filter a:hover,
.weight-filter a.is-active {
    color: #fff;
    border-color: #cf1d18;
    background: #cf1d18;
}

.gift-grid--catalog {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.site-footer {
    display: flex;
    justify-content: space-between;
    gap: 32px;
    margin: 0 36px 30px;
    padding: 30px 34px;
    border-radius: 24px;
    background: #2e211b;
    color: #fff;
}

.site-footer__brand {
    color: #fff;
    font-size: 24px;
    font-weight: 800;
    text-decoration: none;
    letter-spacing: .08em;
}

.site-footer p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.7);
}

.site-footer__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
}

.site-footer__nav a {
    color: #fff;
    text-decoration: none;
}

.gift-detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 46px;
}

.gift-detail__media {
    display: grid;
    place-items: center;
    min-height: 480px;
    border-radius: 24px;
    background: #fff9f1;
}

.gift-detail__media img {
    width: 100%;
    height: 460px;
    object-fit: contain;
}

.gift-detail__content h1 {
    margin: 18px 0 8px;
    font-size: clamp(38px, 5vw, 64px);
    line-height: 1;
}

.back-link {
    color: #9b2d20;
    text-decoration: none;
}

.gift-detail__weight {
    color: #766b64;
    font-size: 18px;
}

.gift-detail__price {
    display: block;
    margin: 18px 0 28px;
    font-size: 28px;
}

.gift-compositions-preview {
    padding-top: 20px;
    border-top: 1px solid #eee1d6;
}

.gift-compositions-preview h2 {
    font-size: 22px;
}

.composition-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 13px 0;
    border-bottom: 1px solid #f0e7df;
}

.development-note {
    margin-top: 22px;
    padding: 14px 16px;
    border-radius: 14px;
    color: #76675f;
    background: #fff7ec;
}

@media (max-width: 1050px) {
    .gift-grid--catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gift-detail { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .site-header--page { padding: 14px 18px; }
    .page-main { padding: 18px 14px 34px; }
    .page-hero { padding: 34px 24px; border-radius: 22px; }
    .page-placeholder-card, .catalog-page, .gift-detail { padding: 20px; border-radius: 20px; }
    .gift-grid--catalog { grid-template-columns: 1fr; }
    .site-footer { margin: 0 14px 18px; flex-direction: column; padding: 24px; }
    .site-footer__nav { flex-direction: column; align-items: flex-start; }
    .gift-detail__media { min-height: 320px; }
    .gift-detail__media img { height: 300px; }
}

/* ===== Stage 8: верх главной страницы ===== */
.hero {
    background-image: url('/assets/images/fon.png');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
}

.brand {
    display: inline-block;
    transform-origin: 50% 55%;
    animation: sladgard-logo-float 4.6s ease-in-out infinite;
}
.brand img {
    transition: transform .3s ease, filter .3s ease;
}
.brand:hover img {
    transform: scale(1.025);
    filter: drop-shadow(0 8px 12px rgba(113, 61, 22, .10));
}
@keyframes sladgard-logo-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}
@media (prefers-reduced-motion: reduce) {
    .brand { animation: none; }
}

.header-email {
    white-space: nowrap;
    color: var(--brown);
    font-size: 14px;
    font-weight: 700;
    transition: color .25s ease;
}
.header-email:hover { color: var(--red); }

.hero-text {
    transition: color .35s ease;
}
.hero-text:hover {
    color: var(--red);
}

.cart-button {
    overflow: visible;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.cart-button:hover {
    transform: translateY(-2px);
    border-color: rgba(223, 22, 23, .45);
    box-shadow: 0 8px 18px rgba(91, 45, 22, .10);
}
.cart-button__image {
    width: 32px;
    height: 32px;
    object-fit: contain;
    transition: opacity .16s ease, transform .22s ease;
}
.cart-button.is-switching .cart-button__image {
    opacity: 0;
    transform: scale(.72) rotate(-7deg);
}
.cart-button.is-pop .cart-button__image {
    animation: sladgard-cart-pop .48s cubic-bezier(.2,.8,.2,1);
}
@keyframes sladgard-cart-pop {
    0% { transform: scale(.8) rotate(-8deg); }
    45% { transform: scale(1.18) rotate(5deg); }
    72% { transform: scale(.96) rotate(-2deg); }
    100% { transform: scale(1) rotate(0); }
}
@media (prefers-reduced-motion: reduce) {
    .cart-button__image { transition: none; }
    .cart-button.is-pop .cart-button__image { animation: none; }
}

@media (max-width: 1220px) {
    .header-email { display: none; }
}


/* ===== Stage 9: точечные правки верхнего блока ===== */
.hero {
    min-height: calc(100vh - 28px);
    display: flex;
    flex-direction: column;
}

.hero .site-header {
    flex: 0 0 auto;
}

.hero-content {
    flex: 1 1 auto;
}

.hero .benefits {
    flex: 0 0 auto;
    margin-top: auto;
}

/* Логотип крупнее, лёгкое парение сохраняется. */
.site-header {
    grid-template-columns: 185px minmax(420px, 1fr) auto;
}
.brand {
    width: 158px;
}

/* Красный вертикальный разделитель между телефоном и почтой. */
.header-email {
    position: relative;
    margin-left: 2px;
    padding-left: 20px;
}
.header-email::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 2px;
    height: 28px;
    border-radius: 2px;
    background: var(--red);
    transform: translateY(-50%);
}

/* PNG корзины — сама картинка, без белой карточки/рамки. */
.cart-button,
.cart-button.is-active {
    width: 68px;
    height: 68px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.cart-button:hover {
    border-color: transparent;
    box-shadow: none;
    transform: translateY(-2px) scale(1.035);
}
.cart-button__image {
    width: 62px;
    height: 62px;
}
.cart-count {
    right: -1px;
    top: -2px;
}

/* fon.png уже содержит правую новогоднюю композицию — ничего поверх неё не рисуем. */
.hero-visual {
    pointer-events: none;
}
.hero-visual > * {
    display: none !important;
}

@media (max-width: 1220px) {
    .site-header {
        grid-template-columns: 150px minmax(360px, 1fr) auto;
    }
    .brand { width: 138px; }
}

@media (max-width: 900px) {
    .hero {
        min-height: auto;
    }
    .header-email {
        margin-left: 0;
        padding-left: 0;
    }
    .header-email::before {
        display: none;
    }
    .cart-button {
        width: 56px;
        height: 56px;
    }
    .cart-button__image {
        width: 52px;
        height: 52px;
    }
}


/* ===== Stage 10: фон, корзина и блок преимуществ ===== */
/* fon.png больше не масштабируется через cover: пропорции файла сохраняются. */
.hero {
    background-color: #fff5e7;
    background-size: 100% auto;
    background-position: center top;
    background-repeat: no-repeat;
}

/* Корзина ещё заметнее, по-прежнему только пользовательский PNG без подложки. */
.cart-button,
.cart-button.is-active {
    width: 84px;
    height: 84px;
}
.cart-button__image {
    width: 78px;
    height: 78px;
}
.cart-count {
    right: 1px;
    top: 1px;
}

/* Более мягкая и самостоятельная нижняя панель преимуществ. */
.hero .benefits {
    margin: auto 20px 18px;
    padding: 18px 24px;
    border: 1px solid rgba(225, 190, 150, .58);
    border-radius: 24px;
    background: rgba(255, 252, 247, .88);
    box-shadow:
        0 18px 38px rgba(110, 66, 35, .09),
        inset 0 1px 0 rgba(255, 255, 255, .88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.hero .benefit {
    grid-template-columns: 58px 1fr;
    gap: 16px;
    min-height: 82px;
    padding: 8px 24px;
    border-right: 1px solid rgba(210, 180, 148, .52);
}
.hero .benefit:last-child {
    border-right: 0;
}
.hero .benefit-icon {
    width: 54px;
    height: 54px;
    border: 1.5px solid var(--red);
    background: rgba(255,255,255,.42);
    box-shadow: 0 8px 18px rgba(193, 38, 31, .06);
    font-size: 22px;
}
.hero .benefit strong {
    margin-bottom: 6px;
    font-size: 15px;
    line-height: 1.2;
}
.hero .benefit p {
    max-width: 280px;
    color: #6e6259;
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 1220px) {
    .hero {
        background-size: auto 100%;
        background-position: center top;
    }
    .cart-button,
    .cart-button.is-active {
        width: 70px;
        height: 70px;
    }
    .cart-button__image {
        width: 66px;
        height: 66px;
    }
    .hero .benefits {
        margin-left: 14px;
        margin-right: 14px;
        padding-left: 14px;
        padding-right: 14px;
    }
    .hero .benefit {
        padding-left: 14px;
        padding-right: 14px;
    }
}

@media (max-width: 960px) {
    .hero {
        background-size: auto 100%;
        background-position: center top;
    }
    .hero .benefits {
        border-radius: 20px;
    }
    .hero .benefit:nth-child(2) {
        border-right: 0;
    }
    .hero .benefit:nth-child(-n+2) {
        border-bottom: 1px solid rgba(210, 180, 148, .52);
    }
}

@media (max-width: 680px) {
    .hero {
        background-size: auto 100%;
        background-position: 58% top;
    }
    .cart-button,
    .cart-button.is-active {
        width: 58px;
        height: 58px;
    }
    .cart-button__image {
        width: 54px;
        height: 54px;
    }
    .hero .benefits {
        margin: auto 10px 10px;
        padding: 8px 16px;
        border-radius: 18px;
    }
    .hero .benefit {
        grid-template-columns: 50px 1fr;
        min-height: 0;
        padding: 14px 2px;
        border-right: 0;
        border-bottom: 1px solid rgba(210, 180, 148, .52);
    }
    .hero .benefit:last-child {
        border-bottom: 0;
    }
    .hero .benefit-icon {
        width: 46px;
        height: 46px;
    }
}

/* ===== Stage 12: лёгкая плавающая шапка ===== */
/* Шапка фиксирована, но в самом верху её панель полностью прозрачна. */
.site-header,
.site-header--page {
    position: fixed;
    z-index: 1000;
    top: 14px;
    left: 50%;
    width: min(1500px, calc(100% - 28px));
    margin: 0;
    transform: translateX(-50%);
    border: 1px solid transparent;
    border-radius: 22px;
    background: transparent;
    box-shadow: none;
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

/* После начала прокрутки появляется лёгкая подложка. Без blur/backdrop-filter — это заметно дешевле для браузера. */
.site-header.is-scrolled,
.site-header--page.is-scrolled {
    border-color: rgba(227, 193, 157, .48);
    background: rgba(255, 248, 238, .96);
    box-shadow: 0 8px 22px rgba(89, 47, 24, .10);
}

/* Компенсируем высоту fixed-шапки, чтобы контент не уезжал под неё. */
.hero {
    padding-top: 112px;
}
.page-main {
    padding-top: 154px;
}

/* Красивые линейные SVG вместо символов/стрелок. */
.hero .benefit-icon {
    position: relative;
    overflow: hidden;
    border-width: 1.5px;
    background:
        radial-gradient(circle at 35% 28%, rgba(255,255,255,.98), rgba(255,248,242,.76) 58%, rgba(255,235,220,.62));
    box-shadow:
        0 8px 18px rgba(193, 38, 31, .07),
        inset 0 1px 0 rgba(255,255,255,.95);
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.hero .benefit-icon::after {
    content: "";
    position: absolute;
    inset: 5px;
    border: 1px solid rgba(223, 22, 23, .10);
    border-radius: 50%;
    pointer-events: none;
}
.hero .benefit-icon svg {
    position: relative;
    z-index: 1;
    width: 30px;
    height: 30px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.1;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.hero .benefit:hover .benefit-icon {
    transform: translateY(-2px) scale(1.04);
    background: #fff;
    box-shadow:
        0 11px 23px rgba(193, 38, 31, .12),
        inset 0 1px 0 rgba(255,255,255,1);
}

@media (max-width: 1220px) {
    .site-header,
    .site-header--page {
        top: 10px;
        width: calc(100% - 20px);
    }
    .hero { padding-top: 106px; }
    .page-main { padding-top: 140px; }
}

@media (max-width: 960px) {
    .site-header,
    .site-header--page {
        border-radius: 18px;
    }
    .hero { padding-top: 96px; }
    .page-main { padding-top: 126px; }
}

@media (max-width: 680px) {
    .site-header,
    .site-header--page {
        top: 6px;
        width: calc(100% - 12px);
        border-radius: 16px;
    }
    .hero { padding-top: 86px; }
    .page-main { padding-top: 112px; }
    .hero .benefit-icon svg {
        width: 26px;
        height: 26px;
    }
}

/* === STAGE 14: исправление контактных SVG === */
.header-phone,
.header-email {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--brown);
    text-decoration: none;
    white-space: nowrap;
    transition: color .22s ease;
}

.header-phone:hover,
.header-email:hover {
    color: var(--red);
}

.header-contact-icon {
    display: block;
    width: 18px;
    height: 18px;
    min-width: 18px;
    flex: 0 0 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.header-contact-icon rect,
.header-contact-icon path {
    fill: none;
    stroke: currentColor;
}

/* Старый точечный маркер телефона больше не используется. */
.header-phone__icon { display: none; }

/* === Stage 15: decorative manufacturers tags block === */
.makers-showcase {
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 72px 28px 68px;
    background:
        radial-gradient(circle at 50% 5%, rgba(255, 235, 203, .52), transparent 34%),
        linear-gradient(180deg, #fbf6f0 0%, #f8f1e9 100%);
    border-top: 1px solid rgba(198, 137, 63, .18);
    border-bottom: 1px solid rgba(198, 137, 63, .15);
}

.makers-showcase__glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 9% 32%, rgba(255,255,255,.92) 0 7px, transparent 8px),
        radial-gradient(circle at 88% 23%, rgba(255,255,255,.75) 0 5px, transparent 6px),
        radial-gradient(circle at 76% 72%, rgba(226,165,65,.13) 0 3px, transparent 4px);
    opacity: .85;
}

.makers-showcase__inner {
    position: relative;
    z-index: 1;
    width: min(1600px, 100%);
    margin: 0 auto;
}

.makers-showcase__heading {
    max-width: 860px;
    margin: 0 auto 42px;
    text-align: center;
}

.makers-showcase__kicker {
    margin: 0 0 10px;
    color: var(--red);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
}

.makers-showcase__heading h2 {
    margin: 0;
    color: var(--brown);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(38px, 4.2vw, 66px);
    font-weight: 600;
    line-height: 1.04;
    letter-spacing: -.025em;
}

.makers-showcase__heading h2 span { color: var(--red); }

.makers-showcase__heading > p:last-child {
    max-width: 680px;
    margin: 14px auto 0;
    color: #66564c;
    font-size: 17px;
    line-height: 1.55;
}

.makers-showcase__ornament,
.maker-tag__snow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #d99a2a;
}

.makers-showcase__ornament { margin: 16px 0 12px; }
.makers-showcase__ornament span { width: 56px; height: 1px; background: rgba(217,154,42,.55); }
.makers-showcase__ornament b { font-size: 19px; font-weight: 400; }

.maker-tags {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.maker-tag {
    position: relative;
    min-width: 0;
    min-height: 286px;
    padding: 48px 20px 22px;
    border: 1px solid rgba(218, 160, 72, .55);
    border-radius: 26px 26px 20px 20px;
    background: rgba(255, 251, 246, .87);
    box-shadow: 0 10px 24px rgba(102, 66, 37, .08), inset 0 0 0 5px rgba(255,255,255,.52);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.maker-tag::before,
.maker-tag::after {
    content: '';
    position: absolute;
    top: -1px;
    width: 32px;
    height: 32px;
    background: #f9f3ec;
    border-bottom: 1px solid rgba(218,160,72,.4);
}
.maker-tag::before { left: -1px; border-radius: 0 0 24px 0; }
.maker-tag::after { right: -1px; border-radius: 0 0 0 24px; }

.maker-tag__loop {
    position: absolute;
    left: 50%;
    top: -27px;
    width: 58px;
    height: 38px;
    transform: translateX(-50%);
    border: 3px solid #c72d25;
    border-bottom: 0;
    border-radius: 50% 50% 0 0;
    opacity: .92;
}

.maker-tag__hole {
    position: absolute;
    left: 50%;
    top: 16px;
    width: 21px;
    height: 21px;
    transform: translateX(-50%);
    border: 4px solid #d9a341;
    border-radius: 50%;
    background: #fbf6f0;
    box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}

.maker-tag__image {
    display: grid;
    place-items: center;
    height: 165px;
    padding: 8px;
}

.maker-tag__image img {
    display: block;
    width: 100%;
    max-width: 176px;
    max-height: 130px;
    object-fit: contain;
}

.maker-tag__snow { margin-top: 18px; }
.maker-tag__snow span { width: 30px; height: 1px; background: rgba(217,154,42,.55); }
.maker-tag__snow b { font-size: 16px; font-weight: 400; }

@media (hover:hover) and (pointer:fine) {
    .maker-tag:hover {
        transform: translateY(-7px);
        border-color: rgba(205, 46, 38, .52);
        box-shadow: 0 16px 32px rgba(102, 66, 37, .13), inset 0 0 0 5px rgba(255,255,255,.62);
    }
}

.makers-showcase__footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 34px;
    color: #66564c;
    font-size: 15px;
    text-align: center;
}

.makers-showcase__footer svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: #d99a2a;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex: 0 0 auto;
}

@media (max-width: 1180px) {
    .maker-tags { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 18px; }
}

@media (max-width: 720px) {
    .makers-showcase { padding: 58px 18px 54px; }
    .makers-showcase__heading { margin-bottom: 32px; }
    .makers-showcase__heading h2 { font-size: 42px; }
    .makers-showcase__heading > p:last-child { font-size: 15px; }
    .maker-tags {
        display: flex;
        gap: 14px;
        overflow-x: auto;
        padding: 24px 2px 12px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }
    .maker-tag {
        flex: 0 0 min(74vw, 260px);
        min-height: 258px;
        scroll-snap-align: center;
    }
    .maker-tag__image { height: 145px; }
    .makers-showcase__footer { margin-top: 24px; font-size: 13px; }
}

/* === Stage 16: объёмные морозные бирки + плавное появление === */
.maker-tag {
    isolation: isolate;
    overflow: visible;
    min-height: 300px;
    padding: 52px 22px 30px;
    border: 1px solid rgba(204, 139, 53, .7);
    border-radius: 30px 30px 24px 24px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.94), rgba(251,244,235,.91));
    box-shadow:
        0 18px 34px rgba(91, 53, 25, .10),
        0 5px 10px rgba(91, 53, 25, .06),
        inset 0 0 0 4px rgba(255,255,255,.76),
        inset 0 0 0 6px rgba(216, 160, 70, .16),
        inset 0 14px 24px rgba(255,255,255,.58);
}

/* Морозный узор рисуется только CSS, без отдельных картинок. */
.maker-tag > * {
    position: relative;
    z-index: 2;
}

.maker-tag::before {
    content: '';
    position: absolute;
    inset: 8px;
    z-index: 0;
    width: auto;
    height: auto;
    pointer-events: none;
    border: 1px solid rgba(226, 180, 109, .42);
    border-radius: 23px 23px 18px 18px;
    background:
        radial-gradient(ellipse at 8% 8%, transparent 0 29px, rgba(255,255,255,.75) 30px 31px, transparent 32px),
        radial-gradient(ellipse at 92% 12%, transparent 0 34px, rgba(255,255,255,.72) 35px 36px, transparent 37px),
        radial-gradient(ellipse at 10% 91%, transparent 0 42px, rgba(226,238,239,.52) 43px 45px, transparent 46px),
        radial-gradient(ellipse at 91% 88%, transparent 0 38px, rgba(226,238,239,.48) 39px 41px, transparent 42px),
        repeating-radial-gradient(circle at 12% 14%, rgba(255,255,255,.26) 0 1px, transparent 1px 9px),
        repeating-radial-gradient(circle at 88% 86%, rgba(211,227,231,.22) 0 1px, transparent 1px 10px);
    opacity: .9;
}

.maker-tag::after {
    content: '';
    position: absolute;
    z-index: 1;
    inset: 18px;
    width: auto;
    height: auto;
    pointer-events: none;
    border-radius: 20px;
    background:
        linear-gradient(125deg, transparent 0 10%, rgba(255,255,255,.62) 10.5% 11%, transparent 11.5% 100%),
        linear-gradient(38deg, transparent 0 82%, rgba(218,232,235,.35) 82.5% 83%, transparent 83.5% 100%);
    opacity: .58;
}

.maker-tag__loop {
    z-index: 4;
    top: -30px;
    width: 62px;
    height: 41px;
    border-width: 3px;
    filter: drop-shadow(0 2px 1px rgba(92, 33, 23, .10));
}

.maker-tag__hole {
    z-index: 5;
    top: 16px;
    width: 23px;
    height: 23px;
    border: 4px solid #d7a039;
    background: #fffaf3;
    box-shadow:
        0 2px 4px rgba(111, 69, 29, .16),
        inset 0 0 0 2px rgba(255,255,255,.7);
}

.maker-tag__image {
    height: 190px;
    padding: 16px 10px 8px;
}

.maker-tag__image img {
    max-width: 188px;
    max-height: 142px;
    filter: drop-shadow(0 5px 8px rgba(73, 42, 24, .08));
}

/* Старый декоративный элемент со снежинкой больше не показываем. */
.maker-tag__snow { display: none !important; }

@media (hover:hover) and (pointer:fine) {
    .maker-tag:hover {
        transform: translateY(-8px);
        border-color: rgba(195, 47, 39, .50);
        box-shadow:
            0 24px 44px rgba(91, 53, 25, .15),
            0 8px 14px rgba(91, 53, 25, .07),
            inset 0 0 0 4px rgba(255,255,255,.82),
            inset 0 0 0 6px rgba(216, 160, 70, .21);
    }
}

/* Плавное последовательное появление при входе блока в экран. */
.maker-tag--reveal {
    opacity: 0;
    transform: translateY(24px) scale(.985);
    transition:
        opacity .62s ease,
        transform .62s cubic-bezier(.22,.75,.25,1),
        box-shadow .22s ease,
        border-color .22s ease;
    transition-delay: calc(var(--maker-index, 0) * 75ms);
}

.maker-tag--reveal.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.maker-tag--reveal:nth-child(1) { --maker-index: 0; }
.maker-tag--reveal:nth-child(2) { --maker-index: 1; }
.maker-tag--reveal:nth-child(3) { --maker-index: 2; }
.maker-tag--reveal:nth-child(4) { --maker-index: 3; }
.maker-tag--reveal:nth-child(5) { --maker-index: 4; }
.maker-tag--reveal:nth-child(6) { --maker-index: 5; }

@media (prefers-reduced-motion: reduce) {
    .maker-tag--reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@media (max-width: 720px) {
    .maker-tag { min-height: 274px; padding-top: 48px; }
    .maker-tag__image { height: 158px; }
}

/* === Stage 17: убраны декоративные подвесы/люверсы на бирках === */
.maker-tag__loop,
.maker-tag__hole { display: none !important; }


/* === Stage 18: опускаем панель преимуществ к низу hero на обычных мониторах === */
@media (min-width: 961px) {
    .hero {
        /* Hero занимает как минимум весь видимый экран с учётом внешних отступов. */
        min-height: calc(100vh - 28px);
    }

    .hero-content {
        /* Даём центральной части занять свободную высоту,
           чтобы benefits естественно ушёл вниз. */
        flex: 1 1 auto;
        min-height: 0;
    }

    .hero .benefits {
        /* Панель остаётся в потоке и прижимается к самому низу hero. */
        margin-top: auto;
        margin-bottom: 18px;
        transform: translateY(140px);
    }
}

/* Невысокие экраны — MacBook и похожие */
@media (min-width: 961px) and (max-height: 850px) {
    .hero .benefits {
        transform: translateY(0);
        margin-bottom: 14px;
    }
}

/* === Stage 19: Сладгард в цифрах === */
.company-stats {
    position: relative;
    overflow: hidden;
    padding: 78px 28px 84px;
    background:
        radial-gradient(circle at 12% 22%, rgba(221, 43, 35, .045) 0 2px, transparent 3px),
        radial-gradient(circle at 88% 78%, rgba(211, 153, 45, .07) 0 3px, transparent 4px),
        linear-gradient(180deg, #fffdf9 0%, #fbf5ed 100%);
    border-top: 1px solid rgba(207, 146, 67, .20);
    border-bottom: 1px solid rgba(207, 146, 67, .20);
}

.company-stats__inner {
    width: min(1600px, calc(100% - 20px));
    margin: 0 auto;
}

.company-stats__heading {
    max-width: 760px;
    margin: 0 auto 42px;
    text-align: center;
}

.company-stats__kicker {
    margin: 0 0 10px;
    color: #e32720;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .18em;
}

.company-stats__heading h2 {
    margin: 0;
    color: #2c190f;
    font-size: clamp(30px, 3vw, 48px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.company-stats__heading h2 span {
    color: #e32720;
}

.company-stats__heading > p:last-child {
    max-width: 650px;
    margin: 16px auto 0;
    color: #74665c;
    font-size: 15px;
    line-height: 1.65;
}

.company-stats__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}

.company-stat {
    position: relative;
    min-height: 210px;
    padding: 32px 22px 28px;
    overflow: hidden;
    text-align: center;
    border: 1px solid rgba(211, 151, 61, .46);
    border-radius: 24px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,249,241,.93));
    box-shadow:
        0 14px 30px rgba(91, 53, 25, .07),
        inset 0 0 0 4px rgba(255,255,255,.72),
        inset 0 0 0 5px rgba(220, 166, 83, .10);
}

.company-stat::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 58px;
    height: 3px;
    border-radius: 0 0 8px 8px;
    background: #e32720;
    transform: translateX(-50%);
}

.company-stat::after {
    content: '';
    position: absolute;
    width: 90px;
    height: 90px;
    right: -46px;
    bottom: -48px;
    border: 1px solid rgba(211, 151, 61, .14);
    border-radius: 50%;
    box-shadow: 0 0 0 13px rgba(211, 151, 61, .035);
    pointer-events: none;
}

.company-stat__value {
    display: block;
    margin: 8px 0 16px;
    color: #e32720;
    font-size: clamp(34px, 3.1vw, 54px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.045em;
}

.company-stat--text .company-stat__value {
    max-width: 190px;
    margin: 8px auto 16px;
    font-size: clamp(28px, 2.2vw, 40px);
    line-height: 1.05;
}

.company-stat span {
    display: block;
    color: #2d1b12;
    font-size: 16px;
    font-weight: 850;
    line-height: 1.25;
}

.company-stat p {
    margin: 8px 0 0;
    color: #7b6d62;
    font-size: 13px;
    line-height: 1.45;
}

.company-stats__note {
    margin: 24px 0 0;
    color: #9b8b7f;
    text-align: center;
    font-size: 11px;
}

/* Однократное плавное появление — без тяжёлых библиотек. */
.company-stat {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity .55s ease,
        transform .55s cubic-bezier(.22,.75,.25,1),
        border-color .2s ease,
        box-shadow .2s ease;
}

.company-stats.is-visible .company-stat {
    opacity: 1;
    transform: translateY(0);
}

.company-stats.is-visible .company-stat:nth-child(2) { transition-delay: 70ms; }
.company-stats.is-visible .company-stat:nth-child(3) { transition-delay: 140ms; }
.company-stats.is-visible .company-stat:nth-child(4) { transition-delay: 210ms; }
.company-stats.is-visible .company-stat:nth-child(5) { transition-delay: 280ms; }

@media (hover:hover) and (pointer:fine) {
    .company-stat:hover {
        border-color: rgba(227, 39, 32, .38);
        box-shadow:
            0 18px 34px rgba(91, 53, 25, .10),
            inset 0 0 0 4px rgba(255,255,255,.78),
            inset 0 0 0 5px rgba(220, 166, 83, .14);
    }
}

@media (max-width: 1100px) {
    .company-stats__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .company-stat:last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .company-stats {
        padding: 58px 16px 62px;
    }

    .company-stats__inner {
        width: 100%;
    }

    .company-stats__grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .company-stat,
    .company-stat:last-child {
        grid-column: auto;
        min-height: 170px;
    }

    .company-stats__note {
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .company-stat {
        opacity: 1;
        transform: none;
        transition: none;
    }
}


/* === Stage 20: редизайн блока «Сладгард в цифрах» === */
.company-stats {
    padding-top: 86px;
    padding-bottom: 92px;
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 234, 202, .42), transparent 34%),
        linear-gradient(180deg, #fffdf9 0%, #f9f1e8 100%);
}

.company-stats__heading {
    margin-bottom: 50px;
}

.company-stats__grid {
    gap: 18px;
}

.company-stat {
    min-height: 250px;
    padding: 27px 20px 30px;
    border: 1px solid rgba(211, 151, 61, .46);
    border-radius: 28px;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.98), transparent 42%),
        linear-gradient(155deg, rgba(255,255,255,.98), rgba(255,247,237,.94));
    box-shadow:
        0 18px 38px rgba(91, 53, 25, .085),
        0 4px 10px rgba(91, 53, 25, .035),
        inset 0 0 0 4px rgba(255,255,255,.78),
        inset 0 0 0 5px rgba(215, 158, 74, .12);
}

.company-stat::before {
    top: 0;
    width: 72px;
    height: 4px;
    border-radius: 0 0 10px 10px;
    background: linear-gradient(90deg, #d71818, #ef3c31, #d71818);
}

.company-stat::after {
    width: 112px;
    height: 112px;
    right: -60px;
    bottom: -62px;
    border: 1px solid rgba(211, 151, 61, .13);
    box-shadow:
        0 0 0 14px rgba(211, 151, 61, .03),
        0 0 0 28px rgba(211, 151, 61, .018);
}

.company-stat__icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 13px;
    border: 1px solid rgba(223, 22, 23, .38);
    border-radius: 18px;
    color: var(--red);
    background:
        linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,242,232,.9));
    box-shadow:
        0 8px 18px rgba(183, 41, 31, .065),
        inset 0 1px 0 rgba(255,255,255,.9);
    transform: rotate(-3deg);
}

.company-stat:nth-child(even) .company-stat__icon {
    transform: rotate(3deg);
}

.company-stat__icon svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.company-stat__value {
    margin: 5px 0 13px;
    font-size: clamp(38px, 3vw, 55px);
    text-shadow: 0 2px 0 rgba(255,255,255,.75);
}

.company-stat--text .company-stat__value {
    max-width: 205px;
    margin-top: 5px;
    margin-bottom: 13px;
    font-size: clamp(27px, 2vw, 39px);
}

.company-stat span {
    font-size: 16px;
    letter-spacing: -.012em;
}

.company-stat p {
    max-width: 210px;
    margin: 8px auto 0;
    font-size: 13px;
    line-height: 1.5;
}

.company-stats__note {
    display: none !important;
}

@media (hover:hover) and (pointer:fine) {
    .company-stat:hover {
        transform: translateY(-7px);
        border-color: rgba(223, 22, 23, .34);
        box-shadow:
            0 24px 46px rgba(91, 53, 25, .12),
            0 7px 16px rgba(91, 53, 25, .05),
            inset 0 0 0 4px rgba(255,255,255,.82),
            inset 0 0 0 5px rgba(215, 158, 74, .16);
    }

    .company-stat:hover .company-stat__icon {
        transform: rotate(0deg) translateY(-2px) scale(1.04);
    }
}

.company-stat__icon {
    transition: transform .22s ease, box-shadow .22s ease;
}

.company-stat {
    transition:
        opacity .55s ease,
        transform .55s cubic-bezier(.22,.75,.25,1),
        border-color .2s ease,
        box-shadow .2s ease;
}

@media (max-width: 1100px) {
    .company-stat {
        min-height: 220px;
    }
}

@media (max-width: 640px) {
    .company-stats {
        padding-top: 62px;
        padding-bottom: 68px;
    }

    .company-stat {
        min-height: 190px;
        padding-top: 24px;
    }
}


/* === Stage 21: аккуратный каталог на главной, 5 карточек в ряд === */
.catalog-preview {
    padding: 64px 28px 34px;
}
.catalog-preview .section-heading {
    width: min(1600px, 100%);
    max-width: none;
    margin-bottom: 30px;
}
.gift-grid--home-preview {
    width: min(1600px, 100%);
    max-width: none;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}
.gift-grid--home-preview .gift-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(213, 176, 132, .55);
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(255,249,242,.96));
    box-shadow: 0 12px 28px rgba(80, 50, 29, .07), inset 0 0 0 3px rgba(255,255,255,.62);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.gift-grid--home-preview .gift-card__image {
    position: relative;
    display: grid;
    place-items: center;
    height: 220px;
    padding: 16px 18px 12px;
    overflow: hidden;
    background: radial-gradient(circle at 50% 40%, rgba(255,255,255,1), rgba(255,247,237,.9) 72%);
    border-bottom: 1px solid rgba(224, 199, 169, .42);
}
.gift-grid--home-preview .gift-card__image::after {
    content: "";
    position: absolute;
    left: 12%; right: 12%; bottom: 9px;
    height: 18px;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(71,45,27,.11), transparent 68%);
    filter: blur(4px);
    pointer-events: none;
}
.gift-grid--home-preview .gift-card__image img {
    position: relative;
    z-index: 1;
    width: 100%; height: 100%;
    max-width: 230px; max-height: 190px;
    object-fit: contain;
    object-position: center;
}
.gift-grid--home-preview .gift-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 16px 17px 17px;
}
.gift-grid--home-preview .gift-card h3 {
    min-height: 42px;
    margin: 0 0 6px;
    overflow: hidden;
    color: #2c190f;
    font-size: 16px;
    line-height: 1.28;
    font-weight: 800;
}
.gift-grid--home-preview .gift-card p {
    margin: 0;
    color: #8a7a6e;
    font-size: 12px;
    line-height: 1.35;
}
.gift-grid--home-preview .gift-card__footer {
    margin-top: auto;
    padding-top: 18px;
}
.gift-grid--home-preview .gift-card__footer strong {
    color: #2a180f;
    font-size: 17px;
    font-weight: 900;
}
.gift-grid--home-preview .gift-card__arrow {
    width: 38px; height: 38px;
    border-radius: 12px;
    border-color: rgba(216,154,39,.45);
    background: rgba(255,255,255,.7);
}
@media (hover:hover) and (pointer:fine) {
    .gift-grid--home-preview .gift-card:hover {
        transform: translateY(-6px);
        border-color: rgba(223,22,23,.34);
        box-shadow: 0 18px 36px rgba(80, 50, 29, .11), inset 0 0 0 3px rgba(255,255,255,.72);
    }
    .gift-grid--home-preview .gift-card:hover .gift-card__arrow {
        color: #fff;
        border-color: var(--red);
        background: var(--red);
    }
}
@media (max-width: 1320px) {
    .gift-grid--home-preview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .gift-grid--home-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gift-grid--home-preview .gift-card__image { height: 240px; }
}
@media (max-width: 620px) {
    .catalog-preview { padding: 48px 12px 24px; }
    .gift-grid--home-preview { grid-template-columns: 1fr; gap: 14px; }
    .gift-grid--home-preview .gift-card__image { height: 290px; }
    .gift-grid--home-preview .gift-card h3 { min-height: 0; }
}


/* === Stage 22: центральная кнопка перехода в полный каталог === */
.catalog-preview__cta {
    display: flex;
    justify-content: center;
    margin-top: 34px;
    padding-bottom: 8px;
}

.catalog-preview__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 54px;
    padding: 0 30px;
    border: 1px solid #d91618;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(180deg, #ec2524 0%, #cf1012 100%);
    box-shadow: 0 12px 24px rgba(207, 16, 18, .16);
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.catalog-preview__button span {
    font-size: 19px;
    line-height: 1;
    transition: transform .2s ease;
}

@media (hover:hover) and (pointer:fine) {
    .catalog-preview__button:hover {
        transform: translateY(-3px) scale(1.015);
        background: linear-gradient(180deg, #f12a28 0%, #c90c0e 100%);
        box-shadow: 0 17px 30px rgba(207, 16, 18, .23);
    }

    .catalog-preview__button:hover span {
        transform: translateX(3px);
    }
}

@media (max-width: 620px) {
    .catalog-preview__cta {
        margin-top: 24px;
    }

    .catalog-preview__button {
        width: 100%;
        min-height: 52px;
        padding: 0 20px;
        text-align: center;
    }
}


/* === Stage 23: плавающие кнопки связи и наверх === */
.floating-tools {
    position: fixed;
    z-index: 900;
    right: 24px;
    bottom: 28px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    pointer-events: none;
}

.floating-tools__button,
.floating-contact__item {
    pointer-events: auto;
}

.floating-tools__button {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    padding: 0;
    border: 1px solid rgba(213, 151, 57, .72);
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, #e32b25 0%, #bc0e12 100%);
    box-shadow:
        0 10px 24px rgba(126, 35, 23, .18),
        inset 0 0 0 3px rgba(255,255,255,.12);
    cursor: pointer;
    transition:
        transform .2s ease,
        opacity .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.floating-tools__button svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.floating-tools__button--top {
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
}

.floating-tools__button--top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.floating-contact {
    position: relative;
}

.floating-tools__button--contact {
    position: relative;
}

.floating-tools__close-icon {
    position: absolute;
    opacity: 0;
    transform: rotate(-35deg) scale(.75);
    transition: opacity .18s ease, transform .18s ease;
}

.floating-tools__chat-icon {
    transition: opacity .18s ease, transform .18s ease;
}

.floating-contact.is-open .floating-tools__chat-icon {
    opacity: 0;
    transform: rotate(35deg) scale(.75);
}

.floating-contact.is-open .floating-tools__close-icon {
    opacity: 1;
    transform: rotate(0) scale(1);
}

.floating-contact__menu {
    position: absolute;
    right: 0;
    bottom: 70px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 9px;
    visibility: hidden;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}

.floating-contact.is-open .floating-contact__menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0s;
}

.floating-contact__item {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    min-height: 48px;
    color: #2d1a10;
}

.floating-contact__label {
    display: block;
    padding: 9px 13px;
    border: 1px solid rgba(218, 189, 155, .48);
    border-radius: 12px;
    background: rgba(255, 251, 245, .98);
    box-shadow: 0 8px 18px rgba(76, 46, 26, .09);
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.floating-contact__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border: 1px solid rgba(213, 151, 57, .65);
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, #e32b25, #bc0e12);
    box-shadow: 0 8px 18px rgba(126, 35, 23, .15);
}

.floating-contact__icon svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.floating-contact__item--viber .floating-contact__icon {
    background: linear-gradient(145deg, #8e5bd3, #6840ad);
}

.floating-contact__item--telegram .floating-contact__icon {
    background: linear-gradient(145deg, #31aee8, #188dc7);
}

.floating-contact__item--mail .floating-contact__icon {
    background: linear-gradient(145deg, #df2b25, #b70e12);
}

@media (hover:hover) and (pointer:fine) {
    .floating-tools__button:hover,
    .floating-contact__item:hover .floating-contact__icon {
        transform: translateY(-2px) scale(1.04);
        box-shadow:
            0 14px 28px rgba(126, 35, 23, .22),
            inset 0 0 0 3px rgba(255,255,255,.14);
    }

    .floating-contact__item:hover .floating-contact__label {
        color: var(--red);
        border-color: rgba(223, 22, 23, .28);
    }
}

@media (max-width: 720px) {
    .floating-tools {
        right: 14px;
        bottom: 16px;
        gap: 9px;
    }

    .floating-tools__button {
        width: 52px;
        height: 52px;
    }

    .floating-tools__button svg {
        width: 24px;
        height: 24px;
    }

    .floating-contact__menu {
        bottom: 62px;
        gap: 7px;
    }

    .floating-contact__icon {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .floating-contact__label {
        padding: 8px 11px;
        font-size: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .floating-tools__button,
    .floating-contact__menu,
    .floating-tools__chat-icon,
    .floating-tools__close-icon {
        transition: none;
    }
}


/* === Stage 24: общий подвал сайта === */
.site-footer {
    display: block;
    margin: 34px 24px 24px;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(213, 151, 61, .26);
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 12% 10%, rgba(226, 55, 45, .18), transparent 28%),
        linear-gradient(135deg, #3a2117 0%, #24150f 100%);
    box-shadow: 0 18px 42px rgba(47, 27, 18, .14);
}

.site-footer__top {
    display: grid;
    grid-template-columns: 1.2fr .8fr 1fr;
    gap: 70px;
    padding: 42px 48px 38px;
}

.site-footer__brand-block {
    min-width: 0;
}

.site-footer__logo {
    display: inline-block;
    width: 150px;
}

.site-footer__logo img {
    width: 100%;
    height: auto;
}

.site-footer__tagline {
    max-width: 340px;
    margin: 18px 0 0;
    color: rgba(255,255,255,.72);
    font-size: 14px;
    line-height: 1.6;
}

.site-footer__column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.site-footer__column h2 {
    margin: 0 0 8px;
    color: #f4c06a;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.site-footer__column a {
    color: rgba(255,255,255,.82);
    font-size: 14px;
    line-height: 1.4;
    transition: color .2s ease, transform .2s ease;
}

.site-footer__contacts a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.site-footer__contacts svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    fill: none;
    stroke: #f4c06a;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover:hover) and (pointer:fine) {
    .site-footer__column a:hover {
        color: #ffcf78;
        transform: translateX(3px);
    }
}

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 18px 48px;
    border-top: 1px solid rgba(255,255,255,.10);
    color: rgba(255,255,255,.52);
    font-size: 12px;
}

.site-footer__bottom a {
    color: rgba(255,255,255,.68);
    transition: color .2s ease;
}

.site-footer__bottom a:hover {
    color: #ffcf78;
}

@media (max-width: 900px) {
    .site-footer__top {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
        padding: 36px 32px;
    }

    .site-footer__brand-block {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    .site-footer {
        margin: 24px 12px 14px;
        border-radius: 22px;
    }

    .site-footer__top {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 30px 24px;
    }

    .site-footer__brand-block {
        grid-column: auto;
    }

    .site-footer__logo {
        width: 128px;
    }

    .site-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        padding: 16px 24px 20px;
    }
}


/* === Stage 25: расширенный общий подвал === */
.site-footer__top {
    grid-template-columns: 1.35fr .72fr 1fr 1.1fr;
    gap: 52px;
    padding: 48px 52px 42px;
}

.site-footer__logo {
    width: 190px;
}

.site-footer__tagline {
    max-width: 380px;
    margin-top: 20px;
    font-size: 16px;
    line-height: 1.65;
}

.site-footer__info {
    max-width: 430px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(244, 192, 106, .28);
}

.site-footer__info p {
    margin: 0 0 7px;
    color: rgba(255,255,255,.82);
    font-size: 14px;
    line-height: 1.55;
}

.site-footer__hours {
    gap: 13px;
}

.site-footer__hours-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: baseline;
    gap: 18px;
    width: 100%;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.site-footer__hours-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.site-footer__hours-row span {
    color: rgba(255,255,255,.68);
    font-size: 13px;
}

.site-footer__hours-row strong {
    color: #fff;
    font-size: 14px;
    white-space: nowrap;
}

.site-footer__bottom {
    justify-content: flex-start;
}

.site-footer__legal {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.site-footer__legal-separator {
    color: rgba(255,255,255,.28);
}

@media (max-width: 1180px) {
    .site-footer__top {
        grid-template-columns: 1fr 1fr;
        gap: 38px 46px;
    }

    .site-footer__brand-block {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .site-footer__top {
        grid-template-columns: 1fr;
        padding: 34px 24px 30px;
    }

    .site-footer__brand-block {
        grid-column: auto;
    }

    .site-footer__logo {
        width: 160px;
    }

    .site-footer__tagline {
        font-size: 15px;
    }

    .site-footer__hours-row {
        grid-template-columns: 1fr auto;
    }

    .site-footer__bottom {
        padding-left: 24px;
        padding-right: 24px;
    }
}


/* === Stage 26: компактный подвал без лишнего воздуха === */
.site-footer__top {
    padding-top: 34px;
    padding-bottom: 24px;
    align-items: start;
}

.site-footer__brand-block {
    align-self: start;
}

.site-footer__tagline {
    margin-top: 14px;
}

.site-footer__info {
    margin-top: 16px;
    padding-top: 14px;
}

.site-footer__info p {
    margin-bottom: 5px;
}

.site-footer__column {
    gap: 8px;
}

.site-footer__column h2 {
    margin-bottom: 5px;
}

.site-footer__hours {
    gap: 9px;
}

.site-footer__hours-row {
    padding-bottom: 7px;
}

.site-footer__bottom {
    min-height: 0;
    padding-top: 12px;
    padding-bottom: 12px;
}

@media (max-width: 1180px) {
    .site-footer__top {
        padding-top: 30px;
        padding-bottom: 24px;
    }
}

@media (max-width: 700px) {
    .site-footer__top {
        padding-top: 28px;
        padding-bottom: 22px;
    }

    .site-footer__bottom {
        padding-top: 12px;
        padding-bottom: 14px;
    }
}


/* === Stage 27: реальное уменьшение высоты подвала === */
.site-footer__top {
    grid-template-columns: 1.1fr .72fr 1fr 1.1fr;
    gap: 46px;
    padding: 30px 48px 26px;
    align-items: start;
}

.site-footer__brand-block {
    min-height: 0;
}

.site-footer__tagline {
    max-width: 360px;
    margin-top: 12px;
    font-size: 15px;
    line-height: 1.55;
}

/* Старый высокий информационный блок в левой колонке больше не используется. */
.site-footer__info {
    display: none !important;
}

/* Информация о формате сайта теперь занимает тонкую строку на всю ширину. */
.site-footer__notice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    padding: 12px 48px;
    border-top: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.70);
    font-size: 12px;
    line-height: 1.45;
    text-align: center;
}

.site-footer__notice span + span {
    position: relative;
    padding-left: 29px;
}

.site-footer__notice span + span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1px;
    height: 18px;
    background: rgba(244,192,106,.35);
    transform: translateY(-50%);
}

.site-footer__bottom {
    padding: 10px 48px 11px;
}

/* Чуть плотнее сами короткие колонки. */
.site-footer__column {
    gap: 7px;
}

.site-footer__column h2 {
    margin-bottom: 4px;
}

.site-footer__hours {
    gap: 7px;
}

.site-footer__hours-row {
    padding-bottom: 6px;
}

/* Убираем старый override Stage 26, который уже не нужен для геометрии. */
@media (max-width: 1180px) {
    .site-footer__top {
        grid-template-columns: 1fr 1fr;
        gap: 30px 42px;
        padding: 28px 34px 24px;
    }

    .site-footer__brand-block {
        grid-column: 1 / -1;
    }

    .site-footer__notice {
        flex-direction: column;
        gap: 4px;
        padding: 11px 34px;
    }

    .site-footer__notice span + span {
        padding-left: 0;
    }

    .site-footer__notice span + span::before {
        display: none;
    }
}

@media (max-width: 700px) {
    .site-footer__top {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 26px 22px 22px;
    }

    .site-footer__brand-block {
        grid-column: auto;
    }

    .site-footer__notice {
        padding: 11px 22px;
    }

    .site-footer__bottom {
        padding: 10px 22px 12px;
    }
}


/* === Stage 28: полноценная страница каталога === */
.catalog-main { padding-top:34px; }
.catalog-intro {
    position:relative; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);
    gap:46px; width:min(1540px,calc(100% - 56px)); margin:0 auto 24px; padding:58px 62px;
    overflow:hidden; border:1px solid rgba(211,151,61,.28); border-radius:30px;
    background:radial-gradient(circle at 92% 18%,rgba(227,39,32,.08),transparent 25%),
               radial-gradient(circle at 8% 100%,rgba(221,167,79,.12),transparent 30%),
               linear-gradient(135deg,#fffdf9 0%,#fbf3e9 100%);
    box-shadow:0 18px 42px rgba(82,49,26,.07);
}
.catalog-intro::after {
    content:""; position:absolute; right:-80px; top:-95px; width:270px; height:270px;
    border:1px solid rgba(211,151,61,.13); border-radius:50%;
    box-shadow:0 0 0 28px rgba(211,151,61,.025),0 0 0 58px rgba(211,151,61,.018); pointer-events:none;
}
.catalog-intro__content,.catalog-intro__help { position:relative; z-index:1; }
.catalog-intro__content { max-width:850px; }
.catalog-intro h1 { margin:8px 0 20px; color:#2c190f; font-size:clamp(42px,5vw,76px); line-height:.98; letter-spacing:-.045em; }
.catalog-intro h1 span { color:var(--red); }
.catalog-intro__lead { max-width:760px; margin:0; color:#74675e; font-size:17px; line-height:1.7; }
.catalog-intro__help {
    align-self:center; padding:24px 26px; border:1px solid rgba(211,151,61,.34); border-radius:22px;
    background:rgba(255,255,255,.72); box-shadow:inset 0 0 0 4px rgba(255,255,255,.52);
}
.catalog-intro__help span { display:block; margin-bottom:7px; color:var(--red); font-size:12px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.catalog-intro__help strong { display:block; color:#2d1b12; font-size:18px; line-height:1.35; }
.catalog-intro__help a { display:inline-block; margin-top:13px; color:#b81717; font-size:15px; font-weight:850; }

.catalog-page--new { max-width:1540px; padding:0; border:0; border-radius:0; background:transparent; }
.catalog-filter-panel {
    margin-bottom:32px; padding:26px 30px 28px; border:1px solid rgba(121,74,42,.12); border-radius:24px;
    background:#fff; box-shadow:0 12px 30px rgba(73,45,25,.045);
}
.catalog-filter-panel__heading { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:20px; }
.catalog-filter-panel__heading h2 { margin:3px 0 0; color:#2d1a11; font-size:27px; line-height:1.1; }
.catalog-filter-panel__heading>p { margin:0; color:#8b7d72; font-size:13px; }
.weight-filter--catalog { gap:9px; margin:0; }
.weight-filter--catalog a { padding:10px 16px; border-color:rgba(211,151,61,.34); background:#fffaf5; font-size:13px; font-weight:750; transition:.18s ease; }

.catalog-weight-groups { display:flex; flex-direction:column; gap:48px; }
.catalog-weight-divider {
    position:relative; display:grid; grid-template-columns:auto minmax(40px,1fr) auto; align-items:center; gap:22px;
    margin-bottom:20px; padding:17px 24px; overflow:hidden; border:1px solid rgba(207,32,27,.18); border-radius:24px;
    background:radial-gradient(circle at 92% 28%,rgba(255,255,255,.55) 0 2px,transparent 3px),
               radial-gradient(circle at 84% 70%,rgba(255,255,255,.35) 0 1px,transparent 2px),
               linear-gradient(100deg,#fff8ee 0%,#f8e2ca 43%,#e64235 100%);
    box-shadow:0 10px 24px rgba(108,62,30,.07),inset 0 1px 0 rgba(255,255,255,.72);
}
.catalog-weight-divider::after {
    content:""; position:absolute; right:58px; top:-36px; width:130px; height:130px;
    border:1px solid rgba(255,255,255,.22); border-radius:50%; box-shadow:0 0 0 18px rgba(255,255,255,.045); pointer-events:none;
}
.catalog-weight-divider__title { position:relative; z-index:1; display:flex; align-items:baseline; gap:12px; }
.catalog-weight-divider__title span { color:#9b6f50; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.catalog-weight-divider__title h2 { margin:0; color:#c51a18; font-size:clamp(25px,2.4vw,38px); line-height:1; letter-spacing:-.035em; }
.catalog-weight-divider__line { position:relative; z-index:1; height:1px; background:linear-gradient(90deg,rgba(192,122,68,.32),rgba(255,255,255,.55)); }
.catalog-weight-divider__count { position:relative; z-index:1; padding:7px 12px; border:1px solid rgba(255,255,255,.35); border-radius:999px; color:#fff; background:rgba(124,20,17,.18); font-size:11px; font-weight:800; white-space:nowrap; }

.gift-grid--catalog { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.gift-card--catalog { display:flex; flex-direction:column; min-width:0; border:1px solid rgba(213,176,132,.52); border-radius:22px; background:linear-gradient(180deg,#fff 0%,#fffaf4 100%); box-shadow:0 12px 28px rgba(80,50,29,.065),inset 0 0 0 3px rgba(255,255,255,.65); }
.gift-card--catalog .gift-card__image { position:relative; height:245px; padding:18px; overflow:hidden; border-bottom:1px solid rgba(224,199,169,.38); background:radial-gradient(circle at 50% 40%,#fff 0%,#fff8ef 75%); }
.gift-card--catalog .gift-card__image img { position:relative; z-index:1; width:100%; height:100%; max-height:205px; object-fit:contain; }
.gift-card--catalog .gift-card__body { display:flex; flex:1; flex-direction:column; padding:17px 18px 18px; }
.gift-card--catalog .gift-card__heading h3 { min-height:44px; margin-bottom:6px; font-size:17px; line-height:1.3; }
.gift-card--catalog .gift-card__footer { margin-top:auto; padding-top:18px; }
.gift-card--catalog .gift-card__footer strong { font-size:17px; font-weight:900; }

@media (hover:hover) and (pointer:fine) {
    .weight-filter--catalog a:hover { transform:translateY(-2px); }
    .gift-card--catalog:hover { transform:translateY(-5px); border-color:rgba(218,39,31,.30); box-shadow:0 18px 36px rgba(80,50,29,.10); }
}
@media (max-width:1180px) {
    .catalog-intro { grid-template-columns:1fr; gap:26px; padding:46px; }
    .catalog-intro__help { max-width:520px; }
    .gift-grid--catalog { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:850px) {
    .catalog-intro,.catalog-page--new { width:calc(100% - 28px); }
    .catalog-intro { padding:38px 30px; }
    .catalog-filter-panel__heading { align-items:flex-start; flex-direction:column; gap:8px; }
    .catalog-weight-divider { grid-template-columns:1fr auto; }
    .catalog-weight-divider__line { display:none; }
    .gift-grid--catalog { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
    .catalog-main { padding-top:18px; }
    .catalog-intro,.catalog-page--new { width:calc(100% - 20px); }
    .catalog-intro { margin-bottom:16px; padding:30px 22px; border-radius:23px; }
    .catalog-intro h1 { font-size:42px; }
    .catalog-intro__lead { font-size:15px; }
    .catalog-filter-panel { padding:22px 18px; border-radius:20px; }
    .weight-filter--catalog { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
    .weight-filter--catalog::-webkit-scrollbar { display:none; }
    .weight-filter--catalog a { flex:0 0 auto; }
    .catalog-weight-groups { gap:36px; }
    .catalog-weight-divider { grid-template-columns:1fr; gap:10px; padding:16px 18px; border-radius:20px; }
    .catalog-weight-divider__title { display:block; }
    .catalog-weight-divider__title span { display:block; margin-bottom:5px; }
    .catalog-weight-divider__count { justify-self:start; color:#8e1a17; border-color:rgba(142,26,23,.15); background:rgba(255,255,255,.5); }
    .gift-grid--catalog { grid-template-columns:1fr; gap:14px; }
    .gift-card--catalog .gift-card__image { height:285px; }
    .gift-card--catalog .gift-card__heading h3 { min-height:0; }
}


/* === Stage 29: правки каталога по макету === */

/* Единая вертикаль для верхнего блока, фильтра и всех весовых секций */
.catalog-intro,
.catalog-page--new {
    width: min(1540px, calc(100% - 56px));
    max-width: 1540px;
}

/* Верхний блок компактнее и ниже, чтобы контент не конфликтовал с логотипом */
.catalog-main {
    padding-top: 22px;
}

.catalog-intro {
    padding: 38px 62px 40px;
    min-height: 0;
}

.catalog-intro h1 {
    margin-top: 6px;
    margin-bottom: 16px;
    font-size: clamp(40px, 4.45vw, 68px);
}

.catalog-intro__lead {
    font-size: 16px;
    line-height: 1.6;
}

/* В фильтре больше нет правого пояснения */
.catalog-filter-panel__heading {
    display: block;
}

/* Разделитель веса: только вес, одинаковая ширина со всеми основными блоками */
.catalog-weight-divider {
    display: flex;
    align-items: center;
    min-height: 78px;
    padding: 16px 30px;
}

.catalog-weight-divider__title {
    display: block;
}

.catalog-weight-divider__title h2 {
    font-size: clamp(28px, 2.4vw, 40px);
}

@media (max-width: 1180px) {
    .catalog-intro {
        padding: 34px 46px 36px;
    }
}

@media (max-width: 850px) {
    .catalog-intro,
    .catalog-page--new {
        width: calc(100% - 28px);
    }

    .catalog-intro {
        padding: 32px 30px;
    }

    .catalog-weight-divider {
        min-height: 68px;
        padding: 14px 22px;
    }
}

@media (max-width: 560px) {
    .catalog-intro,
    .catalog-page--new {
        width: calc(100% - 20px);
    }

    .catalog-intro {
        padding: 26px 22px 28px;
    }

    .catalog-intro h1 {
        font-size: 38px;
    }

    .catalog-weight-divider {
        min-height: 62px;
        padding: 13px 18px;
    }
}


/* === Stage 30: освобождаем место под крупный логотип в шапке === */
@media (min-width: 1181px) {
    .catalog-intro__content {
        padding-left: 118px;
    }

    .catalog-intro__content .section-kicker {
        margin-left: 0;
    }

    .catalog-intro h1 {
        font-size: clamp(38px, 4.05vw, 62px);
    }
}


/* === Stage 32: опускаем контент верхнего блока каталога ниже шапки === */
@media (min-width: 1181px) {
    .catalog-intro {
        padding-top: 72px;
    }

    .catalog-intro__content,
    .catalog-intro__help {
        transform: translateY(10px);
    }
}


/* === Stage 33: меняем местами общие боковые кнопки === */
.floating-contact {
    order: -1;
}

.floating-tools__button--top {
    order: 1;
}


/* === Stage 34: полноценная мобильная шапка + первый экран главной === */
.mobile-nav__head,
.mobile-nav__contacts,
.mobile-nav-backdrop {
    display: none;
}

@media (max-width: 680px) {
    body.mobile-nav-open {
        overflow: hidden;
    }

    .site-shell {
        width: 100%;
        margin: 0 0 32px;
    }

    /* Компактная мобильная шапка */
    .site-header,
    .site-header--page {
        top: 8px;
        left: 10px;
        right: 10px;
        width: auto;
        min-height: 68px;
        padding: 6px 10px 6px 12px;
        transform: none;
        grid-template-columns: 74px 1fr auto;
        gap: 8px;
        border: 1px solid rgba(227,193,157,.58);
        border-radius: 18px;
        background: rgba(255,250,243,.97);
        box-shadow: 0 8px 22px rgba(89,47,24,.09);
    }

    .brand {
        position: relative;
        z-index: 2;
        width: 72px;
        align-self: center;
    }

    .header-actions {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        gap: 4px;
    }

    .header-phone,
    .header-email {
        display: none !important;
    }

    .cart-button,
    .cart-button.is-active {
        width: 50px;
        height: 50px;
    }

    .cart-button__image {
        width: 48px;
        height: 48px;
    }

    .cart-count {
        right: -1px;
        top: -2px;
    }

    .mobile-menu-toggle {
        display: flex;
        position: relative;
        z-index: 1003;
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        width: 44px;
        height: 44px;
        margin-right: 2px;
        padding: 0;
        border: 1px solid rgba(218,154,39,.38);
        border-radius: 13px;
        background: #fffaf3;
        box-shadow: none;
    }

    .mobile-menu-toggle span:not(.sr-only) {
        width: 20px;
        height: 2px;
        border-radius: 2px;
        background: #381e13;
        transition: transform .2s ease, opacity .2s ease;
    }

    /* Настоящее боковое меню */
    .main-nav {
        display: flex;
        position: fixed;
        z-index: 1005;
        top: 0;
        right: 0;
        bottom: 0;
        left: auto;
        width: min(86vw, 350px);
        padding: 22px 22px 28px;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        border: 0;
        border-radius: 26px 0 0 26px;
        background: #fffaf3;
        box-shadow: -18px 0 45px rgba(48,27,16,.18);
        transform: translateX(105%);
        visibility: hidden;
        transition: transform .25s ease, visibility .25s ease;
    }

    .main-nav.main-nav--open {
        display: flex;
        transform: translateX(0);
        visibility: visible;
    }

    .mobile-nav__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 24px;
        padding-bottom: 17px;
        border-bottom: 1px solid #ead8c4;
    }

    .mobile-nav__head > span {
        color: var(--red);
        font-size: 13px;
        font-weight: 900;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

    .mobile-nav__close {
        display: grid;
        place-items: center;
        width: 40px;
        height: 40px;
        padding: 0 0 3px;
        border: 1px solid #ead1b6;
        border-radius: 50%;
        color: #3b2116;
        background: #fff;
        font-size: 30px;
        font-weight: 300;
        line-height: 1;
    }

    .main-nav > a {
        padding: 16px 4px;
        border-bottom: 1px solid rgba(226,207,186,.72);
        color: #321c12;
        font-size: 18px;
        font-weight: 800;
    }

    .main-nav > a::after {
        display: none;
    }

    .main-nav > a.is-active {
        color: var(--red);
    }

    .mobile-nav__contacts {
        display: flex;
        flex-direction: column;
        gap: 11px;
        margin-top: auto;
        padding: 22px 4px 4px;
        border-top: 1px solid #ead8c4;
    }

    .mobile-nav__contacts a {
        padding: 0;
        border: 0;
        color: #6c5547;
        font-size: 14px;
        font-weight: 700;
        overflow-wrap: anywhere;
    }

    .mobile-nav-backdrop {
        display: block;
        position: fixed;
        z-index: 1004;
        inset: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(35,22,16,.42);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .25s ease, visibility .25s ease;
    }

    body.mobile-nav-open .mobile-nav-backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    /* Первый экран: текст больше не лежит на фоновой картинке */
    .hero {
        min-height: 0;
        padding-top: 94px;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        background: #fff8ee;
        box-shadow: none;
    }

    .hero::before,
    .hero::after {
        display: none;
    }

    .hero-content {
        display: flex;
        min-height: 0;
        padding: 18px 0 0;
        flex-direction: column;
    }

    .hero-copy {
        position: relative;
        z-index: 5;
        width: calc(100% - 32px);
        max-width: none;
        margin: 0 auto;
        padding: 22px 18px 26px;
        border: 1px solid rgba(226,192,148,.58);
        border-radius: 22px;
        background: rgba(255,253,249,.97);
        box-shadow: 0 12px 30px rgba(86,48,25,.07);
    }

    .hero-kicker {
        margin-bottom: 10px;
        font-size: 10px;
        line-height: 1.35;
    }

    .hero h1 {
        font-size: clamp(42px, 13vw, 58px);
        line-height: .91;
    }

    .hero-text {
        max-width: none;
        margin: 18px 0 20px;
        color: #66584e;
        font-size: 14px;
        line-height: 1.55;
    }

    .hero-text br {
        display: none;
    }

    .hero-buttons {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .hero-buttons .button {
        min-height: 46px;
        padding: 0 12px;
        font-size: 12px;
    }

    .hero-visual {
        display: block;
        width: 100%;
        min-height: min(112vw, 520px);
        margin-top: -8px;
        background-image: url('/assets/images/fon.png');
        background-repeat: no-repeat;
        background-position: 64% center;
        background-size: auto 100%;
    }

    /* Преимущества — отдельная карточка после изображения */
    .hero .benefits {
        width: calc(100% - 24px);
        margin: -12px auto 14px;
        padding: 8px 16px;
        border-radius: 20px;
        background: rgba(255,252,247,.98);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .hero .benefit {
        grid-template-columns: 48px 1fr;
        gap: 12px;
        padding: 14px 0;
    }

    .hero .benefit strong {
        font-size: 14px;
    }

    .hero .benefit p {
        max-width: none;
        font-size: 11px;
        line-height: 1.45;
    }

    /* На мобильном плавающие кнопки чуть компактнее, чтобы не перекрывать контент. */
    .floating-tools {
        right: 10px;
    }

    .floating-tools__button,
    .floating-contact__toggle {
        width: 50px;
        height: 50px;
    }

    /* Внутренние страницы тоже получают новую мобильную шапку. */
    .page-main {
        padding-top: 96px;
    }
}

@media (max-width: 390px) {
    .hero-copy {
        width: calc(100% - 20px);
        padding-left: 15px;
        padding-right: 15px;
    }

    .hero h1 {
        font-size: 40px;
    }

    .hero-buttons {
        grid-template-columns: 1fr;
    }

    .main-nav {
        width: 90vw;
    }
}

/* === Stage 35: полноценная карточка подарка === */
.gift-page-main {
    padding-top: 34px;
}

.gift-product,
.gift-composition-detail {
    width: min(1540px, calc(100% - 56px));
    margin: 0 auto;
}

.gift-product {
    padding: 26px 30px 34px;
    border: 1px solid rgba(188, 139, 91, .20);
    border-radius: 30px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff8ef 100%);
    box-shadow: 0 16px 38px rgba(76, 45, 27, .06);
}

.gift-product__breadcrumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
    color: #9b8d83;
    font-size: 12px;
}

.gift-product__breadcrumbs a {
    color: #7d6b5f;
    text-decoration: none;
}

.gift-product__breadcrumbs strong {
    color: #4c3326;
}

.gift-product__layout {
    display: grid;
    grid-template-columns: minmax(390px, .9fr) minmax(0, 1.1fr);
    gap: 42px;
    align-items: start;
}

.gift-product__media-card {
    min-width: 0;
}

.gift-product__media {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 570px;
    padding: 34px;
    overflow: hidden;
    border: 1px solid rgba(218, 184, 146, .48);
    border-radius: 26px;
    background:
        radial-gradient(circle at 50% 42%, #fff 0%, #fff8ef 72%),
        #fffaf4;
}

.gift-product__media::after {
    content: "";
    position: absolute;
    left: 18%;
    right: 18%;
    bottom: 28px;
    height: 26px;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(69, 42, 24, .12), transparent 68%);
    filter: blur(6px);
}

.gift-product__media img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 500px;
    object-fit: contain;
}

.gift-product__media-note {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 12px;
    align-items: start;
    margin-top: 14px;
    padding: 15px 17px;
    border: 1px solid rgba(226, 196, 163, .48);
    border-radius: 17px;
    background: rgba(255,255,255,.72);
}

.gift-product__media-note > span {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #fff;
    background: var(--red);
    font-size: 13px;
    font-weight: 900;
}

.gift-product__media-note p {
    margin: 0;
    color: #7b6a5e;
    font-size: 12px;
    line-height: 1.45;
}

.gift-product__media-note strong {
    color: #3a2419;
}

.gift-product__info {
    padding: 6px 0 0;
}

.gift-product__back {
    display: inline-flex;
    margin-bottom: 17px;
    color: #a06f4d;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.gift-product__title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.gift-product__title-row h1 {
    margin: 0;
    color: #2d190f;
    font-size: clamp(42px, 4.4vw, 68px);
    line-height: .98;
    letter-spacing: -.045em;
}

.gift-product__weight {
    flex: 0 0 auto;
    margin-top: 7px;
    padding: 9px 13px;
    border: 1px solid rgba(204, 146, 79, .34);
    border-radius: 999px;
    color: #8c5c38;
    background: #fff8ee;
    font-size: 13px;
    font-weight: 850;
}

.gift-product__price-line {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 24px 0 28px;
    padding: 18px 20px;
    border: 1px solid rgba(218, 181, 141, .42);
    border-radius: 20px;
    background: #fff;
}

.gift-product__price-line span {
    color: #8b7a6e;
    font-size: 13px;
}

.gift-product__price-line strong {
    color: var(--red);
    font-size: 28px;
    line-height: 1;
}

.gift-product__section {
    padding: 25px 0;
    border-top: 1px solid rgba(222, 202, 183, .62);
}

.gift-product__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 17px;
}

.gift-product__section-head > div {
    display: flex;
    align-items: center;
    gap: 11px;
}

.gift-product__step {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #fff;
    background: var(--red);
    font-size: 13px;
    font-weight: 900;
}

.gift-product__section-head h2 {
    margin: 0;
    color: #342016;
    font-size: 22px;
}

.gift-product__section-head p {
    margin: 0;
    color: #918177;
    font-size: 12px;
}

.gift-composition-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.gift-composition-option {
    position: relative;
    display: grid;
    grid-template-columns: 24px 1fr auto;
    align-items: center;
    gap: 10px;
    min-height: 64px;
    padding: 12px 14px;
    cursor: pointer;
    border: 1px solid #e7d7c8;
    border-radius: 17px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.gift-composition-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.gift-composition-option__check {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 2px solid #dbb997;
    border-radius: 50%;
    background: #fff;
}

.gift-composition-option.is-selected {
    border-color: rgba(212, 38, 31, .58);
    background: #fff8f5;
    box-shadow: 0 8px 20px rgba(167, 39, 31, .08);
}

.gift-composition-option.is-selected .gift-composition-option__check {
    border: 6px solid var(--red);
}

.gift-composition-option__name {
    color: #382319;
    font-size: 14px;
    font-weight: 800;
}

.gift-composition-option strong {
    color: #c7201d;
    font-size: 13px;
    white-space: nowrap;
}

.gift-buy-row {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 12px;
}

.gift-quantity {
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    min-height: 52px;
    overflow: hidden;
    border: 1px solid #e1d0c0;
    border-radius: 16px;
    background: #fff;
}

.gift-quantity button,
.gift-quantity input {
    border: 0;
    color: #3a2419;
    background: transparent;
    text-align: center;
}

.gift-quantity button {
    cursor: pointer;
    font-size: 22px;
}

.gift-quantity input {
    width: 100%;
    min-width: 0;
    font-size: 15px;
    font-weight: 850;
    appearance: textfield;
}

.gift-quantity input::-webkit-inner-spin-button,
.gift-quantity input::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.gift-add-to-cart {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 52px;
    padding: 0 20px;
    cursor: pointer;
    border: 1px solid #c71c18;
    border-radius: 16px;
    color: #fff;
    background: linear-gradient(135deg, #df2c25 0%, #c81916 100%);
    box-shadow: 0 10px 22px rgba(197, 30, 25, .16);
    font: inherit;
    font-size: 14px;
    font-weight: 850;
}

.gift-add-status {
    min-height: 18px;
    margin: 9px 0 0;
    color: #4e7d3d;
    font-size: 12px;
    font-weight: 700;
}

.gift-product__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    padding-top: 22px;
    border-top: 1px solid rgba(222, 202, 183, .62);
}

.gift-product__facts > div {
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #eee1d4;
    border-radius: 15px;
    background: rgba(255,255,255,.66);
}

.gift-product__facts span,
.gift-product__facts strong {
    display: block;
}

.gift-product__facts span {
    margin-bottom: 4px;
    color: #9a897d;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.gift-product__facts strong {
    color: #443027;
    font-size: 12px;
}

.gift-product__empty {
    margin: 0;
    padding: 16px 18px;
    border-radius: 15px;
    color: #806f63;
    background: #fff7ee;
}

.gift-composition-detail {
    margin-top: 26px;
    padding: 34px 36px 38px;
    border: 1px solid rgba(188, 139, 91, .18);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(76, 45, 27, .045);
}

.gift-composition-detail__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 24px;
}

.gift-composition-detail__head h2 {
    margin: 4px 0 0;
    color: #2d190f;
    font-size: clamp(30px, 3vw, 44px);
}

.gift-composition-detail__head > p {
    max-width: 360px;
    margin: 0;
    color: #8f7f74;
    font-size: 13px;
    line-height: 1.5;
    text-align: right;
}

.gift-candy-set {
    display: none;
}

.gift-candy-set.is-active {
    display: block;
}

.gift-candy-set__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
    padding: 13px 16px;
    border-radius: 15px;
    background: linear-gradient(90deg, #fff7ed, #fffdf9);
}

.gift-candy-set__summary strong {
    color: #c61f1b;
    font-size: 15px;
}

.gift-candy-set__summary span {
    color: #846d5f;
    font-size: 12px;
    font-weight: 800;
}

.gift-candy-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.gift-candy-card {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(221, 195, 167, .55);
    border-radius: 18px;
    background: #fffdf9;
}

.gift-candy-card__image {
    display: grid;
    place-items: center;
    height: 130px;
    padding: 12px;
    border-bottom: 1px solid #f0e4d7;
    background: radial-gradient(circle at center, #fff 0%, #fff8f0 78%);
}

.gift-candy-card__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.gift-candy-card__image > span {
    color: #b79d88;
    font-size: 11px;
}

.gift-candy-card__body {
    min-height: 100px;
    padding: 12px 13px 14px;
}

.gift-candy-card__body h3 {
    margin: 0 0 5px;
    color: #39251b;
    font-size: 13px;
    line-height: 1.28;
}

.gift-candy-card__body p {
    margin: 0;
    color: #9b887b;
    font-size: 10px;
    line-height: 1.35;
}

.gift-candy-card__qty {
    position: absolute;
    top: 9px;
    right: 9px;
    z-index: 2;
    display: grid;
    place-items: center;
    min-width: 30px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    color: #fff;
    background: var(--red);
    font-size: 10px;
    font-weight: 850;
}

@media (hover:hover) and (pointer:fine) {
    .gift-composition-option:hover {
        transform: translateY(-2px);
        border-color: rgba(212, 38, 31, .32);
    }

    .gift-add-to-cart:hover {
        transform: translateY(-2px);
        box-shadow: 0 14px 28px rgba(197, 30, 25, .22);
    }
}

@media (max-width: 1180px) {
    .gift-product__layout {
        grid-template-columns: minmax(330px, .8fr) minmax(0, 1.2fr);
        gap: 28px;
    }

    .gift-product__media {
        min-height: 480px;
    }

    .gift-product__media img {
        height: 420px;
    }

    .gift-candy-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .gift-product,
    .gift-composition-detail {
        width: calc(100% - 28px);
    }

    .gift-product__layout {
        grid-template-columns: 1fr;
    }

    .gift-product__media {
        min-height: 440px;
    }

    .gift-product__media img {
        height: 390px;
    }

    .gift-candy-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .gift-page-main {
        padding-top: 92px;
    }

    .gift-product,
    .gift-composition-detail {
        width: calc(100% - 20px);
    }

    .gift-product {
        padding: 16px;
        border-radius: 22px;
    }

    .gift-product__breadcrumbs {
        display: none;
    }

    .gift-product__layout {
        gap: 22px;
    }

    .gift-product__media {
        min-height: 330px;
        padding: 18px;
        border-radius: 20px;
    }

    .gift-product__media img {
        height: 300px;
    }

    .gift-product__media-note {
        grid-template-columns: 30px 1fr;
        padding: 12px 13px;
    }

    .gift-product__back {
        margin-bottom: 12px;
    }

    .gift-product__title-row {
        display: block;
    }

    .gift-product__title-row h1 {
        font-size: 40px;
    }

    .gift-product__weight {
        display: inline-flex;
        margin-top: 12px;
    }

    .gift-product__price-line {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
        margin: 18px 0 22px;
        padding: 15px 16px;
    }

    .gift-product__price-line strong {
        font-size: 25px;
    }

    .gift-product__section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .gift-product__section-head--compact {
        flex-direction: row;
    }

    .gift-composition-options {
        grid-template-columns: 1fr;
    }

    .gift-buy-row {
        grid-template-columns: 1fr;
    }

    .gift-product__facts {
        grid-template-columns: 1fr;
    }

    .gift-composition-detail {
        margin-top: 18px;
        padding: 22px 16px 24px;
        border-radius: 22px;
    }

    .gift-composition-detail__head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .gift-composition-detail__head > p {
        text-align: left;
    }

    .gift-candy-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .gift-candy-card__image {
        height: 112px;
    }

    .gift-candy-card__body {
        min-height: 92px;
        padding: 10px 11px 12px;
    }
}


/* === Stage 37: правки карточки подарка === */

/* Опускаем всю карточку ниже фиксированной шапки */
@media (min-width: 901px) {
    .gift-page-main {
        padding-top: 112px;
    }
}

/* Длинные названия подарков должны выглядеть компактнее и органичнее */
.gift-product__title-row h1 {
    font-size: clamp(34px, 3.25vw, 52px);
    line-height: 1.03;
    letter-spacing: -.035em;
}

/* После удаления пояснения заголовок выбора состава остаётся прижатым влево */
.gift-product__section-head {
    justify-content: flex-start;
}

@media (max-width: 1180px) and (min-width: 901px) {
    .gift-page-main {
        padding-top: 102px;
    }

    .gift-product__title-row h1 {
        font-size: clamp(34px, 4vw, 48px);
    }
}

@media (max-width: 680px) {
    .gift-product__title-row h1 {
        font-size: 34px;
        line-height: 1.05;
    }
}


/* === Stage 38: очистка корзины + нейтральный информационный блок === */
.gift-buy-row {
    align-items: stretch;
}

.gift-buy-actions {
    display: flex;
    flex: 1;
    gap: 12px;
    align-items: stretch;
}

.gift-buy-actions .gift-add-to-cart {
    flex: 1;
}

.gift-clear-cart {
    flex: 0 0 auto;
    min-width: 176px;
    padding: 0 22px;
    border: 1px solid rgba(211, 50, 43, .42);
    border-radius: 18px;
    color: #c92722;
    background: rgba(255,255,255,.72);
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

@media (hover:hover) and (pointer:fine) {
    .gift-clear-cart:hover {
        transform: translateY(-2px);
        border-color: rgba(211,50,43,.72);
        background: #fff;
    }
}

@media (max-width: 900px) {
    .gift-buy-row {
        flex-direction: column;
    }

    .gift-buy-actions {
        width: 100%;
    }
}

@media (max-width: 560px) {
    .gift-buy-actions {
        flex-direction: column;
    }

    .gift-clear-cart {
        min-height: 48px;
        width: 100%;
    }
}


/* === Stage 40: карточки конфет — больше фото, компактнее текст, количество всегда видно === */

/* Внешний размер карточки НЕ меняем. Меняем только пропорции внутри. */
.gift-candy-card {
    grid-template-rows: minmax(0, 1.55fr) minmax(0, .65fr);
}

.gift-candy-card__image {
    min-height: 0;
    height: auto;
    padding: 12px 14px 8px;
}

.gift-candy-card__image img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.gift-candy-card__body {
    position: relative;
    min-height: 0;
    padding: 13px 16px 14px;
}

.gift-candy-card__body h3 {
    margin: 0 0 5px;
    font-size: 16px;
    line-height: 1.2;
}

.gift-candy-card__body p {
    margin: 0;
    padding-right: 58px;
    font-size: 12px;
    line-height: 1.25;
}

.gift-candy-card__qty {
    position: absolute;
    right: 14px;
    bottom: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 26px;
    padding: 4px 9px;
    border: 1px solid rgba(211, 50, 43, .22);
    border-radius: 999px;
    color: #c82c27;
    background: rgba(255, 248, 242, .92);
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

@media (max-width: 680px) {
    .gift-candy-card__image {
        padding: 10px 12px 7px;
    }

    .gift-candy-card__body {
        padding: 11px 13px 12px;
    }

    .gift-candy-card__body h3 {
        font-size: 15px;
    }

    .gift-candy-card__qty {
        right: 11px;
        bottom: 11px;
    }
}


/* === Stage 52: два контактных телефона === */
.header-phones {
    display: flex;
    align-items: center;
    gap: 8px;
}
.header-phones__list {
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.header-phones__list a {
    color: inherit;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.25;
    white-space: nowrap;
}
.header-phones__list a:hover { color: #c92f29; }

.catalog-intro__phones {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 4px;
}
.catalog-intro__phones a { width: fit-content; }

@media (max-width: 1180px) {
    .header-phones { display: none; }
}


/* === Stage 53: аккуратный блок двух телефонов в шапке === */
.header-phones {
    position: relative;
    gap: 11px;
    padding: 5px 14px 5px 0;
    margin-right: 4px;
}
.header-phones::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 2px;
    height: 32px;
    border-radius: 999px;
    background: rgba(201,47,41,.72);
    transform: translateY(-50%);
}
.header-phones .header-contact-icon {
    width: 21px;
    height: 21px;
    flex: 0 0 21px;
}
.header-phones__list {
    gap: 3px;
}
.header-phones__list a {
    display: block;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -.01em;
}


/* === Stage 54: в шапке оставляем только один разделитель === */
.header-phones {
    padding-right: 0;
    margin-right: 0;
}

.header-phones::after {
    content: none !important;
    display: none !important;
}
