:root {
    --primary:      #2ECC71;
    --primary-dark: #27AE60;
    --accent:       #E8715A;
    --text:         #222222;
    --text-sub:     #717171;
    --bg:           #FFFFFF;
    --surface:      #F7F7F7;
    --border:       #E5E5E5;
    --shadow-card:  0 2px 16px rgba(0,0,0,0.08);
    --shadow-hover: 0 8px 32px rgba(0,0,0,0.14);
  }
  * { box-sizing: border-box; }
  body {
    font-family: 'Noto Sans JP', sans-serif;
    color: var(--text);
    background: var(--bg);
    margin: 0;
    -webkit-font-smoothing: antialiased;
  }
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible {
    outline: 3px solid rgba(15, 79, 53, 0.28);
    outline-offset: 3px;
  }
  .skip-link {
    position: fixed;
    left: 16px;
    top: 12px;
    z-index: 1000;
    transform: translateY(-160%);
    padding: 10px 14px;
    background: #0f4f35;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    transition: transform 0.16s ease;
  }
  .skip-link:focus {
    transform: translateY(0);
  }

  /* ─── ヘッダー ─── */
  .site-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s, box-shadow 0.3s;
  }
  .site-header.scrolled {
    border-color: var(--border);
    box-shadow: 0 1px 12px rgba(0,0,0,0.06);
  }
  .header-inner {
    max-width: 1280px; margin: 0 auto; padding: 0 32px;
    height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  }
  .logo-wrap { display: flex; align-items: center; gap: 12px; text-decoration: none; flex-shrink: 0; }
  .logo-wrap img { height: 40px; width: 40px; object-fit: contain; }
  .logo-text { display: flex; flex-direction: column; line-height: 1.2; }
  .logo-text .org-name { font-size: 13px; font-weight: 700; color: var(--primary-dark); letter-spacing: 0.04em; }
  .logo-text .org-abbr { font-size: 11px; font-weight: 400; color: var(--text-sub); letter-spacing: 0.06em; }

  /* ナビ */
  .main-nav { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
  .main-nav > li { position: relative; }
  .dropdown-parent::after {
    content: "";
    position: absolute;
    left: -8px;
    right: -8px;
    top: 100%;
    height: 14px;
    z-index: 1;
  }
  .main-nav > li > a,
  .main-nav > li > button {
    display: flex; align-items: center; gap: 4px; padding: 8px 12px;
    font-size: 13px; font-weight: 500; color: var(--text); text-decoration: none;
    background: none; border: none; cursor: pointer; border-radius: 8px;
    transition: background 0.18s, color 0.18s; white-space: nowrap;
  }
  .main-nav > li > a:hover,
  .main-nav > li > button:hover { background: var(--surface); color: var(--primary-dark); }
  .main-nav > li > a.is-current {
    background: #edf7f1;
    color: var(--primary-dark);
    font-weight: 800;
  }
  .caret {
    width: 10px; height: 10px;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px); transition: transform 0.2s; display: inline-block;
  }
  .dropdown-parent:focus-within .caret,
  .dropdown-parent:hover .caret { transform: rotate(-135deg) translateY(-2px); }
  .dropdown-menu-v2 {
    position: absolute; top: calc(100% + 4px); left: 50%; transform: translateX(-50%) translateY(-4px);
    min-width: 180px; background: #fff; border: 1px solid var(--border); border-radius: 12px;
    box-shadow: var(--shadow-hover); padding: 8px;
    opacity: 0; pointer-events: none; transition: opacity 0.18s, transform 0.18s;
    list-style: none; margin: 0; z-index: 2;
  }
  .dropdown-parent:hover .dropdown-menu-v2,
  .dropdown-parent:focus-within .dropdown-menu-v2 {
    opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0);
  }
  .dropdown-menu-v2 li a {
    display: block; padding: 9px 14px; font-size: 13px; color: var(--text);
    text-decoration: none; border-radius: 8px; transition: background 0.15s, color 0.15s;
  }
  .dropdown-menu-v2 li a:hover { background: var(--surface); color: var(--primary-dark); }
  .nav-contact-btn {
    display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px;
    background: var(--primary); color: #fff !important; font-size: 13px; font-weight: 700;
    border-radius: 24px; text-decoration: none;
    transition: background 0.18s, box-shadow 0.18s, transform 0.18s; white-space: nowrap;
  }
  .nav-contact-btn:hover {
    background: var(--primary-dark); box-shadow: 0 4px 16px rgba(46,204,113,0.35); transform: translateY(-1px);
  }
  .menu-toggle {
    display: none; flex-direction: column; gap: 5px;
    background: none; border: none; cursor: pointer; padding: 8px; border-radius: 8px;
  }
  .menu-toggle span { display: block; width: 22px; height: 2px; background: var(--text); border-radius: 2px; transition: all 0.25s; }

  /* ─── セクション共通 ─── */
  .section { padding: 96px 0; }
  .section-alt { background: var(--surface); }
  .container-v2 { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
  .section-header { margin-bottom: 52px; }
  .section-label-v2 {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700; color: var(--primary-dark);
    letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 12px;
  }
  .section-label-v2::before {
    content: ''; display: block; width: 20px; height: 2px; background: var(--primary); border-radius: 2px;
  }
  .section-title-v2 {
    font-size: clamp(22px, 3vw, 34px); font-weight: 700; color: var(--text);
    letter-spacing: -0.01em; margin: 0 0 12px; line-height: 1.3;
  }
  .section-subtitle-v2 { font-size: 15px; color: var(--text-sub); margin: 0; line-height: 1.6; }
  .section-header-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
  .link-more {
    display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600;
    color: var(--primary-dark); text-decoration: none; white-space: nowrap; transition: gap 0.18s;
  }
  .link-more:hover { gap: 10px; }
  .link-more::after { content: '→'; font-size: 14px; }

  /* ─── カード ─── */
  .card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .card-v2 {
    background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); overflow: hidden;
    transition: box-shadow 0.24s, transform 0.24s; text-decoration: none; color: inherit;
    display: flex; flex-direction: column;
  }
  .card-v2:hover { box-shadow: var(--shadow-hover); transform: translateY(-4px); }
  .card-img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
  .topic-card-blank,
  .topic-list-blank,
  .topic-admin-thumb-blank,
  .topic-detail-blank,
  .subpage-compat .thumb.topic-thumb-blank {
    display: block;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
      linear-gradient(135deg, rgba(255,255,255,0.99), rgba(247,248,245,0.94)),
      repeating-linear-gradient(0deg, rgba(30,42,34,0.032) 0 1px, transparent 1px 24px),
      repeating-linear-gradient(90deg, rgba(30,42,34,0.026) 0 1px, transparent 1px 24px),
      #fff;
    border: 1px solid rgba(20,48,32,0.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.85);
  }
  .topic-card-blank::before,
  .topic-list-blank::before,
  .topic-admin-thumb-blank::before,
  .topic-detail-blank::before,
  .subpage-compat .thumb.topic-thumb-blank::before {
    content: '';
    position: absolute;
    inset: -18%;
    z-index: 0;
    pointer-events: none;
    background:
      linear-gradient(135deg, transparent 0 34%, rgba(15,79,53,0.045) 34% 35%, transparent 35% 100%),
      linear-gradient(45deg, transparent 0 58%, rgba(161,132,69,0.035) 58% 59%, transparent 59% 100%),
      linear-gradient(160deg, transparent 0 68%, rgba(30,42,34,0.032) 68% 69%, transparent 69% 100%);
    transform: rotate(-3deg);
  }
  .topic-card-blank::after,
  .topic-list-blank::after,
  .topic-admin-thumb-blank::after,
  .topic-detail-blank::after,
  .subpage-compat .thumb.topic-thumb-blank::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
      radial-gradient(circle at 24% 32%, rgba(15,79,53,0.055) 0 1px, transparent 1.6px),
      radial-gradient(circle at 70% 66%, rgba(161,132,69,0.05) 0 1px, transparent 1.6px);
    background-size: 26px 26px, 32px 32px;
  }
  .topic-card-blank {
    width: 100%;
    aspect-ratio: 16/10;
    border-width: 0 0 1px;
    border-radius: 0;
  }
  .topic-list-blank {
    width: 100%;
    height: 100%;
    border-radius: 5px;
  }
  .topic-admin-thumb-blank {
    width: 48px;
    height: 32px;
    border-radius: 5px;
  }
  .card-body-v2 { padding: 20px 22px 24px; flex: 1; display: flex; flex-direction: column; }
  .card-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
  .card-date { font-size: 12px; color: var(--text-sub); }
  .card-tag {
    display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; letter-spacing: 0.04em;
  }
  .tag-news   { background: #E8F5E9; color: #27AE60; }
  .tag-topics { background: #FFF3E0; color: #E67E22; }
  .tag-event  { background: #FCE4EC; color: var(--accent); }
  .organization-tag {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 3px 7px;
    border: 1px solid rgba(15, 79, 53, 0.16);
    border-radius: 3px;
    background: #f1f5f2;
    color: #315845;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
  }
  .topic-list-meta,
  .topic-detail-meta,
  .event-label-row,
  .event-detail-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }
  .topic-detail-meta { margin-bottom: 8px; }
  .subpage-compat .meta .organization-tag { margin-left: 8px; }
  .card-title-v2 { font-size: 15px; font-weight: 700; line-height: 1.5; color: var(--text); margin: 0 0 10px; flex: 1; }
  .card-desc-v2 { font-size: 13px; color: var(--text-sub); line-height: 1.65; margin: 0; }

  /* ─── お知らせリスト ─── */
  .news-list-v2 {
    display: flex; flex-direction: column; gap: 0;
    border: 1px solid var(--border); border-radius: 12px; overflow: hidden;
    background: #fff; box-shadow: var(--shadow-card);
  }
  .news-item-v2 {
    display: flex; align-items: flex-start; gap: 20px; padding: 20px 28px;
    border-bottom: 1px solid var(--border); text-decoration: none; color: inherit; transition: background 0.16s;
  }
  .news-item-v2:last-child { border-bottom: none; }
  .news-item-v2:hover { background: var(--surface); }
  .news-item-date-v2 { font-size: 13px; color: var(--text-sub); white-space: nowrap; margin-top: 2px; min-width: 84px; }
  .news-item-tag-v2 { min-width: 80px; }
  .news-item-title-v2 { font-size: 14px; font-weight: 500; line-height: 1.55; color: var(--text); flex: 1; }
  .news-item-arrow-v2 { color: var(--text-sub); font-size: 16px; margin-top: 1px; transition: color 0.16s, transform 0.16s; }
  .news-item-v2:hover .news-item-arrow-v2 { color: var(--primary-dark); transform: translateX(3px); }

  /* ─── イベントカード ─── */
  .event-list-v2 { display: flex; flex-direction: column; gap: 20px; }
  .event-card-v2 {
    display: flex; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card);
    overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow 0.24s, transform 0.24s;
  }
  .event-card-v2:hover { box-shadow: var(--shadow-hover); transform: translateY(-3px); }
  .event-date-block {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-width: 96px; background: var(--primary); color: #fff; padding: 20px 16px;
  }
  .event-date-block.is-past { background: #69736d; }
  .event-month { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.95; }
  .event-day { font-size: 36px; font-weight: 700; line-height: 1; margin: 2px 0; }
  .event-weekday { font-size: 11px; font-weight: 600; opacity: 0.95; }
  .event-body-v2 { padding: 20px 24px; flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
  .event-label-row { min-height: 20px; }
  .event-category { font-size: 11px; font-weight: 700; color: var(--accent); letter-spacing: 0.1em; text-transform: uppercase; }
  .event-status-v2 { font-size: 11px; font-weight: 700; color: var(--primary-dark); }
  .event-status-v2.is-past { color: #69736d; }
  .event-title-v2 { font-size: 16px; font-weight: 700; color: var(--text); line-height: 1.4; margin: 0; }
  .event-description-v2 {
    display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
    margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.65;
  }
  .event-meta-v2 { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 4px; }
  .event-meta-item-v2 { display: flex; align-items: center; gap: 5px; font-size: 13px; color: var(--text-sub); }
  .event-arrow-v2 { display: flex; align-items: center; padding: 0 24px 0 8px; font-size: 18px; color: var(--text-sub); transition: color 0.18s, transform 0.18s; }
  .event-card-v2:hover .event-arrow-v2 { color: var(--primary-dark); transform: translateX(4px); }

  /* ─── ミッションバナー ─── */
  .mission-section {
    background: linear-gradient(135deg, var(--primary-dark) 0%, #1e8449 100%);
    padding: 96px 0; position: relative; overflow: hidden;
  }
  .mission-section::before {
    content: ''; position: absolute; top: -60px; right: -60px;
    width: 320px; height: 320px; border-radius: 50%; background: rgba(255,255,255,0.05);
  }
  .mission-section::after {
    content: ''; position: absolute; bottom: -80px; left: -40px;
    width: 400px; height: 400px; border-radius: 50%; background: rgba(255,255,255,0.04);
  }
  .mission-inner {
    position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; padding: 0 32px;
    display: flex; align-items: center; gap: 64px;
  }
  .mission-text { flex: 1; }
  /* コントラスト改善: 聴覚障害者は低視力を併発するケースが多いためWCAG AA準拠を重視 */
  .mission-label {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700; color: rgba(255,255,255,0.92);
    letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 16px;
  }
  .mission-label::before { content: ''; display: block; width: 20px; height: 2px; background: rgba(255,255,255,0.7); border-radius: 2px; }
  .mission-title-v2 { font-size: clamp(22px, 3vw, 34px); font-weight: 700; color: #fff; line-height: 1.35; letter-spacing: -0.01em; margin: 0 0 20px; }
  .mission-title-v2 span { color: rgba(255,255,255,0.88); font-weight: 400; font-size: 0.75em; }
  .mission-desc { font-size: 15px; color: rgba(255,255,255,0.96); line-height: 1.8; margin: 0 0 32px; }
  .mission-stats { display: flex; gap: 36px; flex-wrap: wrap; }
  .stat-num { font-size: 32px; font-weight: 700; color: #fff; line-height: 1; margin-bottom: 4px; }
  .stat-num span { font-size: 16px; font-weight: 400; }
  .stat-label { font-size: 12px; color: rgba(255,255,255,0.88); letter-spacing: 0.04em; }
  .mission-visual { flex-shrink: 0; width: 360px; }
  .mission-visual img { width: 100%; height: 260px; object-fit: cover; border-radius: 16px; opacity: 0.9; }

  /* ─── アクセス ─── */
  .access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
  .access-map { border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-card); background: var(--border); height: 320px; }
  .access-map iframe { width: 100%; height: 100%; border: none; display: block; }
  .access-info-v2 { padding: 8px 0; }
  .access-title-v2 { font-size: 20px; font-weight: 700; color: var(--text); margin: 0 0 8px; }
  .access-org-v2 { font-size: 13px; color: var(--text-sub); margin: 0 0 28px; }
  .access-detail-list { display: flex; flex-direction: column; gap: 16px; margin-bottom: 32px; }
  .access-detail-item { display: flex; align-items: flex-start; gap: 14px; }
  .access-icon { width: 36px; height: 36px; border-radius: 8px; background: #E8F5E9; color: var(--primary-dark); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .access-detail-text dt { font-size: 11px; font-weight: 700; color: var(--text-sub); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 3px; }
  .access-detail-text dd { font-size: 14px; font-weight: 500; color: var(--text); margin: 0; line-height: 1.5; }
  .access-hours { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; }
  .access-hours p { font-size: 13px; color: var(--text-sub); line-height: 1.7; margin: 0; }
  .access-hours strong { color: var(--text); font-weight: 600; }

  /* ─── ヒーロー ─── */
  .hero { position: relative; height: 560px; margin-top: 68px; overflow: hidden; }
  .hero-img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
  /* ヒーローのオーバーレイは深めの森林緑に。明るさを抑えて落ち着いた印象に。 */
  .hero-overlay { position: absolute; inset: 0; background: linear-gradient(105deg, rgba(30,68,48,0.82) 0%, rgba(30,68,48,0.55) 45%, rgba(0,0,0,0.18) 100%); }
  .hero-content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 48px; max-width: 800px; }
  .hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 500; color: rgba(255,255,255,0.88); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 16px; }
  .hero-eyebrow::before { content: ''; display: block; width: 28px; height: 1.5px; background: rgba(255,255,255,0.7); }
  .hero-title { font-size: clamp(28px, 4vw, 48px); font-weight: 700; color: #fff; line-height: 1.3; letter-spacing: -0.01em; margin: 0 0 24px; }
  .hero-title em { font-style: normal; color: #fff; border-bottom: 3px solid var(--accent); padding-bottom: 2px; }
  .hero-desc { font-size: 16px; font-weight: 400; color: rgba(255,255,255,0.95); line-height: 1.7; margin: 0 0 36px; max-width: 480px; }
  .hero-cta-wrap { display: flex; gap: 16px; flex-wrap: wrap; }
  /* プライマリボタンに軽いシャドウを付けて暗背景への浮かび上がりを強める */
  .btn-primary-v2 { display: inline-flex; align-items: center; gap: 8px; padding: 13px 28px; background: #fff; color: var(--primary-dark); font-size: 14px; font-weight: 700; border-radius: 28px; text-decoration: none; transition: box-shadow 0.2s, transform 0.2s; letter-spacing: 0.02em; box-shadow: 0 4px 16px rgba(0,0,0,0.18); }
  .btn-primary-v2:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.26); transform: translateY(-2px); }
  .btn-outline-v2 { display: inline-flex; align-items: center; gap: 8px; padding: 13px 28px; background: transparent; color: #fff; font-size: 14px; font-weight: 500; border: 1.5px solid rgba(255,255,255,0.7); border-radius: 28px; text-decoration: none; transition: background 0.2s, border-color 0.2s, transform 0.2s; }
  .btn-outline-v2:hover { background: rgba(255,255,255,0.12); border-color: #fff; transform: translateY(-2px); }

  /* ─── クイックナビ ─── */
  .quick-nav { padding: 0; position: relative; z-index: 2; margin-top: -40px; }
  .quick-nav-grid {
    display: grid; grid-template-columns: repeat(5, 1fr); gap: 0;
    background: #fff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,0.10);
    overflow: hidden;
  }
  .quick-nav-item {
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    padding: 32px 16px 28px;
    text-decoration: none; color: inherit; text-align: center;
    position: relative;
    transition: background 0.2s;
  }
  .quick-nav-item:not(:last-child)::after {
    content: ''; position: absolute; right: 0; top: 20%; height: 60%;
    width: 1px; background: var(--border);
  }
  .quick-nav-item:hover { background: var(--surface); }
  .quick-nav-item:hover .quick-nav-icon-wrap { background: var(--primary); }
  .quick-nav-item:hover .quick-nav-icon-wrap svg { stroke: #fff; }
  .quick-nav-icon-wrap {
    width: 52px; height: 52px; border-radius: 14px;
    background: #E8F5E9;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.24s;
  }
  .quick-nav-icon-wrap svg { width: 24px; height: 24px; stroke: var(--primary-dark); fill: none; transition: stroke 0.24s; }
  .quick-nav-label { font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.2; }
  .quick-nav-desc { font-size: 11px; color: var(--text-sub); line-height: 1.4; margin-top: -4px; }

  @media (max-width: 768px) {
    .quick-nav { margin-top: -28px; }
    .quick-nav .container-v2 { padding: 0 16px; }
    .quick-nav-grid { grid-template-columns: repeat(5, 1fr); border-radius: 12px; }
    .quick-nav-item { padding: 20px 8px 18px; gap: 8px; }
    .quick-nav-icon-wrap { width: 40px; height: 40px; border-radius: 10px; }
    .quick-nav-icon-wrap svg { width: 20px; height: 20px; }
    .quick-nav-label { font-size: 11px; }
    .quick-nav-desc { display: none; }
  }
  @media (max-width: 480px) {
    .quick-nav-item:not(:last-child)::after { display: none; }
    .quick-nav-grid { grid-template-columns: repeat(3, 1fr); gap: 0; border-radius: 12px; }
    .quick-nav-item { border-bottom: 1px solid var(--border); }
    .quick-nav-item:nth-last-child(-n+2) { border-bottom: none; }
  }

  /* ─── バナー帯 ─── */
  .accent-strip { background: var(--accent); color: #fff; padding: 20px 0; text-align: center; }
  .accent-strip p { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; }
  .accent-strip a { color: #fff; font-weight: 700; text-decoration: underline; margin-left: 12px; }

  /* ─── 関連リンク ─── */
  .ext-links-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
  .ext-link-card {
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    padding: 24px 12px; border-radius: 12px; border: 1px solid var(--border);
    background: #fff; text-decoration: none;
    transition: box-shadow 0.24s, transform 0.24s, border-color 0.24s;
  }
  .ext-link-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-3px); border-color: var(--primary); }
  .ext-link-icon {
    width: 48px; height: 48px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .ext-link-icon svg { width: 24px; height: 24px; }
  .ext-link-label { font-size: 13px; font-weight: 700; color: var(--text); text-align: center; line-height: 1.5; }
  .ext-link-card:hover .ext-link-label { color: var(--primary-dark); }
  @media (max-width: 768px) {
    .ext-links-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .ext-link-card { padding: 18px 10px; gap: 8px; }
    .ext-link-icon { width: 40px; height: 40px; border-radius: 10px; }
    .ext-link-icon svg { width: 20px; height: 20px; }
    .ext-link-label { font-size: 12px; }
  }

  /* ─── フッター ─── */
  /* フッターもWCAG AA準拠の不透明度に調整（暗背景に白文字は0.7以上推奨） */
  .site-footer { background: #111; color: rgba(255,255,255,0.82); padding: 64px 0 0; }
  .footer-inner { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
  .footer-top { display: grid; grid-template-columns: 260px 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,0.12); }
  .footer-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; margin-bottom: 16px; }
  /* ヘッダーと同じオリジナルロゴを表示（以前は白シルエット化していたが、透過部分が白丸になる問題があった） */
  .footer-logo img { height: 36px; width: 36px; object-fit: contain; }
  .footer-logo-name { font-size: 12px; font-weight: 700; color: rgba(255,255,255,0.95); line-height: 1.3; }
  .footer-tagline { font-size: 13px; color: rgba(255,255,255,0.72); line-height: 1.7; margin: 0 0 20px; }
  .footer-contact-button {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 42px; padding: 10px 18px;
    background: #0f4f35; color: #fff; border: 1px solid rgba(255,255,255,0.16);
    border-radius: 6px; box-shadow: 0 10px 24px rgba(0,0,0,0.18);
    font-size: 13px; font-weight: 700; line-height: 1; text-decoration: none;
    transition: background 0.18s, border-color 0.18s, box-shadow 0.18s, transform 0.18s;
  }
  .footer-contact-button:hover {
    background: #0a3827; color: #fff; border-color: rgba(255,255,255,0.24);
    box-shadow: 0 14px 30px rgba(0,0,0,0.24); transform: translateY(-1px);
  }
  .footer-contact-button:focus-visible {
    outline: 2px solid rgba(255,255,255,0.72); outline-offset: 3px;
  }
  .footer-col-title { font-size: 11px; font-weight: 700; color: rgba(255,255,255,0.95); letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 16px; }
  .footer-accordion-toggle { display: none; }
  .footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
  .footer-links a { font-size: 13px; color: rgba(255,255,255,0.78); text-decoration: none; transition: color 0.16s; }
  .footer-links a:hover { color: #fff; }
  .footer-bottom { padding: 20px 0; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
  .footer-copy { font-size: 12px; color: rgba(255,255,255,0.58); }
  .footer-tel-fax { display: flex; gap: 20px; align-items: center; }
  .footer-tel-fax a { font-size: 12px; color: rgba(255,255,255,0.72); text-decoration: none; transition: color 0.16s; }
  .footer-tel-fax a:hover { color: #fff; }

  /* ─── ページバナー（サブページ共通） ─── */
  .page-banner { background: linear-gradient(135deg, var(--primary-dark), #1e8449); padding: 120px 0 48px; margin-top: 68px; position: relative; overflow: hidden; }
  .page-banner::after { content: ''; position: absolute; top: -40px; right: -40px; width: 240px; height: 240px; border-radius: 50%; background: rgba(255,255,255,0.05); }
  .page-banner h1 { font-size: clamp(24px, 3vw, 36px); font-weight: 700; color: #fff; margin: 0; line-height: 1.3; }
  .page-banner .page-label { font-size: 11px; font-weight: 700; color: rgba(255,255,255,0.88); letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 10px; display: inline-flex; align-items: center; gap: 8px; }
  .page-banner .page-label::before { content: ''; display: block; width: 20px; height: 2px; background: rgba(255,255,255,0.65); border-radius: 2px; }
  .page-banner p:not(.page-label) { font-size: 14px; color: rgba(255,255,255,0.9); margin-top: 10px; line-height: 1.6; }

  /* ─── サブページ コンテンツ ─── */
  .subpage-body { padding: 72px 0 96px; }
  .subpage-body.alt { background: var(--surface); }
  .subpage-container { max-width: 960px; margin: 0 auto; padding: 0 32px; }
  .subpage-container.wide { max-width: 1280px; }
  .subpage-section { margin-bottom: 64px; }
  .subpage-section:last-child { margin-bottom: 0; }
  .subpage-back { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--text-sub); text-decoration: none; transition: color 0.18s, gap 0.18s; margin-bottom: 40px; }
  .subpage-back:hover { color: var(--primary-dark); gap: 8px; }
  .subpage-back::before { content: '←'; }

  /* ─── 本文リンク（トピックス・ニュース詳細） ─── */
.prose a {
    color: var(--primary-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 500;
    transition: color 0.18s;
  }
  .prose a:hover { color: var(--primary); }
  .topic-detail-image {
    display: block;
    width: 100%;
    max-height: 320px;
    object-fit: cover;
    margin: 0 0 28px;
    border: 1px solid rgba(20,48,32,0.12);
    border-radius: 6px;
    background: #f7f8f4;
  }
  .topic-detail-image.is-fallback,
  .topic-detail-blank {
    width: min(100%, 560px);
    height: clamp(128px, 24vw, 220px);
    margin: 0 auto 28px;
    border-radius: 6px;
  }
  @media (max-width: 768px) {
    .subpage-body { padding: 48px 0 64px; }
    .subpage-container { padding: 0 20px; }
    .page-banner { padding: 100px 0 36px; }
    .topic-detail-image.is-fallback,
    .topic-detail-blank { width: min(100%, 420px); height: 148px; }
  }

  /* ─── フェードイン ─── */
  .fade-up { opacity: 0; transform: translateY(24px); transition: opacity 0.55s ease, transform 0.55s ease; }
  .fade-up.visible { opacity: 1; transform: translateY(0); }
  .fade-up:nth-child(2) { transition-delay: 0.08s; }
  .fade-up:nth-child(3) { transition-delay: 0.16s; }

  /* ─── line-clamp ─── */
  .line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

  /* ─── モバイル ─── */
  @media (max-width: 1024px) {
    .footer-top { grid-template-columns: 1fr 1fr; }
    .mission-inner { flex-direction: column; gap: 40px; }
    .mission-visual { width: 100%; }
    .card-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 768px) {
    .header-inner { padding: 0 20px; }
    .main-nav, .nav-contact-btn { display: none; }
    .dropdown-parent::after { display: none; }
    .menu-toggle { display: flex; }
    .mobile-nav-open .main-nav {
      display: flex; flex-direction: column; position: fixed;
      top: 68px; left: 0; right: 0; background: #fff;
      padding: 16px 20px 24px; border-bottom: 1px solid var(--border);
      box-shadow: 0 8px 32px rgba(0,0,0,0.1); z-index: 99; gap: 0;
    }
    .main-nav > li > a, .main-nav > li > button { font-size: 15px; padding: 12px 8px; width: 100%; }
    .dropdown-menu-v2 {
      position: static; transform: none; opacity: 1; pointer-events: auto;
      box-shadow: none; border: none; background: var(--surface); border-radius: 8px;
      padding: 4px 8px; margin: 4px 0 4px 16px;
    }
    .hero { height: 480px; }
    .hero-content { padding: 0 24px; }
    .hero-desc { font-size: 14px; }
    .section { padding: 64px 0; }
    .container-v2 { padding: 0 20px; }
    .card-grid { grid-template-columns: 1fr; }
    .access-grid { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
    .event-arrow-v2 { display: none; }
    .section-header-row { flex-direction: column; align-items: flex-start; }
    .page-banner { padding: 100px 0 36px; }
  }
  @media (max-width: 480px) {
    .hero { height: 420px; }
    .hero-cta-wrap { flex-direction: column; }
    .btn-primary-v2, .btn-outline-v2 { width: 100%; justify-content: center; }
    .footer-top { grid-template-columns: 1fr; }
    .news-item-v2 { flex-wrap: wrap; gap: 8px; }
    .news-item-date-v2 { min-width: auto; }
    .event-card-v2 { flex-direction: column; }
    .event-date-block { flex-direction: row; min-width: auto; padding: 14px 20px; justify-content: flex-start; gap: 12px; }
    .event-day { font-size: 28px; }
  }

/* SQLite preview gate/admin/support */
.gate { min-height: 100vh; display: grid; place-items: center; padding: 22px; background: var(--surface); }
.gate-card { width: min(92vw, 380px); padding: 30px; border: 1px solid var(--border); border-radius: 12px; background: #fff; box-shadow: var(--shadow-card); }
.gate-card h1 { margin: 0 0 8px; font-size: 24px; font-weight: 700; }
.gate-card p { margin: 0 0 20px; color: var(--text-sub); }
.gate-card label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 700; color: var(--text-sub); }
.gate-card input { width: 100%; padding: 11px 12px; border: 1px solid var(--border); border-radius: 8px; margin-bottom: 14px; }
.gate-card button, .button, button, input[type=submit] { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 18px; border: 0; border-radius: 24px; background: var(--primary); color: #fff; font-weight: 700; text-decoration: none; cursor: pointer; }
.button.secondary { background: #fff; color: var(--primary-dark); border: 1px solid var(--border); }
.button.danger { background: #d84a3a; }
.notice { margin: 16px auto; max-width: 960px; padding: 14px 16px; border-radius: 8px; background: #E8F5E9; color: #1e8449; font-weight: 700; }
.error { color: #d84a3a; font-weight: 700; }
.admin-page .site-header { position: sticky; }
.admin-page .admin-container { max-width: 1120px; margin: 0 auto; padding: 42px 20px 72px; }
.admin-shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 22px; }
.admin-menu { align-self: start; position: sticky; top: 88px; background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 12px; }
.admin-menu a { display: block; padding: 9px 10px; border-radius: 8px; text-decoration: none; color: var(--text-sub); font-weight: 700; }
.admin-menu a:hover { background: var(--surface); color: var(--text); }
.panel { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 22px; box-shadow: var(--shadow-card); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-grid .full { grid-column: 1 / -1; }
label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 700; color: var(--text-sub); }
input, textarea, select { width: 100%; padding: 11px 12px; border: 1px solid var(--border); border-radius: 8px; background: #fff; color: var(--text); font: inherit; }
textarea { min-height: 150px; resize: vertical; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.contact-form { max-width: 960px; margin: 0 auto; }
.contact-form-panel {
  background: #fff;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius-lg, 8px);
  box-shadow: var(--shadow-card);
  padding: 34px;
}
.contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 28px;
}
.contact-field-full { grid-column: 1 / -1; }
.contact-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  color: #26362c;
  font-size: 13px;
  font-weight: 700;
}
.contact-required,
.contact-optional {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
}
.contact-required { color: #b42318; background: #fff1ee; border: 1px solid rgba(184, 44, 28, 0.18); }
.contact-optional { color: #6b7280; background: #f6f7f5; border: 1px solid rgba(20, 48, 32, 0.10); }
.contact-input {
  width: 100%;
  min-height: 48px;
  padding: 12px 13px;
  border: 1px solid #cfd8cf;
  border-radius: var(--refined-radius-sm, 5px);
  background: #fff;
  color: var(--text);
  font-size: 14px;
  line-height: 1.6;
  transition: border-color 0.16s, box-shadow 0.16s, background 0.16s;
}
.contact-input:focus {
  outline: none;
  border-color: var(--primary-dark);
  box-shadow: 0 0 0 3px rgba(15, 79, 53, 0.10);
}
.contact-input::placeholder { color: #a4aca5; }
.contact-input.is-error,
.contact-consent-check input.is-error {
  border-color: #dc2626;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.08);
}
.contact-textarea { min-height: 180px; resize: vertical; }
.contact-error {
  margin: 7px 0 0;
  color: #dc2626;
  font-size: 12px;
  font-weight: 600;
}
.contact-consent {
  margin-top: 28px;
  padding: 18px 20px;
  background: #f7f8f4;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius, 6px);
}
.contact-consent-text {
  margin: 0 0 14px;
  color: #4f5f55;
  font-size: 13px;
  line-height: 1.8;
}
.contact-consent-check {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  color: #26362c;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  cursor: pointer;
}
.contact-consent-check input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  accent-color: var(--primary-dark);
}
.contact-submit-row {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}
.contact-submit {
  min-width: 240px;
  min-height: 52px;
  border-radius: var(--refined-radius, 6px);
  background: var(--primary-dark);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
}
.contact-submit:hover { background: #0a3827; }

.roayamato-subscription-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
}
.roayamato-subscription-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid rgba(15, 79, 53, 0.34);
  border-radius: var(--refined-radius-sm, 5px);
  background: #fff;
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: color 0.16s, background 0.16s, border-color 0.16s;
}
.roayamato-link-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}
.roayamato-subscription-link:hover {
  border-color: var(--primary-dark);
  background: var(--primary-dark);
  color: #fff;
}
.subscription-page {
  background: #f5f7f3;
}
.subscription-page .subpage-container {
  max-width: 960px;
}
.subscription-intro {
  margin: 8px 0 30px;
  padding: 0 0 24px;
  border-bottom: 1px solid rgba(20, 48, 32, 0.14);
}
.subscription-intro-kicker {
  margin: 0 0 8px;
  color: #8b7644;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.subscription-intro h2 {
  margin: 0;
  color: #1b2c22;
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.4;
}
.subscription-intro > p:not(.subscription-intro-kicker) {
  margin: 10px 0 0;
  color: #5a675f;
  font-size: 14px;
  line-height: 1.8;
}
.subscription-intro dl {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin: 22px 0 0;
}
.subscription-intro dl div {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.subscription-intro dt {
  color: #68756d;
  font-size: 12px;
  font-weight: 700;
}
.subscription-intro dd {
  margin: 0;
  color: var(--primary-dark);
  font-size: 17px;
  font-weight: 800;
}
.subscription-error-summary {
  margin: 0 0 22px;
  padding: 17px 20px;
  border-left: 3px solid #b42318;
  background: #fff5f3;
  color: #8f2118;
  font-size: 13px;
}
.subscription-error-summary p {
  margin: 0 0 6px;
  font-weight: 800;
}
.subscription-error-summary ul {
  margin: 0;
  padding-left: 20px;
}
.subscription-form {
  background: #fff;
  border: 1px solid rgba(20, 48, 32, 0.12);
}
.subscription-section {
  min-width: 0;
  margin: 0;
  padding: 32px;
  border: 0;
  border-bottom: 1px solid rgba(20, 48, 32, 0.10);
}
.subscription-section legend {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 0;
  color: #1f3026;
  font-size: 18px;
  font-weight: 800;
}
.subscription-section legend span {
  color: #9a824b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  font-weight: 400;
}
.subscription-section-note {
  margin: 12px 0 22px;
  color: #6d7971;
  font-size: 13px;
}
.subscription-field-note {
  margin: 8px 0 0;
  color: #68766e;
  font-size: 12px;
  line-height: 1.7;
}
.subscription-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 28px;
  margin-top: 24px;
}
.subscription-field-full {
  grid-column: 1 / -1;
}
.date-select-row {
  display: grid;
  align-items: center;
  gap: 8px;
}
.date-select-birth {
  grid-template-columns: minmax(92px, 1.45fr) minmax(68px, 1fr) minmax(68px, 1fr);
}
.date-select-start {
  grid-template-columns: minmax(108px, 1.15fr) minmax(126px, 1fr);
}
.date-select-unit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  min-width: 0;
  margin: 0;
  color: #55635a;
  font-size: 13px;
  font-weight: 700;
}
.date-select-unit .contact-input {
  min-width: 0;
  padding-right: 8px;
}
.date-select-row.is-error .contact-input {
  border-color: #dc2626;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.08);
}
.subscription-notes {
  min-height: 120px;
  resize: vertical;
}
.subscription-privacy {
  margin: 0;
  padding: 28px 32px;
  border-bottom: 1px solid rgba(20, 48, 32, 0.10);
  background: #f7f8f4;
}
.subscription-privacy h2 {
  margin: 0 0 10px;
  color: #26362c;
  font-size: 15px;
}
.subscription-privacy p {
  margin: 0 0 18px;
  color: #55635a;
  font-size: 13px;
  line-height: 1.9;
}
.subscription-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 30px 32px 34px;
}
.subscription-cancel {
  color: #5f6c64;
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.subscription-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.subscription-complete {
  max-width: 720px;
  margin: 0 auto;
  padding: 50px 24px;
  border-top: 2px solid var(--primary-dark);
  border-bottom: 1px solid rgba(20, 48, 32, 0.12);
  text-align: center;
}
.subscription-complete-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-bottom: 18px;
  border: 1px solid rgba(15, 79, 53, 0.32);
  border-radius: 50%;
  color: var(--primary-dark);
  font-size: 22px;
}
.subscription-complete h2 {
  margin: 0 0 14px;
  color: #1f3026;
  font-size: 24px;
}
.subscription-complete > p:not(.section-label-v2) {
  margin: 0 0 28px;
  color: #58665d;
  font-size: 14px;
  line-height: 1.9;
}
.subscription-complete .contact-submit {
  text-decoration: none;
}

@media (max-width: 768px) {
  .subscription-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .subscription-field-full {
    grid-column: auto;
  }
  .date-select-birth,
  .date-select-start {
    grid-template-columns: minmax(0, 1fr);
  }
  .subscription-section,
  .subscription-privacy {
    padding: 24px 18px;
  }
  .subscription-actions {
    flex-direction: column-reverse;
    gap: 18px;
    padding: 26px 18px 30px;
  }
  .subscription-actions .contact-submit {
    width: 100%;
    min-width: 0;
  }
}
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 11px 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
th { background: var(--surface); font-size: 12px; color: var(--text-sub); }
tr:last-child td { border-bottom: 0; }
.inline-form { display: inline; }
.subpage-compat .grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.subpage-compat .grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.subpage-compat .card { display: block; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); overflow: hidden; text-decoration: none; color: inherit; padding: 20px; }
.subpage-compat .thumb { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px; background: var(--surface); }
.subpage-compat .thumb.topic-thumb-blank { object-fit: initial; }
.subpage-compat .meta { color: var(--text-sub); font-size: 12px; font-weight: 600; margin-top: 10px; }
.subpage-compat .article { max-width: 860px; margin: 0 auto; }
.subpage-compat .back { display: inline-flex; margin-bottom: 24px; color: var(--primary-dark); text-decoration: none; font-weight: 700; }
@media (max-width: 768px) { .admin-shell, .form-grid, .contact-grid, .subpage-compat .grid, .subpage-compat .grid.two { grid-template-columns: 1fr; } .admin-menu { position: static; } .contact-form-panel { padding: 22px 18px; } .contact-submit { width: 100%; } }

@media (max-width: 1100px) {
  .main-nav, .nav-contact-btn { display: none; }
  .dropdown-parent::after { display: none; }
  .menu-toggle { display: flex; }
  .mobile-nav-open .main-nav {
    display: flex; flex-direction: column; position: fixed;
    top: 68px; left: 0; right: 0; background: #fff;
    padding: 16px 20px 24px; border-bottom: 1px solid var(--border);
    box-shadow: 0 8px 32px rgba(0,0,0,0.1); z-index: 99; gap: 0;
  }
  .main-nav > li > a, .main-nav > li > button { font-size: 15px; padding: 12px 8px; width: 100%; }
  .dropdown-menu-v2 {
    position: static; transform: none; opacity: 1; pointer-events: auto;
    box-shadow: none; border: none; background: var(--surface); border-radius: 8px;
    padding: 4px 8px; margin: 4px 0 4px 16px;
  }
}

/* Original admin layout support */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #9ca3af; }
.admin-card { background: #fff; border: 1px solid #e5e7eb; border-radius: .75rem; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.admin-table table {
  table-layout: fixed;
  width: 100%;
}
.admin-table th,
.admin-table td {
  min-width: 0;
  vertical-align: middle;
}
.admin-table td {
  overflow: hidden;
}
.admin-table td a,
.admin-table td span,
.admin-table td p {
  min-width: 0;
}
.admin-table td.font-medium,
.admin-table td .truncate {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.65;
}
.admin-table td:last-child,
.admin-table th:last-child {
  width: 248px;
}
.admin-table td:last-child {
  overflow: visible;
}
.admin-table td:last-child > .flex {
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: nowrap !important;
  max-width: 100%;
  margin-left: auto;
}
.admin-table td:last-child form {
  margin: 0;
  width: auto;
  flex: 0 0 auto;
}
.admin-table td:last-child > form {
  display: flex;
  justify-content: flex-end;
}
.admin-table td:last-child a,
.admin-table td:last-child button {
  width: auto;
}
.admin-table td:last-child .btn-outline {
  min-width: 74px;
  justify-content: center;
  padding: .4rem .62rem;
  font-size: .75rem;
  line-height: 1.15;
  white-space: nowrap;
}
.admin-table .btn-edit,
.admin-table .btn-danger {
  min-width: 48px;
  justify-content: center;
  padding: .4rem .58rem;
  font-size: .75rem;
  line-height: 1.15;
  white-space: nowrap;
}
.admin-table td:last-child .btn-outline,
.admin-table td:last-child .btn-edit,
.admin-table td:last-child .btn-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 32px;
  min-height: 32px;
  padding-top: 0;
  padding-bottom: 0;
}
.admin-table td:last-child .btn-danger {
  background: #fff5f5;
  color: #dc2626;
  border-color: #fca5a5;
}
.admin-table td:last-child .btn-danger:hover {
  background: #fee2e2;
  color: #b91c1c;
}
.admin-form-wide {
  max-width: 960px;
}
.admin-form-wide .admin-card {
  overflow: hidden;
}
.admin-table tbody tr:hover td { background: #f9fafb; }
.admin-input { background: #fff; border: 1px solid #d1d5db; color: #111827; width: 100%; padding: .5rem .75rem; border-radius: .5rem; font-size: .875rem; transition: border-color .15s, box-shadow .15s; }
.admin-input::placeholder { color: #9ca3af; }
.admin-input:focus { outline: none; border-color: #006837; box-shadow: 0 0 0 3px rgba(0,104,55,.10); }
.admin-select { background: #fff; border: 1px solid #d1d5db; color: #111827; padding: .5rem .75rem; border-radius: .5rem; font-size: .875rem; }
.admin-select:focus { outline: none; border-color: #006837; box-shadow: 0 0 0 3px rgba(0,104,55,.10); }
.badge-published { background: #dcf5e7; color: #065f46; border: 1px solid #a7f3d0; white-space: nowrap; }
.badge-draft { background: #fef9c3; color: #92400e; border: 1px solid #fde68a; white-space: nowrap; }
.nav-active { background: #e6f5ec; color: #006837; font-weight: 500; }
.nav-inactive { color: #6b7280; }
.nav-inactive:hover { background: #f3f4f6; color: #111827; }
.btn-primary { display: inline-flex; align-items: center; gap: .375rem; background: #006837; color: #fff; padding: .5rem 1rem; border-radius: .5rem; font-size: .875rem; font-weight: 500; border: 1px solid #005a2f; white-space: nowrap; transition: background .15s, box-shadow .15s; cursor: pointer; text-decoration: none; }
.btn-primary:hover { background: #004d28; box-shadow: 0 2px 8px rgba(0,104,55,.20); }
.btn-outline { display: inline-flex; align-items: center; gap: .375rem; background: #fff; color: #374151; padding: .5rem 1rem; border-radius: .5rem; font-size: .875rem; font-weight: 500; border: 1px solid #d1d5db; white-space: nowrap; transition: background .15s, border-color .15s; cursor: pointer; text-decoration: none; }
.btn-outline:hover { background: #f9fafb; border-color: #9ca3af; }
.btn-danger { display: inline-flex; align-items: center; background: #fff5f5; color: #dc2626; padding: .375rem .75rem; border-radius: .5rem; font-size: .75rem; font-weight: 500; border: 1px solid #fca5a5; white-space: nowrap; transition: background .15s; cursor: pointer; }
.btn-danger:hover { background: #fee2e2; }
.btn-edit { display: inline-flex; align-items: center; background: #f9fafb; color: #374151; padding: .375rem .75rem; border-radius: .5rem; font-size: .75rem; font-weight: 500; border: 1px solid #e5e7eb; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; cursor: pointer; text-decoration: none; }
.btn-edit:hover { background: #e6f5ec; border-color: #a7f3d0; color: #006837; }
body.bg-gray-50 button,
body.bg-gray-50 .btn-primary,
body.bg-gray-50 .btn-outline { white-space: nowrap; }
body.bg-gray-50 form .flex.gap-3.pt-2 { flex-wrap: wrap; }
body.bg-gray-50 form .flex.gap-3.pt-2 > a,
body.bg-gray-50 form .flex.gap-3.pt-2 > button,
body.bg-gray-50 form .flex.gap-3.pt-2 > select { flex-shrink: 0; }
body.bg-gray-50 form .flex.gap-3.pt-2 > a { white-space: nowrap; }
.admin-table img.w-12.h-8 { width: 48px !important; max-width: 48px; height: 32px !important; }
.login-input { width: 100%; padding: .5rem .75rem; border: 1px solid #d1d5db; border-radius: .5rem; font-size: .875rem; color: #111827; background: #fff; transition: border-color .15s, box-shadow .15s; }
.login-input::placeholder { color: #9ca3af; }
.login-input:focus { outline: none; border-color: #006837; box-shadow: 0 0 0 3px rgba(0,104,55,.10); }
.admin-backdrop { position: fixed; inset: 0; z-index: 40; background: rgba(0,0,0,.4); opacity: 0; pointer-events: none; transition: opacity .2s; }
.admin-backdrop.is-open { opacity: 1; pointer-events: auto; }
@media (max-width: 1023px) {
  .admin-sidebar { position: fixed; top: 0; left: 0; height: 100vh; z-index: 50; transform: translateX(-100%); transition: transform .25s ease-out; box-shadow: 4px 0 24px rgba(0,0,0,.12); }
  .admin-sidebar.is-open { transform: translateX(0); }
  .admin-topbar-hamburger { display: inline-flex !important; }
}
@media (min-width: 1024px) {
  .admin-backdrop { display: none !important; }
}
.admin-topbar-hamburger { display: none; }

/* Refined rectangular finish: reduce soft-card repetition while keeping the original structure. */
:root {
  --primary-dark: #0f4f35;
  --accent: #a18445;
  --surface: #f5f7f3;
  --border: #dce3da;
  --shadow-card: 0 1px 0 rgba(18, 42, 28, 0.08);
  --shadow-hover: 0 16px 34px rgba(18, 42, 28, 0.10);
}
.site-header { background: rgba(255,255,255,0.98); border-bottom-color: rgba(15,79,53,0.12); box-shadow: none; }
.site-header.scrolled { border-color: rgba(15,79,53,0.18); box-shadow: 0 6px 20px rgba(18,42,28,0.05); }
.section-title-v2,
.hero-title,
.mission-title-v2 { letter-spacing: 0; }
.section-label-v2 { color: #7a6633; }
.section-label-v2::before,
.mission-label::before,
.page-banner .page-label::before { height: 1px; background: var(--accent); border-radius: 0; }
.mission-section::before,
.mission-section::after,
.page-banner::after { display: none; }
.main-nav > li > a,
.main-nav > li > button,
.dropdown-menu-v2,
.dropdown-menu-v2 li a,
.menu-toggle,
.nav-contact-btn,
.btn-primary-v2,
.btn-outline-v2,
.link-more,
.gate-card,
.gate-card input,
.gate-card button,
.button,
button,
input[type=submit],
.notice,
.admin-menu,
.admin-menu a,
.panel,
input,
textarea,
select,
.table-wrap,
.subpage-compat .card,
.subpage-compat .thumb,
.card-v2,
.news-list-v2,
.event-card-v2,
.mission-visual img,
.access-map,
.access-icon,
.access-hours,
.quick-nav-grid,
.quick-nav-icon-wrap,
.ext-link-card,
.ext-link-icon,
.admin-card,
.admin-input,
.admin-select,
.btn-primary,
.btn-outline,
.btn-danger,
.btn-edit,
.login-input,
.rounded,
.rounded-md,
.rounded-lg,
.rounded-xl,
.rounded-2xl { border-radius: 2px !important; }
.card-v2,
.news-list-v2,
.event-card-v2,
.quick-nav-grid,
.ext-link-card,
.subpage-compat .card,
.panel,
.table-wrap,
.gate-card,
.admin-card {
  border: 1px solid rgba(20, 48, 32, 0.14);
  box-shadow: var(--shadow-card);
}
.card-v2,
.event-card-v2,
.ext-link-card,
.subpage-compat .card,
.admin-card { background: linear-gradient(180deg, #fff 0%, #fdfefb 100%); }
.card-v2,
.event-card-v2,
.ext-link-card { position: relative; }
.card-v2::before,
.event-card-v2::before,
.ext-link-card::before,
.quick-nav-grid::before,
.news-list-v2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--primary-dark), var(--accent));
}
.card-v2:hover,
.event-card-v2:hover,
.ext-link-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); border-color: rgba(15,79,53,0.28); }
.card-img { border-bottom: 1px solid rgba(20,48,32,0.10); }
.card-body-v2 { padding: 22px 24px 26px; }
.card-tag,
.badge-published,
.badge-draft,
body.bg-gray-50 .rounded-full:not(.w-7):not(.h-7) {
  border-radius: 2px !important;
}
.card-tag { padding: 2px 8px; background: #f7f5ee; color: #635024; border: 1px solid rgba(161,132,69,0.28); }
.news-list-v2,
.quick-nav-grid { position: relative; overflow: hidden; }
.news-item-v2 { padding: 22px 30px; }
.event-card-v2 { border-left: 3px solid var(--primary-dark); }
.event-date-block { background: #123f2d; }
.quick-nav { margin-top: -34px; }
.quick-nav-grid { box-shadow: 0 18px 42px rgba(18,42,28,0.09); }
.quick-nav-item:hover { background: #f7f8f4; }
.quick-nav-icon-wrap { background: transparent; border: 1px solid rgba(15,79,53,0.18); }
.quick-nav-item:hover .quick-nav-icon-wrap { background: #123f2d; border-color: #123f2d; }
.ext-link-icon { background: transparent !important; border: 1px solid rgba(15,79,53,0.18); }
.access-hours,
.notice { border-left: 2px solid var(--accent); }
body.bg-gray-50 { background: #f4f6f2; }
body.bg-gray-50 .bg-white { background-color: #fffefa !important; }
.admin-sidebar { border-right-color: rgba(20,48,32,0.16); }
.admin-card:not(.admin-table) { border-left: 2px solid rgba(161,132,69,0.36); }
.admin-table { border-top: 2px solid rgba(15,79,53,0.70); }
.admin-input,
.admin-select,
.login-input { border-color: #cfd8cf; background: #fff; }
.admin-input:focus,
.admin-select:focus,
.login-input:focus { border-color: var(--primary-dark); box-shadow: 0 0 0 2px rgba(15,79,53,0.10); }
.btn-primary,
.gate-card button,
.button,
button,
input[type=submit] { background: #0f4f35; border-color: #0b3f2a; box-shadow: none; }
.btn-primary:hover,
.gate-card button:hover,
.button:hover,
button:hover,
input[type=submit]:hover { background: #0a3827; box-shadow: none; }
.btn-outline { background: #fffefa; border-color: #cfd8cf; color: #26362c; }
.btn-outline:hover { background: #f5f7f3; border-color: #9dab9d; }
.nav-active { background: transparent; color: var(--primary-dark); border-left: 2px solid var(--accent); border-radius: 0 !important; }
.nav-inactive:hover { background: #f5f7f3; color: #1f2d25; border-radius: 0 !important; }
.badge-published { background: #f2f7ef; color: #0f4f35; border-color: rgba(15,79,53,0.24); }
.badge-draft { background: #f8f4e8; color: #725822; border-color: rgba(161,132,69,0.28); }
body.bg-gray-50 .ql-toolbar { border-radius: 2px 2px 0 0 !important; background: #f7f8f4 !important; }
body.bg-gray-50 .ql-container { border-radius: 0 0 2px 2px !important; }
body.bg-gray-50 .ql-toolbar button { min-height: auto; height: 28px; padding: 3px 5px; background: transparent; color: inherit; border-radius: 2px !important; }
#link-modal > div,
#admin-delete-modal > div { border-radius: 2px !important; box-shadow: 0 18px 42px rgba(18,42,28,0.16) !important; }
@media (max-width: 768px) {
  .quick-nav { margin-top: -24px; }
  .mobile-nav-open .main-nav,
  .dropdown-menu-v2 { border-radius: 0 !important; box-shadow: none; }
}

/* Moderate corner pass: keep the refined tone without making every surface feel hard-edged. */
:root {
  --refined-radius-sm: 5px;
  --refined-radius: 6px;
  --refined-radius-lg: 8px;
}
.main-nav > li > a,
.main-nav > li > button,
.dropdown-menu-v2,
.dropdown-menu-v2 li a,
.menu-toggle,
.nav-contact-btn,
.btn-primary-v2,
.btn-outline-v2,
.link-more,
.gate-card input,
.gate-card button,
.button,
button,
input[type=submit],
.notice,
.admin-menu a,
input,
textarea,
select,
.subpage-compat .thumb,
.quick-nav-icon-wrap,
.ext-link-icon,
.admin-input,
.admin-select,
.btn-primary,
.btn-outline,
.btn-danger,
.btn-edit,
.login-input,
.rounded,
.rounded-md,
.rounded-lg,
.rounded-xl,
.rounded-2xl { border-radius: var(--refined-radius-sm) !important; }
.gate-card,
.admin-menu,
.panel,
.table-wrap,
.subpage-compat .card,
.card-v2,
.news-list-v2,
.event-card-v2,
.mission-visual img,
.access-map,
.access-hours,
.ext-link-card,
.admin-card { border-radius: var(--refined-radius) !important; }
.quick-nav-grid,
#link-modal > div,
#admin-delete-modal > div { border-radius: var(--refined-radius-lg) !important; }
.card-tag,
.badge-published,
.badge-draft,
.rounded-full,
body.bg-gray-50 .rounded-full,
body.bg-gray-50 .rounded-full:not(.w-7):not(.h-7) { border-radius: 9999px !important; }
.nav-active,
.nav-inactive:hover { border-radius: var(--refined-radius-sm) !important; }
body.bg-gray-50 .ql-toolbar { border-radius: var(--refined-radius) var(--refined-radius) 0 0 !important; }
body.bg-gray-50 .ql-container { border-radius: 0 0 var(--refined-radius) var(--refined-radius) !important; }
body.bg-gray-50 .ql-toolbar button { border-radius: var(--refined-radius-sm) !important; }
@media (max-width: 768px) {
  .mobile-nav-open .main-nav { border-radius: 0 !important; }
  .dropdown-menu-v2 { border-radius: var(--refined-radius-sm) !important; }
}

/* Quiet accent pass: remove the loud edge strips while keeping a calm outline. */
.card-v2::before,
.event-card-v2::before,
.ext-link-card::before,
.quick-nav-grid::before,
.news-list-v2::before {
  display: none;
}
.card-v2,
.news-list-v2,
.event-card-v2,
.quick-nav-grid,
.ext-link-card,
.subpage-compat .card,
.panel,
.table-wrap,
.gate-card,
.admin-card {
  border-color: rgba(20, 48, 32, 0.10);
}
.card-v2:hover,
.event-card-v2:hover,
.ext-link-card:hover {
  border-color: rgba(15, 79, 53, 0.18);
}
.event-card-v2 {
  border-left-width: 1px;
  border-left-color: rgba(20, 48, 32, 0.10);
}
.access-hours,
.notice {
  border-left-color: rgba(161, 132, 69, 0.18);
}
.admin-card:not(.admin-table) {
  border-left-width: 1px;
  border-left-color: rgba(20, 48, 32, 0.10);
}
.admin-table {
  border-top-width: 1px;
  border-top-color: rgba(20, 48, 32, 0.10);
}
body:not(.bg-gray-50) main [class~="border"][class~="border-gray-200"][class~="rounded"],
body:not(.bg-gray-50) main [class~="border"][class~="border-primary/20"][class~="rounded"],
body:not(.bg-gray-50) main [class~="border"][class~="border-primary/20"][class~="rounded-lg"] {
  border-color: rgba(20, 48, 32, 0.09) !important;
  background: linear-gradient(180deg, #fff 0%, #fdfefb 100%);
  box-shadow: 0 1px 0 rgba(18, 42, 28, 0.04);
}
body:not(.bg-gray-50) main [class~="border"][class~="border-gray-200"][class~="rounded"]:hover {
  border-color: rgba(15, 79, 53, 0.14) !important;
}
.nav-active {
  background: #edf5ee !important;
  color: var(--primary-dark) !important;
  border-left: 0 !important;
  box-shadow: inset 0 0 0 1px rgba(15, 79, 53, 0.08);
  font-weight: 600;
}
.nav-active svg {
  color: var(--primary-dark);
  opacity: 0.85;
}
.officer-drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  color: #9ca3af;
  cursor: grab;
  user-select: none;
  touch-action: none;
  border-radius: var(--refined-radius-sm);
  border: 1px solid transparent;
  font-weight: 700;
  line-height: 1;
}
.officer-drag-handle:hover {
  color: var(--primary-dark);
  background: #edf5ee;
  border-color: rgba(15, 79, 53, 0.10);
}
.officer-drag-handle:active {
  cursor: grabbing;
}
.officer-row.is-dragging {
  opacity: 0.58;
  background: #f4f8f1;
}
.officer-reorder-body.is-saving {
  opacity: 0.72;
}

/* Keep the quick navigation overlap on the hero transparent, then continue the gray section surface below it. */
.quick-nav {
  --quick-nav-overlap: 34px;
  background: linear-gradient(
    to bottom,
    transparent 0,
    transparent var(--quick-nav-overlap),
    var(--surface) var(--quick-nav-overlap),
    var(--surface) 100%
  );
}

@media (max-width: 768px) {
  .quick-nav {
    --quick-nav-overlap: 24px;
  }
}

@media (max-width: 768px) {
  .site-footer {
    padding-top: 40px;
  }
  .footer-inner {
    padding: 0 28px;
  }
  .footer-top {
    display: block;
    padding-bottom: 28px;
  }
  .footer-brand-block {
    margin-bottom: 22px;
  }
  .footer-tagline {
    display: none;
  }
  .footer-contact-button {
    width: min(100%, 220px);
  }
  .footer-menu-panel {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
  }
  .footer-menu-panel:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }
  .footer-menu-panel .footer-col-title {
    display: none;
  }
  .footer-accordion-toggle {
    appearance: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 48px;
    padding: 0;
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.94);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-align: left;
    cursor: pointer;
  }
  .footer-accordion-icon {
    position: relative;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
  }
  .footer-accordion-icon::before,
  .footer-accordion-icon::after {
    content: "";
    position: absolute;
    inset: 7px 2px auto;
    height: 1.5px;
    background: rgba(255, 255, 255, 0.72);
    transition: transform 0.18s ease;
  }
  .footer-accordion-icon::after {
    transform: rotate(90deg);
  }
  .footer-menu-panel.is-open .footer-accordion-icon::after {
    transform: rotate(0deg);
  }
  .footer-menu-panel .footer-links {
    display: none;
    gap: 0;
    padding: 0 0 14px;
  }
  .footer-menu-panel.is-open .footer-links {
    display: flex;
  }
  .footer-links a {
    display: block;
    padding: 9px 0;
  }
  .footer-bottom {
    align-items: flex-start;
  }
  .footer-tel-fax {
    width: 100%;
    justify-content: flex-start;
  }
}

/* Mobile home hero: keep the contact CTA clear of the overlapping quick menu. */
@media (max-width: 480px) {
  .hero {
    height: 464px;
  }
  .hero-content {
    justify-content: flex-start;
    padding: 36px 24px 92px;
  }
  .hero-title {
    margin-bottom: 22px;
  }
  .hero-desc {
    margin-bottom: 22px;
  }
  .hero-cta-wrap {
    gap: 14px;
    padding-bottom: 8px;
  }
  .quick-nav {
    margin-top: -12px;
    --quick-nav-overlap: 12px;
  }
}

/* Admin inquiry list: keep row metadata compact and predictable across widths. */
.inquiry-bulk-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  padding: 14px 18px;
  border-left-width: 1px !important;
}
.inquiry-bulk-main {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.inquiry-list {
  display: grid;
  gap: 12px;
}
.inquiry-card {
  overflow: hidden;
  border-left-width: 1px !important;
}
.inquiry-card-unread {
  border-color: rgba(239, 68, 68, 0.24) !important;
}
.inquiry-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 76px;
  padding: 16px 18px;
  cursor: pointer;
  list-style: none;
  transition: background 0.16s ease, box-shadow 0.16s ease;
}
.inquiry-summary::-webkit-details-marker {
  display: none;
}
.inquiry-summary:hover,
.inquiry-card[open] .inquiry-summary {
  background: #f8faf7;
}
.inquiry-summary-main {
  display: grid;
  grid-template-columns: 24px 12px 144px minmax(0, 1fr) auto;
  grid-template-areas: "check dot date person badge";
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.inquiry-checkbox {
  grid-area: check;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.inquiry-status-dot {
  grid-area: dot;
  width: 8px;
  height: 8px;
  border-radius: 9999px !important;
}
.inquiry-status-unread {
  background: #ef4444;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.08);
}
.inquiry-status-read {
  background: #d6ddd3;
}
.inquiry-date {
  grid-area: date;
  color: #98a2b3;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.inquiry-person {
  grid-area: person;
  display: flex;
  align-items: baseline;
  gap: 16px;
  min-width: 0;
}
.inquiry-name {
  max-width: 220px;
  overflow: hidden;
  color: #5b6760;
  font-size: 14px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.inquiry-name.is-unread {
  color: #111827;
}
.inquiry-email {
  min-width: 0;
  max-width: 360px;
  overflow: hidden;
  color: #98a2b3;
  font-size: 12px;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.inquiry-email:hover {
  color: var(--primary-dark);
}
.inquiry-status-badge {
  grid-area: badge;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 70px;
  padding: 5px 10px;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: 999px !important;
  background: #fff;
  color: #5b6760;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.inquiry-status-todo {
  border-color: rgba(244, 63, 94, 0.18);
  background: #fff7f7;
  color: #be123c;
}
.inquiry-status-doing {
  border-color: rgba(217, 119, 6, 0.18);
  background: #fffbeb;
  color: #b45309;
}
.inquiry-status-done {
  border-color: rgba(0, 104, 55, 0.16);
  background: #edf7f1;
  color: var(--primary-dark);
}
.inquiry-status-hold {
  border-color: rgba(75, 85, 99, 0.16);
  background: #f8fafc;
  color: #475569;
}
.inquiry-summary-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.inquiry-reply-button {
  min-width: 68px;
  justify-content: center;
  padding: 7px 14px !important;
  font-size: 12px !important;
}
.inquiry-action-form {
  display: inline-flex;
  margin: 0;
}
.inquiry-read-toggle {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 28px !important;
  padding: 5px 10px !important;
  border: 1px solid rgba(15, 79, 53, 0.18) !important;
  border-radius: 999px !important;
  background: #fffefa !important;
  color: #0f4f35 !important;
  box-shadow: none !important;
  font: inherit;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.inquiry-read-toggle.is-read {
  border-color: rgba(100, 116, 139, 0.20) !important;
  background: #fff !important;
  color: #64748b !important;
}
.inquiry-read-toggle:hover {
  border-color: rgba(15, 79, 53, 0.34) !important;
  background: #edf5ee !important;
  color: #0a3827 !important;
}
.inquiry-delete-inline {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: auto !important;
  padding: 2px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #ef4444 !important;
  font: inherit;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
  cursor: pointer;
}
.inquiry-delete-inline:hover {
  background: transparent !important;
  color: #b91c1c !important;
}
.inquiry-chevron {
  width: 18px;
  height: 18px;
  color: #98a2b3;
  flex-shrink: 0;
}
.inquiry-detail {
  padding: 18px;
  border-top: 1px solid rgba(20, 48, 32, 0.08);
  background: #f8faf7;
  font-size: 13px;
}
.inquiry-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px 18px;
  font-size: 12px;
}
.inquiry-message {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius-sm) !important;
  background: #fff;
  color: #374151;
  font-size: 14px;
  line-height: 1.8;
  white-space: pre-wrap;
}
.inquiry-admin-note {
  display: grid;
  grid-template-columns: minmax(160px, 0.6fr) minmax(0, 1.4fr) auto;
  align-items: end;
  gap: 12px;
  margin-top: 16px;
  padding: 16px;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius-sm) !important;
  background: #fff;
}
.dashboard-list-row {
  display: grid;
  gap: 4px;
  padding: 12px 20px;
  border-bottom: 1px solid #f2f5f1;
  color: inherit;
  text-decoration: none;
  transition: background 0.16s ease;
}
.dashboard-list-row:hover {
  background: #f8faf7;
}
.dashboard-list-row:last-child {
  border-bottom: 0;
}
.important-notices {
  background: var(--surface);
  padding: 22px 0 0;
}
.important-notice-list {
  display: grid;
  gap: 10px;
}
.important-notice-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px 12px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid rgba(20, 48, 32, 0.08);
  border-radius: var(--refined-radius-sm) !important;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 10px 30px rgba(20, 48, 32, 0.05);
  color: inherit;
  text-decoration: none;
}
.important-notice-label {
  padding: 4px 8px;
  border-radius: 999px !important;
  background: #fff7ed;
  color: #9a3412;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}
.important-notice-label.notice-tag-important {
  background: #fff7ed;
  color: #9a3412;
}
.important-notice-label.notice-tag-contact {
  background: #eef6ee;
  color: #0f4f35;
}
.important-notice-label.notice-tag-news {
  background: #f3f6f8;
  color: #40516a;
}
.important-notice-label.notice-tag-urgent {
  background: #fef2f2;
  color: #b91c1c;
}
.important-notice-title {
  color: var(--primary-dark);
  font-size: 15px;
  font-weight: 700;
}
.important-notice-body {
  grid-column: 2;
  margin: 0;
  color: var(--text-sub);
  font-size: 13px;
  line-height: 1.8;
}
.important-notice-item:has(.notice-tag-urgent) {
  border-color: rgba(185, 28, 28, 0.20);
  background: linear-gradient(90deg, rgba(254, 242, 242, 0.96), rgba(255, 255, 255, 0.88));
}
.important-notice-item:has(.notice-tag-contact) {
  border-color: rgba(15, 79, 53, 0.16);
}
.breadcrumb-nav {
  padding-top: 84px;
  padding-bottom: 10px;
  background: #fff;
  border-bottom: 1px solid rgba(20, 48, 32, 0.06);
}
.breadcrumb-nav + .page-banner {
  margin-top: 0;
}
.breadcrumb-nav .container-v2 {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #9aa5a0;
  font-size: 12px;
}
.breadcrumb-nav a {
  color: #60716a;
  text-decoration: none;
}
.breadcrumb-nav a:hover {
  color: var(--primary-dark);
  text-decoration: underline;
}
.breadcrumb-nav span[aria-current="page"] {
  color: var(--text);
  font-weight: 700;
}
.preview-banner {
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid rgba(15, 79, 53, 0.18);
  background: #edf7f1;
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 700;
}
.event-detail,
.notice-preview,
.roayamato-preview {
  background: #fff;
  border: 1px solid rgba(20, 48, 32, 0.10);
  padding: clamp(24px, 4vw, 44px);
}
.event-detail-head {
  display: grid;
  gap: 12px;
  margin-bottom: 24px;
}
.event-detail-tags:empty { display: none; }
.event-detail-head h1,
.notice-preview h1,
.roayamato-preview h1 {
  margin: 0;
  color: var(--text-main);
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 800;
  line-height: 1.4;
}
.event-detail-scope {
  width: fit-content;
  padding: 5px 10px;
  background: #edf7f1;
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 800;
}
.event-detail-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0 0 26px;
}
.event-detail-meta div {
  padding: 16px;
  border: 1px solid rgba(20, 48, 32, 0.08);
  background: #f8faf7;
}
.event-detail-meta dt {
  color: var(--text-sub);
  font-size: 12px;
  font-weight: 800;
}
.event-detail-meta dd {
  margin: 6px 0 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 700;
}
.event-detail-body {
  color: var(--text);
  font-size: 15px;
  line-height: 2;
}
.event-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}
.roayamato-preview {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 28px;
  align-items: center;
}
.roayamato-preview-cover {
  width: 100%;
  max-height: 240px;
  object-fit: contain;
}
.search-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  margin-bottom: 24px;
  padding: 20px;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius) !important;
  background: #fff;
}
.search-results {
  display: grid;
  gap: 12px;
}
.search-result-item {
  display: grid;
  gap: 8px;
  padding: 20px;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius-sm) !important;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: border-color 0.16s ease, transform 0.16s ease;
}
.search-result-item:hover {
  border-color: rgba(0, 104, 55, 0.28);
  transform: translateY(-1px);
}
.search-result-type {
  width: fit-content;
  padding: 4px 8px;
  border-radius: 999px !important;
  background: #edf7f1;
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 700;
}
.search-result-title {
  color: var(--text-main);
  font-size: 18px;
  font-weight: 700;
}
.search-result-body {
  color: var(--text-sub);
  font-size: 14px;
  line-height: 1.8;
}
.calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.calendar-head h2 {
  color: var(--text-main);
  font-size: 24px;
  font-weight: 800;
}
.calendar-layout {
  display: flex;
  flex-direction: column;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius) !important;
  background: #fff;
}
.calendar-weekday {
  padding: 10px;
  border-right: 1px solid rgba(20, 48, 32, 0.08);
  border-bottom: 1px solid rgba(20, 48, 32, 0.08);
  background: #f8faf7;
  color: var(--text-sub);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}
.calendar-weekday:nth-child(7n) {
  border-right: 0;
}
.calendar-day {
  min-height: 118px;
  padding: 10px;
  border-right: 1px solid rgba(20, 48, 32, 0.08);
  border-bottom: 1px solid rgba(20, 48, 32, 0.08);
  background: #fff;
}
.calendar-day:nth-child(7n) {
  border-right: 0;
}
.calendar-day.is-muted {
  background: #fafbf9;
  color: #a6afa9;
}
.calendar-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--text-main);
  font-size: 12px;
  font-weight: 700;
}
.calendar-day-events {
  display: grid;
  gap: 5px;
  margin-top: 6px;
}
.calendar-event-chip {
  appearance: none;
  display: flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  overflow: hidden;
  padding: 5px 7px;
  border: 0;
  border-left: 2px solid rgba(0, 104, 55, 0.38);
  background: #edf7f1;
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
.calendar-chip-tag {
  flex: 0 0 auto;
  padding: 1px 4px;
  border: 1px solid rgba(15, 79, 53, 0.15);
  background: rgba(255, 255, 255, 0.6);
  color: #315845;
  font-size: 9px;
  line-height: 1.3;
}
.calendar-chip-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-event-chip:hover,
.calendar-event-chip:focus-visible {
  border-left-color: var(--primary-dark);
  background: #dcefe4;
  color: #073d29;
  outline: none;
}
.calendar-list {
  display: grid;
  gap: 12px;
  margin-top: 30px;
}
.calendar-list h3 {
  color: var(--text-main);
  font-size: 18px;
  font-weight: 800;
}
.calendar-list-item {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 18px;
  padding: 18px;
  border: 1px solid rgba(20, 48, 32, 0.10);
  border-radius: var(--refined-radius-sm) !important;
  background: #fff;
}
.calendar-list-item time {
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 800;
}
.calendar-list-item h4 {
  margin: 0 0 6px;
  color: var(--text-main);
  font-size: 16px;
  font-weight: 800;
}
.calendar-list-item .organization-tag { margin-bottom: 7px; }
.calendar-list-item p {
  margin: 0;
  color: var(--text-sub);
  font-size: 13px;
  line-height: 1.7;
}
.calendar-list-detail {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  padding: 7px 13px;
  border: 1px solid rgba(15, 79, 53, 0.20);
  border-radius: 999px !important;
  background: #f8faf7;
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: background 0.16s ease, border-color 0.16s ease;
}
.calendar-list-detail:hover,
.calendar-list-detail:focus-visible {
  border-color: rgba(15, 79, 53, 0.38);
  background: #edf7f1;
  outline: none;
}
.calendar-modal-open {
  overflow: hidden;
}
.calendar-event-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
}
.calendar-event-modal[hidden] {
  display: none;
}
.calendar-event-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(14, 31, 22, 0.46);
}
.calendar-event-dialog {
  position: relative;
  width: min(92vw, 560px);
  max-height: min(82vh, 680px);
  overflow: auto;
  padding: 30px 32px 32px;
  border: 1px solid rgba(20, 48, 32, 0.12);
  border-radius: var(--refined-radius) !important;
  background: #fffefa;
  box-shadow: 0 24px 70px rgba(12, 38, 24, 0.22);
}
.calendar-event-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(20, 48, 32, 0.12);
  border-radius: 999px !important;
  background: #fff;
  color: var(--text-sub);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.calendar-event-close:hover,
.calendar-event-close:focus-visible {
  background: #f3f7f1;
  color: var(--primary-dark);
  outline: none;
}
.calendar-event-kicker {
  margin: 0 0 8px;
  color: #8a7338;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.calendar-event-organization { margin: 0 0 10px; }
.calendar-event-dialog h2 {
  margin: 0;
  padding-right: 34px;
  color: var(--text-main);
  font-size: 24px;
  font-weight: 800;
  line-height: 1.45;
}
.calendar-event-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0 0;
}
.calendar-event-meta div {
  padding: 13px 14px;
  border: 1px solid rgba(20, 48, 32, 0.08);
  background: #f8faf7;
}
.calendar-event-meta dt {
  color: var(--text-sub);
  font-size: 11px;
  font-weight: 800;
}
.calendar-event-meta dd {
  margin: 5px 0 0;
  color: var(--primary-dark);
  font-size: 14px;
  font-weight: 800;
}
.calendar-event-description {
  margin: 22px 0 0;
  color: var(--text-main);
  font-size: 14px;
  line-height: 1.9;
  white-space: pre-wrap;
}
.contact-actions {
  display: flex;
  justify-content: center;
  margin-top: 26px;
}
.file-upload-form {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(180px, 0.8fr) auto;
  align-items: end;
  gap: 14px;
}
.file-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: end;
  gap: 12px;
}
.file-admin-table {
  table-layout: fixed;
  width: 100%;
}
.file-col-size {
  width: 92px;
}
.file-col-date {
  width: 138px;
}
.file-col-actions {
  width: 138px;
}
.file-name-line,
.file-path-link {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.file-item-main {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.file-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 54px;
  border: 1px solid rgba(20, 48, 32, 0.10);
  background: #f8faf7;
  overflow: hidden;
  text-decoration: none;
}
.file-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.file-thumb-icon {
  color: #718177;
  font-size: 11px;
  font-weight: 800;
}
.file-meta-form {
  display: grid;
  grid-template-columns: minmax(120px, 0.9fr) minmax(140px, 1.1fr) auto;
  gap: 8px;
  margin-top: 10px;
}
.file-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.file-replace-form {
  margin: 0;
}
.datetime-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 10px;
}
.datetime-date,
.datetime-time {
  cursor: pointer;
}
.admin-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.admin-list-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.admin-inline-import {
  display: inline-flex;
  margin: 0;
}
.inquiry-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.inquiry-mark-all-button {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 32px !important;
  padding: 7px 12px !important;
  border: 1px solid rgba(15, 79, 53, 0.18) !important;
  border-radius: 999px !important;
  background: #edf5ee !important;
  color: #0f4f35 !important;
  box-shadow: none !important;
  font: inherit;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.inquiry-mark-all-button:hover {
  border-color: rgba(15, 79, 53, 0.34) !important;
  background: #dcecdf !important;
  color: #0a3827 !important;
}

@media (max-width: 900px) {
  .inquiry-summary-main {
    grid-template-columns: 24px 12px minmax(0, 1fr) auto;
    grid-template-areas:
      "check dot person badge"
      ". . date date";
    row-gap: 4px;
  }
  .inquiry-person {
    gap: 10px;
  }
  .inquiry-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .file-upload-form {
    grid-template-columns: 1fr;
  }
  .inquiry-admin-note {
    grid-template-columns: 1fr;
  }
  .file-col-date {
    width: 0;
  }
  .datetime-control {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .admin-list-header,
  .inquiry-header-actions {
    align-items: stretch;
  }
  .admin-list-actions,
  .inquiry-header-actions {
    justify-content: flex-start;
    width: 100%;
  }
  .inquiry-bulk-bar,
  .inquiry-summary {
    align-items: stretch;
    grid-template-columns: 1fr;
  }
  .inquiry-bulk-bar {
    flex-direction: column;
  }
  .inquiry-bulk-bar .btn-danger {
    justify-content: center;
    width: 100%;
  }
  .inquiry-person {
    display: grid;
    gap: 3px;
  }
  .inquiry-email,
  .inquiry-name {
    max-width: 100%;
  }
  .inquiry-summary-actions {
    justify-content: flex-end;
  }
  .inquiry-detail-grid {
    grid-template-columns: 1fr;
  }
  .search-panel,
  .calendar-list-item {
    grid-template-columns: 1fr;
  }
  .breadcrumb-nav {
    padding-top: 78px;
  }
  .breadcrumb-nav .container-v2 {
    overflow-x: auto;
    white-space: nowrap;
  }
  .event-detail-meta,
  .roayamato-preview {
    grid-template-columns: 1fr;
  }
  .calendar-head {
    align-items: stretch;
  }
  .calendar-head h2 {
    align-self: center;
    font-size: 20px;
  }
  .calendar-grid {
    overflow-x: auto;
    order: 2;
  }
  .calendar-list {
    order: 1;
    margin-top: 0;
    margin-bottom: 22px;
  }
  .calendar-weekday,
  .calendar-day {
    min-width: 118px;
  }
  .calendar-event-dialog {
    padding: 26px 22px 24px;
  }
  .calendar-event-dialog h2 {
    font-size: 20px;
  }
  .calendar-event-meta {
    grid-template-columns: 1fr;
  }
  .file-col-size,
  .file-col-date {
    width: 0;
  }
  .file-col-actions {
    width: 112px;
  }
  .file-upload-form,
  .file-search-row,
  .file-item-main,
  .file-meta-form {
    grid-template-columns: 1fr;
  }
  .file-thumb {
    width: 100%;
    max-width: 180px;
    height: 110px;
  }
}

.admin-topbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-left: auto;
  flex-shrink: 0;
}
.admin-topbar-date {
  color: #9ca3af;
  font-size: 12px;
  white-space: nowrap;
}
.admin-topbar-logout-form {
  margin: 0;
  flex-shrink: 0;
}
.admin-topbar-logout-button {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 13px;
  border: 1px solid rgba(15, 79, 53, 0.24) !important;
  background: #f5f7f3 !important;
  color: #0f4f35 !important;
  font: inherit;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.7);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.admin-topbar-logout-button:hover {
  background: #edf5ee !important;
  border-color: rgba(15, 79, 53, 0.36) !important;
  color: #0a3827 !important;
}

@media (max-width: 640px) {
  .admin-topbar-actions {
    gap: 8px;
  }
  .admin-topbar-date {
    display: none;
  }
  .admin-topbar-logout-button {
    padding-inline: 10px;
  }
}

.maintenance-gate {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(120deg, rgba(15, 79, 53, 0.09), rgba(161, 132, 69, 0.08)),
    repeating-linear-gradient(90deg, rgba(20, 48, 32, 0.035) 0, rgba(20, 48, 32, 0.035) 1px, transparent 1px, transparent 44px),
    #f4f6f2;
}
.maintenance-card {
  width: min(92vw, 480px) !important;
  padding: 38px 38px 34px !important;
  border-top: 3px solid #0f4f35 !important;
  background: linear-gradient(180deg, #fff 0%, #fdfefb 100%) !important;
}
.maintenance-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 28px;
  color: #0f4f35;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.maintenance-brand img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}
.maintenance-kicker {
  margin: 0 0 10px !important;
  color: #8a7338 !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.maintenance-card h1 {
  margin-bottom: 12px !important;
  color: #143020;
  font-size: 26px !important;
  line-height: 1.45;
}
.maintenance-card p {
  line-height: 1.9;
}
.maintenance-card form {
  margin-top: 24px;
}
.maintenance-card input {
  min-height: 44px;
}
.maintenance-card button {
  width: 100%;
  min-height: 46px !important;
}

@media (max-width: 640px) {
  .maintenance-card {
    padding: 30px 24px 28px !important;
  }
  .maintenance-card h1 {
    font-size: 23px !important;
  }
}

/* Official-site finish: keep information hierarchy, remove ornamental template styling. */
.hero-eyebrow,
.section-label-v2,
.mission-label,
.page-banner .page-label,
.calendar-event-kicker,
.subscription-intro-kicker,
.maintenance-kicker {
  display: none !important;
}

.page-banner,
.mission-section {
  background: #176b46;
}

.card-v2,
.event-card-v2,
.ext-link-card,
.admin-card,
body:not(.bg-gray-50) main [class~="border"][class~="rounded"],
body:not(.bg-gray-50) main [class~="border"][class~="rounded-lg"],
body:not(.bg-gray-50) main [class~="border"][class~="border-gray-200"][class~="rounded"],
body:not(.bg-gray-50) main [class~="border"][class~="border-primary/20"][class~="rounded"],
body:not(.bg-gray-50) main [class~="border"][class~="border-primary/20"][class~="rounded-lg"] {
  background: #fff;
}

.card-v2:hover,
.event-card-v2:hover,
.ext-link-card:hover,
.search-result-item:hover,
.btn-primary-v2:hover {
  transform: none;
}

.card-v2:hover,
.event-card-v2:hover,
.ext-link-card:hover {
  box-shadow: 0 2px 8px rgba(18, 42, 28, 0.07);
}

.quick-nav-grid {
  box-shadow: 0 2px 10px rgba(18, 42, 28, 0.08);
}

.calendar-event-chip {
  padding: 6px 8px;
  border: 1px solid rgba(15, 79, 53, 0.12);
  border-left: 1px solid rgba(15, 79, 53, 0.12);
  border-radius: 4px !important;
  background: #edf7f1;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.calendar-event-chip:hover,
.calendar-event-chip:focus-visible {
  border-color: rgba(15, 79, 53, 0.28);
  background: #e4f1e8;
}

.calendar-list-detail {
  border-radius: var(--refined-radius-sm) !important;
  background: #fff;
}

.access-hours,
.notice {
  border-left-width: 1px;
  border-left-color: rgba(20, 48, 32, 0.10);
}

.maintenance-gate {
  background: #f4f6f2;
}

.maintenance-card {
  border-top-width: 1px !important;
  background: #fff !important;
}

.publication-tabs-inner {
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.publication-tabs-inner > a,
.publication-tabs-inner > span {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .publication-tabs-inner > a,
  .publication-tabs-inner > span {
    padding: 12px 16px !important;
  }
}
