:root {
    --text: #0F3F6F;
    --bace: #fff;

    /* フォントの設定 */
    --font-main: "Helvetica Neue", Arial, sans-serif;
    --font-en: "Courier New", monospace;
}

html {
    scroll-behavior: smooth;
}

.section_fadein {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.9s ease-out, transform 0.9s ease-out;
    will-change: opacity, transform;
}

.section_fadein.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .section_fadein {
        opacity: 1;
        transform: none;
        transition: none;
    }
}


body {
    background-color: var(--base);
    color: var(--text);
    font-family: "Noto Sans JP";
}


img {
    height: auto;
    width: 100%;
}

.top_inner {
    width: 90%;
    max-width: 950px;
    margin: 0 auto;
}

.company_inner {
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
}

.product_inner {
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
}

.contact_inner {
    width: 90%;
    max-width: 42.625rem;
    margin: 0 auto;
}

.policy_inner {
    width: 90%;
    max-width: 60rem;
    margin: 0 auto;
}

.cta_inner {
    width: 90%;
    max-width: 950px;
    margin: 0 auto;
}

.footer_wrap {
    width: 90%;
    max-width: 950px;
    margin: 0 auto;
}


.sp {
    display: block;
}

.pc {
    display: none;
}


/* pc以上 */
@media (min-width: 768px) {
    .sp {
        display: none;
    }

    .pc {
        display: block;
    }
}

/* スクロールすると下からふわっとさせるためのコード */
.inview {
    /* 30px下げる */
    transform: translateY(30px);
    /* 要素を透明にする */
    opacity: 0;
    /* 2秒かけて、変化させる */
    transition: transform 2s, opacity 2s;
}

.inview.show {
    transform: translateY(0);
    opacity: 1;
}

/*  -----------------------------
ハンバーガー
--------------------------------- */
.header_nav {
    padding: 7.25rem 1.125rem 1.1875rem;
    width: 100%;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    overflow-y: auto;
    transform: translateX(110%);
    transition: transform 0.4s ease;
    background: #91BBD8;
    z-index: 8;
    display: flex;
    flex-direction: column;
    gap: 70px;
}

.hamburger {
    width: 2.125rem;
    height: auto;
    aspect-ratio: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 0.25rem;
    position: fixed;
    top: 1rem;
    right: 1.25rem;
    z-index: 9;
    cursor: pointer;
}

.hamburger .hamburger_inner {
    display: flex;
    flex-direction: column;
    align-items: end;
    row-gap: 0.625rem;
}

.hamburger .hamburger_inner span {
    display: inline-block;
    position: relative;
    width: 2rem;
    height: 0.125rem;
    border-radius: 0.3125rem;
    background-color: #617DB6;
    transition: all 0.4s ease;
}

.active .hamburger .hamburger_inner span {
    background-color: #617DB6;
}

.active .hamburger .hamburger_inner span:nth-child(1) {
    top: 0.75rem;
    transform: rotate(45deg);
}

.active .hamburger .hamburger_inner span:nth-child(2) {
    opacity: 0;
}

.active .hamburger .hamburger_inner span:nth-child(3) {
    top: -0.75rem;
    transform: rotate(-45deg);
}

.active .header_nav {
    transform: translateX(0%);
}

body.active {
    overflow: hidden;
}

/* ナビCTAボタン */
.nav_cta {
    display: flex;
    flex-direction: column;
    gap: 1.375rem;
    /* margin-top: auto; */
    padding-bottom: 2rem;
}

.nav_cta_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 5.375rem;
    border-radius: 4.75rem;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 1.1875rem;
    line-height: 1;
    text-decoration: none;
    text-shadow: 0 0 0.25rem rgba(97, 125, 182, 0.55);
    box-shadow: 0.25rem 0.25rem 0.5625rem rgba(0, 0, 0, 0.25);
    transition: opacity 0.3s;
}

.nav_cta_btn:first-child {
    gap: 24px;
}
.nav_cta_btn:last-child {
    gap: 6px;
}

.nav_cta_btn:hover { opacity: 0.85; }

.nav_cta_btn_contact {
    background: linear-gradient(90deg, rgba(99,124,215,0.8) 22%, rgba(118,170,237,0.8) 94%);
}

.nav_cta_btn_oem {
    background: linear-gradient(90deg, rgba(99,163,215,0.8) 0%, rgba(118,202,237,0.8) 53%, rgba(99,198,218,0.8) 100%);
}

.nav_cta_btn img {
    width: 32px;
    height: auto;
    flex-shrink: 0;
}



.header {
    height: 70px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
}

.header_inner {
    padding: 24px 18px;
    /* background: rgba(239, 248, 252, 0.65); */
}

.nav_logo {
    width: 180px;
    transition: all .3s;
}

.nav_logo:hover {
    opacity: .7;
}

.nav_menu {
    border-left: 1px solid #fff;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.1875rem;
    padding-left: 1.4375rem;
    margin-left: 1.1875rem;
}

.menu_item {
    color: #FFF;
    font-family: "Shippori Mincho";
    font-size: 1rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    transition: all .3s;
}

.menu_item:hover {
    opacity: .8;
}

@media (min-width: 768px) {
    .header {
        background-color: transparent;
    }

    .header_nav {
        padding: 0px;
        width: 100%;
        height: auto;
        position: inherit;
        transform: translateX(0%);
        transition: none;
        background-color: transparent;
        overflow-y: initial;
        flex-direction: row;
        gap: 0;
    }

    .nav_cta {
        display: none;
    }

    .hamburger {
        display: none;
    }

    .header_inner {
        background: transparent;
        display: flex;


    }

    .nav_menu {
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        gap: 50px;
        width: 100%;
        margin-inline: inherit;
        margin-left: auto;
        border-left: none;
        padding-left: 0;
    }

    .menu_item {
        color: #617DB6;
        text-align: center;
        font-family: "Shippori Mincho";
        font-size: 16px;
        font-style: normal;
        font-weight: 700;
        line-height: 100%;
        white-space: nowrap;
    }

    .header_inner {
        padding: 20px 2%;
    }
}

.footer {
    padding: 45px 0 24px;
}

.footer_logo a {
    display: inline-block;
    color: #617DB6;
    font-family: Inter;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 30px;
    transition: all .3s;
}

.footer_logo a:hover {
    opacity: .7;
}

.footer_add {
    display: flex;
    flex-direction: column;
    gap: 12px;
    color: #0F3F6F;
    font-family: "Noto Sans JP";
    font-size: 16px;
}

.footer_add a {
    transition: all .3s;
}

.footer_add a:hover {
    opacity: .7;
}

.footer_add_num {
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer_inner {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-bottom: 88px;
}


.footer_nav {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;

}

.footer_nav_list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.footer_nav_link {
    color: #0F3F6F;
    font-family: "Noto Sans JP";
    font-size: 14px;
    font-weight: 400;
    display: flex;
    gap: 9px;
    align-items: center;
    transition: all .3s;
}

.footer_nav_link:hover {
    opacity: .7;
}

.footer_nav_link::before {
    content: '';
    display: block;
    width: 9px;
    height: 9px;
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%);
    border-radius: 50%;
}

.footer_banner {
    max-width: 130px;
    margin-left: auto;
    transition: all .3s;
}

.footer_banner:hover {
    opacity: .7;
}

.footer_copyright {
    color: #0F3F6F;
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 10px;
    font-weight: 500;
}

.footer_mail a {
    text-decoration: underline;
}

@media (min-width: 768px) {
    .footer {
        padding: 87px 0 33px;
    }

    .footer_logo a {
        font-size: 26px;
    }

    .footer_inner {
        flex-direction: row;
        margin-bottom: 91px;
    }

    .footer_nav {
        margin-left: auto;
        flex-direction: column;
        gap: 53px;
    }

    .footer_nav_link {
        font-size: 18px;
    }

    .footer_banner {
        margin-left: initial;
    }

    .footer_add {
        font-size: 20px;
        gap: 17px;
    }

    .footer_add_num {
        gap: 17px;
    }

    .footer_copyright {
        font-size: 14px;
    }
}

.bg_img {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

/*  -----------------------------
TOPページ
--------------------------------- */
.mv {
    position: relative;
}

.deco {
    position: absolute;
    inset: 0;
}

.deco_img {
    position: absolute;
}

.deco_img:nth-child(1) {
    top: 20%;
    left: 39vw;
    opacity: .4;
    width: calc((60 / 390) *100vw);
    filter: blur(4);
}



.deco_img:nth-child(2) {
    bottom: 50%;
    left: 4vw;
    width: calc((70 / 390) * 100vw);
    opacity: .3;
    filter: blur(4);
}

.deco_img:nth-child(2) img.inview {
    transition-delay: .4s;
}

.deco_img:nth-child(3) {
    bottom: 0;
    left: -50%;
    width: calc((60 / 390) *100vw);
}

.deco_img:nth-child(3) img.inview {
    transition-delay: .4s;
}

.deco_img:nth-child(4) {
    bottom: calc((124 / 390) *100vw);
    right: 0;
    width: calc((150 / 390) *100vw);
    max-width: 250px;
}

.deco_img:nth-child(4) img.inview {
    transition-delay: .4s;
}

.deco_img:nth-child(5) {
    top: 0;
    right: 0;
    display: none;
}

.deco_img:nth-child(5) img.inview {
    transition-delay: .4s;
}

.deco_img:nth-child(6) {
    display: none;
}

.deco_img:nth-child(6) img.inview {
    transition-delay: .3s;
}

.mv_inner {
    padding-top: calc(260/390*100vw);
    position: relative;
    z-index: 1;
}

.mv_img {
    position: absolute;
    top: 0;
    z-index: -1;
}

.mv_title {
    /* 白シャドウ */
    text-shadow: 0 0 9px rgba(255, 255, 255, 0.30);
    font-family: "Shippori Mincho";
    font-size: calc((29 / 390) * 100vw);
    font-style: normal;
    font-weight: 700;
    line-height: 1.5;
    background: linear-gradient(277deg, rgba(15, 63, 111, 0.90) 39.83%, rgba(97, 125, 182, 0.90) 68.48%, rgba(62, 173, 203, 0.90) 92.89%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 14px;
}

.mv_text {
    color: #617DB6;
    text-shadow: 0 0 9px rgba(255, 255, 255, 0.30);
    font-family: "Shippori Mincho";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.5;
}

.mv_buble {
    display: flex;
    justify-content: flex-end;
    margin-top: 100px;
    position: relative;
}

.mv_buble_img {
    width: calc((140 / 390) * 100vw);
    min-width: 140px;
    position: absolute;
    left: 0;
    top: -60px;
    z-index: -1;
}

.mv_buble_textArea {
    width: calc((255 / 390) * 100vw);
}

.mv_buble_text {
    color: #617DB6;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 4px;
}

.mv_buble_textImage {
    margin-bottom: 2px;
}

.mv_buble_note {
    color: #617DB6;
    font-family: "Shippori Mincho";
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
}

@media (min-width: 768px) {
    .deco_img:nth-child(1) {
        top: 7%;
        left: 13vw;
        opacity: .9;
        width: calc((112 / 1440) *100vw);
        filter: blur(0);
    }

    .deco_img:nth-child(2) {
        left: auto;
        bottom: calc((124 / 1440) *100vw);
        right: 0;
        width: calc((200 / 1440) *100vw);
        max-width: 250px;
        opacity: 1;
    }

    .deco_img:nth-child(3) {
        bottom: auto;
        top: 6%;
        left: auto;
        right: calc((390/ 1440) *100vw);
        width: calc((80 / 1440) *100vw);
    }

    .deco_img:nth-child(4) {
        bottom: 34%;
        left: 50%;
        width: calc((120 / 1440) *100vw);
        opacity: .6;
        filter: blur(4);
    }

    .deco_img:nth-child(5) {
        top: auto;
        right: auto;
        left: 19vw;
        bottom: 40%;
        display: block;
        width: calc((50 / 1440) *100vw);
    }

    .deco_img:nth-child(6) {
        bottom: 0;
        right: 28vw;
        display: block;
        width: calc((165 / 1440) *100vw);
    }

    .mv_title {
        font-size: 49px;
        font-size: min(calc((49 / 1440) * 100vw), 49px);
        margin-bottom: 24px;
    }

    .mv_text {
        font-size: 26px;
        font-size: min(calc((26 / 1440) * 100vw), 26px);
    }

    .mv_inner {
        padding-top: calc(140 / 1440 * 100vw);
    }

    .mv_buble_img {
        width: calc((300 / 945) * 100%);
        left: -8%;
        top: -90%;
    }

    .mv_buble {
        justify-content: flex-start;
        margin-top: 190px;
    }

    .mv_buble_textArea {
        width: 100%;
        max-width: 500px;
        margin-left: calc((140 / 945) * 100%);

    }

    .mv_buble_text {
        font-size: 19px;
    }

    .mv_buble_note {
        font-size: 17px;
        text-align: center;
    }
}


/* TOPページ_about */
.top_about {
    padding: 50px 0;
}

.top_about_leaad {
    margin-left: 3%;
    font-family: Inter;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.5;

    margin-bottom: 60px;


    display: flex;
    overflow: hidden;
    column-gap: .5em;
}

.top_about_leaad span {
    background: linear-gradient(261deg, rgba(239, 248, 252, 0.60) 8.52%, rgba(225, 233, 253, 0.60) 25.25%, rgba(142, 199, 237, 0.60) 55.36%, rgba(239, 248, 252, 0.60) 85.06%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}

.top_about_leaad span:last-child {
    display: none;
}

@keyframes loop-slide {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-100%);
    }
}

.top_about_title {
    color: #617DB6;
    font-family: "Shippori Mincho";
    font-size: min(calc((30 / 390) * 100vw), 30px);
    font-weight: 500;
    line-height: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 40px;
}

.top_about_title span {
    background: linear-gradient(262deg, #EFF8FC 8.65%, #E1E9FD 24.14%, #BBDBF1 58.94%, #DEF4FD 88.31%);
    /* アニメーションの準備 */
    background-repeat: no-repeat;
    background-size: 0% 100%;
    /* 最初は横幅0% */
    transition: background-size 0.8s ease-in-out;
    /* 0.8秒かけて動く */

    display: inline-block;
    width: fit-content;
    padding: 6px 10px;
}

/* 表示領域に入った時に付与するクラス */
.top_about_title.is-active span {
    background-size: 100% 100%;
    /* 横幅を100%に伸ばす */
}

/* 2行目に少し遅延（デイレィ）を入れるとおしゃれです */
.top_about_title.is-active span:nth-child(2) {
    transition-delay: 0.4s;
}

.top_about_text {
    font-family: "Shippori Mincho";
    font-size: 18px;
    font-weight: 500;
    line-height: 2;
    margin-bottom: 24px;
}

.top_about_text span {
    font-size: min(calc((22 / 390) * 100vw), 22px);

    font-weight: 600;
    letter-spacing: -0.66px;
    background: linear-gradient(90deg, #637CD7 22.12%, #76AAED 94.23%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

@media (min-width: 768px) {
    .top_about {
        padding: 100px 0;
    }

    .top_about_leaad {
        font-size: calc((70 / 1440) * 100vw);
        text-align: center;
    }

    .top_about_leaad span {
        display: inline-block;
        width: auto;
        height: auto;
        max-width: -moz-fit-content;
        max-width: fit-content;
        white-space: nowrap;
        animation: loop-slide 40s infinite linear 1s both;
    }

    .top_about_title {
        font-size: 43px;
    }

    .top_about_text {
        font-size: 24px;

    }

    .top_about_text span {
        font-size: 32px;

    }

    .top_about_inner {
        position: relative;
    }

    .top_abou_img {
        position: absolute;
        width: 50%;
        top: 0;
        right: 0;
        z-index: -1;
    }

    .top_about_leaad span:last-child {
        display: inline-block;
    }
}


/* サービス */
.top_service_title {
    padding: 7px 5px 10px;
    color: #FFF;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: min(calc((17 / 390) * 100vw), 17px);

    font-weight: 500;
    line-height: 1.6;
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%);
    margin-bottom: 24px;
}

.top_service_img {
    margin-bottom: 24px;
}

.top_service_list {
    display: grid;
    gap: 18px;
}

.top_service_item {
    display: flex;
    gap: 12px;
}

.top_service_item_title {
    color: #5482A9;
    font-family: "Shippori Mincho";
    font-size: min(calc((15 / 390) * 100vw), 15px);
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 8px;
}

.top_service_item_text {
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 11px;
    font-weight: 350;
    line-height: 1.5;
}

.top_service_item_img {
    min-width: 63px;
    width: 63px;
}

.top_service {
    padding-bottom: 32px;
}

@media (min-width: 768px) {
    .top_service_title {
        font-size: 26px;
        padding: 16px 7px 20px;
        margin-bottom: 32px;
    }

    .top_service_list {
        width: fit-content;
        margin-inline: auto;
        display: grid;
        grid-auto-flow: column;
        row-gap: 30px;
        column-gap: 30px;
        grid-template-rows: repeat(4, fit-content(100%));
        grid-template-columns: repeat(2, fit-content(100%));
    }

    .top_service_item_img {
        min-width: 82px;
        width: 82px;
    }

    .top_service_item_title {
        font-size: 19px;
        margin-bottom: 8px;
    }


    .top_service_item_text {
        font-size: 13px;
    }

    .top_service_item {
        gap: 15px;
    }
}


/* 特徴 */
.top_feature {
    padding: 60px 0 80px;
    background-image: url(../img/bg_sp.webp);
    background-size: 100% 100%;
}

.top_feature .top_inner {
    position: relative;
}

.top_feature_deco {
    position: absolute;
}

.top_feature_deco:first-of-type {
    width: 120px;
    top: -77px;
    right: 30px;
}

.top_feature_deco:nth-of-type(2) {
    width: 70px;
    top: 37%;
    left: 0;
}

.top_feature_deco:nth-of-type(3) {
    width: 60px;
    bottom: -77px;
    right: -12px;
}

.top_feature_top {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.top_feature_img {
    max-width: 167px;
    aspect-ratio: 1;
    margin-bottom: 24px;
    position: relative;
    z-index: 1;
}

.top_feature_title {
    color: #617DB6;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: min(calc((23 / 390) * 100vw), 23px);

    font-weight: 500;
    line-height: 1;
    margin-bottom: 22px;
}

.top_feature_text {
    font-size: 15px;
    font-weight: 400;
    line-height: 2.2;
    letter-spacing: 0.01em;
    margin-bottom: 32px;
    position: relative;
    z-index: 1;
}

.top_feature_bottom_title {
    padding: 12px 0;
    font-family: "Shippori Mincho";
    font-size: 19px;
    font-weight: 500;
    line-height: 2;
    position: relative;
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
}

.top_feature_bottom_title span {
    background: linear-gradient(312deg, #0F3F6F 22.72%, #617DB6 49.61%, #3EADCB 72.51%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-align: center;
    position: relative;
    z-index: 1;
}

.top_feature_bottom_title::before {
    content: '';
    display: inline-block;
    width: 100%;
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #FFF 32.13%, rgba(255, 255, 255, 0.00) 100%);

    /* アニメーションの準備 */
    background-repeat: no-repeat;
    background-size: 0% 100%;
    /* 最初は横幅0% */
    transition: background-size 0.8s ease-in-out;
    /* 0.8秒かけて動く */
}


/* 表示領域に入った時に付与するクラス */
.top_feature_bottom_title.is-active::before {
    background-size: 100% 100%;
    /* 横幅を100%に伸ばす */
}

.top_feature_bottom_text {
    color: #0F3F6F;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 15px;
    font-weight: 500;
    line-height: 2;
    margin-bottom: 30px;
}

.top_point_list {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, 1fr);
}

.top_point_item {
    padding: 48px 0;
    background-image: url(../img/top_point_01.webp);
    border-radius: 12px;
    box-shadow: 3px 3px 9px 0 rgba(187, 219, 241, 0.38);

    opacity: 0;
    transform: translateY(20px);
    /* 少し下から */
    transition: opacity 2s cubic-bezier(0.22, 1, 0.36, 1),
        transform 2s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
    aspect-ratio: 1;
    max-width: 200px;
}

/* 表示時 */
.top_point_item.is-show {
    opacity: 1;
    transform: translateY(0);
}

.top_point_item:nth-child(2) {
    background-image: url(../img/top_point_02.webp);
}

.top_point_item:nth-child(3) {
    background-image: url(../img/top_point_03.webp);
}

.top_point_item:nth-child(4) {
    background-image: url(../img/top_point_04.webp);
}

.top_point_item_inner {
    display: flex;
    width: 100%;
    padding: 18px 0;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    background: rgba(248, 252, 255, 0.83);
}

.top_point_item_title {
    color: #0F3F6F;
    text-align: center;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
}

.top_point_item_text {
    color: #0F3F6F;
    text-align: center;
    font-size: 12px;
    font-size: clamp(11px, calc(12 /390 *100vw), 12px);
    font-weight: 400;
    line-height: 1;
}

@media (min-width: 768px) {
    .top_feature {
        padding: 130px 0 180px;
    }

    .top_feature_top {
        flex-direction: row;
        gap: 38px;
        align-items: start;
    }

    .top_feature_title {
        font-size: 30px;
        text-align: left;
        margin-bottom: 23px;
    }

    .top_feature_text {
        font-size: 18px
    }

    .top_feature_bottom_title span {
        font-size: clamp(24px, calc(30 /1440 *100vw), 30px);
    }

    .top_feature_bottom_title {
        margin-bottom: 40px;
    }

    .top_feature_bottom_text {
        font-size: 23px;
        margin-bottom: 40px;
    }

    .top_point_list {
        grid-template-columns: repeat(4, 1fr);
        gap: 4px;
    }

    .top_point_item {
        padding: 67px 0;
        max-width: 100%;
    }

    .top_point_item_inner {
        height: 97px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .top_point_item_title {
        font-size: 23px;
    }

    .top_point_item_text {
        font-size: 14px;
    }

    .top_feature_deco:nth-of-type(2) {
        width: 120px;
        top: 35%;
        left: -15px;
        z-index: 2;
    }

    .top_feature_deco:nth-of-type(3) {
        width: 160px;
        bottom: -122px;
        right: -92px;
    }
}

.top_product {
    padding: 60px 0;
    background: linear-gradient(180deg, #FFF 48.94%, #EFF8FC 100%);
}

.top_product_title {
    overflow: hidden;
    padding: 13px 0;
    border-radius: 8px;
    background: linear-gradient(180deg, #EFF8FC 0%, #CCE6F8 116.32%);
    color: #0F3F6F;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 30px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    position: relative;
    margin-bottom: 20px;
    max-width: 400px;
    margin-inline: auto;
}

.top_product_title span {
    position: relative;
    z-index: 1;
}

.top_product_title::after {
    content: '';
    display: inline-block;
    position: absolute;
    top: 2px;
    bottom: 2px;
    left: 2px;
    right: 2px;
    background: linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.00) 116.32%);
    filter: blur(4px);
    border-radius: 8px;

}

.top_product_text {
    text-align: center;
    font-size: 18px;
    font-size: min(calc((18 / 390) * 100vw), 18px);

    font-weight: 400;
    line-height: 1.8;
    margin-bottom: 28px;
}

.top_product_content_title {
    font-family: Inter;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.5;
    background: linear-gradient(261deg, rgba(239, 248, 252, 0.60) 8.52%, rgba(225, 233, 253, 0.60) 25.25%, rgba(142, 199, 237, 0.60) 55.36%, rgba(239, 248, 252, 0.60) 85.06%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 100px;
}

.top_product_content_img {
    margin-bottom: 30px;
}

.top_product_name {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 25px;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 20px;
}

.top_product_name .small {
    text-align: center;
    font-size: 11px;
    font-weight: 400;
    line-height: 1;
}

.top_product_content_text {
    font-size: 15px;
    font-weight: 400;
    line-height: 2;
    margin-bottom: 30px;
}

.button {
    color: #FFF;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    display: flex;
    padding: 10px 20px 10px 30px;
    align-items: center;
    gap: 10px;
    position: relative;
    border-radius: 100px;
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%), #FFF;
    max-width: 180px;
    /* カードシャドウ */
    box-shadow: 3px 3px 9px 0 rgba(187, 219, 241, 0.38);
}

.button::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background-color: #fff;
    border-radius: 50%;
    transition: all .3s;
}

.button:hover::after {
    transform: scale(1.2);
    background-color: transparent;
    border: 1px solid #fff;
}

.top_product .button {
    margin-inline: auto;
}

.top_product_content_wrap {
    position: relative;
}

.top_product_drop {
    position: absolute;
}

.top_product_drop:first-of-type {
    top: -138px;
    left: -15%;
    width: 96%;
    max-width: 370px;
}

.top_product_drop:nth-of-type(2) {
    top: 0px;
    right: -3%;
    width: 40%;
}

@media (min-width: 768px) {
    .top_product {
        overflow: hidden;
        padding: 100px 0;
    }

    .top_product_title {
        font-size: 30px;
        padding: 16px 0
    }

    .top_product_text {
        font-size: 18px;
    }

    .top_product_content_title {
        font-size: max(32px, calc(66 /1440 *100vw));
        text-align: end;
        margin-right: calc(50% - 50vw);
        margin-bottom: 30px;
    }

    .top_product_content_wrap {
        display: flex;
        position: relative;
    }

    .top_product_content_img {
        position: absolute;
        bottom: -60px;
        width: 50%;
        margin-bottom: 0;
    }

    .top_product_content_textArea {
        width: 55%;
        margin-left: auto;
        max-width: 520px;
        position: relative;
        z-index: 1;
    }

    .top_product_name {
        font-size: 27px;
        gap: 30px;
        margin-bottom: 30px;
    }

    .top_product_content_text {
        font-size: 16px;
        margin-bottom: 100px;
    }

    .button {
        font-size: 20px;
        padding: 20px 28px 20px 40px;
        max-width: 100%;
        width: fit-content;
        gap: 30px;

    }

    .button::after {
        width: 9px;
        height: 9px;
    }

    .top_product .button {
        margin-left: auto;
        margin-inline: inherit;
    }

    .top_product_drop:first-of-type {
        max-width: 400px;
        top: -314px;
        left: -8%;
    }

    .top_product_drop:nth-of-type(2) {
        max-width: 150px;
        top: -25px;
        right: auto;
        left: 37%;
    }
}


/* お知らせ */
.news_list {
    margin-bottom: 30px;
}

.news_list_item a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 5px 5px 0;
    border-bottom: 1px solid #BBDBF1;
    transition: all .3s;
}

.news_list_item a:hover {
    opacity: .7;
}

.news_list_parent {
    font-family: Inter;
    font-size: 13px;
    font-weight: 300;
    line-height: 1;
    width: 70px;
    flex-shrink: 0;
}

.news_list_child .news_text {
    overflow: hidden;
    display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;

    font-family: "Shippori Mincho";
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    /* 16.8px */
}

.top_news {
    background: linear-gradient(180deg, #EFF8FC 0%, #CCE6F8 116.32%);
    padding: 50px 0 100px;
}

.top_news_enTitle {
    color: #FFF;
    text-shadow: 0 0 15px rgba(145, 187, 216, 0.55);
    font-family: Inter;
    font-size: 36px;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 30px;
}

.top_news_title {
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    margin-bottom: 30px;
}

.button.button_line {
    width: fit-content;
    border-radius: 30px;
    border: 1px solid #63A3D7;
    box-shadow: 3px 3px 9px 0 rgba(187, 219, 241, 0.38);
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-family: "Shippori Mincho";
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%;
}

.button.button_line::after {
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%);

}

.button.button_line:hover::after {
    background: transparent;
    border: 1px solid #63C6DA;
}

.top_news .button.button_line {
    margin-left: auto;
}


@media (min-width: 768px) {
    .top_news {
        padding: 100px 0;
    }

    .top_news_enTitle {
        font-size: 66px;
        margin-bottom: 70px;
    }

    .top_news_title {
        font-size: 30px;
        margin-bottom: 40px;
    }

    .news_list_item a {
        padding: 35px 8px 8px 0;
    }

    .news_list_parent {
        font-size: 18px;
        width: 160px;
    }

    .news_list_child .news_text {
        font-size: 16px;
        -webkit-line-clamp: 1;
    }

    .news_list {
        margin-bottom: 50px;
    }

    .button.button_line {
        padding: 21px 28px 22px 76px;
        font-size: 20px;
        font-weight: 500;
        border-radius: 100px;
        border-width: 3px;
        gap: 40px;
    }
}

/*  -----------------------------
お問い合わせフォーム（cf7)
--------------------------------- */


.form_label {
    font-size: 15px;
    margin-bottom: 10px;
    color: #64544D;
}

.form_required {
    color: #EA5593;
    margin-left: 9px
}

.form {
    background: rgba(234, 234, 234, 0.51);
    width: 90%;
    max-width: 683px;
    padding-top: 26px;
    padding-bottom: 28px;
    border-bottom: 0.5px solid #fff;
    margin-inline: auto;
}

/* --- テキスト入力、メール、電話番号 --- */
.form input[type=text],
.form input[type=email],
.form input[type=tel],
.form input[type=date],
.form input[type=number],
.form select,
.form textarea {
    width: 100%;
    padding: 25px 27px;
    height: 100%;
    max-height: 66px;
    font-size: 15px;
    font-weight: 500;
    border: none;
    border-radius: 5px;
    background-color: #FFFFFF;
}

.form input::placeholder,
.form textarea::placeholder {
    color: #767676;
    opacity: .3;
}

/* --- テキストエリア --- */
.form textarea {
    min-height: 200px;
    resize: vertical;
}

/* ラジオボタン */
.form input[type="radio"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

    padding: 0;
    width: 16px;
    height: 16px;
    border: .5px solid #4B204A;
    border-radius: 6px;
    background-color: #fff;
    cursor: pointer;
    position: relative;
}

/* 選択時のスタイル */
.form input[type="radio"]:checked::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background-color: #4B204A;
}

.location__group {
    margin-top: 34px;
}

/* プライバシーポリシー */
.privacy {
    height: 300px;
    overflow-y: scroll;
    border: 1px solid gray;
}

.privacy_inner {
    padding: 1em;
}

/* スクロールバーのカスタマイズCSS */
.privacy::-webkit-scrollbar {
    width: 8px;
}

.privacy::-webkit-scrollbar-track {
    background-color: lightblue;
}

.privacy::-webkit-scrollbar-thumb {
    background-color: #3760d0;
    border-radius: 8px;
}


/*
 * カスタムチェックボックス用CSS
 */
/* 認証ボタン */
.form__acceptance {
    text-align: center;
    margin-bottom: 21px;
    position: relative;
}

.form__acceptance .wpcf7-list-item input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* 元のチェックボックスを非表示にする */
.form__acceptance .wpcf7-list-item input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* チェックボックスの「外枠の円」を作成 */
.form__acceptance .wpcf7-list-item-label::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    height: 17px;
    width: 17px;
    background-color: #fff;
    border: 1px solid #775848;
    border-radius: 50%;
    transition: all 0.2s;
}

/* チェックが入ったときの「外枠の円」のスタイル */
.form__acceptance .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::before {}

/* チェックマーク（または中の点）を作成 */
.form__acceptance .wpcf7-list-item-label::after {
    content: "";
    position: absolute;
    display: none;
    /* 初期状態では非表示 */
}

/* チェックが入ったときにチェックマークを表示する */
.form__acceptance .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::after {
    display: block;
    top: 50%;
    left: 4.5px;
    /* 位置を微調整 */
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4B204A;
    /* 中の点の色 */
}


/* --- 送信ボタン --- */

.submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 237px;
    height: 51px;
    font-size: 14px;
    letter-spacing: 0.08em;
    line-height: 1.2;
    font-weight: 500;
    color: #707070;
    background-color: transparent;
    border: 1px solid #707070;
    border-radius: 26px;
    cursor: pointer;
    transition: background-color 0.3s;
    -webkit-appearance: none;
    appearance: none;
    margin-inline: auto;
}


/* CTA */

.cta {
    padding: 70px 0;
    background-image: url(../img/bg_cta_sp.webp);
}

.cta_title {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 10px;
    color: #FFF;
    text-align: center;
    font-family: Inter;
    font-size: 36px;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 30px;

}

.cta_title span {
    color: #FFF;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
}

.cta_content {
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.80);
    box-shadow: 0 0 10px 0 rgba(12, 62, 91, 0.30);
    margin-bottom: 30px;
}

.cta_content_text {
    color: #617DB6;
    text-align: center;
    font-family: "Shippori Mincho";
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.cta_content_tel {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    color: #617DB6;
    font-family: "Shippori Mincho";
    font-size: 30px;
    font-weight: 500;
    line-height: 1;
}

.cta_content_tel span {
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 1px;
}

.cta_btns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    align-self: stretch;
}

.cta_btn {
    display: flex;
    width: 299.997px;
    padding: 25px 20px;
    justify-content: center;
    align-items: center;
    gap: 13px;
    border-radius: 70px;
    border: 2px solid #FFF;
    color: #FFF;
    text-shadow: 0 0 4px rgba(97, 125, 182, 0.55);
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    transition: all .3s;
}

.cta_btn:hover {
    background-color: #fff;
    color: #406474;
    text-shadow: none;
}

.cta_btn .icon_mail {
    width: 20px;
    transition: all .3s;
}

.cta_btn .icon_hukidashi {
    width: 30px;
    transition: all .3s;
}

.cta_btn:hover svg path {
    fill: #406474;
}

@media (min-width: 768px) {
    .cta {
        padding: 70px 0;
        background-image: url(../img/bg_cta_pc.webp);
    }

    .cta_title {
        font-size: 66px;
        margin-bottom: 50px;

    }

    .cta_title span {
        font-size: 30px;
    }

    .cta_content {
        padding: 50px 0;
        gap: 30px;
        margin-bottom: 50px;
    }

    .cta_content_text {
        font-size: 24px;
    }

    .cta_content_tel {
        font-size: 50px;
    }

    .cta_content_tel span {
        font-size: 40px;
    }

    .cta_btns {
        flex-direction: row;
        gap: 19px;
        justify-content: center;
    }

    .cta_btn {
        height: 90px;
        font-size: 20px;
        width: 400px;
    }
}


/*  -----------------------------
下層 MV
--------------------------------- */
.page_wrapper .mv {
    width: 100%;
    height: auto;
    aspect-ratio: 1440 / 400;
    overflow: hidden;
}
@media screen and (max-width: 639px) {
    .page_wrapper .mv { aspect-ratio: 390 / 260; }
}

.page_wrapper .mv .mv_img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    z-index: 0;
}

.page_wrapper .mv .mv_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page_title {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    color: #617DB6;
    text-align: center;
    pointer-events: none;
}

.page_title_en {
    font-family: "Inter", sans-serif;
    font-weight: 500;
    font-size: clamp(2.625rem, 5vw, 4.125rem);
    line-height: 1;
    letter-spacing: 0.02em;
}

.page_title_jp {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: clamp(1.375rem, 2.5vw, 1.875rem);
    line-height: 1;
}

/*  -----------------------------
会社概要ページ
--------------------------------- */
.company {
    background: #fff;
}

/* 会社案内 */
.company_about_wrap {
    padding: clamp(3.125rem, 10vw, 9.375rem) 0 0;
}

.company_heading {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    line-height: 1;
    margin-bottom: clamp(1.25rem, 4vw, 3.125rem);
}

.company_heading_en {
    font-family: "Inter", sans-serif;
    font-weight: 500;
    font-size: clamp(0.875rem, 2vw, 1.5rem);
    color: #BBDBF1;
    letter-spacing: 0.04em;
    line-height: 1;
}

.company_heading_jp {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: clamp(1.375rem, 3.5vw, 2.5rem);
    color: #0F3F6F;
    text-shadow: 0.25rem 0.25rem 0.625rem rgba(0, 0, 0, 0.09);
    line-height: 1;
}
@media screen and (max-width: 639px) {
    .company_heading { gap: 0.375rem; }
}

.company_heading_center {
    align-items: center;
    text-align: center;
}

.company_table {
    margin: 0;
    padding: 0;
    width: 100%;
}

.company_row {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    border-bottom: 0.5px solid #B2B8BF;
    padding: clamp(1.3125rem, 2.5vw, 1.875rem) 0;
    color: #4F545A;
    font-size: clamp(0.75rem, 1.2vw, 1rem);
    line-height: 1.5;
}

.company_row dt {
    flex: 0 0 10.625rem;
    font-weight: 400;
    margin: 0;
    line-height: 1.5;
}

.company_row dt small {
    font-size: 0.75rem;
}

.company_row dd {
    flex: 1;
    margin: 0;
    min-width: 0;
    line-height: 1.5;
}
@media screen and (max-width: 639px) {
    .company_row dt { flex: 0 0 5rem; }
}

/* 沿革＋企業理念 背景ラッパー */
.company_history_wrap {
    background-image: url('../img/company_history_bg.svg');
    background-repeat: no-repeat;
    background-size: 100% 100%;
    padding: clamp(3.75rem, 14vw, 12.5rem) 0 clamp(3.75rem, 10vw, 9.375rem);
    margin-top: 86px;
}

.company_history_wrap .company_block + .company_block {
    margin-top: clamp(3.75rem, 14vw, 12.5rem);
}
@media screen and (max-width: 639px) {
    .company_history_wrap {
        background-image: url('../img/company_history_bg_sp.svg');
    }
}

/* 沿革 */
.company_history_block {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.history_list {
    position: relative;
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 41.75rem;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2.5vw, 1.875rem);
}

.history_list::before {
    content: '';
    position: absolute;
    top: 1rem;
    bottom: 1rem;
    left: 6.5rem;
    width: 1px;
    background: #63A3D7;
    z-index: 0;
}

.history_item {
    display: flex;
    align-items: center;
    gap: clamp(0.9375rem, 2.5vw, 1.875rem);
    position: relative;
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.company_row {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.company_table.is-visible .company_row,
.history_list.is-visible .history_item {
    opacity: 1;
    transform: translateY(0);
}

.company_table .company_row:nth-child(1) { transition-delay: 0.05s; }
.company_table .company_row:nth-child(2) { transition-delay: 0.13s; }
.company_table .company_row:nth-child(3) { transition-delay: 0.21s; }
.company_table .company_row:nth-child(4) { transition-delay: 0.29s; }
.company_table .company_row:nth-child(5) { transition-delay: 0.37s; }
.company_table .company_row:nth-child(6) { transition-delay: 0.45s; }
.company_table .company_row:nth-child(7) { transition-delay: 0.53s; }
.company_table .company_row:nth-child(8) { transition-delay: 0.61s; }
.company_table .company_row:nth-child(9) { transition-delay: 0.69s; }
.company_table .company_row:nth-child(10) { transition-delay: 0.77s; }
.company_table .company_row:nth-child(11) { transition-delay: 0.85s; }

.history_list .history_item:nth-child(1) { transition-delay: 0.05s; }
.history_list .history_item:nth-child(2) { transition-delay: 0.15s; }
.history_list .history_item:nth-child(3) { transition-delay: 0.25s; }
.history_list .history_item:nth-child(4) { transition-delay: 0.35s; }
.history_list .history_item:nth-child(5) { transition-delay: 0.45s; }
.history_list .history_item:nth-child(6) { transition-delay: 0.55s; }
.history_list .history_item:nth-child(7) { transition-delay: 0.65s; }
.history_list .history_item:nth-child(8) { transition-delay: 0.75s; }

@media (prefers-reduced-motion: reduce) {
    .company_row,
    .history_item {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.history_year {
    flex: 0 0 4.25rem;
    font-family: "Shippori Mincho", serif;
    font-weight: 400;
    font-size: clamp(1.125rem, 2.5vw, 2rem);
    color: #63A3D7;
    line-height: 1;
}

.history_dot {
    flex: 0 0 0.8125rem;
    width: 0.8125rem;
    height: 0.8125rem;
    border-radius: 50%;
    background: #63A3D7;
    position: relative;
    z-index: 1;
}

.history_text {
    margin: 0;
    font-size: clamp(0.75rem, 1.2vw, 1rem);
    color: #403D3D;
    line-height: 1.5;
}
@media screen and (max-width: 639px) {
    .history_list::before { left: 3.5rem; }
    .history_year { flex: 0 0 2.75rem; }
    .history_dot { flex: 0 0 0.5625rem; width: 0.5625rem; height: 0.5625rem; }
}

/* 企業理念 */
.company_philosophy_block {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.philosophy_text {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    color: #403D3D;
    font-size: clamp(0.8125rem, 1.6vw, 1.25rem);
    line-height: 1.7;
    margin: 0 0 clamp(1.5rem, 2.5vw, 1.875rem);
    text-align: center;
}

.philosophy_text p {
    margin: 0;
    line-height: 1.7;
}

.philosophy_links {
    display: flex;
    flex-direction: row;
    gap: 0.625rem;
    align-items: center;
    justify-content: center;
    margin: 0 0 clamp(1.875rem, 4vw, 3.125rem);
}

.philosophy_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.9375rem 1.25rem;
    border: 1px solid #617DB6;
    color: #617DB6;
    font-size: 0.75rem;
    line-height: 1;
    border-radius: 0.1875rem;
    text-decoration: none;
    transition: background 0.3s, color 0.3s;
    text-align: center;
    white-space: nowrap;
}

.philosophy_link:hover {
    background: #617DB6;
    color: #fff;
}

.philosophy_map {
    border-radius: 0.3125rem;
    overflow: hidden;
    width: 100%;
    margin: 0;
    aspect-ratio: 500 / 200;
    background: #EFF8FC;
}

.philosophy_map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
@media screen and (max-width: 639px) {
    .philosophy_links {
        flex-direction: column;
        align-items: stretch;
        max-width: 20rem;
    }
    .philosophy_link {
        padding: 0.8125rem 1rem;
        font-size: 0.6875rem;
        line-height: 1.3;
        white-space: normal;
    }
}

/*  -----------------------------
製品紹介ページ
--------------------------------- */
.product {
    overflow: hidden;
}

.product_hero {
    padding: 2.5rem 0 0;
    position: relative;
}

.product_hero_inner {
    display: flex;
    align-items: center;
    gap: 2rem;
    max-width: 60rem;
}

.product_hero_content {
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
    flex: 1;
    min-width: 0;
}

.product_hero_en {
    font-family: "Inter", sans-serif;
    font-weight: 400;
    font-size: clamp(2rem, 3.5vw, 4.125rem);
    line-height: 1.4;
    white-space: nowrap;
    background: linear-gradient(200deg, rgba(239,248,252,0.6) 8.5%, rgba(225,233,253,0.6) 25.3%, rgba(142,199,237,0.6) 55.4%, rgba(239,248,252,0.6) 85.1%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
    margin: 0;
    opacity: 0;
    transform: translateX(100%);
    transition: opacity 1.1s ease-out 0.2s, transform 1.1s ease-out 0.2s;
}

.product.is-visible .product_hero_en {
    opacity: 1;
    transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
    .product_hero_en {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.product_hero_name {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.625rem;
    width: 100%;
}

.product_hero_name_jp {
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: 1.875rem;
    color: #0F3F6F;
    line-height: 1;
    margin: 0;
    width: 100%;
    text-align: center;
}

.product_hero_name_sub {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 0.625rem;
    color: #0F3F6F;
    line-height: 1;
    margin: 0;
}

.product_hero_catch {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding-bottom: 0.25rem;
}

.product_hero_catch_main {
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: 1.625rem;
    color: #617DB6;
    line-height: 1.5;
    text-align: center;
    margin: 0;
    width: 22.5rem;
}

.product_hero_catch_sub {
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: 0.9375rem;
    color: #617DB6;
    line-height: 1.5;
    text-align: center;
    margin: 0;
    width: 22.5rem;
}

.product_hero_badges {
    display: flex;
    gap: 0.9375rem;
    justify-content: center;
    align-items: center;
}

.product_hero_badge {
    width: 7.375rem;
    height: 7.3125rem;
    border-radius: 4.375rem;
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%);
    box-shadow: 0.125rem 0.25rem 0.3125rem rgba(0, 0, 0, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

.product_hero_badge:nth-child(1) { transition-delay: 0.4s; }
.product_hero_badge:nth-child(2) { transition-delay: 0.7s; }
.product_hero_badge:nth-child(3) { transition-delay: 1.0s; }

.product.is-visible .product_hero_badge {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .product_hero_badge {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.product_hero_badge p {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 1.125rem;
    line-height: 1.3;
    color: #fff;
    text-align: center;
    margin: 0;
    white-space: nowrap;
}

.product_hero_img {
    flex: 1;
    min-width: 0;
    mix-blend-mode: multiply;
    order: -1;
    max-width: 31.25rem;
}

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

/* 水滴デコレーション */
.product_hero_deco {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
}

.product_hero_drop {
    position: absolute;
    mix-blend-mode: darken;
    animation: product_hero_drop_float 7s ease-in-out infinite;
}

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

@keyframes product_hero_drop_float {
    0%   { opacity: 0; transform: translateY(80px); }
    15%  { opacity: 1; }
    75%  { opacity: 0.6; }
    100% { opacity: 0; transform: translateY(-280px); }
}

@media (prefers-reduced-motion: reduce) {
    .product_hero_drop {
        animation: none;
        opacity: 0.35;
    }
}

.product_hero_drop_01 { width: 4.875rem; top: 78%; left: 0; animation-duration: 8s; animation-delay: 0s; }
.product_hero_drop_01 img { opacity: 0.35; }

.product_hero_drop_02 { width: 3.5625rem; top: 52%; left: 13%; animation-duration: 7.5s; animation-delay: 1.8s; }
.product_hero_drop_02 img { opacity: 0.27; }

.product_hero_drop_03 { width: 4.125rem; top: 68%; left: 22%; animation-duration: 9s; animation-delay: 3.2s; }
.product_hero_drop_03 img { opacity: 0.35; }

.product_hero_drop_04 { width: 1.125rem; top: 58%; left: 29%; animation-duration: 6s; animation-delay: 2.4s; }
.product_hero_drop_04 img { opacity: 0.46; }

.product_hero_drop_05 { width: 3.6875rem; top: 72%; right: 10%; left: auto; animation-duration: 8.5s; animation-delay: 0.6s; }
.product_hero_drop_05 img { opacity: 0.35; }

.product_hero_drop_06 { width: 2.75rem; top: 60%; right: 4%; left: auto; animation-duration: 7s; animation-delay: 2.8s; }
.product_hero_drop_06 img { opacity: 0.27; }

.product_hero_drop_07 { width: 1.375rem; top: 84%; right: 18%; left: auto; animation-duration: 6.5s; animation-delay: 4s; }
.product_hero_drop_07 img { opacity: 0.46; }

.product_hero_drop_08 { width: 1rem; top: 66%; right: 22%; left: auto; animation-duration: 6s; animation-delay: 5s; }
.product_hero_drop_08 img { opacity: 0.46; }

@media screen and (max-width: 767px) {
    .product_hero {
        padding: 3.125rem 0 0;
    }

    .product_hero_inner {
        flex-direction: column;
        align-items: center;
        gap: 1.25rem;
    }

    .product_hero_content {
        /* max-width: 21.875rem; */
        gap: 0.375rem;
    }

    .product_hero_en {
        text-align: left;
        white-space: normal;
    }

    .product_hero_name_jp { font-size: 1.5625rem; }
    .product_hero_name_sub { font-size: 0.6875rem; }

    .product_hero_catch_main { font-size: 1.25rem; width: 100%; }
    .product_hero_catch_sub { font-size: 0.75rem; width: 100%; }

    .product_hero_badges {
        gap: 0.6875rem;
        margin-top: 1.5rem;
    }
    .product_hero_badge { width: 6.625rem; height: 6.5625rem; }
    .product_hero_badge p { font-size: 1rem; }

    .product_hero_img {
        margin-top: 0.625rem;
        max-width: 21.875rem;
        order: 0;
    }

    .product_hero_drop_01 { width: 5.3125rem; top: 78%; left: -2%; }
    .product_hero_drop_02 { width: 3.125rem; top: 62%; left: 20%; }
    .product_hero_drop_03 { width: 4rem; top: 72%; left: 38%; }
    .product_hero_drop_04 { width: 1.125rem; top: 68%; left: 46%; }
    .product_hero_drop_05 { width: 3.25rem; top: 76%; right: 8%; left: auto; }
    .product_hero_drop_06 { width: 2.5rem; top: 64%; right: 2%; left: auto; }
    .product_hero_drop_07 { width: 1.25rem; top: 84%; right: 18%; left: auto; }
    .product_hero_drop_08 { width: 0.875rem; top: 70%; right: 24%; left: auto; }
}

/*  -----------------------------
製品紹介 お悩みセクション
--------------------------------- */
.product_trouble {
    padding: clamp(3.75rem, 8vw, 6.25rem) 0;
}

/* タイトル */
.product_trouble_title {
    text-align: center;
    margin-bottom: clamp(1.875rem, 4vw, 3.125rem);
}

.product_trouble_title img {
    max-width: 589px;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 画像エリア */
.product_trouble_visual {
    width: 100%;
    margin-bottom: clamp(1.25rem, 3vw, 2.5rem);
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.9s ease-out 0.9s, transform 0.9s ease-out 0.9s;
}

.product_trouble.is-visible .product_trouble_visual {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .product_trouble_visual {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

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

/* 原因 */
.product_trouble_cause {
    position: relative;
    margin-bottom: clamp(1.25rem, 3vw, 2.5rem);
    display: flex;
    justify-content: center;
    align-items: center;
}

.product_trouble_wave {
    width: 100%;
    max-width: 550px;
    height: auto;
    display: block;
    animation: product_trouble_wave_bounce 1.8s ease-in-out infinite;
}

@keyframes product_trouble_wave_bounce {
    0%, 100% { transform: translateY(-8px); }
    50% { transform: translateY(8px); }
}

@media (prefers-reduced-motion: reduce) {
    .product_trouble_wave {
        animation: none;
    }
}

.product_trouble_cause_text {
    position: absolute;
    top: 1.4375rem;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Shippori Mincho", serif;
    font-weight: 700;
    font-size: 1.125rem;
    color: #0F3F6F;
    line-height: 1;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.625rem;
    white-space: nowrap;
}

.product_trouble_cause_prefix,
.product_trouble_cause_suffix {
    white-space: nowrap;
}

.product_trouble_cause_main {
    display: flex;
    align-items: flex-end;
    white-space: nowrap;
}

.product_trouble_cause_accent {
    font-size: 1.5rem;
    line-height: 1;
    display: inline-flex;
}

.product_trouble_cause_accent > span {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 0.4375rem;
}

.product_trouble_cause_accent > span::before {
    content: "";
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #0F3F6F;
    position: absolute;
    top: 0;
}

/* 解決テキスト＋製品画像 */
.product_trouble_solution {
    text-align: center;
}

.product_trouble_solution_text {
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.75;
    text-align: center;
    margin: 0 0 1.75rem;
    background: linear-gradient(131deg, #B7DFF3 22.5%, #6AAACD 64%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(2px 2px 6px rgba(0, 0, 0, 0.2));
}

.product_trouble_solution_img {
    position: relative;
    width: 10.25rem;
    margin: 0 auto;
}

.product_trouble_solution_img > img {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 1;
}

.product_trouble_solution_bubble {
    position: absolute;
    inset: -2.5rem;
    width: calc(100% + 5rem);
    height: auto;
    z-index: 0;
    pointer-events: none;
}

@media screen and (min-width: 768px) {
    .product_trouble_cause_text {
        flex-direction: row;
        align-items: flex-end;
        font-size: 1.875rem;
        gap: 0;
        top: 1.5rem;
    }

    .product_trouble_cause_accent {
        font-size: 2.5rem;
    }

    .product_trouble_cause_accent > span {
        padding-top: 0.75rem;
    }

    .product_trouble_solution {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
    }

    .product_trouble_solution_text {
        font-size: 2.6875rem;
        text-align: left;
        margin: 0;
    }

    .product_trouble_solution_img {
        width: 12.0625rem;
        flex-shrink: 0;
        margin: 0;
    }
}


/*  -----------------------------
製品紹介 ウルトラナノテックバブルとは？
--------------------------------- */
.product_about {
    padding: clamp(2.5rem, 6vw, 3.25rem) 0;
}

.product_about_heading {
    background: linear-gradient(107deg, #83BAC9 4%, #4178BC 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.3125rem 1.25rem;
    height: 3.125rem;
    margin-bottom: clamp(1.875rem, 4vw, 3.125rem);
}

.product_about_heading p {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
    color: #fff;
    text-align: center;
    white-space: nowrap;
    margin: 0;
}

.product_about_diagram {
    max-width: 36.9375rem;
    margin: 0 auto clamp(1.875rem, 4vw, 3.125rem);
}

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

.product_about_text {
    max-width: 56.875rem;
    margin: 0 auto clamp(1.875rem, 4vw, 3.125rem);
}

.product_about_desc {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: clamp(0.875rem, 1.4vw, 1.125rem);
    color: #5482A9;
    line-height: 1.8;
    margin: 0 0 1.25rem;
}

.product_about_highlight {
    color: #76CAED;
}

.product_about_notes {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.product_about_notes p {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: clamp(0.6875rem, 1.1vw, 0.9375rem);
    color: #403D3D;
    line-height: 1.2;
    margin: 0;
}

.product_about_scale {
    width: 100%;
    aspect-ratio: 960 / 247;
    overflow: hidden;
}

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

/*  -----------------------------
製品紹介 ボルテックス技術
--------------------------------- */
.product_vortex {
    padding: clamp(1.25rem, 4vw, 3.25rem) 0;
}

.product_vortex_intro {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: clamp(0.875rem, 1.4vw, 1.125rem);
    color: #403D3D;
    line-height: 1.6;
    margin: 0 0 clamp(1.25rem, 3vw, 2.25rem);
    max-width: 56.5625rem;
}

.product_vortex_main {
    display: flex;
    flex-direction: column;
    gap: clamp(1.25rem, 3vw, 2rem);
}

.product_vortex_img {
    max-width: 32.5625rem;
}

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

.product_vortex_badges > * {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

.product_vortex_badges > *:nth-child(1) { transition-delay: 0.2s; }
.product_vortex_badges > *:nth-child(2) { transition-delay: 0.5s; }
.product_vortex_badges > *:nth-child(3) { transition-delay: 0.8s; }

.product_vortex.is-visible .product_vortex_badges > * {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .product_vortex_badges > * {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.product_vortex_badges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.product_vortex_badge {
    width: clamp(8.3125rem, 14vw, 10.8125rem);
    height: clamp(8.25rem, 14vw, 10.75rem);
    border-radius: 50%;
    background: #fff;
    border: 0.25rem solid #EFF8FC;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.product_vortex_badge p {
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: clamp(1.125rem, 2vw, 1.5625rem);
    white-space: nowrap;
    color: #617DB6;
    text-align: center;
    line-height: 1.5;
    margin: 0;
}

.product_vortex_cross {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: 2.625rem;
    background: linear-gradient(90deg, #637CD7 22%, #76AAED 94%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
    line-height: 1;
}

.product_vortex_detail {
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2vw, 1.25rem);
}

.product_vortex_detail p {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: clamp(0.875rem, 1.3vw, 1rem);
    color: #403D3D;
    line-height: 1.5;
    margin: 0;
}

.product_vortex_note {
    font-size: clamp(0.75rem, 1.1vw, 0.875rem) !important;
}

@media screen and (min-width: 960px) {
    .product_vortex_main {
        display: grid;
        grid-template-columns: 32.5625rem 1fr;
        grid-template-rows: auto auto;
        gap: 1.25rem 3rem;
    }
    .product_vortex_img { grid-row: 1 / 3; }
    .product_vortex_badges { justify-content: flex-start; grid-column: 2; }
    .product_vortex_detail { grid-column: 2; max-width: 30rem; }
}

/*  -----------------------------
製品紹介 はじめよう！ラヴィーンのある暮らし
--------------------------------- */
.product_lifestyle {
    padding: clamp(2.5rem, 6vw, 3.75rem) 0 0;
}

.product_lifestyle_bg {
    background-image: url('../img/lifestyle_bg.svg');
    background-repeat: no-repeat;
    background-size: 100% 100%;
    padding: clamp(3rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3.75rem);
}

.product_lifestyle_title {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.9375rem;
    margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
    animation: product_lifestyle_title_pulse 2.4s ease-in-out infinite;
    transform-origin: center;
}

@keyframes product_lifestyle_title_pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
    .product_lifestyle_title {
        animation: none;
    }
}

.product_lifestyle_title_text {
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 1.2;
    text-align: center;
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
}

.product_lifestyle_title::before,
.product_lifestyle_title::after {
    content: "";
    width: 2.75rem;
    height: 2.375rem;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='38' viewBox='0 0 44 38' fill='none'><path d='M8 37 L23 1 M26 37 L41 1' stroke='%2376CAED' stroke-width='2.5' stroke-linecap='round'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
}

.product_lifestyle_title::before {
    transform: scaleX(-1);
}

.product_lifestyle_photos {
    display: flex;
    gap: 0.375rem;
    justify-content: center;
    margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.product_lifestyle_photo {
    flex: 0 0 calc(33.333% - 0.25rem);
    border-radius: 0.1875rem;
    overflow: hidden;
    box-shadow: 0.125rem 0.125rem 0.5rem rgba(24, 125, 187, 0.1);
}

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

.product_lifestyle_lead {
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: clamp(0.875rem, 1.3vw, 1rem);
    color: #617DB6;
    text-align: center;
    line-height: 1.6;
    margin: 0 0 clamp(1rem, 2.5vw, 2rem);
}

.product_lifestyle_table {
    max-width: 60rem;
    margin: 0 auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.product_lifestyle_table img {
    width: 60rem;
    max-width: none;
    height: auto;
    display: block;
}

@media screen and (min-width: 768px) {
    .product_lifestyle_table {
        overflow-x: visible;
    }

    .product_lifestyle_table img {
        width: 100%;
    }
}

.product_lifestyle_note {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 350;
    font-size: 0.625rem;
    color: #403D3D;
    text-align: right;
    margin: 0.5625rem 0 0;
}

@media screen and (min-width: 768px) {
    .product_lifestyle_title {
        gap: 1.25rem;
    }

    .product_lifestyle_title_text {
        font-size: 1.875rem;
    }

    .product_lifestyle_title_br {
        display: none;
    }
}

/*  -----------------------------
お問い合わせ 確認・完了画面
--------------------------------- */
.contact_form_errors {
    background: #FEECEC;
    border: 1px solid #E48B8B;
    color: #C63A3A;
    border-radius: 0.5rem;
    padding: 1rem 1.25rem;
    margin: 0 0 1.5rem;
    list-style: disc inside;
    font-size: 0.875rem;
    line-height: 1.6;
}

.contact_confirm_table {
    margin: 0 0 2rem;
    border-top: 1px solid #C5DCEC;
}

.contact_confirm_row {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid #C5DCEC;
}

.contact_confirm_row dt {
    font-weight: 600;
    color: #0F3F6F;
    font-size: 0.9375rem;
}

.contact_confirm_row dd {
    margin: 0;
    color: #403D3D;
    font-size: 1rem;
    line-height: 1.7;
    word-break: break-word;
}

@media screen and (min-width: 768px) {
    .contact_confirm_row {
        flex-direction: row;
        align-items: flex-start;
        gap: 2rem;
    }
    .contact_confirm_row dt { flex: 0 0 12rem; }
    .contact_confirm_row dd { flex: 1; }
}

.contact_confirm_btns,
.contact_complete_btns {
    display: flex;
    flex-direction: column;
    gap: 0.9375rem;
    align-items: center;
    margin-top: 2rem;
}

@media screen and (min-width: 768px) {
    .contact_confirm_btns {
        flex-direction: row;
        justify-content: center;
    }
}

.contact_form_back {
    display: inline-block;
    padding: 1rem 2.5rem;
    border-radius: 999px;
    background: #fff;
    color: #0F3F6F;
    border: 1px solid #0F3F6F;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1rem;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    min-width: 14rem;
}

.contact_form_back:hover {
    background: #EFF8FC;
}

/*  -----------------------------
ポリシーページ共通（サイト利用規約・個人情報保護方針）
--------------------------------- */
.policy {
    padding: clamp(3.75rem, 10vw, 9.375rem) 0;
}

.policy .policy_inner {
    max-width: 60rem;
}

.policy_lead {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: clamp(0.875rem, 1.4vw, 1.125rem);
    color: #617DB6;
    line-height: 1.8;
    margin: 0 0 clamp(1.875rem, 4vw, 3.125rem);
}

.policy_section {
    margin-bottom: clamp(1.875rem, 4vw, 3.125rem);
}

/* サイトポリシー用: ドット付き見出し */
.policy_section_heading {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid #617DB6;
}

.policy_section_dot {
    display: block;
    width: 0.625rem;
    height: 0.625rem;
    background: #617DB6;
    flex-shrink: 0;
}

.policy_section_heading h2 {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: clamp(1.125rem, 2vw, 1.5rem);
    color: #617DB6;
    line-height: 1;
    margin: 0;
}

/* プライバシーポリシー用: 番号付き見出し */
.policy_section_title {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: clamp(1.125rem, 2vw, 1.5rem);
    color: #617DB6;
    line-height: 1;
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid #617DB6;
}

.policy_section p {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 350;
    font-size: clamp(0.875rem, 1.2vw, 1rem);
    color: #403D3D;
    line-height: 1.8;
    margin: 0;
}

.policy_list {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 0;
}

.policy_list li {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 350;
    font-size: clamp(0.875rem, 1.2vw, 1rem);
    color: #403D3D;
    line-height: 1.8;
}

.policy_list li::before {
    content: '・';
}

/*  -----------------------------
お問い合わせフォーム
--------------------------------- */
.contact_form {
    padding: clamp(3.75rem, 10vw, 9.375rem) 0;
}

.contact_form .contact_inner {
    max-width: 42.625rem;
}

.contact_form_lead {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: clamp(0.9375rem, 1.8vw, 1.4375rem);
    color: #617DB6;
    text-align: center;
    line-height: 1.6;
    margin: 0 0 clamp(1.875rem, 4vw, 3.125rem);
}

.contact_form_body {
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
    align-items: center;
}

.contact_form_group {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.contact_form_label {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.contact_form_label label {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 1rem;
    color: #403D3D;
    line-height: 1;
}

.contact_form_required {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.1875rem 0.3125rem;
    background: #617DB6;
    color: #fff;
    font-size: 0.75rem;
    line-height: 1;
    border-radius: 0.125rem;
}

.contact_form_row {
    display: flex;
    gap: 1.25rem;
}

.contact_form_row input {
    flex: 1;
}

.contact_form_group input,
.contact_form_group textarea {
    width: 100%;
    padding: 0.9375rem;
    border: 1px solid #B2B8BF;
    border-radius: 0.1875rem;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1rem;
    color: #403D3D;
    background: #fff;
    outline: none;
    transition: border-color 0.2s;
}

.contact_form_group input::placeholder,
.contact_form_group textarea::placeholder {
    color: #B2B8BF;
}

.contact_form_group input:focus,
.contact_form_group textarea:focus {
    border-color: #617DB6;
}

.contact_form_group textarea {
    resize: vertical;
    min-height: 12rem;
}

.contact_form_agree {
    width: 100%;
}

.contact_form_agree label {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1rem;
    color: #403D3D;
    cursor: pointer;
}

.contact_form_agree input[type="checkbox"] {
    width: 0.625rem;
    height: 0.625rem;
    border: 1px solid #617DB6;
    border-radius: 0.125rem;
    appearance: none;
    cursor: pointer;
    flex-shrink: 0;
}

.contact_form_agree input[type="checkbox"]:checked {
    background: #617DB6;
}

.contact_form_agree a {
    color: #403D3D;
    text-decoration: underline;
}

.contact_form_submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16.5625rem;
    height: 3.9375rem;
    background: linear-gradient(90deg, #63A3D7 0%, #76CAED 53.25%, #63C6DA 100%);
    border: none;
    border-radius: 8.5625rem;
    box-shadow: 0.1875rem 0.1875rem 0.5625rem rgba(187, 219, 241, 0.38);
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: 1.25rem;
    color: #fff;
    text-shadow: 0 0 0.25rem rgba(97, 125, 182, 0.55);
    cursor: pointer;
    transition: opacity 0.3s;
}

.contact_form_submit:hover {
    opacity: 0.85;
}

@media screen and (max-width: 639px) {
    .contact_form_row {
        gap: 0.625rem;
    }
    .contact_form_lead br { display: none; }
}

/* Coming Soon */
.coming_soon_text {
    text-align: center;
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--text);
    margin: 2em 0 0.5em;
}
.coming_soon_sub {
    text-align: center;
    font-size: 1rem;
    color: var(--text);
    opacity: 0.8;
    margin-bottom: 2em;
}