/* Four seasons share one soft spectrum; photographs keep their natural colours. */
:root {
  --spring-pink: #efb0c8;
  --summer-mint: #8bcfbe;
  --autumn-amber: #e9bb7c;
  --winter-blue: #a8c9e9;
  --four-seasons-line: linear-gradient(100deg, #e5a2bf 0%, #8bcfbe 34%, #e9bb7c 67%, #a8c9e9 100%);
  --four-seasons-soft: linear-gradient(115deg, #fbe7f0 0%, #e2f4ed 34%, #fff0da 67%, #e5effc 100%);
  --four-seasons-ink: linear-gradient(115deg, #4e3045 0%, #123f3b 34%, #4b3b2c 67%, #283f60 100%);
}
body { background: #fbfaf7; }
.site-header {
  background: linear-gradient(110deg, #fff6faf5, #f4fcf8f5 34%, #fff9eff5 67%, #f3f8fff5);
}
.site-header::before { display: block; height: 3px; background: var(--four-seasons-line); }
.desktop-nav>a:not(.nav-visit)::after { background: var(--four-seasons-line); height: 2px; }
.mobile-menu { background: linear-gradient(150deg, #fff0f6, #eef9f2 34%, #fff6e8 67%, #edf5ff); }
.nav-visit { background: linear-gradient(115deg, #476153, #155a52 55%, #345777); }
.nav-visit:hover { background: linear-gradient(115deg, #3a5145, #0e4b44 55%, #294861); }
.hero .tiny-line { background: var(--four-seasons-line); }
.hero .hero-copy .button,
.closing .button {
  background: linear-gradient(110deg, #fff1f7, #effcf4 34%, #fff5e4 67%, #edf5ff);
  border-color: #fff9;
  color: #123f3b;
}
.hero .hero-copy .button:hover,
.closing .button:hover { background: linear-gradient(110deg, #ffe4ef, #def5e9 34%, #ffecd1 67%, #dfeeff); border-color: #fff; }
.hero .anniversary-seal { background: linear-gradient(135deg, #fff0f5f5, #eaf8eef5 35%, #fff1dcf5 67%, #eaf2fff5); }
.hero .hero-season-switch {
  background: linear-gradient(115deg, #fff1f7f7, #edfaf3f7 34%, #fff5e5f7 67%, #edf5fff7);
  border-color: #ffffffd9;
}
.anniversary-note { border-bottom: 1px solid transparent; border-image: var(--four-seasons-line) 1; }
.anniversary-note .note-dot { background: var(--season-deep); }
.about::before {
  background-image: linear-gradient(115deg, #fff0f7ed, #e9f8f0d9 34%, #fff2e0db 67%, #eaf3ffe0), var(--bg-water);
}
.holiday-shortcuts { background: linear-gradient(110deg, #fff8fb, #f5faf6 34%, #fff9ef 67%, #f5f8fe); }
.seasons { background: #f2f3f3; }
.seasons::before {
  background: radial-gradient(ellipse at 18% 18%, var(--season-wash), transparent 62%), var(--four-seasons-soft);
  opacity: 1;
}
.season-landscape img { box-shadow: 0 18px 35px -25px #365c6a55; }
.season-story { border-left-color: var(--season-deep); }
.season-choice[data-season-choice="spring"] { --choice-ink: #934466; --choice-end: #6f456c; --choice-colour: #da8cad; }
.season-choice[data-season-choice="summer"] { --choice-ink: #126254; --choice-end: #1d596c; --choice-colour: #5aab92; }
.season-choice[data-season-choice="autumn"] { --choice-ink: #8e4929; --choice-end: #765225; --choice-colour: #d89952; }
.season-choice[data-season-choice="winter"] { --choice-ink: #3b5d88; --choice-end: #52517e; --choice-colour: #87aed8; }
.season-choices .season-choice,
.hero .hero-switch-choices .season-choice { background: #ffffffc9; border-color: #b7c7c0; }
.season-choices .season-choice:hover,
.hero .hero-switch-choices .season-choice:hover { background: #fff; border-color: var(--choice-ink); }
.season-choices .season-choice[aria-pressed="true"],
.hero .hero-switch-choices .season-choice[aria-pressed="true"] {
  background: linear-gradient(130deg, var(--choice-ink), var(--choice-end));
  border-color: var(--choice-ink);
  color: #fff;
  box-shadow: 0 5px 15px -8px var(--choice-ink);
}
.visit {
  background-image: linear-gradient(115deg, #f8edf2ed, #e1f5eddc 34%, #fff2ded9 67%, #e6f1ffd9), var(--bg-water);
}
.highlights { background: linear-gradient(145deg, #fff8fb, #f7fbf7 38%, #fffaf1 69%, #f0f6fd); }
.around { background: linear-gradient(150deg, #edf6f2, #f9eef6 34%, #fdf3e5 67%, #eaf2fe); }
.sarakura-feature { background: #163c3c; }
.sarakura-body {
  background-image: linear-gradient(115deg, #392937ec, #103d3bdf 34%, #46372ce0 67%, #203b56e6), var(--bg-night);
}
.higashida-grid .furnace-spot { background: linear-gradient(140deg, #e6f1e8, #f8ecd9 60%, #e9eef9); }
.flower-note { background: #f5ecf6; }
.flower-note::before {
  background-image: linear-gradient(115deg, #fceaf3f0, #f7eff8ed 40%, #e9f6efd9 72%, #eef2fbd9), var(--bg-wisteria);
}
.food-drink { background: linear-gradient(120deg, #fff8fb, #f6fbf6 34%, #fff9ef 67%, #f2f6fc); }
.tenshin-feature {
  border-left-color: #ba8b8c;
  background-image: linear-gradient(115deg, #f9e8eebf, #edf6e8c9 34%, #fff0d6d1 67%, #edf0f9d9), var(--bg-paper);
}
.stay {
  background-image: linear-gradient(115deg, #f9eaf0d9, #edf6e9c9 34%, #fff1d9d6 67%, #e8eefbd9), var(--bg-paper);
}
.day-plans { background: linear-gradient(120deg, #fff6fa, #f1f9f4 34%, #fff8eb 67%, #eff5fd); }
.trip-tablist button[aria-selected="true"] {
  background: var(--four-seasons-soft);
  color: #173f3b;
  border-bottom-color: #527b72;
}
.trip-tablist button:hover { background: #ffffffa8; }
.trip-panel { background: linear-gradient(115deg, #f9edf2, #eaf5ec 34%, #fff4e2 67%, #edf3fc); }
.photo-contest {
  background-image: linear-gradient(125deg, #fbe7f1df, #e8f5ecdf 34%, #fcf0dddf 67%, #e4eefbef), var(--bg-paper);
}
.history {
  background-image: linear-gradient(115deg, #482f43e6, #123e3be0 34%, #4b392bdb 67%, #263e5ce0), url('/assets/dam-v2-1200.webp');
}
.airport::before { background: linear-gradient(120deg, #fff3f8, #f0f9f3 34%, #fff6e8 67%, #eaf2ff); }
.guide { background: linear-gradient(115deg, #f8eef4, #eef7ef 34%, #fcf4e5 67%, #edf3fd); }
.faq { background: linear-gradient(120deg, #fff8fb, #f8fbf6 34%, #fffaf1 67%, #f2f6fd); }
.guide-row:hover { background: #ffffff85; }
.closing { background: #234849; }
.closing::before {
  background-image: linear-gradient(115deg, #49263de0, #0d4541d9 34%, #63472dd1 67%, #1d3d60e0), url('/assets/hero-1440.webp');
  opacity: 1;
}
.site-footer { background: var(--four-seasons-ink); }
@media (max-width: 700px) {
  .about::before { background-image: linear-gradient(135deg, #fff0f7ed, #edf8f1e6 34%, #fff2e2e6 67%, #edf4ffe6), var(--bg-water); }
  .visit { background-image: linear-gradient(135deg, #f9eef4ed, #e5f6eee6 34%, #fff2e2e6 67%, #e9f2ffe6), var(--bg-water); }
  .flower-note::before { background-image: linear-gradient(135deg, #fceaf3f0, #f7eff8ed 40%, #e9f6efe6 72%, #eef2fbe6), var(--bg-wisteria); }
  .sarakura-body { background-image: linear-gradient(135deg, #392937f0, #103d3bed 34%, #46372ceb 67%, #203b56ed), var(--bg-night); }
}
/* Carry the same colours into the small photographic accents. */
.photo-art::before { background: var(--four-seasons-line); opacity: .78; }
.photo-star { color: #b57289; }
.photo-label { background: var(--four-seasons-soft); }

/* Editorial finish: the seasonal colours carry the type, light and small details. */
:root {
  --season-heading: linear-gradient(110deg, #70435c 0%, #18574e 36%, #6b4f33 70%, #36557a 100%);
  --photo-shadow: 0 22px 44px -30px #214e5159;
}
.hero .hero-copy h1 { line-height: 1.35; }
.hero .hero-copy h1>span:first-child { display: block; font-size: .75em; line-height: 1.55; font-weight: 500; letter-spacing: .05em; }
.hero .hero-copy h1>span:last-child { display: block; letter-spacing: .035em; }
.hero .hero-season-switch { box-shadow: 0 12px 32px #123f3b1a, inset 0 0 0 1px #fff9; }
.hero .hero-season-switch::before { content: ""; position: absolute; top: -1px; left: 14px; right: 14px; height: 2px; background: var(--four-seasons-line); pointer-events: none; }
.hero .season-jump { box-shadow: 0 5px 18px #153f3b10; }
main .eyebrow { display: flex; align-items: center; gap: 11px; }
main .eyebrow::before { content: ""; flex: 0 0 27px; width: 27px; height: 2px; border-radius: 2px; background: var(--four-seasons-line); }
.hero .eyebrow::before { content: none; }
.closing .eyebrow { justify-content: center; }
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .hero .hero-copy h1>span:last-child {
    background-image: linear-gradient(105deg, #fff5fa, #f1fff8 36%, #fff4e3 70%, #edf5ff);
    background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  }
  .about .section-intro h2, .season-copy h2, .visit-text h2,
  .section-heading h2, .stay h2, .photo-copy h2, .airport h2, .faq h2 {
    background-image: var(--season-heading);
    background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  }
}
.holiday-shortcuts a { box-shadow: 0 12px 26px -20px #1b4e4d66; outline: 1px solid #ffffffb0; outline-offset: -1px; }
.holiday-shortcuts a::before { content: ""; position: absolute; z-index: 1; bottom: 0; left: 0; right: 0; height: 3px; background: var(--four-seasons-line); pointer-events: none; }
.holiday-shortcuts a:hover { box-shadow: 0 18px 32px -21px #1b4e4d80; }
.holiday-shortcuts a:focus-visible { outline: 3px solid #bd713f; outline-offset: 6px; }
.season-landscape img, .visit-image img, .dam-feature figure img,
.bridge-feature figure img, .plane-photo img { box-shadow: var(--photo-shadow); }
.flower-note, .tenshin-feature { box-shadow: 0 20px 44px -34px #4a36584d; }
.sarakura-feature { box-shadow: 0 25px 48px -34px #173c4b66; }
.flower-note .text-link, .tenshin-copy .text-link { font-weight: 600; }
.dining-list { gap: 24px; }
.dining-list article {
  grid-template-columns: 24px minmax(0, 1fr) 36px;
  gap: 14px; align-items: start;
  padding: 26px 20px;
  border: 1px solid #ffffffd9; border-radius: 14px;
  background: linear-gradient(145deg, #ffffffd9, #ffffff80);
  box-shadow: 0 14px 30px -25px #3a635d40;
}
.dining-list .circle-arrow { width: 36px; height: 36px; background: #fff9; }
.dining-list .place-tag { color: #5c7468; }
.trip-tablist button { border-radius: 10px 10px 0 0; }
.trip-tablist button[aria-selected="true"] { font-weight: 600; box-shadow: inset 0 1px 0 #ffffffd9; }
.trip-panel { box-shadow: inset 0 0 0 1px #ffffffbf, 0 18px 34px -30px #36554e40; }
.trip-steps li>span { color: #647d63; }
.guide-index { color: #7d5967; }
.guide-row .circle-arrow { background: #ffffff80; }
.faq summary { grid-template-columns: 28px minmax(0, 1fr) 22px; gap: 14px; align-items: center; }
.question-mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%;
  margin-top: 0; background: var(--four-seasons-soft); color: #785168;
  font: 17px/1 Georgia, serif;
}
.faq details[open] .question-mark { color: #fff; background: linear-gradient(135deg, #795068, #225e56); }
.site-footer .credits-content { margin-bottom: 18px; padding: 23px 26px; background: #071d242e; border: 1px solid #ffffff1f; border-radius: 12px; }
.site-footer .credits a { text-underline-offset: 3px; }
@media (max-width: 700px) {
  main .eyebrow { gap: 9px; }
  main .eyebrow::before { flex-basis: 21px; width: 21px; }
  .hero .hero-copy h1>span:first-child { font-size: .78em; line-height: 1.65; }
  .dining-list article { position: relative; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; padding: 23px 16px; border-radius: 12px; }
  .dining-list .place-tag { padding-right: 32px; }
  .dining-list .circle-arrow { position: absolute; top: 23px; right: 16px; width: 30px; height: 30px; }
  .faq summary { grid-template-columns: 24px minmax(0, 1fr) 16px; gap: 10px; }
  .question-mark { width: 24px; height: 24px; font-size: 16px; }
  .site-footer .credits-content { padding: 18px 16px; }
}
@media (forced-colors: active) {
  .hero .hero-copy h1>span:last-child,
  .about .section-intro h2, .season-copy h2, .visit-text h2,
  .section-heading h2, .stay h2, .photo-copy h2, .airport h2, .faq h2 {
    background-image: none; -webkit-text-fill-color: CanvasText; color: CanvasText;
  }
  .holiday-shortcuts a { outline: 1px solid CanvasText; }
  .question-mark { border: 1px solid CanvasText; }
}
@media print {
  .hero .hero-copy h1>span:last-child,
  .about .section-intro h2, .season-copy h2, .visit-text h2,
  .section-heading h2, .stay h2, .photo-copy h2, .airport h2, .faq h2 {
    background-image: none; -webkit-text-fill-color: currentColor;
  }
}

/* Keep chapter labels readable and give dining copy room at tablet widths. */
main .eyebrow,
.season-copy .eyebrow { font-size: 13px; }
@media (min-width: 701px) and (max-width: 950px) {
  .dining-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .dining-list article + article { margin-top: 0; }
}

/* Balance short source paragraphs while preserving their topic breaks. */
.site-footer .credits-content p { text-wrap: balance; }
