/* =========================================================
   IZAKAYA BY DOMECHAN — ONE PAGE
   Image replacement:
   add background-image:url("images/your-photo.jpg") to any
   .placeholder-image element or use the optional classes below.
   ========================================================= */

:root{
  --ink:#12100f;
  --ink-soft:#1a1715;
  --paper:#eee7da;
  --paper-2:#e4d9c7;
  --red:#a6231d;
  --red-deep:#7d1714;
  --gold:#b89457;
  --line:rgba(18,16,15,.18);
  --white:#f7f1e7;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Inter", Arial, sans-serif;
  --jp:"Noto Serif JP", serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  font-weight:300;
  overflow-x:hidden;
}
body::selection{background:var(--red);color:white}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
address{font-style:normal}
button,.glf-button{font:inherit}
section{position:relative;isolation:isolate}
.section-dark{background:var(--ink)}
.paper-section{background:var(--paper);color:var(--ink)}
.section-red{background:var(--red);color:var(--white)}
.grain{
  position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.cursor-glow{
  position:fixed;width:420px;height:420px;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(166,35,29,.13),transparent 65%);
  transform:translate(-50%,-50%);
  opacity:0;transition:opacity .4s;
}
body:hover .cursor-glow{opacity:1}

/* header */
.topbar{
  position:fixed;z-index:1000;top:0;left:0;right:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 4.5vw;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:linear-gradient(to bottom,rgba(10,8,7,.86),rgba(10,8,7,.12));
  backdrop-filter:blur(10px);
}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{
  width:42px;height:42px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.42);
  font:700 23px var(--jp);background:var(--red)
}
.brand-copy{display:flex;flex-direction:column;line-height:1}
.brand-copy strong{font-size:14px;letter-spacing:.28em}
.brand-copy small{font-size:8px;letter-spacing:.15em;margin-top:6px;opacity:.72}
.desktop-nav{display:flex;gap:2.2vw}
.desktop-nav a,.nav-cta{
  font-size:10px;text-transform:uppercase;letter-spacing:.18em;font-weight:500
}
.desktop-nav a{position:relative;opacity:.8}
.desktop-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--red);
  transition:right .3s ease
}
.desktop-nav a:hover::after{right:0}
.nav-cta{border:1px solid rgba(255,255,255,.5);padding:12px 18px}

/* hero */
.hero{min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(12,9,8,.86) 0%,rgba(12,9,8,.42) 54%,rgba(12,9,8,.14)),
             linear-gradient(0deg,rgba(12,9,8,.92),transparent 55%)
}
.hero-shade{position:absolute;inset:0;background:radial-gradient(circle at 72% 35%,transparent 0,rgba(0,0,0,.15) 36%,rgba(0,0,0,.48) 100%)}
.hero-content{position:relative;z-index:5;padding:0 6vw 8.5vh;max-width:1040px}
.eyebrow,.jp-kicker{
  font-size:10px;font-weight:600;letter-spacing:.30em;text-transform:uppercase
}
.eyebrow span,.jp-kicker{font-family:var(--jp)}
.eyebrow{display:flex;gap:16px;align-items:center;margin:0 0 28px}
.eyebrow::before{content:"";width:42px;height:1px;background:currentColor}
.eyebrow.red,.jp-kicker.red{color:var(--red)}
.hero h1,.split-copy h2,.menu-content h2,.gallery-intro h2,.location-copy h2,.final-copy h2{
  font:600 clamp(62px,8.5vw,138px)/.78 var(--serif);
  letter-spacing:-.045em;margin:0
}
.hero h1 em,.split-copy h2 em,.menu-content h2 em,.gallery-intro h2 em,.location-copy h2 em,.final-copy h2 em{
  font-weight:500
}
.hero-lead{
  width:min(640px,90vw);font-size:15px;line-height:1.8;margin:38px 0 34px;color:rgba(247,241,231,.82)
}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.glf-button{
  display:inline-flex!important;align-items:center;justify-content:center;gap:12px;
  min-height:54px;padding:0 25px!important;border-radius:0!important;
  text-transform:uppercase;letter-spacing:.13em;font-size:10px!important;font-weight:600!important;
  cursor:pointer!important;transition:transform .25s,background .25s,color .25s,border-color .25s!important;
  box-shadow:none!important
}
.glf-button span{font-family:var(--jp);font-size:12px}
.primary-foodbooking{background:var(--red)!important;color:white!important;border:1px solid var(--red)!important}
.secondary-foodbooking{background:transparent!important;color:var(--white)!important;border:1px solid rgba(255,255,255,.45)!important}
.glf-button:hover{transform:translateY(-3px)!important}
.primary-foodbooking:hover{background:#c12b23!important}
.secondary-foodbooking:hover{background:var(--white)!important;color:var(--ink)!important}
.hero-kanji{
  position:absolute;right:3vw;top:18vh;display:flex;flex-direction:column;
  font:700 clamp(70px,11vw,170px)/.8 var(--jp);opacity:.045;color:white
}
.scroll-cue{
  position:absolute;z-index:6;right:5vw;bottom:7vh;display:flex;align-items:center;gap:12px;
  transform:rotate(90deg);transform-origin:right bottom;font-size:8px;letter-spacing:.28em
}
.scroll-cue i{width:55px;height:1px;background:currentColor;position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;width:16px;height:1px;background:var(--red);animation:scan 1.7s infinite}
@keyframes scan{from{left:-16px}to{left:58px}}

/* generic placeholder */
.placeholder-image{
  position:relative;overflow:hidden;
  background:
    linear-gradient(135deg,rgba(166,35,29,.20),transparent 40%),
    radial-gradient(circle at 70% 35%,rgba(184,148,87,.16),transparent 30%),
    #211c18;
  background-size:cover;background-position:center
}
.placeholder-image::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:55px 55px
}
.placeholder-label{
  position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.25);padding:10px 14px;color:rgba(255,255,255,.45);
  font-size:8px;letter-spacing:.2em;white-space:nowrap
}

/* manifesto */
.manifesto{padding:140px 6vw 160px;overflow:hidden}
.section-grid{display:grid;grid-template-columns:120px minmax(0,1fr) 120px;gap:5vw;max-width:1440px;margin:auto}
.section-index{display:flex;flex-direction:column;gap:8px;padding-top:10px}
.section-index span{font:600 42px var(--serif);color:var(--red)}
.section-index small{font-size:8px;letter-spacing:.3em;font-weight:600}
.manifesto-copy{max-width:930px}
.jp-kicker{margin:0 0 32px;color:var(--red)}
.jp-kicker.light{color:rgba(255,255,255,.65)}
.manifesto h2{font:600 clamp(48px,6.4vw,96px)/.92 var(--serif);letter-spacing:-.035em;margin:0 0 40px}
.manifesto h2 em{color:var(--red);font-weight:500}
.big-copy{font:500 clamp(24px,2.6vw,40px)/1.23 var(--serif);margin:0 0 28px}
.manifesto-copy>p:last-child{font-size:14px;line-height:1.9;max-width:680px}
.vertical-note{writing-mode:vertical-rl;display:flex;align-items:center;gap:20px;padding-top:10px}
.vertical-note span{font:600 20px var(--jp);letter-spacing:.2em}
.vertical-note small{font-size:8px;letter-spacing:.20em;text-transform:uppercase}
.sun-disc{
  position:absolute;right:-9vw;bottom:-15vw;width:47vw;height:47vw;border-radius:50%;
  background:var(--red);opacity:.95;z-index:-1
}
.brush-line{position:absolute;left:0;top:80px;width:42%;height:18px;background:var(--ink);opacity:.06;transform:rotate(-2deg)}

/* split story */
.split-story{display:grid;grid-template-columns:1.05fr .95fr;min-height:760px}
.split-image{min-height:650px}
.split-copy{padding:110px 8vw 100px 7vw;display:flex;flex-direction:column;justify-content:center}
.split-copy h2{font-size:clamp(55px,6.4vw,102px);margin-bottom:38px}
.split-copy h2 em{color:var(--red)}
.split-copy>p:not(.eyebrow){max-width:600px;font-size:14px;line-height:1.9;color:rgba(247,241,231,.72)}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px}
.pill-row span{border:1px solid rgba(255,255,255,.18);padding:10px 13px;font-size:9px;letter-spacing:.08em}

/* feature */
.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);padding:0 6vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.feature{display:flex;align-items:center;gap:25px;padding:42px 3vw;border-right:1px solid var(--line)}
.feature:last-child{border-right:0}
.feature-kanji{font:700 46px var(--jp);color:var(--red)}
.feature div{display:flex;flex-direction:column;gap:6px}
.feature strong{font:600 20px var(--serif)}
.feature small{font-size:10px;line-height:1.55;opacity:.65}

/* menu */
.menu-story{min-height:900px;padding:130px 6vw;display:grid;grid-template-columns:120px 1fr minmax(330px,39vw);gap:4vw;align-items:center;overflow:hidden}
.section-index.light span{color:white}
.section-index.light small{color:rgba(255,255,255,.65)}
.menu-content{max-width:700px}
.menu-content h2{font-size:clamp(58px,6.2vw,100px);margin-bottom:35px}
.menu-content p:not(.jp-kicker){font-size:14px;line-height:1.9;max-width:590px;color:rgba(255,255,255,.78);margin-bottom:35px}
.inverted .primary-foodbooking{background:var(--white)!important;border-color:var(--white)!important;color:var(--red)!important}
.inverted .secondary-foodbooking{border-color:rgba(255,255,255,.55)!important}
.menu-image{height:630px;transform:rotate(2deg);box-shadow:0 38px 80px rgba(70,0,0,.28)}
.giant-type{position:absolute;left:28vw;top:-16vh;font:700 62vw/.8 var(--jp);color:rgba(90,0,0,.15);z-index:-1}

/* gallery */
.gallery{padding:140px 6vw 170px}
.gallery-intro{max-width:1100px;margin-bottom:70px}
.gallery-intro h2{color:var(--ink);font-size:clamp(54px,6.5vw,104px)}
.gallery-intro h2 em{color:var(--red)}
.gallery-grid{
  display:grid;grid-template-columns:1.1fr .9fr .9fr;
  grid-template-rows:330px 330px;gap:14px
}
.gallery-card{min-height:200px}
.gallery-card.tall{grid-row:span 2}
.gallery-card.wide{grid-column:span 2}
.gallery-card:hover{transform:scale(.995)}
.gallery-card{transition:transform .45s ease}

/* quote */
.quote-section{min-height:640px;display:grid;place-items:center;text-align:center;overflow:hidden;padding:100px 6vw}
.quote-inner{position:relative;z-index:2}
.quote-inner blockquote{font:500 clamp(46px,6.2vw,96px)/.95 var(--serif);letter-spacing:-.035em;margin:20px 0 35px}
.quote-inner small{font-size:8px;letter-spacing:.28em;opacity:.55}
.lantern{
  position:absolute;width:145px;height:230px;background:var(--red);top:50%;transform:translateY(-50%);
  display:grid;place-items:center;box-shadow:0 0 80px rgba(166,35,29,.20)
}
.lantern::before,.lantern::after{content:"";position:absolute;left:-8px;right:-8px;height:12px;background:#060505}
.lantern::before{top:0}.lantern::after{bottom:0}
.lantern span{font:700 53px var(--jp);color:#e6cda6}
.lantern-left{left:-38px;transform:translateY(-50%) rotate(-4deg)}
.lantern-right{right:-38px;transform:translateY(-50%) rotate(4deg)}

/* location */
.location{padding:130px 6vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:stretch}
.location-copy h2{font-size:clamp(54px,6vw,92px);color:var(--ink);margin-bottom:40px}
.location-copy h2 em{color:var(--red)}
.location address{font-size:14px;line-height:1.8;margin-bottom:28px}
.location address strong{font:600 24px var(--serif)}
.contact-links{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:35px}
.contact-links a{font-size:9px;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid var(--red);padding-bottom:5px}
.hours{max-width:480px;border-top:1px solid var(--line);margin-top:10px}
.hours div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
.hours span,.hours strong{font-size:10px;letter-spacing:.08em}
.location-actions{margin-top:32px}
.location-actions .primary-foodbooking{color:white!important}
.map-placeholder{min-height:600px;display:flex;align-items:center;justify-content:center;color:white}
.map-placeholder>strong{position:absolute;right:28px;bottom:24px;z-index:4;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.map-cross::before,.map-cross::after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,255,255,.10);transform:translate(-50%,-50%)}
.map-cross::before{width:100%;height:1px}.map-cross::after{height:100%;width:1px}
.map-pin{z-index:3;width:78px;height:78px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--red);display:grid;place-items:center;font:700 29px var(--jp)}
.map-pin::first-letter{transform:rotate(45deg)}

/* final */
.final-cta{min-height:680px;display:grid;place-items:center;text-align:center;overflow:hidden;padding:100px 6vw}
.final-copy{position:relative;z-index:2}
.final-copy h2{font-size:clamp(82px,11vw,170px);margin-bottom:25px}
.final-copy p:not(.jp-kicker){font:500 22px var(--serif);margin-bottom:32px}
.final-button{background:var(--white)!important;color:var(--red)!important;border:1px solid var(--white)!important}
.final-symbol{position:absolute;font:700 75vw/.8 var(--jp);color:rgba(80,0,0,.14);z-index:-1}

/* footer */
footer{
  background:#0a0807;color:rgba(247,241,231,.55);padding:42px 5vw;
  display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap
}
footer p{font-size:9px;letter-spacing:.08em}
 .footer-brand{color:var(--white)}
.group-affiliation-wrap{
  height:0;
  position:relative;
  z-index:8;
  display:flex;
  justify-content:center;
  pointer-events:none;
}
.group-affiliation{
  width:max-content;
  max-width:calc(100vw - 32px);
  margin:0;
  position:absolute;
  top:0;
  transform:translateY(calc(-100% - 10px));
  pointer-events:auto;
  padding:9px 14px 8px;
  border:1px solid rgba(247,241,231,.18);
  border-radius:999px;
  color:rgba(247,241,231,.72);
  text-decoration:none;
  font-size:9px;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-align:center;
  transition:border-color .25s ease,color .25s ease,transform .25s ease,background .25s ease;
}
.group-affiliation span{margin-left:4px;font-size:9px}
.group-affiliation:hover{
  color:var(--white);
  border-color:rgba(247,241,231,.42);
  background:rgba(247,241,231,.035);
  transform:translateY(calc(-100% - 11px));
}
.legal{text-align:right}

/* reveals */
.reveal{opacity:0;transform:translateY(38px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:none}

/* optional real-image hooks — replace files when uploaded */
.hero-media{ /* background-image:url("images/hero.jpg"); */ }
.split-image{ /* background-image:url("images/cucina.jpg"); */ }

@media (max-width:980px){
  .desktop-nav{display:none}
  .section-grid{grid-template-columns:80px 1fr}.vertical-note{display:none}
  .split-story{grid-template-columns:1fr}
  .split-image{min-height:70vw}
  .feature-strip{grid-template-columns:1fr}
  .feature{border-right:0;border-bottom:1px solid var(--line)}
  .menu-story{grid-template-columns:70px 1fr;padding-bottom:90px}
  .menu-image{grid-column:2;height:60vw;min-height:450px;width:85%;margin-top:30px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:380px 280px 300px}
  .gallery-card.tall{grid-row:span 2}
  .gallery-card.wide{grid-column:span 2}
  .location{grid-template-columns:1fr}
  footer{flex-direction:column;text-align:center}.legal{text-align:center}
}

@media (max-width:640px){
  .topbar{padding:14px 18px}
  .brand-mark{width:36px;height:36px;font-size:19px}
  .brand-copy strong{font-size:11px}.brand-copy small{font-size:7px}
  .nav-cta{padding:10px 13px}
  .hero-content{padding:0 22px 70px}
  .hero h1{font-size:clamp(58px,18vw,82px);line-height:.82}
  .hero-lead{font-size:13px;line-height:1.7;margin-top:28px}
  .hero-actions{display:grid;grid-template-columns:1fr;width:100%}
  .glf-button{width:100%!important}
  .scroll-cue{display:none}
  .manifesto{padding:95px 22px 110px}
  .section-grid{display:block}
  .section-index{margin-bottom:45px}
  .manifesto h2{font-size:52px}
  .big-copy{font-size:27px}
  .sun-disc{width:85vw;height:85vw;right:-35vw}
  .split-copy{padding:85px 22px}
  .split-copy h2{font-size:57px}
  .split-image{min-height:105vw}
  .feature{padding:30px 22px}
  .menu-story{display:block;padding:95px 22px}
  .menu-story .section-index{margin-bottom:50px}
  .menu-content h2{font-size:57px}
  .menu-image{width:100%;height:105vw;min-height:0;margin-top:55px;transform:rotate(1deg)}
  .gallery{padding:95px 14px 110px}
  .gallery-intro{padding:0 8px}
  .gallery-intro h2{font-size:53px}
  .gallery-grid{display:flex;flex-direction:column}
  .gallery-card,.gallery-card.tall,.gallery-card.wide{height:75vw;min-height:260px}
  .gallery-card.tall{height:105vw}
  .quote-section{min-height:580px}
  .quote-inner blockquote{font-size:49px}
  .lantern{width:84px;height:155px;opacity:.55}
  .lantern-left{left:-50px}.lantern-right{right:-50px}
  .location{padding:95px 22px}
  .location-copy h2{font-size:54px}
  .map-placeholder{min-height:105vw}
  .final-cta{min-height:620px}
  .final-copy h2{font-size:90px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}


/* === PATCH V1.1 — FoodBooking contrast + Google reviews === */

/* Il widget FoodBooking può iniettare stili propri dopo il CSS del sito.
   Queste regole mantengono leggibili i CTA anche dopo il caricamento del widget. */
.final-cta .glf-button,
.final-cta .glf-button *,
.final-button,
.final-button * {
  color: #7d1714 !important;
  -webkit-text-fill-color: #7d1714 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

.final-cta .glf-button,
.final-button {
  background: #f7f1e7 !important;
  border-color: #f7f1e7 !important;
  font-weight: 700 !important;
}

.final-cta .glf-button:hover,
.final-button:hover {
  background: #ffffff !important;
  color: #7d1714 !important;
}

.google-review-callout{
  max-width:480px;
  display:flex;
  align-items:center;
  gap:16px;
  margin:10px 0 30px;
  padding:17px 18px;
  border:1px solid var(--line);
  transition:transform .25s ease, border-color .25s ease, background .25s ease;
}
.google-review-callout:hover{
  transform:translateY(-2px);
  border-color:var(--red);
  background:rgba(166,35,29,.035);
}
.google-review-callout .review-stars{
  color:var(--red);
  letter-spacing:.08em;
  font-size:14px;
  white-space:nowrap;
}
.google-review-callout > span:last-child{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.google-review-callout strong{
  font:600 18px var(--serif);
}
.google-review-callout small{
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.65;
}

@media (max-width:640px){
  .google-review-callout{align-items:flex-start}
  footer .legal{line-height:1.7}
}


/* === PATCH V1.3 — Originalità / brand protection UX === */

.hero-lead strong{
  color:#fff;
  font-weight:600;
}

.original-seal{
  width:132px;
  height:132px;
  border:1px solid rgba(247,241,231,.45);
  margin:0 0 28px;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:3px;
  transform:rotate(-2deg);
  position:relative;
  color:var(--white);
}
.original-seal::after{
  content:"";
  position:absolute;
  inset:7px;
  border:1px solid rgba(247,241,231,.18);
}
.original-seal span{
  font:700 31px var(--jp);
  color:#d7493f;
  line-height:1;
}
.original-seal strong{
  font-size:10px;
  letter-spacing:.22em;
  margin-left:.22em;
}
.original-seal small{
  font-size:6.5px;
  letter-spacing:.18em;
  opacity:.72;
}

.single-location{
  display:inline-block;
  margin-top:9px;
  color:var(--red);
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
}

.identity-notice{
  max-width:560px;
  display:grid;
  grid-template-columns:64px 1fr;
  gap:20px;
  margin:32px 0 28px;
  padding:24px;
  border:1px solid rgba(166,35,29,.34);
  background:rgba(166,35,29,.035);
  position:relative;
}
.identity-notice::before{
  content:"";
  position:absolute;
  top:-1px;
  left:-1px;
  width:54px;
  height:3px;
  background:var(--red);
}
.identity-seal{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  background:var(--red);
  color:var(--white);
  font:700 28px var(--jp);
}
.identity-kicker{
  display:block;
  font-size:8px;
  letter-spacing:.20em;
  font-weight:700;
  color:var(--red);
  margin-bottom:5px;
}
.identity-notice h3{
  margin:0 0 9px;
  font:600 30px/1 var(--serif);
}
.identity-notice p{
  margin:0 0 10px;
  font-size:12px;
  line-height:1.7;
}
.identity-notice small{
  font-size:9px;
  line-height:1.5;
  opacity:.72;
}
.identity-notice small strong{
  color:var(--red);
}

@media (max-width:640px){
  .original-seal{
    width:112px;
    height:112px;
    margin-bottom:22px;
  }
  .identity-notice{
    grid-template-columns:48px 1fr;
    gap:14px;
    padding:18px;
  }
  .identity-seal{
    width:46px;
    height:46px;
    font-size:22px;
  }
  .identity-notice h3{font-size:26px}
}


/* === PATCH V1.4 — REAL PHOTOGRAPHY === */
.real-photo{
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}
.real-photo::before{display:none!important}
.real-photo .placeholder-label{display:none!important}

.hero-photo{
  background-image:url("../images/hero.jpg");
  background-position:center 48%;
}
.cucina-photo{
  background-image:url("../images/cucina.jpg");
  background-position:center;
}
.bancone-photo{
  background-image:url("../images/bancone.jpg");
  background-position:center;
}
.sala-photo{
  background-image:url("../images/sala.jpg");
  background-position:center;
}
.whisky-photo{
  background-image:url("../images/whisky.jpg");
  background-position:center;
}
.incensi-photo{
  background-image:url("../images/incensi.jpg");
  background-position:center;
}
.noren-photo{
  background-image:url("../images/noren.jpg");
  background-position:center;
}
.insegna-photo{
  background-image:
    linear-gradient(0deg,rgba(10,8,7,.24),rgba(10,8,7,.08)),
    url("../images/insegna.jpg");
  background-position:center;
}
.lampada-photo{
  background-image:url("../images/lampada.jpg");
  background-position:center;
}
.coffee-photo{
  background-image:url("../images/coffee.jpg");
  background-position:center;
}

/* Editorial photo block */
.detail-editorial{
  min-height:760px;
  display:grid;
  grid-template-columns:minmax(250px,.7fr) minmax(360px,1fr) minmax(250px,.7fr);
  align-items:stretch;
  overflow:hidden;
}
.detail-photo{min-height:620px}
.detail-copy{
  padding:110px 6vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
}
.detail-copy .eyebrow{justify-content:center}
.detail-copy h2{
  font:600 clamp(52px,5.8vw,90px)/.9 var(--serif);
  letter-spacing:-.035em;
  margin:0 0 34px;
}
.detail-copy h2 em{color:var(--red);font-weight:500}
.detail-copy p:not(.eyebrow){
  max-width:560px;
  margin:0 auto;
  font-size:13px;
  line-height:1.9;
  color:rgba(247,241,231,.72);
}

/* More cinematic image treatment within the website itself */
.hero-photo,
.cucina-photo,
.bancone-photo,
.sala-photo,
.whisky-photo,
.incensi-photo,
.noren-photo,
.insegna-photo,
.lampada-photo,
.coffee-photo{
  filter:saturate(.92) contrast(1.03);
}

/* Make the original seal sit comfortably over photography */
.original-seal{
  backdrop-filter:blur(3px);
  background:rgba(10,8,7,.22);
}

/* Map overlay remains readable over photography */
.map-placeholder::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(10,8,7,.52),rgba(10,8,7,.08) 58%);
  z-index:1;
}
.map-placeholder .map-cross,
.map-placeholder .map-pin,
.map-placeholder > strong{z-index:3}

@media (max-width:980px){
  .detail-editorial{grid-template-columns:1fr 1fr}
  .detail-copy{grid-column:1 / -1;grid-row:1;padding:90px 8vw}
  .detail-photo{min-height:60vw}
}
@media (max-width:640px){
  .hero-photo{background-position:62% center}
  .detail-editorial{display:flex;flex-direction:column}
  .detail-copy{order:1;padding:85px 22px}
  .detail-photo{min-height:115vw}
  .lampada-photo{order:2}
  .coffee-photo{order:3}
}


/* === PATCH V1.5 — RAMEN + 22 POSTI === */

.booking-note{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:22px;
  max-width:470px;
  color:rgba(247,241,231,.88);
}
.booking-count{
  width:48px;
  height:48px;
  flex:0 0 48px;
  border:1px solid rgba(247,241,231,.34);
  display:grid;
  place-items:center;
  font:600 25px var(--serif);
  color:var(--white);
}
.booking-note div{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.booking-note strong{
  font:600 18px var(--serif);
}
.booking-note small{
  font-size:9px;
  line-height:1.5;
  letter-spacing:.03em;
  opacity:.75;
}

.ramen-signature{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  min-height:760px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.ramen-visual{
  min-height:680px;
  position:relative;
}
.ramen-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent 55%,rgba(18,16,15,.12));
}
.ramen-copy{
  padding:110px 7vw 100px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ramen-copy h2{
  font:600 clamp(56px,6.5vw,100px)/.9 var(--serif);
  letter-spacing:-.04em;
  margin:0 0 34px;
  color:var(--ink);
}
.ramen-copy h2 em{
  color:var(--red);
  font-weight:500;
}
.ramen-copy > p:not(.eyebrow){
  max-width:620px;
  font-size:13px;
  line-height:1.9;
}
.ramen-lead{
  font:500 clamp(23px,2.2vw,34px)/1.25 var(--serif)!important;
  margin:0 0 24px!important;
}
.ramen-badge{
  width:max-content;
  max-width:100%;
  margin-top:34px;
  padding:18px 20px;
  border-left:3px solid var(--red);
  background:rgba(166,35,29,.045);
  display:flex;
  flex-direction:column;
  gap:3px;
}
.ramen-badge span{
  color:var(--red);
  font:600 10px var(--jp);
  letter-spacing:.14em;
}
.ramen-badge strong{
  font:600 24px var(--serif);
}
.ramen-badge small{
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.6;
}

.reservation-advice{
  max-width:560px;
  margin:34px 0 0;
  padding:20px 22px;
  border:1px solid rgba(166,35,29,.28);
  background:rgba(166,35,29,.035);
}
.reservation-advice > span{
  display:block;
  margin-bottom:8px;
  color:var(--red);
  font-size:8px;
  font-weight:700;
  letter-spacing:.20em;
}
.reservation-advice p{
  margin:0;
  font-size:11px;
  line-height:1.7;
}
.reservation-advice strong{
  font-weight:600;
}

@media (max-width:980px){
  .ramen-signature{grid-template-columns:1fr}
  .ramen-visual{min-height:65vw}
}
@media (max-width:640px){
  .booking-note{align-items:flex-start}
  .ramen-copy{padding:85px 22px}
  .ramen-copy h2{font-size:56px}
  .ramen-visual{min-height:110vw}
  .ramen-badge{width:100%}
}


/* === PATCH V1.6 — BRIDGE BETWEEN SECTIONS === */
.section-bridge{
  position:relative;
  padding:42px 6vw 50px;
  overflow:hidden;
  border-top:1px solid rgba(18,16,15,.08);
  border-bottom:1px solid rgba(18,16,15,.08);
}
.section-bridge::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.16;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='24' viewBox='0 0 120 24'%3E%3Cpath d='M0 24c6-12 18-12 24 0M24 24c6-12 18-12 24 0M48 24c6-12 18-12 24 0M72 24c6-12 18-12 24 0M96 24c6-12 18-12 24 0' fill='none' stroke='%23b89457' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat:repeat-x;
  background-position:center 72%;
}
.bridge-inner{
  position:relative;
  z-index:2;
  max-width:980px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:22px;
}
.bridge-line{
  height:1px;
  background:linear-gradient(90deg,transparent, rgba(166,35,29,.32), transparent);
}
.bridge-kicker{
  margin:0;
  text-align:center;
  color:var(--red);
  font:600 10px var(--jp);
  letter-spacing:.22em;
  text-transform:uppercase;
}
.section-bridge h3{
  grid-column:1 / -1;
  margin:0;
  text-align:center;
  font:600 clamp(28px,3vw,44px)/1.05 var(--serif);
  letter-spacing:-.02em;
  color:var(--ink);
}
.section-bridge h3 em{
  color:var(--red);
  font-weight:500;
}

@media (max-width:640px){
  .section-bridge{
    padding:32px 22px 38px;
  }
  .bridge-inner{
    grid-template-columns:1fr;
    gap:12px;
  }
  .bridge-line{
    display:none;
  }
  .section-bridge::before{
    background-position:center 82%;
  }
}


/* === PATCH V1.7 — MULTILINGUA IT / EN / JA === */
.lang-switcher{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:18px;
}
.lang-switcher a{
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.55;
  padding:5px 7px;
  border:1px solid transparent;
}
.lang-switcher a:hover,
.lang-switcher a.active{
  opacity:1;
  border-color:rgba(255,255,255,.35);
}
@media (max-width:980px){
  .lang-switcher{margin-left:auto}
}
@media (max-width:640px){
  .lang-switcher{
    gap:3px;
    margin-left:6px;
  }
  .lang-switcher a{
    font-size:7px;
    padding:4px 5px;
  }
}

/* === PATCH V1.6 — Reservation grace-period notice === */
.reservation-policy{
  display:flex;
  align-items:flex-start;
  gap:12px;
  max-width:620px;
  margin-top:16px;
  padding:13px 15px;
  border:1px solid currentColor;
  font-size:10px;
  line-height:1.55;
}
.reservation-policy > span{
  flex:0 0 34px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid currentColor;
  border-radius:50%;
  font:700 15px var(--serif);
  line-height:1;
}
.reservation-policy > span::after{
  content:"′";
  font:600 10px var(--sans);
  margin-left:1px;
}
.reservation-policy p{margin:0}
.reservation-policy strong{font-weight:700}
.reservation-policy.on-dark{
  color:rgba(247,241,231,.92);
  background:rgba(0,0,0,.22);
  border-color:rgba(247,241,231,.30);
}
.reservation-policy.on-light{
  color:var(--ink);
  background:rgba(166,35,29,.055);
  border-color:rgba(166,35,29,.30);
}
.reservation-policy.on-red{
  color:var(--white);
  background:rgba(0,0,0,.10);
  border-color:rgba(255,255,255,.42);
}
.reservation-policy.compact{font-size:9px}
@media (max-width:640px){
  .reservation-policy{font-size:10px;padding:12px 13px;gap:10px}
  .reservation-policy.compact{font-size:9px}
}

/* === PATCH V1.7 — Reservation policy mobile refinement === */
/* Keep the notice visually consistent with the editorial language of the site,
   and protect it from section-specific paragraph styles. */
.reservation-policy,
.menu-content .reservation-policy,
.final-copy .reservation-policy,
.gallery-grid .reservation-policy,
.hero-content .reservation-policy{
  box-sizing:border-box;
}
.reservation-policy p,
.menu-content .reservation-policy p:not(.jp-kicker),
.final-copy .reservation-policy p:not(.jp-kicker),
.gallery-grid .reservation-policy p,
.hero-content .reservation-policy p{
  margin:0;
  max-width:none;
  font-family:var(--sans);
  font-size:inherit;
  font-weight:400;
  line-height:1.6;
  color:inherit;
  text-align:left;
}

@media (max-width:640px){
  .reservation-policy,
  .reservation-policy.compact{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    align-items:start;
    gap:12px;
    width:100%;
    max-width:100%;
    margin-top:14px;
    padding:13px 14px;
    font-size:8.5px;
    line-height:1.55;
    text-align:left;
    border-radius:0;
  }

  .reservation-policy > span{
    width:44px;
    height:44px;
    min-width:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:0;
    font-family:var(--serif);
    font-size:17px;
    font-weight:500;
    line-height:1;
    letter-spacing:0;
  }
  .reservation-policy > span::after{
    content:"′";
    margin-left:2px;
    font-family:var(--sans);
    font-size:9px;
    font-weight:600;
    line-height:1;
  }

  .reservation-policy p,
  .menu-content .reservation-policy p:not(.jp-kicker),
  .final-copy .reservation-policy p:not(.jp-kicker),
  .gallery-grid .reservation-policy p,
  .hero-content .reservation-policy p{
    margin:0!important;
    padding:0!important;
    max-width:none!important;
    font-family:var(--sans)!important;
    font-size:8.5px!important;
    font-weight:400!important;
    line-height:1.65!important;
    letter-spacing:.01em!important;
    color:inherit!important;
    text-align:left!important;
  }

  .reservation-policy strong{
    font-weight:650;
  }

  .reservation-policy.on-dark{
    background:rgba(8,7,6,.30);
    border-color:rgba(247,241,231,.22);
  }
  .reservation-policy.on-dark > span{
    color:var(--white);
    border-color:rgba(247,241,231,.32);
    background:rgba(255,255,255,.035);
  }

  .reservation-policy.on-light{
    background:rgba(166,35,29,.035);
    border-color:rgba(166,35,29,.20);
    color:rgba(18,16,15,.82);
  }
  .reservation-policy.on-light > span{
    color:var(--red);
    border-color:rgba(166,35,29,.28);
    background:rgba(166,35,29,.035);
  }

  .reservation-policy.on-red{
    background:rgba(92,7,4,.16);
    border-color:rgba(255,255,255,.25);
  }
  .reservation-policy.on-red > span{
    color:var(--white);
    border-color:rgba(255,255,255,.34);
    background:rgba(255,255,255,.04);
  }
}

/* === PATCH V1.9 — language switcher 6 lingue === */
@media (max-width:640px){
  .topbar{padding-left:12px;padding-right:12px;gap:6px}
  .nav-cta{display:none}
  .brand{gap:7px;flex:0 0 auto}
  .brand-mark{width:36px;height:36px;font-size:20px}
  .brand-copy small{display:none}
  .lang-switcher{margin-left:auto;gap:1px;flex-wrap:nowrap}
  .lang-switcher a{font-size:6.5px;letter-spacing:.04em;padding:4px 4px;white-space:nowrap}
}
@media (max-width:370px){
  .brand-copy{display:none}
  .lang-switcher a{padding:4px 3px}
}
