.eng {
    font-family: "Alegreya Sans", sans-serif;
}

html {
    font-family: "Noto Sans JP", sans-serif;
    overflow-wrap: anywhere;
    word-break: keep-all;
    color: #333;
    scrollbar-gutter: stable;
}




body.nav-open {
    overflow: hidden;
}

.wrapper {
    min-width: 375px;
    overflow: hidden;
}

.pc-none {
    display: none;
}

@media(max-width:1024px) {
    .pc-none {
        display: block;
    }
}

.h1-area {
    background-color: #005bac;
    padding: .5em 0;
}

.h1 {
    color: #fff;
    font-weight: 500;
    font-size: 12px;
}

.header {
    width: 100%;
    left: 0;
    transition: .4s;
    z-index: 10;
    background-color: #fff;
}

.header-inner {
    padding: .5em 0;
    width: 98%;
    max-width: 1300px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    align-items: center;
}

.header-logo {
    width: 200px;
    display: block;
}

.header-logo a,
.header-logo img {
    display: block;
    width: 100%;
}

.header-nav {
    width: calc(100% - 200px);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.h1-txt {
    display: none;
    font-size: 10px;
    font-weight: 500;
    width: 100%;
    letter-spacing: -.08em;
}

.nav-logo {
    width: 250px;
    display: none;
    margin-right: auto;
    margin-left: auto;
}

.nav-logo a,
.nav-logo img {
    display: block;
    width: 100%;
}

.nav-add {
    display: none;
    text-align: center;
    font-size: 11px;
    font-weight: 500;
    width: 100%;
    line-height: 1.2em;
    margin-bottom: 15px;
    margin-top: 5px;
}

.nav-tel {
    display: none;
    text-align: center;
    font-size: 24px;
    font-weight: 900;
    width: 100%;
    line-height: 1.2em;
    letter-spacing: -.08em;
}

.nav-tel i {
    font-size: 22px;
    color: #f73a25;
    margin-right: 3px;
}

.nav {
    margin-left: auto;
    width: 100%;
    max-width: 700px;
}

.list-a {
    display: flex;
    align-items: center;
    padding-left: 0;
}

.list-a>.item {
    flex-grow: 1;
    position: relative;
}

.list-a>.item>a {
    padding: .8em 0;
    display: block;
    font-size: 16px;
    font-weight: 600;
    width: 100%;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.list-a>.item>a:before {
    content: "";
    background-color: rgba(255, 255, 255, 0.5);
    height: 100%;
    width: 3em;
    display: block;
    position: absolute;
    top: 0;
    left: -5em;
    transform: skewX(-45deg) translateX(0);
    transition: none;
}

/* - ホバー時のボタン本体 - */
.list-a>.item>a:hover {
    background-color: #005bac;
    color: #fff;
    opacity: 1;
}

/* - ホバー時の光るエフェクト（右へ移動） - */
.list-a>.item>a:hover:before {
    transform: skewX(-45deg) translateX(550px);
    transition: all 0.5s ease-in-out;
}

.list-b {
    position: absolute;
    top: 100%;
    width: 100%;
    left: 0;
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity 0.2s ease, visibility 0s linear 0.2s, transform 0.2s ease;
}

.list-a>.item.switch:hover .list-b {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: opacity 0.2s ease, visibility 0s linear 0s, transform 0.2s ease;
}

.list-b>.item {
    width: 250px;
}

.list-b>.item>a {
    display: block;
    position: relative;
    background-color: #fff;
    padding: 1em;
    width: 100%;
    border-bottom: 2px solid #005bac;
    overflow: hidden;
}

.list-b>.item>a:before {
    content: "";
    background-color: rgba(255, 255, 255, 0.5);
    height: 100%;
    width: 3em;
    display: block;
    position: absolute;
    top: 0;
    left: -5em;
    transform: skewX(-45deg) translateX(0);
    transition: none;
}

/* - ホバー時のボタン本体 - */
.list-b>.item>a:hover {
    background-color: #005bac;
    color: #fff;
    opacity: 1;
}

/* - ホバー時の光るエフェクト（右へ移動） - */
.list-b>.item>a:hover:before {
    transform: skewX(-45deg) translateX(550px);
    transition: all 0.5s ease-in-out;
}









.head-icon {
    width: 40px;
}

.header-nav .head-icon {
    margin: 0 5px;
}

.head-icon img,
.head-icon a {
    display: block;
    width: 100%;
}

.mini-btns a {
    width: 100%;
}

.blue-btn a i {
    margin-right: 5px;
}

.wt-btn a i {
    margin-right: 5px;
}

.blue-btn.right a i {
    margin-left: 5px;
}

.wt-btn.right a i {
    margin-left: 5px;
}

.gold-btn.right a i {
    margin-left: 5px;
}

.blue-btn.blob a {
    z-index: 1;
    position: relative;
    display: inline-block;
    text-decoration: none;
    padding: 1em;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    background-color: transparent;
    outline: none;
    border: none;
    transition: color 0.5s;
    cursor: pointer;
    border-radius: 3em;
    overflow: hidden;
    background-color: #005bac;
}

.wt-btn.blob a {
    z-index: 1;
    position: relative;
    display: inline-block;
    text-decoration: none;
    padding: 1em;
    text-align: center;
    text-transform: uppercase;
    color: #005bac;
    font-size: 16px;
    font-weight: bold;
    background-color: transparent;
    outline: none;
    border: none;
    transition: color 0.5s;
    cursor: pointer;
    border-radius: 3em;
    overflow: hidden;
    background-color: #fff;
}

.gold-btn.blob a {
    z-index: 1;
    position: relative;
    display: inline-block;
    text-decoration: none;
    padding: 1em;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    background-color: transparent;
    outline: none;
    border: none;
    transition: color 0.5s;
    cursor: pointer;
    border-radius: 3em;
    overflow: hidden;
    background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
}

.blue-btn.mini.blob a,
.wt-btn.mini.blob a,
.gold-btn.mini.blob a {
    font-size: 14px;
    padding: .5em 1.5em;
}

.blue-btn.blob a:before {
    content: "";
    z-index: 1;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border: 2px solid #005bac;
    border-radius: 3em;
    overflow: hidden;
}

.wt-btn.blob a:before {
    content: "";
    z-index: 1;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border: 2px solid #005bac;
    border-radius: 3em;
    overflow: hidden;
}

.gold-btn.blob a:before {
    content: "";
    z-index: 1;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border: 2px solid #ebb400;
    border-radius: 3em;
    overflow: hidden;
}

.blue-btn.blob a:hover {
    color: #005bac;
    opacity: 1;
}

.wt-btn.blob a:hover {
    color: #fff;
    opacity: 1;
}

.gold-btn.blob a:hover {
    color: #ebb400;
    opacity: 1;
}

/* - スライム（Blob）エフェクトのスタイル - */
.blob-btn-inner {
    z-index: -1;
    overflow: hidden;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.blob-btn-blobs {
    position: relative;
    display: block;
    height: 100%;
    filter: url('/import/tenant_1/162.43.40.37/css/style.css');
}

.blue-btn .blob-btn-blob {
    position: absolute;
    top: 6px;
    width: 25%;
    height: 100%;
    background: #fff;
    border-radius: 100%;
    transform: translate3d(0, 150%, 0) scale(1.7);
    transition: transform 0.45s;
}

.wt-btn .blob-btn-blob {
    position: absolute;
    top: 6px;
    width: 25%;
    height: 100%;
    background: #005bac;
    border-radius: 100%;
    transform: translate3d(0, 150%, 0) scale(1.7);
    transition: transform 0.45s;
}

.gold-btn .blob-btn-blob {
    position: absolute;
    top: 6px;
    width: 25%;
    height: 100%;
    background: #fff;
    border-radius: 100%;
    transform: translate3d(0, 150%, 0) scale(1.7);
    transition: transform 0.45s;
}

@supports (filter: url('/import/tenant_1/162.43.40.37/css/style.css')) {
    .blob-btn-blob {
        transform: translate3d(0, 150%, 0) scale(1.4);
    }
}

/* SASSの@forループを展開した部分 */
.blob-btn-blob:nth-child(1) {
    left: 0%;
    transition-delay: 0s;
}

.blob-btn-blob:nth-child(2) {
    left: 30%;
    transition-delay: 0.08s;
}

.blob-btn-blob:nth-child(3) {
    left: 60%;
    transition-delay: 0.16s;
}

.blob-btn-blob:nth-child(4) {
    left: 90%;
    transition-delay: 0.24s;
}

.blob a:hover .blob-btn-blob {
    transform: translateZ(0) scale(2);
}

@supports (filter: url('/import/tenant_1/162.43.40.37/css/style.css')) {
    .blob a:hover .blob-btn-blob {
        transform: translateZ(0) scale(1.8);
    }
}

.modal-btn {
    position: relative;
    width: 45px;
    height: 45px;
    border-radius: 5px;
    background: #fff;
    border: 2px solid #005bac;
    cursor: pointer;
    z-index: 999;
    display: none;
}

.modal-btn:hover {
    opacity: 1;
}

.modal-btn-line {
    display: block;
    position: absolute;
    left: 0;
    top: 15px;
    right: 0;
    margin: auto;
    width: 25px;
    height: 2px;
    background: #005bac;
    transition: all .3s;
}

.modal-btn-line.line02 {
    top: 24px;
}

.nav-open .modal-btn-line.line01 {
    width: 30px;
    transform: rotate(30deg);
    top: 20px;
}

.nav-open .modal-btn-line.line02 {
    width: 30px;
    transform: rotate(-30deg);
    top: 20px;
}

@media(max-width:1024px) {

    .modal-btn {
        display: block;
    }

    .h1-area {
        display: none;
    }

    .header-inner {
        justify-content: space-between;
    }

    .header-nav {
        height: 100vh;
        max-height:0px;
        width: 100%;
        max-width: 0px;
        position: fixed;
        top: 0;
        right: 0;
        background-color: #eefbff;
        z-index: 101;
        display: block;
        padding: 20px 10px 100px 10px;
        z-index: -999;
        opacity: 0;
        pointer-events: none;
        transition: all .5s;
        overflow-y: scroll;
    }

    .nav-open .header-logo {
        opacity: 0;
    }

    .nav-open .header-nav {
      max-height:100vh;
        opacity: 1;
        max-width: 400px;
        z-index: 998;
        pointer-events: visible;
    }

    .h1-txt,
    .nav-logo,
    .nav-add {
        display: block;
    }

    .nav {
        margin-left: 0;
        width: 100%;
        max-width: 100%;
        margin-bottom: 30px;
    }

    .list-a {
        display: block;
    }

    .list-a>.item {
        padding-bottom: 10px;
        padding-top: 10px;
        border-bottom: 1px solid #fff;
    }

    .list-a>.item>a {
        text-align: left;
        padding: .6em;
        border-bottom: none;
        font-size: 18px;
    }

    .list-b,
    .list-a>.item.switch:hover .list-b {
        position: relative;
        top: 0;
        width: 0;
        z-index: 0;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
        transition: 0s;
        width: 100%;
        padding-left: 0;
    }

    .list-b>.item {
        width: 100%;
    }

    .list-b>.item>a {
        background-color: #eefbff;
        border-bottom: none;
        padding: .5em;
    }

    .list-b>.item>a:hover::after {
        background-color: #fff;
        transition: .2s;
    }

    .header-nav .head-icon {
        width: 48%;
        overflow: hidden;
        border-radius: 30px;
        padding: 3px;
        margin-bottom: 5px;
    }

    .header-nav .head-icon>a {
        position: relative;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 30px;
        transition: .4s;
    }

    .header-nav .head-icon>a::after {
        width: calc(100% - 50px);
        text-align: center;
        color: #fff;
        font-size: 16px;
        display: block;
        position: relative;
        padding-bottom: .2em;
        font-weight: bold;
        letter-spacing: .1em;
    }

    .header-nav .head-icon.instagram {
        background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
        float: left;
    }

    .header-nav .head-icon.instagram>a::after {
        content: "instagram";
    }

    .header-nav .head-icon.line {
        background: #06c755;
    }

    .header-nav .head-icon.line>a::after {
        content: "LINE";
    }

    .header-nav .head-icon.youtube {
        background: #FF0033;
        float: none;
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    .header-nav .head-icon.youtube>a::after {
        content: "youtube";
    }

    .header-nav .head-icon>a:hover {
        opacity: 1;
        background-color: #fff;
        flex-direction: row-reverse;
        transition: .4s;
    }

    .header-nav .head-icon.instagram>a:hover::after {
        background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    .header-nav .head-icon.line>a:hover::after {
        color: #06c755;
    }

    .header-nav .head-icon.youtube>a:hover::after {
        color: #f73a25;
    }

    .header-nav .head-icon>a .img {
        width: 50px;
        height: 50px;
        background-color: #fff;
        border: 10px solid #fff;
        border-radius: 50%;
    }

    .header-nav .blue-btn {
        width: 100%;
        margin-top: 5px;
        text-align: center;
    }

    .header-nav .blue-btn a {
        width: 100%;
    }

}


.overlay {
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.2);
    transition: 0.5s;
    animation: overlay-open 0.5s forwards;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9;
}









.top-mv {
    height: 700px;
    overflow: hidden;
    width: 100%;
    position: relative;
    transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.main-visual-img {
    width: 70%;
    height: 90%;
    position: absolute;
    overflow: hidden;
    border-radius: 60px 0 0 60px;
    top: 0;
    right: 0;
    z-index: 0;
}

.main-visual-img .swiper-wrapper,
.main-visual-img .swiper-wrapper li,
.main-visual-img .swiper-wrapper li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-mv .inner {
    height: 100%;
    position: relative;
    z-index: 2;
}

.mv-catch {
    position: absolute;
    top: 8%;
    left: 0;
    z-index: 1;
    writing-mode: vertical-rl;
    text-orientation: upright;
}

.mv-main {
    animation: AnimationTitle 2s ease infinite;
    background: linear-gradient(to right, #005bac, #7AC1FF, #37628A);
    background-size: 200% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    font-weight: 600;
    font-size: 58px;
    line-height: 1.2em;
    position: relative;
}

.mv-sub {
    font-weight: 500;
    font-size: 16px;
    line-height: 1.8em;
    letter-spacing: .1em;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
    margin-right: 1em;
}

@keyframes AnimationTitle {
    0% {
        background-position: 0% 100%
    }

    50% {
        background-position: 200% 100%
    }

    100% {
        background-position: 0% 100%
    }
}

.mv-main::after {
    display: inline-block;
    content: "";
    position: absolute;
    bottom: 100%;
    left: 90%;
    background-image: url('/import/tenant_1/162.43.40.37/images/pika.webp');
    background-size: contain;
    background-repeat: no-repeat;
    -webkit-animation: pikat-eff 2s infinite alternate;
    animation: pikat-eff 2s infinite alternate;
    width: 40px;
    height: 40px;
}

.mv-main::before {
    display: inline-block;
    content: "";
    position: absolute;
    bottom: 35%;
    left: -35px;
    background-image: url('/import/tenant_1/162.43.40.37/images/pika.webp');
    background-size: contain;
    background-repeat: no-repeat;
    -webkit-animation: pikat-eff 2.5s infinite alternate;
    animation: pikat-eff 2.5s infinite alternate;
    width: 30px;
    height: 30px;
}

@-webkit-keyframes pikat-eff {
    0% {
        transform: rotate(0deg) scale(1);
    }

    50% {
        transform: rotate(360deg) scale(1.5);
    }

    100% {
        transform: rotate(720deg) scale(1);
    }
}

/* プレフィックスなしの標準仕様も合わせて記述しておくことをおすすめします */
@keyframes pikat-eff {
    0% {
        transform: rotate(0deg) scale(1);
    }

    50% {
        transform: rotate(360deg) scale(1.5);
    }

    100% {
        transform: rotate(720deg) scale(1);
    }
}

.medal-set {
    width: 600px;
    position: absolute;
    right: 1%;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 2;
}

.medal {
    width: 32%;
    position: relative;
    overflow: hidden;
    border-radius: 50%;
}

.medal::after {
    animation: 2s 0s shine linear infinite;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, .6) 50%, rgba(255, 255, 255, 0) 75%);
    content: '';
    height: 100%;
    left: -100%;
    position: absolute;
    top: 0;
    transform: skewX(-15deg);
    width: 100%;
}

@keyframes shine {
    20% {
        left: 100%;
    }

    100% {
        left: 100%;
    }
}

.medal-txt {
    text-align: center;
    font-size: 20px;
    position: absolute;
    font-weight: 500;
    width: 100%;
    top: 27%;
    z-index: 2;
    line-height: 1.3em;
    color: #005bac;
}

.medal-txt .bigone {
    font-size: 1.2em;
}

@media(max-width:1024px) {
    .mv-main {
        font-size: 42px;
    }

    .medal-set {
        width: 500px;
    }

    .medal-txt {
        font-size: 18px;
    }

    .top-mv::before {
        content: "";
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        background-image: linear-gradient(90deg, #ffffff 30%, transparent);
        z-index: 1;
        display: block;
    }

    .mv-main::before {
        left: -30px;
    }
}

@media(max-width:599px) {
    .top-mv {
        height: 450px;
    }

    .main-visual-img {
        width: 80%;
    }

    .mv-catch {
        position: absolute;
        top: 15%;
        left: 0;
        writing-mode: horizontal-tb;
    }

    .mv-main {
        font-weight: 900;
        font-size: 32px;
        letter-spacing: 0;
    }

    .mv-main::before {
        bottom: 120%;
        left: 0
    }

    .mv-main::after {
        bottom: 50%;
        left: 90%;
        width: 30px;
        height: 30px;
    }

    .mv-sub {
        margin-right: 0;
        margin-top: 1em;
        line-height: 1.5em;
        letter-spacing: 0;
    }

    .medal-set {
        bottom: 2%;
        width: 100%;
        right: 0;
    }

    .medal {
        width: 33%;
    }

    .medal-txt {
        font-size: 14px;
    }
}

.sec-02 {
    background-color: #eefbff;
}


.title-set01 {
    display: block;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
    position: relative;
}

.title-set01-inner {
    display: inline-block;
    position: relative;
}

.title-set01 .deco {
    width: 120px;
    height: 120px;
    position: absolute;
    right: -120px;
    top: 50%;
    transform: translateY(-50%);
}

.title-set01 .deco.mk2 {
    width: 250px;
    height: 250px;
    position: absolute;
    right: -280px;
    top: 50%;
    transform: translateY(-50%);
}

.ttl .eng {
    color: #333;
    font-size: 22px;
    letter-spacing: .1em;
    line-height: 1em;
}

.title-set01 .main-tit {
    font-size: 32px;
    font-weight: 600;
    color: #005bac;
    line-height: 1.3em;
}

.title-set01 .main-tit>span {
    line-height: 0em;
}


.cards01 .card {
    position: relative;
}

.cards01 .card-inner {
    background-color: #eefbff;
    border-radius: 30px;
    overflow: hidden;
    border: none;
}

.card-txts {
    padding: 20px;
}

.card-title01 {
    font-size: 22px;
    line-height: 1.2em;
    font-weight: 600;
}

.nrm-txt {
    font-size: 14px;
    font-weight: 500;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
}

.num-ball {
    width: 80px;
    position: absolute;
    top: -30px;
    left: -10px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    background-image: url('/import/tenant_1/162.43.40.37/images/bg01.webp');
    background-size: contain;
    font-weight: 900;
    color: #005bac;
    z-index: 1;
}

.cards02 .img {
    border-radius: 10px;
    overflow: hidden;
}

.cards02 .card-inner {
    background-color: transparent;
    border-radius: 0;
    border: none;
    box-shadow: none;
}

.block-title01 {
    font-size: 22px;
    line-height: 1.2em;
    font-weight: 600;
    position: relative;
    z-index: 0;
}

.block-title01::before {
    content: "";
    width: 100px;
    height: 80px;
    display: block;
    background: #c7e2ff;
    border-radius: 40% 60% 50% 40%/40% 40% 60% 60%;
    animation: fluid-animation 5s linear 0s infinite normal;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: -1em;
    z-index: 0;
}

.block-title01 .tit-inner {
    position: relative;
    z-index: 1;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
}

.block-title01+* {
    position: relative;
    z-index: 1;
}

@keyframes fluid-animation {
    0% {
        border-radius: 59% 41% 21% 79% / 62% 53% 47% 38%;
        scale: 1.0;
    }

    25% {
        border-radius: 25% 75% 70% 30% / 40% 70% 30% 60%;
        scale: 1.1;
    }

    50% {
        border-radius: 74% 26% 48% 52% / 68% 32% 68% 32%;
        scale: 1.2;
    }

    75% {
        border-radius: 35% 65% 20% 80% / 30% 60% 40% 70%;
        scale: 1.1;
    }

    100% {
        border-radius: 59% 41% 21% 79% / 62% 53% 47% 38%;
        scale: 1.0;
    }
}

.block-layout01 .block {
    display: flex;
    justify-content: flex-end;
    position: relative;
}

.block-layout01.r .block {
    flex-direction: row-reverse;
}

.block-layout01 .block .sp-conted {
    padding: 100px 40px 100px 0;
    position: relative;
}

.block-layout01.r .block .sp-conted {
    padding: 100px 0 100px 40px;
}

.nm-txt {
    font-size: 16px;
    line-height: 1.8em;
    font-weight: 500;
}

.block-layout01 .block .block-img {
    border-radius: 30px 0 0 30px;
    overflow: hidden;
    max-height: 100%;
    position: relative;
}

.block-layout01.r .block .block-img {
    border-radius: 0 30px 30px 0;
}

.block-layout01 .block .block-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    position: absolute;
    top: 0;
    left: 0;
}

.card-title02 {
    font-size: 20px;
    line-height: 1.2em;
    font-weight: 500;
}

.loop-wrap {
    display: flex;
    width: 100%;
    overflow: hidden;
}

.loop-wrap div {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: 150px;
    overflow: hidden;
    line-height: 1em;
    color: #c7e2ff;
    font-weight: 900;
}

.loop-wrap div:nth-child(odd) {
    animation: loop 50s -25s linear infinite;
}

.loop-wrap div:nth-child(even) {
    animation: loop2 50s linear infinite;
}

@keyframes loop {
    0% {
        transform: translateX(100%);
    }

    to {
        transform: translateX(-100%);
    }
}

@keyframes loop2 {
    0% {
        transform: translateX(0);
    }

    to {
        transform: translateX(-200%);
    }
}



.block-layout02 {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.block-layout02.r {
    flex-direction: row-reverse;
}

.youtube-content {
    width: 100%;
    max-width: 100%;
    height: 100%;
    aspect-ratio: 16/9;
    margin: 1em 0;
    border-radius: 20px;
    overflow: hidden;
}

.youtube-content iframe {
    width: 100%;
    height: 100%;
}


.awd-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.awd-title {
    font-size: 22px;
    line-height: 1.2em;
    font-weight: 600;
    display: inline-block;
    position: relative;
    padding: 1em 1.5em;
}

.awd-title::before {
    content: "";
    width: 1em;
    height: 100%;
    background-image: url('/import/tenant_1/162.43.40.37/images/awd-left.webp');
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.awd-title::after {
    content: "";
    width: 1em;
    height: 100%;
    background-image: url('/import/tenant_1/162.43.40.37/images/awd-right.webp');
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.awd-title .tit-inner {
    display: inline-block;
    position: relative;
}

.awd-img {
    border-radius: 20px;
    overflow: hidden;
}




















.bg-parent {
    position: relative;
}

.bg-parent>div {
    position: relative;
    z-index: 1;
}

.bg-parent>.amb-sec01,
.bg-parent>.amb-sec02 {
    z-index: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.amb-inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.amb-sec01 .amb-inner::before {
    content: "";
    width: 500px;
    height: 500px;
    display: block;
    background: #eefbff;
    border-radius: 40% 60% 50% 40%/40% 40% 60% 60%;
    animation: fluid-animation 8s linear 0s infinite normal;
    position: absolute;
    top: 100px;
    left: -100px;
}

.amb-sec01 .amb-inner::after {
    content: "";
    width: 400px;
    height: 300px;
    display: block;
    background: #eefbff;
    border-radius: 40% 60% 50% 40%/40% 40% 60% 60%;
    animation: fluid-animation 6s linear 0s infinite normal;
    position: absolute;
    top: 240px;
    right: -100px;
}

.amb-sec02 .amb-inner::before {
    content: "";
    width: 200px;
    height: 200px;
    display: block;
    background: #eefbff;
    border-radius: 40% 60% 50% 40%/40% 40% 60% 60%;
    animation: fluid-animation 4s linear 0s infinite normal;
    position: absolute;
    bottom: 50px;
    left: 50%;
}

.amb-sec02 .amb-inner::after {
    content: "";
    width: 100px;
    height: 100px;
    display: block;
    background: #eefbff;
    border-radius: 40% 60% 50% 40%/40% 40% 60% 60%;
    animation: fluid-animation 8s linear 0s infinite normal;
    position: absolute;
    bottom: 200px;
    right: 20%;
}

.bdr-img {
    border: 2px solid #c7e2ff;
    background-color: #FFF;
}

.udb>li {
    padding: 1em 0;
    font-weight: 500;
    border-bottom: 2px solid #c7e2ff;
}

.point-list li {
    padding-left: 1em;
    position: relative;
}

.point-list li+li {
    margin-top: 10px;
}

.point-list li::before {
    content: "";
    width: 5px;
    height: 5px;
    background-color: #005bac;
    border-radius: 50%;
    display: block;
    position: absolute;
    top: .6em;
    left: .3em;
}
















/* ==========================================
   Opening Animation
   ========================================== */

.preload * {
    transition: none !important;
}

.pOpening {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    height: 100vh;
    height: 100vh;
    background-color: #eefbff;
    opacity: 0;
}

.pOpening.is-hidden {
    display: none;
}

.pOpening-cloud {
    position: absolute;
    top: -12px;
    left: 0;
    width: 100%;
    height: 12px;
    background-color: #eefbff;
}

.pOpening-imgs {
    position: absolute;
    left: 50%;
    bottom: calc(50% + 90px);
    transform: translateX(-50%);
    width: 160px;
    height: 160px;
    z-index: 2;
    transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.pOpening-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.pOpening-img:nth-child(1) {
    animation: op-img-flip 1s linear 0s infinite;
}

.pOpening-img:nth-child(2) {
    animation: op-img-flip 1s linear -0.5s infinite;
}

@keyframes op-img-flip {
    0% {
        opacity: 1;
    }

    49.9% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}

.pOpeningSlider {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100vh;
    height: 100svh;
    opacity: 0;
    overflow: hidden;
    transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.pOpeningSlider-target {
    display: flex;
    column-gap: 30px;
    align-items: center;
    margin-left: 30px;
    flex-shrink: 0;
}

.pOpeningSlider-target:first-child {
    animation: op-loop 50s -25s linear infinite;
}

.pOpeningSlider-target:last-child {
    animation: op-loop2 50s linear infinite;
}

.pOpeningSlider-item {
    font-family: "Alegreya Sans", sans-serif;
    font-size: 30px;
    font-weight: 600;
    color: #555;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.pOpeningSlider-item-1 {
    color: #005bac;
}

.pOpeningSlider-item-3 {
    color: #3aa0e8;
}

@keyframes op-loop {
    0% {
        transform: translateX(100%);
    }

    100% {
        transform: translateX(-100%);
    }
}

@keyframes op-loop2 {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-200%);
    }
}

/* State classes on <html> */

.isOpening1 .pOpening {
    opacity: 1;
}

.isOpening1 .top-mv {
    opacity: 0;
}

.isOpening1 .pOpeningSlider {
    opacity: 1;
}

.isOpening3 .pOpeningSlider {
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transform: translate(-180px, 30px);
}

.isOpening3 .pOpening-imgs {
    opacity: 0;
}

.isOpening3 .top-mv {
    opacity: 1;
}

.isOpeningEnd .pOpening {
    opacity: 0;
    transition: opacity 0.4s cubic-bezier(0.23, 1, 0.32, 1) 1.8s, transform 1.8s cubic-bezier(0.23, 1, 0.32, 1);
    transform: translateY(calc(100% + 12px));
}

.isOpeningSkip .pOpening {
    display: none;
    opacity: 0;
}

.isOpeningSkip .pOpeningSlider {
    opacity: 0;
}

@media screen and (min-width: 768px) {
    .pOpening-cloud {
        top: -20px;
        height: 20px;
    }

    .pOpeningSlider-target {
        column-gap: 80px;
        margin-left: 80px;
    }

    .pOpeningSlider-item {
        font-size: 30px;
    }

    .isOpeningEnd .pOpening {
        transition: opacity 0.2s cubic-bezier(0.23, 1, 0.32, 1) 2s, transform 2s cubic-bezier(0.23, 1, 0.32, 1);
        transform: translateY(calc(100% + 20px));
    }
}

section {
    position: relative;
}

/* ==========================================
   Campaign Section
   ========================================== */

.ribons-title {
    width: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.ribon {
    text-align: center;
    display: inline-block;
    background-image: url('/import/tenant_1/162.43.40.37/images/ribon.webp');
    background-size: 100% 100%;
    background-position: center;
    font-size: 26px;
    padding: .2em 2em 1.3em 2em;
    color: #f73a25;
    font-weight: 900;
    text-shadow: rgb(255, 255, 255) 1px 1px 0px,
        rgb(255, 255, 255) -1px -1px 0px,
        rgb(255, 255, 255) -1px 1px 0px,
        rgb(255, 255, 255) 1px -1px 0px,
        rgb(255, 255, 255) 0px 1px 0px,
        rgb(255, 255, 255) 0px -1px 0px,
        rgb(255, 255, 255) -1px 0px 0px,
        rgb(255, 255, 255) 1px 0px 0px;
    margin-bottom: -1em;
    z-index: 1;
    position: relative;
}

.ribon-main {
    text-align: center;
    width: 100%;
    display: inline-block;
    padding: 1.2em 3em;
    color: #fff;
    background-color: #f73a25;
    font-weight: 900;
    font-size: 30px;
    border-radius: 40px;
    position: relative;
    overflow: hidden;
}

.ribon-main::after {
    animation: 2s 0s shine linear infinite;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, .6) 50%, rgba(255, 255, 255, 0) 75%);
    content: '';
    height: 100%;
    left: -100%;
    position: absolute;
    top: 0;
    transform: skewX(-15deg);
    width: 100%;
}

.sec-campaign {
    background-color: #f9f278;
    padding: 90px 0;
}

.sec-campaign-hd {
    text-align: center;
    margin-bottom: 40px;
    padding: 0 20px;
}

.campaign-card {
    background-color: #fff;
    border-radius: 10px;
    padding: 1.5em;
    text-align: center;
}

.campaign-card-name {
    font-size: 24px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 14px;
    position: relative;
    padding-left: 50px;
    display: inline-block;
}

.campaign-card-name::before {
    content: '★';
    font-size: 40px;
    font-weight: 900;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
    position: absolute;
    top: 50%;
    left: 0;
    line-height: 1em;
    transform: translateY(-60%);
}

.campaign-card-name::after {
    content: '';
    display: inline-block;
    width: 200px;
    height: 20px;
    background-image: url('/import/tenant_1/162.43.40.37/images/underp.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    bottom: -.2em;
    left: 50px;
}

.card-t {
    position: relative;
    z-index: 1;
}



.campaign-card-body {
    padding: 0;
}

.campaign-card-regular {
    font-size: 20px;
    color: #005bac;
    margin-bottom: 4px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.campaign-card-regular-num {
    font-size: 30px;
    color: #005bac;
    position: relative;
}

.campaign-card-regular-num::before {
    position: absolute;
    content: "";
    display: block;
    transform: rotate(-10deg);
    background-color: red;
    width: 100%;
    height: 1px;
    top: 50%;
    left: 0;
}

.campaign-card-sale {
    color: #E82429;
    font-weight: 600;
    line-height: 1.1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
    gap: 2px;
    justify-content: center;
}

.campaign-card-sale-num {
    font-size: 70px;
    letter-spacing: -.02em;
}

.campaign-card-tax {
    font-size: 12px;
    font-weight: 400;
}

.campaign-card-note {
    font-size: 14px;
    color: #005bac;
    margin-top: 10px;
    letter-spacing: -.05em;
}

.campaign-plus {
    color: #E82429;
    border-radius: 50%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-size: 100px;
    font-weight: 900;
    line-height: 1;
    padding: 30px 0 30px 0;
}

.rolal {
    display: block;
    height: 175px;
    width: 80px;
}

.rolal.left {
    background-image: url('/import/tenant_1/162.43.40.37/images/leaf-left.webp');
    background-size: 100% 100%;
}

.rolal.right {
    background-image: url('/import/tenant_1/162.43.40.37/images/leaf-right.webp');
    background-size: 100% 100%;
}

.bonus-center {
    width: calc(100% - 160px);
}

.campaign-bonus {
    box-shadow: 0px 0px 5px 5px #E82429;
    background-color: #fff;
    border-radius: 10px;
    padding: 2em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.campaign-bonus-body {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.campaign-bonus-lead {
    font-size: 22px;
    font-weight: 700;
    color: #005bac;
    line-height: 1em;
    margin: 20px 0 10px 0;
}

.campaign-bonus-price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 4px;
    color: #E82429;
    font-weight: 900;
}

.campaign-bonus-price-num {
    font-size: 64px;
    letter-spacing: -.02em;
    line-height: 1;
}

.campaign-bonus-off {
    font-size: 40px;
    font-weight: 900;
}


.contact-info p {
    font-size: 15px;
    line-height: 2em;
}

.contact-cta-wrap {
    text-align: center;
    margin-bottom: 30px;
}

.contact-cta {
    font-size: 30px;
    padding: 1em 3em;
    letter-spacing: .05em;
    width: 100%;
    background-color: #005bac;
    color: #fff;
    font-weight: 900;
    border-radius: 30px;
    box-shadow: 0px 10px 0px 0px #002a69;
}

.contact-num {
    font-size: 65px;
    font-weight: 900;
    color: #005bac;
    letter-spacing: -.02em;
    line-height: 1.2em;
    margin-bottom: 30px;
}

.contact-num>a {
    padding-left: 1em;
    position: relative;
    line-height: 1em;
}

.contact-num>a:before {
    content: "";
    width: 50px;
    height: 50px;
    background-image: url('/import/tenant_1/162.43.40.37/images/fdl.webp');
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-45%);
}

.contact-hr {
    border: none;
    border-top: 1px solid #b0cee8;
    margin-bottom: 30px;
}

.contact-btns {
    display: flex;
    justify-content: center;
    gap: 40px;
}

.contact-btn-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.contact-icon {
    font-size: 50px;
    display: block;
    width: 50px;
    height: 50px;
    color: #005bac;
}

.contact-icon-img {
    display: block;
    width: 50px;
    height: 50px;
}

.contact-icon-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.line-btn.blob a {
    z-index: 1;
    position: relative;
    display: inline-block;
    text-decoration: none;
    padding: .5em 1.5em;
    text-align: center;
    text-transform: none;
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    background-color: #06c755;
    outline: none;
    border: none;
    transition: color 0.5s;
    cursor: pointer;
    border-radius: 3em;
    overflow: hidden;
}

.line-btn.blob a:before {
    content: "";
    z-index: 1;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border: 2px solid #06c755;
    border-radius: 3em;
    overflow: hidden;
}

@media (max-width: 599px) {
    .contact-cta.blue-btn.blob a {
        font-size: 16px;
        padding: .8em 1.5em;
    }

    .contact-num {
        font-size: 36px;
    }

    .contact-num i {
        font-size: 30px;
    }

    .contact-btns {
        gap: 10px;
    }

    .contact-btns a {
        padding: .5em .5em !important;
    }

    .campaign-plus {
        padding: 0px 0 10px 0;
    }

    .block-title01::before {
        height: 55px;
    }
}


.news-block-head {
    width: 100%
}

.news-block-body {
    max-width: 900px;
    margin-right: auto;
    margin-left: auto;
    position: relative;
    z-index: 1;
}

.news-list {
    width: 100%;
    border-top: 1px solid #ccc;
}

.news-item {
    display: block;
    width: 100%;
}

.news-item>a {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: .85em 0;
    border-bottom: 1px solid #ccc;
    flex-wrap: wrap;
}

.news-date {
    width: 100px;
    font-weight: bold;
    font-size: 18px;
    color: #666;
}

.news-ttl {
    font-size: 15px;
    line-height: 1.5em;
    width: calc(100% - 100px);
}

.news-more {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

@media (max-width: 1024px) {
    .news-block {
        gap: 20px;
    }

    .news-block-head {
        width: 130px;
    }

    .news-cat-tit {
        font-size: 14px;
    }
}

@media (max-width: 599px) {
    .news-block {
        flex-direction: column;
        gap: 10px;
    }

    .news-item a {
        flex-direction: column;
        gap: 5px;
    }

    .news-block-head {
        width: auto;
        padding-top: 0;
    }

    .news-date {
        width: 100%;
        line-height: 1em;
    }

    .news-ttl {
        font-size: 16px;
        font-weight: 600;
        width: 100%;
    }


}

@media (max-width: 599px) {
    .sec-campaign-ttl.pc-ttl {
        display: none;
    }

    .sec-campaign-ttl.sp-ttl {
        display: inline-block;
        font-size: 22px;
        padding: 12px 30px;
    }

    .campaign-cards {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .campaign-bonus {
        padding: 20px;
        gap: 12px;
    }

    .campaign-bonus-laurel {
        font-size: 16px;
    }

    .campaign-bonus-price-num {
        font-size: 44px;
    }

    .campaign-bonus-off {
        font-size: 26px;
    }
}

/* ===== Footer ===== */
.footer {
    background-color: #005bac;
    color: #fff;
}

.footer-top {
    padding: 60px 0 50px;
}

.footer-top-inner {
    display: flex;
    gap: 70px;
}

.footer-info {
    flex: 0 0 auto;
    width: 250px;
}

.footer-logo {
    margin-bottom: 20px;
}

.footer-address {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 12px;
}

.footer-tel {
    font-size: 14px;
    margin-bottom: 6px;
}

.footer-mail {
    font-size: 14px;
    margin-bottom: 20px;
}

.footer-hours {
    font-size: 14px;
    line-height: 1.8;
}

.footer-map-wrap {
    flex: 1;
    min-width: 0;
}

.footer-map-wrap .map {
    border-radius: 16px;
    overflow: hidden;
    height: 100%;
    position: relative;
}

.footer-map-wrap .map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.footer-area {
    flex: 0 0 auto;
    width: 250px;
}

.footer-area-tit {
    font-size: 14px;
    margin-bottom: 10px;
    text-align: center;
}

.footer-area-img {
    border-radius: 16px;
    overflow: hidden;
}

.footer-nav-wrap {
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    padding: 40px 0;
}

.footer-nav-list {
    display: flex;
    gap: 16px;
}

.footer-nav-col {
    flex: 1;
}

.footer-nav-items li {
    font-size: 13px;
    line-height: 1;
    margin-bottom: 16px;
}

.footer-nav-sub {
    padding-left: 1em;
}

.footer-copy {
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    padding: 20px 0;
    text-align: center;
    font-size: 13px;
}

@media (max-width: 1024px) {
    .footer-top {
        padding: 40px 0 30px;
    }

    .footer-top-inner {
        flex-wrap: wrap;
        gap: 24px;
    }

    .footer-info {
        width: 100%;
    }

    .footer-map-wrap {
        flex: 0 0 calc(60% - 12px);
    }

    .footer-area {
        flex: 0 0 calc(40% - 12px);
        width: auto;
    }

    .footer-nav-list {
        flex-wrap: wrap;
        gap: 24px 16px;
    }

    .footer-nav-col {
        flex: 0 0 calc(50% - 8px);
    }
}

@media (max-width: 599px) {

    .footer-map-wrap,
    .footer-area {
        flex: 0 0 100%;
        min-height: 200px;
    }
}











/*//////////////////////////////////////////////////////////////////////////////*/

/* ========================================================================
   下層ページ共通スタイル
   TOPページ（style.css）のカラー・余白・BEM規則に準拠して記述
   カラー: #005bac（青）/ #eefbff（薄青）/ #c7e2ff（青ボーダー）/ #1a1a2e（文字）
   ======================================================================== */

/* ===== メインエリア（固定ヘッダー分オフセット） ===== */
.main {
    padding-top: 60px;
}

@media (max-width: 1024px) {
    .main {
        padding-top: 55px;
    }
}

/* ===== パンくずリスト リンク色 ===== */
.breadcrumb-home>a,
.breadcrumb-parent>a {
    color: #005bac;
}

/* エージェント生成ページの .breadcrumb（複数形なし）も対応 */
.breadcrumb {
    padding: 20px 0;
    background-color: #fff;
}

.breadcrumb-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    list-style: none;
    font-size: 14px;
    padding-left:0;
    margin-bottom:0;
}

.breadcrumb-list>li {
    display: inline;
}

.breadcrumb-list>li+li::before {
    content: "";
    width: 6px;
    height: 6px;
    display: inline-block;
    margin: 0 8px 1px;
    border-top: 1px solid #999;
    border-right: 1px solid #999;
    transform: rotate(45deg);
}

.breadcrumb-list>li a {
    color: #005bac;
}

/* ===== セクション背景色 ===== */
.sec-page-title {
    background-color: #fff;
}

.sec-mv {
    background-color: #fff;
}

.sec-reasons {
    background-color: #fff;
}

.sec-commitment {
    background-color: #eefbff;
}

.sec-merits {
    background-color: #fff;
}

.sec-price {
    background-color: #fff;
}

.sec-results {
    background-color: #eefbff;
}

.sec-own-cta {
    background-color: #fff;
}

.sec-worries {
    background-color: #eefbff;
}

.sec-features {
    background-color: #fff;
}

.sec-flow {
    background-color: #fff;
}

.sec-faq-list {
    background-color: #fff;
}

.sec-news-list,
.sec-blog-list,
.sec-voice-list,
.sec-results-list,
.sec-link-list {
    background-color: #fff;
}

/* ===== ページパターン 01: MV / ヒーロー（2カラム 文+画像） ===== */
.sec-mv-inner {
    display: flex;
    gap: 60px;
    align-items: center;
}

.sec-mv-txt {
    flex: 1;
}

.sec-mv-img {
    flex: 0 0 45%;
}

.sec-mv-img .img {
    border-radius: 20px;
    overflow: hidden;
}




@media (max-width: 1024px) {
    .sec-mv-inner {
        flex-direction: column;
        gap: 30px;
    }

    .sec-mv-img {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* ===== ページパターン 02: お悩みリスト ===== */
.worry-list {
    list-style: none;
}

.worry-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: .8em 1em;
    background-color: #eefbff;
    border-radius: 10px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    border-left: 5px solid #005bac;
}

.worry-item:last-child {
    margin-bottom: 0px;
}

.box-011 {
    position: relative;
    padding: 1em 1.5em;
    border: 2px solid #2589d0;
    border-radius: 3px;
    background-color: #fff;
}

.box-011 .title {
    position: absolute;
    top: -1.9em;
    left: -2px;
    padding: .2em .8em;
    border-radius: 5px 5px 0 0;
    background-color: #2589d0;
    color: #fff;
}

@media(max-width:1024px) {
    .box-011 {
        padding: 0 .5em 1em .5em;
    }

    .box-011 .title {
        position: relative;
        ;
        top: 0;
        left: 0;
        padding: .2em .5em;
        width: 100%;
        border-radius: 0;
        margin-bottom: .5em;
    }
}


@media (max-width: 599px) {
    .worry-item {
        font-size: 14px;
        padding: 12px 16px;
    }
}

/* ===== ページパターン 03: 理由カード（3カラム、番号付き） ===== */
.reasons-list {
    list-style: none;
}

.reason-item {
    position: relative;
}

.reason-inner {
    background-color: #eefbff;
    border-radius: 20px;
    overflow: hidden;
    height: 100%;
}

.reason-num {
    background-color: #005bac;
    color: #fff;
    font-weight: 700;
    font-size: 18px;
    padding: 10px 20px;
    letter-spacing: .05em;
}

.reason-img {
    border-radius: 0;
}

.reason-txts {
    padding: 16px 20px 24px;
}

.reason-title {
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    line-height: 1.4;
}

.reason-note {
    font-size: 13px;
    color: #666;
    background-color: #f5f5f5;
    padding: 14px 20px;
    border-radius: 10px;
    line-height: 1.8;
}

@media (max-width: 1024px) {
    .reasons-list.grid {
        grid-template-columns: 1fr;
        gap: 24px !important;
    }
}

@media (max-width: 599px) {
    .reason-title {
        font-size: 16px;
    }
}

/* ===== ページパターン 04: こだわり（2カラム 画像+テキスト、カード型） ===== */
.commitment-list {
    list-style: none;
}

.commitment-item {
    background-color: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 91, 172, 0.08);
}

.commitment-inner {
    display: flex;
    gap: 0;
    align-items: stretch;
}

.commitment-img {
    flex: 0 0 300px;
    overflow: hidden;
}

.commitment-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.commitment-txts {
    flex: 1;
    padding: 30px;
}

.commitment-title {
    font-size: 20px;
    font-weight: 700;
    color: #005bac;
    line-height: 1.4;
}

@media (max-width: 1024px) {
    .commitment-inner {
        flex-direction: column;
    }

    .commitment-img {
        flex: 0 0 auto;
        width: 100%;
        height: 240px;
    }

    .commitment-txts {
        padding: 20px;
    }
}

/* ===== ページパターン 05: メリットカード（3カラム） ===== */
.merits-list {
    list-style: none;
}

.merit-inner {
    background-color: #eefbff;
    border-radius: 20px;
    overflow: hidden;
    height: 100%;
}

.merit-img {
    border-radius: 0;
}

.merit-txts {
    padding: 16px 20px 24px;
}

.merit-title {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.4;
}

@media (max-width: 1024px) {
    .merits-list.grid {
        grid-template-columns: 1fr;
        gap: 24px !important;
    }
}

/* 料金表基本仕様 */
.price-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 20px;
    border: 1px solid #005bac;

}

.price-table {
    width: 100%;
    min-width: 620px;
    border-collapse: separate;
    border-spacing: 0;
}


.price-table th {
    background: #005bac;
    color: #ffffff;
    padding: .8em;
    text-align: left;
    font-weight: 600;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.price-table td {
    background: #ffffff;
    padding: .8em;
    border-bottom: 1px solid #d4e5ff;
    border-right: 1px solid #d4e5ff;
    color: #333333;
}

.price-table th:last-child {
    border-right: none;
}

.price-table td:last-child {
    border-right: none;
}

.price-table tr:last-child td {
    border-bottom: none;
}

/* 料金額の強調表示 */
.price-table .price-val,
.price-table .price-num,
.price-table td:nth-child(2) {
    font-weight: 700;
    color: #005bac;
}

/* 3カラムコーティング料金表（各列に異なる意味を持たせる） */
.price-table-coating th:nth-child(1) {
    background: #005bac;
    width: 34%;
}

.price-table-coating th:nth-child(2) {
    background: #00468c;
    width: 33%;
}

.price-table-coating th:nth-child(3) {
    background: #3aa0e8;
    width: 33%;
}


/* 料金注意書き・注釈（静的） */
.price-note {
    font-size: 13.5px;
    color: #666666;
    line-height: 1.7;
    background: #d4e5ff;
    padding: 20px;
    border-radius: 10px;
    border-left: 4px solid #c7e2ff;
    margin-top: 20px;
}

.price-link a,
.cta-links a,
.more-btn a {
    position: relative;
    display: inline-block;
    color: #005bac;
    font-weight: 700;
    padding: 6px 18px;
    border-radius: 24px;
    z-index: 1;
    transition: color 0.3s ease;
    text-decoration: none;
}


.more-btn {
    text-align: center;
}

.more-btn a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: #005bac;
    padding: .6em 2em;
    border: 2px solid #005bac;
    border-radius: 3em;
    transition: all .3s;
}

.more-btn a:hover {
    background-color: #005bac;
    color: #fff;
    opacity: 1;
}

/* ===== ページパターン 07: CMS 出力エリア ===== */
.cms-results-wrap {
    min-height: 100px;
}

/* ===== ページパターン 08: 自社 CTA（sec-own-cta 内ボタン群） ===== */
.cta-links {
    display: flex;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
}

.cta-link-item a {
    display: inline-block;
    font-size: 14px;
    color: #005bac;
    text-decoration: underline;
    text-underline-offset: 4px;
    font-weight: 600;
    transition: opacity .3s;
}

/* ===== ページパターン 09: 記事詳細（ブログ・ニュース） ===== */
.sec-article {
    background-color: #fff;
}

.article-head {
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 2px solid #c7e2ff;
}

.article-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.article-date {
    font-size: 14px;
    color: #888;
    font-family: "Alegreya Sans", sans-serif;
}

.article-category {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
}

.article-category>span {
    font-size: 12px;
    color: #005bac;
    background-color: #eefbff;
    padding: 3px 12px;
    border-radius: 20px;
    font-weight: 600;
}

.article-title {
    font-size: 26px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.5;
}

.article-body {
    font-size: 16px;
    line-height: 1.9;
    color: #444;
    margin-bottom: 60px;
}

.article-body div {
    margin-bottom: 1em;
}

.article-body div:last-child {
    margin-bottom: 0;
}

.article-reply {
    background-color: #eefbff;
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 60px;
}

.article-reply-label {
    display: inline-block;
    background-color: #005bac;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
    padding: 6px 18px;
    border-radius: 100px;
    margin-bottom: 18px;
}

.article-reply-body {
    font-size: 15px;
    line-height: 1.9;
    color: #444;
}

.article-reply-body div {
    margin-bottom: 1em;
}

.article-reply-body div:last-child {
    margin-bottom: 0;
}

@media (max-width: 599px) {
    .article-reply {
        padding: 20px;
    }
}

.article-back {
    text-align: center;
}

@media (max-width: 599px) {
    .article-title {
        font-size: 20px;
    }

    .price-link a {
        font-size: 14px;
        border: 2px dotted #005bac;
    }

    .price-table-coating th:nth-child(3) {
        font-size: 14px;
    }
}

/* ===== ページパターン 10: お客様の声詳細 ===== */
.sec-voice-detail {
    background-color: #fff;
}

.voice-before-after {
    margin: 40px 0;
}

.voice-reviewer {
    font-size: 14px;
    color: #888;
    margin-bottom: 24px;
    padding: 12px 20px;
    background-color: #eefbff;
    border-radius: 8px;
    line-height: 1.7;
}

/* ===== ページパターン 11: お問い合わせ直接連絡 ===== */
.sec-contact-direct {
    background-color: #eefbff;
}

.contact-direct-inner {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.contact-direct-tel,
.contact-direct-line {
    flex: 1;
    min-width: 260px;
}

.contact-direct-label {
    font-size: 15px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 10px;
}

.contact-direct-hours {
    font-size: 14px;
    color: #666;
    margin-bottom: 12px;
    line-height: 1.7;
}

.contact-direct-num {
    font-size: 30px;
    font-weight: 900;
    letter-spacing: -.02em;
    color: #005bac;
}

.contact-line-img {
    display: inline-block;
    width: 24px;
    height: 24px;
    vertical-align: middle;
    margin-right: 6px;
}

.contact-line-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

@media (max-width: 599px) {
    .contact-direct-inner {
        flex-direction: column;
        gap: 24px;
    }

    .contact-direct-num {
        font-size: 24px;
    }
}

/* ===== ページパターン 12: お支払い情報 ===== */
.sec-payment {
    background-color: #fff;
}

.payment-info {
    display: flex;
    gap: 0;
    border: 2px solid #c7e2ff;
    border-radius: 16px;
    overflow: hidden;
}

.payment-item {
    flex: 1;
    padding: 24px;
    text-align: center;
    border-right: 1px solid #c7e2ff;
}

.payment-item:last-child {
    border-right: none;
}

.payment-label {
    font-size: 13px;
    color: #888;
    margin-bottom: 8px;
    font-weight: 500;
}

.payment-value {
    font-size: 16px;
    color: #005bac;
    font-weight: 700;
}

@media (max-width: 599px) {
    .payment-info {
        flex-direction: column;
    }

    .payment-item {
        border-right: none;
        border-bottom: 1px solid #c7e2ff;
    }

    .payment-item:last-child {
        border-bottom: none;
    }
}

/* ===== ページパターン 13: お問い合わせフォームセクション ===== */
.sec-contact-form {
    background-color: #fff;
}

/* ===== ページパターン 14: FAQ アコーディオン ===== */
.faq-block {
    margin-bottom: 40px;
}

.faq-cat-title {
    font-size: 22px;
    font-weight: 700;
    color: #005bac;
    padding: 14px 20px;
    background-color: #eefbff;
    border-radius: 12px;
    margin-bottom: 16px;
    position: relative;
}

.faq-cat-title::before {
    content: "Q";
    font-family: "Alegreya Sans", sans-serif;
    font-size: 16px;
    font-weight: 900;
    background-color: #005bac;
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
}

.faq-item {
    border: 2px solid #c7e2ff;
    border-radius: 12px;
    overflow: hidden;
}

.faq-q {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 20px;
    background-color: #fff;
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    position: relative;
    user-select: none;
}

.faq-q::after {
    content: "\f107";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #005bac;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    transition: transform .3s;
}

.faq-item.is-open .faq-q::after {
    transform: translateY(-50%) rotate(180deg);
}

.faq-q-icon {
    width: 32px;
    height: 32px;
    background-color: #005bac;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 900;
    font-size: 16px;
    flex-shrink: 0;
    font-family: "Alegreya Sans", sans-serif;
}

.faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s ease, padding .3s ease;
    background-color: #eefbff;
}

.faq-item.is-open .faq-a {
    max-height: 800px;
    padding: 18px 20px;
}

.faq-a-inner {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.faq-a-icon {
    width: 32px;
    height: 32px;
    background-color: #c7e2ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #005bac;
    font-weight: 900;
    font-size: 16px;
    flex-shrink: 0;
    font-family: "Alegreya Sans", sans-serif;
}

.faq-a-txt {
    font-size: 15px;
    line-height: 1.9;
    color: #444;
    flex: 1;
}

/* ===== ページパターン 15: 数字フロー（お申し込みの流れ） ===== */
.flow-list {
    display: flex;
    gap: 0;
    align-items: stretch;
    list-style: none;
    counter-reset: flow-count;
}

.flow-item {
    flex: 1;
    position: relative;
    text-align: center;
    padding: 30px 16px;
    background-color: #eefbff;
}

.flow-item::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -20px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: 20px solid #eefbff;
    z-index: 1;
}

.flow-item:last-child::after {
    display: none;
}

.flow-num {
    font-family: "Alegreya Sans", sans-serif;
    font-size: 48px;
    font-weight: 900;
    color: #c7e2ff;
    line-height: 1;
    margin-bottom: 8px;
}

.flow-icon {
    font-size: 36px;
    color: #005bac;
    margin-bottom: 12px;
    display: block;
}

.flow-title {
    font-size: 16px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 8px;
    line-height: 1.3;
}

.flow-txt {
    line-height: 1.7;
    color: #555;
}

@media (max-width: 1024px) {
    .flow-list {
        flex-wrap: wrap;
        gap: 16px;
    }

    .flow-item {
        min-width: calc(50% - 8px);
    }

    .flow-item::after {
        display: none;
    }
}

@media (max-width: 599px) {
    .flow-item {
        min-width: 100%;
    }
}

/* ===== ページパターン 16: チェックリスト / ポイントリスト ===== */
.check-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
}

.check-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: 15px;
    line-height: 1.7;
}

.check-item::before {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #005bac;
    flex-shrink: 0;
    margin-top: 2px;
    font-size: 15px;
}

/* ===== ページパターン 17: 会社情報テーブル ===== */
.info-table {
    width: 100%;
    border-collapse: collapse;
}

.info-table th,
.info-table td {
    padding: 16px 20px;
    border-bottom: 1px solid #c7e2ff;
    font-size: 15px;
    line-height: 1.7;
    vertical-align: top;
}

.info-table th {
    width: 200px;
    font-weight: 700;
    color: #005bac;
    background-color: #eefbff;
    white-space: nowrap;
}

@media (max-width: 599px) {

    .info-table th,
    .info-table td {
        display: block;
        width: 100%;
        padding: 12px 16px;
    }

    .info-table th {
        padding-bottom: 4px;
        border-bottom: none;
    }
}

/* ===== ページパターン 18: 相互リンクカード ===== */
.link-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    list-style: none;
}

.link-card {
    border: 2px solid #c7e2ff;
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    background-color: #fff;
    transition: all .3s;
}

.link-card:hover {
    border-color: #005bac;
    background-color: #eefbff;
    opacity: 1;
}

.link-card-title {
    font-size: 15px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 8px;
    line-height: 1.4;
}

.link-card-url {
    font-size: 12px;
    color: #888;
    word-break: break-all;
}

@media (max-width: 1024px) {
    .link-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 599px) {
    .link-list {
        grid-template-columns: 1fr;
    }
}

/* ===== ページパターン 19: お客様の声カードグリッド ===== */
.voice-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    list-style: none;
}

.voice-card-img {
    width: 70%;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 1em auto;
    box-shadow: 0 4px 16px rgba(0, 91, 172, 0.08);
    border: 1px solid #c7e2ff;
}

.voice-card-body {
    padding: 18px;
    background-color: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 91, 172, 0.08);
    border: 1px solid #c7e2ff;
}

.voice-card-info {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.voice-card-date {
    font-size: 13px;
    color: #888;
    font-family: "Alegreya Sans", sans-serif;
}

.voice-card-cat {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
}

.voice-card-cat>span {
    background-color: #eefbff;
    color: #005bac;
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}

.voice-card-title {
    font-size: 15px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.5;
}

@media (max-width: 1024px) {
    .voice-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 599px) {
    .voice-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== ページパターン 20: 記事一覧リスト（ニュース・ブログ） ===== */
.article-list {
    list-style: none;
    border-top: 1px solid #c7e2ff;
}

.article-item {
    display: flex;
    gap: 20px;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid #c7e2ff;
    transition: background-color .3s, padding-left .3s;
}

.article-item:hover {
    background-color: #eefbff;
    padding-left: 10px;
    opacity: 1;
}

.article-item-thumb {
    width: 100px;
    flex-shrink: 0;
    border-radius: 8px;
    overflow: hidden;
}

.article-item-thumb img {
    width: 100%;
    height: 75px;
    object-fit: cover;
    display: block;
}

.article-item-cont {
    flex: 1;
    min-width: 0;
}

.article-item-meta {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.article-item-date {
    font-size: 13px;
    color: #888;
    font-family: "Alegreya Sans", sans-serif;
}

.article-item-cat {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: wrap;
}

.article-item-cat>span {
    font-size: 12px;
    color: #005bac;
    background-color: #eefbff;
    padding: 2px 10px;
    border-radius: 20px;
    font-weight: 600;
}


.blg.article-item-cat>span {
    color: #005bac;
    background-color: #fff;
    border: 1px solid #005bac;
}


.article-item-title {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.4;
}

@media (max-width: 599px) {
    .article-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .article-item-thumb {
        width: 100%;
    }

    .article-item-thumb img {
        height: 180px;
    }
}

/* ===== ページパターン 21: CTAボックス（強調型） ===== */
.cta-box {
    background-color: #005bac;
    border-radius: 20px;
    padding: 40px;
    text-align: center;
    color: #fff;
}

.cta-box-title {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 16px;
    line-height: 1.4;
}

.cta-box-sub {
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 30px;
    opacity: 0.9;
}

.cta-box-btns {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

.cta-box-tel {
    font-size: 36px;
    font-weight: 900;
    margin-bottom: 20px;
    letter-spacing: -.02em;
}

@media (max-width: 599px) {
    .cta-box {
        padding: 24px 16px;
    }

    .cta-box-title {
        font-size: 20px;
    }

    .cta-box-tel {
        font-size: 26px;
    }
}

/* ===== ページパターン 22: 実績一覧カードグリッド ===== */
.results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    list-style: none;
}

.results-card {
    background-color: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 91, 172, 0.08);
    border: 1px solid #c7e2ff;
}


.results-card-img {
    width: 100%;
}

.results-card-body {
    padding: 18px;
}

.results-card-cat {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.results-card-cat>span {
    font-size: 12px;
    color: #005bac;
    background-color: #eefbff;
    padding: 2px 10px;
    border-radius: 20px;
    display: inline-block;
    font-weight: 600;
}

.results-card-title {
    font-size: 15px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.5;
    margin-top: 5px;
}

.法人のお客様 {
    background-color: #005bac !important;
    color: #fff !important;
}

@media (max-width: 1024px) {
    .results-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .results-card:nth-child(4) {
        display: list-item;
    }
}

@media (max-width: 599px) {
    .results-grid {
        grid-template-columns: 1fr;
    }
}

/* CMS管理画面（見たまま編集）でのコンテナ構造対策 */
[data-element-id].results-grid {
    display: block;
}

[data-element-id].results-grid>div {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* ===== ページパターン 23: ビフォーアフター比較 ===== */
.before-after-wrap {
    display: flex;
    gap: 16px;
    align-items: stretch;
}

.before-box,
.after-box {
    flex: 1;
    border-radius: 16px;
    overflow: hidden;
    border: 2px solid #c7e2ff;
}

.before-box-label,
.after-box-label {
    display: block;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    padding: 8px 0;
    letter-spacing: .1em;
}

.before-box-label {
    background-color: #888;
    color: #fff;
}

.after-box-label {
    background-color: #005bac;
    color: #fff;
}

.before-after-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    color: #c7e2ff;
    flex-shrink: 0;
    padding: 0 4px;
}

@media (max-width: 599px) {
    .before-after-wrap {
        flex-direction: column;
    }

    .before-after-arrow {
        transform: rotate(90deg);
    }
}

/* ===== ページパターン 24: 2カラムテキスト+画像（block-layout03） ===== */
.block-layout03 {
    display: flex;
    gap: 60px;
    align-items: center;
}

.block-layout03.r {
    flex-direction: row-reverse;
}

.block-layout03 .block-cont {
    flex: 1;
}

.block-layout03 .block-img {
    flex: 0 0 45%;
    border-radius: 20px;
    overflow: hidden;
}

.block-layout03 .block-img img {
    width: 100%;
    display: block;
}

@media (max-width: 1024px) {

    .block-layout03,
    .block-layout03.r {
        flex-direction: column;
        gap: 30px;
    }

    .block-layout03 .block-img {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* ===== ページパターン 25: 協力会社募集ページ用リスト ===== */
.recruit-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    list-style: none;
}

.recruit-item {
    background-color: #eefbff;
    border-radius: 16px;
    padding: 24px;
    border-left: 4px solid #005bac;
}

.recruit-item-title {
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 10px;
    line-height: 1.4;
}

.recruit-item-txt {
    font-size: 14px;
    line-height: 1.8;
    color: #444;
}

@media (max-width: 599px) {
    .recruit-list {
        grid-template-columns: 1fr;
    }
}

/* ===== ページパターン 26: ページネーション ===== */
.page-nav {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 40px;
    flex-wrap: wrap;
    list-style: none;
}

.page-nav-item {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #c7e2ff;
    border-radius: 8px;
    font-size: 15px;
    color: #005bac;
    font-weight: 600;
    cursor: pointer;
    transition: all .3s;
}

.page-nav-item.is-current,
.page-nav-item:hover {
    background-color: #005bac;
    color: #fff;
    border-color: #005bac;
    opacity: 1;
}

/* ===== カテゴリフィルター ===== */
.cat-filter {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 30px;
    list-style: none;
}

.cat-filter-item {
    padding: .4em 1.2em;
    border: 2px solid #c7e2ff;
    border-radius: 3em;
    font-size: 14px;
    color: #005bac;
    font-weight: 600;
    cursor: pointer;
    transition: all .3s;
}

.cat-filter-item.is-active,
.cat-filter-item:hover {
    background-color: #005bac;
    color: #fff;
    border-color: #005bac;
    opacity: 1;
}

/* ===== SP レスポンシブ汎用 ===== */
@media (max-width: 1024px) {
    .grid.grid-cols-3 {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .grid.grid-cols-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .grid.grid-cols-5 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 599px) {

    .grid.grid-cols-2,
    .grid.grid-cols-3,
    .grid.grid-cols-4,
    .grid.grid-cols-5 {
        grid-template-columns: 1fr !important;
    }
}

/* ===== エージェント生成ページ向け補足クラス ===== */

/* ========================================================================
   サービスカード・リスト
   ======================================================================== */
.service-group {
    margin-bottom: 60px;
}

.service-group-tit {
    font-size: 22px;
    font-weight: 700;
    color: #005bac;
    padding: 12px 20px;
    background-color: #eefbff;
    border-radius: 12px;
    margin-bottom: 24px;
    border-left: 5px solid #005bac;
}

.service-link-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    list-style: none;
}

.service-link-item {
    transition: all .3s;
}


.service-item {
    background-color: #fff;
    border: 2px solid #c7e2ff;
    border-radius: 16px;
    overflow: hidden;
    transition: all .3s;
}

.service-item:hover {
    border-color: #005bac;
    opacity: 1;
}

.service-item-inner {
    padding: 0;
    height: 100%;
}

.service-img {
    width: 100%;
    overflow: hidden;
}

.service-txts {
    padding: 18px 20px 24px;
}

.service-title {
    font-size: 17px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.4;
    margin-bottom: 8px;
}

.service-card {
    background-color: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 91, 172, 0.08);
    border: 1px solid #c7e2ff;
    height: 100%;
}

@media (max-width: 1024px) {
    .service-link-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sec-2col-txt {
        flex: auto;
        width: 100%;
    }

    .service-group {
        width: 100%;
        margin-bottom: 0px;
    }

    .sec-own-cta .service-card:last-child {
        transform: translate(50%);
    }
}

@media (max-width: 599px) {
    .service-link-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================================================
   会社概要・ご挨拶
   ======================================================================== */
.sec-greeting {
    background-color: #eefbff;
}

.sec-company {
    background-color: #fff;
}

.sec-access {
    background-color: #fff;
}

.greeting-inner {
    display: block;
}

.greeting-img {
    width: 250px;
    margin: 0 30px 30px 0;

    float: left;
}

.gframe {
    width: 100%;
    padding: 5px;
    background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
    border-radius: 4px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
    display: inline-block;
    overflow: hidden;

}

.gframe-inner {
    /* 内側の額縁グラデーション（外側と明暗を逆にする） */
    padding: 15px;
    background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
    border: 4px solid #fcf6ba;
    /* 内側の明るい縁取り */
    border-radius: 2px;
}

.greeting-txt {
    font-size: 16px;
    line-height: 1.8;
    color: #444;
}

.greeting-name {
    margin-top: 20px;
    font-size: 15px;
    font-weight: 700;
    color: #005bac;
    text-align: right;
}


@media (max-width: 1024px) {
    .greeting-inner {
        flex-direction: column;
        gap: 30px;
    }

    .greeting-img {
        flex: 0 0 auto;
        width: 100%;
        max-width: 280px;
    }
}

.checker {
    border-radius: 3px;
    background-image: linear-gradient(45deg, #5ba9f712 25%, transparent 25%, transparent 50%, #5ba9f712 50%, #5ba9f712 75%, transparent 75%, transparent), linear-gradient(-45deg, #5ba9f712 25%, transparent 25%, transparent 50%, #5ba9f712 50%, #5ba9f712 75%, transparent 75%, transparent);
    background-color: #5ba9f70d;
    background-size: 20px 20px;
}

/* ========================================================================
   アワード（受賞歴）
   ======================================================================== */

.awd-title {
    font-size: 22px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 10px;
}

.awd-txt {
    font-size: 15px;
    line-height: 1.8;
    color: #444;
}

.awd-cont {
    display: flex;
    gap: 40px;
    align-items: center;
    flex-wrap: wrap;
}

.awd-img {
    flex: 0 0 auto;
    border-radius: 12px;
    overflow: hidden;
}

.prime .awd-item {
    background-color: #fff;
    padding: 1em;
    border: 5px solid;
    position: relative;
    z-index: 1;
    border-image: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%) 2;
}

/* ========================================================================
   効果・モデル・フォトカタリスト リスト（3〜4カラム）
   ======================================================================== */
.effect-list,
.model-list,
.photocatalyst-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    list-style: none;
}

.effect-item,
.model-item,
.photocatalyst-item {
    background-color: #eefbff;
    border-radius: 20px;
    overflow: hidden;
}

.effect-inner,
.model-inner,
.photocatalyst-inner {
    height: 100%;
}

.effect-num,
.model-num {
    background-color: #005bac;
    color: #fff;
    font-weight: 700;
    font-size: 16px;
    padding: 8px 16px;
    letter-spacing: .05em;
}

.effect-img,
.model-img,
.photocatalyst-img {
    width: 100%;
    overflow: hidden;
}

.effect-txts,
.model-txts,
.photocatalyst-txts {
    padding: 16px 18px 22px;
}

.effect-title,
.model-title,
.photocatalyst-title {
    font-size: 17px;
    font-weight: 700;
    color: #005bac;
    line-height: 1.4;
    margin-bottom: 8px;
}

@media (max-width: 1024px) {

    .effect-list,
    .model-list,
    .photocatalyst-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 599px) {

    .effect-list,
    .model-list,
    .photocatalyst-list {
        grid-template-columns: 1fr;
    }
}

/* ========================================================================
   コミットメント（こだわり）バリエーション
   ======================================================================== */
.commitment-num {
    background-color: #005bac;
    color: #fff;
    font-weight: 700;
    font-size: 22px;
    padding: .5em 1em .5em 2em;
    position: relative;
    line-height: 1.4em;
}

.commitment-num .numball {
    font-size: 18px;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #005bac;
    background-color: #fff;
    line-height: 1.5;
    border-radius: 50%;
    letter-spacing: -.1em;
    position: absolute;
    top: .7em;
    left: .5em;
}

.commitment-txt {
    display: flex;
    gap: 20px;
    font-size: 15px;
    line-height: 1.8;
    margin-top: 1em;
    color: #444;
    flex-wrap: wrap;
}

.midi-img {
    width: 30%;
    border-radius: 10px;
    overflow: hidden;
}

.commitment-txt .nm-txt {
    flex: 1;
}

/* ========================================================================
   フロー（ステップ）バリエーション
   ======================================================================== */
.flow-step {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    padding: 24px;
    background-color: #eefbff;
    border-radius: 16px;
    margin-bottom: 16px;
    position: relative;
}

.flow-step::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-left: 16px solid transparent;
    border-right: 16px solid transparent;
    border-top: 16px solid #c7e2ff;
    position: absolute;
    bottom: -16px;
    left: 50%;
    transform: translateX(-50%);
}

.flow-step:last-child::after {
    display: none;
}

.flow-step-num {
    width: 52px;
    height: 52px;
    background-color: #005bac;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Alegreya Sans", sans-serif;
    font-weight: 900;
    font-size: 22px;
    flex-shrink: 0;
}

.flow-tit {
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 6px;
    line-height: 1.4;
}

.flow-content {
    flex: 1;
}

.box-009 {
    margin: 30px auto 0 auto;
    border: 2px solid #005bac;
    border-radius: 5px;
    color: #333333;
}

.box-009 div {
    display: inline-flex;
    position: relative;
    top: -13px;
    left: 10px;
    margin: 0 7px;
    padding: 0 8px;
    background: #eefbff;
    color: #005bac;
    font-weight: 600;
    vertical-align: top;
    max-width: 90%;
}

.box-009 div::before {
    width: 15px;
    height: 7.5px;
    content: '✔';
    margin-right: 3px;
}

.box-009 p {
    margin: 0;
    padding: 0 1.5em 1em;
    font-size: 14px;
    font-weight: 500;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
}

.flow-txt a {
    color: #005bac;
    font-size: 1.2em;
    display: inline-block;
    text-decoration: underline;
    font-weight: 900;
}

/* ========================================================================
   FAQアコーディオン（BEM variant: faq-item__question / faq-item__answer）
   ======================================================================== */
.faq-item__question {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 30px 18px 20px;
    background-color: #fff;
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    position: relative;
    user-select: none;
}

.faq-item__question::after {
    content: "\f107";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #005bac;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    transition: transform .3s;
}

.faq-item.is-open .faq-item__question::after {
    transform: translateY(-50%) rotate(180deg);
}

.faq-item__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s ease, padding .3s ease;
    background-color: #eefbff;
    font-size: 15px;
    line-height: 1.9;
    color: #444;
}

.faq-item__answer-inner{
      padding: 18px 20px;
}
.faq-item.is-open .faq-item__answer {
    max-height: 10em;


}

/* ========================================================================
   お客様の声 カードリスト
   ======================================================================== */
.voice-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    list-style: none;
}

.voice-item {
    background-color: #fff;
    border: 1px solid #c7e2ff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 91, 172, 0.07);
}

.voice-inner {
    padding: 20px;
    height: 100%;
}

.voice-course {
    font-size: 12px;
    color: #005bac;
    background-color: #eefbff;
    padding: 3px 10px;
    border-radius: 20px;
    display: inline-block;
    margin-bottom: 10px;
    font-weight: 600;
}

.voice-result {
    font-size: 17px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.5;
    margin-bottom: 10px;
}

.voice-txt {
    font-size: 14px;
    line-height: 1.8;
    color: #555;
    margin-bottom: 12px;
}

.voice-profile {
    font-size: 13px;
    color: #888;
    border-top: 1px solid #c7e2ff;
    padding-top: 12px;
}

.voice-name {
    font-weight: 700;
    color: #005bac;
}

@media (max-width: 1024px) {
    .voice-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .midi-img {
        width: 100%;
        border-radius: 10px;
        overflow: hidden;
    }

    .commitment-txt .nm-txt {
        flex: 1;
    }

    .commitment-num {
        font-size: 18px;
    }

    .commitment-num .numball {
        font-size: 14px;
        width: 26px;
        height: 26px;
    }
}

@media (max-width: 599px) {
    .voice-list {
        grid-template-columns: 1fr;
    }

    .faq-item__question::after {
        right: 10px;
    }

}

/* ========================================================================
   料金表 詳細バリエーション
   ======================================================================== */

.price-block-tit {
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    background-color: #005bac;
    padding: 12px 20px;
    border-radius: 10px 10px 0 0;
}

.price-table-menu {
    width: 100%;
    border-collapse: collapse;
}

.price-table-menu th {
    background-color: #005bac;
    color: #fff;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.price-table-menu td {
    padding: 12px 16px;
    font-size: 14px;
    border-bottom: 1px solid #c7e2ff;
    vertical-align: middle;
}

.price-table-menu tr:nth-child(even) td {
    background-color: #eefbff;
}

.price-table-cleaning,
.price-table-price {
    width: 100%;
    border-collapse: collapse;
}

.price-table-cleaning th,
.price-table-price th {
    background-color: #005bac;
    color: #fff;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
}

.price-table-cleaning td,
.price-table-price td {
    padding: 12px 16px;
    font-size: 14px;
    border-bottom: 1px solid #c7e2ff;
    vertical-align: middle;
}

.price-table-cleaning tr:nth-child(even) td,
.price-table-price tr:nth-child(even) td {
    background-color: #eefbff;
}

.price-th-note {
    background-color: #005bac;
    color: #fff;
    font-size: 12px;
    padding: 8px 12px;
    font-weight: 600;
}

.price-link {
    text-align: center;
    margin-top: 16px;
}

.price-note-list {
    list-style: none;
    margin-top: 16px;
    padding: 16px 20px;
    background-color: #f9f9f9;
    border-radius: 10px;
}

.price-note-item {
    font-size: 13px;
    color: #666;
    line-height: 1.8;
}

.price-note-item::before {
    content: "※ ";
    color: #005bac;
}

/* ========================================================================
   詳細説明リスト（detail）
   ======================================================================== */
.detail-item {
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid #c7e2ff;
}

.detail-item:last-child {
    border-bottom: none;
}

.detail-inner {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.detail-title {
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 10px;
    line-height: 1.4;
}

.detail-sublist {
    list-style: none;
    margin-top: 12px;
}

.detail-subitem {
    font-size: 14px;
    color: #555;
    line-height: 1.8;
    padding: 4px 0;
    border-bottom: 1px dashed #c7e2ff;
}

/* ========================================================================
   カード（汎用）
   ======================================================================== */
.card-inner {
    height: 100%;
    background-color: #fff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #c7e2ff;
    box-shadow: 0 4px 16px rgba(0, 91, 172, 0.07);
}

.card-img {
    width: 100%;
    overflow: hidden;
}

.card-txt-wrap {
    padding: 18px 20px 24px;
}

.card-name {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.4;
    margin-bottom: 8px;
}

.card-link-wrap {
    margin-top: 16px;
}

/* ========================================================================
   CMS プレースホルダー
   ======================================================================== */
.cms-faq-placeholder,
.cms-popular-placeholder,
.cms-results-placeholder {
    min-height: 80px;
}

.cms-faq-wrap,
.cms-popular-wrap {
    min-height: 80px;
}

/* ========================================================================
   ページ MV バリエーション
   ======================================================================== */
.page-mv {
    position: relative;
    overflow: hidden;
    height: 280px;
}

.page-mv-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.page-mv-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: brightness(0.55);
}

.page-mv-txt {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 20px;
}

.page-mv-txt .eng {
    font-size: 18px;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: .15em;
    line-height: 1;
    margin-bottom: 8px;
}

.page-mv-title {
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.page-mv-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-height: 240px;
}

.page-mv-tit {
    font-size: 32px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.3;
}

.page-title-inner {
    text-align: center;
}

.page-title-main {
    font-size: 30px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.4;
}

@media (max-width: 1024px) {
    .page-mv {
        height: 220px;
    }

    .page-mv-title {
        font-size: 28px;
    }
}

@media (max-width: 599px) {
    .page-mv {
        height: 160px;
    }

    .page-mv-title {
        font-size: 22px;
    }

    .page-mv-tit,
    .page-title-main {
        font-size: 22px;
    }
}

/* ========================================================================
   About / ビジネス支援 共通 バリエーション
   ======================================================================== */
.about-list {
    list-style: none;
}

.about-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.about-num {
    width: 36px;
    height: 36px;
    background-color: #005bac;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-family: "Alegreya Sans", sans-serif;
    font-size: 18px;
    flex-shrink: 0;
}

.about-inner {
    display: flex;
    gap: 40px;
    align-items: center;
}

.about-img {
    flex: 0 0 40%;
    border-radius: 16px;
    overflow: hidden;
}

.about-txts {
    flex: 1;
}

.about-title {
    font-size: 20px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 12px;
    line-height: 1.4;
}

.about-note-item {
    font-size: 13px;
    color: #888;
    line-height: 1.8;
}

@media (max-width: 1024px) {
    .about-inner {
        flex-direction: column;
        gap: 24px;
    }

    .about-img {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* ========================================================================
   おすすめ / 推奨リスト
   ======================================================================== */
.recommend-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    list-style: none;
}

.recommend-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 18px;
    background-color: #eefbff;
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.7;
}

.recommend-item::before {
    content: "\f058";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #005bac;
    font-size: 20px;
    flex-shrink: 0;
    margin-top: 1px;
}

@media (max-width: 599px) {
    .recommend-list {
        grid-template-columns: 1fr;
    }
}



/* ========================================================================
   セクション背景色（エージェント生成ページ各種）
   ======================================================================== */
.sec-worry {
    background-color: #eefbff;
}

.sec-reason,
.sec-reasons {
    background-color: #fff;
}

.sec-merit {
    background-color: #eefbff;
}

.sec-model {
    background-color: #fff;
}

.sec-photocatalyst {
    background-color: #eefbff;
}

.sec-glass {
    background-color: #fff;
}

.sec-important {
    background-color: #eefbff;
}

.sec-cleaning {
    background-color: #fff;
}

.sec-service {
    background-color: #fff;
}

.sec-business {
    background-color: #eefbff;
}

.sec-faq {
    background-color: #fff;
}

.sec-popular {
    background-color: #eefbff;
}

.sec-limited {
    background-color: #fff;
}

.sec-cleaning-menu {
    background-color: #fff;
}

.sec-coating-menu {
    background-color: #eefbff;
}

.sec-water-coating-menu {
    background-color: #fff;
}

.sec-detail {
    background-color: #fff;
}

.sec-partner {
    background-color: #eefbff;
}

.sec-backoffice {
    background-color: #fff;
}

.sec-courses {
    background-color: #eefbff;
}

.sec-curriculum {
    background-color: #fff;
}

.sec-recommend {
    background-color: #eefbff;
}

.sec-mv-sub {
    background-color: #eefbff;
}

.sec-h3 {
    background-color: #fff;
}

/* ボーダー区切り画像 */
.bdr-img {
    width: 100%;
    overflow: hidden;
}

.bdr-img img {
    width: 100%;
    display: block;
}

/* nrm-txt ／ udb（下線太字） */
.nrm-txt {
    color: #444;
}

@media (max-width: 599px) {
    .nrm-txt {
        font-size: 14px;
    }
}

/* 料金テーブル行（エージェント生成版: price-row / price-name / price-val） */
.price-row {
    border-bottom: 1px solid #c7e2ff;
}

.price-row:nth-child(even) {
    background-color: #eefbff;
}

.price-name {
    padding: 14px 20px;
    font-size: 15px;
    vertical-align: middle;
    line-height: 1.6;
}

.price-val {
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 700;
    color: #005bac;
    white-space: nowrap;
    vertical-align: middle;
}

/* 注意事項ボックス */
.about-note {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 20px 24px;
    margin-top: 20px;
}

.note-txt {
    font-size: 13px;
    line-height: 1.9;
    color: #666;
}

/* 汎用セクション背景（エージェント生成ページ各種） */
.sec-fanclean,
.sec-effect,
.sec-window,
.sec-floor,
.sec-bathroom,
.sec-toilet,
.sec-vacant,
.sec-coating,
.sec-service-list {
    background-color: #fff;
}

.sec-fanclean:nth-of-type(even),
.sec-effect {
    background-color: #eefbff;
}

/* 2カラム テキスト+画像（ページ内汎用） */
.sec-2col-inner {
    display: flex;
    gap: 10px;
    align-items: center;
}

.sec-2col-inner.r {
    flex-direction: row-reverse;
}

.sec-2col-txt {
    flex: 1;
}

.sec-2col-img {
    flex: 0 0 36%;
    border-radius: 20px;
    overflow: hidden;
}

@media (max-width: 1024px) {

    .sec-2col-inner,
    .sec-2col-inner.r {
        flex-direction: column;
        gap: 30px;
    }

    .sec-2col-img {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* 会社概要・プロコートについて */
.sec-about-mv {
    background-color: #eefbff;
}

.sec-message {
    background-color: #fff;
}

.sec-company-info {
    background-color: #fff;
}

.sec-history {
    background-color: #eefbff;
}

.history-list {
    list-style: none;
    border-left: 3px solid #c7e2ff;
    padding-left: 30px;
}

.history-item {
    position: relative;
    padding-bottom: 30px;
    padding-left: 10px;
}

.history-item::before {
    content: "";
    width: 14px;
    height: 14px;
    background-color: #005bac;
    border-radius: 50%;
    position: absolute;
    left: -37px;
    top: 3px;
}

.history-year {
    font-family: "Alegreya Sans", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 4px;
}

.history-txt {
    font-size: 15px;
    line-height: 1.7;
    color: #444;
}

/* ビジネス支援・コンサルティング・スクール共通 */
.sec-business-mv {
    background-color: #fff;
}

.sec-curriculum {
    background-color: #fff;
}

.curriculum-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.curriculum-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 20px;
    background-color: #eefbff;
    border-radius: 12px;
}

.curriculum-num {
    width: 40px;
    height: 40px;
    background-color: #005bac;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-family: "Alegreya Sans", sans-serif;
    font-size: 18px;
    flex-shrink: 0;
}

.curriculum-cont {
    flex: 1;
}

.curriculum-title {
    font-size: 16px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 6px;
    line-height: 1.4;
}

/* 料金表ページ */
.sec-price-list {
    background-color: #fff;
}

.price-category {
    margin-bottom: 60px;
}

.price-cat-title {
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    background-color: #005bac;
    padding: 12px 20px;
    border-radius: 10px 10px 0 0;
    margin-bottom: 0;
}

/* 協力会社募集ページ */
.sec-partner-mv {
    background-color: #fff;
}

.sec-partner-info {
    background-color: #eefbff;
}

.sec-partner-flow {
    background-color: #fff;
}

/* 実績・一覧ページ共通 */
.sec-archive-header {
    background-color: #eefbff;
}

/* ニュース詳細専用 */
.sec-news-detail {
    background-color: #fff;
}

/* ========================================================================
   未定義クラス 一括補完
   ======================================================================== */

/* ===== worry-txt (悩みセクション) ===== */
.worry-txt {
    font-size: 17px;
    font-weight: 600;
    color: #1a1a2e;
    line-height: 1.6;
}

/* ===== page-mv-img (ページMVヒーロー画像) ===== */
.page-mv-img {
    border-radius: 20px;
    overflow: hidden;
    flex-shrink: 0;
}

/* ===== 対応エリアセクション (03business.html) ===== */
.area-wrap {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.area-block {
    background-color: #eefbff;
    border-radius: 16px;
    padding: 30px 36px;
}

.area-pref-tit {
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #c7e2ff;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
}

.area-list {
    font-size: 14px;
    line-height: 2.2;
    color: #333;
}

.area-map {
    border-radius: 20px;
    overflow: hidden;
}

/* ===== results-lead (累計実績 リードテキスト) ===== */
.results-lead {
    font-size: 15px;
    line-height: 2;
    color: #444;
}

/* ===== アクセスセクション (02about.html) ===== */
.access-inner {
    display: flex;
    gap: 48px;
    align-items: flex-start;
}

.access-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.access-dl {
    display: flex;
    gap: 16px;
    border-bottom: 1px solid #c7e2ff;
    padding-bottom: 16px;
}

.access-dl dt {
    font-weight: 700;
    color: #005bac;
    white-space: nowrap;
    min-width: 130px;
    font-size: 14px;
}

.access-dl dd {
    font-size: 14px;
    line-height: 1.8;
    color: #333;
}

.access-map {
    flex: 1;
    border-radius: 16px;
    overflow: hidden;
}

.access-map .map {
    height: 320px;
}

.access-map .map iframe {
    width: 100%;
    height: 100%;
}

/* ===== 会社概要テーブル (02about.html) ===== */
.company-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
    background-color: #fff;
}

.company-table th,
.company-table td {
    padding: 16px 20px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #c7e2ff;
    line-height: 1.7;
}

.company-table th {
    font-weight: 700;
    color: #005bac;
    background-color: #eefbff;
    white-space: nowrap;
    width: 220px;
}

.company-table td {
    color: #333;
}

/* ===== お支払情報 (04price.html) ===== */
.payment-list {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.payment-list .payment-item {
    flex: 1;
    min-width: 220px;
    background-color: #eefbff;
    border-radius: 16px;
    padding: 24px;
}

.payment-tit {
    font-size: 15px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 10px;
}

.payment-txt {
    font-size: 15px;
    color: #333;
    line-height: 1.7;
}

/* ===== 期間限定メニュー (04price.html) ===== */
.limited-wrap {
    background-color: #eefbff;
    border-radius: 16px;
    min-height: 120px;
    padding: 24px;
}

.limited-placeholder {
    color: #aaa;
    font-size: 14px;
    text-align: center;
    padding: 20px 0;
}

/* ===== 価格テーブル カラム幅 ===== */
.price-table-menu {
    text-align: left;
    width: 65%;
}

.price-table-price {
    text-align: right;
    width: 35%;
}

.price-table-coating {
    width: 100%;
    border-collapse: collapse;
}

/* ===== サービスカード一覧 (05service.html) ===== */
.service-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* ===== about-items (water-cleaning系ページ) ===== */
.about-items {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ===== service-items (12business-support.html) ===== */
.service-items {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ===== cta-ext-btn (外部リンクCTAボタン) ===== */
.cta-ext-btn {
    align-items: center;
    gap: 8px;
    background-color: #005bac;
    color: #fff;
    border-radius: 3em;
    padding: 14px 36px;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    transition: opacity .2s;
}

.cta-ext-btn:hover {
    opacity: 0.85;
}

/* ===== 講習・スクール コースセクション (14school.html) ===== */
.sec-courses-img {
    border-radius: 20px;
    overflow: hidden;
    width: 100%;
}

.course-list {
    list-style: none;
}

.course-item {
    list-style: none;
}

.course-inner {
    background-color: #eefbff;
    border-radius: 16px;
    padding: 28px 24px;
    height: 100%;
}

.course-title {
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    line-height: 1.4;
}

/* ===== 協力会社募集 (22partner.html) ===== */
.reason-list {
    list-style: none;
}

.detail-list {
    list-style: none;
}

.merit-list {
    list-style: none;
}

.merit-num {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    background-color: #005bac;
    border-radius: 3em;
    padding: 4px 14px;
    display: inline-block;
    margin-bottom: 12px;
}

/* ===== 実績詳細 (99results-detail.html) ===== */
.article-wrap {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.article-header {
    border-bottom: 2px solid #c7e2ff;
    padding-bottom: 20px;
}

.article-before-after {
    background-color: #eefbff;
    border-radius: 16px;
    padding: 30px;
    width: 100%;
}

.article-ba-imgs {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 20px;
}

.article-ba-item {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
    position: relative;
}

.article-ba-item .img {
    border-radius: 10px;
    overflow: hidden;
}

.article-ba-label {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    display: inline-block;
    padding: 4px 16px;
    border-radius: 100px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
}

.article-ba-label.before {
    background-color: #888;
}

.article-ba-label.after {
    background-color: #005bac;
}

.article-basic-info {
    background-color: #fff;
    border: 1px solid #c7e2ff;
    border-radius: 16px;
    padding: 24px 30px;
    margin: 30px 0 60px;
}

.article-basic-info-tit {
    font-size: 16px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 14px;
}

.article-basic-info-table {
    width: 100%;
    border-collapse: collapse;
}

.article-basic-info-table th,
.article-basic-info-table td {
    padding: 10px 16px;
    text-align: left;
    font-size: 14px;
    border-bottom: 1px solid #eefbff;
}

.article-basic-info-table th {
    width: 140px;
    color: #005bac;
    font-weight: 700;
    background-color: #eefbff;
}

.article-basic-info-table td {
    color: #444;
}

@media (max-width: 599px) {
    .article-ba-imgs {
        gap: 10px;
    }

    .article-basic-info {
        padding: 20px;
    }

    .article-basic-info-table th {
        width: 100px;
        font-size: 13px;
    }
}

.article-related {
    border-top: 1px solid #c7e2ff;
    padding-top: 40px;
}

.article-back-link {
    text-align: center;
}

.article-back-link a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #005bac;
    font-weight: 700;
    text-decoration: none;
    font-size: 15px;
}

/* ===== breadcrumb-item (99results-detail.html) ===== */
.breadcrumb-item>a {
    color: #005bac;
}

/* ===== セクション背景色 追加 ===== */
.sec-area {
    background-color: #fff;
}

.sec-about {
    background-color: #eefbff;
}

.sec-news {
    background-color: #fff;
}

.sec-voice {
    background-color: #fff;
}

.sec-merit {
    background-color: #eefbff;
}


/* ========================================================================
   追加レスポンシブ (max-width: 1024px)
   ======================================================================== */
@media (max-width: 1024px) {
    .service-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .access-inner {
        flex-direction: column;
        gap: 30px;
    }

    .payment-list {
        flex-direction: column;
    }

    .course-title {
        font-size: 16px;
    }

    .company-table th {
        width: 160px;
    }

    header {
        position: fixed;
    }
}

[data-element-id] header {
    position: relative !important;
}

/* ========================================================================
   追加レスポンシブ (max-width: 599px)
   ======================================================================== */
@media (max-width: 599px) {

    .company-table th,
    .company-table td {
        padding: 12px 14px;
        display: block;
        width: 100%;
    }

    .company-table th {
        border-bottom: none;
        padding-bottom: 4px;
    }

    .service-cards {
        grid-template-columns: 1fr;
    }

    .area-block {
        padding: 20px;
    }

    .area-pref-tit {
        font-size: 16px;
    }

    .payment-list .payment-item {
        min-width: 100%;
    }

    .access-dl {
        flex-direction: column;
        gap: 6px;
    }

    .access-dl dt {
        min-width: auto;
    }

    .course-inner {
        padding: 20px 18px;
    }

    .price-table-menu {
        width: 55%;
    }

    .price-table-price {
        width: 45%;
    }
}








.deco_02 {
    width: 200px;
    height: 200px;
    position: absolute;
    top: -20%;
    right: -30vw;
    z-index: 1;
}

.imgdc {
    position: relative;
}

.imgdc .deco_02 {
    right: -100px;
    top: -100px;
}

.deco_02.mk2 {
    width: 250px;
    height: 250px;
    right: auto;
    left: -250px;
}

.deco_02.mk3 {
    width: 300px;
    height: 300px;
}

.deco_02.mk4 {
    right: 0;
}

.deco_02.mk5 {
    right: 75%;
    bottom: 35%;
    top: auto;
    width: 300px;
    height: 300px;
}

.deco_02 .deco-move>span.contex {
    font-size: 20px;
    color: #00468c;
    position: absolute;
    bottom: 100%;
    right: -20%;
    transform: rotate(10deg);
}

.deco-move {
    width: 100%;
    height: 100%;
    position: relative;
}

.deco-move>img {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: contain;
    object-position: center;
}

.deco-move>img:nth-child(1) {
    animation: op-img-flip 1s linear 0s infinite;
}

.deco-move>img:nth-child(2) {
    animation: op-img-flip 1s linear -0.5s infinite;
}

.hop>* {
    animation: bound 2s infinite;
}

.bonus-center span.contex {
    font-size: 14px;
    color: #00468c;
    position: absolute;
    bottom: 100%;
    left: 30%;
    transform: rotate(10deg);
    display: flex;
    align-items: center;
    white-space: nowrap;
    text-shadow: rgb(255, 255, 255) 1px 1px 0px,
        rgb(255, 255, 255) -1px -1px 0px,
        rgb(255, 255, 255) -1px 1px 0px,
        rgb(255, 255, 255) 1px -1px 0px,
        rgb(255, 255, 255) 0px 1px 0px,
        rgb(255, 255, 255) 0px -1px 0px,
        rgb(255, 255, 255) -1px 0px 0px,
        rgb(255, 255, 255) 1px 0px 0px;
}

.bonus-center span.contex>span {
    font-size: 2em;
    margin: 0 5px;
}

@keyframes bound {
    0% {
        transform: translateY(0)
    }

    5% {
        transform: translateY(0)
    }

    10% {
        transform: translateY(0)
    }

    20% {
        transform: translateY(-10%)
    }

    25% {
        transform: translateY(0)
    }

    30% {
        transform: translateY(-6%)
    }

    35% {
        transform: translateY(0)
    }

    100% {
        transform: translateY(0)
    }
}

.deco_03 {
    width: 200px;
    position: absolute;
    top: -20%;
    right: 10%;
    z-index: 1;
}

.deco_03.mk2 {
    width: 250px;
    top: -10%;
}

.deco-shell {
    width: 100%;
    height: 100%;
    position: relative;
}

.deco-shell>img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.deco_02.mk5 .deco-shell>span.contex {
    font-size: 16px;
    color: #00468c;
    position: absolute;
    bottom: 90%;
    right: -10%;
    transform: rotate(10deg);
    white-space: nowrap;
}

.block-layout02 .block-img {
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

@media(max-width:1024px) {
    .ttl .eng {
        font-size: 16px;
    }

    .title-set01 .main-tit {
        font-size: 26px;
    }

    .cards01 {
        gap: 20px 20px;
    }

    .cards01>li:last-child {
        transform: translateX(50%);
    }

    .card-title01 {
        font-size: 18px;
    }

    .title-set01 .deco {
        width: 80px;
        height: 80px;
        right: -70px;
    }

    .block-layout01 .block {
        flex-wrap: wrap;
        width: 96%;
        max-width: 768px;
        margin-left: auto;
        margin-right: auto;
        justify-content: flex-start;
    }

    .block-layout01.r .block {
        flex-direction: column;
    }

    .block-layout01 .block .sp-conted {
        padding: 0;
        display: contents;
    }

    .cards02 {
        gap: 20px 20px;
    }

    .deco_02 {
        width: 150px;
        height: 150px;
    }

    .block-layout02 {
        flex-wrap: wrap;
    }

    .deco_02.mk2 {
        top: -130px;
        width: 180px;
        height: 180px;
        left: -100px;
    }

    .block-layout02 .block {
        width: 100%;
        margin-bottom: 30px;
    }

    .block-layout02 .cards02,
    .block-layout02 .youtube-box {
        width: 100%;
    }

    .deco_02.mk3 {
        width: 180px;
        height: 180px;
        top: -200%;
        right: -30%;
    }

    .awd-item {
        position: relative;
    }

    .awd-left-imgs {
        width: 100%;
        text-align: left;
    }

    .awd-cont {
        width: 100%;
        margin-top: 20px;
    }

    .awd-left-imgs .wk {
        margin: 0;
        width: 100px;
        position: absolute;
        right: 0;
        top: 0;
    }

    .ribon {
        font-size: 20px;
    }

    .ribon-main {
        padding: .7em;
        width: 100%;
        font-size: 24px;
        border-radius: 20px;
    }

    .campaign-cards {
        gap: 10px 10px;
    }

    .campaign-card {
        padding: 2em .5em;
    }

    .campaign-card-name {
        font-size: 20px;
        margin-bottom: 14px;
        padding-left: 30px;
    }

    .campaign-card-name::before {
        font-size: 25px;
        transform: translateY(-55%);
    }

    .campaign-card-regular {
        font-size: 16px;
        gap: 2px;
    }

    .campaign-card-sale-num {
        font-size: 50px;
        letter-spacing: -.05em;
    }

    .campaign-card-note {
        font-size: 12px;
    }

    .deco_02.mk4 {
        right: 0;
        width: 120px;
        height: 120px;
        top: -100%;
    }

    .campaign-bonus {
        padding: 1em;
    }


    .bonus-center {
        flex-wrap: wrap;
        gap: 30px 0;
    }

    .bonus-center>div {
        width: 100%;
    }

    .title-set01 .deco.mk2 {
        width: 200px;
        height: 200px;
    }

    .deco_02.mk5 {
        right: 60%;
        bottom: 80%;
        width: 200px;
        height: 200px;
    }

    .deco_02.mk5 .deco-shell>span.contex {
        bottom: 95%;
    }

    .loop-wrap div {
        font-size: 100px;
    }

    .deco_03 {
        width: 150px;
        position: absolute;
        top: 30%;
        right: 0%;
        z-index: 0;
        opacity: .5;
    }

    .block-layout01 .block-title01,
    .block-layout01 .nm-txt {
        position: relative;
        z-index: 1;
    }

    .block-layout02 .block-img {
        width: 100%;
    }

}


@media(max-width:599px) {
    .campaign-bonus-lead {
        font-size: 16px;
        font-weight: 700;
        color: #005bac;
        line-height: 1em;
        margin: 10px 0 5px 0;
    }

    .campaign-bonus-price {
        gap: 1px;
    }

    .campaign-bonus-price-num {
        font-size: 45px;
    }

    .campaign-bonus-off {
        font-size: 20px;
        letter-spacing: -.02em;
    }

    .title-set01 .main-tit {
        font-size: 22px;
    }

    .title-set01 .deco {
        width: 80px;
        height: 80px;
        right: 0;
        top: -30px;
    }

    .card-txts {
        padding: 10px;
    }

    .cards01>li:last-child {
        transform: translateX(0%);
    }

    .deco_02 {
        width: 100px;
        height: 100px;
    }

    .deco_02 .deco-move>span.contex {
        font-size: 14px;
        white-space: nowrap;
    }

    .block-title01 {
        font-size: 18px;
    }

    .nm-txt {
        font-size: 15px;
        line-height: 1.6em;
        text-shadow: 1px 1px 0 #FFF,
            -1px -1px 0 #FFF,
            -1px 1px 0 #FFF,
            1px -1px 0 #FFF,
            0px 1px 0 #FFF,
            0 -1px 0 #FFF,
            -1px 0 0 #FFF,
            1px 0 0 #FFF;
    }

    .card-title02 {
        font-size: 18px;
    }

    .cards02 .nrm-txt {
        text-align: center;
    }

    .deco_02.mk2 {
        top: -70px;
        left: -0;
        width: 100px;
        height: 100px;
    }

    .block-layout02 .block {
        margin-bottom: 10px;
    }


    .deco_02.mk3 {
        width: 120px;
        height: 120px;
        top: -200%;
        right: -10%;
    }

    .awd-title {
        font-size: 18px;
    }

    .awd-title-box {
        text-align: center;
    }

    .awd-img .nrm-txt {
        font-size: 12px;
    }

    .awd-cont {
        margin-top: 0px;
    }

    .awd-left-imgs .wk {
        width: 70px;
    }

    .udb>li {
        padding: .8em 0;
    }

    .point-list li {
        font-size: 14px;
        color: #666;
    }

    .sec-campaign {
        padding: 60px 0;
    }

    .deco_02.mk4 {
        top: -70%;
    }

    .ribon {
        font-size: 18px;
    }

    .ribon-main {
        padding: .8em .3em;
        font-size: 20px;
    }

    .campaign-card {
        padding: 1em .5em;
    }

    .bonus-center span.contex {
        bottom: 101%;
        left: 50%;
        transform: rotate(0deg) translateX(-50%);
    }

    .awd-left-imgs .grid.grid-cols-2 {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 5px;
        margin-bottom: 10px;
    }

    .rolal {
        display: block;
        height: 155px;
        width: 60px;
    }

    .title-set01 .deco.mk2 {
        width: 100px;
        height: 100px;
        right: -120px;
    }

    .deco_02.mk5 {
        right: 70%;
        bottom: 85%;
        width: 120px;
        height: 120px;
    }

    .deco_02.mk5 .deco-shell>span.contex {
        bottom: 96%;
        font-size: 11px;
        right: -50%;
    }

    .contact-info {
        font-weight: 600;
        line-height: 1.8em;
    }

    .contact-cta {
        font-size: 16px;
        padding: .3em 0;
    }

    .contact-num>a:before {
        width: 30px;
        height: 30px;
    }

    .footer-logo img {
        margin: 0 auto;
    }

    .footer-top-inner {
        gap: 10px;
    }

    .footer-area-tit {
        font-weight: bold;
    }



}

/* ========================================================================
   下層ページ 未定義クラス補完・グリッドレスポンシブ修正
   ======================================================================== */

/* --- merit-item (.merits-list / .merit-list の li 要素) --- */
.merit-item {
    position: relative;
}

/* --- .form（CMS フォームコンテナ） --- */
.form {
    background-color: #fff;
}

/* --- .mailto（メールアドレス表示 span） --- */
.mailto {
    color: #005bac;
    cursor: text;
}

/* ========================================================================
   about-list グリッドレイアウト時のカード化
   ======================================================================== */
.about-list.grid .about-item {
    display: block;
    margin-bottom: 0;
}

.about-list.grid .about-inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0;
    background-color: #eefbff;
    border-radius: 20px;
    overflow: hidden;
    height: 100%;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
}

.about-list.grid .about-num {
    width: auto;
    height: auto;
    background-color: #005bac;
    color: #fff;
    font-weight: 700;
    font-size: 16px;
    padding: 8px 16px;
    border-radius: 0;
    display: block;
    font-family: "Alegreya Sans", sans-serif;
    letter-spacing: .05em;
}

.about-list.grid .about-img {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    border-radius: 0;
    width: 100%;
    overflow: hidden;
}

.about-list.grid .about-txts {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    padding: 16px 18px 22px;
}

/* ========================================================================
   グリッドリスト レスポンシブ補完（3カラム → 2カラム at tablet/mobile）
   ======================================================================== */
@media (max-width: 1024px) {

    /* about-list / reason-list / merit-list / detail-list の 3col グリッドを 2col に */
    .about-list.grid,
    .reason-list.grid,
    .merit-list.grid,
    .detail-list.grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* reasons-list / merits-list の既存 1col → 2col に上書き */
    .reasons-list.grid,
    .merits-list.grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .sv .merits-list.grid {
        grid-template-columns: repeat(1, 1fr) !important;
    }
}

@media (max-width: 599px) {

    .about-list.grid,
    .reason-list.grid,
    .merit-list.grid,
    .detail-list.grid,
    .reasons-list.grid,
    .merits-list.grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ========================================================================
   03business.html (.wrapper.business) 専用 CSS 補完
   ======================================================================== */

/* --- ページMV: 背景・レイアウト --- */
.business .page-mv {
    background-color: #eefbff;
}

.business .page-mv-inner {
    padding: 0 40px;
    gap: 48px;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    height: 280px;
}

.business .page-mv-tit {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
}

.business .page-mv-img {
    width: 360px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
}

/* --- こだわりリスト: 縦積み + カード内パディング --- */
.business .commitment-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 24px;
}

.business .commitment-tit {
    padding: 20px 24px 10px;
}

.business .commitment-txt {
    padding: 0 24px 24px;
}

/* --- フロー: 縦積みレイアウト --- */
.business .flow-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    gap: 0;
}

.business .flow-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: flex-start;
    -ms-flex-align: flex-start;
    align-items: flex-start;
    gap: 28px;
    text-align: left;
    padding: 28px 32px;
    background-color: #eefbff;
    border-radius: 16px;
    margin-bottom: 32px;
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    min-width: 0;
    position: relative;
}

/* 横矢印を縦矢印に変更 */
.business .flow-item::after {
    content: "";
    position: absolute;
    bottom: -22px;
    left: 50%;
    right: auto;
    top: auto;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-top: 13px solid #c7e2ff;
    border-left: 13px solid transparent;
    border-right: 13px solid transparent;
    border-bottom: none;
    z-index: 1;
}

/* flow-step のボックス装飾を除去してバッジ専用コンテナに */
.business .flow-step {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    background: none;
    padding: 0;
    border-radius: 0;
    margin-bottom: 0;
    gap: 0;
}

.business .flow-step::after {
    display: none;
}

/* 円形STEPバッジ */
.business .flow-step-num {
    width: 68px;
    height: 68px;
    background-color: #005bac;
    color: #fff;
    border-radius: 50%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-family: "Alegreya Sans", sans-serif;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .08em;
    line-height: 1;
    gap: 2px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
}

.business .flow-num {
    font-size: 26px;
    font-weight: 900;
    color: #fff;
    line-height: 1;
    margin-bottom: 0;
}

.business .flow-content {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
}

.business .flow-tit {
    font-size: 20px;
    font-weight: 700;
    color: #005bac;
    margin-bottom: 10px;
    line-height: 1.4;
}

.business .flow-txt {
    color: #444;
    font-weight: 500;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
}

/* --- レスポンシブ対応 --- */
@media (max-width: 1024px) {
    .business .page-mv-inner {
        padding: 0 28px;
        gap: 32px;
        height: 220px;
    }

    .business .page-mv-img {
        width: 240px;
    }

    .business .flow-item {
        padding: 22px 24px;
        gap: 20px;
        margin-bottom: 26px;
    }

    .business .flow-step-num {
        width: 58px;
        height: 58px;
    }

    .business .flow-num {
        font-size: 22px;
    }
}

@media (max-width: 599px) {
    .business .page-mv-inner {
        padding: 0 16px;
        gap: 16px;
        height: 160px;
    }

    .business .page-mv-tit {
        font-size: 18px;
    }

    .business .page-mv-img {
        width: 130px;
    }

    .business .commitment-tit {
        padding: 14px 16px 8px;
    }

    .business .commitment-txt {
        padding: 0 16px 18px;

    }

    .business .flow-item {
        flex-direction: column;
        align-items: center;
        padding: 18px 18px;
        gap: 14px;
        margin-bottom: 20px;
    }

    .business .flow-step-num {
        width: 50px;
        height: 50px;
        font-size: 10px;
    }

    .business .flow-num {
        font-size: 20px;
    }

    .business .flow-tit {
        text-align: center;
    }


    .grid.grid-cols-2.neww-list,
    .grid.grid-cols-3.neww-list,
    .grid.grid-cols-4.neww-list,
    .grid.grid-cols-5.neww-list {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 5px;
    }

    .neww-list .card-txt-wrap {
        padding: 10px 5px 15px;
    }

    .imgdc .deco_02 {
        right: 0px;
        top: -300px;
    }

    .business .flow-txt {
        font-size: 14px;
    }

}

/* ========================================================================
   03business.html 追加補完（2次）
   ======================================================================== */

/* --- ページMV画像: ofi-100のaspect-ratio高さ排除・固定高さに --- */
.business .page-mv-img {
    height: 240px;
}

.business .page-mv-img::after {
    display: none;
}

/* --- お悩みリスト: セクション背景と同色問題・二重プレフィックス解消 --- */
.business .worry-item {
    background-color: #fff;
    box-shadow: 0 2px 8px rgba(0, 91, 172, 0.5);
}

.business .worry-item::before {
    display: none;
}

/* --- 対応エリアマップ: ofi-autoは高さ未定義のため固定比率で補完 --- */
.business .area-map .ofi-auto {
    padding-top: 56.25%;
}

/* --- サービスリンクアイテム: anchor未定義補完（全ページ共通） --- */
.service-link-item a {
    display: block;
    padding: .7em;
    font-size: 16px;
    font-weight: 600;
    color: #005bac;
    text-decoration: none;
    line-height: 1.4;
    transition: color .3s;
    background-color: #fff;
    box-shadow: 0 5px 0 #005bac;
    background-color: #fff;
    border: 2px solid #c7e2ff;
    border-radius: 16px;
}

.service-link-item a:hover {
    opacity: 1;
    box-shadow: none;
    transform: translateY(5px);
}

@media (max-width: 599px) {
    .business .page-mv-img {
        height: 130px;
    }

    .business .area-map .ofi-auto {
        padding-top: 66.66%;
    }
}

@media(max-width:1024px) {

    .access-info {
        flex: auto;
        width: 100%;
    }

    .access-map {
        flex: auto;
        width: 100%;
    }
}

.sp-br {
    display: none;
}

@media(max-width:599px) {
    .title-set01 .deco.mk10 {
        right: -80px;
        top: 0px;
    }

    .title-set01 .deco.mk11 {
        right: -50px;
        top: -10px;
    }

    .tight {
        letter-spacing: -.08em;
    }

    .greeting-img {
        margin: 0 auto 15px auto;
        float: none;
    }

    .prime .awd-item {
        padding: 1em 10px;
    }

    .prime .awd-title {
        font-size: 20px;
        padding: 0 0 .5em 0;
        letter-spacing: -.05em;
        width: 100%;
    }

    .prime .awd-title::after {
        display: none
    }

    .prime .awd-title::before {
        display: none
    }

    .sp-br {
        display: block;
    }
}

/* article-item内の<a>にレイアウトを移譲（<a>へのclass付与禁止のため） */
.article-item>a {
    display: flex;
    align-items: center;
    gap: 20px;
    width: 100%;
}

@media (max-width: 599px) {
    .article-item>a {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}

/* CMS管理画面（見たまま編集）でのコンテナ構造対策 */
[data-element-id].voice-grid {
    display: block;
}

[data-element-id].voice-grid>div {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* FAQ質問文の折り返しがQの下に回り込むのを防ぐ（Qラベルと文章を別要素化） */
.faq-item__q {
    flex-shrink: 0;
    color: #005bac;
    font-size: 18px;
    font-weight: 900;
}

.faq-item__q-txt {
    flex: 1;
}

/* お客様の声カードを実績カードと区別するための引用者情報 */
.voice-card-reviewer {
    margin-top: 8px;
    font-size: 12px;
    color: #888;
    text-align: right;
}

.voice-card-reviewer::before {
    content: "— ";
}

.sv .price-link {
    display: none;
}

.sv .results-card:nth-child(4) {
    display: none;
}

.sv cms-voice-wrap:nth-child(4) {
    display: none;
}

@media(max-width:1024px) {

    .results-card:nth-child(4),
    .sv cms-voice-wrap:nth-child(4) {
        display: list-item;
    }

}

@media(max-width:599px) {
    .box-009 p {
        margin: 0;
        padding: 0 .5em 1em;
    }

    .commitment-txts {
        padding: 20px 10px;
    }

    .merit-txts {
        padding: 16px 10px 16px;
    }

    .price-note {
        padding: 10px 10px 10px 20px;
    }
}

/* ===== sec-lineup（05service.html）目的別サービスラインナップ：円周配置 ===== */
.sec-lineup .lineup-wheel {
    position: relative;
    width: 100%;
    max-width: 640px;
    max-width: min(640px, calc(100% - 460px));
    aspect-ratio: 1 / 1;
    margin: 0 auto;
}

.sec-lineup .lineup-wheel-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.sec-lineup .lineup-wheel-svg line {
    stroke: #a8d4ec;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-dasharray: .5 7;
    vector-effect: non-scaling-stroke;
}

.sec-lineup .lineup-node-list {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.sec-lineup .lineup-node {
    position: absolute;
    width: 0;
    height: 0;
}

.sec-lineup .lineup-node:nth-child(1) {
    left: 29%;
    top: 13.6%;
}

.sec-lineup .lineup-node:nth-child(2) {
    left: 10.5%;
    top: 35.6%;
}

.sec-lineup .lineup-node:nth-child(3) {
    left: 10.5%;
    top: 64.4%;
}

.sec-lineup .lineup-node:nth-child(4) {
    left: 29%;
    top: 86.4%;
}

.sec-lineup .lineup-node:nth-child(5) {
    left: 71%;
    top: 13.6%;
}

.sec-lineup .lineup-node:nth-child(6) {
    left: 89.5%;
    top: 35.6%;
}

.sec-lineup .lineup-node:nth-child(7) {
    left: 89.5%;
    top: 64.4%;
}

.sec-lineup .lineup-node:nth-child(8) {
    left: 71%;
    top: 86.4%;
}

.sec-lineup .lineup-node-icon {
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-image: -webkit-linear-gradient(135deg, #eefbff 0%, #d7ecfb 100%);
    background-image: linear-gradient(315deg, #eefbff 0%, #d7ecfb 100%);
    color: #005bac;
    font-size: 25px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-shadow: 0 0 0 6px rgba(0, 91, 172, .06), 0 8px 18px rgba(0, 91, 172, .18);
    box-shadow: 0 0 0 6px rgba(0, 91, 172, .06), 0 8px 18px rgba(0, 91, 172, .18);
    z-index: 2;
    -webkit-transition: -webkit-transform .25s ease;
    transition: transform .25s ease;
}

.sec-lineup .lineup-node:hover .lineup-node-icon {
    -webkit-transform: translate(-50%, -50%) scale(1.06);
    transform: translate(-50%, -50%) scale(1.06);
}

.sec-lineup .lineup-num {
    position: absolute;
    top: -4px;
    left: -4px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: #005bac;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-shadow: 0 0 0 3px #fff, 0 2px 6px rgba(0, 91, 172, .3);
    box-shadow: 0 0 0 3px #fff, 0 2px 6px rgba(0, 91, 172, .3);
    z-index: 3;
}

.sec-lineup .lineup-node-label {
    position: absolute;
    top: 0;
    width: 220px;
    background-color: #d7ecfb;
    padding: 1em 1em;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    border-radius: 1em;
}

.sec-lineup .lineup-node-label a {
    display: block;
    text-decoration: none;
    color: inherit;
    width: 100%;
}

.sec-lineup .lineup-node:nth-child(-n+4) .lineup-node-label {
    right: 44px;
    text-align: center;
}

.sec-lineup .lineup-node:nth-child(n+5) .lineup-node-label {
    left: 44px;
    text-align: center;
}

.sec-lineup .lineup-name {
    font-size: 18px;
    font-weight: 700;
    color: #14213d;
    line-height: 1.35;
    -webkit-transition: color .2s ease;
    transition: color .2s ease;
    color: #005bac;
    text-shadow: 1px 1px 0 #FFF,
        -1px -1px 0 #FFF,
        -1px 1px 0 #FFF,
        1px -1px 0 #FFF,
        0px 1px 0 #FFF,
        0 -1px 0 #FFF,
        -1px 0 0 #FFF,
        1px 0 0 #FFF;
    border-bottom: 2px dashed #005bac;
}

.sec-lineup .lineup-node:hover .lineup-name {
    color: #005bac;
}

.sec-lineup .lineup-desc {
    font-size: 12px;
    color: #8a94a3;
    line-height: 1.5;
    margin-top: 3px;
}

.sec-lineup .lineup-center {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 2;
}

.sec-lineup .lineup-center::before {
    content: "";
    position: absolute;
    inset: -14px;
    border-radius: 50%;
    border: 1px dashed #bfe0f4;
}

.sec-lineup .lineup-center-inner {
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background-image: -webkit-linear-gradient(315deg, #ffffff 0%, #f2f9ff 100%);
    background-image: linear-gradient(135deg, #ffffff 0%, #f2f9ff 100%);
    -webkit-box-shadow: 0 0 0 10px rgba(0, 91, 172, .05), 0 16px 40px rgba(0, 91, 172, .22);
    box-shadow: 0 0 0 10px rgba(0, 91, 172, .05), 0 16px 40px rgba(0, 91, 172, .22);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
    position: relative;
    z-index: 1;
}

.sec-lineup .lineup-center-icon {
    color: #005bac;
    font-size: 24px;
    margin-bottom: 10px;
}

.sec-lineup .lineup-center-icon .fa-sparkles {
    color: #ebb400;
}

.sec-lineup .lineup-center-name {
    font-family: "Alegreya Sans", sans-serif;
    font-weight: 700;
    font-size: 26px;
    letter-spacing: .08em;
    color: #005bac;
    margin-bottom: 10px;
}

.sec-lineup .lineup-center-txt {
    font-size: 13px;
    color: #444;
    line-height: 1.7;
}

.sec-lineup .lineup-btn-wrap {
    margin-top: 60px;
}

@media (max-width: 1024px) {
    .sec-lineup .lineup-wheel {
        max-width: 520px;
        max-width: min(520px, calc(100% - 420px));
    }

    .sec-lineup .lineup-node-icon {
        width: 52px;
        height: 52px;
        font-size: 20px;
    }

    .sec-lineup .lineup-node-label {
        width: 170px;
        padding: .5em;
    }

    .sec-lineup .lineup-node:nth-child(-n+4) .lineup-node-label {
        right: 36px;
    }

    .sec-lineup .lineup-node:nth-child(n+5) .lineup-node-label {
        left: 36px;
    }

    .sec-lineup .lineup-name {
        border-bottom: none;
    }

    .sec-lineup .lineup-desc {
        font-size: 11px;
    }

    .sec-lineup .lineup-center::before {
        inset: -10px;
    }

    .sec-lineup .lineup-center-inner {
        width: 170px;
        height: 170px;
        padding: 14px;
    }

    .sec-lineup .lineup-center-icon {
        font-size: 20px;
        margin-bottom: 6px;
    }

    .sec-lineup .lineup-center-name {
        font-size: 19px;
        margin-bottom: 6px;
    }

    .sec-lineup .lineup-center-txt {
        font-size: 12px;
    }

    .sec-lineup .lineup-btn-wrap {
        margin-top: 40px;
    }
}

@media (max-width: 820px) {
    .sec-lineup .lineup-wheel {
        max-width: 100%;
        aspect-ratio: auto;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 14px;
    }

    .sec-lineup .lineup-wheel-svg {
        display: none;
    }

    .sec-lineup .lineup-center {
        position: static;
        -webkit-transform: none;
        transform: none;
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        margin: 0 auto 6px;
    }

    .sec-lineup .lineup-center::before {
        display: none;
    }

    .sec-lineup .lineup-node-list {
        position: static;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 14px;
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }

    .sec-lineup .lineup-node {
        position: static;
        width: auto;
        height: auto;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        background-color: #fff;
        border-radius: 100px;
        padding: 8px 20px 8px 8px;
        -webkit-box-shadow: 0 4px 14px rgba(0, 91, 172, .1);
        box-shadow: 0 4px 14px rgba(0, 91, 172, .1);
    }

    .sec-lineup .lineup-node-icon {
        position: relative;
        top: auto;
        left: auto;
        -webkit-transform: none;
        transform: none;
        margin-right: 14px;
        -ms-flex-negative: 0;
        flex-shrink: 0;
    }

    .sec-lineup .lineup-node-label {
        position: static;
        width: auto;
        -webkit-transform: none;
        transform: none;
        background-color: transparent;
        width: 100%;
    }

    .sec-lineup .lineup-node:nth-child(-n+8) .lineup-node-label {
        text-align: left;
    }
}

/* ===== カテゴリーリスト（一覧・詳細共通） ===== */
.content-list-side .category-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px;
    list-style: none;
    margin-left: 40px;
    padding: 0;
}

.category-list+.category-list {
    margin-top: 30px;
}

.category-list .category-list-item a {
    display: inline-block;
    padding: 8px 10px;
    border: 1px solid #005bac;
    border-radius: 100px;
    color: #005bac;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    -webkit-transition: background-color .25s ease, color .25s ease;
    transition: background-color .25s ease, color .25s ease;
}

.category-list-item a:hover {
    background-color: #005bac;
    color: #fff;
}

.content-list-side .category-list-item-all a {
    background-color: #005bac;
    color: #fff;
}

@media (max-width: 599px) {
    .category-list {
        gap: 8px;
        margin-bottom: 30px;
    }

    .category-list-item {
        width: 48%;
    }


    .category-list-item a {
        padding: 6px 16px;
        font-size: 13px;
        width: 100%;
        text-align: center;
    }

}

/* ===== ページネーション（一覧ページ共通・固定HTML） ===== */
.pagination {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 8px;
    list-style: none;
    margin: 60px 0 0;
    padding: 0;
}

.pagination-item a,
.pagination-item span {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: #005bac;
    font-size: 14px;
    text-decoration: none;
    -webkit-transition: background-color .25s ease, color .25s ease;
    transition: background-color .25s ease, color .25s ease;
}

.pagination-item a:hover {
    background-color: #eefbff;
}

.pagination-item-current span {
    background-color: #005bac;
    color: #fff;
    font-weight: 700;
}

.pagination-item-prev a,
.pagination-item-next a {
    border: 1px solid #c7e2ff;
}

.pagination-item-prev a::before {
    content: "\f104";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.pagination-item-next a::before {
    content: "\f105";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.deco.mk7 {
    position: absolute;
    top: -150px;
    right: -350px;
    width: 300px;
    height: 300px;
    transform: translateY(0);
}

@media(Max-width:1024px) {
    .deco.mk7 {
        top: -100px;
        right: -210px;
        width: 200px;
        height: 200px;
    }
}

.ball-img {
    border-radius: 50%;
    overflow: hidden;
    width: 70%;
    margin: 0 auto;
}

@media (max-width: 599px) {
    .pagination {
        margin-top: 40px;
        gap: 6px;
    }

    .pagination-item a,
    .pagination-item span {
        width: 34px;
        height: 34px;
        font-size: 13px;
    }

    .deco.mk7 {
        top: -80px;
        right: -0px;
        width: 100px;
        height: 100px;
    }
}

/* ===== 関連記事・関連実績・関連する声（レコメンド） ===== */
.sec-related {
    background-color: #eefbff;
}

/* ===== ニュース・ブログ一覧：カテゴリーリストをサイドに配置 ===== */
.content-list-layout {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 50px;
}

.content-list-main {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
}

.content-list-side {
    width: 220px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
}

.content-list-side .category-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    margin-bottom: 0;
}

.content-list-side .category-list-item a {
    display: block;
    text-align: center;
}

@media (max-width: 1024px) {
    .content-list-layout {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
        gap: 20px;
    }

    .content-list-side {
        width: 100%;
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
    }

    .content-list-main {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }

    .content-list-side .category-list {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
    }
}

/* ===== お問い合わせフォーム（21contact.html） ===== */
.contact-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid #c7e2ff;
}

.contact-item dt {
    width: 300px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    font-size: 14px;
    font-weight: 700;
    color: #1a1a2e;
    padding-top: 10px;
}

.contact-item dd {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
}

.contact-item .must {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: 4px;
    background-color: #f73a25;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    vertical-align: middle;
}

.contact-item input[type="text"],
.contact-item input[type="email"],
.contact-item input[type="tel"],
.contact-item textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #c7e2ff;
    border-radius: 8px;
    font-size: 15px;
    font-family: inherit;
    color: #1a1a2e;
    background-color: #fff;
}

.contact-item textarea {
    height: 160px;
    resize: vertical;
}

.contact-item input[type="text"]:focus,
.contact-item input[type="email"]:focus,
.contact-item input[type="tel"]:focus,
.contact-item textarea:focus {
    outline: none;
    border-color: #005bac;
}

.contact-item input[type="checkbox"] {
    margin-right: 6px;
}

.contact-item dd label {
    margin-right: 24px;
    font-size: 15px;
    color: #1a1a2e;
}

.form-submit-btns {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    list-style: none;
}

.form-submit-btn button {
    display: inline-block;
    min-width: 200px;
    padding: 16px 40px;
    border: none;
    border-radius: 100px;
    background-color: #005bac;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    -webkit-transition: opacity .25s ease;
    transition: opacity .25s ease;
}

.form-submit-btn button:hover {
    opacity: .8;
}

.form-submit-btn.-back button {
    background-color: #fff;
    border: 1px solid #005bac;
    color: #005bac;
}

@media (max-width: 599px) {
    .contact-item {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 10px;
        padding: 16px 0;
    }

    .contact-item dt {
        width: 100%;
        padding-top: 0;
    }

    .form-submit-btns {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 12px;
    }

    .form-submit-btn button {
        width: 100%;
        min-width: 0;
    }


}

/* ===== 22partner.html 理由/募集内容/メリット/流れセクション：レイアウト崩れ修正 ===== */
/* detail-inner が display:flex の初期値(row)のままで、見出し・本文・リストが横並びに
   なってしまっていたため、reason-inner/merit-inner と同じ縦積みに揃える */
.detail-inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0;
}

/* reason-list/merit-list/detail-list は tablet/mobile で2カラムに変わるが、
   行間gapが未設定のため2行目が1行目に重なっていた。既存のmerits-list等と
   同じ考え方で行間を確保する（横方向のgap-xは既存のTailwindクラスを維持） */
@media (max-width: 1024px) {

    .reason-list.grid,
    .merit-list.grid,
    .detail-list.grid {
        row-gap: 30px;
    }
}

@media (max-width: 599px) {

    .reason-list.grid,
    .merit-list.grid,
    .detail-list.grid {
        grid-template-columns: repeat(1, 1fr)z !important;
        row-gap: 24px;
    }
}

/* ===== 14school.html コース3ステップ (course-step-*) ===== */
.course-step-list {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    list-style: none;
}

.course-step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
    padding: 0 8px;
}

.course-step-circle {
    position: relative;
    width: 220px;
    height: 220px;
    flex-shrink: 0;
    border-radius: 50%;
    background-image: -webkit-linear-gradient(135deg, #eefbff 0%, #d7ecfb 100%);
    background-image: linear-gradient(315deg, #eefbff 0%, #d7ecfb 100%);
    -webkit-box-shadow: 0 0 0 8px rgba(0, 91, 172, .06), 0 8px 20px rgba(0, 91, 172, .18);
    box-shadow: 0 0 0 8px rgba(0, 91, 172, .06), 0 8px 20px rgba(0, 91, 172, .18);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.course-step-icon i {
    font-size: 48px;
    color: #005bac;
}

.course-step-num {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: #005bac;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-shadow: 0 0 0 4px #fff, 0 2px 8px rgba(0, 91, 172, .3);
    box-shadow: 0 0 0 4px #fff, 0 2px 8px rgba(0, 91, 172, .3);
}

.course-step-body {
    margin-top: 20px;
    width: 100%;
}

.course-step-title {
    font-size: 18px;
    font-weight: 700;
    color: #005bac;
    line-height: 1.4;
}

.course-step-divider {
    width: 50%;
    margin: 12px auto;
    border-top: 2px dashed #b8dcf2;
}

.course-step-desc {
    text-align: left;
}

.course-step-arrow {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-top: 100px;
    color: #b8dcf2;
    font-size: 28px;
}

@media (max-width: 1024px) {
    .course-step-list {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }

    .course-step-item {
        width: 100%;
        max-width: 360px;
        padding: 0;
    }

    .course-step-arrow {
        margin-top: 0;
        padding: 6px 0;
        -webkit-transform: rotate(90deg);
        transform: rotate(90deg);
    }

    .course-step-desc {
        text-align: center;
    }
}

@media (max-width: 599px) {
    .course-step-circle {
        width: 120px;
        height: 120px;
    }

    .course-step-icon i {
        font-size: 36px;
    }

    .course-step-num {
        width: 32px;
        height: 32px;
        font-size: 13px;
    }
}

/* ===== 14school.html 受講生の声 (voice-bubble-*) ===== */
.voice-bubble-list {
    display: -ms-grid;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 64px 40px;
    list-style: none;
}

.voice-bubble-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    list-style: none;
}

.voice-bubble-avatar {
    position: relative;
    z-index: 2;
    width: 72px;
    height: 72px;
    margin-bottom: -34px;
    margin-top: -34px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid #fff;
    -webkit-box-shadow: 0 4px 12px rgba(0, 91, 172, .3);
    box-shadow: 0 4px 12px rgba(0, 91, 172, .3);
    background-color: #fff;
}

.voice-bubble {
    position: relative;
    width: 100%;
    background-color: #eefbff;
    border: 2px solid #c7e2ff;
    border-radius: 24px;
    padding: 44px 26px 26px;
    -webkit-box-shadow: 0 8px 20px rgba(0, 91, 172, .1);
    box-shadow: 0 8px 20px rgba(0, 91, 172, .1);
}

.voice-bubble-item:nth-child(2n) .voice-bubble {
    background-color: #d7ecfb;
}



.voice-bubble-profile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 14px;
}

.voice-bubble-name {
    font-weight: 700;
    color: #005bac;
    font-size: 15px;
}

.voice-bubble-course {
    font-size: 12px;
    color: #005bac;
    background-color: #fff;
    padding: 3px 10px;
    border-radius: 20px;
    display: inline-block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    font-weight: 600;
}

.voice-bubble-txt {
    font-size: 14px;
    line-height: 1.8;
    color: #444;
    margin-bottom: 16px;
}

.voice-bubble-result {
    display: inline-block;
    background-color: #005bac;
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    padding: 8px 20px;
    border-radius: 100px;
}

@media (max-width: 1024px) {
    .voice-bubble-list {
        gap: 56px 24px;
    }
}

@media (max-width: 599px) {
    .voice-bubble-list {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .voice-bubble {
        padding: 40px 20px 22px;
    }

    .voice-bubble-avatar {
        width: 60px;
        height: 60px;
        margin-bottom: -28px;
    }

    .voice-bubble-name {
        font-size: 14px;
    }

    .voice-bubble-result {
        font-size: 14px;
        padding: 6px 16px;
    }
}


















[data-element-id].swiper {
    position: relative;
}

[data-element-id].swiper-wrapper {
    overflow-x: scroll;
    display: flex;

}

[data-element-id].main-visual-img::after {
    content: "←　横向きにスクロールできます　→";
    display: block;
    width: 100%;
    background-color: yellow;
    color: #111;
    text-align: center;
    position: absolute;
    bottom: 18px;
    left: 0;
    z-index: 5;
}

[data-element-id].mv-catch {
    position: absolute;
    top: 8%;
    left: 10%;
    height: 110%;
}

[data-element-id].swiper-wrapper>* {
    display: block;
}

[data-element-id].list-a>.item.switch .list-b {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: opacity 0.2s ease, visibility 0s linear 0s, transform 0.2s ease;
    position: relative;
}

[data-element-id].list-a {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
}

[data-element-id].list-a>.item {
    flex-grow: 1;
    position: relative;
    border: 1px dashed #ddd;
}

[data-element-id].header {
    position: relative;
    top: 0 !important;
}

[data-element-id].top-mv .inner {
    display: contents;
}

[data-element-id].medal-set {
    position: relative;
    right: 0%;
    margin-left: auto;
    margin-right: 4%;
}

/* ========================================================================
   編集画面用：オープニング関連のアニメーション・非表示処理を完全に停止
   ======================================================================== */

/* .pOpening 自身と、その中にあるすべての要素のアニメーション・変形・透明化を強制キャンセル */
[data-element-id].pOpening,
[data-element-id].pOpening * {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* 状態クラス（isOpeningSkipなど）やJSによる display:none を強制ブロックして静的配置 */
html .isOpeningSkip [data-element-id].pOpening,
html .isOpeningEnd [data-element-id].pOpening,
[data-element-id].pOpening,
[data-element-id].pOpening.is-hidden {
    display: block !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    z-index: 1 !important;
    height: 500px !important;
    /* ※お好みの高さに調整してください */
}

/* 内部スライダーのレイアウト調整（アニメーションを止めた状態で見やすくする） */
[data-element-id].pOpening .pOpeningSlider {
    display: flex !important;
    height: 100% !important;
    position: relative !important;
}

/* 英語のテキストループ位置をリセット */
[data-element-id].pOpening .pOpeningSlider-target {
    transform: translateX(0) !important;
}

[data-element-id] html {
    overflow: auto !improatnt;
}

.footer-nav-items a {
    color: #fff;
}

/* ラベルを囲む親要素を、SVGと全く同じサイズで上に被せる */
.html-region-labels {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    /* ★必須：JSのホバーを邪魔しないための魔法 */
}

/* 各エリア名のスタイル */
.html-label {
    position: absolute;
    transform: translate(-50%, -50%);
    /* 基準点を文字の「中心」に合わせる */
    font-weight: bold;
    color: #333333;
    /* 文字色 */
    white-space: nowrap;

    /* スマホやPCでマップの大きさが変わっても文字が追従する設定 */
    font-size: clamp(10px, 2vw, 16px);
}

.mx-auto {
    margin-inline: auto;
}


/*記事詳細ページ用タイトル*/
.cus-html-area h2 {
    margin-top: 40px;
    margin-bottom: 20px;
    padding: 5px 10px;
    font-weight: bold;
    font-size: 20px;
    color: #fff;
    background: #005bac;
}

.cus-html-area h3 {
    margin-top: 40px;
    margin-bottom: 20px;
    padding-left: 10px;
    font-weight: bold;
    font-size: 20px;
    border-left: solid 4px #005bac;
}

.cus-html-area h4 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
    align-items: baseline;
    -ms-flex-align: baseline;
    margin-top: 40px;
    margin-bottom: 20px;
    font-weight: bold;
    font-size: 20px;
}

.cus-html-area h4:before {
    content: "・";
    color: #005bac;
}

.cus-html-area ul li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-column-gap: 5px;
    -moz-column-gap: 5px;
    column-gap: 5px;
}

.cus-html-area ul li::before {
    content: "";
    display: inline-block;
    height: 10px;
    width: 10px;
    border-radius: 50%;
    background-color: #005bac;
    margin-top: .5em;
}

.cus-html-area ol li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
    align-items: baseline;
    -ms-flex-align: baseline;
    list-style-type: none;
    counter-increment: cnt;
}

.cus-html-area ol li::before {
    content: ""counter(cnt)".";
    -ms-flex-negative: 0;
    flex-shrink: 0;
    margin-right: 10px;
    font-weight: bold;
    font-size: 120%;
    color: #005bac;
}

.cus-html-area iframe[src*="youtube"] {
    height: 100%;
    display: block;
    margin-top: 1em;
    margin-bottom: 1em;

    aspect-ratio: 16 / 9;
}

.timeline {
    list-style: none;
    padding: 0;
}

.timeline>li {
    margin-bottom: 60px;
}

.timeline-date {


    font-weight: bold;
    color: #005bac;
    line-height: 1.3em;
    font-size: 22px;
    border: 2px solid #005bac;
    padding: 2px 10px;
    margin-bottom: 10px;
}

/* for Desktop */
@media (min-width: 640px) {
    .timeline>li {
        overflow: hidden;
        margin: 0;
        position: relative;
    }

    .timeline-date {
        width: 110px;
        /* 必要に応じて調整してください */
        float: left;
        margin-top: 10px;
        font-weight: bold;
        color: #005bac;
        line-height: 1.3em;
        font-size: 18px;
    }

    .timeline-content {
        width: 75%;
        float: left;
        border-left: 3px #eefbff solid;
        padding-left: 30px;
        padding-bottom: 40px;
        /* 次のステップとの間隔を確保 */
    }

    .timeline-content:before {
        content: '';
        width: 12px;
        height: 12px;
        background: #005bac;
        position: absolute;
        left: 106px;
        /* 線の位置に合わせて微調整してください */
        top: 24px;
        border-radius: 100%;
    }

    /* 最後の要素の下線を消す・短くする場合の調整（任意） */
    .timeline>li:last-child .timeline-content {
        padding-bottom: 0;
    }
}




@media (max-width: 599px) {

    .content-list-side .category-list {
        margin-left: 0;
    }

    .contact-item dd {
        width: 100%;
        flex: auto;
    }
}

.footer a {
    color: fff;
}



/* ==========================================
   フッター追従ボタン（fixed-cta）
   ========================================== */
.fixed-cta {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 400;
    opacity:0;
    transition:.4s;
}

.fixed-cta.grow{
  opacity:1;
}

[data-element-id]
.fixed-cta{
  opacity:1;
}

.is-edit-design .fixed-cta {
    display: none;
}

.fixed-cta-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fixed-cta-item {
    display: block;
    -webkit-animation: fixedCtaIn .5s ease both;
    animation: fixedCtaIn .5s ease both;
}

.fixed-cta-item:nth-child(1) {
    -webkit-animation-delay: .1s;
    animation-delay: .1s;
}

.fixed-cta-item:nth-child(2) {
    -webkit-animation-delay: .2s;
    animation-delay: .2s;
}

.fixed-cta-item:nth-child(3) {
    -webkit-animation-delay: .3s;
    animation-delay: .3s;
}

.fixed-cta-item>a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 12px;
    padding: 14px 22px;
    border-radius: 50px;
    text-decoration: none;
    white-space: nowrap;
    -webkit-box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
    -webkit-transition: -webkit-transform .3s, -webkit-box-shadow .3s;
    transition: transform .3s, box-shadow .3s;
    height: 100%;
}

.fixed-cta-item>a:hover {
    color: inherit;
    opacity: 1;
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px);
    -webkit-box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
}

.fixed-cta-item-tel>a {
    background-color: #005bac;
    color: #fff;
}

.fixed-cta-item-contact>a {
    background-color: #fff;
    color: #005bac;
    border: 2px solid #005bac;
}

.fixed-cta-item-line>a {
    background-color: #06c755;
    color: #fff;
}

@media(max-width:599px) {

    .tel .fixed-cta-label {
        display: none;
    }
}

/* ==========================================
   AB-A（フリップ演出版）専用スタイル
   非AB-A側（上記の通常版）には一切影響させない
   ========================================== */
.fixed-cta.AB-A .fixed-cta-item {
    -webkit-perspective: 500px;
    perspective: 500px;
}

.fixed-cta.AB-A .fixed-cta-item>a {
    position: relative;
    display: block;
    width: 210px;
    height: 62px;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    -webkit-transition: -webkit-box-shadow .3s;
    transition: box-shadow .3s;
}

.fixed-cta.AB-A .fixed-cta-item>a:hover {
    -webkit-transform: none;
    transform: none;
}

.fixed-cta.AB-A .fixed-cta-flip {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-animation: fixedCtaFlip 3s ease-in-out infinite;
    animation: fixedCtaFlip 3s ease-in-out infinite;
}

.fixed-cta.AB-A .fixed-cta-item:nth-child(1) .fixed-cta-flip {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}

.fixed-cta.AB-A .fixed-cta-item:nth-child(2) .fixed-cta-flip {
    -webkit-animation-delay: 1s;
    animation-delay: 1s;
}

.fixed-cta.AB-A .fixed-cta-item:nth-child(3) .fixed-cta-flip {
    -webkit-animation-delay: 2s;
    animation-delay: 2s;
}

.fixed-cta.AB-A .fixed-cta-face {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 12px;
    padding: 0 18px;
    border-radius: 0;
    text-align: center;
    white-space: nowrap;
    -webkit-transform: translate3d(0, 0, 30px);
    transform: translate3d(0, 0, 30px);
}

.fixed-cta.AB-A .fixed-cta-face-back {
    -webkit-transform: rotateX(90deg) translate3d(0, 0, 30px);
    transform: rotateX(90deg) translate3d(0, 0, 30px);
    font-size: 13px;
    font-weight: 700;
}

.fixed-cta.AB-A .fixed-cta-item-tel .fixed-cta-face-front {
    background-color: #005bac;
    color: #fff;
}

.fixed-cta.AB-A .fixed-cta-item-tel .fixed-cta-face-back {
    background-color: #fff;
    color: #005bac;
    border: 2px solid #005bac;
}

.fixed-cta.AB-A .fixed-cta-item-contact .fixed-cta-face-front {
    background-color: #fff;
    color: #005bac;
    border: 2px solid #005bac;
}

.fixed-cta.AB-A .fixed-cta-item-contact .fixed-cta-face-back {
    background-color: #005bac;
    color: #fff;
}

.fixed-cta.AB-A .fixed-cta-item-line .fixed-cta-face-front {
    background-color: #06c755;
    color: #fff;
}

.fixed-cta.AB-A .fixed-cta-item-line .fixed-cta-face-back {
    background-color: #fff;
    color: #06c755;
    border: 2px solid #06c755;
}

.fixed-cta-icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 24px;
    font-size: 22px;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
}

.fixed-cta-body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    line-height: 1.3;
    text-align: left;
}

.fixed-cta-label {
    font-size: 13px;
    font-weight: 700;
}

.fixed-cta-num {
    font-size: 17px;
    font-weight: 900;
    letter-spacing: -.02em;
}

.fixed-cta-face-back .fixed-cta-label {
    font-size: 13px;
    white-space: normal;
}

@-webkit-keyframes fixedCtaIn {
    from {
        opacity: 0;
        -webkit-transform: translateX(30px);
    }

    to {
        opacity: 1;
        -webkit-transform: translateX(0);
    }
}

@keyframes fixedCtaIn {
    from {
        opacity: 0;
        transform: translateX(30px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@-webkit-keyframes fixedCtaFlip {

    0%,
    15% {
        -webkit-transform: rotateX(0deg);
    }

    30%,
    70% {
        -webkit-transform: rotateX(-90deg);
    }

    85%,
    100% {
        -webkit-transform: rotateX(0deg);
    }
}

@keyframes fixedCtaFlip {

    0%,
    15% {
        transform: rotateX(0deg);
    }

    30%,
    70% {
        transform: rotateX(-90deg);
    }

    85%,
    100% {
        transform: rotateX(0deg);
    }
}

@media (max-width: 1024px) {
    .fixed-cta {
        right: 16px;
        bottom: 16px;
    }

    .fixed-cta-item>a {
        padding: 12px 18px;
    }

    .fixed-cta-num {
        font-size: 15px;
    }

    .fixed-cta.AB-A .fixed-cta-item>a {
        width: 180px;
        height: 56px;
        padding: 0;
    }
}

@media (max-width: 599px) {
    .fixed-cta {
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
    }

    .fixed-cta-list {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -webkit-box-align: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        gap: 0;
        width: 100%;
        -webkit-box-shadow: 0 -4px 16px rgba(0, 0, 0, .15);
        box-shadow: 0 -4px 16px rgba(0, 0, 0, .15);
    }

    .fixed-cta-item {
        display: flex;
        -webkit-box-flex: 1;
        -ms-flex: 1;
        flex: 1;
        -webkit-animation: none;
        animation: none;
    }

    .fixed-cta-item>a {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        gap: 4px;
        width: 100%;
        padding: 10px 4px calc(10px + env(safe-area-inset-bottom));
        border-radius: 0;
        text-align: center;
        white-space: normal;
        -webkit-box-shadow: none;
        box-shadow: none;
        height: 100% !important;
    }

    .fixed-cta-item>a:hover {
        -webkit-transform: none;
        transform: none;
    }

    .fixed-cta-icon {
        width: auto;
        font-size: 20px;
    }

    .fixed-cta-label {
        font-size: 11px;
    }

    .fixed-cta-num {
        font-size: 13px;
    }

    .fixed-cta.AB-A .fixed-cta-item>a {
        display: flex;
        width: 100%;
        height: 64px !important;
        padding: 0;
        padding-bottom: env(safe-area-inset-bottom);
        border-radius: 0;
        box-sizing: content-box;
    }

    .fixed-cta.AB-A .fixed-cta-face {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        border-radius: 0;
        padding: 6px 4px;
        gap: 4px;
        white-space: normal;
    }

    .fixed-cta.AB-A .fixed-cta-body {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        text-align: center;
    }

    .fixed-cta.AB-A .fixed-cta-icon {
        width: auto;
        font-size: 18px;
    }

    .fixed-cta.AB-A .fixed-cta-label {
        font-size: 11px;
        display: block;
    }

    .fixed-cta.AB-A .fixed-cta-num {
        font-size: 12px;
    }

    .fixed-cta.AB-A .fixed-cta-face-back .fixed-cta-label {
        font-size: 11px;
    }

    .fixed-cta.AB-A .fixed-cta-flip {
        display: block;
        width: 100%;
        flex: 1;
        /* height: 100% の代わりにflexで高さを埋める */
        /* height: 100%; は削除するかそのままでも可 */
    }

}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
}


[data-element-id] [data-ab-test-contents] .fixed-cta {
    padding: 1.5em 0.2em 0.2em;
    outline: 2px solid #8b008b;
    position: relative;
    width: 375px;
}

[data-element-id] [data-ab-test-contents] .fixed-cta::before {
    content: "Aパターン";
    width: 100%;
    display: block;
    padding: 0.5em 0.2em;
    font-size: 10px;
    color: #fff;
    line-height: 1.2;
    text-align: center;
    background-color: #8b008b;
    position: absolute;
    top: 0;
    left: 0;
}

[data-element-id] [data-ab-test-contents]+[data-ab-test-contents] .fixed-cta::before {
    content: "Bパターン";
    background-color: #556b2f;
}

[data-element-id] [data-ab-test-conversion-button]::after {
    content: "CV";
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    min-width: 24px;
    display: inline-block;
    font-size: 12px;
    color: #000;
    line-height: 1;
    text-align: center;
    background-color: #ff0;
}


footer .mailto {
    color: #fff;
}

[data-element-id] header .pc-none {
    display: block;
    position: relative;
    border: 2px solid orange;
}

[data-element-id].pc-none::before {
    display: block;
    content: "PC時表示しない";
    background-color: orange;
    width: 100%;
    color: #fff;
    font-size: 10px;
    text-align: center;
    position: absolute;
    left: 0;
    bottom: 100%;
}


.price-table-menu-label {
    display: flex;
    align-items: center;
    gap: 14px;
    /* + -webkit-box/-ms-flexbox 等ベンダープレフィックス */
}

.price-table-icon-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #005bac;
    color: #ffffff;
    font-size: 16px;
}

@media (max-width: 599px) {
    .price-table-icon-mark {
        width: 32px;
        height: 32px;
        font-size: 13px;
    }

    .price-table-menu-label {
        gap: 10px;
    }
}

.price-table-price-main {
    display: block;
    font-size: 20px;
    font-weight: 700;
    color: #005bac;
    white-space: nowrap;
}

.price-table-price-tax {
    display: block;
    font-size: 12px;
    font-weight: 400;
    color: #888888;
    white-space: nowrap;
    margin-top: 2px;
}

@media (max-width: 599px) {
    .price-table-price-main {
        font-size: 16px;
    }

    .price-table-price-tax {
        font-size: 11px;
    }
}

.price-promo {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    margin-bottom: 20px;
}

.price-promo-media {
    width: 30%
}

.price-promo-table {
    width: 70%;
}

.price-promo-table .price-table-wrap {
    border: none;
}

.price-promo-table .price-table {
    min-width: 0;
    table-layout: fixed;
}

.price-promo-table .price-table td:first-child {
    width: 60%;
}

.price-promo-table .price-table td:last-child {
    width: 40%;
    text-align: right;
}

.price-promo-table thead {
    display: none;
}

@media (max-width: 599px) {
    .price-promo-table .price-table tr {
        display: flex;
        flex-direction: column;
    }

    .price-promo-table .price-table td:first-child,
    .price-promo-table .price-table td:last-child {
        width: 100%;
    }

    .price-promo-table .price-table td:last-child {
        padding-top: 0;
    }
}

@media (max-width: 1024px) {
    .price-promo {
        flex-direction: column;
        align-items: stretch;
    }

    .price-promo-media {
        width: 100%
    }

    .price-promo-table {
        width: 100%;
    }
}


.price-promo-photo {
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow: hidden;
    border-radius: 12px;
    margin-bottom: 20px;
}

.price-promo-photo-before,
.price-promo-photo-after {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
}

.price-promo-photo-before img,
.price-promo-photo-after img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.price-promo-photo-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 100%;
    background: #eef4fb;
    color: #7a93ad;
    font-size: 12px;
    font-weight: 700;
}

.price-promo-photo-placeholder i {
    font-size: 26px;
}

.price-promo-photo-label {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    background: rgba(0, 0, 0, 0.55);
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    padding: 3px 10px;
    border-radius: 4px;
}


.price-note-tit {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: #b3520a;
    margin-bottom: 8px;
}

.fixed-cta {
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;
    will-change: transform;
}











/* ===== 14school.html コース3ステップ イラスト演出（追記） ===== */
.course-step-wrap {
    position: relative;
}

.course-step-mascot {
    display: block;
    position: absolute;
    bottom: -30px;
    left: -22px;
    width: 92px;
    height: 92px;
    pointer-events: none;
}

.course-step-mascot img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    object-position: center;
}


.course-step-body.course-step-body-mascot-space {
    margin-top: 56px;
}

@media (max-width: 1024px) {
    .course-step-wrap::before {
        display: none;
    }
}

@media (max-width: 599px) {
    .course-step-mascot {
        width: 60px;
        bottom: -20px;
        left: -14px;
    }

    .course-step-item:last-of-type .course-step-mascot {
        right: -14px;
    }

    .course-step-body.course-step-body-mascot-space {
        margin-top: 38px;
    }
}




@media (min-width: 640px) {
    .timeline.v2 {
        max-width: 800px;
        margin: 0 auto;
    }

    .v2 .timeline-date {
        width: 41%;
        border: none;
        text-align: right;
        font-size: 22px;
    }

    .v2 .timeline-content {
        width: 55%;
        padding-left: 10px;
        margin-left: 10px;
        padding-top: .7em;
    }

    .v2 .timeline-content:before {
        left: 41.7%;
        top: 21px;
    }
}

.lowe {
    margin-bottom: -60px;
}

[data-element-id].link-card * {
    overflow-wrap: normal !important;
    word-break: normal !important;
}


.link-card-url {
    word-break: break-all !important;
}

.fixed-cta.AB-A .fixed-cta-item>a {
    /* 〜 既存のスタイル 〜 */

    /* 👇 これを追加してSafariの描画を安定させる */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
}


.contact-item .select {
    position: relative;
    max-width: 250px;
    flex: auto;
}

.select::before,
.select::after {
    position: absolute;
    content: '';
    pointer-events: none;
}

.select::before {
    right: 0;
    display: inline-block;
    width: 2.8em;
    height: 2.8em;
    border-radius: 0 8px 8px 0;
    background-color: #c7e2ff;
    content: '';
}

.select::after {
    position: absolute;
    top: 50%;
    right: 1.4em;
    transform: translate(50%, -50%) rotate(45deg);
    width: 6px;
    height: 6px;
    border-bottom: 3px solid #fff;
    border-right: 3px solid #fff;
    content: '';
}

.select select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    min-width: 250px;
    max-width: 250px;
    height: 2.8em;
    padding: .4em 3.6em .4em .8em;
    border: 2px solid #c7e2ff;
    border-radius: 8px;
    color: #333333;
    font-size: 1em;
    cursor: pointer;
}

.select select:focus {
    outline: 1px solid #2589d0;
}

.contact-item .numb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.contact-item .numb input {
    width: 100px;
}




.contact-item .d-date {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.contact-item .d-date input[type="text"] {
    width: 150px;
}









.contact-item .minisel {
    position: relative;
}

.minisel::before,
.minisel::after {
    position: absolute;
    content: '';
    pointer-events: none;
}

.minisel::before {
    right: 0;
    display: inline-block;
    width: 2.8em;
    height: 2.8em;
    border-radius: 0 8px 8px 0;
    background-color: #c7e2ff;
    content: '';
}

.minisel::after {
    position: absolute;
    top: 50%;
    right: 1.4em;
    transform: translate(50%, -50%) rotate(45deg);
    width: 6px;
    height: 6px;
    border-bottom: 3px solid #fff;
    border-right: 3px solid #fff;
    content: '';
}

.minisel select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    min-width: 90px;
    height: 2.8em;
    padding: .4em 3.6em .4em .8em;
    border: 2px solid #c7e2ff;
    border-radius: 8px;
    color: #333333;
    font-size: 1em;
    cursor: pointer;
}

.minisel select:focus {
    outline: 1px solid #2589d0;
}

.uk-text-danger {
    color: red;
    font-weight: 900;
    font-size: 12px;
    display: block;
    width: 100%;
}



#service-grid.contact-item {
    flex-wrap: wrap;
    gap: 20px;
}















/*======================================
  お客様の声
======================================*/

.voiceArea {
    position: relative;
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-evenly;
    flex-wrap: wrap;
    gap: 10px;
}

section.voice {
    background-color: var(--bg-color);
    background-image: radial-gradient(#d0e9ff 1.5px, transparent 1.5px),
        radial-gradient(#d0e9ff 1.5px, #f6fafd 1.5px);
    background-size: 40px 40px;
    background-position: 0 0,
        20px 20px;
}

/* 散りばめた色付き四角の装飾 */
section.voice::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .8;
    background-repeat: no-repeat;
    background-image:
        linear-gradient(#ffd84f, #ffd84f),
        linear-gradient(#6ed0ff, #6ed0ff),
        linear-gradient(#ff9db2, #ff9db2),
        linear-gradient(#8be36f, #8be36f),
        linear-gradient(#6ed0ff, #6ed0ff),
        linear-gradient(#ffd84f, #ffd84f);
    background-size:
        18px 18px,
        12px 12px,
        14px 14px,
        16px 16px,
        10px 10px,
        14px 14px;
    background-position:
        3% 15%,
        92% 10%,
        78% 42%,
        10% 82%,
        88% 70%,
        40% 95%;
}

/*======================================
  吹き出し 共通
======================================*/

.voiceArea .bubble {
    z-index: 2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding: 48px;
    border-radius: 50%;
    box-shadow: 0 15px 40px rgba(0, 0, 0, .08);
    -webkit-transition: .35s ease;
    -o-transition: .35s ease;
    transition: .35s ease;
}

.voiceArea .bubble:hover {
    z-index: 20;
    -webkit-transform: translateY(-12px) scale(1.03);
    transform: translateY(-12px) scale(1.03);
    box-shadow: 0 25px 55px rgba(0, 0, 0, .18);
}

.voiceArea .bubble>* {
    position: relative;
    z-index: 1;
}

.voiceArea .bubble::after {
    content: "";
    position: absolute;
    width: 50px;
    height: 50px;
    background: inherit;
}


/*======================================
  ラベル（視覚的には非表示・読み上げ用テキスト）
======================================*/

.voiceArea .label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    white-space: nowrap;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/*======================================
  投稿日時
======================================*/

.voiceArea .date {
    margin-bottom: 5px;
    font-size: 13px;
    font-weight: 700;
    color: #0098d8;
    display: flex;
    align-items: center;
    line-height: 1.2;
}

.voiceArea .bubble.blue .date {
    color: #fff;
}

.voiceArea .date::before {
    content: "\f017";
    font-family: "Font Awesome 6 Free";
    font-weight: 400;
    margin-right: 6px;
}

/*======================================
  星
======================================*/

.voiceArea .star {
    margin-bottom: 5px;
    color: #ffc400;
    font-family: sans-serif;
    font-size: 28px;
    line-height: 1;
    letter-spacing: 3px;
    text-shadow: 0 1px 0 rgba(0, 0, 0, .08);
}

/*======================================
  名前・アイコン
======================================*/

.voiceArea .name {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 12px;
    margin: 8px 0;
}

.voiceArea .name-value {
    font-size: 18px;
    font-weight: 700;
    color: #222;
}

.voiceArea .bubble.blue .name-value {
    color: #fff;
}

.voiceArea .icon {
    position: relative;
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    width: 46px;
    height: 46px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-size: 0;
    background-color: #fff;
    border: 2px solid #11ace6;
    border-radius: 50%;
}

.voiceArea .icon::before {
    content: "\f007";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 20px;
    color: #11ace6;
}

.voiceArea .bubble.blue .icon {
    border-color: #fff;
}

/*======================================
  コメント
======================================*/

.voiceArea .comment {
    margin-top: 4px;
}

.voiceArea .comment-value {
    margin: 0;
    font-size: 14px;
    color: #444;
    word-break: break-word;
    display: -webkit-box;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}


/*======================================
  レイアウト（画像イメージに準拠）
  ※4番目の子要素はマスコットのため nth-child(1,2,3,5,6,7) を使用
======================================*/


.voiceArea .bubble:nth-child(1) {
    width: 340px;
    height: 340px;
    -webkit-transform: rotate(-5deg);
    transform: rotate(-5deg);
    background-color: #fff;
    border: 3px solid #11a9e6;
    color: #333;
    margin-top: 130px;
    order: 1;
}

.voiceArea .bubble:nth-child(1)::after {
    right: 8%;
    bottom: 6%;
    transform: skew(20deg) rotate(10deg);
    border-right: 3px solid #11a9e6;
    border-bottom: 3px solid #11a9e6;
}

.voiceArea .bubble:nth-child(2) {
    width: 285px;
    height: 285px;
    -webkit-transform: rotate(4deg);
    transform: rotate(4deg);
    background: #11a9e6;
    color: #fff;
    order: 2;
}

.voiceArea .bubble:nth-child(2)::after {
    right: 40%;
    bottom: -5%;
    transform: skew(20deg) rotate(140deg);

}

.voiceArea .bubble:nth-child(3) {
    top: 180px;
    left: 285px;
    z-index: 3;
    width: 300px;
    height: 300px;
    -webkit-transform: rotate(-3deg);
    transform: rotate(-3deg);
    background-color: #fff;
    border: 3px solid #11a9e6;
    color: #333;
    margin-top: 110px;
    order: 3;
}

.voiceArea .bubble:nth-child(3)::after {
    left: 7%;
    bottom: 5%;
    transform: skew(-20deg) rotate(-10deg);
    border-left: 3px solid #11a9e6;
    border-bottom: 3px solid #11a9e6;
}

.voiceArea .bubble:nth-child(4) {
    top: 10px;
    right: 0;
    z-index: 3;
    width: 345px;
    height: 345px;
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
    background: #11a9e6;
    color: #fff;
    margin-top: 50px;
    order: 5;
}

.voiceArea .bubble:nth-child(4)::after {
    right: 9%;
    top: 7%;
    transform: skew(-20deg) rotate(-10deg);
}

.voiceArea .bubble:nth-child(5) {
    top: 370px;
    right: 10px;
    z-index: 3;
    width: 295px;
    height: 295px;
    -webkit-transform: rotate(-2deg);
    transform: rotate(-2deg);
    background-color: #fff;
    border: 3px solid #11a9e6;
    color: #333;
    margin-top: 160px;
    order: 6;
}

.voiceArea .bubble:nth-child(5)::after {
    right: 40%;
    top: -8%;
    transform: skew(20deg) rotate(137.5deg);
    border-left: 3px solid #11a9e6;
    border-bottom: 3px solid #11a9e6;
}

.voiceArea .bubble:nth-child(6) {
    top: 650px;
    left: 340px;
    width: 290px;
    height: 290px;
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
    background: #11a9e6;
    color: #fff;
    margin-top: 50px;
    order: 7;
}

.voiceArea .bubble:nth-child(6)::after {
    left: 8%;
    top: 6%;
    transform: skew(20deg) rotate(10deg);
}

.voiceArea .bubble:nth-child(2) .comment-value,
.voiceArea .bubble:nth-child(2) .name-value,
.voiceArea .bubble:nth-child(2) .date-value,
.voiceArea .bubble:nth-child(2) .date::before,
.voiceArea .bubble:nth-child(4) .comment-value,
.voiceArea .bubble:nth-child(4) .name-value,
.voiceArea .bubble:nth-child(4) .date-value,
.voiceArea .bubble:nth-child(4) .date::before,
.voiceArea .bubble:nth-child(6) .comment-value,
.voiceArea .bubble:nth-child(6) .name-value,
.voiceArea .bubble:nth-child(6) .date-value,
.voiceArea .bubble:nth-child(6) .date::before {
    color: #fff;
}

/*======================================
  キャラクター
======================================*/

.voiceArea .mascot {
    order: 4;
    width: 80%;
    text-align: center;
    position: relative;
    margin: -200px 0 -200px 0;
    background-color: #c7e2ff;
    padding: 90px;
    border: 10px solid #11a9e6;
}

.voiceArea .mascot .deco {
    display: block;
    margin: 10px auto -30px;
    width: 100px;
    height: 100px;
    filter: drop-shadow(0 10px 12px rgba(0, 0, 0, .12));
    z-index: 1;
}



/*======================================
  Tablet
======================================*/
@media (max-width: 1024px) {
    .voiceArea {
        height: auto;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        gap: 0px;
    }

    .voiceArea .bubble {
        z-index: 2 !important;
        width: 250px !important;
        height: 250px !important;
        padding: 30px;
    }

    .voiceArea .star {
        font-size: 22px;
    }

    .voiceArea .icon {
        width: 30px;
        height: 30px;
    }

    .voiceArea .name-value {
        font-size: 18px;
    }

    .voiceArea .name {
        margin: 5px 0;
    }

    .voiceArea .bubble::after {
        width: 38px;
        height: 38px;
    }

    .voiceArea .bubble:nth-child(1)::after {
        right: 7%;
    }

    .voiceArea .bubble:nth-child(3)::after {
        left: 8%;
    }

    .voiceArea .bubble:nth-child(5)::after {
        top: -7.5%;
    }

    .voiceArea .bubble:nth-child(6)::after {
        left: 9%;
    }
}

/*======================================
  SP
======================================*/

@media (max-width: 799px) {
    .voiceArea {
        flex-direction: column;
        max-width: 400px;
    }

    .voiceArea .bubble {
        width: 60% !important;
        height: auto !important;
        max-width: 330px;
        aspect-ratio: 1/1;
        padding: 24px;
    }

    .voiceArea .bubble::after {
        display: none;
    }

    .voiceArea .bubble:nth-child(1) {
        margin-top: -20px;
        margin-left: -35px;
        margin-right: auto;
    }

    .voiceArea .bubble:nth-child(2) {
        margin-top: -200px;
        margin-left: auto;
        margin-right: -30px;
    }

    .voiceArea .bubble:nth-child(3) {
        margin-top: -60px;
        margin-right: auto;
        transform: rotate(10deg);
    }

    .voiceArea .bubble:nth-child(4) {
        -webkit-transform: rotate(-20deg);
        transform: rotate(-20deg);
        margin-top: -120px;
        margin-left: auto;
        margin-right: -20px
    }

    .voiceArea .bubble:nth-child(5) {
        margin-top: -120px;
        margin-left: -20px;
    }

    .voiceArea .bubble:nth-child(6) {
        margin-top: -60px;
        margin-left: auto;
        margin-right: auto;
    }

    .voiceArea .date {
        justify-content: center;
    }

    .voiceArea .star {
        text-align: center;
    }

    .voiceArea .name {
        justify-content: center;
        margin: 0;
    }

    .voiceArea .comment-value {
        font-size: 12px;
    }

    .voiceArea .mascot {
        margin: -20px auto -0px;
        padding: 20px;
        border: 3px solid #11a9e6;
        order: 0;
    }

    .voiceArea .mascot .deco {
        margin: 10px auto -10px;
        width: 100px;
        height: 100px;
        filter: drop-shadow(0 10px 12px rgba(0, 0, 0, .12));
        z-index: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .voiceArea .bubble {
        transition: none;
    }
}

.chip {
    box-shadow: 0px 2px 0px 0px #005bac;
}


.chip.selected {
    box-shadow: 0px 0px 0px 0px #005bac;
    border: 1px solid #005bac;
    background-color: #fff;
    color: #005bac;
}

.chip.disabled {
    box-shadow: 0px 0px 0px 0px #0000;
    border: 1px solid #777;
    background-color: #bbb;
    color: #777;
}

[data-element-id].fixed-cta.AB-A .fixed-cta-flip {
    animation: none;
}

[data-element-id].fixed-cta.AB-A .fixed-cta-item>a {
    height: 124px;
}

[data-element-id].fixed-cta.AB-A .fixed-cta-face-front {
    height: 50%;
    position: relative;
    top: 0;
    left: 0;
}

[data-element-id].fixed-cta.AB-A .fixed-cta-face-back {
    height: 50%;
    position: relative;
    top: 0;
    left: 0;
    transform: rotateX(0deg) translate3d(0, 0, 0px);
}

[data-element-id].loop-wrap div {
    font-size: 30px;
    animation: none;
}

[data-element-id].map-box::before {
    content: "故障する可能性あるので編集禁止";
    background-color: red;
    width: 100%;
    color: #fff;
    font-size: 16px;
    text-align: center;
    position: absolute;
    left: 0;
    bottom: 100%;
}


[data-element-id] .faq-item__answer {
    max-height: 1000px;
    height: 50%;
    transition: none;
    min-height: 50px;
}

















.review-new-item {
    position: relative;
}



.reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 30px;
    align-items: start;
}

/* 吹き出しカードの基本スタイル */
.review-card {
    border-radius: 30px;
    padding: 20px;
    position: relative;
    box-shadow: 0 10px 25px rgba(0, 139, 226, 0.08);
    transition: transform 0.3s ease;
    background-color: #ffffff;
    border: 3px solid #008be2;
    color: #333;
    z-index: 2;
}

.review-new-item:nth-child(even) .review-card {
    background-color: #008be2;
    color: #ffffff;
    border: 3px solid #008be2;
}

.review-new-item a:hover {
    opacity: 1;
}

a:hover .review-card {
    transform: translateY(-5px);
}

.review-card::before {
    content: '';
    position: absolute;
    border-style: solid;
    border-width: 0 30px 30px 0;
    border-color: transparent #ffffff transparent transparent;
    left: 30px;
    top: 100%;
    z-index: 2;
}

.review-new-item:nth-child(even) .review-card::before {
    display: none;
}

.review-card::after {
    content: '';
    position: absolute;
    border-style: solid;
    display: block;
    width: 0;
    z-index: 1;
    border-width: 0 38px 38px 0;
    border-color: transparent #008be2 transparent transparent;
    left: 25px;
    top: 100%;
}





/* カード内の各パーツ */
.review-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.review-date {
    font-size: 14px;
    font-weight: bold;
    padding: 3px 10px;
    border-radius: 15px;
    background-color: #e6f4fc;
    color: #008be2;
}

.review-new-item:nth-child(even) .review-date {
    background-color: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

.review-stars {
    color: #ffc400;
    font-size: 22px;
    letter-spacing: 2px;
}

.review-user {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.user-avatar {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background-color: #e6f4fc;
}

.review-new-item:nth-child(even) .user-avatar {
    background-color: #ffffff;
}

/* ユーザーアバターの人型アイコン (CSS製) */
.avatar-icon {
    width: 24px;
    height: 24px;
    position: relative;
    overflow: hidden;
    border-radius: 50%;
}

.avatar-head {
    width: 10px;
    height: 10px;
    background-color: #008be2;
    border-radius: 50%;
    margin: 2px auto 2px auto;
}

.avatar-body {
    width: 18px;
    height: 10px;
    background-color: #008be2;
    border-radius: 8px 8px 0 0;
    margin: 0 auto;
}

.user-name {
    font-weight: bold;
    font-size: 22px;
}

.user-name span {
    font-size: 0.85rem;
    font-weight: normal;
    margin-left: 4px;
}

.review-text {
    font-size: 0.95rem;
    word-break: normal;
}

.revew-ball-img {
    width: 80%;
    margin: 0 auto;
    border-radius: 50%;
    border: 5px solid #c7e2ff;
    ;
    overflow: hidden;
    margin-top: -30px;
    position: relative;
}

.review-new-item::after {
    content: "";
    width: 120px;
    height: 120px;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 2;
}

.review-new-item:nth-child(1)::after {
    background-image: url(/upload/tenant_1/fg04.webp);
}

.review-new-item:nth-child(2)::after {
    background-image: url(/upload/tenant_1/masc_1.webp);
}

.review-new-item:nth-child(3)::after {
    background-image: url(/upload/tenant_1/oc1.webp);
}

.review-new-item a {
    display: block;
    width: 100%;
}

.more-layer {
    width: 100%;
    height: 100%;
    display: flex;
    background-color: #fff;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    opacity: 0;
    transition: .3s;
}

.review-new-item a:hover .more-layer {
    opacity: 1;
}

.more-layer {
    font-size: 16px;
    color: #005bac;
    font-weight: 700;
}

[data-element-id].reviews-grid>div {
    display: contents;
}

@media(max-width:1024px) {
    .reviews-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px 20px;
    }

    .review-new-item:nth-child(3) {
        justify-self: center;
        /* 横方向の中央寄せ */
    }
}

[data-element-id].voiceArea>div:first-child {
    display: contents;
}













.chat-style-wrap {
    display: flex;
    align-items: center;
    margin-bottom: 2.4rem;

}

.chat-style-wrap .chat-style-icon {
    width: 10rem;
}

.chat-style-wrap .chat-style-icon .chat-style-icon-inner {
    width: 100%;
    border-radius: 50%;
    overflow: hidden;
}

.chat-style-wrap .chat-style-speech-bubble {
    width: calc(100% - 10rem - 3.2rem);
    border-radius: 1.6rem;
    position: relative;
    padding: 1.5em 3em;
    display: inline-block;
}

.chat-style-wrap .chat-style-speech-bubble::before {
    content: " ";
    border-top: rgba(0, 0, 0, 0) solid 1rem;
    border-bottom: rgba(0, 0, 0, 0) solid 1rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.chat-style-wrap .chat-style-speech-bubble .chat-style-speech-bubble-txt {
    margin-bottom: 0;
}

.chat-style-wrap:nth-child(odd) .chat-style-speech-bubble {
    margin-left: 3.2rem;
    background-color: #d4e5ff;

}

.chat-style-wrap:nth-child(odd) .chat-style-speech-bubble::before {
    left: -1.5rem;
    border-right: 1.6rem solid #d4e5ff;
}

.chat-style-wrap:nth-child(even) {
    justify-content: flex-end;
}

.chat-style-wrap:nth-child(even) .chat-style-icon {
    order: 2;
}

.chat-style-wrap:nth-child(even) .chat-style-speech-bubble {
    margin-right: 3.2rem;
    background-color: #e6e6e6;
    order: 1;
}

.chat-style-wrap:nth-child(even) .chat-style-speech-bubble::before {
    right: -1.5rem;
    border-left: 1.6rem solid #e6e6e6;
}

@media(max-width:1024px) {
    .chat-style-wrap .chat-style-speech-bubble {
        padding: 1em;
    }
}

@media(max-width:599px) {
    .chat-style-icon {
        display: none;
    }

    .chat-style-wrap .chat-style-speech-bubble {
        width: 100%;
    }

    .chat-style-wrap:nth-child(odd) .chat-style-speech-bubble {
        margin-left: 1rem;
    }

    .chat-style-wrap:nth-child(even) .chat-style-speech-bubble {
        margin-right: 1rem;
    }

    .footer-copy {
        padding-bottom: 90px;
    }
}

.if-top {
    max-width: 500px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.nav-open .fixed-cta {
    display: none;
}

@media (max-width: 1024px) {
    .header-nav {
        background-color: transparent;
    }

    .list-b>.item>a {
        background-color: transparent;
    }

    .header-nav>* {
        position: relative;
        z-index: 2;
    }

    header .bg01 {
        display: block;
        width: 100px;
        height: 100vh;
        background-color: #eefbff;
        position: fixed;
        top: 0;
        right: 0;
        z-index: 1;
        transform: translateY(-100vh) scale(.5);
        transition: .5s;
    }

    header .bg02 {
        display: block;
        width: 100px;
        height: 100vh;
        background-color: #eefbff;
        position: fixed;
        top: 0;
        right: 100px;
        z-index: 1;
        transform: translateY(100vh) scale(.5);
        transition: .5s;
    }

    header .bg03 {
        display: block;
        width: 100px;
        height: 100vh;
        background-color: #eefbff;
        position: fixed;
        top: 0;
        right: 200px;
        z-index: 1;
        transform: translateY(-100vh) scale(.5);
        transition: .5s;
    }

    header .bg04 {
        display: block;
        width: 100px;
        height: 100vh;
        background-color: #eefbff;
        position: fixed;
        top: 0;
        right: 300px;
        z-index: 1;
        transform: translateY(100vh) scale(.5);
        transition: .5s;
    }

    .nav-open header .bg01,
    .nav-open header .bg02,
    .nav-open header .bg03,
    .nav-open header .bg04 {
        transform: translateY(0vh) scale(1);
    }

    .nav-open header .bg02 {
        transition-delay: .07s;
    }

    .nav-open header .bg03 {
        transition-delay: .14s;
    }

    .nav-open header .bg04 {
        transition-delay: .21s;
    }
}


/* iPhone / iPad Safari：AB-A追従CTAの高さが0になる描画不具合を補正 */
@supports (-webkit-touch-callout: none) {
    @media (max-width: 599px) {
        .fixed-cta {
            -webkit-transform: none !important;
            transform: none !important;
            -webkit-backface-visibility: visible !important;
            backface-visibility: visible !important;
            will-change: auto !important;
        }

        .fixed-cta.AB-A .fixed-cta-list,
        .fixed-cta.AB-A .fixed-cta-item,
        .fixed-cta.AB-A .fixed-cta-item>a,
        .fixed-cta.AB-A .fixed-cta-flip,
        .fixed-cta.AB-A .fixed-cta-face {
            height: calc(64px + env(safe-area-inset-bottom, 0px)) !important;
            min-height: calc(64px + env(safe-area-inset-bottom, 0px)) !important;
            box-sizing: border-box !important;
        }

        .fixed-cta.AB-A .fixed-cta-item>a {
            padding-bottom: 0 !important;
        }

        .fixed-cta.AB-A .fixed-cta-flip {
            -webkit-box-flex: 0 !important;
            -ms-flex: 0 0 auto !important;
            flex: 0 0 auto !important;
        }

        .fixed-cta.AB-A .fixed-cta-face {
            padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px)) !important;
        }
    }
}

/* ==========================================
   モバイルヘッダーナビ：上下交互パネルアニメーション
   HTML・JSは既存構造のまま使用
   ========================================== */
@media (max-width: 1024px) {
    .header {
        isolation: isolate;
        overflow: visible;
        top: 0;
        z-index: 500;
    }

    /*
   * 1つ目の疑似要素で1・3・5列、
   * 2つ目で2・4列を描画する。
   */
    .header::before,
    .header::after {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        height: -webkit-fill-available;
        height: 100dvh;
        pointer-events: none;
        z-index: 0;
        will-change: transform;
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
    }

    .header::before {
        background-image: repeating-linear-gradient(90deg,
                #005bac 0,
                #005bac 20vw,
                transparent 20vw,
                transparent 40vw);
        -webkit-transform: translate3d(0, -110%, 0);
        transform: translate3d(0, -110%, 0);
        transition: transform .72s cubic-bezier(.61, .1, .2, .99) .1s;
    }

    .header::after {
        background-image: repeating-linear-gradient(90deg,
                transparent 0,
                transparent 20vw,
                #005bac 20vw,
                #005bac 40vw);
        -webkit-transform: translate3d(0, 110%, 0);
        transform: translate3d(0, 110%, 0);
        transition: transform .72s cubic-bezier(.61, .1, .2, .99);
    }

    .nav-open .header::before {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        transition-delay: 0s;
    }

    .nav-open .header::after {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        transition-delay: .12s;
    }

    .header-inner {
        position: relative;
        z-index: 2;
    }

    .header-logo img,
    .nav-logo img {
        transition: filter .25s ease;
    }

    .nav-open .header-logo img,
    .nav-open .nav-logo img {
        -webkit-filter: brightness(0) invert(1);
        filter: brightness(0) invert(1);
    }

    .modal-btn {
        transition:
            background-color .25s ease,
            border-color .25s ease;
    }

    .modal-btn-line {
        transition:
            top .35s cubic-bezier(.43, .05, .17, 1),
            width .35s cubic-bezier(.43, .05, .17, 1),
            transform .35s cubic-bezier(.43, .05, .17, 1),
            background-color .25s ease;
    }

    .nav-open .modal-btn {
        background-color: transparent;
        border-color: #fff;
    }

    .nav-open .modal-btn-line {
        background-color: #fff;
    }

    .nav-open .modal-btn-line.line01 {
        top: 20px;
        width: 30px;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
    }

    .nav-open .modal-btn-line.line02 {
        top: 20px;
        width: 30px;
        -webkit-transform: rotate(-45deg);
        transform: rotate(-45deg);
    }

    .modal-btn:focus-visible {
        outline: 3px solid #005bac;
        outline-offset: 3px;
    }

    .nav-open .modal-btn:focus-visible {
        outline-color: #fff;
    }

    .header-nav {
        width: 100%;
        max-width: none;
        height: 100vh;
        height: -webkit-fill-available;
        height: 100dvh;
        right: 0;
        padding:
            clamp(76px, 10vh, 110px) clamp(18px, 6vw, 72px) calc(90px + env(safe-area-inset-bottom, 0px));
        background-color: transparent;
        color: #fff;
        opacity: 0;
        visibility: hidden;
        z-index: 998;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: none;
        scrollbar-width: none;
        pointer-events: none;
        transition:
            opacity .18s ease,
            visibility 0s linear .8s;
    }

    .header-nav::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }

    .nav-open .header-nav {
        width: 100%;
        max-width: none;
        opacity: 1;
        visibility: visible;
        z-index: 998;
        pointer-events: auto;
        transition:
            opacity .32s ease .38s,
            visibility 0s linear 0s;
    }

    .header-nav .h1-txt,
    .header-nav .nav-logo,
    .header-nav .nav-add,
    .header-nav .nav-tel,
    .header-nav .nav,
    .header-nav .head-icon,
    .header-nav>.blue-btn {
        opacity: 0;
        -webkit-transform: translate3d(0, 22px, 0);
        transform: translate3d(0, 22px, 0);
        transition:
            opacity .24s ease,
            transform .3s cubic-bezier(.43, .05, .17, 1);
    }

    .nav-open .header-nav .h1-txt,
    .nav-open .header-nav .nav-logo,
    .nav-open .header-nav .nav-add,
    .nav-open .header-nav .nav-tel,
    .nav-open .header-nav .nav,
    .nav-open .header-nav .head-icon,
    .nav-open .header-nav>.blue-btn {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }

    .nav-open .header-nav .h1-txt {
        transition-delay: .4s;
    }

    .nav-open .header-nav .nav-logo {
        transition-delay: .44s;
    }

    .nav-open .header-nav .nav-add {
        transition-delay: .48s;
    }

    .nav-open .header-nav .nav-tel {
        transition-delay: .52s;
    }

    .nav-open .header-nav .nav {
        transition-delay: .56s;
    }

    .nav-open .header-nav .head-icon {
        transition-delay: .62s;
    }

    .nav-open .header-nav>.blue-btn {
        transition-delay: .68s;
    }

    .header-nav .h1-txt {
        max-width: 760px;
        margin: 0 auto 10px;
        text-align: center;
        color: rgba(255, 255, 255, .8);
    }

    .header-nav .nav-logo {
        width: min(250px, 70vw);
    }

    .header-nav .nav-add,
    .header-nav .nav-tel {
        max-width: 720px;
        margin-right: auto;
        margin-left: auto;
        color: #fff;
    }

    .header-nav .nav-tel a {
        color: inherit;
    }

    .header-nav .nav {
        width: 100%;
        max-width: 720px;
        margin: 22px auto 30px;
    }

    .header-nav .list-a>.item>a {
        color: #fff;
        text-align: center;
        transition:
            color .25s ease,
            background-color .25s ease;
    }

    .header-nav .list-a>.item>a:hover,
    .header-nav .list-a>.item>a:focus-visible {
        color: #005bac;
        background-color: #fff;
    }

    .header-nav a:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 3px;
    }

    .header-nav .list-b>.item>a {
        color: rgba(255, 255, 255, .82);
        background-color: transparent;
        border-bottom-color: rgba(255, 255, 255, .18);
        transition:
            color .25s ease,
            background-color .25s ease;
        text-align: center;
    }

    .header-nav .list-b>.item>a:hover,
    .header-nav .list-b>.item>a:focus-visible {
        color: #005bac;
        background-color: #fff;
    }

    .nav-open .header-nav .blue-btn.blob a {
        color: #005bac;
        background-color: #fff;
    }

    .nav-open .header-nav .blue-btn.blob a::before {
        border-color: #fff;
    }

    .nav-open .header-nav .blue-btn.blob a:hover {
        color: #fff;
        background-color: transparent;
    }

    body.nav-open+.overlay,
    body.nav-open~.overlay {
        background-color: rgba(0, 0, 0, .16);
    }
}

@supports selector(html:has(body.nav-open)) {
    @media (max-width: 1024px) {
        html:has(body.nav-open) {
            overflow: hidden;
            overscroll-behavior: none;
        }
    }
}

@media (max-width: 599px) {
    .header-nav {
        padding-top: 72px;
    }

    .header-nav .nav {
        margin-top: 16px;
    }

    .header-nav .list-a>.item>a {
        padding: .6em 1em;
    }

    .header-nav .list-b>.item>a {
        padding-top: .45em;
        padding-bottom: .45em;
    }

    .header-nav {
        padding: 20px 15px;
    }

    .h1-txt {
        padding-right: 40px;
    }
    
    .reviews-grid {
        grid-template-columns: repeat(1, 1fr);
        gap: 50px 0px;
        padding: 0 30px;
    }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1024px) {

    .header::before,
    .header::after,
    .header-nav,
    .header-nav .h1-txt,
    .header-nav .nav-logo,
    .header-nav .nav-add,
    .header-nav .nav-tel,
    .header-nav .nav,
    .header-nav .head-icon,
    .header-nav>.blue-btn,
    .modal-btn,
    .modal-btn-line {
        transition: none !important;
    }
}

@media (min-width: 1025px) {
    body.nav-open {
        overflow: visible;
    }

    body.nav-open+.overlay,
    body.nav-open~.overlay {
        display: none;
    }
}
*[id] {
  scroll-margin-top: 80px;
}

.shine a{
  position:relative;
  overflow: hidden;
}

.shine a::before{
  content: "";
  animation: shine 3s cubic-bezier(0.25, 0, 0.25, 1) infinite;
  background-color: #fff;
  width: 140%;
  height: 100%;
  transform: skewX(-45deg);
  top: 0;
  left: -160%;
  opacity: 0.5;
  position: absolute;
}
/* 光の動き */
@keyframes shine{
  0% {
    left: -160%;
    opacity: 0;
  }
  70% {
    left: -160%;
    opacity: 0.5;
  }
  71% {
    left: -160%;
    opacity: 1;
  }
  100% {
    left: -20%;
    opacity: 0;
  }
}







.tab-container .btns {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  gap: 0;
  margin-bottom: 0;
  position: relative;
}

.tab-container .btns>li {
  flex: 1;
  padding: 16px 24px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  background: #e8f4fd;
  color: #1976d2;
  position: relative;
  border-radius: 12px 12px 0 0;
  margin-right: 4px;
}

.tab-container .btns>li:last-child {
  margin-right: 0;
}

.tab-container .btns>li.selected {
  color: #fff;
  background: #1976d2;
  box-shadow: 0 -4px 12px rgba(25, 118, 210, 0.3);
  z-index: 2;
}

.tab-container .btns>li.selected::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #1976d2;
}

.tab-container .btns>li:not(.selected):hover {
  background: #bbdefb;
  color: #1565c0;
  transform: translateY(-2px);
}

.tab-container .tab-content {
  display: none;
  padding: 50px;
  min-height: 150px;
  background: #fff;
  border: 2px solid #1976d2;
  border-top: none;
  border-radius: 0 0 12px 12px;
  box-shadow: 0 4px 12px rgba(25, 118, 210, 0.2);
  position: relative;
}

.tab-container .tab-content.selected {
  display: block;
  animation: bubbleIn 0.3s ease;
}

@keyframes bubbleIn {
  from { 
    opacity: 0; 
    transform: scale(0.95) translateY(-10px); 
  }
  to { 
    opacity: 1; 
    transform: scale(1) translateY(0); 
  }
}
