@charset "UTF-8";
/*
Theme Name: fix-kochi.com
Text Domain: fix-kochi.com
Version: 1.0.0
*/

:root {
    --bg-color-main: #F6F8EF;
    --color-blue-main: #005A83;
    --color-blue-accent: #0078AB;
    --color-text-main: #262626;
    --color-text-sub: #666666;
    --color-border: #DCE1D4;
    --color-white: #FFFFFF;

    --site-max-width: 1760px;
    --sidebar-width-pc: clamp(148px, 19.318vw, 340px);

    --font-en: 'Palatino', 'Times New Roman', serif;
    --font-ja: 'Zen Kaku Gothic New', 'Zen Kaku Gothic', sans-serif;
    --font-mincho: 'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', 'YuMincho', serif;
    --font-base: var(--font-ja);
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: 0;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
    min-height: 100%;
    overflow-x: clip;
}

body {
    background-color: var(--bg-color-main);
    color: var(--color-text-main);
    font-family: var(--font-base);
    line-height: 1.85;
    -webkit-font-smoothing: antialiased;
    letter-spacing: 0.05em;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: clip;
}

img {
    max-width: 100%;
    height: auto !important;
    display: block;
    border-radius: 2px;
}

a {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

a:hover {
    opacity: 0.75;
}

ul,
ol {
    list-style: none;
}

.site-container {
    width: 100%;
    max-width: var(--site-max-width);
    margin: 0 auto;
    background-color: var(--bg-color-main);
    position: relative;
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
}

.section-label {
    display: flex;
    flex-direction: column;
    margin-bottom: clamp(24px, 2.5vw, 40px);
}

.section-label .en-label {
    font-family: var(--font-en);
    font-size: clamp(1.2rem, 1.7vw, 1.875rem);
    letter-spacing: 0.15em;
    color: var(--color-blue-main);
    font-weight: 400;
    text-transform: lowercase;
    display: inline-flex;
    align-items: center;
    line-height: 1.2;
}

.section-label .en-label::before {
    content: "";
    display: inline-block;
    width: clamp(19px, calc(1.8vw + 3px), 36px);
    height: 1.5px;
    background-color: var(--color-blue-main);
    margin-right: 12px;
    flex-shrink: 0;
    transform: translateY(0.08em);
    /* 欧文フォントの視覚的中心（完全なミドル）に一致 */
}

.section-label .ja-label {
    font-family: var(--font-ja);
    font-size: clamp(1.6rem, 2.27vw, 2.5rem);
    font-weight: 700;
    color: var(--color-blue-main);
    letter-spacing: 0.05em;
    margin-top: 4px;
}

/* 改行制御 */
.sp-br {
    display: none;
}

br.sp-br {
    display: none;
}

span.sp-br {
    display: none;
}

.pc-br {
    display: inline;
}

.btn-map-badge {
    display: inline-block;
    padding: 2px 8px;
    background-color: var(--color-blue-main);
    color: var(--color-white) !important;
    font-size: 11px;
    border-radius: 2px;
    margin-left: 8px;
}

/* ============================================================
   PC & タブレット表示 (768px以上 / 1760px基準)
   ============================================================ */
@media (min-width: 768px) {
    .pc-only {
        display: block !important;
    }

    .sp-only,
    .sp-header,
    .sp-drawer,
    .sp-content-wrapper {
        display: none !important;
    }

    .top-wrapper {
        display: flex;
        width: 100%;
        position: relative;
        flex: 1 0 auto;
    }

    /* 左サイドバー */
    .aside {
        width: var(--sidebar-width-pc);
        flex-shrink: 0;
        position: fixed;
        top: 0;
        left: max(0px, calc(50vw - (var(--site-max-width) / 2)));
        height: 100vh;
        overflow-x: hidden;
        overflow-y: auto;
        background-color: var(--bg-color-main);
        z-index: 100;
    }

    .aside-inner {
        padding: clamp(24px, 3.977vw, 70px) clamp(8px, 1.136vw, 20px) 40px clamp(12px, 1.977vw, 70px);
        display: flex;
        flex-direction: column;
        gap: clamp(16px, 2.95vw, 52px);
        box-sizing: border-box;
    }

    /* サイドバーのテキストロゴ (Illustrator TOP_PC 実寸: 縦線高さ 283px, 上横線 320px) */
    .aside-logo-text-wrap {
        position: relative;
        padding: clamp(36px, 6.818vw, 120px) clamp(8px, 1.363vw, 24px) clamp(44px, 7.95vw, 140px) clamp(8px, 1.363vw, 24px);
        display: inline-block;
        border-left: 2.5px solid var(--color-blue-main);
        margin-bottom: 0;
        min-height: clamp(120px, 16.08vw, 283px);
        box-sizing: border-box;
        transition: min-height 0.85s cubic-bezier(0.16, 1, 0.3, 1), padding 0.85s cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* 上の横線（右へ長く伸びる） */
    .aside-logo-text-wrap::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: clamp(100px, 18.18vw, 320px);
        max-width: 100%;
        height: 2.5px;
        background-color: var(--color-blue-main);
        transition: width 0.85s cubic-bezier(0.16, 1, 0.3, 1);
        pointer-events: none;
    }

    /* ロゴテキスト「株式会社フィックス」 */
    .aside-logo-text {
        font-size: clamp(12px, 1.363vw, 24px);
        font-weight: 800;
        color: var(--color-blue-main);
        white-space: nowrap;
        letter-spacing: 0.04em;
        line-height: 1.0;
        display: block;
        transition: opacity 0.35s ease;
    }

    /* スクロール時に伸びる中央の横線（「F」のロゴ形状） */
    .aside-logo-text-wrap::after {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 0;
        height: 2.5px;
        background-color: var(--color-blue-main);
        transition: width 0.85s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
        opacity: 0;
        pointer-events: none;
    }

    /* スクロール時: Fマークへのスムーズな変形 */
    .aside-logo-text-wrap.is-scrolled {
        min-height: calc(clamp(100px, 10.8vw, 190px) + 30px);
        padding: clamp(28px, 3.4vw, 60px) clamp(10px, 1.36vw, 24px);
    }

    .aside-logo-text-wrap.is-scrolled .aside-logo-text {
        opacity: 0;
    }

    .aside-logo-text-wrap.is-scrolled::before {
        width: clamp(70px, 7.67vw, 135px);
    }

    .aside-logo-text-wrap.is-scrolled::after {
        width: clamp(42px, 4.6vw, 81px);
        opacity: 1;
    }

    .aside-nav {
        display: flex;
        flex-direction: column;
        gap: clamp(16px, 2.727vw, 48px);
    }

    .nav-main-list {
        display: flex;
        flex-direction: column;
        gap: clamp(10px, 1.25vw, 22px);
    }

    .nav-sub-list {
        display: flex;
        flex-direction: column;
        gap: clamp(8px, 0.9vw, 16px);
    }

    .nav-main-list a {
        display: block;
        font-size: calc(clamp(13px, .022vw, 18px) + 5px);
        letter-spacing: 0.08em;
        font-weight: 700;
        color: #231815;
        transition: color 0.2s ease, padding-left 0.2s ease;
    }

    .nav-sub-list a {
        display: block;
        font-size: clamp(12px, 1.452vw, 17px);
        letter-spacing: 0.06em;
        font-weight: 400;
        color: #231815;
        transition: color 0.2s ease, padding-left 0.2s ease;
    }

    .aside-nav a:hover {
        color: var(--color-blue-accent);
        padding-left: 6px;
    }

    /* メインコンテンツ領域 (幅1420px, 左マージン340px) */
    .top-main {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        max-width: calc(100% - var(--sidebar-width-pc));
        margin-left: var(--sidebar-width-pc);
        padding: 0;
        position: relative;
        z-index: 10;
        box-sizing: border-box;
    }

    /* ヒーローエリア (Illustrator TOP_PC 実寸完全一致: 幅1420px基準) */
    .top-hero {
        position: relative;
        width: 100%;
        max-width: 1420px;
        padding-bottom: clamp(60px, 11.93vw, 210px);
        display: flex;
        flex-direction: column;
        z-index: 10;
        box-sizing: border-box;
    }

    /* お知らせバー (X=570, Y=114, 幅600) */
    .top-news-bar {
        position: relative;
        margin-top: clamp(40px, 6.477vw, 114px);
        margin-left: clamp(20px, 13.068vw, 230px);
        width: clamp(240px, 34.09vw, 600px);
        max-width: calc(100% - clamp(30px, 5vw, 60px));
        z-index: 20;
    }

    .top-news-bar ul {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .top-news-bar li {
        display: flex;
        gap: clamp(10px, 1.136vw, 20px);
        font-size: clamp(11px, 0.909vw, 16px);
        padding: 16px 0;
        border-bottom: 1px solid var(--color-border);
        width: 100%;
    }

    .news-date {
        color: #999999;
        font-weight: 500;
        font-size: 0.95em;
        white-space: nowrap;
    }

    .news-title {
        color: var(--color-blue-main);
        font-weight: 700;
    }

    /* 画像01 + 縦書きタイトルのグループ (X=570, Y=385, 幅860, 高620) */
    .hero-main-visual-group {
        position: relative;
        margin-top: clamp(40px, 9.659vw, 170px);
        margin-left: clamp(20px, 13.068vw, 230px);
        width: clamp(240px, 48.863vw, 860px);
        max-width: calc(100% - clamp(60px, 10vw, 180px));
        z-index: 11;
    }

    .top-image1 {
        width: 100%;
        aspect-ratio: 860 / 620;
        border-radius: 2px;
        display: block;
    }

    /* 縦書きタイトル「保険の\nその先を\n見つめる。」 (1760px時: X=1310, Y=209, top=-189px基準)
       画面幅の拡大縮小時にも画像01との相対位置・行送りを完全に維持 */
    .top-title {
        position: absolute;
        top: clamp(-189px, -10.739vw, -40px);
        left: calc(95% - clamp(20px, 4.5vw, 80px));
        display: inline-block;
        -webkit-writing-mode: vertical-rl;
        writing-mode: vertical-rl;
        -webkit-text-orientation: upright;
        text-orientation: upright;
        font-size: clamp(18px, 3.18vw, 56px);
        /* font-weight: 700; */
        line-height: 1.85;
        letter-spacing: 0.1em;
        color: var(--color-text-main);
        font-family: var(--font-mincho);
        z-index: 15;
        white-space: nowrap;
        margin: 0;
        padding: 0;
        box-sizing: content-box;
        pointer-events: none;
    }

    /* ヒーロー下部グループ (文章 Y=1115, 画像02 Y=1313, 画像03 Y=1572) */
    .hero-sub-visual-group {
        position: relative;
        width: 100%;
        margin-top: clamp(30px, 6.25vw, 110px);
        display: block;
        z-index: 12;
    }

    .hero-middle-row {
        position: relative;
        width: 100%;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        box-sizing: border-box;
    }

    /* サブビジュアル文章: X=410 (メイン相対70px), 幅640
       行送り・フォントサイズのプロポーショナルスケーリング */
    .top-box {
        margin-left: clamp(16px, 3.977vw, 70px);
        width: 100%;
        max-width: clamp(220px, 36.363vw, 640px);
        flex-shrink: 0;
        display: flex;
        flex-direction: column;
        gap: clamp(12px, 1.988vw, 35px);
        z-index: 13;
    }

    .top-box p {
        font-size: clamp(9px, 1.15vw, 21px);
        line-height:clamp(17px, 2.37vw, 47px);
        color: var(--color-text-main);
        letter-spacing: 0.3em;
        font-weight: 400;
        margin: 0;
        padding: 0;
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;
    }

    /* 画像02: X=1210 (メイン相対870px), Y=1313 (文章上端Y=1115から198px下), 幅400, 高360 */
    .top-image2 {
        position: absolute;
        top: clamp(20px, 11.25vw, 198px);
        left: clamp(240px, 49.43vw, 870px);
        width: clamp(120px, 22.727vw, 400px);
        aspect-ratio: 400 / 360;
        flex-shrink: 0;
        border-radius: 2px;
        z-index: 13;
    }

    /* 画像03: X=510 (メイン相対170px), Y=1572 (文章下端Y=1467から105px下), 幅540, 高450 */
    .hero-bottom-row {
        width: 100%;
        display: flex;
        justify-content: flex-start;
        margin-top: clamp(24px, 5.965vw, 105px);
        padding-left: clamp(16px, 9.659vw, 170px);
        box-sizing: border-box;
        z-index: 14;
    }

    .top-image3 {
        width: clamp(160px, 30.681vw, 540px);
        aspect-ratio: 540 / 450;
        border-radius: 2px;
        display: block;
    }

    /* 各PCセクション共通 */
    .pc-sec {
        position: relative;
        width: 100%;
        max-width: 1420px;
        box-sizing: border-box;
    }

    .pc-sec .section-label {
        padding-left: clamp(16px, 9.659vw, 170px) !important;
        margin-left: 0;
        margin-bottom: clamp(36px, 8.92vw, 157px);
    }

    /* ── About セクション (フィックスについて: Y=2232〜) ── */
    .sec-about {
        padding-top: 0 !important;
        padding-bottom: clamp(48px, 9.83vw, 173px) !important;
    }

    .about-two-col-wrap {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        gap: clamp(16px, 7.954vw, 140px);
        padding-left: clamp(16px, 3.977vw, 70px);
        padding-right: clamp(16px, 8.522vw, 150px);
        max-width: 100%;
        box-sizing: border-box;
        position: relative;
    }

    .about-left-sticky-col {
        width: clamp(160px, 23.863vw, 420px);
        max-width: 40%;
        flex-shrink: 0;
        position: sticky;
        top: 80px;
        z-index: 15;
    }

    .about-sticky-img-stack {
        position: relative;
        width: 100%;
        aspect-ratio: 420 / 560;
        border-radius: 2px;
        overflow: hidden;
    }

    .about-sticky-img-stack .about-photo-img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        aspect-ratio: 420 / 560;
        object-fit: cover;
        opacity: 0;
        transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
        pointer-events: none;
        display: block;
    }

    .about-sticky-img-stack .about-photo-img.is-active {
        opacity: 1;
    }

    .about-right-scroll-col {
        width: auto;
        flex: 1;
        min-width: 0;
        max-width: clamp(240px, 36.363vw, 640px);
        display: flex;
        flex-direction: column;
        gap: clamp(20px, 2.84vw, 50px);
        z-index: 12;
    }

    .about-lead-block {
        margin-bottom: clamp(24px, 6.818vw, 120px);
    }

    .about-main-title {
        font-size: clamp(16px, 1.818vw, 32px);
        /* font-weight: 700; */
        color: var(--color-text-main);
        line-height: 1.5;
        margin-top: clamp(8px, 1.022vw, 18px);
        margin-bottom: clamp(16px, 2.84vw, 50px);
    }

    .about-text-lead p {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);;
        line-height: 1.85;
        color: var(--color-text-main);
        letter-spacing: 0.15em;
        margin-bottom: clamp(12px, 1.818vw, 32px);
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;
    }

    .about-white-card {
        background-color: var(--color-white);
        padding: clamp(20px, 3.409vw, 60px) clamp(16px, 2.84vw, 50px);
        border-radius: 4px;
        box-shadow: 0 4px 24px rgba(0, 0, 0, 0.03);
    }

    .philosophy-card-title,
    .features-card-title,
    .company-card-title {
        font-size: clamp(14px, 1.363vw, 24px);
        /* font-weight: 700; */
        color: var(--color-text-main);
        margin-bottom: clamp(18px, 2.045vw, 36px);
        display: inline-flex;
        align-items: center;
        line-height: 1.2;
    }

    .philosophy-card-title::before,
    .features-card-title::before,
    .company-card-title::before {
        content: '';
        display: inline-block;
        width: clamp(16px, calc(1.363vw + 2px), 26px);
        height: 1.5px;
        background-color: var(--color-blue-main);
        margin-right: clamp(8px, 0.68vw, 12px);
        flex-shrink: 0;
        transform: translateY(-0.05em);
    }

    .philosophy-words-vertical {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: calc(clamp(12px, 1.363vw, 24px) + 10px);
        margin-bottom: calc(clamp(18px, 2.045vw, 36px) + 70px);
    }

    .philosophy-words-vertical .word-item {
        font-family: var(--font-ja);
        font-size: clamp(18px, 2.045vw, 36px);
        font-weight: 700;
        color: var(--color-blue-main);
        writing-mode: horizontal-tb;
        letter-spacing: 0.12em;
        line-height: 1.2;
    }

    .philosophy-desc-p p {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        line-height: 1.85;
        color: var(--color-text-main);
        letter-spacing: 0.15em;
        margin-bottom: 16px;
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;
    }

    .policy-button-group-vertical {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-top: 32px;
    }

    .btn-policy-link-full {
        position: relative;
        left: 15%;
        display: block;
        width: 65%;
        padding: calc(clamp(12px, 1.044vw, 20px) + 3px) calc(clamp(14px, 1.158vw, 22px) + 3px);
        border: 1px solid var(--color-blue-main);
        color: var(--color-blue-main);
        text-align: center;
        font-size: calc(clamp(11px, 0.852vw, 15px) + 3px);
        font-weight: 700;
        border-radius: 2px;
        transition: background-color 0.2s ease, color 0.2s ease;
    }

    .btn-policy-link-full:hover {
        background-color: var(--color-blue-main);
        color: var(--color-white);
    }

    .features-text-list {
        display: flex;
        flex-direction: column;
        gap: clamp(16px, 1.818vw, 32px);
    }

    .feature-item-title {
        font-size: clamp(14px, calc(1.022vw + 2px), 20px);
        font-weight: 500;
        color: var(--color-blue-main);
        margin-bottom: 8px;
    }

    .feature-item-desc {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        line-height: 1.85;
        color: var(--color-text-main);
        letter-spacing: 0.15em;
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;
    }

    .company-table {
        width: 100%;
        border-collapse: collapse;
    }

    .company-table tr {
        border-bottom: 1px solid var(--color-border);
    }

    .company-table .th {
        width: 28%;
        padding: clamp(10px, 0.9vw, 16px) 10px clamp(10px, 0.9vw, 16px) 0;
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        /* font-weight: 700; */
        vertical-align: top;
        text-align: left;
    }

    .company-table td {
        width: 72%;
        padding: clamp(10px, 0.9vw, 16px) 0;
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        line-height: 1.8;
        color: var(--color-text-main);
        letter-spacing: 0.15em;
        vertical-align: top;
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;        
    }


    /* 下部写真 07: X=510 (メイン相対170px), 幅820, 高600, 上余白188px */
    .pc-photo-07-sec {
        padding-left: clamp(16px, 9.659vw, 170px);
        margin-top: clamp(40px, 10.68vw, 188px);
    }

    .img-photo-07 {
        width: clamp(240px, 46.59vw, 820px);
        max-width: 100%;
        aspect-ratio: 820 / 600;
        border-radius: 2px;
    }

    /* 下部写真 08 & 09: 上余白159px, 写真09落差272px */
    .photo-08-09-wrap {
        display: flex;
        justify-content: flex-start;
        gap: clamp(16px, 5.681vw, 100px);
        padding-left: clamp(16px, 3.977vw, 70px);
        padding-right: clamp(16px, 8.522vw, 150px);
        margin-top: clamp(40px, 9.034vw, 159px);
        max-width: 100%;
        box-sizing: border-box;
        align-items: flex-start;
    }

    .photo-08-box {
        width: clamp(180px, 34.09vw, 600px);
        flex: 1;
        min-width: 0;
        max-width: 600px;
    }

    .img-photo-08 {
        width: 100%;
        aspect-ratio: 600 / 450;
        border-radius: 2px;
    }

    .photo-09-box {
        width: clamp(150px, 28.4vw, 500px);
        flex: 1;
        min-width: 0;
        max-width: 500px;
        margin-top: clamp(40px, 15.454vw, 272px);
    }

    .img-photo-09 {
        width: 100%;
        aspect-ratio: 500 / 375;
        border-radius: 2px;
    }

    /* ── 代表挨拶 (Message: Y=9207〜) ── */
    .sec-message {
        padding-top: clamp(48px, 9.83vw, 173px) !important;
        padding-bottom: 0 !important;
        padding-left: 0 !important;
        padding-right: clamp(16px, 8.522vw, 150px) !important;
    }

    .sec-message .section-label {
        margin-bottom: clamp(36px, 7.215vw, 127px);
    }

    .message-two-col-wrap {
        display: flex;
        justify-content: flex-start;
        gap: clamp(16px, 5.681vw, 100px);
        padding-left: clamp(16px, 9.659vw, 170px);
        max-width: 100%;
        box-sizing: border-box;
        align-items: flex-start;
    }

    .message-left-content {
        width: clamp(180px, 28.4vw, 500px);
        flex: 1;
        min-width: 0;
        max-width: 500px;
    }

    .message-paragraphs p {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        line-height: 1.85;
        color: var(--color-text-main);
        letter-spacing: 0.15em;
        margin-bottom: clamp(16px, 2.15vw, 38px);
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;        
    }

    .message-signature {
        margin-top: clamp(20px, 4.2vw, 74px);
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .message-signature .job-title {
        font-size: clamp(25px, calc(0.738vw + 15px), 28px);
        color: var(--color-text-sub);
    }

    .message-signature .name {
        font-size: clamp(14px, 1.477vw, 26px);
        font-weight: 700;
        letter-spacing: 0.1em;
    }

    .message-right-photo {
        width: clamp(180px, 28.4vw, 500px);
        flex: 1;
        min-width: 0;
        max-width: 500px;
    }

    .img-photo-10 {
        width: 100%;
        aspect-ratio: 500 / 620;
        border-radius: 2px;
    }

    /* ── メンバー紹介 (Members: Y=10311〜) ── */
    .sec-members {
        padding-top: clamp(48px, 14.318vw, 252px) !important;
        padding-bottom: 0 !important;
        padding-left: 0 !important;
        padding-right: clamp(16px, 8.522vw, 150px) !important;
    }

    .sec-members .section-label {
        margin-bottom: clamp(36px, 7.215vw, 127px);
    }

    .members-undecided-wrap {
        padding-left: clamp(16px, 9.659vw, 170px);
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .img-members-undecided {
        width: clamp(280px, 62.5vw, 1100px);
        max-width: 100%;
        aspect-ratio: 1100 / 770;
        border-radius: 2px;
    }

    /* ── 取扱保険会社 (Insurance Company: Y=11577〜) ── */
    .sec-insurance-company {
        padding-top: clamp(48px, 15.0vw, 264px) !important;
        padding-bottom: 0 !important;
        padding-left: 0 !important;
        padding-right: clamp(16px, 8.522vw, 150px) !important;
    }

    .sec-insurance-company .section-label {
        margin-bottom: clamp(36px, 5.965vw, 105px);
    }

    .insurance-content-wrap {
        padding-left: clamp(16px, 9.659vw, 170px) !important;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    .ins-lead-p {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        line-height: 1.85;
        color: var(--color-text-main);
        letter-spacing: 0.15em;
        margin-bottom: clamp(24px, 5.34vw, 94px);
        max-width: clamp(320px, 62.5vw, 1100px);
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;        
    }

    .ins-category-row {
        display: flex;
        padding: clamp(16px, 2.272vw, 40px) 0;
        gap: clamp(32px, calc(2.84vw * 2), 100px);
        align-items: flex-start;
        max-width: clamp(320px, 62.5vw, 1100px);
    }

    .ins-category-label {
        width: clamp(100px, 11.363vw, 200px);
        flex-shrink: 0;
        font-size: clamp(23px, calc(1.022vw + 10px), 28px);
        font-weight: 700;
        color: var(--color-text-main);
        padding-top: 4px;
    }

    .ins-category-body {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: clamp(20px, 2.954vw, 52px);
    }

    /* 各会社ブロック: 上にロゴマーク、下に下線付き社名テキスト */
    .ins-company-item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .ins-logo-wrapper {
        width: auto;
        display: flex;
        align-items: center;
    }

    .ins-logo-img {
        max-height: clamp(72px, calc(2.727vw + 40px), 88px);
        width: auto;
        object-fit: contain;
        display: block;
    }

    .ins-company-name-text {
        font-size: clamp(16px, calc(0.852vw + 5px), 20px);
        color: var(--color-text-main);
        /* font-weight: 500; */
        text-decoration: none;
        letter-spacing: 0.05em;
    }

    /* 団体扱制度カード (Illustrator実物完全一致: 幅1100, 高860, 上余白171px) */
    .ins-group-system-wrapper {
        margin-top: clamp(40px, 9.715vw, 171px);
        position: relative;
        max-width: clamp(320px, 62.5vw, 1100px);
    }

    .group-system-card {
        background-color: var(--color-white);
        padding: clamp(24px, 3.636vw, 64px) clamp(20px, 3.636vw, 64px);
        border-radius: 4px;
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        box-shadow: 0 4px 24px rgba(0, 0, 0, 0.03);
        box-sizing: border-box;
        position: relative;
        overflow: visible;
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;
    }

    .group-system-left-content {
        width: clamp(270px, calc(50% + 10%), 570px);/** 30px **/
        display: flex;
        flex-direction: column;
        z-index: 1;
    }

    .group-system-title {
        font-size:clamp(13px, calc(1.022vw + 2px), 20px);
        /* font-weight: 700; */
        color: var(--color-blue-main);
        margin-bottom: clamp(12px, 1.36vw, 24px);
    }

    .group-system-list {
        display: flex;
        flex-direction: column;
        /* gap: 8px; */
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        color: var(--color-text-main);
        letter-spacing: 0.0725em;
        line-height: 1.8;
        margin-bottom: clamp(12px, 1.36vw, 24px);
    }

    .group-system-note {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        color: var(--color-text-sub);
        letter-spacing: 0.0725em;
        line-height: 1.8;
    }

    /* 上枠から上に突き抜けてはみ出るイラスト (Illustrator完全一致: 幅567px, top:-78px) */
    .group-system-right-illust {
        position: absolute;
        top: clamp(-45px, -4.43vw, -78px);
        right: clamp(16px, 2.5vw, 44px);
        width: clamp(180px, 32.215vw, 567px);
        z-index: 2;
        pointer-events: none;
    }

    .illust-img {
        width: 100%;
        height: auto;
        display: block;
    }

    /* ── お問い合わせ (Contact: Y=14524〜) ── */
    .sec-contact {
        padding-top: clamp(48px, 14.2vw, 250px) !important;
        padding-bottom: clamp(60px, 13.8vw, 243px) !important;
        padding-left: 0 !important;
        padding-right: clamp(16px, 8.522vw, 150px) !important;
    }

    .sec-contact .section-label {
        margin-bottom: clamp(24px, 5.397vw, 95px);
    }

    .contact-content-wrap {
        padding-left: clamp(16px, 9.659vw, 170px) !important;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    .contact-lead-p {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        line-height: 1.85;
        color: var(--color-text-main);
        letter-spacing: 0.15em;
        margin-bottom: clamp(24px, 5.51vw, 97px);
        max-width: clamp(320px, 62.5vw, 1100px);
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;
    }

    /* 背景透過テーブル形式（Illustrator実寸） */
    .contact-table-area {
        width: 100%;
        max-width: clamp(320px, 62.5vw, 1100px);
        display: flex;
        flex-direction: column;
    }

    .contact-table-row {
        display: flex;
        padding: clamp(16px, 2.272vw, 40px) 0;
        align-items: flex-start;
        gap: clamp(16px, 2.272vw, 40px);
        box-sizing: border-box;
    }

    .contact-table-label {
        width: clamp(80px, 7.386vw, 130px);
        flex-shrink: 0;
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        font-weight: 700;
        color: var(--color-text-main);
    }

    .flex-phone-row {
        display: flex;
        align-items: baseline;
        gap: clamp(16px, 2.5vw, 44px);
        flex-wrap: wrap;
    }

    .tel-number-text {
        font-size: clamp(22px, 2.84vw, 50px);
        /* font-weight: 700; */
        color: var(--color-blue-main);
        letter-spacing: 0.05em;
        line-height: 1.0;
    }

    .tel-hours-text {
        font-size: clamp(11px, 1.136vw, 20px);
        color: var(--color-text-sub);
        font-weight: 500;
    }

    .flex-line-row {
        display: flex;
        align-items: flex-start;
        gap: clamp(16px, 2.84vw, 50px);
    }

    .line-add-link {
        flex-shrink: 0;
        width: clamp(120px, 11.363vw, 200px);
    }

    .line-add-friend-img {
        width: 100%;
        height: auto;
        display: block;
    }

    .contact-qr-wrapper {
        flex-shrink: 0;
        width: clamp(100px, 11.363vw, 200px);
    }

    .qr-code-img {
        width: clamp(100px, 11.363vw, 200px);
        height: clamp(100px, 11.363vw, 200px);
        display: block;
    }

    .line-instruction {
        display: flex;
        flex-direction: column;
        gap: 6px;
        flex: 1;
    }

    .line-instruction .device-title {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        font-weight: 700;
        color: var(--color-text-main);
    }

    .line-instruction .desc-text {
        font-size: clamp(13px, calc(1.022vw + 2px), 20px);
        font-weight: 700;
        color: var(--color-text-sub);
        letter-spacing: 0.15em;
        line-height: 1.8;
        text-align: justify;
        word-break: break-all;
        text-justify: inter-ideograph;        
    }
}

/* ============================================================
   共通フッター (Illustrator完全一致: 全面青色バー #005A83)
   ============================================================ */
.site-footer {
    width: 100%;
    background-color: var(--color-blue-main);
    padding: clamp(20px, 1.8vw, 32px) 0;
    position: relative;
    z-index: 100;
    margin-top: auto;
    flex-shrink: 0;
}

.site-footer .footer-inner {
    width: 100%;
    max-width: var(--site-max-width);
    margin: 0 auto;
    text-align: center;
    padding: 0 20px;
    box-sizing: border-box;
}

.site-footer .copyright-text {
    color: var(--color-white);
    font-size: clamp(12px, 0.8vw, 14px);
    font-weight: 400;
    letter-spacing: 0.1em;
    margin: 0;
}

/* ============================================================
   スマホ表示 (767px以下 / Illustrator TOP_SP 400px基準 完全準拠)
   ============================================================ */
@media (max-width: 767px) {
    html {
        scroll-padding-top: 62px;
    }

    .pc-only {
        display: none !important;
    }

    .sp-only,
    .sp-content-wrapper {
        display: block !important;
    }

    .top-wrapper {
        display: block !important;
        width: 100% !important;
    }

    /* 改行制御 (SP) */
    .sp-br {
        display: block;
    }

    br.sp-br {
        display: inline;
    }

    span.sp-br {
        display: block;
    }

    .pc-br {
        display: none !important;
    }

    .site-container {
        width: 100%;
        max-width: 100%;
        padding: 0;
        overflow-x: hidden;
    }

    /* SP用 固定ヘッダー (Illustrator TOP_SP 1:1)
       初期状態: ハンバーガーメニューのみ画面右上に最初から常時表示（背景・ロゴは透明）
       スクロール時 (.is-scrolled): ロゴ「株式会社フィックス」とヘッダー背景がふわっと表示 */
    .sp-header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        height: 60px;
        background-color: transparent;
        border-bottom: 1px solid transparent;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        z-index: 200;
        display: flex;
        align-items: center;
        padding: 0 9px;
        box-sizing: border-box;
        opacity: 1;
        pointer-events: auto;
        transition: background-color 0.4s ease, border-bottom-color 0.4s ease, box-shadow 0.4s ease, backdrop-filter 0.4s ease, -webkit-backdrop-filter 0.4s ease;
    }

    .sp-header.is-scrolled {
        background-color: rgba(246, 248, 239, 0.96);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        border-bottom: 1px solid rgba(220, 225, 212, 0.8);
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
    }

    .sp-header-inner {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .sp-header-logo-wrap {
        display: flex;
        align-items: center;
        opacity: 0;
        pointer-events: none;
        transform: translateY(-4px);
        transition: opacity 0.35s ease, transform 0.35s ease;
    }

    .sp-header.is-scrolled .sp-header-logo-wrap {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .sp-header-logo-text {
        font-size: 16px;
        font-weight: 700;
        color: var(--color-blue-main);
        text-decoration: none;
        letter-spacing: 0.06em;
        line-height: 1;
        display: inline-block;
        padding-left: 30px;
        padding-top: 20px;
    }

    /* SP ハンバーガーメニューボタン (Illustrator トップ2.ai 1:1完全一致)
       menuテキスト: Palatino 18px / tracking 0.06em
       3本線: 幅 50px, 高さ 1px, gap 4px, #005a83 */
    .sp-menu-btn {
        background: transparent;
        border: none;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 3px;
        padding: 4px;
        margin-left: auto;
    }

    .sp-menu-btn-text {
        font-family: var(--font-en);
        font-size: 18px;
        color: var(--color-blue-main);
        letter-spacing: 0.06em;
        line-height: 1.0;
        text-transform: lowercase;
    }

    .sp-menu-btn-bars {
        display: flex;
        flex-direction: column;
        gap: 4px;
        width: 50px;
    }

    .sp-menu-btn-bars span {
        display: block;
        width: 100%;
        height: 1px;
        background-color: var(--color-blue-main);
    }

    body.is-drawer-open .sp-header {
        background-color: transparent !important;
        border-bottom-color: transparent !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.is-drawer-open .sp-header-logo-wrap {
        opacity: 0 !important;
        pointer-events: none !important;
    }

    /* SP用 ドロワーメニュー (Illustrator TOP_SP 1:1) */
    .sp-drawer {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: var(--bg-color-main);
        z-index: 199;
        transform: translateY(-100%);
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        padding: 40.5px 30px 40px;
        overflow-y: auto;
        box-sizing: border-box;
    }

    .sp-drawer.is-open {
        transform: translateY(0);
    }

    .sp-drawer-inner {
        width: 100%;
        max-width: 340px;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        gap: 36px;
    }

    .sp-drawer-logo-wrap {
        position: relative;
        padding: 76px 16px 80px 16px;
        border-left: 2.5px solid var(--color-blue-main);
        display: inline-block;
        width: fit-content;
        height: 196px;
        min-height: 196px;
        box-sizing: border-box;
        flex-shrink: 0;
    }

    .sp-drawer-logo-wrap::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 222px;
        height: 2.5px;
        background-color: var(--color-blue-main);
        pointer-events: none;
    }

    .sp-drawer-logo-text {
        font-size: 18px;
        font-weight: 800;
        color: var(--color-blue-main);
        letter-spacing: 0.08em;
        line-height: 1.0;
        white-space: nowrap;
        display: block;
    }

    .sp-nav-main-list {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

    .sp-nav-main-list a {
        font-size: 18px;
        font-weight: 700;
        color: #231815;
        display: block;
        letter-spacing: 0.08em;
    }

    .sp-nav-sub-list {
        display: flex;
        flex-direction: column;
        /* gap: 5x; */
        margin-top: 20px;
    }

    .sp-nav-sub-list a {
        font-size: 16px;
        color: #231815;
        display: block;
        letter-spacing: 0.06em;
    }

    .sp-drawer-news-wrap {
        margin-top: 16px;
        width: 100%;
    }

    .sp-drawer-news-wrap ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .sp-drawer-news-wrap li {
        display: flex;
        flex-direction: column;
        gap: 3px;
        font-size: 13px;
        padding: 8px 0;
        border-bottom: 1px solid #c8c8c8;
        line-height: 1.35;
    }

    .sp-drawer-news-wrap li:last-child {
        border-bottom: 1px solid #c8c8c8;
    }

    .sp-drawer-news-wrap .news-date {
        font-family: var(--font-ja), sans-serif;
        color: #999999;
        font-weight: 500;
        font-size: 13px;
        letter-spacing: 0.1em;
        line-height: 1.2;
    }

    .sp-drawer-news-wrap .news-title {
        font-family: var(--font-ja), sans-serif;
        color: var(--color-blue-main);
        font-weight: 700;
        font-size: 15px;
        text-decoration: none;
        white-space: normal;
        letter-spacing: 0.03em;
        line-height: 1.35;
        display: block;
        transition: color 0.2s ease;
    }

    .sp-drawer-news-wrap .news-title:hover {
        color: var(--color-blue-accent);
    }

    /* SP用 メインコンテンツ */
    .sp-content-wrapper {
        padding-top: 0;
        width: 100%;
    }

    /* SPコンテナ (Illustrator TOP_SP: 左右マージン各30px、インナー幅340px) */
    .sp-container {
        padding: 0 30px;
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
        box-sizing: border-box;
        position: relative;
    }

    /* SP ヒーロー (TOP_SP 実寸完全一致: Y=40.5px開始) */
    .sp-top-hero {
        padding-top: 40.5px;
        padding-bottom: 0;
        position: relative;
    }

    /* SP ヒーロー上部行 (ロゴ: Y=40.5〜236.5px, 下マージン79.5pxでニュースバーY=316pxへ) */
    .sp-hero-top-row {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        width: 100%;
        margin-bottom: 79.5px;
        position: relative;
    }

    /* SPロゴマーク (TOP_SP実寸: 縦線高さ 196px, 上横線 222px) */
    .sp-logo-wrap {
        position: relative;
        padding: 76px 16px 80px 16px;
        border-left: 2.5px solid var(--color-blue-main);
        display: inline-block;
        margin-bottom: 0;
        height: 196px;
        min-height: 196px;
        box-sizing: border-box;
        transition: min-height 0.85s cubic-bezier(0.16, 1, 0.3, 1), padding 0.85s cubic-bezier(0.16, 1, 0.3, 1);
        flex-shrink: 0;
    }

    .sp-logo-wrap::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 222px;
        height: 2.5px;
        background-color: var(--color-blue-main);
        transition: width 0.85s cubic-bezier(0.16, 1, 0.3, 1);
        pointer-events: none;
    }

    .sp-logo-text {
        font-size: 18px;
        font-weight: 800;
        color: var(--color-blue-main);
        letter-spacing: 0.08em;
        line-height: 1.0;
        white-space: nowrap;
        display: block;
        transition: opacity 0.35s ease;
    }

    .sp-logo-wrap::after {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 0;
        height: 2.5px;
        background-color: var(--color-blue-main);
        transition: width 0.85s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
        opacity: 0;
        pointer-events: none;
    }

    /* SPスクロール時: Fマーク変形アニメーション */
    .sp-logo-wrap.is-scrolled {
        min-height: 90px;
        padding: 35px 16px;
    }

    .sp-logo-wrap.is-scrolled .sp-logo-text {
        opacity: 0;
    }

    .sp-logo-wrap.is-scrolled::before {
        width: 68px;
    }

    .sp-logo-wrap.is-scrolled::after {
        width: 40px;
        opacity: 1;
    }

    /* お知らせバー (TOP_SP実寸: Y=316px〜429px, 幅280px/下線290px, 日付14px, タイトル16px) */
    .sp-news-bar-wrap {
        margin-top: 0;
        margin-bottom: 29.7px;
        width: 100%;
        max-width: 290px;
    }

    .sp-news-bar-wrap ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .sp-news-bar-wrap li {
        display: flex;
        flex-direction: column;
        gap: 3px;
        font-size: 14px;
        padding: 6px 0 8px;
        border-bottom: 1px solid #c8c8c8;
        line-height: 1.35;
    }

    .sp-news-bar-wrap li:last-child {
        border-bottom: 1px solid #c8c8c8;
    }

    .sp-news-bar-wrap .news-date {
        font-family: var(--font-gothic), sans-serif;
        color: #231815;
        font-weight: 500;
        font-size: 14px;
        letter-spacing: 0.1em;
        line-height: 1.2;
    }

    .sp-news-bar-wrap .news-title {
        color: var(--color-blue-main);
        font-weight: 700;
        font-size: 16px;
        text-decoration: none;
        white-space: normal;
        letter-spacing: 0.03em;
        line-height: 1.35;
    }

    /* SP 縦書きタイトル (TOP_SP実寸: X=220.65px, Y=168.5px, フォント29.6px, 行間59.2px) */
    .sp-title-wrap {
        position: absolute;
        top: 128px;
        left: 190.65px;
        z-index: 15;
        pointer-events: none;
        writing-mode: horizontal-tb;
        direction: ltr;
        width: max-content;
        display: block;
        margin: 0;
        padding: 0;
    }

    .sp-top-title {
        display: inline-block;
        -webkit-writing-mode: vertical-rl;
        writing-mode: vertical-rl;
        -webkit-text-orientation: upright;
        text-orientation: upright;
        font-size: 29.6px;
        line-height: 2.0;
        letter-spacing: 0.1em;
        font-family: var(--font-mincho);
        /* font-weight: 700; */
        color: var(--color-text-main);
        white-space: nowrap;
        margin: 0;
        padding: 0;
    }

    /* SP 画像01: 画面左端ピッタリ（幅320px × 高さ230px, 画面幅連動伸縮） */
    .sp-photo-wrap {
        position: relative;
        width: 100%;
        margin-bottom: 0;
    }

    .sp-hero-visual-block .sp-photo-wrap {
        position: relative;
        margin-left: -30px;
        width: calc(100% + 30px);
        max-width: 320px;
        height: auto;
        aspect-ratio: 320 / 230;
        margin-bottom: 0;
    }

    .sp-img-box {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        border-radius: 2px;
    }

    /* リード文 (TOP_SP実寸: Y=750.5px〜1000.2px, フォント18px, 行間28.8px, 段落間隔38.3px, 下マージン78.3px) */
    .sp-lead-box {
        margin-top: 70px;
        margin-bottom: 78.3px;
        color: var(--color-text-main);
        font-family: var(--font-gothic), sans-serif;
    }

    .sp-lead-box p {
        font-size: 18px;
        line-height: 38.8px;
        letter-spacing: 0;
        margin-top: 0;
        margin-bottom: 38.3px;
    }

    .sp-lead-box p:last-child {
        margin-bottom: 0;
    }

    /* 画像02・03 千鳥配置 (TOP_SP実寸: 画像02 160×144px / 画像03 270×225px / 画面幅連動伸縮) */
    .sp-hero-sub-photos {
        display: flex;
        flex-direction: column;
        gap: 80px;
        margin-top: 0;
        margin-bottom: 120px;
    }

    .sp-img-item-02 {
        width: 47.05%;
        max-width: 160px;
        height: auto;
        aspect-ratio: 160 / 144;
        margin-right: auto;
        margin-left: 0;
    }

    .sp-img-02 {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 2px;
        display: block;
    }

    .sp-img-item-03 {
        width: 79.41%;
        max-width: 270px;
        height: auto;
        aspect-ratio: 270 / 225;
        margin-left: auto;
        margin-right: 0;
    }

    .sp-img-03 {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 2px;
        display: block;
    }

    /* SP セクションラベル (TOP_SP実寸: en 15px / ja 20px / 高さ51.6px / 写真04 Top=1747.5px) */
    .sp-sec .section-label {
        display: flex;
        flex-direction: column;
        gap: 6px;
        margin-top: 0;
        margin-bottom: 55.4px;
    }

    .sp-sec .section-label .en-label {
        font-family: var(--font-en), sans-serif;
        font-size: 15px;
        color: var(--color-blue-main);
        letter-spacing: 0.1em;
        line-height: 1.0;
        /* display: block; */
    }

    .sp-sec .section-label .ja-label {
        font-family: var(--font-ja), sans-serif;
        font-size: 20px;
        font-weight: bold;
        color: var(--color-blue-main);
        letter-spacing: 0.05em;
        line-height: 1.2;
        margin: 0;
        padding: 0;
    }

    .sp-sec .sp-photo-wrap {
        margin-top: 0;
        /* margin-bottom: 80px; */
        width: 100%;
        max-width: 340px;
        height: auto;
        /* aspect-ratio: 340 / 453.33; */
    }

    .sp-sec .sp-photo-wrap .sp-img-box {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 2px;
        display: block;
    }

    /* about メイン見出し ＆ リード文章 (TOP_SP実寸: 見出しY=2280.5px, 段落1 Y=2394.5px, 段落2 Y=2539.5px, カード1 Y=2754.5px) */
    .sp-about-text-group {
        margin: 0;
    }

    .about-main-title {
        font-size: 24px;
        font-weight: 400;
        color: var(--color-text-main);
        line-height: 39px;
        letter-spacing: 0;
        margin-top: 0;
        margin-bottom: 48px;
    }

    .about-main-p ,.message-left-text,.ins-lead-p ,.contact-lead-p{
        font-size: 15px;
        line-height: 26.5px;
        color: var(--color-text-main);
        letter-spacing: 0.1em;
        margin-top: 0;
        margin-bottom: 38.5px;
        text-align: justify;
        font-feature-settings: "palt";
    }

    .about-main-p:last-child {
        margin-bottom: 82.5px;
    }

    /* 白カード群 (経営理念・特徴・会社概要: 幅100%, 最大幅340px, パディング30px, 下マージン80px) */
    .about-white-card-philosophy,
    .about-white-card-features,
    .about-white-card-company {
        background-color: var(--color-white);
        padding: 30px;
        border-radius: 4px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
        margin-bottom: 80px;
        box-sizing: border-box;
        width: 100%;
        max-width: 340px;
    }

    .about-white-card-philosophy {
        min-height: 770px;
        height: auto;
        padding: 30px;
    }

    .about-white-card-features {
        min-height: 720px;
        height: auto;
        padding: 30px;
        
    }

    .about-white-card-company {
        min-height: 720px;
        height: auto;
        margin-bottom: 100px;
        padding: 30px;
    }

    .philosophy-card-title,
    .features-card-title,
    .company-card-title {
        font-size: 19px;
        font-weight: 400;
        color: var(--color-text-main);
        margin-top: 0;
        margin-bottom: 38px;
        display: flex;
        align-items: center;
        line-height: 1.0;
    }

    .philosophy-card-title::before,
    .features-card-title::before,
    .company-card-title::before {
        content: '';
        display: inline-block;
        width: 30px;
        height: 1.5px;
        background-color: var(--color-blue-main);
        margin-right: 10px;
        flex-shrink: 0;
        transform: translateY(-0.05em);
    }

    /* 理念3語 (TOP_SP実寸: 22px, 行送り47px, 高さ118px, 上下間隔 各38px, 文字色 #005a83) */
    .philosophy-words-vertical {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 25px;
        margin: 0 0 38px 0;
    }

    .philosophy-words-vertical .word-item {
        font-family: var(--font-gothic), sans-serif;
        font-size: 22px;
        font-weight: 400;
        color: var(--color-blue-main);
        writing-mode: horizontal-tb;
        letter-spacing: 0.1em;
        line-height: 1.0;
        text-align: center;
        margin: 0;
        padding: 0;
    }

    /* 経営理念 本文3段落 (TOP_SP実寸: 15px, 行間30px, 段落間隔38.5px) */
    .philosophy-desc-p {
        margin: 0;
        padding: 0;
        font-feature-settings: "palt";
        text-align: justify;
    }

    .philosophy-desc-p p {
        font-size: 15px;
        line-height: 30px;
        color: var(--color-text-main);
        letter-spacing: 0;
        margin-top: 0;
        margin-bottom: 38.5px;
    }

    .philosophy-desc-p p:last-child {
        margin-bottom: 30px;
    }

    /* 方針ボタン2つ (TOP_SP実寸: 高さ70px, 幅280px, 上間隔30px, ボタン間隔20px, 下パディング30px) */
    .policy-button-group-vertical {
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin-top: 0;
        margin-bottom: 0;
    }

    .btn-policy-link-full {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 70px;
        padding: 0 16px;
        border: 1px solid var(--color-blue-main);
        color: var(--color-blue-main);
        text-align: center;
        font-size: 16px;
        font-weight: 400;
        border-radius: 2px;
        box-sizing: border-box;
        text-decoration: none;
    }

    /* 特徴リスト (TOP_SP実寸: 見出し18px 行間28px / 本文15px 行間28px / 項目間gap 32px) */
    .features-text-list {
        display: flex;
        flex-direction: column;
        gap: 32px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .features-text-list li {
        margin: 0;
        padding: 0;
    }

    .feature-item-title {
        font-size: 18px;
        font-weight: 500;
        color: var(--color-blue-main);
        margin-top: 0;
        margin-bottom: 12px;
        line-height: 28px;
        padding-left: 1em;
        text-indent: -1em;        
    }

    .feature-item-desc {
        font-size: 15px;
        line-height: 28px;
        color: var(--color-text-main);
        letter-spacing: 0;
        margin: 0;
        font-feature-settings: "palt";
        text-align: justify;
    }

    /* 会社概要テーブル (TOP_SP実寸: 14px / padding 10px 0) */
    .company-table {
        width: 100%;
        border-collapse: collapse;
    }

    .company-table tr {
        border-bottom: 1px solid var(--color-border);
    }

    .company-table tr:last-child {
        border-bottom: 1px solid var(--color-border);
    }

    .company-table .th {
        width: 30%;
        padding: 10px 8px 10px 0;
        font-size: 14px;
        /* font-weight: 500; */
        vertical-align: top;
        text-align: left;
    }

    .company-table td {
        width: 70%;
        padding: 10px 0;
        font-size: 14px;
        line-height: 1.8;
        color: var(--color-text-main);
        letter-spacing: 0.05em;
        vertical-align: top;
        font-feature-settings: "palt";
    }
    .business-content-td{
        line-height: 2.4!important;
    }
    .car-fix{
        line-height: 1.2!important;
    }
    .car-fix > .sub-desc{
        font-size: small;
        position: relative;
        top: -2vh;
    }
    /* SP 下部写真 07, 08, 09 (TOP_SP実寸: 写真07 300×220px / 写真08 200×150px / 写真09 250×188px / 各間隔60px / 下マージン 160px) */
    .sp-offset-images-wrap {
        display: flex;
        flex-direction: column;
        gap: 60px;
        padding: 0;
        margin: 0 0 160px 0;
        position: relative;
        width: 100%;
        box-sizing: border-box;
    }

    .sp-img-item-07 {
        width: 88.23%;
        max-width: 300px;
        height: auto;
        aspect-ratio: 300 / 220;
        margin-left: auto;
        margin-right: -30px;
        margin-top: 0;
        margin-bottom: 0;
    }

    .sp-img-bottom-07 {
        width: 100%;
        height: 100%;
        aspect-ratio: 300 / 220;
        object-fit: cover;
        border-radius: 2px;
        display: block;
    }

    .sp-img-item-08 {
        width: 58.82%;
        max-width: 200px;
        height: auto;
        aspect-ratio: 200 / 150;
        margin-right: auto;
        margin-left: 0;
        margin-top: 0;
        margin-bottom: 0;
    }

    .sp-img-bottom-08 {
        width: 100%;
        height: 100%;
        aspect-ratio: 200 / 150;
        object-fit: cover;
        border-radius: 2px;
        display: block;
    }

    .sp-img-item-09 {
        width: 73.53%;
        max-width: 250px;
        height: auto;
        aspect-ratio: 250 / 188;
        margin-left: auto;
        margin-right: 0;
        margin-top: 0;
        margin-bottom: 0;
    }

    .sp-img-bottom-09 {
        width: 100%;
        height: 100%;
        /* aspect-ratio: 250 / 188; */
        object-fit: cover;
        border-radius: 2px;
        display: block;
        padding-right: 30px;
    }

    /* SP 代表挨拶 (TOP_SP実寸: 見出しY=7129.5px, 写真10 340×422px 下マージン55px / 本文 15px 行間30px / 下マージン80px) */
    #sp-message {
        margin-top: 0;
        margin-bottom: 80px;
    }

    .sp-message-photo {
        margin-top: 0;
        margin-bottom: 55px;
        width: 340px;
        max-width: 340px;
        height: 422px;
        aspect-ratio: 340 / 422;
    }

    .sp-message-photo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .message-left-text p,
    .message-paragraphs p {
        font-size: 15px;
        line-height: 30px;
        color: var(--color-text-main);
        letter-spacing: 0.1em;
        margin-bottom: 24px;
    }

    .message-signature {
        margin: 28px 0;
        display: flex;
        align-items: baseline;
        gap: 16px;
    }

    .message-signature .job-title {
        font-size: 12px;
        color: var(--color-text-sub);
    }

    .message-signature .name {
        font-size: 22px;
        /* font-weight: 700; */
    }

    /* SP メンバー紹介 (TOP_SP実寸: 幅340px, 高さ238px, 下マージン 120px) */
    #sp-members {
        margin-top: 0;
        margin-bottom: 120px;
    }

    .members-undecided-box {
        width: 340px;
        max-width: 340px;
        margin-top: 0;
        margin-bottom: 0;
    }

    .members-undecided-box img {
        width: 100%;
        height: auto;
        aspect-ratio: 340 / 238;
        object-fit: cover;
        border-radius: 2px;
        display: block;
    }

    /* SP 取扱保険会社 (TOP_SP実寸: 下マージン 120px) */
    #sp-insurance-company {
        margin-top: 0;
        margin-bottom: 120px;
    }

    .ins-lead-p {
        margin-bottom: 32px;
    }

    .ins-logo-img {
        max-height: 57px !important;
        max-width: 340px !important;
        width: auto !important;
        height: auto !important;
        object-fit: contain;
    }

    .ins-company-item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .ins-row {
        margin-bottom: 32px;
    }

    .ins-label {
        font-size: 18px;
        font-weight: 700;
        color: var(--color-text-main);
        margin-bottom: 16px;
        /* border-bottom: 1px solid var(--color-border); */
        padding-bottom: 8px;
    }
    .box-line{
         border-top: 1px solid var(--color-border);
         margin-bottom:32px;
    }

    .ins-content {
        display: flex;
        flex-direction: column;
        gap: 48px;
    }

    .ins-item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .ins-company-name-text {
        font-size: 13.5px;
        color: var(--color-text-main);
        /* font-weight: 500; */
    }

    /* SP 団体扱制度カード */
    .ins-group-system-wrapper {
        margin-top: 36px;
    }

    .group-system-card {
        background-color: var(--color-white);
        padding: 36px 24px;
        border-radius: 4px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
        display: flex;
        flex-direction: column;
        gap: 20px;
        position: relative;
        overflow: visible;
    }

    .group-system-title {
        font-size: 18px;
        font-weight: 700;
        color: var(--color-blue-main);
    }

    .group-system-list {
        display: flex;
        flex-direction: column;
        gap: 8px;
        font-size: 11.7px;
        color: var(--color-text-main);
        letter-spacing: 0.1em;
        line-height: 1.8;
        
    }
    .group-system-list > li{
        font-feature-settings: "palt";
    }

    .group-system-note {
        font-size: 12px;
        color: var(--color-text-sub);
        letter-spacing: 0.2em;
        line-height: 1.8;
        margin-top: 12px;
    }

    .group-system-right-illust {
        position: relative;
        top:30px;
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        z-index: 100;
    }

    /* SP お問い合わせ (他セクションと同等の余白設計: 上120px / 下140px) */
    #sp-contact {
        margin-top: 120px;
        padding-bottom: 140px;
    }

    #sp-contact .contact-lead-p {
        margin-top: 0;
        margin-bottom: 40px;
    }

    .contact-table-area,
    .contact-content-area {
        display: flex;
        flex-direction: column;
        width: 100%;
        max-width: 340px;
        margin: 0 auto;
    }

    .contact-table-row,
    .contact-row {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        padding: 28px 0;
        /* border-top: 1px solid var(--color-border); */
        gap: 12px;
        width: 100%;
        box-sizing: border-box;
    }

    .contact-table-row:last-child,
    .contact-row:last-child {
        /* border-bottom: 1px solid var(--color-border); */
    }

    .contact-table-label,
    .contact-label {
        font-size: 16px;
        font-weight: 700;
        color: var(--color-text-main);
        width: 20%;
    }

    .contact-body,
    .contact-table-body {
        width: 100%;
    }

    .tel-number-text {
        font-size: 32px;
        font-weight: 200;
        color: var(--color-blue-main);
        letter-spacing: 0.05em;
        line-height: 1.0;
    }

    .tel-hours-text {
        font-size: 16px;
        color: var(--color-text-sub);
    }

    .flex-phone-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .flex-line-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .line-add-friend-img {
        width: 180px;
        height: auto;
        display: block;
    }

    .contact-qr-wrapper {
        width: 140px;
        height: 140px;
    }

    .qr-code-img {
        width: 140px;
        height: 140px;
        display: block;
    }
}

/* ============================================================
   個別投稿ページ (single.php) & カテゴリ一覧 (category-news.php)
   ============================================================ */
.single-main-content,
.category-news-main {
    padding: clamp(60px, 9.659vw, 170px) clamp(20px, 3.4vw, 60px) clamp(60px, 6.8vw, 120px) clamp(20px, 6.25vw, 110px);
    background-color: var(--bg-color-main);
    min-height: 100vh;
    box-sizing: border-box;
    margin-left: var(--sidebar-width-pc);
    width: calc(100% - var(--sidebar-width-pc));
    max-width: calc(100% - var(--sidebar-width-pc));
}

.news-archive-container {
    max-width: 800px;
    width: 100%;
    margin: 0 auto 0 0;
}

.single-container {
    max-width: 1100px;
    width: 100%;
    margin: 0 auto 0 0;
}

/* ── セクションラベル (news / お知らせ) ── */
.news-archive-label {
    margin-bottom: 50px;
}

.news-archive-label .en-label {
    font-family: var(--font-en), "Palatino Linotype", "Book Antiqua", Palatino, serif;
    font-size: 18px;
    letter-spacing: 0.15em;
    color: var(--color-blue-main);
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
    line-height: 1.0;
}

.news-archive-label .en-label::before {
    content: "";
    display: inline-block;
    width: 36px;
    height: 1.5px;
    background-color: var(--color-blue-main);
}

.news-archive-label .ja-label {
    font-family: var(--font-gothic), "Zen Kaku Gothic New", sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: var(--color-blue-main);
    letter-spacing: 0;
    line-height: 1.2;
    margin: 0;
}

/* =====================================================
   お知らせ一覧リスト (category-news.php)
   ===================================================== */
.news-archive-list {
    list-style: none;
    margin: 0 0 60px 0;
    padding: 0;
    border-top: 1px solid #b2b2b2;
}

.news-archive-item {
    display: flex;
    align-items: center;
    padding: 38px 0;
    border-bottom: 1px solid #b2b2b2;
    gap: 20px;
    transition: background-color 0.2s ease;
}

.news-archive-date {
    font-family: var(--font-gothic), "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-weight: 500;
    color: #666666;
    letter-spacing: 0.1em;
    flex-shrink: 0;
    width: 120px;
    line-height: 1.2;
}

.news-archive-title {
    font-family: var(--font-gothic), "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--color-blue-main);
    text-decoration: none;
    line-height: 1.5;
    letter-spacing: 0;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.news-archive-title:hover {
    color: var(--color-blue-accent);
    opacity: 0.85;
}

.news-archive-pagination {
    margin: 48px 0;
    display: flex;
    justify-content: center;
}

.news-archive-pagination .nav-links {
    display: flex;
    gap: 8px;
    align-items: center;
}

.news-archive-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border-radius: 4px;
    font-family: var(--font-en);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-blue-main);
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    text-decoration: none;
    transition: all 0.2s ease;
}

.news-archive-pagination .page-numbers.current {
    background-color: var(--color-blue-main);
    color: var(--color-white);
    border-color: var(--color-blue-main);
}

.news-archive-pagination .page-numbers:hover:not(.current) {
    background-color: rgba(0, 90, 131, 0.08);
    border-color: var(--color-blue-main);
}

.news-no-posts {
    padding: 48px 0;
    color: var(--color-text-sub);
    font-size: 15px;
}

/* =====================================================
   個別投稿ページ (single.php)
   ===================================================== */
.single-article {
    background-color: #ffffff;
    padding: 50px 50px 60px;
    width: 100%;
    max-width: 1100px;
    box-sizing: border-box;
    margin: 0 auto 0 0;
}

/* ── 記事ヘッダー（日付＋タイトル） ── */
.single-entry-header {
    margin-bottom: 50px;
    padding-bottom: 0;
    border-bottom: none;
}

.single-entry-date {
    display: block;
    font-family: var(--font-gothic), "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-weight: 500;
    color: #666666;
    letter-spacing: 0.1em;
    margin-bottom: 16px;
    line-height: 1.0;
}

.single-entry-title {
    font-family: var(--font-gothic), "Zen Kaku Gothic New", sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color-blue-main);
    letter-spacing: 0;
    margin: 0;
}

/* ── 記事本文（WordPressブロックエディタ対応） ── */
.single-entry-content {
    font-family: var(--font-gothic), "Zen Kaku Gothic New", sans-serif;
    font-size: 16px;
    line-height: 2.0;
    color: var(--color-text-main);
    letter-spacing: 0.05em;
    margin-bottom: 0;
}

.single-entry-content p {
    margin-bottom: 24px;
}

.single-entry-content p:last-child {
    margin-bottom: 0;
}

.single-entry-content h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-blue-main);
    border-left: 4px solid var(--color-blue-main);
    padding-left: 16px;
    margin: 40px 0 20px;
    line-height: 1.4;
}

.single-entry-content h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text-main);
    margin: 32px 0 16px;
    line-height: 1.4;
}

.single-entry-content h4 {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-main);
    margin: 24px 0 12px;
}

.single-entry-content ul {
    list-style: disc;
    margin: 16px 0 24px 24px;
}

.single-entry-content ol {
    list-style: decimal;
    margin: 16px 0 24px 24px;
}

.single-entry-content li {
    margin-bottom: 8px;
}

.single-entry-content img,
.single-entry-content .wp-block-image img {
    max-width: 100%;
    height: auto;
    border-radius: 2px;
    margin: 20px 0;
}

.single-entry-content .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
}

.single-entry-content .wp-block-table th,
.single-entry-content .wp-block-table td {
    padding: 12px 16px;
    border: 1px solid var(--color-border);
}

.single-entry-content .wp-block-table th {
    background-color: rgba(0, 90, 131, 0.06);
    font-weight: 700;
}

.single-entry-content .wp-block-button__link {
    display: inline-block;
    padding: 12px 28px;
    background-color: var(--color-blue-main);
    color: var(--color-white);
    text-decoration: none;
    font-weight: 700;
    border-radius: 2px;
    transition: background-color 0.2s ease;
}

.single-entry-content .wp-block-button__link:hover {
    background-color: var(--color-blue-accent);
}

.single-entry-content blockquote {
    margin: 24px 0;
    padding: 16px 24px;
    border-left: 4px solid var(--color-border);
    background-color: rgba(246, 248, 239, 0.6);
    color: var(--color-text-sub);
}

/* =====================================================
   ロードサービス・記事ブロック専用スタイル（Illustrator実測完全一致）
   ===================================================== */
/* サポートセンター名（幅840pxインナーで左揃え） */
.single-entry-content .loodservice-txt1 {
    font-size: 24px;
    font-weight: 500;
    color: #231815;
    text-align: left;
    margin: 0 auto 20px;
    max-width: 840px;
    width: 100%;
    line-height: 1.2;
    letter-spacing: 0;
    box-sizing: border-box;
}

/* ロードサービス・事故受付（幅840pxインナーで左揃え） */
.single-entry-content .loodservice-txt2 {
    font-size: 20px;
    font-weight: 400;
    color: #231815;
    text-align: left;
    margin: 0 auto 44px;
    max-width: 840px;
    width: 100%;
    line-height: 1.2;
    letter-spacing: 0;
    box-sizing: border-box;
}

/* 0120 電話番号＆24時間365日 カラムコンテナ（幅840pxインナーで左揃え横並び・上下中央揃え） */
.single-entry-content .wp-block-columns:has(.freetell-1) {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 24px;
    margin: 0 auto 44px;
    max-width: 840px;
    width: 100%;
    box-sizing: border-box;
}

.single-entry-content .wp-block-columns:has(.freetell-1) .wp-block-column {
    flex: 0 1 auto !important;
    width: auto !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
}

/* 0120-024-024 */
.single-entry-content .freetell-1 {
    font-size: 60px;
    font-weight: 700;
    color: #231815;
    letter-spacing: 0.1em;
    line-height: 1.0;
    margin: 0;
    white-space: nowrap;
    display: flex;
    align-items: center;
}

/* 24時間365日 枠線ラベル（実寸: 幅180px, 高さ50px, 枠線2px、上下中央配置） */
.single-entry-content .freetell-2 {
    font-size: 22px;
    font-weight: 500;
    color: var(--color-blue-main);
    border: 2px solid var(--color-blue-main);
    padding: 0;
    margin: auto 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.0;
    letter-spacing: 0;
    white-space: nowrap;
    box-sizing: border-box;
    width: 180px;
    height: 50px;
}

/* IP電話ボックス (実寸: 幅840px, 高さ200px, 背景#e0e7dd, 角丸10px) */
.single-entry-content .loadservice-box,
.single-entry-content .wp-block-columns.loadservice-box {
    background-color: #e0e7dd;
    border-radius: 10px;
    padding: 38px 40px 34px;
    max-width: 840px;
    width: 100%;
    min-height: 200px;
    margin: 0 auto;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.single-entry-content .loadservice-box .wp-block-column {
    width: 100% !important;
    flex: 1 1 100% !important;
    margin: 0 !important;
    text-align: center;
}

/* IP電話ボックス内の「IP電話など、ご利用頂けない場合」 */
.single-entry-content .loadservice-box .loodservice-txt2 {
    font-size: 20px;
    font-weight: 500;
    color: var(--color-blue-main);
    text-align: center;
    margin: 0 0 16px;
    line-height: 1.2;
}

/* 0276-90-8850 (実寸: 40px Bold / tracking 100) */
.single-entry-content .Freetell-3,
.single-entry-content .freetell-3 {
    font-size: 40px;
    font-weight: 700;
    color: #231815;
    letter-spacing: 0.1em;
    line-height: 1.0;
    text-align: center;
    margin: 0 0 12px;
}

.single-entry-content .Freetell-3 strong,
.single-entry-content .freetell-3 strong {
    font-weight: 700;
}

/* (通話料有料/無料) (実寸: 20px Medium / tracking 100) */
.single-entry-content .loodservice-txt3 {
    font-size: 20px;
    font-weight: 500;
    color: #231815;
    letter-spacing: 0.1em;
    text-align: center;
    margin: 0;
    line-height: 1.0;
}

/* =====================================================
   レスポンシブ (767px以下)
   ===================================================== */
@media (max-width: 767px) {

    .single-main-content,
    .category-news-main {
        margin-left: 0 !important;
        padding: 24px 30px 60px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .sp-subpage-header {
        display: flex !important;
        justify-content: space-between;
        align-items: flex-start;
        width: 100%;
        max-width: 340px;
        margin: 0 auto 40px;
        position: relative;
    }

    .sp-subpage-header .sp-logo-wrap {
        position: relative;
        padding: 48px 16px 52px 16px;
        border-left: 2.5px solid var(--color-blue-main);
        display: inline-block;
        min-height: 120px;
        box-sizing: border-box;
        margin-top: 10px;
    }

    .sp-subpage-header .sp-logo-wrap::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 200px;
        max-width: calc(100vw - 120px);
        height: 2.5px;
        background-color: var(--color-blue-main);
    }

    .sp-subpage-header .sp-logo-text {
        font-size: 18px;
        font-weight: 800;
        color: var(--color-blue-main);
        letter-spacing: 0.08em;
        line-height: 1.0;
        white-space: nowrap;
        display: block;
    }

    .news-archive-container,
    .single-container {
        max-width: 340px;
        margin: 0 auto;
    }

    .news-archive-label {
        margin-bottom: 36px;
    }

    .news-archive-label .en-label {
        font-size: 15px;
        gap: 10px;
        margin-bottom: 6px;
    }

    .news-archive-label .en-label::before {
        width: 24px;
        height: 1.5px;
    }

    .news-archive-label .ja-label {
        font-size: 28px;
    }

    .news-archive-item {
        flex-direction: column;
        gap: 10px;
        align-items: flex-start;
        padding: 28px 0;
    }

    .news-archive-date {
        font-size: 18px;
        width: auto;
    }

    .news-archive-title {
        font-size: 18px;
    }

    /* SP 白カード (実寸: 幅340px, 高さ720px, パディング 上20px 左右20px 下30px) */
    .single-article {
        max-width: 340px;
        padding: 20px 20px 30px;
        margin: 0 auto;
    }

    .single-entry-header {
        margin-bottom: 30px;
    }

    .single-entry-date {
        font-size: 18px;
        margin-bottom: 12px;
        letter-spacing: 0.1em;
    }

    .single-entry-title {
        font-size: 24px;
        font-weight: 500;
        margin: 0 0 28px;
        line-height: 1.4;
    }

    /* ── ロードサービス SPスタイル (Illustrator SP 1:1) ── */
    .single-entry-content .loodservice-txt1 {
        font-size: 18px;
        font-weight: 500;
        text-align: left;
        margin: 0 0 10px;
        line-height: 1.4;
    }

    .single-entry-content .loodservice-txt2 {
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        margin: 0 0 20px;
        line-height: 1.4;
    }

    .single-entry-content .wp-block-columns:has(.freetell-1) {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px;
        margin: 0 0 24px;
    }

    .single-entry-content .freetell-1 {
        font-size: 44px;
        font-weight: 700;
        text-align: center;
        letter-spacing: 0.1em;
        line-height: 1.0;
        margin: 0;
    }

    .single-entry-content .freetell-2 {
        font-size: 22px;
        font-weight: 500;
        padding: 0;
        height: 50px;
        width: 300px;
        max-width: 100%;
        box-sizing: border-box;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        margin: 0 auto;
    }

    .single-entry-content .loadservice-box,
    .single-entry-content .wp-block-columns.loadservice-box {
        padding: 24px 16px 20px;
        margin: 0 auto;
        border-radius: 8px;
        width: 300px;
        max-width: 100%;
        min-height: 140px;
    }

    .single-entry-content .loadservice-box .loodservice-txt2 {
        font-size: 15px;
        font-weight: 500;
        text-align: center;
        margin: 0 0 8px;
        line-height: 1.2;
    }

    .single-entry-content .Freetell-3,
    .single-entry-content .freetell-3 {
        font-size: 30px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-align: center;
        margin: 0 0 6px;
        line-height: 1.0;
    }

    .single-entry-content .loodservice-txt3 {
        font-size: 16px;
        font-weight: 500;
        letter-spacing: 0.1em;
        text-align: center;
        margin: 0;
        line-height: 1.0;
    }
    .line-instruction .desc-text {
        font-size: clamp(13px, 14px, 15px);
        text-align: justify;
    }
}