:root{--cream:#ffe9ce;--brown:#371c16;--red:#911428;--blue:#252c5b;--yellow:#f3c327;--font-body:"Noto Sans JP","Noto Sans","Hiragino Kaku Gothic ProN",sans-serif;--u:min(1px,.078125vw)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--brown);font:400 16px/2.4 var(--font-body)}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img,picture{display:block}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}a:hover{opacity:.85}main{overflow:clip}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.sp-break{display:none}.pc-break{display:block}
.site-header{position:absolute;top:0;left:0;width:100%;z-index:101;background:var(--red);color:white}.site-header__inner{min-height:calc(104 * var(--u));padding:calc(16 * var(--u)) calc(24 * var(--u));display:flex;align-items:center;justify-content:space-between;gap:calc(40 * var(--u));max-width:1440px;margin:auto}.brand{display:flex;align-items:center;gap:calc(16 * var(--u));flex:none}.brand__mark{width:calc(62 * var(--u));height:auto}.brand__name{width:calc(334.627 * var(--u));height:auto}.desktop-nav{display:flex;align-items:flex-start;gap:calc(40 * var(--u));margin-left:auto;font-size:calc(16 * var(--u));font-weight:700;white-space:nowrap}.desktop-nav a{position:relative}.current-stripe{position:absolute;top:100%;left:0;width:48px;height:8px;background:white url("assets/core-867be.svg") left/16px 8px repeat-x}.header-phone{display:flex;flex:none;gap:calc(8 * var(--u));padding:calc(16 * var(--u)) calc(24 * var(--u));align-items:center;border-radius:100px;background:var(--yellow);color:var(--brown);font-size:calc(20 * var(--u));font-weight:700;line-height:1.8}.header-phone img{width:calc(24 * var(--u));height:auto}.header-phone-sp,.menu-toggle{display:none}
.hero{background:linear-gradient(#111e1999,#111e1999),url("assets/core-062e4.png") center/cover}.hero__canvas{position:relative;height:calc(832 * var(--u));max-width:1280px;margin:auto}.hero__copy{position:absolute;top:calc(200 * var(--u));left:calc(40 * var(--u));width:calc(680.355 * var(--u))}.hero__welcome{width:calc(654.73 * var(--u));height:auto}.hero__tagline{width:calc(642.936 * var(--u));height:auto;margin-top:calc(16 * var(--u))}.hero-reservations{display:grid;grid-template-columns:calc(419 * var(--u)) calc(237 * var(--u));column-gap:calc(24 * var(--u));margin-top:calc(35.6 * var(--u))}.hero-reservations__phone,.hero-reservations__web{display:flex;justify-content:center;align-items:center;gap:calc(16 * var(--u));height:calc(93 * var(--u));border-radius:100px;white-space:nowrap;font-weight:700;line-height:1.8}.hero-reservations__phone{color:var(--brown);background:var(--yellow);font-size:calc(32 * var(--u))}.hero-reservations__phone img{width:calc(48 * var(--u));height:auto}.hero-reservations__web{color:white;background:var(--blue);font-size:calc(24 * var(--u))}.hero-reservations__web img{width:calc(40 * var(--u));height:auto}.phone-note{grid-column:1;margin-top:calc(-8 * var(--u));position:relative}.phone-note__arrow{width:calc(28 * var(--u));height:auto;margin:auto}.phone-note__body{background:white;border-radius:calc(24 * var(--u));padding:calc(16 * var(--u));display:flex;align-items:center;gap:calc(16 * var(--u));color:black}.phone-note__badge{display:block;position:relative;flex:none;width:calc(104 * var(--u))}.phone-note__badge img{width:100%;height:auto}.phone-note__badge strong{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:white;font-size:calc(16 * var(--u));line-height:1.4}.phone-note__body p{font-size:calc(16 * var(--u));line-height:1.8}.hero__plate{position:absolute;left:calc(739 * var(--u));top:calc(392 * var(--u));width:calc(500 * var(--u));aspect-ratio:500/480;z-index:2}.hero__food{position:absolute;bottom:0;width:100%;height:auto}.hero__plate-caption{position:absolute;top:2.76%;right:5.87%;width:44.857%}.hero__plate-caption img{width:100%;height:auto}.hero__plate-caption img+img{position:absolute;top:0;left:0}
.brick-band{height:calc(121 * var(--u));background:url("assets/brick-original.svg") left top/calc(1280 * var(--u)) auto no-repeat;pointer-events:none}.brick-band--left{transform:scaleX(-1)}.intro{background:var(--brown);color:white}.intro__canvas{position:relative;max-width:1280px;height:calc(2228 * var(--u));margin:auto}.intro__brick-top{position:absolute;top:0;width:100%}.intro__brick-bottom{position:absolute;top:calc(2026.397 * var(--u));width:100%}.brand-ribbon{display:flex;position:absolute;top:calc(161 * var(--u));left:calc(16 * var(--u));gap:calc(16 * var(--u));width:max-content}.brand-ribbon__unit{display:flex;align-items:center;gap:calc(16 * var(--u))}.ribbon-town{width:calc(191.066 * var(--u));height:auto}.ribbon-mark{width:calc(62 * var(--u));height:auto}.ribbon-name{width:calc(118.832 * var(--u));height:auto}.ribbon-photo{display:block;width:calc(80 * var(--u));height:calc(80 * var(--u));position:relative;overflow:hidden;background:white}.ribbon-photo img{position:absolute;max-width:none}.ribbon-photo--pasta img{width:168.6%;height:168.25%;left:-37.6%;top:-31.25%}.ribbon-photo--meat img{width:163.85%;height:163.51%;left:-30%;top:-37.26%}.intro__stew{position:absolute;width:calc(480 * var(--u));height:calc(480 * var(--u));object-fit:cover;top:calc(361 * var(--u));right:0}.intro__wine{position:absolute;left:calc(40 * var(--u));top:calc(544 * var(--u));width:calc(465 * var(--u));aspect-ratio:465/415}.intro__wine-photo{position:absolute;bottom:0;left:0;width:68.817%;height:auto}.intro__pasta-art{position:absolute;top:0;right:0;width:47.312%;height:auto}.intro__heading{position:absolute;top:calc(361 * var(--u));left:50%;transform:translateX(-50%);display:flex;flex-direction:row-reverse;gap:calc(64 * var(--u));width:calc(125 * var(--u));font-size:calc(38 * var(--u));font-weight:700;line-height:1.2;color:var(--yellow)}.intro__heading>span{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.2em}.intro__copy{position:absolute;top:calc(1039 * var(--u));left:18.75%;width:62.5%;text-align:center;font-size:calc(20 * var(--u));font-weight:700;line-height:2.4}.intro__copy p+p{margin-top:calc(48 * var(--u))}.intro__birthday{position:absolute;top:calc(1375 * var(--u));left:calc(40 * var(--u));width:calc(480 * var(--u));aspect-ratio:480/474}.intro__birthday-photo{position:absolute;top:0;right:0;width:95.834%;height:auto}.intro__birthday-caption{position:absolute;left:.642%;top:74.477%;width:64.433%;height:auto}.intro__sparkling{position:absolute;top:calc(1426 * var(--u));left:calc(723 * var(--u));width:calc(494 * var(--u));aspect-ratio:494/616.542;z-index:1}.intro__sparkling-glass{position:absolute;right:0;top:0;width:68.826%;height:100%}.intro__sparkling-photo{position:absolute;top:9.657%;width:100%;height:auto}.intro__sparkling-caption{position:absolute;top:1.688%;left:48.36%;width:32.931%;height:auto}.intro__cheers{position:absolute;top:18.977%;left:0;width:29.96%;height:auto}
.commitment{padding:0;background:var(--cream)}.commitment__heading{display:flex;flex-direction:column;align-items:center;gap:calc(48 * var(--u))}.commitment__subtitle{font-size:calc(32 * var(--u));line-height:calc(77 * var(--u));font-weight:700;text-align:center}.commitment__subtitle>span:last-child{position:relative;display:inline-block}.commitment__subtitle img{position:absolute;bottom:calc(6 * var(--u));left:0;width:100%;height:auto}.feature{position:relative;max-width:1280px;margin:calc(120 * var(--u)) auto 0}.feature__copy h3{color:var(--red);font-size:calc(38 * var(--u));line-height:1.8;font-weight:700}.feature__copy p{font-size:calc(20 * var(--u));line-height:2.4;margin-top:calc(40 * var(--u))}.feature--wine{display:grid;grid-template-columns:50% 40.625%;column-gap:6.25%;height:calc(1052 * var(--u))}.wine-collage{grid-row:1/3;width:100%;aspect-ratio:640/1002;position:relative}.wine-collage__shelf{width:100%;aspect-ratio:1;object-fit:cover}.wine-collage__bottles{position:absolute;width:33.75%;height:auto;left:12.5%;top:59.182%}.wine-collage__list{position:absolute;width:37.5%;height:auto;left:56.554%;top:63.43%;transform:rotate(15deg)}.feature--wine .feature__copy{height:calc(384 * var(--u))}.feature--wine .feature__copy h3{height:calc(152 * var(--u))}.pairing{position:relative;width:calc(476 * var(--u));aspect-ratio:476/588;margin-top:calc(80 * var(--u));justify-self:end;overflow:hidden}.pairing__wine{position:absolute;top:0;left:0;width:88.235%;aspect-ratio:1;object-fit:cover}.pairing__medal{position:absolute;width:37.815%;aspect-ratio:1;top:65.306%;right:0;border-radius:50%;overflow:hidden}.pairing__medal img{position:absolute;left:-35%;top:-5.909%;width:157.742%;height:105.769%;object-fit:cover}.pairing__caption{position:absolute;left:14.17%;top:78.47%;width:42.23%;height:auto}.commitment__separator{margin-top:calc(120 * var(--u))}.feature--food{height:calc(682 * var(--u));display:grid;grid-template-columns:40.625% 63.4375%;gap:0 6.25%;padding-left:3.125%}.feature--food .feature__copy{grid-column:1;grid-row:1}.food-plate{grid-column:2;grid-row:1/3;position:relative;width:calc(812 * var(--u));aspect-ratio:812/601}.food-plate__photo{position:absolute;left:1.478%;top:.946%;width:98.522%;height:auto}.food-plate__caption{position:absolute;left:1.47%;top:72.412%;width:61.7%;height:auto}.feature__appetizer{grid-column:1;width:calc(460 * var(--u));height:calc(350 * var(--u));object-fit:cover;justify-self:end;margin-top:calc(80 * var(--u))}.feature--place{display:grid;grid-template-columns:50% 40.625%;column-gap:6.25%;height:calc(770 * var(--u))}.feature__interior{grid-row:1/3;width:100%;height:auto}.shop-collage{display:flex;align-items:center;gap:calc(16 * var(--u));justify-self:end;margin-top:calc(80 * var(--u))}.shop-collage__exterior{width:calc(520 * var(--u));height:calc(390 * var(--u));object-fit:cover}.shop-collage__caption{position:relative;width:calc(253 * var(--u));aspect-ratio:253/176;flex:none}.shop-collage__caption img{position:absolute;width:auto;height:auto;max-width:none}.shop-collage__caption img:nth-child(1){width:32.32%}.shop-collage__caption img:nth-child(2){width:35.56%}.shop-collage__caption img:nth-child(3){width:60.88%}.shop-collage__caption img:nth-child(4){width:28.85%}.shop-collage__caption img:nth-child(5){width:13.66%}.shop-collage__caption img:last-child{width:52.08%}.shop-collage__caption span{position:absolute;left:56.5%;top:58.58%;line-height:1;font-size:calc(26 * var(--u));transform:rotate(11deg)}.commitment__link{display:flex;justify-content:center;align-items:center;gap:calc(16 * var(--u));width:calc(700 * var(--u));height:calc(134 * var(--u));background:var(--red);color:white;border-radius:100px;margin:calc(120 * var(--u)) auto 0;padding:0 calc(48 * var(--u)) 0 calc(80 * var(--u));font-size:calc(24 * var(--u));font-weight:700}.commitment__link img{width:calc(40 * var(--u));height:auto;margin-left:auto}.commitment__bottom{margin-top:calc(120 * var(--u))}
@media(max-width:767px){
:root{--u:1px}.sp-break{display:block}.pc-break{display:none}.site-header__inner{min-height:73.64035px;padding:16px;gap:16px}.brand{gap:9.306px;margin-right:auto;min-width:0}.brand__mark{width:36.062px;height:auto}.brand__name{width:194.632px;height:auto;max-width:calc(100vw - 174px)}.desktop-nav,.header-phone{display:none}.header-phone-sp{display:block;flex:none}.menu-toggle{display:flex;position:relative;flex-direction:column;justify-content:space-between;width:28px;height:22px;padding:0;border:0;background:none;flex:none}.menu-toggle span{width:28px;height:2px;background:white;transition:transform .2s,opacity .2s}.menu-toggle.is-open span:first-child{transform:translateY(10px) rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:last-child{transform:translateY(-10px) rotate(-45deg)}.menu-open .site-header{position:fixed}
.hero{background-size:auto 680px;background-position:center top}.hero__canvas{height:680px;max-width:500px}.hero__copy{top:137.64035px;left:16px;width:calc(100% - 32px)}.hero__welcome{width:96.234%;height:auto}.hero__tagline{width:94.5%;margin-top:8.066px;height:auto}.hero-reservations{grid-template-columns:1.424fr 1fr;column-gap:12px;margin-top:18px}.hero-reservations__phone,.hero-reservations__web{height:56.066px;gap:8.066px}.hero-reservations__phone{font-size:20px}.hero-reservations__phone img{width:24px}.hero-reservations__web{font-size:16px}.hero-reservations__web img{width:20.166px}.phone-note{grid-column:1/-1;margin-top:-3.833px}.phone-note__arrow{width:14.116px;height:auto;margin:0 0 0 26.239%}.phone-note__body{padding:8.066px;gap:8.066px;border-radius:12.1px;min-height:96.132px}.phone-note__badge{width:80px}.phone-note__badge strong{font-size:12px}.phone-note__body p{font-size:12px;line-height:1.8}.hero__plate{top:487px;left:auto;right:16px;width:280px;aspect-ratio:500/480}.brick-band{height:61px;background-size:635px 60px;background-position:left top}
.intro__canvas{max-width:500px;height:auto;min-height:2140px;display:flex;flex-direction:column;padding-bottom:110px}.intro__brick-top{height:61px}.brand-ribbon{top:107.843px;left:8px;gap:12.8px}.brand-ribbon__unit{gap:12.8px}.ribbon-town{width:152.853px}.ribbon-mark{width:49.6px}.ribbon-name{width:95.066px}.ribbon-photo{width:64px;height:64px}.intro__collage{position:relative;height:496.043px;margin-top:211.71px}.intro__stew{top:0;left:0;width:240px;height:240px}.intro__wine{left:auto;right:16px;top:264px;width:260px}.intro__heading{position:static;transform:none;width:auto;display:block;margin:40px 16px 0;font-size:28px;text-align:center;line-height:1.8}.intro__heading>span{display:block;writing-mode:horizontal-tb;letter-spacing:0}.intro__copy{position:static;width:auto;margin:39.768px 16px 0;font-size:16px;line-height:38px}.intro__copy p+p{margin-top:38px}.intro__birthday{position:relative;top:auto;left:auto;margin:40px 0 0 16px;width:300px}.intro__sparkling{position:relative;top:auto;left:auto;width:300px;margin:40px 16px 0 auto}.intro__brick-bottom{top:auto;bottom:56px}
.commitment__heading{margin:0 16px;gap:40px}.commitment__subtitle{font-size:24px;line-height:43.2px;height:94px}.commitment__subtitle img{bottom:-8px}.feature{display:flex;flex-direction:column;gap:40px;margin:48px 16px 0;height:auto;padding:0}.feature__copy h3{font-size:28px;line-height:1.8}.feature__copy p{font-size:16px;line-height:38px;margin-top:24px}.wine-collage{width:100%;aspect-ratio:640/1002}.feature--wine .feature__copy{height:auto}.feature--wine .feature__copy h3{height:auto}.pairing{width:100%;margin:0;aspect-ratio:476/588}.commitment__separator{margin-top:48px}.food-plate{flex:none;width:520px;aspect-ratio:812/601;order:0}.feature--food .feature__copy{order:1}.feature__appetizer{width:280px;height:213px;margin:0;align-self:flex-start;order:2}.feature__interior{width:100%;aspect-ratio:343/228;object-fit:cover}.shop-collage{width:100%;gap:2.028%;margin:0}.shop-collage__caption{width:32.066%}.shop-collage__caption span{font-size:11.303px}.shop-collage__exterior{width:65.906%;height:auto;aspect-ratio:520/390}.commitment__link{width:calc(100% - 32px);height:65.66px;padding:12px 16px;gap:8px;margin-top:40px;font-size:16px}.commitment__link img{width:24px}.commitment__bottom{margin-top:48px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* The artwork uses Figma's original 923 × 221 coordinate system.
   Scale the composition as one unit; individual SVGs retain their native dimensions. */
.kodawari-title-art {
  position: relative;
  container-type: inline-size;
  width: min(923px, 100%);
  aspect-ratio: 923 / 221;
  margin: 0 auto;
  padding: 0;
  isolation: isolate;
  font-size: 0;
  line-height: 0;
}
.kodawari-title-art__canvas {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 923px;
  height: 221px;
  transform-origin: 0 0;
  transform: scale(var(--title-scale, 1));
}
.kodawari-title-art__layer,
.kodawari-title-art__detail { position: absolute; display: block; }
.kodawari-title-art__layer--flip { transform: scaleX(-1); }
.kodawari-title-art__layer--multiply { mix-blend-mode: multiply; }
.kodawari-title-art img {
  display: block;
  width: auto;
  height: auto;
  max-width: none;
}


/* SP navigation: Figma 52:28958, reference width 375 px.
   The shared header owns the open/close toggle and sits above this panel. */
.mobile-menu {
  position: fixed;
  z-index: 100;
  top: var(--mobile-header-height, 73.64035px);
  right: 0;
  bottom: 0;
  left: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  color: #371c16;
  font-family: var(--font-body, "Noto Sans JP", "Noto Sans", sans-serif);
  -webkit-overflow-scrolling: touch;
}
.mobile-menu[hidden] { display: none; }
.mobile-menu *, .mobile-menu *::before, .mobile-menu *::after { box-sizing: border-box; }
.mobile-menu__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
  padding: 48px 16px max(48px, env(safe-area-inset-bottom));
}
.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: min(335px, 100%);
}
.mobile-menu__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  color: #371c16;
  font-size: 16px;
  font-weight: 700;
  line-height: 38px;
  text-decoration: none;
  white-space: nowrap;
}
.mobile-menu__current-bar {
  display: flex;
  width: 48px;
  height: 8px;
  overflow: hidden;
  line-height: 0;
}
.mobile-menu__current-bar img { display: block; flex: 0 0 auto; margin-right: -5px; }
.mobile-menu__social { display: flex; justify-content: space-between; width: 120px; height: 40px; }
.mobile-menu__social-link { display: block; width: 40px; height: 40px; }
.mobile-menu__social-link > img { display: block; }
.mobile-menu__reservations {
  display: grid;
  grid-template-columns: 194.43584fr 136.56416fr;
  align-items: start;
  gap: 12px;
  width: min(343px, 100%);
}
.mobile-menu__reservation {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8.06637px;
  min-width: 0;
  height: 56.06637px;
  padding: 4.033185px 0;
  border-radius: 50.4148px;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
}
.mobile-menu__reservation img { display: block; flex-shrink: 0; }
.mobile-menu__reservation--phone { background: #f3c327; color: #371c16; font-size: 20px; line-height: 2.4; }
.mobile-menu__reservation--web { height: 56px; background: #252c5b; color: #fff; font-size: 16px; line-height: 1.8; }
.mobile-menu a:focus-visible { outline: 2px solid #911428; outline-offset: 5px; }
body.menu-open { overflow: hidden; }
@media (min-width: 768px) { .mobile-menu { display: none; } }
@media (max-width: 359px) {
  .mobile-menu__reservation--phone { font-size: 18px; }
  .mobile-menu__reservation--web { font-size: 14px; }
}

.specialties-pasta { position: relative; width: 100%; max-width:1280px; margin-inline:auto; height: 620px; overflow: hidden; }
.specialties-pasta > img { position: absolute; left: 0; top: -60.55%; width: 150%; height: auto; max-width: none; }
.specialties { position: relative; overflow: hidden; min-height: 1757px; color: #371c16; background: #ffe9cd; }
.specialties h2, .specialties h3, .specialties p { margin: 0; letter-spacing: normal; }
.specialties img { display: block; max-width: none; }
.specialties-background { position: absolute; inset: 586px 0 0; background: url('assets/specialties-base-imgBase.svg') center top / 100% 1171px no-repeat; }
.specialties-noren { width: min(923px, calc(100% - 32px)); aspect-ratio: 923 / 221; margin: 0 auto !important; position: relative; }
.specialties-noren-canvas { transform: scale(var(--specialties-title-scale, 1)); transform-origin: top left; text-align: left; }
.specialties-lead { position: relative; width: fit-content; max-width: calc(100% - 32px); margin: 48px auto 0 !important; font-size: 32px; font-weight: 700; line-height: 2.4; text-align: center; }
.specialties-underline { position: absolute; top: 56.5px; left: 411px; }
.specialties-carousel { position: relative; margin-top: 80px; height: 995.336px; touch-action: pan-y; }
.specialties-slides { height: 100%; }
.specialties-card { position: absolute; top: 0; left: calc(50% + 7.226px); width: 700px; height: 870px; padding: 16px; border-radius: 16px; transform: translateX(-50%); }
.specialties-card.is-current .specialties-card-inner { animation: specialties-card-reveal .18s ease-out; }
@keyframes specialties-card-reveal { from { opacity: .5; } to { opacity: 1; } }
.specialties-card::before { content: ''; position: absolute; inset: 0; border: 1px solid #787878; border-radius: inherit; background: #fff; opacity: .3; }
.specialties-card-inner { position: relative; display: flex; flex-direction: column; gap: 24px; padding: 64px; width: 668px; min-height: 838px; background: #fff; }
.specialties-photo { position: relative; flex: none; width: 540px; height: 382px; overflow: hidden; }
.specialties-photo img { position: absolute; }
.specialties-photo--wine img { top: -37.93%; left: -5.02%; width: 105.02%; height: 189.13%; }
.specialties-photo--appetizer img { top: -18.85%; left: -38.15%; width: 154.88%; height: 146.52%; }
.specialties-photo--bouillabaisse img { inset: 0; width: 100%; height: 100%; object-fit: cover; }
.specialties-card h3 { font-size: 38px; font-weight: 700; line-height: 1.8; color: #911428; }
.specialties-description { font-size: 20px; font-weight: 400; line-height: 2.4; }
.specialties-badges { position: absolute; display: flex; gap: 16px; left: 404px; top: 415px; }
.specialties-badge { position: relative; width: 120px; height: 120px; color: #911428; }
.specialties-badge span { position: absolute; inset: 0; display: grid; align-content: center; text-align: center; font-size: 24px; font-weight: 700; line-height: 1.4; }
.specialties-badge--red { color: #fff; }
.specialties-inset { position: absolute; top: 363px; left: 412px; width: 240px; height: 240px; border: 8px solid #fff; overflow: hidden; }
.specialties-inset img { position: absolute; left: 0; top: -9.2%; width: 112.4%; height: 112.4%; }
.specialties-card.is-previous { left: calc(50% - 1292.773px); top: 218.554px; transform: rotate(-10deg); transform-origin: top left; }
.specialties-card.is-next { left: calc(50% + 603.409px); top: 92.153px; transform: rotate(10deg); transform-origin: top left; }
.specialties-arrow { position: absolute; z-index: 2; top: 482px; width: 80px; height: 80px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.specialties-arrow--previous { left: calc(50% - 470.445px); transform: rotate(180deg); }
.specialties-arrow--next { left: calc(50% + 405.555px); }
@media (min-width:768px) and (max-width:999px) {
  .specialties-arrow--previous {left:16px;}
  .specialties-arrow--next {left:auto;right:16px;}
}
.specialties-arrow:focus-visible, .specialties-menu-link:focus-visible { outline: 3px solid #f3c327; outline-offset: 6px; }
.specialties-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.specialties-menu-link { position: relative; display: flex; align-items: center; justify-content: center; gap: 16px; width: 700px; min-height: 134px; margin: 0 auto; padding: 24px 48px 24px 80px; border-radius: 100px; background: #911428; color: #fff; text-decoration: none; font-size: 24px; font-weight: 700; line-height: 1.8; text-align: center; }
.specialties-menu-link > span:first-child { flex: 1; }
.specialties-menu-arrow { flex: none; width: 40px; height: 40px; }
.specialties-bricks { position: absolute; top: 1635.336px; left: 0; width: 100%; height: 121px; background: url('assets/brick-band-right-pc.jpg') left top / 1280px 121px repeat-x; }
.specialties-photo-strip { display: flex; width: 100%; height: 480px; overflow: hidden; }
.specialties-strip-photo { position: relative; height: 480px; overflow: hidden; flex: none; }
.specialties-strip-photo img { position: absolute; display: block; max-width: none; }
.specialties-strip-photo--first { width: 347px; }
.specialties-strip-photo--first img { width: 100%; height: 100%; object-fit: cover; }
.specialties-strip-photo--second { width: 715px; }
.specialties-strip-photo--second img { width: 101.6%; height: 101.58%; left: -1.3%; top: -.94%; }
.specialties-strip-photo--third { width: 703px; }
.specialties-strip-photo--third img { width: 104.58%; height: 104.54%; left: -2.51%; top: -1.05%; }
@media (max-width: 767px) {
  .specialties-pasta { height: 182px; }
  .specialties { min-height: 940.077px; }
  .specialties-background { top: 344.077px; background-image: url('assets/specialties-52-29380-imgBase.svg'); background-size: 100% 596px; }
  .specialties-noren-canvas { --specialties-title-scale: .3716143; }
  .specialties-lead { margin-top: 40px !important; width: 343px; height: 94px; font-size: 24px; line-height: 1.8; white-space: nowrap; }
  .specialties-lead > span:first-child { display: block; }
  .specialties-underline { top: 83.632px; left: calc(50% - 80px); transform: scale(1.12434, .8578); transform-origin: top left; }
  .specialties-carousel { height: 429.458px; margin-top: 48px; }
  .specialties-card { left: 50%; width: 295px; height: 381.458px; padding: 8.49px; border-radius: 7.84px; }
  .specialties-card::before { border-width: .49px; opacity: .5; }
  .specialties-card-inner { width: 278.02px; min-height: 364.478px; gap: 11.76px; padding: 24px; }
  .specialties-photo { width: 230.02px; height: 162.718px; }
  .specialties-card h3 { font-size: 20px; line-height: 1.8; }
  .specialties-description { font-size: 16px; line-height: 1.8; }
  .specialties-desktop-break { display: none; }
  .specialties-badges { left: 151px; top: 171px; gap: 16px; transform: scale(.5); transform-origin: top left; }
  .specialties-inset { top: 160px; left: 194px; width: 82px; height: 82px; border-width: 3px; }
  .specialties-card.is-previous { left: calc(50% - 375px); top: 0; transform: translateX(-50%); }
  .specialties-card.is-next { left: calc(50% + 375px); top: 0; transform: translateX(-50%); }
  .specialties-card:not(.is-current) { visibility: hidden; }
  .specialties-arrow { top: 171px; width: 40px; height: 40px; }
  .specialties-arrow img { transform: scale(.5); transform-origin: top left; }
  .specialties-arrow--previous { left: calc(50% - 187.5px); }
  .specialties-arrow--next { left: calc(50% + 147.5px); }
  .specialties-menu-link { width: calc(100% - 32px); min-height: 82px; padding: 12px 16px; font-size: 16px; line-height: 1.8; gap: 8px; border-radius: 49px; }
  .specialties-menu-arrow { width: 24px; height: 24px; }
  .specialties-menu-arrow img { transform: scale(.6); transform-origin: top left; }
  .specialties-bricks { top: 823.077px; height: 61px; background-size: 640px 60.5px; background-position: -100px top; }
  .specialties-photo-strip { height: 240.333px; }
  .specialties-strip-photo { height: 240.333px; }
  .specialties-strip-photo--first { width: 173.5px; }
  .specialties-strip-photo--second { width: 357.5px; }
  .specialties-strip-photo--third { width: 351.5px; }
  .specialties.is-expanded { min-height: 1110px; }
  .specialties.is-expanded .specialties-carousel { height: 599.458px; }
  .specialties.is-expanded .specialties-card, .specialties.is-expanded .specialties-card-inner { min-height: 534.478px; }
  .specialties.is-expanded .specialties-background { background-size: 100% 766px; }
  .specialties.is-expanded .specialties-bricks { top: 993.077px; }
}
@media (max-width: 359px) {
  .specialties-lead { font-size: 21px; }
  .specialties-card { width: calc(100vw - 64px); }
  .specialties-card-inner { width: 100%; padding: 18px; }
  .specialties-photo { width: 100%; height: auto; aspect-ratio: 540 / 382; }
  .specialties-card h3 { font-size: 18px; }
  .specialties-badges { left: auto; right: -36px; top: 145px; }
  .specialties-arrow--previous { left: 0; }
  .specialties-arrow--next { left: auto; right: 0; }
  .specialties-menu-link { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .specialties-card-inner { animation: none !important; } }

/* Final integration and responsive artwork. */
/* Keep the PC layout stable while the phone hint is closed. */
.hero-reservations .phone-note{visibility:hidden;opacity:0;pointer-events:none}
@media(min-width:768px){
  .hero-reservations__phone:hover~.phone-note,
  .hero-reservations__phone:focus-visible~.phone-note,
  .hero-reservations .phone-note:hover{visibility:visible;opacity:1;pointer-events:auto}
  .hero-reservations.is-note-dismissed .phone-note{visibility:hidden;opacity:0;pointer-events:none}
}
.intro__heading{justify-content:space-between;gap:0}
.intro__heading>span{writing-mode:horizontal-tb;word-break:break-all;letter-spacing:0;width:calc(32 * var(--u));flex:none}
.intro__heading>span:first-child{width:calc(29 * var(--u))}
.feature--food{grid-template-columns:calc(520 * var(--u)) calc(812 * var(--u));column-gap:calc(80 * var(--u))}
.current-stripe{display:flex;overflow:hidden;background:white}
.current-stripe img{flex:none;width:16px;height:8px;margin-right:-5px}
/* The red/blue pair repeats every 22px (two 16px assets, overlapped by 5px). */
.current-stripe img,.mobile-menu__current-bar img{animation:current-stripe-roll 1s linear infinite paused}
.desktop-nav a.is-current:hover .current-stripe img,
.desktop-nav a.is-current:focus-visible .current-stripe img,
.mobile-menu__link--current:hover .mobile-menu__current-bar img,
.mobile-menu__link--current:focus-visible .mobile-menu__current-bar img{animation-play-state:running}
@keyframes current-stripe-roll{from{transform:translateX(0)}to{transform:translateX(-22px)}}
@media(prefers-reduced-motion:reduce){
  .current-stripe img,.mobile-menu__current-bar img{animation:none}
}
@media(max-width:767px){
  .hero{--hero-growth:max(0px,calc((min(100vw,500px) - 375px)*.447));--phone-note-space:104.21px;background-size:auto calc(680px + var(--hero-growth))}
  .hero-reservations .phone-note{display:none}
  /* Remove the hint's former space from the artwork and the section. */
  .hero__canvas{height:calc(680px + var(--hero-growth) - var(--phone-note-space))}
  .hero__plate{top:calc(487px + var(--hero-growth) - var(--phone-note-space))}
  .menu-toggle::after{content:"";position:absolute;inset:-12px -8px}
  .intro__heading{line-height:50px}
  .intro__heading>span,.intro__heading>span:first-child{width:auto;word-break:normal}
  .feature__copy h3{line-height:50px}
}
.intro{background-image:url("assets/intro-background.svg");background-size:1280px auto}
.lower-map-link>span{flex:1;text-align:center}
.lower-footer-wave{display:flex!important;overflow:hidden;background:none!important}
.lower-footer-wave img{flex:none;margin-right:-5px}
.lower-instagram-icon{background:url("assets/menu-instagram.png") center/contain no-repeat;mask:none}
.lower-footer-social>a{display:block;width:40px;height:40px}
.information-dialog{max-width:min(480px,calc(100% - 32px));border:0;border-radius:16px;padding:40px 24px;background:var(--cream);color:var(--brown);font:inherit}
.information-dialog::backdrop{background:#0009}
.information-dialog h2{font-size:24px;color:var(--red)}
.information-dialog p{margin:16px 0}
.information-dialog>a{display:block;font-weight:700;text-decoration:underline}
.information-dialog__close{position:absolute;right:12px;top:4px;border:0;background:none;font-size:30px;color:var(--brown)}

/* Two identical groups make the decorative ribbon loop without a visible seam. */
.intro{overflow-x:clip}
.brand-ribbon{left:calc(50% - 50vw);gap:0;animation:none}
.brand-ribbon.is-ready{animation:brand-ribbon-slide var(--ribbon-duration,40s) linear infinite}
.brand-ribbon__group{display:flex;flex:none;align-items:center;gap:calc(16 * var(--u));padding-right:calc(16 * var(--u))}
.brand-ribbon__unit{flex:none}
.commitment__link{line-height:1.8}
.intro__sparkling-photo--pour{inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;background:#371c16}
.intro__sparkling-glass{top:auto;bottom:0;height:auto;aspect-ratio:451/768}
.intro__sparkling-caption-horizontal{position:absolute;left:50.77605%;top:64.84375%;width:39.68958%;height:14.84375%;pointer-events:none;background:#371c16;container-type:inline-size}
.intro__sparkling-caption-horizontal img{position:absolute;left:0;top:0;width:auto;height:auto;max-width:none;transform:scale(calc(100cqw / 175.343px));transform-origin:left top}
/* Figma 447:117493 — scale the 580 × 768 composition as one unit. */
/* Intro replacement: supplied 1280 x 2228 PC / 375 x 2140 SP exports.
   Keep the native asset composition transparent over the section texture. */
.intro__sparkling--figma{left:auto;right:0;top:calc(1274.542 * var(--u));width:calc(580 * var(--u));height:calc(768 * var(--u));aspect-ratio:580/768;container-type:inline-size;background:transparent;overflow:hidden}
.intro__sparkling-design{position:relative;width:580px;height:768px;transform:scale(calc(100cqw / 580px));transform-origin:left top}
.intro__sparkling-design-photo{position:absolute;left:129px;top:0;width:451px;height:768px}
.intro__sparkling-design-photo img{width:100%;height:100%;object-fit:cover}
.intro__sparkling-design-caption{position:absolute;left:359.21px;top:507.31px;width:175.344px;height:96.505px}
.intro__sparkling-design-cheers{position:absolute;left:0;top:324px;width:148px;height:145.823px}
.intro__sparkling-design-caption img,.intro__sparkling-design-cheers img{position:absolute;left:0;top:0;width:auto;height:auto;max-width:none}
@media(max-width:767px){
  .intro__canvas{padding-bottom:98px}
  .intro__sparkling--figma{position:relative;left:auto;right:auto;top:auto;width:320px;height:423.72414px;margin:0 0 0 auto}
}
.commitment__link>span:first-child{flex:1;min-width:0;text-align:center}
.commitment__link-arrow{position:relative;flex:none;width:calc(40 * var(--u));height:calc(40 * var(--u))}
.commitment__link .commitment__link-arrow img{position:absolute;left:0;top:0;width:auto;height:auto;max-width:none;margin:0;transform:scale(calc(var(--u) / 1px));transform-origin:left top}
.specialties-photo-track{display:flex;flex:none;width:max-content;height:100%;animation:specialties-photo-scroll var(--photo-strip-duration,55s) linear infinite paused}
.specialties-photo-strip.is-ready .specialties-photo-track{animation-play-state:running}
.specialties-photo-group{display:flex;flex:none;height:100%}
@keyframes specialties-photo-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:767px){
  .commitment__link-arrow{width:24px;height:24px}
  .commitment__link .commitment__link-arrow img{transform:scale(.6)}
}
@media(prefers-reduced-motion:reduce){.specialties-photo-track{animation:none}}
@keyframes brand-ribbon-slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:767px){
  .brand-ribbon__group{gap:12.8px;padding-right:12.8px}
}
@media(prefers-reduced-motion:reduce){
  .brand-ribbon,.brand-ribbon.is-ready{animation:none}
}

/* Keep navigation visible without changing the hero's original layout. */
.site-header{position:fixed}
html{scroll-padding-top:calc(104 * var(--u) + 16px)}
@media(max-width:767px){html{scroll-padding-top:90px}}

/* SP specialties: let actual card content determine the section's height. */
@media(max-width:767px){
  .specialties{--mobile-title-height:calc((100vw - 32px) * 221 / 923);min-height:0;padding-bottom:56px}
  .specialties-noren{height:var(--mobile-title-height);aspect-ratio:auto}
  .specialties-lead{height:94px;margin-top:40px!important}
  .specialties-carousel,.specialties.is-expanded .specialties-carousel{height:auto;padding-bottom:48px;margin-top:48px}
  .specialties-slides{height:auto}
  .specialties-card{height:auto;min-height:381.458px;max-width:calc(100vw - 80px)}
  .specialties-card.is-current{position:relative;left:auto;top:auto;transform:none;margin-inline:auto}
  .specialties-card:not(.is-current){display:none}
  .specialties-card-inner{width:100%;height:auto;min-height:364.478px}
  .specialties-photo{width:100%;height:auto;aspect-ratio:540/382}
  .specialties.is-expanded{min-height:0}
  .specialties.is-expanded .specialties-card,.specialties.is-expanded .specialties-card-inner{min-height:0}
  .specialties-badges{left:calc(100% - 144px);right:auto;top:calc((min(295px,100vw - 80px) - 64.98px) * 382 / 540 + 8.49px)}
  .specialties-arrow{top:calc((min(295px,100vw - 80px) - 64.98px) * 382 / 540 + 8.49px)}
  .specialties-background,.specialties.is-expanded .specialties-background{top:calc(var(--mobile-title-height) + 261.95px);bottom:0;background-size:100% 100%}
  .specialties-bricks,.specialties.is-expanded .specialties-bricks{position:relative;top:auto;margin-top:48px;height:calc(100vw * 82 / 375);background:url("assets/brick-band-right-sp.jpg") right top/100% 100% no-repeat}
}
.phone-dialog{width:min(480px,calc(100% - 32px));text-align:center}
.phone-dialog__number{margin:16px 0 8px!important;font-size:40px;font-weight:700;letter-spacing:.04em;color:var(--brown);user-select:all}
.phone-dialog__copy{padding:8px 24px;border:2px solid var(--brown);border-radius:100px;background:white;color:var(--brown);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.phone-dialog__copy:hover{background:var(--yellow)}
.phone-dialog__note{font-size:14px;line-height:1.8;text-align:left}
.phone-dialog__holiday{margin:0!important;font-size:14px}
.phone-dialog>.phone-dialog__web{display:inline-block;margin-top:24px;padding:12px 32px;border-radius:100px;background:var(--blue);color:white;font-weight:700;text-decoration:none}
.phone-dialog__copy:focus-visible,.phone-dialog__web:focus-visible,.phone-dialog .information-dialog__close:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
