@charset "UTF-8";
@import "base.css";
@import "fonts.css";
/* @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Oswald:wght@200..700&display=swap'); */
/*==========================================================================*/
/*                                                                          */
/*    base.css  --> スタイルの初期設定を行うため、変更しないで下さい。      */
/*    fonts.css --> フォントの初期設定を行うため、変更しないで下さい。      */
/*                                                                          */
/*==========================================================================*/
/*==========================================================================*/
/*                           Common-Setting                                 */
/*==========================================================================*/
/* 基本タグのフォントサイズを指定（12px -> 120% or 1.2em ） */
h1, h2, h3, h4, h5, h6, input, button, textarea, select, p, blockquote, th, td, pre, address, li, dt, dd, del {
    font-size: 180%;
    -webkit-text-size-adjust: none;
    font-weight: 500;
}
*, ::before, ::after {
    box-sizing: border-box;
    outline: none;
}
img {
    vertical-align: middle;
    max-width: 100%;
    flex-shrink: 0;
    height: auto;
}
select {
    visibility: visible !important;
}
a {
    transition: all ease 0.3s;
    text-decoration: none;
    color: var(--txt);
}
a[href^="tel:"] {
    word-break: keep-all;
}
video {
    max-width: 100%;
    height: auto;
}
figure {
    margin: 0;
}
figure:not(:last-child) {
    margin-bottom: 20px;
}
/*==========================================================================*/
/*                               Container                                  */
/*==========================================================================*/
html {
    background: #fff
}
body {
    -webkit-text-size-adjust: none;
    min-width: 320px;
    color: var(--txt);
    font-family: var(--f-main)
}
table {
    width: 100%
}
h1, h2, h3, h4, h5, h6 {
    line-height: 1.4;
}
p, dd, dt, li, th, td, address {
    line-height: 2em;
    letter-spacing: 0;
}
p {
    margin: 0 0 1.66em;
}
p:last-child {
    margin-bottom: 0
}
.bold {
    font-weight: bold;
}
.left {
    text-align: left
}
.right {
    text-align: right;
}
.auto {
    margin-left: auto;
    margin-right: auto;
}
.red {
    color: var(--red);
}
.txt_u {
    text-decoration: underline;
}
.f_big {
    font-size: 150%;
}
.f_sm {
    font-size: 80%;
}
.m0a {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
:root {
    --txt: #000;
    --mcolor: #00a4e4;
    --scolor: #00aa74;
    --org: #f57300;
    --container: 1430px;
    --gray: #e9e9e9;
    --blue: #003b7d;
    --red: red;
    --f-main: 'Noto Sans JP', sans-serif;
    --f-en: "Oswald", sans-serif;
}
#wrapper {
    min-width: 1260px;
    overflow: hidden;
    margin: 0 auto;
    max-width: 1920px;
}
.inner {
    width: var(--container);
    margin: 0 auto;
    position: relative;
    max-width: 100%;
    padding: 0px 15px;
}
/*==========================================================
                       H E A D E R
==========================================================*/
/* HAMBUGER BUTTON */
.hamburger {
    font: inherit;
    display: block;
    overflow: visible;
    margin: 0;
    padding: 10px 8px 5px;
    cursor: pointer;
    transition-timing-function: linear;
    transition-duration: .15s;
    transition-property: opacity, filter;
    text-transform: none;
    color: inherit;
    border: 0
}
.hamburger-box {
    position: relative;
    display: inline-block;
    width: 35px;
    height: 24px
}
.hamburger-inner {
    top: 50%;
    display: block;
    margin-top: -2px
}
.hamburger-inner, .hamburger-inner::after, .hamburger-inner::before {
    position: absolute;
    width: 35px;
    height: 2px;
    transition: all ease 0.15s;
    background-color: #000
}
.hamburger-inner::after, .hamburger-inner::before {
    display: block;
    content: ""
}
.hamburger-inner::before {
    top: -10px
}
.hamburger-inner::after {
    bottom: -10px
}
.hamburger--3dxy .hamburger-box {
    perspective: 80px
}
.hamburger--3dxy .hamburger-inner {
    transition: transform .15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0 cubic-bezier(0.645, 0.045, 0.355, 1) .1s
}
.hamburger--3dxy .hamburger-inner::after, .hamburger--3dxy .hamburger-inner::before {
    transition: transform cubic-bezier(0.645, 0.045, 0.355, 1) .1s
}
.hamburger--3dxy.is_active .hamburger-inner {
    transform: rotateX(180deg) rotateY(180deg);
    background-color: transparent !important
}
.hamburger--3dxy.is_active .hamburger-inner::before {
    transform: translate3d(0, 10px, 0) rotate(45deg)
}
.hamburger--3dxy.is_active .hamburger-inner::after {
    transform: translate3d(0, -10px, 0) rotate(-45deg)
}
header {
    position: relative;
    z-index: 9;
}
h1 {
    padding: 10px 0;
}
.h_box {
    width: calc(100% - 40px);
    position: fixed;
    background-color: #fff;
    right: 20px;
    border-radius: 60px;
    top: 20px;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.10);
    padding: 19px 0 18px;
}
.h_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    width: 100%;
}
.h_left {
    flex-shrink: 0;
    padding-left: 30px;
}
.h_contact {
    display: flex;
    align-items: center;
}
.h_contact_mail {
    margin: -60px -35px 0px 0;
    position: relative;
    top: 30px;
}
.h_contact > p {
    margin-bottom: 0;
}
.h_contact > p:not(:last-child) {
    margin-right: 40px;
}
.h_contact_mail a {
    color: #FFF;
    font-weight: 500;
    text-align: center;
    background-color: var(--org);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 180px;
    height: 140px;
    position: relative;
    border-radius: 70px 0 0 70px;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
    padding-left: 19px;
    letter-spacing: 0.06em;
}
.h_contact_mail a span {
    position: relative;
    z-index: 2;
    font-size: 20px;
    display: inline-block;
    padding-top: 51px;
}
.h_contact_mail a span::before {
    content: '';
    position: absolute;
    width: 45px;
    height: 30px;
    left: 0;
    right: 0;
    top: 10px;
    margin: 0 auto;
    background: url('../images/icon_mail.png') no-repeat center /cover;
}
.h_contact_tel a {
    font-size: 42px;
    font-weight: bold;
    padding-left: 37px;
    position: relative;
    line-height: 1;
    display: block;
    color: var(--mcolor);
    font-family: var(--f-en);
    letter-spacing: 0.01em;
    margin-bottom: 12px;
}
.h_contact_tel a:before {
    position: absolute;
    content: "";
    background: url("../images/icon_tel.png") no-repeat left center/cover;
    width: 31px;
    height: 31px;
    left: 0;
    top: 9px;
}
.h_contact_tel .time {
    display: flex;
    line-height: 1.6;
    color: #333333;
    gap: 15px;
    justify-content: flex-end;
}
.h_contact_tel .time .label {
    width: 140px;
    height: 28px;
    background: #ebf9ff;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
}
/*==========================================================
                  M A I N    V I S U A L
==========================================================*/
main {
    position: relative;
    z-index: 2;
}
.mv {
    position: relative;
    padding: 0;
    height: 900px;
    display: flex;
    margin-bottom: 94px;
}

.mv:before, .mv:after {
    position: absolute;
    content: "";
}
/*.mv:before {
    background: url("../images/main_pc.jpg") no-repeat center top/1920px;
    width: 1920px;
    height: 100%;
    left: calc(50% - 960px);
    z-index: -1;
}*/
.mv:after {
    background: url("../images/mv_brush.png") no-repeat center top/cover;
    width: 667px;
    height: 658px;
    right: -10px;
    top: 85px;
}
.mv_txt {
    margin-left: auto;
    padding: 246px 15px 0;
    width: 840px;
    margin-right: 60px;
    position: relative;
    z-index: 1;
}
.mv_txt h2 {
    font-size: 86px;
    font-weight: 900;
    text-align: center;
    color: #333;
    margin-bottom: 46px;
    position: relative;
    margin-left: 24px;
    text-shadow: 0 0 2px #fff, 0 0 4px #fff, 0 0 8px rgba(255, 255, 255, 0.95), 0 0 20px rgba(255, 255, 255, 0.8)
}
.mv_txt h2 .blue {
    color: var(--mcolor);
    font-size: 123%;
    margin-left: 20px;
}
.mv_txt h2 .blue .let1 {
    margin: 0 -15px;
}
.mv_map {
    position: absolute;
    left: 252px;
    bottom: -14px;
    width: 344px;
    height: 154px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
    padding: 10px;
}
.mv_map:before {
    position: absolute;
    content: "";
    background: url("../images/mv_map.png") no-repeat center top/cover;
    width: 388px;
    height: 388px;
    left: -303px;
    bottom: -83px;
    z-index: -1;
}
.mv_map_ttl {
    background: var(--mcolor);
    color: #fff;
    text-align: center;
    font-size: 24px;
    font-weight: 900;
    border-radius: 10px;
    padding: 6px 0 5px;
    margin-bottom: 8px;
}
.mv_map_txt {
    line-height: 1.75;
    text-align: center;
    font-weight: 500;
    color: #333;
}
.mv_list {
    display: flex;
    gap: 20px;
    margin-bottom: 15px;
    justify-content: center;
    left: 15px;
    position: relative;
}
.mv_list li {
    width: 247px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 46px;
    color: #333;
    font-weight: bold;
    text-align: center;
    background: #fff;
    border: 2px var(--mcolor) solid;
    border-radius: 45px;
    padding-right: 15px;
}
.mv_list li span {
    background: url("../images/icon_check.png") no-repeat left center;
    padding-left: 60px;
}
.mv_bnr {
    background-color: rgba(0, 160, 231, 0.7);
    width: 840px;
    height: 245px;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 2px;
}
.mv_bnr_tt {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 25px;
}
.mv_bnr_tt .bg {
    background: #fff;
    width: 623px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    font-weight: bold;
    color: #333;
    border-radius: 8px;
    position: relative;
    padding-left: 55px;
}
.mv_bnr_tt .bg:before {
    position: absolute;
    content: "";
    background: url("../images/icon_pp1.png") no-repeat left center/cover;
    width: 83px;
    height: 89px;
    left: -10px;
    top: -4px;
}
.mv_bnr_tt .txt {
    font-size: 34px;
    color: #fff;
    font-weight: bold;
    position: relative;
    margin-bottom: -14px;
}
.mv_bnr_lg {
    font-size: 70px;
    font-weight: 900;
    color: #fff;
    line-height: 1;
}
/*==========================================================
                M A I N    C O N T E N T
==========================================================*/
/* DEFAULT TITLE */
.ttl_h3 {
    text-align: center;
    font-weight: 900;
    font-size: 42px;
    color: #333;
    letter-spacing: 0.06em;
}
.ttl_h3:not(:last-child) {
    margin-bottom: 30px;
}
.box_shaw img {
    box-shadow: 3px 4px 6px rgba(0, 0, 0, 0.2);
}
.blue {
    color: var(--mcolor);
}
.idx_txt p {
    color: #333;
    letter-spacing: 0.06em;
    line-height: 1.66;
}
/* DEFAUTL NAME BUTTON */
.btn a {
    width: 400px;
    height: 82px;
    border-radius: 999px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: url('../images/arrow_w_lg.png') no-repeat right 25px center/28px var(--scolor);
    font-size: 20px;
    color: #fff;
    font-weight: bold;
    letter-spacing: 0.06em;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
    text-align: center;
    line-height: 1.4;
}
.btn.center a {
    margin-left: auto;
    margin-right: auto;
}
.btn_box:not(:last-child) {
    margin-bottom: 30px;
}
.btn_box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 31px;
    margin-top: 51px;
}
.btn_box .btn {
    margin: 10px;
}
/*============= SEC01 ==============*/
.sec01 {
    position: relative;
    padding-bottom: 200px;
}
.sec01:before, .sec01:after {
    position: absolute;
    content: "";
}
.sec01:before {
    z-index: -1;
    background: url("../images/idx_bg03.avif") no-repeat center top/1920px;
    width: 1920px;
    left: calc(50% - 960px);
    top: 243px;
    height: 1321px;
}
.sec01:after {
    background: url("../images/flower1.png") no-repeat center top/cover;
    width: 561px;
    height: 376px;
    left: 385px;
    right: 0;
    top: 90px;
    margin: 0 auto;
}
.sec01 .inner {
    z-index: 3;
    width: 100%;
    padding: 375px 192px 18px;
}
.sec01_img_top_left {
    display: flex;
    position: absolute;
    left: -6px;
    top: 0;
    z-index: 1;
}
.sec01_img_top_right {
    position: absolute;
    right: 57px;
    top: 49px;
    z-index: 1;
}
.sec01 .img1 {
    margin-top: 105px;
    margin-right: -120px;
    position: relative;
}
.sec01 .img1 img {
    border-radius: 0px 30px 30px 0;
}
.sec01 .img2 img, .sec01 .img3 img {
    border-radius: 30px;
}
.sec01_item {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px 40px;
    margin-top: 105px;
}
.sec01_item .item {
    height: 240px;
    position: relative;
    background: #fff;
    box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.18);
    transition: all 0.3s;
    cursor: pointer;
    border-radius: 20px 20px 0 20px;
}
.sec01_item .item:after {
    position: absolute;
    content: "";
    background: url("../images/arrow_right.png")var(--mcolor) no-repeat center/22px;
    width: 64px;
    height: 40px;
    border-radius: 10px 0px 0px 0px;
    right: 0;
    bottom: 0;
}
.sec01_item .item a {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1;
    left: 0;
    top: 0;
}
.sec01_item .item1, .sec01_item .item4 {
    margin-top: 100px;
}
.sec01_item .item4 {
    height: 280px;
}
.sec01_item .item2, .sec01_item .item5 {
    margin-top: 50px;
}
.sec01_item .item:before {
    position: absolute;
    content: "";
    border: 2px var(--mcolor) dashed;
    border-radius: 20px;
    top: 9px;
    bottom: 9px;
    left: 9px;
    right: 9px;
    pointer-events: none;
}
.sec03_img {
    position: relative;
}
.sec03_img:before {
    position: absolute;
    content: "";
    z-index: 1;
}
.sec03_img.img1:before {
    background: url("../images/icon_pp2.png") no-repeat center top/cover;
    width: 236px;
    height: 226px;
    left: -138px;
    bottom: 10px;
}
.sec03_img.img2:before {
    background: url("../images/icon_pp3.png") no-repeat center top/cover;
    width: 286px;
    height: 185px;
    right: 26px;
    bottom: -28px;
}
.sec01_item .item .icon {
    position: absolute;
    left: 2px;
    right: 0;
    top: -74px;
    margin: 0 auto;
    text-align: center;
}
.sec01_item .item.item2 .icon {
    top: -83px;
}
.sec01_item .item .title {
    color: #333;
    font-size: 24px;
    font-weight: 900;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 100px;
    text-align: center;
}
.sec01_item .item .title .lg {
    color: var(--mcolor);
    font-size: 133%;
    margin-top: 2px;
}
.sec01_img_bt_left, .sec01_img_bt_right {
    position: absolute;
}
.sec01_img_bt_left .img4 img {
    border-radius: 0 30px 30px 0;
}
.sec01_img_bt_left {
    left: -7px;
    bottom: -80px;
}
.sec01_img_bt_right {
    right: -8px;
    bottom: -67px;
    display: flex;
    align-items: flex-end;
    z-index: 2;
}
.sec01_img_bt_right .img5 img {
    border-radius: 30px;
}
.sec01_img_bt_right .img5 {
    margin-right: -138px;
    z-index: 1;
    margin-bottom: -100px;
}
.sec01_img_bt_right .img6 img {
    border-radius: 30px 0 0 30px;
}
/*============= SEC02 ==============*/
.sec02 {
    padding-top: 467px;
    position: relative;
}
.sec02 .inner {
    width: 100%;
    padding: 0;
}
.sec02:before {
    position: absolute;
    content: "";
    background: url("../images/idx_bg01.avif") no-repeat center top/1920px;
    width: 1920px;
    height: 480px;
    left: calc(50% - 960px);
    top: 82px;
    z-index: 1;
}
.sec02_ttl {
    text-align: center;
    margin-bottom: 88px;
}
.sec02_ttl_sm {
    display: flex;
    justify-content: center;
    gap: 15px;
    position: relative;
    z-index: 2;
    width: fit-content;
    margin: 0 auto 3px;
}
.sec02_ttl_sm:before {
    position: absolute;
    content: "";
    background: url(../images/flower2.png) no-repeat center top / cover;
    width: 66px;
    height: 64px;
    left: -50px;
    top: -49px;
}
.sec02_ttl_sm .sm {
    color: #000033;
    font-size: 32px;
    font-weight: 900;
    text-shadow: rgb(255, 255, 255) 4px 0px 0px, rgb(255, 255, 255) 3.87565px 0.989616px 0px, rgb(255, 255, 255) 3.51033px 1.9177px 0px, rgb(255, 255, 255) 2.92676px 2.72656px 0px, rgb(255, 255, 255) 2.16121px 3.36588px 0px, rgb(255, 255, 255) 1.26129px 3.79594px 0px, rgb(255, 255, 255) 0.282949px 3.98998px 0px, rgb(255, 255, 255) -0.712984px 3.93594px 0px, rgb(255, 255, 255) -1.66459px 3.63719px 0px, rgb(255, 255, 255) -2.51269px 3.11229px 0px, rgb(255, 255, 255) -3.20457px 2.39389px 0px, rgb(255, 255, 255) -3.69721px 1.52664px 0px, rgb(255, 255, 255) -3.95997px 0.56448px 0px, rgb(255, 255, 255) -3.97652px -0.432781px 0px, rgb(255, 255, 255) -3.74583px -1.40313px 0px, rgb(255, 255, 255) -3.28224px -2.28625px 0px, rgb(255, 255, 255) -2.61457px -3.02721px 0px, rgb(255, 255, 255) -1.78435px -3.57996px 0px, rgb(255, 255, 255) -0.843183px -3.91012px 0px, rgb(255, 255, 255) 0.150409px -3.99717px 0px, rgb(255, 255, 255) 1.13465px -3.8357px 0px, rgb(255, 255, 255) 2.04834px -3.43574px 0px, rgb(255, 255, 255) 2.83468px -2.82216px 0px, rgb(255, 255, 255) 3.44477px -2.03312px 0px, rgb(255, 255, 255) 3.84068px -1.11766px 0px, rgb(255, 255, 255) 3.9978px -0.132717px 0px;
    letter-spacing: 0.06em;
    align-self: flex-end;
    margin-bottom: 7px;
}
.sec02_ttl_sm .lable {
    background: var(--mcolor);
    color: #fff;
    border: 4px #fff solid;
    border-radius: 20px;
    font-size: 42px;
    font-weight: 900;
    padding: 16px 17px;
}
.sec02_ttl .txt {
    font-size: 62px;
    font-weight: 900;
    position: relative;
    margin-left: 7px;
    line-height: 1;
    top: -3px;
}
.sec02_ttl .txt .num {
    font-weight: bold;
    font-family: var(--f-en);
    font-size: 82px;
    margin-right: 4px;
}
.sec02_ttl .title {
    background: #fff;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    color: #333;
}
.sec02_ttl .sec02_logo {}
.sec02_ttl .sec02_logo .txt {}
.sec02_ttl .sec02_logo .txt .num {}
.sec02_item {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    gap: 112px 20px;
    padding: 0 54px;
    position: relative;
    margin-bottom: 36px;
}
.sec02_item:before, .sec02_item:after {
    position: absolute;
    content: "";
    height: 280px;
    background: #d4ecf7;
    width: calc(100% - 225px);
    z-index: -1;
}
.sec02_item:before {
    left: 0;
    top: -40px;
    border-radius: 0 140px 140px 0;
}
.sec02_item:after {
    right: 0;
    top: calc(50% + 16px);
    border-radius: 140px 0 0 140px;
    height: 320px;
}
.sec02_item .item {
    max-width: 546px;
    position: relative;
    cursor: pointer;
}
.sec02_item .item a {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 9;
}
.sec02_item .item .txt {
    color: #333;
    letter-spacing: 0.06em;
    line-height: 1.66;
}
.sec02_item .item .title {
    font-size: 32px;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-align: center;
    line-height: 1.44;
    margin-bottom: 23px;
}
.sec02_item .item .title .lg {
    color: #02a2e6;
    font-size: 131%;
    display: block;
}
.sec02_item .item .title .lg .black {
    color: #333;
    font-size: 74%;
}
.sec02_item .item .title .sm {
    color: #333;
}
.sec02_img {
    margin-bottom: 17px;
    overflow: hidden;
    border-radius: 30px;
    box-shadow: 3px 4px 6px rgba(0, 0, 0, 0.2);
}
.sec02_img img {
    transition: all 0.3s;
}
.boxnum {
    position: absolute;
    left: 10px;
    margin-bottom: 0;
    background: url("../images/icon_w.png") no-repeat center top;
    width: 100px;
    height: 119px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 10px;
    top: -20px;
    z-index: 9;
}
.boxnum .txt {
    font-size: 24px;
    font-weight: 900;
    margin-bottom: -1px;
}
.boxnum .num {
    font-family: var(--f-en);
    font-size: 46px;
    font-weight: bold;
    color: var(--mcolor);
    letter-spacing: 0.06em;
}
/*============= SEC03 ==============*/
.sec03 {
    padding-top: 150px;
    padding-bottom: 128px;
}
.sec03 .inner {
    width: 100%;
    padding: 0;
}
.sec03_item {
    display: flex;
    align-items: flex-start;
}
.sec03_item .item1 {
    margin-left: auto;
    position: relative;
    padding-left: 170px;
    margin-top: 83px;
}
.sec03_item .item1:before, .sec03_item .item1:after {
    position: absolute;
    content: "";
}
.sec03_item .item1:after {
    background: url("../images/flower5.png") no-repeat center top/cover;
    width: 380px;
    height: 361px;
    left: -55px;
    top: -75px;
}
.sec03_item .item1:before {
    width: 1500px;
    height: calc(100% + 40px);
    background: #ebf9ff;
    border-radius: 80px;
    left: 33px;
    top: 32px;
    z-index: -1;
}
.sec03_item .item1 .wrap {
    max-width: 797px;
    position: relative;
    z-index: 1;
}
.sec03_ttl1 {
    border-radius: 44px;
    background: var(--mcolor);
    font-size: 32px;
    font-weight: 700;
    letter-spacing: 0.06em;
    position: relative;
    color: #fff;
    text-align: center;
    padding: 13px 15px;
    margin-bottom: 33px;
    max-width: 790px;
    left: 5px;
}
.sec03_ttl1:before {
    position: absolute;
    content: "";
    background: var(--mcolor);
    width: 24px;
    height: 23px;
    left: 0;
    right: 0;
    margin: 0 auto;
    bottom: -22px;
    clip-path: polygon(100% 0, 0 0, 50% 100%);
}
.sec03_item .title {
    font-size: 32px;
    font-weight: bold;
    line-height: 1.5;
    margin-bottom: 32px;
    letter-spacing: 0.06em;
}
.sec03_item .idx_txt {
    margin-bottom: 55px;
}
.sec03_ttl2 {
    border-bottom: 1px var(--mcolor) solid;
    margin-bottom: 23px;
}
.sec03_ttl2 span {
    background: #fff;
    font-size: 24px;
    font-weight: bold;
    letter-spacing: 0.06em;
    padding: 7px 18px;
    position: relative;
    bottom: 4px;
    color: #333;
}
.sec03_item .item2 {
    margin-left: auto;
    margin-right: 12px;
}
.sec03_item .item2 img {
    border-radius: 40px;
}
.sec03_img.img1 {
    margin-bottom: -77px;
    margin-left: 175px;
}
/*============= SEC04 ==============*/
.sec_cta {
    position: relative;
    padding-top: 164px;
    height: 880px;
}
.sec_cta:before {
    position: absolute;
    content: "";
    background: url("../images/idx_bg02.avif") no-repeat center top/1920px;
    width: 1920px;
    height: 100%;
    left: calc(50% - 960px);
    top: 0;
}
.cta_ttl1 {
    color: #fff;
    text-align: center;
    font-size: 42px;
    font-weight: 900;
    letter-spacing: 0.06em;
    display: flex;
    justify-content: center;
    margin-bottom: 25px;
}
.cta_ttl1 .lg {
    font-size: 123%;
    letter-spacing: 0.065em;
    position: relative;
    bottom: 4px;
}
.cta_ttl1 .lable {
    font-size: 147%;
    width: 158px;
    height: 82px;
    display: flex;
    border-radius: 10px;
    border: 2px #fff solid;
    background: rgba(1, 164, 226, 0.5);
    align-items: center;
    justify-content: center;
    margin: 0 8px 0 8px;
    padding-bottom: 8px;
    bottom: 3px;
    position: relative;
}
.cta_box1 {
    display: flex;
    justify-content: center;
    color: #fff;
    align-items: center;
    margin-bottom: 37px;
}
.cta_box1 .txt {
    font-size: 42px;
    font-weight: 900;
    letter-spacing: 0.06em;
    margin-left: 10px;
}
.cta_logo {}
.cta_box_white {
    background: #fff;
    border-radius: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 15px 15px;
    height: 263px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    position: relative;
}
.cta_box_white:before {
    position: absolute;
    content: "";
    background: url("../images/cta_ic1.png") no-repeat center top/cover;
    width: 206px;
    height: 206px;
    right: -52px;
    top: -131px;
}
.cta_box_white .item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 12px;
}
.cta_box_white .item1 {
    position: relative;
    padding-right: 10px;
}
.cta_box_white .item1:before {
    position: absolute;
    content: "";
    height: 183px;
    width: 2px;
    background: #dddddd;
    right: 0;
    top: 25px;
}
.cta_box_white .item2 {
    padding-left: 15px;
}
.cta_box_white .title {
    font-size: 32px;
    font-weight: 900;
    color: #333;
    padding: 0 15px;
    border-bottom: 2px var(--mcolor) dashed;
    margin-bottom: 20px;
    width: fit-content;
    letter-spacing: 0.06em;
    line-height: 1.7;
    position: relative;
}
.cta_box_white .item1 .title {
    left: -14px;
}
.cta_box_white .item2 .title {
    left: -20px;
}
.cta_box_white .title .ic1 {
    background: url("../images/cta_icon_phone.png") no-repeat left calc(50% + 3px)/20px;
    padding-left: 33px;
}
.cta_box_white .title .ic2 {
    background: url("../images/cta_icon_mail.png") no-repeat left calc(50% + 3px)/44px;
    padding-left: 55px;
}
.cta_tel {}
.cta_tel a {
    width: 480px;
    height: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #ebf9ff;
    border-radius: 14px;
    justify-content: center;
    padding-top: 12px;
}
.cta_tel .number {
    font-size: 44px;
    font-weight: 700;
    font-family: var(--f-en);
    margin-bottom: 10px;
    padding-left: 20px;
    color: #00a1eb;
    letter-spacing: 0.01em;
    position: relative;
}
.cta_tel .number:before {
    position: absolute;
    content: "";
    background: url("../images/cta_icon_tel.png") no-repeat left top/cover;
    width: 34px;
    height: 35px;
    left: -20px;
    top: 4px;
}
.cta_tel .hour {
    color: #333;
    font-size: 24px;
}
.cta_btn {}
.cta_btn a {
    background: url(../images/arrow_w_lg.png) no-repeat right 25px center / 28px var(--org);
    color: #fff;
    width: 480px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: bold;
    border-radius: 14px;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
    letter-spacing: 0.06em;
}
/*============= SEC05 ==============*/
.sec05 {
    padding-top: 148px;
    padding-bottom: 0px;
}
.sec05 .inner {
    width: 100%;
    padding: 0;
    background: #ebf9ff;
    padding-top: 110px;
    padding-bottom: 100px;
}
.sec05 .inner:before, .sec05 .inner:after {
    position: absolute;
    content: "";
    width: 680px;
    height: 690px;
    top: -48px;
    z-index: 2;
}
.sec05 .inner:before {
    background: url("../images/idx_img_15.png") no-repeat left top/680px;
    left: -9px;
}
.sec05 .inner:after {
    background: url("../images/idx_img_16.png") no-repeat right top/680px;
    right: -6px;
}
.sec05 .ttl_h3 {
    margin-bottom: 121px;
    position: relative;
    z-index: 1;
}
.sec05 .ttl_h3:before {
    position: absolute;
    content: "";
    background: url("../images/flower3.png") no-repeat center top/cover;
    width: 616px;
    height: 392px;
    left: 53px;
    right: 0;
    top: -158px;
    z-index: -1;
    margin: 0 auto;
}
.sec05_item {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-items: center;
    max-width: 1430px;
    margin: 0 auto;
    gap: 10px;
    position: relative;
    z-index: 3;
}
.sec05_item .item {
    max-width: 680px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 102px 40px 48px;
    cursor: pointer;
}
.sec05_item .btn {
    margin-top: auto;
}
.sec05_item .item1 {}
.sec05_item .item2 {}
.sec05_item .icon {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    top: -106px;
    text-align: center;
}
.sec05_item .title {
    font-size: 32px;
    font-weight: 900;
    color: #333;
    line-height: 1.5;
    margin-bottom: 20px;
    text-align: center;
    letter-spacing: 0.06em;
}
.sec05_item .title .blue {}
.sec05_item .txt {
    line-height: 1.66;
    color: #333;
    margin-bottom: 38px;
    letter-spacing: 0.06em;
}
/*============= SEC06 ==============*/
.sec06 {
    padding-top: 100px;
    padding-bottom: 140px;
}
.sec06 .inner {
    width: 100%;
    padding: 0;
}
.sec06_item {
    display: flex;
    align-items: flex-start;
}
.sec06_item .item1 {
    margin-left: auto;
    padding-top: 42px;
    padding-left: 91px;
    position: relative;
}
.sec06_item .item1:after {
    position: absolute;
    content: "";
    background: url("../images/icon_pp4.png") no-repeat center top/cover;
    width: 345px;
    height: 302px;
    left: -40px;
    top: -20px;
}
.sec06_item .item1:before {
    position: absolute;
    content: "";
    background: url("../images/flower4.png") no-repeat right bottom/cover;
    width: 515px;
    height: 187px;
    right: -115px;
    bottom: -140px;
    pointer-events: none;
}
.sec06_item .item2 {
    flex-shrink: 0;
    margin-left: auto;
    margin-right: 40px;
    position: relative;
}
.sec06_item .wrap {
    max-width: 991px;
}
.sec06_img {}
.sec06_title {
    color: var(--mcolor);
    font-size: 32px;
    font-weight: 900;
    line-height: 1.68;
    border-top: 2px var(--mcolor) dashed;
    border-bottom: 2px var(--mcolor) dashed;
    text-align: center;
    letter-spacing: 0.06em;
    padding: 14px 0 14px;
    margin-bottom: 40px;
}
.btn_box {}
.btn_w {
    margin-bottom: 0;
}
.btn_w a {
    width: 174px;
    height: 53px;
    display: flex;
    align-items: center;
    border: 2px var(--mcolor) solid;
    border-radius: 26px;
    font-size: 20px;
    font-weight: 700;
    color: #333;
    background: url("../images/arrow_right_blue.png") no-repeat left 25px center/22px;
    padding-left: 55px;
    letter-spacing: 0.06em;
}
.sec06_img_lg {
    position: absolute;
    left: 115px;
    bottom: -138px;
}
.sec06_img_lg img, .sec06_img img {
    border-radius: 30px;
}
.sec06 .ttl_h3 {
    margin-bottom: 40px;
}
/*============= SEC07 ==============*/
.sec07 {
    padding-top: 98px;
    padding-bottom: 100px;
}
.sec07_item {
    display: flex;
}
.sec07 .ttl_h3 {
    text-align: left;
    margin-bottom: 48px;
}
.sec07_link a {
    font-size: 20px;
    font-weight: bold;
    letter-spacing: 0.06em;
    background: url("../images/arrow_right_blue.png") no-repeat right center/22px;
    padding-right: 28px;
    color: #333;
}
.sec07_item .item1 {
    width: 274px;
    margin-top: -1px;
}
.sec07_item .item2 {
    width: calc(100% - 274px);
}
.sec07_load {}
.sec07_load dl {
    display: flex;
    height: 96px;
    border-radius: 48px;
    padding: 10px 47px 10px 40px;
    align-items: center;
    background: url("../images/arrow_right_blue.png")#ebf9ff no-repeat right 23px center/22px;
    cursor: pointer;
}
.sec07_load dl:not(:last-child) {
    margin-bottom: 24px;
}
.sec07_load dl dt {
    color: #333;
    letter-spacing: 0.06em;
    display: flex;
    flex-shrink: 0;
}
.sec07_load dl dt .date {
    margin-right: 20px;
}
.sec07_load dl dt .cate {
    flex-shrink: 0;
    width: 130px;
}
.sec07_load dl dd {
    letter-spacing: 0.06em;
    width: calc(100% - 255px);
    position: relative;
    top: 5px;
}
.sec07_load dl dd a {
    font-size: 20px;
    font-weight: bold;
    color: #333;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    width: 100%;
    display: inline-block;
    padding-right: 25px;
}
/*============= SEC08 ==============*/
@media screen and (min-width: 751px) {}
/*==========================================================
                        F O O T E R
==========================================================*/
footer {
    position: relative;
    z-index: 3;
}
address {
    padding: 20px 20px 37px;
    color: #333;
    text-align: center;
    font-size: 16px;
    letter-spacing: 0.06em;
}
.ft_bt {
    padding-top: 53px;
}
.ft_add {
    color: #333;
    text-align: center;
    letter-spacing: 0.06em;
    margin-bottom: 25px;
    font-weight: 700;
}
.ft_logo {
    text-align: center;
    margin-bottom: 54px;
}
.ft_link {
    display: flex;
}
.ft_link ul {
    position: relative;
    padding-left: 95px;
}
.ft_link ul.item3:before {
    display: none;
}
.ft_link ul:before {
    position: absolute;
    content: "";
    width: 2px;
    border-right: 2px var(--mcolor) dashed;
    height: 464px;
    right: -15px;
    top: -1px;
}
.ft_link .item1 {
    width: 302px;
}
.ft_link .item2 {
    width: 492px;
    margin-top: -7px;
}
.ft_link .item3 {
    margin-top: -7px;
}
.ft_link li {
    margin-bottom: 19px;
    line-height: 1.66;
    letter-spacing: 0.06em;
}
.ft_link li a {
    color: #333;
    font-weight: bold;
    background: url("../images/arrow_right_blue.png") no-repeat left top 7px/22px;
    padding-left: 30px;
    display: inline-block;
}
.ft_link li.big {
    margin-bottom: 16px;
}
.ft_link li.big p {
    font-size: 20px;
    color: #00a4ee;
    font-weight: bold;
    letter-spacing: 0.06em;
}
.ft_link li.big.mt1 {
    margin-top: 32px;
}
.bnr_fix {
    opacity: 0;
    visibility: hidden;
    transition: all ease 0.3s;
    right: 5px;
    position: fixed;
    bottom: 100px;
    z-index: 9;
}
.bnr_fix img {
    border-radius: 10px;
    box-shadow: 3px 4px 6px rgba(0, 0, 0, 0.2);
}
.bnr_fix.show {
    opacity: 1;
    visibility: visible;
}
.bnr_fix2 {
	bottom: 280px;
}
/* BACK TO TOP */
.to_top {
    position: fixed;
    z-index: 9;
    width: 70px;
    height: 70px;
    bottom: 20px;
    right: 20px;
    cursor: pointer;
    transition: all .2s;
    opacity: 0;
    visibility: hidden;
    margin-bottom: 0;
}
.to_top img {
    border-radius: 50%;
}
.to_top.show {
    transform: scale(1);
    opacity: 1;
    visibility: visible
}
/* FIREFOX ONLY */
@-moz-document url-prefix() {
    .mv_bnr_tt .bg {
        white-space: nowrap;
    }
}
/* Safari 10.1+ (which is the latest version of Safari at this time) */
@media not all and (min-resolution: 0.001dpcm) {}