/* Home only. Keep the welcome copy and existing destinations intact. */
body.home-page {
  --sans: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  --line: #dce3ed; --ink: #455268; --tint: #f7f8fa;
  background: #fff; color: var(--ink); font-family: var(--sans);
  font-size: 18px; line-height: 1.8; letter-spacing: .05em;
  word-break: normal; overflow-wrap: anywhere;
}
.home-page main h1, .home-page main h2, .home-page main h3 {
  font-family: var(--sans); line-height: 1.6; letter-spacing: .02em;
}
.home-page main > section { padding: 48px 16px; }
.home-page main .inner { max-width: 1120px; }
.home-page main h2 { font-size: 28px; margin-bottom: 24px; }
.home-page main h3 { font-size: 22px; margin-bottom: 16px; }
.home-page .hline { width: 48px; height: 2px; background: #9eafc5; margin-bottom: 32px; }
.home-page .welcome-hero {
  position: relative; isolation: isolate; overflow: hidden; padding: 64px 16px;
  background: radial-gradient(ellipse at 15% 18%, #e0e7ef 0%, transparent 52%),
    radial-gradient(ellipse at 90% 60%, #e6dce6 0%, transparent 55%),
    linear-gradient(145deg, #f2eee7, #f6f8fb 48%, #e6e9f2);
}
/* Quiet bands of window light, with no animation or image download. */
.home-page .welcome-hero::before {
  content: ""; position: absolute; z-index: -1; inset: -40%; transform: rotate(-28deg);
  background: repeating-linear-gradient(90deg, transparent 0 120px, #ffffff7a 120px 184px, transparent 184px 304px);
  filter: blur(16px); pointer-events: none;
}
.home-page .welcome-hero::after {
  content: ""; position: absolute; z-index: -1; width: 480px; height: 480px;
  border: 1px solid #ffffffa6; border-radius: 50%; right: -240px; top: 32px; pointer-events: none;
}
.home-page .welcome-hero .box { max-width: 800px; margin: 0 auto; text-align: left; }
.home-page .welcome-hero h1 { font-size: 32px; font-weight: 600; margin: 0 0 32px; line-height: 1.6; }
.home-page .welcome-hero h1 span:first-child { font-size: 20px; }
.home-page .welcome-hero .sub { font-size: 18px; line-height: 1.8; color: #38445b; margin: 0 0 32px; }
.home-page .welcome-hero .sub span { display: block; }
.home-page .welcome-hero .lead {
  max-width: 720px; margin: 0; padding: 24px; background: #ffffffb3;
  border: 1px solid #fff; border-radius: 18px; font-size: 16px; line-height: 1.8;
}
.home-page .mk { background: linear-gradient(transparent 65%, #e2e8f0 65%); color: #303b54; font-weight: 600; }
.home-page .cards { gap: 16px; }
.home-page .check-card, .home-page .mois, .home-page main .card {
  padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; min-width: 0;
}
.home-page .check-card { display: flex; flex-direction: column; }
.home-page .check-card p:last-of-type { margin-bottom: 24px; }
.home-page .check-no, .home-page .mois .when {
  display: inline-flex; align-self: flex-start; align-items: center; min-height: 32px;
  padding: 0 16px; margin-bottom: 16px; color: #526480; background: #eef2f7;
  border-radius: 18px; font-size: 14px; font-weight: 600; letter-spacing: .05em;
}
.home-page .mois { border-top: 4px solid #a5b4c9; }
.home-page .mois p:last-child { margin-bottom: 0; }
.home-page main .btn {
  min-height: 56px; padding: 16px 48px 16px 24px; border: 1px solid #d4dce8; border-radius: 18px;
  background: #eef2f7; color: #2c3550; font-family: inherit; font-size: 16px; line-height: 1.8;
  text-align: left; justify-content: flex-start;
}
.home-page main .btn::before { border-color: currentColor; right: 24px; }
.home-page main .btn:hover { background: #e0e7f1; border-color: #9aaac2; }
.home-page .check-card .btn { max-width: none; margin-top: auto; }
.home-page main .inner > .btn { margin-top: 32px !important; }
.home-page .prio { margin: 32px 0 24px; padding-left: 16px; border-left: 4px solid #9aaac2; font-size: 20px; font-weight: 600; }
.home-page .note { color: #59667b; font-size: 16px; }
.home-page .ico { width: 40px; height: 40px; stroke: #657d9f; margin-bottom: 24px; }
.home-page .card p { font-size: 18px; line-height: 1.8; }
.home-page a.cardlink .card { height: 100%; display: flex; flex-direction: column; }
.home-page a.cardlink:hover .card { background: #f7f9fc; border-color: #9aaac2; }
.home-page a.cardlink .more { padding-top: 24px; margin-top: auto; color: #526480; font-size: 16px; }
.home-page a.cardlink .more::after { content: " →"; }
.home-page main table { border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.home-page main th, .home-page main td { border: 0; padding: 24px; border-bottom: 1px solid var(--line); }
.home-page main tr:last-child th, .home-page main tr:last-child td { border-bottom: 0; }
.home-page .closing { background: #eef2f7; padding: 64px 24px; text-align: center; }
.home-page .closing p { max-width: 720px; margin: 0 auto; }
.home-page .closing p + p { margin-top: 16px; }
.home-page a:focus-visible { outline: 3px solid #657d9f; outline-offset: 4px; }
@media (min-width: 768px) {
  .home-page main > section { padding: 64px 32px; }
  .home-page .welcome-hero { padding: 80px 48px; }
  .home-page .welcome-hero h1 { font-size: 48px; }
  .home-page .welcome-hero h1 span:first-child { font-size: 32px; }
  .home-page .welcome-hero .sub { font-size: 20px; }
  .home-page .cards { gap: 24px; }
  .home-page main h2 { font-size: 32px; }
  .home-page .cards.c3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  .home-page main > section { padding: 64px 48px; }
  .home-page .check-card, .home-page .mois, .home-page main .card { padding: 32px; }
  .home-page .cards.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .home-page main table tr { border-bottom: 1px solid var(--line); }
  .home-page main table th, .home-page main table td { padding: 16px 24px; border: 0; }
}
