@charset "UTF-8";

/* SP
----------------------------------------------------------*/
@media only screen and (max-width: 768px) {
    :root {
        /* ヘッダーの高さ（上下余白2.604vw + 本体28.906vw） */
        --header-height: 34.115vw;
        --sp-header-topbar-height: 18.23vw;
        --sp-menu-duration: 0.45s;
        --sp-menu-ease: cubic-bezier(0.4, 0, 0.2, 1);
    }
    body.is-sp-menu-open {
        overflow: hidden;
    }
	/* page */
    .wrapper {
        min-width: 0;
        overflow: visible;
        padding-top: calc(var(--header-height));
    }
    .header_01.header-group,
    .footer_01.footer-group {
        min-width: 0;
    }
    /*** 横スクロール ***/
    .scroll {
        overflow: auto;
        white-space: nowrap;
    }
    /* inner　デバイスのモニター幅に納めるコンテナ */
    .inner,
    .inner-1280,
    .inner-1320,
    .inner-1400,
    .inner-1200,
    .inner-1000,
    .inner-900,
    .inner-800,
    .inner-1080 {
        /* padding: 0 3%;  デバイスのモニター幅に納めるコンテナ */
        width: 100%;
        max-width: unset;
        padding: 0 5.209vw;
        box-sizing: border-box;
    }
    /*===wrap / ページ余白（部品内蔵）===*/
    /* PC160→SP250 / PC80→SP150 / PC40→SP60 / PC32→SP64 / PC20→SP40 / PC10→SP10 */
    .bc-wrap {
        margin-top: 1.303vw;
    }
    .page-head .ttl-01 {
        margin-bottom: 19.532vw;
    }
    .page-head + .section {
        margin-top: 32.553vw;
    }
    .section + .section {
        margin-top: 32.553vw;
    }
    .section.cnt-bg-01,
    .section.cnt-bg-02 {
        padding-top: 19.532vw;
        padding-bottom: 19.532vw;
    }
    .section.cnt-bg-01 + .section,
    .section.cnt-bg-02 + .section {
        margin-top: 19.532vw;
    }
    .section > .inner,
    .section > .inner-1280,
    .section > .inner-1320,
    .section > .inner-1400,
    .section > .inner-1200,
    .section > .inner-1000,
    .section > .inner-900,
    .section > .inner-800,
    .section > .inner-1080 {
        gap: 19.532vw;
    }
    .page-head + .section.sec-privacy {
        margin-top: 0;
    }

    /*===MV（ページヒーロー）===*/
    .mv-visual {
        min-width: 0;
        height: 70.573vw; /* 542 / 768 */
    }
    .mv-visual img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
    }
    .mv-inner {
        min-height: 0;
        padding-top: calc(90.104vw - var(--header-height)); /* タイトル開始 y=692 */
    }
    .mv-inner .bc-wrap {
        position: static;
    }
    .mv-inner .page-head {
        padding-top: 0;
    }
    .mv-inner .page-head .ttl-01 {
        margin-bottom: 19.531vw; /* タイトル〜リード 150 */
    }
    .mv-lead {
        margin-bottom: 32.552vw; /* リード〜本文 250 */
    }
    .mv-lead .page-lead {
        max-width: none;
        margin: 0;
        text-align: left;
        font-size: 4.167vw;
        line-height: 1.9;
    }
    .mv-wrap + .section {
        margin-top: 0;
    }

    /* ヒーロー画像なし（タイトルのみ）
       SPパンくずは下配置のため、ヘッダー直下の余白でタイトル開始 y=392 を担保 */
    .mv-wrap:not(:has(.mv-visual)) .mv-inner {
        padding-top: calc(51.042vw - var(--header-height)); /* 392 / 768 */
    }
    .mv-wrap:not(:has(.mv-visual)) .mv-inner .page-head .ttl-01 {
        margin-bottom: 19.532vw;
    }

    .sec-wrap > .ttl-01,
    .sec-wrap > .ttl-02 {
        margin-bottom: 7.813vw;
    }
    .sec-wrap > .ttl-01 + .ttl-02 {
        margin-top: 7.813vw;
    }
    .sec-wrap .ttl-03 {
        margin-bottom: 5.208vw;
    }
    .sec-wrap .ttl-03.type-img {
        margin-bottom: 7.813vw;
    }
    .sec-wrap .txt-01 + .ttl-03 {
        margin-top: 7.813vw;
    }
    .sec-wrap .txt-01 + .col-img,
    .col-box-body .txt-01 + .col-img {
        margin-top: 7.813vw;
    }
    .main > .sec-contact {
        margin-top: 32.553vw;
    }
    .section.cnt-bg-01 + .sec-contact,
    .section.cnt-bg-02 + .sec-contact {
        margin-top: 1.303vw;
    }
    /* SPパンくずは本文下・お問い合わせ上（PC上パンくずは pc-mode-01 で非表示）
       Figma: 本文〜パンくず 250 / パンくず〜お問い合わせ 20 */
    .main > .bc-wrap.sp-mode-01 {
        margin-top: 32.553vw; /* 250 */
    }
    .main > .bc-wrap.sp-mode-01 .breadcrumb {
        padding: 0 0 2.605vw; /* 下 20 */
    }
    .main > .bc-wrap.sp-mode-01 + .sec-contact {
        margin-top: 0;
    }

    /*===margin===*/
    .mt-160{
        margin-top: 32.553vw;
    }
    .mt-80{
        margin-top: 19.532vw;
    }
    .mt-40{
        margin-top: 7.813vw;
    }
    .mt-32{
        margin-top: 8.334vw;
    }
    .mt-20{
        margin-top: 5.208vw;
    }
    .mt-10{
        margin-top: 1.303vw;
    }

    .mb-160{
        margin-bottom: 32.553vw;
    }
    .mb-80{
        margin-bottom: 19.532vw;
    }
    .mb-40{
        margin-bottom: 7.813vw;
    }
    .mb-32{
        margin-bottom: 8.334vw;
    }
    .mb-20{
        margin-bottom: 5.208vw;
    }
    .mb-10{
        margin-bottom: 1.303vw;
    }

    /*===padding（色背景セクション等）===*/
    .pt-80{
        padding-top: 19.532vw;
    }
    .pb-80{
        padding-bottom: 19.532vw;
    }
    .py-80{
        padding-top: 19.532vw;
        padding-bottom: 19.532vw;
    }

    /*===横並びカラム（SPは縦積み・gap64px）===*/
    .flex-wrap-01 {
        flex-direction: column;
        gap: 8.334vw;
    }
    .flex-wrap-01 > .flex-cnt-01,
    .flex-wrap-01.flex-2 > .flex-cnt-01,
    .flex-wrap-01.flex-3 > .flex-cnt-01,
    .flex-wrap-01.flex-4 > .flex-cnt-01 {
        flex: 1 1 auto;
        max-width: none;
        width: 100%;
    }

    /*===カラム用ボックス===*/
    .col-box {
        border-radius: 2.605vw;
        padding: 7.813vw;
    }
    .col-box.type-shadow {
        box-shadow: 0 0 5.208vw rgba(0, 0, 0, 0.1);
    }
    .col-box .col-img {
        height: 52.083vw;
        border-radius: 4.167vw 4.167vw 0 0;
    }
    .col-box.type-img .col-img {
        border-radius: 0;
    }
    .col-box.type-img .col-box-body {
        gap: 5.208vw;
        padding: 7.813vw;
    }

    /*===表組===*/
    .dl-list-01 .dl-item {
        flex-direction: column;
        gap: 2.604vw;
        padding: 5.208vw 0;
    }
    .dl-list-01 .dl-ttl,
    .dl-list-01.type-02 .dl-ttl {
        flex: none;
        max-width: none;
        width: 100%;
        font-size: 4.167vw;
    }
    .dl-list-01 .dl-txt {
        font-size: 4.167vw;
    }

    /*===ダイヤリスト===*/
    .list-04 li {
        font-size: 4.167vw;
    }

    /*===パンくず===*/
    /* SP_パンくず: 28px / lh1.5 / gap15 / HOME=#447D1A下線・現在=#222 */
    .breadcrumb {
        padding: 0;
    }
    .breadcrumb .inner{
        padding: 0 2.604vw;
    }
    .breadcrumb li {
        color: #222;
        font-size: 3.646vw; /* 28 */
        line-height: 1.5;
        margin-right: 1.953vw; /* 15 */
    }
    .breadcrumb li::before {
        margin: 0 1.953vw 0 0; /* 15 */
    }

    /*** main ***/
    .main {
        margin-top: 0;
        /* margin-bottom: 45px; */
    }
    .main.inner {
        padding: 0 0 0 0;
    }
    .main-cont-01,
    .main-cont-02 {
        float: none;
        width: auto;
    }
    .main-cont-01 {
        margin: 0 0 50px 0;
    }

    /*================
    タイトル・テキスト系
    ================*/
    /*===タイトル===*/
    .ttl-01 {
        font-size: 8.333vw;
        line-height: 1.5;
    }
    .ttl-01.type-02,
    .ttl-01.type-03 {
        gap: 2.604vw;
    }
    .ttl-01.type-02::after,
    .ttl-01.type-03::after {
        width: 13.021vw;
        height: 0.521vw;
    }
    .ttl-01 .ttl-01-sub {
        display: block;
        font-size: 6.667vw;
    }
    .ttl-01.type-05 {
        gap: 3.255vw;
    }
    .ttl-01.type-05::before {
        width: 8.464vw;
        height: 6.51vw;
    }
    .ttl-02 {
        font-size: 6.25vw;
    }
    .ttl-03 {
        font-size: 5.208vw;
    }

    /*===テキスト===*/
    .txt-01 {
        font-size: 4.167vw;
        line-height: 1.9;
    }
    .txt-02 {
        font-size: 4.688vw;
        line-height: 1.9;
    }
    .txt-03 {
        font-size: 3.906vw;
        line-height: 1.5;
    }

    /*ドット*/
    .list-02 {
        padding-left: 6.25vw; /* 48px */
        font-size: 4.167vw; /* 32px */
        line-height: 1.3;
    }
    .list-02 li+li {
        margin-top: 5.208vw; /* 40px */
    }

    /*================
    リンク・ボタン
    ================*/
    /*リンク*/
    .link-01 a{
        gap: 3.255vw;
        font-size: 4.167vw;
    }
    .link-01 a:has(.link-ex),
    .link-01 a:has(.link-pdf){
        gap: 2.604vw;
    }
    .link-01 a .arrow2{
        width: 2.604vw;
    }
    .link-01 a .arrow2 > svg{
        width: 2.604vw;
        height: 2.604vw;
    }
    .link-01 a .link-ex{
        width: 3.385vw;
    }
    .link-01 a .link-ex > svg{
        width: 3.385vw;
        height: 3.385vw;
    }
    .link-01 a .link-pdf{
        width: 2.604vw;
    }
    .link-01 a .link-pdf > svg{
        width: 2.604vw;
        height: 3.906vw;
    }

    /* ボタン */
    .btn-01 a {
        width: 89.583vw;
        min-height: 14.583vw;
        padding: 2.604vw 5.208vw;
        border-width: 0.521vw;
        font-size: 4.167vw;
    }
    .btn-01 .arrow2,
    .btn-01 .link-ex {
        right: 5.469vw;
    }
    .btn-01 .arrow2 {
        width: 2.604vw;
        height: 2.604vw;
    }
    .btn-01 .arrow2 > svg {
        width: 2.604vw;
        height: 2.604vw;
    }
    .btn-01 .link-ex {
        width: 3.125vw;
        height: 3.125vw;
    }
    .btn-01 .link-ex > svg {
        width: 3.125vw;
        height: 3.125vw;
    }
    /* 3カラム用 */
    .btn-01.col a {
        width: 73.958vw;
    }
    /* 大文字 */
    .btn-01.lg a {
        width: auto;
        min-width: 73.958vw;
        padding: 2.865vw 5.339vw 2.865vw 14.583vw;
        border-width: 0.26vw;
        font-size: 4.688vw;
    }
    .btn-01.lg .arrow2,
    .btn-01.lg .link-ex {
        right: 5.339vw;
    }
    .btn-01.lg .arrow2 {
        width: 2.604vw;
        height: 2.604vw;
    }
    .btn-01.lg .arrow2 > svg {
        width: 2.604vw;
        height: 2.604vw;
    }
    /* 電話番号 */
    .btn-01.tel a {
        width: auto;
        min-width: 0;
        justify-content: center;
        padding: 2.865vw 5.339vw;
    }
    .btn-01.tel .icon {
        left: 5.339vw;
        width: 5.859vw;
        height: 5.859vw;
    }
    .btn-01.tel .icon img {
        display: block;
        width: 100%;
        height: 100%;
        filter: brightness(0) invert(1);
    }

    /*================
    リスト
    ================*/

    /*================
    テーブル
    ================*/

    /*================
    ヘッダー
    ================*/
    /*===外枠===*/
    .header_01.header-group {
        padding: 2.604vw;
        transition: padding var(--sp-menu-duration) var(--sp-menu-ease);
    }
    .header_01 .header-group-inner {
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 2.605vw;
        border-bottom: none;
        box-shadow: 0 0 2.604vw rgba(0, 0, 0, 0.1);
        overflow: hidden;
        transition: border-radius var(--sp-menu-duration) var(--sp-menu-ease),
            box-shadow var(--sp-menu-duration) var(--sp-menu-ease);
    }
    .header-width {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
        align-items: center;
        justify-content: unset;
        padding: 0;
        gap: 0;
        height: auto;
    }
    /*ロゴ*/
    .header-logo {
        grid-column: 1;
        grid-row: 1;
        padding: 3.777vw 0 3.777vw 2.604vw;
        align-self: center;
        transition: padding-left var(--sp-menu-duration) var(--sp-menu-ease);
    }
    .header-logo a {
        width: 29.557vw;
        max-width: inherit;
        min-width: inherit;
    }
    /*ハンバーガー*/
    .core-parts.header_01 .sp-nav-btn {
        display: flex;
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        justify-self: end;
        padding: 1.693vw 5.209vw 0 0;
    }
    .core-parts.header_01 .hglb-sp-btn {
        z-index: 101;
    }
    .core-parts.header_01 .hglb-sp-btn a {
        color: var(--color-main);
        background-color: transparent;
        overflow: visible;
        display: grid;
        grid-template: 1fr / 1fr;
        justify-items: center;
        border-radius: 0;
    }
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-svg {
        grid-area: 1 / 1;
        width: auto;
        height: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        gap: 1.302vw 0;
        opacity: 0;
        transform: scale(0.92);
        transition: opacity 0.28s ease, transform 0.28s ease;
        pointer-events: none;
    }
    .core-parts.header_01 .hglb-sp-btn a .OPEN {
        opacity: 1;
        transform: scale(1);
        pointer-events: auto;
    }
    .core-parts.header_01 .hglb-sp-btn a .close {
        display: flex;
    }
    .core-parts.header_01.is-menu-open .hglb-sp-btn a .OPEN {
        opacity: 0;
        transform: scale(0.92);
        pointer-events: none;
    }
    .core-parts.header_01.is-menu-open .hglb-sp-btn a .CLOSE {
        opacity: 1;
        transform: scale(1);
        pointer-events: auto;
    }
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-bars {
        display: flex;
        flex-direction: column;
        gap: 1.302vw;
        width: 7.813vw;
    }
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-bars span {
        display: block;
        width: 100%;
        height: 1.302vw;
        border-radius: 2.083vw;
        background-color: var(--color-main);
        transition: transform 0.28s ease, opacity 0.28s ease;
    }
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-close {
        position: relative;
        width: 7.813vw;
        height: 7.813vw;
    }
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-close::before,
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-close::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        width: 7.813vw;
        height: 1.302vw;
        border-radius: 2.083vw;
        background-color: var(--color-main);
        transition: transform 0.28s ease;
    }
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-close::before {
        transform: translate(-50%, -50%) rotate(45deg);
    }
    .core-parts.header_01 .hglb-sp-btn a .sp-btn-close::after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }
    .core-parts.header_01 .sp-btn-txt {
        color: var(--color-main);
        font-size: 2.604vw;
        font-weight: 600;
        line-height: 1.5;
    }
    /* SP用CTA（常時表示） */
    .header-ex-btn-sp {
        display: flex;
        grid-column: 1 / -1;
        grid-row: 3;
        width: 100%;
        margin: 0;
        max-height: 13.281vw;
        opacity: 1;
        overflow: hidden;
        border-top: 0.261vw solid var(--color-border);
        transition: max-height 0.35s var(--sp-menu-ease),
            opacity 0.25s ease,
            border-color 0.25s ease;
    }
    .header-ex-btn-sp li {
        flex: 1;
    }
    .header-ex-btn-sp a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 13.281vw;
        font-size: 3.646vw;
        font-weight: 600;
        line-height: 1.5;
        box-sizing: border-box;
        text-align: center;
    }
    .header-ex-btn-sp .inq-btn a {
        color: var(--color-main);
        background-color: #fff;
    }
    .header-ex-btn-sp .doc-btn a {
        color: #fff;
        background-color: var(--color-main);
    }
    .header-ex-btn-sp .tour-btn a {
        color: #fff;
        background-color: var(--color-accent);
    }
    /* PC用ナビ・CTAはSPでは非表示（ヘッダー下段CTA・メニュー内CTAがあるため） */
    .hglb02-nav,
    .header-ex-btn:not(.sp-menu-ex-btn) {
        display: none;
    }
    /*===メニュー（フルスクリーン展開）===*/
    .core-parts.header_01.is-menu-open {
        padding: 0;
    }
    .core-parts.header_01.is-menu-open .header-group-inner {
        border-radius: 0;
        box-shadow: none;
        background-color: #fff;
    }
    .core-parts.header_01.is-menu-open .header-logo {
        padding: 6.511vw 0 3.907vw 5.209vw;
    }
    .core-parts.header_01.is-menu-open .header-ex-btn-sp {
        max-height: 0;
        opacity: 0;
        border-top-color: transparent;
        pointer-events: none;
    }
    .core-parts.header_01 #sidr,
    .core-parts.header_01.header-group .sidr {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        flex: none;
        gap: 0;
        grid-column: 1 / -1;
        grid-row: 2;
        position: fixed;
        left: 0;
        right: 0;
        top: var(--sp-header-topbar-height);
        bottom: auto;
        width: 100%;
        height: auto;
        max-height: 0;
        box-sizing: border-box;
        border: none;
        border-top: 0.261vw solid transparent;
        z-index: 100;
        margin: 0;
        padding: 0;
        overflow: hidden;
        background: #fff;
        visibility: hidden;
        pointer-events: none;
        transition: max-height var(--sp-menu-duration) var(--sp-menu-ease),
            visibility 0.3s ease,
            border-color 0.3s ease;
    }
    .core-parts.header_01.is-menu-open {
        z-index: 102;
    }
    .core-parts.header_01.is-menu-open #sidr,
    .core-parts.header_01.is-menu-open.header-group .sidr {
        max-height: calc(100dvh - var(--sp-header-topbar-height));
        border-top-color: var(--color-border);
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        visibility: visible;
        pointer-events: auto;
    }
    .header-nav-wrap {
        width: 100%;
        height: auto;
        padding: 13.021vw 5.209vw 13.021vw;
        box-sizing: border-box;
        display: block;
        flex: 0 0 auto;
        align-items: stretch;
        opacity: 0;
        transform: translateY(-2.604vw);
        transition: opacity 0.32s ease 0.12s, transform 0.45s var(--sp-menu-ease) 0.12s;
    }
    .header-nav {
        display: block;
        height: auto;
    }
    .core-parts.header_01.is-menu-open #sidr > .header-nav-wrap {
        opacity: 1;
        transform: translateY(0);
    }
    /* SPメニュー 2カラム */
    .sp-nav-columns {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1.303vw;
        align-items: start;
    }
    .sp-nav-col-left {
        display: flex;
        flex-direction: column;
        gap: 7.032vw;
    }
    .sp-nav-col-right {
        display: flex;
        flex-direction: column;
        gap: 5.209vw;
    }
    .sp-nav-ttl {
        margin: 0;
        font-size: 4.167vw;
        font-weight: 600;
        line-height: 1.5;
    }
    .sp-nav-ttl a {
        color: var(--color-text);
    }
    .sp-nav-group .sp-nav-sub + .sp-nav-ttl {
        margin-top: 5.209vw;
    }
    .sp-nav-sub {
        display: flex;
        flex-direction: column;
        gap: 2.604vw;
        margin: 2.604vw 0 0;
        padding: 0;
    }
    .sp-nav-sub li {
        display: flex;
        align-items: center;
        gap: 2.604vw;
    }
    .sp-nav-sub li::before {
        content: "─";
        flex-shrink: 0;
        color: var(--color-text);
        font-size: 4.167vw;
        font-weight: 300;
        line-height: 1.5;
    }
    .sp-nav-sub a {
        color: var(--color-text);
        font-size: 4.167vw;
        font-weight: 300;
        line-height: 1.5;
    }
    /* メニュー内CTA */
    .core-parts.header_01 .sp-menu-ex-btn {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 5.208vw;
        width: 100%;
        height: auto;
        max-height: 0;
        margin: 0;
        padding: 0 2.604vw;
        box-sizing: border-box;
        flex: 0 0 auto;
        opacity: 0;
        overflow: hidden;
        visibility: hidden;
        transform: translateY(2.604vw);
        transition: max-height 0.45s var(--sp-menu-ease) 0.18s,
            opacity 0.32s ease 0.18s,
            transform 0.45s var(--sp-menu-ease) 0.18s,
            padding 0.45s var(--sp-menu-ease) 0.18s,
            visibility 0.3s ease 0.18s;
    }
    .core-parts.header_01 .sp-menu-ex-btn li {
        display: block;
        width: 100%;
    }
    .core-parts.header_01.is-menu-open .sp-menu-ex-btn {
        max-height: 60vw;
        opacity: 1;
        padding: 0 5.209vw 10.417vw;
        visibility: visible;
        transform: translateY(0);
    }
    .core-parts.header_01 .sp-menu-ex-btn a {
        display: grid;
        grid-template-columns: 5.208vw 1fr 2.604vw;
        align-items: center;
        justify-items: center;
        column-gap: 7.292vw;
        width: 100%;
        min-height: 14.583vw;
        padding: 2.604vw 8.724vw;
        border-radius: 13.021vw;
        box-sizing: border-box;
        font-size: 4.167vw;
        font-weight: 600;
        line-height: 1.6;
        white-space: nowrap;
    }
    .core-parts.header_01 .sp-menu-ex-btn .hdr-btn-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 5.208vw;
        height: 5.208vw;
        justify-self: start;
    }
    .core-parts.header_01 .sp-menu-ex-btn .hdr-btn-icon img {
        display: block;
        width: 100%;
        height: auto;
    }
    .core-parts.header_01 .sp-menu-ex-btn .hdr-btn-arrow {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 2.604vw;
        height: 2.604vw;
        justify-self: end;
        margin-left: 0;
    }
    .core-parts.header_01 .sp-menu-ex-btn .hdr-btn-arrow svg {
        display: block;
        width: 100%;
        height: 100%;
    }
    .core-parts.header_01 .sp-menu-ex-btn .inq-btn a {
        border: 0.521vw solid var(--color-main);
        background-color: #fff;
        color: var(--color-main);
    }
    .core-parts.header_01 .sp-menu-ex-btn .doc-btn a {
        border: 0.521vw solid var(--color-main);
        background-color: var(--color-main);
        color: #fff;
    }
    .core-parts.header_01 .sp-menu-ex-btn .tour-btn a {
        border: 0.521vw solid var(--color-accent);
        background-color: var(--color-accent);
        color: #fff;
    }
    .core-parts.header_01 .sp-menu-ex-btn .doc-btn .hdr-btn-icon,
    .core-parts.header_01 .sp-menu-ex-btn .tour-btn .hdr-btn-icon {
        filter: brightness(0) invert(1);
    }
    @media (prefers-reduced-motion: reduce) {
        .header_01.header-group,
        .header_01 .header-group-inner,
        .header-logo,
        .core-parts.header_01 .hglb-sp-btn a .sp-btn-svg,
        .header-ex-btn-sp,
        .core-parts.header_01 #sidr,
        .header-nav-wrap,
        .core-parts.header_01 .sp-menu-ex-btn {
            transition: none;
        }
    }

/*--------------------------------------
	GDPR
-------------------------------------*/
#GDPR{
	font-size: 87.5%;
	line-height: 1.5;
}
#GDPR .gdpr-clm-01{
	width: auto;
	float: none;
	margin-bottom: 2em;
}
#GDPR .gdpr-clm-02{
	width: auto;
	float: none;
}
#GDPR .gdpr-ttl{
	margin-bottom: 0.5em;
}
#GDPR .gdpr-txt{
	margin-bottom: 1em;
}
#GDPR .gdpr-agree{
	width: auto;
	margin: 0 auto;
	max-width: 80%;
}
#GDPR .gdpr-btn{
	width: auto;
	margin: 0 auto 20px;
	max-width: 80%;
}
    /*================
    お問い合わせカード（共通）
    ================*/
    .sec-contact-inner {
        padding-top: 19.532vw;
        padding-bottom: 19.532vw;
    }
    .sec-contact-inner .ttl-01 {
        margin-bottom: 7.943vw;
        font-size: 8.333vw;
    }
    .contact-card-list {
        flex-direction: column;
        gap: 8.334vw;
        /* padding: 0 2.605vw; */
    }
    .contact-card-list > .flex-cnt-01 {
        flex: none;
        max-width: none;
        width: 100%;
    }
    .contact-card {
        min-height: 0;
        margin-top: 17.188vw;
        padding: 14.454vw 5.208vw 7.813vw;
        border-radius: 2.604vw;
        box-shadow: 0 0 5.208vw rgba(0, 0, 0, 0.1);
    }
    .contact-balloon {
        top: -17.188vw;
        width: 100%;
        max-width: none;
        padding: 5.86vw 3.906vw 5.339vw;
        border-width: 0.261vw;
        border-radius: 13.021vw;
        font-size: 6.25vw;
        line-height: 1.5;
    }
    .contact-balloon-tail {
        bottom: calc(-3.646vw + 0.261vw); /* 枠線ぶんだけ食い込み（PCと同程度） */
        width: 3.906vw;
        height: 3.646vw;
    }
    .contact-icon {
        width: 15.625vw;
        height: 15.625vw;
        margin-bottom: 5.208vw;
    }
    .contact-icon img {
        width: 9.115vw;
    }
    .contact-txt {
        margin-bottom: 5.208vw;
        color: #555;
        font-size: 4.167vw;
        font-weight: 600;
        line-height: 1.9;
        text-align: center;
    }
    .contact-card.type-accent .contact-txt {
        color: #222;
    }
    .contact-card .btn-01 a {
        display: grid;
        grid-template-columns: 44.792vw 2.604vw; /* 344px + 20px */
        column-gap: 5.99vw; /* 46px */
        align-items: center;
        justify-content: center;
        width: 100%;
        max-width: none;
        padding: 2.604vw 1.302vw 2.604vw 4.688vw;
        text-align: center;
    }
    .contact-card .btn-01 .arrow2,
    .contact-card .btn-01 .link-ex {
        position: static;
        top: auto;
        right: auto;
        transform: none;
    }
    .contact-card .btn-01 .arrow2 {
        width: 2.604vw;
        height: 2.604vw;
    }
    .contact-card .btn-01 .arrow2 > svg {
        width: 2.604vw;
        height: 2.604vw;
    }

    /*================
    フッター
    ================*/
    /*===フッターリクルート部分===*/
    .footer-recruit{
        background: url('/recruit/common/imgs/foot_rec_bg_sp.jpg')no-repeat center/cover;
        padding: 11.068vw 0 14.52vw;
    }
    .footer-recruit .inner{
        flex-direction: column;
    }
    .footer-recruit h2{
        font-size: 7.813vw;
        margin-bottom: 10.417vw;
    }
    .footer-recruit .btn-01:not(:first-child){
        margin-top: 5.208vw;
    }
    .footer-recruit .btn-01 a{
        width: inherit;
        min-width: 65.104vw;
        padding: 3.906vw 10.417vw 3.906vw 5.859vw;
    }
    .footer-recruit .btn-01 .arrow2,
    .footer-recruit .btn-01 .link-ex{
        width: 6.51vw;
        height: 6.51vw;
    }
    .footer-recruit .btn-01 .arrow2 > svg{
        width: 3.154vw;
        height: 3.154vw;
    }
    .footer-recruit .btn-01 .link-ex > svg{
        width: 2.865vw;
        height: 2.865vw;
    }
    .footer-recruit .btn-01 .tel{
        width: 8.333vw;
        height: 8.333vw;
        margin-right: 3.255vw;
    }
    .footer-recruit .btn-01 .tel svg{
        width: 4.036vw;
        height: 4.036vw;
    }
    .footer-recruit .btn-01:last-child a .txt-wrap > span:first-child{
        font-size: 4.688vw;
    }
    .footer-recruit .btn-01:last-child a .txt-wrap > span:last-child{
        font-size: 2.604vw;
    }
    /*===フッターコンタクト部分===*/
    .footer-contact{
        /* background-color: #0072BC; */
        padding: 13.021vw 0 24.219vw;
        background-size: 200% auto;
    }
    .footer-contact .inner-1000{
        /* display: flex; */
        /* justify-content: space-between; */
        /* align-items: center; */
        flex-direction: column;
    }
    .footer-contact .ttl-cnt{
        width: 100%;
        margin-bottom: 7.813vw;
    }
    .footer-contact .subttl-01{
        /* color: #fff; */
    }
    .footer-contact .subttl-01 + p{
        /* color: #fff; */
    }
    .footer-contact .subttl-01::after{
        /* background-color: #fff; */
    }
    .footer-contact .btn-01:not(:first-child) {
        margin-top: 3.906vw;
    }
    .footer-contact .btn-01 a{
        width: 77.604vw;
        text-align: left;
    }

    /*===フッターメイン部分===*/
    .footer-global-1 {
        background: #fff;
        padding: 10.417vw 5.208vw 5.208vw;
    }
    .footer-global-1 .fglb01-inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 0;
    }
    .footer-global-1 .fglb01-01-inner {
        width: 100%;
        text-align: center;
    }
    .footer-catch {
        width: auto;
        font-size: 3.125vw;
        margin: 0;
        text-align: center;
    }
    .footer-global-1 .footer-logo {
        width: 42.708vw;
        margin: 0 auto;
    }
    .footer-global-1 .footer-logo a {
        width: 100%;
    }
    .footer-global-1 .footer-logo img {
        width: 100%;
    }
    /* SPでは住所・電話は非表示（Figma準拠） */
    .footer-global-1 .footer-info {
        display: none;
    }
    /* SPではナビリンク非表示、SNSのみ中央表示 */
    .footer-global-1 .fglb01-02-inner {
        display: block;
        width: 100%;
        margin-top: 10.417vw;
    }
    .fglb01-wrap-01,
    .fglb01-wrap-02,
    .fglb01-wrap-03,
    .fglb01-wrap-04 {
        display: none;
    }
    .footer-global-1 .fglb01-02-inner {
        min-height: 0;
    }
    .fglb01-wrap-sns {
        position: static;
        margin: 0 auto;
        text-align: center;
    }
    .fglb01-wrap-sns .fglb01w-ttl {
        font-size: 3.385vw;
        font-weight: 600;
    }
    .footer-sns {
        justify-content: center;
        gap: 5.208vw;
        margin-top: 2.604vw;
    }
    .footer-sns a {
        width: 10.938vw;
        height: 10.938vw;
    }

    /* フッターCTA */
    .footer-ex-btn {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2.604vw;
        margin-top: 7.813vw;
        width: 100%;
        max-width: none;
    }
    .footer-ex-btn .inq-btn {
        grid-column: 1 / -1;
        justify-self: center;
        width: 43.49vw;
    }
    .footer-ex-btn .doc-btn,
    .footer-ex-btn .tour-btn {
        width: 100%;
    }
    .footer-ex-btn a {
        width: 100%;
        height: 10.417vw;
        gap: 2.604vw;
        font-size: 3.385vw;
        border-radius: 5.208vw;
    }
    .footer-ex-btn .hdr-btn-icon {
        width: 4.557vw;
        height: 4.557vw;
    }

    /*===最下部===*/
    .footer_01 .footer-global-03 {
        padding: 2.604vw 5.208vw;
    }
    .footer_01 .footer-global-03 .footer-copy {
        font-size: 3.125vw;
        line-height: 1.5;
    }

    /*================
    ページャー
    ================*/
    .pager {
        gap: 5.208vw;
        margin-top: 19.532vw;
    }
    .pager-list {
        gap: 1.303vw;
    }
    .pager-list a,
    .pager-list span {
        min-width: 13.021vw;
        height: 13.021vw;
        padding: 0 2.604vw;
        border-radius: 6.51vw;
        font-size: 4.688vw;
        border-width: 0.521vw;
        white-space: nowrap;
    }
    .pager-list .is-current span {
        border: none;
    }
    .pager-list .pager-ellipsis span {
        width: auto;
        height: auto;
        min-width: 6.511vw;
        font-size: 6.511vw;
        padding: 0 0.521vw;
    }
    .pager-prev,
    .pager-next {
        width: 5.208vw;
        height: 5.208vw;
    }
    .pager-prev .arrow2,
    .pager-next .arrow2 {
        width: 5.209vw;
        height: 5.209vw;
    }
    .pager-prev .arrow2 > svg,
    .pager-next .arrow2 > svg {
        width: 5.209vw;
        height: 5.209vw;
    }


    .pager:has(ol.pager-list > li:nth-child(6)){
        gap:1vw;
    }
    .pager-list:has(> li:nth-child(6)){
        gap: 0.652vw;
    }
    .pager-list:has(> li:nth-child(6)) a,
    .pager-list:has(> li:nth-child(6)) span:not(.dots) {
    min-width: 10.417vw;
    height: 10.417vw;
}
}
