@media screen and (max-width: 768px) {
  /*************************** 01. 固定ページのh1,h2見出し *******************/
  #top h1 {
    line-height: 2;
    text-align: center;
    font-size: 2.8rem;
  }
  .area-page h1 {
    text-align: center;
  }
  h2 {
    padding-bottom: 0;
  }
  .top h2.ttl01 {
    margin-bottom: 0;
    font-size: 2rem;
  }
  .top h2.ttl01 span {
    font-size: 2.6rem;
  }
  h2.ttl03 {
    font-size: 1.6rem;
    line-height: 1.6;
  }
  h2.ttl03 span {
    font-size: 3rem;
    line-height: 1;
  }
  /*************************** 02. toppage ***********************/
  .mv {
    background: linear-gradient(#fff 20%, #81c5ae);
  }
  .mv-text {
    text-align: center;
    padding-top: 20px;
  }
  .copy-01 {
    font-size: 2.6rem;
    padding: 6px 22px;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1rem;
  }
  .copy-02 {
    font-size: 3rem;
    text-align: center;
  }
  .mv-img-sp {
    width: 96%;
    transform: translateY(-20px);
  }
  .mv-inner:after {
    width: 400px;
    top: 31%;
  }
  .mv-achievements {
    flex-wrap: wrap;
    transform: translateY(-16px);
    margin-bottom: 0px;
  }
  .mv-achievements li {
    width: 32%;
  }
  .mv-achievements li.sp-none {
    display: none;
  }
  .mv-btns {
    flex-wrap: wrap;
  }
  .mv-btn {
    width: 100%;
  }
  .copy-02 br.pc {
    display: initial !important;
  }
  .top-01 p {
    font-size: 1.8rem;
    line-height: 1.8;
    text-align: left;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .top-01 p strong {
    font-size: 2.2rem;
  }
  .top-02 h1 span.gra {
    font-size: 2rem;
    line-height: 1.4;
  }
  .top-02 {
    padding-top: 2rem;
  }
  .top-02 h1 span.birdy {
    font-size: 4rem;
  }
  .top-02 p {
    font-size: 1.6rem;
  }
  .top-03 {
    padding-top: 0px;
    margin-top: 40px;
    padding-bottom: 30px;
  }
  .top-04 {
    margin-top: 20px;
  }
  .top-04-box li {
    font-size: 12px;
  }
  .top-04-box li span.number {
    font-size: 3rem;
  }
  .top-04-box li span.year {
    font-size: 18px;
  }
  .top-09 h3 {
    font-size: 1.4rem;
    margin-bottom: 1.2rem;
    padding-left: 26px;
  }
  .top-09 h3:before {
    width: 20px;
  }
  .top .area-mychannel {
    padding-top: 0;
  }
  .top .area-mychannel p {
    font-size: 1.4rem;
  }
  .cta-box {
    padding: 30px 6px;
  }
  .cta-box-toriya {
    display: none;
  }
  .cta-box-consulting {
    width: 100%;
    padding: 16px;
  }
  .cta-box-text {
    font-size: 1.8rem;
  }
  .cta-box-consulting-btn .copy {
    font-size: 2rem;
    padding: 6px 0;
    margin-bottom: 15px;
  }
  .top-05 {
    margin-top: 20px;
  }
  .top-05-achievement-item {
    width: 100%;
  }
  .top-05-achievement h3 {
    font-size: 1.8rem;
  }
  .top-05-achievement-text span.large {
    font-size: 2rem;
  }
  .top-06-box {
    flex-wrap: nowrap; /* 折り返さない */
    overflow-x: auto; /* 横スクロール有効化 */
    -webkit-overflow-scrolling: touch; /* スマホでスムーズスクロール */
    padding-bottom: 10px; /* スクロールバー分の余白 */
  }
  .top-06-box-item .number {
    font-size: 2.4rem;
    padding: 1.3rem 1rem 0.8rem;
    width: 62px;
    transform: translateY(-18px);
    margin-bottom: -16px;
  }
  .top-06-box .top-06-box-item {
    min-width: 240px; /* 横幅固定（カード1つ分の幅） */
    flex: 0 0 auto; /* 縮まない */
    margin-right: 32px; /* カード間余白 */
    margin-top: 20px;
  }

  /* 最後の要素の右余白をゼロにする */
  .top-06-box .top-06-box-item:last-child {
    margin-right: 0;
  }
  .top-06-box-item:before {
    left: -12%;
  }
  .top-08 {
    padding-top: 0;
    padding-bottom: 5rem;
  }
  .top-08 p {
    font-size: 1.4rem;
  }
  .top-08-box {
    padding: 2rem 1.8rem;
  }
  .top-08-name {
    margin-left: 2rem;
    font-size: 1.8rem;
  }
  .top-08-name span {
    font-size: 2.2rem;
  }
  .top-08 p.top-08-copy {
    font-size: 2.2rem;
    padding: 3rem 0;
  }
  .top-08-box ul li {
    font-size: 1.4rem;
  }
  .top-news dl.table dt {
    width: 100%;
    border-bottom: none;
  }
  .top-news dl.table dd {
    width: 100%;
    padding-top: 0;
  }
  .top-news dl.table dt span.cat {
    font-size: 1.2rem;
  }
  .wp-block-image img {
    width: 240px;
  }
  .wp-block-image {
    text-align: left;
  }
  .footer-cta-box ul li:last-of-type {
    display: none;
  }
  .footer-cta-box ul li {
    width: 100%;
    padding: 2px 8px;
  }
  .l-content {
    margin-bottom: 0;
  }
  /*************************** 03. form  ***********************/
  .inquiry-box .form-inner {
    margin: 18% auto 0;
    width: 100%;
  }
  .inquiry-box .form-inner .contact-form {
    padding: 5% 0.5%;
    background: #fff;
  }
  .inquiry-box .form-inner .contact-form .input-box {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .inquiry-box .form-inner .contact-form .input-box:not(:first-child) {
    margin-top: 6.7%;
  }
  .inquiry-box .form-inner .contact-form .input-box .label-area {
    padding: 6px 0;
    width: 100%;
    font-size: 1.6rem;
    float: none;
    line-height: 1.6;
    display: flex;
    align-items: center;
  }
  .inquiry-box .form-inner .contact-form .input-box .input-area {
    width: 100%;
  }
  .inquiry-box .form-inner .contact-form .input-box .input-area input {
    padding: 13px 18px;
  }
  .inquiry-box .form-inner .contact-form .input-box .input-area textarea {
    padding: 13px 18px;
    height: 160px;
  }
  .inquiry-box .form-inner .contact-form .input-box .input-area .input-error {
    padding: 0 18px;
    bottom: -20px;
    font-size: 1.1rem;
  }
  .inquiry-box .form-inner .contact-form .action-box {
    margin-top: 9%;
  }
  .inquiry-box .form-inner .note {
    margin-top: 10%;
  }
  .inquiry-box .form-inner .note small {
    font-size: 1.2rem;
    line-height: 1;
    letter-spacing: 1px;
  }
  form span.required,
  form span.will {
    margin-left: 5px;
    margin-right: 0;
  }
  /*************************** 04. 下層ページ  ***********************/
  div.leftImg .img,
  div.rightImg .img {
    float: inherit;
    margin: 0 auto 1rem;
    width: 90%;
  }
  h2.ttl01 {
    width: 98%;
    font-size: 20px;
  }
  .area-fv-left .text01 {
    font-size: 18px;
    display: none;
  }
  .area-fv-left .text01 span {
    font-size: 28px;
  }
  .area-fv-left .text02 {
    font-size: 18px;
    text-align: center;
  }
  .area-fv-left .text02 strong {
    font-size: 26px;
  }
  .area-fv-left .text02 span.white {
    font-size: 18px;
  }
  .area-fv-left .text03 {
    margin-top: 40px;
  }
  .area-fv-right-img {
    margin-top: 18px;
  }
  .area-fv-right-point {
    margin-top: 0px;
  }
  .area-fv-right-point li {
    width: 48%;
  }
  .area-fv {
    padding-top: 16px;
  }
  .area-fv-btn.download a {
    padding-left: 5%;
  }
  .city .area-01 {
    padding-bottom: 20px;
  }
  .area-fv .area-fv-btn.download:before {
    left: initial;
    width: 96px;
    right: 2%;
  }
  .area-fv-btn.download:before {
    left: initial;
    width: 96px;
    right: 2%;
  }
  .area-fv-btn a {
    font-size: 18px;
  }
  .area-fv-btn a span.sub {
    font-size: 14px;
  }
  .c-pageTitle {
    font-size: 22px;
  }
  h1 span.gra {
    font-size: 20px;
  }
  h1 span.birdy {
    font-size: 38px;
  }
  .area-logo-list {
    margin-top: 20px;
  }
  .area-support-box {
    padding-left: 0 !important;
  }
  .area-support-box li {
    font-size: 10px;
  }
  .area-support-box li img {
    margin-bottom: 2px;
  }
  .area-local-container-inner {
    padding: 20px;
    padding-bottom: 250px;
  }
  .area-local-container-inner p strong {
    font-size: 18px;
  }
  .area-local-container-inner:after {
    width: 202px;
    height: 256px;
    background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-toriya.png)
      center no-repeat;
    background-size: contain;
  }
  .area-local-container-inner .text02 {
    width: 100%;
  }
  .area-local-container-inner:before {
    left: -2%;
    width: 110vw;
  }
  .area-local h3 {
    font-size: 18px;
  }
  .area-achievement-box {
    padding-top: 10px;
  }
  .area-achievement-box h3 {
    font-size: 18px;
    padding: 10px 20px;
  }
  .area-mychannel {
    padding-top: 20px;
  }
  .area-mychannel .iframe-content {
    width: 48%;
  }
  .area-mychannel p {
    font-size: 16px;
  }
  .area-failure h2 {
    font-size: 18px;
    margin-bottom: 30px;
  }
  .area-failure {
    border-radius: 20px;
  }
  .area-failure h2 span {
    top: -67px;
  }
  .area-failure-box .d_flex > * {
    width: 100%;
  }
  .area-failure-box .d_flex > figure {
    text-align: center;
  }
  .area-failure-box .d_flex > figure img {
    width: 60%;
  }
  .area-failure-pattern {
    border-radius: 20px;
    margin-top: 20px;
  }
  .area-failure-pattern h3 {
    font-size: 18px;
    padding-left: 20px;
  }
  .area-failure-pattern h3:before {
    width: 28px;
    left: -12px;
  }
  .area-failure-pattern-list li {
    font-size: 16px;
  }
  .area-cause {
    padding: 20px 0;
  }
  .area-failure:after,
  .area-cause:after {
    border-right: 50px solid transparent;
    border-left: 50px solid transparent;
    border-top: 30px solid #108974;
    bottom: -30px;
  }
  h2.ttl01 span {
    width: 100%;
    padding: 8px 8px;
  }
  .area-cause-card h3 {
    font-size: 18px;
  }
  .area-cause-card {
    padding: 30px 10px;
    margin-top: 10px;
  }
  .area-point h2.ttl02 .gra {
    display: none;
  }
  .area-point.bg-white {
    padding-top: 0;
  }
  h2.ttl02 {
    font-size: 22px;
  }
  h2.ttl02 .ttl02-01 {
    font-size: 24px;
  }
  h2.ttl02 .number {
    font-size: 50px;
  }

  .area-point-box {
    flex-direction: column-reverse;
  }
  .area-point-box.right {
    flex-direction: initial;
  }
  .area-point-box .text {
    width: 100%;
  }
  .area-point-box .img {
    width: 100%;
  }
  .area-point-box h3 {
    font-size: 18px;
    margin-bottom: 4px;
  }
  .area-point-box h3 span.number {
    font-size: 32px;
  }
  .area-point-box p {
    margin-top: 0;
  }
  .attach {
    font-size: 18px;
  }
  .area-data-card {
    padding: 30px 10px;
  }
  .area-data-card h3 {
    width: 100%;
    font-size: 18px;
    text-align: left;
  }
  .area-specific {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .area-specific-box {
    padding: 30px 10px;
  }
  .area-specific h2.ttl01 span {
    font-size: 18px;
  }
  .area-specific h2.ttl01 {
    padding-left: 0;
  }
  .area-specific-box p {
    font-size: 14px;
  }
  .area-merit {
    padding-top: 0;
    padding-bottom: 0;
  }
  .area-merit-content {
    margin-top: 40px;
  }
  .area-merit-header-copy {
    font-size: 18px;
  }
  .area-merit-sub {
    font-size: 18px;
  }
  .area-merit-heading-text {
    font-size: 24px;
  }
  .area-merit-heading-number {
    font-size: 40px;
  }
  .area-merit-item {
    padding: 30px 10px;
    flex-wrap: wrap;
    flex-direction: column-reverse;
  }
  .area-merit-item-image-wrapper {
    width: 100%;
  }
  .area-merit-item-heading {
    font-size: 18px;
  }
  .flex-container-two.sp-one > * {
    width: 100%;
  }
  .area-result-box .flex-container-two .iframe-content {
    width: 100%;
    padding: 28% 0;
  }
  .area-result-case-card dl.table dd {
    width: 100%;
  }
  .area-result-case-card dl.table dt {
    width: 100%;
    padding-bottom: 4px;
  }
  h2.ttl01 {
    padding-left: 0;
    margin-bottom: 30px;
  }
  .area-result-box {
    padding: 30px 10px;
  }
  .area-result-box .text p {
    font-size: 16px;
  }
  .area-result-box h3 {
    width: 100%;
    font-size: 18px;
  }
  .area-result-case-card {
    width: 100% !important;
  }
  .area-result-case-card h4 {
    font-size: 18px;
  }
  .area-industry {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .area-industry .list-flex li {
    font-size: 16px;
  }
  .area-customer-box-top figure {
    width: 100%;
  }
  .area-customer-box-top .right {
    width: 100%;
  }
  .area-customer .iframe-content {
    padding: 56% 0 0 0;
  }
  .area-customer .heading-box h2 {
    margin-bottom: 30px;
  }
  .area-customer-box .text-box {
    padding: 10px 20px;
  }
  .area-customer-box .text-box p strong {
    font-size: 18px;
    padding-bottom: 10px;
  }
  p.gra {
    font-size: 20px;
    text-align: left;
  }
  .area-local-container .name {
    left: 3%;
    font-size: 14px;
  }
  .download-left {
    padding: 30px 20px 40px;
  }
  .download-left,
  .download-right {
    max-width: 100%;
  }

  /* ===== トップページ スマホ ===== */
  .sp-only {
    display: inline;
  }
  .pc-only {
    display: none;
  }

  .top-mv {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .top-mv__inner {
    padding-inline: 1.5rem;
    max-width: 57rem;
  }
  .top-mv__text {
    width: 100%;
    min-width: 0;
  }
  .top-mv__catch {
    font-size: 2rem;
    line-height: 1.7;
    overflow-wrap: break-word;
  }
  .top-mv__catch-emphasis {
    font-size: 2.8rem;
    overflow-wrap: break-word;
  }
  .top-mv__catch-tail {
    display: block;
    white-space: nowrap;
  }
  .top-mv__sub {
    font-size: 1.4rem;
    margin-top: 2rem;
    overflow-wrap: break-word;
  }
  .top-mv__sub br {
    display: none;
  }
  .top-mv__btns-area {
    margin-top: 4rem;
    flex-direction: column-reverse;
    align-items: center;
    gap: 4rem;
  }
  .top-mv__btns {
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 100%;
  }
  .top-mv__btn {
    min-width: auto;
    width: 100%;
  }
  /* バッジ：SP用サイズ（縦並びはbase継承） */
  .top-mv__badges {
    align-items: flex-start;
    gap: 1.2rem;
    flex-direction: row;
  }
  .top-mv__badge-deco {
    width: 24px;
    height: 58px;
  }
  .top-mv__badge-text {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .top-mv__badge-text-emphasis {
    font-size: 2.2rem;
  }
  .top-mv .header-btn.header-green-btn,
  .top-mv .header-btn.header-black-btn {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }
  .top-about__deco {
    display: none;
  }
  .top-about__inner {
    padding-inline: 1.5rem;
  }
  .top-about .top-about__title-main {
    font-size: 2.2rem;
  }
  .top-about .top-about__title-sub {
    font-size: 1.6rem;
    letter-spacing: normal;
  }
  .top-about__text {
    font-size: 1.6rem;
  }
  .c-service-section {
    padding: 60px 0;
  }

  .c-service-card {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 0;
  }
  .c-service-list {
    gap: 6rem;
  }

  .c-service-card__img-wrap {
    flex: none;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 0;
  }
  .c-service-card__img-wrap img {
    border-radius: 0;
  }
  .c-service-card__body {
    align-items: flex-start;
  }
  .c-service-card__link-wrap {
    align-self: flex-end;
    gap: var(--space-s);
  }
  .c-service-card__link {
    font-size: 1.5rem;
    line-height: 1.6;
    letter-spacing: normal;
  }
  .c-service-card__link-sep {
    width: 4rem;
  }
  .c-card-heading__num {
    font-size: 2.8rem;
  }
  .c-card-heading__ja {
    font-size: 1.8rem;
  }
  .c-service-card__desc {
    font-size: 1.6rem;
  }
  .c-service-card__tag {
    font-size: 1.3rem;
  }
  .section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .section-header + * {
    margin-top: 36px;
  }
  .section-header__ja {
    font-size: 2.8rem;
  }
  .section-header__sub {
    gap: 16px;
  }
  .section-header__line {
    width: 40px;
  }
  .section-header__en {
    font-size: 1.4rem;
  }
  .top-reason {
    padding: 60px 0;
  }
  .c-heading-sub {
    font-size: 1.8rem;
  }
  .c-heading-main {
    font-size: 3.2rem;
  }
  .top-reason__list {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 20px;
    margin-top: 5rem;
    padding-bottom: 0;
  }
  /* SP：全カード1列・階段状配置をリセット */
  .top-reason__item:nth-child(n) {
    grid-column: span 1;
    transform: none;
  }
  .top-reason__card-title {
    font-size: 2rem;
  }
  /* top-strengths SP：1列 */
  .top-strengths {
    padding: 60px 16px;
  }
  .top-strengths__list {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 20px;
  }
  .top-strengths__item:nth-child(n) {
    grid-column: span 1;
  }
  .top-strengths__card-title {
    font-size: 2rem;
  }
  /* ===== CTAセクション SP ===== */

  /* c-cta-section スマホ */
  .c-cta-section {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .c-cta-section__heading {
    line-height: 1.5;
  }
  .c-cta-section__inner {
    gap: 3rem;
  }
  .c-cta-section__content {
    margin-top: 0;
    gap: 3rem;
  }
  /* [4] ボタン群との間隔 */
  .c-cta-section .cta-buttons {
    margin-top: 3rem;
  }
  .top-cta .cta-buttons {
    margin-top: 5.6rem;
  }
  /* CTAボタン群: SP帯では縦並び中央寄せ + 各ボタン幅100% */
  .cta-buttons {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
  .cta-btn {
    width: 100%;
  }
  /* top-case スマホ */
  .top-case {
    padding: 60px 0;
  }
  .top-case__desc {
    font-size: var(--fz-m);
  }
  .top-case__list {
    margin-top: 3.4rem;
    flex-direction: column;
    gap: 20px;
  }
  div.top-case__logos {
    margin-top: 3.4rem;
  }
  .top-case__logos-row {
    flex-wrap: wrap;
    justify-content: center;
  }
  .top-case__logo {
    width: calc(50% - 8px);
  }
  .top-case__item {
    flex: none;
    width: 100%;
  }
  .top-case__btn {
    min-width: 0;
    width: 100%;
    max-width: 320px;
  }
  .c-voice-section {
    padding: 60px 0;
  }
  .c-voice-list {
    grid-template-columns: 1fr;
  }
  div.top-dl-cta__wrap {
    flex-direction: column;
  }
  .top-dl-cta__btn-main {
    font-size: var(--fz-m);
  }
  summary.p-faq__question {
    padding-inline: 0;
    padding-top: 3.4rem;
    padding-bottom: 3.4rem;
  }
  .p-faq__q-icon {
    width: 28px;
    height: 28px;
    font-size: 1.6rem;
    line-height: 1;
  }
  .p-faq__answer {
    padding-inline: 0;
    padding-top: 1.8rem;
    padding-bottom: 3.4rem;
  }
  span.p-faq__a-icon {
    width: 28px;
    height: 28px;
    line-height: 1;
  }
  .p-faq__a-icon::after {
    font-size: 1.6rem;
  }
  .p-faq__a-text {
    font-size: 1.8rem;
  }
  .p-faq__toggle {
    width: 13px;
    height: 13px;
  }
  .top-news {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
  /* SP: グリッドを解除して縦積みレイアウトに切り替え */
  dl.top-news__list {
    display: block;
    max-width: 100%;
  }
  .top-news__row:first-child > .top-news__meta,
  .top-news__row:first-child > .top-news__title {
    border-top: none;
  }
  .top-news__row {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-bottom: 1px solid #e4e7ee;
    padding: 16px 0;
  }
  .top-news__row:first-child {
    border-top: 1px solid #e4e7ee;
  }
  .top-news__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    min-width: auto;
    padding: 0 0 8px;
    border-bottom: none;
  }
  .top-news__title {
    padding: 0;
    border-bottom: none;
  }
  .top-news__title a {
    font-size: 1.5rem;
  }

  .top-news__date {
    font-size: 1.4rem;
  }
  .top-news__cat {
    padding: 4px 8px;
    font-size: 1.4rem;
  }
  /* top-problem */
  .top-problem {
    padding: 6rem 0;
  }
  .top-problem__heading {
    gap: 16px;
    font-size: 2.2rem;
  }
  .top-problem__heading-deco {
    height: 56px;
  }
  .top-problem__heading-text {
    font-size: 2.2rem;
  }
  .top-problem__body {
    flex-direction: column-reverse;
    gap: 24px;
  }
  .top-problem__img {
    order: 1;
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .top-problem__img img {
    width: 50%;
    height: auto;
  }
  .top-problem__list {
    order: 0;
    grid-template-columns: 1fr;
    gap: 12px;
    max-width: 600px;
    margin: 0 auto;
  }
  .top-problem__item {
    min-height: auto;
    padding: 1.8rem 1rem;
  }
  /* ========== 資料ダウンロード ========== */
  .top-dl-cta {
    padding: 48px 0;
  }
  .top-dl-cta__inner {
    flex-direction: column;
    padding: 0 20px;
    gap: 32px;
  }
  .top-dl-cta__content {
    flex: none;
    width: 100%;
    gap: 24px;
  }
  .top-dl-cta__title {
    font-size: var(--fz-h3);
  }
  .top-dl-cta__btn {
    width: 100%;
    max-width: 320px;
    height: auto;
    padding: 16px 20px;
  }
  .top-dl-cta__image {
    flex: none;
    width: 100%;
  }
  .top-dl-cta__image img {
    max-width: 100%;
  }

  /* ========== 対応エリア SP ========== */
  .c-service-area {
    padding: 60px 0;
  }
  .c-service-area__inner {
    gap: 5rem;
  }
  .c-service-area__card {
    padding: 20px 16px;
    gap: 16px;
    border-radius: 12px;
    background-image: none;
    margin-bottom: 0;
  }
  .c-service-area__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .c-service-area__region {
    min-width: auto;
    width: 100%;
    padding: 6px 10px;
    font-size: var(--fz-s);
    line-height: 1.4;
    border-radius: 6px;
  }
  .c-service-area__prefs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    width: 100%;
  }
  .c-service-area__pref {
    width: 100%;
    min-width: auto;
    padding: 8px 4px;
    font-size: 1.3rem;
    line-height: 1.4;
    border-radius: 6px;
    text-align: center;
  }

  /* --- top-column SP スライダー --- */
  .top-column__slider-wrapper {
    overflow: visible;
    position: relative;
  }
  .top-column__slider-track {
    overflow: hidden;
  }
  .top-column__list {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    transition: transform 0.35s ease;
  }
  .top-column__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: -18px; /* ボタン幅36pxの50% */
    right: -18px;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
  }
  .top-column__nav-btn {
    pointer-events: auto;
    width: 36px;
    height: 36px;
  }
}

/* ========== 320px 極小画面対応 ========== */
@media screen and (max-width: 374px) {
  /* MVのパディングを縮小 */
  .top-mv__inner {
    padding: 32px 10px 40px;
  }

  /* キャッチコピーのフォント縮小 */
  .top-mv__catch {
    font-size: 1.8rem;
  }
  .top-mv__catch-emphasis {
    font-size: 2.4rem;
  }
  .top-about .top-about__title-sub {
    letter-spacing: -1.5px;
  }

  /* 各セクションの横パディングを縮小（16px → 10px） */
  /* セクション見出し */
  .c-section-header-ja,
  .section-header__ja {
    font-size: 2.8rem;
  }

  /* CTAセクション見出し */
  .c-cta-section__heading {
    font-size: 2rem;
  }

  /* 課題セクション見出し */
  .top-problem__heading-text {
    font-size: 2rem;
  }

  /* 理由・強みカードタイトル */
  .top-reason__card-title,
  .top-strengths__card-title {
    font-size: 1.8rem;
  }

  /* 取扱業務 番号 */
  .p-service-item__num {
    font-size: 3.4rem; /* PC 6rem × 55% */
  }

  /* 見出し系 */
  .c-heading-main {
    font-size: 3.2rem; /* PC 4.8rem × 65% */
  }
  .c-heading-sub {
    font-size: 1.6rem; /* PC 2.4rem × 65% */
  }

  /* 対応エリア：4列 → 3列 */
  .c-service-area__prefs {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .c-service-area__pref {
    width: 100%;
    font-size: 1.2rem;
    padding: 8px 2px;
  }

  /* 資料DLセクション */
  .top-dl-cta__inner {
    padding: 0 10px;
  }
  .top-dl-cta__title {
    font-size: var(--fz-h3);
  }

  /* スライダーナビボタンをはみ出し抑制 */
  .top-column__nav {
    left: 0;
    right: 0;
  }
  .top-column__nav-btn {
    width: 28px;
    height: 28px;
  }

  /* CTAボタン */
  .top-cta__heading {
    font-size: var(--fz-h3);
  }

  .top-answer__deco {
    display: none;
  }
  .top-answer__inner {
    padding-inline: var(--space-ml);
  }
}

/* ========== コラム一覧ページ（スマホ 768px以下） ========== */
@media screen and (max-width: 768px) {
  .p-column-fv {
    height: 18rem;
  }
  .p-column-grid {
    grid-template-columns: 1fr;
    gap: 3.2rem;
  }
  .p-column-pagination .page-numbers li a,
  .p-column-pagination .page-numbers li span {
    width: 3.6rem;
    height: 3.6rem;
    font-size: var(--fz-s);
  }
}

/* ========== 選ばれる理由ページ（スマホ 768px以下） ========== */
@media screen and (max-width: 768px) {
  .p-reason-fv {
    height: 18rem;
  }
  .p-reason-heading {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 1rem;
  }
  .p-reason-heading + .p-reason-list {
    margin-top: 4rem;
  }
  .p-reason-heading__pre {
    font-size: 1.6rem;
  }
  .p-reason-heading__main {
    font-size: 2.8rem;
  }
  .p-reason-list {
    gap: 5rem;
  }
  /* 選ばれる理由：SPで 画像→番号+タイトル→本文 の順に */
  .p-reason-item {
    display: flex;
    flex-direction: column;
  }
  .p-reason-item__body {
    display: contents;
  }
  .p-reason-item__image {
    order: 1;
    width: 100%;
    margin-bottom: 1.5rem;
  }
  .p-reason-item__heading {
    order: 2;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 0.5rem;
    margin-bottom: 1rem;
  }
  .p-reason-item__number {
    font-size: 4.2rem;
  }
  .p-reason-item__title {
    font-size: 2rem;
    min-width: 0;
    flex: 1 1 0;
  }
  .p-reason-item__text {
    order: 3;
    flex: unset;
    width: 100%;
  }
  .p-reason-item__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 470 / 313;
    object-fit: cover;
    display: block;
  }
  .p-reason-info-box,
  .p-reason-cards {
    order: 4;
    margin-top: 1.5rem;
    flex-direction: column;
    gap: 2.4rem; /* PC 4rem × 60% */
  }
  .p-reason-info-box__body {
    flex-direction: column;
    gap: 0;
    padding: 2rem 1.5rem;
    letter-spacing: normal;
  }
  .p-reason-info-box__list + .p-reason-info-box__list {
    margin-top: 0.8rem;
  }
  .p-reason-info-box__header {
    font-size: 1.4rem; /* PC 2.2rem × 65% */
  }
  .p-reason-card__header {
    font-size: 1.4rem; /* PC 2.2rem × 65% */
  }
  .p-case-logos {
    gap: 1rem;
  }
  .p-case-logos__row {
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
  }
  .p-case-logo {
    width: calc(33.333% - 0.7rem);
    height: 4.8rem;
  }
  .p-case-cards {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  /* ========== 取扱業務一覧（スマホ） ========== */
  .p-service-intro {
    font-size: 1.4rem; /* PC 2.2rem × 65% (下限1.4rem) */
    text-align: left;
  }
  .p-service-intro br {
    display: none;
  }
  .p-service-list {
    gap: 5rem;
  }
  .p-service-item {
    flex-direction: column;
    align-items: stretch;
    gap: 2.4rem;
  }
  .p-service-item__heading {
    gap: 1rem;
  }
  .p-service-item__img-wrap {
    width: 100%;
  }
  .p-service-item__body {
    gap: 1.6rem;
  }
  .p-service-item__num {
    font-size: 4rem;
  }
  .p-service-item__title {
    font-size: 2rem;
  }
  .p-service-item__desc {
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .p-service-item__link {
    gap: 1.4rem;
  }
  .p-service-item__link-line {
    width: 5rem;
  }
  .p-service-item__link-text {
    font-size: 1.5rem;
  }
}

/* ========== 404ページ ========== */
@media screen and (max-width: 768px) {
  .p-404-main {
    padding-block: 6rem 8rem;
  }
  .p-404-main__title {
    font-size: 2.6rem;
    line-height: 1.4;
  }
  .p-404-main__sub {
    font-size: 1.6rem;
  }
  .p-404-main__desc {
    font-size: 1.5rem;
    line-height: 1.8;
  }
}

/* ========== 料金一覧ページ ========== */
@media screen and (max-width: 768px) {
  .p-price-hero {
    padding-block: 2.8rem 3.2rem;
  }
  .p-price-hero__title {
    font-size: 2.8rem;
  }
  .p-price-anchor-nav {
    position: static;
    padding-top: 6.7rem;
    padding-bottom: 5rem;
  }
  .p-price-anchor-nav__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    gap: 0.8rem;
    overflow-x: unset;
  }
  .p-price-anchor-nav__item {
    display: flex;
    height: 100%;
  }
  .p-price-anchor-nav__item:nth-child(5) {
    grid-column: 1 / -1;
    justify-content: center;
  }
  .p-price-anchor-nav__item:nth-child(5) .p-price-anchor-nav__link {
    flex: 0 0 auto;
    width: calc((100% - 0.8rem) / 2);
  }
  .p-price-anchor-nav__link {
    width: auto;
    padding: 0.8rem 1rem;
    font-size: 1.4rem;
    flex-shrink: unset;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 5.8rem;
    height: 100%;
  }
  .p-price-notice {
    padding-block: 2.4rem;
  }
  .p-price-notice__box {
    padding: 1.6rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.6rem;
  }
  .p-price-notice__btn-wrap {
    flex-direction: column;
    width: 100%;
  }
  .p-price-notice__text {
    font-size: 1.4rem;
  }
  .p-price-notice__btn {
    font-size: 1.4rem;
    padding: 1rem 1.6rem;
    width: 100%;
    height: auto;
    min-height: 7rem;
  }
  .p-price-cat {
    padding-block: 4.8rem;
  }
  .p-price-cat__inner {
    gap: 3.6rem; /* 6rem × 60% */
  }
  .p-price-cat__desc,
  .p-price-cat__note {
    font-size: 1.4rem;
    pointer-events: auto;
  }
  .p-price-subsection {
    gap: 1.2rem;
  }
  .p-price-subsection__title {
    font-size: 1.4rem;
    padding: 1rem 1.4rem;
  }
  .p-price-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%; /* flex item を親幅に制限してスクロールを発動させる */
  }
  .p-price-subsection__note {
    display: flex;
    flex-direction: column-reverse;
    gap: 1.4rem;
    text-align: left;
  }
  .p-price-subsection:has(.p-price-table-wrap) {
    display: flex;
    flex-direction: column;
  }
  .p-price-subsection:has(.p-price-table-wrap)::after {
    content: "横にスクロールして全体を確認できます →";
    display: block;
    font-size: 1.4rem;
    color: var(--black);
    text-align: right;
    margin-top: 0;
    order: 1;
  }
  .p-price-subsection:has(.p-price-table-wrap) .p-price-subsection__note {
    order: 2;
  }
  .p-price-table {
    min-width: 560px;
    width: max-content;
    table-layout: auto;
  }
  .p-price-table thead th,
  .p-price-table tbody :is(td, th) {
    font-size: var(--fz-base);
    padding: 1rem 1rem;
  }
  .p-price-td--amount {
    white-space: nowrap;
  }
  .p-price-table tbody :is(td, th):last-child {
    padding-inline: 2rem;
  }
  .p-price-table--two-col tbody td:last-child {
    font-size: var(--fz-h3);
    padding-inline: 1rem;
  }
  .p-price-table--five-col {
    min-width: 780px;
    width: 780px;
    table-layout: fixed;
  }
  .p-price-table--five-col thead th:nth-child(1) {
    width: 13%;
  }
  .p-price-table--five-col thead th:nth-child(2) {
    width: 42%;
  }
  .p-price-table--five-col thead th:nth-child(3) {
    width: 45%;
  }
  .p-price-table--five-col tbody td:last-child {
    font-size: 1.4rem;
    line-height: 1.6;
    padding: 0.8rem 1rem;
    text-align: left;
  }
  .p-price-unit {
    font-size: 1.4rem;
  }
  .p-price-page-link {
    font-size: 1.4rem;
    padding: 1rem 1.6rem;
  }
  /* ---------- 料金ページ スケーリング補完 ---------- */
  .p-price-cat__subsection-list {
    gap: 5rem;
  }
  .p-price-cat__heading {
    margin-top: 2.4rem;
  }
  /* .p-price-td--amount は var(--fz-h3) clamp で自動縮小 */
  .p-price-table--center-last tbody td:last-child {
    font-size: 1.8rem;
    padding-inline: 1rem;
  }
}
/* ========== お問合せ完了ページ ========== */
@media screen and (max-width: 768px) {
  .p-thanks {
    padding-bottom: 7.2rem;
  }
  .p-thanks__inner {
    gap: 3.6rem;
  }
  .p-contact-thanks__phone img {
    width: 100%;
  }
  .p-thanks__title {
    font-size: 2.8rem;
  }
  .p-thanks__desc {
    font-size: 1.6rem;
  }

  .p-thanks__phone-box {
    width: 100%;
    padding: 2.4rem 2rem;
  }
  .p-thanks__phone-catch {
    font-size: 1.6rem;
  }
  .p-thanks__phone-num {
    font-size: 3.2rem;
  }
  .p-thanks__phone-time {
    font-size: 1.4rem;
  }
  .p-btn-back {
    width: 100%;
    max-width: 28rem;
  }
}

/* ========== お問合せページ ========== */
@media screen and (max-width: 768px) {
  .p-contact {
    padding-top: 3.6rem;
    padding-bottom: 3.6rem;
  }
  .p-contact__lead-title,
  .p-contact__lead-sub {
    font-size: 1.8rem;
  }
  .p-contact__lead-em {
    font-size: 2.4rem;
  }
  /* 1カラムに変更 */
  .p-contact__body {
    flex-direction: column;
    row-gap: 3.2rem;
    margin-top: 2rem;
  }
  .p-contact__left,
  .p-contact__form-card {
    min-width: 0;
    max-width: 100%;
    flex: none;
    width: 100%;
    padding: 3.2rem 2rem;
  }
  .p-contact__left {
    gap: 2.4rem;
  }
  .p-contact__logos {
    gap: 3rem;
  }
  .p-contact__logos-grid {
    width: 100%;
  }
  .p-contact__logo-item {
    min-width: 0;
  }
  /* 電話CTAカードをSP幅に合わせる */
  .p-contact__phone-cta.cta-btn--phone {
    width: 100%;
    height: auto;
    padding: 4.8rem 1.2rem 2rem;
    background-size: contain;
  }
  .p-contact__phone-cta .cta-btn-label {
    font-size: clamp(1.2rem, 4vw, 1.6rem);
    white-space: normal;
  }
  .p-contact__phone-cta .cta-btn-number {
    font-size: clamp(2rem, 7vw, 3.2rem);
    white-space: nowrap;
  }
  .p-contact__phone-cta .cta-btn-hours {
    font-size: clamp(1rem, 3.2vw, 1.4rem);
    white-space: normal;
    text-align: center;
  }
  .p-contact__desc {
    font-size: 1.6rem;
  }
  .p-contact__logos-title {
    font-size: 2.4rem;
  }
  /* フォームフィールドをSP幅いっぱいに */
  .p-contact-form__fields {
    width: 100%;
  }
  .p-contact-form__submit {
    width: 100%;
    pointer-events: auto;
  }
  .p-contact-form__submit-arrow {
    width: 18px;
    height: 18px;
  }
  .p-contact-form {
    gap: 3rem;
  }
  .p-contact__phone {
    width: 100%;
    align-self: center;
  }
}

/* ========== 資料ダウンロードページ ========== */
@media screen and (max-width: 768px) {
  .p-download {
    padding-top: 3.6rem;
    padding-bottom: 3.6rem;
  }
  .p-download__body {
    grid-template-columns: 1fr;
    gap: 3.2rem;
  }
  .p-download__body > .p-contact__form-card {
    padding: 3.2rem 2rem;
  }
  .p-download__title {
    font-size: 2.4rem;
  }
  .p-download__desc {
    font-size: 1.6rem;
  }
  .p-download__contents-title {
    font-size: 2rem;
    border-left: 4px solid var(--main);
    padding-left: 1.6rem;
    margin-bottom: 2rem;
  }
}

/* ========== 支援事例 個別ページ ========== */
@media screen and (max-width: 768px) {
  .p-case-hero__title,
  .p-case-related__title {
    font-size: 3.1rem;
  }
  .p-case-hero__body {
    grid-template-columns: 1fr;
    gap: 3.2rem;
    margin-top: 5rem;
  }
  .p-case-hero__right {
    order: -1;
  }
  .p-case-meta__row {
    gap: 2.4rem;
    padding: 0 1.6rem;
    font-size: 1.6rem;
    height: auto;
    min-height: 7rem;
  }
  .p-case-meta__label {
    min-width: 7rem;
  }
  .p-case-articles {
    padding: 3.2rem 1.6rem;
    gap: 4rem;
  }
  .p-case-section__heading {
    font-size: 2rem;
  }
  .p-case-section__text {
    font-size: 1.6rem;
  }
  .p-case-content {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .p-case-related {
    padding-bottom: 6.7rem;
  }
  .p-case-related__grid {
    grid-template-columns: 1fr;
    gap: 1.8rem;
    margin-top: 5rem;
  }
}

/* ========== 当事務所について ========== */
@media screen and (max-width: 768px) {
  .p-about-fv {
    padding: 7rem 0;
  }
  .p-about-fv__title {
    font-size: 2.8rem;
  }
  .p-about-greeting__body {
    flex-direction: column;
    margin-top: 5rem;
  }
  .p-about-profile-box::before {
    left: 12px;
    top: -5px;
    font-size: 5rem;
  }
  .p-about-greeting__img-wrap {
    width: 100%;
  }
  .p-about-greeting__desc {
    margin-top: 3.6rem;
  }
  .p-about-greeting__heading {
    font-size: 2.2rem;
  }
  .p-about-greeting__desc p {
    font-size: 1.6rem;
  }
  .p-about-greeting__sig {
    font-size: 1.4rem;
  }
  .p-about-greeting__sig-name {
    font-size: 1.8rem;
  }
  .p-about-profile-box {
    padding: 2.4rem 4rem;
    min-height: auto;
  }
  .p-about-profile-box__text {
    font-size: 1.6rem;
  }
  .p-about-overview__row {
    flex-direction: row;
    align-items: flex-start;
    gap: 2rem;
    padding: 2.8rem 1rem;
    min-height: unset;
    font-size: 1.6rem;
  }
  .p-about-overview__dt {
    flex: 0 0 33.33%;
    font-weight: var(--fw-bold);
    font-size: 1.6rem;
  }
  .p-about-overview__dd {
    margin: 0;
    font-size: 1.6rem;
  }
  .p-about-overview__map {
    width: 100%;
    height: 28rem;
  }
  .p-about-overview__map-placeholder {
    height: 28rem;
  }
  .p-about-overview__map iframe {
    height: 28rem;
  }
}

/* ========== お客様の声ページ ========== */
@media screen and (max-width: 768px) {
  .p-voice-cards {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .p-voice-card__body {
    padding: 2.8rem 2.4rem;
    gap: 1.2rem;
  }
  .p-voice-card__title {
    font-size: 1.8rem;
  }
  .p-voice-card__name {
    font-size: 1.8rem;
  }
  .p-voice-card__text {
    font-size: 1.4rem;
  }
}

/* ========== よくある質問 ========== */
@media screen and (max-width: 768px) {
  .p-faq-fv {
    padding: 7rem 0;
  }
  .p-faq-section .p-faq-list {
    margin-top: 2.4rem;
  }
  .p-faq-fv__title {
    font-size: 2.8rem;
  }
  .p-faq-tabs {
    flex-direction: column;
    gap: 1rem;
  }
  .p-faq-tab__label {
    font-size: 1.6rem;
    white-space: normal;
    text-align: center;
  }
  .p-faq-category__header {
    gap: 0.5rem;
  }
  .p-faq-category .p-faq-list {
    margin-top: 2.4rem;
  }
  .p-faq-category__title {
    font-size: 2.2rem;
  }
  .p-faq-category__bracket {
    height: 5.6rem;
    width: 0.8rem;
  }
  .p-faq-category {
    margin-top: 4.8rem;
  }
  .p-faq-category:first-child {
    margin-top: 3.6rem;
  }
  .p-faq-qa__q-row {
    gap: 1.2rem;
    padding: 0 0.8rem;
  }
  .p-faq-qa__a-row {
    gap: 1.2rem;
    padding: 0 0.8rem 2.4rem;
    min-height: auto;
    align-items: flex-start;
  }
  .p-faq-qa__question {
    font-size: 1.6rem;
  }
  .p-faq-qa__answer {
    font-size: 1.4rem;
  }
  .p-faq-qa__icon {
    margin-top: 0.2rem;
    width: 3rem;
    height: 3rem;
  }
  .p-faq-qa__icon svg {
    width: 3rem;
    height: 3rem;
  }
  .p-faq-qa__icon-letter {
    font-size: 1.6rem;
  }
  .p-faq-qa__toggle {
    font-size: 2rem;
  }
}

/* ========== 就労ビザ申請 ========== */
@media screen and (max-width: 768px) {
  .p-wv-fv__title {
    font-size: 2.8rem;
  }
  .p-wv-fv__desc {
    font-size: 1.5rem;
  }
  .p-wv-fv__tag {
    font-size: 1.2rem;
    padding: 0.5rem 1.2rem;
  }
  .p-wv-fv__cta {
    flex-direction: column;
  }
  .p-wv-fv__cta-btn {
    justify-content: center;
    padding: 1.4rem 2rem;
  }
  /* ---- 対応ビザ種別 ---- */
  .p-wv-visa-types {
    padding-top: 4.8rem;
    padding-bottom: 4.8rem;
  }
  .p-wv-visa-types__lead {
    font-size: 1.5rem;
    text-align: left;
  }
  .p-wv-visa-types__grid {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 1.6rem;
    margin-top: 3.2rem;
  }
  .p-wv-visa-types__card,
  .p-wv-visa-types__card--wide {
    grid-column: span 1;
  }
  .p-wv-visa-types__card:not(.p-wv-visa-types__card--wide)
    .p-wv-visa-types__card-body,
  .p-wv-visa-types__card--wide .p-wv-visa-types__card-body {
    min-height: unset;
  }
  .p-wv-visa-types__card-title {
    font-size: 1.8rem;
    white-space: normal;
  }
  .p-wv-visa-types__card-body {
    padding: 1.6rem 2rem;
  }
  .p-wv-visa-types__card-item,
  .p-wv-visa-types__card-item--block {
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .p-wv-visa-types__card-list--row {
    flex-direction: column;
    gap: 0.8rem;
  }
  .p-wv-visa-types__cta-wrap {
    margin-top: 4rem;
  }
  .p-wv-visa-types__cta-btn {
    min-width: unset;
    width: 100%;
    padding: 1.6rem 2rem;
    min-height: 5.4rem;
  }
  .p-wv-visa-types__cta-btn svg {
    width: 2.2rem;
    height: 2.2rem;
  }
  .p-wv-visa-types__cta-text {
    font-size: 1.6rem;
  }
  /* ---- /対応ビザ種別 ---- */

  .p-wv-problems__inner {
    gap: 4.8rem;
  }
  .p-wv-problems__body {
    flex-direction: column;
    gap: 3.2rem;
  }
  .p-wv-problems__img {
    width: 160px;
    margin: 0 auto;
  }
  .p-wv-problems__list {
    grid-template-columns: 1fr;
    row-gap: 4rem;
  }
  .p-wv-problems__strip-text {
    font-size: 1.8rem;
    padding: 0 2rem;
  }
  .p-wv-detail__point-title {
    font-size: 1.6rem;
  }
  .p-wv-detail__point-text {
    font-size: 1.4rem;
  }
  /* p-wv-cases__grid → p-case-cards に統一済み */
  .p-wv-merits {
    padding-top: 5.8rem;
    padding-bottom: 6.8rem;
  }
  .p-wv-merits__grid {
    grid-template-columns: 1fr;
    gap: 3.6rem;
  }
  .p-wv-merits__item {
    padding: 3rem 2.4rem;
    border-width: 2px;
  }
  .p-wv-merits .c-section-header-ja,
  .p-wv-detail .c-section-header-ja {
    font-size: 2.8rem;
    line-height: 1.4;
  }
  .p-wv-merits__num-large {
    font-size: 4rem;
    line-height: 1;
  }
  .p-wv-merits__title {
    font-size: 1.8rem;
    min-height: auto;
  }
  .p-wv-merits__text {
    font-size: 1.5rem;
  }
  .p-wv-price {
    padding-top: 6.6rem;
    padding-bottom: 6.6rem;
  }
  .p-wv-flow__steps {
    max-width: 100%;
  }
  .p-wv-flow__step {
    flex-direction: row;
    align-items: stretch;
    padding: 0;
    gap: 0;
  }
  .p-wv-flow__step-num {
    flex-direction: column;
    width: 80px;
    min-width: 80px;
    height: auto;
    padding: 1.5rem 0.5rem;
    gap: 0;
  }
  .p-wv-flow__step-num-label {
    font-size: 1rem;
    line-height: 1.2;
  }
  .p-wv-flow__step-num-val {
    font-size: 2.8rem;
    line-height: 1.2;
  }
  .p-wv-flow__step-body {
    padding: 2rem 1.5rem;
    min-height: 15.4rem;
    flex: 1;
  }
  .p-wv-flow__step-title {
    font-size: 1.6rem;
    line-height: 1.4;
  }
  .p-wv-flow__step-text {
    font-size: 1.3rem;
    line-height: 1.6;
  }
  .p-wv-flow__arrow-row {
    height: 0;
    margin: 0;
  }
  .p-wv-flow__step-arrow {
    width: 80px;
    height: 1.2rem;
  }
  .p-wv-flow__step-body--odd {
    background: #fff;
  }
  .p-wv-flow__step-body--even {
    background: #f8f8f8;
  }
  .p-wv-coverage__lead {
    font-size: 1.6rem;
    line-height: 1.6;
    margin-top: 0;
    text-align: left;
  }

  .p-wv-coverage__table-wrap {
    margin-top: 2.4rem;
    padding: 1.6rem;
    background: #fff;
    border-radius: 1.2rem;
    box-shadow: 0 2px 12px rgba(79, 111, 254, 0.05);
  }

  .p-wv-nav {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .p-wv-nav__lead {
    font-size: 1.4rem;
    text-align: left;
  }
  .p-wv-nav__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
    margin-top: 2.8rem;
  }
  .p-wv-nav__card {
    padding: 2rem 1.2rem 1.8rem;
    gap: 1rem;
  }
  .p-wv-nav__icon {
    width: 4rem;
    height: 4rem;
  }
  .p-wv-nav__card-title {
    font-size: 1.4rem;
  }

  /* ---- ファーストビュー CTA ---- */
  .p-wv-fv__cta-label {
    font-size: 1.4rem;
  }
  .p-wv-fv__cta-label strong {
    font-size: 1.6rem;
  }

  /* ---- 課題リスト ---- */
  .p-wv-problems__item {
    padding-top: 1.8rem;
    padding-bottom: 1.8rem;
  }
  .p-wv-problems__item p {
    font-size: 1.4rem;
  }

  /* ---- 詳細説明 ---- */
  .p-wv-detail__lead {
    font-size: 1.4rem;
  }
  .p-wv-detail__desc {
    font-size: 1.4rem;
  }
  .p-wv-detail__strengths-line {
    width: 5rem;
  }
  .p-wv-detail__strengths-en-text {
    font-size: 1.4rem;
  }
  .p-wv-detail__point-content {
    gap: 1.2rem;
  }

  /* ---- メリット ---- */
  .p-wv-merits__num {
    font-size: 4.2rem;
  }

  /* ---- 業務範囲 ---- */
  .p-wv-coverage__item-title {
    font-size: 1.4rem;
  }
  .p-wv-coverage__table {
    margin-top: 0;
  }
  .p-wv-coverage__row + .p-wv-coverage__row {
    margin-top: 0.8rem;
  }

  /* ---- FAQ ---- */
  .p-wv-faq__link-wrap {
    margin-top: 2.4rem;
  }

  /* ---- 対応ビザ種別（ヘッダー） ---- */
  .p-wv-visa-types__card-head {
    padding: 0.8rem 1rem;
  }

  /* ---- 料金 ---- */
  .p-wv-price__notice {
    font-size: 1.4rem;
  }
  .p-wv-price__block-title {
    font-size: 1.6rem;
  }

  /* ---- 料金共通 ---- */
  .p-price-notice__btn--estimate {
    font-size: 1.6rem;
  }
  .p-price-notice__btn--estimate::after {
    width: 1.7rem;
    height: 1.7rem;
  }
  .p-price-notice__tel-number {
    font-size: 1.8rem;
  }
  .p-price-subsection__links {
    gap: 1rem;
    margin-top: 0;
  }
}

/* ========== 解決 キャッチコピー（p-wv-catch） ========== */
@media screen and (max-width: 768px) {
  .p-wv-catch {
    padding-top: 5.5rem;
    padding-bottom: 4.8rem;
    overflow: hidden;
  }
  .p-wv-catch::before {
    border-left-width: 7rem;
    border-right-width: 7rem;
    border-top-width: 3.5rem;
  }
  .p-wv-catch::after {
    width: 28rem;
    height: 21rem;
    top: auto;
    bottom: -6rem;
    left: -6rem;
    transform: translateY(0);
  }
  .p-wv-catch__text {
    font-size: 1.8rem;
    padding-inline: 2.4rem;
    white-space: normal;
    text-wrap: pretty;
  }
  .p-wv-catch__text strong {
    display: block;
  }
}

/* ========== 狭SP幅（320〜374px）キャッチコピー縮小 ========== */
@media screen and (max-width: 374px) {
  .p-wv-catch__text {
    font-size: 1.6rem;
    padding-inline: 1.6rem;
  }
}

/* ========== 支援事例一覧ページ（スマホ 768px以下） ========== */
@media screen and (max-width: 768px) {
  .p-case-archive-fv {
    height: 18rem;
  }

  .p-case-archive-section {
    padding-top: 5rem;
    padding-bottom: 6rem;
  }

  .p-case-archive-filter__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.6rem;
    min-height: auto;
    padding-block: 2rem;
  }

  .p-case-archive-filter__label {
    font-size: 1.6rem;
    width: auto;
  }

  .p-case-archive-filter__checkbox-group {
    gap: 2rem;
    flex-wrap: wrap;
  }

  .p-case-archive-filter__checkbox-text {
    font-size: 1.6rem;
  }

  .p-case-archive-filter__btn {
    width: 100%;
    max-width: 30rem;
  }

  .p-case-archive__grid {
    grid-template-columns: 1fr;
    gap: 5rem 2rem;
    /* margin-top: 4rem; */
  }

  .p-case-archive__grid .c-case-card {
    border-radius: 10px 10px 0 10px;
  }

  .p-case-archive-pagination {
    gap: 1rem;
    margin-top: 3.6rem;
    flex-wrap: nowrap;
  }

  .p-case-archive-pagination__numbers {
    gap: 1rem;
  }

  .p-case-archive-pagination__number,
  .p-case-archive-pagination__ellipsis {
    font-size: 2.4rem;
    min-width: auto;
  }
  .p-case-archive-pagination__arrow {
    width: 4.8rem;
    height: 4.8rem;
    flex-shrink: 0;
  }
  .p-case-archive-pagination__arrow svg {
    width: 26px;
    height: 26px;
  }
}

/* ========== work-visa SP ========== */
@media screen and (max-width: 768px) {
  /* FV */
  .p-wv-fv {
    padding: 3.2rem 0 4.8rem;
  }

  .p-wv-fv__breadcrumb-link,
  .p-wv-fv__breadcrumb-current {
    font-size: 1.2rem;
    white-space: nowrap;
  }

  .p-wv-fv__breadcrumb-list {
    gap: 0.4rem 0.6rem;
  }

  .p-wv-detail__strengths-sub {
    font-size: 1.4rem;
  }

  /* 強みポイント */
  .p-wv-detail__body {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .p-wv-detail__point {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .p-wv-detail__point--reverse {
    direction: ltr;
  }

  /* 業種テーブル */
  .p-wv-coverage__inner {
    padding-inline: 1.6rem;
    display: flex;
    flex-direction: column;
    gap: 3.2rem;
  }

  .p-wv-coverage__row {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: transparent;
    padding: 0;
  }

  .p-wv-coverage__label {
    display: inline-flex;
    padding: 0.6rem 1.4rem;
    font-size: 1.4rem;
    font-weight: 700;
    color: #4f6ffe;
    border: 2px solid transparent;
    border-radius: 0.6rem;
    background:
      linear-gradient(#fff, #fff) padding-box,
      var(--main2) border-box;
    line-height: 1.2;
    justify-self: flex-start;
    align-self: flex-start;
  }

  .p-wv-coverage__jobs {
    display: flex;
    padding: 1.6rem 1.6rem 1rem;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 2;
    word-spacing: 0.8rem;
    gap: 0rem 1.6rem;
  }

  /* 対応エリア */
  .p-wv-area__table-wrap {
    padding: 2rem;
  }

  .p-wv-area__row {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .p-wv-area__region {
    width: auto;
    justify-self: start;
  }

  .p-wv-area__pref {
    font-size: 1.3rem;
    padding: 0.3rem 0.8rem;
  }
}

/*************************** 取扱業務一覧 SP (service.php) *******************/

@media screen and (max-width: 768px) {
  .p-service-lead {
    padding-top: 4.8rem;
  }

  .p-service-lead__text {
    font-size: 1.6rem;
    text-align: left;
  }

  .p-service-lead__text br {
    display: none;
  }

  .p-service-list__inner {
    gap: 5.6rem;
  }

  .p-service-list__item {
    flex-direction: column;
    gap: 2.4rem;
  }

  .p-service-list__img-wrap {
    width: 100%;
  }

  .p-service-list__img-wrap img {
    height: auto;
  }

  .p-service-list__number-text {
    font-size: 4.8rem;
  }

  .p-service-list__title-text {
    font-size: 2.2rem;
  }

  .p-service-list__text {
    font-size: 1.5rem;
  }

  .p-service-list__link {
    align-self: flex-start;
  }

  .p-service-list__link-text {
    font-size: 1.5rem;
  }
}

/*************************** 取扱業務詳細テンプレ SP (page-work-template.php) *******************/

@media screen and (max-width: 768px) {
  .p-wt-fv {
    padding-top: 4rem;
    padding-bottom: 4.8rem;
  }

  .p-wt-fv__breadcrumb-link,
  .p-wt-fv__breadcrumb-current {
    font-size: 1.2rem;
    white-space: nowrap;
  }

  .p-wt-fv__title {
    font-size: 2.8rem;
  }

  .p-wt-lead {
    padding-top: 4.8rem;
  }

  .p-wt-lead__text {
    font-size: 1.5rem;
  }

  .p-wt-features {
    padding-bottom: 6.4rem;
  }

  .p-wt-features__item {
    padding-left: 2rem;
  }

  .p-wt-features__number {
    font-size: 3.6rem;
  }

  .p-wt-features__title {
    font-size: 1.8rem;
  }

  .p-wt-features__text {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 768px) {
  /* プライバシーポリシー */
  .p-page__content h2.wp-block-heading {
    font-size: 1.8rem;
    padding: 0.3rem 0 0.8rem 1.2rem;
    margin: 2.8rem 0 1rem;
  }
  .p-page__content h2.wp-block-heading::before {
    height: 1.8rem;
  }

  .p-privacy__text,
  .p-privacy__list-item {
    font-size: 1.4rem;
  }
}

/* ========== XS（≤360px）極小スマホ補正 ========== */
@media screen and (max-width: 360px) {
  .p-wv-visa-types__card-item,
  .p-wv-visa-types__card-item--block {
    font-size: 1.2rem;
  }
  .p-wv-visa-types__card-row {
    gap: 1rem;
  }

  /* 資格・登録情報 */
  .p-about-certs__grid {
    margin-top: 3.2rem;
  }

  /* 事務所概要 */
  .p-about-overview__table {
    margin-top: 5rem;
  }

  .p-case-content__btn-wrap {
    margin-top: 4rem;
  }

  .p-case-hero {
    padding-block: 6.72rem 0;
  }

  /* ---------- パンくず SP共通 ---------- */
  .p-reason-breadcrumb,
  .p-column-breadcrumb,
  .p-service-breadcrumb,
  .p-404-breadcrumb,
  .p-price-breadcrumb,
  .p-download-breadcrumb {
    height: auto;
    min-height: 3.6rem;
    padding-block: 0.6rem;
  }

  .p-reason-breadcrumb__list,
  .p-column-breadcrumb__list,
  .p-service-breadcrumb__list,
  .p-404-breadcrumb__list,
  .p-price-breadcrumb__list,
  .p-download-breadcrumb__list {
    flex-wrap: wrap;
    gap: 0.4rem 0.6rem;
    font-size: 1.2rem;
  }

  .p-reason-breadcrumb__item,
  .p-column-breadcrumb__item,
  .p-service-breadcrumb__item,
  .p-404-breadcrumb__item,
  .p-price-breadcrumb__item,
  .p-download-breadcrumb__item {
    white-space: nowrap;
  }

  .p-reason-breadcrumb__link,
  .p-column-breadcrumb__link,
  .p-service-breadcrumb__link,
  .p-404-breadcrumb__link,
  .p-price-breadcrumb__link,
  .p-download-breadcrumb__link {
    font-size: 1.2rem;
  }
}
