:root{
  --yht-menu-line:#89ceb7;
  --yht-menu-paper:rgba(255,255,255,.42);
  --yht-menu-ink:#202520;
  --yht-menu-enji:#8b1e1e;
}

html:has(.yht-menu-stage),html:has(.yht-menu-hero){overflow-x:hidden}

/* Production /menu must not inherit Cocoon's article/content gutter. The page class is added only when [yht_menu] is present. */
body.yht-menu-page #content,
body.yht-menu-page .content-in,
body.yht-menu-page main.main,
body.yht-menu-page article.article,
body.yht-menu-page .entry-content{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.yht-menu-page #content,
body.yht-menu-page .content-in,
body.yht-menu-page main.main,
body.yht-menu-page article.article{
  margin-top:0!important;
  padding-top:0!important;
}
body.yht-menu-page .entry-content>.wp-block-shortcode,
.entry-content>.wp-block-shortcode:has(.yht-menu-bleed),
.entry-content>.wp-block-shortcode:has(.yht-menu-stage){
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

.yht-menu-bleed{position:relative;width:100vw;max-width:100vw;left:50%;margin-left:-50vw;isolation:isolate}
@supports(width:100dvw){.yht-menu-bleed{width:100dvw;max-width:100dvw;margin-left:-50dvw}}
.yht-menu-hero-shell{position:relative;display:block;width:100%;max-width:none;margin:0 0 clamp(28px,4vw,58px);--yht-menu-label-size:clamp(110px,18vw,186px)}
.yht-menu-hero{position:relative;display:block;width:100%;max-width:none;height:calc(100vh - var(--yht-menu-cut-bottom,250px));min-height:430px;overflow:hidden;margin:0}
.yht-menu-hero__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.yht-menu-hero__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2}
.yht-menu-hero__title{margin:0;color:#fff;font-family:"Noto Serif JP","Noto Serif",serif;font-weight:300;letter-spacing:.12em;text-shadow:0 0 18px rgba(0,0,0,.32),0 0 4px rgba(0,0,0,.45)}
.yht-menu-hero__title.jp{writing-mode:vertical-rl;text-orientation:upright;font-size:min(4.6vw,28px)}
.yht-menu-hero__title.en{font-size:clamp(20px,4.8vw,26px)}
.yht-menu-hero__label{position:absolute;left:clamp(16px,3vw,32px);top:calc(100% - (var(--yht-menu-label-size) / 2));z-index:4;width:var(--yht-menu-label-size);height:var(--yht-menu-label-size);background:var(--yht-menu-enji);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.22)}
.yht-menu-hero__label span{font-family:"Noto Serif JP","Noto Serif",serif;font-weight:600}
.yht-menu-hero__label.jp span{writing-mode:vertical-rl;text-orientation:upright;font-size:clamp(20px,3.6vw,36px)}
.yht-menu-hero__label.en span{font-size:clamp(18px,3vw,34px)}

.yht-menu-stage{position:relative;display:block;width:100vw;max-width:100vw;left:50%;margin-left:-50vw;overflow:visible;font-family:"Noto Serif JP","Noto Serif",serif;color:var(--yht-menu-ink)}
@supports(width:100dvw){.yht-menu-stage{width:100dvw;max-width:100dvw;margin-left:-50dvw}}
.entry-content:has(.yht-menu-bleed),
.entry-content:has(.yht-menu-stage){overflow:visible}

/* yOS Menu tabs: independent from Cocoon tab blocks. */
.yht-menu-tabs{
  width:min(430px,calc(100% - 32px));
  margin:0 auto 26px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.yht-menu-tab{
  appearance:none;
  min-height:54px;
  padding:10px 18px;
  border:0;
  border-radius:0;
  background:rgba(75,125,85,.78);
  color:#fff;
  font-family:"Noto Serif JP","Noto Serif",serif;
  font-size:16px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:.04em;
  cursor:pointer;
  transition:background-color .2s ease,opacity .2s ease;
}
.yht-menu-tab:hover,.yht-menu-tab:focus-visible{background:rgba(75,125,85,.92);outline:2px solid rgba(137,206,183,.55);outline-offset:2px}
.yht-menu-tab.is-active{background:#4b7d55;color:#fff}
.yht-menu-tabpanel[hidden]{display:none!important}
.yht-menu-tabpanel{width:100%}
.yht-menu-intro--drinks{margin-bottom:48px}

/* yOS Menu: neutralize WordPress/Cocoon heading decorations inside menu body. */
.yht-menu-paper h1,
.yht-menu-paper h2,
.yht-menu-paper h3{
  display:block!important;
  position:static!important;
  margin-left:0!important;
  margin-right:0!important;
  padding:0!important;
  border:0!important;
  border-top:0!important;
  border-right:0!important;
  border-bottom:0!important;
  border-left:0!important;
  border-radius:0!important;
  outline:0!important;
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
  color:var(--yht-menu-ink)!important;
  font-family:"Noto Serif JP","Noto Serif",serif!important;
  font-style:normal!important;
  font-weight:700!important;
  text-align:left!important;
  text-decoration:none!important;
}
.yht-menu-paper h1::before,.yht-menu-paper h1::after,
.yht-menu-paper h2::before,
.yht-menu-paper h3::before,.yht-menu-paper h3::after{
  content:none!important;
  display:none!important;
}
.yht-menu-paper h1{font-size:clamp(30px,3vw,38px)!important;line-height:1.4!important;margin-bottom:34px!important;}
/* Sushizen KADAN: large menu heading + fading mint line. */
.yht-menu-paper h2{
  position:relative!important;
  padding:.25em 0!important;
  font-size:clamp(26px,2.5vw,32px)!important;
  line-height:1.45!important;
  margin-bottom:30px!important;
}
.yht-menu-paper h2::after{
  content:""!important;
  display:block!important;
  width:100%!important;
  height:4px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:-webkit-linear-gradient(to right,rgb(189,225,214),transparent)!important;
  background:linear-gradient(to right,rgb(189,225,214),transparent)!important;
}
.yht-menu-paper h3{font-size:clamp(20px,2vw,24px)!important;line-height:1.55!important;margin-bottom:20px!important;}
.yht-menu-paper{box-sizing:border-box;width:min(960px,calc(100% - 40px));margin:0 auto 72px;padding:78px 96px 86px;background:var(--yht-menu-paper)}
.yht-menu-intro,.yht-menu-section{width:100%;max-width:760px;margin-left:auto;margin-right:auto}
.yht-menu-intro{margin-bottom:64px}
.yht-menu-intro p{margin:0 0 10px;font-size:15px;line-height:2.2;font-weight:400}

.yht-menu-section{margin-bottom:68px}
.yht-menu-section__subtitle,.yht-menu-section__note{margin:0 0 18px;font-size:15px;line-height:2;font-weight:400}
.yht-menu-section__note{margin-top:18px}
.yht-menu-table-wrap{width:100%;overflow:visible}
.yht-menu-table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0;background:transparent;margin:0}
.yht-menu-table .yht-menu-col-name{width:135px}.yht-menu-table .yht-menu-col-price{width:115px}
.yht-menu-table th,.yht-menu-table td{box-sizing:border-box;border:0!important;border-bottom:1px dashed var(--yht-menu-line)!important;background:transparent!important;color:#000;font-family:"Noto Serif JP","Noto Serif",serif;font-size:15px;font-weight:500;line-height:2.2;padding:10px 15px 7px;vertical-align:middle;text-align:left;word-break:normal;overflow-wrap:anywhere}
.yht-menu-table th{font-weight:500}
.yht-menu-table__price{text-align:right!important;white-space:nowrap}
.yht-menu-section-images{display:grid;gap:14px;margin:28px auto 0;align-items:start}
.yht-menu-section-images.is-single{grid-template-columns:minmax(0,330px);justify-content:center}
.yht-menu-section-images.is-multiple{grid-template-columns:repeat(2,minmax(0,1fr))}
.yht-menu-section-images img{display:block;width:100%;aspect-ratio:4 / 3;height:auto;object-fit:cover;object-position:center}

.yht-menu-section--drinks{margin-bottom:0}
.yht-menu-drink-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.yht-menu-drink-card{min-width:0;padding:0;border:0;background:transparent}
.yht-menu-drink-card>h4{margin:0 0 18px;padding:12px 14px;background:rgba(137,206,183,.22);font-size:18px;font-weight:500;line-height:1.5}
.yht-menu-drink-group{margin-bottom:28px}
.yht-menu-drink-group h5{margin:0 0 8px;font-size:16px;font-weight:500}
.yht-menu-drink-group__note{margin:0 0 8px;font-size:13px;line-height:1.8;font-weight:400;color:#455149}
.yht-menu-drink-table{width:100%;table-layout:auto;border-collapse:collapse;border-spacing:0;background:transparent;margin:0}
.yht-menu-drink-table th,.yht-menu-drink-table td{border:0!important;border-bottom:1px dashed var(--yht-menu-line)!important;background:transparent!important;padding:9px 10px 7px;font-size:15px;font-weight:500;line-height:1.8;vertical-align:middle}
.yht-menu-drink-table th{text-align:left;width:34%}
.yht-menu-drink-table__description{text-align:left!important;color:#39423b;font-weight:400!important}
.yht-menu-drink-table__price{text-align:right!important;white-space:nowrap}
.yht-menu-book{appearance:none;width:100%;margin:0;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:center;color:inherit;font:inherit}
.yht-menu-book img{display:block;width:100%;height:auto;max-height:480px;object-fit:contain;background:rgba(255,255,255,.35)}
.yht-menu-book span{display:inline-block;margin-top:10px;padding-bottom:2px;border-bottom:1px solid var(--yht-menu-line);font-size:14px}

.yht-menu-modal[hidden]{display:none!important}.yht-menu-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:28px}
.yht-menu-modal__backdrop{position:absolute;inset:0;border:0;background:rgba(12,18,14,.78);cursor:zoom-out}
.yht-menu-modal__dialog{position:relative;z-index:1;width:min(980px,94vw);max-height:92vh;overflow:auto;background:#fff;padding:18px;box-shadow:0 24px 80px rgba(0,0,0,.38)}
.yht-menu-modal__image{display:block;width:100%;height:auto;max-height:none}
.yht-menu-modal__close{position:sticky;top:0;float:right;z-index:2;width:42px;height:42px;margin:0 0 -42px;border:0;border-radius:999px;background:#111;color:#fff;font-size:26px;line-height:1;cursor:pointer}
body.yht-menu-modal-open{overflow:hidden!important}

@media(max-width:900px){
  .yht-menu-paper{width:min(900px,calc(100% - 32px));padding:58px 8% 66px}
}

@media(max-width:768px){
  .yht-menu-hero-shell{--yht-menu-label-size:120px;margin-bottom:20px}
  .yht-menu-hero{height:auto;min-height:0;aspect-ratio:16 / 9}
  .yht-menu-hero__label{display:none}
  .yht-menu-hero__title.jp{font-size:min(6.4vw,36px)}
  .yht-menu-hero__title.en{font-size:clamp(18px,6.2vw,36px)}
  .yht-menu-paper{width:calc(100% - 24px);padding:36px 20px 46px;margin-bottom:42px}
  .yht-menu-intro{margin-bottom:46px}.yht-menu-intro p{font-size:14px;line-height:2}
  .yht-menu-section{margin-bottom:50px}
  .yht-menu-table,.yht-menu-table tbody,.yht-menu-table tr,.yht-menu-table th,.yht-menu-table td{display:block;width:100%}
  .yht-menu-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px dashed var(--yht-menu-line);padding:11px 0}
  .yht-menu-table th,.yht-menu-table td{border:0!important;padding:2px 8px;font-size:14px;line-height:1.8}
  .yht-menu-table th{grid-column:1;grid-row:1}.yht-menu-table__price{grid-column:2;grid-row:1;align-self:start}.yht-menu-table__description{grid-column:1/-1;grid-row:2;color:#39423b;font-weight:400}
  .yht-menu-section-images.is-single{grid-template-columns:minmax(0,280px)}
  .yht-menu-section-images.is-multiple{gap:8px}
  .yht-menu-drink-grid{grid-template-columns:1fr;gap:32px}
  .yht-menu-drink-table,.yht-menu-drink-table tbody,.yht-menu-drink-table tr,.yht-menu-drink-table th,.yht-menu-drink-table td{display:block;width:100%}
  .yht-menu-drink-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px dashed var(--yht-menu-line);padding:10px 0}
  .yht-menu-drink-table th,.yht-menu-drink-table td{border:0!important;padding:2px 6px;font-size:14px;line-height:1.75}
  .yht-menu-drink-table th{grid-column:1;grid-row:1}
  .yht-menu-drink-table__price{grid-column:2;grid-row:1;align-self:start;white-space:normal;text-align:right!important}
  .yht-menu-drink-table__description{grid-column:1/-1;grid-row:2}
  .yht-menu-modal{padding:12px}.yht-menu-modal__dialog{width:96vw;max-height:94vh;padding:10px}
}

@media(max-width:768px){
  .yht-menu-tabs{
    width:min(520px,calc(100% - 150px));
    max-width:none;
    margin:0 auto 18px;
    gap:6px;
  }
  .yht-menu-tab{min-height:48px;padding:9px 12px;font-size:15px}
}
