/* TOPページの追加スタイルとレイアウト調整。 */
#intro { padding-block: clamp(70px, 7vw, 112px) clamp(88px, 8vw, 120px); }
#intro .intro_hotel h2 { margin: 22px 0 0; }
#intro .intro_link { margin-top: 52px; }
.trial-stay { text-align: center; max-width: 760px; margin: 0 auto; }
.trial-stay-cta { display: inline-block; max-width: 100%; padding: 7px 44px; background: var(--color-navy); color: #fff; font-size: 16px; font-weight: 400; letter-spacing: .1em; line-height: 1.8; text-align: center; }
.trial-stay-cta:focus-visible { outline: 2px solid var(--color-navy); outline-offset: 5px; }
.trial-stay p { margin: 0 0 30px; line-height: 2.1; font-size: 16px; color: var(--color-navy); }
.top-detail-link { margin-top: 30px; }
.txt_link[aria-disabled="true"] { cursor: default; }
.top-detail-link a:focus-visible { outline: 1px solid var(--color-navy); outline-offset: 6px; }

@media (max-width: 767px) {
  #intro { padding-block: 64px 74px; }
  #intro .intro_hotel h2 { margin-top: 16px; }
  #intro .intro_link { margin-top: 40px; }
  .trial-stay-cta { padding: 6px 26px; font-size: 14px; letter-spacing: .05em; }
  .trial-stay p { text-align: left; font-size: 14px; }
}

.trial-stay-heading { margin: 0 0 32px; font-size: clamp(21px, 2vw, 26px); line-height: 1.55; font-weight: 400; color: var(--color-navy); }
.trial-stay .trial-stay-body { margin: 0; font-size: var(--fs-body); font-weight: 400; line-height: 1.95; color: var(--color-navy); }
.trial-stay .trial-stay-body + .trial-stay-note { margin-top: calc(var(--fs-body) * 1.2); }
.trial-stay .trial-stay-note { margin: 0 0 30px; font-size: 12px; line-height: calc(var(--fs-body) * 1.95); color: var(--color-text); }
@media (max-width: 767px) {
  .trial-stay-heading { font-size: 19px; margin-bottom: 28px; }
  .trial-stay .trial-stay-note { font-size: 12px; }
}

@media (max-width: 767px) {
  .trial-stay .trial-stay-body,
  .trial-stay .trial-stay-note { line-height: calc(.95rem * 1.85); }
    .trial-stay .trial-stay-body + .trial-stay-note { margin-top: .95rem; }
}

@media (max-width: 767px) {
  .trial-stay .trial-stay-body { font-size: .95rem; line-height: 1.85; }
}

#intro .intro-opening-note { margin: 14px 0 0; font-size: 12px; line-height: 1.8; color: var(--color-text); }
.trial-stay-body + .trial-stay-cta { margin-top: 30px; }

/* TOP intro / development: scoped to these two sections. */
#intro .intro_ex { margin: clamp(36px, 4vw, 58px) auto 0; text-align: center; }
#intro .trial-stay-cta { padding: 7px 38px; margin-top: 32px; }
#intro .intro_sub_photos { margin-top: clamp(76px, 8vw, 112px); }
/* Compact roadmap within the existing introduction. */
#intro .intro-development-divider { width: 96px; height: 0; margin: 76px auto 30px; border: 0; border-top: 1px solid rgba(26, 43, 94, .25); }
#intro .intro_link .txt_link,
#rooms .top-detail-link .txt_link { border-bottom-color: rgba(26, 43, 94, .25); }
#intro .development-reveal-content > .intro-development-divider { margin: 30px auto 0; }
#development { width: min(100%, 830px); margin-inline: auto; color: var(--color-text); text-align: left; scroll-margin-top: 100px; }
#development, #development * { box-sizing: border-box; }
#development .development-timeline { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(22px, 3vw, 42px); list-style: none; padding: 0; margin: 0; }
#development .development-step { min-width: 0; margin: 0; padding: 0; }
#development .development-year { margin: 0; padding-bottom: 0; border-bottom: 0; font-family: "Source Serif 4", serif; font-size: 21px; font-weight: 400; line-height: 1.2; color: var(--color-navy); }
#development .development-phase { margin: 6px 0 9px; font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--color-navy); }
#development .development-facilities { list-style: none; margin: 0; padding: 0; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; line-break: strict; }
#development .development-facilities li { position: relative; margin: 0 0 3px; padding: 0 0 0 1em; }
#development .development-facilities li::before { content: "・"; position: absolute; left: 0; top: 0; }
#development .development-facilities span { display: block; }
#intro .development-note { margin: 16px 0 0; font-size: 12px; line-height: 1.8; text-align: left; color: var(--color-text); }
#intro .trial-stay { margin-top: clamp(72px, 8vw, 112px); }
@media (max-width: 767px) {
 #intro .intro_ex { margin-top: 32px; text-align: left; }
 #intro .intro-development-divider { margin: 60px auto 24px; }
 #intro .development-reveal-content > .intro-development-divider { margin-top: 24px; }
 #intro .trial-stay { margin-top: 64px; }
 #intro .trial-stay-cta { padding: 7px 20px; margin-top: 26px; }
 #intro .intro_sub_photos { margin-top: 72px; }
 #development .development-timeline { grid-template-columns: 1fr; gap: 20px; }
 #development .development-step { display: grid; grid-template-columns: minmax(0, 1fr) max-content max-content minmax(0, 1fr); column-gap: 0; align-items: baseline; }
 #development .development-year { grid-column: 2; margin-right: 12px; font-size: 19px; }
 #development .development-phase { grid-column: 3; margin: 0 0 8px; font-size: clamp(13px, 3.4vw, 16px); text-align: center; white-space: nowrap; }
 #development :is(.development-phase, .development-highland) br { display: none; }
 #development .development-facilities { grid-column: 1 / -1; }
 #development .development-facilities { font-size: 13px; text-align: center; }
 #development .development-facilities li { padding-left: 0; }
 #development .development-facilities li::before { position: static; }
 #intro .development-note { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
 #development .development-facilities { opacity: 1 !important; transform: none !important; }
}

#development .development-season { font-size: .75em; font-weight: 400; }
#development .development-year-unit { font-size: .6em; font-weight: 400; }

@media (max-width: 359px) {
 #development .development-year { margin-right: 4px; }
}

/* TOP本文の行間を控えめに調整。 */
body#top #intro .intro_ex,
body#top #intro .trial-stay-body { line-height: 2; }
body#top .koyaruzawa_copy { line-height: 2; }
body#top .future_body,
body#top .access_lead_text { line-height: 2.1; }
@media (max-width: 767px) {
 body#top #intro .intro_ex,
 body#top #intro .trial-stay-body { line-height: 1.9; }
 body#top .koyaruzawa_copy,
 body#top .access_lead_text { line-height: 1.9; }
}

/* 本文の段落間には行間と別に余白を確保。 */
body#top .copy_block + .copy_block { margin-top: 1.5em; }
body#top #intro .intro_para + .intro_para { margin-top: 1em; }
body#top #intro .trial-stay-body + .trial-stay-body { margin-top: .85em; }

/* ロゴ画面：読み込み中の表示 */
#loading-screen .loading-logo {
  position: relative;
}
#loading-screen .loading-status {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 60px;
  color: #fff;
  font-family: sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.12em;
  white-space: nowrap;
}
#loading-screen .loading-spinner {
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: loading-status-spin 2s linear infinite;
}
@keyframes loading-status-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  #loading-screen .loading-spinner {
    animation: none;
  }
}

/* Body copy and notes */
.intro_para,
.copy_block,
.future_body,
.access_route_desc,
.access_address,
#development .development-facilities,
#intro .development-note,
#intro .intro-opening-note,
.trial-stay .trial-stay-note,
.cg_note,
.img_note,
.access_note {
  color: #505050;
}

.trial-stay .trial-stay-body {
  color: #182857;
}

/* スクロールで開業年表を展開する。 */
#intro .development-reveal {
 display: grid;
 grid-template-rows: 1fr;
 transition: grid-template-rows 1.2s ease;
}
#intro .development-reveal-content {
 min-height: 0;
 overflow: hidden;
 opacity: 1;
 transition: opacity .45s ease .1s;
}
#intro .development-reveal.is-collapsed { grid-template-rows: 0fr; }
#intro .development-reveal.is-collapsed .development-reveal-content {
 opacity: 0;
 visibility: hidden;
}
@media (prefers-reduced-motion: reduce) {
 #intro .development-reveal,
 #intro .development-reveal-content { transition: none; }
}

/* Retreat Stay / Lakefront Moments：重なりを保ち、写真の面積を広げる。 */
.rooms_main_photo > img,
.hours_main_photo > img { aspect-ratio: 16 / 7.5; }

.rooms_photos,
.hours_photos,
.koyaruzawa_photos { padding-inline: 2.5%; }

body#top :is(.rooms_copy, .hours_copy) { line-height: 2.05; }
body#top :is(.rooms_copy, .hours_copy) .copy_block + .copy_block { margin-top: 1em; }
#rooms .rooms-dog-divider { height: 0; border: 0; margin: 0 0 1.65em; }

@media (min-width: 768px) {
  .rooms_sub,
  .hours_sub,
  .hours_header { column-gap: clamp(30px, 4.5vw, 68px); }
  .rooms_photos,
  .hours_photos { padding-top: clamp(8px, 1.5vw, 24px); }
  .rooms_photo--1 { grid-column-end: 11; }
  .rooms_photo--2 { grid-column-start: 7; }
  .hours_photo--1 { grid-column-start: 3; }
  .hours_photo--2 { grid-column-end: 7; }
}

@media (max-width: 767px) {
  .rooms_main_photo > img,
  .hours_main_photo > img { aspect-ratio: 16 / 10.5; }

  .rooms_sub,
  .hours_sub { gap: 48px; }
  .rooms_photos,
  .hours_photos { margin: 0 -8px 12px; }
  body#top :is(.rooms_copy, .hours_copy) { line-height: 1.95; }
}
