/* タブレット対応 tablet */
@media (max-width: 1023px) {
  /*************************** 01. 枠組共通 ***********************/
  .tab-none {
    display: none;
  }

  /* SWELLタイトルエリア高さ（PC 300px × 80%） */
  .l-topTitleArea {
    min-height: 240px;
  }

  /*************************** 02. header（ヘッダー） ***********************/
  .l-header {
    height: 142px;
  }
  body.page-contact .l-header,
  body.page-download .l-header {
    height: 100px;
  }
  .-img .c-headLogo__link {
    padding: 5px 0;
  }

  .-parallel-bottom .l-header__logo {
    height: auto;
  }
  .c-headLogo__img {
    width: 160px;
    height: auto;
  }
  /*************************** 02-2. サイドバー・ウィジェット ***********************/
  /* wp-image-5873：タブレット以下で半分サイズに */
  .wp-image-5873 {
    max-width: 65% !important;
    height: auto !important;
  }
  /* LINEバナー：タブレット以下はベースサイズ（64×248px）を維持 */
  .side-line-banner {
    width: 64px;
    height: 248px;
  }

  /* ===== FAQアコーディオン共通（p-faq-item） ===== */
  .p-faq-item__question {
    gap: 2.4rem;
    padding: 0 1.2rem;
    min-height: 8.4rem;
  }
  .p-faq-item__q-icon,
  .p-faq-item__a-icon {
    width: 3.6rem;
    height: 3.6rem;
  }
  .p-faq-item__icon-label {
    font-size: 2rem;
  }
  .p-faq-item__question-text {
    font-size: 2rem;
  }
  .p-faq-item__toggle {
    width: 2rem;
    height: 2rem;
  }
  .p-faq-item__answer-inner {
    gap: 2.4rem;
    padding: 0 1.2rem 2.8rem;
  }
  .p-faq-item__answer-text {
    font-size: 1.6rem;
  }

  /*************************** 03. 共通パーツ ***********************/
  .pc {
    display: none;
  }

  .tablet {
    display: inherit;
  }

  .sp {
    display: inherit;
  }

  .section {
    padding-top: 8.3rem;
    padding-bottom: 8.3rem;
  }

  .concept {
    flex-direction: column;
  }

  .concept .concept-left {
    width: 96%;
    margin: 0 auto;
  }

  .concept .tit {
    margin: 0 auto;
  }

  .concept .catchcopy {
    font-size: 3.6rem;
    text-align: center;
  }

  .concept .catchcopy br {
    display: none;
  }

  .concept .concept-right {
    width: 96%;
    margin: 0 auto;
  }

  .concept .concept-bg {
    font-size: 6rem;
  }

  .concept .concept-right p br {
    display: none;
  }

  ul.before-after li:first-child::after {
    font-size: 12rem;
  }

  ul.fourColumns li {
    width: 31.3333%;
    margin: 1%;
  }

  ul.fiveColumns li {
    width: 23%;
    margin: 1%;
  }

  ul.sixColumns li {
    width: 23%;
    margin: 1%;
  }

  .flex-container-three > * {
    width: 48%;
  }

  .flex-container-four > * {
    width: 31.3333%;
  }

  div.flow-ol-container ol {
    flex-direction: column;
    width: 100%;
    background: linear-gradient(to bottom, #f0f2f4, #999);
  }

  div.flow-ol-container ol li {
    width: 100%;
    padding: 30px 0;
    background:
      url(../images/icons/flow-bottom-start.svg) no-repeat center bottom,
      url(../images/icons/flow-bottom-end.svg) no-repeat center top;
    background-size: 160px auto;
  }

  div.flow-ol-container ol li:last-child {
    background: url(../images/icons/flow-bottom-end.svg) no-repeat center top;
    background-size: 160px auto;
    border: none;
  }

  div.flow-ol-container ol li:first-child {
    background: url(../images/icons/flow-bottom-start.svg) no-repeat center
      bottom;
    background-size: 160px auto;
  }

  div.flow-ol-container ol li::before {
    counter-increment: flow-list;
    content: counter(flow-list);
    display: block;
    font-size: 4.8rem;
    padding-bottom: 1rem;
  }

  .flow-section-container section {
    width: calc(50% + 6rem);
  }

  .flow-section-container section:nth-child(odd) {
    margin-left: calc(50% - 6rem);
  }

  .flow-section-container h3::before {
    width: 3rem;
    padding: 0.3rem 0;
    color: var(--white);
    margin-right: 0.3rem;
  }

  .flow-section-container div.img {
    width: 12rem;
  }
  .year::before {
    top: 0;
    left: 7.8rem;
    width: 6px;
    height: 100%;
  }

  .year > ul {
    display: flex;
    align-items: baseline;
    flex-direction: column;
  }

  .year > ul > li {
    flex-direction: row;
  }

  .year > ul > li + li {
    margin: 1.5rem 0;
  }

  .year-time::before {
    right: 0;
    left: auto;
    bottom: auto;
    top: 50%;
    transform: translateX(50%) translateY(-50%) rotate(45deg);
  }

  .year-time::after {
    top: 50%;
    left: auto;
    bottom: auto;
    right: -3rem;
    transform: translateY(-50%);
  }

  .year-container {
    padding-left: 4rem;
    padding-top: 0rem;
  }

  .year-container ul {
    flex-direction: column;
  }

  .year-container li {
    margin: 0.5rem 0 0.6rem;
    -ms-writing-mode: inherit;
    writing-mode: inherit;
    text-orientation: inherit;
  }

  .year-container li span {
    -webkit-text-combine: inherit;
    -ms-text-combine-horizontal: inherit;
    text-combine-upright: inherit;
  }

  .deputy1 .right {
    margin-right: 2.4rem;
  }

  .deputy2 .philosophy-txt {
    margin-bottom: 3.2rem;
  }

  .deputy3-container {
    flex-direction: column;
  }

  .deputy3 .left {
    width: 100%;
  }

  .deputy3 .lead {
    margin-bottom: 3.2rem;
    line-height: 1.4;
  }

  .deputy3 .txt {
    line-height: 2.4;
  }

  .deputy3 .name {
    margin-top: 2.4rem;
  }

  .deputy3 .right {
    width: 100%;
    margin: 4.8rem 0 0;
  }

  .deputy3 .right .img {
    display: flex;
    justify-content: flex-end;
  }

  .deputy4 {
    padding: 12rem 2.4rem 2.4rem;
  }

  .deputy4::before {
    font-size: 7.2rem;
    top: 2.4rem;
    left: 2.4rem;
    z-index: 0;
  }

  .deputy4 .philosophy-txt {
    font-size: 2.4rem;
  }

  .deputy4 .name {
    font-size: 1.8rem;
    margin-top: 1.6rem;
  }

  .deputy4-container {
    flex-direction: column;
    margin-top: 4rem;
  }

  .deputy4-container > * {
    width: 100%;
  }

  .deputy4-container .img {
    margin: 0 0 2.4rem;
    text-align: center;
  }

  .catch1 {
    max-width: 720px;
  }

  .catch1 p {
    font-size: 3.2rem;
  }

  .catch2 {
    max-width: 720px;
  }

  .catch2 p {
    font-size: 3.2rem;
  }

  .st1 {
    max-width: 500px;
  }

  .st1 p {
    font-size: 3.2rem;
    line-height: 2.75;
  }

  .st1 p span::before,
  .st1 p span::after {
    width: 12px;
  }

  .st2 {
    max-width: 500px;
  }

  .st2 p {
    font-size: 3.2rem;
    line-height: 2.75;
  }

  .st3 p {
    font-size: 3.2rem;
    line-height: 2.75;
  }

  /*************************** 04. breadcrumb（パンくず） ***********************/
  /*************************** 05. aside（サイドバー） ***********************/
  /*************************** 06. footer（フッター） ***********************/
  .l-footer {
    z-index: 5;
  }

  .footer-top::before {
    display: none;
  }

  .footer-box h3 {
    font-size: 30px;
  }

  /* ===== CTAセクション タブレット ===== */
  .c-cta-section__content {
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 0rem;
  }

  .c-cta-section__copy {
    text-align: center;
  }

  .c-cta-section__subheading {
    font-size: 1.6rem;
  }

  .top-mv__badge-text {
    font-size: 1.6rem;
  }

  .cta-buttons {
    flex-wrap: wrap;
  }

  .cta-btn {
    width: calc(50% - 1.2rem);
    max-width: none;
  }

  /* ===== フッター タブレット ===== */
  /* [15] フッター sp_only 左寄せ */
  .l-footer p.sp_only:nth-of-type(1),
  .l-footer p.sp_only:nth-of-type(2) {
    text-align: left;
  }

  .w-footer__box {
    padding: 3rem;
  }

  /* ===== c-section-header タブレット ===== */
  .c-section-header {
    gap: 2.4rem;
  }
  .c-section-header-ja {
    font-size: 3.2rem;
    line-height: 1;
  }
  .p-mv-merits .c-section-header-ja {
    font-size: 3.6rem;
    line-height: 4.2rem;
  }
  .c-section-note {
    font-size: 1.4rem;
  }
  .c-section-header__sub,
  .p-reason-heading__sub {
    gap: 2.4rem;
  }
  .c-section-header__line,
  .p-reason-heading__line {
    width: 6rem;
  }
  .c-section-header__en,
  .p-reason-heading__en {
    font-size: 1.4rem;
    line-height: 2.25;
  }

  /* ===== c-deco-heading ===== */
  .c-deco-heading {
    gap: 1.4rem;
  }
  .c-deco-heading[id] {
    scroll-margin-top: 160px;
  }

  /* ===== c-case-card タブレット ===== */
  .c-case-card {
    gap: 15px;
  }
  .c-case-card__title {
    font-size: var(--fz-m);
  }
  .c-case-card__body {
    gap: 2rem;
  }

  /* l-inner：max(780px, 93%)上限・左右24px余白 */
  .l-inner {
    max-width: max(780px, 93%);
    padding-inline: 24px;
  }

  /* フッター：2列レイアウト維持 */
  .site-footer-nav {
    flex-wrap: wrap;
    gap: 24px 40px;
  }

  /* [14] cta-buttons 上の余白（PC 4.3rem × 80%） */
  .cta-buttons {
    padding-top: 3.4rem;
  }

  /* CTAセクション */
  .c-cta-section {
    padding: 80px 0;
  }

  .cta-btn-text {
    font-size: 1.9rem;
  }

  .cta-btn-arrow {
    right: 0.5rem;
    width: 2.2rem;
    height: 2.2rem;
    display: block;
    flex-shrink: 0;
  }
  .cta-btn-arrow svg {
    width: 2.2rem;
    height: 2.2rem;
  }

  .c-deco-heading__text {
    font-size: 2.6rem;
  }
  .c-deco-heading__text--large {
    font-size: 4rem;
  }
  .c-deco-heading__sub {
    font-size: 3.2rem;
  }
  .c-deco-heading__emphasis {
    font-size: 4rem;
  }

  /* PC navを表示するためハンバーガーを非表示 */
  .l-header__menuBtn {
    display: none !important;
  }

  /* ヘッダー内余白 */
  .l-header__bar,
  .-parallel-bottom .l-header__inner {
    max-width: 1750px;
    margin-left: auto;
    margin-right: auto;
    gap: 17px 9px;
  }

  /* ヘッダーボタン高さを縮小 */
  .header-btn.header-black-btn:first-child,
  .header-btn.header-green-btn,
  .header-btn.header-black-btn:last-child {
    height: 52px;
  }

  /* 電話番号・受付時間を縮小 */
  .phone-number {
    font-size: clamp(12px, 1.1vw, 18px);
  }
  .phone-hours {
    font-size: 10px;
  }

  /* [11] ロゴ：余白を使って少し大きく */
  .-parallel-bottom .l-header__logo {
    max-width: 272px;
  }

  /* ナビ文字を少し縮小 */
  .c-gnav > .menu-item > a .ttl {
    font-size: 13px;
  }

  /* お問合せボタン右矢印 */
  .header-btn.header-black-btn:last-child::after {
    width: 20px;
    height: 20px;
  }

  /* [12] ホバー下線: ナビ文字縮小(13px)分の視覚位置を合わせるため bottom を調整 */
  .c-gnav > .menu-item > a .ttl::after {
    bottom: -33px;
  }

  /* [13] c-service-btn と同じサイズに揃える */
  .header-btn.header-black-btn.c-service-btn {
    height: 6.8rem;
    width: 30rem;
  }

  /* メディア掲載カテゴリーアーカイブ：tablet帯は2列 */
  .category-media .p-postList {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ========================================
   960px未満：PCナビ強制非表示のリセット＋SPドロワーモード
   ======================================== */
@media (max-width: 959px) {
  /* ハンバーガーを再表示（960〜1024px ブロックで非表示にした分を戻す） */
  .l-header__menuBtn {
    display: block !important;
  }

  /* ヘッダー高さをSPと同じに */
  .l-header {
    height: 60px;
    padding-right: 0;
  }

  /* PC gnavを非表示 */
  .l-header__gnav {
    display: none !important;
  }

  /* バー内ボタン・電話エリアを非表示 */
  .l-header__barInner {
    display: none !important;
  }

  /* c-grad-panel（PC 2.2rem × 80% = 1.8rem） */
  .c-grad-panel__header {
    font-size: 1.8rem;
  }

  .-parallel .c-headLogo.-txt,
  .-parallel .w-header {
    justify-content: initial;
  }
  .w-footer {
    display: block;
  }
}
