:root {
  color-scheme: light;
  --ink: #142033;
  --muted: #516074;
  --line: #d8e4f2;
  --sky: #eef8ff;
  --blue: #1267b3;
  --blue-dark: #084a87;
  --accent: #f3b33d;
  --white: #ffffff;
  --soft: #f6fbff;
}

/* blueimpulse-new-chitose */
.new-chitose-hero,
.new-chitose-summary,
.new-chitose-event-teaser,
.new-chitose-connection {
  position: relative;
}

.new-chitose-event-teaser {
  background: linear-gradient(135deg, rgba(235, 249, 255, 0.94), rgba(255, 255, 255, 0.98));
  border: 1px solid rgba(44, 130, 201, 0.2);
  border-radius: 8px;
  margin: 28px auto;
  max-width: 1120px;
  padding: 24px;
}

.new-chitose-event-teaser h2,
.new-chitose-connection h2 {
  margin-top: 0;
}

.safety-callout {
  background: #fff8e8;
  border: 1px solid rgba(194, 128, 32, 0.28);
  border-radius: 8px;
  margin: 20px 0;
  padding: 18px;
}

.safety-callout strong {
  color: #7a4b00;
  display: block;
  margin-bottom: 8px;
}

.new-chitose-link-grid .info-card {
  min-height: 150px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: linear-gradient(180deg, #f4fbff 0%, #ffffff 52%, #f7fbff 100%);
  line-height: 1.75;
}

a { color: inherit; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px clamp(16px, 4vw, 44px);
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 230px;
  text-decoration: none;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, var(--blue), #63b6e8);
  font-weight: 800;
}

.brand strong { display: block; line-height: 1.1; }
.brand small { display: block; color: var(--muted); font-size: 12px; }

.menu-button { display: none; }

.site-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  width: 100%;
}

.site-nav a {
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
}

.site-nav a[aria-current="page"],
.site-nav a:hover {
  color: var(--blue-dark);
  background: #e8f4ff;
}

.site-nav a.nav-priority {
  color: var(--blue-dark);
  background: #e8f4ff;
  font-weight: 800;
}

.site-nav a.nav-schedule {
  color: #fff;
  background: var(--blue);
}

.site-nav a.nav-schedule:hover {
  color: #fff;
  background: var(--blue-dark);
}

main {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: clamp(22px, 5vw, 56px);
  align-items: center;
  padding: clamp(42px, 8vw, 86px) 0 28px;
}

.eyebrow {
  margin: 0 0 10px;
  color: var(--blue);
  font-weight: 700;
  font-size: 13px;
}

h1 {
  margin: 0;
  font-size: clamp(32px, 5vw, 58px);
  line-height: 1.18;
  letter-spacing: 0;
}

.lead {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 18px;
}

.operator {
  display: inline-block;
  margin: 22px 0 0;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  color: var(--blue-dark);
  font-weight: 700;
}

.sky-panel {
  position: relative;
  min-height: 310px;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background:
    radial-gradient(circle at 72% 24%, rgba(255,255,255,.95) 0 9%, transparent 10%),
    linear-gradient(160deg, #d8f2ff 0%, #f8fdff 55%, #d7ecff 100%);
}

.sun {
  position: absolute;
  width: 74px;
  height: 74px;
  top: 34px;
  right: 42px;
  border-radius: 50%;
  background: #fff3b8;
  box-shadow: 0 0 0 14px rgba(255, 243, 184, 0.25);
}

.flight-line {
  position: absolute;
  left: -16%;
  width: 132%;
  height: 4px;
  border-radius: 999px;
  background: rgba(18, 103, 179, 0.72);
  transform: rotate(-13deg);
}

.line-a { top: 58%; }
.line-b { top: 65%; background: rgba(255,255,255,.95); }

.jet-shape {
  position: absolute;
  top: 45%;
  left: 44%;
  width: 84px;
  height: 34px;
  background: var(--blue-dark);
  clip-path: polygon(0 42%, 66% 42%, 66% 0, 100% 50%, 66% 100%, 66% 58%, 0 58%);
  transform: rotate(-13deg);
  box-shadow: 0 12px 22px rgba(8,74,135,.22);
}

.stream-dot {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--accent);
}

.dot-a { left: 24%; top: 36%; }
.dot-b { right: 28%; bottom: 22%; background: var(--blue); }

.notice {
  margin: 10px 0 24px;
  padding: 18px 20px;
  border: 1px solid #bdd8ef;
  border-left: 6px solid var(--blue);
  border-radius: 8px;
  background: #f4fbff;
}

.notice strong {
  display: block;
  margin-bottom: 6px;
  color: var(--blue-dark);
}

.notice p { margin: 0; color: var(--muted); }

.official-ref {
  margin: 24px 0;
  padding: 22px;
  border: 1px solid #b8d5ef;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 32, 51, 0.06);
}

.official-ref h2 {
  margin: 0 0 10px;
  color: var(--blue-dark);
  font-size: 22px;
  line-height: 1.35;
}

.official-ref p {
  margin: 0 0 12px;
  color: var(--muted);
}

.official-ref ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0;
  padding: 0;
  list-style: none;
}

.official-ref li {
  padding: 8px 10px;
  border-radius: 8px;
  background: #eef8ff;
  color: var(--blue-dark);
  font-weight: 700;
  font-size: 14px;
}

.official-ref .official-link {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 12px;
  border-radius: 8px;
  background: var(--blue-dark);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.official-ref .official-note {
  margin-top: 12px;
  font-size: 14px;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 24px 0;
}

.info-card {
  min-height: 150px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(20, 32, 51, 0.06);
}

.info-card span {
  display: block;
  color: var(--blue-dark);
  font-weight: 800;
  font-size: 18px;
}

.info-card p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 14px;
}

.info-card .detail-link-label {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin-top: 12px;
  color: var(--blue-dark);
  font-size: 14px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.schedule-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 22px 0;
}

.schedule-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 10px 24px rgba(20, 32, 51, 0.06);
}

.schedule-card__date {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #eaf4ff;
  color: var(--blue-dark);
  font-size: 14px;
  font-weight: 800;
}

.schedule-card__title {
  margin: 12px 0 8px;
  font-size: 18px;
  line-height: 1.45;
}

.schedule-card__title a {
  color: var(--text);
  text-decoration: none;
}

.schedule-card__place,
.schedule-card__meta {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 14px;
}

.schedule-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0;
}

.schedule-card__badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 3px 9px;
  border-radius: 999px;
  background: #f4f8fb;
  border: 1px solid #dbe9f3;
  color: #31536b;
  font-size: 12px;
  font-weight: 800;
}

.schedule-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.schedule-card__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--blue-dark);
  color: var(--white);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.content-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 22px;
  margin: 32px 0 58px;
}

.main-content {
  display: grid;
  gap: 16px;
}

.content-section,
.side-box {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.content-section h2,
.side-box h2 {
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.35;
}

.content-section p,
.side-box p {
  margin: 0;
  color: var(--muted);
}

.side-box {
  align-self: start;
  background: var(--soft);
}

.side-box ul {
  margin: 0;
  padding-left: 20px;
}

.side-box a {
  color: var(--blue-dark);
  font-weight: 700;
}

.site-footer {
  padding: 32px clamp(16px, 4vw, 44px);
  color: #dcecff;
  background: #10243b;
}

.footer-grid {
  display: flex;
  gap: 20px;
  justify-content: space-between;
  width: min(1120px, 100%);
  margin: 0 auto;
}

.footer-title {
  margin: 0 0 8px;
  font-weight: 800;
}

.site-footer p { margin: 4px 0; }

.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-content: flex-start;
  justify-content: flex-end;
}

.site-footer a { color: #ffffff; }

@media (max-width: 860px) {
  .site-header {
    position: static;
    display: block;
  }

  .brand { min-width: 0; }
  .menu-button { display: none; }

  .site-nav {
    justify-content: flex-start;
    margin-top: 12px;
  }

  .hero,
  .content-layout {
    grid-template-columns: 1fr;
  }

  .sky-panel {
    min-height: 230px;
  }

  .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .schedule-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .official-ref ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-grid {
    display: grid;
  }

  .site-footer nav {
    justify-content: flex-start;
  }
}

@media (max-width: 520px) {
  main {
    width: min(100% - 24px, 1120px);
  }

  .site-header {
    padding: 12px;
  }

  .brand strong {
    font-size: 15px;
  }

  .brand small {
    font-size: 11px;
  }

  .site-nav a {
    padding: 7px 8px;
    font-size: 13px;
  }

  h1 {
    font-size: 30px;
  }

  .lead {
    font-size: 16px;
  }

  .card-grid {
    grid-template-columns: 1fr;
  }

  .schedule-card-grid {
    grid-template-columns: 1fr;
  }

  .info-card {
    min-height: 126px;
  }

  .official-ref ul {
    grid-template-columns: 1fr;
  }

  .content-section,
  .side-box,
  .notice,
  .official-ref {
    padding: 16px;
  }
}


/* schedule-2026 */
.schedule-hero {
  padding-bottom: 22px;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
}

.schedule-first-view {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .85fr);
  gap: 18px;
  align-items: stretch;
  margin: 20px auto;
  max-width: 1120px;
  padding: 0 18px;
}

.schedule-first-view > div,
.schedule-time-training-live,
.schedule-priority-list {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 18px;
}

.schedule-priority-list,
.schedule-time-training-live {
  max-width: 1120px;
  margin: 20px auto;
}

.highlight-box {
  background: #f7fbff;
  border: 1px solid #d7ebfb;
  border-radius: 12px;
  padding: 14px;
}

.schedule-table,
.detail-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
}

.schedule-table th,
.schedule-table td,
.detail-table th,
.detail-table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.schedule-table th,
.detail-table th {
  color: var(--blue-dark);
  background: #eef8ff;
  font-weight: 800;
}

.detail-table {
  min-width: 0;
}

@media (max-width: 720px) {
  .schedule-first-view {
    grid-template-columns: 1fr;
    padding: 0 14px;
  }

  .schedule-priority-list,
  .schedule-time-training-live {
    margin: 16px 14px;
    padding: 16px;
  }

  .schedule-table--priority {
    min-width: 0;
  }

  .schedule-table--priority thead {
    display: none;
  }

  .schedule-table--priority,
  .schedule-table--priority tbody,
  .schedule-table--priority tr,
  .schedule-table--priority td {
    display: block;
    width: 100%;
  }

  .schedule-table--priority tr {
    border: 1px solid var(--line);
    border-radius: 12px;
    margin: 0 0 12px;
    padding: 10px;
    background: #fff;
  }

  .schedule-table--priority td {
    border: 0;
    padding: 7px 0;
  }

  .schedule-table--priority td::before {
    display: block;
    color: var(--blue-dark);
    font-weight: 800;
    font-size: .84rem;
    margin-bottom: 2px;
  }

  .schedule-table--priority td:nth-child(1)::before { content: "日付"; }
  .schedule-table--priority td:nth-child(2)::before { content: "曜日"; }
  .schedule-table--priority td:nth-child(3)::before { content: "イベント名"; }
  .schedule-table--priority td:nth-child(4)::before { content: "場所"; }
  .schedule-table--priority td:nth-child(5)::before { content: "種別"; }
  .schedule-table--priority td:nth-child(6)::before { content: "飛行時間"; }
  .schedule-table--priority td:nth-child(7)::before { content: "個別ページ"; }
  .schedule-table--priority td:nth-child(8)::before { content: "ライブ配信"; }
  .schedule-table--priority td:nth-child(9)::before { content: "アーカイブ"; }
  .schedule-table--priority td:nth-child(10)::before { content: "ステータス"; }
}

.detail-table th {
  width: 170px;
}

.tag {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 8px;
  background: #e8f4ff;
  color: var(--blue-dark);
  font-weight: 800;
  font-size: 13px;
}

.related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.related-links a,
.official-link-sub {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--blue-dark);
  font-weight: 800;
  text-decoration: none;
}

.official-link-sub {
  margin-left: 8px;
}

.plain-list {
  margin: 0;
  padding-left: 20px;
  color: var(--muted);
}

.faq-list h3 {
  margin: 16px 0 4px;
  font-size: 18px;
}

.faq-list h3:first-child {
  margin-top: 0;
}

.faq-list p {
  margin: 0;
  color: var(--muted);
}

@media (max-width: 520px) {
  .detail-table,
  .schedule-table {
    min-width: 640px;
  }

  .official-link-sub {
    margin-left: 0;
  }
}


/* pilot-page */
.pilot-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.pilot-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(20, 32, 51, 0.06);
}

.pilot-photo-placeholder {
  display: grid;
  align-content: center;
  min-height: 168px;
  padding: 18px;
  color: #fff;
  background: linear-gradient(135deg, #1267b3, #5cb7e6);
}

.pilot-photo-placeholder span {
  font-size: 30px;
  font-weight: 900;
  line-height: 1.1;
}

.pilot-photo-placeholder small {
  font-weight: 800;
}

.pilot-photo-placeholder p {
  margin: 10px 0 0;
  font-size: 13px;
}

.pilot-card-body {
  padding: 18px;
}

.pilot-role {
  margin: 0 0 8px;
  color: var(--blue-dark);
  font-weight: 900;
}

.pilot-role span {
  display: block;
  color: var(--muted);
  font-size: 13px;
}

.pilot-card h2 {
  margin: 0 0 12px;
  font-size: 24px;
}

.pilot-card dl {
  display: grid;
  gap: 8px;
  margin: 0 0 12px;
}

.pilot-card dl div {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 8px;
}

.pilot-card dt {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.pilot-card dd {
  margin: 0;
  font-weight: 700;
}

.pilot-card-body p {
  color: var(--muted);
}

.pilot-card-body a {
  color: var(--blue-dark);
  font-weight: 900;
}

@media (max-width: 860px) {
  .pilot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .pilot-grid {
    grid-template-columns: 1fr;
  }
}


/* chinanago-brand */
.chinanago-brand {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 22px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(20, 32, 51, 0.06);
}

.chinanago-brand--feature {
  padding: 22px;
}

.chinanago-brand--footer {
  align-items: flex-start;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.chinanago-brand__logo-link {
  display: inline-flex;
  flex: 0 0 auto;
  line-height: 0;
}

.chinanago-logo {
  display: block;
  width: 160px;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.chinanago-brand--home .chinanago-logo,
.chinanago-brand--page .chinanago-logo,
.chinanago-brand--feature .chinanago-logo {
  width: 240px;
}

.chinanago-brand--footer .chinanago-logo {
  width: 120px;
}

.chinanago-brand__text p {
  margin: 0 0 6px;
}

.chinanago-brand__label {
  color: var(--blue-dark);
  font-weight: 900;
}

.chinanago-link {
  color: var(--blue-dark);
  font-weight: 900;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.chinanago-hero-logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  max-width: 100%;
  margin-top: 12px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.54);
  border-radius: 8px;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  background: rgba(8, 57, 103, 0.36);
}

.chinanago-hero-logo .chinanago-logo {
  width: 72px;
  border-radius: 6px;
}

@media (max-width: 620px) {
  .chinanago-brand {
    align-items: flex-start;
    flex-direction: column;
  }

  .chinanago-brand--footer {
    flex-direction: row;
  }

  .chinanago-brand--home .chinanago-logo,
  .chinanago-brand--page .chinanago-logo,
  .chinanago-brand--feature .chinanago-logo,
  .chinanago-logo {
    width: 180px;
  }

  .chinanago-brand--footer .chinanago-logo {
    width: 96px;
  }

  .chinanago-hero-logo {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }
}

/* contact-form */
.notice-secondary {
  background: #fffaf0;
}

.contact-form {
  display: grid;
  gap: 16px;
}

.form-row {
  display: grid;
  gap: 7px;
}

.form-row label,
.consent-row {
  color: var(--blue-dark);
  font-weight: 900;
}

.form-row label span {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 6px;
  border-radius: 6px;
  background: #ffe8e8;
  color: #a83232;
  font-size: 12px;
}

.form-row input,
.form-row select,
.form-row textarea {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px 13px;
  color: var(--ink);
  background: #fff;
  font: inherit;
}

.form-row textarea {
  resize: vertical;
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
  outline: 3px solid rgba(23, 118, 190, 0.18);
  border-color: var(--blue);
}

.form-row-hidden {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.consent-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.7;
}

.consent-row input {
  width: 18px;
  height: 18px;
  margin-top: 4px;
  flex: 0 0 auto;
}

.submit-button {
  width: fit-content;
  min-height: 46px;
  border: 0;
  border-radius: 8px;
  padding: 12px 18px;
  color: #fff;
  background: var(--blue-dark);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.submit-button:hover {
  background: #075184;
}

.form-success {
  border-left: 5px solid #168754;
}

.form-error {
  border-left: 5px solid #b83232;
}

@media (max-width: 520px) {
  .submit-button {
    width: 100%;
  }
}


/* blueimpulse-site-logo */
.brand {
  min-width: min(360px, 42vw);
}

.site-logo {
  display: block;
  width: auto;
  max-width: 360px;
  max-height: 72px;
  height: auto;
}

.hero-logo {
  display: block;
  width: 100%;
  max-width: 760px;
  height: auto;
  margin: 0 0 24px;
}

.site-footer .site-logo {
  max-width: 220px;
  max-height: 46px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 760px) {
  .site-header {
    align-items: flex-start;
  }

  .brand {
    min-width: 0;
    width: min(100%, 300px);
  }

  .site-logo {
    max-width: 260px;
    max-height: 58px;
  }

  .hero-logo {
    max-width: 100%;
    margin-bottom: 18px;
  }
}

@media (max-width: 430px) {
  .site-logo {
    max-width: 220px;
    max-height: 52px;
  }
}


/* blueimpulse-emblem-accent */
.emblem-accent {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  margin: 22px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(135deg, #ffffff, #f2f9ff);
  box-shadow: 0 12px 28px rgba(20, 32, 51, 0.06);
}

.blueimpulse-emblem {
  display: block;
  width: 100%;
  max-width: 160px;
  height: auto;
  object-fit: contain;
  object-position: center;
}

.blueimpulse-emblem--hero {
  max-width: 220px;
}

.emblem-accent__text h2 {
  margin: 0 0 6px;
  color: var(--blue-dark);
  font-size: 24px;
}

.emblem-accent__text p {
  margin: 0;
  color: var(--muted);
}

.emblem-accent__note {
  margin-top: 8px !important;
  font-size: 13px;
}

@media (max-width: 620px) {
  .emblem-accent {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .blueimpulse-emblem,
  .blueimpulse-emblem--hero {
    max-width: 130px;
  }

  .emblem-accent__text h2 {
    font-size: 21px;
  }
}

/* logo-emblem-safe-contain */
img[src*="blueimpulse-emblem"],
img[src*="logo-blueimpulse-info"],
img[src*="chinanago-logo"] {
  object-fit: contain !important;
  object-position: center !important;
  max-width: 100%;
  height: auto;
}

.emblem-accent {
  overflow: visible;
}

.emblem-accent,
.emblem-accent figure,
.emblem-accent__visual,
.logo-card__image,
.emblem-image,
.info-card__logo,
.hero-logo-image {
  align-items: center;
  justify-content: center;
}

.focus-event-grid img[src*="blueimpulse-emblem"],
.next2month-card img[src*="blueimpulse-emblem"],
.official-photo-card img[src*="blueimpulse-emblem"],
.event-rich-lead img[src*="blueimpulse-emblem"],
.video-thumb-card img[src*="blueimpulse-emblem"] {
  aspect-ratio: auto !important;
  width: auto !important;
  max-width: min(100%, 180px);
  max-height: 180px;
  padding: 12px;
  margin: 0 auto;
  background: #fff;
}


.emblem-accent__source {
  margin-top: 6px !important;
  font-size: 12px;
  color: #5f7388;
}


/* blueimpulse-news-foundation */
.news-teaser,
.news-policy {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.news-list {
  display: grid;
  gap: 16px;
}

.news-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 8px;
  background: #fff;
}

.news-card h2 {
  margin: 4px 0 8px;
  font-size: 22px;
  color: var(--blue-dark);
}

.news-meta {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.check-list {
  padding-left: 1.2em;
}

.official-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  color: var(--blue-dark);
  font-weight: 700;
}

.design-list {
  display: grid;
  gap: 10px;
}

.design-list dt {
  font-weight: 800;
  color: var(--blue-dark);
}

.design-list dd {
  margin: 0 0 8px;
  color: var(--muted);
}

.news-table th {
  width: 180px;
}

@media (max-width: 620px) {
  .news-card h2 {
    font-size: 19px;
  }

  .news-table th {
    width: auto;
  }
}


/* blueimpulse-training-matsushima */
.training-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--accent);
  border-radius: 8px;
  background: #fff;
}

.training-table th,
.training-table td {
  vertical-align: top;
}

.training-detail .official-links,
.training-index .official-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

@media (max-width: 760px) {
  .training-table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}


/* blueimpulse-latest-focus */
.latest-blueimpulse,
.schedule-current-focus,
.live-current-archive,
.archive-miho-handoff,
.airshow-miho-current {
  margin: 24px 0;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(20, 32, 51, 0.05);
}

.latest-blueimpulse {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.latest-blueimpulse > div,
.current-focus-grid > div {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #f7fbff);
}

.latest-blueimpulse__official {
  grid-column: 1 / -1;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  color: #fff;
}

.status-badge--today { background: var(--blue); }
.status-badge--next { background: #0f766e; }
.status-badge--archive { background: #8a5a12; }

.latest-blueimpulse__summary {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 6px 12px;
  margin: 12px 0;
}

.latest-blueimpulse__summary dt {
  font-weight: 800;
  color: var(--blue-dark);
}

.latest-blueimpulse__summary dd {
  margin: 0;
}

.latest-blueimpulse__actions,
.current-focus-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.current-focus-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 14px 0;
}

@media (max-width: 760px) {
  .latest-blueimpulse,
  .current-focus-grid {
    grid-template-columns: 1fr;
  }

  .latest-blueimpulse__summary {
    grid-template-columns: 1fr;
  }
}


/* blueimpulse-program-page */
.program-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 8px;
  background: #fff;
}

.program-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.program-card-grid article {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.program-card-grid h3 {
  margin: 0 0 8px;
  color: var(--blue-dark);
}

.program-table th,
.program-table td {
  vertical-align: top;
}

.faq-list {
  display: grid;
  gap: 10px;
}

.faq-list details {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.faq-list summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--blue-dark);
}

@media (max-width: 760px) {
  .program-card-grid {
    grid-template-columns: 1fr;
  }

  .program-table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}


/* blueimpulse-archive-events */
.archive-events-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #0f766e;
  border-radius: 8px;
  background: #fff;
}

.archive-year-block p {
  margin-bottom: 14px;
}

.archive-events-table th,
.archive-events-table td {
  vertical-align: top;
}

.archive-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #eef8ff;
  color: var(--blue-dark);
  font-size: 12px;
  font-weight: 900;
  white-space: normal;
}

.archive-status--ok {
  background: #e8f7ef;
  color: #11633d;
}

.archive-status--pending {
  background: #fff6dc;
  color: #79520b;
}

.archive-event-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.archive-event-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(20, 32, 51, 0.05);
}

.archive-event-card__head {
  display: grid;
  gap: 8px;
}

.archive-event-card__year {
  margin: 0;
  color: var(--blue);
  font-weight: 900;
}

.archive-event-card h3 {
  margin: 0 0 10px;
  color: var(--blue-dark);
  font-size: 21px;
  line-height: 1.35;
}

.archive-event-card dl {
  display: grid;
  gap: 7px;
  margin: 12px 0;
}

.archive-event-card dl div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 10px;
}

.archive-event-card dt {
  color: var(--muted);
  font-weight: 900;
}

.archive-event-card dd {
  margin: 0;
}

.archive-video-list {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.archive-video-list li {
  display: grid;
  gap: 4px;
}

.archive-video-list span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}

.archive-video-list a {
  color: var(--blue-dark);
  font-weight: 900;
}

.archive-muted {
  color: var(--muted);
  font-size: 14px;
}

@media (max-width: 760px) {
  .archive-event-grid {
    grid-template-columns: 1fr;
  }

  .archive-events-table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }

  .archive-event-card dl div {
    grid-template-columns: 1fr;
  }
}


/* blueimpulse-airframe-page */
.airframe-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #0f766e;
  border-radius: 8px;
  background: #fff;
}

.airframe-visual {
  position: relative;
  min-height: 320px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: linear-gradient(160deg, #d8f2ff 0%, #ffffff 52%, #e8f4ff 100%);
}

.airframe-visual .blueimpulse-emblem {
  position: absolute;
  top: 18px;
  right: 18px;
  max-width: 120px;
  opacity: 0.92;
}

.airframe-visual p {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 18px;
  margin: 0;
  padding: 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  color: var(--muted);
  font-size: 14px;
}

.airframe-jet {
  position: absolute;
  top: 42%;
  left: 10%;
  width: 78%;
  height: 70px;
  transform: rotate(-8deg);
}

.airframe-jet::before {
  content: "";
  position: absolute;
  inset: 26px 0 24px;
  border-radius: 999px 70% 70% 999px;
  background: linear-gradient(90deg, #ffffff 0%, #1b75bc 42%, #ffffff 62%, #0d4d8d 100%);
  box-shadow: 0 14px 28px rgba(8, 74, 135, 0.2);
}

.airframe-jet::after {
  content: "";
  position: absolute;
  top: 8px;
  left: 38%;
  width: 26%;
  height: 56px;
  clip-path: polygon(0 50%, 52% 0, 100% 50%, 52% 100%);
  background: rgba(18, 103, 179, 0.92);
}

.airframe-jet span::before,
.airframe-jet span::after {
  content: "";
  position: absolute;
  right: 2%;
  width: 16%;
  height: 22px;
  background: #0d4d8d;
}

.airframe-jet span::before {
  top: 3px;
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
}

.airframe-jet span::after {
  bottom: 3px;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.airframe-point-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.airframe-point-grid article {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.airframe-point-grid h3 {
  margin: 0 0 8px;
  color: var(--blue-dark);
}

.airframe-spec-table th {
  width: 170px;
}

@media (max-width: 760px) {
  .airframe-point-grid {
    grid-template-columns: 1fr;
  }

  .airframe-visual {
    min-height: 260px;
  }

  .airframe-visual .blueimpulse-emblem {
    max-width: 90px;
  }

  .airframe-jet {
    left: 4%;
    width: 92%;
  }
}


/* blueimpulse-flight-history-page */
.flight-history-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #2563eb;
  border-radius: 8px;
  background: #fff;
}

.flight-history-page .flight-history-table th,
.flight-history-page .flight-history-table td {
  min-width: 132px;
}

.flight-history-page .flight-history-table th:nth-child(2),
.flight-history-page .flight-history-table td:nth-child(2) {
  min-width: 220px;
}

.category-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.category-chip-grid a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--blue-dark);
  font-weight: 700;
  text-decoration: none;
}

.category-chip-grid a:hover {
  border-color: #2563eb;
  color: #1d4ed8;
}

@media (max-width: 760px) {
  .category-chip-grid a {
    width: 100%;
    border-radius: 8px;
  }
}


/* blueimpulse-longtail-phase1 */
.longtail-hub-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #0284c7;
  border-radius: 8px;
  background: #fff;
}

.longtail-page .longtail-links {
  margin: 24px 0;
}

.longtail-page .plain-list li {
  margin-bottom: 8px;
}


/* blueimpulse-miho-airshow-page */
.miho-airshow-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #0284c7;
  border-radius: 8px;
  background: #fff;
}

.miho-airshow-page .emblem-accent--miho {
  align-self: stretch;
  min-height: 280px;
}

.miho-airshow-page .today-miho-focus {
  border-left: 5px solid #2563eb;
}

.miho-link-grid {
  margin: 24px 0;
}

@media (max-width: 760px) {
  .miho-airshow-page .emblem-accent--miho {
    min-height: 0;
  }
}


/* blueimpulse-kamifurano-event-page */
.kamifurano-event-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #16a34a;
  border-radius: 8px;
  background: #fff;
}

.kamifurano-event-page .emblem-accent--kamifurano {
  align-self: stretch;
  min-height: 280px;
}

.kamifurano-event-page .kamifurano-summary {
  border-left: 5px solid #16a34a;
}

.kamifurano-link-grid {
  margin: 24px 0;
}

@media (max-width: 760px) {
  .kamifurano-event-page .emblem-accent--kamifurano {
    min-height: 0;
  }
}


/* blueimpulse-kamifurano-rehearsal */
.kamifurano-rehearsal {
  border-left: 5px solid #f59e0b;
}

.check-list li::before {
  content: "□ ";
  color: #2563eb;
  font-weight: 700;
}


/* blueimpulse-pal-character */
.pal-guide-box {
  display: grid;
  grid-template-columns: minmax(130px, 220px) 1fr;
  align-items: center;
  gap: 18px;
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #38bdf8;
  border-radius: 8px;
  background: linear-gradient(135deg, #ffffff 0%, #eff8ff 100%);
}

.pal-guide-box--warning {
  border-left-color: #f59e0b;
  background: linear-gradient(135deg, #ffffff 0%, #fff7ed 100%);
}

.pal-guide-box--stream {
  border-left-color: #2563eb;
}

.pal-guide-img {
  display: block;
  width: 100%;
  max-width: 220px;
  height: auto;
  justify-self: center;
  padding: 12px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #e2edf5;
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(2, 36, 67, 0.08);
}

.pal-guide-img--wide {
  max-width: 280px;
}

.pal-guide-text h2,
.pal-guide-text h3 {
  margin-top: 0;
  color: var(--blue-dark);
}

.pal-guide-text p:last-child {
  margin-bottom: 0;
}

.pal-character-note {
  font-size: 0.92rem;
  color: var(--muted);
}

@media (max-width: 760px) {
  .pal-guide-box {
    grid-template-columns: 1fr;
    text-align: left;
  }

  .pal-guide-img,
  .pal-guide-img--wide {
    max-width: 190px;
  }
}


/* blueimpulse-user-reports */
.user-report-teaser {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 5px solid #0ea5e9;
  border-radius: 8px;
  background: #fff;
}

.report-card-list {
  display: grid;
  gap: 18px;
}

.report-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.report-card__meta,
.report-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.report-card__meta span,
.report-card__approved {
  color: var(--muted);
  font-size: 0.92rem;
}

.report-card__place,
.report-card__author {
  color: var(--blue-dark);
  font-weight: 700;
}

.report-card__details {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 8px 12px;
  margin: 14px 0;
  padding: 14px;
  border-radius: 8px;
  background: #f8fbff;
}

.report-card__details dt {
  color: var(--muted);
  font-weight: 700;
}

.report-card__details dd {
  margin: 0;
}

@media (max-width: 760px) {
  .report-card__details {
    grid-template-columns: 1fr;
  }
}


/* kamifurano-tourism */
.kamifurano-tourism-hero {
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(224,245,255,.9));
}
.tourism-event-teaser,
.tourism-connection {
  border: 1px solid rgba(48, 128, 176, .2);
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,250,244,.94));
  border-radius: 12px;
  padding: clamp(18px, 3vw, 30px);
  margin: clamp(18px, 3vw, 34px) auto;
  max-width: 1120px;
  box-shadow: 0 16px 32px rgba(25, 75, 105, .08);
}
.tourism-event-teaser h2,
.tourism-connection h2 {
  margin-top: 0;
}
.tourism-card-grid .info-card,
.tourism-link-grid .info-card,
.course-grid .info-card {
  min-width: 0;
}
.timeline-list,
.course-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.timeline-list article {
  border: 1px solid rgba(48, 128, 176, .18);
  border-radius: 12px;
  padding: 18px;
  background: #fff;
}
.timeline-list h3 {
  margin-top: 0;
  font-size: 1.05rem;
}
@media (max-width: 600px) {
  .tourism-event-teaser,
  .tourism-connection {
    border-radius: 10px;
    padding: 18px;
  }
}


/* furano-entry */
.furano-entry-hero {
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(231,246,255,.92));
}
.furano-entry-teaser,
.furano-connection {
  border: 1px solid rgba(54, 130, 185, .2);
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(236,248,255,.94));
  border-radius: 12px;
  padding: clamp(18px, 3vw, 30px);
  margin: clamp(18px, 3vw, 34px) auto;
  max-width: 1120px;
  box-shadow: 0 16px 32px rgba(25, 75, 105, .08);
}
.furano-entry-teaser h2,
.furano-connection h2 {
  margin-top: 0;
}
.furano-link-grid .info-card {
  min-width: 0;
}
@media (max-width: 600px) {
  .furano-entry-teaser,
  .furano-connection {
    border-radius: 10px;
    padding: 18px;
  }
}


/* kamifurano-access */
.access-hero {
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,248,255,.94));
}
.access-event-teaser,
.access-connection {
  border: 1px solid rgba(54, 130, 185, .2);
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(238,248,255,.94));
  border-radius: 12px;
  padding: clamp(18px, 3vw, 30px);
  margin: clamp(18px, 3vw, 34px) auto;
  max-width: 1120px;
  box-shadow: 0 16px 32px rgba(25, 75, 105, .08);
}
.access-event-teaser h2,
.access-connection h2 {
  margin-top: 0;
}
.access-card-grid .info-card {
  min-width: 0;
}
.access-check-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.access-check-grid article {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px;
  background: #fff;
}
.access-check-grid h3 {
  margin-top: 0;
  color: var(--blue-dark);
}
@media (max-width: 600px) {
  .access-event-teaser,
  .access-connection {
    border-radius: 10px;
    padding: 18px;
  }
}


/* kamifurano-parking */
.parking-hero,
.parking-event-teaser {
  background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(232,246,255,0.96));
}

.parking-event-teaser {
  margin: 24px auto;
  padding: 22px;
  border: 1px solid rgba(30, 111, 191, 0.18);
  border-radius: 8px;
}

.parking-event-teaser h2 {
  margin-top: 0;
}

.parking-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.parking-summary-grid article {
  border: 1px solid rgba(20, 70, 120, 0.16);
  border-radius: 8px;
  padding: 16px;
  background: #fff;
}

.parking-check-table th,
.parking-check-table td {
  vertical-align: top;
}

.danger-list li {
  font-weight: 700;
}

.safety-callout--strong {
  border-color: rgba(194, 54, 54, 0.28);
  background: rgba(255, 244, 244, 0.96);
}

@media (max-width: 720px) {
  .parking-summary-grid {
    grid-template-columns: 1fr;
  }
}

/* kamifurano-flight-route */
.flight-route-check,
.route-teaser {
  border: 1px solid rgba(30, 111, 191, 0.18);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(236,248,255,0.94));
  box-shadow: 0 16px 32px rgba(25, 75, 105, 0.08);
}

.flight-route-check .section-kicker {
  margin: 0 0 8px;
  color: var(--blue-dark);
  font-weight: 700;
}

.route-source-status {
  display: grid;
  gap: 8px;
  border-left: 5px solid var(--blue);
  border-radius: 8px;
  background: rgba(255,255,255,0.9);
  padding: 16px 18px;
  margin: 18px 0;
}

.flight-route-concept {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 20px 0 12px;
}

.flight-route-concept article {
  position: relative;
  border: 1px solid rgba(20, 70, 120, 0.16);
  border-radius: 8px;
  padding: 18px 16px 16px;
  background: #fff;
  min-width: 0;
}

.flight-route-concept span {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-weight: 700;
}

.flight-route-concept h3 {
  margin: 12px 0 8px;
  color: var(--blue-dark);
  font-size: 1rem;
}

.route-teaser {
  padding: 22px;
  margin: 24px auto;
}

.route-teaser h2 {
  margin-top: 0;
}

@media (max-width: 900px) {
  .flight-route-concept {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .flight-route-concept {
    grid-template-columns: 1fr;
  }
}


/* future-june-july-events */
.future-event-hero {
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(232,246,255,0.95));
}

.future-event-priority {
  border: 1px solid rgba(30, 111, 191, 0.18);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(239,248,255,0.95));
  box-shadow: 0 16px 32px rgba(25, 75, 105, 0.08);
  padding: clamp(18px, 3vw, 30px);
  margin: clamp(22px, 3vw, 36px) auto;
}

.future-event-priority h2 {
  margin-top: 0;
}

.future-event-link-grid .info-card {
  min-width: 0;
}

.official-link-list {
  display: grid;
  gap: 8px;
  padding-left: 1.2em;
}

@media (max-width: 600px) {
  .future-event-priority {
    padding: 18px;
  }
}

/* metro-2027-events */
.metro-event-priority {
  border: 1px solid rgba(21, 101, 192, 0.18);
  background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
}

.metro-event-priority-home {
  margin-top: 28px;
}

.metro-event-hero .hero-copy {
  max-width: 920px;
}

.metro-safety-section {
  border-left: 4px solid #1565c0;
}

.keyword-note {
  background: #f7f9fc;
}


.official-photo-band {
  max-width: 1180px;
  margin: 32px auto;
  padding: 28px;
  background: #f4f9fd;
  border: 1px solid #d8e7f1;
  border-radius: 8px;
}

.official-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.official-photo-card,
.official-reference-photo figure,
.official-hero-photo {
  margin: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d8e7f1;
  border-radius: 8px;
}

.official-photo-card img,
.official-reference-photo img,
.official-hero-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.official-photo-card figcaption,
.official-reference-photo figcaption,
.official-hero-photo figcaption {
  padding: 10px 12px 12px;
  color: #264257;
  font-size: 0.9rem;
  line-height: 1.6;
}

.official-photo-card figcaption span,
.official-hero-photo figcaption span {
  color: #5b6f7d;
  font-size: 0.82rem;
}

.official-photo-source {
  margin: 16px 0 0;
  color: #4d6472;
  font-size: 0.9rem;
  line-height: 1.7;
}

.official-reference-photo {
  max-width: 1180px;
  margin: 28px auto;
  padding: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 22px;
  align-items: center;
  background: #f7fbff;
  border: 1px solid #d8e7f1;
  border-radius: 8px;
}

.official-airframe-visual {
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 760px) {
  .official-photo-band,
  .official-reference-photo {
    margin: 22px 16px;
    padding: 18px;
  }

  .official-reference-photo {
    grid-template-columns: 1fr;
  }
}


/* schedule-phase2 */
.schedule-purpose-links,
.schedule-region-links,
.schedule-home-cta,
.blueimpulse-schedule-cta,
.schedule-return-link {
  max-width: 1180px;
  margin: 28px auto;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(21, 101, 192, 0.16);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(239,248,255,0.94));
  box-shadow: 0 14px 28px rgba(20, 72, 110, 0.07);
}

.schedule-purpose-grid,
.schedule-region-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.schedule-purpose-grid .info-card,
.schedule-region-grid .info-card {
  min-width: 0;
}

.schedule-home-cta,
.blueimpulse-schedule-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
}

.schedule-home-cta__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.schedule-return-link {
  background: #fff;
}

@media (max-width: 760px) {
  .schedule-purpose-links,
  .schedule-region-links,
  .schedule-home-cta,
  .blueimpulse-schedule-cta,
  .schedule-return-link {
    margin: 22px 16px;
    padding: 18px;
  }

  .schedule-home-cta,
  .blueimpulse-schedule-cta {
    grid-template-columns: 1fr;
  }

  .schedule-home-cta__links {
    justify-content: flex-start;
  }
}


/* time-intent-strengthening */
.time-intent-block,
.time-intent-explainer,
.flight-time-matrix,
.today-time-check,
.rehearsal-time-block,
.event-time-block {
  max-width: 1180px;
  margin: 28px auto;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(21, 101, 192, 0.16);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(239,248,255,0.94));
  box-shadow: 0 14px 28px rgba(20, 72, 110, 0.07);
}

.time-answer-grid,
.time-check-list,
.time-intent-explainer {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.time-answer-card,
.time-check-list article {
  min-width: 0;
  border: 1px solid rgba(21, 101, 192, 0.14);
  border-radius: 8px;
  background: #fff;
  padding: 16px;
}

.flight-time-table td,
.flight-time-table th {
  vertical-align: top;
}

@media (max-width: 760px) {
  .time-intent-block,
  .time-intent-explainer,
  .flight-time-matrix,
  .today-time-check,
  .rehearsal-time-block,
  .event-time-block {
    margin: 22px 16px;
    padding: 18px;
  }

  .flight-time-table thead {
    display: none;
  }

  .flight-time-table,
  .flight-time-table tbody,
  .flight-time-table tr,
  .flight-time-table td {
    display: block;
    width: 100%;
  }

  .flight-time-table tr {
    border: 1px solid rgba(21, 101, 192, 0.14);
    border-radius: 8px;
    background: #fff;
    margin: 0 0 14px;
    padding: 10px 12px;
  }

  .flight-time-table td {
    border: 0;
    padding: 8px 0;
  }

  .flight-time-table td::before {
    display: block;
    color: var(--blue-dark);
    font-weight: 700;
    font-size: 0.82rem;
  }

  .flight-time-table td:nth-child(1)::before { content: "日付"; }
  .flight-time-table td:nth-child(2)::before { content: "イベント名"; }
  .flight-time-table td:nth-child(3)::before { content: "飛行時間"; }
  .flight-time-table td:nth-child(4)::before { content: "予備時間"; }
  .flight-time-table td:nth-child(5)::before { content: "予行時間"; }
  .flight-time-table td:nth-child(6)::before { content: "詳細"; }
  .flight-time-table td:nth-child(7)::before { content: "公式確認"; }
}


/* schedule-longtail-strengthening */
.schedule-longtail-hub,
.pal-white-bg {
  margin: 28px auto;
  max-width: 1120px;
  padding: 24px;
  background: #fff;
  border: 1px solid rgba(31, 94, 154, .14);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(21, 55, 96, .08);
}
.schedule-longtail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
}
.schedule-longtail-table table {
  width: 100%;
}
.schedule-longtail-page .content-section {
  max-width: 1120px;
}
.schedule-longtail-page .notice-section {
  font-size: .94rem;
}
.event-schedule-links .info-card span,
.schedule-longtail-grid .info-card span {
  font-weight: 700;
}
@media (max-width: 640px) {
  .schedule-longtail-hub,
  .pal-white-bg {
    margin: 18px 12px;
    padding: 16px;
    border-radius: 12px;
  }
  .schedule-longtail-table table,
  .schedule-longtail-table thead,
  .schedule-longtail-table tbody,
  .schedule-longtail-table tr,
  .schedule-longtail-table th,
  .schedule-longtail-table td {
    display: block;
  }
  .schedule-longtail-table thead {
    display: none;
  }
  .schedule-longtail-table tr {
    margin: 0 0 12px;
    padding: 12px;
    border: 1px solid rgba(31, 94, 154, .14);
    border-radius: 12px;
    background: #fff;
  }
  .schedule-longtail-table td {
    padding: 6px 0;
  }
  .schedule-longtail-table td::before {
    content: attr(data-label);
    display: block;
    font-size: .78rem;
    color: #456;
    font-weight: 700;
  }
}


/* furano-weekend-direct-20260525 */
.weekend-furano-direct,
.weekend-furano-related,
.archive-kamifurano-handoff {
  margin: clamp(20px, 4vw, 44px) auto;
  padding: clamp(18px, 3vw, 30px);
  width: min(1120px, calc(100% - 32px));
  background: #fff;
  border: 1px solid rgba(24, 78, 119, 0.12);
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(25, 74, 108, 0.08);
}

.weekend-furano-direct {
  border-top: 5px solid #168aad;
}

.weekend-link-grid,
.weekend-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.weekend-action-grid .official-link-sub {
  display: flex;
  align-items: center;
  min-height: 44px;
  line-height: 1.35;
}

.weekend-furano-direct .small-note,
.archive-kamifurano-handoff .small-note {
  margin-top: 8px;
}

@media (max-width: 520px) {
  .weekend-furano-direct,
  .weekend-furano-related,
  .archive-kamifurano-handoff {
    width: min(100% - 20px, 1120px);
    padding: 16px;
    border-radius: 12px;
  }

  .weekend-link-grid,
  .weekend-action-grid {
    grid-template-columns: 1fr;
  }
}
/* end-furano-weekend-direct-20260525 */


/* furano-rich-homepage-20260525 */
.furano-rich-visual,
.furano-rich-summary {
  width: min(1120px, calc(100% - 32px));
  margin: clamp(20px, 4vw, 42px) auto;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid rgba(20, 88, 132, 0.14);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(238, 249, 255, 0.96));
  box-shadow: 0 18px 42px rgba(25, 76, 116, 0.10);
}

.furano-rich-visual {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
  gap: clamp(16px, 3vw, 28px);
  align-items: stretch;
}

.furano-rich-visual__photo {
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(20, 88, 132, 0.12);
  background: #fff;
}

.furano-rich-visual__photo img {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  display: block;
}

.furano-rich-visual__photo figcaption {
  padding: 10px 12px 12px;
  color: #456;
  font-size: 0.86rem;
  line-height: 1.55;
}

.furano-rich-visual__photo figcaption span {
  color: #667;
  font-size: 0.8rem;
}

.furano-rich-visual__pal,
.furano-mini-pal {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 16px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(20, 88, 132, 0.12);
}

.furano-rich-visual__pal img,
.furano-mini-pal img {
  width: 92px;
  max-width: 100%;
  height: auto;
  display: block;
}

.furano-rich-visual__pal h3,
.furano-mini-pal p {
  margin-top: 0;
}

.furano-rich-visual__pal ul {
  margin: 8px 0 0;
  padding-left: 1.1em;
}

.furano-quick-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin: 18px 0 2px;
}

.furano-quick-strip a {
  display: grid;
  gap: 4px;
  min-height: 76px;
  padding: 13px 14px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(20, 88, 132, 0.14);
  text-decoration: none;
  color: inherit;
}

.furano-quick-strip span,
.furano-rich-card-grid span {
  color: #0b6fa4;
  font-size: 0.8rem;
  font-weight: 700;
}

.furano-quick-strip strong {
  color: #16324f;
  line-height: 1.35;
}

.furano-rich-summary {
  display: grid;
  gap: 18px;
}

.furano-rich-summary__head {
  max-width: 820px;
}

.furano-rich-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 13px;
}

.furano-rich-card-grid article {
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(20, 88, 132, 0.13);
  border-radius: 14px;
  background: #fff;
}

.furano-rich-card-grid strong {
  display: block;
  margin: 5px 0 8px;
  color: #17324a;
  line-height: 1.45;
}

.furano-rich-card-grid p {
  margin: 0;
  color: #425466;
}

.furano-rich-summary .furano-rich-visual__pal {
  max-width: 720px;
}

@media (max-width: 720px) {
  .furano-rich-visual,
  .furano-rich-summary {
    width: min(100% - 20px, 1120px);
    padding: 16px;
    border-radius: 14px;
  }

  .furano-rich-visual {
    grid-template-columns: 1fr;
  }

  .furano-rich-visual__pal,
  .furano-mini-pal {
    grid-template-columns: 72px minmax(0, 1fr);
    padding: 13px;
  }

  .furano-rich-visual__pal img,
  .furano-mini-pal img {
    width: 72px;
  }

  .furano-quick-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .furano-quick-strip {
    grid-template-columns: 1fr;
  }
}
/* end-furano-rich-homepage-20260525 */


/* furano-special-lp-phase2-20260525 */
.furano-special-hero,
.furano-page-hero-plus,
.furano-now-cards,
.furano-next-cards {
  width: min(1160px, calc(100% - 32px));
  margin: clamp(20px, 4vw, 44px) auto;
  border-radius: 20px;
}

.furano-special-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  gap: clamp(18px, 3vw, 34px);
  align-items: center;
  padding: clamp(18px, 3vw, 34px);
  background: linear-gradient(135deg, #ffffff 0%, #eaf8ff 54%, #ffffff 100%);
  border: 1px solid rgba(18, 89, 139, 0.14);
  box-shadow: 0 22px 50px rgba(18, 74, 116, 0.13);
  overflow: hidden;
}

.furano-special-hero__media {
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.12);
}

.furano-special-hero__media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}

.furano-special-hero__media p {
  margin: 0;
  padding: 10px 12px;
  color: #5d6f7d;
  font-size: 0.8rem;
}

.furano-special-hero__copy h2,
.furano-page-hero-plus h2,
.furano-now-cards h2,
.furano-next-cards h2 {
  letter-spacing: 0;
}

.furano-special-hero__actions,
.furano-page-hero-plus__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.furano-special-hero__actions a,
.furano-page-hero-plus__actions a,
.furano-next-grid a,
.furano-now-grid a {
  text-decoration: none;
}

.furano-special-hero__actions a,
.furano-page-hero-plus__actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 15px;
  border-radius: 999px;
  color: #fff;
  background: #0969a2;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(9, 105, 162, 0.18);
}

.furano-special-hero__actions a:nth-child(2n),
.furano-page-hero-plus__actions a:nth-child(2n) {
  color: #0f4770;
  background: #fff;
  border: 1px solid rgba(9, 105, 162, 0.22);
}

.furano-special-pal {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-top: 18px;
  padding: 13px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(9, 105, 162, 0.14);
}

.furano-special-pal img {
  width: 82px;
  max-width: 100%;
  height: auto;
}

.furano-special-pal p {
  margin: 0;
}

.furano-now-cards,
.furano-next-cards {
  padding: clamp(18px, 3vw, 30px);
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.12);
  box-shadow: 0 16px 36px rgba(18, 74, 116, 0.09);
}

.furano-now-grid,
.furano-next-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 13px;
  margin-top: 16px;
}

.furano-now-grid a,
.furano-next-grid a {
  display: grid;
  gap: 5px;
  min-height: 116px;
  padding: 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff, #f5fbff);
  border: 1px solid rgba(18, 89, 139, 0.14);
  color: inherit;
}

.furano-now-grid span,
.furano-next-grid span {
  color: #0a71a8;
  font-size: 0.8rem;
  font-weight: 800;
}

.furano-now-grid strong,
.furano-next-grid strong {
  color: #17324a;
  line-height: 1.35;
}

.furano-now-grid p,
.furano-next-grid p {
  margin: 0;
  color: #506273;
}

.furano-page-hero-plus {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(260px, 1fr);
  gap: clamp(16px, 3vw, 26px);
  align-items: center;
  padding: clamp(18px, 3vw, 30px);
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(239,249,255,0.96));
  border: 1px solid rgba(18, 89, 139, 0.12);
  box-shadow: 0 16px 38px rgba(18, 74, 116, 0.10);
}

.furano-page-hero-plus figure {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(18, 89, 139, 0.12);
  background: #fff;
}

.furano-page-hero-plus figure img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.furano-page-hero-plus figcaption {
  padding: 9px 11px;
  color: #5d6f7d;
  font-size: 0.78rem;
}

.furano-page-hero-plus aside {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 13px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.12);
}

.furano-page-hero-plus aside img {
  width: 70px;
  height: auto;
  display: block;
}

.furano-page-hero-plus aside p {
  margin: 0;
}

@media (max-width: 760px) {
  .furano-special-hero,
  .furano-page-hero-plus,
  .furano-now-cards,
  .furano-next-cards {
    width: min(100% - 20px, 1160px);
    border-radius: 16px;
  }

  .furano-special-hero,
  .furano-page-hero-plus {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .furano-special-hero__media img,
  .furano-page-hero-plus figure img {
    aspect-ratio: 16 / 9;
  }

  .furano-special-hero__actions a,
  .furano-page-hero-plus__actions a {
    flex: 1 1 150px;
  }

  .furano-special-pal {
    grid-template-columns: 66px minmax(0, 1fr);
  }

  .furano-special-pal img {
    width: 66px;
  }
}

@media (max-width: 430px) {
  .furano-now-grid,
  .furano-next-grid {
    grid-template-columns: 1fr;
  }
}
/* end-furano-special-lp-phase2-20260525 */


/* next-two-months-blueimpulse-20260525 */
.next2month-hub,
.next2month-stream-plan,
.next2month-archive-plan,
.event-rich-lead,
.event-rich-checks {
  width: min(1160px, calc(100% - 32px));
  margin: clamp(22px, 4vw, 44px) auto;
  padding: clamp(18px, 3vw, 30px);
  border-radius: 20px;
  border: 1px solid rgba(18, 89, 139, 0.13);
  background: linear-gradient(135deg, #fff, #eef9ff);
  box-shadow: 0 18px 42px rgba(20, 74, 116, 0.10);
}

.next2month-hub__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.72fr);
  gap: 18px;
  align-items: center;
}

.next2month-pal {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.13);
}

.next2month-pal img {
  width: 86px;
  height: auto;
}

.next2month-pal p {
  margin: 0;
}

.next2month-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.next2month-card {
  min-width: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.14);
}

.next2month-card figure {
  margin: 0;
}

.next2month-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: cover;
}

.next2month-card figcaption {
  padding: 8px 12px;
  color: #5d6f7d;
  font-size: 0.76rem;
}

.next2month-card__body {
  padding: 16px;
}

.next2month-card__status {
  display: inline-flex;
  margin: 0 0 8px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #e8f5ff;
  color: #08618f;
  font-weight: 800;
  font-size: 0.78rem;
}

.next2month-card h3 {
  margin: 0 0 12px;
  line-height: 1.4;
}

.next2month-card dl {
  display: grid;
  grid-template-columns: 5.5em minmax(0, 1fr);
  gap: 7px 10px;
  margin: 0;
  font-size: 0.92rem;
}

.next2month-card dt {
  color: #0b6392;
  font-weight: 800;
}

.next2month-card dd {
  margin: 0;
  color: #43586b;
}

.next2month-card__actions,
.next2month-hub__links,
.event-rich-lead__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 14px;
}

.next2month-card__actions a,
.next2month-hub__links a,
.event-rich-lead__actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 9px 12px;
  border-radius: 999px;
  background: #0969a2;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.next2month-card__actions a:nth-child(n+2),
.event-rich-lead__actions a:nth-child(n+2),
.next2month-hub__links a:nth-child(n+2) {
  color: #0f4770;
  background: #fff;
  border: 1px solid rgba(9, 105, 162, 0.20);
}

.next2month-card-grid--compact {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.event-rich-lead {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(260px, 1fr);
  gap: 18px;
  align-items: center;
}

.event-rich-lead figure {
  margin: 0;
  overflow: hidden;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.13);
}

.event-rich-lead figure img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.event-rich-lead figcaption {
  padding: 9px 11px;
  color: #5d6f7d;
  font-size: 0.78rem;
}

.event-rich-lead aside {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.13);
}

.event-rich-lead aside img {
  width: 72px;
  height: auto;
}

.event-rich-lead aside p {
  margin: 0;
}

.event-rich-check-grid,
.stream-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 13px;
  margin-top: 16px;
}

.event-rich-check-grid article,
.stream-plan-grid article {
  padding: 16px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.13);
}

.event-rich-check-grid span,
.stream-plan-grid span {
  color: #0a71a8;
  font-size: 0.8rem;
  font-weight: 800;
}

.event-rich-check-grid strong,
.stream-plan-grid strong {
  display: block;
  margin: 5px 0 8px;
}

@media (max-width: 760px) {
  .next2month-hub,
  .next2month-stream-plan,
  .next2month-archive-plan,
  .event-rich-lead,
  .event-rich-checks {
    width: min(100% - 20px, 1160px);
    padding: 16px;
    border-radius: 16px;
  }

  .next2month-hub__head,
  .event-rich-lead {
    grid-template-columns: 1fr;
  }

  .next2month-pal {
    grid-template-columns: 68px minmax(0, 1fr);
  }

  .next2month-pal img {
    width: 68px;
  }

  .next2month-card dl {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .next2month-card__actions a,
  .next2month-hub__links a,
  .event-rich-lead__actions a {
    flex: 1 1 150px;
  }
}
/* end-next-two-months-blueimpulse-20260525 */


/* official-sources-visual-enrich-20260525 */
.official-source-board,
.official-status-diagram,
.focus-event-pair {
  width: min(1160px, calc(100% - 32px));
  margin: clamp(22px, 4vw, 44px) auto;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid rgba(18, 89, 139, 0.13);
  border-radius: 20px;
  background: linear-gradient(135deg, #ffffff, #eef9ff);
  box-shadow: 0 18px 42px rgba(20, 74, 116, 0.10);
}

.official-source-grid,
.official-status-flow,
.focus-event-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.official-source-grid a,
.official-status-flow article,
.focus-event-grid article {
  min-width: 0;
  padding: 16px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.14);
  text-decoration: none;
  color: inherit;
}

.official-source-grid span,
.official-status-flow span,
.focus-event-grid span {
  color: #0a71a8;
  font-size: 0.8rem;
  font-weight: 800;
}

.official-source-grid strong,
.official-status-flow strong {
  display: block;
  margin: 5px 0 8px;
  color: #17324a;
}

.official-source-grid p,
.official-status-flow p,
.focus-event-grid p {
  margin: 0;
  color: #506273;
}

.official-source-pal {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-top: 16px;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(18, 89, 139, 0.13);
}

.official-source-pal img {
  width: 78px;
  height: auto;
}

.official-source-pal p {
  margin: 0;
}

.focus-event-grid article {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 0;
  overflow: hidden;
}

.focus-event-grid img {
  width: 100%;
  height: 100%;
  min-height: 210px;
  object-fit: cover;
  display: block;
}

.focus-event-grid article > div {
  padding: 18px;
}

.focus-event-grid h3 {
  margin: 5px 0 8px;
}

.focus-event-grid a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  margin-top: 13px;
  padding: 9px 13px;
  border-radius: 999px;
  background: #0969a2;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

@media (max-width: 760px) {
  .official-source-board,
  .official-status-diagram,
  .focus-event-pair {
    width: min(100% - 20px, 1160px);
    padding: 16px;
    border-radius: 16px;
  }

  .official-source-grid,
  .official-status-flow,
  .focus-event-grid {
    grid-template-columns: 1fr;
  }

  .official-source-pal {
    grid-template-columns: 64px minmax(0, 1fr);
  }

  .official-source-pal img {
    width: 64px;
  }

  .focus-event-grid article {
    grid-template-columns: 1fr;
  }

  .focus-event-grid img {
    min-height: 180px;
    aspect-ratio: 16 / 9;
  }
}
/* end-official-sources-visual-enrich-20260525 */


/* real-info-panels-20260525 */
.real-info-panel {
  width: min(1120px, calc(100% - 32px));
  margin: 28px auto;
  padding: 24px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(232,247,255,.96));
  border: 1px solid rgba(28, 118, 177, .18);
  box-shadow: 0 16px 40px rgba(15, 82, 126, .12);
}
.real-info-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.real-info-grid--primary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.real-info-grid article {
  min-height: 150px;
  padding: 18px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(25, 111, 166, .16);
}
.real-info-grid span {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #e8f7ff;
  color: #075985;
  font-size: .82rem;
  font-weight: 700;
}
.real-info-grid strong {
  display: block;
  color: #123047;
  font-size: clamp(1.05rem, 1.6vw, 1.32rem);
  line-height: 1.35;
}
.real-info-grid p,
.real-info-note p,
.real-info-note li,
.pal-mini-card p {
  color: #315066;
  line-height: 1.75;
}
.real-info-split {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, .8fr);
  gap: 18px;
  margin-top: 18px;
  align-items: stretch;
}
.real-info-note,
.pal-mini-card {
  padding: 20px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(25, 111, 166, .16);
}
.real-info-note h3 {
  margin-top: 0;
  color: #123047;
}
.pal-mini-card {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 14px;
  align-items: center;
}
.pal-mini-card img {
  width: 96px;
  max-width: 100%;
  height: auto;
  border-radius: 18px;
  background: #fff;
}
.real-info-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.real-info-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 999px;
  background: #0f6fb5;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.real-info-source {
  margin: 16px 0 0;
  color: #526b7d;
  font-size: .92rem;
}
@media (max-width: 860px) {
  .real-info-grid,
  .real-info-grid--primary,
  .real-info-split {
    grid-template-columns: 1fr;
  }
  .real-info-panel {
    width: min(100% - 20px, 1120px);
    padding: 18px;
    border-radius: 16px;
  }
  .real-info-grid article {
    min-height: auto;
  }
  .pal-mini-card {
    grid-template-columns: 76px 1fr;
  }
  .pal-mini-card img {
    width: 76px;
  }
}
/* end-real-info-panels-20260525 */


/* new-chitose-useful-info-20260525 */
.airport-useful-panel {
  width: min(1120px, calc(100% - 32px));
  margin: 28px auto;
  padding: 24px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(229,246,255,.96));
  border: 1px solid rgba(14, 116, 144, .18);
  box-shadow: 0 18px 44px rgba(13, 79, 113, .13);
}
.airport-deck-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.airport-deck-grid article,
.airport-check-flow > div,
.airport-relation-box,
.airport-manners {
  padding: 18px;
  border-radius: 17px;
  background: #fff;
  border: 1px solid rgba(14, 116, 144, .16);
}
.airport-deck-card--main {
  grid-column: span 2;
  background: linear-gradient(135deg, #ffffff, #f0f9ff) !important;
}
.airport-deck-grid span {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-size: .82rem;
  font-weight: 800;
}
.airport-deck-grid strong {
  display: block;
  color: #123047;
  font-size: clamp(1.08rem, 1.7vw, 1.35rem);
  line-height: 1.35;
}
.airport-deck-grid p,
.airport-check-flow li,
.airport-relation-box p,
.airport-manners p {
  color: #315066;
  line-height: 1.78;
}
.airport-deck-card a,
.airport-official-link {
  display: inline-flex;
  margin-top: 10px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 9px 14px;
  border-radius: 999px;
  background: #0f6fb5;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}
.airport-check-flow {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .85fr);
  gap: 16px;
  margin-top: 16px;
}
.airport-pal-card {
  align-self: stretch;
}
.airport-relation-box,
.airport-manners {
  margin-top: 16px;
}
.airport-manners {
  background: #fff8f1;
  border-color: rgba(217, 119, 6, .22);
}
@media (max-width: 860px) {
  .airport-useful-panel {
    width: min(100% - 20px, 1120px);
    padding: 18px;
    border-radius: 16px;
  }
  .airport-deck-grid,
  .airport-check-flow {
    grid-template-columns: 1fr;
  }
  .airport-deck-card--main {
    grid-column: auto;
  }
}
/* end-new-chitose-useful-info-20260525 */


/* value-first-final-note-20260525 */
.value-first-final-note {
  width: min(1120px, calc(100% - 32px));
  margin: 28px auto 10px;
  padding: 12px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(14,116,144,.14);
  color: #476173;
  font-size: .92rem;
  line-height: 1.7;
}
.value-first-final-note p {
  margin: 0;
}
@media (max-width: 720px) {
  .value-first-final-note {
    width: min(100% - 20px, 1120px);
    font-size: .88rem;
  }
}
/* end-value-first-final-note-20260525 */


/* mobile-image-responsive-20260525 */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
picture,
video,
canvas {
  max-width: 100%;
  height: auto;
}

img,
picture,
figure {
  display: block;
}

figure {
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.main-content,
.section,
.hero,
.schedule-hero,
.new-chitose-hero,
.future-event-hero,
.furano-special-hero,
.furano-page-hero-plus,
.event-rich-lead,
.real-info-panel,
.airport-useful-panel,
.official-reference-photo,
.official-hero-photo,
.official-photo-card,
.next2month-card,
.focus-event-grid article,
.info-card,
.archive-event-card,
.pilot-card,
.news-card,
.pal-guide-box,
.pal-white-bg,
.pal-mini-card,
.airport-pal-card,
.furano-special-pal,
.furano-rich-visual__pal,
.furano-mini-pal {
  max-width: 100%;
  min-width: 0;
}

.site-logo,
.hero-logo,
.chinanago-logo,
.blueimpulse-emblem,
.blueimpulse-emblem--hero {
  max-width: 100%;
  height: auto;
}

.hero img,
.schedule-hero img,
.new-chitose-hero img,
.future-event-hero img,
.furano-special-hero__media img,
.furano-page-hero-plus figure img,
.furano-rich-visual__photo img,
.event-rich-lead figure img,
.official-photo-card img,
.official-reference-photo img,
.official-hero-photo img,
.next2month-card img,
.focus-event-grid img {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

.pal-guide-img,
.pal-guide-img--wide,
.pal-guide-box img,
.pal-white-bg img,
.pal-mini-card img,
.airport-pal-card img,
.furano-special-pal img,
.furano-rich-visual__pal img,
.furano-mini-pal img,
.next2month-pal img,
.official-source-pal img,
.event-rich-lead aside img {
  max-width: min(100%, 260px);
  height: auto;
}

.table-wrap,
.schedule-longtail-table,
.training-table,
.program-table,
.archive-events-table,
.flight-time-table {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
  .hero,
  .schedule-hero,
  .new-chitose-hero,
  .future-event-hero,
  .furano-special-hero,
  .furano-page-hero-plus,
  .event-rich-lead,
  .real-info-split,
  .airport-check-flow,
  .focus-event-grid article {
    grid-template-columns: 1fr !important;
  }

  .card-grid,
  .info-grid,
  .official-photo-grid,
  .next2month-card-grid,
  .focus-event-grid,
  .real-info-grid,
  .real-info-grid--primary,
  .airport-deck-grid,
  .schedule-purpose-grid,
  .schedule-region-grid,
  .schedule-longtail-grid,
  .weekend-link-grid,
  .weekend-action-grid,
  .furano-rich-card-grid,
  .furano-now-grid,
  .furano-next-grid,
  .event-rich-check-grid,
  .stream-plan-grid,
  .official-source-grid,
  .parking-summary-grid,
  .access-check-grid,
  .program-card-grid,
  .airframe-point-grid,
  .archive-event-grid,
  .pilot-grid {
    grid-template-columns: 1fr !important;
  }

  .hero img,
  .schedule-hero img,
  .new-chitose-hero img,
  .future-event-hero img,
  .furano-special-hero__media img,
  .furano-page-hero-plus figure img,
  .event-rich-lead figure img,
  .official-photo-card img,
  .official-reference-photo img,
  .official-hero-photo img,
  .next2month-card img,
  .focus-event-grid img {
    max-height: 240px;
    object-fit: cover;
  }

  .pal-guide-img,
  .pal-guide-img--wide,
  .pal-guide-box img,
  .pal-white-bg img,
  .airport-pal-card img {
    max-width: 190px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 480px) {
  .hero,
  .schedule-hero,
  .new-chitose-hero,
  .future-event-hero,
  .furano-special-hero,
  .furano-page-hero-plus,
  .event-rich-lead,
  .real-info-panel,
  .airport-useful-panel,
  .value-first-final-note,
  .official-reference-photo,
  .official-photo-card,
  .official-hero-photo,
  .next2month-card,
  .info-card,
  .pal-white-bg {
    width: min(100% - 20px, 1120px);
  }

  .site-logo {
    max-width: 180px;
  }

  .hero-logo {
    max-width: 210px;
  }

  .blueimpulse-emblem--hero {
    max-width: 120px;
  }

  .pal-guide-img,
  .pal-guide-img--wide,
  .pal-guide-box img,
  .pal-white-bg img,
  .pal-mini-card img,
  .airport-pal-card img,
  .furano-special-pal img,
  .furano-rich-visual__pal img,
  .furano-mini-pal img,
  .next2month-pal img,
  .official-source-pal img,
  .event-rich-lead aside img {
    max-width: 160px;
  }

  .pal-mini-card,
  .furano-special-pal,
  .furano-rich-visual__pal,
  .furano-mini-pal,
  .next2month-pal,
  .official-source-pal,
  .event-rich-lead aside {
    grid-template-columns: 64px minmax(0, 1fr) !important;
  }

  .pal-mini-card img,
  .furano-special-pal img,
  .furano-rich-visual__pal img,
  .furano-mini-pal img,
  .next2month-pal img,
  .official-source-pal img,
  .event-rich-lead aside img {
    width: 64px;
  }

  .hero img,
  .schedule-hero img,
  .new-chitose-hero img,
  .future-event-hero img,
  .furano-special-hero__media img,
  .furano-page-hero-plus figure img,
  .event-rich-lead figure img,
  .official-photo-card img,
  .official-reference-photo img,
  .official-hero-photo img,
  .next2month-card img,
  .focus-event-grid img {
    max-height: 210px;
  }

  .real-info-actions a,
  .next2month-card__actions a,
  .furano-special-hero__actions a,
  .furano-page-hero-plus__actions a,
  .airport-deck-card a,
  .airport-official-link {
    width: 100%;
  }
}
/* end-mobile-image-responsive-20260525 */

/* top-page-priority-order-20260525 */
.top-current-event,
.top-next-event,
.top-latest-live,
.top-upcoming-events {
  margin: 28px auto;
  max-width: 1120px;
  border: 1px solid rgba(18, 103, 179, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 42px rgba(10, 70, 120, 0.08);
}

.top-current-event {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.75fr);
  gap: 22px;
  align-items: start;
  margin-top: 20px;
  padding: clamp(18px, 3vw, 30px);
  background:
    linear-gradient(135deg, rgba(232, 247, 255, 0.95), rgba(255, 255, 255, 0.98)),
    #fff;
}

.top-current-event__copy h1 {
  margin: 0 0 12px;
  color: var(--blue-dark);
  font-size: clamp(28px, 4.4vw, 52px);
  line-height: 1.16;
}

.top-current-event__copy .lead {
  margin: 0 0 18px;
  color: #283d59;
  font-size: clamp(16px, 1.8vw, 19px);
}

.top-current-event__visual {
  overflow: hidden;
  margin: 0;
  border-radius: 8px;
  background: #eef8ff;
}

.top-current-event__visual img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.top-current-event__visual figcaption,
.top-source-line {
  margin: 0;
  padding: 8px 10px;
  color: var(--muted);
  font-size: 12px;
}

.top-current-event__cards {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.event-time-card,
.top-pal-card,
.top-next-event__summary article,
.top-upcoming-events__grid a {
  border: 1px solid rgba(18, 103, 179, 0.16);
  border-radius: 8px;
  background: #fff;
  padding: 16px;
}

.event-time-card span,
.top-next-event__summary span,
.top-upcoming-events__grid span {
  display: block;
  margin-bottom: 5px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
}

.event-time-card strong,
.top-next-event__summary strong,
.top-upcoming-events__grid strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
}

.event-time-card p,
.top-upcoming-events__grid p,
.top-pal-card p {
  margin: 8px 0 0;
  color: var(--muted);
}

.event-time-card--strong {
  border-color: rgba(243, 179, 61, 0.5);
  background: #fff8e9;
}

.top-pal-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.top-pal-card img {
  width: 92px;
  max-width: 100%;
}

.event-cta-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.event-cta-grid a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  border-radius: 8px;
  padding: 10px 14px;
  background: var(--blue);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.event-cta-grid a:nth-child(n+2) {
  background: #e8f4ff;
  color: var(--blue-dark);
}

.top-next-event,
.top-latest-live,
.top-upcoming-events {
  padding: clamp(18px, 3vw, 28px);
}

.top-next-event__summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.video-thumb-card {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
}

.video-thumb-card figure {
  overflow: hidden;
  margin: 0;
  border-radius: 8px;
  background: #eef8ff;
}

.video-thumb-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: contain;
  padding: 16px;
  background: #fff;
}

.top-upcoming-events__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.top-upcoming-events__grid a {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 768px) {
  .top-current-event,
  .top-next-event,
  .top-latest-live,
  .top-upcoming-events {
    margin: 18px auto;
    padding: 16px;
  }

  .top-current-event,
  .video-thumb-card {
    grid-template-columns: 1fr;
  }

  .top-current-event__copy h1 {
    font-size: 28px;
  }

  .top-current-event__cards,
  .top-next-event__summary,
  .top-upcoming-events__grid {
    grid-template-columns: 1fr;
  }

  .top-pal-card {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .top-pal-card img {
    width: 76px;
  }

  .event-cta-grid a {
    width: 100%;
  }
}
/* end-top-page-priority-order-20260525 */

/* header-schedule-priority-20260525 */
@media (min-width: 861px) {
  .site-header {
    gap: 12px;
    padding: 10px clamp(14px, 2.6vw, 30px);
  }

  .brand {
    flex: 0 0 180px;
    min-width: 180px;
  }

  .site-logo {
    max-width: 180px;
    max-height: 46px;
  }

  .site-nav {
    align-items: center;
    gap: 6px;
  }

  .site-nav a {
    padding: 7px 8px;
    font-size: 13px;
    line-height: 1.15;
    white-space: nowrap;
  }
}

@media (min-width: 1220px) {
  .site-nav {
    flex-wrap: nowrap;
  }
}

@media (max-width: 860px) {
  .site-nav {
    gap: 7px;
  }
}
/* end-header-schedule-priority-20260525 */

/* pal-transparent-png-unify-20260525 */
img[src*="/assets/img/pal/"] {
  display: block;
  width: auto;
  max-width: min(100%, 280px);
  height: auto;
  object-fit: contain;
  background: transparent;
}

.top-pal-card img,
.pal-mini-card img {
  max-width: 100%;
}

.pal-guide-box,
.top-pal-card,
.pal-mini-card,
.airport-pal-card {
  background-color: #fff;
}

@media (max-width: 480px) {
  img[src*="/assets/img/pal/"] {
    max-width: min(100%, 190px);
    margin-inline: auto;
  }

  .top-pal-card img {
    max-width: 76px;
  }
}
/* end-pal-transparent-png-unify-20260525 */

/* kamifurano-official-pdf-info-20260525 start */
.kamifurano-official-board {
  margin: clamp(24px, 4vw, 48px) auto;
  padding: clamp(18px, 3vw, 34px);
  max-width: 1120px;
  border-radius: 18px;
  background: linear-gradient(135deg, #f6fbff 0%, #ffffff 58%, #eef8ff 100%);
  border: 1px solid rgba(34, 123, 186, .18);
  box-shadow: 0 18px 42px rgba(26, 87, 132, .10);
}
.kamifurano-official-board h2 { margin-top: 0; }
.kamifurano-official-board .lead { max-width: 860px; }
.official-fact-grid,
.official-card-grid,
.tourism-official-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
  margin: 18px 0;
}
.official-fact-grid article,
.official-card-grid article,
.tourism-official-grid article {
  padding: 16px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(30, 120, 180, .16);
}
.official-fact-grid span,
.official-card-grid span,
.tourism-official-grid span {
  display: block;
  color: #246b96;
  font-size: .82rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.official-fact-grid strong,
.official-card-grid strong,
.tourism-official-grid strong {
  display: block;
  color: #123a56;
  font-size: 1.08rem;
  line-height: 1.35;
}
.official-fact-grid p,
.official-card-grid p,
.tourism-official-grid p { margin: 8px 0 0; }
.official-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 18px 0;
}
.official-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(30, 120, 180, .13);
}
.official-table th,
.official-table td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid rgba(30, 120, 180, .12);
  vertical-align: top;
}
.official-table th {
  background: #eaf6ff;
  color: #123a56;
  white-space: nowrap;
}
.official-total-note {
  padding: 13px 15px;
  border-radius: 12px;
  background: #e8f7f0;
  color: #174a35;
  font-weight: 700;
}
.official-source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.official-source-links a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 10px 13px;
  border-radius: 999px;
  background: #fff;
  color: #175f91;
  border: 1px solid rgba(23, 95, 145, .22);
  text-decoration: none;
  font-weight: 700;
}
.official-source-note {
  margin-top: 12px;
  color: #5c6d78;
  font-size: .92rem;
}
.official-pal-row {
  display: grid;
  grid-template-columns: minmax(90px, 150px) 1fr;
  gap: 18px;
  align-items: center;
  margin-top: 18px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.78);
}
.official-pal-row img { max-width: 150px; margin: 0 auto; }
@media (max-width: 520px) {
  .kamifurano-official-board { border-radius: 14px; padding: 16px; }
  .official-fact-grid,
  .official-card-grid,
  .tourism-official-grid { grid-template-columns: 1fr; }
  .official-table { min-width: 560px; }
  .official-source-links a { width: 100%; justify-content: center; border-radius: 12px; }
  .official-pal-row { grid-template-columns: 1fr; text-align: center; }
  .official-pal-row img { max-width: 120px; }
}
/* kamifurano-official-pdf-info-20260525 end */

/* kamifurano-rehearsal-x-info-20260525 start */
.rehearsal-x-board {
  max-width: 1120px;
  margin: clamp(22px, 4vw, 46px) auto;
  padding: clamp(18px, 3vw, 32px);
  border-radius: 18px;
  background: linear-gradient(135deg, #fff9ec 0%, #ffffff 55%, #edf8ff 100%);
  border: 1px solid rgba(221, 151, 43, .22);
  box-shadow: 0 18px 44px rgba(132, 86, 26, .10);
}
.rehearsal-x-board h2 { margin-top: 0; }
.rehearsal-x-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
  margin: 18px 0;
}
.rehearsal-x-grid article {
  background: #fff;
  border: 1px solid rgba(221, 151, 43, .20);
  border-radius: 14px;
  padding: 16px;
}
.rehearsal-x-grid span {
  display: block;
  color: #94600e;
  font-weight: 800;
  font-size: .82rem;
  margin-bottom: 6px;
}
.rehearsal-x-grid strong {
  display: block;
  color: #26394a;
  font-size: 1.08rem;
  line-height: 1.35;
}
.rehearsal-x-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.rehearsal-x-actions a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  background: #176b9b;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
}
.rehearsal-x-actions a:nth-child(2n) { background: #f08f2f; }
.rehearsal-x-pal {
  display: grid;
  grid-template-columns: minmax(80px, 132px) 1fr;
  gap: 16px;
  align-items: center;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.78);
  margin-top: 16px;
}
.rehearsal-x-pal img { max-width: 132px; margin-inline: auto; }
.rehearsal-x-source {
  margin-top: 12px;
  color: #5f6f78;
  font-size: .92rem;
}
@media (max-width: 520px) {
  .rehearsal-x-board { border-radius: 14px; padding: 16px; }
  .rehearsal-x-grid { grid-template-columns: 1fr; }
  .rehearsal-x-actions a { width: 100%; border-radius: 12px; }
  .rehearsal-x-pal { grid-template-columns: 1fr; text-align: center; }
  .rehearsal-x-pal img { max-width: 110px; }
}
/* kamifurano-rehearsal-x-info-20260525 end */

/* kamifurano-garrison-official-info-20260525 start */
.garrison-official-board {
  max-width: 1120px;
  margin: clamp(22px, 4vw, 46px) auto;
  padding: clamp(18px, 3vw, 32px);
  border-radius: 18px;
  background: linear-gradient(135deg, #f2f9ff 0%, #fff 54%, #f5fbf7 100%);
  border: 1px solid rgba(37, 117, 163, .20);
  box-shadow: 0 18px 44px rgba(27, 91, 128, .10);
}
.garrison-official-board h2 { margin-top: 0; }
.garrison-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
  margin: 18px 0;
}
.garrison-grid article {
  background: #fff;
  border: 1px solid rgba(37, 117, 163, .16);
  border-radius: 14px;
  padding: 16px;
}
.garrison-grid span {
  display: block;
  color: #1f6f9b;
  font-weight: 800;
  font-size: .82rem;
  margin-bottom: 6px;
}
.garrison-grid strong {
  display: block;
  color: #173c55;
  font-size: 1.08rem;
  line-height: 1.35;
}
.garrison-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 18px 0;
}
.garrison-flow div {
  padding: 14px;
  border-radius: 14px;
  background: #eaf7ff;
  color: #173c55;
  font-weight: 800;
  text-align: center;
}
.garrison-source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.garrison-source-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  background: #fff;
  border: 1px solid rgba(31, 111, 155, .24);
  color: #1f6f9b;
}
.garrison-pal {
  display: grid;
  grid-template-columns: minmax(82px, 132px) 1fr;
  gap: 16px;
  align-items: center;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.80);
  margin-top: 16px;
}
.garrison-pal img { max-width: 132px; margin-inline: auto; }
.garrison-source-note {
  color: #60707b;
  font-size: .92rem;
  margin-top: 12px;
}
@media (max-width: 560px) {
  .garrison-official-board { border-radius: 14px; padding: 16px; }
  .garrison-grid, .garrison-flow { grid-template-columns: 1fr; }
  .garrison-source-links a { width: 100%; border-radius: 12px; }
  .garrison-pal { grid-template-columns: 1fr; text-align: center; }
  .garrison-pal img { max-width: 110px; }
}
/* kamifurano-garrison-official-info-20260525 end */

/* chitose-airport100-flyover-20260525 */
.chitose-flyover-board {
  background: linear-gradient(135deg, #f7fcff 0%, #ffffff 58%, #fff8e8 100%);
  border-color: #c9e2f3;
}
.chitose-flyover-board .official-card-grid article {
  background: #ffffff;
}
.chitose-flyover-board .official-card-grid strong {
  color: #0a5f93;
}
.chitose-flyover-board--top {
  margin-top: 24px;
}
.chitose-flyover-media {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
  margin: 18px 0 20px;
}
.chitose-official-photo,
.chitose-important-map,
.chitose-simple-map {
  margin: 0;
  border: 1px solid #d5e8f4;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 10px 22px rgba(21, 91, 140, .08);
}
.chitose-important-map {
  border-color: #e85050;
  box-shadow: 0 12px 28px rgba(180, 36, 36, .12);
}
.chitose-official-photo img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
.chitose-important-map img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
.chitose-official-photo figcaption {
  padding: 9px 12px;
  color: #51606b;
  font-size: .85rem;
  line-height: 1.5;
}
.chitose-important-map figcaption {
  padding: 10px 12px;
  color: #7b1f1f;
  background: #fff6f2;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.55;
}
.chitose-simple-map {
  grid-column: 1 / -1;
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 18px;
  background: linear-gradient(135deg, #f1f9ff 0%, #ffffff 58%, #fff6df 100%);
}
.chitose-map-label {
  margin: 0;
  color: #0a5f93;
  font-size: .9rem;
  font-weight: 800;
}
.chitose-map-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}
.chitose-map-line span {
  display: grid;
  min-height: 76px;
  place-items: center;
  padding: 12px;
  border: 2px solid #78b9df;
  border-radius: 999px;
  background: #fff;
  color: #114b70;
  font-weight: 800;
  text-align: center;
  line-height: 1.45;
}
.chitose-map-line b {
  position: relative;
  min-width: 76px;
  color: #0a5f93;
  font-size: .86rem;
  text-align: center;
}
.chitose-map-line b::before,
.chitose-map-line b::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 18px;
  height: 2px;
  background: #0a5f93;
}
.chitose-map-line b::before {
  left: -14px;
}
.chitose-map-line b::after {
  right: -14px;
}
.chitose-simple-map p:last-child {
  margin: 0;
  color: #51606b;
  line-height: 1.75;
}
@media (max-width: 860px) {
  .chitose-flyover-media {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .chitose-flyover-media {
    gap: 12px;
  }
  .chitose-simple-map {
    padding: 14px;
  }
  .chitose-map-line {
    grid-template-columns: 1fr;
  }
  .chitose-map-line b {
    min-width: 0;
    padding: 4px 0;
  }
  .chitose-map-line b::before,
  .chitose-map-line b::after {
    display: none;
  }
  .chitose-map-line span {
    min-height: 58px;
  }
}
/* /chitose-airport100-flyover-20260525 */

/* main-pal-blueimpulse-jet-20260525 */
.main-pal-jet {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 14px 24px rgba(14, 84, 143, .18));
}
.main-pal-jet--nearest {
  max-width: 360px;
  margin: 0 auto 14px;
}
.main-pal-jet--hero {
  max-width: 420px;
  margin: 0 auto 12px;
}
.main-pal-jet--feature {
  max-width: 620px;
  margin: 0 auto;
}
.top-current-event__visual--main-pal {
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: 320px;
  padding: 18px;
  background: linear-gradient(135deg, #f4fbff 0%, #ffffff 64%, #eaf6ff 100%);
  border: 1px solid #d5e8f4;
}
.top-current-event__visual--main-pal img {
  width: min(100%, 620px);
}
.emblem-accent .main-pal-jet--hero {
  width: min(100%, 420px);
}
.furano-page-hero-plus figure .main-pal-jet--feature {
  width: min(100%, 560px);
}
@media (max-width: 760px) {
  .main-pal-jet--nearest,
  .main-pal-jet--hero {
    max-width: 280px;
  }
  .main-pal-jet--feature {
    max-width: 340px;
  }
  .top-current-event__visual--main-pal {
    min-height: auto;
    padding: 14px;
  }
}
@media (max-width: 420px) {
  .main-pal-jet--nearest,
  .main-pal-jet--hero {
    max-width: 240px;
  }
  .main-pal-jet--feature {
    max-width: 300px;
  }
}
/* /main-pal-blueimpulse-jet-20260525 */


/* kamifurano-garrison-71st-page-20260525 start */
.garrison-71st-hero,
.garrison-71st-link-panel {
  max-width: 1120px;
  margin: clamp(22px, 4vw, 46px) auto;
  padding: clamp(18px, 3vw, 34px);
  border-radius: 18px;
  border: 1px solid rgba(35, 114, 157, .18);
  background: linear-gradient(135deg, #edf8ff 0%, #ffffff 58%, #f6fbf1 100%);
  box-shadow: 0 18px 44px rgba(27, 91, 128, .10);
}
.garrison-71st-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: clamp(18px, 4vw, 34px);
  align-items: center;
}
.garrison-71st-hero h1 { margin-top: 0; }
.garrison-71st-hero__visual {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(35, 114, 157, .16);
}
.garrison-71st-hero__visual img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.garrison-71st-hero__visual figcaption {
  padding: 10px 12px;
  color: #627482;
  font-size: .86rem;
}
.garrison-71st-link-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: 18px;
  align-items: center;
}
.garrison-71st-link-panel h2 { margin-top: 0; }
@media (max-width: 760px) {
  .garrison-71st-hero,
  .garrison-71st-link-panel {
    grid-template-columns: 1fr;
    border-radius: 14px;
    padding: 16px;
  }
  .garrison-71st-hero__visual img { max-height: 260px; }
}
/* kamifurano-garrison-71st-page-20260525 end */


/* kamifurano-reference-official-gap-20260525 start */
.reference-gap-board {
  max-width: 1120px;
  margin: clamp(22px, 4vw, 44px) auto;
  padding: clamp(18px, 3vw, 32px);
  border-radius: 18px;
  border: 1px solid rgba(35, 114, 157, .18);
  background: linear-gradient(135deg, #f5fbff 0%, #ffffff 58%, #f7fbf3 100%);
  box-shadow: 0 16px 42px rgba(25, 91, 130, .09);
}
.reference-gap-board--top {
  margin-top: 18px;
}
.reference-gap-board h2 {
  margin: 4px 0 10px;
}
.reference-gap-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.reference-gap-grid article {
  padding: 16px;
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(35, 114, 157, .14);
}
.reference-gap-grid span {
  display: inline-flex;
  margin-bottom: 8px;
  color: #1f6f9b;
  font-weight: 800;
  font-size: .82rem;
}
.reference-gap-grid strong {
  display: block;
  color: #173c55;
  font-size: 1.06rem;
  line-height: 1.35;
  margin-bottom: 8px;
}
.reference-gap-grid p {
  margin: 0;
  color: #405260;
}
.reference-gap-grid--parking article {
  background: #fffdf5;
}
.reference-gap-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.reference-gap-flow div {
  position: relative;
  padding: 14px;
  border-radius: 14px;
  background: #e9f7ff;
  color: #173c55;
  font-weight: 800;
  text-align: center;
}
.reference-gap-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.reference-gap-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  background: #1f6f9b;
  color: #fff;
}
.reference-gap-source {
  margin-top: 12px;
  color: #60707b;
  font-size: .92rem;
}
@media (max-width: 860px) {
  .reference-gap-grid,
  .reference-gap-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .reference-gap-board {
    border-radius: 14px;
    padding: 16px;
  }
  .reference-gap-grid,
  .reference-gap-flow {
    grid-template-columns: 1fr;
  }
  .reference-gap-actions a {
    width: 100%;
    border-radius: 12px;
  }
}
/* kamifurano-reference-official-gap-20260525 end */


/* kamifurano-view-spots-official-20260525 start */
.view-spots-board {
  max-width: 1120px;
  margin: clamp(22px, 4vw, 44px) auto;
  padding: clamp(18px, 3vw, 32px);
  border-radius: 18px;
  border: 1px solid rgba(35, 114, 157, .18);
  background: linear-gradient(135deg, #f4fbff 0%, #fff 54%, #f6fbf0 100%);
  box-shadow: 0 16px 42px rgba(25, 91, 130, .09);
}
.view-spots-board--top,
.view-spots-board--schedule {
  margin-top: 18px;
}
.view-spots-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.view-spots-grid--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.view-spots-grid article {
  padding: 16px;
  border-radius: 14px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(35, 114, 157, .14);
}
.view-spots-grid span {
  display: inline-flex;
  margin-bottom: 8px;
  color: #1f6f9b;
  font-weight: 800;
  font-size: .82rem;
}
.view-spots-grid strong {
  display: block;
  color: #173c55;
  font-size: 1.06rem;
  line-height: 1.35;
  margin-bottom: 8px;
}
.view-spots-grid p {
  margin: 0;
  color: #405260;
}
.view-spots-pal {
  display: grid;
  grid-template-columns: minmax(82px, 132px) 1fr;
  gap: 16px;
  align-items: center;
  margin-top: 18px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.82);
}
.view-spots-pal img {
  max-width: 132px;
  margin-inline: auto;
}
.view-spots-links,
.view-spots-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.view-spots-links a,
.view-spots-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
}
.view-spots-links a {
  background: #fff;
  border: 1px solid rgba(31, 111, 155, .24);
  color: #1f6f9b;
}
.view-spots-actions a {
  background: #1f6f9b;
  color: #fff;
}
.view-spots-source {
  color: #60707b;
  font-size: .92rem;
  margin-top: 12px;
}
@media (max-width: 860px) {
  .view-spots-grid,
  .view-spots-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .view-spots-board {
    border-radius: 14px;
    padding: 16px;
  }
  .view-spots-grid,
  .view-spots-grid--compact {
    grid-template-columns: 1fr;
  }
  .view-spots-pal {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .view-spots-pal img {
    max-width: 112px;
  }
  .view-spots-links a,
  .view-spots-actions a {
    width: 100%;
    border-radius: 12px;
  }
}
/* kamifurano-view-spots-official-20260525 end */


/* kamifurano-view-spots-map-photo-20260525 start */
.view-spots-grid--photo {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.view-spot-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.view-spot-visual {
  min-height: 138px;
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(20, 94, 140, .88), rgba(83, 175, 211, .68)),
    radial-gradient(circle at 18% 22%, rgba(255,255,255,.65), transparent 24%),
    linear-gradient(180deg, #bfe9ff, #54a4cf 58%, #6ab27a);
}
.view-spot-visual--grass {
  background:
    linear-gradient(135deg, rgba(39, 115, 84, .86), rgba(87, 164, 102, .68)),
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.55), transparent 22%),
    linear-gradient(180deg, #bce7ff, #88c982 62%, #5a9b57);
}
.view-spot-visual--park {
  background:
    linear-gradient(135deg, rgba(45, 122, 95, .9), rgba(144, 190, 100, .62)),
    radial-gradient(circle at 76% 22%, rgba(255,255,255,.58), transparent 24%),
    linear-gradient(180deg, #d9f5ff, #8bc995 62%, #57975d);
}
.view-spot-visual--route {
  background:
    linear-gradient(135deg, rgba(28, 85, 122, .9), rgba(239, 176, 78, .62)),
    linear-gradient(90deg, transparent 0 19%, rgba(255,255,255,.35) 19% 21%, transparent 21% 49%, rgba(255,255,255,.35) 49% 51%, transparent 51% 79%, rgba(255,255,255,.35) 79% 81%, transparent 81%),
    linear-gradient(180deg, #cbefff, #f5df9d 62%, #7ab67c);
}
.view-spot-visual span {
  width: fit-content;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  font-size: .78rem;
  font-weight: 800;
}
.view-spot-visual strong {
  color: #fff;
  font-size: 1.28rem;
  text-shadow: 0 2px 12px rgba(0,0,0,.25);
}
.view-spot-meta {
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(31, 111, 155, .08);
  color: #315367 !important;
  font-size: .92rem;
}
.view-spot-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
}
.view-spot-buttons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #1f6f9b;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: .92rem;
}
.view-spot-buttons a:nth-child(2) {
  background: #fff;
  color: #1f6f9b;
  border: 1px solid rgba(31, 111, 155, .24);
}
.view-spot-route {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
  position: relative;
}
.view-spot-route div {
  padding: 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(31, 111, 155, .16);
}
.view-spot-route span,
.view-spot-route small {
  display: block;
}
.view-spot-route span {
  font-weight: 900;
  color: #173c55;
}
.view-spot-route small {
  color: #60707b;
  margin-top: 4px;
}
.view-spot-route div:not(:last-child)::after {
  content: "→";
  position: absolute;
  transform: translate(8px, 14px);
  color: #1f6f9b;
  font-weight: 900;
}
@media (max-width: 860px) {
  .view-spots-grid--photo,
  .view-spot-route {
    grid-template-columns: 1fr 1fr;
  }
  .view-spot-route div:not(:last-child)::after {
    display: none;
  }
}
@media (max-width: 560px) {
  .view-spots-grid--photo,
  .view-spot-route {
    grid-template-columns: 1fr;
  }
  .view-spot-visual {
    min-height: 112px;
  }
  .view-spot-buttons a {
    width: 100%;
    border-radius: 12px;
  }
}
/* kamifurano-view-spots-map-photo-20260525 end */

/* mutual-related-site-links-20260525 start */

.related-site-panel{margin:28px auto;padding:22px;border:1px solid rgba(31,111,155,.18);border-radius:16px;background:linear-gradient(135deg,rgba(236,248,255,.96),rgba(255,255,255,.98));box-shadow:0 14px 34px rgba(24,82,120,.08)}
.related-site-panel h2{margin:4px 0 10px;color:#173c55}
.related-site-panel p{max-width:820px}
.related-site-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.related-site-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:999px;background:#1f6f9b;color:#fff;text-decoration:none;font-weight:800}
.related-site-actions a:nth-child(n+2){background:#fff;color:#1f6f9b;border:1px solid rgba(31,111,155,.24)}
.related-site-footer-link{font-weight:800}
@media (max-width:560px){.related-site-panel{padding:18px;border-radius:12px}.related-site-actions a{width:100%;border-radius:12px}}

/* image-display-final-safety-20260525 */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
picture,
figure,
svg,
video,
canvas {
  max-width: 100%;
}

img,
video {
  height: auto;
}

figure {
  margin-left: 0;
  margin-right: 0;
}

.hero figure,
.schedule-hero figure,
.new-chitose-hero figure,
.future-event-hero figure,
.furano-special-hero__media,
.furano-page-hero-plus figure,
.event-rich-lead figure,
.official-photo-card,
.next2month-card figure,
.focus-event-grid article,
.garrison-71st-hero__visual,
.video-thumb-card figure,
.archive-media,
.airframe-visual,
.emblem-accent,
.pal-guide-box,
.pal-white-bg,
.pal-mini-card,
.airport-pal-card {
  max-width: 100%;
  min-width: 0;
}

.site-logo,
.hero-logo,
.chinanago-logo,
.blueimpulse-emblem,
.blueimpulse-emblem--hero,
img[src*="blueimpulse-emblem"],
img[src*="logo-blueimpulse-info"],
img[src*="chinanago-logo"] {
  object-fit: contain !important;
  object-position: center !important;
  flex: 0 0 auto;
}

.pal-guide-img,
.pal-guide-img--wide,
.pal-guide-box img,
.pal-white-bg img,
.pal-mini-card img,
.airport-pal-card img,
.furano-special-pal img,
.furano-rich-visual__pal img,
.furano-mini-pal img,
.next2month-pal img,
.official-source-pal img,
.event-rich-lead aside img,
img[src*="/assets/img/pal/"] {
  object-fit: contain !important;
  object-position: center !important;
  max-width: min(100%, 260px);
  height: auto;
}

.table-wrap,
.schedule-longtail-table,
.training-table,
.program-table,
.archive-events-table,
.flight-time-table,
.parking-table-wrap,
.route-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
  .focus-event-grid img,
  .garrison-71st-hero__visual img,
  .official-hero-photo img,
  .future-event-hero img,
  .event-rich-lead figure img {
    max-height: 260px;
  }

  .next2month-card figure img,
  .official-photo-card img,
  .furano-rich-visual__photo img,
  .archive-media img,
  .video-thumb-card img {
    max-height: 240px;
  }

  .pal-guide-img,
  .pal-guide-img--wide,
  .pal-guide-box img,
  .pal-white-bg img,
  .pal-mini-card img,
  .airport-pal-card img,
  .furano-special-pal img,
  .furano-rich-visual__pal img,
  .furano-mini-pal img,
  .next2month-pal img,
  .official-source-pal img,
  .event-rich-lead aside img,
  img[src*="/assets/img/pal/"] {
    max-width: min(100%, 200px);
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 480px) {
  .site-logo {
    max-height: 46px;
  }

  .blueimpulse-emblem,
  .blueimpulse-emblem--hero,
  img[src*="blueimpulse-emblem"] {
    max-width: min(100%, 132px);
    max-height: 132px;
    margin-left: auto;
    margin-right: auto;
  }

  .chinanago-logo,
  img[src*="chinanago-logo"] {
    max-width: min(100%, 210px);
    max-height: 120px;
  }

  .pal-guide-img,
  .pal-guide-img--wide,
  .pal-guide-box img,
  .pal-white-bg img,
  .pal-mini-card img,
  .airport-pal-card img,
  .furano-special-pal img,
  .furano-rich-visual__pal img,
  .furano-mini-pal img,
  .next2month-pal img,
  .official-source-pal img,
  .event-rich-lead aside img,
  img[src*="/assets/img/pal/"] {
    max-width: min(100%, 180px);
  }

  .focus-event-grid img,
  .garrison-71st-hero__visual img,
  .official-hero-photo img,
  .future-event-hero img,
  .event-rich-lead figure img,
  .next2month-card figure img,
  .official-photo-card img,
  .furano-rich-visual__photo img,
  .archive-media img,
  .video-thumb-card img {
    max-height: 220px;
  }
}

/* mutual-related-site-links-20260525 end */

/* image-layout-balance-fix-20260525 start */
.emblem-accent,
.chinanago-brand {
  clear: both;
}

.emblem-accent {
  grid-template-columns: minmax(120px, 220px) minmax(320px, 1fr);
  justify-content: start;
  align-items: center;
}

.emblem-accent > .blueimpulse-emblem,
.blueimpulse-emblem,
.blueimpulse-emblem--hero,
img[src*="blueimpulse-emblem"] {
  width: min(100%, 220px) !important;
  max-width: 220px !important;
  max-height: 220px !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block;
  margin-inline: auto;
}

.emblem-accent__text,
.chinanago-brand__text {
  min-width: 0;
  max-width: 860px;
}

.emblem-accent__text p,
.chinanago-brand__text p {
  overflow-wrap: anywhere;
}

.chinanago-brand {
  flex-wrap: wrap;
}

.chinanago-brand__logo-link {
  flex: 0 0 auto;
  max-width: min(100%, 260px);
}

.chinanago-brand--home .chinanago-logo,
.chinanago-brand--page .chinanago-logo,
.chinanago-brand--feature .chinanago-logo,
.chinanago-logo,
img[src*="chinanago-logo"] {
  width: min(100%, 220px) !important;
  max-width: 220px !important;
  max-height: 160px !important;
  object-fit: contain !important;
}

@media (max-width: 900px) {
  .emblem-accent {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: left;
  }

  .emblem-accent__text {
    width: 100%;
  }

  .chinanago-brand {
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .emblem-accent > .blueimpulse-emblem,
  .blueimpulse-emblem,
  .blueimpulse-emblem--hero,
  img[src*="blueimpulse-emblem"] {
    width: min(100%, 160px) !important;
    max-width: 160px !important;
    max-height: 160px !important;
  }

  .chinanago-brand--home .chinanago-logo,
  .chinanago-brand--page .chinanago-logo,
  .chinanago-brand--feature .chinanago-logo,
  .chinanago-logo,
  img[src*="chinanago-logo"] {
    width: min(100%, 180px) !important;
    max-width: 180px !important;
    max-height: 120px !important;
  }
}
/* image-layout-balance-fix-20260525 end */


/* kamifurano-observatory-spots-20260525 start */
.view-spot-card--featured {
  border-color: rgba(31, 111, 155, .32) !important;
  box-shadow: 0 16px 34px rgba(31, 111, 155, .12);
}
.view-spot-visual--senbo {
  background:
    linear-gradient(135deg, rgba(46, 89, 130, .9), rgba(130, 170, 210, .62)),
    radial-gradient(circle at 18% 20%, rgba(255,255,255,.62), transparent 24%),
    linear-gradient(180deg, #d6f2ff, #8eb6da 56%, #6ea06d);
}
.view-spot-visual--photo {
  background:
    linear-gradient(135deg, rgba(71, 82, 96, .88), rgba(103, 143, 178, .62)),
    radial-gradient(circle at 72% 25%, rgba(255,255,255,.54), transparent 25%),
    linear-gradient(180deg, #e6f7ff, #aac8dd 58%, #779b82);
}
/* kamifurano-observatory-spots-20260525 end */

/* chinanago-osusume-tourism-20260525 start */
.chinanago-osusume-section {
  margin: clamp(24px, 5vw, 48px) 0;
  padding: clamp(20px, 4vw, 34px);
  border: 1px solid #f4d179;
  border-radius: 8px;
  background: linear-gradient(135deg, #fff8df 0%, #ffffff 62%, #eef8ff 100%);
  box-shadow: 0 16px 36px rgba(166, 118, 24, .10);
}
.chinanago-osusume-heading {
  display: grid;
  grid-template-columns: minmax(88px, 132px) minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
}
.chinanago-osusume-heading img {
  width: 100%;
  max-width: 132px;
  height: auto;
  object-fit: contain;
  display: block;
}
.chinanago-osusume-heading h2 {
  margin: 0 0 8px;
  letter-spacing: 0;
}
.chinanago-osusume-heading p:last-child {
  margin-bottom: 0;
}
.chinanago-osusume-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.chinanago-top-pick-card {
  display: grid;
  grid-template-columns: minmax(120px, 190px) minmax(0, 1fr);
  gap: clamp(16px, 3vw, 28px);
  align-items: center;
  margin: 18px 0 20px;
  padding: clamp(20px, 4vw, 32px);
  border: 2px solid #e4a92f;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 246, 205, .96), rgba(255, 255, 255, .95) 58%, rgba(231, 247, 255, .92)),
    radial-gradient(circle at 12% 18%, rgba(255, 221, 126, .38), transparent 28%);
  box-shadow: 0 18px 42px rgba(139, 91, 8, .16);
}
.chinanago-top-pick-card__badge {
  display: grid;
  place-items: center;
  gap: 10px;
  padding: 16px;
  border: 1px solid #efca63;
  border-radius: 8px;
  background: #fff7cc;
  color: #714b00;
  text-align: center;
  font-weight: 900;
}
.chinanago-top-pick-card__badge img {
  width: min(100%, 128px);
  height: auto;
  object-fit: contain;
  display: block;
}
.chinanago-top-pick-card__body h3 {
  margin: 0 0 10px;
  color: #24384c;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.22;
  letter-spacing: 0;
}
.chinanago-top-pick-card__body p {
  margin: 0 0 10px;
}
.chinanago-top-pick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
.chinanago-top-pick-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 9px 14px;
  border-radius: 999px;
  background: #176da3;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}
.chinanago-top-pick-actions a:nth-child(n+2) {
  background: #fff;
  color: #176da3;
  border: 1px solid #b8d8ea;
}
.chinanago-osusume-card,
.chinanago-recommend-card {
  position: relative;
  border: 2px solid #f0c75e;
  background: #fffdf4;
  box-shadow: 0 12px 26px rgba(148, 103, 14, .11);
}
.chinanago-osusume-card {
  padding: 18px;
  border-radius: 8px;
}
.chinanago-osusume-card strong {
  display: block;
  margin: 12px 0 8px;
  color: #283b4d;
  font-size: 18px;
  line-height: 1.35;
}
.chinanago-osusume-card p {
  margin: 0 0 14px;
}
.chinanago-osusume-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #176da3;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.chinanago-osusume-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  min-height: 34px;
  padding: 5px 10px 5px 7px;
  border: 1px solid #efca63;
  border-radius: 999px;
  background: #fff3bd;
  color: #6a4700;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
}
.chinanago-osusume-badge img {
  width: 42px;
  max-width: 42px;
  height: auto;
  object-fit: contain;
  display: block;
  flex: 0 0 auto;
}
.tourism-official-grid .chinanago-recommend-card,
.real-info-grid .chinanago-recommend-card,
.view-spot-card.chinanago-recommend-card {
  padding-top: 16px;
}
.tourism-official-grid .chinanago-recommend-card > span:not(.chinanago-osusume-badge),
.real-info-grid .chinanago-recommend-card > span:not(.chinanago-osusume-badge) {
  display: none;
}
.view-spot-card.chinanago-recommend-card .chinanago-osusume-badge {
  margin-bottom: 12px;
}
@media (max-width: 900px) {
  .chinanago-osusume-grid {
    grid-template-columns: 1fr;
  }
  .chinanago-top-pick-card {
    grid-template-columns: 1fr;
  }
  .chinanago-top-pick-card__badge {
    grid-template-columns: 70px minmax(0, 1fr);
    text-align: left;
  }
  .chinanago-top-pick-card__badge img {
    width: 70px;
  }
}
@media (max-width: 560px) {
  .chinanago-osusume-section {
    padding: 18px;
  }
  .chinanago-osusume-heading {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
  }
  .chinanago-osusume-heading img {
    max-width: 72px;
  }
  .chinanago-osusume-badge {
    font-size: 12px;
    padding-right: 9px;
  }
  .chinanago-osusume-badge img {
    width: 36px;
    max-width: 36px;
  }
  .chinanago-osusume-card a {
    width: 100%;
  }
  .chinanago-top-pick-card {
    padding: 18px;
  }
  .chinanago-top-pick-actions a {
    width: 100%;
  }
}
/* chinanago-osusume-tourism-20260525 end */

/* three-site-blueimpulse-live-20260525 start */

.three-site-panel{margin:32px 0;padding:22px;border:1px solid var(--line,#d9e2ec);border-radius:8px;background:linear-gradient(135deg,#f7fbff,#fff)}
.three-site-panel .eyebrow{margin:0 0 4px;color:var(--accent-dark,#115e59);font-weight:800;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}
.three-site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.three-site-grid article{padding:16px;border:1px solid var(--line,#d9e2ec);border-radius:8px;background:#fff}
.three-site-grid strong,.three-site-grid span{display:block}
.three-site-grid span{color:var(--muted,#667085);font-size:.92rem}
.live-event-grid .status-label{display:inline-block;margin-top:8px;padding:4px 9px;border-radius:999px;background:#ecfdf5;color:#115e59;font-weight:800;font-size:.82rem}
@media (max-width:760px){.three-site-grid{grid-template-columns:1fr}.three-site-panel{padding:18px}}

/* three-site-blueimpulse-live-20260525 end */


/* kamifurano koukuusai bridge 20260525 */
.garrison-71st-koukuusai-bridge,.garrison-71st-official-media{margin:24px 0;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}
.garrison-71st-koukuusai-bridge h2,.garrison-71st-official-media h2{margin:0 0 10px}
/* /kamifurano koukuusai bridge 20260525 */



/* jasdf cat blue renewal 20260525 */
.cat-blue-renewal-board{margin:24px 0;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}
.cat-blue-clean-board{background:linear-gradient(135deg,#f7fbff,#fff)}
.schedule-focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.schedule-focus-card{padding:16px;border:1px solid #cfe0ef;border-radius:10px;background:#fff;box-shadow:0 8px 20px rgba(15,76,129,.08)}
.schedule-focus-card.is-current{border-color:#1f78c8;background:linear-gradient(135deg,#eef7ff,#fff)}
.schedule-focus-card.is-next{border-color:#f59e0b;background:linear-gradient(135deg,#fff7ed,#fff)}
.schedule-focus-date{display:inline-flex;align-items:center;margin-bottom:8px;padding:5px 10px;border-radius:999px;background:#0f4c81;color:#fff;font-weight:800;font-size:.86rem}
.schedule-focus-card.is-next .schedule-focus-date{background:#b45309}
.schedule-focus-card h3{margin:0 0 8px;color:var(--blue)}
.schedule-focus-card p{margin:0;color:var(--text)}
.schedule-focus-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.schedule-focus-links a{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:#eaf3fb;color:#0f4c81;font-weight:800;text-decoration:none;font-size:.9rem}
.schedule-month-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.schedule-month-board section{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}
.schedule-month-board h3{margin:0 0 10px;color:#12385f}
.schedule-month-board ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.schedule-month-board li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:4px 10px;padding:10px 0;border-top:1px solid #edf2f7}
.schedule-month-board li:first-child{border-top:0}
.schedule-month-board time{grid-row:span 2;color:#0f4c81;font-weight:800;white-space:nowrap}
.schedule-month-board strong{display:block;color:#1f2937;line-height:1.45}
.schedule-month-board span{display:block;color:var(--muted);font-size:.9rem;line-height:1.55}
.schedule-month-board a{color:#0f4c81;text-decoration:underline;text-underline-offset:3px}
.schedule-clean-note{background:#f8fbff;border-left:4px solid #0f4c81}
.official-count-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.official-count-grid article{padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8fcff}
.official-count-grid span{display:block;color:var(--muted);font-size:13px;font-weight:800}
.official-count-grid strong{display:block;color:var(--blue);font-size:22px}
.cat-blue-table table{min-width:980px}
.cat-blue-table td span{display:block;color:var(--muted);font-size:13px}
@media (max-width:760px){.official-count-grid,.schedule-focus-grid,.schedule-month-board{grid-template-columns:1fr}.cat-blue-renewal-board{padding:16px}.schedule-month-board li{grid-template-columns:1fr}.schedule-month-board time{grid-row:auto}.schedule-focus-links a{width:100%}}
/* /jasdf cat blue renewal 20260525 */

/* hofu official chirashi 20260525 */
.hofu-chirashi-section,
.chirashi-preview-block {
  margin: 24px 0;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(135deg, #f7fbff, #fff);
}

.chirashi-preview-block h3 {
  margin: 0 0 8px;
  color: var(--blue);
}

.chirashi-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 18px 0;
  max-width: 100%;
}

.chirashi-gallery figure {
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(16, 54, 96, .08);
  overflow: hidden;
}

.chirashi-gallery img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 6px;
  background: #fff;
}

.chirashi-gallery figcaption,
.chirashi-source {
  margin-top: 8px;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.6;
}

@media (min-width: 900px) {
  .chirashi-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}

@media (max-width: 760px) {
  .hofu-chirashi-section,
  .chirashi-preview-block {
    padding: 16px;
  }

  .chirashi-gallery figure {
    padding: 8px;
  }
}
/* /hofu official chirashi 20260525 */

/* kamifurano garrison official images 20260525 */
.official-garrison-gallery-block {
  margin: 28px auto;
  padding: 24px;
  max-width: 1120px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(135deg, #f7fbff, #fff);
  box-shadow: 0 18px 42px rgba(16, 54, 96, .08);
}

.official-garrison-gallery-block h2 {
  margin-top: 0;
  color: var(--blue);
}

.official-garrison-gallery-block .lead {
  max-width: 880px;
}

.official-garrison-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 18px 0;
  max-width: 100%;
}

.official-garrison-gallery figure {
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(16, 54, 96, .08);
}

.official-garrison-gallery img {
  display: block;
  width: 100%;
  max-width: 560px;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
  border-radius: 6px;
  background: #fff;
}

.official-garrison-gallery figcaption,
.official-garrison-source {
  margin-top: 8px;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.6;
}

.official-garrison-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
}

.official-garrison-summary-grid article {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.official-garrison-summary-grid span {
  display: block;
  color: var(--muted);
  font-size: .82rem;
}

.official-garrison-summary-grid strong {
  display: block;
  margin-top: 4px;
  color: var(--blue);
}

.official-garrison-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.official-garrison-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

.official-garrison-actions a:nth-child(n+3) {
  background: #eef5ff;
  color: var(--blue);
}

@media (min-width: 900px) {
  .official-garrison-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

  .official-garrison-gallery--wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .official-garrison-gallery-block {
    padding: 16px;
    border-radius: 12px;
  }

  .official-garrison-gallery figure {
    padding: 8px;
  }

  .official-garrison-gallery img {
    max-width: 100%;
  }

  .official-garrison-summary-grid {
    grid-template-columns: 1fr;
  }

  .official-garrison-actions {
    flex-direction: column;
  }
}
/* /kamifurano garrison official images 20260525 */

/* home kamifurano official image sizing 20260527 */
.kamifurano-home-official-gallery,
.kamifurano-home-secondary-gallery {
  max-width: 1040px;
}

.kamifurano-home-official-gallery .section-heading {
  max-width: 860px;
}

.kamifurano-home-official-gallery .official-garrison-main-figure {
  max-width: 640px;
  margin: 16px auto 18px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(16, 54, 96, .08);
}

.kamifurano-home-official-gallery .official-garrison-main-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: contain;
  object-position: center;
  margin: 0 auto;
  border-radius: 8px;
  background: #fff;
}

.kamifurano-home-official-gallery .official-garrison-main-figure figcaption {
  margin-top: 8px;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.6;
}

.kamifurano-home-official-gallery .official-garrison-gallery,
.kamifurano-home-secondary-gallery .official-garrison-gallery {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}

.kamifurano-home-official-gallery .official-garrison-gallery figure,
.kamifurano-home-secondary-gallery .official-garrison-gallery figure {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.kamifurano-home-official-gallery .official-garrison-gallery img,
.kamifurano-home-secondary-gallery .official-garrison-gallery img {
  max-width: 100%;
  max-height: 320px;
  object-fit: contain;
}

.kamifurano-home-secondary-gallery .official-garrison-gallery img {
  max-height: 300px;
}

.image-open-link {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f7fbff;
  color: var(--blue);
  font-size: .84rem;
  font-weight: 700;
  text-decoration: none;
}

.image-open-link:hover {
  background: #eef5ff;
  text-decoration: none;
}

@media (max-width: 768px) {
  .kamifurano-home-official-gallery,
  .kamifurano-home-secondary-gallery {
    padding: 14px;
  }

  .kamifurano-home-official-gallery .official-garrison-main-figure {
    max-width: 100%;
    margin: 12px auto 16px;
    padding: 10px;
  }

  .kamifurano-home-official-gallery .official-garrison-main-figure img {
    max-height: 360px;
  }

  .kamifurano-home-official-gallery .official-garrison-gallery,
  .kamifurano-home-secondary-gallery .official-garrison-gallery {
    grid-template-columns: 1fr;
  }

  .kamifurano-home-official-gallery .official-garrison-gallery img,
  .kamifurano-home-secondary-gallery .official-garrison-gallery img {
    max-height: 300px;
  }
}

@media (max-width: 420px) {
  .kamifurano-home-official-gallery .official-garrison-main-figure img {
    max-height: 340px;
  }

  .kamifurano-home-official-gallery .official-garrison-gallery img,
  .kamifurano-home-secondary-gallery .official-garrison-gallery img {
    max-height: 260px;
  }
}
/* /home kamifurano official image sizing 20260527 */

/* pal-common-expansion-20260525 */
.pal-guide-box img,
.pal-card img,
.pal-character,
.pal-guide-img {
  object-fit: contain;
}
@media (max-width: 520px) {
  .pal-guide-box img,
  .pal-card img,
  .pal-character,
  .pal-guide-img {
    max-width: 170px;
    height: auto;
  }
}
/* end-pal-common-expansion-20260525 */


/* koukuusai-logo-install-20260525 */
.koukuusai-related-logo-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(320px, 100%);
  margin: 6px 0 14px;
  padding: 8px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(31, 111, 155, .16);
  box-shadow: 0 10px 24px rgba(24, 82, 120, .08);
}
.koukuusai-related-logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
}
@media (max-width: 560px) {
  .koukuusai-related-logo-link {
    width: min(240px, 100%);
    margin-left: auto;
    margin-right: auto;
  }
}
/* end-koukuusai-logo-install-20260525 */


/* nearest-event-top-20260525 start */
.nearest-top-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: clamp(18px, 4vw, 42px);
  align-items: stretch;
  margin: 20px 0 24px;
  padding: clamp(22px, 4vw, 42px);
  border: 1px solid #c7ddec;
  border-radius: 8px;
  background: linear-gradient(135deg, #eaf7ff 0%, #ffffff 58%, #f5fbff 100%);
  box-shadow: 0 18px 46px rgba(18, 103, 179, .10);
}
.nearest-top-hero h1 {
  margin: 0 0 14px;
  font-size: clamp(30px, 4.2vw, 52px);
  line-height: 1.12;
  letter-spacing: 0;
}
.nearest-top-hero h2 {
  margin: 0 0 16px;
  font-size: clamp(22px, 2.3vw, 30px);
  line-height: 1.25;
  letter-spacing: 0;
}
.nearest-top-copy,
.nearest-top-card {
  min-width: 0;
}
.nearest-top-card {
  padding: clamp(18px, 3vw, 26px);
  border: 1px solid #d5e6f2;
  border-radius: 8px;
  background: rgba(255,255,255,.92);
}
.nearest-top-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 20px;
}
.nearest-top-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #dff2ff;
  color: #10517b;
  font-weight: 700;
  font-size: 13px;
}
.nearest-top-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.nearest-top-list {
  display: grid;
  gap: 10px;
  margin: 0;
}
.nearest-top-list div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e6f0f7;
}
.nearest-top-list dt {
  color: #2f6f99;
  font-weight: 700;
}
.nearest-top-list dd {
  margin: 0;
  min-width: 0;
}
.nearest-top-related {
  margin: 16px 0 0;
  font-weight: 700;
}
.nearest-top-inline-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.nearest-top-inline-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid #bfdbed;
  border-radius: 999px;
  background: #f6fbff;
  color: #13517c;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
@media (max-width: 900px) {
  .nearest-top-hero {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .nearest-top-hero {
    margin-top: 12px;
    padding: 18px;
  }
  .nearest-top-hero h1 {
    font-size: 30px;
  }
  .nearest-top-actions .button,
  .nearest-top-actions a {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .nearest-top-list div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .nearest-top-inline-links a {
    width: 100%;
  }
}
/* nearest-event-top-20260525 end */

/* fy2026 event pages */
.fy-event-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:24px;align-items:stretch;padding:32px;max-width:1180px;margin:24px auto;background:linear-gradient(135deg,#e8f6ff,#ffffff);border:1px solid #c9e8fb;border-radius:18px}
.fy-event-hero .lead{font-size:1.08rem;line-height:1.9}
.fy-event-visual{display:grid;align-content:center;gap:10px;min-height:240px;padding:24px;border-radius:16px;background:#0f75bc;color:#fff;box-shadow:0 12px 28px rgba(14,84,143,.18)}
.fy-event-visual span{font-size:.9rem;opacity:.9}.fy-event-visual strong{font-size:1.55rem;line-height:1.35}.fy-event-visual small{line-height:1.7}
.fy-event-quick,.fy2026-event-grid{max-width:1180px;margin:22px auto}.fy2026-event-hub{max-width:1180px;margin:34px auto;padding:0 18px}
.fy2026-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fy2026-event-card{padding:18px;border:1px solid #d7e8f5;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(15,82,128,.08)}
.fy2026-event-card span{display:block;color:#0f75bc;font-weight:700;margin-bottom:6px}.fy2026-event-card h3{font-size:1.02rem;line-height:1.55;margin:.2rem 0}.fy2026-event-card p{margin:.35rem 0;line-height:1.65}.fy2026-event-card .status{font-size:.9rem;color:#51606b}
.info-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:1040px;margin:0 auto}.info-card-grid article,.event-info-card{padding:20px;border:1px solid #d9e8f2;border-radius:14px;background:#fff}.source-box{max-width:1040px;margin:32px auto;padding:22px;border-radius:14px;background:#f7fbff;border:1px solid #d4eaf8}.source-note,.note{font-size:.9rem;color:#51606b}
@media(max-width:900px){.fy-event-hero{grid-template-columns:1fr;margin:14px;padding:22px}.fy2026-event-grid,.info-card-grid{grid-template-columns:1fr}.fy2026-event-hub{padding:0 14px}}


/* matsushima-training-cron-20260526 */
.matsushima-training-board,
.matsushima-cron-note {
  margin: 24px 0;
  padding: 22px;
  border: 1px solid #b8d8ff;
  border-radius: 8px;
  background: linear-gradient(180deg, #f4faff 0%, #ffffff 100%);
  box-shadow: 0 14px 30px rgba(18, 63, 122, 0.08);
}

.matsushima-training-board--today {
  border-left: 6px solid var(--blue);
}

.matsushima-status-grid,
.matsushima-live-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 16px 0;
}

.matsushima-live-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.matsushima-status-grid article,
.matsushima-live-card {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.matsushima-status-grid span,
.matsushima-live-card span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.matsushima-status-grid strong,
.matsushima-live-card strong {
  display: block;
  color: var(--blue-dark);
  font-size: 1.15rem;
  line-height: 1.35;
}

.matsushima-live-time {
  display: inline-flex;
  margin: 10px 0 4px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #e7f0ff;
  color: var(--blue-dark);
  font-weight: 800;
}

.matsushima-live-status {
  margin: 16px 0;
  padding: 16px;
  border: 1px dashed #9fc4f2;
  border-radius: 8px;
  background: #fbfdff;
}

.matsushima-live-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.matsushima-live-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.matsushima-live-head strong {
  color: var(--blue-dark);
}

.matsushima-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.matsushima-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 8px 14px;
  border-radius: 8px;
  background: var(--blue);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.matsushima-actions a:nth-child(n+2) {
  background: #eef5ff;
  color: var(--blue-dark);
}

.training-live-table {
  margin-top: 10px;
}

.table-scroll {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 760px) {
  .matsushima-training-board,
  .matsushima-cron-note {
    padding: 18px;
  }

  .matsushima-status-grid,
  .matsushima-live-grid {
    grid-template-columns: 1fr;
  }

  .matsushima-actions a {
    width: 100%;
  }
}


/* past-year-archive-20260526-past-years start */
.past-year-link-panel {
  max-width: 1180px;
  margin: 44px auto;
  padding: 28px;
  border: 1px solid rgba(55, 126, 184, .18);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(238, 248, 255, .94), rgba(255, 255, 255, .98));
}
.past-year-page .past-year-hero {
  margin-top: 20px;
}
.past-year-page .past-schedule-table table {
  width: 100%;
}
.past-year-page .source-box {
  max-width: 1100px;
  margin: 32px auto;
  padding: 20px;
  border-radius: 16px;
  background: #f6fbff;
  border: 1px solid rgba(48, 112, 166, .16);
}
.past-year-page .breadcrumb {
  max-width: 1100px;
  margin: 18px auto 0;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  font-size: .92rem;
}
@media (max-width: 700px) {
  .past-year-link-panel {
    margin: 28px 16px;
    padding: 20px;
  }
}
/* past-year-archive-20260526-past-years end */


/* past-airshow-phase2-20260526-past-phase2 start */
.past-airshow-page .past-year-hero,
.past-blueimpulse-page .past-year-hero {
  margin-top: 20px;
}
.past-airshow-page .source-box,
.past-blueimpulse-page .source-box {
  max-width: 1100px;
  margin: 32px auto;
  padding: 20px;
  border-radius: 16px;
  background: #f6fbff;
  border: 1px solid rgba(48, 112, 166, .16);
}
/* past-airshow-phase2-20260526-past-phase2 end */


/* youtube-archive-3site-20260526 start */
.youtube-archive-hero .lead,
.youtube-archive-hub p,
.youtube-related-videos p { max-width: 860px; }
.youtube-archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
  margin-top: 18px;
}
.youtube-archive-card {
  border: 1px solid rgba(39, 117, 176, .18);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(19, 55, 91, .08);
}
.youtube-archive-thumb { display: block; background: #eaf5ff; }
.youtube-archive-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.youtube-archive-body { padding: 16px; }
.youtube-archive-body h3 { font-size: 1rem; line-height: 1.55; margin: 10px 0; }
.archive-chip {
  display: inline-flex;
  align-items: center;
  margin: 0 6px 6px 0;
  padding: 4px 9px;
  border-radius: 999px;
  background: #e6f5ff;
  color: #12618f;
  font-size: .78rem;
  font-weight: 700;
}
.youtube-archive-meta {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}
.youtube-archive-meta div { display: grid; grid-template-columns: 72px 1fr; gap: 10px; }
.youtube-archive-meta dt { color: #5d7588; font-weight: 700; }
.youtube-archive-meta dd { margin: 0; }
.youtube-archive-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.youtube-archive-links a {
  display: inline-flex;
  padding: 8px 10px;
  border-radius: 10px;
  background: #0d7ed0;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: .86rem;
}
.youtube-archive-links a:nth-child(n+2) { background: #eef7ff; color: #146497; }
.youtube-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}
.youtube-stat-grid article {
  border-radius: 14px;
  background: #f1f9ff;
  padding: 16px;
}
.youtube-stat-grid strong { display: block; font-size: 1.8rem; color: #0b75bd; }
@media (max-width: 520px) {
  .youtube-archive-grid { grid-template-columns: 1fr; }
  .youtube-archive-meta div { grid-template-columns: 1fr; gap: 2px; }
}
/* youtube-archive-3site-20260526 end */
/* Kamifurano priority page overflow guard, 2026-05-27 */
.kamifurano-event-page img {
  max-width: 100%;
  height: auto;
}

.kamifurano-event-page .site-logo {
  width: auto;
  max-width: min(220px, 70vw);
}

.kamifurano-event-page .main-pal-jet,
.kamifurano-event-page .official-garrison-gallery img,
.kamifurano-event-page .official-garrison-gallery-block img,
.kamifurano-event-page .kamifurano-official-board img,
.kamifurano-event-page .real-info-panel img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.kamifurano-event-page .official-table-wrap,
.kamifurano-event-page .table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

@media (max-width: 640px) {
  .kamifurano-event-page .official-table,
  .kamifurano-event-page .official-table thead,
  .kamifurano-event-page .official-table tbody,
  .kamifurano-event-page .official-table tr,
  .kamifurano-event-page .official-table th,
  .kamifurano-event-page .official-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .kamifurano-event-page .official-table thead {
    position: static;
  }

  .kamifurano-event-page .official-table tr {
    margin: 0 0 12px;
    border: 1px solid rgba(30, 64, 175, 0.16);
    border-radius: 10px;
    overflow: hidden;
  }

  .kamifurano-event-page .official-table th,
  .kamifurano-event-page .official-table td {
    text-align: left;
    border-width: 0 0 1px;
    word-break: break-word;
  }
}


/* home chitose flight image 20260527 */
.home-chitose-flight {
  max-width: 1040px;
  margin: 24px auto;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(135deg, #f7fbff, #fff);
  box-shadow: 0 18px 42px rgba(16, 54, 96, .08);
}

.home-chitose-flight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin: 18px 0;
}

.home-chitose-flight-image-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(16, 54, 96, .08);
}

.home-chitose-flight-image-card img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 340px;
  object-fit: contain;
  object-position: center;
  border-radius: 8px;
  background: #fff;
}

.home-chitose-flight-image-card figcaption {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.6;
}

@media (max-width: 768px) {
  .home-chitose-flight {
    margin: 18px auto;
    padding: 14px;
  }

  .home-chitose-flight-grid {
    grid-template-columns: 1fr;
  }

  .home-chitose-flight-image-card img {
    max-height: 280px;
  }
}

@media (max-width: 420px) {
  .home-chitose-flight-image-card img {
    max-height: 250px;
  }
}
/* /home chitose flight image 20260527 */


/* home hofu next week images 20260527 */
.home-hofu-next-gallery {
  margin: 16px 0 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.home-hofu-next-gallery__images {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.home-hofu-next-image-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f9fcff;
}

.image-card-title {
  color: var(--blue);
  font-weight: 800;
  font-size: .95rem;
}

.home-hofu-next-image-card img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 300px;
  object-fit: contain;
  object-position: center;
  border-radius: 8px;
  background: #fff;
}

.home-hofu-next-image-card figcaption {
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.6;
}

.home-hofu-next-points {
  margin: 10px 0;
}

@media (max-width: 768px) {
  .home-hofu-next-gallery__images {
    grid-template-columns: 1fr;
  }

  .home-hofu-next-image-card img {
    max-height: 260px;
  }
}

@media (max-width: 420px) {
  .home-hofu-next-image-card img {
    max-height: 230px;
  }
}
/* /home hofu next week images 20260527 */


/* duplicate image cleanup note 20260527 */
.image-reuse-note {
  display: flex;
  align-items: center;
  min-height: 88px;
  padding: 14px;
  border: 1px dashed rgba(31, 111, 155, .35);
  border-radius: 12px;
  background: #f7fbff;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.7;
}
/* /duplicate image cleanup note 20260527 */
