/*
 * common.css — 新デザイン共通スタイル
 * ============================================
 *
 * 対象ページ:
 *   - home（トップページ）
 *   - ページ（support, promise, flow, faq, voice, about）
 *   - request（資料請求）
 *   - contact（お問い合わせ）
 *
 * このファイルは、新デザインシステムで共通に使用するスタイルを集約しています。
 * 各ページ固有のスタイルは個別のCSSファイルに記述してください。
 *
 * ============================================
 */

/* ===================================
 * 色変数
 * =================================== */
:root {
    --service-color-white: #FFFFFF;
    --service-color-cream: #FFFFF0;
    --service-color-bg-gray: #F7F7F7;
    --service-color-beige: #FAF3E6;
    --service-color-orange: #FF6300;
    --service-color-green: #3CAA46;
    --service-color-green-light: #C0D89A;
    --service-color-text: #464646;
    --service-color-link: #0061B0;
    --service-color-light-gray: #D9D9D9;
    --service-color-border: #898989;
}

/* ===================================
 * style.css グローバルルール上書き
 * 新デザインページで style.css の干渉を打ち消す
 * =================================== */
body.home,
body.page-free,
body.page-support,
body.page-promise,
body.page-flow,
body.page-faq,
body.page-voice,
body.page-about,
body.page-request,
body.page-contact,
body.page-parent-guide {
    color: var(--service-color-text);
    font-family: var(--font-family-main);
    line-height: 1.6;
}

/* .l-content の line-height 上書き（style.css の 2.25 を打ち消し） */
body.home .l-content,
body.page-free .l-content,
body.page-support .l-content,
body.page-promise .l-content,
body.page-flow .l-content,
body.page-faq .l-content,
body.page-voice .l-content,
body.page-about .l-content,
body.page-request .l-content,
body.page-contact .l-content,
body.page-parent-guide .l-content {
    line-height: 1.6;
}

/* body * の letter-spacing / font-feature-settings 打ち消し */
body.home [class*="p-"]:not([class*="p-header"]),
body.page-free [class*="p-"]:not([class*="p-header"]),
body.page-support [class*="p-"]:not([class*="p-header"]),
body.page-promise [class*="p-"]:not([class*="p-header"]),
body.page-flow [class*="p-"]:not([class*="p-header"]),
body.page-faq [class*="p-"]:not([class*="p-header"]),
body.page-voice [class*="p-"]:not([class*="p-header"]),
body.page-about [class*="p-"]:not([class*="p-header"]),
body.page-request [class*="p-"]:not([class*="p-header"]),
body.page-contact [class*="p-"]:not([class*="p-header"]),
body.page-parent-guide [class*="p-"]:not([class*="p-header"]) {
    letter-spacing: normal;
    font-feature-settings: normal;
}

/* p+p マージン（style.css のデフォルトより少し狭い値に統一） */
:where(body.home, body.page-free, body.page-support, body.page-promise, body.page-flow, body.page-faq, body.page-voice, body.page-about, body.page-request, body.page-contact, body.page-parent-guide) :where([class*="p-"]) p + p {
    margin-block-start: clamp(12px, calc(1.13vw + 3.31px), 25px);
}

/* フッター: 不要な要素を非表示 */
body.home .l-content,
body.page-support .l-content,
body.page-promise .l-content,
body.page-flow .l-content,
body.page-faq .l-content,
body.page-voice .l-content,
body.page-about .l-content,
body.page-parent-guide .l-content {
    margin-block-end: 0;
}

body.home .p-footer-new__info,
body.page-support .p-footer-new__info,
body.page-promise .p-footer-new__info,
body.page-flow .p-footer-new__info,
body.page-faq .p-footer-new__info,
body.page-voice .p-footer-new__info,
body.page-about .p-footer-new__info,
body.page-parent-guide .p-footer-new__info {
    margin-top: 0;
}

body.home .p-footer-new__nav,
body.home .p-footer-new__cta,
body.page-support .p-footer-new__nav,
body.page-support .p-footer-new__cta,
body.page-promise .p-footer-new__nav,
body.page-promise .p-footer-new__cta,
body.page-flow .p-footer-new__nav,
body.page-flow .p-footer-new__cta,
body.page-faq .p-footer-new__nav,
body.page-faq .p-footer-new__cta,
body.page-voice .p-footer-new__nav,
body.page-voice .p-footer-new__cta,
body.page-about .p-footer-new__nav,
body.page-about .p-footer-new__cta,
body.page-parent-guide .p-footer-new__nav,
body.page-parent-guide .p-footer-new__cta {
    display: none;
}

/* ===================================
 * 表示切替ユーティリティ
 * =================================== */
.pc-only {
    display: block;
}

.sp-only {
    display: none;
}

@media (max-width: 768px) {
    .pc-only {
        display: none;
    }

    .sp-only {
        display: block;
    }
}

.sp-1024-only {
    display: none;
}

@media (max-width: 1024px) {
    .sp-1024-only {
        display: block;
    }
}

.sp-540-only {
    display: none;
}

.sp-540-hide {
    display: block;
}

@media (max-width: 540px) {
    .sp-540-only {
        display: block;
    }

    .sp-540-hide {
        display: none;
    }
}

/* ===================================
 * セクションタイトル（PC: 60px, SP: 22px）
 * =================================== */
.p-service-section-title {
    font-weight: 700;
    font-size: clamp(40px, calc(1.74vw + 26.6px), 60px);
    line-height: 1.4;
}

@media (max-width: 768px) {
    .p-service-section-title {
        font-size: clamp(21px, calc(2.15vw + 13.5px), 30px);
    }
}

/* ===================================
 * セクションタイトル小（PC: 50px, SP: 24px）
 * =================================== */
.p-service-section-title--sm {
    font-weight: 700;
    font-size: clamp(34px, calc(1.39vw + 23.3px), 50px);
    line-height: 1.4;
    letter-spacing: -0.01em;
}

@media (max-width: 768px) {
    .p-service-section-title--sm {
        font-size: clamp(23px, calc(1.67vw + 17.2px), 30px);
    }
}

/* ===================================
 * セクションサブタイトル（PC: 38px, SP: 18px）
 * =================================== */
.p-service-section-subtitle {
    font-weight: 700;
    font-size: clamp(26px, calc(1.04vw + 18px), 38px);
    line-height: 1.4;
    letter-spacing: -0.01em;
}

@media (max-width: 768px) {
    .p-service-section-subtitle {
        font-size: clamp(17px, calc(1.91vw + 10.3px), 25px);
    }
}

/* ===================================
 * カードタイトル（PC: 32px, SP: 20px）
 * =================================== */
.p-service-card-title {
    font-weight: 700;
    font-size: clamp(22.4px, calc(0.83vw + 16px), 32px);
    line-height: 1.4;
}

@media (max-width: 768px) {
    .p-service-card-title {
        font-size: clamp(18px, calc(2.39vw + 9.6px), 28px);
    }
}

/* ===================================
 * セクション番号（PC: 75px, SP: 28px）
 * =================================== */
.p-service-section-number {
    font-weight: 700;
    font-size: clamp(52.5px, calc(1.95vw + 37.5px), 75px);
    line-height: 1;
    margin-right: 0.15em;
}

@media (max-width: 768px) {
    .p-service-section-number {
        font-size: clamp(29px, calc(2.63vw + 19.8px), 40px);
    }
}

/* ===================================
 * セクションテキスト（PC: 18〜16px, SP: 17〜15px）
 * =================================== */
.p-service-section-text {
    font-weight: 500;
    font-size: clamp(16px, calc(0.17vw + 14.66px), 18px);
    line-height: 1.8;
}

@media (max-width: 768px) {
    .p-service-section-text {
        font-size: clamp(15px, calc(0.45vw + 13.57px), 17px);
    }
}

/* ===================================
 * 共通レイアウトパターン
 * =================================== */
.p-service__inner {
    max-width: 1340px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
    padding-block: var(--section);
}

@media (max-width: 768px) {
    .p-service__inner {
        padding-block: var(--section-s);
    }
}

/* タイプ1: ベージュ背景、枠線なし */
.p-service-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 45px;
    padding: 0 32px;
    border: none;
    border-radius: 0;
    font-family: var(--font-family-main);
    font-size: clamp(16px, calc(0.17vw + 14.66px), 18px);
    font-weight: 700;
    color: var(--service-color-text);
    background-color: var(--service-color-beige);
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.p-service-btn:hover {
    opacity: 0.85;
}

/* タイプ2: 白背景、枠線あり */
.p-service-btn--outline {
    background-color: var(--service-color-white);
    border: 1px solid var(--service-color-text);
}

/* V字アイコン（CSS描画） */
.p-service-btn__icon {
    display: inline-block;
    position: relative;
    width: 10px;
    height: 14px;
    transition: transform 0.3s ease;
}

.p-service-btn__icon::before,
.p-service-btn__icon::after {
    content: '';
    position: absolute;
    top: 0;
    width: 14px;
    height: 2px;
    background-color: currentColor;
}

.p-service-btn__icon::before {
    left: 0;
    transform: rotate(68deg);
    transform-origin: left center;
}

.p-service-btn__icon::after {
    right: 0;
    transform: rotate(-68deg);
    transform-origin: right center;
}

.p-service-btn[aria-expanded="true"] .p-service-btn__icon {
    transform: rotate(180deg);
}

@media (max-width: 768px) {
    .p-service-btn {
        height: 35px;
        font-size: clamp(15px, calc(0.45vw + 13.57px), 17px);
        padding: 0 24px;
    }

    .p-service-btn__icon::before,
    .p-service-btn__icon::after {
        height: 1.5px;
    }
}

/* ===================================
 * service共通: CTAボタン
 * オレンジ枠線、オレンジテキスト、白背景
 * PC: 500px×100px, 22-28px/700
 * SP: 100%×70px (max 330px), 20px/700
 * =================================== */
.p-service-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(340px, calc(13.9vw + 233px), 500px);
    height: clamp(80px, calc(1.74vw + 66.6px), 100px);
    background-color: var(--service-color-white);
    border: 3px solid var(--service-color-orange);
    border-radius: 50px;
    color: var(--service-color-orange);
    font-family: var(--font-family-main);
    font-size: clamp(19px, calc(0.78vw + 13px), 28px);
    font-weight: 700;
    letter-spacing: -0.02em;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-service-cta-btn:hover {
    opacity: 0.85;
}

/* 横並び時の小サイズ */
.p-service-cta-btn--sm {
    width: 400px;
    height: 80px;
    font-size: clamp(18px, calc(0.52vw + 14px), 24px);
}

/* 緑背景・2行テキスト */
.p-service-cta-btn--green {
    flex-direction: column;
    gap: 0;
    background-color: var(--service-color-green);
    border: none;
    color: var(--service-color-white);
}

.p-service-cta-btn__sub {
    font-size: clamp(15.4px, calc(0.57vw + 11.02px), 22px);
    font-weight: 500;
    line-height: 1.4;
}

.p-service-cta-btn__main {
    font-size: clamp(19.6px, calc(0.73vw + 13.99px), 28px);
    font-weight: 700;
    line-height: 1.4;
}

@media (max-width: 768px) {
    .p-service-cta-btn {
        width: 100%;
        max-width: 330px;
        height: 70px;
        border-width: 2px;
        font-size: 19px;
    }

    .p-service-cta-btn--sm {
        width: 100%;
        max-width: 330px;
        height: 70px;
        font-size: 20px;
    }

    .p-service-cta-btn--green {
        border: none;
    }

    .p-service-cta-btn__sub {
        font-size: clamp(14.4px, calc(1.91vw + 7.71px), 22.4px);
    }

    .p-service-cta-btn__main {
        font-size: clamp(18px, calc(2.39vw + 9.63px), 28px);
    }
}

/* ===================================
 * クリーム背景セクション（丸い下部）
 * =================================== */
.p-service-cream-section {
    background-color: var(--service-color-cream);
    border-radius: 0 0 50% 50% / 0 0 150px 150px;
}

@media (max-width: 768px) {
    .p-service-cream-section {
        border-radius: 0 0 50% 50% / 0 0 70px 70px;
    }
}

/* ===================================
 * イントロ inner（1140px中央・上部余白制限）
 * =================================== */
.p-service-intro-inner {
    max-width: 1140px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
    padding-block: min(var(--section), 80px) var(--section);
    text-align: center;
}

@media (max-width: 768px) {
    .p-service-intro-inner {
        padding-block: var(--section-s);
    }
}

/* ===================================
 * アコーディオン共通（details/summary）
 * =================================== */
.p-service-accordion summary {
    list-style: none;
    cursor: pointer;
}

.p-service-accordion summary::-webkit-details-marker {
    display: none;
}

.p-service-accordion > summary {
    width: 100%;
    box-sizing: border-box;
}

.p-service-accordion[open] .p-service-btn__icon {
    transform: rotate(180deg);
}

/* ===================================
 * お客様の声（voices）
 * =================================== */
.p-service-voices {
    background-color: var(--service-color-white);
}

.p-service-voices__inner {
    max-width: 1470px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
    padding-block: var(--section);
}

.p-service-voices__header {
    text-align: center;
    margin-bottom: 40px;
}

.p-service-voices__header .p-service-section-title {
    margin-bottom: 8px;
}

.p-service-voices__header .p-service-section-subtitle {
    margin-bottom: 4px;
}

.p-service-voices__note {
    font-size: clamp(14px, calc(0.17vw + 12.69px), 16px);
    color: var(--service-color-text);
    margin-top: 10px;
}

.p-service-voices__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(15px, calc(0.43vw + 11.66px), 20px);
}

@media (max-width: 1279px) {
    .p-service-voices__list {
        grid-template-columns: repeat(2, 1fr);
        row-gap: clamp(24px, calc(1.56vw + 12px), 36px);
    }
}

.p-service-voices__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.p-service-voices__image {
    width: clamp(150px, calc(8.69vw + 83px), 250px);
    height: clamp(150px, calc(8.69vw + 83px), 250px);
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 20px;
}

.p-service-voices__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-service-voices__text {
    font-size: clamp(16.5px, calc(0.30vw + 14.17px), 20px);
    font-weight: 500;
    letter-spacing: -0.03em;
    margin-bottom: 24px;
}

.p-service-voices__accordion {
    width: 70%;
    box-sizing: border-box;
}

.p-service-voices__detail {
    width: 100%;
    padding: 8px 16px 16px;
    margin-top: 0;
    background-color: var(--service-color-beige);
    text-align: left;
    box-sizing: border-box;
}

.p-service-voices__detail .p-service-section-text {
    margin-bottom: 12px;
}

.p-service-voices__attr {
    font-size: 14px;
    color: var(--service-color-text);
    text-align: center;
    line-height: 1.6;
    margin-top: 0;
}

/* SP対応 */
@media (max-width: 768px) {
    .p-service-voices__inner {
        padding-block: var(--section-s);
    }

    .p-service-voices__header {
        margin-bottom: 24px;
    }

    .p-service-voices__note {
        font-size: 12px;
        margin-top: 4px;
    }

    .p-service-voices__image {
        width: clamp(258px, calc(22vw + 181px), 350px);
        height: clamp(258px, calc(22vw + 181px), 350px);
        margin-bottom: 16px;
    }

    .p-service-voices__text {
        font-size: 16px;
        line-height: 1.6;
        margin-bottom: 12px;
    }

    .p-service-voices__accordion {
        max-width: 230px;
    }

    .p-service-voices__attr {
        font-size: 12px;
    }
}

/* ===================================
 * クロージング（closing）
 * =================================== */
.p-service-closing {
    background-color: var(--service-color-white);
}

.p-service-closing__bg {
    background-color: var(--service-color-cream);
}

.p-service-closing__inner {
    max-width: 1340px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
    padding-block: min(var(--section), 80px);
    text-align: center;
}

.p-service-closing__content {
    margin-bottom: clamp(30px, calc(1.74vw + 16.62px), 50px);
}

.p-service-closing__content .p-service-section-title {
    margin-bottom: 35px;
}

.p-service-closing__content .p-service-section-subtitle {
    font-weight: 500;
    margin-bottom: 15px;
}

@media (max-width: 768px) {
    .p-service-closing__content .p-service-section-title {
        font-size: clamp(22px, calc(0.96vw + 18.64px), 26px);
        margin-bottom: 12px;
        margin-inline: calc(-1 * var(--margin--use--outside));
        letter-spacing: -0.01em;
    }

    .p-service-closing__content .p-service-section-subtitle {
        font-weight: 700;
    }
}

.p-service-closing__image {
    max-width: 700px;
    margin-inline: auto;
    margin-bottom: 32px;
}

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

.p-service-closing__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: clamp(340px, calc(13.9vw + 233px), 500px);
    margin-inline: auto;
}

.p-service-closing__note {
    font-size: 14px;
    color: var(--service-color-text);
    align-self: flex-end;
}

.p-service-closing__next {
    font-size: clamp(18px, calc(0.17vw + 16.66px), 20px);
    font-weight: 700;
    margin-top: 24px;
    line-height: 1.6;
}

.p-service-closing__link {
    color: var(--service-color-link);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity 0.3s ease;
}

.p-service-closing__link:hover {
    opacity: 0.85;
}

@media (max-width: 768px) {
    .p-service-closing__cta {
        width: 100%;
        max-width: 330px;
        gap: 2px;
    }
}

/* SP対応 */
@media (max-width: 768px) {
    .p-service-closing__inner {
        padding-block: var(--section-s);
    }

    .p-service-closing__content {
        margin-bottom: 24px;
    }

    .p-service-closing__image {
        width: 100%;
        max-width: none;
        margin-bottom: 24px;
    }

    .p-service-closing__next {
        margin-top: 16px;
        font-size: clamp(15px, calc(0.45vw + 13.57px), 17px);
    }

    .p-service-closing__note {
        font-size: 12px;
    }
}

/* ===================================
 * FAQ
 * =================================== */
.p-service-faq {
    background-color: var(--service-color-bg-gray);
    padding-inline: var(--margin--use--outside);
    padding-block: var(--section);
}

.p-service-faq__inner {
    max-width: 1460px;
    margin-inline: auto;
    padding-inline: clamp(20px, calc(11.29vw - 66.8px), 150px);
    padding-block: clamp(50px, calc(4.34vw + 16.6px), 100px);
    background-color: var(--service-color-white);
}

.p-service-faq__header {
    text-align: center;
    margin-bottom: clamp(20px, calc(1.74vw + 6.62px), 40px);
}

.p-service-faq__header .p-service-section-title {
    margin-bottom: 8px;
}

.p-service-faq__desc {
    margin-top: 24px;
    font-weight: 700;
}

.p-service-faq__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.p-service-faq__item {
    border-bottom: 1px solid var(--service-color-text);
}

/* Q部分 */
.p-service-faq__question {
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 20px 0;
    cursor: pointer;
    list-style: none;
}

.p-service-faq__question::-webkit-details-marker {
    display: none;
}

.p-service-faq__question-text {
    flex: 1;
    font-size: clamp(20px, calc(0.35vw + 17.3px), 24px);
    font-weight: 700;
    line-height: 1.6;
}

/* Q/Aアイコン共通 */
.p-service-faq__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: clamp(42px, calc(1.56vw + 30px), 60px);
    height: clamp(42px, calc(1.56vw + 30px), 60px);
    border-radius: 50%;
    font-weight: 700;
    font-size: clamp(28px, calc(1.04vw + 20px), 40px);
    line-height: 1;
}

/* Qアイコン: 緑塗り、白文字 */
.p-service-faq__icon--q {
    background-color: var(--service-color-green);
    color: var(--service-color-white);
    padding-left: 1px;
    padding-bottom: 2px;
}

/* Aアイコン: 白塗り、緑文字、緑枠線 */
.p-service-faq__icon--a {
    background-color: var(--service-color-white);
    color: var(--service-color-green);
    border: 3px solid var(--service-color-green);
    padding-left: 2px;
    padding-bottom: 2px;
}

/* トグルアイコン（+/-） */
.p-service-faq__toggle {
    position: relative;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}

.p-service-faq__toggle::before,
.p-service-faq__toggle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    background-color: var(--service-color-green);
    transition: transform 0.3s ease;
}

.p-service-faq__toggle::before {
    width: 20px;
    height: 2px;
    transform: translate(-50%, -50%);
}

.p-service-faq__toggle::after {
    width: 2px;
    height: 20px;
    transform: translate(-50%, -50%);
}

/* 開いた時: +を-に */
.p-service-faq__item[open] .p-service-faq__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

/* A部分 */
.p-service-faq__answer {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    padding: 12px 24px 24px;
    margin-bottom: 20px;
    background-color: var(--service-color-cream);
}

.p-service-faq__answer .p-service-section-text {
    line-height: 1.6;
    padding-top: 10px;
}

.p-service-faq__answer-body {
    flex: 1;
}

.p-service-faq__answer-tel {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    margin-top: 8px;
}

.p-service-faq__answer-body .p-flow-flow__tel {
    margin-top: 0;
}

.p-service-faq__answer-body .p-flow-flow__note {
    padding-top: 2px;
    padding-inline-start: 0;
}

@media (max-width: 768px) {
    .p-service-faq__answer-body .p-flow-flow__tel-icon {
        width: clamp(30px, calc(1.44vw + 24.96px), 36px);
    }

    .p-service-faq__answer-body .p-flow-flow__tel-number {
        font-size: clamp(28px, calc(1.91vw + 21.31px), 36px);
    }

    .p-service-faq__answer-body .p-service-section-text.p-flow-flow__note {
        font-size: clamp(13px, calc(0.72vw + 10.48px), 16px);
    }
}

/* SP対応 */
@media (max-width: 768px) {
    .p-service-faq {
        padding-block: var(--section-s);
    }

    .p-service-faq__inner {
        padding-inline: 20px;
        padding-block: var(--section-s);
    }

    .p-service-faq__header {
        margin-bottom: 12px;
    }

    /* support: よくあるご質問: 26〜23 */
    .p-support .p-service-faq__header .p-service-section-title {
        font-size: clamp(23px, calc(0.72vw + 20.48px), 26px);
    }

    .p-service-faq__desc {
        margin-top: 12px;
    }

    .p-service-faq__icon {
        width: clamp(27px, calc(3.59vw + 14.4px), 42px);
        height: clamp(27px, calc(3.59vw + 14.4px), 42px);
        font-size: clamp(18px, calc(2.39vw + 9.6px), 28px);
    }

    .p-service-faq__icon--a {
        border-width: 2px;
    }

    .p-service-faq__question {
        gap: 12px;
        padding: 16px 0;
    }

    .p-service-faq__question-text {
        font-size: clamp(15px, calc(0.72vw + 12.5px), 18px);
    }

    .p-service-faq__toggle {
        width: 18px;
        height: 18px;
    }

    .p-service-faq__toggle::before {
        width: 14px;
    }

    .p-service-faq__toggle::after {
        height: 14px;
    }

    .p-service-faq__answer {
        gap: 12px;
        padding: 8px 16px 16px;
        margin-bottom: 16px;
    }

    .p-service-faq__answer .p-service-section-text {
        font-size: clamp(15px, calc(0.72vw + 12.5px), 18px);
    }

    .p-service-faq__answer-body .p-flow__tel {
        margin-top: 8px;
    }

    .p-service-faq__answer-body .p-flow__tel-icon {
        width: clamp(28px, calc(2.39vw + 19.6px), 38px);
    }

    .p-service-faq__answer-body .p-flow__tel-number {
        font-size: clamp(24px, calc(1.91vw + 17.3px), 32px);
    }
}

/* FAQ内見出し（グレー背景） */
.p-service-faq__subheading {
    background-color: var(--service-color-bg-gray);
    color: var(--service-color-text);
    font-weight: 700;
    font-size: clamp(22px, calc(0.52vw + 18px), 28px);
    line-height: 1.6;
    text-align: center;
    padding-block: 4px;
    margin-top: 16px;
}

@media (max-width: 768px) {
    .p-service-faq__subheading {
        font-size: clamp(17px, calc(0.72vw + 14.5px), 20px);
    }
}

@media (max-width: 540px) {
    .p-service-voices__list {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}
