/* Content-managed homepage; no product feed before restaurant selection. */
.news-banner { background:var(--gradient-brand); border-radius:18px; overflow:hidden; color:#FFF7ED; margin-block:4px 40px; }
.banner-stage { display:grid; isolation:isolate; touch-action:pan-y; cursor:grab; user-select:none; }
.banner-stage[data-dragging] { cursor:grabbing; }
.banner-slide { grid-area:1/1; min-width:0; display:grid; grid-template-columns:1.1fr 1fr; min-height:350px; position:relative; }
.banner-slide[aria-hidden="true"] { visibility:hidden; opacity:0; pointer-events:none; }
.banner-copy { position:relative; z-index:2; padding:38px 40px 24px; min-width:0; }
.banner-copy h1 { font-size:clamp(34px,4vw,58px); line-height:1.08; letter-spacing:-1.8px; overflow-wrap:anywhere; margin:18px 0; }
.banner-description { font-size:16px; line-height:1.55; overflow-wrap:anywhere; max-width:520px; }
.banner-visual { position:relative; min-height:320px; overflow:hidden; mask-image:linear-gradient(90deg,transparent 0%,#000 38%),linear-gradient(180deg,#000 52%,transparent 100%); mask-composite:intersect; }
.banner-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.banner-footer { position:relative; z-index:3; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 40px 30px; }
.banner-footer .hero-cta { margin:0; flex-shrink:0; }
.banner-controls { display:none; align-items:center; gap:10px; flex-wrap:wrap; }
.news-banner[data-slider-ready] .banner-controls:not([hidden]) { display:flex; }
.slider-dots { display:flex; align-items:center; gap:14px; padding:10px 0; }
.slider-dot { width:9px; height:9px; border-radius:50%; background:#CEAAAE; }
.slider-dot[aria-current] { background:#FFD43B; }
.restaurant-selection { scroll-margin-top:24px; margin-block:32px 44px; }
.restaurant-selection h2 { font-size:32px; margin-bottom:10px; }
.restaurant-selection .section-heading { align-items:start; }
.restaurant-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.restaurant-choice { border:1px solid var(--color-border); border-radius:18px; overflow:hidden; background:var(--color-surface); display:flex; flex-direction:column; transition:border-color .15s; }
.restaurant-choice:hover { border-color:#FF9A35; }
.restaurant-choice-image { aspect-ratio:16/9; position:relative; background:var(--gradient-brand); }
.restaurant-choice-image>img { width:100%; height:100%; object-fit:cover; display:block; }
.restaurant-name-cover { display:grid; place-items:center; height:100%; font-size:clamp(24px,3vw,36px); font-weight:750; color:#FFF7ED; padding:30px; text-align:center; }
.example-label { position:absolute; left:14px; bottom:14px; border-radius:20px; padding:5px 11px; color:#FFF7ED; background:#4A101D; font-size:11px; }
.restaurant-choice-body { padding:24px; display:flex; flex-direction:column; align-items:start; gap:12px; flex:1; }
.restaurant-choice-body h3 { font-size:25px; }
.restaurant-choice-body p { color:var(--color-text-secondary); font-size:14px; }
.restaurant-choice-body .button { margin-top:auto; }
.restaurant-location { display:flex; align-items:center; gap:14px; border-top:1px solid var(--color-border); margin-top:24px; padding-top:20px; }
.restaurant-location label { display:flex; align-items:center; gap:12px; font-size:13px; }
.restaurant-location select { max-width:220px; margin:0; }
.home-about { display:grid; grid-template-columns:1fr; gap:32px; padding-block:32px; border-block:1px solid var(--color-border); }
.home-about:has(img) { grid-template-columns:1fr 1fr; align-items:center; }
.home-about h2 { font-size:30px; max-width:620px; margin-bottom:20px; }
.home-about p { color:var(--color-text-secondary); max-width:620px; }
.home-about>img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:16px; }
.uploaded-food { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.product-detail-visual .uploaded-food { aspect-ratio:3/2; }
.cart-item .uploaded-food { width:104px; flex-shrink:0; border-radius:10px; }
.editor-sections { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.editor-sections a { display:block; }.editor-sections p { margin-top:10px; font-size:13px; color:var(--color-text-secondary); }
.editor-restaurant-list { display:grid; gap:16px; }
@media(max-width:1000px) { .banner-copy { padding:30px 28px 20px; }.banner-footer { padding-inline:28px; }.banner-slide { min-height:340px; }.banner-visual { min-height:280px; }.editor-sections { grid-template-columns:1fr; } }
@media(max-width:768px) {
 .news-banner { margin-top:0; }.banner-slide { grid-template-columns:1fr; min-height:0; }.banner-copy { padding:26px 24px 18px; }.banner-copy h1 { font-size:34px; }.banner-description { font-size:14px; }.banner-visual { height:200px; min-height:0; mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 62%,transparent 100%); }.banner-visual img { object-fit:cover; }.banner-footer { padding:20px 24px; flex-wrap:wrap; }.banner-controls { gap:6px; }.banner-copy .hero-location { max-width:none; }.news-banner .hero-cta { min-width:180px; }.restaurant-selection h2 { font-size:27px; }.restaurant-choice-grid { gap:20px; }.restaurant-choice-body { padding:20px; }.restaurant-choice-body h3 { font-size:22px; }.home-about:has(img) { grid-template-columns:1fr; }
}
@media(max-width:560px) {
 .banner-copy { padding:24px 20px 18px; }.banner-copy h1 { font-size:30px; letter-spacing:-1px; }.banner-visual { height:180px; }.banner-footer { padding:18px 20px; gap:16px; }.banner-footer .hero-cta { width:100%; }.banner-controls { width:100%; justify-content:center; }.restaurant-choice-grid { grid-template-columns:1fr; }.restaurant-choice-body h3 { font-size:24px; }.restaurant-location { flex-wrap:wrap; }.restaurant-location label { width:100%; }.restaurant-location select { flex:1; max-width:none; }.home-about h2 { font-size:26px; }.cart-item .uploaded-food { width:72px; }
}
@media(prefers-reduced-motion:reduce) { .restaurant-choice { transition:none; } }
.menu-category-intro { display:flex; align-items:center; gap:20px; margin-block:24px; }.menu-category-intro>img { width:120px; aspect-ratio:3/2; object-fit:cover; border-radius:12px; }.menu-category-intro h2 { margin-bottom:8px; }

/* Uploaded brand marks retain their complete proportions; photographs keep their crop. */
.restaurant-choice-image.restaurant-logo { background:#fff; }
/* Match the supplied logo's canvas so its contain-fit gutters share the card's rounded edge. */
.restaurant-choice-image.restaurant-logo:has(>img[src*="/restaurant-logos/vkusno-i-tochka-"]) { background:#274f35; }
.restaurant-choice-image.restaurant-logo>img { position:absolute; inset:0; object-fit:contain; object-position:center; }
