﻿:root {
    --f-notosans: "Noto Sans JP", sans-serif;
    --f-jp: "Noto Serif JP", serif;
    --f-en: "Lato", sans-serif;
    --main-color: #69c0a4;
    --clr1: #333;
    --clr2: #005d96;
    --ttl_size: 28px;
    --wrapper: 80px;
    --fz10: 10px
}
body {
    position: relative !important;
    top: auto !important;
}

body {
    background-color: #fff;
    -webkit-text-size-adjust: none;
    letter-spacing: .1em;
    color: var(--clr1);
    font-family: var(--f-notosans)
}

body::-webkit-scrollbar {
    display: block;
    width: 10px;
    height: 10px
}

body::-webkit-scrollbar-track {
    border-radius: 10px;
    background: #fff;
    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5)
}

body::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background: linear-gradient(to bottom, var(--clr2) 0%, var(--main-color) 50%, var(--clr2) 100%);
    box-shadow: inset 0 0 6px #fff
}

body::-webkit-scrollbar-thumb:window-inactive {
    background: linear-gradient(to bottom, var(--clr2) 0%, var(--main-color) 50%, var(--clr2) 100%)
}

address,
blockquote,
button,
dd,
dt,
h1,
h2,
h3,
h4,
h5,
h6,
input,
li,
p,
pre,
select,
td,
textarea,
th {
    font-size: 100%;
    -webkit-text-size-adjust: none
}

article,
aside,
figure,
footer,
header,
main,
nav,
picture,
section {
    display: block;
    padding: 0;
    margin: 0
}

img {
    display: table;
    vertical-align: bottom;
    max-width: 100%;
    height: auto
}

a:not(.tel_click) {
    color: inherit;
    font-family: inherit;
    font-weight: inherit;
    color: #64b5f7
}

a.tel_click {
    text-decoration: none;
    color: inherit
}

@media only screen and (min-width: 769px) {
    a:not([target*=_blank]) {
        transition: opacity .3s ease
    }

    a:not([target*=_blank]):hover {
        opacity: .7
    }

    a.tel_click {
        pointer-events: none
    }

    a:not(.tel_click):active,
    a:not(.tel_click):hover {
        color: #64b5f7
    }
}

.ft_logo a:hover,
.logo a:hover,
a.ft_logo:hover,
a.logo:hover,
a.tel_click:hover {
    opacity: 1 !important
}

table {
    width: 100%
}

iframe {
    width: 100%;
    height: 100%
}

.captcha_box iframe {
    height: auto
}

.link>a {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 1
}

.flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

p {
    line-height: 2;
    letter-spacing: inherit;
    word-wrap: break-word;
    word-break: break-word;
    margin-bottom: 15px
}

p:empty {
    display: none !important
}

p:last-child {
    margin-bottom: 0
}

.red {
    color: #ca0a0a !important
}

.bold {
    font-weight: bold !important
}

.fl {
    float: left
}

.fr {
    float: right
}

*,
:after,
:before {
    box-sizing: border-box
}

html {
    overflow-x: auto !important
}

.wrapper {
    overflow: hidden
}

.inner,
.inner_big,
.inner_max,
.inner_sm {
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px
}

.inner_max {
    max-width: 1480px
}

.inner_big {
    max-width: 1320px
}

.inner {
    max-width: 1320px
}

.inner_sm {
    max-width: 1020px
}

.fullWidthBreak {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw
}

#mainContent {
    position: relative;
    z-index: 1;
    background-color: #f2f2f2
}

#mainContent:after,
#mainContent:before {
    content: "";
    display: block;
    position: absolute;
    transition: all .3s;
    background-size: 100% auto;
    background-position: top center;
    z-index: -1
}

#mainContent:before {
    top: -76px;
    left: -5px;
    width: calc(100% + 10px);
    height: 188px;
    background-size: auto 100%;
    background-position: left center;
    background-repeat: repeat-x;
    background-image: url(../images/mainContent_bg2.png)
}

#mainContent:after {
    top: -49px;
    right: 4%;
    background-repeat: no-repeat;
    width: 2058px;
    height: 100%;
    background-image: url(../images/mainContent_bg.png)
}

.alignnone {
    margin: 5px 20px 20px 0
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto 35px
}

.alignright {
    float: right;
    margin: 5px 0 20px 20px
}

.alignleft {
    float: left;
    margin: 5px 20px 20px 0
}

a img.alignright {
    float: right;
    margin: 5px 0 20px 20px
}

a img.alignnone {
    margin: 5px 20px 20px 0
}

a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0
}

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto
}

.wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%;
    padding: 5px 3px 10px;
    text-align: center
}

.wp-caption.alignnone {
    margin: 5px 20px 20px 0
}

.wp-caption.alignleft {
    margin: 5px 20px 20px 0
}

.wp-caption.alignright {
    margin: 5px 0 20px 20px
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto
}

.wp-caption p.wp-caption-text {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important
}

.screen-reader-text:focus {
    background-color: #eee;
    clip: auto !important;
    clip-path: none;
    color: #444;
    display: block;
    font-size: 1em;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000
}

@media only screen and (max-width: 768px) {
    .pc_only {
        display: none !important
    }
}

@media only screen and (min-width: 769px) {
    .sp_only {
        display: none !important
    }
}

.accBtn:after,
.accBtn:before {
    transition: all .3s ease-in-out
}

.accBtn.triangle,
.accBtn.triangle_btt {
    position: relative
}

.accBtn.triangle:after {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 0;
    height: 0;
    border-radius: 20px;
    border-color: inherit;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 10px solid;
    transform: translateY(-50%);
    transition: all .3s ease-in-out
}

.accBtn.triangle.rotate:after {
    transform: translateY(-50%) rotateX(180deg)
}

.accBtn.triangle_btt:after {
    content: "";
    position: relative;
    top: 0px;
    width: 0;
    height: 0;
    border-radius: 20px;
    border-color: inherit;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 10px solid;
    display: block;
    margin: 10px auto 0;
    transition: all .3s ease-in-out
}

.accBtn.rotate:after {
    transform: rotateX(180deg)
}


.rel {
    position: relative
}

.ovh {
    overflow: hidden !important
}

.ovs {
    overflow: auto;
    -webkit-overflow-scrolling: touch
}

.lt0 {
    letter-spacing: 0 !important
}

figure,
picture {
    text-align: center;
    line-height: 1
}

.fblock {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

.key {
    position: relative
}

.gMap {
    width: 100%;
    height: 100%
}

.txt_l {
    float: left;
    width: calc(100% - 385px)
}

.txt_r {
    float: right;
    width: calc(100% - 385px)
}

.image_alone {
    display: table;
    max-width: 500px;
    margin: 0 auto;
    border: 7px solid rgba(231, 231, 231, 0.5);
    border-radius: 11px;
    overflow: hidden
}

.tel_click {
    text-decoration: none
}

.tel_click span {
    display: inline-flex;
    align-items: center;
    font-family: var(--f-en);
    font-weight: 500;
    color: var(--clr1);
    letter-spacing: .05em;
    font-size: 2.25em
}

.tel_click span:before {
    content: "";
    display: block;
    margin-right: .3214em;
    width: .77778em;
    height: .77778em;
    --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' %3E%3Cpath d='M27.998,20.872 L27.998,26.374 C27.998,27.192 27.366,27.868 26.551,27.926 C25.871,27.972 25.315,27.998 24.886,27.998 C11.139,27.998 -0.004,16.854 -0.004,3.108 C-0.004,2.678 0.019,2.123 0.067,1.442 C0.125,0.627 0.803,-0.005 1.620,-0.005 L7.121,-0.005 C7.520,-0.005 7.855,0.299 7.896,0.696 C7.931,1.054 7.964,1.337 7.995,1.555 C8.305,3.712 8.938,5.810 9.875,7.780 C10.022,8.091 9.926,8.460 9.646,8.661 L6.288,11.060 C8.341,15.844 12.152,19.655 16.935,21.708 L19.331,18.354 C19.533,18.073 19.909,17.973 20.223,18.123 C22.190,19.057 24.288,19.690 26.445,19.998 C26.662,20.029 26.946,20.064 27.300,20.097 C27.697,20.139 27.999,20.473 27.999,20.872 L27.998,20.872 Z'/%3E%3C/svg%3E");
    mask-image: var(--mask);
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: 100% auto;
    -webkit-mask-size: 100% auto;
    mask-position: center;
    -webkit-mask-position: center;
    background-color: var(--main-color)
}

.en {
    font-family: var(--f-en)
}

.btn a:after {
    content: "";
    display: block;
    position: absolute;
    transition: all .3s;
    width: .3333em;
    height: 12px;
    right: 1.11111em;
    top: calc(50% - 6px);
    --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 62 102' %3E%3Cpath d='M10.963,101.061 L0.944,91.049 L41.022,51.000 L0.944,10.951 L10.963,0.939 L61.061,51.000 L10.963,101.061 Z'/%3E%3C/svg%3E");
    mask-image: var(--mask);
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: 100% auto;
    -webkit-mask-size: 100% auto;
    mask-position: center;
    -webkit-mask-position: center;
    background-color: var(--main-color)
}

.btn-group {
    font-size: 10px
}

.btn-group .btn {
    font-size: 1em
}

.btn-group .btn.style01 {
    width: 100%;
    min-width: 100px;
    max-width: 355px;
    overflow: hidden
}

.btn-group .btn.style01 a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3.88889em;
    padding: .5em 1.3em;
    position: relative;
    z-index: 1;
    font-size: 1.8em;
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1.5;
    color: #fff;
    text-decoration: none;
    text-align: center;
    background-color: var(--main-color);
    transition: all .3s;
    border-radius: 40px
}

.btn-group .btn.style01 a:before {
    content: "";
    display: block;
    position: absolute;
    transition: all .3s;
    z-index: -1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 40px;
    background-image: -moz-linear-gradient(0deg, rgb(105, 192, 164) 0%, rgb(114, 213, 181) 100%);
    background-image: -webkit-linear-gradient(0deg, rgb(105, 192, 164) 0%, rgb(114, 213, 181) 100%);
    background-image: -ms-linear-gradient(0deg, rgb(105, 192, 164) 0%, rgb(114, 213, 181) 100%)
}

.btn-group .btn.style01 a:after {
    background-color: #fff
}

.btn-group .btn.style01 a:hover {
    opacity: 1
}

@media only screen and (min-width: 769px) {
    .btn-group .btn.style01 a:not([target*=_blank]):hover:before {
        opacity: 0
    }

    .btn-group .btn.style01 a:not([target*=_blank]):hover:after {
        right: .5em
    }
}

.btn-group .btn.style01.md a {
    font-size: 16px
}

.btn-group .btn.bg01 a {
    background: transparent;
    color: #fff;
    border: 1px solid #fff
}

.btn-group .btn.bg01 a:before {
    opacity: 0
}

@media only screen and (min-width: 769px) {
    .btn-group .btn.bg01 a:hover:before {
        opacity: .5
    }

    .btn-group .btn.bg01 a:hover:after {
        right: .5em
    }
}

.btn-group .btn.bg02 a {
    background-color: #f4bf0c
}

.btn-group .btn.bg03 a {
    background-color: #f08d1b
}

.btn-group .btn.bg03 a:before {
    display: none
}

.slick-arrow {
    display: block;
    border: none;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-color: transparent;
    position: absolute;
    top: 37%;
    width: 38px;
    height: 38px;
    transform: translateY(-50%);
    cursor: pointer;
    color: transparent
}

.slick-arrow:focus {
    outline: 0
}

.slick-prev {
    left: -55px
}

.slick-next {
    right: -55px
}

@media only screen and (min-width: 769px)and (max-width: 1170px) {
    body {
        font-size: 87.5%
    }

    .totop .icon {
        width: 60px;
        height: 60px
    }
}

h1 {
    font-size: 10px
}

header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--wrapper);
    z-index: 20
}

header:before {
    content: "";
    display: block;
    position: absolute;
    transition: all .3s;
    left: -5px;
    top: -24px;
    width: calc(100% + 10px);
    height: calc(100% + 108px);
    background-image: url(../images/hd_bg.png);
    background-size: auto 100%;
    background-repeat: repeat-x;
    background-position: left bottom;
    z-index: -1
}

.ovh header,
header.active {
    background-color: #fff
}

.ovh header:before,
header.active:before {
    top: -180px
}

.ovh header .header_top,
header.active .header_top {
    padding-top: 5px;
    padding-bottom: 5px
}

.ovh header .right_head,
header.active .right_head {
    padding-bottom: 0
}

.ovh .fix_social {
    visibility: hidden
}

.header_top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    justify-content: space-between;
    margin: 0 auto;
    padding: 1em 45px 0;
    height: 100%;
    transition: all .3s ease-in-out
}

.logo {
    width: 30%;
    max-width: 406px;
    transition: all .3s;
    display: flex;
    justify-content: center;
    align-items: center
}

.logo a {
    display: block;
    width: 100%;
    transition: all .3s;
    text-align: center
}

.logo img {
    transition: all .3s;
    width: auto
}

.right_head {
    width: 70%;
    max-width: 920px;
    padding-bottom: 1.65%;
    padding-right: 75px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    transition: all .3s
}

.pc_navi {
    width: 100%
}

.pc_navi>ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    text-align: center;
    width: 100%
}

.pc_navi>ul>li {
    position: relative
}

.pc_navi>ul>li:hover>a,
.pc_navi>ul>li:hover>p {
    opacity: .8;
    color: var(--main-color)
}

.pc_navi>ul>li.menu-item-has-children>a:after,
.pc_navi>ul>li.menu-item-has-children>p:after {
    content: "";
    background: url(../images/shared_pc_navi_arrow.png) center no-repeat;
    background-size: 100% auto;
    width: 7px;
    height: 6px;
    position: absolute;
    bottom: -2px;
    left: calc(50% - 4.5px);
    transition: all .5s ease
}

.pc_navi>ul>li.menu-item-has-children>a:hover:after,
.pc_navi>ul>li.menu-item-has-children>p:hover:after {
    transform: translateY(5px)
}

.pc_navi>ul>li>a,
.pc_navi>ul>li>p {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 0;
    height: 2.7778em;
    text-decoration: none;
    text-align: center;
    font-weight: 500;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: .1em;
    transition: all .2s ease;
    color: var(--clr1)
}

.pc_navi>ul>li>a span,
.pc_navi>ul>li>p span {
    display: block;
    width: 100%;
    padding-top: 0px;
    font-size: 66.6666666667%;
    font-weight: 600
}

.pc_navi>ul>li:hover a.title:after,
.pc_navi>ul>li:hover p.title:after {
    transform: translateY(5px)
}

.pc_navi>ul .subInner {
    position: absolute;
    width: 24em;
    right: 50%;
    bottom: -15px;
    padding-top: 0px;
    transform: translate(50%, 100%);
    transition: all .2s ease-in-out;
    opacity: 0;
    visibility: hidden;
    z-index: 1;
    font-size: 14px
}

.pc_navi>ul .subInner.active {
    opacity: 1;
    visibility: visible
}

.pc_navi>ul .subInner ul {
    background-color: var(--main-color);
    padding-bottom: 10px
}

.pc_navi>ul .subInner ul li {
    padding: 0 .5em
}

.pc_navi>ul .subInner ul li a {
    position: relative;
    display: block;
    padding: 15px 5px 15px 20px;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.7);
    transition: all .2s ease;
    font-size: 1em;
    font-weight: 500;
    color: #fff;
    text-decoration: none;
    text-align: left;
    letter-spacing: 0px
}

.pc_navi>ul .subInner ul li a span {
    display: inline-block
}

.pc_navi>ul .subInner ul li a:before {
    content: "›";
    display: block;
    position: absolute;
    top: 50%;
    left: .7em;
    transform: translateY(-56%);
    font-size: 1em
}

@media only screen and (min-width: 769px) {

    .ovh header .logo img,
    header.active .logo img {
        max-height: 70px
    }

    .ovh header .hamburger-btn,
    header.active .hamburger-btn {
        transform: translateY(0px)
    }

    .pc_navi>ul .col2:last-child .subInner {
        right: 100%
    }

    .pc_navi>ul .col2 .subInner {
        width: 36.5em
    }

    .pc_navi>ul .col2 .subInner ul {
        display: flex;
        flex-wrap: wrap
    }

    .pc_navi>ul .col2 .subInner ul li {
        width: 50%
    }

    .pc_navi>ul .col2 .subInner ul li a span {
        display: inline-block
    }

    .hamburger-btn {
        --wrapper: 80px;
        transform: translateY(6px)
    }

    .menu_toggle .inside .ft_link {
        width: 100%;
        max-width: 1296px;
        padding: 35px 10px 20px;
        margin: auto;
        min-height: 100%;
        display: flex;
        align-items: center
    }

    .menu_toggle .inside .ft_link .link_list {
        width: 100%
    }

    .menu_toggle .inside .ft_link .ttl {
        margin-bottom: 41px;
        color: var(--clr2)
    }

    .menu_toggle .inside .ft_link .ttl:after {
        color: var(--clr1)
    }

    .menu_toggle .inside .ft_link a:hover {
        color: var(--main-color)
    }

 

    .menu_toggle .inside .ft_link .menu01 .ttl {
        max-width: 317px
    }


    .menu_toggle .inside .ft_link .menu02 .ttl {
        margin-bottom: 34px
    }

    .menu_toggle .inside .ft_link .menu02>ul {
        display: flex
    }

  

    .menu_toggle .inside .ft_link .menu02>ul>.big:last-child li {
        margin-right: -1em
    }
}

@media only screen and (min-width: 769px)and (max-width: 1440px) {

    #mainContent:before,
    header:before {
        height: calc(var(--wrapper) + 7vw);
        background-position: center bottom
    }

    .logo {
        width: 27%
    }
}

@media only screen and (min-width: 769px)and (max-width: 1280px) {
    :root {
        --ttl_size: 24px
    }

    #mainContent:before,
    header:before {
        height: calc(var(--wrapper) + 5vw)
    }

    header:before {
        top: calc(-10px - 1vw)
    }

    #mainContent:before {
        top: calc(-50px - 1vw)
    }

    .header_top {
        padding: 5px 10px
    }

    .right_head {
        padding-bottom: 0
    }

    .hamburger-btn {
        transform: none
    }

    .pc_navi>ul .col2:last-child .subInner {
        font-size: 13px;
        right: 10em
    }

    .pc_navi>ul>li p,
    .pc_navi>ul>li>a {
        font-size: 1.4vw
    }

    .pc_navi>ul .subInner ul li a {
        font-size: 12px
    }
        .pc_navi>ul .col2 .subInner {
        width: 31.5em;
    }
}

@media only screen and (min-width: 769px)and (max-width: 992px) {
    .menu_toggle .inside .ft_link {
        font-size: 1.5vw
    }

.pc_navi>ul .subInner{
    right: 100%;
}

  
}

.idx_bnr {
    padding: 81px 0px 60px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-image: url(../images/idx_bnr_bg.jpg)
}

.idx_bnr .box {
    margin-bottom: 20px
}

@media only screen and (min-width: 769px) {

    .idx_bnr .s1 {
        width: 39.1%;
        max-width: 500px;
    }
    .idx_bnr .s2 {
        max-width: 59.5%;
       
    }
    .idx_bnr .s2:first-child{
  margin-left: 20.25%;
        margin-right:20.25%;
    }

    .idx_bnr .s3 {
        max-width: 18.75%
    }
}

.idx_gallery {
    background-color: #fff;
    padding: 72px 0px 33px
}

.idx_gallery ul {
    display: flex
}

.idx_gallery ul li .img {
    margin: 0 12px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    width: 254px;
    height: 253px
}

.idx_gallery ul li .img01 {
    background-image: url(../images/idx_gallery01.jpg)
}

.idx_gallery ul li .img02 {
    background-image: url(../images/idx_gallery02.jpg)
}

.idx_gallery ul li .img03 {
    background-image: url(../images/idx_gallery03.jpg)
}

.idx_gallery ul li .img04 {
    background-image: url(../images/idx_gallery04.jpg)
}

.idx_gallery ul li .img05 {
    background-image: url(../images/idx_gallery05.jpg)
}

.idx_gallery ul li .img06 {
    background-image: url(../images/idx_gallery06.jpg)
}

.idx_gallery ul li .img07 {
    background-image: url(../images/idx_gallery07.jpg)
}

.time_sheet {
    margin: 0px auto
}

.time_sheet .note {
    margin-top: 7px;
    margin-left: -2px;
    line-height: 2;
    font-size: .875em;
    letter-spacing: 0em
}

.time_sheet .note span {
    display: inline-block
}

.time_sheet table {
    font-feature-settings: "palt"
}

.time_sheet table td,
.time_sheet table th {
    border-top: none;
    border-right: none;
    border-left: none;
    text-align: center;
    font-weight: 400;
    letter-spacing: .1em;
    width: 9.3%;
    font-size: 1.25em
}

.time_sheet table td:first-child,
.time_sheet table th:first-child {
    width: auto;
    padding-left: 1.9%
}

.time_sheet table td:last-child,
.time_sheet table th:last-child {
    width: 12.2%;
    padding-left: 0
}

.time_sheet table th {
    padding: .65em .2em .6em;
    background-color: #005d96;
    color: #fff
}

.time_sheet table th:last-child {
    text-align: left
}

.time_sheet table td {
    padding: .7em .2em .55em;
    color: #005d96;
    background-color: #f2f2f2;
    letter-spacing: 0em;
    border-bottom: 2px solid #fff
}

.time_sheet table td:last-child {
    padding-right: .8em
}

@media only screen and (max-width: 992px)and (min-width: 769px) {
    :root {
        --ttl_size: 20px;
        --wrapper: 80px
    }
}

.totop {
    transition: all .3s ease;
    opacity: 0;
    visibility: hidden;
    cursor: pointer;
    position: fixed;
    z-index: 19;
    bottom: 25px;
    right: 70px
}

.totop.active {
    opacity: 1;
    visibility: visible
}

.totop .icon {
    background-image: url(../images/totop.png);
    background-repeat: no-repeat;
    background-size: 100% auto;
    border: 0px;
    width: 80px;
    height: 80px;
    margin: 0;
    box-shadow: 0px 0px 124.6px 15.4px rgba(0, 0, 0, 0.05);
    border-radius: 50%
}

@media only screen and (min-width: 769px) {
    .totop:hover .icon {
        opacity: .9;
        animation-name: bounces
    }
}

.bounce {
    animation-name: bounces
}

.animateds {
    animation-duration: .5s;
    animation-fill-mode: both;
    animation-timing-function: linear;
    animation-iteration-count: infinite
}

@keyframes bounces {

    0%,
    to {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-5px)
    }
}

@keyframes fixed_banner {
    0% {
        left: 0;
        opacity: 1
    }

    to {
        left: -3px;
        opacity: .7
    }
}

.fixed_banner {
    position: fixed;
    top: 200px;
    right: 0px;
    z-index: 15;
    transition: right .3s ease-in-out
}

.fixed_banner:hover {
    right: 0
}

.fixed_banner .bnr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
    transition: all .3s ease
}

.fixed_banner .bnr a {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
    z-index: 1
}

.fixed_banner .tt {
    margin-bottom: 0;
    color: #fff;
    letter-spacing: .1em;
    line-height: 1.2222222222;
    text-align: center
}

.fixed_banner .tt:before {
    content: "";
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto 100%;
    display: block;
    width: 100%
}

.fixed_banner .tel {
    background-color: #62bda0;
    background-color: #7ebea5
}

.fixed_banner .tel p:before {
    background-image: url("../images/shared_fixed_bnr_icon01.png")
}

.fixed_banner .web {
    background-color: #007ac4;
    background-color: #e2923b
}

.fixed_banner .web p:before {
    background-image: url("../images/shared_fixed_bnr_icon02.png")
}

.fixed_banner .line {
    background-color: #3ac558;
    background-color: #66c265
}

.fixed_banner .line p:before {
    background-image: url("../images/shared_fixed_bnr_icon04.png")
}

.fixed_banner .mail {
    background-color: #0cbb7f
}

.fixed_banner .mail p:before {
    background-image: url("../images/shared_fixed_bnr_icon03.png")
}

.fix_social {
    position: fixed;
    bottom: 10px;
    right: 0;
    width: 6em;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 1em 0px
}

.fix_social p {
    writing-mode: vertical-lr;
    color: #fff;
    font-size: 1.2em;
    line-height: 1;
    text-transform: uppercase
}

.fix_social div {
    margin: 3px auto;
    max-width: 3em
}

@media only screen and (min-width: 769px) {
    .fixed_banner {
        font-size: 10px;
        width: 6em;
    }

    .fixed_banner .bnr {
        border-radius: 5px 0px 0px 5px;
        width: 22em;
        height: 6em;
        margin-bottom: 1px;
        transform: translateX(0em);
        transition: all .3s
    }

    .fixed_banner .bnr>.tt {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 6em;
        height: 6em
    }

    .fixed_banner .bnr>.tt:before {
        width: 3.4em;
        height: 3.2em;
        margin-bottom: 0
    }

    .fixed_banner .bnr>.tt:after {
        content: "";
        position: absolute;
        right: -1px;
        top: 50%;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
        background: #fff;
        opacity: .5;
        width: 1px;
        height: 40px
    }

    .fixed_banner .bnr:hover {
        transform: translateX(-16em)
    }

    .fixed_banner .ov {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        color: #fff;
        width: calc(100% - 6em)
    }

    .fixed_banner .ov p {
        margin-bottom: 0;
        font-size: 1.6em;
        letter-spacing: .1em
    }

    .fixed_banner .tel .ov p {
        font-family: var(--f-en);
        font-size: 1.7em
    }

    .fixed_banner .mail:hover {
        opacity: .8
    }
}

@media(min-width: 769px)and (max-height: 780px), only screen and (min-width: 769px)and (max-width: 1366px) {
    .fixed_banner {
        top: 180px;
        font-size: 8.75px
    }

    .fix_social {
        border-radius: 5px 0px 0px 5px;
        bottom: 0;
        background-color: rgba(204, 204, 204, 0.5)
    }

    .totop {
        right: 60px
    }

    .totop .icon {
        width: 65px;
        height: 65px
    }
}

footer {
    padding: 114px 0 114px;
    position: relative;
    z-index: 1;
    background-color: var(--clr2)
}

footer:before {
    content: "";
    display: block;
    position: absolute;
    transition: all .3s;
    width: calc(100% + 10px);
    left: -5px;
    height: calc(100% + 0px);
    bottom: 0;
    z-index: -1;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-color: var(--clr2);
    background-image: url(../images/ft_bg.jpg);
    --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 1218' %3E%3Cpath d='M1919.1000,1217.994 L0.000,1217.994 L0.000,188.934 L0.000,99.994 L0.000,44.934 C0.000,44.934 104.999,54.433 177.1000,37.434 C250.999,20.433 393.113,-6.062 538.500,23.933 C683.886,53.931 975.704,113.926 1237.999,35.934 C1500.295,-42.059 1606.086,31.435 1716.999,53.934 C1827.913,76.431 1919.1000,56.934 1919.1000,56.934 L1919.1000,99.994 L1919.1000,99.994 L1919.1000,1217.994 Z'/%3E%3C/svg%3E");
    mask-image: var(--mask);
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: cover;
    -webkit-mask-size: cover;
    mask-position: top center;
    -webkit-mask-position: top center
}

footer p {
    margin-bottom: 0
}

footer a,
footer p {
    color: #fff;
    text-decoration: none
}

footer .ft_logo {
    width: 90%;
    margin: 0px auto 39px;
    max-width: 406px
}

footer .tel_click {
    margin: 0px auto;
    display: table;
    line-height: 1.2
}

footer .ft_info {
    width: 100%;
 
}

footer .ft_info .ft_content {
    display: flex;
 justify-content: space-between;
    padding: 46px 40px 38px;
    background-color: #fff;
    border-radius: 20px;
    align-items: center;
}

footer .ft_info .des {
    margin-bottom: 9px;
    font-weight: 500;
    text-align: center;
    color: var(--clr1);
    font-size: 14px;
    letter-spacing: .05em
}

footer .ft_info .des span {
    display: inline-block
}

footer .ft_map {
 width: 48%;
    max-width: 564px;
   
   height: 450px;
    border-radius: 10px;
    overflow: hidden
}

footer .ft_link {
  width: 100%;
     margin-top: 70px;
}

footer .ft_link .big a span {
    display: block
}
.ft_left{
    width: 50%;
}
.ft_link a {
    text-decoration: none
}

.ft_link .menu01 {
    width: 100%
}

.ft_link .menu01>ul {
    max-height: 15em
}

@media only screen and (min-width: 769px) {
    .ft_link a:hover {
        color: var(--main-color)
    }

    .ft_link .menu01 {
        width: 18%;
        max-width: 250px;
    }

    .ft_link .menu01>ul {
        max-height: 54em
    }

  

    .ft_link .menu02 {
        width: 80%;
        max-width: 990px;
    }

    .ft_link .menu02>ul {
        max-height: 46em
    }

    .ft_link .menu02>ul>li.big>a {
        pointer-events: none
    }

    .ft_link .menu02>ul>li.big.m1 {
        width: 23%;
        max-width: 200px
    }

    .ft_link .menu02>ul>li.big.m2{
        width: 35%;
        max-width: 20em
    }

    .ft_link .menu02>ul>li.big.m3 {
        width: 20%;
        max-width: 9em
    }
       .ft_link .menu02>ul>li.big.m4 {
        width: 22%;
        max-width: 10em
    }
     .ft_link .menu02>ul>li.big.m5{
        width: 35%;
        max-width: 20em;
        margin-top: 1em;
    }
    .ft_link .menu02>ul>li.mb {
        margin-bottom: 2em
    }
}

.ft_link .link_list>div>ul {
    display: flex;
    flex-flow: column wrap;
    align-content: space-between
}

.ft_link .link_list>div>ul:last-child {
    margin-bottom: 0
}

.ft_link .ttl {
    position: relative;
    z-index: 2;
    margin-top: -2px;
    margin-bottom: 35px;
    padding-left: 0;
    font-size: calc(var(--ttl_size) + 4px);
    font-weight: 400;
    letter-spacing: .2em;
    line-height: 1;
    font-family: var(--f-en)
}

.ft_link .ttl:before {
    display: none
}

.ft_link .ttl:after {
    content: "";
    display: block;
    position: absolute;
    transition: all .3s;
    width: calc(100% - 4.4em);
    top: calc(50% - 2px);
    right: 0;
    border-bottom: 1px solid;
    height: 0
}

.ft_link li {
    margin-bottom: 1.45em;
    letter-spacing: .1em;
    line-height: 1.6
}

.ft_link li.last {
    margin-bottom: 29px
}

.ft_link li:last-child {
    margin-bottom: 0
}

.ft_link li.big>a {
    margin-bottom: .9em;
    padding-left: 0;
    font-weight: 500;
    letter-spacing: .2em;
    font-size: 1.375em;
    line-height: 1.43
}

.ft_link li.big>a:before {
    display: none
}

.ft_link a {
    display: table;
    position: relative;
    padding-left: .8em;
    color: inherit;
    font-size: .875em;
    line-height: 1.5;
    color: #fff;
    letter-spacing: .05em;
    transition: all .3s
}

.ft_link a span {
    display: inline-block
}

.ft_link a:before {
    position: absolute;
    content: "・";
    left: -0.25em;
    top: 0;
    border-radius: 100%;
    width: auto;
    height: auto
}

.ft_link a:hover {
    opacity: 1
}

.copyright {
    margin: 0 auto 0;
    color: #fff;
    padding: 30px 0px 0px;
    position: relative;
    z-index: 1
}

.copyright .flex {
    align-items: center;
    justify-content: flex-start;
    min-height: 40px
}

.copyright .textwidget {
    display: block;
    font-weight: 400;
    letter-spacing: .1em;
    line-height: 20px;
    padding-left: 29px;
    padding-top: 8px;
    padding-bottom: 8px;
    margin-left: 33px;
    border-left: 2px solid rgba(255, 255, 255, 0.8)
}

.copyright .textwidget p {
    margin-bottom: 0;
    line-height: inherit;
    letter-spacing: .1em
}

.copyright .grits {
    margin-bottom: 0;
    line-height: 2.501
}

.copyright .grits a {
    display: block
}

.copyright .grits img {
    max-width: 186px
}

@media only screen and (min-width: 769px)and (max-width: 1366px) {
    footer {
        padding-top: 190px;
        padding-bottom: 70px
    }
}

@media only screen and (min-width: 769px)and (max-width: 1280px) {
    .time_sheet {
        font-size: 1.2vw
    }

    .copyright .textwidget {
        margin-left: 19px;
        padding-left: 19px
    }

    .copyright .grits img {
        max-width: 180px
    }
}

@media only screen and (min-width: 769px)and (max-width: 1024px) {
    .copyright .flex {
        max-width: 400px;
        margin: auto
    }

    .copyright .grits {
        text-align: center;
        margin-left: auto;
        margin-right: auto
    }

    .copyright .grits img {
        margin: auto;
        border-bottom: 1px solid rgba(255, 255, 255, 0.5);
        padding-bottom: 7px;
        max-width: 130px
    }

    .copyright .textwidget {
        margin-top: 7px;
        border: none;
        margin-left: auto;
        margin-right: auto;
        padding: 0px 10px;
        text-align: center
    }

    .copyright .textwidget span {
        display: inline-block
    }
    footer .ft_info .ft_content{
        padding: 40px 20px;
    }
}

@media only screen and (min-width: 769px)and (max-width: 992px) {
    .time_sheet {
        font-size: 1.3vw
    }

    .time_sheet .note {
        font-size: 12px
    }

    .totop .icon {
        width: 55px;
        height: 55px
    }

    footer {
        padding: 150px 0 40px;
        background-size: 100% auto
    }

    footer .ft_link {
        font-size:min(1em, 1.4vw);
    }



 

    footer .ft_link .menu02>ul .big a span {
        display: inline-block
    }

  



}

/*# sourceMappingURL=style.css.map */