@charset "UTF-8";
/* ==========================================================================
   航空祭観覧ツアー特集  /domestic/special/ivent/airshow/
   このページ専用（現在の css/style-v2.css とは別ファイル）。すべて #tbx-lp-airshow から指定
   ========================================================================== */
:root {
  --as-navy: #0A2540;
  --as-navy2: #123A63;
  --as-blue: #0066CC;
  --as-sky: #38A8E8;
  --as-hud: #A5E4FF;
  --as-hud-rgb: 165, 228, 255;
  --as-orange: #FF6600;
  --as-orange-d: #E35A00;
  --as-price: #C24400;
  --as-bg: #F4F7FB;
  --as-text: #1F2A37;
  --as-muted: #5B6B7C;
  --as-line: #DCE3EC;
  --as-ok: #0F8A5F;
  --as-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --as-mono: "Share Tech Mono", ui-monospace, monospace;
  --as-num: "Orbitron", "Share Tech Mono", sans-serif;
}

/* ---- サイト共通CSSとの衝突対策 ---- */
#tbx-lp-airshow section { background: transparent; border-bottom: 0; }
#tbx-lp-airshow span[aria-hidden="true"] { position: static; top: auto; right: auto; bottom: auto; left: auto; }
#tbx-lp-airshow ul, #tbx-lp-airshow ol { list-style: none; margin: 0; padding: 0; }
#tbx-lp-airshow h1, #tbx-lp-airshow h2, #tbx-lp-airshow h3, #tbx-lp-airshow p, #tbx-lp-airshow dl, #tbx-lp-airshow dd, #tbx-lp-airshow figure { margin: 0; }
#tbx-lp-airshow *, #tbx-lp-airshow *::before, #tbx-lp-airshow *::after { box-sizing: border-box; }

#tbx-lp-airshow { font-family: var(--as-font); color: var(--as-text); line-height: 1.7; font-size: 15px; background: #fff; overflow-x: clip; -webkit-font-smoothing: antialiased; }
#tbx-lp-airshow img { max-width: 100%; display: block; }
#tbx-lp-airshow a { color: inherit; }
#tbx-lp-airshow button { font-family: inherit; }
#tbx-lp-airshow [hidden] { display: none !important; }
#tbx-lp-airshow .as-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
#tbx-lp-airshow .as-wrap { max-width: 1120px; margin: 0 auto; padding: 0 16px; }
#tbx-lp-airshow .as-sec { padding: 64px 0; scroll-margin-top: 56px; }
#tbx-lp-airshow .as-sec--gray { background: var(--as-bg); }
#tbx-lp-airshow .as-eyebrow { font-family: var(--as-mono); font-size: 12px; letter-spacing: .22em; color: var(--as-blue); display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
#tbx-lp-airshow .as-eyebrow::before { content: ""; width: 18px; height: 2px; background: currentColor; }
#tbx-lp-airshow .as-h2 { font-size: clamp(22px, 4vw, 32px); font-weight: 900; line-height: 1.4; margin-bottom: 10px; color: var(--as-navy); text-align: left; }
#tbx-lp-airshow .as-lead { color: var(--as-muted); font-size: 14px; margin-bottom: 24px; }
#tbx-lp-airshow .as-note { font-size: 12px; color: var(--as-muted); margin-top: 16px; }
#tbx-lp-airshow .as-more { text-align: center; margin-top: 24px; }
#tbx-lp-airshow .as-more a { display: inline-block; border: 2px solid var(--as-navy); color: var(--as-navy); font-weight: 700; text-decoration: none; border-radius: 999px; padding: 10px 26px; font-size: 14px; }
#tbx-lp-airshow .as-more a:hover { background: var(--as-navy); color: #fff; }

/* ボタン */
#tbx-lp-airshow .as-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; text-decoration: none; border-radius: 999px; padding: 13px 26px; font-size: 15px; border: 0; cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s; }
#tbx-lp-airshow .as-btn--main { position: relative; overflow: hidden; background: var(--as-orange); color: #fff; box-shadow: 0 6px 18px rgba(255, 102, 0, .35); }
#tbx-lp-airshow .as-btn--main::before { content: ""; position: absolute; top: 0; left: -80%; width: 50%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent); transform: skewX(-20deg); animation: as-shine 4s infinite; }
#tbx-lp-airshow .as-btn--main:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(255, 102, 0, .45); color: #fff; }
#tbx-lp-airshow .as-btn--ghost { background: rgba(255, 255, 255, .12); color: #fff; border: 1px solid rgba(255, 255, 255, .75); }
#tbx-lp-airshow .as-btn--ghost:hover { background: rgba(255, 255, 255, .25); color: #fff; }
#tbx-lp-airshow .as-btn--ghost-dark { background: #fff; color: var(--as-navy); border: 2px solid var(--as-navy); }
@keyframes as-shine { 0% { left: -80%; } 30%, 100% { left: 140%; } }

/* タブ */
#tbx-lp-airshow .as-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
#tbx-lp-airshow .as-tab { border: 1px solid var(--as-line); background: #fff; border-radius: 999px; padding: 8px 16px; font-size: 13px; font-weight: 700; color: var(--as-navy); cursor: pointer; }
#tbx-lp-airshow .as-tab small { font-weight: 400; color: var(--as-muted); margin-left: 4px; font-size: 11px; }
#tbx-lp-airshow .as-tab.is-active { background: var(--as-navy); border-color: var(--as-navy); color: #fff; }
#tbx-lp-airshow .as-tab.is-active small { color: var(--as-hud); }

/* 写真準備中の枠 */
#tbx-lp-airshow .as-noimg { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 4px; text-align: center; color: rgba(var(--as-hud-rgb), .8); font-family: var(--as-mono); font-size: 11px; letter-spacing: .08em; background: linear-gradient(135deg, var(--as-navy2), var(--as-navy)); }
#tbx-lp-airshow .as-noimg::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(var(--as-hud-rgb), .3); border-radius: 2px; }
#tbx-lp-airshow .as-noimg svg { width: 40px; height: 40px; margin: 0 auto; opacity: .75; }

/* ==========================================================================
   MV（VEGAS の上に HUD を重ねる）
   ========================================================================== */
#tbx-lp-airshow .as-mv { position: relative; height: 75vh; min-height: 540px; max-height: 820px; overflow: hidden; color: #fff; background: var(--as-navy); }
#tbx-lp-airshow .as-mv__slider { position: absolute !important; inset: 0; width: 100%; height: 100% !important; }
#tbx-lp-airshow .as-mv__veil { position: absolute; inset: 0; z-index: 2; pointer-events: none; background:
  radial-gradient(ellipse at 50% 45%, rgba(10, 37, 64, .05) 0%, rgba(10, 37, 64, .55) 100%),
  linear-gradient(180deg, rgba(10, 37, 64, .5) 0%, rgba(10, 37, 64, 0) 30%, rgba(10, 37, 64, .1) 60%, rgba(10, 37, 64, .8) 100%); }
#tbx-lp-airshow .as-mv__scan { position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: .55; background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, .035) 0 1px, transparent 1px 3px); overflow: hidden; }
#tbx-lp-airshow .as-mv__scan::after { content: ""; position: absolute; left: 0; right: 0; height: 120px; background: linear-gradient(180deg, transparent, rgba(var(--as-hud-rgb), .10) 80%, transparent); animation: as-sweep 8s linear infinite; }
@keyframes as-sweep { from { transform: translateY(-140px); } to { transform: translateY(900px); } }

#tbx-lp-airshow .as-hud { position: absolute; inset: 0; z-index: 4; pointer-events: none; font-family: var(--as-mono); color: var(--as-hud); opacity: .8; font-size: 11px; }
#tbx-lp-airshow .as-hud b { font-weight: 400; }
#tbx-lp-airshow .as-hud__c { position: absolute; width: 36px; height: 36px; border: 0 solid var(--as-hud); }
#tbx-lp-airshow .as-hud__c--tl { top: 16px; left: 16px; border-top-width: 2px; border-left-width: 2px; }
#tbx-lp-airshow .as-hud__c--tr { top: 16px; right: 16px; border-top-width: 2px; border-right-width: 2px; }
#tbx-lp-airshow .as-hud__c--bl { bottom: 64px; left: 16px; border-bottom-width: 2px; border-left-width: 2px; }
#tbx-lp-airshow .as-hud__c--br { bottom: 64px; right: 16px; border-bottom-width: 2px; border-right-width: 2px; }
#tbx-lp-airshow .as-hud__compass { position: absolute; top: 20px; left: 50%; transform: translateX(-50%); width: 340px; text-align: center; font-size: 10px; display: none; }
#tbx-lp-airshow .as-hud__compass-nums { display: flex; justify-content: space-between; padding: 0 6px; letter-spacing: .1em; }
#tbx-lp-airshow .as-hud__compass-bar { height: 8px; border: 1px solid var(--as-hud); border-top: 0; background: repeating-linear-gradient(90deg, var(--as-hud) 0 1px, transparent 1px 21px) 0 100% / 21px 4px repeat-x; }
#tbx-lp-airshow .as-hud__tape { position: absolute; top: 50%; transform: translateY(-50%); height: 260px; display: none; flex-direction: column; justify-content: space-between; }
#tbx-lp-airshow .as-hud__tape--l { left: 34px; align-items: flex-start; }
#tbx-lp-airshow .as-hud__tape--r { right: 34px; align-items: flex-end; }
#tbx-lp-airshow .as-hud__box { border: 1px solid rgba(var(--as-hud-rgb), .6); background: rgba(10, 37, 64, .45); padding: 1px 8px; }
#tbx-lp-airshow .as-hud__ticks { flex: 1; margin: 8px 0; width: 38px; display: flex; flex-direction: column; justify-content: space-between; font-size: 10px; opacity: .85; }
#tbx-lp-airshow .as-hud__tape--l .as-hud__ticks { border-right: 1px solid rgba(var(--as-hud-rgb), .5); text-align: right; padding-right: 5px; }
#tbx-lp-airshow .as-hud__tape--r .as-hud__ticks { border-left: 1px solid rgba(var(--as-hud-rgb), .5); padding-left: 5px; }
#tbx-lp-airshow .as-hud__reticle { position: absolute; left: 50%; top: 44%; width: min(78vw, 460px); height: auto; aspect-ratio: 1; transform: translate(-50%, -50%); opacity: .32; color: var(--as-hud); }
#tbx-lp-airshow .as-spin { transform-origin: 250px 250px; animation: as-spin 30s linear infinite; }
#tbx-lp-airshow .as-spin-r { transform-origin: 250px 250px; animation: as-spin 20s linear infinite reverse; }
@keyframes as-spin { to { transform: rotate(360deg); } }
#tbx-lp-airshow .as-draw { stroke-dasharray: 400; stroke-dashoffset: 400; animation: as-draw 1.8s cubic-bezier(.16, 1, .3, 1) .3s forwards; }
@keyframes as-draw { to { stroke-dashoffset: 0; } }
#tbx-lp-airshow .as-hud__log { position: absolute; left: 64px; right: 64px; bottom: 70px; display: none; justify-content: space-between; opacity: .75; }

#tbx-lp-airshow .as-mv__body { position: relative; z-index: 5; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 16px 96px; }
#tbx-lp-airshow .as-mv__badge { font-family: var(--as-mono); font-size: 12px; letter-spacing: .18em; color: var(--as-hud); border: 1px solid rgba(var(--as-hud-rgb), .6); background: rgba(10, 37, 64, .5); padding: 4px 12px; margin-bottom: 14px; min-height: 1.7em; }
#tbx-lp-airshow .as-mv__title { display: flex; flex-direction: column; align-items: center; color: #fff; font-weight: 900; line-height: 1.15; text-shadow: 0 3px 14px rgba(10, 37, 64, .7); }
#tbx-lp-airshow .as-mv__by { font-size: clamp(14px, 2vw, 18px); font-weight: 700; letter-spacing: .2em; margin-bottom: 8px; }
#tbx-lp-airshow .as-mv__year { font-family: var(--as-num); font-weight: 900; font-size: clamp(36px, 8vw, 76px); letter-spacing: .06em; line-height: 1; background: linear-gradient(180deg, #fff 30%, #BFE9FF); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; filter: drop-shadow(0 3px 10px rgba(10, 37, 64, .6)); }
#tbx-lp-airshow .as-mv__main { font-size: clamp(30px, 6.4vw, 60px); letter-spacing: .04em; margin-top: 6px; }
#tbx-lp-airshow .as-mv__cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 28px; }
#tbx-lp-airshow .as-mv__next { position: absolute; left: 0; right: 0; bottom: 0; z-index: 6; background: rgba(10, 37, 64, .75); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); border-top: 1px solid rgba(var(--as-hud-rgb), .35); }
#tbx-lp-airshow .as-mv__next-in { max-width: 1120px; margin: 0 auto; padding: 10px 16px; display: flex; gap: 10px; align-items: center; overflow-x: auto; scrollbar-width: none; }
#tbx-lp-airshow .as-mv__next-in::-webkit-scrollbar { display: none; }
#tbx-lp-airshow .as-mv__next-label { font-family: var(--as-mono); color: var(--as-hud); font-size: 11px; letter-spacing: .15em; white-space: nowrap; }
#tbx-lp-airshow .as-mv__chip { white-space: nowrap; font-size: 13px; color: #fff; text-decoration: none; border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; padding: 4px 12px; display: inline-flex; gap: 6px; align-items: center; }
#tbx-lp-airshow .as-mv__chip:hover { background: rgba(255, 255, 255, .12); color: #fff; }
#tbx-lp-airshow .as-mv__chip b { font-family: var(--as-mono); color: var(--as-hud); font-weight: 400; }
#tbx-lp-airshow .as-mv__chip em { font-style: normal; background: var(--as-orange); color: #fff; font-size: 10px; border-radius: 3px; padding: 0 5px; }
/* VEGAS の網点・タイマーを HUD より下に */
#tbx-lp-airshow .as-mv .vegas-overlay { z-index: 1; opacity: .35; }
#tbx-lp-airshow .as-mv .vegas-timer { display: none; }

/* ==========================================================================
   ページ内メニュー（スクロールで上部に固定）
   ========================================================================== */
#tbx-lp-airshow .as-nav { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--as-line); box-shadow: 0 2px 8px rgba(10, 37, 64, .05); }
#tbx-lp-airshow .as-nav ul { margin: 0 auto; padding: 0 8px; max-width: 1120px; display: flex; overflow-x: auto; scrollbar-width: none; }
#tbx-lp-airshow .as-nav ul::-webkit-scrollbar { display: none; }
#tbx-lp-airshow .as-nav a { display: block; white-space: nowrap; padding: 13px 14px; font-size: 13px; font-weight: 700; color: var(--as-navy); text-decoration: none; border-bottom: 3px solid transparent; }
#tbx-lp-airshow .as-nav a:hover, #tbx-lp-airshow .as-nav a.is-current { border-bottom-color: var(--as-sky); }

/* ==========================================================================
   ツアーがおすすめ
   ========================================================================== */
#tbx-lp-airshow .as-points { display: grid; gap: 16px; margin-top: 20px; }
#tbx-lp-airshow .as-point { background: #fff; border: 1px solid var(--as-line); border-radius: 12px; padding: 22px 20px 20px; position: relative; overflow: hidden; }
#tbx-lp-airshow .as-point__no { font-family: var(--as-num); font-weight: 900; font-size: 44px; line-height: 1; color: rgba(0, 102, 204, .09); position: absolute; right: 14px; top: 10px; }
#tbx-lp-airshow .as-point__icon { width: 44px; height: 44px; padding: 10px; border-radius: 10px; background: #E8F3FC; color: var(--as-blue); margin-bottom: 12px; }
#tbx-lp-airshow .as-point h3 { font-size: 17px; margin-bottom: 6px; color: var(--as-navy); }
#tbx-lp-airshow .as-point p { font-size: 14px; color: var(--as-muted); }

/* ==========================================================================
   地図（レーダー）
   ========================================================================== */
#tbx-lp-airshow .as-console { display: grid; gap: 16px; }
#tbx-lp-airshow .as-radar { position: relative; background: radial-gradient(circle at 50% 50%, var(--as-navy2) 0%, var(--as-navy) 70%); border-radius: 16px; overflow: hidden; aspect-ratio: 1 / 1; box-shadow: inset 0 0 50px rgba(0, 0, 0, .35); }
#tbx-lp-airshow .as-radar__rings { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; stroke: var(--as-hud); }
#tbx-lp-airshow .as-radar__sweep { position: absolute; left: 50%; top: 50%; width: 150%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; pointer-events: none; background: conic-gradient(from 0deg, transparent 0deg 300deg, rgba(var(--as-hud-rgb), .04) 320deg, rgba(var(--as-hud-rgb), .22) 358deg, rgba(var(--as-hud-rgb), .5) 360deg); animation: as-radar 7s linear infinite; }
@keyframes as-radar { from { transform: translate(-50%, -50%) rotate(0); } to { transform: translate(-50%, -50%) rotate(360deg); } }
#tbx-lp-airshow .as-radar__hud { position: absolute; z-index: 3; top: 12px; left: 14px; font-family: var(--as-mono); color: var(--as-hud); font-size: 11px; letter-spacing: .08em; pointer-events: none; }
#tbx-lp-airshow .as-radar__legend { position: absolute; z-index: 3; bottom: 12px; left: 14px; display: flex; gap: 12px; font-size: 11px; color: #D6ECFA; background: rgba(10, 37, 64, .7); padding: 5px 10px; border-radius: 6px; pointer-events: none; }
#tbx-lp-airshow .as-radar__legend b { font-weight: 400; }
#tbx-lp-airshow .as-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; vertical-align: -1px; margin-right: 4px; background: var(--as-hud); }
#tbx-lp-airshow .as-dot--sale { background: var(--as-orange); box-shadow: 0 0 6px var(--as-orange); }
#tbx-lp-airshow .as-radar__reset { position: absolute; z-index: 3; top: 10px; right: 10px; font-size: 12px; background: rgba(10, 37, 64, .8); color: var(--as-hud); border: 1px solid rgba(var(--as-hud-rgb), .5); border-radius: 6px; padding: 4px 10px; cursor: pointer; display: none; }
#tbx-lp-airshow .as-radar.is-zoom .as-radar__reset { display: block; }
#tbx-lp-airshow .as-map { position: absolute; inset: 0; transition: transform .9s cubic-bezier(.16, 1, .3, 1); transform-origin: 0 0; }
#tbx-lp-airshow .as-map svg { width: 100%; height: 100%; display: block; }
#tbx-lp-airshow .as-map__land { fill: rgba(165, 228, 255, .13); stroke: var(--as-hud); stroke-width: 1.2; stroke-linejoin: round; }
#tbx-lp-airshow .as-map__inset { fill: rgba(10, 37, 64, .5); stroke: var(--as-hud); stroke-opacity: .45; stroke-dasharray: 4 3; }
#tbx-lp-airshow .as-map__inset-t { fill: var(--as-hud); font-family: var(--as-mono); font-size: 9px; opacity: .8; }
#tbx-lp-airshow .as-pin { position: absolute; width: 0; height: 0; z-index: 2; transition: opacity .4s; }
#tbx-lp-airshow .as-pin__in { position: absolute; left: 0; top: 0; transform: scale(var(--as-inv, 1)); transform-origin: 0 0; transition: transform .9s cubic-bezier(.16, 1, .3, 1); }
#tbx-lp-airshow .as-pin__core { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--as-navy); background: var(--as-hud); box-shadow: 0 0 8px rgba(var(--as-hud-rgb), .9); padding: 0; cursor: pointer; }
#tbx-lp-airshow .as-pin.is-sale .as-pin__core { background: var(--as-orange); box-shadow: 0 0 10px var(--as-orange); }
#tbx-lp-airshow .as-pin__ripple { position: absolute; left: 0; top: 0; border-radius: 50%; border: 1.5px solid var(--as-hud); transform: translate(-50%, -50%); animation: as-ripple 2.6s cubic-bezier(.1, .6, .3, 1) infinite; pointer-events: none; }
#tbx-lp-airshow .as-pin.is-sale .as-pin__ripple { border-color: var(--as-orange); }
#tbx-lp-airshow .as-pin__ripple--2 { animation-delay: 1.3s; }
@keyframes as-ripple { 0% { width: 8px; height: 8px; opacity: .9; } 100% { width: 46px; height: 46px; opacity: 0; } }
#tbx-lp-airshow .as-pin__lock { position: absolute; left: -17px; top: -17px; width: 34px; height: 34px; opacity: 0; transform: scale(1.4); transition: .25s; pointer-events: none;
  background: linear-gradient(#fff, #fff) 0 0 / 9px 2px no-repeat, linear-gradient(#fff, #fff) 0 0 / 2px 9px no-repeat,
              linear-gradient(#fff, #fff) 100% 0 / 9px 2px no-repeat, linear-gradient(#fff, #fff) 100% 0 / 2px 9px no-repeat,
              linear-gradient(#fff, #fff) 0 100% / 9px 2px no-repeat, linear-gradient(#fff, #fff) 0 100% / 2px 9px no-repeat,
              linear-gradient(#fff, #fff) 100% 100% / 9px 2px no-repeat, linear-gradient(#fff, #fff) 100% 100% / 2px 9px no-repeat; }
#tbx-lp-airshow .as-pin:hover .as-pin__lock, #tbx-lp-airshow .as-pin.is-active .as-pin__lock { opacity: 1; transform: scale(1); }
#tbx-lp-airshow .as-pin__label { position: absolute; left: 12px; top: -11px; white-space: nowrap; font-size: 11px; font-weight: 700; color: #fff; background: rgba(10, 37, 64, .85); border: 1px solid rgba(var(--as-hud-rgb), .55); border-radius: 4px; padding: 1px 7px; opacity: 0; transition: .2s; pointer-events: none; }
#tbx-lp-airshow .as-pin__label.is-left { left: auto; right: 12px; }
#tbx-lp-airshow .as-radar.is-zoom .as-pin__label, #tbx-lp-airshow .as-pin:hover .as-pin__label, #tbx-lp-airshow .as-pin.is-active .as-pin__label { opacity: 1; }
#tbx-lp-airshow .as-pin.is-active .as-pin__label { border-color: var(--as-orange); background: var(--as-orange); }
#tbx-lp-airshow .as-pin.is-dim { opacity: .25; }

#tbx-lp-airshow .as-baselist { background: #fff; border: 1px solid var(--as-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; max-height: 520px; }
#tbx-lp-airshow .as-baselist__head { padding: 12px 16px; border-bottom: 1px solid var(--as-line); display: flex; justify-content: space-between; align-items: center; background: #FAFCFE; }
#tbx-lp-airshow .as-baselist__head h3 { font-size: 15px; color: var(--as-navy); }
#tbx-lp-airshow .as-baselist__count { font-family: var(--as-mono); font-size: 12px; color: var(--as-blue); border: 1px solid #BFDDF6; background: #EEF6FD; border-radius: 4px; padding: 1px 8px; }
#tbx-lp-airshow .as-baselist__body { overflow-y: auto; padding: 10px; display: grid; gap: 8px; align-content: start; }
#tbx-lp-airshow .as-base { border: 1px solid var(--as-line); border-radius: 10px; background: #fff; transition: .2s; }
#tbx-lp-airshow .as-base:hover { border-color: var(--as-sky); }
#tbx-lp-airshow .as-base.is-active { border-color: var(--as-orange); box-shadow: 0 0 0 3px rgba(255, 102, 0, .15); }
#tbx-lp-airshow .as-base__head { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 12px 14px; width: 100%; border: 0; background: transparent; text-align: left; cursor: pointer; color: inherit; }
#tbx-lp-airshow .as-base__name { font-weight: 900; font-size: 15px; color: var(--as-navy); }
#tbx-lp-airshow .as-base__event { grid-column: 1 / 2; font-size: 12px; color: var(--as-muted); }
#tbx-lp-airshow .as-base__date { grid-column: 1 / 2; font-family: var(--as-mono); font-size: 13px; color: var(--as-blue); }
#tbx-lp-airshow .as-base__date small { font-family: var(--as-font); font-size: 11px; color: var(--as-muted); }
#tbx-lp-airshow .as-base__st { grid-row: 1 / 3; grid-column: 2 / 3; align-self: center; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 3px 8px; white-space: nowrap; }
#tbx-lp-airshow .as-st--sale { background: var(--as-orange); color: #fff; }
#tbx-lp-airshow .as-st--none { background: #EEF1F5; color: var(--as-muted); }
#tbx-lp-airshow .as-base__more { margin: 0 14px 12px; padding-top: 8px; border-top: 1px dashed var(--as-line); font-size: 13px; }
#tbx-lp-airshow .as-base__more a { display: inline-block; margin: 2px 12px 2px 0; font-weight: 700; color: var(--as-blue); }
#tbx-lp-airshow .as-base__more p { color: var(--as-muted); font-size: 12px; }

/* ==========================================================================
   ツアーカード
   ========================================================================== */
#tbx-lp-airshow .as-filter { display: flex; gap: 8px 10px; flex-wrap: wrap; margin-bottom: 18px; align-items: center; }
#tbx-lp-airshow .as-filter label { font-size: 13px; font-weight: 700; color: var(--as-navy); }
#tbx-lp-airshow .as-filter select { font-family: inherit; font-size: 14px; padding: 8px 12px; border: 1px solid var(--as-line); border-radius: 8px; background: #fff; color: var(--as-text); max-width: 100%; }
#tbx-lp-airshow .as-filter__count { font-family: var(--as-mono); color: var(--as-blue); font-size: 13px; margin-left: auto; }
#tbx-lp-airshow .as-empty { background: var(--as-bg); border-radius: 12px; padding: 28px 16px; text-align: center; display: grid; gap: 14px; justify-items: center; }
#tbx-lp-airshow .as-cards { display: grid; gap: 18px; }
#tbx-lp-airshow .as-card__inner { background: #fff; border: 1px solid var(--as-line); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; height: 100%; }
#tbx-lp-airshow .as-card__img { position: relative; aspect-ratio: 3 / 2; background: #C7D9EA; }
#tbx-lp-airshow .as-card__img img { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-airshow .as-card__base { position: absolute; left: 10px; top: 10px; background: var(--as-navy); color: #fff; font-size: 12px; font-weight: 700; border-radius: 4px; padding: 2px 9px; }
#tbx-lp-airshow .as-card__body { padding: 16px 16px 18px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
#tbx-lp-airshow .as-card__name { font-size: 16px; font-weight: 900; color: var(--as-navy); line-height: 1.5; }
#tbx-lp-airshow .as-card__price { background: #FFF5EE; border-radius: 8px; padding: 8px 12px; }
#tbx-lp-airshow .as-card__price-l { font-size: 12px; color: var(--as-muted); }
#tbx-lp-airshow .as-card__price-v { font-size: 22px; font-weight: 900; color: var(--as-price); line-height: 1.3; }
#tbx-lp-airshow .as-card__price-n { font-size: 11px; color: var(--as-muted); }
#tbx-lp-airshow .as-card__meta { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; font-size: 13px; align-items: center; }
#tbx-lp-airshow .as-card__meta dt { color: var(--as-muted); }
#tbx-lp-airshow .as-card__meta dd { font-weight: 700; }
#tbx-lp-airshow .as-card__select { width: 100%; font-family: inherit; font-size: 14px; padding: 7px 10px; border: 2px solid var(--as-blue); border-radius: 8px; background: #fff; color: var(--as-text); }
#tbx-lp-airshow .as-card__text { font-size: 13px; color: #3A4756; }
#tbx-lp-airshow .as-card__cal-guide { font-size: 12px; color: var(--as-muted); background: var(--as-bg); border-radius: 8px; padding: 10px 12px; }
#tbx-lp-airshow .as-card__alert { font-size: 12px; color: #C0392B; font-weight: 700; }
#tbx-lp-airshow .as-card__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: auto; }
#tbx-lp-airshow .as-card__btn { text-align: center; text-decoration: none; font-weight: 700; font-size: 14px; border-radius: 8px; padding: 11px 6px; }
#tbx-lp-airshow .as-card__btn--detail { border: 2px solid var(--as-blue); color: var(--as-blue); }
#tbx-lp-airshow .as-card__btn--entry { background: var(--as-orange); color: #fff; border: 2px solid var(--as-orange); }
#tbx-lp-airshow .as-card__btn--entry:hover { background: var(--as-orange-d); color: #fff; }
#tbx-lp-airshow .as-card__btn.is-disabled { background: #E3E7EC; border-color: #E3E7EC; color: #9AA6B2; }
#tbx-lp-airshow .as-card__code { font-size: 11px; color: var(--as-muted); }

/* 出発日カレンダー */
#tbx-lp-airshow .as-cal { border: 1px solid var(--as-line); border-radius: 10px; padding: 10px; font-size: 12px; }
#tbx-lp-airshow .as-cal__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
#tbx-lp-airshow .as-cal__title { font-weight: 700; color: var(--as-navy); font-size: 13px; }
#tbx-lp-airshow .as-cal__sum strong { font-size: 14px; margin: 0 1px; }
#tbx-lp-airshow .as-cal__sum-k { color: var(--as-ok); }
#tbx-lp-airshow .as-cal__nav { display: flex; justify-content: space-between; align-items: center; margin: 4px 0; }
#tbx-lp-airshow .as-cal__nav-btn { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--as-line); background: #fff; font-size: 16px; cursor: pointer; }
#tbx-lp-airshow .as-cal__nav-btn:disabled { opacity: .3; cursor: default; }
#tbx-lp-airshow .as-cal__label { font-weight: 700; color: var(--as-navy); }
#tbx-lp-airshow .as-cal__label--single { text-align: center; margin: 4px 0; }
#tbx-lp-airshow .as-cal__caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
#tbx-lp-airshow .as-cal__table { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: center; }
#tbx-lp-airshow .as-cal__table th { font-weight: 400; color: var(--as-muted); font-size: 11px; padding: 2px 0; background: none; border: 0; }
#tbx-lp-airshow .as-cal__table td { padding: 1px; border: 0; background: none; height: 40px; vertical-align: middle; }
#tbx-lp-airshow .as-cal__table .is-sun { color: #C0392B; }
#tbx-lp-airshow .as-cal__table .is-sat { color: var(--as-blue); }
#tbx-lp-airshow .as-cal__num.is-off { color: #B6C1CD; }
#tbx-lp-airshow .as-cal__day { position: relative; width: 100%; height: 38px; border-radius: 6px; border: 1px solid #BFDDF6; background: #EEF6FD; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; color: var(--as-navy); padding: 0; }
#tbx-lp-airshow .as-cal__day .as-cal__num { font-weight: 700; font-size: 12px; }
#tbx-lp-airshow .as-cal__day .as-cal__mark { font-size: 11px; }
#tbx-lp-airshow .as-cal__day.is-ok .as-cal__mark { color: var(--as-ok); }
#tbx-lp-airshow .as-cal__day.is-few .as-cal__mark { color: #D97706; }
#tbx-lp-airshow .as-cal__day.is-full { background: #F3F4F6; border-color: #E5E7EB; }
#tbx-lp-airshow .as-cal__day.is-full .as-cal__mark { color: #9CA3AF; }
#tbx-lp-airshow .as-cal__day.is-ask .as-cal__mark { color: var(--as-muted); }
#tbx-lp-airshow .as-cal__day[aria-pressed="true"] { background: var(--as-navy); border-color: var(--as-navy); color: #fff; }
#tbx-lp-airshow .as-cal__day[aria-pressed="true"] .as-cal__mark { color: #fff; }
#tbx-lp-airshow .as-cal__star { position: absolute; top: 1px; right: 3px; font-size: 9px; color: #E0A100; font-style: normal; }
#tbx-lp-airshow .as-cal__legend { font-size: 10px; color: var(--as-muted); margin-top: 6px; }
#tbx-lp-airshow .as-cal__legend b { font-weight: 700; margin-left: 4px; }
#tbx-lp-airshow .as-cal__legend .is-ok { color: var(--as-ok); }
#tbx-lp-airshow .as-cal__legend .is-few { color: #D97706; }
#tbx-lp-airshow .as-cal__legend .as-cal__star { position: static; font-size: 10px; }
#tbx-lp-airshow .as-cal__detail { margin-top: 8px; background: var(--as-bg); border-radius: 8px; padding: 10px; }
#tbx-lp-airshow .as-cal__hint { color: var(--as-muted); }
#tbx-lp-airshow .as-cal__dtitle { font-weight: 700; color: var(--as-navy); margin-bottom: 4px; }
#tbx-lp-airshow .as-cal__ditem { border-top: 1px dashed var(--as-line); padding: 6px 0; display: grid; gap: 2px; }
#tbx-lp-airshow .as-cal__ditem:first-of-type { border-top: 0; }
#tbx-lp-airshow .as-cal__ditem .is-k { color: var(--as-ok); font-weight: 700; margin-left: 6px; }
#tbx-lp-airshow .as-cal__dprice { font-weight: 700; color: var(--as-price); }
#tbx-lp-airshow .as-cal__go { display: block; text-align: center; margin-top: 8px; background: var(--as-blue); color: #fff; text-decoration: none; font-weight: 700; border-radius: 8px; padding: 9px 6px; font-size: 13px; }
#tbx-lp-airshow .as-cal__go:hover { color: #fff; opacity: .9; }
#tbx-lp-airshow .as-cal__gonote { font-size: 10px; color: var(--as-muted); margin-top: 4px; }
#tbx-lp-airshow .as-cal__updated { font-size: 10px; color: var(--as-muted); margin-top: 6px; }
#tbx-lp-airshow .as-cal--ended .as-cal__msg { color: var(--as-muted); }

/* ==========================================================================
   横須賀軍港めぐり（送客バナー）
   ========================================================================== */
#tbx-lp-airshow .as-cross { padding: 0 0 64px; }
#tbx-lp-airshow .as-cross__micro { text-align: center; font-weight: 700; color: var(--as-navy); font-size: 15px; }
#tbx-lp-airshow .as-cross__micro2 { text-align: center; color: var(--as-blue); font-size: 13px; margin: 4px 0 12px; }
#tbx-lp-airshow .as-cross__banner { display: grid; gap: 16px; align-items: center; text-decoration: none; color: #fff; border-radius: 14px; padding: 22px 20px; background: linear-gradient(120deg, var(--as-navy) 0%, #0B5CAD 100%); box-shadow: 0 8px 20px rgba(10, 37, 64, .15); transition: transform .2s; }
#tbx-lp-airshow .as-cross__banner:hover { transform: translateY(-2px); color: #fff; }
#tbx-lp-airshow .as-cross__title { font-size: 22px; font-weight: 900; }
#tbx-lp-airshow .as-cross__title span { display: block; font-size: 14px; color: #FFD27A; }
#tbx-lp-airshow .as-cross__lead { font-size: 13px; color: #CFE4F7; margin: 4px 0 10px; }
#tbx-lp-airshow .as-cross__specs { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; font-size: 13px; }
#tbx-lp-airshow .as-cross__specs dt { color: var(--as-hud); }
#tbx-lp-airshow .as-cross__specs strong { font-size: 20px; color: #FFD27A; }
#tbx-lp-airshow .as-cross__specs small { display: block; font-size: 11px; color: #CFE4F7; }
#tbx-lp-airshow .as-cross__btn { display: block; text-align: center; background: var(--as-orange); color: #fff; font-weight: 700; border-radius: 999px; padding: 12px 20px; }

/* ==========================================================================
   航空祭スケジュール
   ========================================================================== */
#tbx-lp-airshow .as-sch { display: grid; gap: 16px; }
#tbx-lp-airshow .as-sc { background: #fff; border: 1px solid var(--as-line); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
#tbx-lp-airshow .as-sc__img { position: relative; aspect-ratio: 16 / 9; background: #C7D9EA; }
#tbx-lp-airshow .as-sc__img img { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-airshow .as-sc__date { position: absolute; left: 0; bottom: 0; background: rgba(10, 37, 64, .88); color: #fff; padding: 6px 14px 6px 12px; border-top-right-radius: 10px; font-family: var(--as-mono); line-height: 1.1; }
#tbx-lp-airshow .as-sc__date b { font-family: var(--as-num); font-size: 22px; margin-right: 4px; }
#tbx-lp-airshow .as-sc__date small { font-size: 12px; color: var(--as-hud); }
#tbx-lp-airshow .as-sc__badges { position: absolute; right: 10px; top: 10px; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
#tbx-lp-airshow .as-badge { font-style: normal; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 2px 8px; color: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .2); }
#tbx-lp-airshow .as-badge--sale { background: var(--as-orange); }
#tbx-lp-airshow .as-badge--bi { background: #0B5CAD; }
#tbx-lp-airshow .as-sc__body { padding: 16px 16px 18px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
#tbx-lp-airshow .as-sc__name { font-size: 18px; font-weight: 900; color: var(--as-navy); line-height: 1.4; }
#tbx-lp-airshow .as-sc__base { font-size: 12px; color: var(--as-muted); margin-top: -6px; }
#tbx-lp-airshow .as-sc__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
#tbx-lp-airshow .as-sc__fact { background: var(--as-bg); border-radius: 8px; padding: 6px 10px; }
#tbx-lp-airshow .as-sc__fact--wide { grid-column: 1 / 3; }
#tbx-lp-airshow .as-sc__fact dt { font-size: 11px; color: var(--as-muted); }
#tbx-lp-airshow .as-sc__fact dd { font-size: 13px; font-weight: 700; color: var(--as-navy); }
#tbx-lp-airshow .as-sc__fact small { display: block; font-size: 11px; color: #C0392B; font-weight: 400; }
#tbx-lp-airshow .as-sc__desc { font-size: 13px; color: #3A4756; }
#tbx-lp-airshow .as-sc__btns { margin-top: auto; display: grid; gap: 8px; }
#tbx-lp-airshow .as-sc__btn { display: block; text-align: center; text-decoration: none; font-weight: 700; font-size: 14px; border-radius: 8px; padding: 10px 6px; }
#tbx-lp-airshow .as-sc__btn--sale { background: var(--as-orange); color: #fff; }
#tbx-lp-airshow .as-sc__btn--sale:hover { color: #fff; background: var(--as-orange-d); }
#tbx-lp-airshow .as-sc__btn--page { border: 2px solid var(--as-blue); color: var(--as-blue); }
#tbx-lp-airshow .as-sc__btn--none { background: #EEF1F5; color: var(--as-muted); font-size: 13px; }
#tbx-lp-airshow .as-sc.is-past .as-sc__img { filter: grayscale(.7); opacity: .75; }
#tbx-lp-airshow .as-sc.is-past .as-sc__date { background: rgba(91, 107, 124, .9); }

/* ==========================================================================
   ブルーインパルス（予定表・演目）
   ========================================================================== */
#tbx-lp-airshow .as-bi { background: linear-gradient(160deg, #0B5CAD 0%, var(--as-navy) 100%); color: #fff; overflow: hidden; }
#tbx-lp-airshow .as-bi .as-h2 { color: #fff; }
#tbx-lp-airshow .as-bi .as-eyebrow { color: var(--as-hud); }
#tbx-lp-airshow .as-bi .as-lead { color: #CFE4F7; }
#tbx-lp-airshow .as-bi__tablewrap { overflow-x: auto; border-radius: 10px; }
#tbx-lp-airshow .as-bi__table { width: 100%; border-collapse: collapse; font-size: 13px; background: rgba(255, 255, 255, .06); min-width: 560px; }
#tbx-lp-airshow .as-bi__table th, #tbx-lp-airshow .as-bi__table td { padding: 9px 12px; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); text-align: left; color: #fff; background: none; }
#tbx-lp-airshow .as-bi__table th { font-weight: 700; color: var(--as-hud); font-size: 12px; background: rgba(10, 37, 64, .4); }
#tbx-lp-airshow .as-bi__table td:first-child { white-space: nowrap; font-family: var(--as-mono); }
#tbx-lp-airshow .as-bi__table tr.is-tour td { background: rgba(255, 102, 0, .22); }
#tbx-lp-airshow .as-bi__table tr.is-past td { opacity: .55; }
#tbx-lp-airshow .as-bi__tag { display: inline-block; font-size: 11px; background: var(--as-orange); color: #fff; border-radius: 3px; padding: 0 6px; margin-left: 4px; text-decoration: none; }
#tbx-lp-airshow .as-mn-wrap { margin-top: 56px; }
#tbx-lp-airshow .as-mn-check { display: inline-block; background: #FFF3CD; color: #7a5d00; font-size: 12px; font-weight: 700; border-radius: 4px; padding: 2px 8px; margin-bottom: 14px; }
#tbx-lp-airshow .as-tabs--dark .as-tab { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .3); color: #fff; }
#tbx-lp-airshow .as-tabs--dark .as-tab.is-active { background: #fff; color: var(--as-navy); border-color: #fff; }
#tbx-lp-airshow .as-mn-cond { font-size: 13px; color: #CFE4F7; margin-bottom: 16px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
#tbx-lp-airshow .as-mn-cond b { color: #fff; font-size: 15px; }
#tbx-lp-airshow .as-mn-cond span { flex-basis: 100%; }
#tbx-lp-airshow .as-mn-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
#tbx-lp-airshow .as-mn { width: 100%; height: 100%; background: #fff; color: var(--as-text); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; cursor: pointer; border: 0; padding: 0; text-align: left; transition: transform .2s, box-shadow .2s; }
#tbx-lp-airshow .as-mn:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0, 0, 0, .25); }
#tbx-lp-airshow .as-mn__img { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--as-navy2); overflow: hidden; }
#tbx-lp-airshow .as-mn__img img { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-airshow .as-mn__no { position: absolute; left: 8px; top: 8px; z-index: 1; font-family: var(--as-num); font-size: 12px; font-weight: 900; background: rgba(10, 37, 64, .85); color: var(--as-hud); border-radius: 4px; padding: 1px 7px; }
#tbx-lp-airshow .as-mn__body { display: block; padding: 10px 12px 12px; }
#tbx-lp-airshow .as-mn__name { display: block; font-size: 14px; font-weight: 900; color: var(--as-navy); line-height: 1.4; }
#tbx-lp-airshow .as-mn__en { display: block; font-family: var(--as-mono); font-size: 10px; color: var(--as-muted); letter-spacing: .04em; }
#tbx-lp-airshow .as-mn__planes { display: inline-block; font-size: 11px; font-weight: 700; color: var(--as-blue); background: #EEF6FD; border-radius: 4px; padding: 0 6px; margin-top: 4px; }
#tbx-lp-airshow .as-mn__text { display: none; font-size: 12px; color: var(--as-muted); margin-top: 6px; }
/* 拡大表示 */
#tbx-lp-airshow .as-lb { position: fixed; inset: 0; z-index: 1000; background: rgba(10, 37, 64, .92); display: flex; align-items: center; justify-content: center; padding: 16px; }
#tbx-lp-airshow .as-lb__box { position: relative; background: #fff; color: var(--as-text); border-radius: 14px; max-width: 860px; width: 100%; max-height: 92vh; overflow: auto; }
#tbx-lp-airshow .as-lb__img { position: relative; aspect-ratio: 16 / 10; background: var(--as-navy2); }
#tbx-lp-airshow .as-lb__img img { width: 100%; height: 100%; object-fit: contain; background: #000; }
#tbx-lp-airshow .as-lb__body { padding: 14px 18px 20px; }
#tbx-lp-airshow .as-lb__body h3 { color: var(--as-navy); font-size: 18px; margin: 2px 0 6px; }
#tbx-lp-airshow .as-lb__body p { font-size: 14px; margin-top: 8px; }
#tbx-lp-airshow .as-lb__close { position: absolute; right: 10px; top: 10px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(10, 37, 64, .85); color: #fff; font-size: 20px; cursor: pointer; }

/* ==========================================================================
   機体紹介
   ========================================================================== */
#tbx-lp-airshow .as-ac-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
#tbx-lp-airshow .as-ac { background: #fff; border: 1px solid var(--as-line); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
#tbx-lp-airshow .as-ac__img { position: relative; aspect-ratio: 3 / 2; background: var(--as-navy2); }
#tbx-lp-airshow .as-ac__img img { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-airshow .as-ac__flag { position: absolute; left: 10px; top: 10px; z-index: 1; font-style: normal; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 2px 8px; color: #fff; background: var(--as-blue); }
#tbx-lp-airshow .as-ac[data-org="us"] .as-ac__flag { background: #334155; }
#tbx-lp-airshow .as-ac__body { padding: 14px 16px 16px; }
#tbx-lp-airshow .as-ac__name { font-family: var(--as-num); font-weight: 900; font-size: 20px; color: var(--as-navy); letter-spacing: .02em; }
#tbx-lp-airshow .as-ac__type { font-size: 12px; color: var(--as-muted); margin-bottom: 8px; }
#tbx-lp-airshow .as-ac__text { font-size: 13px; margin-bottom: 10px; }
#tbx-lp-airshow .as-ac__bases-l { font-size: 11px; color: var(--as-muted); margin-bottom: 4px; }
#tbx-lp-airshow .as-ac__bases a { font-size: 12px; font-weight: 700; text-decoration: none; color: var(--as-blue); background: #EEF6FD; border-radius: 4px; padding: 2px 8px; display: inline-block; margin: 0 4px 4px 0; }
#tbx-lp-airshow .as-ac__bases a:hover { background: var(--as-blue); color: #fff; }

/* ==========================================================================
   添乗員リポート
   ========================================================================== */
#tbx-lp-airshow .as-reports { display: grid; gap: 14px; margin-top: 20px; }
#tbx-lp-airshow .as-report { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--as-line); border-radius: 12px; overflow: hidden; text-decoration: none; color: inherit; transition: .2s; }
#tbx-lp-airshow .as-report:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(10, 37, 64, .08); }
#tbx-lp-airshow .as-report__img { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--as-navy2); }
#tbx-lp-airshow .as-report__img img { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-airshow .as-report__body { display: block; padding: 12px 14px 14px; }
#tbx-lp-airshow .as-report__meta { display: flex; gap: 8px; align-items: center; font-size: 11px; color: var(--as-muted); }
#tbx-lp-airshow .as-report__meta em { font-style: normal; background: var(--as-navy); color: #fff; border-radius: 3px; padding: 0 6px; }
#tbx-lp-airshow .as-report__title { display: block; font-weight: 900; font-size: 15px; margin: 6px 0 4px; color: var(--as-navy); }
#tbx-lp-airshow .as-report__text { display: block; font-size: 13px; color: #3A4756; }

/* ==========================================================================
   よくある質問
   ========================================================================== */
#tbx-lp-airshow .as-faq { display: grid; gap: 10px; max-width: 880px; margin-top: 20px; }
#tbx-lp-airshow .as-faq details { background: #fff; border: 1px solid var(--as-line); border-radius: 10px; }
#tbx-lp-airshow .as-faq summary { list-style: none; cursor: pointer; padding: 14px 44px 14px 48px; font-weight: 700; color: var(--as-navy); position: relative; font-size: 15px; }
#tbx-lp-airshow .as-faq summary::-webkit-details-marker { display: none; }
#tbx-lp-airshow .as-faq summary::before { content: "Q"; position: absolute; left: 16px; top: 13px; font-family: var(--as-num); color: var(--as-blue); }
#tbx-lp-airshow .as-faq summary::after { content: "+"; position: absolute; right: 18px; top: 10px; font-size: 22px; color: var(--as-muted); }
#tbx-lp-airshow .as-faq details[open] summary::after { content: "−"; }
#tbx-lp-airshow .as-faq__a { padding: 0 18px 16px 48px; font-size: 14px; color: #3A4756; position: relative; }
#tbx-lp-airshow .as-faq__a::before { content: "A"; position: absolute; left: 16px; top: 0; font-family: var(--as-num); color: var(--as-orange); }
#tbx-lp-airshow .as-faq__a p + p, #tbx-lp-airshow .as-faq__a p + ul, #tbx-lp-airshow .as-faq__a ul + p { margin-top: 8px; }
#tbx-lp-airshow .as-faq__a ul { margin-top: 8px; display: grid; gap: 8px; }
#tbx-lp-airshow .as-faq__a li { padding-left: 1em; text-indent: -1em; }
#tbx-lp-airshow .as-faq__a li::before { content: "・"; }
#tbx-lp-airshow .as-faq__a strong { font-weight: 700; color: var(--as-navy); }

/* その他おすすめ特集（読み込みファイル） */
#tbx-lp-airshow .as-osusume { padding: 40px 16px 64px; max-width: 1120px; margin: 0 auto; }
#tbx-lp-airshow .as-osusume .recommend_tokusyu { font-size: 20px; font-weight: 900; color: var(--as-navy); text-align: center; margin-bottom: 16px; }

/* ==========================================================================
   画面幅ごと（モバイルファースト）
   ========================================================================== */
@media (min-width: 768px) {
  #tbx-lp-airshow .as-sec { padding: 84px 0; }
  #tbx-lp-airshow .as-points { grid-template-columns: repeat(3, 1fr); }
  #tbx-lp-airshow .as-cards { grid-template-columns: repeat(2, 1fr); }
  #tbx-lp-airshow .as-sch { grid-template-columns: repeat(2, 1fr); }
  #tbx-lp-airshow .as-ac-grid { grid-template-columns: repeat(2, 1fr); }
  #tbx-lp-airshow .as-reports { grid-template-columns: repeat(3, 1fr); }
  #tbx-lp-airshow .as-mn-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  #tbx-lp-airshow .as-mn__text { display: block; }
  #tbx-lp-airshow .as-hud__compass, #tbx-lp-airshow .as-hud__log { display: flex; flex-direction: column; }
  #tbx-lp-airshow .as-hud__log { flex-direction: row; }
  #tbx-lp-airshow .as-cross__banner { grid-template-columns: 1fr auto; padding: 26px 32px; }
  #tbx-lp-airshow .as-mv { height: 80vh; }
}
@media (min-width: 1024px) {
  #tbx-lp-airshow .as-console { grid-template-columns: 7fr 5fr; }
  #tbx-lp-airshow .as-baselist { max-height: none; height: 100%; }
  #tbx-lp-airshow .as-console > .as-baselist { position: relative; }
  #tbx-lp-airshow .as-baselist__body { position: absolute; top: 49px; bottom: 0; left: 0; right: 0; }
  #tbx-lp-airshow .as-cards { grid-template-columns: repeat(3, 1fr); }
  #tbx-lp-airshow .as-sch { grid-template-columns: repeat(3, 1fr); }
  #tbx-lp-airshow .as-ac-grid { grid-template-columns: repeat(4, 1fr); }
  #tbx-lp-airshow .as-mn-grid { grid-template-columns: repeat(4, 1fr); }
  #tbx-lp-airshow .as-hud__tape { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
  #tbx-lp-airshow *, #tbx-lp-airshow *::before, #tbx-lp-airshow *::after { animation: none !important; transition: none !important; }
}

/* 追記①（2026-11-09）販売状況の表示（販売終了・販売予定なし） */
#tbx-lp-airshow .as-badge--ended { background: #5B6B7C; }
#tbx-lp-airshow .as-base__st.as-st--ended { background: #5B6B7C; color: #fff; }
#tbx-lp-airshow .as-base__st.as-st--none { background: #EEF1F5; color: var(--as-muted); }
#tbx-lp-airshow .as-sc__btn--none.as-st--ended { background: #E6E9EE; color: #3A4756; }

/* 追記②（2026-11-09）横須賀軍港めぐりバナー：背景を写真（img/yokosuka.jpg）に。文字が読めるよう左側を濃いネイビーで重ねる */
#tbx-lp-airshow .as-cross__banner {
  background: linear-gradient(90deg, rgba(11, 34, 64, .9) 0%, rgba(11, 34, 64, .7) 50%, rgba(11, 34, 64, .4) 100%), url("../img/yokosuka.jpg") no-repeat center / cover;
  min-height: 280px;
}

/* 追記③（2026-11-11）ブルーインパルスの演目：プログラム表（案1）＋写真の拡大表示 */
#tbx-lp-airshow .as-pg { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: none; }
#tbx-lp-airshow .as-pg__row { margin: 0; break-inside: avoid; }
#tbx-lp-airshow .as-pg__item { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 8px 10px 8px 12px; border: 1px solid rgba(255, 255, 255, .16); border-radius: 10px; background: rgba(255, 255, 255, .06); color: #fff; text-align: left; font: inherit; }
#tbx-lp-airshow .as-pg__row.has-photo .as-pg__item { background: #fff; color: var(--as-text); border-color: #fff; cursor: pointer; transition: transform .15s, box-shadow .15s; }
#tbx-lp-airshow .as-pg__row.has-photo .as-pg__item:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0, 0, 0, .25); }
#tbx-lp-airshow .as-pg__no { flex: none; width: 34px; text-align: center; font-family: var(--as-num); font-weight: 900; font-size: 15px; color: var(--as-hud); }
#tbx-lp-airshow .as-pg__row.has-photo .as-pg__no { color: var(--as-blue); }
#tbx-lp-airshow .as-pg__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
#tbx-lp-airshow .as-pg__name { font-size: 14px; font-weight: 700; line-height: 1.5; }
#tbx-lp-airshow .as-pg__row.has-photo .as-pg__name { color: var(--as-navy); }
#tbx-lp-airshow .as-pg__or { font-style: normal; margin: 0 4px; opacity: .55; }
#tbx-lp-airshow .as-pg__hint { font-size: 11px; opacity: .7; }
#tbx-lp-airshow .as-pg__badge { align-self: flex-start; font-style: normal; font-size: 11px; font-weight: 700; color: #fff; background: #C0392B; border-radius: 4px; padding: 1px 8px; }
#tbx-lp-airshow .as-pg__row.is-special .as-pg__item { border: 2px solid #E8B4AE; }
#tbx-lp-airshow .as-pg__row.is-special .as-pg__no { color: #C0392B; }
#tbx-lp-airshow .as-pg__thumb { position: relative; flex: none; width: 96px; aspect-ratio: 3 / 2; border-radius: 6px; overflow: hidden; background: var(--as-navy2); }
#tbx-lp-airshow .as-pg__thumb img { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-airshow .as-pg__count { position: absolute; right: 3px; bottom: 3px; font-size: 10px; font-weight: 700; color: #fff; background: rgba(10, 37, 64, .85); border-radius: 3px; padding: 0 5px; }
#tbx-lp-airshow .as-mn-note { font-size: 12px; color: #CFE4F7; margin-top: 16px; }
#tbx-lp-airshow .as-lb__stage { position: relative; }
#tbx-lp-airshow .as-lb__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 42px; height: 42px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .9); color: var(--as-navy); font-size: 24px; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .3); }
#tbx-lp-airshow .as-lb__nav--prev { left: 10px; }
#tbx-lp-airshow .as-lb__nav--next { right: 10px; }
#tbx-lp-airshow .as-lb__thumbs { display: flex; gap: 6px; padding: 10px 18px 0; overflow-x: auto; }
#tbx-lp-airshow .as-lb__thumbs button { flex: none; width: 72px; aspect-ratio: 3 / 2; padding: 0; border: 2px solid transparent; border-radius: 4px; overflow: hidden; background: var(--as-navy2); cursor: pointer; }
#tbx-lp-airshow .as-lb__thumbs button.is-on { border-color: var(--as-orange); }
#tbx-lp-airshow .as-lb__thumbs img { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-airshow .as-lb__no { font-family: var(--as-mono); font-size: 12px; color: var(--as-muted); margin: 0; }
#tbx-lp-airshow .as-lb__variant { font-size: 13px; font-weight: 700; color: var(--as-blue); margin-top: 4px; }
#tbx-lp-airshow .as-lb__cap { font-size: 12px; color: var(--as-muted); margin-top: 2px; }
@media (min-width: 1024px) {
  #tbx-lp-airshow .as-pg { display: block; columns: 2; column-gap: 16px; }
  #tbx-lp-airshow .as-pg__row { margin-bottom: 6px; }
}

/* ==========================================================================
   追記④（2026-11-12）航空祭スケジュール：年の区切り・ブルーインパルス「発表予定」・前回の来場者数
   ========================================================================== */
#tbx-lp-airshow .as-sch__year { grid-column: 1 / -1; list-style: none; display: flex; align-items: center; gap: 12px; margin: 8px 0 -4px; }
#tbx-lp-airshow .as-sch__year:first-child { margin-top: 0; }
#tbx-lp-airshow .as-sch__year span { font-family: var(--as-num); font-size: 24px; font-weight: 900; color: var(--as-navy); letter-spacing: .04em; }
#tbx-lp-airshow .as-sch__year::after { content: ""; flex: 1; height: 2px; background: linear-gradient(90deg, var(--as-blue), rgba(11, 92, 173, 0)); }
#tbx-lp-airshow .as-sc__yy { display: block; font-size: 10px; color: var(--as-hud); letter-spacing: .08em; margin-bottom: 2px; }
#tbx-lp-airshow .as-sc__bitbd { background: #EAF2FB; color: #0B5CAD; border-left: 4px solid #0B5CAD; border-radius: 4px; padding: 5px 10px; font-size: 12px; font-weight: 700; line-height: 1.5; }
#tbx-lp-airshow .as-sc__fact dd small.as-sc__vy { display: inline; color: var(--as-muted); font-weight: 400; }
#tbx-lp-airshow .as-sch__note { background: #fff; border: 1px solid var(--as-line); border-left: 4px solid #0B5CAD; border-radius: 8px; padding: 10px 14px; font-size: 13px; color: var(--as-navy); margin: 0 0 16px; }
/* ==========================================================================
   追記⑤（2026-11-12）地図：入間・横田の基地名の重なり／基地名もタップできるように
   ========================================================================== */
/* 入間は左上、横田は左下にずらす（2つの点が近いため） */
#tbx-lp-airshow .as-pin[data-base="iruma"] .as-pin__label { top: -25px; }
#tbx-lp-airshow .as-pin[data-base="yokota"] .as-pin__label { top: 1px; }
/* 千歳は「全体表示に戻す」ボタンと重なるので左側に出す */
#tbx-lp-airshow .as-pin[data-base="chitose"] .as-pin__label { left: auto; right: 12px; }
/* エリア表示中、ほかのエリアの基地名は出さない（薄い文字が重なるため） */
#tbx-lp-airshow .as-radar.is-zoom .as-pin.is-dim .as-pin__label { opacity: 0; }
/* 基地名が見えているときは、基地名を押しても選べる */
#tbx-lp-airshow .as-radar.is-zoom .as-pin:not(.is-dim) .as-pin__label,
#tbx-lp-airshow .as-pin.is-active .as-pin__label { pointer-events: auto; cursor: pointer; }
#tbx-lp-airshow .as-radar.is-zoom .as-pin:not(.is-dim) .as-pin__label:hover { border-color: var(--as-orange); }
/* 〇の押せる範囲を広げる（見た目の大きさは変えない） */
#tbx-lp-airshow .as-pin__core::before { content: ""; position: absolute; left: 50%; top: 50%; width: 28px; height: 28px; transform: translate(-50%, -50%); border-radius: 50%; }
/* エリア表示中、ほかのエリアの基地（薄い〇）は押せないようにする（近くの基地名を押したときに誤って反応しないため） */
#tbx-lp-airshow .as-radar.is-zoom .as-pin.is-dim, #tbx-lp-airshow .as-radar.is-zoom .as-pin.is-dim .as-pin__core { pointer-events: none; }

/* スマートフォン：レーダーの波紋をゆっくり・小さめに（地図が小さく、動きが速く見えるため） */
@media (max-width: 767px) {
  #tbx-lp-airshow .as-pin__ripple { animation-name: as-ripple-sp; animation-duration: 4.2s; }
  #tbx-lp-airshow .as-pin__ripple--2 { animation-delay: 2.1s; }
  #tbx-lp-airshow .as-radar__sweep { animation-duration: 11s; }
}
@keyframes as-ripple-sp { 0% { width: 8px; height: 8px; opacity: .8; } 100% { width: 34px; height: 34px; opacity: 0; } }