/* google fonts  */
/* Zen Kaku Gothic New  (font-family: "Zen Kaku Gothic New", sans-serif;)*/
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p&family=Noto+Serif+JP:wght@200..900&family=Shippori+Antique&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&family=Zen+Old+Mincho&display=swap');
/* Kiwi Maru(font-family: "Kiwi Maru", serif;) */
@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru:wght@300;400;500&family=M+PLUS+1p&family=Noto+Serif+JP:wght@200..900&family=Shippori+Antique&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&family=Zen+Old+Mincho&display=swap');

* {
    margin: 0;
    box-sizing: border-box;
    position: relative;
    line-height: 1.5;

}

[id] {
    scroll-margin-top: 100px;
    /* 固定ヘッダーの高さ分を指定 */
}

.anm {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    transition-delay: 0.1s;
}

.anm.visible {
    opacity: 1;
    transform: translateY(0);
}

/*  共通化 */
.pc-none {
    display: none;
}

.pc-none {
    display: block;
}

/* 横幅共通化 */
.base-width {
    max-width: 700px;
    width: 90%;
    margin: auto;
}

/* フォントサイズ */
.base-h1 {
    font-size: 64px;
    font-weight: 400;
    line-height: 1.4;
}

.base-h2 {
    font-size: 32px;
    font-weight: 450;
}

.base-h3 {
    font-size: 24px;
    font-weight: 400;
}

.base-h4 {
    font-size: 22px;
    font-weight: 400;
}

.base-min-p {
    font-size: 14px;
}

.base-p {
    font-size: 16px;
    font-weight: 400;
}

.base-bg-p {
    font-size: 20px;

}

.line-height-bg {
    line-height: 1.9;
}

/* フォント */
.base-zenkaku-font {
    font-family: "Zen Kaku Gothic New", sans-serif;
}

.base-kiwi-font {
    font-family: "Kiwi Maru", serif;
}

/* テキストカラー */
.col-green {
    color: #378D79;
}

.col-red {
    color: #F44900;
}

.col-light-green {
    color: #7BBD00;
}

.col-gray {
    color: #838383;
}

/* カラー共通化 */
:root {
    --col-light-green: #E3E3E3;
    --col-green: #9FCCAE;
    --col-dark-green: #378D79;
    --col-red: #FFB697;
    --col-gray: #828887;
    --col-back-green: #e0f4e7;
    --col-dark-red: #F44900;
}

.custom-checkbox input[type="checkbox"],
.custom-checkbox input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border: 1px solid #999;
    border-radius: 50%;
    background-color: #fff;
    position: relative;
    cursor: pointer;
    transition: all 0.2s ease;
}

/* チェック状態の丸 */
.custom-checkbox input[type="checkbox"]:checked,
.custom-checkbox input[type="radio"]:checked {
    border-color: #378D79;
    background-color: #378D79;
}

.custom-checkbox input[type="checkbox"]:checked::after,
.custom-checkbox input[type="radio"]::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 50%;
}

/* ボタン */
.btn {
    padding: 10px 15px;
    background: linear-gradient(to right, #378D79, #00C4CA);
    border-radius: 50px;
    color: #fff;
    display: flex;
    align-items: center;
    text-decoration: none;
    height: fit-content;
}

/* 余白 */
.mgn-btm {
    margin-bottom: 50px;
}

.mgn-mid-btm {
    margin-bottom: 20px;
}

.mgn-min-btm {
    margin-bottom: 8px;
}

.mgn-btm-bg {
    margin-bottom: 300px;
}

/* ドット下線 */
.dot-bar-btm {
    border-bottom: dotted 3px;
    padding: 20px 0;
    /* font-weight: 500; */
}

/* 下線 */
.green-under-spn {
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-color: var(--col-green);
    font-weight: 500;
}

/* テキストの丸い背景 */
.txt-back {
    padding: 3px 20px;
    border-radius: 50px;
}

/* 強調 */
.base-mid-str {
    font-weight: 450;
}

.base-str {
    font-weight: 500;
}

/* 下矢印 */
.under-arrow {
    position: relative;
}

.under-arrow::after {
    position: absolute;
    bottom: -23px;
    left: 50%;
    transform: translateX(-50%);
    width: 30px;
    height: 30px;
    background: url(img/under-arrow.png);
    background-size: contain;
    background-repeat: no-repeat;
    content: '';
}


/*  Header  */
header {
    position: fixed;
    top: 0;
    width: 100%;
    height: 65px;
    z-index: 9999;
}

.header-container {
    width: 100%;
    height: 100%;
    border: 1px solid var(--col-light-green);
    display: flex;
    justify-content: space-between;
    background: #fff;
    position: relative;
    z-index: 999;
}

.header-lt-box {
    height: 100%;
    display: flex;
}

.header-lt-box img {
    height: 100%;
    object-fit: contain;
    aspect-ratio: 1/1;
    position: relative;
    z-index: 99;
}

.header-lt-txt-box {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
    padding: 0 20px;
    position: relative;
    z-index: 999;
}

.header-lt-txt-box .base-h3 {
    color: var(--col-dark-green);
    font-weight: 400;
}

.header-lt-txt-box .base-min-p {
    color: var(--col-gray);
}

.header-rt-box {
    display: flex;
    gap: 15px;
    padding-right: 15px;
    align-items: center;
}

.hed-link {
    text-decoration: none;
    color: #000;
}

.pc-header {
    display: flex;
}

.ham-menu {
    display: none;
    position: relative;
    z-index: 99;
}

.sp-header {
    position: absolute;
    right: -100vw;
    height: 100vh;
    padding: 150px 50px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    top: 0;
    background: #fff;
    transition: 0.5s ease;
    width: 100vw;
    justify-content: center;
    gap: 30px;
}

.ham-menu {
    height: 100%;
    padding: 0 20px;
}

.ham-btn {
    background: var(--col-dark-green);
    border: none;
    border-radius: 50px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: 24px;
}

.batu-icon {
    display: none;
}

.open {
    right: 0;
}

.close {
    right: -100vw;
}

@media(max-width:1200px) {
    .pc-header {
        display: none;
    }

    .ham-menu {
        display: flex;
        align-items: center;
    }
}



/*  main  */
main {
    width: 100%;
    display: flex;
    background: var(--col-back-green);
    overflow: hidden;
}

.main-container {
    max-width: 900px;
    width: 100%;
    margin: 65px auto 0;
    background: #fff;
}

/*  fv  */
.fv-top {
    width: 100%;
    height: 900px;
    background: url(img/fv.jpg);
    background-size: cover;
    display: flex;
    position: relative;
}

.fv-top .base-h1 {
    margin: auto auto 30px;
    position: relative;
    z-index: 10;
}

.fv-top .base-h1 span {
    line-height: 1.4;
}

.fv-top::after,
.fv-under::after,
.fv-under::before,
.rf-bk {
    width: 100%;
    position: absolute;
    height: 100px;
    background: linear-gradient(to bottom, transparent, #fff);
    bottom: -1px;
    right: 0;
    content: '';
}

.fv-under {
    display: flex;
    flex-direction: column;
    gap: 100px;
    width: 100%;
    height: 300px;
    background: url(img/fv-under-back.jpg);
    background-size: cover;
}

.fv-under::before {
    background: linear-gradient(to top, transparent, #fff);
    top: -1px;
}

.fv-under .base-p {
    margin-top: 0;
}

.fv-under-img-box {
    display: flex;
    justify-content: space-between;
    align-items: start;
    position: absolute;
    bottom: -215px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 999;
}

.under-img01 {
    object-fit: contain;
    width: 37%;
}

.under-img02 {
    object-fit: contain;
    width: 61%;
}

.rf-bk {
    background: url(img/fv-under-back.jpg);
    position: relative;
    width: 100%;
    height: 180px;
    display: flex;
    align-items: start;
    background-size: cover;
}

.rf-bk .base-p {
    margin-top: 40px;
}

.fv-under-txts .base-h2,
.fv-under-txts .base-h3 {
    font-weight: 300;
}

/* セクション１ */
.sec1-box {
    width: 100%;
    position: relative;
    display: flex;
    padding: 200px 0 0;
}

.sec1 .sec1-box {
    padding: 200px 0 100px;
}

.sec1-box::after {
    top: 0;
    left: 0;
    background: url(img/sec1-back1.jpg);
    background-size: cover;
    width: 100%;
    aspect-ratio: 5/2;
    position: absolute;
    content: '';
}

.sec1-el-box {
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2), 0 0 6px rgba(0, 0, 0, 0.1);
    padding: 30px 30px 50px;
    position: relative;
    z-index: 99;
}

.sec1-box1 .sec1-el-box .base-h3 {
    padding: 15px 0;
    text-align: center;
    border-bottom: 2px solid var(--col-green);
    margin: 30px 0;
}

.dot-emphasis {
    position: relative;
    display: inline-block;
    color: #000;
}

.dot-emphasis::before {
    content:'・';
    color: var(--col-green);
    position: absolute;
    top: -32px;
    font-size: 33px;
    left: -5px;
    right: 0;
    text-align: center;
    pointer-events: none;
}

.sec1-1-els {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 20px;
}

.sec1-1-el {
    padding: 20px;
    border-radius: 10px;
    border: 2px solid var(--col-green);
    width: 47%;
    max-width: 400px;
    text-align: center;
    min-height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sec1-box2::after {
    background: url(img/sec1-back2.jpg);
    background-size: cover;
}

.sec-1-el-top {
    border-color: var(--col-red);
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.sec-1-el-top .txt-back {
    color: #fff;
    background-color: var(--col-red);
    width: fit-content;
    margin: auto;
}

.sec-1-el-top .base-h3 {
    text-align: center;
}

.sec-1-el {
    padding: 20px 41px 15px;
    border-color: var(--col-red);
}

.sec1-box2 .sec-1-el .dot-bar-btm {
    border-color: var(--col-red);
}

.sec-1-el .base-bg-p {
    position: relative;
    font-weight: 400;
}

.sec-1-el .base-bg-p::before {
    content: '';
    background: url(img/check-red.png);
    width: 30px;
    height: 30px;
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    left: -40px;
    top: 7px;
}

.sec1-box3 .dot-bar-btm {
    border-color: var(--col-green);
}

.sec1-box3 .base-bg-p::before {
    background: url(img/check-green.png);
    background-size: contain;
    background-repeat: no-repeat;
}

.sec1-btm {
    position: relative;
    padding: 300px 0 0;
    display: flex;
}

.sec1-btm-back {
    width: 100%;
}

.sec1-btm-txt-box {
    position: absolute;
    top: 100px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 30px;
    z-index: 99;
}

.sec1-under::after {
    background: url(img/sec1-back3.jpg);
    background-size: cover;
}

/* 体験セッション */
.tkn {
    width: 100%;
    height: 430px;
    position: relative;
    display: flex;
}

.tkn-back {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right;
}

.tkn-box {
    display: flex;
}

.tkn-box>div {
    flex-direction: column;
    gap: 30px;
    text-align: center;
    width: fit-content;
    display: flex;
}

.tkn-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
    width: fit-content;
    margin: auto;
    padding: 10px 30px;
}

.tkn-btn::before {
    background: url(img/tkn-muryo.png);
    background-size: contain;
    width: 60px;
    height: 60px;
    top: -20px;
    left: -40px;
    position: absolute;
    background-repeat: no-repeat;
    content: '';
}

.rt-arrow {
    width: 10px;
    object-fit: contain;
}

/* セクション２  */
.sec2-box {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.sec2-back {
    width: 100%;
    height: 400px;
    object-fit: cover;
}

.sec2-back img {
    object-fit: cover;
    width: 100%;
}

.sec2-txt-box {
    padding: 30px 0;
}

.sec2-txt-box .base-h3 {
    text-align: center;
}

.sec2-box-top {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-color: var(--col-dark-green);
    padding: 10px 0;
}

.sec2-box-top .txt-back {
    background: var(--col-dark-green);
    margin: auto;
    color: #fff;
}

.sec2-box-top .base-h3 {
    text-align: center;
}

.sec2-box-btm {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2), 0 0 6px rgba(0, 0, 0, 0.1);
    padding: 50px 30px;
    position: relative;
    background: var(--col-back-green);
}

.sec2-box-btm::after {
    position: absolute;
    bottom: -80px;
    right: -100px;
    content: '';
    background: url(img/sec2-fl.png);
    background-size: contain;
    width: 250px;
    height: 250px;
}

.sec2-btm-ttl {
    top: -30px;
    right: 50%;
    transform: translateX(50%);
    background: var(--col-dark-green);
    width: 80%;
    text-align: center;
    position: absolute;
    color: #fff;
    padding: 10px;
}

.sec2-box-btm .dot-bar-btm {
    border-color: #C4DBCC;
    padding-right: 10px;
}

.sec2-box-btm .sec-1-el .base-bg-p::before {
    background: url(img/check-green2.png);
    background-size: contain;
    background-repeat: no-repeat;
}

/* セクション３ */
.sec3 {
    display: flex;
}

.sec3-box {
    display: flex;
    gap: 50px;
}

.sec4-hed-txts {
    padding: 40px 0;
}

.sec3-img {
    width: 30%;
    height: 300px;
    object-fit: cover;
}

.sec3-ttl {
    display: flex;
    flex-direction: column;
    gap: 20px;
    text-align: center;
    border-color: var(--col-dark-green);
}

.sec3-ttl-spn {
    background: var(--col-dark-green);
    margin: auto;
    color: #fff;
}

/* セクション４ */
.sec4 .sec-1-el-top .txt-back {
    background: var(--col-dark-green);
}

.sec4 .sec1-el-box {
    box-shadow: none;
}

.sec4 .sec1-box,
.sec7 .sec1-box {
    padding: 200px 0 0;
}

.happa-right {
    position: relative;
}

.happa-right::after {
    right: -100px;
    top: -120px;
    width: 250px;
    height: 300px;
    position: absolute;
    content: '';
    background: url(img/sec8-happa.png);
    background-size: contain;
    background-repeat: no-repeat;
}

.sec4 .sec1-box::after {
    background: url(img/sec4-fv.jpg);
    background-size: cover;
    background-position: center;
}

.sec4-el1 {
    display: flex;
    gap: 50px;
}

.sec4-el1 img {
    width: 200px;
    height: 200px;
    object-fit: cover;
}

.sec4-rt {
    display: flex;
    align-items: center;
}

.sec4-bf,
.sec4-af {
    padding: 30px;
    display: flex;
    position: relative;
}

.sec4-bf {
    background: #EFEFEF;
}

.sec4-af {
    background: #F3FFF7;
}

.sec4-img-box {
    position: relative;
}

.sec4-img-box .bf-cmt {
    background: #6D6D6D;
}

.sec4 .under-arrow {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 99;
    background: var(--col-dark-green);
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 5px;
    font-size: 18px;
    font-family: "Kiwi Maru", serif;
}

.sec4 .bf-cmt {
    background: #6D6D6D;

}

.sec4-img-box .bf-cmt::after {
    background: url(img/dark-under-arrow.png);
    background-size: contain;
    background-repeat: no-repeat;
}

.sec4-img-box .bf-cmt::after,
.sec4-img-box .under-arrow::after {
    width: 30px;
}

.sec4-el2 {
    display: flex;
    gap: 20px;
}

.sec4-img-box img {
    width: 200px;
    height: 160px;
    object-fit: cover;
}

.sec4-elscmt {
    background: #DBF3ED;
    padding: 30px;
}

.sec4-elcmt-bf {
    background: #D9D9D9;
}

/* セクション５"*/
.sec5-container {
    flex-direction: column;
}

.sec5 .sec1-box::after {
    background: url(img/sec5-fv.jpg);
    background-size: cover;
    background-position: center;
}

.sec5 .sec1-el-box {
    box-shadow: none;
    background: transparent;
}

.sec5 .base-h2 {
    color: #3B3B3B;
}

.sec5-ttl .dot-bar-btm {
    padding: 10px 0;
}

.sec5-cmt-box {
    display: flex;
    gap: 50px;
}

.sec5-img-box {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sec5-img-box img {
    width: 150px;
    height: 150px;
    border-radius: 50px;
    object-fit: cover;
}

.sec5-cmt-rt {
    display: flex;
    align-items: center;
    padding: 30px;
    background: #eaeaea;
    height: fit-content;
    border-radius: 10px;
}

.pink-back {
    background: #FFE8ED;
    position: relative;
}

.pink-back::before {
    position: absolute;
    /* top: 50%; */
    transform: translateX(50%);
    left: -60px;
    width: 60px;
    height: 60px;
    content: '';
    background: url(img/sec5-cmt-pink-lt.png);
    background-size: contain;
    bottom: 20%;
}

.blue-back {
    background: #F0F6FF;
    position: relative;
}

.blue-back::before {
    position: absolute;
    /* top: 50%; */
    transform: translateX(50%);
    right: -15px;
    width: 60px;
    height: 60px;
    content: '';
    background: url(img/sec5-cmt-blue.png);
    background-size: contain;
    background-repeat: no-repeat;
    bottom: 20%;
}

.sec5-img-naem {
    text-align: center;
}

/* セクション６ */
.sec6 {
    height: 600px;
    display: flex;
    position: relative;
}

.sec6-back-img {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 450px;
}

.sec6-back-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sec6-txt-box {
    margin: auto;
}

/* セクション７ */
.sec7 .sec1-box::after {
    background: url(img/sec7-fv1.jpg);
    background-size: cover !important;
    background-position: center !important;
}

.sec7-ttl-spn {
    background: var(--col-dark-green) !important;
}

.sec7-txt-box .base-h3 {
    text-align: center;
}

.sec7 .sec1-el-box {
    box-shadow: none;
}

.col-attention {
    color: #E82323;
    text-decoration: underline;
}

.sec7-txt-box1 {
    text-align: center;
}

.sec7-img-box {
    display: flex;
    justify-content: space-between;
}

.sec7-img-box img {
    width: 48%;
    height: 200px;
    object-fit: cover;
}

.sec7-box2::after {
    background: url(img/sec7-fv2.jpg) !important;
    background-size: cover !important;
    background-position: center;
}

.sec7-box2 {
    flex-direction: column;
}

.type-container {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2), 0 0 6px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    padding: 30px 0;
    position: relative;
    z-index: 99;
}

.type-content {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    width: 90%;
    margin: auto;
    flex-wrap: wrap;
}

.type-box {
    width: 47%;
    padding: 50px 30px 30px;
    position: relative;
    background: #E0F4E7;
    display: flex;
    gap: 20px;
    flex-direction: column;
    border-radius: 10px;
}

.type-box2 {
    background: #F1E9F3;
}

.type-box3 {
    background: #FFEEE8;
}

.type-box4 {
    background: #E3F4FF;
}

.type-logo {
    position: absolute;
    width: 100px;
    object-fit: contain;
    left: 30px;
    top: 30px;
}

.type-el {
    background: #fff;
    border-radius: 10px;
    position: relative;
    padding: 20px;
    text-align: center;
    height: 90px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.type-el-spn {
    position: absolute;
    top: -11px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    width: 100%;
}

.col-pur {
    color: #AD60B9;
}

.col-or {
    color: #E57E58;
}

.col-bl {
    color: #4895C8;
}

.ques-box .dot-bar-btm {
    padding: 10px 0;
    display: flex;
    gap: 10px;
    align-items: center;
}

.ques-mark-txt {
    display: flex;
    gap: 10px;
    align-items: start;
}

.ques-logo {
    width: 24px;
    object-fit: contain;
}

.ques-list-img {
    width: 15px;
    height: 15px;
    object-fit: cover;
    margin-top: 7px;
}

.pricing-table {
    width: 100%;
    border-collapse: collapse;
    font-family: sans-serif;
    background-color: #e6f3e9;
}

.pricing-table th,
.pricing-table td {
    border: 2px solid #ffffff;
    padding: 10px 16px;
    text-align: center;
}

.pricing-table thead th {
    background-color: #36836c;
    color: white;
    white-space: nowrap;
}

.pricing-table td {
    background: #E0F4E7;
}

.pricing-table tbody tr:nth-child(even) {
    background-color: #f0faf2;
}

.pricing-table tbody tr:nth-child(odd) {
    background-color: #e6f3e9;
}

/* セクション８ */
/* プロフィール全体のレイアウト */
/* セクション全体の余白調整 */
.sec8 {
    margin-bottom: 70px;
    display: flex;
}

/* プロフィールレイアウト */
.profile-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 50px;
}

/* プロフィール画像 */
.profile-wrapper img {
    max-width: 200px;
    height: auto;
    flex-shrink: 0;
}

.sec8-name {
    padding: 10px 0;
    border-color: var(--col-dark-green);
}

/* センタリング用 */
.txt-center {
    text-align: center;
}

/* メッセージボックス（白背景＋シャドウ） */
.hsp-ttl {
    border-color: var(--col-dark-green);
}

.hsp-message-box {
    background: #fff;
    padding: 40px 30px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2), 0 0 6px rgba(0, 0, 0, 0.1);
    margin: 0 auto;
    text-align: left;
    position: relative;
    z-index: 2;
}

.hsp-message-box::before {
    left: -50px;
    top: -80px;
    width: 250px;
    height: 300px;
    position: absolute;
    content: '';
    background: url(img/sec8-happa.png);
    background-size: contain;
    background-repeat: no-repeat;
}

.hsp-message-box .base-p {
    text-align: center;
}



/* 画像3枚横並び */
.hsp-photo-group {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 40px;
    position: relative;
    z-index: 2;
}

.sec8 {
    position: relative;
}

.sec8::after {
    position: absolute;
    bottom: 15%;
    left: 0;
    width: 100%;
    height: 670px;
    background: url(img/fv-under-back.jpg);
    background-size: contain;
    content: "";
    z-index: 1;
    background-repeat: no-repeat;
}

.hsp-photo-group img {
    width: 32%;
    height: auto;
    object-fit: cover;
}

.hsp-photo-group img:nth-child(1),
.hsp-photo-group img:nth-child(3) {
    margin-bottom: 20px;
}

.hsp-photo-group img:nth-child(2) {
    margin-top: 20px;
}

/* 結びメッセージ */
.hsp-message-conclusion {
    margin: 40px auto 0;
    text-align: left;
}

/* セクション９ */
/* セクション全体 */
.sec9 {
    display: flex;
    flex-direction: column;
}

.sec-story {
    margin-bottom: 100px;
    position: relative;
}

/* 上部のビジュアル画像 */
.story-visual {
    width: 100%;
    height: auto;
    overflow: hidden;
    margin-bottom: 40px;
    position: absolute;
    top: 0;
    left: 0;
}

.story-main-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 0;
}

/* コンテンツ内余白と幅 */
.story-content {

    margin: 0 auto;
    padding: 100px 20px 0;
    color: #333;
    position: relative;
    z-index: 3;
}

/* 小見出しの調整 */
.story-content h3 {
    margin-top: 40px;
}

.sec9-txt-hed {
    margin-bottom: 10px;
}

.sec9-back3::after {
    position: absolute;
    bottom: 21%;
    left: 0;
    width: 100%;
    height: 450px;
    background: url(img/sec9-back3.jpg);
    background-size: contain;
    content: '';
    background-repeat: no-repeat;
}

.sec9-width {
    width: 50%;
}

/* セクション１０ */
.sec10 {
    display: flex;
    margin-top: 200px;
}

.sec10-container {
    background: #fff;
    padding: 40px 50px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2), 0 0 6px rgba(0, 0, 0, 0.1);
    margin: 0 auto;
    position: relative;
    z-index: 2;
    padding-top: 350px;
}

.cert-image {
    position: absolute;
    top: -110px;
    transform: translateX(-50%);
    left: 50%;
    width: calc(100% - 100px);
}

/* 証明書画像 */
.certificate-img {
    max-width: 100%;
    height: auto;
}

/* 推薦文の右寄せ署名 */
.txt-right {
    text-align: right;
}

.sec10-ttl {
    border-color: var(--col-dark-green);
    padding: 10px 0;
}

/* セクション１１ */
/* グリッドレイアウト */
.article-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 30px;
    max-width: 1000px;
    margin: 0 auto;
}

/* 各記事カード */
.article-card {
    background: #fff;
    overflow: hidden;
}

.article-card img {
    width: 100%;
    height: auto;
    display: block;
}

/* ボタン中央揃え */
.txt-center {
    text-align: center;
}

.sec11 .sec1-box::after {
    background: url(img/sec11-fv.png);
    background-size: cover;
}

.sec11-txt {
    padding: 10px 0;
}

.sec11-btn {
    padding: 20px 30px;
    background: var(--col-dark-green);
    color: #fff;
    text-decoration: none;
    margin-top: 50px;
}

/* セクション１２ */
.sec12 {
    flex-direction: column;
    position: relative;
    z-index: 2;
}

.sec12 .sec1-el-box {
    box-shadow: none;
}

.sec12 .ques-box .dot-bar-btm {
    border-color: var(--col-dark-green);
}

/* セクション１３ */
.sec13 {
    display: flex;
    position: relative;
}

.sec13::after {
    position: absolute;
    top: -88px;
    left: 0;
    width: 100%;
    background: url(img/fv-under-back.jpg);
    height: 600px;
    background-size: contain;
    background-repeat: no-repeat;
    content: '';
    z-index: 1;
}

.sec13-container {
    position: relative;
    z-index: 3;
}

.contact-top {
    padding: 30px;
    border-radius: 10px;
    border: 2px solid var(--col-dark-green);
    background: var(--col-back-green);
}

.sec13 .col-red {
    text-decoration: underline;
}

.form-wrapper {
    margin: 0 auto;
    background: #ffffff;
    padding: 40px 30px;
    border: 1px solid var(--col-back-green);
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.03);
}

/* 見出し */
.form-wrapper h2 {
    font-size: 20px;
    font-weight: 400;
    text-align: center;
    margin-bottom: 30px;
    line-height: 1.6;
}

/* 各入力グループ */
.form-group {
    margin-bottom: 30px;
}

.form-group label {
    display: block;
    font-weight: 500;
}

/* テキスト入力・選択・テキストエリア */
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #D9E8D5;
    background: #F5FCF7;
    border-radius: 10px;
    font-family: inherit;
    box-sizing: border-box;
}

.form-group textarea {
    min-height: 100px;
    resize: vertical;
}

.schedule-row {
    display: flex;
    gap: 10px;
    align-items: center;
}

.schedule-row span {
    flex: 1;
}

.schedule-row input {
    flex: 3;
}

/* チェックボックス・ラジオボタン */
.checkbox-group label,
.radio-group label,
.names-contaner,
.form-boxs {
    display: block;
    background: #E0F4E7;
    /* border: 1px solid #D9E8D5; */
    border-radius: 10px;
    padding: 12px 16px;
    cursor: pointer;
}

.custom-checkbox {
    display: flex !important;
    align-items: start;
}

.custom-checkbox input {
    margin-top: 4px;
}

.select-wrapper select {
    appearance: none;
    /* Safari & Chrome */
    -webkit-appearance: none;
    /* iOS */
    -moz-appearance: none;
    /* Firefox */
    padding: 10px;
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 6px;
    background-color: white;
    background-image: url('data:image/svg+xml;utf8,<svg fill="black" height="12" viewBox="0 0 24 24" width="12" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 24px;
}

.custom-check-spn {
    flex: 8;
}

.checkbox-group input,
.radio-group input {
    margin-right: 10px;
    vertical-align: middle;
}

/* ボタン */
.form-submit {
    text-align: center;
    border: none;
}

.form-section .sec11-btn {
    padding: 15px 80px;
    background: var(--col-dark-green);
    color: #fff;
    text-decoration: none;
    margin-top: 0;
    border: none;
}

.form-section .mgn-min-btm {
    margin-bottom: 10px;
}

/* プレースホルダーカラー（やや薄く） */
input::placeholder,
textarea::placeholder {
    color: #999;
}

.names-contaner,
.txtarea,
.age-box,
.form-boxs {
    display: flex !important;
    flex-direction: column;
    gap: 10px;

}

/* .form-names-box {
    display: flex;
    gap: 30px;
    align-items: center;
}
 */

.names-hed {
    white-space: nowrap;
    width: 80px;
}

.age-els {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.age-el {
    display: flex;
    align-items: center;
}

.custom-textarea:focus,
.custom-text:focus {
    border-color: var(--col-dark-green);
    /* お好きな色に変更可能 */
    outline: none;
    /* ブラウザの青い枠を消す場合 */
}

.form-section input:focus,
.form-section select:focus,
.form-section textarea:focus {
    border-color: var(--col-dark-green);
    /* 緑色（Bootstrapのsuccessカラー） */
    outline: none;
    /* デフォルトの青枠を消す場合 */
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.footer {
    background: var(--col-dark-green);
    padding: 15px;
    text-align: center;
    color: #fff;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
    .story-content {
        padding: 50px 15px;
    }

    .hsp-message-box,
    .hsp-message-conclusion {
        padding: 20px;
    }

    .profile-wrapper {
        flex-direction: column;
        align-items: center;
        text-align: center;
        margin-bottom: 100px;
    }

    .profile-wrapper img {
        max-width: 180px;
        margin-bottom: 20px;
    }

    .profile-wrapper div {
        text-align: left;
    }

    .sec2-box-btm::after {
        right: -45px;
        width: 200px;
        height: 200px;
    }

    .happa-right::after {
        right: -50px;
        top: -130px;
        width: 200px;
        height: 200px;
    }
}

@media screen and (max-width: 600px) {

    /* 共通 */
    .base-h1 {
        font-size: 31px;
    }

    .base-h2 {
        font-size: 20px;
        text-align: justify;
    }

    .base-h3 {
        font-size: 18px;
    }

    .base-h4 {
        font-size: 19px;
    }

    .base-min-p {
        font-size: 12px;
    }

    .base-p {
        font-size: 16px;
        font-weight: 400;
        text-align: justify;
        line-height: 1.7;
    }

    .sec1-box1 .sec1-el-box .base-h3 {
        margin: 0px 0 30px;
    }

    .base-bg-p {
        font-size: 16px;
        text-align: justify;
    }

    .sec1 .sec1-box {
        padding: 200px 0 0px;
    }


    .header-lt-txt-box {
        padding-left: 5px;
        padding-right: 0;
    }

    .ham-menu {
        padding-left: 5px;
    }

    .header-lt-txt-box .base-h3 {
		font-size: 19px;
        letter-spacing: -2px;
    }
	
.ham-menu {
    height: 100%;
    padding: 0 5px;
}

    .header-lt-box .base-min-p {
        font-size: 12px;
    }

    .fv-top {
        height: 500px;
    }

    .fv-under-img-box {
        bottom: -100px;
    }

    .mgn-btm-bg {
        margin-bottom: 200px;
    }

    .form-wrapper {
        padding: 20px;
    }

    .form-group input,
    .form-group textarea,
    .form-group select {
        font-size: 15px;
    }

    .pc-none {
        display: block;
    }

    .sp-none {
        display: none;
    }

    .sec1-box::after {
        aspect-ratio: 1/1;
        background-position: center !important;
        background-size: cover !important;
    }

    .sec1-1-el {
        width: 100%;
        max-width: none;
    }

    .sec-1-el {
        padding: 30px 0 30px 38px;
    }

    .sec2-box-btm {
        padding: 18px 30px;
    }

    .sec2-box-btm::after {
        right: -42px;
        bottom: -68px;
        width: 200px;
        height: 200px;
    }

    .sec1-btm {
        padding: 350px 0 0;
    }


    .sec1-1-el {
        padding: 20px;
        min-height: initial;
        align-items: center;
    }

    .tkn {
        height: auto;
        flex-direction: column;
        /* gap: 30px; */
        background: var(--col-back-green);
    }

    .tkn-back {
        aspect-ratio: 3/2;
        position: relative;
    }

    .tkn-box {
        display: flex;
        padding: 30px 0px;
        justify-content: center;
    }

    .sec2-back {
        height: 320px;
    }

    .sec2-back img {
        aspect-ratio: 3/2;
        object-position: left;
    }

    .sec2-btm-ttl {
        top: -30px;
    }

    .sec2-hed {
        font-size: 16px;
    }

    .sec2-box-btm {
        margin-top: 50px;
    }

    .sec3-box {
        flex-direction: column;
        gap: 20px;
    }

    .sec3-img {
        width: 60%;
        height: 150px;
        margin: 0 auto 10px;
    }


    .sec1-el-box {
        padding: 30px 20px 50px;
    }

    .sec4-el1 {
        flex-direction: column;
        gap: 20px;
    }

    .sec4-el1 img {
        width: 100%;
    }

    .sec4-img-box img {
        width: 100%;
    }

    .sec4-el2 {
        flex-direction: column;
    }

    .pricing-table-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .pricing-table {
        min-width: 600px;
        /* テーブル幅を強制的に広げる */
    }

    .sec5 .sec1-el-box {
        padding: 30px 0;
    }

    .sec5-cmt-box {
        flex-direction: column;
    }

    .sec5-img-box {
        display: flex;
        flex-direction: row;
        gap: 10px;
        align-items: center;
    }

    .cert-image {
        top: -26vw;
    }

    .pink-back::before,
    .blue-back::before {
        position: absolute;
        top: -37px;
        transform: translateX(-50%) rotate(90deg);
        left: 50%;
        width: 60px;
        height: 60px;
        content: '';
        background: url(img/sec5-cmt-pink-lt.png);
        background-size: contain;
        bottom: 20%;
        background-repeat: no-repeat;
    }

    .blue-back::before {
        background: url(img/sec5-cmt-blue.png);
        transform: rotate(0);
        background-repeat: no-repeat;
        left: 30%;


    }

    .sec5-cmt-box:nth-child(2) {
        flex-direction: column-reverse;
    }

    .type-box {
        width: 100%;
    }

    .type-box .base-h3 {
        font-size: 25px;
        font-weight: 500;
    }

    .hsp-photo-group {
        gap: 0;
    }

    .hsp-photo-group img {
        width: 32%;
    }

    .sec2-box-btm::after {
        right: -37px;
        width: 170px;
        height: 170px;
    }

    .sec9-width {
        width: 100%;
    }

    .sec10-container {
        padding-top: 26vw;
        padding-right: 30px;
        padding-left: 30px;
    }

    .cert-image {
        width: calc(100% - 60px);
    }

    .schedule-row {
        flex-wrap: wrap;
    }

    .kibou-group span {
        white-space: nowrap;
    }

    .hsp-message-box::before {
        width: 200px;
    }
	
.footer {
    margin-bottom: 60px;
}
	
.fixed a {
    padding: 20px;
    background: orange;
    color: #fff;
    text-decoration: initial;
    width: 100%;
    display: block;
    text-align: center;
    position: fixed;
    bottom: 0;
    font-size: 16px;
    font-weight: bold;
    letter-spacing: 1px;
	cursor: pointer;
	z-index: 200;
}
	
.fixed a:hover {
	opacity: .8;
}
	
}