/* VISION24 | common.css (24h) */
/* VISION24 | common.css — 共通コンポーネント
       ヘッダー / ドロップダウン / フッター / ページトップ /
       汎用ボタン / 見出し / セクションナビ / 共通テーブル */

    /* ── セクション見出し（黒帯＋斜体EN） ── */
    .sec-ttl {
      text-align: center;
      margin: 0 0 clamp(39px, 5.2vw, 60px)
    }

    .sec-ttl__en {
      display: block;
      font-family: var(--f-en);
      font-weight: 700;
      font-style: italic;
      font-size: var(--ttl-en-size);
      line-height: 1.1;
      letter-spacing: .01em;
      margin: 0 0 8px;
      color: var(--ink-black)
    }

    /* 英語見出しのマスク表示：枠で下側を隠し、内側spanを下から上へスライドアップ */
    .sec-ttl__en {
      overflow: hidden;
      padding-bottom: .08em
    }

    .reveal-up__inner {
      display: inline-block;
      transform: translateY(105%);
    }

    .sec-ttl.is-revealed .reveal-up__inner {
      transform: translateY(0);
      transition: transform .8s cubic-bezier(.25, 1, .5, 1);
    }
    @media (prefers-reduced-motion:reduce) {
    .reveal-up__inner {
        transform: none
      }
    }

    .sec-ttl__jp {
      display: inline-block;
      font-size: clamp(1.05rem, 2.2vw, 1.3rem);
      font-weight: 900;
      margin: 0;
      border-top: 3px solid var(--ink-sub);
      padding-top: 10px
    }

    .sec-ttl__lead {
      margin: 14px auto 0;
      max-width: 44em;
      font-size: .88rem;
      color: var(--ink-gray)
    }

    .sec-ttl--onblack .sec-ttl__en {
      color: var(--ink-white)
    }

    .sec-ttl--onblack .sec-ttl__jp {
      color: var(--ink-white)
    }

    .sec-ttl--onblack .sec-ttl__lead {
      color: rgba(255, 255, 255, .72)
    }

    /* ── ボタン ── */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .4em;
      padding: 16px 34px;
      border: 2px solid var(--ink-black);
      border-radius: var(--r);
      background: var(--fill-white);
      color: var(--ink-black);
      font-family: var(--f);
      font-weight: 900;
      font-size: .95rem;
      text-decoration: none;
      text-align: center;
      cursor: pointer;
      transition: opacity .3s ease, background-color 1s ease
    }

    .btn:hover {
      opacity: .85

    }

    .btn--primary {
      background: var(--fill-yellow);
      border-color: var(--ink-yellow)
    }

    .btn--primary:hover {
      background-image: linear-gradient(rgba(0, 0, 0, .10), rgba(0, 0, 0, .10));
      border-color: var(--fill-yellow-deep)
    }

    .btn--onblack {
      border-color: var(--ink-white);
      color: var(--ink-white);
      background: transparent
    }

    .btn--onblack:hover {
      background: var(--fill-white);
      color: var(--ink-black)
    }

    .btn--lg {
      padding: 19px 46px;
      font-size: 1.05rem
    }

    .btn--block {
      width: 100%
    }

    .btn-row {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 20px
    }

    .btn-row--center {
      justify-content: center
    }

    .link-arrow {
      display: inline-block;
      font-weight: 900;
      font-size: .86rem;
      text-decoration: none;
      border-bottom: 2px solid var(--ink-sub);
      padding-bottom: 2px;
      margin: 0 1.2em .5em 0;
      transition: all 1s ease;
    }

    .link-arrow:hover {
      color: var(--ink-sub);               /* ← ホバー時の文字色 */

    }

    /* ── ヘッダー ── */
    .site-header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 50;
      transition: background-color .3s ease, border-color .3s;
    }

    .site-header__inner {
      display: flex;
      align-items: center;
      gap: 16px;
      min-height: 72px;
    }

      .site-header__logo {
      display: inline-flex;
      align-items: center;
      text-decoration: none;
      font-size: 10px;
      color: var(--ink-white);

    }

    .site-header__logo-img {
      height: 48px; /* ロゴの高さに合わせて調整してください */
      width: auto;
      display: block;

      content: url("/wp-content/themes/my-custom-theme/assets/images/24h/common/logo-white.svg");
      transition: height .3s ease, content .3s ease;
    }

    .site-header__nav {
      margin-left: auto;
      display: flex;
      align-items: center;
      gap: 26px;
    }

    .site-header__nav a {
      text-decoration: none;
      color: var(--ink-white);
      font-size: .76rem;
      font-weight: 700;
      letter-spacing: .04em;
      transition: color .3s;
    }

    .site-header__cta {
      padding: 11px 24px;
      font-size: .78rem;
    }

    /* スクロール後（白背景化）の共通スタイル */
    .site-header.is-solid {
      background: rgba(255, 255, 255, .96);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--ink-line);
    }

    .site-header.is-solid .site-header__logo,
    .site-header.is-solid .site-header__nav a,
    .site-header.is-solid .nav-dropdown__trigger {
      color: var(--ink-black);
    }

    .site-header.is-solid .site-header__logo-img {
    content: url("/wp-content/themes/my-custom-theme/assets/images/24h/common/logo-black.svg");
    }

    .site-header.is-solid .site-header__nav a:not(.btn):hover,
    .site-header.is-solid .nav-dropdown__trigger:hover {
      color: var(--ink-accent);
    }

    .site-header__nav .btn--primary {
      color: var(--ink-black);
    }

    .site-header.is-solid .btn--primary {
      color: var(--ink-black);
    }

    .nav-toggle,
    .hamburger {
      display: none;
    }

    /* ── ドロップダウンメニュー（PCデフォルト表示） ── */
    .nav-dropdown {
      position: relative;
      display: inline-block;
    }

    /* トリガーボタン（リンクと見た目を合わせる） */
    .nav-dropdown__trigger {
      background: none;
      border: none;
      color: var(--ink-white);
      /* 通常時は白文字 */
      font-size: .76rem;
      font-weight: 700;
      letter-spacing: .04em;
      cursor: pointer;
      padding: 0;
      display: flex;
      align-items: center;
      gap: 4px;
      transition: color .3s;
    }

    .nav-dropdown__arrow {
      font-size: 0.8em;
      transition: transform 0.3s ease;
    }

    /* サブメニュー（PC用浮遊メニュー） */
    .nav-dropdown__menu {
      display: none;
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      background-color: var(--fill-white);
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
      min-width: 160px;
      border-radius: var(--r-sm);
      padding: 8px 0;
      margin-top: 10px;
      /* 少し下に浮かせる */
      z-index: 100;
    }

    /* サブメニューの中のリンク */
    .nav-dropdown__menu a {
      display: block;
      padding: 10px 20px !important;
      /* スマホ用スタイルの打ち消し */
      color: var(--ink-black) !important;
      /* 常に濃い文字色 */
      text-decoration: none;
      text-align: center;
      font-size: .76rem;
      font-weight: 700;
      border-top: none !important;
      /* スマホ用の線を消す */
      transition: background-color 0.2s ease, color 0.2s;
    }

    .nav-dropdown__menu a:hover {
      background-image: linear-gradient(rgba(0, 0, 0, .04), rgba(0, 0, 0, .04));
      color: var(--ink-accent) !important;
    }

    /* アクティブ時の状態 */
    .nav-dropdown.is-active .nav-dropdown__menu {
      display: block;
    }

    .nav-dropdown.is-active .nav-dropdown__arrow {
      transform: rotate(180deg);
    }
    @media (max-width: 900px) {
    .hamburger {
        display: inline-flex;
        margin-left: auto;
        font-size: 1.4rem;
        cursor: pointer;
        line-height: 1;
        padding: 8px;
        color: var(--ink-white);
      }.site-header.is-solid .hamburger {
        color: var(--ink-black);
      }.site-header__nav {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        background: rgba(255, 255, 255, .98);
        border-bottom: 1px solid var(--ink-line);
        display: none;
      }.site-header__nav a {
        padding: 16px var(--pad);
        border-top: 1px solid var(--ink-line);
        color: var(--ink-black);
      }.site-header__nav .btn {
        margin: 14px var(--pad);
      }.nav-toggle:checked~.site-header__nav {
        display: flex;
      }.nav-dropdown {
        display: block;
        width: 100%;
        border-top: 1px solid var(--ink-line);
        /* リンクと並ぶ枠線 */
      }.nav-dropdown__trigger {
        width: 100%;
        justify-content: space-between;
        padding: 16px var(--pad);
        color: var(--ink-black);
        /* スマホメニュー内は常に暗色文字 */
        box-sizing: border-box;
      }.nav-dropdown__menu {
        position: static;
        transform: none;
        box-shadow: none;
        width: 100%;
        padding: 0;
        background-color: var(--fill-white);
        /* 階層がわかりやすいよう少しグレーに */
        border-radius: 0;
        margin-top: 0;
      }.nav-dropdown__menu a {
        padding: 14px calc(var(--pad) + 16px) !important;
        /* 少し右にインデント */
        text-align: left;
        border-top: 1px solid rgba(0, 0, 0, 0.05) !important;
        /* 細い区切り線 */
      }
    }

    /* 一番左：見出しカード */

    /* 写真カード */

    /* 設備カードの写真：枠いっぱいにcoverで敷く。画像が無ければ下のグレー背景が見える */

    /* 画像読込前・欠損時に枠を確保（グレー背景）してズレ防止 */

    /* 配る前：ラベルカードの上に重ねる（左端に山札がある状態） */

    /* SPは6枚並ばないので横スクロール。配る動きはそのまま活きる */

    /* 動きを減らす設定の人には配らない */

    /* ── フッター ── */
    .site-footer {
      background: var(--fill-black);
      color: rgba(255, 255, 255, .68);
      font-size: .82rem
    }

    .site-footer .container {
      padding-block: 66px
    }

    .site-footer__grid {
      display: grid;
      grid-template-columns: 1.3fr 1fr;
      gap: var(--gap) 44px
    }

    .site-footer strong {
      color: var(--ink-white);
      font-weight: 900
    }

    .site-footer__links,
    .site-footer__legal {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 18px;
      padding: 0;
      margin: 0 0 16px;
      list-style: none
    }

    .site-footer__links a,
    .site-footer__legal a {
      text-decoration: none;
      color: rgba(255, 255, 255, .68);
      font-weight: 700
    }

    .site-footer__links a:hover,
    .site-footer__legal a:hover {
      color: var(--ink-yellow)
    }

    .site-footer__legal {
      font-size: .74rem;
      margin-bottom: 0
    }

    .site-footer__copy {
      margin: 24px 0 0;
      padding-top: 18px;
      border-top: 1px solid rgba(255, 255, 255, .14);
      color: rgba(255, 255, 255, .42);
      font-size: .74rem
    }
    @media (max-width:767px) {
    .site-footer__grid {
        grid-template-columns: 1fr
      }
    }

    /* ページトップへ戻るボタン */
    .page-top-btn {
      position: fixed;
      right: 20px;
      bottom: 80px;
      width: 50px;
      height: 50px;
      background-color: var(--fill-yellow);
      border-radius: 50%;
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.3s ease, background-color 0.3s ease;
      text-decoration: none;
    }

    /* 疑似要素で「黒の上矢印」を作成 */
    .page-top-btn::after {
      content: "";
      width: 10px;
      height: 10px;
      border-top: 3px solid var(--ink-black);
      border-right: 3px solid var(--ink-black);
      transform: rotate(-45deg);
      margin-top: 4px;
      /* 矢印の位置の微調整 */
    }
    @media (hover: hover) {
    .page-top-btn:hover {
        transform: translateY(-5px);
        background-image: linear-gradient(rgba(0, 0, 0, .10), rgba(0, 0, 0, .10));
        /* ホバー時に少し濃い黄色に */
      }
    }

    /* ── セクションナビ（スクロール後はヘッダー下に貼り付く） ── */
    .vision-sec-nav {
      position: sticky; top: var(--header-h, 73px); z-index: 40;
      background: var(--fill-white);
      border-block: 1px solid var(--ink-line);
    }

    .vision-sec-nav__list {
      list-style: none; margin: 0 auto; padding: 0;
      max-width: var(--maxw);
      display: flex; gap: 4px;
      overflow-x: auto; overscroll-behavior-x: contain;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }

    .vision-sec-nav__list::-webkit-scrollbar { display: none; }

    .vision-sec-nav__list a {
      display: block; white-space: nowrap;
      padding: 12px 14px;
      font-size: .76rem; font-weight: 900; letter-spacing: .02em;
      color: var(--ink-black); text-decoration: none;
      border-bottom: 3px solid transparent;
    }

    .vision-sec-nav__list a:hover { border-bottom-color: var(--ink-yellow); }

    .vision-sec-nav__list a.is-current {
      border-bottom-color: var(--ink-yellow);
      background: var(--bg-white);
    }
    @media (max-width: 767px) {
    .vision-sec-nav__list a { padding: 11px 12px; font-size: .72rem; }
    }

    /* スクロールで文字が黒に変わるのと同じタイミングで、ヘッダーを薄くする */
    .site-header__inner { transition: min-height .3s ease; }

    .site-header.is-solid .site-header__inner { min-height: 56px; }

    .site-header.is-solid .site-header__logo-img { height: 36px; }
    @media (prefers-reduced-motion: reduce) {
    .site-header__inner, .site-header__logo-img { transition: none; }
    }

    .vision-table-compare {
      border-collapse: collapse;
      width: 100%;
      min-width: 660px;
      background: var(--fill-white)
    }
    .vision-table-compare th,
    .vision-table-compare td {
      padding: 14px 16px;
      text-align: left;
      vertical-align: top;
      font-size: .82rem;
      line-height: 1.85;
      border-bottom: 1px solid var(--ink-line)
    }
    .vision-table-compare thead th {
      background: var(--fill-black);
      color: var(--ink-white);
      font-size: .82rem;
      border-bottom: 0
    }
    .vision-table-compare thead th:last-child {
      background: var(--fill-yellow);
      color: var(--ink-black)
    }
    .vision-table-compare tbody th {
      width: 130px;
      white-space: nowrap;
      background: var(--fill-tint);
      font-size: .76rem
    }
    .vision-table-compare td:nth-child(2) {
      color: var(--ink-lightgray)
    }
    .vision-table-compare td:last-child {
      background: var(--fill-tint-2);
      font-weight: 700
    }
    .vision-table-compare tbody tr:last-child th,
    .vision-table-compare tbody tr:last-child td {
      border-bottom: 0
    }
    .vision-table-scroll {
      overflow-x: auto;
      border: 1px solid var(--ink-line);
      border-radius: var(--r)
    }

    /* 公開前プレースホルダー（資格名・定期イベント等） */
    .tbd {
      display: none !important;
    }
