@charset "UTF-8";

/* =========================================================
   アメリカ よくあるご質問  -  page-usa-faq.php
   namespace: .p-usafaq-hero（FV） / .p-usafaq（本文）

   カード・トグル・配色は JP よくあるご質問（css/jp-faq.css）に合わせている。
   違いはカテゴリの切り替え方だけで、JP はページ内アンカー、こちらは旧ページと
   同じタブ切り替えを維持している。
   ========================================================= */

/* ---------------------------------------------------------
   FV（Route66の背景写真＋中央寄せの見出し）
   旧ページは見出しと説明文が画像（title.png / sub_title.png）で、
   縦位置がずれていた。テキストに置き換えて上下左右とも中央に揃える。
   --------------------------------------------------------- */
.p-usafaq-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* 高さは画面幅に追従させつつ、上下に振れすぎないよう幅を持たせる */
  height: 32vw;
  min-height: 380px;
  max-height: 560px;
  overflow: hidden;
  color: #fff;
}

.p-usafaq-hero *,
.p-usafaq-hero *::before,
.p-usafaq-hero *::after {
  box-sizing: border-box;
}

.p-usafaq-hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  /* Route66のマークが下寄りなので、切り抜きも気持ち下側を残す */
  object-position: center 55%;
  z-index: 0;
}

/* 白文字が Route66 のマークや路面の明るい部分に重なると読めなくなるため、
   中央だけ軽く落とす。写真の色味は端に向かってそのまま残す */
.p-usafaq-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at center,
      rgba(0, 0, 0, 0.45) 0%,
      rgba(0, 0, 0, 0.3) 45%,
      rgba(0, 0, 0, 0.08) 100%);
  z-index: 1;
}

/* .inner（max-width:1240px / margin:0 auto）を中央寄せの受け皿として使う */
.p-usafaq-hero > .inner {
  position: relative;
  z-index: 2;
}

.p-usafaq-hero__body {
  text-align: center;
  padding: 0 20px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}

.p-usafaq-hero__title {
  margin: 0 0 26px;
  font-weight: 800;
}

.p-usafaq-hero__title-en {
  display: block;
  font-size: 64px;
  line-height: 1.1;
  letter-spacing: 0.04em;
}

.p-usafaq-hero__title-ja {
  display: block;
  margin-top: 10px;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.p-usafaq-hero__lead {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 2.1;
}

/* ---------------------------------------------------------
   本文
   --------------------------------------------------------- */
.p-usafaq {
  --color-text: #1a1a1a;
  --color-text-sub: #555;
  /* accent red（このページのメインカラー） */
  --color-accent: #e63312;
  /* brand red（選択中タブ・hover等。--color-accent とは別トーン） */
  --color-brand: #cf0616;
  --color-mark: #a5a5a5;
  --color-border: #e2e2e2;
  --radius: 12px;

  display: block;
  max-width: 1000px;
  margin: 0 auto;
  padding: 56px 20px 96px;
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

.p-usafaq *,
.p-usafaq *::before,
.p-usafaq *::after {
  box-sizing: border-box;
}

/* 共通スタイルの見出し装飾（黄色の縦線・枠線）を持ち込まない */
.inner .p-usafaq__h2,
.inner .p-usafaq__h3,
.inner .p-usafaq__q,
.inner .p-usafaq__q h4 {
  border: none;
  background: none;
  padding: 0;
  letter-spacing: 0;
  color: var(--color-text);
}

/* ---------------------------------------------------------
   カテゴリタブ
   --------------------------------------------------------- */
.p-usafaq__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 0 0 48px;
}

.inner .p-usafaq__tab {
  display: block;
  padding: 11px 22px;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-text);
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.inner .p-usafaq__tab:hover,
.inner .p-usafaq__tab:focus-visible {
  color: #fff;
  background: var(--color-brand);
  border-color: var(--color-brand);
}

/* 選択中のタブ。JPのアンカーナビと違い「いまどこを見ているか」が
   タブ以外に手がかりがないため、塗りつぶしではっきり示す */
.inner .p-usafaq__tab[aria-selected="true"] {
  color: #fff;
  background: var(--color-accent);
  border-color: var(--color-accent);
}

/* ---------------------------------------------------------
   パネル
   --------------------------------------------------------- */
.p-usafaq__panel {
  /* 固定ヘッダー分のスクロール位置オフセット
     （--el-header-h は header.php が実測して同期する） */
  scroll-margin-top: calc(var(--el-header-h, 217px) + 16px);
}

/* style.css のリセットに section{display:block} があり、
   ブラウザ既定の [hidden]{display:none} を打ち消してしまう。
   パネルは section なので、選択外を隠す指定を明示的に持たせる */
.p-usafaq__panel[hidden] {
  display: none;
}

.inner .p-usafaq__h2 {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.4;
  margin: 0 0 24px;
}

.p-usafaq__group + .p-usafaq__group {
  margin-top: 48px;
}

.inner .p-usafaq__h3 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 16px;
  padding-left: 14px;
  border-left: 4px solid var(--color-accent);
}

.p-usafaq__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-usafaq__item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: #fff;
  margin: 0 0 12px;
  transition: border-color 0.2s ease;
}

.p-usafaq__item::before {
  content: none;
}

.p-usafaq__item:last-child {
  margin-bottom: 0;
}

.p-usafaq__item:hover {
  border-color: #cfcfcf;
}

/* ---- 質問（開閉ボタン） ---- */
.p-usafaq__q {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.p-usafaq__q-btn {
  width: 100%;
  display: flex;
  /* 質問文が折り返しても「Q」が1行目に揃うようにする */
  align-items: flex-start;
  gap: 18px;
  padding: 26px 28px;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: var(--color-text);
}

/* Q / A のマーカーは擬似要素で出す。
   見出しのテキストを質問文だけに保ち、AIクローラーや読み上げに
   「Q」が混ざらないようにするため、DOMには持たせない */
.p-usafaq__q-btn::before,
.p-usafaq__a-inner::before {
  content: "Q";
  flex-shrink: 0;
  width: 22px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-mark);
  text-align: center;
}

.p-usafaq__a-inner::before {
  content: "A";
  color: var(--color-accent);
}

.p-usafaq__q-text {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.6;
}

/* 質問に添えられた注記（旧ページで dt の中に入っていたもの） */
.p-usafaq__q-note {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.7;
  color: var(--color-text-sub);
}

/* ---- ＋ / − トグル ---- */
.p-usafaq__toggle {
  flex-shrink: 0;
  /* 質問文が複数行になっても、ボタンはカードの高さの中央に置く */
  align-self: center;
  position: relative;
  display: inline-block;
  width: 44px;
  height: 26px;
  border: 1px solid var(--color-accent);
  border-radius: 999px;
  transition: background-color 0.2s ease;
}

.p-usafaq__toggle-bar {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 1.5px;
  background: var(--color-accent);
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* 2本目を縦にして「＋」にする。開いているときは消して「−」にする */
.p-usafaq__toggle-bar:last-child {
  transform: translate(-50%, -50%) rotate(90deg);
}

.p-usafaq__q-btn[aria-expanded="true"] .p-usafaq__toggle-bar:last-child {
  transform: translate(-50%, -50%) rotate(0deg);
  opacity: 0;
}

/* ---- 回答 ---- */
/* max-height での開閉。display:none を使わないことで、
   閉じている状態でも回答テキストがHTML内に残りクローラーから読める */
.p-usafaq__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}

/* JSが動く前でも初期表示の1問目が開いて見えるようにするフォールバック。
   JSは開いた時点で実寸の max-height をインラインで上書きする */
.p-usafaq__item.is-open .p-usafaq__a {
  max-height: 4000px;
}

.p-usafaq__a-inner {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin: 0 28px;
  padding: 22px 0 26px;
  border-top: 1px solid var(--color-border);
}

.p-usafaq__a-body {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  line-height: 1.95;
  color: #333;
}

.p-usafaq__a-body a {
  color: var(--color-accent);
  text-decoration: underline;
}

.p-usafaq__a-body a:hover {
  opacity: 0.7;
}

/* 旧ページから引き継いだ本文中のクラス */
.p-usafaq__a-body .red {
  color: var(--color-accent);
}

.p-usafaq__a-body ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-usafaq__a-body ul li + li {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px dashed var(--color-border);
}

.p-usafaq__a-body ul li::before {
  content: none;
}

/* 「⇒ロサンゼルス」のような地名見出し。続く本文とは行を分ける */
.p-usafaq__a-body .title {
  display: block;
  margin-bottom: 4px;
  font-weight: 700;
  color: var(--color-text);
}

/* ---------------------------------------------------------
   SP
   --------------------------------------------------------- */
@media (max-width: 768px) {
  .p-usafaq-hero {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 4 / 3;
  }

  .p-usafaq-hero__title {
    margin-bottom: 16px;
  }

  .p-usafaq-hero__title-en {
    font-size: 38px;
  }

  .p-usafaq-hero__title-ja {
    margin-top: 6px;
    font-size: 18px;
  }

  .p-usafaq-hero__lead {
    font-size: 13px;
    line-height: 1.95;
  }

  .p-usafaq-hero__br {
    display: none;
  }

  .p-usafaq {
    padding: 32px 16px 56px;
  }

  /* タブは折り返さず横スクロール。左右の余白いっぱいまで使う */
  .p-usafaq__tabs {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 0 -16px 32px;
    padding: 2px 16px;
    gap: 8px;
  }

  .p-usafaq__tabs::-webkit-scrollbar {
    display: none;
  }

  .inner .p-usafaq__tab {
    padding: 9px 16px;
    font-size: 14px;
  }

  .inner .p-usafaq__h2 {
    font-size: 22px;
    margin-bottom: 16px;
  }

  .p-usafaq__group + .p-usafaq__group {
    margin-top: 36px;
  }

  .inner .p-usafaq__h3 {
    font-size: 18px;
    margin-bottom: 12px;
    padding-left: 10px;
    border-left-width: 3px;
  }

  .p-usafaq__q-btn {
    gap: 10px;
    padding: 18px 16px;
  }

  .p-usafaq__q-btn::before,
  .p-usafaq__a-inner::before {
    width: 16px;
    font-size: 17px;
  }

  .p-usafaq__q-text {
    font-size: 15px;
  }

  .p-usafaq__toggle {
    width: 36px;
    height: 22px;
  }

  .p-usafaq__toggle-bar {
    width: 10px;
  }

  .p-usafaq__a-inner {
    gap: 10px;
    margin: 0 16px;
    padding: 16px 0 20px;
  }

  .p-usafaq__a-body {
    font-size: 14px;
    line-height: 1.9;
  }
}

@media (prefers-reduced-motion: reduce) {

  .p-usafaq__a,
  .p-usafaq__toggle-bar,
  .inner .p-usafaq__tab {
    transition: none;
  }
}
