* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background-color: #4b3925;
  font-family: 'Noto Serif JP', serif;
  overflow-x: hidden;
}

.max425 { display: none;}

/* =====================================================================
   Header — fixed-pixel logo on a full-width orange band.
   ===================================================================== */
.site-header {
  background-color: #AB2D14;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px 20px;
  width: 100%;
}
.site-header__logo {
  position: relative;
  width: 200px;
  height: 45px;
}
.site-header__logo img {
  position: absolute;
  display: block;
}
.logo-ornament      { top: 0;       left: 0;        width: 44.42px;  height: 44.71px; }
.logo-divider       { top: 23.27px; left: 47.26px;  width: 152.74px; height: 1.67px;  }
.logo-prince        { top: 3.86px;  left: 71.40px;  width: 52.88px;  height: 15.19px; }
.logo-hotel         { top: 2.50px;  left: 130.84px; width: 45.12px;  height: 16.55px; }
.logo-sunshine-city { top: 29.89px; left: 71.60px;  width: 103.22px; height: 15.10px; }

/* =====================================================================
   Hero — title + subtitle + right-anchored photo + left-anchored tabs.
   Base 1920px design. Section height = (1481 − 120) / 1920 = 70.885vw.
   ===================================================================== */
.hero {
  position: relative;
  width: 100%;
  height: 70.885vw;
  background-color: #4b3925;
  overflow: hidden;
}
.hero__title {
  position: absolute;
  top: 0.521vw;                /* 10 / 1920 */
  left: 50%;
  transform: translateX(-50%);
  width: 56.25vw;              /* 1080 / 1920 */
  font-family: 'Montaga', serif;
  font-weight: 400;
  font-size: clamp(64px, 8.1vw, 155.6px); /* 155.596 / 1920 */
  line-height: 1.7;
  letter-spacing: 0.243vw;     /* 4.6679 / 1920 */
  text-align: center;
  color: #ffffff;
  white-space: nowrap;
}
.hero__subtitle {
  position: absolute;
  top: 11.302vw;               /* 217 / 1920 */
  left: 50%;
  transform: translateX(-50%);
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(22px, 1.667vw, 32px); /* 32 / 1920 */
  line-height: 1.7;
  text-align: center;
  color: #ffffff;
  white-space: nowrap;
}
.hero__photo {
  position: absolute;
  top: 17.760vw;               /* 341 / 1920 */
  right: 0;
  width: 78.125vw;             /* 1500 / 1920 */
  height: 41.667vw;            /* 800 / 1920 */
  overflow: hidden;
}
.hero__photo .hero-slider,
.hero__photo .swiper-slide {
  width: 100%;
  height: 100%;
}
.hero__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.hero__photo .swiper-pagination {
  bottom: 0.833vw;             /* 16 / 1920 */
}
.hero__photo .swiper-pagination-bullet {
  width: 0.521vw;             /* 10 / 1920 */
  height: 0.521vw;
  background: #fff;
  opacity: 0.6;
}
.hero__photo .swiper-pagination-bullet-active {
  background: #AB2D14;
  opacity: 1;
}
.hero__tabs {
  position: absolute;
  top: 21.927vw;               /* 421 / 1920 */
  left: 5.208vw;               /* 100 / 1920 */
  width: 24.583vw;             /* 472 / 1920 */
  z-index: 1;
}

/* =====================================================================
   Restaurant tabs — re-uses the standalone component classes scaled to
   the 1920px base used by the hero.
   ===================================================================== */
.restaurant-tabs__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 3.333vw;                /* 64 / 1920 */
}
.restaurant-tabs__item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25vw 4.167vw;     /* 24 80 / 1920 */
  border-radius: 5.208vw;      /* 100 / 1920 */
  background-color: #ffffff;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(15px, 1.042vw, 20px); /* 20 / 1920 */
  line-height: 1.7;
  color: #AB2D14;
  text-align: center;
  white-space: nowrap;
  transition: background-color .3s ease, color .3s ease;
}
.restaurant-tabs__item {
  cursor: pointer;
}
.restaurant-tabs__item:not(.restaurant-tabs__item--active):hover {
  background-color: #AB2D14;
  color: #ffffff;
}
.restaurant-tabs__item--active {
  background-color: #AB2D14;
  color: #ffffff;
}
.restaurant-tabs__item--active .restaurant-tabs__en {
  font-family: 'Noto Serif', serif;
  font-weight: 600;
  font-style: normal;
}

/* =====================================================================
   Restaurant section — orange band (h=733) with the white restaurant
   panel (w=1600, h=813) centered on top. The panel peaks 80px above the
   orange band; using `position: relative; top: -X` keeps the band at
   its declared position (margin-top would leak via margin-collapse).
   ===================================================================== */
/* Swiper — infinite horizontal slider; each slide holds one
   .restaurant-section. */
.restaurant-slider {
  width: 100%;
  overflow-x: clip;
  overflow-y: visible;
  /* The white panel peeks 4.167vw above the orange band; add matching
     headroom so overflow:hidden doesn't clip it, then pull the slider
     back up so the layout position is unchanged. */
  background: #AB2D14;
}
.restaurant-slider .swiper-slide {
  height: auto;            /* let the section define its own height */
}
.restaurant-section {
  position: relative;
  width: 100%;
              /* 733 / 1920 */
}
.restaurant-info {
  position: relative;
                 /* −80 / 1920 */
  width: 83.333vw;             /* 1600 / 1920 */
  height: 42.344vw;            /* 813 / 1920 */
  margin: -4.167vw auto 0;
}
.restaurant-info__shape {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.restaurant-info__shape img {
  display: block;
  width: 100%;
  height: 100%;
}
/* Logo lockup is cropped from a JPEG with extra whitespace top/bottom —
   same crop math as the standalone component. */
.restaurant-info__logo {
  position: absolute;
  top: 2.083vw;                /* 40 / 1920 */
  left: 50%;
  transform: translateX(-50%);
  /* width: 16.667vw; */             /* 320 / 1920 */
  height: 4.844vw;             /* 93 / 1920 */
  overflow: hidden;
}
.restaurant-info__logo img {
width: 100%;
height: 100%;
object-fit: contain;
}
.restaurant-info__row {
  position: absolute;
  top: 9.010vw;                /* 173 / 1920 */
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: flex-start;
  gap: 4.167vw;                /* 80 / 1920 */
}
.restaurant-info__photo {
  flex: none;
  width: 45.365vw;             /* 871 / 1920 */
  height: 29.167vw;            /* 560 / 1920 */
}
.restaurant-info__photo .photo-slider,
.restaurant-info__photo .swiper-slide {
  width: 100%;
  height: 100%;
}
.restaurant-info__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.restaurant-info__photo .swiper-pagination {
  bottom: 0.833vw;             /* 16 / 1920 */
}
.restaurant-info__photo .swiper-pagination-bullet {
  width: 0.521vw;              /* 10 / 1920 */
  height: 0.521vw;
  background: #fff;
  opacity: 0.6;
}
.restaurant-info__photo .swiper-pagination-bullet-active {
  background: #AB2D14;
  opacity: 1;
}
.restaurant-info__panel {
  width: 19.219vw;             /* 369 / 1920 */
  display: flex;
  flex-direction: column;
  gap: 3.333vw;                /* 64 / 1920 */
}
.restaurant-info__hours {
  display: flex;
  flex-direction: column;
  gap: 0.729vw;                /* 14 / 1920 */
}
.restaurant-info__heading {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(22px, 1.667vw, 32px); /* 32 / 1920 */
  line-height: 1.7;
  color: #AB2D14;
}
.restaurant-info__details {
  display: flex;
  flex-direction: column;
  gap: 1.25vw;                 /* 24 / 1920 */
}
.restaurant-info__group {
  display: flex;
  flex-direction: column;
  gap: 0.833vw;                /* 16 / 1920 */
}
.restaurant-info__value {
  font-family: 'Noto Serif', 'Noto Serif JP', serif;
  font-weight: 600;
  font-size: clamp(15px, 1.042vw, 20px); /* 20 / 1920 */
  line-height: 1.7;
  letter-spacing: 0.052vw;     /* 1 / 1920 */
  color: #1f2529;
}
.restaurant-info__notes {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(11px, 0.625vw, 12px); /* 12 / 1920 */
  line-height: 1.7;
  color: #1f2529;
}
.restaurant-info__buttons {
  display: flex;
  flex-direction: column;
  gap: 2.083vw;                /* 40 / 1920 */
}
.restaurant-info__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  gap: 1.25vw;                 /* 24 / 1920 */
  padding: 0.833vw 1.25vw;     /* 16 24 / 1920 */
  border: 1px solid #1f2529;
  color: #1f2529;
  text-decoration: none;
  transition: background-color .3s ease, color .3s ease;
}
.restaurant-info__button:hover {
  background-color: #1f2529;
  color: #ffffff;
}
.restaurant-info__button--wide {
  width: 18.698vw;             /* 359 / 1920 */
  justify-content: space-between;
}
.restaurant-info__button-text {
  width: 100%;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(15px, 1.042vw, 20px); /* 20 / 1920 */
  line-height: 1.7;
  white-space: nowrap;
  text-align: center;
}
/* Source SVG points up; rotate+flip to point right. */
.restaurant-info__arrow {
  flex: none;
  width: 0.625vw;              /* 12 / 1920 */
  height: 0.365vw;             /* 7 / 1920 */
  background: url('../images/arrow.svg') no-repeat center / contain;
  transform: rotate(-90deg) scaleY(-1);
  transition: filter .3s ease;
}
.restaurant-info__button:hover .restaurant-info__arrow {
  filter: brightness(0) invert(1);
}

/* =====================================================================
   Notes — six lines centered horizontally on the dark brown body.
   ===================================================================== */
.notes-section {
  background-color: #4b3925;
  padding: 2.083vw 0 8.281vw;  /* 40 / 159 from design */
}
.notes {
  width: 56.25vw;              /* 1080 / 1920 */
  margin: 0 auto;
  color: #ffffff;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: max(16px, 0.833vw);
  line-height: 1.7;
}
.notes__item { margin: 0; }
.notes__link {
  color: inherit;
  text-decoration: underline;
  text-decoration-skip-ink: none;
  transition: opacity .3s ease;
}
.notes__link:hover { opacity: .7; }

/* =====================================================================
   Footer — orange panel with logo + nav, then a white copyright bar.
   ===================================================================== */
.site-footer { width: 100%; }
.site-footer__panel {
  background-color: #AB2D14;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.917vw;                /* 56 / 1920 */
  padding: 2.5vw 0 1.615vw;    /* 48 / 31 */
  width: 100%;
}
.site-footer__logo img {
  display: block;
  transition: opacity .3s ease;
}
.site-footer__logo:hover img { opacity: .8; }
.footer-logo-ornament      { top: 0;        left: 0;         width: 4.627vw;  height: 4.657vw; }
.footer-logo-divider       { top: 2.418vw;  left: 4.923vw;   width: 15.910vw; height: 0.174vw; }
.footer-logo-prince        { top: 0.401vw;  left: 7.438vw;   width: 5.509vw;  height: 1.578vw; }
.footer-logo-hotel         { top: 0.260vw;  left: 13.629vw;  width: 4.700vw;  height: 1.719vw; }
.footer-logo-sunshine-city { top: 3.105vw;  left: 7.458vw;   width: 10.752vw; height: 1.570vw; }

.site-footer__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.510vw;                /* 29 / 1920 */
}
.site-footer__divider {
  width: 0.052vw;
  min-width: 1px;
  height: 1.109vw;             /* 21.286 / 1920 */
  min-height: 16px;
  background-color: #ffffff;
}
.site-footer__link {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(15px, 1.042vw, 20px); /* 20 / 1920 */
  line-height: 1.7;
  color: #ffffff;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .3s ease;
}
.site-footer__link:hover { opacity: .7; }
.site-footer__copyright-bar {
  background-color: #ffffff;
  padding: 0.885vw 0;          /* (61 − 27) / 2 = 17 px ≈ 0.885vw */
}
.site-footer__copyright {
  font-family: 'Spectral', 'New York Large', serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(13px, 0.833vw, 16px); /* 16 / 1920 */
  line-height: 1.7;
  color: #4b3925;
  text-align: center;
}

/* =====================================================================
   Mobile — stop scaling vw values that go unreadable on small screens
   and restack everything as a single column.
   ===================================================================== */
@media (max-width: 768px) {
  .site-header { padding: 16px 12px; }

  .hero {
    height: auto;
    padding: 32px 16px 40px;
    overflow: visible;
  }
  .hero__title {
    position: static;
    transform: none;
    width: 100%;
    font-size: 56px;
    letter-spacing: 1.5px;
    white-space: normal;
    line-height: 1;
  }
  .hero__subtitle {
    position: static;
    transform: none;
    margin-top: 12px;
    font-size: 14px;
    white-space: normal;
  }
  .hero__photo {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 1500 / 800;
    margin-top: 24px;
  }
  .hero__tabs {
    position: static;
    width: 100%;
    margin-top: 24px;
  }
  .restaurant-tabs__list { gap: 16px; width: 100%; }
  .restaurant-tabs__item {
    width: 100%;
    padding: 16px 24px;
    border-radius: 100px;
    font-size: 16px;
    white-space: normal;
  }

  .restaurant-slider { padding-top: 0; margin-top: 0; }
  .restaurant-section {
    height: auto;
    padding: 40px 16px 32px;
  }
  .restaurant-info {
    position: static;
    top: 0;
    width: 100%;
    height: auto;
    padding-bottom: 24px;
    padding-top: 2px;
    background-color: #ffffff;
  }
  .restaurant-info__shape { display: none; }
  .restaurant-info__logo {
    position: relative;
    top: 0;
    left: 0;
    transform: none;
    width: 200px;
    height: 58px;
    margin: 24px auto 0;
  }
  .restaurant-info__row {
    position: relative;
    top: 0;
    left: 0;
    transform: none;
    flex-direction: column;
    gap: 24px;
    padding: 24px 16px 0;
    width: 100%;
  }
  .restaurant-info__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 871 / 560;
  }
  .restaurant-info__photo .swiper-pagination { bottom: 10px; }
  .restaurant-info__photo .swiper-pagination-bullet { width: 8px; height: 8px; }
  .hero__photo .swiper-pagination { bottom: 10px; }
  .hero__photo .swiper-pagination-bullet { width: 8px; height: 8px; }
  .restaurant-info__panel { width: 100%; gap: 32px; }
  .restaurant-info__hours { gap: 12px; }
  .restaurant-info__heading { font-size: 22px; }
  .restaurant-info__details { gap: 24px; }
  .restaurant-info__group { gap: 16px; }
  .restaurant-info__value { font-size: 16px; letter-spacing: 1px; }
  .restaurant-info__notes { font-size: 12px; }
  .restaurant-info__buttons { gap: 16px; }
  .restaurant-info__button {
    width: 100%;
    align-self: auto;
    gap: 16px;
    padding: 14px 20px;
    justify-content: space-between;
  }
  .restaurant-info__button--wide { width: 100%; }
  .restaurant-info__button-text { font-size: 15px; white-space: normal; }
  .restaurant-info__arrow {width: 12px;height: 7px;}

  .notes-section { padding: 24px 20px; }
  .notes {
    width: 100%;
    font-size: 13px;
    white-space: normal;
  }
  .notes__item { text-indent: -1em; padding-left: 1em; }

  .site-footer__panel { gap: 28px; padding: 32px 16px 24px; }
  .site-footer__logo { width: 240px; height: 53.865px; }
  .footer-logo-ornament      { width: 53.30px;  height: 53.65px; top: 0;       left: 0; }
  .footer-logo-divider       { width: 183.29px; height: 2.00px;  top: 28.38px; left: 56.71px; }
  .footer-logo-prince        { width: 63.46px;  height: 18.18px; top: 4.63px;  left: 85.68px; }
  .footer-logo-hotel         { width: 54.14px;  height: 19.86px; top: 3.00px;  left: 157.01px; }
  .footer-logo-sunshine-city { width: 123.86px; height: 18.08px; top: 35.87px; left: 85.92px; }
  .site-footer__nav { flex-direction: column; gap: 10px; }
  .site-footer__divider { display: none; }
  .site-footer__link { font-size: 15px; white-space: normal; text-align: center; }
  .site-footer__copyright-bar { padding: 12px 12px; }
  .site-footer__copyright { font-size: 12px; }
}

@media (max-width: 425px) {
  .max425 { display: block;}
}