@charset "UTF-8";

/* ==========================================================================
   KDU Corporate Site - nav.css
   --------------------------------------------------------------------------
   役割：ヘッダー（ツールナビ／グローバルナビ／メガメニュー／SPナビ）・
         重要なお知らせバー・フッター
   出自：法人ワイヤーフレーム（top.html / category_top.html / content.html）を
         本番命名（c-* / p-*）へ再設計。sticky・縮小は短大方式を踏襲。
   方針（確定版260624）：
     - ブレークポイント：SP ≤768px / PC ≥769px
     - カラーは var(--color-*) 参照（法人ブランド #1a2a5e は theme.css で定義）
     - 学科要素（.hyg / .nrs / --color-hygiene / --color-nursing）は不採用
     - 内部要素は .inner（max-width:1000px）でセンタリング
   連携（common.js／Step1-6後に更新）：
     - メガメニュー：mouseenter/mouseleave（120ms遅延）
     - ヘッダー縮小：initHeaderShrink の対象を .site-header → .p-header へ
     - ハンバーガー：.p-header__hamburger / .c-sp-nav（--open）
     - フッターアコーディオン：.p-footer__col-hd（--active）
   ========================================================================== */


/* ==========================================================================
   0. 内部コンテナ（.inner）
   --------------------------------------------------------------------------
   ヘッダー・お知らせ・フッターの内部要素をセンタリング。
   メガメニュー等の背景は全幅、内部グリッドのみ 1000px 幅。
   ========================================================================== */
.inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 40px;
}

@media (max-width: 768px) {
  .inner {
    padding: 0 16px;
  }
}


/* ==========================================================================
   1. ヘッダー（.p-header）— sticky 追従
   --------------------------------------------------------------------------
   短大は position:fixed だったが、本案は sticky。
   sticky はフロー内に高さを持つため、common.css の固定ヘッダー用
   body padding-top を解除する（下記）。
   アンカーオフセット（scroll-padding-top）は common.css 側を継続使用。
   ========================================================================== */

/* sticky ヘッダーのため固定ヘッダー用余白を解除（common.css の上書き） */
body {
  padding-top: 0;
}

.p-header {
  position: sticky;
  top: 0;
  z-index: 3000;
  width: 100%;
  background: #fff;
}


/* ヘッダーのみ全幅化（共用.innerの1000pxは維持。padding:0 40pxは.innerから継承）
   注：.p-header__brand-navはヘッダー全幅化のためmax-width解除。 */
.p-header__brand-nav {
  max-width: none;
}

/* --- ツールナビ（ロゴ右・上段：交通アクセス／お問い合わせ／Language／印刷／検索）--- */
.p-header__tool {
  background: #fff;
}

.p-header__tool-inner {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 16px;
  font-size: var(--fs-base);
}

.p-header__tool-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-text);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: none;
  padding: 0;
  font: inherit; /* button標準装飾をリセット。リンク項目と書体・サイズを揃える */
  font-size: var(--fs-sm); /* 14px相当 */
  font-weight: bold;
}

.p-header__tool-item:hover {
  color: var(--color-main);
}

/* 検索ボタン */
.p-header__search {
  border: 1px solid var(--color-main);
  background: var(--color-main);
  color: #fff; /* 白文字＋白虫めがね（i は color 継承） */
  padding: 8px 30px;
  border-radius: 3px;
  font-size: var(--fs-sm);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  white-space: nowrap;
}

.p-header__search:hover {
  background: var(--color-main-dark); /* 塗りボタンの暗色hover */
}

/* ツールアイコンを紺に（.p-header__search は tool-item ではないため影響外＝白アイコン維持） */
.p-header__tool-item i {
  font-size: var(--fs-md); /* 18px相当 */
  color: var(--color-main);
}

/* 検索フォーム（PC・トグル開閉：#js-pc-search-btn → #js-pc-search-form / .is-active）
   common.js #4 initPcSearch のフック。送信先（action）は仕様確定まで # 保留。 */
.p-header__search-form {
  position: absolute;
  top: 100%;
  right: 40px;
  width: 360px;
  max-width: calc(100% - 80px);
  background: #fff;
  border: 1px solid var(--color-border);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  padding: 16px;
  display: flex;
  gap: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition:
    opacity var(--transition-fast),
    transform var(--transition-fast),
    visibility var(--transition-fast);
  z-index: 2000;
}

.p-header__search-form.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.p-header__search-form input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: var(--fs-sm);
  color: var(--color-text);
  outline: none;
}

.p-header__search-form input:focus {
  border-color: var(--color-main);
}

.p-header__search-form button {
  flex-shrink: 0;
  background: var(--color-main);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: 0 16px;
  cursor: pointer;
}

/* --- メインヘッダー（ロゴ＋右側ナビ）--- */
.p-header__brand-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 40px 8px 20px; 
  transition: padding var(--transition-base);
}

/* 右側：ツールバー（上段）＋グローバルナビ（下段）を縦積み */
.p-header__nav-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px; /* 要目視調整：tool行とgnav行の行間 */
}

.p-header__logo {
  height: 80px;
  width: auto;
  margin-bottom: 5px;
  transition: height var(--transition-base); 
}

.p-header__logo img {
  width:  auto;
  height: 100%;
}

/* --- ハンバーガー（SPのみ表示）--- */
.p-header__hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 10px 12px;
  background: var(--color-main);
  border: none;
}

.p-header__hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
}

/* --- スクロール時の縮小（initHeaderShrink が .is-scrolled を付与）--- */
.p-header.is-scrolled .p-header__brand-nav {
  padding-top: 4px;
  padding-bottom: 4px;
}

.p-header.is-scrolled .p-header__logo {
  height: 60px;
  width: auto;
  transition: height var(--transition-base);
}


/* ==========================================================================
   2. グローバルナビ（.p-gnav）
   ========================================================================== */
.p-gnav {
  display: flex;
  gap: 12px; /* 1001px幅での余裕確保のため項目間の隙間を12pxに調整 */
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
}

/* PC限定：グローバルナビ（下段）をロゴ右側の残り幅の中で中央寄せにする。
   .p-header__nav-wrapper を flex:1 で残り幅いっぱいに広げ、align-items:stretch で
   子要素（tool行／gnav行）をその幅いっぱいに揃えたうえで、.p-gnav 側で中央揃えにする。
   上段ツールバー（.p-header__tool-inner）は既存の justify-content:flex-end のまま右揃えを維持。
   .p-header__brand-nav の justify-content（space-between）は、nav-wrapper が flex:1 で
   残り幅を使い切るため実質無効化される（分配すべき余白が残らない）ので変更しない。
   SPはハンバーガーメニュー方式のため対象外（8節で .p-header__tool・.p-gnav とも
   display:none のまま、この上書きも min-width:1001px 限定で影響しない）。
   ヘッダーのPC/SP切り替えのみ1000px化。サイト全体の
   ブレークポイント（768px）とは別軸。 */
@media (min-width: 1001px) {
  .p-header__nav-wrapper {
    flex: 1;
    align-items: stretch;
  }
  .p-gnav {
    justify-content: center;
  }
}

.p-gnav__item {
  padding: 8px 12px; /* 左右16px→12pxに詰める（上下8pxは維持） */
  cursor: pointer;
  position: relative;
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.p-gnav__item:hover {
  color: var(--color-main);
}

/* アクティブ（メガメニュー展開中）：ブランドカラー＋下向き三角 */
.p-gnav__item--active {
  color: var(--color-main);
}

.p-gnav__item--active::after {
  content: "";
  position: absolute;
  bottom: -16px;
  left: 50%;
  transform: translateX(-50%);
  border: 7px solid transparent;
  border-bottom-color: var(--color-main);
}


/* ==========================================================================
   3. メガメニュー（.c-mega-menu）— PC のみ
   --------------------------------------------------------------------------
   - トリガー：ナビ項目の mouseenter（JS）
   - ヘッダー外で 120ms 後に閉じる（JS）
   - 開く：0.3s / 閉じる：1.2s（cubic-bezier(0.22,1,0.36,1)）
   - パネル切替は display 制御で即時
   ========================================================================== */
.c-mega-menu {
  position: absolute;
  left: 0;
  width: 100%;
  background: #fff;
  padding: 40px 0;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  text-align: left;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition:
    opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 1.2s;
}

.c-mega-menu--open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition:
    opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.3s;
}

.c-mega-menu__panel {
  display: none;
}

.c-mega-menu__panel--active {
  display: block;
}

.c-mega-menu__panel .inner {
  display: block;
  padding-top: 0;
  padding-bottom: 0;
  max-width: 1200px; /* メガメニュー内容のみ1200px中央寄せ（共用1000px・ヘッダーnoneとは独立） */
}

/* パネルヘッダー・タイトル */
.c-mega-menu__header {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--color-main);
}

.c-mega-menu__title {
  font-size: 22px;
  font-weight: var(--fw-bold);
  color: var(--color-text);
  margin: 0;
}

/* 3カラムグリッド */
.c-mega-menu__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;
  gap: 0 60px;
  align-items: stretch;
}

/* リンク */
.c-mega-menu__link {
  font-size: 15px;
  font-weight: var(--fw-bold);
  color: var(--color-text);
  text-decoration: none;
  cursor: pointer;
  border-bottom: 1px solid var(--color-border);
  padding: 14px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all var(--transition-fast);
}

.c-mega-menu__link i {
  color: var(--color-gray-400);
  font-size: 0.8em;
  margin-left: 10px;
  transition: color var(--transition-fast);
}

.c-mega-menu__link:hover {
  color: var(--color-main);
  border-bottom-color: var(--color-main);
  padding-left: 10px;
}

.c-mega-menu__link:hover i {
  color: var(--color-main);
}

/* SP ではメガメニュー非表示（SPナビを使用）。ヘッダーのPC/SP切り替えのみ1000px化 */
@media (max-width: 1000px) {
  .c-mega-menu {
    display: none;
  }
}


/* ==========================================================================
   4. SPナビ（.c-sp-nav）— フルスクリーンオーバーレイ
   --------------------------------------------------------------------------
   - 開：body.style.overflow='hidden'（JS）
   - アコーディオンは「他を閉じる」方式（JS）
   ========================================================================== */
.c-sp-nav {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  background: #fff;
  z-index: 4000;
  flex-direction: column;
}

.c-sp-nav--open {
  display: flex;
}

/* ① ヘッダーバー：ロゴ＋✕ */
.c-sp-nav__hd {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
}

.c-sp-nav__logo {
  width: 160px;
  height: auto;
  margin: 10px 16px;
}

.c-sp-nav__logo img {
  width: 100%;
  height: auto;
}

.c-sp-nav__close {
  background: var(--color-main);
  color: #fff;
  border: none;
  width: 64px;
  font-size: 22px;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ② 検索エリア（ブランドカラー背景） */
.c-sp-nav__search-wrap {
  background: var(--color-main);
  padding: 14px 16px;
}

.c-sp-nav__search {
  position: relative;
}

.c-sp-nav__search input {
  width: 100%;
  padding: 12px 46px 12px 16px;
  border: none;
  border-radius: var(--radius-sm);
  font-size: 15px;
  color: var(--color-text);
  background: #fff;
  appearance: none;
  outline: none;
  box-sizing: border-box;
}

.c-sp-nav__search input::placeholder {
  color: var(--color-gray-400);
}

.c-sp-nav__search-icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-gray-400);
  pointer-events: none;
}

/* 送信ボタン化（<i> → <button type="submit">）：ブラウザ既定のボタンの見た目を打ち消し、
   装飾アイコンだったときと同じ位置・色に保つ。上の pointer-events:none を押せるように戻す */
.c-sp-nav__search button.c-sp-nav__search-icon {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  line-height: 1;
  cursor: pointer;
  pointer-events: auto;
}

/* ③交通アクセス */
.c-sp-nav__utils {
  display: grid;
  grid-template-columns: 1fr;
  border-bottom: 1px solid var(--color-border);
}

.c-sp-nav__util {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 16px;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text);
  cursor: pointer;
  background: none;
  border: none;
  text-decoration: none;
}

.c-sp-nav__util svg {
  flex-shrink: 0;
}

/* ④ ナビ項目（アコーディオン） */
.c-sp-nav__item {
  padding: 16px 20px;
  border-bottom: 1px solid var(--color-border-light);
  font-size: 15px;
  font-weight: var(--fw-bold);
  color: var(--color-text);
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
}

.c-sp-nav__item-icon {
  font-size: 20px;
  color: var(--color-gray-700);
  font-weight: normal;
  transition: transform var(--transition-fast);
}

.c-sp-nav__item--open .c-sp-nav__item-icon {
  transform: rotate(45deg);
}

/* サブ項目 */
.c-sp-nav__sub {
  display: none;
  background: var(--color-gray-50);
}

.c-sp-nav__sub--open {
  display: block;
}

.c-sp-nav__sub-item {
  display: block;
  padding: 11px 30px;
  border-bottom: 1px solid var(--color-border-light);
  font-size: var(--fs-sm);
  font-weight: var(--fw-normal);
  color: var(--color-gray-700);
  text-decoration: none;
}

.c-sp-nav__sub-item::before {
  content: "・";
  color: var(--color-gray-400);
}

/* ⑤ ボタンエリア */
.c-sp-nav__btns {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 16px;
}

.c-sp-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 20px;
  font-size: 15px;
  font-weight: var(--fw-bold);
  cursor: pointer;
  border-radius: var(--radius-sm);
  text-decoration: none;
}

.c-sp-nav__btn--contact {
  background: var(--color-main);
  color: #fff;
}

.c-sp-nav__btn--social {
  background: #fff;
  color: var(--color-text);
  border: 1px solid var(--color-gray-400);
  justify-content: space-between;
}

.c-sp-nav__btn--social::after {
  content: "›";
  font-size: 20px;
  color: var(--color-gray-700);
}


/* ==========================================================================
   5. 重要なお知らせバー（.p-notice）— トップ固有要素（Step B で配置）
   --------------------------------------------------------------------------
   ※ 確定（260628）：ヘッダー共通部品（inc/header.html）には含めない。
     カンプ上トップの MV 直下にのみ存在するため、Step B のトップ実装で配置する。
     CSS 定義は将来利用のため本ファイルに残置。
   白背景＋薄い枠。左：ラベル「重要なお知らせ」＋日付＋本文。
   ブランドカラー（var(--color-main)）アクセント。
   ========================================================================== */
.p-notice {
  background: #fff;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.p-notice .inner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
}

.p-notice__label {
  flex-shrink: 0;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: #fff;
  background: var(--color-main);
  padding: 4px 14px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}

.p-notice__date {
  flex-shrink: 0;
  font-size: var(--fs-sm);
  color: var(--color-gray-600);
}

.p-notice__body {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: var(--lh-normal);
}

.p-notice__body a {
  color: var(--color-main);
  text-decoration: underline;
}

.p-notice__body a:hover {
  text-decoration: none;
}

@media (max-width: 768px) {
  .p-notice .inner {
    flex-wrap: wrap;
    gap: 8px 12px;
  }
  .p-notice__body {
    width: 100%;
  }
}


/* ==========================================================================
   6. フッター：リンクエリア（.p-footer）— 全幅・ブランドカラー背景
   ========================================================================== */
.p-footer {
  width: 100%;
  background: var(--color-main);
  padding: 50px 0;
}

.p-footer .inner {
  max-width: 1200px;
  padding-top: 0;
  padding-bottom: 0;
}

/* 6カテゴリを 3カラム×2段で配置（1グループ ＝ .p-footer__col ＝ 1セル） */
.p-footer__cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
}

.p-footer__col {
  min-width: 0;
}

.p-footer__col-hd {
  font-weight: var(--fw-bold);
  font-size: var(--fs-md);
  color: #fff;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* 見出しをカテゴリトップへのリンクにしたが見た目は変えない */
.p-footer__col-hd a {
  color: inherit;
  text-decoration: none;
}

.p-footer__col-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.85);
}

.p-footer__col-links a {
  color: inherit;
  text-decoration: none;
}

.p-footer__col-links a:hover {
  color: #fff;
  text-decoration: underline;
}

.p-footer__col-links span::before,
.p-footer__col-links a::before {
  content: "・";
}

/* 外部リンク（別タブ）アイコン：自動付与スコープを .p-footer へ拡張（§3-2 ↗） */
.p-footer__col-links a[target="_blank"]::after {
  content: "\f35d"; /* external-link-alt */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.75em;
  margin-left: 6px;
  vertical-align: middle;
}

/* --- SP：カラムアコーディオン化 --- */
@media (max-width: 768px) {
  .p-footer {
    padding: 30px 0 28px;
  }

  .p-footer__cols {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .p-footer__col-hd {
    position: relative;
    cursor: pointer;
    padding: 12px 16px;
    margin-bottom: 0;
    font-size: var(--fs-base);
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  }

  .p-footer__col-hd::after {
    content: "";
    position: absolute;
    right: 12px;
    top: 50%;
    width: 9px;
    height: 9px;
    border-top: 2.5px solid #fff;
    border-right: 2.5px solid #fff;
    transform: translateY(-50%) rotate(45deg);
    transition: transform var(--transition-base);
  }

  .p-footer__col-hd--active::after {
    transform: translateY(-25%) rotate(-45deg);
  }

  .p-footer__col-links {
    display: none;
  }

  .p-footer__col-hd--active + .p-footer__col-links {
    display: flex;
    background: #fff;
    margin: 10px 0 15px;
    padding: 20px 15px;
    border-radius: var(--radius-md);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  }

  .p-footer__col-links span,
  .p-footer__col-links a {
    color: var(--color-gray-700);
    font-size: 15px;
    line-height: var(--lh-relaxed);
    padding: 6px 0;
  }

  .p-footer__col-links span::before,
  .p-footer__col-links a::before {
    content: "－ ";
    color: var(--color-gray-400);
  }
}


/* ==========================================================================
   7. フッター：下部エリア（.p-footer-bottom）— 全幅・白背景
   ========================================================================== */
.p-footer-bottom {
  width: 100%;
  background: #fff;
  border-top: 1px solid var(--color-border);
  padding: 28px 0;
}

.p-footer-bottom .inner {
  max-width: 1200px;
  padding-top: 0;
  padding-bottom: 0;
}

.p-footer-bottom__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
}

/* 左：ロゴ＋住所 */
.p-footer-bottom__logo {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.p-footer-bottom__logo img {
  width: 250px;
  height: auto;
}

.p-footer-bottom__addr {
  font-size: var(--fs-sm);
  color: var(--color-gray-700);
  line-height: var(--lh-normal);
  margin-bottom: 0;
}

/* 右グループ：リンク＋コピーライト＋認定ロゴ */
.p-footer-bottom__right {
  display: flex;
  align-items: flex-end;
  gap: 40px;
}

.p-footer-bottom__center {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.p-footer-bottom__links {
  display: flex;
  gap: 24px;
  font-size: var(--fs-sm);
  color: var(--color-text);
}

.p-footer-bottom__links a {
  color: inherit;
  text-decoration: none;
}

.p-footer-bottom__links a:hover {
  text-decoration: underline;
}

.p-footer-bottom__copy {
  font-size: var(--fs-xs);
  color: var(--color-gray-600);
  margin-bottom: 0;
}

.p-footer-bottom__accred {
  flex-shrink: 0;
}

.p-footer-bottom__accred img { 
  width: 60px; height: auto; display: block;
}

@media (max-width: 768px) {
  .p-footer-bottom {
    padding: 20px 0;
  }
  .p-footer-bottom__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  .p-footer-bottom__right {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .p-footer-bottom__center {
    align-items: flex-start;
  }
  .p-footer-bottom__links {
    flex-wrap: wrap;
    gap: 16px;
  }
}


/* ==========================================================================
   8. レスポンシブ：ヘッダーのPC/SP出し分け
   --------------------------------------------------------------------------
   ヘッダーのみ1000px切り替え。サイト全体の
   ブレークポイント（768px、.inner・お知らせ・フッター等）とは別軸で、
   ここに列挙するヘッダー構成要素のみが対象。
   ========================================================================== */
@media (max-width: 1000px) {
  .p-header__tool {
    display: none;
  }
  .p-header__brand-nav {
    padding-top: 8px;
    padding-bottom: 8px;
    padding-right: 0;
  }
  .p-header__logo {
    height: 72px;
    width: auto;
  }
  .p-gnav {
    display: none;
  }
  .p-header__hamburger {
    display: flex;
    width: 16vw;
    height: 17.87vw;
    justify-content: center;
    align-items: center;
    gap: 2.4vw;
  }
  .p-header__hamburger span {
    width: 7.73vw;
    height: 0.8vw;
  }
}


/* ==========================================================================
   フローティングナビ（ページトップへ戻る）
   短大 .site-footer__pagetop に表示を揃える。法人命名は .p-footer 起点。
   JS不要（href="#top" は文書先頭を指す特別フラグメント）。
   常時表示（スクロール連動の出し分けはしない）。SPの bottom は短大と異なり
   16px のまま（短大の120pxは短大固有の追従バナー回避のためで法人には不要）。
   ========================================================================== */
.p-footer__pagetop {
  position: fixed;
  right: 16px;
  bottom: 16px;
  width: 52px;
  height: 52px;
  border-radius: 4px;
  background-color: var(--color-main);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  padding-top: 3px;
}
.p-footer__pagetop-icon {
  width: 16px;
  height: 16px;
  border-right: 3px solid #ffffff;
  border-bottom: 3px solid #ffffff;
  transform: rotate(-135deg);
}