@import url("https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap");

.button, .owl-carousel .owl-nav {
transition:var(--transition-base)
}
:root {
--ff-title:"Poppins", system-ui, sans-serif;
--ff-base:"Inter", system-ui, sans-serif;
--fz-xxl:40px;
--fz-xl:24px;
--fz-l:20px;
--fz-m:18px;
--fz-s:16px;
--fz-xs:12px;
--gap-xxl:80px;
--gap-xl:48px;
--gap-l:24px;
--gap-m:16px;
--gap-s:12px;
--gap-xs:8px;
--gap-xxs:4px;
--lh-100:1;
--lh-text:1.3;
--fw-semibold:600;
--fw-medium:500;
--fw-regular:400;
--transition-base:all ease 350ms
}
html,
body {
overflow-x:hidden
}
.dont-touch {
pointer-events:none;
-webkit-touch-callout:none;
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none
}
.button {
display:flex;
align-items:center;
justify-content:center;
text-decoration:none!important;
height:56px;
padding:0 24px;
border-radius:16px;
line-height:var(--lh-100)
}
.button:hover {
scale:1.03
}
.button.button-primary {
background-color:var(--color9);
color:var(--text-color)
}
.promo-section {
margin-top:110px;
height:768px;
width:100%;
background:url(../img/promo.jpg) center/cover no-repeat;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
color:#fff;
position:relative;
overflow:hidden
}
@media screen and (max-width:767px) {
.promo-section {
margin-top:0;
padding-top:64px;
height:calc(100vh - 60px)
}
}
.promo-section::after {
content:"";
position:absolute;
inset:0;
background:rgba(0, 0, 0, .4)
}
.promo-section .section-container {
position:relative;
z-index:2;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:var(--gap-l);
padding:0 var(--gap-m)
}
.promo-section .section-container .details {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:var(--gap-s)
}
.promo-section .section-container .details .logotype {
height:150px
}
.promo-section .section-container .details .timing {
font-size:40px;
display:flex;
flex-direction:row;
gap:var(--gap-xs);
align-items:center;
justify-content:center
}
.promo-section .section-container .details .timing>span {
font-size:var(--fz-xl)
}
.about {
max-width:1600px;
margin:var(--gap-xxl) auto;
padding:0 var(--gap-l);
overflow:visible
}
@media screen and (max-width:767px) {
.promo-section .section-container .details .logotype {
height:96px
}
.promo-section .section-container .details .timing {
font-size:var(--fz-xl)
}
.promo-section .section-container .details .timing>span {
font-size:var(--fz-s)
}
.about {
margin:0 auto var(--gap-xl)
}
}
.about .content-text {
max-width:800px;
margin:var(--gap-xl) auto;
text-align:center
}
@media screen and (max-width:767px) {
.about .content-text {
margin:24px auto;
text-align:left
}
}
.about .text-title {
margin-bottom:var(--gap-l);
line-height:1.15;
font-family:var(--font-stix), sans-serif;
font-weight:var(--fw-semibold)
}
.about .text-title span {
font-size:inherit
}
@media screen and (max-width:767px) {
.about .text-title {
margin-bottom:var(--gap-m)
}
}
.about .content-text .text-picture {
margin:var(--gap-xl) auto
}
.about .content-text .text-picture img {
width:100%;
pointer-events:none;
user-select:none
}
@media screen and (max-width:767px) {
.about .content-text .text-picture {
margin:var(--gap-l) auto
}
.about .text-paragraph p {
font-size:var(--fz-s)
}
}
.about .text-paragraph {
display:flex;
flex-direction:column;
gap:var(--gap-s)
}
.about .text-paragraph p {
line-height:var(--lh-text);
font-family:var(--font-stix), sans-serif!important;
font-weight:400!important;
margin:0
}
.about .content-video {
width:100%;
aspect-ratio:16/9;
max-width:1024px;
margin:var(--gap-xl) auto
}
.about .content-video iframe {
width:100%;
height:100%
}
.about .owl-picture .owl-item {
aspect-ratio:3/2;
position:relative
}
.about .owl-picture .owl-item .picture-item {
width:100%;
height:100%;
cursor:grab
}
.about .owl-picture .owl-item .picture-item iframe {
width:100%;
height:100%
}
.about .owl-picture .owl-item .picture-item img {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover
}
.owl-carousel {
display:none;
width:100%;
-webkit-tap-highlight-color:transparent;
position:relative;
z-index:1;
overflow:hidden
}
.owl-carousel:hover .owl-nav {
opacity:1
}
.owl-carousel:hover .owl-nav .owl-next, .owl-carousel:hover .owl-nav .owl-prev {
scale:1
}
.owl-carousel .owl-stage-outer {
position:relative
}
.owl-carousel .owl-stage-outer .owl-stage {
position:relative;
-ms-touch-action:pan-Y;
touch-action:manipulation;
-moz-backface-visibility:hidden
}
.owl-carousel .owl-stage-outer .owl-stage .owl-item {
float:left;
position:relative;
min-height:1px;
-webkit-backface-visibility:hidden;
-webkit-tap-highlight-color:transparent;
-webkit-touch-callout:none
}
.owl-carousel .owl-dots.disabled, .owl-carousel .owl-nav.disabled {
display:none;
pointer-events:none
}
.owl-carousel .owl-nav {
opacity:.8
}
.owl-carousel .owl-dot, .owl-carousel .owl-nav .owl-next, .owl-carousel .owl-nav .owl-prev {
cursor:pointer;
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none
}
.owl-carousel .owl-nav button.owl-next, .owl-carousel .owl-nav button.owl-prev, .owl-carousel button.owl-dot {
padding:0;
font:inherit
}
.owl-carousel.owl-loaded {
display:block;
transition:all ease-in-out .5s
}
.owl-carousel.owl-loading {
opacity:0;
display:block
}
.owl-carousel.owl-hidden {
opacity:0
}
.owl-carousel.owl-refresh .owl-item {
visibility:hidden
}
.owl-carousel.owl-drag .owl-item {
touch-action:pan-y;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none
}
.owl-carousel.owl-grab {
cursor:grab
}
.owl-carousel .owl-nav {
position:absolute;
inset:0;
z-index:999;
align-items:center;
display:flex;
pointer-events:none
}
@media screen and (max-width:767px) {
.about .content-video {
margin:var(--gap-l) auto
}
.owl-carousel.owl-loaded {
transition:none
}
.owl-carousel .owl-nav {
display:none
}
}
.owl-carousel .owl-nav .owl-next, .owl-carousel .owl-nav .owl-prev {
scale:.95;
pointer-events:stroke;
display:flex;
width:48px;
height:48px;
justify-content:center;
align-items:center;
background-color:#fff;
border:none;
border-radius:48px;
transition:all ease-in-out .5s
}
.owl-carousel .owl-nav .owl-next span, .owl-carousel .owl-nav .owl-prev span {
text-indent:-9999px;
width:40px;
height:40px;
position:relative
}
.owl-carousel .owl-nav .owl-next:hover, .owl-carousel .owl-nav .owl-prev:hover {
scale:1.1;
box-shadow:-2px 0 1px 0 transparent, -1px 0 1px 0 rgba(0, 0, 0, .01), -1px 0 1px 0 rgba(0, 0, 0, .05), 0 0 1px 0 rgba(0, 0, 0, .09)
}
.owl-carousel .owl-nav .owl-next:active, .owl-carousel .owl-nav .owl-prev:active {
scale:1.25
}
.owl-carousel .owl-nav .owl-next.disabled, .owl-carousel .owl-nav .owl-prev.disabled {
display:none
}
.owl-carousel .owl-nav .owl-prev {
position:absolute;
left:24px
}
.owl-carousel .owl-nav .owl-prev span {
left:-2px;
background:url("data:image/svg+xml, %3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.14575 13.0574C6.72388 12.5886 6.72388 11.8855 7.14575 11.4636L16.1458 2.46362C16.6145 1.99487 17.3176 1.99487 17.7395 2.46362C18.2083 2.8855 18.2083 3.58862 17.7395 4.0105L9.53638 12.2136L17.7395 20.4636C18.2083 20.8855 18.2083 21.5886 17.7395 22.0105C17.3176 22.4792 16.6145 22.4792 16.1926 22.0105L7.14575 13.0574Z' fill='%23262627'/%3E%3C/svg%3E%0A") center/24px no-repeat
}
.owl-carousel .owl-nav .owl-next {
position:absolute;
right:24px
}
.owl-carousel .owl-nav .owl-next span {
right:-2px;
background:url("data:image/svg+xml, %3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.4796 11.4167C17.9015 11.8855 17.9015 12.5886 17.4796 13.0105L8.47961 22.0105C8.01086 22.4792 7.30774 22.4792 6.88586 22.0105C6.41711 21.5886 6.41711 20.8855 6.88586 20.4636L15.089 12.2605L6.88586 4.0105C6.41711 3.58862 6.41711 2.8855 6.88586 2.46362C7.30774 1.99487 8.01086 1.99487 8.43274 2.46362L17.4796 11.4167Z' fill='%23262627'/%3E%3C/svg%3E%0A") center/24px no-repeat
}
.owl-dots {
position:absolute;
inset:16px auto;
top:auto;
display:flex;
flex-direction:row;
justify-content:center;
gap:0;
z-index:99;
background-color:rgba(0, 0, 0, .5);
border-radius:24px;
padding:0 8px;
left:50%;
transform:translate(-50%, 0)
}
.owl-dots .owl-dot {
all:unset;
width:24px;
height:24px;
position:relative;
cursor:pointer
}
.owl-dots .owl-dot.active::after, .owl-dots .owl-dot::after {
position:absolute;
content:""
}
.owl-dots .owl-dot::after {
left:50%;
top:50%;
transform:translate(-50%, -50%);
width:8px;
height:8px;
border-radius:4px;
transition:all .5s ease;
background-color:color-mix(in srgb, #fff, transparent 50%)
}
.owl-dots .owl-dot:hover::after {
content:"";
background-color:color-mix(in srgb, #fff, transparent 80%)
}
.owl-dots .owl-dot.active::after {
background-color:#fff;
width:24px
}
.no-js .owl-carousel {
display:block
}
.owl-carousel .animated {
animation-duration:1s;
animation-fill-mode:both
}
.owl-carousel .owl-animated-in {
z-index:0
}
.owl-carousel .owl-animated-out {
z-index:1
}
.owl-carousel .fadeOut {
animation-name:fadeOut
}
@keyframes fadeOut {
0% {
opacity:1
}
100% {
opacity:0
}
}
.owl-height {
transition:height .5s ease-in-out
}
.tabs .tab-control {
display:flex;
flex-direction:row;
align-items:center;
justify-content:center;
position:relative;
border-bottom:solid 2px var(--text-color3)
}
.tabs .tab-control::-webkit-scrollbar {
display:none
}
.tabs .tab-control {
scrollbar-width:none;
-ms-overflow-style:none
}
@media screen and (max-width:767px) {
.tabs .tab-control {
gap:var(--gap-m);
justify-content:flex-start;
width:calc(100% + 48px);
margin-left:-24px;
margin-right:-24px;
padding:0 24px;
overflow:auto
}
}
.tabs .tab-control .btn-tab {
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
padding:var(--gap-m) var(--gap-l);
white-space:nowrap;
font-size:var(--fz-xl);
color:var(--text-color2);
text-transform:uppercase;
position:relative
}
.tabs .tab-control .btn-tab:hover {
opacity:.7
}
.tabs .tab-control .btn-tab.checked {
color:var(--color3);
opacity:1
}
.tabs .tab-control .btn-tab.checked::after {
content:"";
position:absolute;
height:2px;
width:100%;
inset:0;
top:auto;
bottom:-2px;
background:var(--color3);
z-index:99
}
.tabs .tab-content {
transition:ease 350ms all
}
@media screen and (max-width:767px) {
.tabs .tab-control .btn-tab {
font-size:13px;
padding:var(--gap-l) 0
}
.tabs .tab-content {
transition:none
}
}

.family-attic-hero {
display:grid;
grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
gap:var(--gap-xl);
align-items:center;
width:100%;
max-width:1040px;
margin:var(--gap-xl) auto 0
}

.family-attic-mobile-title {
display:none
}

.family-attic-hero .text-title,
.family-attic-party .text-title {
text-align:left
}

.family-attic-hero .text-paragraph {
text-align:left
}

.family-attic-cover {
aspect-ratio:9 / 16;
width:100%;
max-width:none;
margin:0;
overflow:hidden;
background:#efe9dc
}

.about .family-attic-cover {
aspect-ratio:9 / 16;
max-width:none;
margin:0
}

.family-attic-cover img,
.family-attic-cover video {
display:block;
width:100%;
height:100%;
object-fit:cover
}

.family-attic-video {
position:relative;
cursor:pointer
}

.family-attic-video video::-webkit-media-controls {
display:none!important
}

.family-attic-play {
position:absolute;
left:50%;
top:50%;
width:112px;
height:112px;
padding:0;
border:0;
border-radius:50%;
transform:translate(-50%, -50%);
background:transparent;
cursor:pointer;
z-index:2;
transition:opacity 250ms ease
}

.family-attic-play::before {
content:"";
position:absolute;
inset:0;
border-radius:50%;
background:rgba(61, 35, 22, .72);
transition:transform 250ms ease
}

.family-attic-video:hover .family-attic-play::before {
transform:scale(1.12)
}

.family-attic-play::after {
content:"";
position:absolute;
left:44px;
top:34px;
border-top:22px solid transparent;
border-bottom:22px solid transparent;
border-left:34px solid #fff
}

.family-attic-video.is-playing .family-attic-play {
opacity:0;
pointer-events:none
}

.family-attic-fancybox .fancybox-inner,
.family-attic-fancybox .fancybox-stage,
.family-attic-fancybox .fancybox-slide {
overflow:hidden
}

.family-attic-fancybox .fancybox-slide--html {
display:flex;
align-items:center;
justify-content:center;
padding:0
}

.family-attic-fancybox .fancybox-content {
padding:0;
margin:0;
background:#000;
overflow:hidden
}

.family-attic-lightbox-frame {
display:flex;
align-items:center;
justify-content:center;
width:90vw;
height:90vh;
background:#000
}

.family-attic-lightbox-frame.is-portrait {
width:min(90vw, 50.625vh);
height:90vh
}

.family-attic-lightbox-frame.is-square {
width:min(90vw, 90vh, 720px);
height:min(90vw, 90vh, 720px)
}

.family-attic-lightbox-video {
display:block;
width:100%;
height:100%;
object-fit:contain;
background:#000
}

.family-attic-actions {
display:flex;
justify-content:flex-start;
align-items:center;
gap:var(--gap-m);
margin-top:var(--gap-l)
}

.family-attic-actions .btn {
width:auto;
min-width:0;
max-width:none;
padding-left:var(--gap-l);
padding-right:var(--gap-l)
}

.family-attic-actions .intro__menu-btn {
background:var(--color9);
color:var(--text-color)
}

.family-attic-actions .intro__menu-btn:hover {
color:var(--text-color);
opacity:.75
}

.family-attic-hall-body .family-attic-actions {
margin-top:20px
}

.family-attic-party {
margin-top:var(--gap-xl)
}

.family-attic-halls {
width:100vw;
margin:var(--gap-xl) 0 0 calc(50% - 50vw)
}

.family-attic-hall {
width:100%;
padding:48px 0;
background:#f6efdf
}

.family-attic-hall-inner {
display:grid;
grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
align-items:center;
gap:var(--gap-xl);
width:min(100% - 48px, 1040px);
min-height:0;
margin:0 auto
}

.family-attic-hall:nth-child(2) {
background:#dec397
}

.family-attic-hall-body {
padding:0;
text-align:left
}

.family-attic-hall-body h3 {
font-family:"Great Vibes", cursive;
font-size:48px;
font-weight:400;
line-height:1;
text-transform:none;
color:var(--color2);
margin:0 0 var(--gap-s)
}

.family-attic-hall-image {
width:100%;
max-width:520px;
aspect-ratio:1;
justify-self:end;
position:relative;
background:#d8c8a9;
overflow:hidden
}

.family-attic-hall:nth-child(2) .family-attic-hall-image {
justify-self:start
}

.family-attic-hall-image img,
.family-attic-hall-image video {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover
}

.family-attic-gallery {
margin-top:var(--gap-l)
}

@media screen and (max-width:1023px) {
.family-attic-hero {
grid-template-columns:minmax(0, 1fr);
max-width:720px;
gap:var(--gap-l)
}
.family-attic-hall-inner {
min-height:0
}
.family-attic-hall-body h3 {
font-size:40px
}
.family-attic-hall-image {
max-width:420px
}
}

@media screen and (max-width:767px) {
.family-attic-hero {
margin-top:var(--gap-l);
gap:var(--gap-xs)
}
.family-attic-mobile-title {
display:block;
margin:0;
order:1
}
.family-attic-desktop-title {
display:none
}
.family-attic-cover {
order:2
}
.about .family-attic-cover {
aspect-ratio:4 / 3
}
.family-attic-hero-content {
order:3
}
.family-attic-play {
width:64px;
height:64px
}
.family-attic-play::after {
left:26px;
top:20px;
border-top-width:12px;
border-bottom-width:12px;
border-left-width:20px
}
.family-attic-actions {
align-items:stretch
}
.family-attic-halls {
width:100vw;
margin-left:calc(50% - 50vw);
margin-right:0
}
.family-attic-hall-inner {
width:min(100% - 48px, 1040px);
grid-template-columns:1fr;
gap:var(--gap-l);
min-height:0
}
.family-attic-hall:nth-child(2) .family-attic-hall-body {
order:1
}
.family-attic-hall:nth-child(2) .family-attic-hall-image {
order:2
}
.family-attic-hall-body h3 {
font-size:32px
}
.family-attic-hall-image {
width:100%;
max-width:none;
justify-self:center;
aspect-ratio:4 / 3
}
}


/* ==== НАЧАЛО: слой оформления «За морем» / кафе №8 (агент, 22.09.2026) ====
   Всё внутри этого блока можно удалить целиком — сайт вернётся к прежнему виду. */

/* Шрифты бренда, лежат на этом же сервере */
@font-face{font-family:'Alice';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/Alice-400-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Alice';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/Alice-400-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Madefor';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('../fonts/WixMadeforText-400800-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Madefor';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('../fonts/WixMadeforText-400800-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* Цвета бренда вместо цветов прежнего заведения */
:root{
  --color1:#C4904F;            /* медовая охра — главный акцент */
  --color2:#4C4C4C;            /* графитовый — тёмный */
  --color3:#C4904F;
  --color4:#C4904F;
  --color6:#C4904F;
  --color7:#748193;            /* дымчатый синий */
  --color8:#91967E;            /* морской шалфей */
  --color9:#EEECEB;            /* молочный — фоны */
  --gradient:linear-gradient(180deg,#A5763A 0%,#B98443 35%,#D9A94E 100%);
  --text-color:#4C4C4C;
  --text-color2:#C4904F;
  --text-color3:#EEECEB;
  --roundcross:#C4904F;
  --font-proxima-semibold:'Madefor';
  --font-proxima-bold:'Madefor';
  --font-stix:'Madefor';
  --font-stix-italic:'Madefor';
  --font-brand-display:'Alice';
  --brand-pearl:#CCC2B8;
  --brand-coral:#EA9071;
}

/* Наборный текст — Wix Madefor Text, заголовки — Alice */
body{font-family:'Madefor',-apple-system,'Segoe UI',Arial,sans-serif;color:var(--text-color);}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3{
  font-family:'Alice',Georgia,'Times New Roman',serif;
  text-transform:none;
  font-weight:400;
  letter-spacing:.005em;
  color:var(--color2);
}
.btn,button,input,select,textarea{font-family:'Madefor',-apple-system,'Segoe UI',Arial,sans-serif;}

/* Шапка: знак «кафе №8» шире прежнего, а наборный шрифт бренда шире прежнего.
   Без этой подгонки меню шапки переносится на вторую строку и телефон обрезается. */
.header-logo img{max-height:3.4rem;max-width:17rem;width:auto;}
@media (max-width:575px){.header-logo img{max-height:3rem;max-width:14rem;}}
.header-menu-item,.header-menu-item a{font-size:1.9rem;letter-spacing:-.005em;}
.header-phone{white-space:nowrap;}
/* Шапка на 992–1199 (исправление 23.09.2026): с шрифтом бренда телефон вылезал за край экрана на 30 px */
@media (min-width:992px) and (max-width:1199px){
  .header-logo img{max-width:12.5rem;max-height:2.8rem;}
  .header-menu-item,.header-menu-item a{font-size:1.45rem;white-space:nowrap;}
  .header-menu-item.active,.header-menu-item.active a{font-size:1.8rem;}
  .header .btn{font-size:1.3rem;padding-left:1.2rem;padding-right:1.2rem;}
  .header-phone,.header-phone a,.header-phone__item{font-size:1.25rem;}
}
/* Один телефон в шапке, как в макете (23.09.2026): графит, обычное начертание. Строка шапки держит высоту
   блока шапки (11rem минус отступы) — раньше её задавал двухстрочный блок из двух телефонов */
@media (min-width:992px){
  body header.header .header-top{min-height:9rem;}
  body .header-phone--single a.phones-font{font-size:1.8rem;font-weight:400;color:var(--color2);white-space:nowrap;}
}
@media (min-width:992px) and (max-width:1199px){
  body .header-phone--single a.phones-font{font-size:1.5rem;}
}
/* Полоса разделов по макету (23.09.2026): жемчужный фон #CCC2B8, пункты графитом, активный — белый и плотнее,
   без полоски охрой. Жирнее делаем обводкой, а не font-weight: ширина пункта не меняется, иначе полоса пересчитывает «Ещё» */
body .category-menu{background-color:#CCC2B8 !important;}
body .category-menu > ul ul{background-color:#CCC2B8;}
body .category-menu ul li a{color:var(--color2);}
body .category-menu > ul > li > a.active,
body .category-menu ul li a.active{color:#fff;-webkit-text-stroke:.035em #fff;}
body .category-menu > ul > li > a.active::before{display:none;}
/* Полоса разделов каталога: тот же запас по ширине, иначе разделы уезжают в «ещё» */
.category-menu a{font-size:1.8rem;letter-spacing:-.005em;}

/* Карточки блюд по макету (шаг 2, 23.09.2026): фото → название → описание → БЖУ → цена и кнопка.
   Порядок меняется только стилями, разметка шаблона не тронута.
   Префикс body нужен, чтобы перебить глубокие селекторы шаблона. */
body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box{display:flex;flex-direction:column;flex-grow:1;}
body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box > .title-block{order:1;}
body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box > .description{order:2;}
body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box > .shop-item-params{order:3;}
body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box > .title-price,
body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box > .mobile-cart{order:4;}
body .shop-pane .shop-item .shop-item-content .title .title-name{
  font-family:'Alice',Georgia,'Times New Roman',serif;
  text-transform:none;font-weight:400;letter-spacing:.005em;
  color:var(--color2);font-size:2.7rem;line-height:1.15;
}
body .shop-pane .shop-item .shop-item-content .title-block{margin-bottom:.6rem;}
body .shop-pane .shop-item .shop-item-content .description,
body .shop-pane .shop-item .shop-item-content .description p,
body .shop-pane .shop-item .shop-item-content .description span{font-style:normal;color:var(--color1);font-size:1.6rem;line-height:1.3;}
body .shop-pane .shop-item .shop-item-content .description{margin-bottom:1.6rem;}
/* БЖУ прижаты к цене: в ряду карточек они стоят на одной линии при любой длине описания */
body .shop-pane .shop-item .shop-item-content .shop-item-params{margin-top:auto;margin-bottom:.4rem;}
body .shop-pane .shop-item .shop-item-content .shop-item-params .param-title,
body .shop-pane .shop-item .shop-item-content .shop-item-params .param-value{color:var(--color2);font-size:1.4rem;line-height:1.35;}
body .shop-pane .shop-item .shop-item-content .shop-item-params .param-value{opacity:.85;}
/* «Нет в наличии» — без строки цены низ карточки ниже на строку, из-за этого БЖУ съезжали на 8 px */
@media (min-width:576px){ body .shop-pane .shop-item .shop-item-content .bottom.shop-item-content__box{min-height:4.8rem;} }
/* Колонки БЖУ по содержимому, а не по 25%: шрифт бренда шире, «Углеводы» и «Калории» слипались на 1280 */
body .shop-pane .shop-item .shop-item-content .shop-item-params-list{width:100%;justify-content:space-between;column-gap:.8rem;}
body .shop-pane .shop-item .shop-item-content .shop-item-params-list .shop-item-params-item{flex:0 1 auto;white-space:nowrap;}
@media (min-width:1200px) and (max-width:1439px){
  body .shop-pane .shop-item .shop-item-content .shop-item-params .param-title,
  body .shop-pane .shop-item .shop-item-content .shop-item-params .param-value{font-size:1.25rem;}
}
@media (max-width:575px){
  body .shop-pane .shop-item .shop-item-content .title .title-name{font-size:2rem;font-weight:400;}
  body .shop-pane .shop-item .shop-item-content .shop-item-params .param-title,
  body .shop-pane .shop-item .shop-item-content .shop-item-params .param-value{font-size:1.2rem;}
}

/* Корзина «Мой заказ» по макету (шаг 3, 23.09.2026). Только правая колонка корзины;
   размеры — макет 1920, приведённый к колонке 300 px (×0,77), в rem, поэтому растут вместе с сайтом. */
body .main-cart-content .h3::after{content:':';}
body .main-cart-content .cart-footer th,
body .main-cart-content .cart-footer th .margin-bottom-15{color:var(--color2);font-size:1.5rem;font-weight:400;}
body .main-cart-content .cart-footer td,
body .main-cart-content .cart-footer td.numbers{color:var(--color1);font-size:2.2rem;font-weight:400;}
body .main-cart-content .cart-footer .cart-table-delivery td:not(.numbers){color:var(--color2);}
body .main-cart-content .cart-footer .cart-table-sum td{font-size:2.2rem;}
/* Подсказка про подарок: молочный фон, прямые углы, кегль крупнее */
body .main-cart-content .delivery-hint{background:var(--color9);border-radius:var(--zm-radius);padding:1.2rem 1.2rem;}
body .main-cart-content .delivery-hint,
body .main-cart-content .delivery-hint p{color:var(--color2);font-size:1.6rem;line-height:1.3;font-weight:400;text-align:left;}
/* Переключатель доставки: фирменные кольца вместо значков шрифта */
body .main-cart-content .form-group-radio label{font-size:1.7rem;font-weight:400;color:var(--color2);line-height:1.15;}
body .main-cart-content .delivery-choose input[type="radio"]:checked + label{font-weight:400;}
body .main-cart-content .form-group-radio label::before{
  content:'';font-family:inherit;opacity:1;
  width:2.1rem;height:2.1rem;flex:0 0 2.1rem;margin:0 1rem 0 0;
  box-sizing:border-box;border:.25rem solid #C6C6C5;border-radius:50%;background:#fff;
}
body .main-cart-content .form-group-radio input[type="radio"]:checked + label::before{
  content:'';border:.3rem solid var(--color1);
  background:radial-gradient(circle,var(--color1) 0 42%,#fff 46%);
}
/* Поле адреса: подпись как в макете, тонкая серая рамка, прямые углы */
body .main-cart-content .geo_json-delivery-address::before{
  content:'Рассчитать доставку до адреса:';display:block;
  font-size:1.7rem;color:var(--color2);margin:1.6rem 0 .8rem;
}
body .main-cart-content .geo_json-delivery-field textarea.form-control{border:1px solid #C6C6C5;border-radius:var(--zm-radius);font-size:1.6rem;color:var(--color2);}
body .main-cart-content .geo_json-delivery-field textarea.form-control:focus{border-color:var(--color1);box-shadow:none;outline:none;}

/* На телефоне шаблон держит под блок добавок 32rem даже пустым — дыра ~290 px. Прячем только пустой */
body .main-cart-content .for-extra:empty{display:none;}
/* Строка блюда в корзине: название и цена стояли вплотную (зазор 0) */
body .main-cart-content .cart-table-row .title-box{flex:1 1 auto;min-width:0;padding-right:1rem;}
body .main-cart-content .cart-table-row .title{font-size:1.5rem;line-height:1.25;color:var(--color2);}
body .main-cart-content .cart-table-row .price{white-space:nowrap;font-size:1.8rem;color:var(--color1);}
body .main-cart-content .cart-table-row .cart_count input.form-control{border:1px solid #C6C6C5;border-radius:var(--zm-radius);color:var(--color2);}

/* Окно блюда (шаг 4, 23.09.2026). В макете его нет — перенесены правила карточки:
   название Alice графитом, описание охрой прямым, БЖУ «подпись над значением», цена без жирного. */
body .fancybox-slide.shop-item-ajax .id-content .id-main-title{
  font-family:'Alice',Georgia,'Times New Roman',serif;
  text-transform:none;font-weight:400;letter-spacing:.005em;
  color:var(--color2);font-size:3.2rem;line-height:1.15;
}
body .fancybox-slide.shop-item-ajax .id-content .id-description,
body .fancybox-slide.shop-item-ajax .id-content .id-description p,
body .fancybox-slide.shop-item-ajax .id-content .id-description span{font-style:normal;color:var(--color1);font-size:1.7rem;line-height:1.35;}
body .fancybox-slide.shop-item-ajax .id-content .id-params-item{display:flex;flex-direction:column-reverse;}
body .fancybox-slide.shop-item-ajax .id-content .id-params-item .title,
body .fancybox-slide.shop-item-ajax .id-content .id-params-item .value{font-family:'Madefor',-apple-system,'Segoe UI',Arial,sans-serif;color:var(--color2);font-size:1.5rem;line-height:1.35;}
body .fancybox-slide.shop-item-ajax .id-content .id-params-item .value{opacity:.85;}
body .fancybox-slide.shop-item-ajax .id-content .id-weight{font-weight:400;color:var(--color2);font-size:1.6rem;}
body .fancybox-slide.shop-item-ajax .id-content .id-price,
body .fancybox-slide.shop-item-ajax .id-content .id-price .id-price-value{font-weight:400;color:var(--color1);font-size:2.6rem;}
/* Опции блюда (размер пиццы и т.п.): заголовок Alice, кольца как в корзине. Это чекбоксы, выбор одного — логика шаблона */
body .fancybox-slide.shop-item-ajax .id-content .options-block .h4{font-family:'Alice',Georgia,'Times New Roman',serif;font-weight:400;color:var(--color2);font-size:2.4rem;}
body .fancybox-slide.shop-item-ajax .id-content .options-block .form-group-checkbox label{font-size:1.6rem;color:var(--color2);}
body .fancybox-slide.shop-item-ajax .id-content .options-block .form-group-checkbox label::before{
  content:'';font-family:inherit;opacity:1;
  width:2.1rem;height:2.1rem;flex:0 0 2.1rem;margin:0 1rem 0 0;
  box-sizing:border-box;border:.25rem solid #C6C6C5;border-radius:50%;background:#fff;
}
body .fancybox-slide.shop-item-ajax .id-content .options-block .form-group-checkbox input[type="checkbox"]:checked + label::before{
  content:'';border:.3rem solid var(--color1);
  background:radial-gradient(circle,var(--color1) 0 42%,#fff 46%);
}
body .fancybox-slide.shop-item-ajax .id-content .options-block .form-group-checkbox input[type="checkbox"].error_input + label::before{border-color:#D9534F;}
body .fancybox-slide.shop-item-ajax .id-content .options-block .price{color:var(--color2);font-size:1.6rem;}
@media (max-width:575px){
  body .fancybox-slide.shop-item-ajax .id-content .id-main-title{font-size:2.4rem;}
  body .fancybox-slide.shop-item-ajax .id-content .id-description,body .fancybox-slide.shop-item-ajax .id-content .id-description p,body .fancybox-slide.shop-item-ajax .id-content .id-description span{font-size:1.5rem;}
  body .fancybox-slide.shop-item-ajax .id-content .id-params-item .title,body .fancybox-slide.shop-item-ajax .id-content .id-params-item .value{font-size:1.3rem;}
}

/* Оформление заказа (шаг 5, 23.09.2026). В макете его нет — тот же язык, что у корзины:
   заголовки Alice, поля с тонкой серой рамкой и прямыми углами, фирменные кольца. Только форма заказа. */
body form.cart_form .h4{font-family:'Alice',Georgia,'Times New Roman',serif;font-weight:400;color:var(--color2);font-size:2.2rem;text-transform:none;}
body form.cart_form .form-control{border:1px solid #C6C6C5;border-radius:var(--zm-radius);color:var(--color2);}
body form.cart_form .form-control::placeholder{color:#9A9A9A;}
body form.cart_form .form-control:focus{border-color:var(--color1);box-shadow:none;outline:none;}
body form.cart_form .form-control.error_input{border-color:#D9534F;}
body form.cart_form .count-field-input.form-control{color:var(--color2);}
body form.cart_form .form-group-radio label,
body form.cart_form .form-group-checkbox label{color:var(--color2);font-weight:400;}
body form.cart_form .form-group-radio label::before,
body form.cart_form .form-group-checkbox label::before{
  content:'';font-family:inherit;opacity:1;
  width:2.1rem;height:2.1rem;flex:0 0 2.1rem;margin:0 1rem 0 0;
  box-sizing:border-box;border:.25rem solid #C6C6C5;border-radius:50%;background:#fff;
}
body form.cart_form .form-group-radio input[type="radio"]:checked + label::before,
body form.cart_form .form-group-checkbox input[type="checkbox"]:checked + label::before{
  content:'';border:.3rem solid var(--color1);
  background:radial-gradient(circle,var(--color1) 0 42%,#fff 46%);
}
body form.cart_form .form-group-checkbox input[type="checkbox"].error_input + label::before{border-color:#D9534F;}
body form.cart_form .delivery-choose-item input[type="radio"]:checked + label{font-weight:400;}
/* Подписи четырёх коротких полей адреса: на телефоне шрифт бренда шире колонки 78 px, «Домофон:Подъезд:» слипались */
@media (max-width:575px){ body form.cart_form .infofield{font-size:1.4rem;} }

/* Подвал по макету (шаг 6, 23.09.2026): иллюстрации бренда вместо логотипов Карбонары, пропорции сохраняются */
body .footer img.footer-illustration{height:auto;max-width:100%;display:block;margin:0 auto;position:static;top:auto;}
body .footer .footer-logo img.footer-illustration{width:26rem;}
body .footer .footer-leopard img.footer-illustration{width:22rem;}
@media (max-width:991px){
  /* Планшет и телефон: контакты по центру столбиком, обе иллюстрации рядом под ними (шаблон прятал правую на телефоне) */
  body .footer .footer-contacts{flex-wrap:wrap;justify-content:center;}
  body .footer .footer-contacts > .footer-contacts-item{flex:0 0 100%;max-width:100%;text-align:center;margin-bottom:1.2rem;height:auto;}
  body .footer .footer-contacts > .footer-contacts-item:first-child,
  body .footer .footer-contacts > .footer-contacts-item:last-child{flex:0 0 auto;order:5;margin:1rem 1.5rem 0;}
  body .footer .footer-address,body .footer .footer-time{justify-content:center;}
  body .footer .footer-leopard{display:flex !important;}
  body .footer .footer-logo img.footer-illustration{width:16rem;}
  body .footer .footer-leopard img.footer-illustration{width:14rem;}
}
@media (max-width:575px){
  body .footer .footer-contacts > .footer-contacts-item:first-child,
  body .footer .footer-contacts > .footer-contacts-item:last-child{margin:.6rem .6rem 0;}
  body .footer .footer-logo img.footer-illustration{width:13rem;}
  body .footer .footer-leopard img.footer-illustration{width:12rem;}
}
/* Раскладка: гриб слева, кот справа, оба внутри подвала (над подвалом карта — выступ уходил под неё), адрес в две строки */
body .footer .footer-leopard{top:0;}
@media (min-width:992px){
  body .footer .footer-address > div:not(.d-block),
  body .footer .footer-time > div:not(.d-block){white-space:nowrap;}
  body .footer .footer-contacts > .footer-contacts-item:first-child,
  body .footer .footer-contacts > .footer-contacts-item:last-child{flex:0 0 auto;}
}
@media (min-width:992px) and (max-width:1199px){
  body .footer .footer-logo img.footer-illustration,
  body .footer .footer-leopard img.footer-illustration{width:16rem;}
}
/* Подвал по макету, иллюстрации (шаг 6в, 23.09.2026, замечание клиента 545/693): на ≥1200 гриб и кот вынуты
   из ряда контактов. Гриб у левого края, в макете 384 px на 1920 и выступает над подвалом на 67/384 своей высоты —
   поверх карты (подвал поднят над iframe карты по z-index). Кот справа на уровне контактов, 275 px на 1920.
   Размер ограничен так, чтобы рамка картинки не заходила на кнопки: --fb-half — половина ряда кнопок.
   Величины в px: на 1200–1279 шаблон уменьшает rem до 9 px. */
body .footer .footer-content{position:relative;z-index:3;}
/* iframe карты строчный — под ним белая щель 3 px до охры подвала */
body .footer .footer-map iframe{display:block;}
@media (min-width:1200px){
  body .footer .footer-content{
    --fb-half:419px;
    --fcont-top:130px;
    --fc-mid:168px;
    --fm-left:max(clamp(12px, 7.2vw - 71px, 68px), calc(50vw - 892px));
    --fc-right:max(clamp(12px, 14.3vw - 135px, 140px), calc(50vw - 820px));
    --fm-w:min(20vw, 384px, calc(50vw - var(--fb-half) - var(--fm-left) - 24px));
    --fc-w:min(14.3vw, 275px, calc(50vw - var(--fb-half) - var(--fc-right) - 24px));
  }
  body .footer .footer-contacts{justify-content:center !important;align-items:flex-start;column-gap:25px;
    min-height:calc(max(var(--fm-w) * .825, var(--fc-mid) + var(--fc-w) / 2) + 12px - var(--fcont-top));}
  body .footer .footer-contacts > .footer-contacts-item{height:auto;flex:0 0 auto;}
  body .footer .footer-contacts > .footer-contacts-item:first-child,
  body .footer .footer-contacts > .footer-contacts-item:last-child{position:absolute;z-index:1;margin:0;padding:0;max-width:none;}
  body .footer .footer-contacts > .footer-contacts-item:first-child{left:var(--fm-left);top:calc(var(--fm-w) * -.175);width:var(--fm-w);}
  body .footer .footer-contacts > .footer-contacts-item:last-child{right:var(--fc-right);top:calc(var(--fc-mid) - var(--fc-w) / 2);width:var(--fc-w);}
  /* шаблон на широких экранах сдвигает кота left:70px — он уезжал к краю экрана */
  body .footer .footer-logo,body .footer .footer-leopard{padding:0;margin:0;left:0;right:auto;}
  /* шаблон держит низ подвала min-height 500 px — на 1200–1440 под текстом про cookie оставалась пустота ~100 px */
  body .footer .footer-content .container-fluid{min-height:0;}
  body .footer .footer-logo img.footer-illustration,
  body .footer .footer-leopard img.footer-illustration{width:100%;}
}
@media (min-width:1200px) and (max-width:1279px){
  /* здесь шрифт шаблона мельче: ряд кнопок 755 px, контакты выше */
  body .footer .footer-content{--fb-half:378px;--fcont-top:117px;--fc-mid:151px;}
}

/* Шаг 7 (23.09.2026, замечания клиента 545/704, 545/705, 545/708, 545/709).
   Полоса разделов: поля слева и справа одинаковые — от края плашки до первого пункта и от «Ещё» до края.
   Стрелка «Ещё» шире своего поля 8 px и заходила в правый отступ — поле по размеру значка */
@media (min-width:768px){
  body .category-menu > ul{padding-left:2rem;padding-right:2rem;}
  body .category-menu > ul > li:first-child > a{padding-left:0;}
  body .category-menu > ul > li.more > a{padding-right:0;}
  body .category-menu li.more > a:after{width:auto;height:auto;}
  /* выпадающее «Ещё» правым краем вровень с плашкой (замечание 545/761): список привязан к пункту, а он на 2rem левее края */
  body .category-menu > ul > li.more > ul{right:-2rem;}
}
/* Меню шапки: при наведении пункт рос через размер шрифта — соседи сдвигались рывком.
   Теперь рост через масштаб: место в строке не меняется, соседи стоят, увеличение плавное */
@media (min-width:992px){
  body .header-menu-item a,
  body .header-menu-item a:hover{font-size:1.9rem;}
  body .header-menu-item a{display:inline-block;transform-origin:50% 55%;
    transition:transform .3s ease,color .3s ease,opacity .3s ease;will-change:transform;}
  body .header-menu-item a:hover{transform:none;} /* 545/3050: пункты меню при наведении не растут — статичные, как на других сайтах (было scale(1.26)) */
}
@media (min-width:992px) and (max-width:1199px){
  body .header-menu-item a,
  body .header-menu-item a:hover{font-size:1.45rem;}
  body .header-menu-item a:hover{transform:none;} /* 545/3050: пункты меню при наведении не растут — статичные, как на других сайтах (было scale(1.18)) */
}
@media (prefers-reduced-motion:reduce){body .header-menu-item a{transition:none;}}
/* Крестики удаления блюда (корзина справа, страница корзины) — розовый коралл бренда */
body .cart-table .remove .icon,
body .remove .js_cart_remove .icon.icon-cancel{color:#EA9071;opacity:1;}
body .cart-table .remove .icon:hover,
body .remove .js_cart_remove .icon.icon-cancel:hover{color:#D9785A;}
/* Карта Google в подвале — чёрно-белая, как выбрал клиент */
body .footer .footer-map iframe{filter:grayscale(1) contrast(1.05);}

/* Шаг 8 (23.09.2026, 545/772–773).
   Модификаторы блюда (размер пиццы, добавки) — не товары, картинки у них нет: место под картинкой оставляем,
   чтобы название модификатора стояло ровно под названием блюда */
body .cart-table-row-sub .image{visibility:hidden;}
/* Всплывающие формы (звонок, бронь): заголовок у галочки согласия убран, галочка встаёт в строку с текстом согласия */
body .popup .feedback_form .form-group > input[type=checkbox] + label{display:none;}
body .popup .feedback_form .form-group:has(> input[type=checkbox]){display:flex;align-items:baseline;gap:1rem;}
body .popup .feedback_form .form-group > input[type=checkbox]{flex:0 0 auto;margin:0;position:relative;top:.15em;accent-color:#C4904F;}

/* Шаг 9 (23.09.2026, 545/785–786). Мягкие углы 0,8rem — одни на весь сайт: поле количества, плашки,
   поля ввода (адрес доставки, оформление заказа, всплывающие формы, окно блюда) */
:root{--zm-radius:.8rem;}
body .form-control,
body .cart_count input.form-control,
body .count-field-input.form-control,
body .delivery-hint{border-radius:var(--zm-radius);}
/* Пустая корзина (страница /cart/): иллюстрация, заголовок, кнопка в меню, часы и телефон доставки */
body .zm-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4rem 2rem 7rem;max-width:64rem;margin:0 auto;}
body .zm-empty__ill{width:26rem;max-width:70vw;height:auto;margin:0 0 2.4rem;}
body .zm-empty__title{font-family:'Alice',Georgia,'Times New Roman',serif;font-size:3.6rem;line-height:1.15;color:var(--color2);margin:0 0 1.2rem;font-weight:400;}
body .zm-empty__text{font-size:1.8rem;line-height:1.5;color:var(--color2);margin:0 0 3rem;max-width:46rem;}
body .zm-empty__btns{display:flex;gap:1.6rem;flex-wrap:wrap;justify-content:center;}
body .zm-empty__btns .btn{min-width:22rem;text-transform:uppercase;}
body .zm-empty__meta{margin-top:3rem;font-size:1.5rem;color:#8A8A8A;}
body .zm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
/* на пустой корзине заголовок страницы «Оформление заказа» лишний */
body:has(.zm-empty) main h1:not(.zm-empty__title){display:none;}
/* колонка оформления заказа сдвинута под правую корзину — пустой блок ставим по центру страницы */
body .main-content-cart:has(> .zm-empty){margin-left:auto;margin-right:auto;width:100%;max-width:64rem;flex:0 1 64rem;}
body .zm-empty__meta a{color:inherit;text-decoration:none;white-space:nowrap;}
@media (max-width:575px){
  body .zm-empty{padding:2.4rem 1.6rem 5rem;}
  body .zm-empty__title{font-size:2.8rem;}
  body .zm-empty__btns{width:100%;}
  body .zm-empty__btns .btn{min-width:0;width:100%;}
  body .zm-empty__ill{width:18rem;}
}

/* Шаг 10 (23.09.2026, 545/789, 545/792). Окна всплывающих форм — те же мягкие углы */
body .fancybox-content.popup,
body .popup.fancybox-content,
body .fancybox-slide > .popup{border-radius:var(--zm-radius);overflow:hidden;}
/* Страница 404 по макету: крупное «404» кораллом, сморчок, две кнопки */
body .zm-404__num{font-family:'Alice',Georgia,'Times New Roman',serif;font-size:16rem;line-height:.9;color:var(--brand-coral,#EA9071);margin:0 0 1rem;letter-spacing:.02em;}
body .zm-404 .zm-404__ill{width:18rem;}
body .zm-empty__btns .btn.zm-ghost{background:transparent;color:var(--color1);border:1px solid var(--color1);}
body .zm-empty__btns .btn.zm-ghost:hover{background:var(--color1);color:#fff;}
@media (max-width:575px){ body .zm-404__num{font-size:10rem;} body .zm-404 .zm-404__ill{width:14rem;} }
/* кнопки пустой корзины и 404 на телефоне — столбиком на всю ширину, с полями внутри */
@media (max-width:575px){
  body .zm-empty .zm-empty__btns{flex-direction:column;align-items:stretch;width:100%;max-width:34rem;}
  body .zm-empty .zm-empty__btns .btn{width:100%!important;max-width:none!important;min-width:0!important;padding-left:2.4rem;padding-right:2.4rem;white-space:nowrap;}
}

/* Шаг 11 (23.09.2026, 545/824–830) — телефон.
   Слайдер на телефоне — от края до края экрана (контейнер давал по 10 px с боков) */
@media (max-width:575px){
  body .main-content-banner.d-sm-none{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}
}
/* Шапка на узких телефонах: трубка справа уходила за край экрана (на 360 px — на 16 px) */
@media (max-width:389px){
  body header.header .header-top > div + div{margin-left:1rem;}
  body .header-logo img{max-width:10.5rem;}
  body .header-book .btn,body .header-book a{padding-left:.8rem;padding-right:.8rem;font-size:1.2rem;}
}
@media (max-width:339px){
  body .header-logo img{max-width:8.5rem;}
  body .header-book .btn,body .header-book a{font-size:1.1rem;padding-left:.6rem;padding-right:.6rem;}
}
/* Поле адреса: полоса прокрутки справа не нужна, прокрутка колесом/пальцем остаётся */
body .geo_json-delivery-field textarea.form-control{scrollbar-width:none;resize:none;}
body .geo_json-delivery-field textarea.form-control::-webkit-scrollbar{display:none;}

/* Шаг 12 (23.09.2026, 545/830–834). Крестик закрытия окон: кольцо было бордовым цветом прежнего заведения — теперь охра бренда */
body .fancybox-close-small::after,
body .popup .fancybox-close-small::after{box-shadow:0 0 2px 1px rgba(196,144,79,.65)!important;}
/* Корзина на телефоне: заголовок крупнее и дальше от первой строки, крестик закрытия меньше — не спорит с крестиком удаления */
@media (max-width:989px){
  body .main-cart .main-cart-content .h3{font-size:2.6rem;line-height:1.2;margin-bottom:3.2rem;}
  body .main-cart .mobil-close .fancybox-close-small{transform:scale(.72);transform-origin:100% 0;}
}

/* Шаг 13 (23.09.2026, 545/835–844).
   Оформление заказа: у галочки согласия заголовок убран, как во всплывающих формах, — кольцо встаёт в строку с текстом согласия */
body form.cart_form .order_form_param26{display:flex;align-items:flex-start;}
body form.cart_form .order_form_param26 .form-group-checkbox{flex:0 0 auto;}
body form.cart_form .order_form_param26 .form-group-checkbox label{font-size:0;line-height:0;}
body form.cart_form .order_form_param26 .form-group-checkbox label span{display:none;}
body form.cart_form .order_form_param26 .order_form_param_text{flex:1 1 auto;margin:0;}
/* Кольца выбора (оплата, доставка, опции блюда): при переносе текста кольцо стоит по первой строке, а не между строк */
body form.cart_form .form-group-radio label,
body form.cart_form .form-group-checkbox label,
body .main-cart-content .form-group-radio label,
body .fancybox-slide.shop-item-ajax .id-content .options-block .form-group-checkbox label{align-items:flex-start;}
/* Подвал на телефоне: один кот на рыбе, крупно по центру, между кнопками и адресом (как иллюстрация в подвале Карбонары) */
@media (max-width:767px){
  body .footer .footer-contacts > .footer-contacts-item:first-child{display:none;}
  body .footer .footer-contacts > .footer-contacts-item:last-child{order:-1;flex:0 0 100%;max-width:100%;margin:1rem 0 3rem;}
  body .footer .footer-leopard img.footer-illustration{width:min(80vw,34rem);}
}
/* Полоса разделов на телефоне — от края до края экрана и до прилипания (прилипшая уже была во всю ширину) */
@media (max-width:575px){
  body .category-menu-sticky:not(.is-sticky) > .category-menu{margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;width:auto!important;}
}
/* Шапка на телефоне: логотип крупнее, промежутки между меню, логотипом, кнопкой и трубкой одинаковые */
@media (max-width:575px){
  body header.header .header-top{display:flex;align-items:center;justify-content:space-between;}
  body header.header .header-top > div,
  body header.header .header-top > div + div{margin-left:0!important;margin-right:0!important;flex:0 0 auto;}
  body header.header .header-top .header-logo img{max-width:none;max-height:none;width:min(31vw,15rem);height:auto;}
  body header.header .header-top .header-book{width:auto;}
}
@media (max-width:339px){ body header.header .header-top .header-logo img{width:29vw;} }
/* кот по центру: шаблон сдвигал блок иллюстрации на 63 px вправо (у Карбонары там был леопард) */
@media (max-width:767px){
  body .footer .footer-contacts > .footer-contacts-item:last-child{padding-left:0;padding-right:0;}
  body .footer .footer-leopard{left:0!important;right:auto;}
}
/* Карточки блюд на телефоне: поля до края экрана = промежутку между карточками (6 px) */
@media (max-width:575px){
  body .category-items > .shop-pane{margin-left:calc(50% - 50vw + 3px)!important;margin-right:calc(50% - 50vw + 3px)!important;width:auto!important;max-width:none!important;}
}
/* «Доставка до адреса» и «Самовывоз» (корзина и оформление заказа): оба кольца по верхней строке, на одном уровне */
body ul:has(> li input[type=radio][name=deliveryType]),
body .main-cart-content .delivery-choose,
body .main-cart-content .delivery-choose ul{align-items:flex-start!important;}
/* Поля адреса — тем же кеглем, что подписи способа доставки */
body .form-group[class*=order_form_param] input.form-control,
body .form-group[class*=order_form_param] textarea.form-control{font-size:1.8rem!important;}
body .main-cart-content .geo_json-delivery-field textarea.form-control,
body .main-cart-content .geo_json-delivery-field input.form-control{font-size:1.7rem!important;}
/* Корзина на телефоне: «Мой заказ:» на одной линии с крестиком закрытия */
@media (max-width:989px){ body .main-cart .main-cart-content .h3{margin-top:-10px;} }
/* Подвал на телефоне: адрес, часы, телефон — промежутки в 1,5 раза меньше; внизу поле, как от черты до первой ссылки */
@media (max-width:767px){
  body .footer .footer-contacts > .footer-contacts-item:not(:first-child):not(:last-child){padding-top:5.5px;padding-bottom:5.5px;}
  body .footer .footer-bottom-menu{padding-bottom:14px;}
}
/* Кольца способов оплаты — по одной вертикали с кольцом согласия и доставки (шаблон сдвигал их на 1rem) */
body .payments .form-group-radio label{margin-left:0!important;}
/* Текст согласия в оформлении заказа — как подпись «Не перезванивать…»: тот же кегль и цвет, без бледности шаблона */
body form.cart_form .order_form_param26 .order_form_param_text.privacy_field{font-size:inherit;font-size:var(--zm-p24-fs,1.5rem);line-height:1.2;opacity:1;color:var(--color2);}
body form.cart_form .order_form_param26 .privacy_field a{font-size:inherit;color:inherit;margin:0;}
/* Всплывающее меню на телефоне и планшете (545/861, вариант 1): во весь экран под шапкой, молочный фон, пункты шрифтом Alice,
   внизу телефон, адрес, часы и кот. Блок контактов дописывает скрипт (custom/my/js/scripts.js), высоту шапки — тоже он (--zm-hh) */
@media (max-width:991px){
  body .mobile-menu.opened{position:fixed!important;left:0!important;top:var(--zm-hh,67px)!important;width:100vw!important;max-width:none!important;
    height:calc(100vh - var(--zm-hh,67px))!important;height:calc(100dvh - var(--zm-hh,67px))!important;
    background:#F4F1EC;display:flex!important;flex-direction:column;align-items:center;padding:2.4rem 2.4rem 2rem;box-shadow:none;overflow:auto;}
  body .mobile-menu.opened .mobile-menu-item{width:100%;max-width:30rem;text-align:center;padding:1.3rem 0;border-bottom:1px solid rgba(196,144,79,.35);
    font-family:'Alice',Georgia,'Times New Roman',serif;font-size:2.6rem;line-height:1.2;color:var(--color2);}
  body .mobile-menu.opened .mobile-menu-item:has(+ .zm-mm-foot),
  body .mobile-menu.opened .mobile-menu-item:last-child{border-bottom:0;}
  body .mobile-menu.opened .mobile-menu-item a{color:var(--color2);font:inherit;text-decoration:none;padding:0!important;margin:0!important;display:block;}
  body .mobile-menu.opened .mobile-menu-item.active{color:var(--color1);}
  body .mobile-menu .zm-mm-foot{display:none;}
  body .mobile-menu.opened .zm-mm-foot{margin-top:auto;padding-top:2.4rem;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;}
  body .zm-mm-tel{font-size:2rem;color:var(--color2);text-decoration:none;}
  body .zm-mm-info{font-size:1.5rem;color:#8A8A8A;}
  body .zm-mm-ill{width:16rem;height:auto;margin-top:.4rem;}
}
@media (max-height:600px) and (max-width:991px){ body .zm-mm-ill{display:none;} }

/* Опции блюда как описание (545/920, 24.09.2026): двоеточие после заголовка, названия и цены опций — шрифт, кегль и цвет описания блюда */
body .fancybox-slide.shop-item-ajax .id-content .options-block .h4::after{content:':';}
body .fancybox-slide.shop-item-ajax .id-content .options-block .form-group-checkbox label,
body .fancybox-slide.shop-item-ajax .id-content .options-block .price{font-family:'Madefor',-apple-system,'Segoe UI',Arial,sans-serif;font-style:normal;font-weight:400;color:var(--color1);font-size:1.7rem;line-height:1.35;}
@media (max-width:575px){
  body .fancybox-slide.shop-item-ajax .id-content .options-block .form-group-checkbox label,
  body .fancybox-slide.shop-item-ajax .id-content .options-block .price{font-size:1.5rem;}
}

/* Подвал на ПК (545/924–925): под ссылками то же поле, что от черты до ссылок, и без белой полосы под подвалом
   (нижний отступ списка ссылок выпадал за цветной фон) */
body .footer .footer-bottom-menu{padding-bottom:14px;}

/* Страница «Заказ оформлен» (545/948): как 404 — крупная коралловая надпись, иллюстрация из брендбука, телефон, две кнопки */
body .zm-done__hi{font-family:'Alice',Georgia,'Times New Roman',serif;font-size:9rem;line-height:1;color:var(--brand-coral,#EA9071);margin:0 0 1.6rem;white-space:nowrap;}
body .zm-done .zm-done__ill{width:22rem;height:auto;}
body .zm-done__tel{display:inline-block;font-size:2.6rem;color:var(--color1);text-decoration:none;margin:0 0 2.4rem;border-bottom:1px solid rgba(196,144,79,.5);}
@media (max-width:575px){ body .zm-done__hi{font-size:4.6rem;} body .zm-done .zm-done__ill{width:16rem;} body .zm-done__tel{font-size:2.2rem;} }

/* «Заказ оформлен» (545/951): текст из админки — абзацы без лишних полей, телефон в тексте крупно, как в варианте; блок 13 без своих ограничений ширины */
body .zm-done__text{max-width:52rem;margin:0 auto 2.4rem;}
body .zm-done__text p{margin:0 0 1rem;}
body .zm-done__text > div{max-width:none!important;}
body .zm-done__text a[href^="tel:"]{display:inline-block!important;font-size:2.6rem;line-height:1.2;color:var(--color1);text-decoration:none!important;border:0!important;border-bottom:1px dotted var(--color1)!important;padding-bottom:.3rem;margin-top:.6rem;background:none!important;box-shadow:none!important;}
body .zm-done__text a[href^="tel:"]::before,body .zm-done__text a[href^="tel:"]::after{display:none!important;}
@media (max-width:575px){ body .zm-done__text a[href^="tel:"]{font-size:2.2rem;} }

/* Кот на рыбе в подвале (545/958): на телефоне хвост рыбы плавно покачивается, на ПК картинка неподвижна */
body .footer .zm-catfish{display:contents;}
body .footer .zm-catfish__body,body .footer .zm-catfish__tail{display:none;}
@media (max-width:767px){
  /* 545/974: размер держит сам блок (квадрат), исходная картинка на телефоне не грузится — иначе ленивая подгрузка пропускала слои */
  body .footer .zm-catfish{display:block;position:relative;width:min(80vw,34rem);aspect-ratio:1/1;margin:0 auto;}
  body .footer .zm-catfish img.footer-illustration{display:none!important;}
  body .footer .zm-catfish__body,body .footer .zm-catfish__tail{display:block;position:absolute;left:0;top:0;width:100%;height:auto;}
  body .footer .zm-catfish__tail{transform-origin:23% 57%;animation:zm-tail 1.6s ease-in-out infinite alternate;will-change:transform;}
}
/* 545/963: хвост виляет из стороны в сторону — к зрителю и от зрителя (поворот вокруг вертикальной оси у основания хвоста) */
@keyframes zm-tail{from{transform:perspective(420px) rotateY(-38deg);}to{transform:perspective(420px) rotateY(38deg);}}
@media (prefers-reduced-motion:reduce){ body .footer .zm-catfish__tail{animation:none;} }

/* «Заказ оформлен» на телефоне (545/977): отступ от шапки до «Поднять якоря!» вдвое меньше */
@media (max-width:767px){ body .zm-empty.zm-done{padding-top:0;margin-top:-1.7rem;} }

/* 545/998-999: на ПК заголовок «Ваш заказ» на одной линии с «Оформление заказа» (только страница корзины) */
@media (min-width:992px){body:has(form.cart_form) .main-cart .main-cart-content{padding-top:calc(5.5rem + 1.5rem);}}
@media (min-width:992px) and (max-width:1279px){body:has(form.cart_form) .main-cart .main-cart-content{padding-top:calc(5.5rem + 12.5px);}}
/* ==== КОНЕЦ: слой оформления «За морем» / кафе №8 ==== */

/* 545/2087 11.10.2026: иллюстрации подвала скрыты — убираем высоту, зарезервированную под них на широких экранах */
@media (min-width:1200px){
  body .footer .footer-contacts{min-height:0;padding-bottom:32px;}
}

/* 545/2107 11.10.2026: в формах «Заказать звонок» и «Забронировать стол» убран повтор текста о согласии под кнопкой — согласие остаётся у галочки */
.feedback_form .privacy_field{display:none !important;}

/* 545/3030 (13.10.2026): карта 2ГИС в подвале — серая целиком, как была Google */
body .footer .footer-map .zm-map{height:400px;width:100%;position:relative;z-index:0;isolation:isolate;filter:grayscale(1) contrast(1.05);background:#eee;}
/* 545/3040, 545/3043: подпись «Вход в Кафе №8» на карте — 16px (24px ÷ 1,5) */
body .footer .footer-map .leaflet-tooltip.zm-entry{font-size:16px;line-height:1.2;padding:8px 11px;border-radius:5px;}
/* 545/3049: уголок плашки «Кафе №8» на 30% длиннее (6 → 8 px), остриё по-прежнему точно на входе */
body .footer .footer-map .leaflet-tooltip-left.zm-entry{margin-left:-8px;}
body .footer .footer-map .leaflet-tooltip-left.zm-entry:before{border-left-width:8px;margin-right:-14px;}
/* 545/3052–3054: вся плашка «Кафе №8» вместе с уголком обведена чёрным контуром 1 px; уголок = чёрный треугольник + белый внутри, остриё на входе */
body .footer .footer-map .leaflet-tooltip-left.zm-entry{margin-left:-10px;border:1px solid #000;}
body .footer .footer-map .leaflet-tooltip-left.zm-entry:before,
body .footer .footer-map .leaflet-tooltip-left.zm-entry:after{content:"";position:absolute;top:50%;right:0;width:0;height:0;pointer-events:none;border-style:solid;border-color:transparent;border-right-width:0;}
body .footer .footer-map .leaflet-tooltip-left.zm-entry:before{border-width:8px 0 8px 10px;border-left-color:#000;margin-top:-8px;margin-right:-10px;}
body .footer .footer-map .leaflet-tooltip-left.zm-entry:after{border-width:6.5px 0 6.5px 8px;border-left-color:#fff;margin-top:-6.5px;margin-right:-8px;}
/* 545/3072: выбранный пункт меню шапки того же размера, что и остальные — ни при наведении, ни при нажатии размер не меняется */
body .header-menu-item.active,body .header-menu-item.active a,body .header-menu-item a:active,body .header-menu-item a:focus{font-size:1.9rem!important;transform:none!important;}
@media (min-width:992px) and (max-width:1199px){
  body .header-menu-item.active,body .header-menu-item.active a,body .header-menu-item a:active,body .header-menu-item a:focus{font-size:1.45rem!important;}
}
/* 545/3074: всплывающие окна — кружок крестика с одинаковым отступом сверху и справа (12 px), углы окна скруглены как кружок крестика (радиус 16,5 px при диаметре 33 px) */
body .popup .fancybox-close-small::after{top:12px!important;right:12px!important;}
body .popup.fancybox-content{border-radius:16.5px!important;}
/* 545/3078: полоса разделов меню — шрифт как у меню шапки (19 px на ПК от 1200 px; было 20) */
@media (min-width:1200px){body .category-menu a,body .category-menu > ul > li > a{font-size:1.9rem!important;}}

/* 545/3082, 3087: способы доставки (3 шт.) — в одну колонку, в боковой корзине и в оформлении заказа */
body .delivery-choose.d-flex{flex-direction:column;flex-wrap:nowrap;row-gap:14px;}
body .delivery-choose.d-flex .delivery-choose-item{flex:0 0 auto;margin-left:0!important;}
body .delivery-types ul{flex-direction:column;flex-wrap:nowrap;row-gap:14px;}
body .delivery-types ul li{flex:0 0 auto;margin-left:0!important;}
body .delivery-tabs textarea[data-zk]{background:#EEECEB;cursor:default;height:3.5rem!important;min-height:0!important;padding:.75rem 1.5rem!important;line-height:1.8rem!important;overflow:hidden!important;resize:none!important;white-space:nowrap;}
/* 545/3094-3096: согласие под оплатой; при ошибке — скруглённая красная рамка */
body .zm-consent-moved{margin:.8rem 0 2.4rem;}
body .zm-consent-moved > .form-group{width:auto!important;max-width:none!important;margin:0 -1.4rem!important;padding:1rem 1.4rem!important;border:1px solid transparent;border-radius:.8rem;transition:border-color .2s;}
body .zm-consent-moved > .form-group:has(input.error_input:not(:checked)){border-color:#D9534F;}
body .zm-consent-moved .order_form_param_text{margin:0!important;}
body form.cart_form .errors.zm-kv-error{color:#ff4a0b;margin:-6px 0 12px;width:100%;} /* 545/3490: ровно посередине между полями и «Оставить заказ у двери» (было margin:6px 0 0) */
body .delivery-info .delivery-info-text, body .delivery-info .delivery-info-text *{font-weight:400!important;} /* 545/3100 */
body form.cart_form .zm-door .form-group-checkbox label{font-size:1.8rem!important;line-height:1.2!important;} /* 545/3106: как способы оплаты */
/* 545/3108: равные видимые отступы в блоке адреса (как «Адрес доставки» → поле) */
body form.cart_form .delivery-tabs .order_form_param12{margin-bottom:18px!important;}
body form.cart_form .delivery-tabs .zm-door{margin-bottom:17px!important;}
body form.cart_form .zm-door .form-group-checkbox label{color:#C4904F!important;} /* 545/3110: подпись цвета кнопки, кружок серый */
@media (max-width:575px){body form.cart_form .delivery-tabs .order_form_param12{margin-bottom:16px!important;}body form.cart_form .delivery-tabs .zm-door{margin-top:-1px;margin-bottom:15px!important;}}
/* 545/3111-3113: карта — без полей при нажатии и без перехватчика касаний шаблона (щипок двумя пальцами масштабирует карту) */
body .footer .footer-map.active{padding:0!important;}
body .footer .footer-map:has(.zm-map)::after{display:none!important;}

/* 545/3120: белая полоса 7px под картой на телефоне — отступ .wrapper выпадал за подвал; держим его внутри подвала */
body .footer .footer-content{display:flow-root;}
/* 545/3123: меню шапки и полоса разделов — размер шрифта как у телефона в шапке (18 px на ПК от 1200; на 992–1199 меню = телефону 1.5rem) */
@media (min-width:1200px){
  body .header-menu-item,body .header-menu-item a,body .header-menu-item a:hover,
  body .header-menu-item.active,body .header-menu-item.active a,body .header-menu-item a:active,body .header-menu-item a:focus{font-size:1.8rem!important;}
  body .category-menu a,body .category-menu > ul > li > a{font-size:1.8rem!important;}
}
@media (min-width:992px) and (max-width:1199px){
  body .header-menu-item,body .header-menu-item a,body .header-menu-item a:hover,
  body .header-menu-item.active,body .header-menu-item.active a,body .header-menu-item a:active,body .header-menu-item a:focus{font-size:1.5rem!important;}
}

/* 545/3137: шапка на ПК ниже на 10% (110 -> 99 px на 1920): строка шапки 9rem -> 7.9rem */
@media (min-width:992px){:root{--headerHeight:9.9rem;}body header.header .header-top{min-height:7.9rem;}}
/* 545/3199–3200: текст способа получения (самовывоз и др.) в «Ваш заказ» — как плашка подарка .delivery-hint */
body .main-cart-content .delivery-info .delivery-info-text{background:var(--color9);border-radius:var(--zm-radius);padding:1.2rem 1.2rem;}
body .main-cart-content .delivery-info .delivery-info-text,
body .main-cart-content .delivery-info .delivery-info-text *{color:var(--color2);font-size:1.6rem;line-height:1.3;text-align:left;}
/* 545/3202: полоса разделов меню на ПК 17 px (было 18); меню шапки не трогаем */
@media (min-width:1200px){body .category-menu a,body .category-menu > ul > li > a{font-size:1.7rem!important;}}

/* 545/3304: баннер под шапкой на главной — приглашение жителям КД «Ленина 8» на страницу /8/ */
.zm-kd-banner{position:relative;}
.zm-kd-promo{position:absolute;left:0;top:0;bottom:0;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2rem;padding:0 4.5%;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.4) 45%,rgba(0,0,0,0) 80%);border-radius:inherit;pointer-events:none;}
.zm-kd-promo__text{margin:0;max-width:52rem;color:#fff;font-size:2rem;line-height:1.55;}
body .zm-kd-banner .zm-kd-promo a.zm-kd-promo__btn{pointer-events:auto;width:auto!important;max-width:none!important;padding:0 2.4rem!important;text-transform:uppercase;}
@media (max-width:575px){
  .zm-kd-promo{position:static;background:var(--color9);padding:1.6rem;border-radius:var(--zm-radius);margin-top:1rem;gap:1.2rem;}
  .zm-kd-promo__text{color:var(--color2);font-size:1.6rem;}
}
/* 545/3371 (14.10.2026): страница оформления заказа — блок «Ваш заказ» шире, фото блюда целиком */
@media (min-width:992px){
  body:has(input[name="deliveryType"]) .main-right{width:40rem;max-width:40rem;}
  body:has(input[name="deliveryType"]) .main-cart{flex:0 0 40rem;width:40rem;}
}
/* 545/3378: на ПК фото блюда в блоке «Ваш заказ» целиком на всех страницах; правый край содержимого блока — по краю телефона в шапке */
@media (min-width:992px){
  body .main-cart-content .cart-table-row .image{flex:0 0 58px;}
  body .main-cart-content .cart-table-row .image img{object-fit:contain;background:#fff;}
}
@media (min-width:1366px){
  body:not(:has(input[name="deliveryType"])) .main-cart .main-cart-content{padding-right:5px;}
}
@media (min-width:992px) and (max-width:1365px){
  body:not(:has(input[name="deliveryType"])) .main-cart{left:auto;right:20px;}
  body:not(:has(input[name="deliveryType"])) .main-cart .main-cart-content{padding-right:0;}
}

/* 545/3383: переносы строк в тексте баннера КД — на ПК и планшете; на телефоне текст идёт сплошным */
@media (max-width:575px){ .zm-kd-promo__text br.zm-br{display:none;} }

/* 545/3422: на телефоне фото блюда в блоке «Ваш заказ» тоже целиком в рамке */
@media (max-width:991.98px){
  body .main-cart-content .cart-table-row .image img{object-fit:contain;background:#fff;}
}

/* 545/3536: иллюстрации пустой корзины, 404 и «Заказ оформлен» скрыты, разметка и картинки на месте — вернуть: удалить это правило */
body .zm-empty__ill{display:none!important;}
/* 545/3538: телефон в пустой корзине — ссылка с пунктирным подчёркиванием, как на странице «Заказ оформлен» */
body .zm-empty__meta{line-height:1.6;}
body .zm-empty__meta a[href^="tel:"]{color:var(--color1);border-bottom:1px dotted var(--color1);padding-bottom:.15rem;}
body .zm-empty__meta a[href^="tel:"]:hover{border-bottom-style:solid;}
/* 545/3545: «Заказ оформлен» — отступ шапка→«Спасибо!» в 1,5 раза больше (было 90 px на ПК, 37 px на телефоне) */
body .zm-empty.zm-done{padding-top:8.5rem;}
@media (max-width:767px){ body .zm-empty.zm-done{padding-top:.35rem;margin-top:0;} }
/* 545/3545: отступ от черты под «Заказ оформлен» до текста равен отступу «Спасибо!» → заголовок (по видимым краям букв) */
body .zm-done .zm-empty__title{margin-bottom:2.9rem;}
@media (max-width:575px){ body .zm-done .zm-empty__title{margin-bottom:1.85rem;} }
/* 545/3550: подпись пустой корзины — тем же шрифтом, что текст над кнопкой, телефон отдельной строкой */
body .zm-empty__meta{font-size:1.8rem;line-height:1.5;color:var(--color2);}

/* 4068: «Недоступно» на телефоне — по центру плашки: span был inline на базовой линии крупного шрифта плашки (19.8px) и уходил на 2px вниз */
body .shop-item .title-price .title-no-buy{display:block;}
/* 4068: масштаб щипком на телефоне — слайдер фото блюд (slick, touch-action:pan-y) гасил щипок на фото; листание слайдера пальцем не меняется */
body .slick-slider{touch-action:pan-y pinch-zoom;}

/* ZM-KD-BLOCK-20261016 (545/4285): телефон, главная — блок КД под баннером: без отступа под фото, белый фон, от кнопки до полосы разделов 10 px */
@media (max-width:575px){
  body .main-content-banner.zm-kd-banner:has(> .zm-kd-promo){margin-bottom:0;}
  body .zm-kd-banner .zm-kd-promo{margin-top:0;background:#fff;padding-bottom:10px;}
}
@media (max-width:575px){
  body .zm-kd-banner:has(> .zm-kd-promo) .main-slider{background:#fff;}
}
/* ZM-MENU-CROSS-20261016 (545/4298–4299): крестик закрытия мобильного меню — толщина линий как у полос гамбургера (5/46 высоты значка), габарит как у гамбургера по высоте */
@media (max-width:991px){
  body header .header-bars{position:relative;}
  body header .header-bars.opened img:last-child{display:none!important;}
  body header .header-bars.opened::before,
  body header .header-bars.opened::after{content:"";position:absolute;left:50%;top:50%;width:calc(2.3rem * 1.41421);height:calc(2.3rem * 5 / 46);background:#000;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none;}
  body header .header-bars.opened::after{transform:translate(-50%,-50%) rotate(-45deg);}
}
/* ZM-FOOT-LINKS-20261016 (545/4315–4319): подвал на телефоне — адрес и телефон ссылками, подчёркивание как у ссылок первого экрана /cafe/ (1px точками, молочный 60 %); ПК без изменений */
@media (max-width:991px){
  body .footer a.zm-foot-link{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(238,236,235,.6);}
}

/* ZM-DOTS-HALF-20261016 (545/4420–4421): точки листания фото в карточках блюд на телефоне — диаметр вдвое меньше (14→7 px), промежуток вдвое меньше (12→6 px). ПК без изменений. */
@media (max-width:575px){
  body .shop-item .slick-dots li{width:7px;height:7px;margin:0 3px;}
  body .shop-item .slick-dots li button,body .shop-pane .shop-item .slick-dots li.slick-active button{width:7px;height:7px;border-width:1.5px;}
}
/* ZM-CARD-GAPS-20261016 (545/4423–4426): открытая карточка блюда на телефоне — видимые отступы «описание → КБЖУ» и «перед второй группой опций» = «КБЖУ → Выберите опции» (29 px); пустота под последней опцией до плашки с ценой вдвое меньше (94,5 → 47 px). */
@media (max-width:575px){
  body .fancybox-content .id-options > .id-params{padding-top:1.5px;}
  body .fancybox-content .options-block .options-block-category + .h4{margin-top:17.5px;}
  body .fancybox-slide.shop-item-ajax.options-ajax div.id-content{padding-bottom:32.5px !important;}
}

/* ZM-MENU-DESC-UNDER-TITLE-20261016 (545/4438–4439): в меню на телефоне описание сразу под названием. Пустота была не из текста (пустых строк в описаниях нет), а от растяжения блока названия до высоты соседней карточки в ряду. Цена остаётся внизу карточки. */
@media (max-width:575px){
  body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box{justify-content:flex-start;}
  body .shop-pane .shop-item .shop-item-content .top.shop-item-content__box > .title-block{flex-grow:0;}
}

/* CAT-LIST-NOJUMP-20261016 (545/4435–4436): заголовок первого раздела не прыгает при загрузке. Отступ 3rem над списком разделов действовал, пока полосу разделов не обернёт скрипт закрепления (≈ через 1–4 с), потом пропадал — содержимое прыгало вверх. Оставлено итоговое положение. */
body .category-menu + .category-list{margin-top:0;}

/* ZM-MENU-PRICE-PAD-20261016 (545/4444–4445): в меню на телефоне цена не прижата к низу карточки — снизу отступ 13 px, как слева у текста. На главной этот ряд на телефоне скрыт, там без изменений. */
@media (max-width:575px){
  body .shop-pane .shop-item .shop-item-content .bottom-button{padding-bottom:13px;}
}

/* ZM-MOBMENU-SLIDE-20261016 (545/4447–4449): меню-гамбургер на телефоне и планшете выезжает из-под шапки плавно (0,6 с) и уезжает обратно по той же траектории. Раньше оформление меню действовало только в открытом состоянии и при закрытии слетало сразу — меню схлопывалось «как попало». Теперь оформление постоянное, меняется только положение. */
@media (max-width:991px){
  body .mobile-menu{position:fixed!important;left:0!important;width:100vw!important;max-width:none!important;
    height:calc(100vh - var(--zm-hh,67px))!important;height:calc(100dvh - var(--zm-hh,67px))!important;
    background:#F4F1EC;display:flex!important;flex-direction:column;align-items:center;padding:2.4rem 2.4rem 2rem;box-shadow:none;overflow:auto;
    top:calc(var(--zm-hh,67px) - 100vh)!important;top:calc(var(--zm-hh,67px) - 100dvh)!important;visibility:hidden;
    transition:top .6s cubic-bezier(.4,0,.2,1),visibility 0s linear .6s!important;}
  body .mobile-menu.opened{top:var(--zm-hh,67px)!important;visibility:visible;transition:top .6s cubic-bezier(.4,0,.2,1),visibility 0s linear 0s!important;}
  body .mobile-menu .mobile-menu-item{width:100%;max-width:30rem;text-align:center;padding:1.3rem 0;border-bottom:1px solid rgba(196,144,79,.35);
    font-family:'Alice',Georgia,'Times New Roman',serif;font-size:2.6rem;line-height:1.2;color:var(--color2);}
  body .mobile-menu .mobile-menu-item:has(+ .zm-mm-foot),
  body .mobile-menu .mobile-menu-item:last-child{border-bottom:0;}
  body .mobile-menu .mobile-menu-item a{color:var(--color2);font:inherit;text-decoration:none;padding:0!important;margin:0!important;display:block;background:none;}
  body .mobile-menu .mobile-menu-item.active{color:var(--color1);}
  body .mobile-menu .zm-mm-foot{margin-top:auto;padding-top:2.4rem;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;}
}
@media (max-width:991px) and (prefers-reduced-motion:reduce){ body .mobile-menu,body .mobile-menu.opened{transition:none!important;} }

/* ZM-TITLE-BTN-GAP-20261016 (545/4475–4476): главная, телефон — от названия блюда до кнопки видимый отступ как от фото до названия (17,5 px; было 7). */
@media (max-width:575px){
  body .shop-pane .shop-item .title-price.d-block.d-sm-none{margin-top:11px;}
}
/* ZM-MENU-DESC-PRICE-GAP-20261016 (545/4478–4479): меню, телефон — от описания до цены видимый отступ как от цены до низа карточки (31,5 px; было 42,5). На главной описание на телефоне скрыто, там без изменений. */
@media (max-width:575px){
  body .shop-pane .shop-item .shop-item-content .description{margin-bottom:3.4px;}
}
/* ZM-LANDSCAPE-HEADER-20261016 (545/4481–4482): горизонтальный телефон — белый промежуток под содержимым шапки как над ним (9 px): шапка 99 → 54 px. */
@media (orientation:landscape) and (max-height:500px){
  :root{--headerHeight:54px;}
}

/* ZM-MENU-CARD-BAR-20261017 (545/4521–4522): открытая карточка меню на телефоне — ровно в экран, без прокрутки; полоса цены в потоке у низа, не fixed (при скрытии адресной строки отставала, из-под неё выглядывала страница) */
@media (max-width:575px){
html body .fancybox-slide.zm-menu-card .fancybox-content{padding-bottom:0!important;min-height:100%;width:100%;display:inline-flex!important;flex-direction:column;vertical-align:top;overflow-x:hidden}
html body .fancybox-slide.zm-menu-card .fancybox-content .id-content{padding-bottom:0!important;flex:1 0 auto;display:flex;flex-direction:column}
.zm-menu-card .fancybox-content .id-image{height:auto!important;aspect-ratio:auto!important;max-height:none!important}
html body .fancybox-slide.zm-menu-card .id-options{margin-top:auto;padding-bottom:0!important}
.zm-menu-card .id-options-bottom{position:relative!important;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;width:auto!important;transform:none!important;margin:0 -13.5px!important}
.zm-menu-card .id-image .big-img{object-fit:cover;height:var(--zm-img-h,auto)}
.fancybox-container:has(.zm-menu-card)::after{content:"";position:absolute;left:0;right:0;top:100%;height:50vh;background:#eeeceb}
}

/* ZM-FOOT-END-EQUAL-20261017 (545/4519): под последней строкой подвала отступ как над ней (от линии до ссылок): телефон 38,5, горизонталь 37, ПК 41,5 */
body .footer .footer-bottom-menu{padding-bottom:17px;}
@media (max-width:575px){body .footer .footer-bottom-menu{padding-bottom:11px;}}

/* ZM-CARD-PAGE-LOCK-20261017: прокрутка карточки не передаётся странице */
.fancybox-slide{overscroll-behavior:contain}
/* ZM-CART-LABELS-AS-H4-20261017 (545/4576–4577): «Комментарий к заказу» и «Количество приборов» — размером как «Адрес доставки» (2,2rem: 18 px телефон, 22 px ПК) */
body form.cart_form .order_form_param11 > .infofield,
body form.cart_form .count-field > .infofield{font-size:2.2rem!important;line-height:1!important;}
@media (max-width:575px){ body form.cart_form .order_form_param11 > .infofield, body form.cart_form .count-field > .infofield{font-size:2rem!important;} }
/* ZM-CART-REMOVE-UNDER-CLOSE-20261017 (545/4579–4580): окно «Ваш заказ» на телефоне — крестики удаления блюд на одной вертикали с крестиком закрытия окна (центр был левее на 13,5 px) */
@media (max-width:575px){ body .main-right .main-cart-content .remove{position:relative;left:13.5px;} }
/* ZM-CART-FONTS-AS-PC-20261017 (545/4619–4624, вариант 1): оформление заказа на телефоне в пропорциях ПК.
   ПК: заголовки Alice 22, «Комментарий»/«Приборы» 22, подписи Кв./офис…Этаж 18, варианты 18.
   Телефон (1rem = 9 px): заголовки 18 → 19,8; «Комментарий»/«Приборы» 18 → 19,8; Кв./офис…Этаж 12,6 → 16,2; варианты 16,2 без изменений. */
@media (max-width:575px){
  body form.cart_form .h4{font-size:2.2rem!important;}
  body form.cart_form .order_form_param11 > .infofield,
  body form.cart_form .count-field > .infofield{font-size:2.2rem!important;}
  body form.cart_form .cart-addr .infofield{font-size:1.8rem!important;line-height:1.2!important;}
}
/* ZM-CART-FONTS-STEP-20261017 (545/4647): оформление заказа на телефоне — все тексты формы на один шаг шкалы крупнее (1rem = 9 px).
   Заголовки 19,8 → 21,6; варианты (доставка, время, оплата, «Оставить заказ у двери») 16,2 → 18; 
   «Не перезванивать…» 13,5 → 14,4; «— улица и дом:» 14,4 → 15,3; согласие 13,5 → 14,4; поля ввода 16,2 → 18; «Сегодня» 16,2 → 18;
   часы 14,4 → 15,3; текст самовывоза 14,4 → 15,3; кнопка «Оформить заказ» 14,4 → 15,3.
   «Комментарий к заказу:» и «Количество приборов» без изменений — 19,8 (2,2rem). Кв./офис…Этаж оставлены 16,2 — при 18 не помещаются над своими полями; даты в выборе времени оставлены 12,6 — при 13,5 третья дата обрезается. ПК без изменений. */
@media (max-width:575px){
  body form.cart_form .h4{font-size:2.4rem!important;}
  body form.cart_form .form-group-radio label{font-size:2rem!important;}
  body form.cart_form .zm-door .form-group-checkbox label{font-size:2rem!important;}
  body form.cart_form .order_form_param24 .form-group-checkbox label{font-size:1.6rem!important;}
  body form.cart_form .cart-addr .infofield{font-size:1.8rem!important;} /* остаются 16,2: при 18 «Домофон:» шире своего поля (87 > 78 px) и слипается с «Подъезд:» */
  body form.cart_form .order_form_param18 .order_form_param_text,
  body form.cart_form .order_form_param18 .order_form_param_text p{font-size:1.7rem!important;}
  body form.cart_form .order_form_param26 .order_form_param_text.privacy_field,
  body form.cart_form .order_form_param26 .privacy_field p,
  body form.cart_form .order_form_param26 .privacy_field a{font-size:1.6rem!important;}
  body form.cart_form .form-control,
  body form.cart_form .form-group[class*=order_form_param] input.form-control,
  body form.cart_form .form-group[class*=order_form_param] textarea.form-control{font-size:2rem!important;}
  body form.cart_form .delivery-time > a{font-size:2rem!important;}
  body form.cart_form .delivery-choose-time li{font-size:1.7rem!important;}
  body form.cart_form .delivery-tabs .text-block{font-size:1.7rem!important;}
  body form.cart_form input.btn.btn-yellow{font-size:1.7rem!important;}
  body form.cart_form .order_form_param11 > .infofield,
  body form.cart_form .count-field > .infofield{font-size:2.2rem!important;}
}

/* ZM-CART-COMMENT-AS-DOOR-20261017 (545/4665): на телефоне «Комментарий к заказу:» и «Количество приборов» — размер как у «Оставить заказ у двери» (18 px = 2rem) */
@media (max-width:575px){
  body form.cart_form .order_form_param11 > .infofield,
  body form.cart_form .count-field > .infofield{font-size:2rem!important;}
}

/* ZM-CLUB-TEXT-SIZE-20261017 (545/4713–4714): страница «Карта гостя» (/club/) — текст на телефоне размером как варианты оплаты в оформлении заказа (18 px = 2rem); на планшете и ПК размеры и так совпадают */
@media (max-width:575px){
  body main.text-page .text-block p.zm-club-text{font-size:2rem;line-height:1.4;}
}
/* ZM-CLUB-TEXT-PC-20261017 (545/4722): «Карта гостя» на ПК — текст размером как на странице «Кафе №8» (20 px, межстрочный 31 px) */
@media (min-width:992px){
  body main.text-page .text-block p.zm-club-text{font-size:20px;line-height:31px;}
}
/* ZM-FOOT-1024-20261017 (545/4726–4729): на 992–1199 шаблон держал низ подвала min-height — под последней строкой было 145 px вместо ~40, как на остальных ширинах */
@media (min-width:992px) and (max-width:1199px){ body .footer .footer-content .container-fluid{min-height:0;} }
/* ZM-MADEBY-20261017 (545/4730–4731): «Сделано у chuvakoff» под меню подвала, как на Карбонаре — с тем же шагом, что пункты меню */
body .footer .footer-bottom-menu ul.carb-made-by{margin-top:0;}
@media (max-width:991px){ body .footer .footer-bottom-menu ul.carb-made-by{margin-top:-12px;} } /* телефон и планшет: от меню до лейбла 18 px, как между строками меню */
/* ZM-OPT-GAP-PHONE-20261017 (545/4758, Павел): на телефоне перед «Выберите опции» после обязательных — тот же отступ, что над «Выберите обязательно» (26 px); ПК — 2rem, принято */
@media (max-width:575px){ .options-block .h4[data-zm-gap]{padding-top:0 !important;margin-top:15.4px !important;} }

/* ZM-OPT-GAP-PC-20261017 (545/4783, Александр): на ПК и планшете перед «Выберите опции» тот же отступ, что над «Выберите обязательно»: 2rem-0.6rem (≥1200: 33→27 px, 576–1199: 29,5→24,1) */
@media (min-width:576px){ .options-block .h4[data-zm-gap]{padding-top:1.4rem !important;} }

/* ZM-CLUB-LI-GAP-20261017 (545/4792-4793, Александр): Карта гостя — пункты преимуществ отдельными строками, между пунктами +20% межстрочного (телефон 18/25,2 → +5; ПК 20/31 → +6,2) */
.zm-club-text .zm-club-li{display:block;margin-top:.28em;}
@media (min-width:992px){ .zm-club-text .zm-club-li{margin-top:.31em;} }

/* ZM-FOOT-LINE-1024-20261017 (545/4736 п.3 → 4814 «да»): на 992–1250 линия подвала как на ПК — 47 px под адресом, 40 px до меню (было 14/36 на 992–1199, 45,5/36 на 1200–1250) */
@media (min-width:992px) and (max-width:1250px){ body .footer .footer-contacts{padding-bottom:33.5px !important;margin-bottom:31px !important;} }

/* ZM-CART-POPUP-FONTS-20261017 (545/4852) */
/* ZM-CART-POPUP-FONTS-20261017 (545/4852): окно «Ваш заказ» на телефоне — шрифты как на странице оформления заказа (1rem = 9 px).
   Эталон — form.cart_form на ≤575: заголовки Alice 2,4rem (21,6), варианты доставки/поля/подписи 2rem (18, межстрочный 1,2), текст самовывоза 1,7rem (15,3), кнопка 1,7rem (15,3).
   «Ваш заказ:» 23,4 → 21,6 (как «Способ доставки»); названия блюда и опции 13,5 → 16,2 (как подписи Кв./офис…Этаж: колонка узкая, при 18 на 360 даже короткое название в 3 строки); фото блюда больше не сжимается (было 48 px на 360) — 58 px, как на ПК; цены 16,2 → 18; кол-во 16,2 → 18; доставка/самовывоз/КД 15,3 → 18;
   «Рассчитать доставку до адреса:» и поле 15,3 → 18; «Заказ:», «Доставка до адреса:», «Итого:» 13,5 → 18; суммы 19,8 → 21,6; плашки самовывоза/подарка 14,4 → 15,3; кнопка 14,4 → 15,3.
   Только окно корзины (.main-right) на телефоне; форма оформления и ПК не меняются. Вернуть: удалить блок. */
@media (max-width:575px){
  body .main-right .main-cart .main-cart-content .h3{font-size:2.4rem;}
  body .main-right .main-cart-content .cart-table-row .image{flex-shrink:0;}
  body .main-right .main-cart-content .cart-table-row .title{font-size:1.8rem;line-height:1.2;}
  body .main-right .main-cart-content .cart-table-row .price{font-size:2rem;line-height:1.2;}
  body .main-right .main-cart-content .cart-table-row .cart_count input.form-control{font-size:2rem;}
  body .main-right .main-cart-content .form-group-radio label{font-size:2rem;line-height:1.2;}
  body .main-right .main-cart-content .geo_json-delivery-address::before{font-size:2rem;line-height:1.2;}
  body .main-right .main-cart-content .geo_json-delivery-field textarea.form-control,
  body .main-right .main-cart-content .geo_json-delivery-field input.form-control{font-size:2rem!important;}
  body .main-right .main-cart-content .cart-footer th,
  body .main-right .main-cart-content .cart-footer th .margin-bottom-15{font-size:2rem;line-height:1.2;}
  body .main-right .main-cart-content .cart-footer td,
  body .main-right .main-cart-content .cart-footer td.numbers,
  body .main-right .main-cart-content .cart-footer .cart-table-sum td{font-size:2.4rem;}
  body .main-right .main-cart-content .delivery-info .delivery-info-text,
  body .main-right .main-cart-content .delivery-info .delivery-info-text *,
  body .main-right .main-cart-content .delivery-hint,
  body .main-right .main-cart-content .delivery-hint p{font-size:1.7rem;}
  body .main-right .main-cart-content .cart-order-btn .btn{font-size:1.7rem;}
}

/* ZM-KD-BTN-OUTLINE-20261017 (545/4856–4857): телефон — кнопка «Заказать доставку в КД» контурная, как .zm-ghost; ПК не меняется */
@media (max-width:575px){
  body .zm-kd-banner .zm-kd-promo a.zm-kd-promo__btn{background:#fff!important;color:var(--color1)!important;border:2.25px solid var(--color1)!important;box-shadow:none!important;}
  /* 545/4862–4866: белое поле, рамка толщиной с линию значка меню (5 из 46 px исходника = 2,25 px); на /8/ кнопка по центру */
  body .zm-kd-banner .zm-kd-promo--here{align-items:center;padding-top:1.6rem;padding-bottom:1.6rem;} /* 545/4867: и по высоте посередине — от фото и до полосы разделов поровну */
}

/* ZM-HDR-EQUAL-PHONE-20261017 (545/4883–4885): телефон, все страницы — отступ под содержимым шапки равен отступу над ним (21 px): шапка 67,5 → 66; на /menu/ (только логотип) — 61, в themes/blocks/header.php */
@media (max-width:575px){ :root{--headerHeight:66px;} }

/* ZM-CART-IMG-GAP-20261019 (545/4929 «да» 4930): окно «Ваш заказ» на телефоне — зазор фото → название 18 → 9 px, как название → цена */
@media (max-width:575px){ .main-right .main-cart-content .cart-table-row .image{margin-right:9px !important;} }
