/*
Theme Name: AVANT Child
Template: avant_tcd060
Version: 1.2.5
Text Domain: avant-child
*/

/*
 * ブレイクポイント統一ルール
 * PC      : min-width: 1200px
 * タブレット: min-width: 768px and max-width: 1199px
 * スマホ   : max-width: 767px
 */

/* ============================================================
   ベーススタイル（全幅共通）
   ============================================================ */

/* TOPへ戻るボタン: ブラウザ標準のsmoothを無効化→JS側で高速スクロール制御 */
html {
  scroll-behavior: auto !important;
}

/* ヘッダー上部エリア（空欄）を非表示 */
.l-header__upper {
  display: none !important;
}

/* ============================================================
   MV（メインビジュアル）: 900px以上はPCと同じ横並び・高さを維持
   親テーマが max-width:1279px で display:block に切り替えるのを上書き
   ============================================================ */
@media screen and (min-width: 900px) {
  /* 親テーマが max-width:1279px で display:block に切り替えるのを上書き */
  .p-hero {
    display: flex !important;
  }
  .p-hero__item {
    width: 50% !important;
  }
  /* type1 のみ固定高さ。type2/3 は height:100%（コンテンツで高さ決定） */
  .p-hero--type1 .p-hero__slider {
    height: 725px !important;
  }
  .p-hero--type2 .p-hero__slider,
  .p-hero--type3 .p-hero__slider {
    height: 100% !important;
  }
  /* post-list-item を2列（50%）に固定 → 2×2グリッド */
  .p-hero__post-list-item {
    width: 50% !important;
  }
}

/* TOP MV: PC表示では高さを最大580pxに抑える */
@media screen and (min-width: 900px) {
  body.home .p-hero {
    max-height: 580px !important;
  }

  body.home .p-hero--type1 .p-hero__slider,
  body.home .p-hero--type2 .p-hero__slider,
  body.home .p-hero--type3 .p-hero__slider,
  body.home .p-hero--type2 .p-hero__post-list,
  body.home .p-hero--type3 .p-hero__post-list {
    height: 580px !important;
  }

  body.home .p-hero--type2 .p-hero__post-list-item,
  body.home .p-hero--type3 .p-hero__post-list-item {
    display: flex !important;
    flex-direction: column;
    height: 50% !important;
  }

  body.home .p-hero--type2 .p-article13__upper,
  body.home .p-hero--type3 .p-article13__upper {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.home .p-hero--type2 .p-article13__img,
  body.home .p-hero--type3 .p-article13__img,
  body.home .p-hero--type2 .p-article13__img img,
  body.home .p-hero--type3 .p-article13__img img {
    display: block;
    width: 100%;
    height: 100%;
  }

  body.home .p-hero--type2 .p-article13__img img,
  body.home .p-hero--type3 .p-article13__img img {
    object-fit: cover;
  }
}

/* ============================================================
   768px以上共通: ヘッダー下部を固定幅・固定左マージンに統一
   l-inner の可変 93.75% margin を上書きし、ロゴを常に左24pxに固定
   ============================================================ */
@media screen and (min-width: 768px) {
  .l-header__lower {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;        /* ロゴとナビの間の最低限のスペース */
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 40px 0 24px !important;  /* 右側を40pxに広げて最後の文字が切れないように */
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .l-header__logo {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;       /* 親テーマの padding-left: 5.55% を除去 */
    flex-shrink: 0 !important;
  }

  /* nav はロゴの残りスペースを全て取る */
  .p-global-nav {
    flex: 1 !important;
    min-width: 0 !important;
  }

  /* UL を nav 全幅に広げ、アイテムを右寄せにする */
  .p-global-nav > ul {
    width: 100% !important;
    justify-content: flex-end !important;
  }
}

/* ============================================================
   PC（1200px以上）: ロゴ・ヘッダー高さ調整
   ============================================================ */
@media screen and (min-width: 1200px) {
  .c-logo img {
    max-height: 83px !important;
    width: auto !important;
  }

  .l-header__lower {
    height: 90px !important;
  }

  .l-main {
    padding-top: 90px !important;
  }
}

/* ============================================================
   タブレット（768〜1199px）: ロゴ・ヘッダー高さ調整
   ============================================================ */
@media screen and (min-width: 768px) and (max-width: 1199px) {
  .c-logo img {
    max-height: 62px !important;  /* 44px × 110% */
    width: auto !important;
  }

  .l-header,
  .l-header__lower {
    height: 74px !important;
    line-height: 74px !important;
  }
}

/* ============================================================
   スマホ（767px以下）: ロゴ・ヘッダー高さ（タブレットと統一）
   ============================================================ */
@media screen and (max-width: 767px) {
  .c-logo img {
    max-height: 62px !important;
    width: auto !important;
  }

  .l-header,
  .l-header__lower {
    height: 74px !important;
    line-height: 74px !important;
  }
}

/* TOPのグループプログラムとナビゲーターの見出しをライブラリに合わせる */
.p-cb__item:nth-child(1) .p-headline02__title,
.p-cb__item:nth-child(2) .p-headline02__title {
  font-size: 36px !important;
}

.p-global-nav {
  /* ビューポート幅に比例して 9〜13px の間でスムーズに変化 */
  font-size: clamp(9px, 1.1vw, 14px) !important;
  min-width: 0 !important;
  overflow: visible !important;
}

@media screen and (min-width: 900px) {
  /* グローバルナビ：区切り線を削除、幅を文字量に合わせて自動調整 */
  .p-global-nav > ul > li {
    width: auto !important;
    margin-left: 0 !important;
    border-right: none !important;
    border-left: none !important;
    /* padding もビューポートに比例 */
    padding: 0 clamp(8px, 1.0vw, 18px) !important;
  }

  /* 検索フォームラッパーは常に非表示（PC・タブレットナビでは不要） */
  .p-global-nav__form-wrapper {
    display: none !important;
  }

  /* ホバー・アクティブ時のカラーバー：テキストの直下に配置 */
  .p-global-nav > ul > li > a::before {
    width: 100% !important;
    left: 0 !important;
    top: calc(50% + 14px) !important;
    bottom: auto !important;
    height: 3px !important; /* 親テーマ 5px → 2px 縮小 */
  }
}

/* ============================================================
   900px以上: ハンバーガーを非表示にしてテキストナビを維持
   （900px未満はハンバーガーメニューを表示）
   ============================================================ */
@media screen and (min-width: 900px) {
  /* ハンバーガーボタンを非表示 */
  .p-menu-btn,
  .c-menu-btn { display: none !important; }

  /* ナビをヘッダー内にインラインで表示 */
  .p-global-nav {
    display: flex !important;
    position: static !important;
    width: auto !important;
    height: 100% !important;
    background: transparent !important;
  }

  .p-global-nav > ul {
    display: flex !important;
    flex-direction: row !important;
    height: 100% !important;
  }

  /* li・a に高さを継承させてテキストを縦中央揃え */
  .p-global-nav > ul > li {
    height: 100% !important;
  }

  .p-global-nav > ul > li > a {
    height: 100% !important;
  }

  .p-global-nav > ul > li > a::before {
    display: block !important;
  }
}

/* ============================================================
   モバイル（899px以下）: ハンバーガーボタンをヘッダー高さ74pxに揃える
   ============================================================ */
@media screen and (max-width: 899px) {
  /* ボタンをヘッダー全高74pxに合わせ、アイコンを上下中央に（topは親テーマに任せる） */
  .p-menu-btn,
  .c-menu-btn {
    width: 74px !important;
    height: 74px !important;
    line-height: 74px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* ナビ出現位置: ヘッダー下端（admin bar 32px + header 74px） */
  .admin-bar .p-global-nav {
    top: 106px !important;
  }

  /* スクロール後（固定ヘッダー時）はadmin barなし */
  .admin-bar .l-header.is-active .p-global-nav {
    top: 74px !important;
  }
}

/* 782px以下: admin bar が46pxになる */
@media screen and (max-width: 782px) {
  .admin-bar .p-global-nav {
    top: 120px !important; /* 46px + 74px */
  }
  .admin-bar .l-header.is-active .p-global-nav {
    top: 74px !important;
  }
}


/* ============================================================
   899px以下: 親テーマのモバイルナビ仕様を優先
   特定幅でPC向け指定が混ざってメニュー文字が露出するのを防ぐ
   ============================================================ */
@media screen and (max-width: 899px) {
  .p-global-nav {
    flex: none !important;
    min-width: auto !important;
    overflow: hidden !important;
    background: #000 !important;
  }

  .p-global-nav > ul {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    justify-content: initial !important;
  }

  .p-global-nav > ul > li,
  .p-global-nav li {
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
  }

  .p-global-nav > ul > li.menu-item {
    display: block !important;
  }

  .p-global-nav > ul > li > a,
  .p-global-nav a,
  .p-global-nav .sub-menu a {
    display: block !important;
    overflow: hidden !important;
    height: 50px !important;
    line-height: 50px !important;
    white-space: normal !important;
    color: #fff !important;
  }

  .p-global-nav > ul > li > a::before {
    display: none !important;
  }

  .p-global-nav__form-wrapper {
    display: block !important;
  }
}

/* タブレット幅のフォント・パディングは clamp() で自動対応するため個別指定不要 */

/* テキスト折り返し禁止・文字切れ防止（PC/タブレット文字ナビ時のみ） */
@media screen and (min-width: 900px) {
  .p-global-nav > ul > li > a,
  .p-global-nav a {
    white-space: nowrap !important;
    overflow: visible !important;
  }
}

/* howto: アコーディオン内 p の上下パディング（セクション間は小さく） */
details.accordion-001 p {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
  margin-bottom: 6px !important;
}
/* グレーボックスの内側上下：最初と最後だけ広げる */
details.accordion-001 > p:first-child {
  padding-top: 12px !important;
}
details.accordion-001 > p:last-child {
  padding-bottom: 12px !important;
  margin-bottom: 0 !important;
}

/* howto / contact: 冒頭見出しのサイズと下余白を統一 */
body.page-id-1989 .p-entry__body > h3.framer-text:first-of-type,
body.page-id-143 .p-entry__body > p.has-medium-font-size:first-child {
  font-size: 20.8px !important;
  line-height: 1.4 !important;
  margin-bottom: 65px !important;
}

body.page-id-143 .p-entry__body > h2.wp-block-heading {
  font-size: 22.4px !important;
  line-height: 1.4 !important;
  margin-bottom: 65px !important;
}

body.page-id-143 .p-entry__body > h2.wp-block-heading + .wp-block-spacer {
  height: 0 !important;
  margin: 0 !important;
}

/* howto: セクションタイトルをアコーディオン左端に揃え、セクション間に余白 */
/* アコーディオンと同じ max-width/margin:auto で常に左端が揃う */
body.page-id-1989 .p-entry__body h2.wp-block-heading {
  max-width: 700px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 22px !important;
}
body.page-id-1989 .p-entry__body h2.wp-block-heading + * ~ h2.wp-block-heading,
body.page-id-1989 .p-entry__body details + h2.wp-block-heading,
body.page-id-1989 .p-entry__body details ~ h2.wp-block-heading {
  margin-top: 76px !important;
}

body.page-id-1989 .p-entry__body > h3.framer-text:first-of-type + p.framer-text {
  margin-bottom: 70px !important;
}

body.page-id-1989 .p-entry__body > h2.wp-block-heading + p,
body.page-id-1989 .p-entry__body > h2.wp-block-heading + p + p,
body.page-id-1989 .p-entry__body > details.accordion-001 + p,
body.page-id-1989 .p-entry__body > details.accordion-001 + p + p {
  height: 0 !important;
  line-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-1989 .p-entry__body > details.accordion-001 {
  margin-bottom: 12px !important;
}

/* personalpro: 丸い人物写真（is-style-rounded）を180pxに */
body.page-id-2944 .is-style-rounded img,
body.page-id-2944 figure.is-resized img[style*="border-radius"] {
  width: 160px !important;
  height: 160px !important;
}

/* personalpro: 人物ごとの区画をカード化し、同じ行の高さを揃える */
body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 24px !important;
  margin-bottom: 28px !important;
}

body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column:has(.is-style-rounded) {
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  min-height: 100% !important;
  padding: 22px 20px 24px !important;
  border: 1px solid #a9cde7;
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 12px 24px rgba(49, 98, 141, 0.10), 0 3px 8px rgba(49, 98, 141, 0.06);
}

body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column:has(.is-style-rounded) > p:last-child {
  margin-bottom: 0 !important;
}

body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column:has(.is-style-rounded) .wp-block-button {
  width: min(100%, 390px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column:has(.is-style-rounded) .wp-block-button__link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 48px !important;
  padding: 12px 24px !important;
  box-sizing: border-box !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}

body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column:has(.is-style-rounded) .qbo-review-button {
  display: block !important;
  width: 180px !important;
  min-height: 40px !important;
  margin: 12px auto 0 !important;
  padding: 8px 18px !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column:has(.is-style-rounded) .qbo-personal-service-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin: 16px 0 14px !important;
  line-height: 1.3 !important;
}

body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column:has(.is-style-rounded) .qbo-personal-service-tag {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 5px 10px;
  border-radius: 6px;
  background: #dfe5ea;
  color: #26323d;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  box-shadow: inset 0 0 0 1px rgba(83, 98, 112, 0.34);
}

body.page-id-2944 .p-entry__body > p.has-medium-font-size:has(a[href="/navigator/"]):has(a[href="/library"]):has(a[href="/contact/"]) {
  position: relative;
  margin: 26px 0 34px !important;
  padding: 22px 26px 22px 32px;
  border: 1px solid #b8d5ea;
  border-radius: 10px;
  background: #f8fbff;
  box-shadow: 0 10px 22px rgba(49, 98, 141, 0.08);
  font-size: 20.8px !important;
  line-height: 1.4 !important;
}

body.page-id-2944 .p-entry__body > p.has-medium-font-size:has(a[href="/navigator/"]):has(a[href="/library"]):has(a[href="/contact/"])::before {
  content: "";
  position: absolute;
  top: 22px;
  left: 16px;
  bottom: 22px;
  width: 4px;
  border-radius: 999px;
  background: #f6b117;
}

body.page-id-2944 .p-entry__body > p.has-small-font-size {
  margin: -18px 0 34px !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}

body.page-id-2944 .qbo-personal-menu-heading {
  margin: 46px 0 24px !important;
  color: #111820;
  font-size: 30px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: 0;
}

body.page-id-2944 .qbo-personal-menu-heading::after {
  content: "";
  display: block;
  width: 72px;
  height: 4px;
  margin-top: 12px;
  border-radius: 999px;
  background: #f6b117;
}

body.page-id-2944 .p-entry__body > .wp-block-columns:not(.wp-block-column):has(> .wp-block-column .wp-block-image img) img {
  border-radius: 10px;
}

/* カラム間のgapを固定（2emだとフォントサイズで変動するため） */
.wp-block-columns.is-layout-flex {
  gap: 64px !important;
}

/* 4カラム: gapを24pxに絞りタイトルが改行しないようにする */
.wp-block-columns.is-layout-flex:has(> .wp-block-column:nth-child(4):last-child) {
  gap: 24px !important;
}

/* モバイル: カラムが縦積みになる際に row-gap:64px が余計な間隔を生じさせないよう0にリセット */
@media screen and (max-width: 781px) {
  .wp-block-columns:not(.is-not-stacked-on-mobile) {
    row-gap: 0 !important;
  }
}

.p-entry__body p,
.p-entry__body div {
  line-height: 1.8 !important;
}

.p-entry__body p {
  margin-bottom: 1em !important;
}

/* assessment ページ: カード間の上下gap(8px)に合わせて左右・中央gapを均等化 */
body.page-id-1574 .wp-block-columns.is-layout-flex:has(.wp-block-gallery) {
  column-gap: 16px !important;
  row-gap: 0 !important;
  padding: 0 8px !important;
  box-sizing: border-box !important;
}
body.page-id-1574 .wp-block-gallery {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.qbo-assessment-links {
  margin: 22px 0 8px;
}

.qbo-assessment-links__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.qbo-assessment-link {
  position: relative;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: start;
  column-gap: 18px;
  row-gap: 13px;
  padding: 20px 22px 22px;
  min-height: 100%;
  border: 1px solid #b8d5ea;
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 18px 38px rgba(49, 98, 141, 0.12);
  overflow: hidden;
  text-decoration: none !important;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.qbo-assessment-link::before,
.qbo-assessment-link::after {
  content: "";
  position: absolute;
  inset: auto auto 0 0;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(102, 182, 234, 0.18) 0%, rgba(102, 182, 234, 0) 72%);
  pointer-events: none;
}

.qbo-assessment-link::before {
  top: auto;
  bottom: -90px;
  left: -70px;
}

.qbo-assessment-link::after {
  top: -90px;
  right: -70px;
  left: auto;
  bottom: auto;
}

.qbo-assessment-link:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 44px rgba(49, 98, 141, 0.16);
}

.qbo-assessment-link__media {
  position: relative;
  display: block;
  grid-column: 1;
  grid-row: 2;
  width: 92px;
  aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.96);
  border-radius: 10px;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(211, 234, 248, 0.8), rgba(246, 250, 255, 0.3));
  box-shadow: 0 10px 24px rgba(63, 120, 167, 0.18);
}

.qbo-assessment-link__pattern,
.qbo-assessment-link__image {
  position: absolute;
  inset: 0;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.qbo-assessment-link__pattern {
  inset: -10%;
  background-size: 185%;
  opacity: 0.36;
  mix-blend-mode: screen;
}

.qbo-assessment-link__image {
  background-size: cover;
  transform: scale(1.02);
}

.qbo-assessment-link__body {
  display: contents;
}

.qbo-assessment-link__eyebrow {
  display: inline-flex;
  align-self: flex-start;
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(53, 125, 184, 0.10);
  color: #2e6d9d;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.qbo-assessment-link__title {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  grid-row: 1;
  color: #101820;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 800;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

.qbo-assessment-link__desc {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 2;
  color: #2f4658;
  font-size: 16px;
  line-height: 1.7;
}

.qbo-assessment-link__cta {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  grid-row: 3;
  display: inline-flex;
  align-items: center;
  justify-self: center;
  align-self: flex-start;
  gap: 10px;
  width: max-content;
  margin-top: auto;
  padding: 11px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #2c84c4, #5aa8df);
  color: #fff;
  line-height: 1.2;
  box-shadow: 0 10px 18px rgba(54, 131, 195, 0.22);
  max-width: 100%;
  white-space: nowrap;
}

.qbo-assessment-link__cta::before {
  content: "";
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.qbo-assessment-link__cta-label {
  font-size: 16px;
  line-height: 1.1;
  font-weight: 800;
  white-space: nowrap;
}

.qbo-assessment-link__cta-note {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.1;
  opacity: 0.9;
  white-space: nowrap;
}

.qbo-assessment-link--warm { border-color: #a9cde7; }
.qbo-assessment-link--blue { border-color: #9cc5e4; }
.qbo-assessment-link--sky { border-color: #9fd0da; }
.qbo-assessment-link--rose { border-color: #a6cee7; }
.qbo-assessment-link--aqua { border-color: #9dc7e3; }
.qbo-assessment-link--gold { border-color: #abd6e8; }

@media screen and (max-width: 1200px) {
  .qbo-assessment-link {
    grid-template-columns: 76px minmax(0, 1fr);
    column-gap: 14px;
    row-gap: 11px;
    padding: 16px 18px 18px;
  }

  .qbo-assessment-link__media {
    width: 76px;
  }

  .qbo-assessment-link__title {
    font-size: 16px;
    line-height: 1.25;
  }

  .qbo-assessment-link__desc {
    font-size: 15px;
    line-height: 1.6;
  }

  .qbo-assessment-link__cta {
    padding: 10px 14px;
    column-gap: 10px;
    justify-self: center;
    justify-content: center;
  }

  .qbo-assessment-link__cta-label {
    font-size: 15px;
  }

  .qbo-assessment-link__cta-note {
    font-size: 12px;
  }
}

@media screen and (max-width: 640px) {
  .qbo-assessment-links__grid {
    grid-template-columns: 1fr;
  }

  .qbo-assessment-link {
    grid-template-columns: 76px minmax(0, 1fr);
    padding: 16px 16px 18px;
    column-gap: 14px;
    row-gap: 10px;
    border-radius: 10px;
  }

  .qbo-assessment-link__media {
    width: 76px;
    border-radius: 10px;
  }

  .qbo-assessment-link__title {
    font-size: 16px;
    line-height: 1.25;
  }

  .qbo-assessment-link__desc {
    font-size: 15px;
  }

  .qbo-assessment-link__cta {
    padding: 10px 14px;
  }
}

/* concept ページ: 画像カードをテキスト化して再構築 */
.qbo-concept-cards {
  margin: 20px 0 33px;
}

.qbo-concept-cards__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.qbo-concept-card {
  display: flex;
  flex-direction: column;
  gap: 18px;
  height: 100%;
  padding: 14px;
  border: 2px solid #efbb63;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 7px 14px rgba(104, 78, 34, 0.06), 0 2px 5px rgba(104, 78, 34, 0.04);
  box-sizing: border-box;
}

.qbo-concept-card__header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 4px;
}

.qbo-concept-card__icon {
  flex: 0 0 auto;
  width: 56px !important;
  max-width: 28%;
  height: auto;
}

.qbo-concept-card__title {
  margin: 0 !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
  font-weight: 700;
}

.qbo-concept-card__title-sub {
  display: block;
  margin-top: 4px;
  font-size: 0.72em;
  line-height: 1.35;
}

.qbo-concept-card__lead {
  margin: 0 !important;
  font-size: 15px;
  line-height: 1.65 !important;
}

.qbo-concept-card__media {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border-radius: 10px;
}

.qbo-concept-card__media--group {
  margin-top: 8px;
  margin-bottom: 0;
}

.qbo-concept-card__media--illust {
  margin-top: auto;
}

.qbo-concept-card__subsection {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qbo-concept-card__subheading {
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  font-weight: 700;
}

.qbo-concept-card__subheading-note {
  font-size: 0.75em;
}

.qbo-concept-card__list {
  margin: 0 !important;
  padding-left: 1.35em;
  font-size: 14px;
  line-height: 22px !important;
}

.qbo-concept-card__list li {
  margin: 0 !important;
  line-height: 22px !important;
}

.qbo-concept-card__list li + li {
  margin-top: 6px;
}

.qbo-concept-card__list--ordered {
  padding-left: 1.2em;
}

@media screen and (max-width: 991px) {
  .qbo-concept-cards__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .qbo-concept-card {
    padding: 14px;
  }

  .qbo-concept-card__title {
    font-size: 17px !important;
  }

  .qbo-concept-card__lead,
  .qbo-concept-card__subheading {
    font-size: 16px !important;
  }

  .qbo-concept-card__lead {
    font-size: 15px;
  }

  .qbo-concept-card__list {
    font-size: 14px;
    line-height: 22px !important;
  }

  .qbo-concept-card__list li {
    line-height: 22px !important;
  }
}

@media screen and (max-width: 767px) {
  .qbo-concept-cards {
    margin: 16px 0 24px;
  }

  .qbo-concept-cards__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .qbo-concept-card {
    gap: 16px;
    padding: 14px;
    border-width: 3px;
    border-radius: 10px;
  }

  .qbo-concept-card__header {
    gap: 12px;
    align-items: flex-start;
  }

  .qbo-concept-card__icon {
    width: 47px !important;
    max-width: 88px;
  }

  .qbo-concept-card__title {
    font-size: 17px !important;
  }

  .qbo-concept-card__lead,
  .qbo-concept-card__subheading {
    font-size: 16px !important;
  }

  .qbo-concept-card__lead {
    font-size: 15px;
  }

  .qbo-concept-card__list {
    font-size: 14px;
    line-height: 22px !important;
  }

  .qbo-concept-card__list li {
    line-height: 22px !important;
  }
}

/* concept ページの導入見出し下の余白 */
body.page-id-2 .p-entry__body > p:first-child {
  margin-bottom: 65px !important;
}

body.page-id-2 .p-entry__body .wp-block-columns:first-of-type .wp-block-column:first-child > p:first-child {
  margin-bottom: 1em !important;
}

body.page-id-2 .p-entry__body > h1.wp-block-heading {
  margin-top: 50px !important;
}

/* ライブラリページ: セクション見出し（wp-block-heading）と
   YouTubeサムネイル（yotuwp）の間隔を縮める
   gap源: .yotu-playlist { padding: 30px 0 } + .yotu-videos { padding: 20px 0 0 } */
.p-entry__body h2.wp-block-heading,
.p-entry__body h3.wp-block-heading {
  margin-top: 20px !important;
  margin-bottom: 4px !important;
}
.p-entry__body h4,
.p-entry__body h5,
.p-entry__body h6 {
  margin-top: 10px !important;
  margin-bottom: 4px !important;
}
.p-entry__body .qbo-concept-card h4.qbo-concept-card__subheading {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.p-entry__body .yotu-playlist {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
.p-entry__body .yotu-videos {
  padding-top: 10px !important;
}

/* assessment / personalpro / library: 冒頭見出しを howto/contact と統一 */
body.page-id-1574 .p-entry__body > p.has-medium-font-size:first-child,
body.page-id-2944 .p-entry__body > p.has-medium-font-size:first-child,
body.page-id-1326 .p-entry__body > p.has-medium-font-size {
  font-size: 20.8px !important;
  line-height: 1.4 !important;
  margin-bottom: 65px !important;
}

body.page-id-2944 .p-entry__body > h2.wp-block-heading.has-large-font-size {
  font-size: 22.4px !important;
  line-height: 1.4 !important;
  margin-bottom: 65px !important;
}

body.page-id-2944 .p-entry__body > h2.wp-block-heading.has-large-font-size + .wp-block-spacer {
  height: 0 !important;
  margin: 0 !important;
}

body.page-id-1326 .p-entry__body > p.has-medium-font-size + p {
  margin-top: 0 !important;
}

body.page-id-1989 .l-primary,
body.page-id-1989 .p-entry__body {
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.wpcf7 {
  max-width: 800px;
  margin: auto !important;
}

a:hover {
  text-decoration: none !important;
  opacity: .7 !important;
}

/* カラム内 YouTube サムネイルをテキスト上端に揃える */
.wp-block-column .ytube {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* YouTube レスポンシブ */
.youtube-16-9 {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  max-width: 840px !important;
  margin-inline: auto;
}

/* イベント申し込みボタンをオレンジに */
.q_button {
  background-color: #f6b117;
  color: #ffffff !important;
  font-weight: bold;
}

/* MENU BGをグレーに */
.p-footer-widgets {
  background-color: #f5f5f5;
}

/* フッター QBO PP ロゴを 80% に縮小 */
#site-info-widget-2 img {
  width: 80% !important;
  max-width: 226px !important;
  height: auto !important;
}

/* フッターバナーを半分のサイズに */
#media_image-5 img {
  width: 150px !important;
  height: auto !important;
}

/* フッターのサイト名テキストを非表示 */
.p-info__text {
  display: none !important;
}

/* フッター内幅をページ設定に関わらず 1000px に固定 */
.p-footer-widgets .l-inner {
  max-width: 1000px !important;
}

/* お問い合わせ必須を赤に */
.wpcf7 .hissured {
  color: #f00;
}

/* お問い合わせ　下部の文言に赤色 */
.wpcf7 .wpcf7-response-output {
  color: #f00;
}

/* TOP MV タグを広めに　文字をこぼさない */
.p-article12__cat {
  min-width: 115px;
}

/* サブページ　ページヘッダーの下部エリアを非表示 */
.p-page-header__lower {
  display: none;
}

/* ナビゲーター詳細ページ: 予約ボタンをオレンジに */
body.single-special .q_button {
  background-color: #f6b117 !important;
  color: #ffffff !important;
}

/* プログラム詳細ページ: 申し込みボタンを個人面談ボタンと同じ色に */
body.single-event .q_button,
body.single-event .q_button:hover,
body.single-event .q_button:focus {
  background-color: #f6b117 !important;
  color: #ffffff !important;
}

/* 個人プログラムお問い合わせ　ボタンの色指定 */
#wpcf7-f188-p143-o1 a {
  color: #ffffff;
}

/* お問い合わせ　確認時のフォームエリア色指定 */
.wpcf7c-conf {
  background-color: #fffbe5;
  color: #000000;
  border: 1px solid #f5f9e0;
}

/* お問い合わせ　送信ボタン色指定 */
.wpcf7 .wpcf7-submit,
.wpcf7 .wpcf7-previous {
  background-color: #f74707 !important;
}

/* ============================================================
   月フィルターボタン（p-calendar / Slickスライダー）
   Slickがブレイクポイントごとにアイテム幅を再計算してしまうため、
   trackをflexboxに切り替えてアイテム幅・間隔を固定する
   ============================================================ */
.p-calendar.slick-slider .slick-track {
  display: flex !important;
  width: auto !important;
}
.p-calendar .p-calendar__item {
  width: auto !important;
  flex-shrink: 0 !important;
  margin-right: 8px !important;
  float: none !important;
}
.p-calendar .js-calendar__item-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 72px !important;
  padding: 0 16px !important;
  height: 42px !important;
  line-height: 1 !important;
  border-radius: 9999px !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

/* reCAPTCHA を隠す */
.grecaptcha-badge {
  visibility: hidden;
}

/* TOPページの「プログラム一覧へ」ボタンを隠す */
#js-index-event__btn {
  visibility: hidden !important;
}

/* ブログ右カラムの記事の区分がつまってるのでマージンを追加 */
.widget_recent_entries li {
  margin-bottom: 30px !important;
  font-size: 92%;
}

/* ブログ右カラムの記事の日付を小さく、薄く */
.widget_recent_entries li .post-date {
  font-size: 90%;
  color: #999999;
}

/* Global font unification */
body,
button,
input,
optgroup,
select,
textarea,
.p-global-nav,
.p-entry__body,
.p-entry__title,
.p-page-header__upper-title,
.p-page-header__lower-title,
.p-widget,
.c-logo,
.c-font-type--logo,
.pb_font_family_1,
.pb_font_family_2,
.pb_font_family_3,
[class^='p-article']__title,
[class*=' p-article']__title,
[class^='p-article']__date,
[class*=' p-article']__date,
.p-date,
.p-calendar__item button,
.p-calendar__item span,
.widget_rss .rss-date {
  font-family: 'Noto Sans JP', sans-serif !important;
}

/* ============================================================
   ページヘッダー カラーパネル z-index・幅の修正
   背景: ::before(カラーパネル) と ::after(グラデーション) はどちらも
   z-index:1 だが、::after が DOM で後ろに来るため前面に出てしまう。
   → ::before を z-index:2 に上げ、テキスト(__upper)を z-index:3 にする
   ============================================================ */

/* タブレット〜小型PC（992〜1199px）: z-index・幅の修正のみ */
@media screen and (min-width: 992px) and (max-width: 1199px) {
  .p-page-header::before {
    z-index: 2 !important;
    width: 44% !important;
  }
  .p-page-header__upper {
    z-index: 3 !important;
    width: 40% !important;
  }
}

/* タブレット（900〜1199px）: フォント・マージン・ナビ縦中央揃え */
@media screen and (min-width: 900px) and (max-width: 1199px) {
  .p-page-header__upper-title {
    font-size: 24px !important;
    margin-top: 8px !important;
  }
  .p-page-header__lower-title {
    margin-bottom: 8px !important;
  }

  /* 親テーマが display:block / line-height:50px に戻すのを上書き → flex で縦中央揃え */
  .p-global-nav > ul > li > a,
  .p-global-nav a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    line-height: normal !important;
  }

  /* カラーバー: bottom:0 を解除し、PCと同じ top 計算で上下対称に */
  .p-global-nav > ul > li > a::before {
    top: calc(50% + 14px) !important;
    bottom: auto !important;
  }
}

/* ============================================================
   992px以上: ページヘッダーを200px固定
   ============================================================ */
@media screen and (min-width: 992px) {
  .p-page-header {
    height: 200px !important;
    margin-bottom: 40px;
  }

  /* 親テーマの padding-bottom: 33.10345% による可変高を無効化 */
  .p-page-header__inner {
    padding-bottom: 0 !important;
    height: 200px !important;
  }
}

/* ============================================================
   PC（1200px以上）: ページヘッダー追加設定
   ============================================================ */
@media screen and (min-width: 1200px) {
  /* ::before を z-index:2 で前面に出し、テキストを z-index:3 でさらに前面に */
  .p-page-header::before {
    z-index: 2 !important;
    width: calc(50vw - 60px) !important;
  }
  .p-page-header__upper {
    z-index: 3 !important;
    width: 480px !important;
  }
}

/* personalpro: タブレットは人物カードを2カラムで表示 */
@media screen and (min-width: 782px) and (max-width: 1199px) {
  body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column,
  body.page-id-2944 .wp-block-columns.wp-block-column {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column,
  body.page-id-2944 .wp-block-columns.wp-block-column > .wp-block-column {
    width: 100% !important;
    flex-basis: auto !important;
    flex-grow: 0 !important;
    min-width: 0 !important;
  }
}

/* personalpro: スマホは人物カードを1カラムで表示 */
@media screen and (max-width: 781px) {
  body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column,
  body.page-id-2944 .wp-block-columns.wp-block-column {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  body.page-id-2944 .p-entry__body > .wp-block-columns.wp-block-column > .wp-block-column,
  body.page-id-2944 .wp-block-columns.wp-block-column > .wp-block-column {
    width: 100% !important;
    flex-basis: 100% !important;
    flex-grow: 0 !important;
    min-width: 0 !important;
  }
  body.page-id-2944 .is-style-rounded img {
    width: 100% !important;
    max-width: 160px !important;
    height: auto !important;
  }
}

/* 992px以上: 左カラム内でタイトルを確実に縦中央配置 */
@media screen and (min-width: 992px) {
  .p-page-header__upper {
    top: 0 !important;
    left: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    height: 200px !important;
    padding: 0 32px !important;
    transform: none !important;
  }

  .p-page-header__upper-title {
    margin: 0 !important;
    line-height: 1.25 !important;
  }

  .p-page-header__upper-sub {
    margin: 8px 0 0 !important;
    line-height: 1.3 !important;
  }
}

/* 1199px以下: タイトルサイズを24pxに固定 */
@media screen and (max-width: 1199px) {
  .p-page-header__upper-title {
    font-size: 24px !important;
    line-height: 1.25 !important;
  }
}

/* 991px以下: 青帯をコンテンツ高に戻し、下の空白をなくす */
@media screen and (max-width: 991px) {
  .p-page-header {
    height: auto !important;
    margin-bottom: 20px !important;
  }

  .p-page-header__inner {
    height: auto !important;
    padding-bottom: 0 !important;
  }

  .p-page-header__upper {
    height: auto !important;
    padding: 18px 5.55556% 20px !important;
  }

  .p-page-header__upper-title {
    margin: 0 !important;
  }

  .p-page-header__upper-sub {
    margin-top: 8px !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
  }
}

/* ============================================================
   スマホ（767px以下）
   ============================================================ */
@media screen and (max-width: 767px) {
  .p-page-header {
    margin-bottom: 16px !important;
  }
  .p-page-header__upper-title {
    margin-top: 0 !important;
  }
  .p-page-header__lower-title {
    margin-bottom: 8px !important;
  }
}
