/* ============================================================
   レスポンシブ：画面幅や設定に応じた上書き（メディアクエリのみ）。スマホ・タブレットは 950px 以下
   ============================================================ */

/* ============================================================
   スマホ・タブレット（画面幅950px以下）
   ============================================================ */
@media screen and (max-width: 950px) {

  /* ── 共通：PC／SPの表示切り替え ── */
  .p-sub_pc_on {
    display: none !important;
  }
  table .p-sub_pc_on {
    display: none !important;
  }
  .p-sub_sp_on {
    display: block !important;
    z-index: 1 !important;
  }
  table .p-sub_sp_on {
    display: table-cell !important;
  }

}

/* ============================================================
   スマホ・タブレット（画面幅950px以下）
   ============================================================ */
@media screen and (max-width: 950px) {

  /* ── 共通：基本タグ ── */
  html,
  body {
    overflow-x: hidden;
    max-width: 100%;
  }

  /* ── TOPページ：特徴（KV直下） ── */
  .p-top_feature-list-item,
  .p-top_program-list-item,
  .p-top_works-section-sub,
  .p-partner-message,
  .p-recruit_environment,
  .features {
    left: auto;
    width: 100%;
    transform: none;
    margin-left: 0;
    margin-right: 0;
  }

  /* ── 共通：レイアウト（内側の幅） ── */
  .l-inner {
    width: 90%;
    padding: 40px 0;
    margin: 40px auto 80px;}

  /* ── 共通：セクション見出し（英語＋和文＋飾り） ── */
  .c-heading::after {
    width: 200px;
    height: 17px;
    margin-top: 14px;
    background-size: 200px 17px;
  }
  .c-heading__en {
    font-size: 26px;
  }
  .c-heading__ja {
    margin-top: 4px;
    font-size: 14px;
    letter-spacing: 1px;
  }

  /* ── ヘッダー：ヘッダー ── */
  .l-header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 300;
    width: 100vw !important;
    height: 60px !important;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 0 16px;
    box-sizing: border-box;
  }
  .l-header-inner {
    margin-bottom: 0;
    justify-content: space-between;
    gap: 0;
    padding: 0 16px;
    height: 60px;
  }
  .l-header_logo_wrapper {
    position: relative;
    height: 60px;
    display: flex;
    align-items: center;
    z-index: 302;
  }
  .l-header_logo_wrapper img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
  }
  #header_logo {
    width: 200px;
    margin: 0;
  }
  .l-header_menu_wrapper {
    display: none;
  }
  .l-header_hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    padding: 0;
    margin: 0 0 0 auto;
    border: 0;
    background: var(--primary-color);
    flex-shrink: 0;
  }
  .l-header_hamburger_bar_wrapper {
    position: absolute;
    top: 50%;
    width: 20px;
    height: 1.5px;
  }

  /* ── 共通：SPメニュー（ハンバーガー） ── */
  .hamburger_bar {
    -webkit-transform-origin: center center;
    position: absolute;
    left: 0;
    width: 100%;
    height: 1.5px;
    transform-origin: center center;
    transition-duration: 1s;
    transition-property: transform;
    transition-timing-function: cubic-bezier(.19, 1, .22, 1);
  }
  .hamburger_bar.active:nth-child(2) { display: none; }
  .hamburger_bar:first-child  { transform: translateY(-6px); }
  .hamburger_bar.active:first-child { transform: rotate(45deg); }
  .hamburger_bar:last-child   { transform: translateY(6px); }
  .hamburger_bar.active:last-child  { transform: rotate(-45deg); }
  .hamburger_bar::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    content: "";
  }

  /* ── TOPページ：KV（メインビジュアル） ── */
  .l-mv_wrapper {
    height: auto;
    padding-top: 60px;
  }
  .l-mv_wrapper.l-kv {
    padding-top: 0;
  }
  .home .l-header {
    background: var(--color-bg-header-sp);
    backdrop-filter: blur(5px);
  }
  .l-kv__visual {
    aspect-ratio: 375 / 768;
  }
  .l-kv__bg {
    height: 100%;
    object-fit: cover;
    object-position: right center;
  }
  .l-kv__compass {
    display: block;
    position: absolute;
    top: 22%;
    left: -66.13%;
    width: 132.27%;
    height: auto;
    transform-origin: center center;
    animation: spin 35s linear infinite;
  }
  .l-kv__person {
    top: 48.05%;
    left: -21.33%;
    width: 166.4%;
  }
  .l-kv__copy {
    top: 13.41%;
    left: 16.53%;
    width: 68.8%;
  }
  .l-kv__star {
    width: 70.16%;
  }
  .l-kv__name {
    width: 100%;
    margin-top: 1.09%;
  }
  .l-kv__ornament {
    width: 100%;
    margin-top: 1.09%;
  }
  .l-kv__en {
    width: 92.25%;
    margin-top: 1.78%;
  }
  .l-kv__jp {
    width: 100%;
    margin-top: 5.81%;
  }

  /* ── 下層ページ共通：タイトル帯・パンくず ── */
  #page_header {
    position: relative;
    height: 20vh;
    padding: 0;
  }
  #page_header_inner {
    width: 90%;
    top: calc(50% + 30px);
    padding: 0 20px;
    box-sizing: border-box;
  }
  .kv-title {
    font-size: 22px;
  }
  .kv-sub_title {
    font-size: 20px;
  }
  .breadcrumbsWrap {
    padding: 12px 5%;
    overflow-x: auto;
    word-break: keep-all;
    white-space: nowrap;
  }

  /* ── フッター：フッター ── */
  .l-footer__inner {
    padding: 4rem 25px 2rem;
  }
  .l-footer__info {
    display: block;
  }
  .l-footer__info-logo-link {
    margin: 0 auto;
    margin-bottom: 25px;
  }
  .l-footer__info-logo-link img {
    width: 100%;
  }
  .l-footer__info-nav {
    margin-top: 2rem;
  }
  .l-footer__info-nav-list {
    flex-direction: column;
    gap: 0;
  }
  .l-footer__info-nav-subgrid {
    grid-template-columns: 1fr 1fr;
    row-gap: 1.8rem;
    column-gap: 2rem;
  }
  .l-footer__info-nav-item {
    padding-bottom: 1rem;
  }
  .l-footer__info-nav-item-text {
    font-size: 14px;
  }
  .l-footer__address {
    margin-top: 2rem;
  }
  .l-footer__info-bottom {
    margin-top: 4rem;
  }
  .l-footer__info-bottom-copyright {
    font-size: 12px;
  }
  .l-footer__top {
    right: 20px;
    bottom: 94px;
  }
  .l_footer_pagetop_txt {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .l_footer_pagetop_txt::after {
    position: static;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    background-size: 10px auto;
  }
  .l-footer__privacypolicy {
    font-size: 13px;
  }

  /* ── フッター：フッター上の「ご相談・お申込み」バナー ── */
  .include-footer-contact {
    padding: 4rem 5%;
    display: block;
    text-align: center;
  }
  .include-footer-contact-inner {
    padding: 2rem 1.5rem;
  }
  .include-footer-contact-head {
    font-size: 22px;
    width: 100%;
    text-align: center;
    margin-bottom: 2rem;
  }

  /* ── TOPページ：Profile ── */
  .p-top_about-inner {
    padding: 50px 0 0;
    margin-bottom: 0;
  }
  .p-top_about-list {
    display: flex;
    flex-direction: column;
  }
  .p-top_about-list-textwrap {
    width: 100%;
    padding: 0;
    order: 2;
  }
  .p-top_about-list-imgwrap {
    width: 100%;
    padding: 0 0 40px;
    height: auto;
    margin-right: 0;
    order: 1;
  }
  .p-top_about-list-imgwrap img {
    width: 100%;
    height: 450px;
    object-fit: cover;
    object-position: top;
    display: block;
  }
  .p-top_about-caption {
    font-size: 22px;
    margin-bottom: 16px;
  }
  .p-top_about-head,
  .p-top_blog_head,
  .p-top_news_head,
  .p-top_sns_head {
    margin-bottom: 32px;
  }
  .p-top_about-text {
    font-size: 14px !important;
    line-height: 2 !important;
    margin-bottom: 32px !important;
  }

  /* ── TOPページ：特徴（KV直下） ── */
  .p-top_feature-list-item {
    padding: 0;
    isolation: isolate;
  }
  .p-top_feature-inner {
    padding: 60px 0 50px;
  }
  .p-top_feature-inner::before {
    top: 232px;
    left: -40%;
    width: 80%;
    height: auto;
    aspect-ratio: 778 / 716;
  }
  .p-top_feature-inner::after {
    top: 48%;
    right: -40%;
    width: 80%;
    height: auto;
    aspect-ratio: 713 / 716;
  }
  .p-top_feature-list-img {
    display: block;
    width: 88%;
    height: auto;
    margin: 0 auto 24px;
  }
  .p-top_feature-list-title {
    font-size: 13px;
    letter-spacing: 0.1em;
    text-align: center;
    margin: 0 0 16px;
  }
  .p-top_feature_opening {
    display: block;
  }
  .p-top_feature_opening-text-wrap {
    width: 100%;
    margin-bottom: 2rem;
  }
  .p-top_feature_opening-main-head {
    font-size: 22px;
    line-height: 1.6;
    margin-bottom: 24px;

    padding: 0 8px;
  }
  .p-top_feature_opening-text {
    font-size: 14px;
    line-height: 2;
    letter-spacing: 1px;
    padding: 0 8px;
  }
  .c-btn.p-top_feature-btn {
    width: 100%;
    max-width: 315px;
  }

  /* ── TOPページ：Program ── */
  .p-top_program-list-item {
    height: auto;
    padding: 60px 0 50px;
  }
  .p-top_program-list-imgwrap {
    text-align: center;
    margin-bottom: 32px;
  }
  .p-top_program-list-imgwrap img {
    width: 95%;
    height: auto;
  }
  .p-top_program__lead {
    margin: 16px 0 0;
    padding: 24px 16px;
  }
  .p-top_program__title {
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: 1.5px;
    text-align: center;
    margin: 0 0 16px;
  }
  .p-top_program__text {
    font-size: 14px;
    line-height: 2;
    letter-spacing: 1px;
    text-align: left;
    margin: 0;
  }
  .p-top_program__text br {
    display: none;
  }
  .p-top_program__items {
    flex-direction: column;
    gap: 32px;
    margin-top: 32px;
  }
  .p-top_program-item {
    width: 100%;
    padding: 20px 16px 24px;
    text-align: center;
  }
  .p-top_program-item__icon {
    height: auto;
  }
  .p-top_program-item img {
    width: 87px;
    height: auto;
    margin: 0 auto 16px;
  }
  .p-top_program-item__title {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: 1px;
    height: auto;
    padding: 10px 0;
    margin: 0 0 16px;
    width: 100%;
    display: block;
    text-align: center;
  }
  .p-top_program-item__text {
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: 1px;
    text-align: left;
  }
  .p-top_program-item__text p + p {
    margin-top: 1.2em;
  }

  /* ── TOPページ：Program Flow ── */
  .p-top_flow {
    margin-top: 72px;
  }
  .p-top_flow__head {
    gap: 12px;
    font-size: 20px;
    line-height: 1.6;
  }
  .p-top_flow__head::before,
  .p-top_flow__head::after {
    width: 60px;
  }
  .p-top_flow__list {
    margin-top: 32px;
  }
  .p-top_flow__item {
    flex-direction: column;
    min-height: 0;
  }
  .p-top_flow__item + .p-top_flow__item {
    margin-top: 28px;
  }
  .p-top_flow__label {
    width: 100%;
    min-height: 96px;
    padding-bottom: 6px;
    font-size: 18px;
    line-height: 1.8;
  }
  .p-top_flow__item + .p-top_flow__item .p-top_flow__label::after {
    top: -22px;
    border-top-width: 16px;
    border-right-width: 10px;
    border-left-width: 10px;
  }
  .p-top_flow__step {
    font-size: 14px;
  }
  .p-top_flow__text {
    padding: 16px;
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: 1px;
  }
  .c-btn.p-top_flow__btn {
    margin-top: 48px;
  }

  /* ── TOPページ：Blog ── */
  .p-top_blog {
    padding: 60px 0 30px;
  }
  .p-top_blog_items:first-child {
    display: flex !important;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 0;
    margin-bottom: 24px;
  }
  .p-top_blog_items + .p-top_blog_items,
  .p-top_blog_items:last-child,
  .p-top_blog_head + .p-top_blog_items {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px;
    margin-bottom: 0;
  }
  .p-top_blog_item {
    width: 100% !important;
    min-height: auto;
    padding: 6px;
  }
  .p-top_blog_item_thumb {
    height: 182px;
    width: 100%;
    overflow: hidden;
  }
  .p-top_blog_item_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .p-top_blog_item_cat {
    display: inline-block;
    font-size: 12px;
    margin: 10px 0 6px;
    padding: 3px 10px;
  }
  .p-top_blog_item_title {
    font-size: 14px;
    line-height: 1.6;
    padding: 0;
  }
  .p-top_blog_btn {
    flex-shrink: 0;
    margin: 25px auto 0;
    text-align: center;
  }
  .p-top_blog .l-inner {
    margin-bottom: 0;
  }

  /* ── TOPページ：News ── */
  .p-top_news_inner {
    display: block;
    margin-bottom: 0;
    padding: 50px 0 24px;
  }
  .p-top_news_list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
  }
  .p-top_news_item,
  .p-top_news_item:first-child,
  .p-top_news_item:last-child {
    border: none;
    background: var(--color-bg);
    border-radius: 8px;
    box-shadow: var(--shadow-card);
  }
  .p-top_news_item_link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
  }
  .p-top_news_item_date {
    font-size: 12px;
    width: 63px;
    flex-shrink: 0;
  }
  .p-top_news_item_title {
    font-size: 14px;
    flex: 1;
    line-height: 1.5;
  }
  .p-top_news_item_arrow {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
  }
  .p-top_news_btn {
    margin: 25px auto 0;
    text-align: center;
  }

  /* ── TOPページ：Social media ── */
  .p-top_sns {
    padding: 60px 0;
  }
  .p-top_sns_items {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px;
  }
  .p-top_sns_item {
    width: 100%;
    height: 100px;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
  }

  /* ── 共通：ページ送り ── */
  .c-pagination-inner {
    justify-content: center;
    max-width: 100%;
    margin-top: 24px;
  }
  .page-nation {
    margin-top: 8vw;
  }
  .page-nation ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  /* ── 共通：ボタン ── */
  .c-btn {
    width: 100%;
    max-width: 315px;
    box-sizing: border-box;
    height: auto;
  }

  /* ── プロフィール：ページ全体 ── */
  .p-profile {
    margin-top: 60px;
    margin-bottom: 60px;
  }

  /* ── プロフィール：冒頭のキャッチ ── */
  .p-profile_section {
    margin-bottom: 80px;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
  }
  .p-profile_opening_inner {
    margin-top: 0;
    padding-top: 0;
  }
  .p-profile_opening_inner .p-profile_intro_heading {
    margin-top: 28px;
  }
  .p-profile_section_lead {
    font-size: 22px;
    line-height: 1.8;
  }

  /* ── プロフィール：Profile（写真・経歴） ── */
  .p-profile_person {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    margin-bottom: 48px;
  }
  .p-profile_person_photo {
    width: 287px;
    max-width: 100%;
    height: 351px;
    align-self: center;
  }
  .p-profile_person_name {
    font-size: 28px;
    line-height: 1.4;
  }

  /* ── プロフィール：ページ全体 ── */
  .p-profile .c-heading {
    margin: 64px 0 32px;
  }

  /* ── プロフィール：Qualifications（資格） ── */
  .p-profile_credentials {
    margin: 0 auto 40px;
    padding: 24px 20px;
  }
  .p-profile_credentials_item {
    font-size: 14px;
    letter-spacing: 0;
  }

  /* ── よくあるご質問：質問と回答（アコーディオン） ── */
  .p-faq-h2-businesspartner {
    margin-top: 56px !important;
    margin-bottom: 32px;
  }

  /* ── お客様の声：Voice（カード） ── */
  .p-voice_inner .c-heading {
    margin-bottom: 32px;
  }

  /* ── プロフィール：Information（サービス概要） ── */
  .p-profile_company_table {
    width: 100%;
  }
  .p-profile_company_table th {
    width: 32%;
    padding: 12px 0 12px 14px;
    font-size: 14px;
  }
  .p-profile_company_table td {
    padding: 12px 14px;
    font-size: 15px;
  }

  /* ── プログラム：冒頭 ── */
  .p-program_opening {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .p-program_opening-logo {
    width: 80%;
    max-width: 389px;
    margin-bottom: 24px;
  }
  .p-program_opening_inner::before,
  .p-profile_opening_inner::before {
    top: 260px;
    left: -40%;
    width: 80%;
  }
  .p-program_opening_inner::after,
  .p-profile_opening_inner::after {
    top: 55%;
    right: -40%;
    width: 80%;
  }

  /* ── プロフィール：冒頭のキャッチ ── */
  .p-profile_opening_inner::before {
    top: 116px;
  }

  /* ── プログラム：共通部品（ラベル・ボタン・枠） ── */
  .p-program-inner {
    width: 90%;
  }

  /* ── プログラム：Course Details（各コースの詳細） ── */
  .c-heading + .p-program-detail__item {
    margin-top: 40px;
  }

  /* ── プログラム：3 Core Steps ── */
  .p-program-steps {
    padding: 64px 0;
  }
  .p-program-steps__list {
    grid-template-columns: 1fr;
    row-gap: 56px;
    margin-top: 32px;
  }
  .p-program-steps__list::before {
    display: none;
  }
  .p-program-steps__text {
    flex: none;
    font-size: 15px;
    letter-spacing: 1px;
  }
  .p-program-steps__points {
    align-self: center;
    width: fit-content;
    max-width: calc(100% - 40px);
    margin-top: 24px;
    padding: 12px 20px;
  }
  .p-program-steps__points li {
    font-size: 14px;
    letter-spacing: .5px;
  }

  /* ── プログラム：Learn More ── */
  .p-program-more {
    padding: 64px 0;
  }
  .p-program-more__list {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 56px;
    margin-top: 40px;
  }
  .p-program-more__title {
    font-size: 18px;
  }
  .p-program-more__text {
    margin-top: 16px;
    font-size: 15px;
    letter-spacing: 1px;
  }
  .p-program-more__item .p-program-btn,
  .p-program-more__item .p-program-special {
    margin-top: 28px;
  }
  .p-program-special {
    padding-left: 24px;
  }
  .p-program-special::after {
    right: 24px;
  }
  .p-program-special__body {
    margin-left: 16px;
    padding-left: 16px;
  }
  .p-program-special__label {
    font-size: 20px;
  }

  /* ── プログラム：Program（コース一覧） ── */
  .p-program-course {
    padding: 64px 0;
  }
  .p-program-course__list {
    grid-template-columns: minmax(0, 320px);
    margin-top: 32px;
    padding: 0 5%;
  }

  /* ── プログラム：Course Details（各コースの詳細） ── */
  .p-program-detail {
    padding: 64px 0;
  }
  .p-program-detail__item {
    padding: 24px 20px 32px;
  }
  .p-program-detail__item + .p-program-detail__item {
    margin-top: 32px;
  }
  .p-program-detail__badge {
    position: static;
    margin-top: 16px;
  }
  .p-program-detail__title {
    margin: 12px 0 0;
    padding: 0;
    font-size: 20px;
    line-height: 1.6;
  }
  .p-program-detail__text {
    margin-top: 16px;
    font-size: 15px;
    letter-spacing: 1px;
  }
  .p-program-detail__points {
    margin-top: 24px;
    padding: 8px 16px;
  }
  .p-program-detail__points li {
    font-size: 14px;
    letter-spacing: .5px;
  }

  /* ── プログラム：Voice & Contact ── */
  .p-program-cv {
    padding: 64px 0;
  }
  .p-program-cv__list {
    grid-template-columns: 1fr;
    row-gap: 40px;
    margin-top: 32px;
  }
  .p-program-cv__text {
    font-size: 16px;
  }
  .p-program-cv__btn {
    max-width: 374px;
    margin: 24px auto 0;
  }

  /* ── お客様の声：Voice（カード） ── */
  .p-voice_card {
    flex-direction: column;
    gap: 16px;
    padding: 24px 16px;
  }
  .p-voice_card_avatar {
    width: 80px;
    height: 80px;
  }

  /* ── よくあるご質問：質問と回答（アコーディオン） ── */
  .p-faq_accordion {
    margin-bottom: 14px;
    border-radius: 6px;
  }
  .p-faq_accordion summary {
    display: flex;
    align-items: flex-start;
    position: relative;
    padding: 16px 50px 16px 65px;
    font-size: 15px;
    line-height: 1.6;
  }
  .p-faq_accordion-q-head {
    position: absolute;
    left: 5%;
    top: 0;
    bottom: 0;
    margin: auto 0;
    width: 34px;
    height: 34px;
    line-height: 34px;
    font-size: 18px;
    border-radius: 50%;
    text-align: center;
  }
  .p-faq_accordion summary::before {
    right: 22px;
    width: 2px;
    height: 14px;
  }
  .p-faq_accordion summary::after {
    right: 16px;
    width: 14px;
    height: 2px;
  }
  .p-faq_accordion[open] .p-faq_accordion-a {
    display: flex;
    align-items: flex-start;
    flex-direction: row;
  }
  .p-faq_accordion-a-head {
    width: 34px;
    height: 34px;
    line-height: 34px;
    font-size: 18px;
    margin: auto 0;
    flex-shrink: 0;
  }
  .p-faq_accordion-a-text {
    font-size: 15px;
    line-height: 1.7;
    margin-right: 0;
    margin-left: 20px;
  }
  .p-faq_accordion-divider {
    margin: 16px 50px 16px 65px;
  }

  /* ── お知らせ：一覧・サイドバー ── */
  .p-sub_news_inner {
    display: block;
    padding: 0;
  }
  .p-sub_news_main_contents {
    width: 100%;
    margin-bottom: 4rem;
  }
  .p-sub_news_side_contents {
    width: 100%;
  }
  .p-sub_news_list {
    margin-bottom: 24px;
  }
  .p-sub_news_side_contents_item {
    margin-bottom: 24px;
  }
  .p-sub_news_list a {
    padding: 4vw;
  }
  .p-sub_news_date {
    font-size: 14px;
    margin-bottom: 8px;
  }
  .p-sub_news_title {
    font-size: 18px;
    line-height: 1.6;
  }

  /* ── お知らせ：記事ページ ── */
  .p-single-news_post_wrapper {
    padding: 2rem;
  }

  /* ── ブログ：共通 ── */
  .p-blog_inner {
    margin: 60px auto 80px;
    padding: 0 5%;
    box-sizing: border-box;
  }
  .p-sub_inner.p-sub_blog_inner {
    display: block;
    padding: 40px 0 80px;
    gap: 0;
  }

  /* ── ブログ：一覧・サイドバー ── */
  .p-sub_blog_main_contents {
    width: 100%;
    margin-bottom: 60px;
  }
  .p-sub_blog_list {
    margin-bottom: 24px;
  }
  .p-sub_blog_list_item {
    height: auto;
    gap: 16px;
    padding: 12px;
  }
  .p-sub_blog_item_thumb {
    width: 35%;
    aspect-ratio: 4 / 3;
  }
  .p-sub_blog_date {
    font-size: 13px;
  }
  .p-sub_blog_item_cat {
    font-size: 11px;
    padding: 4px 10px;
  }
  .p-sub_blog_title {
    font-size: 15px;
    line-height: 1.5;
  }
  .p-sub_blog_side_contents {
    width: 100%;
  }
  .p-sub_blog_side_contents_item {
    margin-bottom: 24px;
  }
  .p-sub_blog_side_title {
    font-size: 18px;
    margin-bottom: 1rem;
  }
  .p-sub_blog_side_contents_list a {
    font-size: 13px;
  }
  .p-sub_blog_side_post_title {
    font-size: 13px;
    line-height: 1.6;
  }
  .p-sub_blog_cat_item a {
    font-size: 14px;
  }

  /* ── ブログ：記事ページ ── */
  .p-single-blog_post_wrapper {
    padding: 2rem;
  }
  .p-single-blog_post_title {
    font-size: 18px;
  }

  /* ── ブログ：一覧・サイドバー ── */
  .p-sub_blog_item_meta {
    flex-wrap: wrap;
  }

  /* ── ご相談・お申込み：フォーム ── */
  .l-inner.p-contact_inner {
    padding: 80px 0 180px;
  }
  .p-contact_content {
    width: auto;
    margin: 0;
    padding: 2rem 1.25rem;
    border-radius: 16px;
    box-sizing: border-box;
  }
  .p-contact_head_text {
    font-size: 16px;
  }

  /* ── ご相談・お申込み：ヒアリングシートの案内 ── */
  .p-contact_hearing {
    margin-bottom: 40px;
    padding: 28px 20px;
  }
  .p-contact_hearing_lead {
    font-size: 15px;
  }
  .p-contact_hearing_btns {
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
  }
  .c-btn.p-contact_hearing_btn {
    width: 100%;
    max-width: 280px;
  }
  .p-contact_hearing_note {
    font-size: 13px;
  }

  /* ── ご相談・お申込み：フォーム ── */
  .p-contact_content_list {
    width: auto;
  }
  .p-contact_content_list_item,
  .p-contact_content_list_item:last-child {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 1.5rem;
  }
  .p-contact_text {
    width: 100%;
    align-items: center;
    justify-content: flex-start;
    font-size: 16px !important;
  }
  .p-contact_sub_text {
    margin-left: 12px;
    font-size: 12px;
  }
  .p-contact_input {
    width: 100%;
  }

  /* ── ご相談・お申込み：ご用件の上の案内 ── */
  .p-contact_select_lead {
    margin-bottom: 1.5rem;
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.8;
  }

  /* ── ご相談・お申込み：フォーム ── */
  .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
  .wpcf7 textarea,
  .wpcf7 select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .p-contact_content_footer {
    margin-top: 3rem;
  }
  .p-contact_text_sub {
    font-size: 14px !important;
  }
  .p-contact_submit {
    display: flex;
    justify-content: center;
  }
  .wpcf7 .contact_submit {
    display: block;
    max-width: 100%;
    margin: 0 auto;
    padding: 0.8rem 3rem;
    font-size: 16px;
  }
  .p-contact_submit .wpcf7-spinner {
    position: absolute;
    top: 50%;
    right: 0;
    margin: 0;
    transform: translateY(-50%);
  }
  .p-contact_submit::before {
    top: 27%;
    right: 12%;
  }

  /* ── お問い合わせ完了：完了メッセージ ── */
  .l-inner.p-contact-complete_inner {
    padding: 80px 0 200px;
  }
  .p-contact-complete_head_text {
    font-size: 22px;
  }

  /* ── 404ページ：本文 ── */
  .l-inner.p-notfound_inner {
    padding: 80px 0 120px;
  }
  .p-notfound_head_text {
    font-size: 22px;
    margin-bottom: 24px;
  }
  .p-notfound_body_text {
    font-size: 14px;
    margin-bottom: 32px;
  }
  .p-notfound_links {
    gap: 12px 20px;
    margin-bottom: 40px;
  }
  .p-notfound_links a {
    font-size: 14px;
  }

  /* ── 特定商取引法・プライバシーポリシー：本文 ── */
  .p-privacy-policy_head_text_wrapper {
    margin-bottom: 40px;
  }
  .p-privacy-policy_title {
    font-size: 18px !important;
  }

}

/* ============================================================
   スマホ・タブレット（画面幅950px以下）
   ============================================================ */
@media screen and (max-width: 950px) {

  /* ── TOPページ：特徴（KV直下） ── */
  .p-top_feature_opening-text,
  .p-top_about-list-textwrap,
  .p-profile_section,
  .p-profile_person_content,
  .p-program_opening-img-wrap,
  .p-program-steps__text,
  .p-program-cv__text,
  .p-contact_head_text_wrapper,
  .p-contact-complete_text_wrapper,
  .p-privacy-policy_head_text_wrapper {
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
    text-wrap: pretty;
  }

  /* ── プログラム：冒頭 ── */
  .p-program_opening-title {
    font-size: 26px;
  }

  /* ── お客様の声：Voice（カード） ── */
  .p-voice_card_title,
  .p-top_news_item_title,
  .p-top_blog_item_title {
    text-wrap: balance;
  }
  .p-voice_card_text,
  .p-faq_accordion-a-text,
  .p-privacy-policy_text,
  .p-program-detail__text {
    text-wrap: pretty;
  }

  /* ── プログラム：3 Core Steps ── */
  .p-program-steps__points li,
  .p-program-detail__points li {
    text-wrap: balance;
  }

  /* ── プロフィール：Profile（写真・経歴） ── */
  .p-profile_person_name,
  .p-profile_person_bio,
  .p-program-steps__text,
  .p-program-detail__title,
  .p-program-detail__text {
    text-align: center;
  }

  /* ── プログラム：Course Details（各コースの詳細） ── */
  .p-program-detail__item .p-program-label,
  .p-program-detail__badge {
    margin-left: auto;
    margin-right: auto;
  }

}

/* ============================================================
   小さめのスマホ（画面幅480px以下）
   ============================================================ */
@media screen and (max-width: 480px) {

  /* ── 共通：レイアウト（内側の幅） ── */
  .l-inner {
    width: 92%;
    padding: 4rem 0;
  }

  /* ── TOPページ：Profile ── */
  .p-top_about-caption {
    font-size: 22px;
  }

  /* ── プロフィール：Profile（写真・経歴） ── */
  .p-profile_person_name {
    font-size: 24px;
  }

  /* ── TOPページ：Social media ── */
  .p-top_sns_item {
    height: 80px;
    font-size: 16px;
  }

  /* ── フッター：フッター上の「ご相談・お申込み」バナー ── */
  .include-footer-contact-inner {
    padding: 1.5rem 1rem;
  }

}

/* ============================================================
   幅の狭いスマホ（画面幅359px以下）
   ============================================================ */
@media screen and (max-width: 359px) {

  /* ── フッター：フッター ── */
  .l-footer__top {
    bottom: 112px;
  }

  /* ── プログラム：Course Details（各コースの詳細） ── */
  .p-program-detail__title {
    font-size: 17px;
  }
  .p-program-detail__text {
    font-size: 14px;
    letter-spacing: .5px;
  }

}

/* ============================================================
   「動きを減らす」設定の端末
   ============================================================ */
@media (prefers-reduced-motion: reduce) {

  /* ── TOPページ：特徴（KV直下） ── */
  .p-top_feature-inner::before,
  .p-top_feature-inner::after,
  .p-program_opening_inner::before,
  .p-program_opening_inner::after,
  .p-profile_opening_inner::before,
  .p-profile_opening_inner::after {
    animation: none;
  }

  /* ── プログラム：3 Core Steps ── */
  .p-program-steps__list::before,
  .p-program-steps__list:has(.p-program-steps__item.is-animated)::before {
    -webkit-mask-image: none;
    mask-image: none;
    animation: none;
  }

}

/* ============================================================
   スマホ・タブレット（画面幅950px以下）・「動きを減らす」設定の端末
   ============================================================ */
@media screen and (max-width: 950px) and (prefers-reduced-motion: reduce) {

  /* ── TOPページ：KV（メインビジュアル） ── */
  .l-kv__compass {
    animation: none;
  }

}

/* ============================================================
   スマホ・タブレット（画面幅950px以下）
   ============================================================ */
@media screen and (max-width: 950px) {

  /* ── TOPページ：特徴（KV直下） ── */
  .l-inner.p-top_feature-inner,
  .l-inner.p-top_about-inner,
  .p-top_blog .l-inner,
  .l-inner.p-top_news_inner,
  .p-top_sns .l-inner {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 100px;
    padding-bottom: 100px;
  }

  /* ── TOPページ：Program ── */
  .p-top_program-list-item {
    padding-top: 100px;
    padding-bottom: 100px;
  }
  .l-inner.p-top_program__inner {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  /* ── TOPページ：Blog ── */
  #blog.p-top_blog,
  .p-top_sns {
    padding-top: 0;
    padding-bottom: 0;
  }

}

/* ============================================================
   PC（画面幅951px以上）
   ============================================================ */
@media screen and (min-width: 951px) {

  /* ── TOPページ：特徴（KV直下） ── */
  .p-top_feature-list-item,
  .p-top_program-list-item {
    padding-top: 100px;
    padding-bottom: 100px;
  }

  /* ── TOPページ：Profile ── */
  .l-inner.p-top_about-inner,
  .p-top_blog .l-inner,
  .l-inner.p-top_news_inner,
  .p-top_sns .l-inner {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 100px;
    padding-bottom: 100px;
  }
  .p-top_about-list-textwrap,
  .p-top_about-list-imgwrap {
    padding-bottom: 0;
  }

  /* ── TOPページ：Blog ── */
  #blog.p-top_blog,
  .p-top_sns {
    padding-top: 0;
    padding-bottom: 0;
  }

}

/* ============================================================
   スマホ・タブレット（画面幅950px以下）
   ============================================================ */
@media screen and (max-width: 950px) {

  /* ── 共通：画面に固定の「ご相談・お申込み」ボタン ── */
  .l-fixed-cta {
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: var(--color-bg-sp-cta);
    border-top: 1px solid var(--color-line-gold);
    box-sizing: border-box;
    opacity: 1;
    transform: translateY(100%);
    transition: transform .35s ease, visibility .35s;
  }
  .l-fixed-cta.is-show {
    transform: translateY(0);
  }
  .l-fixed-cta__btn {
    display: flex;
    width: 100%;
    height: 48px;
    padding: 0;
    font-size: 15px;
    box-shadow: none;
  }
  .l-fixed-cta__btn::before,
  .l-fixed-cta__btn::after {
    content: none;
  }

}

/* ============================================================
   「動きを減らす」設定の端末
   ============================================================ */
@media (prefers-reduced-motion: reduce) {

  /* ── 共通：画面に固定の「ご相談・お申込み」ボタン ── */
  .l-fixed-cta {
    transition: none;
  }
  .l-fixed-cta__btn::before {
    animation: none;
    display: none;
  }

}
