  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --navy:    #1B3A5C;
    --blue:    #2E5F8A;
    --blue-lt: #E8F0F7;
    --cream:   #F5F0EB;
    --gold:    #C8A96A;
    --gold-lt: #faf5ea;
    --red:     #C0392B;
    --text:    #2C2C2C;
    --muted:   #6B7280;
    --border:  #D1D9E0;
    --white:   #FFFFFF;
    --green:   #ccfce0;
  }

  body {
    line-height: 1.8;
  }

  /* ── ヘッダー ── */

  .museum-label {
    color: var(--gold);
    font-size: 11px;
    letter-spacing: .12em;
    font-family: 'Noto Serif JP', serif;
    white-space: nowrap;
  }
  .header-sep { width: 1px; height: 20px; background: rgba(255,255,255,.25); }
  .header-sub {
    color: rgba(255,255,255,.65);
    font-size: 11px;
    letter-spacing: .08em;
  }

  /* ── メインラッパー ── */
  .page-wrapper {
    max-width: 780px;
    margin: 40px auto 60px;
    padding: 0 20px;
  }

  /* ── ページタイトル ── */
  .page-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 26px;
    font-weight: 700;
    color: var(--navy);
    padding-bottom: 12px;
    border-bottom: 3px solid var(--gold);
    margin-bottom: 28px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .page-title::before {
    content: '';
    display: inline-block;
    width: 6px; height: 32px;
    background: var(--gold);
    border-radius: 3px;
    flex-shrink: 0;
  }

  /* ── 休館アラート ── */
  .alert-closed {
    background: #FEF2F2;
    border: 1.5px solid var(--red);
    border-left: 5px solid var(--red);
    border-radius: 6px;
    padding: 14px 18px;
    margin-bottom: 28px;
    margin-top: 18px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
  }
  .alert-closed .icon {
    font-size: 20px;
    flex-shrink: 0;
    margin-top: 1px;
  }
  .alert-closed .body {
    flex: 1; 
  }
  .alert-closed strong {
    display: block;
    color: var(--red);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .05em;
    margin-bottom: 4px;
  }
  .alert-closed p { font-size: 14px; color: #7F1D1D; }

  /* ── 説明カード ── */
  .info-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 20px 24px;
    margin-bottom: 24px;
  }
  .info-card p + p { margin-top: 8px; }

  /* ── セクション ── */
  .section {
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 20px;
    box-shadow: var(--border) 1px 1px 5px;
  }
  .section-head {
    background: var(--blue-lt);
    border-bottom: 1px solid var(--border);
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .section-head .icon { font-size: 18px; }
  .section-head h2 {
    font-family: 'Noto Serif JP', serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--navy);
    letter-spacing: .03em;
  }
  .section-body { padding: 20px 24px; }
  .section-body p {
    font-size:.9rem;
    margin-bottom: 16px;
    line-height:1.3;
  }
  .section-head.nagare {
    background: var(--green);
    border-bottom: 1px solid var(--border);
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .section-body.nagare .tl-step {
    background: var(--green);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px 12px;
    font-size: 13px;
    color: var(--navy);
    font-weight: 500;
    position: relative;
  }
  .section-body.nagare .tl-step .note {
    font-size: 12px;
    color: var(--muted);
    margin-top: 4px;
  }
  .section-body.tebiki-link {
    background: var(--gold-lt);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px 20px;
    font-size: 13px;
    color: var(--navy);
    font-weight: 500;
    box-shadow: var(--border) 1px 1px 5px;
  }

  /* ── ダウンロードボタン群 ── */
  .dl-group { display: flex; flex-direction: column; gap: 10px; }
  .dl-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    padding: 12px 16px;
    border-radius: 6px;
    border: 1.5px solid var(--border);
    box-shadow: var(--border) 1px 1px 5px;
    transition: border-color .15s, background .15s;
  }
  .dl-btn:hover { border-color: var(--blue); background: var(--blue-lt); }
  .dl-btn .dl-icon {
    width: 38px; height: 38px;
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
  }
  .dl-btn.pdf .dl-icon  { background: #FEF2F2; }
  .dl-btn.xlsx .dl-icon { background: #F0FDF4; }
  .dl-btn .dl-meta { flex: 1; }
  .dl-btn .dl-label {
    font-weight: 700;
    font-size: 14px;
    color: var(--navy);
    display: block;
  }
  .dl-btn .dl-note {
    font-size: .9rem;
    color: var(--text);
  }
  .dl-btn .dl-arrow { color: var(--muted); font-size: 13px; }

  /* ── 補足テキスト ── */
  /* .note-text {
    font-size: 13px;
    color: var(--muted);
    padding: 12px 20px 16px;
    border-top: 1px solid var(--border);
  } */

  /* ── 駐車場 ── */
  /* .parking-note {
    font-size: 14px;
    color: var(--text);
    margin-bottom: 14px;
  } */

  /* ── リンクリスト ── */
  .link-list { display: flex; flex-direction: column; gap: 8px; }
  .link-list a {
    color: var(--text);
    font-size: .92rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .link-list a::before { content: '›'; font-size: 16px; color: var(--gold); }
  .link-list a:hover { text-decoration: underline; }

  /* ── 送付先ボックス ── */
  .address-box {
    background: var(--blue-lt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 20px 24px;
    margin-bottom: 20px;
    box-shadow: var(--border) 1px 1px 5px;
  }
  .address-box h3 {
    font-family: 'Noto Serif JP', serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 12px;
    letter-spacing: .05em;
  }
  .address-grid {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 16px;
    font-size: 14px;
  }
  .address-grid .lbl { color: var(--muted); font-size: 12px; white-space: nowrap; padding-top: 2px; }
  .address-grid .val { color: var(--text); }
  .address-grid .val a { color: var(--blue); text-decoration: none; }

  /* ── 提出タイムライン ── */
  .timeline {
    display: flex;
    align-items: flex-start;
    gap: 0;
    margin-bottom: 4px;
  }
  .tl-step {
    flex: 1;
    text-align: center;
    padding: 10px 8px;
    background: var(--blue-lt);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: var(--border) 1px 1px 5px;
    font-size: 13px;
    color: var(--navy);
    font-weight: 500;
    position: relative;
  }
  .tl-step .step-num {
    display: block;
    font-size: 10px;
    color: var(--muted);
    letter-spacing: .08em;
    margin-bottom: 4px;
  }
  .tl-arrow {
    display: flex;
    align-items: center;
    padding: 0 6px;
    color: var(--gold);
    font-size: 18px;
    flex-shrink: 0;
    margin-top: 18px;
  }
  .eligible-note {
    font-size: .9rem;
    color: var(--text);
    margin-top: 12px;
  }

   @media (max-width: 600px) {
    .timeline { flex-direction: column; }
    .tl-arrow { transform: rotate(90deg); margin: 4px auto; }
    .tl-step { width: 100%; }
    .page-title { font-size: 21px; }
  }