/* Guest-facing booking guide, shared by the Japanese and English pages. */
.reservation-page { background-color: #f0f0ed; color: var(--sumi); }
.reservation-page .site-header { position: relative; inset: auto; margin: 26px var(--gutter) 0; }
.reservation-nav { display: flex; align-items: center; gap: 28px; font-size: 14px; }
.reservation-nav a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.reserve-main { padding-top: 90px; }
.reserve-intro { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 7vw; margin-left: var(--gutter); }
.reserve-eyebrow { color: var(--sumi-soft); font-size: 13px; letter-spacing: .18em; margin-bottom: 25px; }
.reserve-intro h1 { font-size: clamp(30px, 3.7vw, 52px); font-weight: 500; line-height: 1.7; letter-spacing: .06em; text-wrap: balance; }
.reserve-lead { font-size: 15px; line-height: 2; margin-top: 30px; max-width: 31em; }
.reserve-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 30px; align-items: center; }
.reserve-button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; gap: 24px; padding: 16px 24px; background: var(--sumi); color: #f5f3ed; font-size: 15px; transition: background .2s; }
.reserve-button:hover { background: #4a4941; }
.reserve-button span[aria-hidden] { font-size: 20px; line-height: 1; }
.reserve-phone-link { display: inline-flex; align-items: center; min-height: 48px; padding: 4px 0; border-bottom: 1px solid var(--line-dark); font-size: 15px; }
.reserve-external-note { font-size: 12px; color: var(--sumi-soft); margin-top: 12px; }
.reserve-intro__photo img { width: 100%; aspect-ratio: 4 / 5; object-position: center; }
.reserve-intro__photo figcaption { margin-top: 12px; font-size: 12px; color: var(--sumi-soft); }
.reserve-rooms { margin: 110px var(--gutter) 0; }
.reserve-section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: start; margin-bottom: 50px; }
.reserve-section-heading h2, .reserve-details h2, .reserve-contact h2 { font-weight: 500; font-size: clamp(25px, 3vw, 38px); line-height: 1.65; letter-spacing: .05em; text-wrap: balance; }
.reserve-section-heading p { font-size: 15px; line-height: 2; }
.reserve-room-gallery { display: grid; grid-template-columns: 1.15fr 1fr; gap: 60px 5vw; align-items: start; }
.reserve-room-gallery figure { min-width: 0; }
.reserve-room-gallery figure:nth-child(even) { margin-top: 90px; }
.reserve-room-gallery figure:last-child { grid-column: 1 / -1; width: 62%; margin-left: 12%; }
.reserve-room-gallery img { width: 100%; aspect-ratio: 4 / 3; }
.reserve-room-gallery figcaption { margin-top: 18px; }
.reserve-room-gallery h3 { font-size: 18px; font-weight: 500; line-height: 1.65; letter-spacing: .04em; }
.reserve-room-gallery figcaption p { font-size: 13px; line-height: 1.9; margin-top: 6px; color: var(--sumi-soft); }
.reserve-room-note { margin-top: 36px; font-size: 14px; line-height: 1.9; color: var(--sumi-soft); }
.reserve-details { margin: 115px var(--gutter) 0; display: grid; grid-template-columns: 1fr 1.45fr; gap: 7vw; }
.reserve-details dl { margin: 0; }
.reserve-details__row { display: grid; grid-template-columns: 130px 1fr; gap: 25px; padding: 24px 0; border-bottom: 1px solid var(--line-dark); }
.reserve-details__row:first-child { border-top: 1px solid var(--line-dark); }
.reserve-details dt { font-size: 15px; }
.reserve-details dd { margin: 0; font-size: 15px; line-height: 1.9; }
.reserve-details time { font-family: var(--font-en); font-size: 25px; }
.reserve-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: start; margin: 115px var(--gutter) 0; padding-top: 50px; border-top: 1px solid var(--line-dark); }
.reserve-contact__body { font-size: 15px; line-height: 2; }
.reserve-contact__number { font-family: var(--font-en); font-size: clamp(29px, 3.5vw, 43px); letter-spacing: .03em; min-height: 54px; display: inline-flex; align-items: center; margin: 10px 0 18px; }
.reserve-contact .reserve-actions { margin-top: 0; }
.reservation-page .site-footer { margin-top: 90px; padding-top: 60px; border-top: 1px solid var(--line-dark); }
.reservation-page .site-footer__name { font-size: 21px; }
.reservation-page .site-footer__addr { font-size: 14px; }
.reservation-page .demo-note { font-size: 12px; }
html[lang="en"] .reservation-page { font-family: var(--font-en); letter-spacing: .01em; }
html[lang="en"] .reserve-intro h1 { font-size: clamp(40px, 4.8vw, 64px); letter-spacing: .01em; line-height: 1.2; }
html[lang="en"] .reserve-lead, html[lang="en"] .reserve-section-heading p, html[lang="en"] .reserve-contact__body { font-size: 19px; line-height: 1.7; }
html[lang="en"] .reserve-section-heading h2, html[lang="en"] .reserve-details h2, html[lang="en"] .reserve-contact h2 { font-size: clamp(33px, 3.4vw, 45px); line-height: 1.3; letter-spacing: .01em; }
html[lang="en"] .reserve-button, html[lang="en"] .reserve-phone-link, html[lang="en"] .reserve-details dt, html[lang="en"] .reserve-details dd { font-size: 18px; }
html[lang="en"] .reserve-external-note { font-size: 15px; }
html[lang="en"] .reserve-room-gallery h3 { font-size: 24px; line-height: 1.35; letter-spacing: .01em; }
html[lang="en"] .reserve-room-gallery figcaption p { font-size: 17px; line-height: 1.6; }
html[lang="en"] .reserve-room-note { font-size: 17px; line-height: 1.6; }
html[lang="en"] .reservation-nav { font-size: 17px; }
@media (max-width: 819px) {
  .reservation-page .site-header { margin-top: 20px; gap: 16px; }
  .reservation-nav { gap: 18px; font-size: 13px; }
  .reserve-main { padding-top: 55px; }
  .reserve-intro { display: block; margin: 0; }
  .reserve-intro__text { padding: 0 var(--gutter); }
  .reserve-eyebrow { margin-bottom: 17px; font-size: 12px; }
  .reserve-intro h1 { font-size: 33px; }
  .reserve-lead { margin-top: 22px; font-size: 16px; }
  .reserve-intro__photo { margin: 40px 0 0 10vw; }
  .reserve-intro__photo img { aspect-ratio: 4 / 3; }
  .reserve-intro__photo figcaption { font-size: 12px; }
  .reserve-actions { margin-top: 26px; gap: 14px; }
  .reserve-button { min-height: 56px; font-size: 16px; gap: 16px; }
  .reserve-external-note { max-width: 28em; }
  .reserve-rooms { margin-top: 74px; }
  .reserve-section-heading { display: block; margin-bottom: 32px; }
  .reserve-section-heading p { margin-top: 22px; font-size: 16px; }
  .reserve-room-gallery { display: block; }
  .reserve-room-gallery figure { width: 94%; margin-top: 44px; }
  .reserve-room-gallery figure:first-child { width: 100%; margin-top: 0; }
  .reserve-room-gallery figure:nth-child(even) { width: 90%; margin: 44px 0 0 10%; }
  .reserve-room-gallery figure:last-child { width: 94%; margin-left: 0; }
  .reserve-room-gallery figcaption { margin-top: 14px; }
  .reserve-room-gallery h3 { font-size: 17px; }
  .reserve-room-gallery figcaption p { font-size: 14px; }
  .reserve-details { display: block; margin-top: 80px; }
  .reserve-details h2 { margin-bottom: 30px; }
  .reserve-details__row { grid-template-columns: 110px 1fr; gap: 16px; }
  .reserve-details dt, .reserve-details dd { font-size: 15px; }
  .reserve-contact { display: block; margin-top: 70px; padding-top: 34px; }
  .reserve-contact h2 { margin-bottom: 25px; }
  .reserve-contact__body { font-size: 16px; }
  .reservation-page .site-footer { margin-top: 60px; padding-bottom: 40px; }
  html[lang="en"] .reservation-page .edoya-brand { font-size: 20px; }
  html[lang="en"] .reservation-nav { font-size: 16px; }
  html[lang="en"] .reserve-details__row { grid-template-columns: 100px 1fr; }
}
