html {
    color: #323232;
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt" on;
}

body {
    min-width: 375px;
}

span {
    display: inline-block;
}

picture {
    display: block;
}

img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

@media screen and (min-width: 901px) {
    .hover-nomal {
        transition: opacity .4s 0s cubic-bezier(.44,.14,.09,1.02);
    }

    .hover-nomal:hover {
        opacity: .7;
    }
}

/* utility */
.u-en {
    font-family: "Montserrat", sans-serif;
    font-feature-settings: "pwid" on, "palt" on;
}

.u-txt-gradation {
    background: linear-gradient(90deg, #2ab7eb 0%, #007dc5 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.u-color-blue {
    color: #2ab7eb;
}

.u-visually-hidden {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

/* layout */
.l-wrapper {
    padding-left: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
    padding-right: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
}

.l-inner {
    margin: 0 auto;
    max-width: 1200px;
}

@media screen and (max-width: 900px) {
    .l-wrapper {
        padding-left: 20px;
        padding-right: 20px;
    }

    .l-inner {
        max-width: 500px;
    }
}

/* common */
.pc-only {
    display: block;
}

.br-pc-only {
    display: inline;
}

.sp-only {
    display: none;
}

.br-sp-only {
    display: none;
}

@media screen and (max-width: 900px) {
    .pc-only {
        display: none;
    }
    
    .br-pc-only {
        display: none;
    }
    
    .sp-only {
        display: block;
    }
    
    .br-sp-only {
        display: inline;
    }
}

/*===========================================================================*/
/*  fv  */
/*===========================================================================*/
.c-lowerMv {
    position: relative;
    overflow: hidden;
    height: 445px;
    padding-top: 16px;
}
.c-lowerMv::before {
    background: url('../img/common/lower-mv-deco.webp') no-repeat center center/contain;
    content: '';
    height: 100%;
    left: 50%;
    position: absolute;
    top: 0;
    width: 793px;
    transform: translate(-50%, 0);
    z-index: 1;
}

.c-lowerMv__bg {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
}

.c-lowerMv__bg img {
    object-fit: cover;
    height: 100%;
}

.cleaning .c-lowerMv__bg img {
    width: 100%;
    object-position: right center;
}

.c-lowerMv__inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 100%;
}

.c-lowerMv__head {
    color: #17499D;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 58px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .06em;
}

.c-lowerMv__subHead {
    margin-top: 18px;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
	text-transform: uppercase;
}

.c-lowerMv__txts {
    width: 100%;
}

.c-lowerMv__txt {
    max-width: 420px;
    margin-top: 18px;
    margin-left: auto;
    margin-right: auto;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .02em;
    overflow-wrap: anywhere;
}

@media screen and (max-width: 900px) {
    .c-lowerMv {
        height: 327px;
        padding-top: 0;
    }
    .c-lowerMv::before {
        background: url('../img/common/lower-mv-deco-sp.webp') no-repeat center center/contain;
        width: 466px;
    }

    .c-lowerMv__head {
        font-size: 32px;
    }

    .c-lowerMv__subHead {
        margin-top: 10px;
        font-size: 13px;
    }

    .c-lowerMv__txt {
        max-width: 240px;
        margin-top: 10px;
        font-size: 14px;
    }
}

.breadcrumbs-wrapper {
    position: relative;
}

.c-breadcrumb {
    padding: 20px 40px;
    width: 100%;
    overflow-x: scroll;
    overflow-y: visible;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.c-breadcrumb::-webkit-scrollbar {
    display: none;
}
.c-breadcrumb.--absolute {
    position: absolute;
    z-index: 3;
    left: 0;
    top: 0;
}

.c-breadcrumb__contents {
    font-size: 12px;
    line-height: 1.4;
}

.c-breadcrumb__contents a {
    text-decoration: underline;
	white-space: nowrap;
}

.c-breadcrumb__contents>span {
    display: inline-flex;
    gap: 26px;
}

.c-breadcrumb__contents>span>span {
    position: relative;
}
.c-breadcrumb__contents>span>span:last-of-type {
    color: #9c9c9c;
	white-space: nowrap;
}

.c-breadcrumb__contents>span>span::before {
    background: url('../img/common/breadcrumbs-arrow.svg') no-repeat center center/contain;
    content: '';
    height: 10px;
    left: calc(100% + 12px);
    position: absolute;
    top: 50%;
    width: 6px;
    transform: translate(0, -50%);
}
.c-breadcrumb__contents>span>span:last-of-type:before {
    display: none;
}

@media screen and (min-width: 901px) {
    .c-breadcrumb__contents a {
        transition: opacity .4s 0s cubic-bezier(.44,.14,.09,1.02);
    }

    .c-breadcrumb__contents a:hover {
        opacity: .7;
    }
}

@media screen and (max-width: 900px) {
    .c-breadcrumb {
        padding: 12px 20px;
    }

    .c-breadcrumb__contents {
        font-size: 10px;
    }

    .c-breadcrumb__contents>span {
        gap: 24px;
    }

    .c-breadcrumb__contents>span>span::before {
        left: calc(100% + 10px);
    }
}

/*===========================================================================*/
/*  pagination  */
/*===========================================================================*/
.c-pagination {
    margin-top: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.c-pagination__prev,
.c-pagination__next {
    width: 45px;
    height: 41px;
    background-color: #fff;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.c-pagination__prev.--inactive,
.c-pagination__next.--inactive {
    display: none;
}

.c-pagination__prev svg,
.c-pagination__next svg {
    stroke: #6A6A6A;
    transition: stroke .4s 0s cubic-bezier(.44,.14,.09,1.02);
}

.c-pagination__num {
    width: 45px;
    height: 41px;
    background: #fff;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color .4s 0s cubic-bezier(.44,.14,.09,1.02);
    font-feature-settings: 'palt' on;
    font-size: 17px;
    font-weight: 500;
    line-height: 1;
}

span.c-pagination__num {
    color: #fff;
    pointer-events: none;
    background: linear-gradient(138deg, #2AB7EB 3.64%, #007DC5 97.89%);
}

.c-pagination__dot {
    color: #A3A3A3;
    font-feature-settings: 'palt' on;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
}

@media screen and (min-width: 901px) {
    .c-pagination__prev:hover svg,
    .c-pagination__next:hover svg {
        stroke: #2AB7EB;
    }

    .c-pagination__num:hover {
        color: #2AB7EB;
    }
}

@media screen and (max-width: 900px) {
    .c-pagination {
        margin-top: 30px;
        gap: 7px;
    }

    .c-pagination__prev,
    .c-pagination__next {
        width: 39px;
        height: 38px;
    }

    .c-pagination__num {
        width: 39px;
        height: 38px;
        font-size: 14px;
    }

    .c-pagination__dot {
        padding: 0 5px;
    }
}

/*===========================================================================*/
/*  archive  */
/*===========================================================================*/
.p-archive {
    background-color: #EEF5F8;
    padding-top: 130px;
    padding-bottom: 100px;
}

.p-archive__main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
}

.p-archive__contents {
    width: calc(100% - 370px);
}

/* サイドバーが無い場合は本文を全幅に広げる */
.p-archive__contents:only-child {
    width: 100%;
}

/* カテゴリー絞り込みタブ (voice 親カテゴリーなど) */
.p-archive__tabs {
    margin-bottom: 40px;
}

.p-archive__tabs ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.p-archive__tabs a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    background: #fff;
    color: #17499D;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
    border-radius: 999px;
    border: 1px solid #DDE7EE;
    transition: background .25s, color .25s, border-color .25s, box-shadow .25s;
}

.p-archive__tabs a::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: linear-gradient(135deg, #2AB7EB 0%, #007DC5 100%);
    flex-shrink: 0;
}

@media screen and (min-width: 901px) {
    .p-archive__tabs a:hover {
        background: linear-gradient(135deg, #2AB7EB 0%, #007DC5 100%);
        color: #fff;
        border-color: transparent;
        box-shadow: 0 6px 16px rgba(0, 39, 105, .15);
    }

    .p-archive__tabs a:hover::before {
        background: #fff;
    }
}

.p-archive__lead {
    margin-bottom: 30px;
    padding: 22px 26px;
    background: #fff;
    border-radius: 12px;
    color: #5a5a5a;
    font-size: 14px;
    line-height: 1.85;
    border: 1px solid #DDE7EE;
}

.p-archive__list {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.p-archive__list li {
    width: calc(100%/3 - 48px/3);
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 39, 105, .06);
    transition: transform .3s, box-shadow .3s;
}

.p-archive__list--link {
    display: block;
    height: 100%;
}

.p-archive__list--img {
    aspect-ratio: 3/2;
    overflow: hidden;
    background: #EEF5F8;
}

.p-archive__list--img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s 0s cubic-bezier(.44,.14,.09,1.02);
}

.p-archive__list--body {
    padding: 20px 20px 24px;
}

.p-archive__list--meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    color: #6A6A6A;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1;
}

.p-archive__list--meta li {
    width: auto;
    background: transparent;
    border-radius: 0;
    overflow: visible;
    box-shadow: none;
    padding: 0;
}

.p-archive__list--meta time {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}

.p-archive__list--meta .--label {
    color: #2AB7EB;
    font-size: 10px;
    letter-spacing: .12em;
}

.p-archive__list--head {
    margin-top: 12px;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .02em;
    color: #17499D;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    transition: color .4s 0s cubic-bezier(.44,.14,.09,1.02);
}

.p-archive__list--text {
    margin-top: 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: .02em;
    color: #5a5a5a;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.p-archive__list--cats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 14px;
}

.p-archive__list--cats span {
    display: inline-block;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
    padding: 4px 10px 5px;
    background: #EEF5F8;
    border-radius: 999px;
}

.p-archive__empty {
    padding: 60px 24px;
    text-align: center;
    background: #fff;
    border-radius: 12px;
    color: #6A6A6A;
    font-size: 15px;
    border: 1px solid #DDE7EE;
}

.p-archive__side {
    width: 330px;
}

.p-archive__searchform {
    display: flex;
    gap: 8px;
    margin-bottom: 28px;
}

.p-archive__searchform input[type="search"] {
    flex: 1;
    padding: 12px 16px;
    font-size: 15px;
    background: #fff;
    border: 1px solid #DDE7EE;
    border-radius: 8px;
}

.p-archive__searchform button {
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    background: #17499D;
    border: none;
    border-radius: 8px;
    cursor: pointer;
}

.p-archive__links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-top: 28px;
}

.p-archive__links a {
    display: inline-block;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 700;
    color: #17499D;
    background: #fff;
    border: 1px solid #DDE7EE;
    border-radius: 999px;
}

.p-archive__empty a {
    color: #17499D;
    text-decoration: underline;
}

@media screen and (min-width: 901px) {
    .p-archive__list li:hover {
        transform: translateY(-4px);
        box-shadow: 0 12px 28px rgba(0, 39, 105, .12);
    }

    .p-archive__list--link:hover .p-archive__list--img img {
        transform: scale(1.06);
    }

    .p-archive__list--link:hover .p-archive__list--head {
        color: #2AB7EB;
    }
}


@media screen and (max-width: 900px) {
    .p-archive {
        padding-top: 74px;
        padding-bottom: 50px;
    }

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

    .p-archive__contents {
        width: 100%;
    }

    .p-archive__tabs {
        margin-bottom: 28px;
        overflow-x: auto;
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
    .p-archive__tabs::-webkit-scrollbar {
        display: none;
    }
    .p-archive__tabs ul {
        flex-wrap: nowrap;
        gap: 8px;
        padding-bottom: 4px;
    }
    .p-archive__tabs a {
        padding: 9px 16px;
        font-size: 13px;
        white-space: nowrap;
    }

    .p-archive__lead {
        margin-bottom: 24px;
        padding: 18px 20px;
        font-size: 13.5px;
        border-radius: 10px;
    }

    .p-archive__list {
        gap: 20px;
    }

    .p-archive__list li {
        width: 100%;
        border-radius: 12px;
    }

    .p-archive__list--body {
        padding: 18px 18px 22px;
    }

    .p-archive__list--meta {
        gap: 12px;
        font-size: 11px;
    }

    .p-archive__list--meta .--label {
        font-size: 9px;
    }

    .p-archive__list--head {
        margin-top: 12px;
        font-size: 16px;
    }

    .p-archive__list--text {
        font-size: 13px;
    }

    .p-archive__side {
        width: 100%;
    }
}

/*===========================================================================*/
/*  single  */
/*===========================================================================*/
.p-single {
    padding-top: 154px;
    padding-bottom: 130px;
}

.p-single__contents {
    max-width: 792px;
    margin: 0 auto;
}

.p-single__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.p-single__cats a {
    display: inline-block;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
    padding: 4px 10px 5px;
    background-color: #EEF5F8;
    border-radius: 6px;
}

.p-single__head {
    padding-bottom: 16px;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.55;
}

.p-single__meta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 25px;
    border-bottom: #C3C3C3 solid 1px;
}

.p-single__meta-dates {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    color: #6A6A6A;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1;
}

.p-single__meta-dates time {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}

.p-single__meta-dates .--label {
    color: #2AB7EB;
    font-size: 10px;
    letter-spacing: .12em;
}

.p-single__meta-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 12px;
    font-size: 14px;
    line-height: 1.5;
}

.p-single__meta-label {
    flex-shrink: 0;
    color: #6A6A6A;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
}

.p-single__meta-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.p-single__meta-links a,
.p-single__meta-item > a {
    display: inline-block;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
    padding: 3px 10px 4px;
    background-color: #EEF5F8;
    border-radius: 6px;
}

.p-single__eyecatch {
    margin-top: 28px;
    border-radius: 12px;
    overflow: hidden;
}

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

.p-single__content {
    margin-top: 60px;
}

/* 著者情報（記事末尾） */
.p-single__author {
    margin-top: 80px;
    padding: 44px 50px 48px;
    background-color: #EEF5F8;
    border-radius: 18px;
}

.p-single__author--label {
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.p-single__author--label::after {
    background-color: #C7DBE6;
    content: '';
    flex: 1;
    height: 1px;
}

.p-single__author--inner {
    display: grid;
    grid-template-columns: 128px 1fr;
    grid-template-areas:
        "avatar head"
        "avatar desc"
        "avatar link";
    column-gap: 32px;
    align-content: start;
    margin-top: 28px;
}

.p-single__author--avatar {
    grid-area: avatar;
    align-self: start;
    width: 128px;
    aspect-ratio: 4 / 5;
    border-radius: 14px;
    overflow: hidden;
    background-color: #fff;
}

.p-single__author--avatar img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center top;
}

.p-single__author--head {
    grid-area: head;
    min-width: 0;
}

.p-single__author--role {
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .06em;
    color: #17499D;
}

.p-single__author--name {
    margin-top: 8px;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .02em;
}

.p-single__author--name::after {
    background-color: #2AB7EB;
    content: '';
    display: block;
    width: 64px;
    height: 1px;
    margin-top: 20px;
}

.p-single__author--desc {
    grid-area: desc;
    min-width: 0;
    margin-top: 20px;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: .02em;
}

.p-single__author--desc p {
    margin: 0;
}

.p-single__author--desc p + p {
    margin-top: 12px;
}

.p-single__author--desc a {
    color: #17499D;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .3s;
}

.p-single__author--desc a:hover {
    color: #2AB7EB;
}

.p-single__author--desc strong {
    font-weight: 700;
}

.p-single__author--link {
    grid-area: link;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    margin-top: 28px;
    padding: 14px 20px 14px 30px;
    background-color: #17499D;
    color: #fff;
    border-radius: 8px;
    font-feature-settings: 'pwid' on, 'palt' on;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: transform .4s cubic-bezier(.22, .61, .36, 1),
                box-shadow .4s cubic-bezier(.22, .61, .36, 1),
                background-color .4s cubic-bezier(.22, .61, .36, 1);
}

.p-single__author--link > * {
    position: relative;
    z-index: 1;
}

.p-single__author--link::after {
    background: linear-gradient(115deg,
                transparent 0%,
                rgba(255, 255, 255, 0) 38%,
                rgba(255, 255, 255, .45) 50%,
                rgba(255, 255, 255, 0) 62%,
                transparent 100%);
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: translateX(-130%);
    transition: transform .7s cubic-bezier(.22, .61, .36, 1);
    pointer-events: none;
    z-index: 0;
}

.p-single__author--link .--arrow {
    display: inline-flex;
    align-items: center;
    transition: transform .4s cubic-bezier(.22, .61, .36, 1);
}

@media screen and (min-width: 901px) {
    .p-single__author--link:hover {
        background-color: #1F5CC4;
        transform: translateY(-3px);
        box-shadow: 0 12px 24px rgba(23, 73, 157, .3);
        opacity: 1;
    }
    .p-single__author--link:hover::after {
        transform: translateX(130%);
    }
    .p-single__author--link:hover .--arrow {
        transform: translateX(5px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .p-single__author--link {
        transition: background-color .3s ease;
    }
    .p-single__author--link:hover {
        transform: none;
        box-shadow: none;
    }
    .p-single__author--link::after {
        display: none;
    }
}

@media screen and (max-width: 900px) {
    .p-single {
        padding-top: 84px;
        padding-bottom: 50px;
    }

    .p-single__cats {
        margin-bottom: 7px;
    }

    .p-single__cats a {
        font-size: 13px;
        padding: 3px 10px 4px;
    }

    .p-single__head {
        padding-bottom: 10px;
        font-size: 22px;
    }

    .p-single__meta {
        gap: 8px;
        padding-bottom: 16px;
    }

    .p-single__meta-item {
        font-size: 13px;
    }

    .p-single__eyecatch {
        margin-top: 16px;
        border-radius: 8px;
    }

    .p-single__content {
        margin-top: 40px;
    }

    .p-single__author {
        margin-top: 48px;
        padding: 26px 22px 30px;
        border-radius: 12px;
    }

    .p-single__author--label {
        gap: 12px;
        font-size: 11px;
        letter-spacing: .1em;
    }

    .p-single__author--inner {
        grid-template-columns: 80px 1fr;
        grid-template-areas:
            "avatar head"
            "desc desc"
            "link link";
        column-gap: 16px;
        align-items: center;
        margin-top: 18px;
    }

    .p-single__author--avatar {
        align-self: center;
        width: 80px;
        border-radius: 8px;
    }

    .p-single__author--role {
        font-size: 12px;
    }

    .p-single__author--name {
        margin-top: 6px;
        font-size: 19px;
    }

    .p-single__author--name::after {
        width: 44px;
        margin-top: 12px;
    }

    .p-single__author--desc {
        margin-top: 18px;
        font-size: 14px;
        line-height: 1.85;
    }

    .p-single__author--link {
        justify-self: stretch;
        justify-content: space-between;
        margin-top: 20px;
        padding: 13px 18px 13px 22px;
        border-radius: 5px;
        font-size: 14px;
    }
}

/*===========================================================================*/
/*  post  (メディア記事 / 投稿本文)                                              */
/*===========================================================================*/
#post {
    overflow: hidden;
    color: #323232;
    font-feature-settings: 'pwid' on, 'palt' on;
    word-wrap: break-word;
}

/* --- 段落・改行 --- */
#post p {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.95;
    letter-spacing: .03em;
    margin: 24px 0;
}

#post > p:first-child,
#post > *:first-child {
    margin-top: 0;
}

#post strong {
    font-weight: 700;
}

/* --- 見出し --- */
#post h2 {
    font-size: 26px;
    font-weight: 800;
    line-height: 1.55;
    letter-spacing: .03em;
    color: #17499D;
    margin: 64px 0 28px;
    padding: 18px 22px 18px 24px;
    background: linear-gradient(135deg, #EEF5F8 0%, #F5FAFD 100%);
    border-left: 6px solid #2AB7EB;
    border-radius: 0 10px 10px 0;
}

#post h3 {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .02em;
    color: #17499D;
    margin: 56px 0 24px;
    padding: 4px 0 14px 22px;
    position: relative;
    border-bottom: 1px solid #EEF5F8;
}
#post h3::before {
    background: linear-gradient(180deg, #2AB7EB 0%, #007DC5 100%);
    border-radius: 3px;
    content: '';
    height: 28px;
    left: 0;
    position: absolute;
    top: 6px;
    width: 5px;
}

#post h4 {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .02em;
    color: #323232;
    margin: 40px 0 18px;
    padding-left: 26px;
    position: relative;
}
#post h4::before {
    background: #2AB7EB;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(42, 183, 235, .16);
    content: '';
    height: 8px;
    left: 8px;
    position: absolute;
    top: 14px;
    width: 8px;
}

#post h5 {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.6;
    margin: 32px 0 14px;
    color: #17499D;
}

/* --- リスト --- */
#post ul,
#post ol {
    margin: 24px 0;
    padding-left: 0;
}

#post ul > li,
#post ol > li {
    position: relative;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.95;
    letter-spacing: .03em;
    margin-bottom: 8px;
}

#post ul {
    list-style: none;
}

#post ul > li:not(.outline__item) {
    padding-left: 26px;
}

#post ul > li:not(.outline__item)::before {
    background: linear-gradient(135deg, #2AB7EB 0%, #007DC5 100%);
    border-radius: 50%;
    content: '';
    height: 8px;
    left: 6px;
    position: absolute;
    top: 14px;
    width: 8px;
}

#post ol {
    counter-reset: number;
    list-style: none;
}

#post ol > li {
    padding-left: 38px;
    counter-increment: number;
}

#post ol > li::before {
    background: linear-gradient(135deg, #2AB7EB 0%, #007DC5 100%);
    border-radius: 50%;
    color: #fff;
    content: counter(number);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 700;
    height: 22px;
    left: 0;
    line-height: 1;
    position: absolute;
    top: 8px;
    width: 22px;
}

#post li > ul,
#post li > ol {
    margin: 8px 0 4px;
}

/* --- 画像 --- */
#post img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 32px auto;
    box-shadow: 0 8px 24px rgba(0, 39, 105, .08);
    object-fit: cover;
}

#post p:has(> img:only-child) {
    margin: 32px 0;
}

#post .alignleft,
#post .alignright,
#post .aligncenter,
#post .alignnone,
#post .size-large,
#post .size-medium,
#post .size-full {
    display: block;
    margin: 32px auto;
    max-width: 100%;
    height: auto;
    float: none;
}

#post .alignwide,
#post .alignfull {
    max-width: 100%;
    margin: 40px auto;
}

#post figure {
    margin: 32px 0;
    text-align: center;
}

#post figure img {
    margin: 0 auto;
}

#post figcaption,
#post .wp-caption-text {
    font-size: 13px;
    color: #6A6A6A;
    margin-top: 10px;
    line-height: 1.55;
    text-align: center;
}

#post .wp-caption {
    max-width: 100%;
    margin: 32px auto;
}

/* --- 区切り線 --- */
#post hr {
    height: 1px;
    border: 0;
    background: linear-gradient(90deg, transparent 0%, #C3C3C3 50%, transparent 100%);
    margin: 56px 0;
}

#post > div:has(> hr:only-child) {
    margin: 0;
}

/* --- ハイライト / mark --- */
#post mark {
    background: linear-gradient(transparent 60%, rgba(255, 235, 59, .55) 60%);
    padding: 0 2px;
}

#post span[style*="background-color"] {
    padding: 2px 6px;
    border-radius: 4px;
}

/* --- リンク --- */
#post a:not(.outline__link) {
    color: #2AB7EB;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: color .3s;
    word-break: break-all;
}

#post a:not(.outline__link):hover {
    color: #007DC5;
}

/* --- 引用 --- */
#post blockquote {
    position: relative;
    margin: 36px 0;
    padding: 28px 32px 28px 60px;
    background: #EEF5F8;
    border-radius: 12px;
    color: #5a5a5a;
    font-style: normal;
}

#post blockquote::before {
    content: '\201C';
    position: absolute;
    top: 4px;
    left: 18px;
    font-family: "Montserrat", serif;
    font-size: 64px;
    line-height: 1;
    color: #2AB7EB;
    font-weight: 700;
}

#post blockquote p {
    margin: 0;
}

#post blockquote p + p {
    margin-top: 14px;
}

/* --- テーブル --- */
#post .table-wrap,
#post figure.wp-block-table {
    overflow-x: auto;
    margin: 32px 0;
}

#post table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 32px 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 39, 105, .06);
    background: #fff;
    font-size: 15px;
}

#post table th,
#post table td {
    padding: 16px 20px;
    text-align: left;
    line-height: 1.65;
    border-bottom: 1px solid #EEF5F8;
}

#post table thead th,
#post table > tbody > tr:first-child > th[scope="row"] {
    background: linear-gradient(135deg, #2AB7EB 0%, #007DC5 100%);
    color: #fff;
    font-weight: 700;
}

#post table tbody tr:nth-child(even) td {
    background: #F8FBFD;
}

#post table tbody tr:last-child td,
#post table tbody tr:last-child th {
    border-bottom: 0;
}

/* --- iframe / 動画 --- */
#post iframe,
#post video {
    max-width: 100%;
    width: 100%;
    margin: 32px auto;
    border-radius: 12px;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
    display: block;
}

#post code {
    background: #F4F6F8;
    color: #17499D;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: .92em;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

#post pre {
    background: #1F2A44;
    color: #fff;
    padding: 20px 22px;
    border-radius: 10px;
    overflow-x: auto;
    margin: 28px 0;
    line-height: 1.7;
    font-size: 14px;
}

#post pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

@media screen and (max-width: 900px) {
    #post p {
        font-size: 15px;
        line-height: 1.85;
        margin: 18px 0;
    }

    #post h2 {
        font-size: 19px;
        margin: 44px 0 22px;
        padding: 14px 16px 14px 18px;
        border-left-width: 4px;
        border-radius: 0 8px 8px 0;
    }

    #post h3 {
        font-size: 17px;
        margin: 36px 0 18px;
        padding-left: 16px;
        padding-bottom: 10px;
    }
    #post h3::before {
        width: 4px;
        height: 20px;
        top: 5px;
    }

    #post h4 {
        font-size: 16px;
        margin: 28px 0 14px;
        padding-left: 22px;
    }
    #post h4::before {
        width: 7px;
        height: 7px;
        top: 12px;
        box-shadow: 0 0 0 3px rgba(42, 183, 235, .16);
    }

    #post h5 {
        font-size: 15px;
        margin: 24px 0 12px;
    }

    #post ul,
    #post ol {
        margin: 18px 0;
    }

    #post ul > li,
    #post ol > li {
        font-size: 15px;
        line-height: 1.85;
    }

    #post ul > li:not(.outline__item) {
        padding-left: 22px;
    }
    #post ul > li:not(.outline__item)::before {
        top: 12px;
    }

    #post ol > li {
        padding-left: 32px;
    }
    #post ol > li::before {
        height: 20px;
        width: 20px;
        font-size: 11px;
    }

    #post img {
        margin: 22px auto;
        border-radius: 8px;
        box-shadow: 0 4px 14px rgba(0, 39, 105, .08);
    }

    #post hr {
        margin: 36px 0;
    }

    #post blockquote {
        padding: 20px 20px 20px 46px;
        margin: 28px 0;
        border-radius: 10px;
    }
    #post blockquote::before {
        font-size: 48px;
        left: 14px;
        top: 2px;
    }

    #post table {
        font-size: 14px;
        border-radius: 10px;
    }
    #post table th,
    #post table td {
        padding: 12px 14px;
    }

    #post iframe,
    #post video {
        border-radius: 8px;
    }
}

/*===========================================================================*/
/*  outline  (目次プラグイン Easy Table of Contents 風)                          */
/*===========================================================================*/
.outline {
    position: relative;
    margin: 40px 0;
    padding: 26px 30px 28px;
    background: #fff;
    border: 1px solid #DDE7EE;
    border-radius: 14px;
    box-shadow: 0 6px 20px rgba(0, 39, 105, .05);
}

.outline__title {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 18px;
    font-weight: 800;
    color: #17499D;
    letter-spacing: .06em;
    line-height: 1;
}

.outline__title::before {
    content: '';
    display: block;
    width: 22px;
    height: 22px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232AB7EB' stroke-width='2.2' stroke-linecap='round'><path d='M4 6h13M4 12h13M4 18h13'/><circle cx='20.5' cy='6' r='1.2' fill='%232AB7EB' stroke='none'/><circle cx='20.5' cy='12' r='1.2' fill='%232AB7EB' stroke='none'/><circle cx='20.5' cy='18' r='1.2' fill='%232AB7EB' stroke='none'/></svg>") no-repeat center / contain;
    flex-shrink: 0;
}

/* 開閉トグル (checkbox + label) */
.outline__toggle {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.outline__switch {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #EEF5F8;
    cursor: pointer;
    transition: background .25s;
}

.outline__switch::before,
.outline__switch::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 2px;
    background: #2AB7EB;
    border-radius: 2px;
    transition: transform .3s ease, opacity .3s ease;
}

.outline__switch::before {
    transform: translate(-50%, -50%);
}

.outline__switch::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.outline__switch:hover {
    background: #DDE7EE;
}

.outline__toggle:focus-visible + .outline__switch {
    outline: 2px solid #2AB7EB;
    outline-offset: 2px;
}

/* 「checked = 展開中」想定: マイナスマーク表示 */
.outline__toggle:checked + .outline__switch::after {
    transform: translate(-50%, -50%) rotate(0deg);
    opacity: 0;
}

/* 「unchecked = 折りたたみ」: リスト非表示 */
.outline__toggle:not(:checked) ~ .outline__list {
    display: none;
}

.outline__list {
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
}

.outline__list-3,
.outline__list-4 {
    margin: 2px 0;
    padding-left: 18px;
    border-left: none;
}

.outline__item {
    padding: 2px 0;
    line-height: 1.4;
}

#post .outline ul,
#post .outline ol {
    margin: 0;
    padding-left: 0;
}

#post .outline .outline__list-3,
#post .outline .outline__list-4 {
    margin: 2px 0;
    padding-left: 18px;
    border-left: none;
}

#post .outline li,
#post .outline .outline__item {
    margin-bottom: 0;
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 0;
    line-height: 1.4;
    font-weight: 600;
}

#post .outline li::before {
    content: none;
    display: none;
}

.outline__link {
    color: #323232;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    display: inline-flex;
    gap: 8px;
    align-items: baseline;
    letter-spacing: .02em;
    transition: color .3s;
}

.outline__link:hover {
    color: #2AB7EB;
}

.outline__number {
    color: #2AB7EB;
    font-family: "Montserrat", sans-serif;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .02em;
    flex-shrink: 0;
    min-width: 1.8em;
}

.outline__list-3 .outline__link,
.outline__list-4 .outline__link {
    font-size: 14px;
    font-weight: 500;
    color: #5a5a5a;
}

.outline__list-3 .outline__number,
.outline__list-4 .outline__number {
    font-size: 12px;
}

@media screen and (max-width: 900px) {
    .outline {
        margin: 28px 0;
        padding: 20px 22px 22px;
        border-radius: 10px;
    }
    .outline__title {
        font-size: 16px;
        gap: 10px;
    }
    .outline__title::before {
        width: 18px;
        height: 18px;
    }
    .outline__switch {
        top: 16px;
        right: 16px;
        width: 28px;
        height: 28px;
    }
    .outline__list {
        margin-top: 12px;
    }
    .outline__list-3,
    .outline__list-4 {
        padding-left: 14px;
        border-left: none;
    }
    .outline__item {
        padding: 2px 0;
    }
    .outline__link {
        font-size: 14px;
    }
    .outline__number {
        font-size: 12px;
    }
}

/*===========================================================================*/
/*  page  */
/*===========================================================================*/
.p-page {
    padding-top: 154px;
    padding-bottom: 130px;
}

@media screen and (max-width: 900px) {
    .p-page {
        padding-top: 84px;
        padding-bottom: 50px;
    }
}

/*===========================================================================*/
/*  header  */
/*===========================================================================*/
.header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	box-shadow: 0px 4px 30px 0px rgba(15, 41, 116, 0.08);
}

@media (max-width: 900px) {
	:root {
		--header-cta-bar-h: clamp(60px, calc(55.71px + 1.143vw), 66px);
	}
}

.header__annotation {
	color: #fff;
	text-align: center;
	font-weight: 700;
	background: #002769;
	font-size: clamp(9.1px, 3.2337228715px + 0.6510851419vw, 13px);
	padding-top: clamp(4.9px, 1.7412353923px + 0.3505843072vw, 7px);
	padding-bottom: clamp(3.5px, 1.2437395659px + 0.2504173623vw, 5px);
	padding-left: 0;
	padding-right: 0;
}

@media (max-width: 900px) {
	.header__annotation {
		font-size: clamp(10px, 9.2857142857px + 0.1904761905vw, 11px);
		padding-top: clamp(5px, 4.2857142857px + 0.1904761905vw, 6px);
		padding-left: clamp(10px, 8.5714285714px + 0.380952381vw, 12px);
		padding-right: clamp(10px, 8.5714285714px + 0.380952381vw, 12px);
		padding-bottom: clamp(7px, 6.2857142857px + 0.1904761905vw, 8px);
		line-height: 1.5;
	}
}

.header__annotation span {
	display: inline;
}

.header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
	padding-bottom: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
	padding-left: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
	padding-right: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
}

@media (max-width: 900px) {
	.header__inner {
		padding-top: clamp(10px, 9.2857142857px + 0.1904761905vw, 11px);
		padding-bottom: clamp(10px, 9.2857142857px + 0.1904761905vw, 11px);
		padding-left: clamp(20px, 18.5714285714px + 0.380952381vw, 22px);
		padding-right: clamp(20px, 18.5714285714px + 0.380952381vw, 22px);
	}
}

.header__content {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
	width: 100%;
}

.header__logo {
	flex-shrink: 0;
	width: clamp(147px, 52.2370617696px + 10.5175292154vw, 210px);
}

.header__logo a {
	display: block;
}

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

@media (max-width: 900px) {
	.header__logo {
		width: clamp(122px, 114.8571428571px + 1.9047619048vw, 132px);
	}
}

.header__nav {
	flex-shrink: 0;
}

@media (max-width: 900px) {
	.header__nav {
		display: block;
		position: fixed;
		top: var(--header-height, 92px);
		left: 0;
		width: 100%;
		height: calc(100dvh - var(--header-height, 92px));
		box-sizing: border-box;
		padding-bottom: var(--header-cta-bar-h);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		background: #fff;
		z-index: 99;
		padding-left: clamp(20px, 18.5714285714px + 0.380952381vw, 22px);
		padding-right: clamp(20px, 18.5714285714px + 0.380952381vw, 22px);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-12px);
		transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.35s;
	}
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
	.header__nav {
		transition: none;
	}
}

.header__nav-list {
	display: flex;
	align-items: center;
	gap: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
}

@media (max-width: 900px) {
	.header__nav-list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
}

.header__nav-item {
	flex-shrink: 0;
}

@media (max-width: 900px) {
	.header__nav-item {
		border-bottom: 1px solid #e0e0e0;
	}
}

@media (max-width: 900px) {
	.header__nav-item--has-child.is-open .header__nav-sub {
		max-height: 600px;
	}

	.header__nav-item--has-child.is-open .header__nav-arrow {
		background: linear-gradient(#2ab7eb, #2ab7eb) center/100% 1.5px no-repeat;
	}
}

@media (min-width: 901px) {
	.header__nav-item--has-child.is-open>.header__nav-link {
		color: #002769;
	}

	.header__nav-item--has-child.is-open .header__nav-arrow {
		transform: rotate(180deg);
	}

	.header__nav-item--has-child.is-open .header__nav-sub {
		display: block;
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}
}

.header__nav-link {
	display: flex;
	align-items: center;
	gap: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	color: #323232;
	font-weight: 700;
	font-size: clamp(11.2px, 3.979966611px + 0.8013355593vw, 16px);
	white-space: nowrap;
}

@media (max-width: 900px) {
	.header__nav-link {
		padding-top: clamp(20px, 18.5714285714px + 0.380952381vw, 22px);
		padding-bottom: clamp(20px, 18.5714285714px + 0.380952381vw, 22px);
		font-size: clamp(18px, 18px + 0vw, 18px);
		justify-content: space-between;
		gap: 0;
		letter-spacing: 0.036em;
		white-space: normal;
	}
}

.header__nav-arrow {
	display: inline-block;
	width: clamp(9.1px, 3.2337228715px + 0.6510851419vw, 13px);
	height: clamp(9.1px, 3.2337228715px + 0.6510851419vw, 13px);
	flex-shrink: 0;
	background: url(../img/common/arrow-down.svg) center/contain no-repeat;
	transition: transform 0.2s ease;
}

@media (max-width: 900px) {
	.header__nav-arrow {
		display: block;
		width: clamp(8px, 7.2857142857px + 0.1904761905vw, 9px);
		height: clamp(8px, 7.2857142857px + 0.1904761905vw, 9px);
		background: none;
		border-right: 2px solid #2ab7eb;
		border-top: 2px solid #2ab7eb;
		transform: rotate(45deg);
		margin-right: clamp(3px, 2.2857142857px + 0.1904761905vw, 4px);
		flex-shrink: 0;
	}
}

@media (max-width: 900px) {
	.header__nav-item--has-child .header__nav-arrow {
		width: clamp(14px, 13.2857142857px + 0.1904761905vw, 15px);
		height: clamp(14px, 13.2857142857px + 0.1904761905vw, 15px);
		background: linear-gradient(#2ab7eb, #2ab7eb) center/1.5px 100% no-repeat, linear-gradient(#2ab7eb, #2ab7eb) center/100% 1.5px no-repeat;
		border: none;
		transform: none;
		margin-right: 0;
		transition: background 0.3s ease;
	}
}

@media (max-width: 900px) {
	.header__nav-sub {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.35s ease;
	}
}

@media (min-width: 901px) {
	.header__nav-sub {
		display: none;
		position: fixed;
		z-index: 500;
		background: #fff;
		border: 1px solid #ccdbe1;
		border-radius: clamp(10.5px, 3.7312186978px + 0.7512520868vw, 15px);
		box-shadow: 8px 8px 20px 0 rgba(0, 0, 0, 0.1);
		padding-top: clamp(14px, 4.9749582638px + 1.0016694491vw, 20px);
		padding-bottom: clamp(14px, 4.9749582638px + 1.0016694491vw, 20px);
		padding-left: clamp(16.8px, 5.9699499165px + 1.2020033389vw, 24px);
		padding-right: clamp(16.8px, 5.9699499165px + 1.2020033389vw, 24px);
		min-width: clamp(154px, 54.7245409015px + 11.0183639399vw, 220px);
	}
}

@media (max-width: 900px) {
	.header__nav-sub-list {
		display: flex;
		flex-direction: column;
		gap: clamp(12px, 10.5714285714px + 0.380952381vw, 14px);
		padding-top: clamp(4px, 2.5714285714px + 0.380952381vw, 6px);
		padding-bottom: clamp(20px, 18.5714285714px + 0.380952381vw, 22px);
	}
}

@media (min-width: 901px) {
	.header__nav-sub-list {
		display: flex;
		flex-direction: column;
		gap: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
	}
}

@media (max-width: 900px) {
	.header__nav-sub-item {
		display: flex;
		align-items: center;
		gap: clamp(11px, 10.2857142857px + 0.1904761905vw, 12px);
	}

	.header__nav-sub-item::before {
		content: "";
		display: block;
		width: clamp(8px, 8px + 0vw, 8px);
		height: clamp(8px, 8px + 0vw, 8px);
		border-radius: 50%;
		background: #2ab7eb;
		flex-shrink: 0;
	}
}

@media (min-width: 901px) {
	.header__nav-sub-item {
		display: flex;
		align-items: center;
		gap: clamp(7px, 2.4874791319px + 0.5008347245vw, 10px);
		white-space: nowrap;
	}

	.header__nav-sub-item::before {
		content: "";
		display: block;
		width: clamp(4.2px, 1.4924874791px + 0.3005008347vw, 6px);
		height: clamp(4.2px, 1.4924874791px + 0.3005008347vw, 6px);
		border-radius: 50%;
		background: #2ab7eb;
		flex-shrink: 0;
	}
}

@media (max-width: 900px) {
	.header__nav-sub-link {
		font-size: clamp(14px, 13.2857142857px + 0.1904761905vw, 15px);
		font-weight: 500;
		color: #323232;
		letter-spacing: 0.028em;
		line-height: 1.6;
	}
}

@media (min-width: 901px) {
	.header__nav-sub-link {
		font-size: clamp(10.5px, 3.7312186978px + 0.7512520868vw, 15px);
		font-weight: 500;
		color: #323232;
		transition: color 0.2s;
	}

	.header__nav-sub-link:hover {
		color: #002769;
	}
}

.header__cta {
	display: flex;
	flex-shrink: 0;
}

@media (max-width: 900px) {
	.header__cta {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		z-index: 200;
	}
}

.header__cta-btn {
	display: flex;
	align-items: center;
	gap: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	height: clamp(46.2px, 16.4173622705px + 3.305509182vw, 66px);
	padding-left: clamp(11.2px, 3.979966611px + 0.8013355593vw, 16px);
	padding-right: clamp(11.2px, 3.979966611px + 0.8013355593vw, 16px);
	color: #fff;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: filter .3s ease;
}

.header__cta-btn > * {
	position: relative;
	z-index: 1;
}

.header__cta-btn::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(115deg,
	            transparent 0%,
	            rgba(255, 255, 255, 0) 38%,
	            rgba(255, 255, 255, .35) 50%,
	            rgba(255, 255, 255, 0) 62%,
	            transparent 100%);
	transform: translateX(-130%);
	transition: transform .7s cubic-bezier(.22, .61, .36, 1);
	pointer-events: none;
	z-index: 0;
}

.header__cta-btn:hover {
	opacity: 1;
	filter: brightness(1.08);
}

.header__cta-btn:hover::after {
	transform: translateX(130%);
}

.header__cta-icon {
	transition: transform .3s cubic-bezier(.22, .61, .36, 1);
}

.header__cta-btn:hover .header__cta-icon {
	transform: scale(1.12);
}

.header__cta-btn--line {
	background: #0cc755;
	border-top-left-radius: clamp(2.8px, 0.9949916528px + 0.2003338898vw, 4px);
	border-bottom-left-radius: clamp(2.8px, 0.9949916528px + 0.2003338898vw, 4px);
}

.header__cta-btn--form {
	background: #17499d;
}

.header__cta-btn--phone {
	background: #2ab7eb;
	border-top-right-radius: clamp(2.8px, 0.9949916528px + 0.2003338898vw, 4px);
	border-bottom-right-radius: clamp(2.8px, 0.9949916528px + 0.2003338898vw, 4px);
}

@media (max-width: 900px) {
	.header__cta-btn {
		flex: 1;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		gap: clamp(10px, 8.5714285714px + 0.380952381vw, 12px);
		padding: 0;
		min-height: var(--header-cta-bar-h);
		box-sizing: border-box;
	}

	.header__cta-btn--line {
		border-radius: 0;
	}

	.header__cta-btn--phone {
		border-radius: 0;
	}
}

.header__cta-icon {
	flex-shrink: 0;
}

.header__cta-icon--line {
	width: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	height: clamp(18.9px, 6.7161936561px + 1.3522537563vw, 27px);
}

.header__cta-icon--form {
	width: clamp(16.1px, 5.7212020033px + 1.1519198664vw, 23px);
	height: clamp(11.9px, 4.2287145242px + 0.8514190317vw, 17px);
}

.header__cta-icon--phone {
	width: clamp(17.5px, 6.2186978297px + 1.2520868114vw, 25px);
	height: clamp(17.5px, 6.2186978297px + 1.2520868114vw, 25px);
}

.header__cta-text {
	display: flex;
	flex-direction: column;
}

@media (max-width: 900px) {
	.header__cta-text {
		align-items: flex-start;
	}
}

.header__cta-label {
	font-weight: 700;
	font-size: clamp(9.8px, 3.4824707846px + 0.7011686144vw, 14px);
	line-height: 1.4;
}

.header__cta-sub {
	font-weight: 700;
	font-size: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
	line-height: 1.4;
}

@media (max-width: 900px) {
	.header__cta-label,
	.header__cta-sub {
		font-size: 12px;
	}
}

.header__menu {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: clamp(3.5px, 1.2437395659px + 0.2504173623vw, 5px);
	width: clamp(36.4px, 12.9348914858px + 2.6043405676vw, 52px);
	cursor: pointer;
	background: none;
	border: none;
	display: none;
}

@media (max-width: 900px) {
	.header__menu {
		padding-top: 0;
		width: clamp(42px, 40.5714285714px + 0.380952381vw, 44px);
		display: block;
	}
}

.header__menu-bars {
	display: flex;
	flex-direction: column;
	gap: clamp(2.8px, 0.9949916528px + 0.2003338898vw, 4px);
	width: clamp(30.8px, 10.9449081803px + 2.203672788vw, 44px);
}

@media (max-width: 900px) {
	.header__menu-bars {
		position: relative;
		height: clamp(14px, 13.2857142857px + 0.1904761905vw, 15px);
		width: clamp(36px, 34.5714285714px + 0.380952381vw, 38px);
	}
}

.header__menu-bar {
	display: block;
	width: 100%;
	height: 2px;
	background: #002769;
}

@media (max-width: 900px) {
	.header__menu-bar {
		position: absolute;
		left: 0;
		width: 100%;
		transition: transform 0.3s ease, opacity 0.3s ease;
	}

	.header__menu-bar:nth-child(1) {
		top: 0;
	}

	.header__menu-bar:nth-child(2) {
		top: 6px;
	}

	.header__menu-bar:nth-child(3) {
		top: 12px;
	}
}

.header__menu-text {
	margin-top: clamp(4.2px, 1.4924874791px + 0.3005008347vw, 6px);
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: clamp(10.5px, 3.7312186978px + 0.7512520868vw, 15px);
	color: #002769;
	text-align: center;
}

@media (max-width: 900px) {
	.header__menu-text {
		font-size: clamp(12px, 11.2857142857px + 0.1904761905vw, 13px);
		margin-top: clamp(4px, 3.2857142857px + 0.1904761905vw, 5px);
	}
}

@media (max-width: 900px) {
	.header.is-open .header__nav {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
		transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s;
	}
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
	.header.is-open .header__nav {
		transition: none;
	}
}

@media (max-width: 900px) {
	.header.is-open .header__menu-bar:nth-child(1) {
		transform: translateY(6px) rotate(28.4deg);
	}

	.header.is-open .header__menu-bar:nth-child(2) {
		opacity: 0;
	}

	.header.is-open .header__menu-bar:nth-child(3) {
		transform: translateY(-6px) rotate(-28.4deg);
	}
}

/*===========================================================================*/
/*  footer  */
/*===========================================================================*/
.l-footer {
	background: #fff;
}

@media (max-width: 900px) {
	.l-footer {
		padding-bottom: 60px;
	}
}

.l-footer__nav {
	padding: 0 40px;
	padding-top: clamp(35px, 12.4373956594px + 2.5041736227vw, 50px);
	padding-bottom: clamp(35px, 12.4373956594px + 2.5041736227vw, 50px);
}

@media (max-width: 900px) {
	.l-footer__nav {
		padding: 0 20px;
	}
}

.l-footer__nav-inner {
	display: flex;
	justify-content: space-between;
}

@media (max-width: 900px) {
	.l-footer__nav-inner {
		flex-direction: column;
	}
}

.l-footer__col {
	display: flex;
	flex-direction: column;
	gap: clamp(10.5px, 3.7312186978px + 0.7512520868vw, 15px);
	width: clamp(143.5px, 50.9933222037px + 10.2671118531vw, 205px);
}

@media (max-width: 900px) {
	.l-footer__col {
		width: 100%;
		gap: 0;
		border-bottom: 1px solid #c3c3c3;
	}

	.l-footer__col:first-child {
		border-top: 1px solid #c3c3c3;
	}
}

.l-footer__col-title {
	font-weight: 700;
	font-size: clamp(14px, 4.9749582638px + 1.0016694491vw, 20px);
	color: #323232;
	line-height: 1.6;
	letter-spacing: 0.4px;
	font-feature-settings: "palt", "pwid";
}

@media (max-width: 900px) {
	.l-footer__col-title {
		font-size: 18px;
		padding: 20px 0;
		display: flex;
		justify-content: space-between;
		align-items: center;
		cursor: pointer;
		user-select: none;
	}

	.l-footer__col-title::after {
		content: "";
		flex-shrink: 0;
		width: 14px;
		height: 14px;
		background: linear-gradient(#24ade0, #24ade0) 50% 50%/2px 14px no-repeat, linear-gradient(#24ade0, #24ade0) 50% 50%/14px 2px no-repeat;
	}
}

.l-footer__col-list {
	display: flex;
	flex-direction: column;
	gap: clamp(7px, 2.4874791319px + 0.5008347245vw, 10px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.l-footer__col-list li {
	display: flex;
	align-items: flex-start;
	gap: clamp(7.7px, 2.7362270451px + 0.550918197vw, 11px);
}

.l-footer__col-list li::before {
	content: "";
	width: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	height: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	border-radius: 50%;
	background: linear-gradient(135deg, #2ab7eb, #007dc5);
	flex-shrink: 0;
	margin-top: clamp(6.3px, 2.2387312187px + 0.4507512521vw, 9px);
}

.l-footer__col-list a {
	font-weight: 500;
	font-size: clamp(11.2px, 3.979966611px + 0.8013355593vw, 16px);
	color: #323232;
	line-height: 1.6;
	letter-spacing: 0.32px;
	text-decoration: none;
	font-feature-settings: "palt", "pwid";
	transition: opacity 0.3s;
}

.l-footer__col-list a:hover {
	opacity: 0.7;
}

@media (max-width: 900px) {
	.l-footer__col-list {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.4s ease, padding 0.4s ease;
		gap: 12px;
	}

	.l-footer__col-list li {
		gap: 11px;
	}

	.l-footer__col-list li::before {
		width: 8px;
		height: 8px;
	}

	.l-footer__col-list a {
		font-size: 14px;
	}
}

@media (max-width: 900px) {
	.l-footer__col.is-open .l-footer__col-title::after {
		background: linear-gradient(#24ade0, #24ade0) 50% 50%/14px 2px no-repeat;
	}

	.l-footer__col.is-open .l-footer__col-list {
		max-height: 400px;
		padding-bottom: 20px;
	}
}

.l-footer__trust {
	padding: 0 40px;
	padding-bottom: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
}

@media (max-width: 900px) {
	.l-footer__trust {
		padding: 0 20px;
		padding-top: 24px;
		padding-bottom: 24px;
	}
}

.l-footer__trust-inner {
	display: flex;
	gap: clamp(14px, 5.6752921536px + 0.9248747913vw, 28px);
	border-top: 1px solid #d8e4ef;
	padding-top: clamp(20px, 7.9682804674px + 1.3355592654vw, 28px);
}

@media (max-width: 900px) {
	.l-footer__trust-inner {
		flex-direction: column;
		gap: 20px;
		padding-top: 20px;
	}
}

.l-footer__trust-group {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.l-footer__trust-title {
	font-weight: 700;
	font-size: clamp(14px, 8.8597662771px + 0.5717861666vw, 18px);
	line-height: 1.5;
	color: #17499d;
	letter-spacing: 0.04em;
	font-feature-settings: "palt", "pwid";
}

.l-footer__trust-text {
	font-weight: 500;
	font-size: clamp(11px, 7.1452420701px + 0.4283064906vw, 14px);
	line-height: 1.65;
	color: #465265;
	font-feature-settings: "palt", "pwid";
}

.l-footer__trust-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: clamp(8px, 4.3388981636px + 0.4073455759vw, 12px);
}

.l-footer__trust-list li {
	background: #fff;
	border: 1px solid #d8e4ef;
	border-radius: 8px;
	overflow: hidden;
}

.l-footer__trust-list img {
	display: block;
	width: 100%;
	height: auto;
}

.l-footer__trust-list.--license {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.l-footer__trust-list.--award {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 900px) {
	.l-footer__trust-title {
		font-size: 16px;
	}

	.l-footer__trust-text {
		font-size: 13px;
	}

	.l-footer__trust-list.--license {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.l-footer__trust-list.--award {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.l-footer__bottom {
	border-top: 1px solid #c3c3c3;
	padding: 0 40px;
}

@media (max-width: 900px) {
	.l-footer__bottom {
		padding: 0 20px;
		border: none;
	}
}

.l-footer__bottom-inner {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding-top: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
	padding-bottom: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
}

@media (max-width: 900px) {
	.l-footer__bottom-inner {
		flex-direction: column;
		padding: 30px 0 40px;
		gap: 15px;
	}
}

.l-footer__info {
	display: flex;
	flex-direction: column;
	gap: clamp(16.8px, 5.9699499165px + 1.2020033389vw, 24px);
}

@media (max-width: 900px) {
	.l-footer__info {
		gap: 15px;
	}
}

.l-footer__logo {
	width: clamp(147px, 52.2370617696px + 10.5175292154vw, 210px);
	height: auto;
	display: block;
}

@media (max-width: 900px) {
	.l-footer__logo {
		width: 172px;
	}
}

.l-footer__company {
	font-weight: 500;
	font-size: clamp(9.8px, 3.4824707846px + 0.7011686144vw, 14px);
	color: #323232;
	line-height: 1.6;
	letter-spacing: 0.28px;
	font-feature-settings: "palt", "pwid";
}

@media (max-width: 900px) {
	.l-footer__company {
		font-size: 14px;
	}
}

.l-footer__right {
	display: flex;
	flex-direction: column;
	gap: clamp(16.8px, 5.9699499165px + 1.2020033389vw, 24px);
	align-items: flex-end;
}

@media (max-width: 900px) {
	.l-footer__right {
		align-items: flex-start;
		gap: 15px;
		width: 100%;
	}
}

.l-footer__sns {
	display: flex;
	gap: clamp(14px, 4.9749582638px + 1.0016694491vw, 20px);
}

@media (max-width: 900px) {
	.l-footer__sns {
		width: 100%;
		justify-content: flex-start;
	}
}

.l-footer__sns-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: clamp(42px, 14.9248747913px + 3.0050083472vw, 60px);
	height: clamp(42px, 14.9248747913px + 3.0050083472vw, 60px);
	border-radius: 50%;
	background: linear-gradient(135deg, #2ab7eb, #007dc5);
	color: #fff;
	text-decoration: none;
	transition: opacity 0.3s;
}

.l-footer__sns-link svg {
	width: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	height: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
}

.l-footer__sns-link[aria-label="LINE"] {
	background: #06c755;
}

.l-footer__sns-link[aria-label="X"] {
	background: #000;
}

.l-footer__sns-link[aria-label="YouTube"] {
	background: #ff0000;
}

.l-footer__sns-link[aria-label="TikTok"] {
	background: #010101;
}

.l-footer__sns-link[aria-label="Instagram"] {
	background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}

.l-footer__sns-link:hover {
	opacity: 0.8;
}

@media (max-width: 900px) {
	.l-footer__sns-link {
		width: 55px;
		height: 55px;
	}

	.l-footer__sns-link svg {
		width: 25px;
		height: 25px;
	}
}

.l-footer__license {
	font-weight: 500;
	font-size: clamp(9.8px, 3.4824707846px + 0.7011686144vw, 14px);
	color: #323232;
	line-height: 1.6;
	letter-spacing: 0.28px;
	font-feature-settings: "palt", "pwid";
	text-align: left;
	display: block;
	width: 100%;
}

@media (max-width: 900px) {
	.l-footer__license {
		font-size: 12px;
	}
}

.l-footer__copyright {
	background: #002769;
	padding-top: clamp(7px, 2.4874791319px + 0.5008347245vw, 10px);
	padding-bottom: clamp(7px, 2.4874791319px + 0.5008347245vw, 10px);
	text-align: center;
}

@media (max-width: 900px) {
	.l-footer__copyright {
		padding-top: 7px;
		padding-bottom: 7px;
	}
}

.l-footer__copyright p {
	font-weight: 500;
	font-size: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
	color: #fff;
	line-height: 1.6;
	letter-spacing: 0.24px;
	font-feature-settings: "palt", "pwid";
}

@media (max-width: 900px) {
	.l-footer__copyright p {
		font-size: 10px;
	}
}

/*===========================================================================*/
/*  section-title  */
/*===========================================================================*/
.c-section-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
}

@media (max-width: 900px) {
	.c-section-title {
		gap: 7px;
	}
}

.c-section-title__main {
	display: flex;
	align-items: center;
	gap: clamp(14.7px, 5.223706177px + 1.0517529215vw, 21px);
}

@media (max-width: 900px) {
	.c-section-title__main {
		gap: 10px;
	}
}

.c-section-title__bracket {
	width: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	height: clamp(43.4px, 15.4223706177px + 3.1051752922vw, 62px);
	flex-shrink: 0;
}

.c-section-title__bracket--left {
	transform: rotate(180deg) scaleY(-1);
}

@media (max-width: 900px) {
	.c-section-title__bracket {
		width: 20px;
		height: 44px;
	}
}

.c-section-title__text {
	font-weight: 700;
	font-size: clamp(32.2px, 11.4424040067px + 2.3038397329vw, 46px);
	color: #323232;
	text-align: center;
	line-height: 1.22;
	letter-spacing: 0.02em;
	font-feature-settings: "palt", "pwid";
	white-space: nowrap;
}

@media (max-width: 900px) {
	.c-section-title__text {
		font-size: 28px;
	}
}

.c-section-title__en {
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: clamp(12.6px, 4.4774624374px + 0.9015025042vw, 18px);
	text-align: center;
	line-height: 1.2;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	background: linear-gradient(to right, #2ab7eb, #007dc5);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-feature-settings: "palt", "pwid";
}

@media (max-width: 900px) {
	.c-section-title__en {
		font-size: 12px;
	}
}

/*===========================================================================*/
/*  cta  */
/*===========================================================================*/
.c-cta {
	position: relative;
	z-index: 2;
	background: #24ade0;
	padding-top: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
	padding-bottom: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
	overflow: hidden;
}

@media (max-width: 900px) {
	.c-cta {
		padding-top: 20px;
		padding-bottom: 20px;
	}
}

.c-cta__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
	background-color: #fff;
	max-width: clamp(737.8px, 262.1803005008px + 52.7879799666vw, 1054px);
	margin: 0 auto;
	padding-top: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
	padding-bottom: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
	border-radius: clamp(21px, 7.4624373957px + 1.5025041736vw, 30px);
	background: #fff;
	box-shadow: 8px 8px 20px 0 rgba(0, 0, 0, 0.1);
	position: relative;
}

.c-cta__inner::before {
	content: "";
	position: absolute;
	top: -8px;
	left: -45px;
	width: clamp(121.66px, 43.2323873122px + 8.7045075125vw, 173.8px);
	height: clamp(153.23px, 54.450918197px + 10.9632721202vw, 218.9px);
	background: url(../img/common/cta_boy1.png) no-repeat center center/contain;
}

.c-cta__inner::after {
	content: "";
	position: absolute;
	top: -8px;
	right: -42px;
	width: clamp(121.66px, 43.2323873122px + 8.7045075125vw, 173.8px);
	height: clamp(153.23px, 54.450918197px + 10.9632721202vw, 218.9px);
	background: url(../img/common/cta_boy2.png) no-repeat center center/contain;
}

@media (max-width: 900px) {
	.c-cta__inner {
		flex-direction: column;
		align-items: center;
		width: 100%;
		max-width: 500px;
		gap: 0;
		padding: 27px 0 34px;
		border-radius: 15px;
	}

	.c-cta__inner::before {
		top: auto;
		bottom: 0;
		left: -50px;
		width: 139.7px;
		height: 176px;
		background-position: center bottom;
	}

	.c-cta__inner::after {
		top: auto;
		bottom: 0;
		right: -51px;
		width: 139.7px;
		height: 176px;
		background-position: center bottom;
	}
}

.c-cta__phone {
	margin-bottom: 4px;
	padding-right: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
	border-right: 1px solid #ababab;
}

@media (max-width: 900px) {
	.c-cta__phone {
		border-right: none;
		padding-right: 0;
		margin-bottom: 21px;
	}
}

.c-cta__phone__link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	text-align: center;
	font-family: Montserrat;
	font-size: clamp(32.2px, 11.4424040067px + 2.3038397329vw, 46px);
	font-weight: 600;
	line-height: 1.2;
}

.c-cta__phone__link img {
	width: clamp(34.3px, 12.1886477462px + 2.4540901503vw, 49px);
	height: clamp(34.3px, 12.1886477462px + 2.4540901503vw, 49px);
}

@media (max-width: 900px) {
	.c-cta__phone__link {
		gap: 8px;
		font-size: 35px;
	}

	.c-cta__phone__link img {
		width: 37px;
		height: 37px;
	}
}

.c-cta__phone__text {
	text-align: center;
	font-size: clamp(10.5px, 3.7312186978px + 0.7512520868vw, 15px);
	font-weight: 500;
	line-height: 1;
}

@media (max-width: 900px) {
	.c-cta__phone__text {
		font-size: 12px;
		margin-top: 6px;
	}
}

.c-cta__button__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0cc755;
	border-radius: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	gap: clamp(10.5px, 3.7312186978px + 0.7512520868vw, 15px);
	padding-top: clamp(12.6px, 4.4774624374px + 0.9015025042vw, 18px);
	padding-bottom: clamp(12.6px, 4.4774624374px + 0.9015025042vw, 18px);
	box-shadow: 0 4px 0 0 #009c3d;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: transform .25s cubic-bezier(.22, .61, .36, 1),
	            box-shadow .25s cubic-bezier(.22, .61, .36, 1),
	            filter .25s ease;
}

.c-cta__button__inner > * {
	position: relative;
	z-index: 1;
}

.c-cta__button__inner::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(115deg,
	            transparent 0%,
	            rgba(255, 255, 255, 0) 38%,
	            rgba(255, 255, 255, .4) 50%,
	            rgba(255, 255, 255, 0) 62%,
	            transparent 100%);
	transform: translateX(-130%);
	transition: transform .7s cubic-bezier(.22, .61, .36, 1);
	pointer-events: none;
	z-index: 0;
}

@media (max-width: 900px) {
	.c-cta__button__inner {
		height: 60px;
		padding: 0;
		gap: 10px;
		border-radius: 8px;
	}
}

.c-cta__button__icon {
	width: clamp(34.3px, 12.1886477462px + 2.4540901503vw, 49px);
	height: clamp(32.9px, 11.6911519199px + 2.3539232053vw, 47px);
}

@media (max-width: 900px) {
	.c-cta__button__icon {
		width: 29px;
		height: 28px;
	}
}

.c-cta__button__link {
	font-size: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	font-weight: 700;
	width: clamp(262.5px, 93.2804674457px + 18.7813021703vw, 375px);
	display: block;
}

.c-cta__button__link:hover {
	opacity: 1;
}

.c-cta__button__link:hover .c-cta__button__inner {
	transform: translateY(-2px);
	filter: saturate(1.05) brightness(1.04);
	box-shadow: 0 6px 0 0 #009c3d, 0 12px 20px rgba(12, 199, 85, .32);
}

.c-cta__button__link:hover .c-cta__button__inner::after {
	transform: translateX(130%);
}

.c-cta__button__link:active .c-cta__button__inner {
	transform: translateY(2px);
	box-shadow: 0 2px 0 0 #009c3d;
}

@media (max-width: 900px) {
	.c-cta__button__link {
		width: 262px;
		font-size: 22px;
		position: relative;
		z-index: 1;
	}
}

.c-cta__button__text {
	color: #fff;
	font-size: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	font-weight: 700;
}

@media (max-width: 900px) {
	.c-cta__button__text {
		font-size: 22px;
	}
}

/*===========================================================================*/
/*  contact  */
/*===========================================================================*/
.c-contact {
	position: relative;
	overflow: hidden;
	background: url(../img/common/contact-bg.png) no-repeat center center/cover;
	background-position: bottom center;
}

.c-contact__bg {
	position: absolute;
	bottom: 0;
	width: 100%;
	opacity: 0.3;
	pointer-events: none;
}

.c-contact__inner {
	position: relative;
	z-index: 1;
	max-width: clamp(840px, 298.4974958264px + 60.1001669449vw, 1200px);
	margin: 0 auto;
	padding-top: clamp(56px, 19.8998330551px + 4.0066777963vw, 80px);
	padding-bottom: clamp(49px, 17.4123539232px + 3.5058430718vw, 70px);
}

@media (max-width: 900px) {
	.c-contact__inner {
		max-width: 500px;
		padding-top: 50px;
		padding-bottom: 40px;
		padding-left: 20px;
		padding-right: 20px;
	}
}

.c-contact__content {
	display: flex;
	align-items: flex-start;
	gap: clamp(23.8px, 8.4574290484px + 1.7028380634vw, 34px);
}

@media (max-width: 900px) {
	.c-contact__content {
		flex-direction: column;
		gap: 16px;
	}
}

.c-contact__title {
	font-weight: 700;
	font-size: clamp(34.3px, 12.1886477462px + 2.4540901503vw, 49px);
	color: #fff;
	line-height: 1.4;
	letter-spacing: 0.02em;
	font-feature-settings: "palt", "pwid";
	flex-shrink: 0;
}

@media (max-width: 900px) {
	.c-contact__title {
		font-size: 30px;
		text-align: center;
		width: 100%;
	}
}

.c-contact__features {
	display: flex;
	flex-direction: column;
	gap: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	margin-left: clamp(14px, 4.9749582638px + 1.0016694491vw, 20px);
	margin-top: clamp(7px, 2.4874791319px + 0.5008347245vw, 10px);
	list-style: none;
	padding: 0;
	margin-bottom: 0;
}

@media (max-width: 900px) {
	.c-contact__features {
		margin-left: 0;
		margin-top: 0;
		gap: 10px;
	}
}

.c-contact__feature {
	display: flex;
	align-items: center;
	gap: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
}

.c-contact__feature-icon {
	width: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	height: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	flex-shrink: 0;
}

@media (max-width: 900px) {
	.c-contact__feature-icon {
		width: 19px;
		height: 19px;
	}
}

.c-contact__feature-text {
	font-weight: 600;
	font-size: clamp(18.2px, 6.4674457429px + 1.3021702838vw, 26px);
	color: #fff;
	line-height: 1.3;
	font-feature-settings: "palt", "pwid";
	white-space: nowrap;
}

@media (max-width: 900px) {
	.c-contact__feature-text {
		font-size: 17px;
		white-space: normal;
	}
}

.c-contact__feature-price {
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: clamp(22.4px, 7.959933222px + 1.6026711185vw, 32px);
}

@media (max-width: 900px) {
	.c-contact__feature-price {
		font-size: 21px;
	}
}

.c-contact__card {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(24.5px, 8.7061769616px + 1.7529215359vw, 35px);
	background: #fff;
	border-radius: clamp(12.6px, 4.4774624374px + 0.9015025042vw, 18px);
	box-shadow: 8px 8px 20px 0 rgba(0, 0, 0, 0.1);
	margin-top: clamp(12.6px, 4.4774624374px + 0.9015025042vw, 18px);
	height: clamp(105px, 37.3121869783px + 7.5125208681vw, 150px);
	padding-left: clamp(51.8px, 18.407345576px + 3.7061769616vw, 74px);
	padding-right: clamp(51.8px, 18.407345576px + 3.7061769616vw, 74px);
	box-sizing: border-box;
}

@media (max-width: 900px) {
	.c-contact__card {
		flex-direction: column;
		align-items: center;
		height: auto;
		gap: 16px;
		border-radius: 10px;
		padding: 25px 19px 34px;
		margin-top: 20px;
	}
}

.c-contact__phone {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(2.1px, 0.7462437396px + 0.1502504174vw, 3px);
	padding-bottom: clamp(3.5px, 1.2437395659px + 0.2504173623vw, 5px);
}

@media (max-width: 900px) {
	.c-contact__phone {
		padding-bottom: 0;
		gap: 6px;
	}
}

.c-contact__phone-link {
	display: flex;
	align-items: center;
	gap: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
}

.c-contact__phone-icon {
	width: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
	height: clamp(28px, 9.9499165275px + 2.0033388982vw, 40px);
}

@media (max-width: 900px) {
	.c-contact__phone-icon {
		width: 37px;
		height: 37px;
	}
}

.c-contact__phone-number {
	font-weight: 600;
	font-size: clamp(25.2px, 8.9549248748px + 1.8030050083vw, 36px);
	line-height: 1.2;
}

@media (max-width: 900px) {
	.c-contact__phone-number {
		font-size: 35px;
	}
}

.c-contact__phone-sub {
	font-weight: 500;
	font-size: clamp(10.5px, 3.7312186978px + 0.7512520868vw, 15px);
	color: #323232;
	text-align: center;
	line-height: 1;
	font-feature-settings: "palt", "pwid";
}

@media (max-width: 900px) {
	.c-contact__phone-sub {
		font-size: 12px;
	}
}

.c-contact__divider {
	width: 0;
	height: clamp(46.2px, 16.4173622705px + 3.305509182vw, 66px);
	border-left: 1px solid #ababab;
	flex-shrink: 0;
}

@media (max-width: 900px) {
	.c-contact__divider {
		display: none;
	}
}

.c-contact__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(7px, 2.4874791319px + 0.5008347245vw, 10px);
	width: clamp(215.6px, 76.6143572621px + 15.4257095159vw, 308px);
	height: clamp(46.2px, 16.4173622705px + 3.305509182vw, 66px);
	border-radius: clamp(5.6px, 1.9899833055px + 0.4006677796vw, 8px);
	flex-shrink: 0;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: transform .25s cubic-bezier(.22, .61, .36, 1),
	            box-shadow .25s cubic-bezier(.22, .61, .36, 1),
	            filter .25s ease;
}

.c-contact__btn > * {
	position: relative;
	z-index: 1;
}

.c-contact__btn::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(115deg,
	            transparent 0%,
	            rgba(255, 255, 255, 0) 38%,
	            rgba(255, 255, 255, .4) 50%,
	            rgba(255, 255, 255, 0) 62%,
	            transparent 100%);
	transform: translateX(-130%);
	transition: transform .7s cubic-bezier(.22, .61, .36, 1);
	pointer-events: none;
	z-index: 0;
}

.c-contact__btn:hover {
	opacity: 1;
	transform: translateY(-2px);
	filter: saturate(1.05) brightness(1.04);
}

.c-contact__btn:hover::after {
	transform: translateX(130%);
}

.c-contact__btn:active {
	transform: translateY(2px);
}

.c-contact__btn--line {
	background: #0cc755;
	box-shadow: 0 4px 0 0 #009c3d;
}

.c-contact__btn--line:hover {
	box-shadow: 0 6px 0 0 #009c3d, 0 12px 20px rgba(12, 199, 85, .32);
}

.c-contact__btn--line:active {
	box-shadow: 0 2px 0 0 #009c3d;
}

.c-contact__btn--mail {
	background: #17499d;
	box-shadow: 0 4px 0 0 #003d7d;
}

.c-contact__btn--mail:hover {
	box-shadow: 0 6px 0 0 #003d7d, 0 12px 20px rgba(23, 73, 157, .32);
}

.c-contact__btn--mail:active {
	box-shadow: 0 2px 0 0 #003d7d;
}

@media (max-width: 900px) {
	.c-contact__btn {
		width: 100%;
		height: 60px;
		gap: 10px;
	}
}

.c-contact__btn-icon--line {
	width: clamp(23.8px, 8.4574290484px + 1.7028380634vw, 34px);
	height: clamp(23.1px, 8.2086811352px + 1.652754591vw, 33px);
}

@media (max-width: 900px) {
	.c-contact__btn-icon--line {
		width: 29px;
		height: 28px;
	}
}

.c-contact__btn-icon--mail {
	width: clamp(19.6px, 6.9649415693px + 1.4023372287vw, 28px);
	height: clamp(14.7px, 5.223706177px + 1.0517529215vw, 21px);
}

@media (max-width: 900px) {
	.c-contact__btn-icon--mail {
		width: 25px;
		height: 19px;
	}
}

.c-contact__btn-label {
	font-weight: 700;
	font-size: clamp(15.4px, 5.4724540902px + 1.101836394vw, 22px);
	color: #fff;
	white-space: nowrap;
}

@media (max-width: 900px) {
	.c-contact__btn-label {
		font-size: 22px;
	}
}

.c-contact__person {
	position: absolute;
	right: clamp(9.1px, 3.2337228715px + 0.6510851419vw, 13px);
	bottom: 100%;
	width: clamp(148.925px, 52.9211185309px + 10.6552587646vw, 212.75px);
	height: clamp(187.565px, 66.652003339px + 13.4198664441vw, 267.95px);
	object-fit: contain;
	object-position: bottom center;
}

@media (max-width: 900px) {
	.c-contact__person {
		width: 150.65px;
		height: 189.75px;
		right: 0;
	}
}

/*===========================================================================*/
/*  disused  */
/*===========================================================================*/
.c-lowerMv__nav {
    position: absolute;
    width: calc(100% - 80px);
    max-width: 843px;
    left: 50%;
    transform: translate(-50%, 0);
    bottom: 30px;
    background-color: #fff;
    padding: 20px 30px 0;
    z-index: 5;
    border-radius: 10px;
    border: 1px solid #E9EDF3;
    box-shadow: 7px 7px 25px 0 rgba(0, 0, 0, 0.05);
}

.c-lowerMv__nav ul {
    display: flex;
    justify-content: space-between;
}

.c-lowerMv__nav ul li a {
    position: relative;
    padding-bottom: 20px;
    display: inline-block;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    transition: color .4s 0s cubic-bezier(.44,.14,.09,1.02);
}

.c-lowerMv__nav ul li a::before {
    background-color: #24ade0;
    content: '';
    height: 2px;
    left: 50%;
    position: absolute;
    bottom: 0;
    width: 14px;
    transform: translate(-50%, 0);
    transition: opacity .4s 0s cubic-bezier(.44,.14,.09,1.02);
    opacity: 0;
}

@media screen and (min-width: 901px) {
    .c-lowerMv__nav ul li a:hover {
        color: #24ade0;
    }

    .c-lowerMv__nav ul li a:hover:before {
        opacity: 1;
    }
}

@media screen and (max-width: 900px) {
    .c-lowerMv__nav {
        display: none;
    }
}

/* YouTube動画ポップアップ（左下） */
.c-yt-popup {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 9000;
    width: 300px;
    max-width: calc(100vw - 32px);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
    overflow: hidden;
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.c-yt-popup.is-visible {
    transform: translateY(0);
    opacity: 1;
}

.c-yt-popup__close {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: rgba(70, 70, 70, 0.88);
    color: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    font-size: 21px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
}

.c-yt-popup__close:hover {
    background: rgba(35, 35, 35, 0.95);
    transform: scale(1.05);
}

.c-yt-popup__link {
    display: block;
    padding-bottom: 13px;
    text-decoration: none;
    color: #323232;
}

.c-yt-popup__head {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 12px;
    background: #000;
    color: #fff;
}

.c-yt-popup__icon {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    color: #ff0000;
}

.c-yt-popup__icon-play {
    fill: #fff;
}

.c-yt-popup__head-text {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.c-yt-popup__thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

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

.c-yt-popup__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 54px;
    height: 38px;
    border-radius: 9px;
    background: rgba(0, 0, 0, 0.7);
    transition: background 0.2s;
}

.c-yt-popup__play::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-40%, -50%);
    border-style: solid;
    border-width: 9px 0 9px 15px;
    border-color: transparent transparent transparent #fff;
}

.c-yt-popup__link:hover .c-yt-popup__play {
    background: #ff0000;
}

.c-yt-popup__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    /* overflow はパディングボックスで切り抜かれるため、下パディングは親（__link）側に持たせる */
    padding: 10px 12px 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    max-height: calc(1.5em * 2 + 10px);
}

@media screen and (max-width: 900px) {
    .c-yt-popup {
        left: 12px;
        bottom: calc(var(--header-cta-bar-h) + 12px + env(safe-area-inset-bottom, 0px));
        width: 230px;
    }

    .c-yt-popup__link {
        padding-bottom: 11px;
    }

    .c-yt-popup__head-text {
        font-size: 12px;
    }

    .c-yt-popup__title {
        font-size: 13px;
        padding: 8px 10px 0;
        max-height: calc(1.5em * 2 + 8px);
    }
}