:root {
  --ink: #17301e;
  --forest: #334d30;
  --sage: #879881;
  --cream: #f5efe4;
  --paper: #fbf8f1;
  --peach: #d69269;
  --line: rgba(23, 48, 30, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Manrope", sans-serif; overflow-x: hidden; }
img, video { display: block; width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }

body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 20; opacity: .06;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}

.site-header { height: 78px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 clamp(20px, 4vw, 72px); border-bottom: 1px solid var(--line); position: relative; z-index: 10; background: rgba(251,248,241,.9); backdrop-filter: blur(14px); }
.brand, .footer-brand { font: 600 24px/1 "Unbounded", sans-serif; letter-spacing: -.08em; }
.desktop-nav { display: flex; gap: 36px; font-size: 13px; font-weight: 600; }
.desktop-nav a, .social-links a { position: relative; }
.desktop-nav a::after, .social-links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -5px; height: 1px; background: currentColor; transition: right .35s cubic-bezier(.16,1,.3,1); }
.desktop-nav a:hover::after, .social-links a:hover::after { right: 0; }
.header-cta { justify-self: end; border: 1px solid var(--ink); padding: 11px 17px; border-radius: 99px; font-size: 12px; font-weight: 700; transition: .3s cubic-bezier(.16,1,.3,1); }
.header-cta:hover { color: var(--paper); background: var(--ink); transform: translateY(-2px); }
.menu-toggle, .mobile-nav { display: none; }

.hero { min-height: 0; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr); padding: clamp(28px, 3.5vw, 52px) clamp(20px, 4vw, 72px); gap: clamp(18px, 2.4vw, 42px); align-items: center; }
.hero-copy { max-width: 740px; }
.eyebrow, .section-kicker { text-transform: uppercase; letter-spacing: .18em; font-size: 11px; font-weight: 700; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 34px; }
.eyebrow span { width: 28px; height: 1px; background: var(--ink); }
h1, h2 { font-family: "Unbounded", sans-serif; font-weight: 500; letter-spacing: -.065em; margin: 0; }
h1 { font-size: clamp(43px, 5.7vw, 86px); line-height: .99; max-width: 920px; }
h1 em { color: var(--sage); font-style: normal; }
.hero-text { font-size: clamp(15px, 1.2vw, 18px); line-height: 1.7; max-width: 600px; margin: 34px 0; color: rgba(23,48,30,.72); }
.hero-actions { display: flex; align-items: center; gap: 28px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 22px; padding: 0 24px; border-radius: 99px; font-size: 13px; font-weight: 700; transition: transform .3s cubic-bezier(.16,1,.3,1), background .3s, color .3s; }
.button:hover { transform: translateY(-3px); }
.button:active { transform: scale(.98); }
.button-primary { background: var(--ink); color: var(--paper); }
.text-link { font-size: 13px; font-weight: 700; border-bottom: 1px solid var(--line); padding-bottom: 5px; }
.hero-facts { display: flex; gap: clamp(24px, 4vw, 64px); margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--line); }
.hero-facts div { display: grid; gap: 4px; }
.hero-facts strong { font-family: "Unbounded", sans-serif; font-size: clamp(18px, 2vw, 27px); }
.hero-facts span { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; opacity: .58; }
.hero-visual { min-height: 0; position: relative; display: flex; justify-content: flex-start; align-items: flex-start; padding-top: clamp(40px, 4.4vh, 50px); }
.hero-image-wrap { position: relative; width: 100%; max-width: 512px; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 256px 256px 16px 16px; background: var(--sage); box-shadow: 0 28px 70px rgba(30,55,36,.16); }
.hero-image-wrap img, .hero-image-wrap video { transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
.hero-image-wrap:hover img, .hero-image-wrap:hover video { transform: scale(1.04); }
.sound-toggle { position: absolute; right: 16px; bottom: 16px; min-height: 44px; padding: 0 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 99px; display: inline-flex; align-items: center; gap: 9px; color: var(--paper); background: rgba(23,48,30,.82); box-shadow: inset 0 1px 0 rgba(255,255,255,.12); backdrop-filter: blur(12px); cursor: pointer; font-size: 11px; font-weight: 700; transition: transform .3s cubic-bezier(.16,1,.3,1), background .3s; }
.sound-toggle:hover { transform: translateY(-2px); background: rgba(23,48,30,.94); }
.sound-toggle:active { transform: scale(.98); }
.sound-toggle:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.sound-toggle svg { width: 18px; height: 18px; fill: currentColor; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sound-toggle .sound-wave, .sound-toggle .sound-slash { fill: none; }
.sound-toggle .sound-wave { opacity: 0; }
.sound-toggle[aria-pressed="true"] .sound-wave { opacity: 1; }
.sound-toggle[aria-pressed="true"] .sound-slash { opacity: 0; }
.floating-note { position: absolute; left: 0; bottom: 16px; background: var(--cream); padding: 14px 18px; border: 1px solid rgba(255,255,255,.7); box-shadow: 0 18px 50px rgba(30,55,36,.12); display: flex; gap: 12px; align-items: flex-start; }
.floating-note p { margin: 0; font-size: 12px; line-height: 1.5; font-weight: 700; }
.note-mark { width: 9px; height: 9px; border-radius: 50%; background: var(--peach); margin-top: 4px; animation: breathe 2.4s ease-in-out infinite; }
.hero-stamp { position: absolute; right: 2%; top: clamp(40px, 4.4vh, 50px); font: 500 clamp(28px, 3vw, 44px)/.8 "Unbounded"; letter-spacing: -.1em; color: var(--peach); mix-blend-mode: multiply; }

.ticker { overflow: hidden; border-block: 1px solid var(--line); padding: 13px 0; white-space: nowrap; text-transform: uppercase; letter-spacing: .16em; font: 600 10px "Unbounded"; color: var(--forest); }
.ticker div { width: max-content; animation: ticker 26s linear infinite; }
.section { padding: clamp(60px, 7vw, 110px) clamp(20px, 4vw, 72px); }
.about { min-height: 0; position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 40px); background: var(--cream); align-items: start; }
.about > .section-kicker { grid-column: 1 / 3; }
.about-copy { grid-column: 1 / 3; display: grid; grid-template-columns: 1.25fr 1fr; gap: 40px; align-items: end; margin-bottom: 8px; }
h2 { font-size: clamp(34px, 4.2vw, 60px); line-height: 1.03; }
.about-copy p, .menu-heading > p { margin: 0; font-size: 15px; line-height: 1.75; color: rgba(23,48,30,.68); max-width: 520px; }
.about-photo { margin: 0; overflow: hidden; aspect-ratio: 3 / 4; }
.about-photo-main { grid-column: 1; }
.about-photo-small { grid-column: 2; }
.vertical-caption { position: absolute; right: 14px; top: 50%; writing-mode: vertical-rl; font-size: 9px; letter-spacing: .15em; opacity: .5; }

@media (min-width: 901px) {
  .about { height: 100dvh; max-height: 1000px; padding-top: clamp(24px, 4dvh, 46px); padding-bottom: clamp(24px, 4dvh, 46px); grid-template-rows: auto auto minmax(0, 1fr); row-gap: clamp(14px, 2.2dvh, 24px); align-items: stretch; }
  .about-copy { margin-bottom: 0; }
  .about-photo { height: 100%; min-height: 0; aspect-ratio: auto; }
}

.pets { background: var(--paper); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(18px, 2.4vw, 32px) clamp(20px, 3vw, 44px); align-items: end; }
.pets-copy { grid-column: 1 / 3; display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: end; margin-bottom: 4px; }
.pets-copy-head { display: grid; gap: 16px; }
.pets-copy > p { margin: 0; font-size: 15px; line-height: 1.7; color: rgba(23,48,30,.68); max-width: 460px; }
.pets-photo { margin: 0; overflow: hidden; background: var(--cream); aspect-ratio: 3 / 4; }
.pets-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.pets-photo:hover img { transform: scale(1.04); }

.menu-section { background: var(--paper); color: var(--paper); padding: clamp(40px, 5vw, 80px) clamp(20px, 4vw, 72px); }
.menu-panel { position: relative; isolation: isolate; background: var(--forest); border-radius: 8px; padding: clamp(40px, 5vw, 80px) clamp(28px, 4vw, 70px); overflow: hidden; box-shadow: 0 30px 80px -30px rgba(23,48,30,.45); }
.menu-panel::before, .menu-panel::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: -1; }
.menu-panel::before { background:
  radial-gradient(ellipse 120% 65% at 12% -8%, rgba(214,146,105,.42), transparent 55%),
  radial-gradient(ellipse 90% 55% at 110% 18%, rgba(135,152,129,.55), transparent 60%),
  radial-gradient(ellipse 140% 70% at 90% 110%, rgba(214,146,105,.32), transparent 60%),
  radial-gradient(ellipse 100% 60% at -10% 80%, rgba(245,239,228,.18), transparent 55%);
  mix-blend-mode: screen;
  filter: blur(2px);
}
.menu-panel::after {
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 600'%3E%3Cdefs%3E%3Cfilter id='m' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.025' numOctaves='3' seed='7'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='90'/%3E%3CfeGaussianBlur stdDeviation='1.4'/%3E%3C/filter%3E%3ClinearGradient id='g1' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23d69269' stop-opacity='0.55'/%3E%3Cstop offset='40%25' stop-color='%23879881' stop-opacity='0.35'/%3E%3Cstop offset='100%25' stop-color='%2317301e' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='800' height='600' fill='url(%23g1)' filter='url(%23m)'/%3E%3C/svg%3E");
  background-size: cover;
  opacity: .55;
  mix-blend-mode: soft-light;
}
.menu-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 70px; align-items: end; }
.menu-heading > p { color: rgba(251,248,241,.6); }
.menu-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 36px 0 20px; }
.filter { border: 1px solid rgba(251,248,241,.25); background: transparent; border-radius: 99px; padding: 9px 15px; color: rgba(251,248,241,.72); cursor: pointer; font-size: 12px; transition: .25s; }
.filter:hover, .filter.active { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.menu-grid { border-top: 1px solid rgba(251,248,241,.25); display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 6vw; }
.menu-group { padding: 24px 0; border-bottom: 1px solid rgba(251,248,241,.2); }
.menu-group.hidden { display: none; }
.menu-group-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; gap: 20px; }
.menu-group h3 { font: 500 clamp(19px, 1.8vw, 26px) "Unbounded"; margin: 0; letter-spacing: -.05em; }
.volumes { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: rgba(251,248,241,.45); }
.menu-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 25px; padding: 6px 0; font-size: 13px; }
.menu-row span:first-child { color: rgba(251,248,241,.78); }
.menu-row small { opacity: .55; margin-left: 5px; }
.prices { display: flex; gap: 20px; font-variant-numeric: tabular-nums; }
.prices b { min-width: 30px; text-align: right; font-weight: 500; }
.prices .empty { opacity: .18; }
.menu-note { margin: 32px 0 0; font-size: 10px; color: rgba(251,248,241,.45); }

.gallery { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; align-items: start; }
.gallery-heading { grid-column: 1 / 6; margin-bottom: 14px; }
.gallery-item { margin: 0; overflow: hidden; background: var(--cream); aspect-ratio: 3 / 4; }
.gallery-item img { transition: transform .8s cubic-bezier(.16,1,.3,1); }
.gallery-item:hover img { transform: scale(1.04); }
.gallery-a, .gallery-b, .gallery-c, .gallery-d { grid-column: span 1; }
.gallery-link { grid-column: span 1; aspect-ratio: 3 / 4; background: var(--peach); padding: 24px; display: flex; flex-direction: column; justify-content: space-between; font-size: 11px; text-transform: uppercase; letter-spacing: .09em; transition: transform .3s; }
.gallery-link:hover { transform: translateY(-5px); }
.gallery-link strong { font: 500 20px "Unbounded"; letter-spacing: -.05em; text-transform: none; }

.reviews { background: var(--cream); }
.reviews-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(30px, 6vw, 90px); align-items: end; margin-bottom: clamp(30px, 4vw, 52px); }
.reviews-heading h2 { margin-top: 16px; }
.reviews-heading > p { max-width: 510px; margin: 0; color: rgba(23,48,30,.68); font-size: 14px; line-height: 1.75; }
.reviews-grid { display: grid; grid-template-columns: 1.15fr .85fr; border-top: 1px solid var(--line); }
.review-card { min-height: 290px; padding: clamp(24px, 3vw, 42px); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; gap: 30px; transition: color .35s cubic-bezier(.16,1,.3,1), background .35s cubic-bezier(.16,1,.3,1), transform .35s cubic-bezier(.16,1,.3,1); }
.review-card:nth-child(odd) { border-right: 1px solid var(--line); }
.review-card:hover { color: var(--paper); background: var(--ink); transform: translateY(-3px); }
.review-card:active { transform: scale(.99); }
.review-card-featured blockquote { font-size: clamp(22px, 2.2vw, 34px); }
.review-meta, .review-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.review-meta { font: 600 10px "Unbounded"; letter-spacing: .05em; }
.review-source { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border: 1px solid currentColor; border-radius: 99px; }
.review-source-yandex { color: #9b342e; }
.review-source-2gis { color: #397344; }
.review-card:hover .review-source { color: var(--paper); }
.review-card blockquote { margin: 0; max-width: 28ch; font: 500 clamp(18px, 1.7vw, 25px)/1.42 "Unbounded"; letter-spacing: -.045em; }
.review-footer > span:first-child { display: grid; gap: 5px; }
.review-footer strong { font-size: 13px; }
.review-footer small { color: rgba(23,48,30,.55); font-size: 10px; }
.review-card:hover .review-footer small { color: rgba(251,248,241,.55); }
.review-open { padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }

.contacts { background: var(--sage); padding-top: 70px; padding-bottom: 70px; }
.contact-panel { background: var(--ink); color: var(--paper); padding: clamp(38px, 7vw, 100px); border-radius: 6px; }
.contact-panel h2 { max-width: 850px; margin: 20px 0 48px; }
.contact-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 50px; border-top: 1px solid rgba(251,248,241,.22); padding-top: 28px; }
.contact-grid div { display: grid; gap: 15px; }
.contact-grid span { color: rgba(251,248,241,.45); text-transform: uppercase; font-size: 9px; letter-spacing: .14em; }
.contact-grid strong, .contact-grid a { font-size: 15px; line-height: 1.6; font-weight: 600; }
.map-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 44px; }
.button-light { background: var(--paper); color: var(--ink); }
.button-outline { border: 1px solid rgba(251,248,241,.35); color: var(--paper); }
.contact-links { margin-top: 36px; padding-top: 28px; border-top: 1px solid rgba(251,248,241,.22); display: grid; gap: 16px; }
.contact-links > span { color: rgba(251,248,241,.45); text-transform: uppercase; font-size: 9px; letter-spacing: .14em; }
.contact-links div { display: flex; flex-wrap: wrap; gap: 12px 26px; font-size: 13px; font-weight: 600; }
.contact-links a { border-bottom: 1px solid rgba(251,248,241,.25); padding-bottom: 3px; transition: border-color .25s; }
.contact-links a:hover { border-color: var(--paper); }
.site-footer { background: var(--ink); color: var(--paper); position: relative; overflow: hidden; }
.site-footer::before { content: ""; position: absolute; inset: 0; background:
  radial-gradient(ellipse 60% 50% at 90% 0%, rgba(214,146,105,.18), transparent 60%),
  radial-gradient(ellipse 70% 60% at -10% 100%, rgba(135,152,129,.22), transparent 60%);
  pointer-events: none; }
.footer-marquee { border-block: 1px solid rgba(251,248,241,.18); overflow: hidden; white-space: nowrap; padding: 22px 0; }
.footer-marquee div { display: inline-flex; align-items: center; gap: 26px; width: max-content; font: 500 clamp(34px, 5vw, 64px)/1 "Unbounded"; letter-spacing: -.06em; animation: marquee 30s linear infinite; }
.footer-marquee span { color: var(--paper); }
.footer-marquee span:nth-child(4n+1) { color: transparent; -webkit-text-stroke: 1px rgba(251,248,241,.55); }
.footer-marquee i { font-style: normal; color: var(--peach); font-size: .55em; }
@keyframes marquee { to { transform: translateX(-50%); } }
.footer-inner { position: relative; padding: clamp(50px, 6vw, 90px) clamp(20px, 4vw, 72px) clamp(36px, 4vw, 60px); display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: clamp(28px, 4vw, 70px); }
.footer-col { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.footer-col-brand { gap: 28px; }
.footer-brand { font: 600 clamp(40px, 5vw, 64px)/.9 "Unbounded"; letter-spacing: -.08em; color: var(--paper); }
.footer-tagline { margin: 0; font-size: 14px; line-height: 1.6; color: rgba(251,248,241,.65); max-width: 280px; }
.footer-back { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 12px; padding: 12px 22px 12px 18px; border: 1px solid rgba(251,248,241,.3); border-radius: 99px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; transition: .3s cubic-bezier(.16,1,.3,1); }
.footer-back:hover { background: var(--paper); color: var(--ink); transform: translateY(-3px); border-color: var(--paper); }
.footer-back svg { width: 14px; height: 14px; }
.footer-label { font: 600 10px "Unbounded"; letter-spacing: .18em; text-transform: uppercase; color: rgba(251,248,241,.45); padding-bottom: 12px; border-bottom: 1px solid rgba(251,248,241,.2); }
.footer-col a { font-size: 15px; line-height: 1.55; font-weight: 600; transition: color .25s; }
.footer-col > a:hover { color: var(--peach); }
.footer-mini { font-size: 11px; color: rgba(251,248,241,.45); text-transform: uppercase; letter-spacing: .12em; }
.footer-socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.footer-socials a { font-size: 12px; font-weight: 700; padding: 9px 16px; border: 1px solid rgba(251,248,241,.25); border-radius: 99px; transition: .3s cubic-bezier(.16,1,.3,1); }
.footer-socials a:hover { background: var(--peach); color: var(--ink); border-color: var(--peach); transform: translateY(-2px); }
.footer-base { position: relative; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; align-items: center; padding: 22px clamp(20px, 4vw, 72px); border-top: 1px solid rgba(251,248,241,.18); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: rgba(251,248,241,.55); }
.footer-base > :nth-child(2) { text-align: center; }
.footer-base > :nth-child(3) { text-align: right; }
.footer-coord { color: var(--peach); font-weight: 700; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
@keyframes breathe { 50% { transform: scale(1.45); opacity: .6; } }
@keyframes ticker { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; height: 68px; }
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { display: grid; width: 42px; height: 42px; place-content: center; gap: 6px; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span { display: block; width: 22px; height: 1px; background: var(--ink); transition: .3s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-nav { position: absolute; top: 68px; left: 0; right: 0; background: var(--paper); padding: 24px 20px 32px; border-bottom: 1px solid var(--line); flex-direction: column; gap: 20px; font: 500 24px "Unbounded"; }
  .mobile-nav.open { display: flex; }
  .hero { min-height: auto; grid-template-columns: minmax(0, 1fr); padding-top: 58px; }
  .hero-copy { min-width: 0; max-width: none; }
  .hero-visual { width: 100%; max-width: 500px; min-height: 630px; margin-inline: auto; justify-content: flex-start; padding-top: 0; }
  .hero-image-wrap { max-width: 500px; min-height: 600px; }
  .floating-note { left: 12px; bottom: 16px; }
  .hero-stamp { top: 0; right: 0; }
  .about { min-height: auto; grid-template-columns: 1fr 1fr; }
  .about-copy { grid-column: 1 / 3; grid-template-columns: 1fr; gap: 22px; }
  .about-photo-main { grid-column: 1; }
  .about-photo-small { grid-column: 2; }
  .vertical-caption { display: none; }
  .menu-heading { grid-template-columns: 1fr; }
  .pets { grid-template-columns: 1fr 1fr; }
  .pets-copy { grid-column: 1 / 3; grid-template-columns: 1fr; gap: 22px; }
  .gallery { grid-template-columns: 1fr 1fr 1fr; }
  .gallery-heading { grid-column: 1 / 4; }
  .gallery-a, .gallery-b, .gallery-c, .gallery-d, .gallery-link { grid-column: span 1; }
  .reviews-heading { grid-template-columns: 1fr; align-items: start; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-col-brand { grid-column: 1 / 3; }
}

@media (max-width: 640px) {
  .section { padding: 82px 18px; }
  .hero { padding: 48px 18px 62px; gap: 45px; }
  h1 { font-size: clamp(38px, 11.5vw, 52px); }
  h2 { font-size: clamp(34px, 10vw, 48px); }
  .hero-text { margin: 26px 0; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .hero-facts { gap: 17px; justify-content: space-between; margin-top: 40px; }
  .hero-facts strong { font-size: 18px; }
  .hero-facts span { font-size: 8px; }
  .hero-visual { min-height: 500px; margin-inline: auto; padding: 0; }
  .hero-image-wrap { min-height: 500px; }
  .hero-stamp { right: 0; }
  .floating-note { left: 12px; bottom: 12px; }
  .sound-toggle { right: 12px; bottom: 12px; }
  .about { grid-template-columns: 1fr 1fr; gap: 12px; }
  .about-copy { display: block; margin-bottom: 4px; }
  .about-copy p { margin-top: 18px; }
  .about-photo-main { grid-column: 1; }
  .about-photo-small { grid-column: 2; }
  .menu-heading { gap: 30px; }
  .menu-filters { margin-top: 35px; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 6px; }
  .filter { white-space: nowrap; }
  .menu-grid { grid-template-columns: 1fr; }
  .pets { grid-template-columns: 1fr; }
  .pets-copy { grid-column: 1; }
  .menu-row { gap: 10px; }
  .prices { gap: 9px; }
  .gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .gallery-heading { grid-column: 1 / 3; margin-bottom: 16px; }
  .gallery-a, .gallery-b, .gallery-c, .gallery-d { grid-column: span 1; }
  .gallery-link { grid-column: 1 / 3; aspect-ratio: auto; padding: 17px; min-height: 90px; }
  .gallery-link strong { font-size: 15px; }
  .reviews { padding-top: 68px; padding-bottom: 68px; }
  .reviews-grid { grid-template-columns: 1fr; }
  .review-card { min-height: 250px; padding: 26px 4px; }
  .review-card:nth-child(odd) { border-right: 0; }
  .review-card blockquote, .review-card-featured blockquote { font-size: 20px; }
  .review-footer { align-items: end; }
  .review-open { font-size: 9px; }
  .contacts { padding: 18px; }
  .contact-panel { padding: 44px 25px; }
  .contact-panel h2 { margin-bottom: 45px; }
  .contact-grid { grid-template-columns: 1fr; gap: 28px; }
  .map-actions { align-items: stretch; flex-direction: column; }
  .footer-inner { grid-template-columns: 1fr; gap: 36px; padding-top: 50px; padding-bottom: 36px; }
  .footer-col-brand { grid-column: 1; }
  .footer-base { grid-template-columns: 1fr; gap: 8px; text-align: left; }
  .footer-base > :nth-child(2), .footer-base > :nth-child(3) { text-align: left; }
  .menu-panel { padding: 50px 22px; }
}

/* === ROZERIN MENU MARBLE UPDATE: reference-like blurred swirls === */
.menu-section {
  background: var(--paper);
  color: var(--paper);
  padding: clamp(54px, 6vw, 92px) clamp(24px, 9vw, 150px);
  overflow: hidden;
}

.menu-panel {
  width: min(100%, 1040px);
  margin: 0 auto;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 20px;
  padding: clamp(44px, 4.6vw, 68px) clamp(24px, 4.2vw, 60px);
  background:
    linear-gradient(180deg, rgba(23, 48, 30, .16), rgba(23, 48, 30, .28)),
    url("assets/меню%20с%20разводами.png") center/cover no-repeat,
    var(--forest);
  border: 1px solid rgba(23, 48, 30, .12);
  box-shadow:
    0 34px 90px -42px rgba(23, 48, 30, .48),
    inset 0 1px 0 rgba(251, 248, 241, .18),
    inset 0 -1px 0 rgba(23, 48, 30, .18);
}

.menu-panel::before,
.menu-panel::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.menu-panel::before {
  inset: 0;
  z-index: -3;
  background: transparent;
}

.menu-panel::after {
  display: none;
  inset: -5%;
  z-index: -2;
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20900%20620%27%3E%0A%3Cdefs%3E%0A%3Cfilter%20id%3D%27soft%27%3E%3CfeGaussianBlur%20stdDeviation%3D%271.15%27%2F%3E%3C%2Ffilter%3E%0A%3Cfilter%20id%3D%27soft2%27%3E%3CfeGaussianBlur%20stdDeviation%3D%272.2%27%2F%3E%3C%2Ffilter%3E%0A%3C%2Fdefs%3E%0A%3Crect%20width%3D%27900%27%20height%3D%27620%27%20fill%3D%27none%27%2F%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27%23172816%27%20stroke-opacity%3D%27.42%27%20stroke-width%3D%272.6%27%20stroke-linecap%3D%27round%27%20filter%3D%27url%28%23soft%29%27%3E%0A%3Cpath%20d%3D%27M-75%2072%20C60%2018%20124%20132%20247%2092%20C363%2055%20407%20-13%20556%2050%20C710%20116%20751%20-22%20976%2040%27%2F%3E%0A%3Cpath%20d%3D%27M-86%20105%20C63%2046%20128%20166%20250%20126%20C371%2088%20408%2025%20553%2084%20C715%20151%20753%2014%20965%2075%27%2F%3E%0A%3Cpath%20d%3D%27M-99%20141%20C55%2082%20135%20201%20257%20162%20C379%20123%20420%2061%20566%20119%20C720%20181%20760%2052%20963%20112%27%2F%3E%0A%3Cpath%20d%3D%27M-112%20179%20C46%20119%20135%20238%20266%20196%20C386%20159%20433%2099%20574%20154%20C728%20216%20767%2091%20968%20150%27%2F%3E%0A%3Cpath%20d%3D%27M-121%20220%20C55%20154%20154%20280%20284%20231%20C412%20183%20455%20139%20594%20188%20C743%20242%20777%20127%20976%20190%27%2F%3E%0A%3Cpath%20d%3D%27M-129%20268%20C71%20191%20180%20331%20312%20270%20C444%20209%20480%20184%20622%20226%20C762%20268%20797%20167%20985%20235%27%2F%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27%23627854%27%20stroke-opacity%3D%27.35%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20filter%3D%27url%28%23soft%29%27%3E%0A%3Cpath%20d%3D%27M45%20632%20C130%20536%2024%20455%20105%20374%20C198%20281%20293%20411%20392%20304%20C503%20185%20621%20306%20690%20182%20C742%2088%20829%20118%20935%2063%27%2F%3E%0A%3Cpath%20d%3D%27M90%20648%20C173%20552%2061%20460%20145%20376%20C230%20290%20324%20422%20418%20318%20C527%20198%20642%20320%20718%20191%20C778%2091%20858%20121%20950%2084%27%2F%3E%0A%3Cpath%20d%3D%27M135%20665%20C209%20566%20108%20467%20184%20383%20C267%20292%20356%20430%20446%20334%20C554%20219%20665%20333%20748%20207%20C810%20113%20885%20137%20963%20111%27%2F%3E%0A%3Cpath%20d%3D%27M183%20679%20C252%20582%20153%20483%20221%20393%20C304%20284%20389%20433%20477%20352%20C590%20247%20691%20348%20781%20229%20C845%20144%20904%20151%20974%20141%27%2F%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27%23e9e1cf%27%20stroke-opacity%3D%27.13%27%20stroke-width%3D%271.45%27%20stroke-linecap%3D%27round%27%20filter%3D%27url%28%23soft2%29%27%3E%0A%3Cpath%20d%3D%27M-40%20525%20C86%20475%20133%20545%20255%20493%20C389%20436%20482%20517%20610%20458%20C741%20398%20787%20444%20945%20407%27%2F%3E%0A%3Cpath%20d%3D%27M-60%20560%20C75%20510%20141%20582%20276%20526%20C415%20469%20501%20548%20631%20493%20C773%20432%20815%20480%20960%20443%27%2F%3E%0A%3Cpath%20d%3D%27M-42%2016%20C68%2083%20144%20-12%20242%2054%20C337%20118%20405%203%20514%2075%20C604%20135%20708%2060%20789%20116%20C850%20158%20905%20132%20955%20120%27%2F%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27%230e1c12%27%20stroke-opacity%3D%27.22%27%20stroke-width%3D%275.5%27%20stroke-linecap%3D%27round%27%20filter%3D%27url%28%23soft2%29%27%3E%0A%3Cpath%20d%3D%27M638%20626%20C733%20520%20611%20454%20693%20354%20C784%20243%20887%20317%20964%20240%27%2F%3E%0A%3Cpath%20d%3D%27M-66%20373%20C80%20339%2094%20249%20213%20296%20C355%20352%20383%20219%20530%20272%20C682%20328%20697%20229%20840%20267%20C898%20282%20938%20258%20988%20218%27%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E"),
    repeating-radial-gradient(ellipse at 50% 50%, rgba(251, 248, 241, .045) 0 1px, transparent 1px 19px);
  background-size: 820px 565px, 520px 520px;
  background-position: center top, center;
  opacity: .72;
  mix-blend-mode: multiply;
  filter: blur(.35px) contrast(1.05);
  transform: scale(1.03);
}

.menu-panel > * {
  position: relative;
  z-index: 1;
}

.menu-heading {
  gap: clamp(30px, 5vw, 62px);
}

.menu-grid {
  column-gap: clamp(42px, 5vw, 78px);
}

.menu-group {
  border-bottom-color: rgba(251, 248, 241, .18);
}

.menu-grid {
  border-top-color: rgba(251, 248, 241, .22);
}

.menu-note {
  max-width: 620px;
}

@media (max-width: 900px) {
  .menu-section {
    padding-inline: clamp(22px, 6vw, 54px);
  }

  .menu-panel {
    width: min(100%, 880px);
    border-radius: 18px;
  }
}

@media (max-width: 640px) {
  .menu-section {
    padding: 64px 18px;
  }

  .menu-panel {
    width: 100%;
    padding: 46px 20px;
    border-radius: 18px;
  }

  .menu-panel::before {
    filter: blur(22px);
  }

  .menu-panel::after {
    background-size: 690px 475px, 420px 420px;
    opacity: .76;
  }
}
