/**
 * カルテ共通スタイル — タブレット / 小さめ画面（〜768px）
 *
 * - テーブルをブロック化して縦積み、モーダル・ボタンを全幅化する等のレイアウト調整。
 * - common-form.css（PC・共通）および common-form.mobile.css（〜720px）の**後**に読み込まれるため、
 *   768px 以下では本ファイルの宣言が優先され得る（意図した上書き）。
 * - 本ファイルは以下の3段階のブレークポイントで構成:
 *   · max-width: 768px … テーブル縦積み・モーダル全幅・公証役場マップのモバイル簡素化
 *   · max-width: 600px … フォントサイズ・余白・操作要素を全体的にコンパクト化（スマホ向け）
 *   · max-width: 480px … iPhone SE 等の狭い画面向けにさらに圧縮
 * - ファイル末尾に「max-width: 768px … 事業目的検索のボトムシート化」を置く（後勝ちのため）。
 * - すべてのルールは @media (max-width: …) 内に閉じているため、PC 表示には影響しない。
 */
@media (max-width: 768px) {
    #kh-karte {
        padding: 20px 12px 56px;
    }

    #kh-karte .kh-karte__heroTitle {
        padding: 18px 18px;
        font-size: 22px;
    }

    #kh-karte .kh-karte__inner {
        padding: 18px;
    }

    #kh-karte .kh-karte__sectionTitle {
        font-size: 18px;
        padding: 12px 16px;
    }

    #kh-karte .kh-karte__table,
    #kh-karte .kh-karte__table tbody,
    #kh-karte .kh-karte__table tr,
    #kh-karte .kh-karte__table th,
    #kh-karte .kh-karte__table td {
        display: block;
        width: 100%;
    }

    #kh-karte .kh-karte__table th {
        border-bottom: none !important;
        padding-bottom: 8px;
    }

    #kh-karte .kh-karte__thInner {
        display: block;
    }

    /* ？ヒントは PC では見出しの右端（order + margin-left:auto）だが、
       スマホは thInner が display:block になり右揃えが効かず見えなくなるため、
       **見出し文言の左**にインラインで置く。空スロットの行は詰める。 */
    #kh-karte .kh-karte__labelSide {
        display: inline-flex;
        order: 0;
        width: auto;
        min-height: 0;
        margin-left: 0;
        margin-right: 6px;
        justify-content: flex-start;
        vertical-align: middle;
    }

    #kh-karte .kh-karte__labelSide:empty {
        display: none;
    }

    #kh-karte .kh-karte__labelMain {
        display: inline;
        vertical-align: middle;
    }

    #kh-karte .kh-karte__table td {
        padding-top: 0;
    }

    #kh-karte .kh-karte__splitCol {
        float: none;
        width: 100%;
        margin-right: 0;
    }

    #kh-karte .kh-karte__splitCol--left {
        margin-bottom: 10px;
    }

    #kh-karte .kh-karte__tel {
        gap: 6px;
    }

    #kh-karte .kh-karte__tel input {
        min-width: 70px;
        width: calc(33.333% - 6px);
    }

    #kh-karte .kh-karte__birthday select {
        min-width: 90px;
    }

    #kh-karte .kh-karte__modal {
        padding: 12px;
    }

    #kh-karte .kh-karte__modalContent {
        margin: 0;
        padding: 20px 16px;
    }

    #kh-karte .kh-karte__modalButtons {
        flex-direction: column;
    }

    #kh-karte .kh-karte__modalBtn,
    #kh-karte .kh-karte__submitBtn,
    #kh-karte input[type="submit"].kh-karte__submitBtn {
        width: 100%;
        min-width: 0;
    }

    #kh-karte .kh-karte__onlyPc { display: none; }
    #kh-karte .kh-karte__onlySp { display: inline; }

    /* 注: KK 公証役場マップモーダルのモバイル調整は、後で読み込まれる
       kk-notary-map.css 側の @media ブロックで実施している。
       本ファイルへ書くと kk-notary-map.css に上書きされてしまうため。 */
}

/* --------------------------------------------------------------------------
   max-width: 600px — 全体フォントサイズ・余白・操作要素のコンパクト化（スマホ）
   - 768px ブロックの後に書いて、同セレクタを上書きする（同一ファイル内で source order が後）
   -------------------------------------------------------------------------- */
@media (max-width: 600px) {
    #kh-karte {
        padding: 16px 10px 48px;
        line-height: 1.7;
    }

    /* ヒーロー（カルテのトップカード） */
    #kh-karte .kh-karte__hero {
        margin-bottom: 24px;
    }

    #kh-karte .kh-karte__heroCard {
        border-radius: 18px;
    }

    #kh-karte .kh-karte__heroTitle {
        padding: 14px 16px;
        font-size: 19px;
        line-height: 1.4;
        letter-spacing: 0.01em;
    }

    #kh-karte .kh-karte__inner {
        padding: 14px;
    }

    #kh-karte .kh-karte__text p,
    #kh-karte .kh-karte__text li {
        font-size: 13.5px;
    }

    /* ステップ（番号付きカード） */
    #kh-karte .kh-karte__steps li {
        padding: 12px 12px 12px 44px;
        font-size: 13.5px;
        border-radius: 12px;
    }

    #kh-karte .kh-karte__steps li::before {
        top: 12px;
        left: 10px;
        width: 24px;
        height: 24px;
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__linkBtn a {
        padding: 10px 14px;
        font-size: 13.5px;
    }

    /* セクション見出し */
    #kh-karte .kh-karte__sectionTitle {
        margin-top: 28px;
        padding: 10px 12px;
        font-size: 15.5px;
        line-height: 1.4;
        border-radius: 10px 10px 0 0;
    }

    /* スクロール追従の見出しバー（モバイルでは文字を抑えて余白も圧縮） */
    #kh-karte .kh-karte__stickySectionBar {
        padding: 10px 12px;
        font-size: 15.5px;
        border-radius: 10px 10px 0 0;
    }

    /* カルテのテーブル（縦積みは 768px で適用済み・ここはセル余白とフォント） */
    #kh-karte .kh-karte__table {
        border-radius: 12px;
    }

    #kh-karte .kh-karte__table th,
    #kh-karte .kh-karte__table td {
        padding: 12px 14px;
        font-size: 14px;
    }

    /* 入力欄全般（高さ・パディング・フォントを抑え気味に） */
    #kh-karte input[type="text"],
    #kh-karte input[type="email"],
    #kh-karte input[type="number"],
    #kh-karte input[type="tel"],
    #kh-karte select,
    #kh-karte textarea {
        min-height: 44px;
        padding: 10px 12px;
        font-size: 14.5px;
        border-radius: 10px;
    }

    /* 必須・任意バッジ */
    #kh-karte .kh-karte__badge {
        min-width: 18px;
        height: 18px;
        font-size: 11px;
        margin-right: 6px;
        padding: 0 5px;
    }

    /* 注釈ボタン（？） */
    #kh-karte .kh-karte__noteBtn {
        width: 28px;
        height: 28px;
        font-size: 14px;
    }

    /* 設立メンバー枠（帯は 520px で横向きへ。本文側のみ余白を圧縮） */
    #kh-karte .kh-karte__memberGroupBody {
        padding: 12px 14px;
    }

    #kh-karte .kh-karte__memberGroupLead {
        padding: 10px 12px;
        font-size: 12.5px;
        line-height: 1.6;
    }

    #kh-karte .kh-karte__memberGroupLead--member1 {
        font-size: 14px;
    }

    /* 資本金の合計（大きな数字） */
    #kh-karte .kh-karte__capitalAutoSurface {
        padding: 10px 12px;
    }

    #kh-karte .kh-karte__capitalAutoFigure {
        font-size: 1.25rem;
    }

    #kh-karte .kh-karte__capitalAutoUnitSuffix {
        font-size: 14px;
    }

    #kh-karte .kh-karte__capitalAutoHint {
        font-size: 12px;
    }

    #kh-karte .kh-karte__shareFaceZeroHint {
        padding: 12px 14px;
        font-size: 13px;
    }

    #kh-karte .kh-karte__shareFaceZeroHintLink {
        font-size: 14px;
    }

    /* 申込プラン（カード） */
    #kh-karte .kh-karte__planSubhead {
        font-size: 14px;
    }

    #kh-karte .kh-karte__planLead {
        font-size: 13px;
    }

    #kh-karte .kh-karte__planCardSurface {
        padding: 12px 12px;
        gap: 8px 12px;
    }

    #kh-karte .kh-karte__planCardFigure {
        width: 60px;
        height: 60px;
    }

    #kh-karte .kh-karte__planCardTitle {
        font-size: 13px;
    }

    #kh-karte .kh-karte__planCardMeta {
        font-size: 11.5px;
    }

    #kh-karte .kh-karte__planCardPriceNum {
        font-size: 1.35rem;
    }

    #kh-karte .kh-karte__planCardPriceUnit {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__planCard--featured::before {
        font-size: 11px;
        padding: 4px 12px;
    }

    /* メンバー追加 / 削除ボタン */
    #kh-karte .kh-karte__addMemberBtn {
        min-height: 46px;
        padding: 10px 22px 10px 18px;
        font-size: 14.5px;
    }

    #kh-karte .kh-karte__memberRemoveBtn.kh-karte__memberRemoveBtn--labeled {
        padding: 9px 16px;
        font-size: 13.5px;
    }

    /* 事業目的：DB 検索 CTA */
    #kh-karte .kh-karte__purposeSearchToggleRow > .kh-karte__purposeSearchToggleCell {
        padding: 12px 0 14px;
    }

    #kh-karte .kh-karte__purposeSearchToggleLead {
        font-size: 13.5px;
        line-height: 1.55;
    }

    #kh-karte .kh-karte__purposeSearchToggleLead--below {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__purposeSearchToggleBtn {
        min-height: 44px;
        padding: 10px 18px;
        font-size: 14px;
    }

    /* 事業目的：右オーバーレイ（モバイルは画面いっぱいに展開） */
    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchSheet {
        width: 100vw;
        max-width: 100vw;
    }

    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelHeader {
        padding: 12px 14px;
    }

    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelTitle {
        font-size: 15.5px;
    }

    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelClose {
        width: 36px;
        height: 36px;
        font-size: 20px;
    }

    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelBody {
        padding: 0 12px;
    }

    /* 事業目的検索：入力・カテゴリ */
    #kh-karte-purpose-search .kh-karte__purposeSearchCatTrigger {
        font-size: 14px;
        padding: 8px 10px;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchCatOption {
        font-size: 14px;
        padding: 9px 12px;
    }

    #kh-karte-purpose-search .kh-karte__inputFull,
    #kh-karte-purpose-search .kh-karte__purposeSearchInput {
        font-size: 14.5px;
        padding: 8px 10px;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchHint {
        font-size: 12.5px;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchResultText {
        font-size: 13px;
        line-height: 1.5;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchResultBtn {
        padding: 10px 12px;
    }

    /* 事業目的：入力行の削除ボタン（縦書き）— モバイルで幅を取り過ぎないよう圧縮 */
    #kh-karte .kh-karte__purposeDeleteBtn {
        min-height: 44px;
        padding: 8px 6px;
        font-size: 12.5px;
        letter-spacing: 0.08em;
    }

    /* 公証役場（プルダウン風） */
    #kh-karte .kh-karte__notaryPickDisplay,
    #kh-karte .kh-karte__notaryPick input.kh-karte__notaryPickDisplay {
        min-height: 44px;
        padding: 10px 2.1rem 10px 12px;
        font-size: 14.5px;
    }

    /* 都道府県カスタムプルダウン */
    #kh-karte .kh-karte__prefSelectTrigger,
    form[data-kh-live-validation] .kh-karte__prefSelectTrigger {
        min-height: 44px;
        padding: 10px 12px;
        font-size: 14.5px;
        border-radius: 10px;
    }

    #kh-karte .kh-karte__prefSelectOption,
    form[data-kh-live-validation] .kh-karte__prefSelectOption {
        padding: 9px 12px;
        font-size: 14px;
    }

    #kh-karte .kh-karte__prefSelectGroupLabel,
    form[data-kh-live-validation] .kh-karte__prefSelectGroupLabel {
        padding: 7px 12px 5px;
        font-size: 10.5px;
    }

    /* 個人情報同意（チェック・ラベル） */
    #kh-karte .kh-karte__policy label {
        font-size: 13.5px;
        gap: 8px;
    }

    /* 送信ボタン（タブレット 768px で width:100% は適用済み・サイズ調整のみ） */
    #kh-karte .kh-karte__submitBtn,
    #kh-karte input[type="submit"].kh-karte__submitBtn,
    #kh-karte-draft-modal .kh-karte__submitBtn,
    #kh-karte-draft-modal input[type="submit"].kh-karte__submitBtn {
        min-width: 0;
        min-height: 52px;
        padding: 12px 20px;
        font-size: 15px;
        letter-spacing: 0.02em;
    }

    /* 振込前ご相談リスト */
    #kh-karte .kh-karte__preTransferConsult {
        margin-top: 22px;
        padding: 16px 14px;
        font-size: 13px;
        line-height: 1.7;
        border-radius: 10px;
    }

    #kh-karte .kh-karte__preTransferConsultTitle {
        padding: 0 0 10px 12px;
        border-left-width: 3px;
        font-size: 14.5px;
        line-height: 1.5;
    }

    #kh-karte .kh-karte__preTransferConsultList {
        padding-top: 12px;
    }

    #kh-karte .kh-karte__preTransferConsultList li {
        margin: 0.4em 0;
        padding: 6px 8px 6px 1em;
    }

    /* モーダル全般（送信前確認モーダル以外） */
    #kh-karte .kh-karte__modal {
        padding: 10px;
    }

    #kh-karte .kh-karte__modalContent {
        padding: 18px 14px;
        max-height: min(88vh, 620px);
    }

    #kh-karte .kh-karte__modalBtn {
        min-width: 0;
        width: 100%;
        min-height: 46px;
        padding: 10px 16px;
        font-size: 14px;
    }

    #kh-karte .kh-karte__noteModalTitle {
        font-size: 16px;
    }

    /* Tips パネル（下からのシート）— mobile.css の 720px シート挙動を引き継ぎつつフォント圧縮 */
    div#kh-karte-note-modal.kh-karte__modal--tipsSide .kh-karte__modalContent.kh-karte__tipsPanel {
        padding: 16px 16px 18px;
    }

    div#kh-karte-note-modal.kh-karte__modal--tipsSide .kh-karte__noteModalBody {
        font-size: 13.5px;
        line-height: 1.7;
    }

    /* 送信前確認モーダル */
    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmTitle {
        font-size: 16px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmLead {
        font-size: 13px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmLeadNote {
        font-size: 12.5px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmDt {
        font-size: 11.5px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmDd {
        padding: 9px 11px;
        font-size: 14px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmBtn {
        font-size: 14.5px;
    }

    /* JS 無効時の警告 */
    .kh-karte__noscriptBox {
        font-size: 16px;
        padding: 12px;
    }

    .kh-karte__noscriptBoxTitle {
        font-size: 18px;
    }
}

/* --------------------------------------------------------------------------
   max-width: 480px — iPhone SE / 小型スマホ向け（さらに圧縮）
   -------------------------------------------------------------------------- */
@media (max-width: 480px) {
    #kh-karte {
        padding: 14px 8px 40px;
    }

    #kh-karte .kh-karte__heroTitle {
        padding: 12px 14px;
        font-size: 17px;
    }

    #kh-karte .kh-karte__inner {
        padding: 12px;
    }

    #kh-karte .kh-karte__sectionTitle {
        font-size: 14.5px;
        padding: 9px 11px;
    }

    #kh-karte .kh-karte__table th,
    #kh-karte .kh-karte__table td {
        padding: 10px 12px;
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__steps li {
        padding: 11px 10px 11px 40px;
        font-size: 13px;
    }

    #kh-karte .kh-karte__steps li::before {
        top: 11px;
        left: 9px;
        width: 22px;
        height: 22px;
        font-size: 12px;
    }

    /* メンバー帯（520px で縦→横レイアウト済み・ここでさらにタイトに） */
    #kh-karte .kh-karte__memberGroupRibbon {
        padding: 8px 12px;
        gap: 8px;
    }

    #kh-karte .kh-karte__memberGroupRibbonText {
        font-size: 1rem;
        letter-spacing: 0.06em;
    }

    #kh-karte .kh-karte__memberGroupBody {
        padding: 10px 12px;
    }

    /* 申込プラン */
    #kh-karte .kh-karte__planGrid {
        padding-top: 14px;
    }

    #kh-karte .kh-karte__planCardSurface {
        padding: 11px 10px;
        gap: 8px 10px;
    }

    #kh-karte .kh-karte__planCardFigure {
        width: 54px;
        height: 54px;
    }

    #kh-karte .kh-karte__planCard--featured::before {
        font-size: 10.5px;
        padding: 3px 10px;
    }

    #kh-karte .kh-karte__planCardPriceNum {
        font-size: 1.2rem;
    }

    /* 送信ボタン */
    #kh-karte .kh-karte__submitBtn,
    #kh-karte input[type="submit"].kh-karte__submitBtn,
    #kh-karte-draft-modal .kh-karte__submitBtn,
    #kh-karte-draft-modal input[type="submit"].kh-karte__submitBtn {
        min-height: 48px;
        padding: 11px 16px;
        font-size: 14.5px;
    }

    /* 振込前ご相談 */
    #kh-karte .kh-karte__preTransferConsult {
        padding: 14px 12px;
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__preTransferConsultTitle {
        font-size: 13.5px;
    }

    /* 注釈ボタン（？） */
    #kh-karte .kh-karte__noteBtn {
        width: 26px;
        height: 26px;
        font-size: 13px;
    }
}

/* --------------------------------------------------------------------------
   スマホ向け追加調整（既存ルールの末尾に積む形で source order を後ろにし、
   同セレクタの値を上書きする）
   - PC（768px 超）には影響しないよう、すべて @media (max-width: …) 内に閉じる
   -------------------------------------------------------------------------- */

/* 代表住所表示モーダル step4: スマホで viewport に収まらない問題対策。
   モーダル全体を viewport に納め、本文を伸縮させて内部スクロールに任せる */
@media (max-width: 768px) {
    #kh-karte-rep-registry-modal-step4.kh-karte__modal--repRegistryBook .kh-karte__repRegistryModalContent--declineInfo {
        max-height: calc(100vh - 24px);
        /* dvh 対応ブラウザでは URL バー含めた可視領域を厳密に追従 */
        max-height: calc(100dvh - 24px);
    }

    #kh-karte .kh-karte__repRegistryModalBody--declineInfo,
    #kh-karte-rep-registry-modal-step4 .kh-karte__repRegistryModalBody--declineInfo {
        /* 既定の固定 max-height を解除し、flex で残り高さを使い切るようにする
           （base の overflow-y: auto / flex: 1 1 auto / min-height: 0 を活かす） */
        max-height: none;
    }
}

/* 生年月日プルダウン: スマホで 1 行に収まらず 2 行になっていた問題対策。
   3 つの select を均等に圧縮し、単位（年/月/日）はコンパクトに。 */
@media (max-width: 600px) {
    #kh-karte .kh-karte__birthday {
        flex-wrap: nowrap;
        gap: 6px;
    }

    #kh-karte .kh-karte__birthday select,
    #kh-karte .kh-karte__birthday--member select.kh-karte__memberBirthY {
        min-width: 0;
        flex: 1 1 0;
        padding-left: 8px;
        padding-right: 22px;
    }

    #kh-karte .kh-karte__birthdayUnit {
        margin-right: 0;
        flex: 0 0 auto;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    #kh-karte .kh-karte__birthday {
        gap: 4px;
    }

    #kh-karte .kh-karte__birthday select,
    #kh-karte .kh-karte__birthday--member select.kh-karte__memberBirthY {
        padding-left: 6px;
        padding-right: 20px;
        font-size: 13px;
    }

    #kh-karte .kh-karte__birthdayUnit {
        font-size: 12px;
    }
}

/* スマホ全体のフォントを約 1px ずつ小さく調整（PC は据え置き） */
@media (max-width: 600px) {
    #kh-karte .kh-karte__heroTitle {
        font-size: 18px;
    }

    #kh-karte .kh-karte__text p,
    #kh-karte .kh-karte__text li {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__steps li {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__steps li::before {
        font-size: 11.5px;
    }

    #kh-karte .kh-karte__linkBtn a {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__sectionTitle,
    #kh-karte .kh-karte__stickySectionBar {
        font-size: 14.5px;
    }

    #kh-karte .kh-karte__table th,
    #kh-karte .kh-karte__table td {
        font-size: 13px;
    }

    #kh-karte input[type="text"],
    #kh-karte input[type="email"],
    #kh-karte input[type="number"],
    #kh-karte input[type="tel"],
    #kh-karte select,
    #kh-karte textarea {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__badge {
        font-size: 10.5px;
    }

    #kh-karte .kh-karte__noteBtn {
        font-size: 13px;
    }

    #kh-karte .kh-karte__memberGroupLead {
        font-size: 11.5px;
    }

    #kh-karte .kh-karte__memberGroupLead--member1 {
        font-size: 13px;
    }

    #kh-karte .kh-karte__capitalAutoFigure {
        font-size: 1.2rem;
    }

    #kh-karte .kh-karte__capitalAutoUnitSuffix {
        font-size: 13px;
    }

    #kh-karte .kh-karte__capitalAutoHint {
        font-size: 11px;
    }

    #kh-karte .kh-karte__shareFaceZeroHint {
        font-size: 12px;
    }

    #kh-karte .kh-karte__shareFaceZeroHintLink {
        font-size: 13px;
    }

    #kh-karte .kh-karte__planSubhead {
        font-size: 13px;
    }

    #kh-karte .kh-karte__planLead {
        font-size: 12px;
    }

    #kh-karte .kh-karte__planCardTitle {
        font-size: 12px;
    }

    #kh-karte .kh-karte__planCardMeta {
        font-size: 11px;
    }

    #kh-karte .kh-karte__planCardPriceNum {
        font-size: 1.28rem;
    }

    #kh-karte .kh-karte__planCardPriceUnit {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__planCard--featured::before {
        font-size: 10.5px;
    }

    #kh-karte .kh-karte__addMemberBtn {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__memberRemoveBtn.kh-karte__memberRemoveBtn--labeled {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__purposeSearchToggleLead {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__purposeSearchToggleLead--below {
        font-size: 11.5px;
    }

    #kh-karte .kh-karte__purposeSearchToggleBtn {
        font-size: 13px;
    }

    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelTitle {
        font-size: 14.5px;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchCatTrigger,
    #kh-karte-purpose-search .kh-karte__purposeSearchCatOption {
        font-size: 13px;
    }

    #kh-karte-purpose-search .kh-karte__inputFull,
    #kh-karte-purpose-search .kh-karte__purposeSearchInput {
        font-size: 13.5px;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchHint {
        font-size: 11.5px;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchResultText {
        font-size: 12px;
    }

    #kh-karte .kh-karte__purposeDeleteBtn {
        font-size: 11.5px;
    }

    #kh-karte .kh-karte__notaryPickDisplay,
    #kh-karte .kh-karte__notaryPick input.kh-karte__notaryPickDisplay {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__prefSelectTrigger,
    form[data-kh-live-validation] .kh-karte__prefSelectTrigger {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__prefSelectOption,
    form[data-kh-live-validation] .kh-karte__prefSelectOption {
        font-size: 13px;
    }

    #kh-karte .kh-karte__prefSelectGroupLabel,
    form[data-kh-live-validation] .kh-karte__prefSelectGroupLabel {
        font-size: 10px;
    }

    #kh-karte .kh-karte__policy label {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__submitBtn,
    #kh-karte input[type="submit"].kh-karte__submitBtn,
    #kh-karte-draft-modal .kh-karte__submitBtn,
    #kh-karte-draft-modal input[type="submit"].kh-karte__submitBtn {
        font-size: 14px;
    }

    #kh-karte .kh-karte__preTransferConsult {
        font-size: 12px;
    }

    #kh-karte .kh-karte__preTransferConsultTitle {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__modalBtn {
        font-size: 13px;
    }

    #kh-karte .kh-karte__noteModalTitle {
        font-size: 15px;
    }

    div#kh-karte-note-modal.kh-karte__modal--tipsSide .kh-karte__noteModalBody {
        font-size: 12.5px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmTitle {
        font-size: 15px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmLead {
        font-size: 12px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmLeadNote {
        font-size: 11.5px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmDt {
        font-size: 11px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmDd {
        font-size: 13px;
    }

    #kh-karte-submit-confirm-modal .kh-karte__submitConfirmBtn {
        font-size: 13.5px;
    }

    .kh-karte__noscriptBox {
        font-size: 15px;
    }

    .kh-karte__noscriptBoxTitle {
        font-size: 17px;
    }
}

@media (max-width: 480px) {
    #kh-karte .kh-karte__heroTitle {
        font-size: 16px;
    }

    #kh-karte .kh-karte__sectionTitle {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__table th,
    #kh-karte .kh-karte__table td {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__steps li {
        font-size: 12px;
    }

    #kh-karte .kh-karte__steps li::before {
        font-size: 11.5px;
    }

    #kh-karte .kh-karte__memberGroupRibbonText {
        font-size: 0.95rem;
    }

    #kh-karte .kh-karte__planCardPriceNum {
        font-size: 1.15rem;
    }

    #kh-karte .kh-karte__planCard--featured::before {
        font-size: 10px;
    }

    #kh-karte .kh-karte__submitBtn,
    #kh-karte input[type="submit"].kh-karte__submitBtn,
    #kh-karte-draft-modal .kh-karte__submitBtn,
    #kh-karte-draft-modal input[type="submit"].kh-karte__submitBtn {
        font-size: 13.5px;
    }

    #kh-karte .kh-karte__preTransferConsult {
        font-size: 11.5px;
    }

    #kh-karte .kh-karte__preTransferConsultTitle {
        font-size: 12.5px;
    }

    #kh-karte .kh-karte__noteBtn {
        font-size: 12px;
    }
}

/* --------------------------------------------------------------------------
   生年月日（スマホ）— 2026-07-29
   1) 年/月/日プルダウンの文字を大きく
   2) 確定（OK）時のチェックが狭い select の値に重なる問題を解消

   ※ 上の @media (max-width: 600px) / (max-width: 480px) の生年月日ブロックと
     「スマホ全体のフォント」ブロックより **後** に置くこと（同順位は後勝ち）。
   -------------------------------------------------------------------------- */
@media (max-width: 600px) {
    /* 選択中の値と候補リストを大きく。
       Android Chrome は select / option の font-size が候補一覧にも効く。
       iOS Safari のホイールは OS 固定サイズのため CSS では変更できない。 */
    #kh-karte .kh-karte__birthday select,
    #kh-karte .kh-karte__birthday--member select.kh-karte__memberBirthY,
    #kh-karte .kh-karte__birthday--member select.kh-karte__memberBirthM,
    #kh-karte .kh-karte__birthday--member select.kh-karte__memberBirthD {
        font-size: 16px;
        padding-left: 6px;
        padding-right: 20px;
    }

    #kh-karte .kh-karte__birthday select option {
        font-size: 16px;
    }

    #kh-karte .kh-karte__birthdayUnit {
        font-size: 13px;
    }

    /* 確定チェック（--karte-field-ok-icon）は、幅の狭い年/月/日 select では
       padding-right: 46px と相まって値の上に重なり「いつを選んだのか分からない」
       状態になるため、各 select には出さない。OK の合図は枠色（accent）と
       行末のチェック 1 個に集約する。 */
    #kh-karte-form .kh-karte__birthday select.kh-karte__fieldState--ok,
    #kh-karte-form .kh-karte__birthday select.kh-karte__fieldState--ok:focus,
    form[data-kh-live-validation] .kh-karte__birthday select.kh-karte__fieldState--ok,
    form[data-kh-live-validation] .kh-karte__birthday select.kh-karte__fieldState--ok:focus {
        background-image: none !important;
        padding-right: 20px !important;
    }

    /* 年・月・日がすべて確定したときだけ、行の末尾にチェックを 1 つ表示。
       :has() 未対応ブラウザではこの規則ごと無視される（枠色のみで表現）。 */
    #kh-karte .kh-karte__birthday:not(:has(select:not(.kh-karte__fieldState--ok)))::after {
        content: "";
        flex: 0 0 auto;
        width: 16px;
        height: 16px;
        background-image: var(--karte-field-ok-icon);
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 16px 16px;
    }
}

/* --------------------------------------------------------------------------
   max-width: 768px — 事業目的検索：スマホは「画面下半分のボトムシート」
   （kk / gk 共通。PC は従来どおり右からのサイドパネル）

   ねらい: 展開中も **上半分でカルテ本体が見える** ようにして、
   「いま入力される事業目的」と「直前に入力した事業目的」を確認しながら選べる状態にする。
   - 見出し（事業目的の検索）と × は非表示 → 閉じるはキーワード行の「閉じる」ボタン
   - カテゴリ選択も非表示（スマホはキーワード検索のみ）
   - スクロール位置合わせは assets/js/common-form-purpose-search.js が担当

   ※ 本ブロックは 768 / 600 / 480px の各ブロックと common-form.mobile.css より
     **後** に置くこと（同順位は後勝ち）。
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
    /* オーバーレイの上端＝シートの上端。上側はカルテ本体が見えて操作もできる */
    #kh-karte-purpose-search-overlay.kh-karte__purposeSearchOverlay {
        /* top はカスタムプロパティ経由にしない。--var に 52dvh を入れると、
           dvh 未対応ブラウザで var() が計算時に無効化され top: auto に落ちるため。
           プロパティに直接書けば未対応ブラウザは 2 行目を捨てて 52vh が残る。 */
        top: 52vh;
        top: 52dvh;
        align-items: flex-end;
        justify-content: center;
    }

    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchSheet {
        width: 100vw;
        max-width: 100vw;
        height: 100%;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -10px 30px rgba(15, 23, 42, 0.2);
        /* 右からではなく下から せり上がる */
        transform: translateY(100%);
    }

    #kh-karte-purpose-search-overlay.kh-karte__purposeSearchOverlay.is-open .kh-karte__purposeSearchSheet {
        transform: translateY(0);
    }

    /* シート内のスクロールを背後（カルテ本体）へ流さない。
       :has() 版の overflow: visible（カテゴリ展開用・スマホではカテゴリ非表示）も打ち消す。 */
    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelBody,
    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelBody:has(.kh-karte__purposeSearchCatWrap.is-open) {
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
    }

    /* つまみ・シート余白など「スクロールできない場所」のドラッグでも背後を動かさない */
    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchSheet,
    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanel {
        overscroll-behavior: contain;
        touch-action: none;
    }

    /* つまみ（横棒）は出さない。スワイプで閉じられる印象を与えてしまうため（実装は無い） */

    /* 見出し「事業目的の検索」と × は出さない */
    #kh-karte-purpose-search-overlay .kh-karte__purposeSearchPanelHeader {
        display: none;
    }

    /* カテゴリ（キーワード以外のラベル群）は非表示 */
    #kh-karte-purpose-search .kh-karte__purposeSearchLabel:not(.kh-karte__purposeSearchLabel--keyword) {
        display: none;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchSticky {
        padding-top: 8px;
        margin-bottom: 8px;
    }

    /* 見出しは「キーワード」→ 案内文に差し替え（説明文は出さないため） */
    #kh-karte-purpose-search .kh-karte__purposeSearchLabelText {
        display: none;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchLabelText.kh-karte__purposeSearchLabelText--mobile {
        display: block;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.45;
        color: #334155;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchKeywordRow {
        flex-wrap: nowrap;
        gap: 6px;
    }

    /* 16px 未満だと iOS がフォーカス時にページを拡大してしまう */
    #kh-karte-purpose-search .kh-karte__purposeSearchInput.kh-karte__inputFull {
        font-size: 16px;
        padding: 9px 10px;
    }

    /* 「検索」は横だけ広げ、縦は詰める（シートの高さを結果一覧に回す） */
    #kh-karte-purpose-search .kh-karte__purposeSearchKeywordRow .kh-karte__purposeSearchSubmit {
        align-self: center;
        min-height: 0;
        padding: 5px 20px;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.2;
        border-radius: 8px;
    }

    /* 検索の右の「閉じる」（× の代わり）。PC 側の display: none をここで解除する */
    #kh-karte-purpose-search .kh-karte__purposeSearchKeywordRow .kh-karte__purposeSearchInlineClose {
        flex: 0 0 auto;
        align-self: center;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 0;
        padding: 5px 14px;
        border-radius: 8px;
        border: 1px solid #cbd5e1;
        background: #f8fafc;
        color: #475569;
        font-family: inherit;
        font-size: 13.5px;
        font-weight: 800;
        line-height: 1.2;
        white-space: nowrap;
        cursor: pointer;
        box-sizing: border-box;
    }

    #kh-karte-purpose-search .kh-karte__purposeSearchKeywordRow .kh-karte__purposeSearchInlineClose:active {
        background: #e2e8f0;
    }

    /* 検索ボックス下の説明文は出さない（案内はキーワード見出しに集約） */
    #kh-karte-purpose-search .kh-karte__purposeSearchHint {
        display: none;
    }

    /* 展開中のしおりタブは隠す（閉じるはシート内のボタン） */
    body.kh-karte-purpose-search-open #kh-karte-purpose-search-tab.kh-karte__purposeSearchBookmark {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}
