:root {
  --bg: #0d0f10;
  --red: #cb3039;
  --cream: #f2ece0;
  --gold: #b9935c;
  --faint: #c5b7aa;
  --page-width: 1530px;
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--cream); background: var(--bg); text-rendering: optimizeLegibility; -webkit-font-smoothing: auto; }
a { text-decoration: none; }
.site-container { max-width: var(--page-width); padding-left: clamp(36px, 9.6vw, 145px); padding-right: clamp(28px, 6.6vw, 108px); }

/* Главный баннер: исходный PNG содержит прозрачную левую часть */
.hero {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: clamp(455px, 42vw, 650px);
  overflow: hidden;
  background: #0d0f10;
  border-bottom: 1px solid rgba(230,216,204,.12);
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: clamp(92px, 9vw, 128px);
  z-index: -1;
  background: linear-gradient(180deg,
    rgba(5,7,9,.90) 0%,
    rgba(5,7,9,.76) 38%,
    rgba(5,7,9,.42) 68%,
    rgba(5,7,9,0) 100%);
  pointer-events: none;
}
.hero-art {
  position: absolute;
  z-index: -3;
  inset: 0;
  background-image: url('hero-sushi.png');
  background-size: auto 102%;
  background-position: 76% 58%;
  background-repeat: no-repeat;
  pointer-events: none;
}
.hero-shade {
  position: absolute;
  z-index: -2;
  inset: 0;
  background:
    linear-gradient(180deg,
      rgba(7,9,11,.58) 0%,
      rgba(7,9,11,.34) 18%,
      rgba(7,9,11,0) 33%),
    linear-gradient(90deg,
      rgba(9,11,13,.96) 0%,
      rgba(9,11,13,.90) 18%,
      rgba(9,11,13,.68) 34%,
      rgba(9,11,13,.30) 50%,
      rgba(9,11,13,.12) 61%,
      transparent 73%);
  pointer-events: none;
}
.sakura-edge {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: clamp(210px, 23vw, 355px);
  height: clamp(210px, 23vw, 355px);
  background: url('sakura-real-corner.webp') left top / contain no-repeat;
  pointer-events: none;
}

/* Шапка поверх баннера */
.site-header { position: relative; z-index: 5; height: clamp(76px, 6vw, 98px); border-bottom: 1px solid rgba(229,213,197,.10); background: linear-gradient(180deg, rgba(4,6,8,.68), rgba(4,6,8,.22)); }
.site-nav { height: 100%; padding: 0; }
.nav-inner { height: 100%; align-items: center; position: relative; }
.brand { flex: 0 0 clamp(115px, 10.8vw, 160px); align-self: flex-start; position: relative; z-index: 8; margin: 0; padding: 0; }
.brand-img { display: block; position: relative; width: 100%; max-width: 160px; height: auto; margin-top: 4px; transform: translateX(-5px); }
#mainNavbar { height: 100%; min-width: 0; }
.nav-links { height: 100%; align-items: stretch; gap: clamp(17px, 2.4vw, 38px); }
.nav-links .nav-item { display: flex; }
.nav-links .nav-link {
  position: relative; display: flex; align-items: center; padding: 0 0 2px;
  white-space: nowrap; text-transform: uppercase;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(12px, 1.08vw, 16px); font-weight: 700;
  letter-spacing: .12em; color: #f0e8e1;
  transition: color .2s ease;
}
.nav-links .nav-link:hover, .nav-links .nav-link:focus, .nav-links .nav-link.active { color: var(--cream); }
.nav-links .nav-link.active::after,
.nav-links .nav-link:hover::after {
  content: ''; position: absolute; height: 3px; width: 100%;
  bottom: 0; left: 0; background: var(--red);
}
.header-contact {
  align-items: center; justify-content: flex-end;
  display: flex; gap: 15px; flex-shrink: 0;
  color: var(--cream); margin-left: 16px;
}
.header-contact:hover { color: #fff; }
.header-phone-icon {
  display: grid; place-items: center; width: clamp(42px, 4vw, 57px);
  height: clamp(42px, 4vw, 57px); border-radius: 100%;
  background: #c92e38; box-shadow: 0 0 0 1px rgba(255,130,130,.22) inset;
}
.header-phone-icon svg { width: 52%; height: 52%; }
.header-contact-copy { display: flex; flex-direction: column; gap: 3px; white-space: nowrap; }
.header-phone-number { font: 500 clamp(17px, 1.75vw, 25px)/1.1 'Cormorant Garamond', Georgia, serif; letter-spacing: .045em; }
.header-phone-caption { color: #c8b8ac; font: 600 clamp(8px,.73vw,11px)/1.35 'Cormorant Garamond',Georgia,serif; letter-spacing: .16em; text-transform: uppercase; }

/* Текст внутри баннера */
.hero-content { position: relative; z-index: 2; padding-top: clamp(54px, 5.4vw, 86px); padding-bottom: 26px; }
.hero-copy { width: min(46%, 510px); }
.hero-title {
  margin: 0 0 clamp(14px,1.7vw,24px);
  color: var(--cream);
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  font-weight: 600;
  -webkit-text-stroke: .2px currentColor;
  font-size: clamp(60px, 6.15vw, 94px);
  letter-spacing: -.048em;
  line-height: .84;
  text-shadow: none;
}
.hero-title span { display: block; white-space: nowrap; }
.hero-title .title-red { color: var(--red); margin-top: clamp(4px,.65vw,9px); }
.hero-subtitle {
  display: block; margin: 0 0 clamp(20px,1.85vw,28px);
  font: 500 clamp(20px,2vw,30px)/1.08 'Cormorant Garamond', Georgia,serif;
  letter-spacing: .105em; color: #f0e9e2; -webkit-text-stroke: .16px currentColor; text-shadow: none;
}
.subtitle-stroke { display: inline-flex; vertical-align: middle; align-items: center; gap: 18px; padding-left: 21px; }
.subtitle-stroke i:first-child { width: 50px; height: 1px; background: var(--gold); display: block; }
.subtitle-stroke i:last-child { width: 26px; height: 1px; background: #7f2228; display: block; }
.hero-actions { display: flex; align-items: center; gap: clamp(12px,1.55vw,24px); }
.hero-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 19px;
  height: clamp(44px,3.9vw,56px); padding: 0 clamp(18px,2.2vw,33px);
  white-space: nowrap; text-transform: uppercase;
  font: 700 clamp(12px,1.08vw,15px)/1 'Cormorant Garamond', Georgia, serif;
  letter-spacing: .045em; border-radius: 4px;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.hero-btn:hover { transform: translateY(-2px); }
.hero-btn svg { width: 19px; height: 19px; }
.hero-btn-primary { background: #cc2f39; border: 1px solid #d63e46; color: #fff8f3; }
.hero-btn-primary:hover { background: #e13a45; color: #fff; }
.hero-btn-secondary { background: rgba(11,12,13,.72); border: 1px solid #b9935c; color: #e6c394; }
.hero-btn-secondary:hover { color: #fff2d8; background: rgba(29,24,22,.90); }
.hero-btn-secondary svg { width: 22px; height: 22px; }

/* Начало следующего блока, без карточек — пока только до заголовка */
.categories-intro {
  background: radial-gradient(ellipse at 60% 12%,rgba(36,38,41,.34),transparent 70%),#0d0f10;
  padding: clamp(17px,2.1vw,30px) 0 clamp(24px,3vw,46px);
}
.category-topline { color: #d0363f; text-transform: uppercase; font: 700 clamp(11px,1.05vw,15px)/1.1 'Cormorant Garamond',Georgia,serif; letter-spacing: .085em; }
.category-heading-row { display: flex; justify-content: space-between; gap: 24px; align-items: end; }
.category-heading-row h2 { margin: 3px 0 0; font: 500 clamp(30px,2.9vw,44px)/1 'Cormorant Garamond', Georgia, serif; letter-spacing: -.035em; }
.category-all { display: flex; align-items: center; gap: 18px; padding-bottom: 7px; white-space: nowrap; text-transform: uppercase; font: 600 clamp(10px,1vw,13px)/1.2 'Cormorant Garamond',Georgia,serif; letter-spacing: .1em; color: #ddd4c8; }
.category-all span { color: #c52e36; font-size: 19px; }
.category-all:hover { color: #fff; }

/* Планшет: сохраняем художественную композицию и делаем меню раскрывающимся */
@media (max-width: 1199.98px) {
 .nav-links { gap: 24px; }
 .header-phone-caption { letter-spacing: .075em; }
}
@media (max-width: 991.98px) {
 .hero { min-height: 640px; }
 .site-header { height: 76px; }
 .site-container { padding-left: clamp(24px,5vw,52px); padding-right: clamp(24px,5vw,52px); }
 .brand { flex-basis: 138px; }
 .brand-img { width: 138px; }
 .menu-toggle { background: rgba(12,14,16,.82); width: 44px; height: 44px; border: 1px solid rgba(236,223,209,.38); padding: 9px; display: flex; flex-direction: column; justify-content: center; gap: 6px; margin-left: auto; }
 .menu-toggle:focus { box-shadow: 0 0 0 2px rgba(211,50,60,.30); }
 .menu-toggle-line { display: block; width: 100%; height: 2px; background: #eee7df; }
 #mainNavbar { position: absolute; top: 76px; left: 0; right: 0; height: auto; background: rgba(15,17,20,.98); border-top: 1px solid #2a2525; border-bottom: 1px solid #4b3234; padding: 18px clamp(24px,5vw,52px) 25px; box-shadow: 0 18px 35px #0009; }
 #mainNavbar:not(.show):not(.collapsing) { display: none; }
 .nav-links { height: auto; gap: 0; align-items: start; }
 .nav-links .nav-link { padding: 12px 0; font-size: 18px; }
 .nav-links .nav-link.active::after,.nav-links .nav-link:hover::after { bottom: 6px; }
 .header-contact { margin: 16px 0 0; justify-content: flex-start; }
 .header-phone-icon { height: 46px; width: 46px; }
 .header-phone-number { font-size: 23px; }
 .header-phone-caption { font-size: 11px; }
 .hero-content { padding-top: 78px; }
 .hero-copy { width: 60%; }
 .hero-title { font-size: clamp(57px, 7vw,75px); }
 .hero-subtitle { font-size: 23px; }
 .hero-art { background-size: auto 99%; background-position: 99% 78%; }
}
@media (max-width: 767.98px) {
 .hero { min-height: 710px; }
 .site-container { padding-left: 25px; padding-right: 25px; }
 .brand,.brand-img { width: 122px; flex-basis: 122px; }
 .hero-art {
   top: auto; bottom: 0; height: 62%;
   background-size: auto 105%; background-position: 68% bottom;
 }
 .hero-shade {
   background:
     linear-gradient(180deg, rgba(7,9,11,.90) 0%, rgba(7,9,11,.72) 13%, rgba(7,9,11,.18) 33%, rgba(7,9,11,0) 54%),
     linear-gradient(180deg, #0d0f10 0%, #0d0f10 21%,rgba(13,15,16,.80) 41%, rgba(13,15,16,.15) 73%,transparent 100%);
 }
 .sakura-edge { width: 178px; height: 178px; opacity: .70; }
 .hero-content { padding-top: 82px; padding-bottom: 35px; }
 .hero-copy { width: 100%; }
 .hero-title { font-size: clamp(51px,11.8vw,76px); }
 .hero-subtitle { font-size: clamp(23px,4.8vw,30px); letter-spacing: .10em; margin-top: 16px; margin-bottom: 26px; }
 .hero-actions { gap: 10px; }
 .hero-btn { height: 50px; font-size: 13px; padding: 0 17px; gap: 10px; }
 .category-heading-row { align-items: start; flex-direction: column; gap: 14px; }
 .category-heading-row h2 { font-size: clamp(35px,7vw,47px); }
}
@media (max-width: 420px) {
 .hero { min-height: 680px; }
 .hero-content { padding-top: 78px; }
 .hero-title { font-size: clamp(46px,11.7vw,55px); }
 .hero-subtitle { letter-spacing: .065em; font-size: 21px; }
 .hero-btn { font-size: 12px; padding: 0 14px; height: 47px; }
 .hero-btn-secondary { gap: 6px; }
 .subtitle-stroke i:first-child { width: 29px; }
 .subtitle-stroke i:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .hero-btn,.nav-links .nav-link { transition:none; } }

/* Больше воздуха у левого края и компактнее типографика. */
@media (min-width: 1200px) {
  .site-header { background: linear-gradient(180deg, rgba(10,12,14,.52), rgba(10,12,14,.10)); }
}
@media (max-width: 991.98px) and (min-width: 768px) {
  .hero-copy { width: 59%; }
}

/* Desktop: separate hero height from image height. Keeping the image height in
   viewport-relative CSS lengths means a taller hero gives the dragon more headroom,
   instead of scaling and cropping the artwork with background-size: auto 108%. */
@media (min-width: 1200px) {
  .hero { min-height: clamp(650px, 44.5vw, 760px); }
  .hero-art {
    background-size: 83% auto;
    background-position: 99% 78%;
  }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .hero { min-height: clamp(500px, 49vw, 570px); }
  .hero-art { background-size: auto 100%; background-position: 99% 78%; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .hero-art { top: auto; bottom: 0; height: 79%; background-size: auto 111%; background-position: 76% bottom; }
  .hero-content { padding-top: 65px; }
  .hero-shade { background: linear-gradient(90deg,rgba(9,11,13,.96) 0%,rgba(9,11,13,.85) 25%,rgba(9,11,13,.35) 55%,transparent 82%); }
}
@media (max-width: 767.98px) {
  /* Move artwork up into the hero rather than treating it as a bottom-aligned image. */
  .hero-art {
    top: 105px;
    bottom: auto;
    height: 535px;
    background-size: auto 100%;
    background-position: 63% top;
  }
}
@media (max-width: 420px) {
  .hero-art { top: 108px; height: 520px; background-position: 65% top; }
}


/* ===================================================================
   3 additional homepage sections — categories, chef picks, sushi promo
   =================================================================== */
.content-section { position: relative; isolation: isolate; overflow: hidden; }
.section-content { position: relative; z-index: 2; }
.categories-intro {
  padding: 24px 0 34px;
  border-bottom: 1px solid rgba(226,211,198,.09);
  background: radial-gradient(ellipse at 55% 10%, #202124 0%, #141517 51%, #0e1011 100%);
}
.categories-intro .category-heading-row { margin-bottom: 20px; }
.category-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(10px, .95vw, 16px);
}
.category-card {
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border: 1px solid #424144; border-radius: 4px;
  background: linear-gradient(150deg, #202123, #111314);
  color: #f4ede3; transition: border-color .2s, transform .2s, box-shadow .2s;
}
.category-card:hover { transform: translateY(-3px); border-color: #a88e69; box-shadow: 0 10px 22px #0006; color: #fff; }
.category-card img { display: block; width: 100%; aspect-ratio: 1.38; object-fit: cover; }
.category-card-info { display: block; position: relative; flex: 1; padding: 12px 34px 15px 14px; min-height: 66px; }
.category-card strong { display: block; text-transform: uppercase; font: 600 clamp(14px,1.38vw,19px)/1.12 'Cormorant Garamond',Georgia,serif; letter-spacing: .02em; }
.category-caption { display: block; font: 500 clamp(12px,1.09vw,15px)/1.25 'Cormorant Garamond',Georgia,serif; color: #c5bfbb; margin-top: 4px; }
.category-arrow { position: absolute; right: 12px; bottom: 10px; color: #c2a36d; font: 22px/1 Georgia,serif; }
.section-flower { z-index: 0; position: absolute; pointer-events: none; background-position: left top; background-size: contain; background-repeat: no-repeat; }
.section-flower--categories { left: 14px; top: 4px; width: 178px; height: 267px; opacity: .67; background-image: url('sakura-real-categories.webp'); } 

.chef-section {
  padding: 24px 0 36px;
  background: radial-gradient(ellipse at 52% 22%,#1c1e20 0%,#111315 64%,#0d0f10 100%);
  border-bottom: 1px solid rgba(225,210,196,.10);
}
.chef-section .category-heading-row { margin-bottom: 20px; }
.section-note { display: inline-flex; align-items: center; gap: 16px; margin-bottom: 5px; color: #c3bcbb; text-transform: uppercase; letter-spacing: .09em; font: 600 clamp(10px,.9vw,13px)/1.2 'Cormorant Garamond',Georgia,serif; white-space: nowrap; }
.section-note span { width: 38px; height: 1px; background: var(--red); }
.product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(12px,1.15vw,20px); }
.product-card { overflow: hidden; min-width: 0; border-radius: 3px; border: 1px solid rgba(230,220,210,.32); background: #f2efea; box-shadow: 0 4px 8px #0003; }
.product-card img { display:block; width: 100%; aspect-ratio: 1.76; object-fit:cover; }
.product-copy { padding: 11px 14px 12px; background: linear-gradient(#f4f2ee,#eeece7); color: #1d1c1a; display: flex; flex-direction: column; min-height: 112px; }
.product-card h3 { text-transform: uppercase; margin: 0 0 3px; font: 700 clamp(16px,1.38vw,19px)/1.08 'Cormorant Garamond',Georgia,serif; }
.product-card p { margin: 0 0 5px; font: 500 clamp(13px,1.04vw,15px)/1.15 'Cormorant Garamond',Georgia,serif; color: #535252; }
.product-price { display: block; margin-top:auto; font: 700 clamp(22px,1.95vw,28px)/1 'Cormorant Garamond',Georgia,serif; color: #bb2934; }
.section-flower--chef { left: 12px; top: -12px; width: 175px; height: 263px; opacity: .60; background-image: url('sakura-real-chef.webp'); } 
.chef-ink { position: absolute; right: -65px; bottom: -80px; width: 230px; height: 275px; background: radial-gradient(ellipse at 70% 30%,rgba(173,35,42,.6), rgba(173,35,42,.08) 59%, transparent 60%); transform:rotate(-13deg); }

.sushi-promo {
  position: relative; isolation: isolate; min-height: clamp(230px,20vw,295px);
  overflow: hidden; display: flex; align-items: center;
  background: #101113; border-bottom: 1px solid rgba(236,210,205,.15);
}
.promo-brush { position: absolute; z-index:-3; inset: 0; background: radial-gradient(ellipse at 77% 49%,rgba(178,39,45,.43),transparent 48%), linear-gradient(115deg, #131518, #151416 49%, #38171a 87%, #0f1114); }
.promo-photo { position:absolute; z-index:-2; top:0; bottom:0; right:0; width:100%; background: url('promo-salmon-banner.png') center center / cover no-repeat; opacity: .97; }
.promo-photo::after { content:''; position:absolute; inset:0; background: linear-gradient(90deg, rgba(16,17,19,.95) 0%, rgba(16,17,19,.82) 18%, rgba(16,17,19,.25) 42%, rgba(16,17,19,.06) 63%, rgba(21,16,18,.46) 100%); }
.promo-inner { position:relative; width:100%; min-height: clamp(230px,20vw,295px); display:flex; align-items:center; justify-content:space-between; gap: 15px; z-index:1; }
.promo-copy { position:relative; z-index: 2; max-width: 53%; }
.promo-copy h2 { font: 700 clamp(42px,4.4vw,69px)/.86 'Cormorant Garamond', Georgia,serif; letter-spacing:-.048em; margin:0 0 17px; color:var(--cream); }
.promo-copy h2 span { display:block; color:var(--red); }
.promo-copy p { color:#c7bdba; font:500 clamp(12px,1.2vw,17px)/1.28 'Cormorant Garamond',Georgia,serif; letter-spacing:.025em; margin:0; white-space:nowrap; }
.promo-copy p b { margin:0 11px; color:#c5323c; font:700 15px/1 Georgia,serif; }
.promo-tag { flex-shrink:0; align-self:center; text-align:center; width:144px; min-height:175px; border-radius: 50% 50% 44% 44%; background:linear-gradient(180deg,rgba(10,12,14,.97),rgba(12,13,15,.92)); display:flex; flex-direction:column; align-items:center; justify-content:center; color:#d3ac71; border:1px solid rgba(150,110,64,.12); box-shadow:0 12px 35px #0008; }
.promo-tag svg { width:53px; height:47px; margin-bottom:9px; }
.promo-tag span { color:#e1d8cf; letter-spacing:.18em; text-transform:uppercase; font:600 13px/1.3 'Cormorant Garamond',Georgia,serif; }
.promo-tag i { margin-top:13px; width:34px; height:2px; background:var(--red); }

@media (min-width: 992px) and (max-width: 1199.98px) {
  .category-card-info { padding: 9px 25px 12px 10px; }
  .category-card strong { font-size:14px; }
  .category-caption { font-size:12px; }
  .product-copy { min-height:114px; }
}
@media (max-width: 991.98px) {
  .categories-intro, .chef-section { padding-top:26px; padding-bottom:32px; }
  .category-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap:14px; }
  .category-card strong { font-size:19px; }
  .category-caption { font-size:15px; }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap:18px; }
  .product-card h3 { font-size:22px; }
  .product-card p { font-size:16px; }
  .product-price { font-size:27px; }
  .promo-copy { max-width:70%; }
  .promo-photo { right:0; width:100%; }
  .promo-tag { width:116px; min-height:145px; }
}
@media (max-width: 767.98px) {
  .category-heading-row { align-items:flex-start; flex-direction:column; }
  .categories-intro .category-heading-row { margin-bottom:18px; }
  .category-all { margin-top:5px; padding-bottom:0; }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .category-card img { aspect-ratio:1.28; }
  .category-card-info { min-height:75px; padding:10px 27px 13px 11px; }
  .category-card strong { font-size:17px; }
  .category-caption { font-size:14px; }
  .category-arrow { right:9px; bottom:10px; }
  .chef-section .category-heading-row { gap:9px; }
  .section-note { font-size:11px; }
  .section-note span { width:25px; }
  .product-grid { gap:12px; }
  .product-card img { aspect-ratio:1.3; }
  .product-copy { padding:10px 10px 12px; min-height:145px; }
  .product-card h3 { font-size:17px; }
  .product-card p { font-size:14px; line-height:1.18; }
  .product-price { font-size:23px; }
  .section-flower--categories { width:100px; height:150px; left:-22px; top:12px; opacity:.30; }
  .section-flower--chef { width:106px; height:159px; left:-26px; top:8px; opacity:.27; }
  .sushi-promo { min-height:400px; align-items:flex-start; }
  .promo-inner { min-height:400px; align-items:flex-start; padding-top:33px; }
  .promo-copy { max-width:100%; }
  .promo-copy h2 { font-size: clamp(45px, 8vw, 65px); }
  .promo-copy p { white-space:normal; font-size:14px; max-width:400px; }
  .promo-copy p b { margin:0 6px; }
  .promo-photo { width:100%; height:72%; top:auto; bottom:0; right:0; background-position:center center; }
  .promo-photo::after { background:linear-gradient(180deg,#101113 0%,rgba(16,17,19,.17) 38%,rgba(14,14,15,.1) 100%); }
  .promo-tag { position:absolute; right:27px; bottom:23px; transform: scale(.72); transform-origin: right bottom; }
}
@media (max-width: 420px) {
  .category-card strong { font-size:16px; }
  .category-caption { font-size:13px; }
  .product-copy { min-height:151px; }
  .product-card h3 { font-size:16px; }
  .product-card p { font-size:13px; }
  .promo-copy h2 { font-size: 48px; }
}

/* Realistic sakura artwork, intentionally behind headings and cards */
.sakura-edge { left: -35px; top: -9px; opacity: .84; }
.section-flower { filter: saturate(.77) brightness(.88); }
@media (max-width: 767.98px) { .sakura-edge { left:-32px; top:-6px; opacity:.75; } }

/* FOOTER — layout and image treatment based on the supplied restaurant mockup */
.site-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #e5e0dd;
  background:
    radial-gradient(ellipse at 46% 8%, rgba(38,40,43,.36), transparent 65%),
    linear-gradient(105deg, #101113 0%, #141618 62%, #111315 100%);
  border-top: 1px solid rgba(225,214,206,.17);
  font-family: 'Cormorant Garamond', Georgia, serif;
}
.footer-scene {
  position: absolute;
  z-index: -1;
  right: 0;
  top: 0;
  width: min(34vw, 480px);
  height: 245px;
  background: url('footer-japan.webp') right top / auto 100% no-repeat;
  opacity: .95;
  pointer-events: none;
}
.footer-container { position: relative; z-index: 1; }
.footer-main {
  display: grid;
  grid-template-columns: 186px minmax(265px,1.45fr) minmax(245px,1.15fr) minmax(170px,.88fr);
  align-items: center;
  column-gap: clamp(18px, 2.5vw, 39px);
  min-height: 226px;
  padding-top: 30px;
  padding-bottom: 27px;
}
.footer-brand { align-self: center; }
.footer-brand a { display:inline-block; max-width: 100%; }
.footer-brand img { display:block; width: 169px; max-width:100%; height:auto; filter: drop-shadow(0 4px 3px rgba(0,0,0,.35)); }
.footer-contacts { display:flex; flex-direction:column; gap:19px; align-self:center; }
.footer-detail { display:flex; align-items:center; gap:clamp(12px,1.25vw,20px); min-width:0; }
.footer-round-icon {
  width:56px; height:56px; flex: 0 0 56px;
  display:grid; place-items:center;
  background: #cf2e39;
  border:1px solid rgba(248,156,166,.3);
  border-radius:50%;
  color:#fdf8f1;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}
.footer-round-icon svg { display:block; width:26px; height:26px; }
.footer-detail-address .footer-round-icon svg { width:29px; height:29px; }
.footer-detail-copy { display:flex; flex-direction:column; gap:4px; min-width:0; }
.footer-phone { color:#f5efe8; font-size:clamp(25px,2.25vw,33px); font-weight:500; line-height:1.04; letter-spacing:.035em; white-space:nowrap; }
.footer-phone:hover, .footer-address:hover { color:#fff; }
.footer-overline, .footer-label {
  font-family:'Cormorant Garamond',Georgia,serif;
  color:#d5d8dc;
  font-size:clamp(12px,1vw,14px);
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.3;
  text-transform:uppercase;
}
.footer-overline { font-size:12px; letter-spacing:.1em; }
.footer-address, .footer-hours-value {
  color:#ebe7e2;
  font-size:clamp(19px,1.75vw,25px);
  font-weight:500;
  line-height:1.19;
  letter-spacing:.014em;
}
.footer-address span, .footer-hours-value span { display:block; }
.footer-hours { padding-left:clamp(20px,2vw,35px); border-left:1px solid rgba(255,255,255,.10); }
.footer-hours .footer-detail { align-items:flex-start; }
.footer-hours .footer-round-icon { width:49px; height:49px; flex-basis:49px; }
.footer-hours .footer-round-icon svg { width:26px; height:26px; }
.footer-hours .footer-detail-copy { gap:12px; padding-top:1px; }
.footer-hours-value { font-size:clamp(19px,1.7vw,24px); line-height:1.28; }
.footer-social { align-self:center; padding-left:clamp(17px,2vw,34px); border-left:1px solid rgba(255,255,255,.10); }
.footer-social-icons { display:flex; align-items:center; gap:19px; margin-top:17px; }
.footer-social-icon { display:inline-flex; align-items:center; justify-content:center; color:#f1f1f0; width:37px; height:37px; }
.footer-social-icon svg { display:block; width:37px; height:37px; }
.footer-social-icon:nth-child(2) svg { width:36px; height:36px; }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  min-height:68px; padding:17px 0 20px;
  border-top:1px solid rgba(233,226,216,.14);
  color:#bcb6b4;
  font-size:clamp(12px,1.05vw,15px);
  font-weight:500;
  letter-spacing:.015em;
}
.footer-slogan { font-size:clamp(11px,.94vw,14px); letter-spacing:.13em; text-transform:uppercase; white-space:nowrap; }
@media(min-width:1600px) {
  .footer-main { grid-template-columns:240px minmax(330px,1.6fr) minmax(285px,1.1fr) minmax(200px,.8fr); min-height:230px; }
  .footer-brand img { width:186px; }
  .footer-scene { width:540px; height:240px; }
}
@media(max-width:1199.98px) {
  .footer-main { grid-template-columns:145px minmax(230px,1.55fr) minmax(220px,1.2fr) minmax(130px,.8fr); gap:16px; }
  .footer-brand img { width:142px; }
  .footer-round-icon { width:46px; height:46px; flex-basis:46px; }
  .footer-hours { padding-left:15px; }
  .footer-social { padding-left:15px; }
  .footer-phone { font-size:24px; }
  .footer-address,.footer-hours-value { font-size:19px; }
}
@media(max-width:991.98px) {
  .footer-main { grid-template-columns:1fr 1.5fr; gap:27px 28px; padding:37px 0 32px; }
  .footer-brand { align-self:start; }
  .footer-brand img { width:160px; }
  .footer-hours { border-left:0; padding-left:0; }
  .footer-social { border-left:0; padding-left:0; }
  .footer-scene { width:390px; height:215px; opacity:.65; }
}
@media(max-width:575.98px) {
  .footer-main { grid-template-columns:1fr; gap:23px; padding:28px 0 26px; }
  .footer-brand img { width:145px; }
  .footer-contacts { gap:16px; }
  .footer-scene { width: 275px; height: 160px; opacity:.36; }
  .footer-round-icon { height:46px; width:46px; flex-basis:46px; }
  .footer-hours .footer-detail-copy { gap:7px; }
  .footer-phone { font-size:27px; }
  .footer-address,.footer-hours-value { font-size:22px; }
  .footer-overline,.footer-label { font-size:12px; }
  .footer-social-icons { margin-top:10px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:9px; line-height:1.32; min-height:0; padding:18px 0 25px; }
  .footer-slogan { white-space:normal; letter-spacing:.095em; }
}

/* Footer final alignment refinements: day range stays on one line where space permits. */
@media (min-width: 1200px) {
  .footer-hours-value { white-space: nowrap; font-size: clamp(19px, 1.53vw, 23px); }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .footer-main { grid-template-columns: minmax(150px, .8fr) minmax(340px, 1.5fr); gap: 25px 35px; padding: 36px 0; }
  .footer-brand img { width:166px; }
  .footer-hours { border-left:0; padding-left:0; }
  .footer-social { border-left:0; padding-left:0; }
  .footer-scene { opacity: .58; }
}
