@charset "UTF-8";
@import url('./common.css') layer(base);
/* style.css */


.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%;
    position: fixed;
    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;
}

.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("#goo");
}

.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("#goo")) {
    .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("#goo")) {
    .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;
        width: 100%;
        max-width: 400px;
        position: fixed;
        top: 0;
        right: 100vw;
        background-color: #eefbff;
        z-index: 101;
        display: block;
        padding: 20px 10px 100px 10px;
        z-index: -999;
        opacity: 0;
        pointer-events: none;
        transition: all .3s;
        overflow-y: scroll;
    }

    .nav-open .header-nav {
        opacity: 1;
        right: 0;
        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>a {
        text-align: left;
        padding: 1em;
        border-bottom: 2px solid #005bac;
    }

    .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%;
    }

    .list-b>.item {
        width: 100%;
    }

    .list-b>.item>a {
        padding-left: 3em;
        background-color: #eefbff;
    }

    .list-b>.item>a::after {
        content: "";
        display: block;
        width: 1.5em;
        height: 1px;
        background-color: #005bac;
        margin-right: 0.5em;
        position: absolute;
        top: calc(50% - .5px);
        left: 1em;
        transition: .2s;
    }

    .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%;
    }

}

@media (max-width: 599px) {
    .list-a>.item>a {
        text-align: left;
        padding: .5em 1em;
        border-bottom: 2px solid #005bac;
    }

    .list-b>.item>a {
        padding: .5em 1em .5em 3em;
    }
}

.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(../images/pika.png);
    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: 0;
    background-image: url(../images/pika.png);
    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: 36px;
    letter-spacing: .1em;
    line-height: 1em;
}

.title-set01 .main-tit {
    font-size: 32px;
    font-weight: 600;
    color: #005bac;
}

.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(../images/bg01.png);
    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;
}

.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;
}

@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(../images/awd-left.png);
    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(../images/awd-right.png);
    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: 100svh;
    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% + 30px);
    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(../images/ribon.png);
    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: .7em 3em;
    color: #fff;
    background-color: #f73a25;
    font-weight: 900;
    font-size: 30px;
    border-radius: 40px;
    box-shadow: 0px 10px 0px 0px #880005;
    position: relative;
}

.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(../images/underp.png);
    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;
    margin: -100px auto;
    font-size: 100px;
    font-weight: 900;
    line-height: 1;
    padding: 100px 0 50px 0;
}

.rolal {
    display: block;
    height: 175px;
    width: 80px;
}

.rolal.left {
    background-image: url(../images/leaf-left.png);
    background-size: 100% 100%;
}

.rolal.right {
    background-image: url(../images/leaf-right.png);
    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: .3em 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(../images/fdl.png);
    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;
    }
}


.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: flex;
    align-items: center;
    gap: 20px;
    padding: .85em 0;
    border-bottom: 1px solid #ccc;
}

.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 {
        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-logo img {
    width: 250px;
    filter: brightness(999) grayscale(999);
}

.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;
    }
}

/* ===== パンくずリスト リンク色 ===== */
.breadcrumbs-home>a,
.breadcrumbs-parent>a {
    color: #005bac;
}

/* エージェント生成ページの .breadcrumb（複数形なし）も対応 */
.breadcrumb {
    padding: 30px 0;
    background-color: #fff;
}

.breadcrumb-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    list-style: none;
    font-size: 14px;
    padding-left: 1em;
}

.breadcrumb-item {
    display: inline;
}

.breadcrumb-item+.breadcrumb-item::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-item 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 {
    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 {
    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 {
    font-size: 12px;
    color: #005bac;
    background-color: #eefbff;
    padding: 2px 10px;
    border-radius: 20px;
    font-weight: 600;
}

.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;
    margin-bottom: 10px;
    font-weight: 600;
}

.results-card-title {
    font-size: 15px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.5;
}

@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 {
    background-color: #fff;
    border: 2px solid #c7e2ff;
    border-radius: 16px;
    overflow: hidden;
    transition: all .3s;
}

.service-link-item:hover {
    border-color: #005bac;
    background-color: #eefbff;
    opacity: 1;
}

.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;
}

.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 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.is-open .faq-item__answer {
    max-height: 800px;
    padding: 18px 20px;
}

/* ========================================================================
   お客様の声 カードリスト
   ======================================================================== */
.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;
    }
}

/* ========================================================================
   料金表 詳細バリエーション
   ======================================================================== */

.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;
}

/* ===== breadcrumbs-item (99results-detail.html) ===== */
.breadcrumbs-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;
    }
}

/* ========================================================================
   追加レスポンシブ (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;
}

@media(max-width:1024px) {
    .ttl .eng {
        font-size: 28px;
    }

    .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;
        box-shadow: 0px 5px 0px 0px #880005;
    }

    .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: -10px;
    }

    .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: 150px;
        height: 150px;
        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;
    }

}

/* ========================================================================
   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;
}

.service-link-item a:hover {
    color: #003d7a;
    opacity: 1;
}

@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: 0px;
    }

    .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: right;
}

.sec-lineup .lineup-node:nth-child(n+5) .lineup-node-label {
    left: 44px;
    text-align: left;
}

.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;
    }
}

/* ===== カテゴリーリスト（一覧・詳細共通） ===== */
.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: 0 0 40px;
    padding: 0;
}

.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;
}

.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;
        flex-direction: column;
        gap: 0;
    }

    .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;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid #c7e2ff;
}

.contact-item dt {
    width: 200px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    font-size: 15px;
    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) !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: 160px;
    height: 160px;
    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: 64px;
    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);
}

.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;
    }
}