/* Small additions to the existing visual language; keep the compiled theme intact. */
.yoruya-stay-overview, .yoruya-room-comparison, .yoruya-booking-prompt, .yoruya-tour { color: #302b27; }
.yoruya-stay-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 3vw, 52px); align-items: center; margin: 0 0 clamp(56px, 7vw, 104px); }
.yoruya-stay-overview--text { grid-template-columns: 1fr; max-width: 680px; }
.yoruya-keep-together { white-space: nowrap; }
.yoruya-eyebrow { font-size: 12px; letter-spacing: .12em; line-height: 1.8; margin-bottom: 18px; }
.yoruya-stay-copy h1 { font-family: inherit; font-size: clamp(26px, 2.8vw, 42px); font-weight: 500; line-height: 1.45; letter-spacing: .025em; margin: 0 0 24px; }
.yoruya-stay-description { font-size: 15px; line-height: 1.9; margin-bottom: 26px; }
.yoruya-primary-link { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 13px 22px; box-sizing: border-box; background: #302b27; border: 1px solid #302b27; color: #fcf8f0; font: inherit; font-size: 15px; line-height: 1.5; text-align: center; text-decoration: none; }
.yoruya-primary-link:hover { background: #51463c; }
.yoruya-primary-link:focus-visible, .yoruya-stay-links a:focus-visible, .yoruya-room-comparison a:focus-visible, .yoruya-tour a:focus-visible, .yoruya-tour-button:focus-visible, .lang_button a:focus-visible { outline: 3px solid #725037; outline-offset: 4px; }
.yoruya-stay-links { display: flex; gap: 16px 24px; flex-wrap: wrap; margin-top: 14px; }
.yoruya-stay-links a { font-size: 14px; line-height: 1.5; padding: 12px 0; text-decoration: underline; text-underline-offset: 5px; }
.yoruya-stay-figure { margin: 0; min-width: 0; }
.yoruya-stay-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.yoruya-stay-figure figcaption { font-size: 12px; line-height: 1.6; margin-top: 10px; }
.yoruya-room-comparison { margin-top: 44px; padding: 28px 0 0; border-top: 1px solid #bfb3a4; }
.yoruya-room-comparison h2, .yoruya-booking-prompt h2 { font: inherit; font-size: clamp(22px, 2vw, 28px); line-height: 1.5; margin: 0 0 18px; }
.yoruya-room-comparison table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 14px; line-height: 1.6; }
.yoruya-room-comparison th, .yoruya-room-comparison td { padding: 14px 10px; border-bottom: 1px solid #d7cdc0; text-align: left; vertical-align: middle; overflow-wrap: anywhere; }
.yoruya-room-comparison th { font-weight: 500; }
.yoruya-room-comparison thead th { font-size: 12px; }
.yoruya-room-comparison th:first-child { width: 50%; padding-left: 0; }
.yoruya-room-comparison th:nth-child(2) { width: 20%; }
.yoruya-room-comparison td:last-child { text-align: right; padding-right: 0; }
.yoruya-room-comparison a { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.yoruya-small-note { font-size: 12px; line-height: 1.7; margin-top: 14px; }
.yoruya-booking-prompt { margin: 64px 0 0; padding: 32px; background: #e9e1d4; text-align: center; }
.yoruya-booking-prompt > p:not(.yoruya-small-note) { font-size: 15px; line-height: 1.85; max-width: 620px; margin: 0 auto 22px; }
.yoruya-tour { margin-top: 20px; font-size: 13px; line-height: 1.6; }
.yoruya-tour-button { padding: 12px 16px; min-height: 44px; border: 1px solid #8f7a65; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.yoruya-tour-button[hidden] { display: none; }
.yoruya-tour-button:disabled { cursor: default; opacity: .65; }
.yoruya-tour-status { font-size: 12px; margin-top: 10px; }
.yoruya-tour-fallback { display: inline-block; margin-top: 8px; padding: 8px 0; text-decoration: underline; }
.yoruya-tour-frame { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; margin-top: 14px; }
.room_text > p + p { margin-top: 1em; }
.yoruya-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 812px) {
  .yoruya-stay-overview { grid-template-columns: 1fr; gap: 26px; }
  .yoruya-stay-copy h1 { max-width: 25ch; }
  .yoruya-room-comparison { width: calc(100% - 40px); margin-left: auto; margin-right: auto; }
  .yoruya-room-comparison th, .yoruya-room-comparison td { padding: 12px 5px; font-size: 13px; }
  .yoruya-room-comparison th:first-child { width: 47%; }
  .yoruya-room-comparison th:nth-child(2) { width: 22%; }
  .yoruya-booking-prompt { margin: 48px 20px 0; padding: 28px 20px; }
  .yoruya-primary-link { max-width: 100%; }
}
