@charset "UTF-8";
/*
 * Hello Group Theme - Main CSS
 *
 * 各ページ固有のスタイルをここに記述
 *
 * @package HelloGroup
 * @version 1.0.0
 */

/* ==========================================================================
   Global Base
   ========================================================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

.sp-br {
    display: none;
}

.pc-br {
    display: inline;
}

.fa-arrow-right-long,
.fa-arrow-left-long {
    transform: scaleX(1.6);
}

.p-no-post-msg {
    font-family: 'Noto Sans JP', sans-serif;
}

.u-font-sans {
    font-family: 'Noto Sans JP', sans-serif;
}

/* セクション（背景含む）全幅対応 */
.l-wrapper {
    width: 100%;
    overflow-x: hidden;
}

.l-main {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    overflow-x: hidden;
}

/* ==========================================================================
   Header
   ========================================================================== */

.c-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: transparent;
}

.c-header__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    min-height: clamp(78.22px, 7.64vw, 110px);
    margin: 0 auto;
    padding: clamp(10.67px, 1.04vw, 15px) 2rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

/* ロゴ */
.c-header__logo a {
    display: inline-flex;
}

.c-header__logo img {
    width: clamp(42.67px, 4.17vw, 60px);
    height: clamp(42.67px, 4.17vw, 60px);
    object-fit: contain;
}

.c-header__nav-wrap {
    position: relative;
    width: clamp(691.91px, 67.57vw, 973px);
    max-width: calc(100% - clamp(78.22px, 7.64vw, 110px));
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #FFF;
    padding: 2px;
}

/* グラデーションボーダー用の疑似要素 */
.c-header__nav-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: clamp(70.4px, 6.88vw, 99px);
    padding: 2px;
    background: linear-gradient(90.3deg, #FFFFFF 2.35%, rgba(255, 255, 255, 0.3) 24.93%, #FFFFFF 43.83%, rgba(255, 255, 255, 0.3) 63.19%, #FFFFFF 80.7%, rgba(255, 255, 255, 0.3) 98.21%);
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    z-index: 1;
}

/* ナビゲーション本体 */
.c-header__nav-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: clamp(9.24px, 0.9vw, 13px) clamp(34.13px, 3.33vw, 48px);
}

.c-header__nav {
    display: flex;
    align-items: center;
}

.c-header__menu {
    display: flex;
    align-items: center;
    gap: clamp(21.33px, 2.08vw, 30px);
    list-style: none;
    margin: 0;
    padding: 0;
}

.c-header__menu-item>a,
.c-header__menu-trigger {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    text-align: center;
    color: #000000;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.3s ease;
}

.c-header__menu-trigger {
    cursor: pointer;
}

.c-header__menu-item>a:hover,
.c-header__menu-trigger:hover {
    color: #042275;
}

/* 子メニュー付きアイテム */
.c-header__menu-item--has-children {
    display: flex;
    align-items: center;
    gap: clamp(5.69px, 0.56vw, 8px);
}

/* +/- トグルボタン */
.c-header__submenu-toggle {
    position: relative;
    width: clamp(17.78px, 1.74vw, 25px);
    height: clamp(17.78px, 1.74vw, 25px);
    border-radius: 50%;
    background: #042275;
    border: 1px solid #042275;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.3s ease;
}

.c-header__submenu-toggle:hover {
    background: #0a3399;
}

/* +/- アイコン（CSSで実装） */
.c-header__toggle-icon {
    position: relative;
    width: clamp(7.82px, 0.76vw, 11px);
    height: clamp(7.82px, 0.76vw, 11px);
}

.c-header__toggle-icon::before,
.c-header__toggle-icon::after {
    content: '';
    position: absolute;
    background: #FFFFFF;
    transition: transform 0.3s ease;
}

/* 横棒（常に表示 ＝ マイナス） */
.c-header__toggle-icon::before {
    width: clamp(7.82px, 0.76vw, 11px);
    height: 2px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

/* 縦棒（+の場合は表示、-の場合は回転で消す） */
.c-header__toggle-icon::after {
    width: 2px;
    height: clamp(7.82px, 0.76vw, 11px);
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

/* アクティブ時：+ → - にする */
.c-header__submenu-toggle.is-active .c-header__toggle-icon::after {
    transform: translateX(-50%) rotate(90deg);
    opacity: 0;
}

/* CTAボタン（ナビ内右端） */
.c-header__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: clamp(147.91px, 14.44vw, 208px);
    height: clamp(27.73px, 2.71vw, 39px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    border: 2px solid #FFFFFF;
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: clamp(27.73px, 2.71vw, 39px);
    letter-spacing: 0.03em;
    text-align: center;
    color: #FFFFFF;
    text-decoration: none;
    transition: opacity 0.3s ease;
    z-index: 2;
}

.c-header__cta:hover {
    opacity: 0.5;
}

/* ==========================================================================
   Header - サブメニュー
   ========================================================================== */

.c-header__submenu {
    display: none;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, opacity 0.35s ease;
    padding: 0 clamp(34.13px, 3.33vw, 48px);
}

.c-header__submenu-inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: clamp(14.22px, 1.39vw, 20px);
    padding: clamp(5.69px, 0.56vw, 8px) 0 clamp(10.67px, 1.04vw, 15px);
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.c-header__submenu-item {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(7.11px, 0.69vw, 10px);
    width: clamp(196.98px, 19.24vw, 277px);
    border-bottom: 1px solid #C5C5C5;
    text-decoration: none;
    transition: color 0.3s ease;
}

.c-header__submenu-label {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 200%;
    color: #000000;
    white-space: nowrap;
    transition: color 0.3s ease;
}

.c-header__submenu-item:hover .c-header__submenu-label {
    color: #042275;
}

.c-header__submenu-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(32px, 3.13vw, 45px);
    height: clamp(12.8px, 1.25vw, 18px);
    border-radius: clamp(56.18px, 5.49vw, 79px);
    background: #042275;
    flex-shrink: 0;
    transition: background 0.3s ease;
}

.c-header__submenu-arrow svg {
    width: clamp(11.38px, 1.11vw, 16px);
    height: clamp(5.69px, 0.56vw, 8px);
}

.c-header__submenu-arrow svg line,
.c-header__submenu-arrow svg polyline {
    stroke: #FFFFFF;
}

.c-header__submenu-item:hover .c-header__submenu-arrow {
    background: #0a3399;
}

/* ==========================================================================
   Header - SP ハンバーガーメニュー
   ========================================================================== */

/* デフォルト：非表示（PC） */
.c-header__hamburger {
    display: none;
}

@media screen and (max-width: 1023px) {

    .c-header {
        background: transparent;
    }

    .c-header__inner {
        width: calc(100% - 40px);
        max-width: 550px;
        height: clamp(52px, calc(44.48px + 2.01vw), 65px);
        min-height: auto;
        margin: 0 auto;
        padding: clamp(5px, calc(3.26px + 0.46vw), 8px) clamp(15px, calc(10.95px + 1.08vw), 22px);
        position: relative;
        top: clamp(23px, calc(20.11px + 0.77vw), 28px);
        left: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-radius: 99px;
        background: #FFFFFF;
    }

    .c-header__inner::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        border-radius: 99px;
        padding: 2px;
        background: linear-gradient(90.3deg, #FFFFFF 2.35%, rgba(255, 255, 255, 0.3) 24.93%, #FFFFFF 43.83%, rgba(255, 255, 255, 0.3) 63.19%, #FFFFFF 80.7%, rgba(255, 255, 255, 0.3) 98.21%);
        -webkit-mask:
            linear-gradient(#fff 0 0) content-box,
            linear-gradient(#fff 0 0);
        mask:
            linear-gradient(#fff 0 0) content-box,
            linear-gradient(#fff 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        pointer-events: none;
        z-index: 1;
    }

    .c-header__logo {
        display: flex;
        align-items: center;
    }
    .c-header__logo img {
        width: clamp(35px, calc(27.48px + 2.01vw), 48px);
        height: clamp(35px, calc(27.48px + 2.01vw), 48px);
    }

    /* ナビゲーション非表示（SP） */
    .c-header__nav-wrap {
        display: none;
    }

    .c-header__hamburger {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: clamp(39px, calc(33.79px + 1.39vw), 48px);
        height: clamp(39px, calc(33.79px + 1.39vw), 48px);
        border-radius: 50%;
        background: #042275 url('../img/CTA_bg.webp') center center / 120% 120% no-repeat;
        box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.25);
        border: none;
        overflow: hidden;
        cursor: pointer;
        padding: 0;
        position: relative;
        z-index: 2;
        flex-shrink: 0;
    }

    .c-header__hamburger-icon {
        display: block;
        position: relative;
        width: 16px;
        height: 1px;
        background-color: #FFFFFF;
        border-radius: 2px;
    }

    .c-header__hamburger-icon::before,
    .c-header__hamburger-icon::after {
        content: '';
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 10px;
        height: 1px;
        background-color: #FFFFFF;
        border-radius: 2px;
    }

    .c-header__hamburger-icon::before {
        top: -6.5px;
    }

    .c-header__hamburger-icon::after {
        bottom: -6.5px;
    }

}

/* ==========================================================================
   Header - SP ドロワーメニュー
   ========================================================================== */

/* デフォルト：非表示（PC） */
.c-drawer,
.c-drawer__overlay {
    display: none;
}

@media screen and (max-width: 1023px) {

    /* オーバーレイ背景 */
    .c-drawer__overlay {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.4);
        z-index: 1999;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }

    .c-drawer__overlay.is-active {
        opacity: 1;
        visibility: visible;
    }

    /* ドロワー本体 */
    .c-drawer {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        background: #FFFFFF;
        z-index: 2000;
        transform: translateX(100%);
        transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        overflow-y: auto;
    }

    .c-drawer.is-active {
        transform: translateX(0);
    }

    .c-drawer__inner {
        padding: clamp(30px, calc(10.92px + 5.09vw), 50px) clamp(45px, calc(30.77px + 3.79vw), 70px);
        padding-top: clamp(70px, calc(46.95px + 6.11vw), 94px);
        min-height: 100%;
        flex-direction: column;
    }

    .c-drawer__close {
        position: absolute;
        top: clamp(30px, calc(22.39px + 2.04vw), 38px);
        right: clamp(20px, calc(6.18px + 3.69vw), 35px);
        width: clamp(39px, calc(30.41px + 2.29vw), 48px);
        height: clamp(39px, calc(30.41px + 2.29vw), 48px);
        border-radius: 50%;
        background: #042275 url('../img/CTA_bg.webp') center center / 120% 120% no-repeat;
        box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.25);
        border: none;
        cursor: pointer;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        z-index: 10;
    }

    /* × アイコン */
    .c-drawer__close-icon {
        display: block;
        position: relative;
        width: clamp(16px, calc(12.17px + 1.02vw), 20px);
        height: clamp(16px, calc(12.17px + 1.02vw), 20px);
    }

    .c-drawer__close-icon::before,
    .c-drawer__close-icon::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 100%;
        height: 0;
        border-top: 1.52px solid #FFFFFF;
    }

    .c-drawer__close-icon::before {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .c-drawer__close-icon::after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    /* ─── ナビゲーション ─── */
    .c-drawer__nav {
        margin-top: clamp(80px, calc(56.85px + 6.17vw), 120px);
        margin-left: clamp(10px, calc(4.22px + 1.54vw), 20px);
        margin-right: clamp(10px, calc(4.22px + 1.54vw), 20px);
        margin-bottom: clamp(30px, calc(10.92px + 5.09vw), 50px);
    }

    .c-drawer__menu {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .c-drawer__menu-item {
        margin-bottom: clamp(20px, calc(12.39px + 2.04vw), 28px);
    }

    .c-drawer__menu-item > a,
    .c-drawer__menu-row > a,
    .c-drawer__menu-trigger {
        font-family: 'Shippori Mincho', serif;
        font-weight: 600;
        font-size: clamp(18px, calc(14.17px + 1.02vw), 22px);
        line-height: 180%;
        color: #000000;
        text-decoration: none;
    }

    .c-drawer__menu-trigger {
        cursor: pointer;
    }

    .c-drawer__menu-row {
        display: flex;
        align-items: center;
        gap: clamp(30px, calc(21.31px + 2.31vw), 45px);
    }

    .c-drawer__submenu-toggle {
        width: clamp(18px, calc(14.17px + 1.02vw), 22px);
        height: clamp(18px, calc(14.17px + 1.02vw), 22px);
        border-radius: 50%;
        background: #042275;
        border: none;
        cursor: pointer;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    /* +/- アイコン */
    .c-drawer__toggle-icon {
        position: relative;
        width: 9px;
        height: 9px;
    }

    .c-drawer__toggle-icon::before,
    .c-drawer__toggle-icon::after {
        content: '';
        position: absolute;
        background: #FFFFFF;
        transition: transform 0.3s ease, opacity 0.3s ease;
    }

    /* 横棒 */
    .c-drawer__toggle-icon::before {
        width: 9px;
        height: 0;
        border-top: 0.76px solid #FFFFFF;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        background: none;
    }

    /* 縦棒 */
    .c-drawer__toggle-icon::after {
        width: 0;
        height: 9px;
        border-left: 0.76px solid #FFFFFF;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        background: none;
    }

    /* アクティブ時：+ → - */
    .c-drawer__submenu-toggle.is-active .c-drawer__toggle-icon::after {
        transform: translateX(-50%) rotate(90deg);
        opacity: 0;
    }

    /* ─── サブメニュー ─── */
    .c-drawer__submenu {
        list-style: none;
        margin: 0;
        padding: 0;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height 0.35s ease, opacity 0.3s ease;
        padding-left: clamp(15px, calc(10.19px + 1.27vw), 20px);
    }

    .c-drawer__submenu.is-open {
        opacity: 1;
    }

    .c-drawer__submenu li {
        margin-top: clamp(12px, calc(7.44px + 1.15vw), 16px);
    }

    .c-drawer__submenu li a {
        font-family: 'Shippori Mincho', serif;
        font-weight: 400;
        font-size: clamp(16px, calc(13.13px + 0.76vw), 19px);
        line-height: 200%;
        letter-spacing: 0.07em;
        color: #000000;
        text-decoration: none;
    }

    .c-drawer__submenu li a::before {
        content: '・';
    }

    /* ─── CTAボタン ─── */
    .c-drawer__cta {
        display: flex;
        align-items: center;
        justify-content: center;
        width: clamp(239px, calc(161.78px + 20.61vw), 320px);
        height: clamp(50px, calc(40.45px + 2.54vw), 60px);
        border-radius: 99px;
        padding: 5px 30px;
        background: #042275;
        border: 2px solid #FFFFFF;
        box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.25);
        font-family: 'Shippori Mincho', serif;
        font-weight: 600;
        font-size: clamp(16px, calc(13.13px + 0.76vw), 19px);
        line-height: 180%;
        letter-spacing: 0.03em;
        color: #FFFFFF;
        text-decoration: none;
        margin-top: auto;
    }

    /* body スクロール防止 */
    body.is-drawer-open {
        overflow: hidden;
    }

}

/* ==========================================================================
   Front Page - NEWS
   ========================================================================== */
.p-news-area {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
    background: #FFFFFF;
}

.p-news-area__inner {
    position: relative;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    height: clamp(213.33px, 20.83vw, 300px);
}

.p-news-area__bg-text {
    position: absolute;
    top: 1px;
    left: clamp(-80px, -5.56vw, -56.89px);
    z-index: 1;
    writing-mode: vertical-rl;
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(56.89px, 5.56vw, 80px);
    letter-spacing: 0.1em;
    text-align: center;
    line-height: 1;
    background: linear-gradient(270deg, #8E8E8E 0%, rgba(142, 142, 142, 0.5) 30%, rgba(142, 142, 142, 0) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.p-news-area__container {
    position: absolute;
    top: 1px;
    left: clamp(132.98px, 12.99vw, 187px);
    width: clamp(832px, 81.25vw, 1170px);
    height: clamp(213.33px, 20.83vw, 300px);
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.p-news-area__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(21.33px, 2.08vw, 30px) 0;
}

.p-news-area__list {
    display: flex;
    flex-direction: column;
    gap: clamp(10.67px, 1.04vw, 15px);
}

.p-news-area__item {
    display: flex;
    align-items: baseline;
    gap: clamp(14.22px, 1.39vw, 20px);
}

.p-news-area__date {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
/*     text-align: center; */
    color: #000000;
    min-width: clamp(56.89px, 5.56vw, 80px);
}

.p-news-area__post-title {
    margin: 0;
}

.p-news-area__post-title .p-news-area__post-link {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.1;
    color: #000000;
}

.p-news-area__empty {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(11.38px, 1.11vw, 16px);
    color: #000000;
}

/* ==========================================================================
   Front Page - FV (First View)
   ========================================================================== */
.p-fv {
    width: 100%;
    overflow: hidden;
    background: #FFFFFF;
    position: relative;
    display: flex;
    justify-content: center;
}

.p-fv__inner {
    position: relative;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    height: clamp(554.67px, 54.17vw, 780px);
    flex-shrink: 0;
}

.p-fv__bg-left {
    position: absolute;
    top: clamp(-20px, -1.39vw, -14.22px);
    left: clamp(-298px, -20.69vw, -211.91px);
    width: clamp(961.42px, 93.89vw, 1352px);
    height: clamp(556.8px, 54.37vw, 783px);
    z-index: 1;
}

.p-fv__bg-left img {
    width: 90%;
    height: 100%;
    object-fit: cover;
}

.p-fv__img-powder {
    position: absolute;
    top: clamp(36.98px, 3.61vw, 52px);
    left: clamp(301.51px, 29.44vw, 424px);
    width: clamp(670.58px, 65.49vw, 943px);
    height: clamp(500.62px, 48.89vw, 704px);
    opacity: 0.61;
    z-index: 2;
}

.p-fv__img-slider {
    position: absolute;
    top: clamp(60.44px, 5.9vw, 85px);
    left: clamp(435.91px, 42.57vw, 613px);
    width: clamp(469.33px, 45.83vw, 660px);
    height: clamp(472.18px, 46.11vw, 664px);
    z-index: 3;
    border-radius: 50%;
    overflow: hidden;
    -webkit-mask-image: -webkit-radial-gradient(white, black);
    mask-image: radial-gradient(white, black);
}

.p-fv__swiper {
    width: 100%;
    height: 100%;
}

.p-fv__swiper .swiper-slide {
    overflow: hidden;
}

.p-fv__swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.1);
    will-change: transform;
}

.p-fv__swiper .swiper-slide-active img,
.p-fv__swiper .swiper-slide-duplicate-active img {
    animation: fvKenBurns 9s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}

.p-fv__swiper .swiper-slide-prev img,
.p-fv__swiper .swiper-slide-duplicate-prev img {
    animation: fvKenBurns 9s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}

@keyframes fvKenBurns {
    0% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1.0);
    }
}

/* ---- 飛行機パスアニメーション ---- */
.p-fv__flight-anim {
    position: absolute;
    top: clamp(277.33px, 27.08vw, 390px);
    left: clamp(373.33px, 36.46vw, 525px);
    width: 560px;
    height: 210px;
    z-index: 5;
    pointer-events: none;
}

.p-fv__flight-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.p-fv__flight-path-base {
    visibility: hidden;
}

.p-fv__img-airplane {
    position: absolute;
    width: 250px;
    height: 250px;
    object-fit: contain;
    z-index: 10;
    transform: translateZ(0); 
    will-change: left, top, transform;
}

@media screen and (min-width: 1024px) and (max-width: 1139px) {
    .p-fv__flight-anim {
        transform: scale(0.65);
        transform-origin: 0 0;
    }
}
@media screen and (min-width: 1140px) and (max-width: 1239px) {
    .p-fv__flight-anim {
        transform: scale(0.75);
        transform-origin: 0 0;
    }
}
@media screen and (min-width: 1240px) and (max-width: 1339px) {
    .p-fv__flight-anim {
        transform: scale(0.85);
        transform-origin: 0 0;
    }
}
@media screen and (min-width: 1340px) and (max-width: 1439px) {
    .p-fv__flight-anim {
        transform: scale(0.9);
        transform-origin: 0 0;
    }
}

/* テキスト・メダル */
.p-fv__catch {
    position: absolute;
    top: clamp(213.33px, 20.83vw, 300px);
    left: clamp(56.89px, 5.56vw, 80px);
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(36.98px, 3.61vw, 52px);
    line-height: clamp(37.69px, 3.68vw, 53px);
    color: #000000;
    margin: 0;
    z-index: 10;
}

.p-fv__sub {
    position: absolute;
    top: clamp(268.09px, 26.18vw, 377px);
    left: clamp(56.89px, 5.56vw, 80px);
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #000000;
    margin: 0;
    z-index: 10;
}

.p-fv__medal-1 {
    position: absolute;
    top: clamp(334.22px, 32.64vw, 470px);
    left: clamp(56.89px, 5.56vw, 80px);
    width: clamp(103.82px, 10.14vw, 146px);
    height: clamp(103.82px, 10.14vw, 146px);
    z-index: 10;
}

.p-fv__medal-2 {
    position: absolute;
    top: clamp(334.22px, 32.64vw, 470px);
    left: clamp(170.58px, 16.66vw, 239.88px);
    width: clamp(103.82px, 10.14vw, 146px);
    height: clamp(103.82px, 10.14vw, 146px);
    z-index: 10;
}

/* ==========================================================================
   Feature Section
   ========================================================================== */
.p-feature {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: clamp(10.67px, 1.04vw, 15px) auto 0;
    /* FVの下にカーブを被せる＆中央揃え */
    background: #EDF0F9;
    border-radius: 80% 80% 0 0 / clamp(128px, 12.5vw, 180px) clamp(128px, 12.5vw, 180px) 0 0;
    padding: clamp(85.33px, 8.33vw, 120px) 0 clamp(71.11px, 6.94vw, 100px);
    z-index: 10;
    display: flex;
    justify-content: center;
    overflow: hidden;
}

.p-feature__inner {
    position: relative;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    padding: 0 2rem;
}

/* 背景オブジェクト */
.p-feature__bg-map {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(542.58px, 52.99vw, 763px);
    height: clamp(296.53px, 28.96vw, 417px);
    opacity: 0.9;
    z-index: 1;
    pointer-events: none;
}

.p-feature__airplane {
    position: absolute;
    left: clamp(711.11px, 69.44vw, 1000px);
    width: clamp(156.44px, 15.28vw, 220px);
    height: clamp(156.44px, 15.28vw, 220px);
    max-width: none;
    transform: rotate(-185deg) scale(-1, -1);
    z-index: 2;
    pointer-events: none;
}

.p-feature__contrail {
    position: absolute;
    top: clamp(99.56px, 9.72vw, 140px);
    left: clamp(199.11px, 19.44vw, 280px);
    width: clamp(483.56px, 47.22vw, 680px);
    height: clamp(9.96px, 0.97vw, 14px);
    z-index: 1;
    pointer-events: none;
}

/* テキストコンテンツ */
.p-feature__content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.p-feature__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(28.44px, 2.78vw, 40px) 0;
    line-height: 1.4;
}

.p-feature__desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

/* タブレット・スマホ用調整 */
@media screen and (max-width: 1023px) {
    .p-feature__airplane {
        left: auto;
        right: -50px;
        transform: rotate(-128.91deg) scale(-0.7, -0.7);
    }

    .p-feature__contrail {
        display: none;
    }

    .p-feature__bg-map {
        width: 90%;
        height: auto;
        top: calc(20% - 92px);
        transform: translateX(-50%);
    }
}

/* ==========================================================================
   Promise Section (3つの約束)
   ========================================================================== */
.p-promise {
    position: relative;
    width: 100%;
    background: #EDF0F9;
    padding: 0 0 clamp(28.44px, 2.78vw, 40px);
    /* p-featureからの連続性を考慮 */
}

.p-promise__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* ヘッダー周り */
.p-promise__head {
    text-align: center;
    margin-bottom: clamp(42.67px, 4.17vw, 60px);
}

.p-promise__subtitle {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(7.11px, 0.69vw, 10px);
    line-height: 1.4;
}

.p-promise__title {
    display: flex;
    align-items: baseline;
    justify-content: center;
    line-height: 1;
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.p-promise__title-num {
    font-family: 'Alex Brush', cursive;
    font-weight: 400;
    font-size: clamp(81.78px, 7.99vw, 115px);
    letter-spacing: 0.1em;
    padding-right: clamp(10.67px, 1.04vw, 15px);
}

.p-promise__title-text {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
}

/* 3カラムリスト */
.p-promise__list {
    display: flex;
    justify-content: center;
    gap: clamp(21.33px, 2.08vw, 30px);
    width: 100%;
}

.p-promise__item {
    display: flex;
    flex-direction: column;
    width: clamp(288px, 28.13vw, 405px);
    max-width: 100%;
}

.p-promise__thumb {
    margin: 0 0 clamp(21.33px, 2.08vw, 30px) 0;
}

.p-promise__thumb img {
    width: 100%;
    height: clamp(128px, 12.5vw, 180px);
    object-fit: cover;
    border-radius: clamp(7.11px, 0.69vw, 10px);
}

.p-promise__content {
    display: flex;
    flex-direction: column;
}

.p-promise__heading {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(14.22px, 1.39vw, 20px) 0;
    line-height: 1.6;
}

.p-promise__desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

/* レスポンシブ対応 */
@media screen and (max-width: 1023px) {
    .p-promise__list {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   Member Section (チーム体制)
   ========================================================================== */
.p-member {
    position: relative;
    width: 100%;
    background: #EDF0F9;
    padding: clamp(28.44px, 2.78vw, 40px) 0 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* 背景画像とマスク */
.p-member__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.p-member__bg img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.p-member__bg-mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, #EDF0F9 0%, rgba(237, 240, 249, 0.8) 98.69%);
}

.p-member__inner {
    position: relative;
    z-index: 2;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* サブテキスト (単なる文字) */
.p-member__sub-text {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(14.22px, 1.39vw, 20px) 0;
    text-align: center;
}

/* カプセル白枠 (タイトルを入れる枠) */
.p-member__subtitle-box {
    width: clamp(547.56px, 53.47vw, 770px);
    max-width: 100%;
    height: clamp(65.42px, 6.39vw, 92px);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #EDEDED;
    border-radius: clamp(7.11px, 0.69vw, 10px);
    background: #FFFFFF;
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}

/* メインタイトル (カプセル内) */
.p-member__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(23.45px, 2.29vw, 33px);
    letter-spacing: 0.1em;
    text-align: center;
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    margin: 0 clamp(14.22px, 1.39vw, 20px);
}

/* 説明文 */
.p-member__desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    text-align: center;
    color: #000000;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px) 0;
}

/* メンバーリスト (4カラム) */
.p-member__list {
    display: flex;
    justify-content: center;
    gap: clamp(14.22px, 1.39vw, 20px);
    width: 100%;
    margin-bottom: clamp(85.33px, 8.33vw, 120px);
}

/* メンバーカード */
.p-member__card {
    display: flex;
    flex-direction: column;
    width: clamp(215.47px, 21.04vw, 303px);
    max-width: 100%;
}

/* カード上部画像エリア */
.p-member__card-img {
    width: clamp(215.47px, 21.04vw, 303px);
    max-width: 100%;
    height: clamp(230.4px, 22.5vw, 324px);
    background: linear-gradient(51.53deg, #D9DBD3 13.38%, #F9FAF9 93.61%);
    border-top-left-radius: 60px;
    border-top-right-radius: 60px;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.p-member__card-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* カード下部テキストエリア */
.p-member__card-body {
    width: clamp(215.47px, 21.04vw, 303px);
    max-width: 100%;
    height: clamp(68.98px, 6.74vw, 97px);
    background: #FFFFFF;
    border-top: 1px solid #EDEDED;
    border-bottom-right-radius: 60px;
    border-bottom-left-radius: 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.p-member__card-role {
    font-family: 'Magneta', 'Playfair Display', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 1.4;
    color: #000000;
    margin: 0 0 clamp(7.11px, 0.69vw, 10px);
}

.p-member__card-name {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0;
}

/* ボトム装飾 */
.p-member__bottom-deco {
    width: 100vw;
    max-width: 1440px;
    height: clamp(113.78px, 11.11vw, 160px);
    position: relative;
    z-index: 2;
    margin-top: clamp(-90px, -6.25vw, -64px);
    margin-bottom: clamp(-80px, -5.56vw, -56.89px);
    left: 50%;
    transform: translateX(-50%);
    background: transparent;
    overflow: hidden;
}

.p-member__bottom-deco img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center calc(50% - 5px);
}

/* レスポンシブ対応 */
@media screen and (max-width: 1023px) {
    .p-member__list {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   Intro Section (各国の不動産投資について)
   ========================================================================== */
.p-intro {
    width: 100%;
    background: #FFFFFF;
    padding: clamp(71.11px, 6.94vw, 100px) 0 0;
    position: relative;
    overflow: hidden;
}

.p-intro__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: clamp(49.78px, 4.86vw, 70px) 2rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-intro__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(21.33px, 2.08vw, 30px) 0;
    text-align: center;
}

.p-intro__desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px) 0;
    text-align: center;
}

/* 3カラムカードリスト */
.p-intro__list {
    display: flex;
    justify-content: center;
    gap: clamp(21.33px, 2.08vw, 30px);
    width: 100%;
}

.p-intro__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: clamp(287.29px, 28.06vw, 404px);
    max-width: 100%;
    background-repeat: no-repeat;
    background-position: center 50px;
}

.p-intro__card:nth-child(1) {
    background-image: url('../img/intro_bg01.webp');
    background-size: clamp(287px, 28.13vw, 405px) auto;
}

.p-intro__card:nth-child(2) {
    background-image: url('../img/intro_bg02.webp');
    background-size: clamp(293px, 28.61vw, 412px) auto;
}

.p-intro__card:nth-child(3) {
    background-image: url('../img/intro_bg03.webp');
    background-size: clamp(195px, 19.03vw, 274px) auto;
}

.p-intro__card-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(14.22px, 1.39vw, 20px) 0;
    text-align: center;
}

.p-intro__card-thumb {
    width: 100%;
    margin: 0 0 clamp(14.22px, 1.39vw, 20px) 0;
}

.p-intro__card-thumb img {
    width: 100%;
    height: clamp(128px, 12.5vw, 180px);
    object-fit: cover;
    border-radius: clamp(14.22px, 1.39vw, 20px);
}

.p-intro__card-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0 0 clamp(21.33px, 2.08vw, 30px) 0;
    text-align: left;
}

/* 下部リンク */
.p-intro__card-link-wrap {
    margin-top: auto;
    display: flex;
    justify-content: right;
    width: 100%;
}

.p-intro__card-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: clamp(14.22px, 1.39vw, 20px);
    padding-bottom: 5px;
    border-bottom: 1px solid #000000;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-intro__card-link:hover {
    opacity: 0.7;
}

.p-intro__card-link-text {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 2;
    letter-spacing: 0.07em;
    /* 7% */
    color: #000000;
}

.p-intro__card-link-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    color: #FFFFFF;
    font-size: clamp(9.96px, 0.97vw, 14px);
}

/* レスポンシブ */
@media screen and (max-width: 1023px) {
    .p-intro__list {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   Fixed CTA (LINE)
   ========================================================================== */
.c-fixed-cta {
    position: fixed;
    bottom: clamp(21.33px, 2.08vw, 30px);
    right: clamp(21.33px, 2.08vw, 30px);
    width: clamp(132.98px, 12.99vw, 187px);
    height: clamp(132.98px, 12.99vw, 187px);
    border-radius: 50%;
    background: url('../img/CTA_bg.webp') center / 120% auto no-repeat, linear-gradient(180deg, #042275 0%, #002EAC 100%);
    border: 2.7px solid #FFFFFF;
    text-decoration: none;
    z-index: 1000;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.c-fixed-cta:hover {
    transform: scale(1.05) translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}

.c-fixed-cta__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.c-fixed-cta__catch {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(9.24px, 0.9vw, 13px);
    color: #FFFFFF;
    text-align: center;
    letter-spacing: 0.03em;
    margin-bottom: 5px;
}

.c-fixed-cta__catch-text {
    font-size: clamp(7.67px, 0.75vw, 10.79px);
    line-height: 1;
    letter-spacing: 0.02em;
}

.c-fixed-cta__title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    color: #FFFFFF;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-bottom: clamp(8.53px, 0.83vw, 12px);
    gap: clamp(4.27px, 0.42vw, 6px);
}

.c-fixed-cta__title-text {
    font-size: clamp(15.35px, 1.5vw, 21.58px);
    line-height: 1.2;
    text-align: left;
}

.c-fixed-cta__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(27.02px, 2.64vw, 38px);
    height: clamp(27.02px, 2.64vw, 38px);
    background: #FFFFFF;
    border-radius: 50%;
    color: #01A314;
    font-size: clamp(17.07px, 1.67vw, 24px);
    margin-bottom: 0;
    flex-shrink: 0;
}

.c-fixed-cta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(96.71px, 9.44vw, 136px);
    height: clamp(17.78px, 1.74vw, 25px);
    border-radius: clamp(9.59px, 0.94vw, 13.49px);
    background: #FFFFFF;
    border: 0.9px solid #01A314;
    color: #01A314;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: clamp(8.53px, 0.83vw, 12px);
    line-height: 1;
    gap: clamp(4.98px, 0.49vw, 7px);
    padding-left: clamp(7.11px, 0.69vw, 10px);
}

.c-fixed-cta__arrow {
    display: inline-block;
    width: clamp(4.27px, 0.42vw, 6px);
    height: clamp(4.27px, 0.42vw, 6px);
    border-top: 1.5px solid #01A314;
    border-right: 1.5px solid #01A314;
    transform: rotate(45deg);
}

/* ==========================================================================
   CTA Section
   ========================================================================== */

.p-cta {
    position: relative;
    width: 100%;
    height: clamp(455.11px, 44.44vw, 640px);
    background-image: url('../img/footer_bg.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* マスクオーバーレイ（78%透過） */
.p-cta__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #DCE0EBC7;
    z-index: 1;
}

/* コンテナ */
.p-cta__container {
    position: relative;
    z-index: 2;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    height: clamp(455.11px, 44.44vw, 640px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 2rem;
}

/* 見出し */
.p-cta__heading {
    font-family: 'Shippori Mincho', serif;
    font-weight: 700;
    font-size: clamp(28.44px, 2.78vw, 40px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #003D8B;
    -webkit-text-stroke: 3px #FFFFFF;
    paint-order: stroke fill;
    line-height: 1.5;
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
}

/* 3カラムカードエリア */
.p-cta__cards {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    height: auto;
    min-height: clamp(224px, 21.88vw, 315px);
    background: #FFFFFFCC;
    border-radius: clamp(14.22px, 1.39vw, 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(28.44px, 2.78vw, 40px);
    padding: clamp(28.44px, 2.78vw, 40px) clamp(21.33px, 2.08vw, 30px);
}

/* 各カード */
.p-cta__card {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(22.76px, 2.22vw, 32px);
    position: relative;
}

.p-cta__card:nth-child(1) .p-cta__btn,
.p-cta__card:nth-child(2) .p-cta__btn {
    gap: clamp(14.22px, 1.39vw, 20px);
}

.p-cta__card:not(:last-child)::after {
    content: '';
    position: absolute;
    right: clamp(-20px, -1.39vw, -14.22px);
    top: 50%;
    transform: translateY(-50%);
    height: clamp(167.82px, 16.39vw, 236px);
    border-right: 1px solid #8E8E8E;
}

/* カードボディ（タイトル+小見出し） */
.p-cta__card-body {
    text-align: center;
}

/* カードタイトル */
.p-cta__card-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(14.94px, 1.46vw, 20px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #042275;
    margin-bottom: clamp(8.53px, 0.83vw, 12px);
}

/* カード小見出し */
.p-cta__card-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 180%;
    text-align: center;
    color: #000000;
}

/* CTAボタン */
.p-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: clamp(11.38px, 1.11vw, 16px);
    width: clamp(221.87px, 21.67vw, 312px);
    height: clamp(48.36px, 4.72vw, 68px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    border: 2px solid #FFFFFF;
    text-decoration: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    padding: 0 clamp(21.33px, 2.08vw, 30px);
    box-shadow: 2px 2px 4px 0px #00000040;
}

.p-cta__btn:hover {
    opacity: 0.85;
    transform: translateY(-2px);
}

/* ボタンラベル */
.p-cta__btn-label {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 14px);
    line-height: 130%;
    letter-spacing: 0.07em;
    text-align: center;
    color: #FFFFFF;
}

/* ボタン矢印 */
.p-cta__btn-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #FFFFFF;
    padding: 0;
    flex-shrink: 0;
}

.p-cta__btn-arrow svg {
    width: clamp(14.22px, 1.39vw, 20px);
    height: clamp(7.11px, 0.69vw, 10px);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.c-footer {
    width: 100%;
    background: #FFFFFF;
    padding: 0;
}

.c-footer__inner {
    width: clamp(789.33px, 77.08vw, 1110px);
    max-width: 100%;
    margin: 0 auto;
    padding: clamp(35.56px, 3.47vw, 50px) 2rem clamp(21.33px, 2.08vw, 30px);
}

/* フッタータイトル */
.c-footer__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #000000;
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
}

/* グループロゴ3カラム */
.c-footer__group-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(28.44px, 2.78vw, 40px);
    margin-bottom: clamp(35.56px, 3.47vw, 50px);
}

.c-footer__group-logo-link {
    display: inline-flex;
    align-items: center;
    transition: opacity 0.3s ease;
}

.c-footer__group-logo-link:hover {
    opacity: 0.7;
}

.c-footer__group-logo-link img {
    width: clamp(130.84px, 12.78vw, 184px);
    height: clamp(24.18px, 2.36vw, 34px);
    object-fit: contain;
}

/* フッターコンテンツ（左右レイアウト） */
.c-footer__content {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
}

/* 左側：メニュー */
.c-footer__nav {
    flex: 1;
}

.c-footer__menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.c-footer__menu-item {
    margin-bottom: clamp(10.67px, 1.04vw, 15px);
}

.c-footer__menu-item>a {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 200%;
    letter-spacing: 0.07em;
    color: #000000;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.c-footer__menu-item>a:hover {
    opacity: 0.6;
}

.c-footer__menu-label {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 200%;
    letter-spacing: 0.07em;
    color: #000000;
    cursor: default;
}

/* 下層メニュー */
.c-footer__submenu {
    list-style: none;
    margin: 0;
    padding: 0 0 0 0.5em;
}

.c-footer__submenu li {
    margin-bottom: clamp(3.56px, 0.35vw, 5px);
}

.c-footer__submenu li a {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(8.53px, 0.83vw, 12px);
    line-height: 200%;
    letter-spacing: 0.07em;
    color: #000000;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.c-footer__submenu li a:hover {
    opacity: 0.6;
}

/* 右側 */
.c-footer__right {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(11.38px, 1.11vw, 16px);
}

.c-footer__sns {
    order: 3;
}

.c-footer__privacy {
    order: 4;
    margin-top: auto;
}

/* ロゴ */
.c-footer__logo img {
    width: clamp(78.22px, 7.64vw, 110px);
    height: clamp(78.22px, 7.64vw, 110px);
    object-fit: contain;
}

/* 運営会社 */
.c-footer__company {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #000000;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.c-footer__company:hover {
    opacity: 0.6;
}

/* SNSリンク */
.c-footer__sns {
    display: flex;
    align-items: center;
    gap: clamp(8.53px, 0.83vw, 12px);
}

.c-footer__sns-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(21.33px, 2.08vw, 30px);
    height: clamp(21.33px, 2.08vw, 30px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.c-footer__sns-link img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.c-footer__sns-link:hover {
    opacity: 0.6;
    transform: translateY(-2px);
}

/* プライバシーポリシー */
.c-footer__privacy {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #000000;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.c-footer__privacy:hover {
    opacity: 0.6;
}

/* コピーライト */
.c-footer__copyright {
    text-align: center;
    padding-top: clamp(14.22px, 1.39vw, 20px);
}

.c-footer__copyright p {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(8.53px, 0.83vw, 12px);
    line-height: 200%;
    letter-spacing: 0.07em;
    color: #8E8E8E;
    margin: 0;
}

/* ==========================================================================
   Pickup Section (おすすめの物件)
   ========================================================================== */
.p-pickup {
    width: 100%;
    background: #FFFFFF;
    padding: clamp(71.11px, 6.94vw, 100px) 0 0;
    position: relative;
    overflow: hidden;
}

.p-pickup__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    gap: clamp(81.78px, 7.99vw, 115px);
    align-items: flex-start;
}

/* 左側：縦文字 */
.p-pickup__left {
    flex-shrink: 0;
    padding-top: clamp(7.11px, 0.69vw, 10px);
    margin-left: clamp(-100px, -6.94vw, -71.11px);
}

.p-pickup__vertical-text {
    writing-mode: vertical-rl;
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(56.89px, 5.56vw, 80px);
    letter-spacing: 0.1em;
    text-align: center;
    line-height: 1;
    background: linear-gradient(270deg, #8E8E8E 0%, rgba(142, 142, 142, 0.5) 30%, rgba(142, 142, 142, 0) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

/* 右側：スライダーとテキスト */
.p-pickup__right {
    flex-grow: 1;
    min-width: 0;
}

.p-pickup__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    margin: 0 0 clamp(28.44px, 2.78vw, 40px) 0;
    color: #000000;
}

/* スライダー本体 */
.p-pickup__slider-wrap {
    width: 100%;
    position: relative;
}

.p-pickup__swiper {
    overflow: visible;
}

.p-pickup__card {
    width: clamp(293.69px, 28.68vw, 413px);
    max-width: 100%;
}

.p-pickup__card-link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

.p-pickup__card-link:hover {
    opacity: 0.7;
}

.p-pickup__card-img {
    width: 100%;
    height: clamp(164.98px, 16.11vw, 232px);
    border-radius: clamp(14.22px, 1.39vw, 20px);
    overflow: hidden;
    margin-bottom: clamp(14.22px, 1.39vw, 20px);
    background-color: #f5f5f5;
}

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

.p-pickup__card-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.p-pickup__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: clamp(19.91px, 1.94vw, 28px);
    padding: 0 clamp(10.67px, 1.04vw, 15px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    color: #FFFFFF;
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 200%;
    letter-spacing: 0.07em;
    text-align: center;
    margin-bottom: clamp(8.53px, 0.83vw, 12px);
}

.p-pickup__country {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    text-align: left;
    color: #000000;
    margin: 0 0 2px 0;
    line-height: 1.2;
}

.p-pickup__name {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(12.8px, 1.25vw, 18px);
    color: #000000;
    margin: 0 0 2px 0;
    line-height: 1.2;
}

.p-pickup__price {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: 14px;
    color: #000000;
    margin: 0;
    line-height: 1.2;
}

/* スライダー操作部とリンク */
.p-pickup__bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: clamp(14.22px, 1.39vw, 20px);
}

.p-pickup__nav {
    display: flex;
    gap: clamp(10.67px, 1.04vw, 15px);
}

.p-pickup__prev,
.p-pickup__next {
    width: clamp(64.71px, 6.32vw, 91px);
    height: clamp(26.31px, 2.57vw, 37px);
    border-radius: clamp(113.78px, 11.11vw, 160px);
    background: #042275;
    color: #FFFFFF;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(11.38px, 1.11vw, 16px);
    transition: opacity 0.3s ease;
    padding: 0;
}

.p-pickup__prev:hover,
.p-pickup__next:hover {
    opacity: 0.7;
}

/* 右側：すべての物件を見るリンク */
.p-pickup__link-wrap {
    border-bottom: 1px solid #000000;
    padding-bottom: 5px;
}

.p-pickup__link {
    display: flex;
    align-items: center;
    gap: clamp(14.22px, 1.39vw, 20px);
    text-decoration: none;
    color: #000000;
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 200%;
    letter-spacing: 0.07em;
    transition: opacity 0.3s ease;
}

.p-pickup__link:hover {
    opacity: 0.7;
}

.p-pickup__link-icon {
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(8.53px, 0.83vw, 12px);
}

/* 下部装飾画像 */
.p-pickup__bottom-deco {
    margin-top: clamp(56.89px, 5.56vw, 80px);
    width: 100%;
}

.p-pickup__bottom-deco img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

/* Responsive */
@media screen and (max-width: 1024px) {
    .p-pickup__swiper {
        overflow: hidden;
    }
}

/* ==========================================================================
   Voice Section (オーナー様の声)
   ========================================================================== */
.p-voice {
    width: 100%;
    background: #FFFFFF;
    padding: clamp(71.11px, 6.94vw, 100px) 0;
}

.p-voice__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

.p-voice__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #000000;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px) 0;
}

.p-voice__list {
    overflow: visible;
    padding-bottom: clamp(7.11px, 0.69vw, 10px); /* 見切れ対策 */
}

.p-voice__list .swiper-wrapper {
    display: flex;
    justify-content: center;
    gap: clamp(14.22px, 1.39vw, 20px);
    /* ★カード間の隙間 */
    flex-wrap: wrap;
}

.p-voice__card {
    width: calc((100% - clamp(14.22px, 1.39vw, 20px)) / 2);
    min-height: clamp(256px, 25vw, 360px);
    /* height: clamp(256px, 25vw, 360px) specified, using min-height for text flexiblity */
    border-radius: clamp(14.22px, 1.39vw, 20px);
    padding: clamp(14.22px, 1.39vw, 20px);
    background: #FFFFFF;
    box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.25);
    /* #00000040 */
    display: flex;
    flex-direction: column;
}

.p-voice__card-head {
    display: flex;
    align-items: center;
    gap: clamp(21.33px, 2.08vw, 30px);
    margin-bottom: clamp(17.78px, 1.74vw, 25px);
}

.p-voice__card-thumb {
    margin: 0;
}

.p-voice__card-thumb img {
    width: clamp(156.44px, 15.28vw, 220px);
    height: clamp(104.53px, 10.21vw, 147px);
    border-radius: 20px;
    object-fit: cover;
    display: block;
}

.p-voice__card-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.p-voice__card-date {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(12.8px, 1.25vw, 18px);
    letter-spacing: 0.1em;
    color: #8E8E8E;
    margin: 0 0 clamp(7.11px, 0.69vw, 10px) 0;
}

.p-voice__card-name {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0;
}

.p-voice__card-body {
    flex-grow: 1;
}

.p-voice__card-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

.p-voice__nav {
    display: none;
}

/* ==========================================================================
   Information Section (セミナー・コラム)
   ========================================================================== */
.p-info {
    width: 100%;
    background: #FFFFFF;
	padding: clamp(71.11px, 6.94vw, 100px) 0;
/*     padding: 0 0 clamp(71.11px, 6.94vw, 100px); */
}

.p-info__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

.p-info__columns {
    display: flex;
    justify-content: space-between;
    gap: clamp(42.67px, 4.17vw, 60px);
}

.p-info__col {
    width: calc((100% - clamp(42.67px, 4.17vw, 60px)) / 2);
    display: flex;
    flex-direction: column;
}

.p-info__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #000000;
    margin: 0 0 clamp(35.56px, 3.47vw, 50px) 0;
}

.p-info__list {
    list-style: none;
    margin: 0 0 clamp(28.44px, 2.78vw, 40px) 0;
    padding: 0;
}

/* PC only: Swiperスタイルを無効化して縦並び3件表示 */
@media screen and (min-width: 1024px) {
    .p-info__list {
        overflow: visible;
    }
    .p-info__list .swiper-wrapper {
        display: flex;
        flex-direction: column;
        gap: clamp(21.33px, 2.08vw, 30px);
    }
    .p-info__list .swiper-slide {
        width: auto;
        height: auto;
        flex-shrink: 1;
    }
}

.p-info__item {
    margin: 0;
}

.p-info__item-link {
    display: flex;
    align-items: flex-start;
    gap: clamp(14.22px, 1.39vw, 20px);
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

.p-info__item-link:hover {
    opacity: 0.7;
}

.p-info__item-thumb {
    width: clamp(149.33px, 14.58vw, 210px);
    height: clamp(106.67px, 10.42vw, 150px);
    flex-shrink: 0;
    border-radius: 20px;
    overflow: hidden;
    background-color: #F5F5F5;
}

.p-info__item-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.p-info__item-body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.p-info__item-date {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #000000;
    margin: 0 0 clamp(7.11px, 0.69vw, 10px) 0;
    display: block;
}

.p-info__item-name {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

/* 一覧を見るリンク */
.p-info__bottom {
    margin-top: auto;
    display: flex;
    justify-content: center;
}

.p-info__nav {
    display: none;
}

.p-info__link-wrap {
    border-bottom: 1px solid #000000;
    padding-bottom: 5px;
    display: inline-block;
}

.p-info__link {
    display: flex;
    align-items: center;
    gap: clamp(14.22px, 1.39vw, 20px);
    text-decoration: none;
    color: #000000;
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 2;
    letter-spacing: 0.07em;
    /* 7% */
    transition: opacity 0.3s ease;
}

.p-info__link:hover {
    opacity: 0.7;
}

.p-info__link-icon {
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(8.53px, 0.83vw, 12px);
}


@media screen and (max-width: 1023px) {

    /* ─── Layout ─── */
    .l-main {
        max-width: 100%;
    }

    .sp-br {
        display: inline;
    }

    .pc-br {
        display: none;
    }

    /* ─── FV (First View) ─── */
    .p-fv__inner {
        width: 100%;
        max-width: 100%;
        flex-shrink: 1;
        height: auto;
    }

    .p-fv__bg-left {
        top: -10px;
        left: -3.5%;
        width: 107.2%;
        height: auto;
    }

    .p-fv__bg-left img {
        object-fit: contain;
    }

    .p-fv__images-right {
        position: relative;
        width: 79%;
        margin-left: 10.4%;
        margin-top: clamp(80px, calc(30.83px + 13.1vw), 130px);
        z-index: 3;
    }

    .p-fv__img-powder {
        display: none;
    }

    .p-fv__img-slider {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        height: 0;
        padding-bottom: 100%;
        max-height: none;
    }

    .p-fv__img-slider .p-fv__swiper {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .p-fv__flight-anim {
        position: absolute;
        top: 46%;
        left: -9%;
        width: 560px;
        height: 200px;
        transform: scale(0.45);
        transform-origin: 0 0;
        z-index: 5;
    }

    /* SP版: 右上がりでフィニッシュ */
    .p-fv__img-airplane {
        width: 250px;
        height: 250px;
    }
}

/* ── フライトアニメ SP段階スケール ── */
@media screen and (min-width: 500px) and (max-width: 1023px) {
    .p-fv__flight-anim {
        transform: scale(0.55);
        top: 51%;
        left: -10%;
    }
}
@media screen and (min-width: 600px) and (max-width: 1023px) {
    .p-fv__flight-anim {
        transform: scale(0.65);
        top: 47%;
        left: -9%;
    }
}
@media screen and (min-width: 700px) and (max-width: 1023px) {
    .p-fv__flight-anim {
        transform: scale(0.75);
        top: 43%;
        left: -7%;
    }
}
@media screen and (min-width: 800px) and (max-width: 1023px) {
    .p-fv__flight-anim {
        transform: scale(0.85);
        top: 39%;
        left: -6%;
    }
}
@media screen and (min-width: 900px) and (max-width: 1023px) {
    .p-fv__flight-anim {
        transform: scale(0.95);
        top: 35%;
        left: -5%;
    }
}

/* ── SP版残りのスタイル (max-width: 1023px) ── */
@media screen and (max-width: 1023px) {
    .p-fv__content {
        position: relative;
        top: auto;
        left: auto;
        bottom: auto;
        width: 100%;
        padding-top: clamp(15px, calc(0.72px + 3.82vw), 30px);
    }

    .p-fv__catch {
        position: relative;
        top: auto;
        left: auto;
        padding-left: 8.8%;
        font-size: clamp(36px, calc(26.44px + 2.54vw), 46px);
        line-height: 1.5;
        margin-bottom: 8px;
    }

    .p-fv__sub {
        position: relative;
        top: auto;
        left: auto;
        padding: 0 8.8%;
        font-size: clamp(14px, calc(12.09px + 0.51vw), 16px);
        line-height: 180%;
        margin-bottom: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-fv__medals {
        display: flex;
        gap: clamp(4px, calc(0.35px + 0.97vw), 8px);
        padding-left: 8.8%;
        padding-bottom: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-fv__medal-1,
    .p-fv__medal-2 {
        position: relative;
        top: auto;
        left: auto;
        width: clamp(104px, calc(76.07px + 7.45vw), 133px);
        height: clamp(104px, calc(76.07px + 7.45vw), 133px);
    }

    /* ─── NEWS ─── */
    .p-news-area {
        margin: 40px 0;
    }
    .p-news-area__inner {
        width: 100%;
        max-width: 100%;
        flex-shrink: 1;
        height: auto;
        padding: 0 20px 0 50px;
        margin-bottom: 50px;
    }

    .p-news-area__bg-text {
        display: block;
        font-size: 38px;
        left: 0;
        top: 0;
    }

    .p-news-area__container {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        height: auto;
    }

    .p-news-area__title {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
        letter-spacing: 0.03em;
        margin-bottom: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-news-area__item {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .p-news-area__list {
        gap: 7px;
    }

    .p-news-area__date {
        font-size: clamp(12px, calc(10.09px + 0.51vw), 14px);
        min-width: auto;
        text-align: left;
    }

    .p-news-area__post-title {
        font-size: 0;
        line-height: 1;
    }

    .p-news-area__post-title .p-news-area__post-link {
        font-size: clamp(13px, calc(11.09px + 0.51vw), 15px);
        line-height: 1.8;
    }

    /* ─── Feature ─── */
    .p-feature {
        border-radius: 50vw 50vw 0 0 / clamp(30px, calc(10.92px + 5.09vw), 50px) clamp(30px, calc(10.92px + 5.09vw), 50px) 0 0;
        margin-top: -30px;
        padding: clamp(50px, calc(30.92px + 5.09vw), 70px) 0 clamp(40px, calc(20.92px + 5.09vw), 60px);
        overflow: visible;
    }

    .p-feature__inner {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }

    .p-feature__contrail {
        display: block;
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        width: 330px;
        height: 9px;
        margin: 15px auto clamp(20px, calc(10.44px + 2.54vw), 30px);
    }

    .p-feature__airplane {
        display: block;
        position: absolute;
        /* right: 15px @375 → 100px @768 */
        right: clamp(15px, calc(-66.11px + 21.63vw), 100px);
        top: -50px;
        left: auto;
        /* width/height: 100px @375 → 140px @768 */
        width: clamp(100px, calc(61.83px + 10.18vw), 140px);
        height: clamp(100px, calc(61.83px + 10.18vw), 140px);
        max-width: none;
        transform: rotate(-185deg) scale(-1, -1);
        z-index: 20;
    }

    .p-feature__title {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
        letter-spacing: 0.03em;
        margin-bottom: 0;
    }

    .p-feature__desc {
        font-size: clamp(14px, calc(13.04px + 0.25vw), 15px);
        text-align: center;
        line-height: 180%;
    }

    .p-feature__desc br {
        display: inline;
    }

    /* ─── Promise (3つの約束) ─── */
    .p-promise {
        padding: 0 0 clamp(40px, calc(20.92px + 5.09vw), 60px);
    }

    .p-promise__inner {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }

    .p-promise__head {
        margin-bottom: clamp(25px, calc(10.72px + 3.82vw), 40px);
    }

    .p-promise__subtitle {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
        letter-spacing: 0.03em;
    }

    .p-promise__title-num {
        font-size: clamp(65px, calc(36.37px + 7.63vw), 95px);
        padding-right: 0;
    }

    .p-promise__title-text {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
    }

    .p-promise__list {
        flex-direction: column;
        align-items: center;
        gap: clamp(30px, calc(15.44px + 3.82vw), 45px);
    }

    .p-promise__item {
        width: 100%;
        max-width: 100%;
        margin-bottom: 0;
    }

    .p-promise__thumb {
        margin-bottom: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-promise__thumb img {
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: 335 / 188;
        border-radius: clamp(8px, calc(4.17px + 1.02vw), 12px);
    }

    .p-promise__heading {
        font-size: clamp(18px, calc(14.17px + 1.02vw), 22px);
        letter-spacing: 0.05em;
        margin-bottom: clamp(10px, calc(5.22px + 1.27vw), 15px);
    }

    .p-promise__desc {
        font-size: clamp(14px, calc(13.04px + 0.25vw), 15px);
        line-height: 180%;
    }

    /* ─── Member (チーム体制) ─── */
    .p-member {
        padding-top: 5px;
    }

    .p-member__inner {
        padding: 20px;
    }

    .p-member__sub-text {
        font-size: 18px;
        margin-bottom: clamp(10px, calc(5.22px + 1.27vw), 15px);
    }

    .p-member__subtitle-box {
        height: auto;
        padding: clamp(10px, calc(5.22px + 1.27vw), 15px) clamp(15px, calc(5.44px + 2.54vw), 25px);
        margin-bottom: clamp(20px, calc(10.44px + 2.54vw), 30px);
    }

    .p-member__title {
        font-size: 22px;
    }

    .p-member__desc {
        font-size: clamp(14px, calc(13.04px + 0.25vw), 15px);
        line-height: 180%;
        margin-bottom: clamp(25px, calc(10.72px + 3.82vw), 40px);
    }

    .p-member__desc br {
        display: inline;
    }

    /* 2×2 グリッド */
    .p-member__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: clamp(10px, calc(5.22px + 1.27vw), 15px);
        flex-direction: unset;
        align-items: unset;
        margin-bottom: clamp(30px, calc(10.92px + 5.09vw), 50px);
    }

    .p-member__card {
        width: 100%;
        height: 100%;
    }

    .p-member__card-img {
        width: 100%;
        height: auto;
        aspect-ratio: 160 / 190;
        border-top-left-radius: clamp(25px, calc(10.72px + 3.82vw), 40px);
        border-top-right-radius: clamp(25px, calc(10.72px + 3.82vw), 40px);
    }

    .p-member__card-body {
        width: 100%;
        height: auto;
        padding: 10px 0;
        border-bottom-right-radius: clamp(25px, calc(10.72px + 3.82vw), 40px);
        border-bottom-left-radius: clamp(25px, calc(10.72px + 3.82vw), 40px);
    }

    .p-member__card-role {
        font-size: 13px;
        margin-bottom: 4px;
        text-align: center;
    }

    .p-member__card-name {
        font-size: 18px;
    }

    .p-member__bottom-deco {
        height: clamp(60px, 15vw, 100px);
        margin-top: calc(clamp(-60px, -8vw, -30px) - 4px);
    }

    /* ─── Intro (各国の不動産投資) ─── */
    .p-intro {
        padding: clamp(40px, calc(20.92px + 5.09vw), 60px) 0;
    }

    .p-intro__title {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
        letter-spacing: 0.03em;
        margin-bottom: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-intro__desc {
        font-size: 16px;
        text-align: center;
        line-height: 180%;
        margin-bottom: clamp(25px, calc(10.72px + 3.82vw), 40px);
    }

    .p-intro__desc br {
        display: inline;
    }

    .p-intro__list {
        flex-direction: column;
        align-items: stretch;
        gap: clamp(30px, calc(10.92px + 5.09vw), 50px);
    }

    .p-intro__card {
        width: 100%;
        margin-bottom: 0;
    }

    .p-intro__card-title {
        font-size: 24px;
        letter-spacing: 0.05em;
        margin-bottom: clamp(10px, calc(5.22px + 1.27vw), 15px);
    }

    .p-intro__card-thumb {
        margin-bottom: clamp(10px, calc(5.22px + 1.27vw), 15px);
    }

    .p-intro__card-thumb img {
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: 335 / 188;
        border-radius: clamp(12px, calc(4.35px + 2.04vw), 20px);
    }

    .p-intro__card-text {
        font-size: clamp(14px, calc(13.04px + 0.25vw), 15px);
        line-height: 180%;
        margin-bottom: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-intro__card-link-wrap {
        justify-content: right;
    }

    .p-intro__card-link-text {
        font-size: 16px;
    }

    /* ─── Fixed CTA (LINE) ─── */
    .c-fixed-cta {
        width: clamp(145px, calc(92.5px + 14vw), 200px);
        height: clamp(145px, calc(92.5px + 14vw), 200px);
        bottom: clamp(15px, calc(0.71px + 3.82vw), 30px);
        right: clamp(10px, calc(0.44px + 2.54vw), 20px);
    }

    .c-fixed-cta__catch {
        font-size: clamp(8px, calc(3.22px + 1.27vw), 13px);
        letter-spacing: 0.03em;
        margin-bottom: 3px;
    }

    .c-fixed-cta__catch-text {
        font-size: clamp(8px, calc(5.35px + 0.71vw), 10.79px);
    }

    .c-fixed-cta__title {
        font-family: 'Hiragino Kaku Gothic Pro', 'Noto Sans JP', sans-serif;
        gap: 4px;
        margin-bottom: 8px;
    }

    .c-fixed-cta__title-text {
        font-size: clamp(15px, calc(8.72px + 1.68vw), 21.58px);
        font-weight: 600;
        line-height: 22px;
    }

    .c-fixed-cta__icon {
        width: clamp(20px, calc(2.82px + 4.58vw), 38px);
        height: clamp(20px, calc(2.82px + 4.58vw), 38px);
        font-size: clamp(14px, calc(4.44px + 2.54vw), 24px);
    }

    .c-fixed-cta__btn {
        width: clamp(93px, calc(51.93px + 10.94vw), 136px);
        height: clamp(17px, calc(9.35px + 2.04vw), 25px);
        font-size: clamp(9px, calc(6.13px + 0.76vw), 12px);
        gap: 0;
    }

    /* ─── Pickup (おすすめの物件) ─── */
    .p-pickup {
        padding: 60px 0;
    }

    .p-pickup__inner {
        width: 100%;
        gap: clamp(15px, calc(5.44px + 2.54vw), 25px);
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
        padding-top: 0;
    }

    .p-pickup__swiper {
        overflow: visible;
    }

    .p-pickup__slider-wrap {
        overflow: visible;
        margin-right: calc(-1 * clamp(20px, calc(5.71px + 3.82vw), 35px));
    }

    .p-pickup__right {
        flex: 1;
        min-width: 0;
        width: auto;
    }

    .p-pickup__left {
        width: clamp(36px, calc(24.55px + 3.05vw), 48px);
        margin-left: -20px;
    }

    .p-pickup__vertical-text {
        font-size: clamp(36px, calc(24.55px + 3.05vw), 48px);
    }

    .p-pickup__title {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
        letter-spacing: 0.03em;
        margin-bottom: clamp(20px, calc(10.44px + 2.54vw), 30px);
    }

    .p-pickup__card {
        width: clamp(190px, 59.73vw, 400px); /* 375px時にW224px */
    }

    .p-pickup__card-img {
        width: 100%;
        height: auto;
        aspect-ratio: 224 / 126;
        border-radius: clamp(12px, calc(4.35px + 2.04vw), 20px);
    }

    .p-pickup__country {
        font-size: clamp(14px, calc(11.97px + 0.55vw), 16px);
    }

    .p-pickup__name {
        font-size: clamp(16px, calc(13.47px + 0.67vw), 18px);
    }

    .p-pickup__bottom {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-end;
        gap: clamp(40px, calc(28.42px + 3.09vw), 60px);
        margin-top: clamp(25px, calc(10.72px + 3.82vw), 40px);
    }

    .p-pickup__prev,
    .p-pickup__next {
        width: clamp(92px, 24.53vw, 110px);
        height: clamp(37px, 9.87vw, 44px);
    }

    .p-pickup__prev i,
    .p-pickup__next i {
        font-size: clamp(16px, 4.27vw, 20px);
    }

    .p-pickup__link {
        font-size: 16px;
    }

    .p-pickup__bottom-deco {
        margin-top: clamp(30px, calc(10.92px + 5.09vw), 50px);
    }

    /* ─── Voice (オーナー様の声) ─── */
    .p-voice {
        padding: clamp(40px, calc(20.92px + 5.09vw), 60px) 0;
    }

    .p-voice__inner {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }

    .p-voice__title {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
        letter-spacing: 0.03em;
        margin-bottom: clamp(25px, calc(10.72px + 3.82vw), 40px);
        text-align: left;
    }

    .p-voice__list {
        overflow: visible;
        padding-bottom: 0;
    }

    .p-voice__list .swiper-wrapper {
        justify-content: flex-start;
        gap: 0;
        flex-wrap: nowrap;
    }

    .p-voice__card {
        width: clamp(238px, 74.66vw, 400px);
        min-height: clamp(418px, 130.66vw, 700px);
        padding: clamp(15px, calc(5.44px + 2.54vw), 25px);
        border-radius: clamp(12px, calc(4.35px + 2.04vw), 20px);
    }

    .p-voice__nav {
        display: flex;
        justify-content: flex-end;
        margin-top: clamp(40px, calc(28.42px + 3.09vw), 60px);
    }

    .p-voice__card-head {
        flex-direction: column;
        align-items: flex-start;
        gap: clamp(10px, calc(5.22px + 1.27vw), 15px);
        margin-bottom: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-voice__card-thumb img {
        width: clamp(213px, 66.67vw, 350px);
        max-width: 100%;
        height: auto;
        aspect-ratio: 250 / 141;
    }

    .p-voice__card-date {
        font-size: clamp(14px, calc(10.17px + 1.02vw), 18px);
    }

    .p-voice__card-name {
        font-size: clamp(18px, calc(12.27px + 1.53vw), 24px);
    }

    .p-voice__card-text {
        font-size: clamp(14px, calc(13.04px + 0.25vw), 15px);
        line-height: 180%;
    }

    /* ─── Info (セミナー・コラム) ─── */
    .p-info {
        padding: clamp(40px, calc(20.92px + 5.09vw), 60px) 0;
    }

    .p-info__inner {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }

    .p-info__columns {
        flex-direction: column;
        gap: clamp(30px, calc(15.44px + 3.82vw), 45px);
    }

    .p-info__col {
        width: 100%;
    }

    .p-info__title {
        font-size: clamp(22px, calc(16.27px + 1.53vw), 28px);
        letter-spacing: 0.03em;
        margin-bottom: clamp(25px, calc(10.72px + 3.82vw), 40px);
        text-align: left;
    }

    .p-info__list {
        overflow: visible;
    }

    .p-info__bottom {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: clamp(40px, calc(28.42px + 3.09vw), 60px);
        margin-top: clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .p-info__nav {
        display: flex;
    }

    .p-info__link {
        gap: 10px;
    }

    .p-info__link-icon {
        width: 44px;
        height: 22px;
    }

    .p-info__item-link {
        flex-direction: column;
        gap: clamp(8px, calc(4.17px + 1.02vw), 12px);
    }

    .p-info__item-thumb {
        width: clamp(179px, 56vw, 400px);
        max-width: 100%;
        height: auto;
        aspect-ratio: 210 / 118;
        flex-shrink: 0;
    }

    .p-info__item-date {
        font-size: clamp(12px, calc(10.09px + 0.51vw), 14px);
        margin-bottom: 5px;
    }

    .p-info__item-name {
        font-size: clamp(13px, calc(11.09px + 0.51vw), 15px);
    }

    .p-info__link {
        font-size: clamp(14px, calc(12.09px + 0.51vw), 16px);
    }

    /* ─── CTA Section ─── */
    .p-cta {
        height: auto;
        min-height: auto;
        padding: clamp(40px, calc(20.92px + 5.09vw), 60px) 0;
    }

    .p-cta__container {
        height: auto;
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }

    .p-cta__heading {
        font-size: clamp(24px, calc(17.07px + 1.85vw), 36px);
        margin-bottom: clamp(20px, calc(10.44px + 2.54vw), 30px);
        -webkit-text-stroke: 2px #FFFFFF;
    }

    .p-cta__heading br {
        display: none;
    }

    .p-cta__cards {
        flex-direction: column;
        gap: clamp(25px, calc(11px + 4vw), 40px);
        padding: clamp(25px, calc(15px + 2vw), 35px) clamp(10px, calc(4.22px + 1.54vw), 20px);
        border-radius: clamp(12px, calc(4px + 2vw), 20px);
        min-height: auto;
    }

    .p-cta__card {
        align-items: stretch;
        gap: clamp(15px, calc(5.44px + 2.54vw), 25px);
        margin-right: 0 !important;
    }

    .p-cta__card:not(:last-child)::after {
        display: none;
    }

    .p-cta__card-title {
        font-size: clamp(18px, calc(10.26px + 1.53vw), 24px);
        margin-bottom: 8px;
    }

    .p-cta__card-text {
        font-size: clamp(14px, calc(7.18px + 1.02vw), 18px);
    }

    .p-cta__btn {
        display: flex;
        justify-content: space-between;
        width: clamp(315px, calc(219.51px + 25.46vw), 480px);
        max-width: 100%;
        height: clamp(51px, 16vw, 68px);
        padding: 0 20px;
    }

    .p-cta__btn-label {
        font-size: 13px;
    }

    .p-cta__btn-label br {
        display: none;
    }

    .p-cta__btn-arrow {
        width: clamp(45px, calc(33.54px + 3.05vw), 57px);
        height: clamp(18px, calc(13.22px + 1.27vw), 23px);
    }

    /* ─── Footer ─── */
    .c-footer__inner {
        padding: clamp(30px, calc(15.44px + 3.82vw), 45px) clamp(20px, calc(5.71px + 3.82vw), 35px) clamp(15px, calc(5.44px + 2.54vw), 25px);
    }

    .c-footer__title {
        font-size: clamp(18px, calc(12.27px + 1.53vw), 24px);
        margin-bottom: clamp(20px, calc(10.44px + 2.54vw), 30px);
    }

    .c-footer__group-logos {
        align-items: center;
        justify-content: center;
        gap: clamp(8px, calc(3.22px + 1.27vw), 13px);
        margin-bottom: clamp(25px, calc(10.72px + 3.82vw), 40px);
        flex-wrap: wrap;
    }

    .c-footer__group-logo-link img {
        width: clamp(90px, calc(42.28px + 12.72vw), 140px);
        height: auto;
    }

    .c-footer__group-logo-link:nth-child(2) img {
        width: clamp(70px, calc(33px + 9.9vw), 109px);
    }

    .c-footer__content {
        flex-direction: column;
        align-items: flex-start;
        gap: clamp(25px, calc(10.72px + 3.82vw), 40px);
        margin-bottom: clamp(25px, calc(10.72px + 3.82vw), 40px);
    }

    .c-footer__nav {
        width: 100%;
        flex: unset;
    }

    .c-footer__menu {
        display: flex;
        flex-direction: column;
    }

    .c-footer__menu-item > a,
    .c-footer__menu-label {
        font-size: clamp(14px, calc(12.09px + 0.51vw), 16px);
    }

    .c-footer__submenu {
        display: flex;
        flex-direction: column;
        padding-left: 0;
    }

    .c-footer__submenu li a {
        font-size: clamp(11px, calc(10.04px + 0.25vw), 12px);
    }

    .c-footer__right {
        align-items: flex-start;
        gap: 5px;
    }

    .c-footer__sns {
        order: unset;
        gap: 10px;
    }

    .c-footer__privacy {
        order: unset;
        margin-top: 0;
    }

    .c-footer__logo img {
        width: clamp(80px, calc(51.37px + 7.63vw), 110px);
        height: clamp(80px, calc(51.37px + 7.63vw), 110px);
    }

    .c-footer__company {
        font-size: clamp(13px, calc(10.13px + 0.76vw), 16px);
    }

    .c-footer__privacy {
        font-size: clamp(13px, calc(10.13px + 0.76vw), 16px);
    }

    .c-footer__copyright p {
        font-size: clamp(10px, calc(8.09px + 0.51vw), 12px);
    }

}

/* 768px以上〜1023px: bottom-deco位置調整 */
@media screen and (min-width: 768px) and (max-width: 1023px) {
    .p-member__bottom-deco {
        margin-top: calc(clamp(-60px, -8vw, -30px) + 0px);
    }
}

/* ==========================================================================
   Components: Breadcrumb
   ========================================================================== */
.c-breadcrumb {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: clamp(14.22px, 1.39vw, 20px) 0;
}

.c-breadcrumb .l-inner {
    display: flex;
    align-items: center;
    gap: clamp(10.67px, 1.04vw, 15px);
    flex-wrap: wrap;
    padding-left: clamp(42.67px, 4.17vw, 60px);
}

.c-breadcrumb a {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 2;
    color: #000000;
    text-decoration: none;
    transition: opacity 0.3s;
}

.c-breadcrumb a:hover {
    opacity: 0.7;
}

.c-breadcrumb__sep {
    font-size: clamp(7.82px, 0.76vw, 11px);
    color: #000000;
}

.c-breadcrumb__current {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 2;
    color: #042275;
}

/* ==========================================================================
   Cambodia Page: Header
   ========================================================================== */
.p-page-header-cambodia {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: clamp(283.73px, 27.71vw, 399px);
    margin: 0 auto;
    display: flex;
    align-items: center;
}

.p-page-header-cambodia__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.p-page-header-cambodia__bg::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, #EDF0F9 0%, rgba(237, 240, 249, 0.586538) 48.08%, rgba(237, 240, 249, 0) 100%);
    pointer-events: none;
}

.p-page-header-cambodia__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-page-header-cambodia__inner {
    position: relative;
    z-index: 2;
    padding: clamp(42.67px, 4.17vw, 60px) clamp(42.67px, 4.17vw, 60px) 0;
}

.p-page-header-cambodia__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(28.44px, 2.78vw, 40px);
    line-height: 1;
    color: #000000;
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
}

.p-page-header-cambodia__desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(12.8px, 1.25vw, 18px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

.p-page-header-cambodia__desc-sp {
    display: none;
}

/* ==========================================================================
   Cambodia Page: Shared Section Titles
   ========================================================================== */
.p-section-title {
    text-align: center;
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
}

.p-section-title__sub {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    line-height: 1;
    letter-spacing: 0.1em;
    color: #000000;
}

.p-section-title__main {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(28.44px, 2.78vw, 40px);
    letter-spacing: 0.1em;
    display: inline-block;
}

.p-section-title__main--blue {
    color: #0230B1;
}

.p-section-title__main--gradient {
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    /* Fallback for browsers that don't support text-fill-color strictly */
}


/* ==========================================================================
   Cambodia Page: Charm Section
   ========================================================================== */
.p-charm {
    width: 100%;
    padding: clamp(21.33px, 2.08vw, 30px) 0 clamp(71.11px, 6.94vw, 100px);
    overflow: hidden;
}

@media screen and (min-width: 1441px) {
    .p-charm {
        overflow: visible;
    }
}

.p-charm__list {
    display: flex;
    flex-direction: column;
    gap: clamp(64px, 6.25vw, 90px);
    width: 100%;
}

.p-charm__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: clamp(60.44px, 5.9vw, 85px);
}

.p-charm__item-text {
    position: relative;
    flex: 1;
}

.p-charm__item--img-left .p-charm__item-text {
    padding-right: clamp(56.89px, 5.56vw, 80px);
    margin-left: clamp(42.67px, 4.17vw, 60px);
}

.p-charm__item--img-right .p-charm__item-text {
    padding-left: clamp(56.89px, 5.56vw, 80px);
    margin-right: clamp(42.67px, 4.17vw, 60px);
}

.p-charm__item-bg {
    position: absolute;
    top: clamp(39.11px, 3.82vw, 55px);
    left: clamp(113.78px, 11.11vw, 160px);
    width: clamp(292.27px, 28.54vw, 411px);
    height: clamp(241.07px, 23.54vw, 339px);
    z-index: -1;
    pointer-events: none;
}

.p-charm__item-bg img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-charm__item-bg--dubai {
    position: absolute;
    top: clamp(-70px, -4.86vw, -49.78px);
    left: clamp(113.78px, 11.11vw, 160px);
    width: clamp(292.27px, 28.54vw, 411px);
    height: clamp(241.07px, 23.54vw, 339px);
    z-index: -1;
    pointer-events: none;
}

.p-charm__item-bg--dubai img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-charm__item-bg--philippines {
    position: absolute;
    top: clamp(-40px, -2.78vw, -28.47px);
    left: clamp(113.78px, 11.11vw, 160px);
    width: clamp(292.27px, 28.54vw, 411px);
    height: clamp(241.07px, 23.54vw, 339px);
    z-index: -1;
    pointer-events: none;
}

.p-charm__item-bg--philippines img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-charm__item-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17px, 1.7vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    line-height: 1.5;
    margin-bottom: clamp(7px, 0.7vw, 10px);
}

.p-charm__item-line {
    width: clamp(419.72px, 40.97vw, 590px);
    max-width: 100%;
    height: clamp(11px, 1.04vw, 15px);
    margin-bottom: clamp(7px, 0.7vw, 10px);
    background-image: url("../img/waveline.webp");
    background-repeat: no-repeat;
    background-size: 100% auto;
    border: none;
}

.p-charm__item-desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

.p-charm__item-img {
    width: clamp(430.22px, 42.01vw, 605px);
    height: clamp(234.67px, 22.92vw, 330px);
    flex-shrink: 0;
}

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

.p-charm__item--img-left .p-charm__item-img img {
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;
}

.p-charm__item--img-right .p-charm__item-img img {
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
}

/* ==========================================================================
   Cambodia Page: Reason Section
   ========================================================================== */
.p-reason {
    width: 100%;
    padding: clamp(28.44px, 2.78vw, 40px) 0 clamp(71.11px, 6.94vw, 100px);
    background: #FFFFFF;
    /* デザインにより変更可 */
}

.p-reason__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

.p-reason__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(17.07px, 1.67vw, 24px);
}

.p-reason__card {
    display: flex;
    flex-direction: column;
}

.p-reason__card-thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 405 / 180;
    border-radius: clamp(14.22px, 1.39vw, 20px);
    overflow: hidden;
    margin-bottom: clamp(17.78px, 1.74vw, 25px);
}

.p-reason__card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-reason__card-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(10.67px, 1.04vw, 15px) 0;
}

.p-reason__card-desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

/* ==========================================================================
   Cambodia Page: Intro Section
   ========================================================================== */
.p-cambodia-intro {
    background: #EDF0F9;
    position: relative;
}

.p-cambodia-intro__inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: space-between;
    gap: clamp(56.89px, 5.56vw, 80px);
    position: relative;
    z-index: 2;
    padding: 0 clamp(28.44px, 2.78vw, 40px);
    width: 100%;
}

.p-cambodia-intro__images {
    position: relative;
    width: clamp(376.89px, 36.81vw, 530px);
    height: clamp(398.22px, 38.89vw, 560px);
    flex-shrink: 0;
}

.p-cambodia-intro__img {
    position: absolute;
    overflow: hidden;
}

.p-cambodia-intro__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 画像③：左上 */
.p-cambodia-intro__img--03 {
    width: clamp(182.76px, 17.85vw, 257px);
    height: clamp(160px, 15.63vw, 225px);
    border-bottom-left-radius: 60px;
    top: 0;
    left: 0;
    z-index: 1;
}

.p-cambodia-intro__img--03 img {
    filter: blur(2px);
    transform: scale(1.1);
}

/* 画像②：左下 */
.p-cambodia-intro__img--02 {
    width: clamp(182.04px, 17.78vw, 256px);
    height: clamp(161.42px, 15.76vw, 227px);
    border-top-left-radius: 60px;
    border-top-right-radius: 60px;
    bottom: 0;
    left: clamp(56.89px, 5.56vw, 80px);
    z-index: 2;
}

.p-cambodia-intro__img--02 img {
    filter: blur(3px);
    transform: scale(1.1);
}

/* 画像①：右側・手前メイン */
.p-cambodia-intro__img--01 {
    width: clamp(215.47px, 21.04vw, 303px);
    height: clamp(307.2px, 30vw, 432px);
    border-radius: clamp(42.67px, 4.17vw, 60px);
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    z-index: 3;
}

/* 右サイド：テキストエリア */
.p-cambodia-intro__content {
    flex: 1;
    margin-right: clamp(71.11px, 6.94vw, 100px);
}

.p-cambodia-intro__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    color: #000000;
    line-height: 1.5;
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
}

.p-cambodia-intro__text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

/* 最上部グラデーション */
.p-cambodia-intro__top-grad {
    width: 100%;
    max-width: 100%;
    height: clamp(73.96px, 7.22vw, 104px);
    background: linear-gradient(0deg, rgba(237, 240, 249, 0) 0%, #FFFFFF 100%);
    position: absolute;
    top: -2px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
}

/* 最下部グラデーション */
.p-cambodia-intro__bottom-grad {
    width: 100%;
    max-width: 100%;
    height: clamp(73.96px, 7.22vw, 104px);
    background: linear-gradient(180deg, rgba(237, 240, 249, 0) 0%, #EDF0F9 100%);
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
}

/* ==========================================================================
   Area Slider Section (Cambodia Page)
   ========================================================================== */
.p-cambodia-area {
    padding: clamp(28.44px, 2.78vw, 40px) 0 clamp(71.11px, 6.94vw, 100px);
    background: #EDF0F9;
}

.p-cambodia-area__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.p-cambodia-area__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
    text-align: left;
}

/* Slider Wraps */
.p-cambodia-area__slider-wrap {
    position: relative;
    width: 100%;
}

.p-cambodia-area__swiper {
    padding-bottom: clamp(7.11px, 0.69vw, 10px);
}

.p-cambodia-area__card {
    width: clamp(291.56px, 28.47vw, 410px);
    background: transparent;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.p-cambodia-area__card:hover {
    transform: translateY(-5px);
}

.p-cambodia-area__card-img {
    width: clamp(291.56px, 28.47vw, 410px);
    max-width: 100%;
    height: clamp(164.98px, 16.11vw, 232px);
    border-radius: clamp(14.22px, 1.39vw, 20px);
    overflow: hidden;
    margin-bottom: clamp(8.53px, 0.83vw, 12px);
}

.p-cambodia-area__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-cambodia-area__card-body {
    padding: 0;
}

.p-cambodia-area__card-catchphrase {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #333;
    margin-bottom: 4px;
}

.p-cambodia-area__card-name {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(12.8px, 1.25vw, 18px);
    color: #000;
}

/* Cambodia Area ナビゲーション */
.p-cambodia-area__nav {
    display: flex;
    gap: clamp(10.67px, 1.04vw, 15px);
    margin-top: clamp(10.67px, 1.04vw, 15px);
}

.p-cambodia-area__prev,
.p-cambodia-area__next {
    width: clamp(64.71px, 6.32vw, 91px);
    height: clamp(26.31px, 2.57vw, 37px);
    border-radius: clamp(113.78px, 11.11vw, 160px);
    background: #042275;
    color: #FFFFFF;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(11.38px, 1.11vw, 16px);
    transition: opacity 0.3s ease, background 0.3s ease;
    padding: 0;
}

.p-cambodia-area__prev:hover,
.p-cambodia-area__next:hover {
    opacity: 0.7;
}

/* Removed is-disabled styles */

/* ==========================================================================
   Area Map Section (Cambodia Page)
   ========================================================================== */
.p-cambodia-map {
    padding: 0 0 clamp(71.11px, 6.94vw, 100px);
    background: #EDF0F9; 
}

.p-cambodia-map__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-cambodia-map__container {
    width: clamp(533.33px, 52.08vw, 750px);
    max-width: 100%;
    height: clamp(327.11px, 31.94vw, 460px);
    background: #e0e0e0;
    overflow: hidden;
    position: relative;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.p-cambodia-map__container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    border: none;
}
/* ==========================================================================
   Cambodia Custom CTA
   ========================================================================== */
.p-cambodia-cta {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: clamp(337.78px, 32.99vw, 475px);
    margin: clamp(42.67px, 4.17vw, 60px) auto 0;
    background-image: url('../img/cambodia_CTA.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
}

.p-cambodia-cta::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(237, 240, 249, 0.75);
}

.p-cambodia-cta__card {
    position: relative;
    z-index: 10;
    width: clamp(672.66px, 65.69vw, 946px);
    max-width: calc(100% - clamp(28.44px, 2.78vw, 40px));
    height: clamp(266.67px, 26.04vw, 375px);
    padding: clamp(21.33px, 2.08vw, 30px) clamp(56.89px, 5.56vw, 80px);
    border-radius: clamp(14.22px, 1.39vw, 20px);
    background: #FFFFFF;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.p-cambodia-cta__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 800;
    font-size: clamp(23.46px, 2.29vw, 33px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #003D8B;
    margin: 0 0 clamp(10.67px, 1.04vw, 15px) 0;
    line-height: 1.4;
}

.p-cambodia-cta__text {
    font-family: 'Noto Sans CJK JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    text-align: center;
    color: #000000;
    margin: 0 0 clamp(21.33px, 2.08vw, 30px) 0;
}

.p-cambodia-cta__btns {
    display: flex;
    gap: clamp(21.33px, 2.08vw, 30px);
    align-items: flex-end;
}

.p-cambodia-cta__btn-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(7.11px, 0.69vw, 10px);
}

.p-cambodia-cta__btn-label {
    font-family: 'Noto Sans CJK JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    text-align: center;
    color: #000000;
}

.p-cambodia-cta__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(11.38px, 1.11vw, 16px);
    width: clamp(248.89px, 24.31vw, 350px);
    height: clamp(54.04px, 5.28vw, 76px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    text-decoration: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    padding: 0 clamp(21.33px, 2.08vw, 30px);
    border: 2px solid #FFFFFF;
    box-shadow: 2px 2px 4px 0px #00000040;
}

.p-cambodia-cta__btn:hover {
    opacity: 0.85;
    transform: translateY(-2px);
}

.p-cambodia-cta__btn-text {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(9.96px, 0.97vw, 13px);
    line-height: 2;
    letter-spacing: 0.07em;
    text-align: left;
    color: #FFFFFF;
}

.p-cambodia-cta__btn-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #FFFFFF;
    padding: 0;
    flex-shrink: 0;
}

.p-cambodia-cta__btn-arrow svg {
    width: clamp(14.22px, 1.39vw, 20px);
    height: clamp(7.11px, 0.69vw, 10px);
}

/* Blue Button */
.p-cambodia-cta__btn--blue {
    background: #042275;
}
.p-cambodia-cta__btn--blue .p-cambodia-cta__btn-arrow svg line,
.p-cambodia-cta__btn--blue .p-cambodia-cta__btn-arrow svg polyline {
    stroke: #042275;
}

/* Red Button */
.p-cambodia-cta__btn--red {
    background: #750A04;
}
.p-cambodia-cta__btn--red .p-cambodia-cta__btn-arrow svg line,
.p-cambodia-cta__btn--red .p-cambodia-cta__btn-arrow svg polyline {
    stroke: #750A04;
}

/* Responsive CTA */
@media screen and (max-width: 1023px) {
    .p-cambodia-cta {
        height: auto;
        padding: 30px 20px;
    }
    .p-cambodia-cta__card {
        width: 385px;
        max-width: 100%;
        height: 470px;
        padding: 30px 20px;
        box-sizing: border-box;
    }
    .p-cambodia-cta__title {
        font-size: 18px;
        margin-bottom: 10px;
    }
    .p-cambodia-cta__text {
        font-size: 14px;
        margin-bottom: 20px;
    }
    .p-cambodia-cta__btn-label {
        font-size: 14px;
    }
    .p-cambodia-cta__btns {
        flex-direction: column;
        gap: 10px;
    }
    .p-cambodia-cta__btn-wrap {
        gap: 6px;
    }
    .p-cambodia-cta__btn {
        width: 250px;
        height: 65px;
        padding: 0 20px;
    }
    .p-cambodia-cta__btn-text {
        font-size: 14px;
        text-align: center;
    }
    .p-cambodia-cta__btn-arrow{
        width: 42px;
        height: 19px;
    }
    .p-cambodia-cta__btn-arrow svg {
    width: 17px;
    height: 8px;
}
}

/* ---------- Cambodia Page SP (Hero / Breadcrumb / Desc) ---------- */
@media screen and (max-width: 1023px) {
    .p-page-header-cambodia {
        height: 219px;
    }
    .p-page-header-cambodia__inner {
        padding-left: clamp(20px, calc(5.71px + 3.82vw), 35px);
        padding-right: clamp(20px, calc(5.71px + 3.82vw), 35px);
        padding-top: clamp(40px, calc(26.11px + 3.70vw), 64px);
    }
    .p-page-header-cambodia__title {
        font-size: 24px;
        margin-bottom: 0;
    }
    .p-page-header-cambodia__desc {
        display: none;
    }
    .c-breadcrumb .l-inner {
        padding-left: clamp(20px, calc(5.71px + 3.82vw), 35px);
        padding-right: clamp(20px, calc(5.71px + 3.82vw), 35px);
        justify-content: flex-start;
    }
    .c-breadcrumb a,
    .c-breadcrumb__current,
    .c-breadcrumb__sep {
        font-size: 12px;
    }
    .p-page-header-cambodia__desc-sp {
        display: block;
        padding: 20px clamp(20px, calc(5.71px + 3.82vw), 35px);
    }
    .p-page-header-cambodia__desc-sp p {
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        font-size: 14px;
        line-height: 1.8;
        color: #000000;
        margin: 0;
    }

    /* ─── Charm Section SP ─── */
    .p-section-title {
        margin-bottom: clamp(14px, 5.33vw, 30px);
    }
    .p-section-title__sub {
        font-size: clamp(18px, 5.86vw, 36px);
        line-height: 1;
    }
    .p-section-title__main {
        font-size: clamp(20px, 6.93vw, 40px);
        margin-top: 0;
        line-height: 1.4;
    }
    .p-charm {
        padding: clamp(20px, calc(8.41px + 3.09vw), 40px) 0 clamp(20px, calc(8.41px + 3.09vw), 40px);
    }
    .p-charm__list {
        gap: clamp(50px, calc(16.59px + 8.91vw), 108px);
    }
    .p-charm__item {
        flex-direction: column;
        gap: 0;
    }
    .p-charm__item-text {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
        order: 2;
    }
    .p-charm__item--img-left .p-charm__item-text,
    .p-charm__item--img-right .p-charm__item-text {
        padding-left: clamp(20px, calc(5.71px + 3.82vw), 35px);
        padding-right: clamp(20px, calc(5.71px + 3.82vw), 35px);
        margin-left: 0;
        margin-right: 0;
    }
    .p-charm__item-bg {
        top: 45px;
        left: clamp(42px, calc(-130.04px + 45.88vw), 270px);
        right: auto;
        width: clamp(263px, calc(255.5px + 2vw), 290px);
        height: clamp(229px, calc(222.6px + 1.7vw), 250px);
    }
    .p-charm__item-bg--dubai {
        top: 0;
        left: clamp(42px, calc(-130.04px + 45.88vw), 270px);
        right: auto;
        width: clamp(236px, calc(228.5px + 2vw), 260px);
        height: clamp(206px, calc(200px + 1.7vw), 225px);
    }
    .p-charm__item-bg--philippines {
        top: 0;
        left: clamp(42px, calc(-130.04px + 45.88vw), 270px);
        right: auto;
        width: clamp(263px, calc(255.5px + 2vw), 290px);
        height: clamp(229px, calc(222.6px + 1.7vw), 250px);
    }
    .p-charm__item-title {
        font-size: 18px;
        text-align: left;
    }
    .p-charm__item-line {
        width: 315px;
        margin-bottom: 15px;
    }
    .p-charm__item-desc {
        font-size: 14px;
    }
    .p-charm__item-img {
        width: calc(100% - clamp(20px, calc(5.71px + 3.82vw), 35px) * 2);
        height: auto;
        aspect-ratio: 335 / 145;
        max-width: 100%;
        order: 1;
        margin-bottom: 20px;
        margin-left: auto;
        margin-right: auto;
    }
    .p-charm__item-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .p-charm__item--img-right .p-charm__item-img {
        padding-left: 0;
        padding-right: 0;
        margin-left: auto;
        margin-right: calc(-1 * clamp(20px, calc(5.71px + 3.82vw), 35px));
    }
    .p-charm__item--img-right .p-charm__item-img img {
        border-top-left-radius: 20px;
        border-bottom-left-radius: 20px;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .p-charm__item--img-left .p-charm__item-img {
        padding-right: 0;
        padding-left: 0;
        margin-right: auto;
        margin-left: calc(-1 * clamp(20px, calc(5.71px + 3.82vw), 35px));
    }
    .p-charm__item--img-left .p-charm__item-img img {
        border-top-right-radius: 20px;
        border-bottom-right-radius: 20px;
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }

    /* ─── Reason Section SP ─── */
    .p-reason {
        padding: clamp(10px, calc(4.21px + 1.54vw), 20px) 0 clamp(40px, calc(28.41px + 3.09vw), 60px);
    }
    .p-reason__inner {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }
    .p-reason__list {
        display: flex;
        flex-direction: column;
        gap: clamp(40px, calc(28.41px + 3.09vw), 60px);
    }
    .p-reason__card {
        width: 100%;
        max-width: 100%;
        align-items: center;
    }
    .p-reason__card-thumb {
        width: 100%;
        height: auto;
        aspect-ratio: 335 / 211;
        border-radius: 20px;
        margin-bottom: clamp(15px, calc(12.11px + 0.77vw), 20px);
    }
    .p-reason__card-body {
        width: 100%;
        text-align: left;
    }
    .p-reason__card-title {
        font-size: clamp(18px, calc(15.69px + 0.62vw), 22px);
    }
    .p-reason__card-desc {
        font-size: clamp(16px, calc(14.84px + 0.31vw), 18px);
    }

    /* ─── Intro Section SP ─── */
    .p-cambodia-intro__inner {
        flex-direction: column !important;
        padding: 0 !important;
    }
    .p-cambodia-intro__images {
        position: relative;
        width: 100%;
        height: clamp(360px, calc(192.2px + 44.75vw), 650px);
        margin-bottom: clamp(30px, calc(12.87px + 4.57vw), 54px);
        z-index: 1;
    }
    .p-cambodia-intro__img--01 {
        width: clamp(207px, calc(110.4px + 25.77vw), 374px);
        height: clamp(296px, calc(157.7px + 36.88vw), 535px);
        top: clamp(133px, calc(71.1px + 16.51vw), 240px);
        left: calc(50% + clamp(-75.7px, calc(-22.34px - 5.22vw), -41.9px));
        transform: none;
        right: auto;
        border-radius: clamp(60px, calc(25.74px + 9.14vw), 108px);
    }
    .p-cambodia-intro__img--02 {
        width: clamp(175px, calc(93.4px + 21.76vw), 316px);
        height: clamp(155px, calc(82.7px + 19.29vw), 280px);
        top: clamp(323px, calc(171.95px + 40.28vw), 584px);
        left: calc(50% + clamp(-226.7px, calc(-66.96px - 15.61vw), -125.5px));
        bottom: auto;
        border-top-left-radius: clamp(60px, calc(25.74px + 9.14vw), 108px);
        border-top-right-radius: clamp(60px, calc(25.74px + 9.14vw), 108px);
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .p-cambodia-intro__img--03 {
        width: clamp(175px, calc(93.4px + 21.76vw), 316px);
        height: clamp(251px, calc(134.1px + 31.17vw), 453px);
        top: 0;
        left: calc(50% + clamp(-300.7px, calc(-88.84px - 20.71vw), -166.5px));
        border-bottom-left-radius: clamp(60px, calc(25.74px + 9.14vw), 108px);
        border-bottom-right-radius: clamp(60px, calc(25.74px + 9.14vw), 108px);
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
    .p-cambodia-intro__content {
        margin-right: 0;
        padding: clamp(40px, calc(17.16px + 6.09vw), 80px) clamp(20px, calc(5.71px + 3.82vw), 35px) 0;
    }
    .p-cambodia-intro__title {
        font-size: clamp(22px, calc(9.43px + 3.35vw), 40px);
        margin: clamp(30px, calc(12.87px + 4.57vw), 54px) 0 clamp(15px, calc(6.43px + 2.29vw), 27px);
    }
    .p-cambodia-intro__text {
        font-size: clamp(16px, calc(6.86px + 2.44vw), 29px);
    }
    .p-cambodia-intro__bottom-grad {
        position: absolute;
        bottom: auto;
        top: clamp(418px, calc(221.61px + 52.37vw), 757px);
        height: clamp(60px, calc(32.21px + 7.41vw), 108px);
        z-index: 2;
    }

    /* ─── Area Section SP ─── */
    .p-cambodia-area {
        padding: 40px 0 60px;
    }
    .p-cambodia-area__inner {
        flex-direction: column;
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }
    .p-cambodia-area__title {
        font-size: 18px;
        text-align: left;
        margin-bottom: 20px;
    }
    .p-cambodia-area__card {
        width: 237px !important;
    }
    .p-cambodia-area__card-img {
        width: 237px !important;
        height: 133px !important;
    }
    .p-cambodia-area .p-pickup__nav {
        justify-content: flex-end !important;
    }

    /* ─── Map Section SP ─── */
    .p-cambodia-map {
        padding: 0 0 60px;
    }
    .p-cambodia-map__inner {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }
    .p-cambodia-map__container {
        width: clamp(335px, calc(94.85px + 64.04vw), 750px);
        max-width: 100%;
        height: clamp(205px, calc(57.44px + 39.35vw), 460px);
        margin: 0 auto;
    }
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
    .p-charm {
        padding-bottom: 85px;
    }
}

/* ==========================================================================
   Cambodia Support Section
   ========================================================================== */
.p-cambodia-support {
    background: #FFFFFF;
    padding: clamp(42.67px, 4.17vw, 60px) 0 clamp(71.11px, 6.94vw, 100px);
    overflow: hidden;
}

.p-cambodia-gradient {
    width: 100%;
    height: clamp(124.44px, 12.15vw, 175px);
    background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 20%, rgba(255, 255, 255, 0.9) 40%, rgba(255, 255, 255, 0.6) 60%, rgba(255, 255, 255, 0.2) 80%, rgba(255, 255, 255, 0) 100%);
    position: relative;
    z-index: 3;
    margin-top: clamp(-100px, -6.94vw, -71.11px);
    margin-bottom: clamp(-100px, -6.94vw, -71.11px);
}

.p-cambodia-support__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 clamp(14.22px, 1.39vw, 20px);
}

.p-cambodia-support__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: clamp(56.89px, 5.56vw, 80px);
}

.p-cambodia-support__subtitle {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    text-align: center;
    margin: 0 0 clamp(14.22px, 1.39vw, 20px) 0;
    color: #000000;
}

.p-cambodia-support__title-box {
    position: relative;
    width: clamp(603.02px, 58.89vw, 848px);
    max-width: 100%;
    height: clamp(65.42px, 6.39vw, 92px);
    background: #FFFFFF;
    border: 1px solid #EDEDED;
    box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.25);
    border-radius: clamp(14.22px, 1.39vw, 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(14.22px, 1.39vw, 20px) clamp(21.33px, 2.08vw, 30px);
}

.p-cambodia-support__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    text-align: center;
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    line-height: 1.2;
    margin: 0;
}

.p-cambodia-support__airplane {
    position: absolute;
    top: clamp(-50px, -3.47vw, -35.56px);
    right: clamp(-225px, -15.62vw, -160px);
    width: clamp(221.16px, 21.6vw, 311px);
    height: clamp(222.58px, 21.74vw, 313px);
    transform: rotate(5.17deg);
    pointer-events: none;
}

/* Item */
.p-cambodia-support__item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: clamp(42.67px, 4.17vw, 60px);
    width: clamp(672px, 65.63vw, 945px);
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.p-cambodia-support__item:not(:last-child) {
    margin-bottom: clamp(71.11px, 6.94vw, 100px);
}

.p-cambodia-support__item-content {
    flex: 1;
}

.p-cambodia-support__item-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    line-height: 1.6;
    margin: 0 0 clamp(7.22px, 1.39vw, 10px) 0;
    color: #000000;
}

.p-cambodia-support__item-line {
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
}

.p-cambodia-support__item-line img {
    max-width: 100%;
    height: auto;
    display: block;
}

.p-cambodia-support__item-text {
    font-family: 'Noto Sans CJK JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8; /* 180% */
    color: #000000;
    margin: 0 0 clamp(28.44px, 2.78vw, 40px) 0;
}

.p-cambodia-support__item-btn-wrap .p-cambodia-cta__btn {
    width: clamp(260.27px, 25.42vw, 366px);
    max-width: 100%;
}

.p-cambodia-support__item-btn-wrap .p-cambodia-cta__btn-text {
    font-size: clamp(10.67px, 1.04vw, 15px);
}

.p-cambodia-support__item-img {
    flex-shrink: 0;
    width: clamp(205.51px, 20.07vw, 289px);
    height: clamp(295.82px, 28.89vw, 416px);
    border-radius: clamp(42.67px, 4.17vw, 60px);
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
    overflow: hidden;
}

.p-cambodia-support__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Responsive Support Section */
@media screen and (max-width: 1023px) {
    .p-cambodia-support__airplane {
        width: 200px;
        height: auto;
        right: -30px;
        top: -50px;
    }
    .p-cambodia-support__item {
        gap: 30px;
    }
}

@media screen and (max-width: 1023px) {
    .p-cambodia-support {
        padding: 60px 0;
    }
    .p-cambodia-gradient {
        height: clamp(80px, calc(54.54px + 6.79vw), 124px);
    }
    .p-cambodia-support__inner {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
    }
    .p-cambodia-support__head {
        margin-bottom: 40px;
    }
    .p-cambodia-support__subtitle {
        font-size: 15px;
    }
    .p-cambodia-support__title-box {
        width: 335px;
        max-width: 100%;
        height: 88px;
        padding: 15px 20px;
    }
    .p-cambodia-support__title {
        font-size: 22px;
    }
    .p-cambodia-support__airplane {
        display: none;
    }
    .p-cambodia-support__item {
        flex-direction: column;
        gap: clamp(30px, calc(12.64px + 4.63vw), 60px);
    }
    .p-cambodia-support__item:not(:last-child) {
        margin-bottom: clamp(60px, calc(36.86px + 6.17vw), 100px);
    }
    .p-cambodia-support__item-content {
        display: contents;
    }
    .p-cambodia-support__item-title {
        order: 1;
        font-size: clamp(18px, calc(14.53px + 0.93vw), 24px);
        margin: 0 0 calc(clamp(7px, 1.87vw, 19px) - clamp(30px, calc(12.64px + 4.63vw), 60px)) 0;
    }
    .p-cambodia-support__item-line {
        order: 2;
    }
    .p-cambodia-support__item-line img {
        width: clamp(335px, calc(284.8px + 13.12vw), 420px);
        max-width: 100%;
    }
    .p-cambodia-support__item-img {
        order: 3;
        width: clamp(221px, calc(181.66px + 10.49vw), 289px);
        height: clamp(319px, calc(262.87px + 14.97vw), 416px);
        border-radius: clamp(45.9px, calc(37.73px + 2.18vw), 60px);
        box-shadow: 0px 3.06px 3.06px 0px rgba(0, 0, 0, 0.25);
        margin: 0 auto;
    }
    .p-cambodia-support__item-text {
        order: 4;
        font-size: clamp(16px, calc(14.84px + 0.31vw), 18px);
    }
    .p-cambodia-support__item-btn-wrap {
        order: 5;
        display: flex;
        justify-content: center;
    }
    .p-cambodia-support__item-btn-wrap .p-cambodia-cta__btn {
        width: clamp(335px, calc(317.08px + 4.78vw), 366px);
        max-width: 100%;
    }
}

/* ==========================================================================
   Area Details Modal
   ========================================================================== */
.p-cambodia-area-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}

.p-cambodia-area-modal.is-active {
    display: flex;
}

.p-cambodia-area-modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    cursor: pointer;
}

.p-cambodia-area-modal__content {
    position: relative;
    width: clamp(617.24px, 60.28vw, 868px);
    max-width: 95%;
    height: clamp(571.02px, 55.76vw, 803px);
    max-height: 90vh;
    border-radius: clamp(14.22px, 1.39vw, 20px);
    padding: clamp(35.56px, 3.47vw, 50px);
    background: #FFFFFF;
    box-shadow: 10px 10px 20px 0px rgba(0, 0, 0, 0.25);
    z-index: 1;
    display: flex;
    flex-direction: column;
}

.p-cambodia-area-modal__close {
    position: absolute;
    top: clamp(-20px, -1.39vw, -14.22px);
    right: clamp(-20px, -1.39vw, -14.22px);
    width: clamp(42.67px, 4.17vw, 60px);
    height: clamp(42.67px, 4.17vw, 60px);
    background: #042275;
    box-shadow: 1.55px 1.55px 9.32px 0px rgba(0,0,0,0.25);
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    z-index: 2;
    transition: transform 0.2s;
}

.p-cambodia-area-modal__close:hover {
    transform: scale(1.05);
}

.p-cambodia-area-modal__close span {
    position: relative;
    width: clamp(13.51px, 1.32vw, 19px);
    height: clamp(13.51px, 1.32vw, 19px);
}

.p-cambodia-area-modal__close span::before,
.p-cambodia-area-modal__close span::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 3px;
    background: #FFFFFF;
    border-radius: 2px;
}

.p-cambodia-area-modal__close span::before {
    transform: translateY(-50%) rotate(45deg);
}

.p-cambodia-area-modal__close span::after {
    transform: translateY(-50%) rotate(-45deg);
}

.p-cambodia-area-modal__inner {
    width: clamp(546.13px, 53.33vw, 768px);
    max-width: 100%;
    height: clamp(499.91px, 48.82vw, 703px);
    margin: 0 auto;
    overflow-y: auto;
    padding-right: clamp(7.11px, 0.69vw, 10px); /* Scrollbar clearance */
}

.p-cambodia-area-modal__inner::-webkit-scrollbar {
    width: clamp(4.27px, 0.42vw, 6px);
}
.p-cambodia-area-modal__inner::-webkit-scrollbar-thumb {
    background-color: #ccc;
    border-radius: 4px;
}

.p-cambodia-area-modal__img {
    width: clamp(546.13px, 53.33vw, 768px);
    max-width: 100%;
    height: clamp(273.07px, 26.67vw, 384px);
    border-radius: clamp(14.22px, 1.39vw, 20px);
    overflow: hidden;
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
    flex-shrink: 0;
}

.p-cambodia-area-modal__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-cambodia-area-modal__name {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    color: #000;
    margin-bottom: clamp(7.11px, 0.69vw, 10px);
}

.p-cambodia-area-modal__spell {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #333;
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
}

.p-cambodia-area-modal__summary {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000;
}

/* --- Area Modal SP --- */
@media screen and (max-width: 1023px) {
    .p-cambodia-area-modal__content {
        position: fixed;
        width: clamp(300px, 89.33vw, 800px);
        max-width: calc(100% - 40px);
        height: auto;
        min-height: 0;
        max-height: calc(100vh - 75px);
        overflow: visible;
        border-radius: clamp(12px, 5.33vw, 20px);
        top: 50%;
        left: 50%;
        padding: clamp(30px, 8vw, 50px) clamp(10px, 2.67vw, 20px);
        transform: translate(-50%, -50%);
        display: flex;
        flex-direction: column;
    }

    .p-cambodia-area-modal__close {
        width: 37px;
        height: 37px;
        top: -10px;
        right: -10px;
        background: #042275 url('../img/CTA_bg.webp') center center / 120% 120% no-repeat;
        overflow: hidden;
    }

    .p-cambodia-area-modal__close span {
        width: 14px;
        height: 14px;
    }

    .p-cambodia-area-modal__close span::before,
    .p-cambodia-area-modal__close span::after {
        height: 2px;
    }

    .p-cambodia-area-modal__inner {
        width: 315px;
        max-width: 100%;
        height: auto; /* 高さを内容に合わせる */
        min-height: 0; /* スクロール可能にするための対応 */
        flex: 1 1 auto;
        padding-right: 5px;
        overflow-y: auto; /* 内容がはみ出る場合はスクロール */
    }

    .p-cambodia-area-modal__img {
        width: 315px;
        max-width: 100%;
        height: 157px;
        border-radius: 20px;
        margin-bottom: 20px;
    }

    .p-cambodia-area-modal__name {
        font-size: 22px;
        margin-bottom: 8px;
    }

    .p-cambodia-area-modal__spell {
        font-size: 14px;
        margin-bottom: 20px;
    }

    .p-cambodia-area-modal__summary {
        font-size: 14px;
    }
}

/* ==========================================================================
   About Page: Charm Section (独立)
   ========================================================================== */
.p-about-charm {
    width: 100%;
    padding: clamp(21.33px, 2.08vw, 30px) 0 clamp(71.11px, 6.94vw, 100px);
    margin-bottom: clamp(103.11px, 10.07vw, 145px);
    overflow: hidden;
}

@media screen and (min-width: 1024px) {
    .p-about-charm .p-section-title {
        margin-bottom: clamp(21.33px, 2.08vw, 40px);
    }
}

@media screen and (min-width: 1441px) {
    .p-about-charm {
        overflow: visible;
    }
}

.p-about-charm__list {
    display: flex;
    flex-direction: column;
    gap: clamp(64px, 6.25vw, 90px);
    width: 100%;
}

.p-about-charm__item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    gap: clamp(60.44px, 5.9vw, 85px);
}

.p-about-charm__item-text {
    position: relative;
    flex: 1;
}

.p-about-charm__item--img-left .p-about-charm__item-text {
    padding-right: clamp(56.89px, 5.56vw, 80px);
    margin-left: clamp(42.67px, 4.17vw, 60px);
}

.p-about-charm__item--img-right .p-about-charm__item-text {
    padding-left: clamp(56.89px, 5.56vw, 80px);
    margin-right: clamp(42.67px, 4.17vw, 60px);
}

.p-about-charm__item-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    color: #000000;
    line-height: 1.5;
    margin-bottom: clamp(14.22px, 1.39vw, 20px);
}

.p-about-charm__item-line {
    width: clamp(405.33px, 39.58vw, 570px);
    max-width: 100%;
    height: clamp(8.53px, 0.83vw, 12px);
    margin-bottom: clamp(17.78px, 1.74vw, 25px);
    background-image: url("../img/waveline.webp");
    background-repeat: no-repeat;
    background-size: 100% auto;
    border: none;
}

.p-about-charm__item-desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

.p-about-charm__item-img {
    width: clamp(430.22px, 42.01vw, 605px);
    height: clamp(234.67px, 22.92vw, 330px);
    flex-shrink: 0;
}

.p-about-charm__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-about-charm__item--img-left .p-about-charm__item-img img {
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;
}

.p-about-charm__item--img-right .p-about-charm__item-img img {
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
}

@media screen and (max-width: 1023px) {
    .p-about-charm {
        padding: clamp(40px, calc(28.41px + 3.09vw), 60px) 0 clamp(80px, calc(56.82px + 6.18vw), 120px);
    }
    .p-about-charm__list {
        gap: clamp(50px, calc(16.59px + 8.91vw), 108px);
    }
    .p-about-charm__item {
        flex-direction: column;
        gap: 0;
    }
    .p-about-charm__item-text {
        padding: 0 clamp(20px, calc(5.71px + 3.82vw), 35px);
        order: 2;
    }
    .p-about-charm__item--img-left .p-about-charm__item-text,
    .p-about-charm__item--img-right .p-about-charm__item-text {
        padding-left: clamp(20px, calc(5.71px + 3.82vw), 35px);
        padding-right: clamp(20px, calc(5.71px + 3.82vw), 35px);
        margin-left: 0;
        margin-right: 0;
    }
    .p-about-charm__item-title {
        font-size: 18px;
        text-align: left;
    }
    .p-about-charm__item-line {
        width: 315px;
        margin-bottom: 15px;
    }
    .p-about-charm__item-desc {
        font-size: 14px;
    }
    .p-about-charm__item-img {
        width: 100%;
        height: auto;
        aspect-ratio: 335 / 161;
        order: 1;
        margin-bottom: 20px;
    }
    .p-about-charm__item--img-right .p-about-charm__item-img {
        padding-left: clamp(40px, calc(28.41px + 3.09vw), 60px);
        padding-right: 0;
    }
    .p-about-charm__item--img-right .p-about-charm__item-img img {
        border-top-left-radius: 20px;
        border-bottom-left-radius: 20px;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .p-about-charm__item--img-left .p-about-charm__item-img {
        padding-right: clamp(40px, calc(28.41px + 3.09vw), 60px);
        padding-left: 0;
    }
    .p-about-charm__item--img-left .p-about-charm__item-img img {
        border-top-right-radius: 20px;
        border-bottom-right-radius: 20px;
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
}

/* ==========================================================================
   About Flow (フローチャート) Section
   ========================================================================== */
.p-about-flow {
    position: relative;
    z-index: 1;
    width: 100%;
    background: linear-gradient(to bottom, #EDF0F9 calc(100% - 100px), transparent 100%);
    padding: 0 0 clamp(14.22px, 1.39vw, 20px);
}

/* 上部カーブ */
.p-about-flow__curve {
    position: absolute;
    top: clamp(-140px, -9.72vw, -99.56px);
    left: 0;
    width: 100%;
    height: clamp(99.56px, 9.72vw, 140px);
    background: #EDF0F9;
    border-radius: 50% 50% 0 0 / 100% 100% 0 0;
    z-index: 1;
}

.p-about-flow__inner {
    position: relative;
    z-index: 2;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

/* ---- 見出しエリア ---- */
.p-about-flow__head {
    position: relative;
    text-align: center;
    margin-bottom: clamp(56.89px, 5.56vw, 80px);
}

.p-about-flow__title {
    margin: 0;
}

.p-about-flow__title-top {
    display: block;
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #000000;
    margin-bottom: clamp(7.11px, 0.69vw, 10px);
}

.p-about-flow__title-bottom {
    display: block;
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(28.44px, 2.78vw, 40px);
    letter-spacing: 0.1em;
    text-align: center;
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* デコレーション（飛行機雲 + 飛行機） */
.p-about-flow__deco {
    position: relative;
    display: flex;
    justify-content: center;
    margin-top: clamp(-10px, -0.69vw, -7.11px);
}

.p-about-flow__contrail {
    width: clamp(529.07px, 51.67vw, 744px);
    height: clamp(14.22px, 1.39vw, 20px);
    margin-top: clamp(14.22px, 1.39vw, 20px);
    object-fit: contain;
    filter: brightness(0.6);
}

.p-about-flow__airplane {
    position: absolute;
    right: clamp(21.33px, 2.08vw, 30px);
    top: clamp(-150px, -10.42vw, -106.67px);
    width: clamp(213.33px, 20.83vw, 300px);
    height: clamp(213.33px, 20.83vw, 300px);
    object-fit: contain;
    transform: rotate(2deg);
}

/* ---- ステップフロー ---- */
.p-about-flow__steps {
    max-width: clamp(497.78px, 48.61vw, 700px);
    margin: 0 auto;
}

.p-about-flow__step {
    display: flex;
    align-items: flex-start;
    gap: clamp(21.33px, 2.08vw, 30px);
}

/* 左側（丸 + ライン） */
.p-about-flow__step-left {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
}

.p-about-flow__step-circle {
    width: clamp(71.11px, 6.94vw, 100px);
    height: clamp(71.11px, 6.94vw, 100px);
    border-radius: 50%;
    background: #042275;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.p-about-flow__step-circle::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('../img/CTA_bg.webp') center center / 120% 120% no-repeat;
}

.p-about-flow__step-num {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(32px, 3.13vw, 45px);
    line-height: 1;
    color: #FFFFFF;
    position: relative;
    z-index: 1;
}

/* ステップ間ライン */
.p-about-flow__step-line {
    width: 3px;
    height: clamp(42.67px, 4.17vw, 60px);
    border-radius: clamp(4.27px, 0.42vw, 6px);
    background: #042275;
    margin: clamp(11.38px, 1.11vw, 16px) 0;
}

.p-about-flow__step:last-child .p-about-flow__step-line {
    display: none;
}

.p-about-flow__step-line--first {
    height: clamp(67.56px, 6.6vw, 95px);
}

/* 右側（テキスト） */
.p-about-flow__step-right {
    padding-top: clamp(11.38px, 1.11vw, 16px);
    padding-bottom: clamp(14.22px, 1.39vw, 20px);
}

.p-about-flow__step-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 clamp(5.69px, 0.56vw, 8px) 0;
}

.p-about-flow__step-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    color: #000000;
    margin: 0 0 clamp(11.38px, 1.11vw, 16px) 0;
}

/* STEP 01 の CTAボタン（独立クラス） */
.p-about-flow__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: clamp(11.38px, 1.11vw, 16px);
    width: clamp(221.87px, 21.67vw, 312px);
    height: clamp(48.36px, 4.72vw, 68px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    border: 2px solid #FFFFFF;
    text-decoration: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    padding: 0 clamp(21.33px, 2.08vw, 30px);
    box-shadow: 2px 2px 4px 0px #00000040;
    margin-top: clamp(5.69px, 0.56vw, 8px);
}

.p-about-flow__cta-btn:hover {
    opacity: 0.85;
    transform: translateY(-2px);
}

.p-about-flow__cta-btn-label {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(10px, calc(0.15px + 0.96vw), 14px);
    line-height: 130%;
    letter-spacing: 0.07em;
    text-align: center;
    color: #FFFFFF;
}

.p-about-flow__cta-btn-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #FFFFFF;
    padding: 0;
    flex-shrink: 0;
}

.p-about-flow__cta-btn-arrow svg {
    width: clamp(14.22px, 1.39vw, 20px);
    height: clamp(7.11px, 0.69vw, 10px);
}

/* ---- レスポンシブ ---- */
@media screen and (max-width: 1023px) {
    .p-about-flow {
        padding: 10px 0 0;
    }

    .p-about-flow__curve {
        height: 40px;
        top: -75px;
        padding-top: 80px;
    }

    .p-about-flow__title-top {
        font-size: clamp(22px, calc(16.23px + 1.54vw), 32px);
    }

    .p-about-flow__title-bottom {
        font-size: clamp(22px, calc(16.23px + 1.54vw), 32px);
    }

    .p-about-flow__head {
        margin-bottom: 25px;
    }
    
    .p-about-flow__airplane {
        width: 100px;
        height: auto;
        top: -250px;
        right: 1.33%;
    }

    .p-about-flow__contrail {
        width: 100%;
    }

    .p-about-flow__title-top,
    .p-about-flow__title-bottom {
        font-size: clamp(22px, calc(16.23px + 1.54vw), 32px);
    }

    .p-about-flow__step {
        gap: 16px;
    }

    .p-about-flow__step-circle {
        width: clamp(39px, calc(24.52px + 3.86vw), 64px);
        height: clamp(39px, calc(24.52px + 3.86vw), 64px);
    }

    .p-about-flow__step-num {
        font-size: 20px;
    }

    .p-about-flow__step-line {
        margin: 12px 0;
    }

    .p-about-flow__step-line--first {
        height: 160px;
    }

    .p-about-flow__step:nth-child(2) .p-about-flow__step-line { height: 108px; }
    .p-about-flow__step:nth-child(3) .p-about-flow__step-line { height: 84px; }
    .p-about-flow__step:nth-child(4) .p-about-flow__step-line { height: 108px; }
    .p-about-flow__step:nth-child(5) .p-about-flow__step-line { height: 83px; }
    .p-about-flow__step:nth-child(6) .p-about-flow__step-line { height: 83px; }
    .p-about-flow__step:nth-child(7) .p-about-flow__step-line { display: none; }

    .p-about-flow__step-title {
        font-size: 18px;
    }

    .p-about-flow__step-text {
        font-size: 14px;
    }

    .p-about-flow__step-right {
        padding-top: 10px;
    }

    .p-about-flow__cta-btn {
        width: clamp(250px, calc(190.83px + 15.78vw), 312px);
        height: clamp(65px, calc(47.64px + 4.63vw), 95px);
        padding: 0 20px;
    }

    .p-about-flow__cta-btn-label {
        font-size: clamp(9px, 2.93vw, 11px);
    }

    .p-about-flow__cta-btn-arrow {
        width: clamp(45px, calc(33.54px + 3.05vw), 57px);
        height: clamp(18px, calc(13.22px + 1.27vw), 23px);
    }
}

/* ==========================================================================
   About Page: Team (私たちがサポートいたします) Section
   ========================================================================== */
.p-about-team {
    position: relative;
    z-index: 0;
    width: 100%;
    background: transparent;
    margin-top: clamp(-265px, -18.4vw, -188.44px);
    padding: clamp(120.89px, 11.81vw, 170px) 0 0;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-about-team::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: clamp(142.22px, 13.89vw, 200px);
    background: linear-gradient(180deg, rgba(237, 240, 249, 1) 0%, rgba(237, 240, 249, 0) 100%);
    z-index: 2;
    pointer-events: none;
}

.p-about-team__bg {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: clamp(796.44px, 77.78vw, 1120px);
    z-index: 1;
    pointer-events: none;
}

.p-about-team__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-about-team__bg-mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-about-team__inner {
    position: relative;
    z-index: 2;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: clamp(71.11px, 6.94vw, 100px) clamp(14.22px, 1.39vw, 20px) 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-about-team__title-box {
    width: clamp(469px, 45.83vw, 660px);
    max-width: 100%;
    min-height: clamp(75px, 7.36vw, 106px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(14.22px, 1.39vw, 20px) clamp(21.33px, 2.08vw, 30px);
    background: #FFFFFF;
    border: 1px solid #EDEDED;
    border-radius: clamp(7.11px, 0.69vw, 10px);
    box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.25);
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
}

.p-about-team__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(24.18px, 2.36vw, 34px);
    letter-spacing: 0.1em;
    text-align: center;
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0;
}

.p-about-team__desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    text-align: center;
    color: #000000;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px) 0;
}

@media screen and (max-width: 1023px) {
    .p-about-team__title {
        font-size: 19px;
    }

    .p-about-team__title-box {
        width: 335px;
        max-width: 100%;
        min-height: 62px;
        padding: 12px 20px;
    }

    .p-about-team__desc {
        font-size: 14px;
        text-align: center;
    }

    .p-about-team__inner {
        padding: clamp(30px, calc(6.26px + 6.33vw), 71px) clamp(20px, calc(5.71px + 3.82vw), 35px) 0;
    }

    .p-about-team {
        margin-top: clamp(-188px, calc(-64.86px - 12.04vw), -110px);
        padding-bottom: clamp(30px, calc(6.26px + 6.33vw), 40px);
    }

    .p-about-team__bg {
        height: clamp(1100px, calc(463.44px + 169.75vw), 2200px);
    }
}

/* ==========================================================================
   Cambodia Team (私たちがサポートいたします) Section
   ========================================================================== */
.p-cambodia-team {
    position: relative;
    width: 100%;
    background: #EDF0F9;
    padding: clamp(21.33px, 2.08vw, 30px) 0 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-cambodia-team::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: clamp(118.76px, 11.6vw, 167px);
    background: linear-gradient(180deg, #EDF0F9 0%, rgba(255, 255, 255, 0) 100%);
    z-index: 2;
    pointer-events: none;
}

.p-cambodia-team__bg {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: clamp(743.11px, 72.57vw, 1045px);
    z-index: 1;
    pointer-events: none;
}

.p-cambodia-team__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-cambodia-team__bg-mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-cambodia-team__inner {
    position: relative;
    z-index: 2;
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: clamp(71.11px, 6.94vw, 100px) clamp(14.22px, 1.39vw, 20px) 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-cambodia-team__title-box {
    width: clamp(469px, 45.83vw, 660px);
    max-width: 100%;
    min-height: clamp(75px, 7.36vw, 106px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(14.22px, 1.39vw, 20px) clamp(21.33px, 2.08vw, 30px);
    background: #FFFFFF;
    border: 1px solid #EDEDED;
    border-radius: clamp(7.11px, 0.69vw, 10px);
    box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.25);
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
}

.p-cambodia-team__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(24.18px, 2.36vw, 34px);
    letter-spacing: 0.1em;
    text-align: center;
    background: linear-gradient(90deg, #0230B1 0%, #042275 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0;
}

.p-cambodia-team__desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    text-align: center;
    color: #000000;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px) 0;
}

.p-cambodia-team__wave {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 100%;
    height: clamp(111.64px, 10.9vw, 157px);
    flex-shrink: 0;
    background: linear-gradient(180deg, transparent 60%, #FFFFFF 40%);
}

.p-cambodia-team__wave img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ==========================================================================
   Cambodia Other Countries (他の注目国を見る) Section
   ========================================================================== */
.p-cambodia-other {
    background: #FFFFFF;
    padding: clamp(56.89px, 5.56vw, 80px) 0 clamp(71.11px, 6.94vw, 100px);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-cambodia-other__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #000000;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px) 0;
}

.p-cambodia-other__list {
    display: flex;
    justify-content: center;
    gap: clamp(42.67px, 4.17vw, 60px);
}

.p-cambodia-other__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(11.38px, 1.11vw, 16px);
    text-decoration: none;
}

.p-cambodia-other__name {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #000000;
    margin: 0;
}

.p-cambodia-other__thumb {
    width: clamp(213.33px, 20.83vw, 300px);
    height: clamp(120.18px, 11.74vw, 169px);
    border-radius: clamp(14.22px, 1.39vw, 20px);
    overflow: hidden;
    transition: opacity 0.3s ease;
}

.p-cambodia-other__thumb:hover {
    opacity: 0.5;
}

.p-cambodia-other__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media screen and (max-width: 1023px) {
    .p-cambodia-team__title {
        font-size: 19px;
    }

    .p-cambodia-team__title-box {
        width: 335px;
        max-width: 100%;
        min-height: 62px;
        padding: 12px 20px;
    }

    .p-cambodia-team__desc {
        font-size: 14px;
        text-align: center;
    }

    .p-cambodia-team__inner {
        padding: clamp(30px, calc(6.26px + 6.33vw), 71px) clamp(20px, calc(5.71px + 3.82vw), 35px) 0;
    }

    .p-cambodia-team__wave {
        height: auto;
    }

    .p-cambodia-other__title {
        font-size: 24px;
    }

    .p-cambodia-other__list {
        flex-direction: column;
        gap: 40px;
    }

    .p-cambodia-other__name {
        font-size: 20px;
    }

    .p-cambodia-other__thumb {
        width: clamp(300px, calc(172.69px + 33.95vw), 520px);
        height: clamp(169px, calc(97.22px + 19.14vw), 293px);
    }
}

/* ==========================================================================
   Property Archive (archive-property.php)
   ========================================================================== */

.p-property-archive {
    padding: clamp(42.67px, 4.17vw, 60px) 0 clamp(71.11px, 6.94vw, 100px);
}

.p-property-archive .l-inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

/* ---- Toolbar（フィルター＋件数） ---- */
.p-property-archive__toolbar {
    display: flex;
    align-items: center;
    gap: clamp(28.44px, 2.78vw, 40px);
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
}

/* ---- 国名フィルター ---- */
.p-property-filter__wrap {
    display: flex;
    align-items: stretch;
    width: clamp(214.04px, 20.9vw, 301px);
    height: clamp(35.56px, 3.47vw, 50px);
}

.p-property-filter__label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(48.36px, 4.72vw, 68px);
    height: clamp(35.56px, 3.47vw, 50px);
    padding: 5px clamp(14.22px, 1.39vw, 20px);
    background: #042275;
    flex-shrink: 0;
}

.p-property-filter__label span {
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 200%;
    color: #ffffff;
    white-space: nowrap;
}

.p-property-filter__select-wrap {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1;
    height: clamp(35.56px, 3.47vw, 50px);
    border: 1px solid #DADADA;
    border-left: none;
    background: #ffffff;
}

.p-property-filter__select {
    width: 100%;
    height: 100%;
    padding: clamp(7.11px, 0.69vw, 10px) clamp(32.71px, 3.19vw, 46px) clamp(7.11px, 0.69vw, 10px) clamp(14.22px, 1.39vw, 20px);
    border: none;
    background: transparent;
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 180%;
    color: #333333;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    outline: none;
    position: relative;
    z-index: 1;
}

.p-property-filter__arrow {
    position: absolute;
    right: clamp(11.38px, 1.11vw, 16px);
    top: 50%;
    transform: translateY(-50%);
    color: #042275;
    font-size: clamp(10.67px, 1.04vw, 15px);
    pointer-events: none;
    line-height: 1;
}

/* ---- 件数表示 ---- */
.p-property-archive__count {
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #333333;
    margin: 0 0 clamp(14.22px, 1.39vw, 20px);
}

/* ---- 物件グリッド ---- */
.p-property-archive__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(34.13px, 3.33vw, 48px) clamp(17.07px, 1.67vw, 24px);
    list-style: none;
    padding: 0;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px);
}

/* ---- 物件カード ---- */
.p-property-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

.p-property-card__thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 413 / 232;
    border-radius: clamp(14.22px, 1.39vw, 20px);
    overflow: hidden;
    margin-bottom: clamp(11.38px, 1.11vw, 16px);
}

.p-property-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.p-property-card__link:hover {
    opacity: 0.5;
}

.p-property-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(63.29px, 6.18vw, 89px);
    height: clamp(19.91px, 1.94vw, 28px);
    padding: 0 clamp(10.67px, 1.04vw, 15px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    color: #ffffff;
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-weight: 500;
    font-size: 14px;
    white-space: nowrap;
    margin-bottom: clamp(7.11px, 0.69vw, 10px);
}

.p-property-card__body {
    display: flex;
    flex-direction: column;
    gap: clamp(4.27px, 0.42vw, 6px);
}

.p-property-card__location {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #000000;
    margin: 0;
}

.p-property-card__name {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(12.8px, 1.25vw, 18px);
    color: #1a1a1a;
    margin: 0;
}

.p-property-card__price {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: 14px;
    color: #000000;
    margin: 0;
}

/* ---- 物件なし ---- */
.p-property-archive__empty {
    text-align: center;
    padding: clamp(42.67px, 4.17vw, 60px) 0;
    font-size: clamp(11.38px, 1.11vw, 16px);
    color: #666666;
}

/* ---- ページネーション ---- */
.p-property-archive__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(8.53px, 0.83vw, 12px);
}

.p-property-pagination__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    color: #ffffff;
    text-decoration: none;
    font-size: clamp(9.96px, 0.97vw, 14px);
    box-sizing: border-box;
    transition: opacity 0.2s;
}

.p-property-pagination__btn i {
    font-size: 9px;
    line-height: 1;
}

.p-property-pagination__btn.is-disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}

.p-property-pagination__list {
    display: flex;
    align-items: center;
    gap: clamp(5.69px, 0.56vw, 8px);
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-property-pagination__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(21.33px, 2.08vw, 30px);
    height: clamp(21.33px, 2.08vw, 30px);
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: clamp(11.38px, 1.11vw, 16px);
    color: #042275;
    text-decoration: none;
    border-radius: 50%;
    transition: background 0.2s, color 0.2s;
}

.p-property-pagination__num.is-current {
    background: #042275;
    color: #ffffff;
}

.p-property-pagination__num:not(.is-current):not(.is-dots):hover {
    background: #e8ecf8;
}

.p-property-pagination__num.is-dots {
    cursor: default;
    background: transparent !important;
}

/* ---- レスポンシブ ---- */
@media screen and (max-width: 1024px) {
    .p-property-archive__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width: 1023px) {
    .p-property-archive {
        padding-top: 15px;
    }
    .p-property-archive .l-inner {
        padding: 0 20px;
    }

    .p-property-archive__toolbar {
        flex-direction: row;
        align-items: stretch;
        gap: 0;
    }

    .p-property-filter__wrap {
        width: 335px;
        max-width: 100%;
        height: 50px;
    }

    .p-property-filter__label {
        width: 68px;
        height: 50px;
        flex-shrink: 0;
    }

    .p-property-filter__select-wrap {
        height: 50px;
    }

    .p-property-archive__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .p-property-archive__pagination {
        width: 100%;
    }

    .p-property-pagination__list {
        flex: 1;
        justify-content: center;
    }

    .p-property-pagination__btn {
        width: 40px;
        height: 16px;
    }

    .p-property-card__badge {
        min-width: 120px;
        width: 120px;
        height: 28px;
    }

    .p-property-card__location {
        font-size: 14px;
    }

    .p-property-card__name {
        font-size: 18px;
    }

    .p-property-card__price {
        font-size: 14px;
    }
}

@media screen and (min-width: 540px) and (max-width: 1023px) {
    .p-property-archive__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 16px;
    }

    .p-property-filter__wrap {
        width: 100%;
    }
}

/* ==========================================================================
   Seminar Archive (archive-seminar.php)
   ========================================================================== */

.p-seminar-archive {
    padding: clamp(42.67px, 4.17vw, 60px) 0 clamp(71.11px, 6.94vw, 100px);
}

.p-seminar-archive__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

/* ---- カテゴリータブ ---- */
.p-seminar-archive__cats {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(8.53px, 0.83vw, 12px);
    margin-bottom: clamp(28.44px, 2.78vw, 40px);
}

.p-seminar-cat-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 104px;
    min-height: 28px;
    height: auto;
    padding: 4px 15px;
    border-radius: 99px;
    background: #042275;
    border: 1px solid #042275;
    color: #ffffff;
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-weight: 500;
    font-size: 14px;
    text-decoration: none;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
    transition: background 0.2s, color 0.2s;
}

.p-seminar-cat-btn.is-active {
    background: #ffffff;
    color: #042275;
    border-color: #042275;
}

.p-seminar-cat-btn:hover {
    opacity: 0.8;
}

/* ---- セミナーグリッド ---- */
.p-seminar-archive__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(42.67px, 4.17vw, 60px) clamp(28.44px, 2.78vw, 40px);
    list-style: none;
    padding: 0;
    margin: 0 0 clamp(42.67px, 4.17vw, 60px);
}

/* ---- セミナーカード ---- */
.p-seminar-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

.p-seminar-card__thumb {
    position: relative;
    width: clamp(267.38px, 26.11vw, 376px);
    max-width: 100%;
    height: clamp(177.05px, 17.29vw, 249px);
    border-radius: clamp(14.22px, 1.39vw, 20px);
    overflow: hidden;
    margin-bottom: clamp(11.38px, 1.11vw, 16px);
}

.p-seminar-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.p-seminar-card__link:hover {
    opacity: 0.5;
}

/* アーカイブ動画バッジ */
.p-seminar-card__archive-badge {
    position: absolute;
    top: clamp(8.53px, 0.83vw, 12px);
    left: clamp(8.53px, 0.83vw, 12px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(139.38px, 13.61vw, 196px);
    height: clamp(32.71px, 3.19vw, 46px);
    padding: clamp(4.98px, 0.49vw, 7px) clamp(11.38px, 1.11vw, 16px);
    border-radius: 5px;
    background: #ffffff;
    border: 1px solid #042275;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #042275;
    white-space: nowrap;
    box-sizing: border-box;
}

/* ---- カテゴリーピル ---- */
.p-seminar-card__cats {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(5.69px, 0.56vw, 8px);
}

.p-seminar-card__cat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(73.96px, 7.22vw, 104px);
    height: clamp(19.91px, 1.94vw, 28px);
    padding: 0 clamp(10.67px, 1.04vw, 15px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 200%;
    letter-spacing: 0.07em;
    text-align: center;
    color: #ffffff;
    white-space: nowrap;
}

/* ---- テキスト情報 ---- */
.p-seminar-card__body {
    display: flex;
    flex-direction: column;
    gap: clamp(4.27px, 0.42vw, 6px);
}

.p-seminar-card__date {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #000000;
    margin: 0;
}

.p-seminar-card__title {
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #1a1a1a;
    margin: 0;
}

/* ---- 投稿なし ---- */
.p-seminar-archive__empty {
    text-align: center;
    padding: clamp(42.67px, 4.17vw, 60px) 0;
    font-size: clamp(11.38px, 1.11vw, 16px);
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    color: #666666;
}

/* ---- レスポンシブ ---- */
@media screen and (max-width: 1024px) {
    .p-seminar-archive__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================================================
   Column Archive (archive-column.php)
   ========================================================================== */

.p-column-archive {
    padding: clamp(42.67px, 4.17vw, 60px) 0 clamp(71.11px, 6.94vw, 100px);
}

.p-column-archive__inner {
    width: clamp(910.22px, 88.89vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

@media screen and (max-width: 1023px) {
    .p-seminar-archive__inner,
    .p-column-archive__inner {
        padding: 0 20px;
    }

    .p-seminar-archive__cats {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .p-seminar-cat-btn {
        min-width: 104px;
        width: 104px;
        min-height: 28px;
        height: auto;
        padding: 4px 8px;
        white-space: normal;
        word-break: break-word;
        line-height: 1.3;
        font-size: 13px;
        box-sizing: border-box;
    }

    .p-seminar-archive__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .p-seminar-card__thumb {
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: 335 / 188;
    }

    .p-seminar-card__date {
        font-size: 14px;
    }

    .p-seminar-card__title {
        font-size: 16px;
    }

    .p-seminar-card__archive-badge {
        width: auto;
        font-size: 14px;
    }

    .p-seminar-archive .p-property-archive__pagination,
    .p-column-archive .p-property-archive__pagination {
        width: 100%;
    }

    .p-seminar-archive .p-property-pagination__list,
    .p-column-archive .p-property-pagination__list {
        flex: 1;
        justify-content: center;
    }
}

@media screen and (min-width: 540px) and (max-width: 1023px) {
    .p-seminar-archive__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 16px;
    }
}

/* ==========================================================================
   Column / Seminar Single — ヘッダー固定分のオフセット
   ========================================================================== */

main:has(.p-column-single) {
    padding-top: clamp(78.22px, 7.64vw, 110px);
}

.column-single-toc {
    display: none;
}

/* ==========================================================================
   Column Single (single-column.php)
   ========================================================================== */

/* ---- インナー ---- */
.p-column-single__inner {
    width: clamp(760.89px, 74.31vw, 1070px);
    max-width: 100%;
    margin: 0 auto;
    padding: clamp(42.67px, 4.17vw, 60px) 2rem clamp(56.89px, 5.56vw, 80px);
}

/* ---- カテゴリー ---- */
.p-column-single__cats {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(5.69px, 0.56vw, 8px);
    margin-bottom: clamp(11.38px, 1.11vw, 16px);
}

.p-column-single__archive-badge-wrap {
    margin-bottom: clamp(17.07px, 1.67vw, 24px);
}

/* シングルページではpositionリセットして左寄せ */
.p-column-single__archive-badge-wrap .p-seminar-card__archive-badge {
    position: static;
}

/* ---- タイトル ---- */
.p-column-single__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(24.89px, 2.43vw, 35px);
    line-height: 1.5;
    color: #1a1a1a;
    margin: 0 0 clamp(28.44px, 2.78vw, 40px);
}

/* ---- サムネイル ---- */
.p-column-single__thumb-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: clamp(42.67px, 4.17vw, 60px);
}

.p-column-single__thumb {
    width: clamp(497.78px, 48.61vw, 700px);
    height: clamp(280.18px, 27.36vw, 394px);
    max-width: 100%;
    object-fit: cover;
    display: block;
}

/* ---- 目次 ---- */
.p-toc {
    width: 100%;
    min-height: clamp(258.84px, 25.28vw, 364px);
    padding: clamp(28.44px, 2.78vw, 40px) clamp(35.56px, 3.47vw, 50px);
    background: #EDF0F9;
    box-sizing: border-box;
    margin-bottom: clamp(42.67px, 4.17vw, 60px);
}

.p-toc__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #1a1a1a;
    margin-bottom: clamp(17.07px, 1.67vw, 24px);
}

.p-toc__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-toc__item {
    width: clamp(685.51px, 66.94vw, 964px);
    max-width: 100%;
    min-height: clamp(32px, 3.13vw, 45px);
    padding: clamp(5.69px, 0.56vw, 8px) 0;
    border-bottom: 1px solid #B5B5B5;
    box-sizing: border-box;
}

.p-toc__item a {
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #1a1a1a;
    text-decoration: none;
    display: flex;
    align-items: baseline;
    gap: clamp(8.53px, 0.83vw, 12px);
    transition: color 0.2s;
}

.p-toc__item a::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 3px;
    min-width: 3px;
    background: #000000;
    border-radius: 50%;
    flex-shrink: 0;
}

.p-toc__item a:hover {
    color: #042275;
}

.p-toc__item--h3 {
    padding-left: clamp(28.44px, 2.78vw, 40px);
}

.p-toc__item--h3 a {
    font-weight: 400;
}

/* ---- 本文 ---- */
.p-column-single__content {
    margin-bottom: clamp(56.89px, 5.56vw, 80px);
}

.p-column-single__content p {
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
    font-size: clamp(14px, 1.4vw, 16px);
    line-height: 1.8;
    margin-bottom: clamp(20px, 2vw, 30px);
    color: #333333;
}

.p-column-single__content h2 {
    font-family: 'Shippori Mincho', serif;
    font-size: clamp(20px, 2vw, 24px);
    margin-top: clamp(40px, 4vw, 60px);
    margin-bottom: clamp(20px, 2vw, 30px);
    padding-bottom: 10px;
    border-bottom: 1px solid #DADADA;
    line-height: 1.5;
    color: #042275;
}

.p-column-single__content h3 {
    font-family: 'Shippori Mincho', serif;
    font-size: clamp(18px, 1.8vw, 20px);
    margin-top: clamp(30px, 3vw, 40px);
    margin-bottom: clamp(15px, 1.5vw, 20px);
    line-height: 1.5;
    color: #333333;
}

.p-column-single__content ul,
.p-column-single__content ol {
    margin-bottom: clamp(20px, 2vw, 30px);
    padding-left: 1.5em;
    line-height: 1.8;
}

.p-column-single__content li {
    margin-bottom: 10px;
}

.p-column-single__content img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    margin: clamp(21.33px, 2.08vw, 30px) auto;
}

/* ---- 一覧に戻る ---- */
.p-column-single__back {
    display: flex;
    justify-content: center;
    padding-bottom: clamp(71.11px, 6.94vw, 100px);
}

.p-column-single__back-link {
    display: inline-flex;
    align-items: center;
    gap: clamp(11.38px, 1.11vw, 16px);
    text-decoration: none;
}

.p-column-single__back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 23px;
    border-radius: 99px;
    background: #042275;
    color: #ffffff;
    font-size: 17px;
    box-sizing: border-box;
    flex-shrink: 0;
    transition: opacity 0.2s;
}

.p-column-single__back-link:hover .p-column-single__back-btn {
    opacity: 0.75;
}

.p-column-single__back-text {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 200%;
    letter-spacing: 0.07em;
    text-align: center;
    color: #1a1a1a;
}

/* ---- レスポンシブ ---- */
@media screen and (max-width: 1023px) {
    .p-column-single__inner {
        padding: 40px 20px 60px;
    }

    .p-column-single__cats {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .p-column-single__cats .p-seminar-card__cat {
        min-width: 104px;
        width: 104px;
        min-height: 28px;
        height: auto;
        padding: 4px 8px;
        white-space: normal;
        word-break: break-word;
        line-height: 1.3;
        font-size: 13px;
        text-align: center;
        box-sizing: border-box;
    }

    .p-column-single__title {
        font-size: 24px;
    }

    .p-column-single__thumb {
        height: auto;
        aspect-ratio: 700 / 394;
    }

    .p-column-single__back {
        padding-bottom: 60px;
    }

    .p-toc {
        padding: 30px 20px;
    }
}

/* ==========================================================================
   p-seminar-form (single-seminar.php フォームセクション)
   ========================================================================== */

.p-seminar-form {
    background: #EDF0F9;
    padding: clamp(56.89px, 5.56vw, 80px) 0;
}

.p-seminar-form__inner {
    max-width: clamp(448px, 43.75vw, 630px);
    margin: 0 auto;
    padding: 0 clamp(14.22px, 1.39vw, 20px);
}

/* タイトル */
.p-seminar-form__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(25.6px, 2.5vw, 36px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #333333;
    margin: 0 0 clamp(34.13px, 3.33vw, 48px);
}

/* 姓・名の2カラムレイアウト */
.p-seminar-form__name-row {
    display: flex;
    gap: clamp(7.11px, 0.69vw, 10px);
    margin-bottom: clamp(17.07px, 1.67vw, 24px);
}

.p-seminar-form__name-row .p-seminar-form__field {
    flex: 1;
    min-width: 0;
    margin-bottom: 0;
}

/* フィールドグループ */
.p-seminar-form__field {
    margin-bottom: clamp(17.07px, 1.67vw, 24px);
}

/* ラベル */
.p-seminar-form__label {
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1;
    color: #333333;
    margin-bottom: 10px;
}

/* 必須アスタリスク */
.p-seminar-form__required {
    color: #C0392B;
    margin-left: 2px;
}

/* CF7がラベル内・外に挿入するbrを除去 */
.p-seminar-form .wpcf7-form label br,
.p-seminar-form .wpcf7-form p > br {
    display: none;
}

/* CF7が自動生成するpタグの余白と行間をリセット */
.p-seminar-form .wpcf7-form p {
    margin: 0;
    line-height: 1.5;
}

/* テキスト・メール・電話 入力フィールド */
.p-seminar-form .wpcf7-form-control.wpcf7-text,
.p-seminar-form .wpcf7-form-control.wpcf7-email,
.p-seminar-form .wpcf7-form-control.wpcf7-tel {
    width: 100%;
    height: clamp(39.11px, 3.82vw, 55px);
    border: 1px solid #CCCCCC;
    border-radius: 8px;
    background: #FFFFFF;
    padding: 0 clamp(11.38px, 1.11vw, 16px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(11.38px, 1.11vw, 16px);
    color: #333333;
    box-sizing: border-box;
    appearance: none;
}

.p-seminar-form .wpcf7-form-control.wpcf7-text:focus,
.p-seminar-form .wpcf7-form-control.wpcf7-email:focus,
.p-seminar-form .wpcf7-form-control.wpcf7-tel:focus {
    outline: 2px solid #042275;
    outline-offset: -2px;
}

/* CF7 wrapのブロック化 */
.p-seminar-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* ラジオボタン */
.p-seminar-form .wpcf7-radio {
    display: block;
}

.p-seminar-form .wpcf7-radio .wpcf7-list-item {
    display: block;
    margin: 0 0 clamp(9.96px, 0.97vw, 14px);
}

.p-seminar-form .wpcf7-radio .wpcf7-list-item label {
    display: flex;
    align-items: center;
    gap: clamp(7.11px, 0.69vw, 10px);
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    color: #333333;
    cursor: pointer;
    vertical-align: middle;
}

.p-seminar-form .wpcf7-radio input[type="radio"] {
    width: clamp(14.22px, 1.39vw, 20px);
    height: clamp(14.22px, 1.39vw, 20px);
    flex-shrink: 0;
    accent-color: #042275;
    vertical-align: middle;
    cursor: pointer;
}

/* プライバシー同意文 */
.p-seminar-form__privacy {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 1.8;
    text-align: center;
    color: #333333;
    margin: clamp(22.76px, 2.22vw, 32px) 0;
    vertical-align: middle;
}

/* 送信ボタン エリア */
.p-seminar-form__submit-wrap {
    position: relative;
    display: flex;
    justify-content: center;
}

/* p-cta__btn スタイルを踏襲した送信ボタン */
.p-seminar-form__submit-wrap .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    width: clamp(221.87px, 21.67vw, 312px);
    height: clamp(48.36px, 4.72vw, 68px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    border: 2px solid #FFFFFF;
    color: #FFFFFF;
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    letter-spacing: 0.07em;
    cursor: pointer;
    transition: opacity 0.3s ease, transform 0.3s ease;
    box-shadow: 2px 2px 4px 0px #00000040;
    padding: 0 calc(clamp(40.53px, 3.96vw, 57px) + clamp(18.49px, 1.81vw, 26px) + clamp(11.38px, 1.11vw, 16px)) 0 clamp(21.33px, 2.08vw, 30px);
    box-sizing: border-box;
    margin-top: 20px;
}

.p-seminar-form__submit-wrap .wpcf7-submit:hover {
    opacity: 0.85;
    transform: translateY(-2px);
}

.p-seminar-form__submit-wrap::after {
    content: '';
    position: absolute;
    right: calc(50% - clamp(110.93px, 10.83vw, 156px) + clamp(9.24px, 0.9vw, 13px)); 
    top: 65%;
    transform: translateY(-50%);
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: 99px;
    background-color: #FFFFFF;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10' fill='none'%3E%3Cline x1='0' y1='5' x2='18' y2='5' stroke='%23042275' stroke-width='1.5'/%3E%3Cpolyline points='14,1 18,5 14,9' stroke='%23042275' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
}

.p-seminar-form__submit-wrap .wpcf7-spinner {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.p-seminar-form .wpcf7-not-valid-tip {
    font-size: clamp(8.53px, 0.83vw, 12px);
    color: #C0392B;
    margin-top: 4px;
    display: block;
}

.p-seminar-form .wpcf7-response-output {
    margin-top: clamp(11.38px, 1.11vw, 16px);
    padding: clamp(8.53px, 0.83vw, 12px) clamp(11.38px, 1.11vw, 16px);
    border-radius: clamp(4.27px, 0.42vw, 6px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(9.96px, 0.97vw, 14px);
    border: none;
}

/* ---- レスポンシブ ---- */
@media screen and (max-width: 1023px) {
    .p-seminar-form {
        padding: 35px 0;
    }

    .p-seminar-form__inner {
        max-width: 100%;
        padding: 0 20px;
    }

    .p-seminar-form__title {
        font-size: clamp(18px, 5.86vw, 22px);
        margin-bottom: clamp(18px, 5.33vw, 24px);
    }

    .p-seminar-form__name-row {
        flex-direction: row;
        gap: clamp(8px, 2.66vw, 10px);
    }

    .p-seminar-form__name-row .p-seminar-form__field {
        margin-bottom: 0;
    }

    .p-seminar-form .wpcf7-form-control.wpcf7-text,
    .p-seminar-form .wpcf7-form-control.wpcf7-email,
    .p-seminar-form .wpcf7-form-control.wpcf7-tel {
        width: 100%;
        height: clamp(48px, 15.46vw, 58px);
    }

    .p-seminar-form__submit-wrap::after {
        right: calc(50% - 150px + 13px);
    }

    .p-seminar-form__submit-wrap .wpcf7-submit {
        width: 300px;
    }
}

/* ==========================================================================
   お問い合わせページ (p-contact-form)
   ========================================================================== */

.p-contact-form {
    padding: clamp(42.67px, 4.17vw, 60px) 0 clamp(71.11px, 6.94vw, 100px);
}

.p-contact-form__inner {
    width: clamp(604.44px, 59.03vw, 850px);
    max-width: 100%;
    margin: 0 auto;
    padding: 0 clamp(14.22px, 1.39vw, 20px);
    box-sizing: border-box;
}

/* リード文 */
.p-contact-form__lead {
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    text-align: center;
    color: #333333;
    margin-bottom: clamp(34.13px, 3.33vw, 48px);
}

/* ── フォーム共通 ── */

/* 各フィールドブロック */
.p-contact-form .wpcf7-form > p {
    margin-top: 0;
    margin-bottom: clamp(14.22px, 1.39vw, 20px);
}

/* ラベル */
.p-contact-form .wpcf7-form label {
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.4;
    color: #333333;
    margin-bottom: 12px;
}

/* CF7がラベル内・外に挿入するbrを除去 */
.p-contact-form .wpcf7-form label br,
.p-contact-form .wpcf7-form p > br {
    display: none;
}

/* 必須マーク */
.p-contact-form .required-mark {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #D32929;
    margin-left: 4px;
}

/* テキスト・メール・電話 入力 */
.p-contact-form .wpcf7-form-control.wpcf7-text,
.p-contact-form .wpcf7-form-control.wpcf7-email,
.p-contact-form .wpcf7-form-control.wpcf7-tel {
    width: 100%;
    height: clamp(39.82px, 3.89vw, 56px);
    border: 1px solid #B3B3B3;
    border-radius: clamp(5.69px, 0.56vw, 8px);
    background: #FFFFFF;
    padding: 0 clamp(14.22px, 1.39vw, 20px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(11.38px, 1.11vw, 16px);
    color: #333333;
    box-sizing: border-box;
    appearance: none;
}

.p-contact-form .wpcf7-form-control.wpcf7-text:focus,
.p-contact-form .wpcf7-form-control.wpcf7-email:focus,
.p-contact-form .wpcf7-form-control.wpcf7-tel:focus {
    outline: 2px solid #042275;
    outline-offset: -2px;
}

/* テキストエリア（お問い合わせ内容） */
.p-contact-form .wpcf7-form-control.wpcf7-textarea {
    width: 100%;
    height: clamp(177.78px, 17.36vw, 250px);
    border: 1px solid #B3B3B3;
    border-radius: clamp(5.69px, 0.56vw, 8px);
    background: #FFFFFF;
    padding: clamp(14.22px, 1.39vw, 20px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(11.38px, 1.11vw, 16px);
    color: #333333;
    box-sizing: border-box;
    appearance: none;
    resize: vertical;
}

.p-contact-form .wpcf7-form-control.wpcf7-textarea:focus {
    outline: 2px solid #042275;
    outline-offset: -2px;
}

/* セレクトのラッパー */
.p-contact-form .wpcf7-form-control-wrap[data-name="category"] {
    position: relative;
    display: block;
}

/* カスタムセレクト */
.c-custom-select {
    position: relative;
    width: 100%;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 16px;
    color: #333333;
    user-select: none;
}

.c-custom-select__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    border: 1px solid #B3B3B3;
    border-radius: 8px;
    background: #FFFFFF;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color 0.2s ease;
}

.c-custom-select.is-open .c-custom-select__trigger {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom-color: transparent;
}

.c-custom-select__trigger-text {
    color: #B3B3B3;
    font-size: 16px;
}

.c-custom-select__trigger-text.is-selected {
    color: #333333;
}

.c-custom-select__arrow {
    display: flex;
    align-items: center;
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.c-custom-select.is-open .c-custom-select__arrow {
    transform: rotate(180deg);
}

.c-custom-select__dropdown {
    background: #FFFFFF;
    border: 1px solid #B3B3B3;
    border-top: none;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.35s ease-in-out, opacity 0.25s ease-in-out;
    box-sizing: border-box;
    border-color: transparent;
}

.c-custom-select.is-open .c-custom-select__dropdown {
    opacity: 1;
    border-color: #B3B3B3;
    border-top-color: transparent;
}

.c-custom-select__divider {
    width: 806px;
    max-width: calc(100% - 40px);
    margin: 0 20px;
    border-bottom: 1px solid #B3B3B3;
}

.c-custom-select__list {
    list-style: none;
    margin: 0;
    padding: 8px 0;
}

.c-custom-select__option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 20px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 16px;
    vertical-align: middle;
    cursor: pointer;
    transition: background 0.15s ease;
}

.c-custom-select__option::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    background: #042275;
    border-radius: 50%;
    flex-shrink: 0;
}

.c-custom-select__option:hover {
    background: #F5F7FF;
}

/* 姓・名 2カラム */
.p-contact-form__name-row {
    display: flex;
    gap: clamp(7.11px, 0.69vw, 10px);
    margin-bottom: clamp(14.22px, 1.39vw, 20px);
}

.p-contact-form__name-row .p-contact-form__name-col {
    flex: 1;
}

.p-contact-form__name-row .wpcf7-form-control.wpcf7-text {
    width: 100%;
}

/* form-control-wrap */
.p-contact-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* プライバシー同意文 */
.p-contact-form__privacy {
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    text-align: center;
    color: #333333;
    margin: clamp(28.44px, 2.78vw, 40px) 0 clamp(22.76px, 2.22vw, 32px);
}

/* 送信ボタンエリア */
.p-contact-form__submit-wrap {
    position: relative;
    display: flex;
    justify-content: center;
}

/* CF7スピナーをレイアウトから除外（flexセンタリングに影響させない） */
.p-contact-form__submit-wrap .wpcf7-spinner {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.p-contact-form__submit-wrap .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    width: clamp(199.11px, 19.44vw, 280px);
    height: clamp(48.36px, 4.72vw, 68px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    border: 2px solid #FFFFFF;
    color: #FFFFFF;
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 200%;
    letter-spacing: 0.07em;
    cursor: pointer;
    transition: opacity 0.3s ease, transform 0.3s ease;
    box-shadow: 2px 2px 4px 0px #00000040;
    padding: clamp(12.8px, 1.25vw, 18px) clamp(42.67px, 4.17vw, 60px) clamp(12.8px, 1.25vw, 18px) clamp(21px, 2.08vw, 30px);
    box-sizing: border-box;
}

.p-contact-form__submit-wrap .wpcf7-submit:hover {
    opacity: 0.85;
    transform: translateY(-2px);
}

/* 矢印ピル */
.p-contact-form__submit-wrap::after {
    content: '';
    position: absolute;
    right: calc(50% - clamp(99.56px, 9.72vw, 140px) + clamp(23.47px, 2.29vw, 33px));
    top: 50%;
    transform: translateY(-50%);
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background-color: #FFFFFF;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='10' viewBox='0 0 17 10' fill='none'%3E%3Cline x1='0' y1='5' x2='15' y2='5' stroke='%23042275' stroke-width='1'/%3E%3Cpolyline points='12,1.5 15.5,5 12,8.5' stroke='%23042275' stroke-width='1' fill='none'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
}

/* バリデーションエラー */
.p-contact-form .wpcf7-not-valid-tip {
    font-size: clamp(8.53px, 0.83vw, 12px);
    color: #C0392B;
    margin-top: 4px;
    display: block;
}

.p-contact-form .wpcf7-response-output {
    margin-top: clamp(11.38px, 1.11vw, 16px);
    padding: clamp(8.53px, 0.83vw, 12px) clamp(11.38px, 1.11vw, 16px);
    border-radius: clamp(4.27px, 0.42vw, 6px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(9.96px, 0.97vw, 14px);
    border: none;
}

/* プレースホルダー */
.p-contact-form .wpcf7-form-control::placeholder {
    color: #B3B3B3;
}

/* ── レスポンシブ ── */
@media screen and (max-width: 1023px) {
    .p-contact-form {
        padding: 80px 0 60px;
    }

    .p-contact-form__inner {
        max-width: 100%;
        padding: 0 20px;
    }

    .p-contact-form__lead {
        font-size: 16px;
        margin-bottom: 32px;
    }

    .p-contact-form__name-row {
        flex-direction: row;
        gap: clamp(8px, calc(3.81px + 1.12vw), 10px);
    }

    .p-contact-form .wpcf7-form label {
        font-size: 16px;
    }

    .p-contact-form .wpcf7-form-control.wpcf7-text,
    .p-contact-form .wpcf7-form-control.wpcf7-email,
    .p-contact-form .wpcf7-form-control.wpcf7-tel {
        height: clamp(56px, calc(35.14px + 5.56vw), 78px);
    }

    .p-contact-form .wpcf7-form-control.wpcf7-text,
    .p-contact-form .wpcf7-form-control.wpcf7-email,
    .p-contact-form .wpcf7-form-control.wpcf7-tel,
    .p-contact-form .wpcf7-form-control.wpcf7-textarea,
    .p-contact-form .wpcf7-form-control.wpcf7-select {
        width: 100%;
    }

    .p-contact-form__name-row .wpcf7-form-control.wpcf7-text {
        width: 100%;
    }

    .p-contact-form__privacy {
        font-size: 16px;
    }

    .p-contact-form__submit-wrap .wpcf7-submit {
        width: clamp(295px, calc(185.19px + 29.28vw), 410px);
        height: clamp(68px, calc(42.67px + 6.75vw), 95px);
        font-size: clamp(14px, calc(6.67px + 1.95vw), 16px);
        padding: 16px 54px 16px 24px;
    }

    .p-contact-form__submit-wrap::after {
        right: calc(50% - clamp(147.5px, calc(92.6px + 14.64vw), 205px) + 32px);
    }
}

/* ==========================================================================
   物件詳細ページ (p-property-single)
   ========================================================================== */
/* ── パンくずリスト (p-property-breadcrumb) ── */
.p-property-breadcrumb {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: clamp(21.33px, 2.08vw, 40px) 0 clamp(14.22px, 1.39vw, 20px) 0;
}

.p-property-breadcrumb .l-inner {
    display: flex;
    align-items: center;
    gap: clamp(10.67px, 1.04vw, 15px);
    flex-wrap: wrap;
    padding-left: clamp(42.67px, 4.17vw, 60px);
}

.p-property-breadcrumb a {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 2;
    color: #000000;
    text-decoration: none;
    transition: opacity 0.3s;
}

.p-property-breadcrumb a:hover {
    opacity: 0.7;
}

.p-property-breadcrumb__sep {
    font-size: clamp(7.82px, 0.76vw, 11px);
    color: #000000;
}

.p-property-breadcrumb__current {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(9.96px, 0.97vw, 14px);
    line-height: 2;
    color: #042275;
}


/* ── ヒーローカルーセル ── */
.p-property-hero {
    width: 100%;
    max-width: 100%;
    height: clamp(413.16px, 40.35vw, 581px);
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}

.p-property-hero__swiper {
    width: 100%;
    height: 100%;
}

.p-property-hero__slide {
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.p-property-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-property-hero__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: clamp(40px, 3.5vw, 50px);
    height: clamp(40px, 3.5vw, 50px);
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.4);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background 0.3s;
}

.p-property-hero__nav:hover {
    background: rgba(0, 0, 0, 0.65);
}

.p-property-hero__nav--prev {
    left: clamp(10px, 1.39vw, 20px);
}

.p-property-hero__nav--next {
    right: clamp(10px, 1.39vw, 20px);
}

.p-property-hero__nav.swiper-button-disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}

/* ── FVサムネイルスライダー ── */
.p-property-fv {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    position: relative;
}

.p-property-fv__track-wrap {
    position: relative;
    display: flex;
    align-items: center;
    padding-top: clamp(7.11px, 0.69vw, 15px);
    padding-left: clamp(42.67px, 4.17vw, 60px);
}

.p-property-fv__thumbs-swiper {
    width: 100%;
    overflow: hidden;
}

.p-property-fv__slide {
    width: clamp(113.78px, 11.11vw, 160px) !important;
    height: clamp(71.11px, 6.94vw, 100px);
    cursor: pointer;
    overflow: hidden;
    padding: 5px;
    box-sizing: border-box;
    opacity: 0.5;
    transition: opacity 0.3s;
}

.p-property-fv__slide:hover {
    opacity: 0.85;
}

.p-property-fv__slide.swiper-slide-thumb-active {
    opacity: 1;
    outline: 2px solid #042275;
    outline-offset: -2px;
    border-radius: 4px;
}

.p-property-fv__thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 2px;
}

/* FVスライダー ナビボタン */
.p-property-fv__nav-wrap {
    display: flex;
    gap: clamp(7.11px, 0.69vw, 10px);
    padding-left: clamp(42.67px, 4.17vw, 60px);
    margin-top: clamp(7.11px, 0.69vw, 10px);
    margin-bottom: 5px;
}

.p-property-fv__nav {
    position: relative;
    top: auto;
    transform: none;
    z-index: 2;
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: opacity 0.3s;
}

.p-property-fv__nav:hover {
    opacity: 0.8;
}

.p-property-fv__nav.is-disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}

/* ── ポップアップ ── */
.p-property-popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    align-items: center;
    justify-content: center;
}

.p-property-popup.is-active {
    display: flex;
}

.p-property-popup__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
}

.p-property-popup__content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
}

.p-property-popup__img {
    max-width: 100%;
    max-height: 85vh;
    object-fit: contain;
    display: block;
}

.p-property-popup__close {
    position: absolute;
    top: clamp(-40px, -2.78vw, -28.44px);
    right: 0;
    background: none;
    border: none;
    color: #FFFFFF;
    font-size: clamp(25.6px, 2.5vw, 36px);
    cursor: pointer;
    line-height: 1;
}

.p-property-popup__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: #042275;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease;
}

.p-property-popup__nav:hover {
    opacity: 0.8;
}

.p-property-popup__nav--prev {
    left: 20px;
}

.p-property-popup__nav--next {
    right: 20px;
}

/* ── タイトルエリア ── */
.p-property-single__title-area {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 65px clamp(42.67px, 4.17vw, 60px) 5px;
    box-sizing: border-box;
}

.p-property-single__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(24.89px, 2.43vw, 35px);
    line-height: 1.4;
    color: #000000;
}

/* ── メイン + サイドバー コンテナ ── */
.p-property-single__container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 clamp(42.67px, 4.17vw, 60px);
    box-sizing: border-box;
    display: flex;
    gap: clamp(42.67px, 4.17vw, 60px);
    align-items: flex-start;
}

/* ── メインコンテンツ ── */
.p-property-single__main {
    width: clamp(604.44px, 59.03vw, 850px);
    flex-shrink: 0;
}

.p-property-single__subtitle {
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #333333;
    margin-bottom: clamp(22.76px, 2.22vw, 32px);
}

/* セクション見出し帯 */
.p-property-section {
    margin-bottom: clamp(34.13px, 3.33vw, 48px);
}

.p-property-section__heading {
    width: 100%;
    padding: clamp(7.11px, 0.69vw, 10px) clamp(10.67px, 1.04vw, 15px);
    background: #EDF0F9;
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(19.91px, 1.94vw, 28px);
    letter-spacing: 0.1em;
    color: #000000;
    box-sizing: border-box;
    margin-bottom: clamp(21.33px, 2.08vw, 30px);
}

.p-property-section__body {
    padding: 0;
}

/* 物件説明 */
.p-property-desc {
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #333333;
}

.p-property-desc p {
    margin-bottom: 1em;
}

.p-property-desc p:last-child {
    margin-bottom: 0;
}

/* 物件動画 2カラム */
.p-property-videos {
    display: flex;
    gap: clamp(14.22px, 1.39vw, 20px);
    flex-wrap: wrap;
}

.p-property-videos__item {
    width: clamp(284.44px, 27.78vw, 400px);
    height: clamp(163.56px, 15.97vw, 230px);
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 4px;
}

.p-property-videos__item iframe,
.p-property-videos__item video {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

/* 国名ボタン */
.p-property-single__country-btn-wrap {
    display: flex;
    margin: clamp(28.44px, 2.78vw, 40px) 0 clamp(34.13px, 3.33vw, 48px);
}

.p-property-single__country-btn {
    width: clamp(305.78px, 29.86vw, 430px);
}

/* おすすめポイント */
.p-property-points__item {
    margin-bottom: clamp(19.91px, 1.94vw, 28px);
}

.p-property-points__item:last-child {
    margin-bottom: 0;
}

.p-property-points__title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 700;
    font-size: clamp(14.22px, 1.39vw, 20px);
    letter-spacing: 0.1em;
    color: #000000;
    margin-bottom: clamp(8.53px, 0.83vw, 12px);
    display: flex;
    align-items: center;
    gap: 8px;
}

.p-property-points__title::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    background: #042275;
    border-radius: 50%;
    flex-shrink: 0;
}

.p-property-points__desc {
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(11.38px, 1.11vw, 16px);
    line-height: 180%;
    color: #333333;
}

/* ── 部屋タイプ ── */
.p-property-rooms {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(17.07px, 1.67vw, 24px);
}

.p-property-rooms__card {
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.p-property-rooms__slider-wrap {
    position: relative;
    width: 100%;
}

.p-property-rooms__swiper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.p-property-rooms__nav-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-top: 15px;
}

.p-property-rooms__nav {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 37px;
    height: 15px;
    background-color: #042275;
    border-radius: 99px;
    border: none;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: opacity 0.3s ease;
}

.p-property-rooms__nav:hover {
    opacity: 0.8;
}

.p-property-rooms__nav.swiper-button-disabled {
    opacity: 0.3;
    pointer-events: none;
}

.p-property-rooms-pagination {
    position: static;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.p-property-rooms-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: #D9D9D9; 
    opacity: 1;
    margin: 0 !important;
}

.p-property-rooms-pagination .swiper-pagination-bullet-active {
    background: #042275;
}

.p-property-rooms__img {
    width: 100%;
    height: clamp(152.18px, 14.86vw, 214px);
    border: 1px solid #CECECE;
    overflow: hidden;
    margin-bottom: 0;
    box-sizing: border-box;
}

.p-property-rooms__img.js-room-popup {
    cursor: pointer;
}

.p-property-rooms__img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-property-rooms__table {
    width: 100%;
    border-collapse: collapse;
    margin-top: clamp(10.67px, 1.04vw, 15px);
}

.p-property-rooms__table th {
    width: clamp(78.22px, 7.64vw, 110px);
    height: clamp(27.73px, 2.71vw, 39px);
    padding: clamp(7.11px, 0.69vw, 10px) clamp(10.67px, 1.04vw, 15px);
    background: #042275;
    color: #FFFFFF;
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(9.96px, 0.97vw, 14px);
    vertical-align: middle;
    border-bottom: 1px solid #FFFFFF;
    box-sizing: border-box;
    text-align: left;
}

.p-property-rooms__table td {
    padding: clamp(7.11px, 0.69vw, 10px) clamp(10.67px, 1.04vw, 15px);
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    vertical-align: middle;
    border-bottom: 1px solid #CECECE;
}

.p-property-rooms__table-area th,
.p-property-rooms__table-area td {
    height: clamp(42.67px, 4.17vw, 60px);
}

.p-property-rooms__note {
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-size: clamp(8.53px, 0.83vw, 12px);
    color: #666666;
    margin-top: clamp(5.69px, 0.56vw, 8px);
    line-height: 1.6;
}

/* ── 物件情報テーブル ── */
.p-property-info-table {
    width: 100%;
    border-collapse: collapse;
}

.p-property-info-table th {
    width: clamp(146.49px, 14.31vw, 206px);
    padding: clamp(8.53px, 0.83vw, 12px) clamp(10.67px, 1.04vw, 15px);
    background: #042275;
    color: #FFFFFF;
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(9.96px, 0.97vw, 14px);
    vertical-align: middle;
    border-bottom: 1px solid #FFFFFF;
    box-sizing: border-box;
    text-align: left;
}

.p-property-info-table td {
    padding: clamp(8.53px, 0.83vw, 12px) clamp(10.67px, 1.04vw, 15px);
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: clamp(9.96px, 0.97vw, 14px);
    vertical-align: middle;
    border-bottom: 1px solid #CECECE;
}

.p-property-info-table__empty {
    text-align: center;
}

/* ── サイドバー ── */
.p-property-single__sidebar {
    width: clamp(216.89px, 21.18vw, 305px);
    flex-shrink: 0;
}

.p-property-sidebar-sticky {
    position: sticky;
    top: clamp(14.22px, 1.39vw, 20px);
}

/* サイドバー CTAボタン */
.p-property-sidebar__cta-btns {
    display: flex;
    flex-direction: column;
    gap: clamp(11.38px, 1.11vw, 16px);
    margin-bottom: clamp(17.07px, 1.67vw, 24px);
}

.p-property-sidebar__btn {
    width: 100%;
    height: clamp(42.67px, 4.17vw, 60px);
    font-size: clamp(11.38px, 1.11vw, 16px);
    padding: 0 clamp(14.22px, 1.39vw, 20px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.p-property-sidebar__btn .p-cta__btn-label {
    font-size: clamp(11.38px, 1.11vw, 16px);
}

.p-property-sidebar__btn .p-cta__btn-arrow {
    width: clamp(24.18px, 2.36vw, 34px);
    height: clamp(7.82px, 0.76vw, 11px);
    border-radius: clamp(35.56px, 3.47vw, 50px);
    box-sizing: content-box;
}

.p-property-sidebar__btn .p-cta__btn-arrow svg {
    width: clamp(9.96px, 0.97vw, 14px);
    height: clamp(6.4px, 0.63vw, 9px);
}

/* サイドバー フォームボックス */
.p-property-sidebar__form-box {
    width: clamp(216.89px, 21.18vw, 305px);
    border-radius: clamp(7.11px, 0.69vw, 10px);
    background: #EDF0F9;
    padding: clamp(21.33px, 2.08vw, 30px) clamp(14.22px, 1.39vw, 20px);
    box-sizing: border-box;
}

.p-property-sidebar__form-title {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: clamp(17.07px, 1.67vw, 24px);
    letter-spacing: 0.1em;
    text-align: center;
    color: #000000;
    margin-bottom: clamp(17.07px, 1.67vw, 24px);
}

.p-property-sidebar__form-inner {
    width: clamp(188.44px, 18.4vw, 265px);
    margin: 0 auto;
}

.p-property-sidebar__form-inner .wpcf7-form > p {
    margin-top: 0;
    margin-bottom: clamp(8.53px, 0.83vw, 12px);
}

.p-property-sidebar__form-inner .wpcf7-form > p:first-of-type {
    margin-top: 0;
}

.p-property-sidebar__form-inner .wpcf7-form br {
    display: none;
}

/* サイドバー フォーム ラベル */
.p-property-sidebar__form-inner label {
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(11.38px, 1.11vw, 16px);
    color: #333333;
    margin-bottom: 0;
}

.p-property-sidebar__form-inner .required-mark {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #D32929;
    margin-left: 2px;
}

/* サイドバー フォーム 入力 */
.p-property-sidebar__form-inner .wpcf7-form-control.wpcf7-text,
.p-property-sidebar__form-inner .wpcf7-form-control.wpcf7-email,
.p-property-sidebar__form-inner .wpcf7-form-control.wpcf7-tel {
    width: 100%;
    height: clamp(32px, 3.13vw, 45px);
    border: 1px solid #B3B3B3;
    border-radius: clamp(5.69px, 0.56vw, 8px);
    background: #FFFFFF;
    padding: clamp(7.11px, 0.69vw, 10px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #333333;
    box-sizing: border-box;
    appearance: none;
}

.p-property-sidebar__form-inner .wpcf7-form-control.wpcf7-textarea {
    width: 100%;
    height: clamp(71.11px, 6.94vw, 100px);
    border: 1px solid #B3B3B3;
    border-radius: clamp(5.69px, 0.56vw, 8px);
    background: #FFFFFF;
    padding: clamp(7.11px, 0.69vw, 10px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(9.96px, 0.97vw, 14px);
    color: #333333;
    box-sizing: border-box;
    appearance: none;
    resize: vertical;
}

.p-property-sidebar__form-inner .wpcf7-form-control:focus {
    outline: 2px solid #042275;
    outline-offset: -2px;
}

.p-property-sidebar__form-inner .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* サイドバー 姓・名 2カラム */
.p-property-sidebar__name-row {
    display: flex;
    gap: clamp(10.67px, 1.04vw, 15px);
    margin-bottom: 15px;
}

.p-property-sidebar__name-row .p-property-sidebar__name-col {
    flex: 1;
}

.p-property-sidebar__name-row .wpcf7-form-control.wpcf7-text {
    width: clamp(88.89px, 8.68vw, 125px);
}

/* サイドバー プラポリ文 */
.p-property-sidebar__privacy {
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 11px;
    text-align: center;
    color: #333333;
    margin: clamp(21.33px, 2.08vw, 30px) 0 clamp(11.38px, 1.11vw, 16px);
    padding-top: clamp(14.22px, 1.39vw, 20px);
    line-height: 1.6;
}

.p-property-sidebar__privacy a {
    color: #042275;
    text-decoration: underline;
    font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: inherit;
}

/* サイドバー 送信ボタン */
.p-property-sidebar__submit-wrap {
    position: relative;
    display: flex;
    justify-content: center;
}

.p-property-sidebar__submit-wrap .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    width: clamp(188.44px, 18.4vw, 265px);
    height: clamp(39.82px, 3.89vw, 56px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background: #042275;
    border: 2px solid #FFFFFF;
    color: #FFFFFF;
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: clamp(9.96px, 0.97vw, 14px);
    letter-spacing: 0.07em;
    cursor: pointer;
    transition: opacity 0.3s ease, transform 0.3s ease;
    box-shadow: 2px 2px 4px 0px #00000040;
    padding: 0 clamp(49.78px, 4.86vw, 70px) 0 clamp(14.22px, 1.39vw, 20px);
    box-sizing: border-box;
}

.p-property-sidebar__submit-wrap .wpcf7-submit:hover {
    opacity: 0.85;
    transform: translateY(-2px);
}

.p-property-sidebar__submit-wrap::after {
    content: '';
    position: absolute;
    right: calc(50% - clamp(94.22px, 9.2vw, 132.5px) + clamp(7.11px, 0.69vw, 10px) + 10px);
    top: calc((clamp(39.82px, 3.89vw, 56px) - clamp(16.36px, 1.6vw, 23px)) / 2);
    width: clamp(40.53px, 3.96vw, 57px);
    height: clamp(16.36px, 1.6vw, 23px);
    border-radius: clamp(70.4px, 6.88vw, 99px);
    background-color: #FFFFFF;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='10' viewBox='0 0 17 10' fill='none'%3E%3Cline x1='0' y1='5' x2='15' y2='5' stroke='%23042275' stroke-width='1'/%3E%3Cpolyline points='12,1.5 15.5,5 12,8.5' stroke='%23042275' stroke-width='1' fill='none'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
}

/* バリデーションエラー */
.p-property-sidebar__form-inner .wpcf7-not-valid-tip {
    font-size: clamp(7.82px, 0.76vw, 11px);
    color: #C0392B;
    margin-top: 2px;
}

.p-property-sidebar__form-inner .wpcf7-response-output {
    font-size: clamp(8.53px, 0.83vw, 12px);
    border: none;
    padding: clamp(5.69px, 0.56vw, 8px);
    border-radius: 4px;
    margin-top: clamp(5.69px, 0.56vw, 8px);
}

.p-property-sidebar__form-inner .wpcf7-form-control::placeholder {
    color: #B3B3B3;
}

.p-property-sidebar__form-inner .wpcf7-form > p {
    margin-bottom: clamp(9.96px, 0.97vw, 14px);
}

/* サイドバー カスタムセレクト（興味のある国） */
.p-property-sidebar__form-inner .c-custom-select {
    font-size: clamp(9.96px, 0.97vw, 14px);
}

.p-property-sidebar__form-inner .c-custom-select__trigger {
    height: clamp(32px, 3.13vw, 45px);
    padding: 0 clamp(11.38px, 1.11vw, 16px);
    border-radius: clamp(4.27px, 0.42vw, 6px);
}

.p-property-sidebar__form-inner .c-custom-select.is-open .c-custom-select__trigger {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.p-property-sidebar__form-inner .c-custom-select__trigger-text {
    font-size: clamp(9.96px, 0.97vw, 14px);
}

.p-property-sidebar__form-inner .c-custom-select__dropdown {
    border-bottom-left-radius: clamp(4.27px, 0.42vw, 6px);
    border-bottom-right-radius: clamp(4.27px, 0.42vw, 6px);
}

.p-property-sidebar__form-inner .c-custom-select.is-open .c-custom-select__dropdown {
    max-height: 180px;
}

.p-property-sidebar__form-inner .c-custom-select__divider {
    width: auto;
    max-width: calc(100% - clamp(22.76px, 2.22vw, 32px));
    margin: 0 clamp(11.38px, 1.11vw, 16px);
}

.p-property-sidebar__form-inner .c-custom-select__option {
    font-size: clamp(9.96px, 0.97vw, 14px);
    padding: 8px clamp(11.38px, 1.11vw, 16px);
}

/* サイドバー ご予算 */
.p-property-sidebar__budget-row {
    display: block;
}

.p-property-sidebar__budget-row br {
    display: none;
}

.p-property-sidebar__budget-row p {
    display: flex !important;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.p-property-sidebar__budget-row .wpcf7-form-control-wrap {
    display: block;
    flex: 1;
    width: 100%;
}

.p-property-sidebar__budget-row .wpcf7-form-control.wpcf7-text {
    width: 100% !important;
}

.p-property-sidebar__budget-row .unit {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 100%;
    color: #333333;
    white-space: nowrap;
    flex-shrink: 0;
}

/* ── おすすめ物件 PICK UP ── */
.p-property-single .p-pickup {
    padding-bottom: clamp(71.11px, 6.94vw, 100px);
}

/* ── スマホ用フォーム (PC版非表示) ── */
.p-property-sp-form {
    display: none;
}

/* ── レスポンシブ ── */
@media screen and (max-width: 1023px) {
    .p-property-breadcrumb .l-inner {
        padding-left: clamp(20px, calc(5.71px + 3.82vw), 35px);
        padding-right: clamp(20px, calc(5.71px + 3.82vw), 35px);
        justify-content: flex-start;
    }

    .p-property-breadcrumb a,
    .p-property-breadcrumb__current,
    .p-property-breadcrumb__sep {
        font-size: 12px;
    }

    .p-property-single__container {
        padding: 0 30px 60px;
    }

    .p-property-single__main {
        width: auto;
        flex: 1;
        min-width: 0;
    }

    .p-property-single__title-area {
        padding: 0 30px 30px;
    }

    .p-property-videos__item {
        width: calc(50% - 10px);
        height: auto;
        aspect-ratio: 400 / 230;
    }
}

@media screen and (max-width: 1023px) {
    .p-property-hero {
        height: 300px;
    }

    .p-property-single__title-area {
        padding: 0 20px 20px;
    }

    .p-property-single__title {
        font-size: 24px;
    }

    .p-property-single__container {
        flex-direction: column;
        padding: 0 20px 40px;
        gap: 40px;
    }

    .p-property-single__main {
        width: 100%;
    }

    .p-property-single__sidebar {
        display: none;
    }

    /* SP用 フォーム表示・サイズ調整（375px→1023px の clamp スケール） */
    .p-property-sp-form {
        display: block;
        width: 100%;
        background: #EDF0F9;
        padding: 0 clamp(20px, calc(14.21px + 1.54vw), 30px);
        box-sizing: border-box;
    }

    .p-property-sp-form__box {
        width: 100% !important;
        max-width: clamp(500px, calc(418.98px + 21.6vw), 640px);
        margin: 0 auto;
        padding: clamp(30px, calc(24.21px + 1.54vw), 40px) clamp(20px, calc(14.21px + 1.54vw), 30px);
        box-sizing: border-box;
    }

    .p-property-sp-form__box .p-property-sidebar__form-title {
        font-size: clamp(20px, calc(16.53px + 0.93vw), 26px);
        margin-bottom: clamp(24px, calc(19.37px + 1.23vw), 32px);
    }

    .p-property-sp-form__box .p-property-sidebar__form-inner {
        width: 100% !important;
    }

    .p-property-sp-form__box label {
        font-size: clamp(14px, calc(12.26px + 0.46vw), 17px);
    }

    .p-property-sp-form__box .required-mark {
        font-size: clamp(11px, calc(9.84px + 0.31vw), 13px);
    }

    .p-property-sp-form__box .wpcf7-form-control.wpcf7-text,
    .p-property-sp-form__box .wpcf7-form-control.wpcf7-email,
    .p-property-sp-form__box .wpcf7-form-control.wpcf7-tel {
        height: clamp(48px, calc(43.37px + 1.23vw), 56px);
        font-size: clamp(15px, calc(13.84px + 0.31vw), 17px);
        padding: clamp(10px, calc(8.84px + 0.31vw), 12px) clamp(14px, calc(12.84px + 0.31vw), 16px);
    }

    /* SP用 姓・名は2カラムflexの枠内で100%に */
    .p-property-sp-form__box .p-property-sidebar__name-row {
        gap: clamp(15px, calc(12.11px + 0.77vw), 20px);
        margin-bottom: clamp(15px, calc(12.11px + 0.77vw), 20px);
    }

    .p-property-sp-form__box .p-property-sidebar__name-row .p-property-sidebar__name-col {
        flex: 1;
        min-width: 0;
    }

    .p-property-sp-form__box .p-property-sidebar__name-row .wpcf7-form-control.wpcf7-text {
        width: 100%;
    }

    /* SP用 興味のある国（カスタムセレクト）を他の入力欄と揃える */
    .p-property-sp-form__box .c-custom-select {
        font-size: clamp(15px, calc(13.84px + 0.31vw), 17px);
    }

    .p-property-sp-form__box .c-custom-select__trigger {
        height: clamp(48px, calc(43.37px + 1.23vw), 56px);
        padding: 0 clamp(14px, calc(12.84px + 0.31vw), 16px);
        border-radius: clamp(8px, calc(6.84px + 0.31vw), 10px);
    }

    .p-property-sp-form__box .c-custom-select__trigger-text {
        font-size: clamp(15px, calc(13.84px + 0.31vw), 17px);
    }

    .p-property-sp-form__box .c-custom-select__dropdown {
        border-bottom-left-radius: clamp(8px, calc(6.84px + 0.31vw), 10px);
        border-bottom-right-radius: clamp(8px, calc(6.84px + 0.31vw), 10px);
    }

    .p-property-sp-form__box .c-custom-select__option {
        font-size: clamp(15px, calc(13.84px + 0.31vw), 17px);
        padding: clamp(10px, calc(8.84px + 0.31vw), 12px) clamp(14px, calc(12.84px + 0.31vw), 16px);
    }

    .p-property-sp-form__box .c-custom-select__divider {
        max-width: calc(100% - clamp(28px, calc(25.69px + 0.62vw), 32px));
        margin: 0 clamp(14px, calc(12.84px + 0.31vw), 16px);
    }

    .p-property-sp-form__box .wpcf7-form-control.wpcf7-textarea {
        height: clamp(120px, calc(108.43px + 3.09vw), 140px);
        font-size: clamp(15px, calc(13.84px + 0.31vw), 17px);
        padding: clamp(10px, calc(8.84px + 0.31vw), 12px) clamp(14px, calc(12.84px + 0.31vw), 16px);
    }

    .p-property-sp-form__box .p-property-sidebar__submit-wrap {
        width: 100% !important;
        display: flex;
        justify-content: center;
    }

    .p-property-sp-form__box .wpcf7-submit {
        width: 100% !important;
        height: 56px;
        font-size: 16px;
        padding: 0 70px 0 30px;
    }

    .p-property-sp-form__box .p-property-sidebar__submit-wrap::after {
        width: 50px;
        height: 20px;
        top: calc((56px - 20px) / 2);
        right: calc(50% - 110px + 13px);
    }

    .p-property-section__heading {
        font-size: 22px;
    }

    .p-property-rooms {
        grid-template-columns: 1fr;
    }

    .p-property-rooms__img {
        width: 100%;
        height: auto;
        aspect-ratio: 380 / 214;
    }

    /* --- SP: 部屋タイプ スライダーナビ --- */
    .p-property-rooms__slider-wrap {
        position: relative;
    }

    .p-property-rooms__nav-wrap {
        position: static;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 0;
        margin-top: 0;
    }

    .p-property-rooms__nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background-color: rgba(4, 34, 117, 0.65);
        z-index: 5;
    }

    .p-property-rooms__nav--prev {
        left: 6px;
    }

    .p-property-rooms__nav--next {
        right: 6px;
    }

    .p-property-rooms__nav svg {
        display: none;
    }

    .p-property-rooms__nav::after {
        content: '';
        display: block;
        width: 8px;
        height: 10px;
        background-color: #fff;
    }

    .p-property-rooms__nav--prev::after {
        clip-path: polygon(100% 0, 100% 100%, 0 50%);
        margin-right: 2px;
    }

    .p-property-rooms__nav--next::after {
        clip-path: polygon(0 0, 0 100%, 100% 50%);
        margin-left: 2px;
    }

    .p-property-rooms__nav:hover {
        background-color: rgba(4, 34, 117, 0.85);
    }

    .p-property-rooms-pagination {
        width: 100%;
        margin-top: 12px;
    }

    .p-property-videos {
        flex-direction: column;
    }

    .p-property-videos__item {
        width: 100%;
    }

    .p-property-single__country-btn {
        width: 100%;
        height: clamp(64px, calc(48.96px + 4.01vw), 90px);
    }

    .p-property-single__country-btn .p-cta__btn-label {
        font-size: clamp(12px, calc(8.51px + 0.93vw), 18px);
    }

    .p-property-fv__slide {
        width: 120px;
        height: 75px;
    }

    .p-property-fv__nav-wrap {
        padding-left: 0;
        justify-content: flex-end;
        padding: 0 10px;
    }

    .p-property-fv__nav {
        width: clamp(57px, calc(35.02px + 5.86vw), 95px);
        height: clamp(27px, calc(16.59px + 2.78vw), 45px);
        border-radius: 9999px;
    }
}

/* ==========================================================================
   お問い合わせ完了ページ
   ========================================================================== */
/* ==========================================================================
   プライバシーポリシー
   ========================================================================== */
.p-privacy {
    padding: 60px 0 100px;
}

.p-privacy__inner {
    width: 900px;
    max-width: calc(100% - 40px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-privacy__lead {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 15px;
    line-height: 2;
    color: #333333;
    margin: 0 0 48px;
}

.p-privacy__section {
    width: 100%;
    margin-bottom: 40px;
}

.p-privacy__heading {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: 18px;
    color: #042275;
    line-height: 1.6;
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid #D0D7E8;
}

.p-privacy__text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 15px;
    line-height: 2;
    color: #333333;
    margin: 0 0 12px;
}

.p-privacy__subheading {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 15px;
    line-height: 2;
    color: #333333;
    margin: 16px 0 8px;
}

.p-privacy__list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.p-privacy__list li {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 15px;
    line-height: 2;
    color: #333333;
    padding-left: 1.5em;
    text-indent: -1.5em;
    margin-bottom: 4px;
}

.p-privacy__list--sub li {
    padding-left: 2em;
    text-indent: -2em;
}

.p-privacy__company {
    margin-top: 16px;
    padding: 24px 32px;
    background: #F7F8FB;
    border-radius: 8px;
}

.p-privacy__company p {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 15px;
    line-height: 2;
    color: #333333;
    margin: 0;
}

.p-privacy__company strong {
    font-weight: 700;
    color: #042275;
}

.p-privacy .p-contact-thanks__btn {
    margin-top: 20px;
}

@media screen and (max-width: 1023px) {
    .p-privacy {
        padding: 40px 0 60px;
    }

    .p-privacy__lead,
    .p-privacy__text,
    .p-privacy__list li {
        font-size: 14px;
    }

    .p-privacy__heading {
        font-size: 16px;
    }

    .p-privacy__company {
        padding: 16px 20px;
    }
}

/* ==========================================================================
   お問い合わせ完了
   ========================================================================== */
.p-contact-thanks {
    padding: 80px 0 120px;
}

.p-contact-thanks__inner {
    width: 510px;
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-contact-thanks__text {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: 24px;
    letter-spacing: 0.1em;
    text-align: center;
    line-height: 1.8;
    color: #000000;
    margin: 0 0 48px;
}

.p-contact-thanks__btn {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-contact-thanks__btn:hover {
    opacity: 0.7;
}

.p-contact-thanks__btn-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 23px;
    border-radius: 99px;
    background: #042275;
    border: 1px solid #FFFFFF;
    flex-shrink: 0;
}

.p-contact-thanks__btn-arrow svg {
    width: 17px;
    height: 10px;
}

.p-contact-thanks__btn-label {
    font-family: 'Shippori Mincho', serif;
    font-weight: 600;
    font-size: 16px;
    line-height: 200%;
    letter-spacing: 0.07em;
    text-align: center;
    color: #042275;
}

.p-contact-thanks .u-sp-only {
    display: none;
}

@media screen and (max-width: 1023px) {
    .p-contact-thanks {
        padding: 50px 20px 80px;
    }

    .p-contact-thanks .u-sp-only {
        display: inline;
    }

    .p-contact-thanks__text {
        font-size: clamp(18px, calc(14.53px + 0.93vw), 24px);
    }

    .p-contact-thanks__btn-label {
        font-size: clamp(16px, calc(22.31px - 0.62vw), 20px);
    }
}

/* ==========================================================================
   ビューポートスケーリング（1440px以上）
   ========================================================================== */

@media screen and (min-width: 1441px) {
    body {
        width: 1440px;
    }
}

/* ==========================================================================
   Company Profile Page
   ========================================================================== */
.p-company {
    padding: clamp(60px, 8vw, 100px) 0;
}

.p-company__inner {
    max-width: 1240px; /* 1200px + padding 20px*2 */
    margin: 0 auto;
    padding: 0 20px;
}

.p-company__table-wrap {
    margin-bottom: clamp(40px, 6vw, 60px);
    width: 100%;
}

.p-company__table {
    width: 100%;
    border-collapse: collapse;
    font-size: clamp(14px, 1.1vw, 15px);
    line-height: 1.8;
    border: 1px solid #e5ebf4;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}

.p-company__table th {
    width: 25%;
    min-width: 160px;
    background-color: #e5ebf4;
    color: #333;
    font-weight: 600;
    padding: clamp(15px, 2vw, 25px) clamp(15px, 3vw, 40px);
    text-align: left;
    vertical-align: top;
    border-bottom: 2px solid #fff;
}

.p-company__table td {
    background-color: #fff;
    color: #333;
    padding: clamp(15px, 2vw, 25px) clamp(15px, 3vw, 40px);
    border-bottom: 1px solid #f0f0f0;
    vertical-align: top;
}

.p-company__table tr:last-child th {
    border-bottom: none;
}
.p-company__table tr:last-child td {
    border-bottom: 1px solid #f0f0f0;
}

.p-company__map {
    width: 100%;
    aspect-ratio: 4 / 3;
    padding-bottom: 0;
    overflow: hidden;
    position: relative;
}

.p-company__map-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    background: #fff;
    color: #1a73e8; /* Google Maps like blue */
    padding: 10px 16px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    z-index: 10;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background 0.3s, color 0.3s;
}

.p-company__map-btn:hover {
    background: #f8f9fa;
    color: #042275;
}

.p-company__map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

@media screen and (max-width: 767px) {
    .p-company__table, 
    .p-company__table tbody, 
    .p-company__table tr, 
    .p-company__table th, 
    .p-company__table td {
        display: block;
        width: 100%;
    }

    .p-company__table th {
        border-bottom: none;
        padding-bottom: 10px;
    }

    .p-company__table td {
        padding-top: 0;
        border-bottom: 1px solid #e5ebf4;
    }

    .p-company__table tr:last-child td {
        border-bottom: none;
    }

    .p-company__map-btn {
        display: none;
    }
}
