
:root{--ink:#17130f;--paper:#fbf8f2;--cream:#f3ece1;--gold:#927044;--line:rgba(90,65,38,.22);--dark:#17130f}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Serif JP",serif}.restaurant-main{padding-top:82px}.restaurant-main p,.restaurant-main h1,.restaurant-main h2,.restaurant-main h3,.restaurant-main li{word-break:normal;line-break:strict;overflow-wrap:normal;text-wrap:pretty}.restaurant-main h1,.restaurant-main h2,.restaurant-main h3{text-wrap:balance}.restaurant-hero{min-height:72vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--dark);color:#fff}.restaurant-hero-image{position:relative;min-height:72vh}.restaurant-hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.restaurant-hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,19,15,.02),rgba(23,19,15,.32))}.restaurant-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:8vw 7vw}.eyebrow{font:500 12px/1.2 "Cormorant Garamond",serif;letter-spacing:.26em;text-transform:uppercase;color:#b59469}.eyebrow.dark{color:#8e6d43}.restaurant-hero h1{font:500 clamp(52px,6vw,94px)/.95 "Cormorant Garamond",serif;letter-spacing:.06em;margin:14px 0 22px}.hero-lead{font-size:clamp(17px,1.45vw,23px);line-height:1.95;color:#eee4d5;max-width:34em}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:49px;padding:13px 22px;border:1px solid #b89968;text-decoration:none;font-family:inherit;font-size:13px;letter-spacing:.07em}.button.light{background:#f6efe5;color:#241b13}.button.ghost{color:#fff}.button.dark{background:#17130f;color:#fff;border-color:#17130f}.button.outline{color:#17130f;background:transparent;border-color:#795a36}.restaurant-facts{display:grid;grid-template-columns:.7fr .9fr 1.4fr;border-bottom:1px solid var(--line);background:#eee5d8}.restaurant-facts>div{padding:26px 30px;border-right:1px solid var(--line)}.restaurant-facts>div:last-child{border-right:0}.restaurant-facts span{display:block;font-size:10px;letter-spacing:.18em;color:#806342;margin-bottom:7px}.restaurant-facts strong{font-size:16px;font-weight:500;line-height:1.6}.restaurant-content{max-width:1280px;margin:auto;padding:92px 48px}.intro-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:80px;padding-bottom:90px}.intro-grid h2,.menu-copy h2,.menu-block h2,.course-card h2{font:500 clamp(38px,4.4vw,68px)/1.13 "Cormorant Garamond",serif;margin:10px 0 18px;letter-spacing:.02em}.body-copy p,.menu-copy>p,.course-card>p{font-size:16px;line-height:2;color:#4c4136}.member-benefit{display:flex;align-items:baseline;gap:18px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:28px 0 16px}.member-benefit span{font-size:12px;letter-spacing:.14em;color:#7d6244}.member-benefit strong{font:500 27px/1.2 "Cormorant Garamond",serif}.note{font-size:13px!important;color:#74675b!important}.menu-section{padding:82px 0;border-top:1px solid var(--line)}.bar-section{display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:start}.menu-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:32px 0}.price-grid>div{border:1px solid var(--line);padding:22px}.price-grid span,.simple-price span{display:block;font-size:12px;letter-spacing:.08em;color:#78634b}.price-grid strong{display:block;font:500 42px/1.1 "Cormorant Garamond",serif;margin:8px 0}.price-grid small{font-size:11px;color:#7d7064}.benefit-box{margin-top:18px;padding:22px 24px;background:#f1e9dd;border-left:2px solid #9b7546}.benefit-box h3{font-size:18px;font-weight:500;margin:0 0 9px}.benefit-box p{font-size:13px;line-height:1.9;color:#574b3f;margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.menu-block{padding:34px;border:1px solid var(--line);background:#fcfaf6}.simple-price{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}.simple-price strong{font:500 34px/1 "Cormorant Garamond",serif}.course-stack{border-top:1px solid var(--line)}.course-card{padding:76px 0;border-bottom:1px solid var(--line)}.course-head{display:flex;justify-content:space-between;gap:36px;align-items:flex-end;margin-bottom:22px}.course-head h2{margin-bottom:0}.course-prices{display:grid;gap:5px;text-align:right;font:500 20px/1.35 "Cormorant Garamond",serif;letter-spacing:.02em}.course-card ol{list-style:none;padding:0;margin:30px 0 0;counter-reset:item;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.course-card li{counter-increment:item;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.65}.course-card li:before{content:counter(item,decimal-leading-zero);display:inline-block;width:38px;margin-right:10px;color:#906c3f;font-family:"Cormorant Garamond",serif}.drink-note{display:flex;justify-content:space-between;gap:18px;margin-top:26px;padding:18px 20px;background:#efe6d9}.drink-note span{font-family:"Cormorant Garamond",serif;letter-spacing:.18em}.drink-note strong{font-size:13px;font-weight:500}.featured-course{background:#191510;color:#f5eee3;margin:0 -48px;padding:76px 48px;border:0}.featured-course .eyebrow{color:#c7a878}.featured-course>p,.featured-course .note{color:#ded2c2!important}.featured-course li{border-color:rgba(255,255,255,.16)}.featured-course li:before{color:#c7a878}.restaurant-bottom{text-align:center;background:#eee5d8;padding:88px 24px}.restaurant-bottom h2{font:500 clamp(40px,5vw,68px)/1.12 "Cormorant Garamond",serif;margin:0 0 12px}.restaurant-bottom>p:not(.eyebrow){color:#5a4d40}.restaurant-bottom .hero-actions{justify-content:center}
@media(max-width:820px){.restaurant-main{padding-top:64px}.restaurant-hero{grid-template-columns:1fr}.restaurant-hero-image{min-height:58vw}.restaurant-hero-copy{padding:46px 22px 54px}.restaurant-hero h1{font-size:50px}.hero-lead{font-size:15px}.hero-actions .button{width:100%}.restaurant-facts{grid-template-columns:1fr 1fr}.restaurant-facts>div{padding:18px 16px}.restaurant-facts>div:nth-child(2){border-right:0}.restaurant-facts>div:last-child{grid-column:1/-1;border-top:1px solid var(--line)}.restaurant-facts strong{font-size:14px}.restaurant-content{padding:64px 22px}.intro-grid{grid-template-columns:1fr;gap:28px;padding-bottom:64px}.intro-grid h2,.menu-copy h2,.menu-block h2,.course-card h2{font-size:clamp(32px,9vw,44px);line-height:1.25}.body-copy p,.menu-copy>p,.course-card>p{font-size:14px;line-height:2}.menu-section{padding:60px 0}.bar-section{grid-template-columns:1fr;gap:36px}.menu-photo{order:-1}.menu-photo img{aspect-ratio:16/11}.price-grid{grid-template-columns:1fr 1fr;gap:8px}.price-grid>div{padding:17px 14px}.price-grid strong{font-size:34px}.two-col{grid-template-columns:1fr;gap:12px}.menu-block{padding:26px 20px}.course-head{display:block}.course-prices{text-align:left;margin-top:16px;font-size:18px}.course-card{padding:58px 0}.course-card ol{grid-template-columns:1fr}.featured-course{margin:0 -22px;padding:58px 22px}.drink-note{display:block}.drink-note strong{display:block;margin-top:7px;line-height:1.8}.restaurant-bottom{padding:68px 22px}.restaurant-bottom h2{font-size:40px}.member-benefit{display:block}.member-benefit strong{display:block;margin-top:8px}}


/* Mobile scroll stability fix — prevent horizontal jitter / layout wobble */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
.restaurant-main,
.restaurant-main > section,
.restaurant-content,
.restaurant-hero,
.restaurant-facts,
.restaurant-bottom {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.restaurant-main * {
  min-width: 0;
}

@media (max-width: 820px) {
  html, body {
    overflow-x: clip;
    overscroll-behavior-x: none;
  }

  .restaurant-main {
    overflow-x: clip;
    contain: paint;
  }

  /* Avoid sub-pixel full-bleed calculations that can cause side-to-side jitter on mobile Safari */
  .featured-course {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
  }

  .restaurant-content,
  .restaurant-hero-copy,
  .restaurant-facts,
  .restaurant-bottom,
  .menu-section,
  .course-card,
  .menu-block,
  .benefit-box,
  .drink-note {
    max-width: 100%;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  .restaurant-main p,
  .restaurant-main li,
  .restaurant-main strong,
  .restaurant-main span,
  .restaurant-main a {
    overflow-wrap: anywhere;
  }

  /* Keep scroll-time rendering stable */
  .restaurant-main,
  .restaurant-main * {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
}


/* Mobile scroll stability master fix */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.restaurant-main,.restaurant-main>section,.restaurant-content,.restaurant-hero,.restaurant-facts,.restaurant-bottom{width:100%;max-width:100%;min-width:0}
.restaurant-main *{min-width:0}
@media(max-width:820px){
  html,body{overflow-x:clip;overscroll-behavior-x:none}
  .restaurant-main{overflow-x:clip;contain:paint}
  .featured-course{margin-left:0!important;margin-right:0!important;width:100%!important}
  .restaurant-content,.restaurant-hero-copy,.restaurant-facts,.restaurant-bottom,.menu-section,.course-card,.menu-block,.benefit-box,.drink-note{max-width:100%}
  .restaurant-main img,.restaurant-main video{max-width:100%;height:auto}
  .restaurant-main p,.restaurant-main li,.restaurant-main strong,.restaurant-main span,.restaurant-main a{overflow-wrap:anywhere}
}


/* Pairing Course example gallery master */
.pairing-example-section{margin-top:96px;padding-top:72px;border-top:1px solid rgba(30,22,15,.16)}
.pairing-example-intro{max-width:760px;margin:0 0 44px}.pairing-example-intro h2{margin:10px 0 18px;font:500 clamp(38px,5vw,72px)/.98 "Cormorant Garamond","Noto Serif JP",serif}.pairing-example-intro p:last-child{max-width:660px;line-height:1.9}
.pairing-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 22px}.pairing-example-card{appearance:none;border:0;background:transparent;color:inherit;padding:0;margin:0;text-align:left;cursor:pointer;min-width:0}.pairing-example-image{position:relative;overflow:hidden;background:#17130f;aspect-ratio:4/5}.pairing-example-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.22,.61,.36,1)}.pairing-example-number{position:absolute;left:14px;bottom:12px;color:#fff;font:500 17px/1 "Cormorant Garamond",serif;letter-spacing:.12em;text-shadow:0 1px 8px rgba(0,0,0,.6)}.pairing-example-caption{padding:14px 2px 0}.pairing-example-title{margin:0;font:500 29px/1 "Cormorant Garamond","Noto Serif JP",serif}.pairing-example-wine{margin:8px 0 7px;font-size:11px;letter-spacing:.13em;text-transform:uppercase;opacity:.72}.pairing-example-sub{margin:0;font-size:13px;line-height:1.65;opacity:.78}@media(hover:hover) and (pointer:fine){.pairing-example-card:hover .pairing-example-image img{transform:scale(1.025)}}
body.pairing-modal-open{overflow:hidden}.pairing-modal{position:fixed;inset:0;z-index:9999;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}.pairing-modal.is-open{visibility:visible;opacity:1;pointer-events:auto}.pairing-modal-backdrop{position:absolute;inset:0;background:rgba(11,9,7,.94);backdrop-filter:blur(8px)}.pairing-modal-panel{position:absolute;inset:24px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);max-width:1440px;margin:auto;background:#f1ede5;color:#18130e;overflow:hidden}.pairing-modal-close{position:absolute;z-index:4;top:14px;right:16px;width:46px;height:46px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font:300 30px/1 "Cormorant Garamond",serif;cursor:pointer}.pairing-modal-media{min-width:0;background:#0d0b09}.pairing-modal-media img{width:100%;height:100%;display:block;object-fit:cover}.pairing-modal-content{padding:58px 54px 42px;overflow-y:auto;min-width:0}.pairing-modal-meta{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(24,19,14,.18);font-size:10px;letter-spacing:.16em}.pairing-modal-content h2{margin:28px 0 8px;font:500 clamp(48px,5vw,78px)/.9 "Cormorant Garamond","Noto Serif JP",serif}.pairing-modal-sub{margin:0 0 38px;font-size:13px;line-height:1.7;opacity:.65}.pairing-modal-copy{display:grid;gap:32px}.pairing-modal-label{margin:0 0 9px;font-size:10px;letter-spacing:.18em;opacity:.55}.pairing-modal-copy p{margin:0;line-height:1.95;font-size:14px}.pairing-modal-copy h3{margin:0 0 12px;font:500 23px/1.2 "Cormorant Garamond","Noto Serif JP",serif}.pairing-modal-nav{display:grid;grid-template-columns:1fr 1fr;margin-top:42px;border-top:1px solid rgba(24,19,14,.18)}.pairing-modal-nav button{appearance:none;border:0;background:transparent;padding:18px 0;text-align:left;font:500 11px/1.2 "Noto Serif JP",serif;letter-spacing:.08em;cursor:pointer}.pairing-modal-nav button:last-child{text-align:right}
@media(max-width:900px){.pairing-example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pairing-modal-panel{inset:0;display:block;overflow-y:auto;background:#f1ede5}.pairing-modal-media{height:auto;aspect-ratio:4/5}.pairing-modal-media img{height:100%}.pairing-modal-content{overflow:visible;padding:30px 20px 34px}.pairing-modal-close{position:fixed;top:14px;right:14px}.pairing-modal-content h2{font-size:clamp(44px,14vw,62px)}.pairing-modal-copy p{font-size:14px;line-height:1.9}}
@media(max-width:600px){.pairing-example-section{margin-top:66px;padding-top:48px}.pairing-example-intro{margin-bottom:30px}.pairing-example-intro h2{font-size:clamp(36px,12vw,52px)}.pairing-example-grid{grid-template-columns:1fr;gap:34px}.pairing-example-title{font-size:31px}.pairing-example-caption{padding-top:12px}}


/* Mobile Pairing modal: keep full explanation visible and scrollable */
@media (max-width:900px){
  .pairing-modal{
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }

  .pairing-modal-backdrop{
    position:fixed;
  }

  .pairing-modal-panel{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    min-height:100%;
    max-width:none !important;
    margin:0 !important;
    display:block !important;
    overflow:visible !important;
  }

  .pairing-modal-media{
    width:100%;
    height:52vh !important;
    min-height:320px;
    max-height:520px;
    aspect-ratio:auto !important;
    position:relative;
    overflow:hidden;
  }

  .pairing-modal-media img{
    width:100%;
    height:100% !important;
    object-fit:cover;
  }

  .pairing-modal-content{
    position:relative;
    display:block !important;
    width:100%;
    min-height:0;
    overflow:visible !important;
    padding:26px 20px 42px !important;
    background:#f1ede5;
    color:#18130e;
  }

  .pairing-modal-meta{
    margin-bottom:20px;
  }

  .pairing-modal-content h2{
    margin-top:18px !important;
    margin-bottom:10px !important;
    font-size:clamp(42px,13vw,60px) !important;
    line-height:.92 !important;
    overflow-wrap:anywhere;
  }

  .pairing-modal-sub{
    margin-bottom:28px !important;
    font-size:13px !important;
    line-height:1.75 !important;
  }

  .pairing-modal-copy{
    display:block !important;
  }

  .pairing-modal-copy > div{
    margin-bottom:30px;
  }

  .pairing-modal-copy p{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    max-height:none !important;
    overflow:visible !important;
    white-space:normal !important;
    font-size:14px !important;
    line-height:1.95 !important;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .pairing-modal-copy h3{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    white-space:normal !important;
    overflow-wrap:anywhere;
  }

  .pairing-modal-nav{
    margin-top:26px !important;
    padding-bottom:max(14px, env(safe-area-inset-bottom));
  }

  .pairing-modal-close{
    position:fixed !important;
    z-index:10001 !important;
  }

  body.pairing-modal-open{
    overflow:hidden !important;
    touch-action:auto;
  }
}

@media (max-width:430px){
  .pairing-modal-media{
    height:46vh !important;
    min-height:280px;
  }

  .pairing-modal-content{
    padding-left:18px !important;
    padding-right:18px !important;
  }
}


/* V3 — Mobile pairing detail must be visible immediately */
@media (max-width: 900px) {
  .pairing-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    background: #f1ede5 !important;
    -webkit-overflow-scrolling: touch;
  }

  .pairing-modal.is-open {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .pairing-modal-backdrop {
    display: none !important;
  }

  .pairing-modal-panel {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
    background: #f1ede5 !important;
    color: #18130e !important;
  }

  .pairing-modal-media {
    width: 100% !important;
    height: 32vh !important;
    min-height: 220px !important;
    max-height: 340px !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    background: #111 !important;
  }

  .pairing-modal-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
  }

  .pairing-modal-content {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    min-height: auto !important;
    overflow: visible !important;
    padding: 22px 20px 46px !important;
    background: #f1ede5 !important;
    color: #18130e !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .pairing-modal-meta,
  .pairing-modal-sub,
  .pairing-modal-copy,
  .pairing-modal-copy > div,
  .pairing-modal-label,
  #pairingModalDish,
  #pairingModalWine,
  #pairingModalPairing,
  .pairing-modal-nav {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #18130e !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .pairing-modal-meta {
    display: flex !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin-bottom: 16px !important;
  }

  .pairing-modal-content h2 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #18130e !important;
    margin: 16px 0 8px !important;
    font-size: clamp(40px, 12vw, 58px) !important;
    line-height: .95 !important;
  }

  .pairing-modal-sub {
    margin: 0 0 24px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
  }

  .pairing-modal-copy {
    margin-top: 8px !important;
  }

  .pairing-modal-copy > div {
    margin: 0 0 28px !important;
  }

  .pairing-modal-label {
    margin: 0 0 8px !important;
    font-size: 10px !important;
    letter-spacing: .18em !important;
    color: rgba(24,19,14,.58) !important;
  }

  #pairingModalDish,
  #pairingModalPairing {
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.95 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #pairingModalWine {
    margin: 0 0 10px !important;
    font-size: 22px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
  }

  .pairing-modal-nav {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    margin-top: 18px !important;
    padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
    border-top: 1px solid rgba(24,19,14,.18) !important;
  }

  .pairing-modal-close {
    position: fixed !important;
    top: 12px !important;
    right: 12px !important;
    z-index: 100000 !important;
  }
}

@media (max-width: 430px) {
  .pairing-modal-media {
    height: 29vh !important;
    min-height: 200px !important;
    max-height: 290px !important;
  }

  .pairing-modal-content {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* Pairing gallery image text contrast */
.pairing-example-image::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,.02) 45%,
      rgba(0,0,0,.20) 68%,
      rgba(0,0,0,.62) 100%);
  z-index:1;
}
.pairing-example-number{
  z-index:2 !important;
  color:#fff !important;
  text-shadow:
    0 1px 2px rgba(0,0,0,.9),
    0 3px 12px rgba(0,0,0,.75) !important;
}

/* Slightly stronger treatment on the first dish, where the background is brightest */
.pairing-example-card:first-child .pairing-example-image::after{
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,.06) 36%,
      rgba(0,0,0,.26) 62%,
      rgba(0,0,0,.72) 100%);
}


/* VERIFIED FIX: Restaurant first/hero image text readability */
.restaurant-hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(8,7,6,.72) 0%,
      rgba(8,7,6,.58) 38%,
      rgba(8,7,6,.24) 68%,
      rgba(8,7,6,.08) 100%),
    linear-gradient(0deg,
      rgba(8,7,6,.34) 0%,
      rgba(8,7,6,.02) 48%);
}
.restaurant-hero-copy{
  z-index:2 !important;
}
.restaurant-hero-copy .eyebrow,
.restaurant-hero-copy h1,
.restaurant-hero-copy .hero-lead{
  color:#fff !important;
  text-shadow:0 2px 14px rgba(0,0,0,.72) !important;
}
@media(max-width:900px){
  .restaurant-hero-image::after{
    background:
      linear-gradient(0deg,
        rgba(8,7,6,.82) 0%,
        rgba(8,7,6,.55) 42%,
        rgba(8,7,6,.15) 72%,
        rgba(8,7,6,.04) 100%);
  }
  .restaurant-hero-copy{
    z-index:2 !important;
  }
}


/* FINAL MOBILE PAIRING DETAIL — explanation is part of the opened sheet */
@media (max-width:900px){
  html:has(.pairing-modal.is-open),
  body.pairing-modal-open{
    overflow:hidden !important;
  }

  .pairing-modal{
    position:fixed !important;
    inset:0 !important;
    z-index:999999 !important;
    display:none !important;
    background:#f1ede5 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
  }

  .pairing-modal.is-open{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .pairing-modal-backdrop{display:none !important;}

  .pairing-modal-panel{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    max-width:none !important;
    min-height:100% !important;
    margin:0 !important;
    display:flex !important;
    flex-direction:column !important;
    overflow:visible !important;
    background:#f1ede5 !important;
  }

  .pairing-modal-media{
    flex:0 0 auto !important;
    width:100% !important;
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
    background:#111 !important;
  }

  .pairing-modal-media img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    display:block !important;
  }

  .pairing-modal-content{
    flex:0 0 auto !important;
    display:block !important;
    width:100% !important;
    min-height:0 !important;
    padding:22px 18px 52px !important;
    overflow:visible !important;
    background:#f1ede5 !important;
    color:#18130e !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .pairing-modal-meta{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    color:#18130e !important;
  }

  .pairing-modal-content h2,
  .pairing-modal-sub,
  .pairing-modal-copy,
  .pairing-modal-copy > div,
  .pairing-modal-label,
  #pairingModalDish,
  #pairingModalWine,
  #pairingModalPairing,
  .pairing-modal-nav{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    color:#18130e !important;
  }

  .pairing-modal-content h2{
    margin:16px 0 8px !important;
    font-size:clamp(40px,12vw,58px) !important;
    line-height:.95 !important;
  }

  .pairing-modal-sub{
    margin:0 0 24px !important;
    font-size:13px !important;
    line-height:1.7 !important;
  }

  .pairing-modal-copy{margin-top:6px !important;}
  .pairing-modal-copy > div{margin:0 0 30px !important;}

  .pairing-modal-label{
    margin:0 0 9px !important;
    font-size:10px !important;
    letter-spacing:.18em !important;
    color:rgba(24,19,14,.55) !important;
  }

  #pairingModalDish,
  #pairingModalPairing{
    margin:0 !important;
    font-size:14px !important;
    line-height:1.95 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }

  #pairingModalWine{
    margin:0 0 12px !important;
    font-size:22px !important;
    line-height:1.25 !important;
    white-space:normal !important;
  }

  .pairing-modal-nav{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    margin-top:18px !important;
    border-top:1px solid rgba(24,19,14,.18) !important;
    padding-bottom:max(18px,env(safe-area-inset-bottom)) !important;
  }

  .pairing-modal-close{
    position:fixed !important;
    top:12px !important;
    right:12px !important;
    z-index:1000000 !important;
  }
}


/* V6 clean Restaurant hero treatment: preserve the photograph */
.restaurant-hero-image::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:linear-gradient(90deg,rgba(8,7,6,.52) 0%,rgba(8,7,6,.32) 34%,rgba(8,7,6,.08) 58%,rgba(8,7,6,0) 76%) !important;
}
.restaurant-hero-copy{
  position:absolute !important;
  z-index:3 !important;
}
.restaurant-hero-copy .eyebrow,
.restaurant-hero-copy h1,
.restaurant-hero-copy .hero-lead{
  color:#fff !important;
  text-shadow:0 1px 8px rgba(0,0,0,.52) !important;
}
@media(max-width:900px){
  .restaurant-hero-image::after{
    background:linear-gradient(0deg,rgba(8,7,6,.58) 0%,rgba(8,7,6,.28) 34%,rgba(8,7,6,.04) 64%,rgba(8,7,6,0) 82%) !important;
  }
  .restaurant-hero-copy{
    background:rgba(10,9,8,.20) !important;
    backdrop-filter:blur(1.5px);
    -webkit-backdrop-filter:blur(1.5px);
  }
}

/* V6 rebuilt Pairing detail. Independent of all legacy .pairing-modal rules. */
.pairing-detail{
  position:fixed;
  inset:0;
  z-index:1000000;
  display:none;
  overflow:hidden;
}
.pairing-detail.is-open{display:block;}
.pairing-detail-backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,8,6,.78);
  backdrop-filter:blur(7px);
}
.pairing-detail-sheet{
  position:absolute;
  inset:24px;
  max-width:1320px;
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  background:#f1ede5;
  color:#18130e;
  overflow:hidden;
}
.pairing-detail-photo{min-width:0;background:#111;}
.pairing-detail-photo img{display:block;width:100%;height:100%;object-fit:cover;}
.pairing-detail-body{padding:52px 48px 38px;overflow-y:auto;}
.pairing-detail-close{
  position:absolute;top:14px;right:14px;z-index:5;width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.38);color:#fff;
  font:300 30px/1 "Cormorant Garamond",serif;
}
.pairing-detail-kicker{display:flex;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid rgba(24,19,14,.18);font-size:10px;letter-spacing:.16em;}
.pairing-detail-body h2{margin:26px 0 8px;font:500 clamp(46px,5vw,76px)/.92 "Cormorant Garamond","Noto Serif JP",serif;}
.pairing-detail-sub{margin:0 0 30px;font-size:13px;line-height:1.7;opacity:.65;}
.pairing-detail-section{margin:0 0 30px;}
.pairing-detail-label{margin:0 0 9px;font-size:10px;letter-spacing:.18em;opacity:.55;}
.pairing-detail-section p:not(.pairing-detail-label){margin:0;font-size:14px;line-height:1.95;}
.pairing-detail-section h3{margin:0 0 11px;font:500 23px/1.2 "Cormorant Garamond","Noto Serif JP",serif;}
.pairing-detail-nav{display:grid;grid-template-columns:1fr 1fr;margin-top:36px;border-top:1px solid rgba(24,19,14,.18);}
.pairing-detail-nav button{border:0;background:transparent;padding:18px 0;text-align:left;font:500 11px/1.2 "Noto Serif JP",serif;}
.pairing-detail-nav button:last-child{text-align:right;}
html.pairing-detail-open,body.pairing-detail-open{overflow:hidden !important;}

@media(max-width:900px){
  .pairing-detail{
    overflow-y:auto !important;
    background:#f1ede5;
    -webkit-overflow-scrolling:touch;
  }
  .pairing-detail-backdrop{display:none;}
  .pairing-detail-sheet{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    max-width:none !important;
    min-height:100% !important;
    margin:0 !important;
    display:block !important;
    overflow:visible !important;
  }
  .pairing-detail-photo{
    width:100%;
    height:245px;
    overflow:hidden;
  }
  .pairing-detail-photo img{height:100%;object-fit:cover;}
  .pairing-detail-body{
    display:block !important;
    overflow:visible !important;
    padding:22px 18px 48px !important;
    color:#18130e !important;
    background:#f1ede5 !important;
  }
  .pairing-detail-kicker{display:flex !important;}
  .pairing-detail-body h2{
    display:block !important;
    margin:16px 0 8px !important;
    font-size:clamp(40px,12vw,58px) !important;
    color:#18130e !important;
  }
  .pairing-detail-sub,
  .pairing-detail-section,
  .pairing-detail-section p,
  .pairing-detail-section h3{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    max-height:none !important;
    overflow:visible !important;
    color:#18130e !important;
  }
  .pairing-detail-sub{margin-bottom:24px !important;color:rgba(24,19,14,.65) !important;}
  .pairing-detail-section{margin-bottom:30px !important;}
  .pairing-detail-label{color:rgba(24,19,14,.55) !important;}
  .pairing-detail-section p:not(.pairing-detail-label){font-size:14px !important;line-height:1.95 !important;}
  .pairing-detail-section h3{font-size:22px !important;line-height:1.25 !important;}
  .pairing-detail-close{position:fixed !important;top:12px;right:12px;}
  .pairing-detail-nav{display:grid !important;padding-bottom:max(18px,env(safe-area-inset-bottom));}
}

/* V7 native Pairing details: explanation sits directly in page flow */
.pairing-native-details[hidden]{display:none !important}
.pairing-native-details{display:block;grid-column:1/-1;width:100%;margin:0 0 34px;background:#f1ede5;color:#18130e;border-top:1px solid rgba(24,19,14,.18);border-bottom:1px solid rgba(24,19,14,.18)}
.pairing-native-inner{max-width:900px;margin:0 auto;padding:32px 30px 38px}
.pairing-native-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.16em}
.pairing-native-close{border:0;background:transparent;color:#18130e;font:300 30px/1 "Cormorant Garamond",serif;padding:4px 8px}
.pairing-native-inner h3{margin:18px 0 7px;font:500 clamp(42px,5vw,66px)/.95 "Cormorant Garamond","Noto Serif JP",serif}
.pairing-native-sub{margin:0 0 27px;font-size:13px;line-height:1.7;opacity:.65}
.pairing-native-section{margin-top:25px}
.pairing-native-section>span{display:block;margin-bottom:8px;font-size:10px;letter-spacing:.18em;opacity:.52}
.pairing-native-section h4{margin:0 0 10px;font:500 23px/1.2 "Cormorant Garamond","Noto Serif JP",serif}
.pairing-native-section p{margin:0;font-size:14px;line-height:1.95}
@media(max-width:900px){
 .pairing-native-details{margin:0 0 28px!important;width:100%!important}
 .pairing-native-inner{padding:24px 18px 32px!important}
 .pairing-native-inner h3{font-size:clamp(40px,12vw,56px)!important}
 .pairing-native-sub,.pairing-native-section,.pairing-native-section p,.pairing-native-section h4{display:block!important;visibility:visible!important;opacity:1!important;max-height:none!important;overflow:visible!important;color:#18130e!important}
 .pairing-native-sub{color:rgba(24,19,14,.64)!important}
 .pairing-native-section>span{color:rgba(24,19,14,.55)!important}
}
/* Refined hero: soft localized veil only, no strange blanket shading */
.restaurant-hero-image::after{background:linear-gradient(90deg,rgba(7,6,5,.36) 0%,rgba(7,6,5,.18) 30%,rgba(7,6,5,.04) 48%,transparent 66%)!important}
@media(max-width:900px){
 .restaurant-hero-image::after{background:linear-gradient(0deg,rgba(7,6,5,.40) 0%,rgba(7,6,5,.17) 30%,rgba(7,6,5,.02) 52%,transparent 70%)!important}
 .restaurant-hero-copy{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}


/* v32 — restaurant readability + homepage numeral consistency */
.restaurant-hero-copy .eyebrow,
.restaurant-hero-copy h1,
.restaurant-hero-copy .hero-lead{
  text-shadow:0 2px 12px rgba(0,0,0,.58),0 1px 3px rgba(0,0,0,.48);
}
.pairing-example-number{
  text-shadow:0 2px 10px rgba(0,0,0,.7);
}
.atlas-home-number{
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-style:normal!important;
  font-variant-numeric:lining-nums tabular-nums!important;
  font-feature-settings:"lnum" 1,"tnum" 1!important;
  letter-spacing:.02em;
}
.member-benefit strong .atlas-home-number{
  font-weight:500!important;
}
.menu-copy>h2.atlas-home-number,
.price-grid strong.atlas-home-number{
  font-weight:500!important;
}

/* v33 — hard line breaks + consistent membership discount typography */
html[lang="ja"] .fixed-ja-lines > span{display:block;}
.member-benefit strong{
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-size:27px!important;
  font-weight:500!important;
  font-style:normal!important;
  line-height:1.2!important;
  letter-spacing:.02em!important;
  font-variant-numeric:lining-nums tabular-nums!important;
  font-feature-settings:"lnum" 1,"tnum" 1!important;
}
@media(max-width:820px){
  html[lang="ja"] .hero-lead.fixed-ja-lines > span,
  html[lang="ja"] .intro-grid h2.fixed-ja-lines > span,
  html[lang="ja"] .note.fixed-ja-lines > span{white-space:nowrap;}
  .member-benefit strong{font-size:27px!important;}
}

/* v36 — repair reservation markup and keep the Japanese heading safely inside mobile width */
html[lang="ja"] .reservation-heading > span{font-size:.94em;}
@media(max-width:820px){
  html[lang="ja"] .reservation-heading{font-size:clamp(31px,8.8vw,42px)!important;line-height:1.08!important;}
  html[lang="ja"] .reservation-heading > span{display:block;white-space:nowrap;font-size:1em;}
}


/* v40 — repair malformed language attributes, preserve numeral sizing, and highlight monthly course cadence */
.course-head h2 .atlas-home-number,
.course-prices .atlas-home-number,
.simple-price .atlas-home-number,
.drink-note .atlas-home-number,
.benefit-box .atlas-home-number{
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-size:1em!important;
  line-height:inherit!important;
  font-weight:inherit!important;
  font-style:normal!important;
  vertical-align:baseline!important;
  letter-spacing:inherit!important;
  font-variant-numeric:lining-nums tabular-nums!important;
  font-feature-settings:"lnum" 1,"tnum" 1!important;
}
.course-monthly-note{
  margin:14px 0 34px;
  padding:16px 18px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:#5a4d40;
  font-size:14px;
  line-height:1.8;
  font-weight:500;
  letter-spacing:.02em;
}
@media(max-width:820px){
  .course-monthly-note{margin:4px 0 24px;padding:14px 2px;font-size:13px;line-height:1.75;}
}


/* v41 — course copy line breaks + unified numeral styling */
.course-card li:before,
.pairing-example-number{
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-style:normal!important;
  font-variant-numeric:lining-nums tabular-nums!important;
  font-feature-settings:"lnum" 1,"tnum" 1!important;
}
.course-card li:before{font-weight:500!important;letter-spacing:.02em!important;}
.pairing-example-number{font-weight:500!important;}
.course-head h2 .atlas-home-number,
.course-prices .atlas-home-number{font-size:1em!important;line-height:inherit!important;font-weight:inherit!important;}


/* v43 — keep wrapped text aligned with the first text line after the course number */
.course-card li.course-item-align{
  position:relative;
  padding-left:48px;
}
.course-card li.course-item-align::before{
  position:absolute;
  left:0;
  top:13px;
  width:38px;
  margin-right:0;
}

/* v46: normalize BATCH No. numerals to the site numeral face */
.batch-no-number{font-family:"Cormorant Garamond","Times New Roman",serif!important;font-weight:500!important;font-style:normal!important;font-variant-numeric:lining-nums tabular-nums!important;font-feature-settings:"lnum" 1,"tnum" 1!important;letter-spacing:inherit!important;font-size:1em!important;line-height:inherit!important;}

/* v61 — DESKTOP ONLY: full-width Restaurant hero image. Mobile/tablet styles untouched. */
@media (min-width: 901px){
  .restaurant-hero{
    position:relative;
    display:block;
    min-height:calc(100vh - 82px);
    overflow:hidden;
    background:#17130f;
  }
  .restaurant-hero-image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:0;
  }
  .restaurant-hero-image img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 46%;
  }
  .restaurant-hero-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,
      rgba(10,8,6,.10) 0%,
      rgba(10,8,6,.08) 42%,
      rgba(10,8,6,.42) 68%,
      rgba(10,8,6,.72) 100%)!important;
  }
  .restaurant-hero-copy{
    position:relative;
    z-index:2;
    min-height:calc(100vh - 82px);
    width:min(620px,44vw);
    margin-left:auto;
    padding:7vw 7vw 7vw 4vw;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:transparent!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}
