/* トップページ追加分。既存セクションのスタイルは変更しない。 */
#intro { padding-bottom: 90px; }
#intro .intro_hotel h2 { margin-top: 18px; margin-bottom: 24px; }
#intro .intro_ex { margin-top: 48px; margin-bottom: 0; }
#intro .intro_para + .intro_para { margin-top: 1.2em; }
#intro .intro_sub_photos { margin-top: 76px; }
#intro .intro_link { margin-top: 52px; }
.trial-stay { position: relative; text-align: center; max-width: 760px; margin: 64px auto 0; }
.trial-stay::before { content: ""; position: absolute; top: -32px; left: 50%; transform: translateX(-50%); width: min(350px, 100%); border-top: 1px solid rgba(26, 43, 94, .25); }
.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-bottom: 60px; }
  #intro .intro_hotel h2 { margin-top: 12px; margin-bottom: 20px; }
  #intro .intro_ex { margin-top: 40px; }
  #intro .intro_para + .intro_para { margin-top: 1em; }
  #intro .intro_sub_photos { margin-top: 60px; }
  #intro .intro_link { margin-top: 40px; }
  .trial-stay { margin-top: 48px; }
  .trial-stay::before { top: -24px; }
  .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 20px; font-size: 20px; 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: 18px; margin-bottom: 20px; }
  .trial-stay .trial-stay-note { font-size: 12px; }
}

/* STAY：愛犬との滞在案内を本文と同じ文字組みで区切る。 */
#rooms .rooms-dog-divider { width: 110px; border: 0; border-top: 1px solid rgba(92, 51, 23, .25); margin: 30px 0 20px; }

@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; }
}

.trial-stay .trial-stay-body + .trial-stay-body { margin-top: 0; }

@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-top: 30px; text-align: center; }
#intro .trial-stay { margin-top: 48px; }
#intro .trial-stay::before { top: -24px; }
#intro .trial-stay .trial-stay-body + .trial-stay-body { margin-top: 10px; }
#intro .trial-stay-cta { padding: 7px 38px; margin-top: 48px; }
#intro .intro_sub_photos { margin-top: 64px; }
/* Compact roadmap within the existing introduction. */
#intro .intro-development-divider { width: 100%; max-width: 960px; height: 0; margin: 32px auto 28px; border: 0; border-top: 1px solid rgba(26, 43, 94, .25); }
#development { width: fit-content; max-width: 100%; margin-inline: auto; color: var(--color-text); text-align: left; scroll-margin-top: 100px; }
#development, #development * { box-sizing: border-box; }
#development .development-inner { width: 100%; max-width: 960px; margin: 0 auto; }
#development .development-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; 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: 24px; font-weight: 400; line-height: 1.15; color: var(--color-navy); }
#development .development-phase { margin: 6px 0 10px; font-size: 18px; font-weight: 400; line-height: 1.5; color: var(--color-navy); }
#development .development-facilities { list-style: none; margin: 0; padding: 0; font-size: 13px; line-height: 1.5; 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: 12px 0 0; font-size: 12px; line-height: 1.8; text-align: left; color: var(--color-text); }
#intro .trial-stay { margin-top: 64px; }
#intro .trial-stay::before { content: none; }
@media (max-width: 1023px) {
 #development .development-timeline { gap: 18px; }
 #development .development-phase { font-size: 17px; }
}
@media (max-width: 767px) {
 #intro .intro_ex { margin-top: 28px; text-align: left; }
 #intro .intro-development-divider { margin: 28px auto 24px; }
 #intro .trial-stay { margin-top: 52px; }
 #intro .trial-stay-cta { padding: 7px 20px; margin-top: 40px; }
 #intro .intro_sub_photos { margin-top: 52px; }
 #development .development-timeline { grid-template-columns: 1fr; gap: 28px; margin-left: 12px; padding-left: 0; border-left: 0; }
 #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; }
 #development .development-phase { grid-column: 3; text-align: center; }
 #development .development-phase br { display: none; }
 #development .development-facilities { grid-column: 1 / -1; }
 #development .development-year { font-size: 22px; padding-bottom: 0; }
 #development .development-phase { margin: 0 0 8px; font-size: clamp(13px, 3.4vw, 16px); white-space: nowrap; }
 #development .development-facilities { font-size: 14px; text-align: center; }
 #development .development-facilities li { padding-left: 0; }
 #development .development-facilities li::before { position: static; }
 #intro .development-note { text-align: center; }
 #development .development-timeline { margin-left: 0; }
}
@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; }
}

@media (max-width: 767px) {
 #development .development-highland { white-space: nowrap; font-size: clamp(10px, 3.1vw, 14px); }
 #development .development-highland br { display: none; }
}

/* TOP本文の行間を控えめに調整。 */
body#top #intro .intro_ex,
body#top #intro .trial-stay-body { line-height: 1.85; }
body#top .rooms_copy,
body#top .hours_copy,
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.75; }
 body#top .rooms_copy,
 body#top .hours_copy,
 body#top .koyaruzawa_copy,
 body#top .access_lead_text { line-height: 1.9; }
}

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