@charset "utf-8";
@font-face {
    font-family: 'line';
    font-weight: 400;
    src: url('../font/LINESeedJP_OTF_Rg.woff2') format('woff2');
  }
  @font-face {
    font-family: 'line';
    font-weight: 700;
    src: url('../font/LINESeedJP_OTF_Bd.woff2') format('woff2');
  }
html { scroll-behavior: smooth;}
body {
    line-height: 1.6;
    color: #222;
    font-size: 16px;
    font-family: line;
    animation: opening 1s;
}
:root {
    /* colors theme */
    --color-shirayuri: #FADBD9;
    --color-mizuho: #E2F1E2;
    --color-cocco: #ffeedd;
    --color-hachiwa: #E2EDF6;
    --color-shirayurinome: #f7ede9;
    /* colors accent */
    --color-shirayuri-ac: #EA5967;
    --color-mizuho-ac: #9d9077;
    --color-cocco-ac: #f7a222;
    --color-hachiwa-ac: #008db7;
    --color-shirayurinome-ac: #EA5967;
}
@keyframes opening {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
.fadeIn {
    transform: translate3d(0, -20px, 0);
    transition: 1s;
    transition-delay: .25s;
    opacity: 0;
  }
.fadeIn.animated {
    transform: translate3d(0, 0, 0);
    opacity: 1;
}
a {
    text-decoration: none;
}
.cl {
    clear: both;
    display: block;
}
section {
    padding: 60px 20px 80px 20px;
    position: relative;
}
section:nth-of-type(2n+1) {
    background: #FADBD9;
}
.custom-shape-divider-bottom {
    position: absolute;
    bottom: 0px;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    transform: rotate(180deg);
}
.custom-shape-divider-top {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
}
.custom-shape-divider-top svg,
.custom-shape-divider-bottom svg  {
    position: relative;
    display: block;
    width: calc(142% + 1.3px);
    height: 60px;
}
.custom-shape-divider-top.pink .shape-fill,
.custom-shape-divider-bottom.pink .shape-fill  {
    fill: var(--color-shirayuri);
}
.mizuho .custom-shape-divider-top .shape-fill,
.mizuho .custom-shape-divider-bottom .shape-fill  {
    fill: var(--color-mizuho);
}
.cocco .custom-shape-divider-top .shape-fill,
.cocco .custom-shape-divider-bottom .shape-fill  {
    fill: var(--color-cocco);
}
.hachiwa .custom-shape-divider-top .shape-fill,
.hachiwa .custom-shape-divider-bottom .shape-fill  {
    fill: var(--color-hachiwa);
}
.shirayurinome .custom-shape-divider-top .shape-fill,
.shirayurinome .custom-shape-divider-bottom .shape-fill  {
    fill: var(--color-shirayurinome);
}
.custom-shape-divider-top.gray .shape-fill {
    fill: #f6f6f6;
}
.custom-shape-divider-top.white .shape-fill {
    fill: #fff;
}
.mizuho section:nth-of-type(2n+1) {
    background: var(--color-mizuho);
}
.cocco section:nth-of-type(2n+1) {
    background: var(--color-cocco);
}
.hachiwa section:nth-of-type(2n+1) {
    background: var(--color-hachiwa);
}
.shirayurinome section:nth-of-type(2n+1) {
    background: var(--color-shirayurinome);
}
section:has(.custom-shape-divider-top) {
    padding: 100px 20px 80px 20px;
}
section:nth-of-type(2n) {
    background-color: #f6f6f6;
    background-repeat: repeat;
    background-position: center;
    background-size: 425px;
}
section.contact {
    background: #f6f6f6;
}
section h2 {
    margin: 0 auto 60px;
}
section h2 img {
    display: block;
    margin: 0 auto;
}
footer {
    padding: 40px 16px 16px 16px;
    color: #fff;
    text-align: center;
    background: #3F3E3C;
}
.footer_logo {
    display: inline-block;
    margin: 0 0 40px 0;
}
.footer_menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0 0 32px 0;
}
.footer_menu li {
    display: inline-block;
    margin: 0 16px 20px 16px;
}
.footer_menu a {
    color: #fff;
    font-size: 13px;
    text-decoration: none;
}
small {
    opacity: .6;
    font-size: 12px;
}
.menu_open,
.menu_close {
    position: fixed;
    z-index: 100;
    height: 52px;
    width: 60px;
    right: 0;
    top: 0;
    box-sizing: border-box;
    border-radius: 10px 0 0 10px;
    background: #fff;
}
.menu_open {
    top: 12px;
    border: solid 1px #ccc;
    border-right: none;
    box-shadow: 0 4px 0 rgba(0,0,0,.1);
}
.menu_open span {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    height: 2px;
    width: 16px;
    background: #222;
}
.menu_open .tg_2 {
    top: 60%;
}
.menu_open .tg_3 {
    top: 40%;
}

.menu_sp {
    overscroll-behavior: contain;
    z-index: 101;
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    min-height: calc(var(--vh, 1vh) * 100);
    overflow-y: scroll;
    padding: 0;
    box-sizing: border-box;
    background: #f1f1f1;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
}
.menu_sp::after {
    content: "";
    display: block;
    width: 1px;
    min-height: calc(100% + 1px);
    position: absolute;
    top: 0;
    left: 0;
}
.menu_sp.side-open {
    right: 0;
}
.menu_close {
    position: absolute;
    top:0;
    right: 0;
    background: none;
}
.wr_menu_close {
    height: 30px;
    width: 30px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-75%,-50%);
}
.menu_close span {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    height: 2px;
    width: 16px;
    background: #999;
    transform: rotate(45deg);
}
.menu_close .tg_2 {
    transform: rotate(-45deg);
}
/* .menu_ttl {
    margin: 0 8px;
    padding: 32px 8px;
    background: url(../img/menu_line.png) no-repeat center bottom;
    background-size: 100%;
} */
.menu_sp ul:first-of-type {
    padding: 40px 0 12px 0;
}
.menu_sp ul {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    padding: 12px 0;
    margin: 0;
    background: #fff;
    border-bottom: solid 1px #ddd;
}
.menu_sp ul li {
    width: 100%;
}
.menu_sp ul.half li {
    width: 50%;
}
.menu_sp ul li a {
    position: relative;
    display: block;
    color: #222;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
}
.menu_sp ul li .disabled {
    color: #999;
}
.menu_sp ul .parent a {
    color: #EA5967;
}
.menu_sp ul .child a::before {
    content:"";
    display: inline-block;
    width: 10px;
    height: 10px;
    vertical-align: top;
    margin: 0 12px 0 0;
    border-left: solid 2px #ccc;
    border-bottom: solid 2px #ccc;
}
.menu_sp ul li a img {
    display: inline-block;
    vertical-align: middle;
    margin: 0 12px 0 0;
}
.wr_contact {
    padding: 32px 16px;
}
.menu_pc {
    display: none;
}
.bt_first,
.bt_second  {
    display: block;
    width: 100%;
    max-width: 600px;
    margin: auto;
    height: 56px;
    line-height: 55px;
    border: none;
    border-radius: 10px;
    box-shadow: 0 4px 0 rgba(0,0,0,.1);
    background: #EA5967;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    text-align: center;
}
.bt_second {
    background: #fff;
    color: #222;
}
.bt + .bt_second {
    margin: 20px auto 0 auto;
}
.bt_third {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    display: inline-block;
    padding: 0 40px;
    margin: auto;
    height: 44px;
    line-height: 43px;
    background: #fff;
    color: #EA5967;
    border: solid 1px #EA5967;
    border-radius: 30px;
    font-size: 14px;
    font-weight: bold;
    text-align: center;
}
.bt_third span {
    opacity: .7;
    display: inline-block;
    margin: 0 0 0 12px;
}
.newline {
    height: auto;
    padding: 8px 0;
    line-height: 1.5;
}
.newline span {
    display: block;
    font-size: 12px;
    font-weight: normal;
}

.bt:hover {
    box-shadow: none;
    transform: translateY(2px);
}
.fix_btn {
    z-index: 1;
    position: fixed;
    bottom: 20px;
    right: 0;
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    flex-wrap: wrap;
    width: 46px;
    height: 130px;
    box-sizing: border-box;
    border-radius: 10px 0 0 10px;
    box-shadow: 0 4px 0 rgba(0,0,0,.1);
    background: #EA5967;
    text-decoration: none;
    transition: .2s;
}
.fix_btn.photo {
    bottom: 168px;
    background: #353432;
}
.fix_btn.none {
    right: -60px;
}
.fix_btn img {
    margin: 0 0 2px 0;
}
.fix_btn.photo img {
    margin: 0 0 4px 0;
}
.fix_btn span {
    display: block;
    line-height: 1;
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    writing-mode: vertical-rl;
}
