@charset "UTF-8";html,body,h1,h2,h3,h4,h5,h6,a,p,span,em,small,strong,sub,sup,mark,del,ins,strike,abbr,dfn,blockquote,q,cite,code,pre,ol,ul,li,dl,dt,dd,div,section,article,main,aside,nav,header,hgroup,footer,img,figure,figcaption,address,time,audio,video,canvas,iframe,details,summary,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td {
    margin: 0;
    padding: 0;
    border: 0;
    font-weight: normal;
    font-style: normal
}

article,aside,footer,header,nav,section,main,figure,figcaption {
    display: block
}

* {
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

*:before,*:after,*::before,*::after {
    -webkit-box-sizing: inherit;
    box-sizing: inherit
}

a {
    color: #23651c;
    border: none;
    text-decoration: none
}

a:hover {
    color: #328f27;
    text-decoration: underline
}

ol,ul {
    list-style: none
}

img,video,iframe {
    max-width: 100%
}

img {
    border: none;
    vertical-align: top
}

b,strong {
    font-weight: 500
}

blockquote,q {
    quotes: none
}

blockquote:before,blockquote:after,blockquote::before,blockquote::after,q:before,q:after,q::before,q::after {
    content: "";
    content: none
}

hr {
    display: block;
    height: 0;
    margin: 1.25em 0;
    padding: 0;
    font-size: 1em;
    line-height: 0;
    border: 0;
    border-top: 1px solid #ddd;
    -webkit-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    box-sizing: content-box
}

a,area,button,[role="button"],input:not([type=range]),label,select,summary,textarea {
    -ms-touch-action: manipulation;
    touch-action: manipulation
}

.main-heading,.news-heading {
    position: relative;
    max-width: 1100px;
    margin: 0 auto .7em;
    padding: .5em 1em;
    color: #fff;
    font-weight: 500;
    line-height: 1.3;
    background-color: #23651c
}

@media screen and (min-width: 768px), print {
    .main-heading,.news-heading {
        font-size:1.3em
    }
}

.main-subheading {
    margin-bottom: 1rem;
    font-size: 1.3em;
    line-height: 1.2
}

@media screen and (min-width: 640px), print {
    .main-subheading {
        font-size:1.5em
    }
}

.main ul>li {
    position: relative;
    padding-left: 1.5em;
    line-height: 1.5;
    list-style-type: none
}

.main ul>li:before {
    content: "";
    display: block;
    position: absolute;
    top: .5em;
    left: .5em;
    width: 6px;
    height: 6px;
    border-radius: 100%;
    background: #23651c
}

.main ul.list-style-none>li {
    padding-left: 0
}

.main ul.list-style-none>li:before {
    display: none
}

.main ul.list-style-note>li {
    padding-left: 1em
}

.main ul.list-style-note>li:before {
    content: "※";
    top: 0;
    left: 0;
    width: auto;
    height: auto;
    border-radius: 0;
    background: none
}

.main ul.list-style-gutter li:not(:last-child) {
    margin-bottom: .3em
}

.main ul.list-style-secondary>li {
    color: #d1e0b4
}

.main ul.list-style-secondary>li:before {
    background: #d1e0b4
}

.main ol>li {
    margin-left: 1.5em;
    line-height: 1.5;
    list-style-type: decimal
}

.main ol.list-style-none>li {
    margin-left: 0;
    list-style-type: none
}

.main ol.list-style-gutter li:not(:last-child) {
    margin-bottom: .3em
}

.note {
    margin-left: 1em;
    text-indent: -1em
}

.more {
    margin-top: 1.5em;
    text-align: center
}

.more.right {
    margin-top: .75em
}

.link-button {
    display: inline-block;
    vertical-align: top;
    position: relative;
    padding: .5em 2em .5em .7em;
    color: #fff;
    line-height: 1.5;
    text-align: left;
    border-radius: 4px;
    background-color: #23651c;
    -webkit-transition: .2s;
    transition: .2s
}

.link-button:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 14px;
    bottom: 0;
    width: 8px;
    height: 8px;
    margin: auto;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg)
}

.link-button-news {
    background-color: #706150
}

.link-button-edu {
    background-color: #b25900
}

.link-button-recruit {
    background-color: #b28500
}

.link-button-large {
    padding: .5em 1.5em;
    text-align: center
}

@media screen and (min-width: 1100px), print {
    .link-button-large {
        font-size:1.1em
    }
}

.link-button-large:before {
    display: none
}

.link-button-reverse {
    line-height: 1.4;
    color: #333;
    border: 2px solid #23651c;
    background-color: #fff
}

.link-button-reverse:before {
    border-color: #23651c
}

a.link-button:hover {
    color: #fff;
    text-decoration: none;
    background-color: #328f27
}

a.link-button-news:hover {
    background-color: #988774
}

a.link-button-edu:hover {
    background-color: #e07e1c
}

a.link-button-recruit:hover {
    background-color: #d6aa29
}

a.link-button-reverse:hover {
    border-color: #328f27
}

a.link-button-reverse:hover:before {
    border-color: #fff
}

.inner {
    position: relative;
    max-width: 1100px;
    margin-right: auto;
    margin-left: auto
}

.inner:after {
    content: "";
    display: table;
    clear: both
}

.gutter:not(:last-child) {
    margin-bottom: 5em
}

.gutter>.inner {
    padding-right: 1.5em;
    padding-left: 1.5em;
    line-height: 1.8
}

@media screen and (max-width: 767.98px) {
    .gutter>.inner {
        padding-right:0;
        padding-left: 0;
        line-height: 1.6
    }
}

.gutter>.inner .inner {
    overflow: hidden
}

.gutter .inner:not(:last-child) {
    margin-bottom: 42px;
    margin-bottom: 3rem
}

.gutter.dmy {
    max-width: none
}

.gutter.dmy>.inner {
    max-width: none;
    padding: 0;
    line-height: 1;
    text-align: center
}

.gutter.dmy.wide {
    margin-right: -1em;
    margin-left: -1em;
    overflow: hidden
}

@media screen and (min-width: 1100px), print {
    .gutter.dmy.wide {
        margin-right:-2em;
        margin-left: -2em
    }
}

.gutter.dmy.wide>.inner {
    margin-right: -23%;
    margin-left: -23%
}

@media screen and (min-width: 1100px), print {
    .gutter.dmy.wide>.inner {
        margin-right:-250px;
        margin-left: -250px
    }
}

.anchor-point {
    display: block
}

.anchor-point:before {
    content: "";
    display: block;
    position: relative;
    height: 1px;
    margin-top: -100px;
    margin-bottom: 100px;
    background: rgba(255,255,255,0) url(../img/base/blank.gif);
    z-index: -100
}

@media screen and (min-width: 1100px), print {
    .anchor-point:before {
        margin-top:-175px;
        margin-bottom: 175px
    }
}

.anchor-point span {
    display: none
}

.subsection:not(:last-child) {
    margin-bottom: 1.5em;
    padding-bottom: 1.5em;
    border-bottom: 1px dotted #eee
}

.css-counter {
    counter-reset: section
}

.css-counter .counter:before {
    counter-increment: section;
    content: counter(section) ". "
}

.marker {
    background: -webkit-gradient(linear, left top, left bottom, color-stop(85%, rgba(0,0,0,0)), color-stop(0%, #000));
    background: linear-gradient(rgba(0,0,0,0) 85%, #000 0%)
}

.widelink {
    display: inline-block;
    position: relative;
    margin: -10px;
    padding: 10px
}

.card {
    position: relative
}

.card a:before {
    content: "";
    position: absolute;
    top: -1px;
    right: -1px;
    bottom: -1px;
    left: -1px
}

.sticky {
    position: -webkit-sticky;
    position: sticky;
    top: 0
}

.kerning {
    -webkit-font-feature-settings: "palt" 1;
    font-feature-settings: "palt" 1
}

.notebook-line {
    position: relative;
    padding-right: .5em;
    padding-left: .5em;
    line-height: 40px;
    border-top: 1px solid #eee;
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), color-stop(97%, rgba(0,0,0,0)), color-stop(97%, #eee), to(#eee));
    background-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 97%, #eee 97%, #eee 100%);
    background-size: 100% 40px
}

.notebook-line-whiteline {
    border-top-color: #fff;
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), color-stop(97%, rgba(0,0,0,0)), color-stop(97%, #fff), to(#fff));
    background-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 97%, #fff 97%, #fff 100%)
}

.notebook-line-dotted {
    padding-top: 1px;
    line-height: 40px;
    border-top: none;
    background: url(../img/base/border.svg) 0 100%;
    background-size: auto
}

.notebook-line-whitedotted {
    background-image: url(../img/base/border_w.svg)
}

.table-style {
    display: block
}

.table-style tbody {
    display: block;
    line-height: 1.5
}

.table-style tr {
    display: table;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0
}

@media screen and (max-width: 639.98px) {
    .table-style tr {
        display:block
    }
}

.table-style tr:not(:last-child) {
    margin-bottom: 5px
}

.table-style th {
    width: 15em;
    padding: .75em 1em;
    background-color: #eee
}

@media screen and (max-width: 639.98px) {
    .table-style th {
        display:block;
        width: auto;
        padding: .5em;
        font-size: 1.1em
    }
}

.table-style td {
    padding: .75em 1em;
    border: 1px solid #eee
}

@media screen and (max-width: 639.98px) {
    .table-style td {
        display:block;
        padding: .5em .5em .5em .7em;
        font-size: .95em
    }
}

.img-style {
    border-radius: .5em
}

@media screen and (min-width: 1100px), print {
    .global-contact-items {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center
    }
}

.global-contact-reservation {
    text-align: center
}

@media screen and (min-width: 1100px), print {
    .global-contact-reservation {
        margin-right:1em
    }
}

.global-contact .reservation-button {
    display: block;
    margin-bottom: .7em
}

@media screen and (min-width: 360px), print {
    .global-contact .reservation-button {
        max-width:280px;
        margin: 0 auto .7em
    }
}

@media screen and (min-width: 1100px), print {
    .global-contact .reservation-button {
        max-width:none;
        margin: 0
    }
}

.global-contact .reservation-button .tel-link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: relative;
    height: 50px;
    padding: 0 1em;
    font-weight: 700;
    color: #23651c;
    border-radius: 4px;
    border: 3px solid #ddd;
    background-color: #fff
}

.global-contact .reservation-button .tel-link:before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    margin: -.1em .5em 0 0;
    background: url(../img/base/tel2.svg) center no-repeat;
    background-size: cover
}

.global-contact .reservation-button a.tel-link {
    text-decoration: none
}

.global-contact .reservation-button a.tel-link:hover {
    color: #fff;
    border-color: #d1e0b4;
    background-color: #328f27
}

.global-contact .reservation-button a.tel-link:hover:before {
    background-image: url(../img/base/tel.svg)
}

.global-contact .tel-item {
    margin-top: .5em;
    line-height: 1.3;
    text-align: center
}

@media screen and (min-width: 1100px), print {
    .global-contact .tel-item {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        margin-top: 0;
        text-align: left
    }
}

@media screen and (min-width: 1100px), print {
    .global-contact .tel-item dt {
        margin-right:.7em
    }
}

.global-contact .tel-item dd {
    -webkit-font-feature-settings: "palt" 1;
    font-feature-settings: "palt" 1
}

@media screen and (min-width: 1100px), print {
    .global-contact .tel-item dd {
        font-size:.9em
    }
}

.global-contact .tel-item .tel-link {
    font-weight: 700
}

.global-contact .tel-item .tel-link:hover {
    text-decoration: none
}

.global-contact .tel-item-primary .tel-link {
    color: #23651c;
    font-size: 1.6em
}

.global-contact .tel-item-primary a.tel-link:hover {
    color: #328f27
}

.global-contact .tel-item-secondary {
    font-size: .95em
}

.global-contact .tel-item-secondary .tel-link {
    color: #8c2200
}

.global-contact .tel-item-secondary a.tel-link:hover {
    color: #328f27
}

.en-page .global-contact .tel-item-secondary {
    display: block
}

html,body {
    height: 100%
}

html {
    font-size: 62.5%;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    -o-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility
}

@media screen and (min-width: 1100px), print {
    html {
        overflow-y:scroll
    }
}

body {
    min-width: 320px;
    color: #333;
    font-family: "游ゴシック体","Yu Gothic",YuGothic,"ヒラギノ角ゴ Pro","Hiragino Kaku Gothic Pro","メイリオ","Meiryo",sans-serif;
    font-size: 1.6rem;
    line-height: 1.4;
    text-align: left;
    background-color: #fff
}

html.nav-open,html.modal-open,html.slideout-open {
    position: relative;
    width: 100%;
    height: 100%;
    overflow-y: hidden;
    overflow-x: hidden
}

.wrapper {
    position: relative;
    overflow: hidden
}

.header {
    padding-top: 104px
}

@media screen and (min-width: 1100px), print {
    .header {
        padding-top:0
    }
}

.en-page .header {
    padding-top: 60px
}

@media screen and (min-width: 1100px), print {
    .en-page .header {
        padding-top:0
    }
}

.header .inner {
    position: static;
    max-width: none;
    z-index: auto
}

@media screen and (min-width: 1100px), print {
    .header .inner {
        position:absolute;
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
        padding: 0 1em;
        z-index: 1000
    }
}

@media screen and (min-width: 1100px), print {
    .header .inner:before {
        content:"";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 140px;
        border-bottom: 110px solid #fff;
        background-color: rgba(255,255,255,0.6);
        -webkit-backdrop-filter: blur(3px);
        backdrop-filter: blur(3px)
    }
}

.header-logo {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    font-size: 100%;
    background-color: #fff;
    z-index: 910
}

@media screen and (max-width: 1099.98px) {
    .header-logo {
        -webkit-transition:top .3s;
        transition: top .3s
    }

    .header-logo.hide {
        top: -60px
    }

    .nav-open .header-logo.hide,.slideout-open .header-logo.hide {
        top: 0;
        -webkit-transition: none;
        transition: none
    }
}

@media screen and (min-width: 1100px), print {
    .header-logo {
        position:relative;
        max-width: 1100px;
        height: auto;
        margin: auto;
        background: none;
        z-index: auto
    }
}

.header-logo .site-logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 100%;
    font-size: 100%
}

@media screen and (min-width: 1100px), print {
    .header-logo .site-logo {
        display:block;
        position: absolute;
        top: 42px;
        left: 0;
        height: auto
    }
}

.header-link {
    display: block;
    width: 166.66667px;
    margin-left: -55px
}

@media screen and (min-width: 480px), print {
    .header-link {
        width:200px;
        margin-left: 0
    }
}

@media screen and (min-width: 768px), print {
    .header-link {
        width:250px
    }
}

@media screen and (min-width: 1100px), print {
    .header-link {
        width:428.57143px
    }
}

@media screen and (max-width: 479.98px) {
    .nav-open .header-link {
        width:200px;
        margin-left: -5px
    }
}

@media screen and (max-width: 1099.98px) {
    .header-language {
        display:block;
        position: fixed;
        top: 0;
        right: 60px;
        background-color: #328f27;
        z-index: 950;
        -webkit-transition: top .3s;
        transition: top .3s
    }

    .header-language.hide {
        top: -60px
    }

    .nav-open .header-language {
        right: 0
    }

    .nav-open .header-language.hide {
        top: 0;
        -webkit-transition: none;
        transition: none
    }
}

@media screen and (max-width: 767.98px) {
    .header-language {
        right:50px
    }
}

@media screen and (min-width: 1100px), print {
    .header-language {
        display:none
    }
}

.header-language a {
    display: block;
    position: relative;
    width: 50px;
    height: 60px;
    padding: 40px 0 0;
    color: #fff;
    text-align: center
}

@media screen and (min-width: 768px), print {
    .header-language a {
        width:60px
    }
}

.header-language a:hover {
    text-decoration: none
}

.header-language a:before {
    content: "";
    display: block;
    position: absolute;
    top: 10px;
    right: 0;
    left: 0;
    width: 22px;
    height: 22px;
    margin: auto;
    background: url(../img/base/language.svg) center no-repeat;
    background-size: cover
}

.header-language a:after {
    content: attr(data-label);
    display: block;
    font-size: .7em;
    letter-spacing: .2em
}

.header-language span {
    display: none
}

@media screen and (min-width: 1100px) {
    .header.fixed .inner {
        position:fixed;
        top: -60px;
        -webkit-transform: translateY(60px);
        transform: translateY(60px);
        -webkit-transition: -webkit-transform .2s;
        transition: -webkit-transform .2s;
        transition: transform .2s;
        transition: transform .2s, -webkit-transform .2s
    }

    #top .header.fixed .inner {
        position: fixed;
        top: -60px
    }

    .header.fixed .inner:before {
        height: 105px;
        border-bottom-width: 75px;
        border-bottom-color: #23651c
    }

    .header.fixed .header-logo {
        display: none
    }

    .header.fixed .header-language a:before {
        background-color: #23651c
    }

    .header.fixed .header-language a:hover:before {
        background-color: #328f27
    }
}

@media screen and (max-width: 1099.98px) {
    .nav-open .nav {
        display:block;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0,0,0,0);
        z-index: 900
    }
}

@media screen and (min-width: 1100px), print {
    .nav {
        display:block;
        position: absolute;
        top: 0;
        width: 100%;
        z-index: 1001
    }
}

@media screen and (max-width: 1099.98px) {
    .nav-open .nav .inner {
        position:relative;
        width: 100%;
        height: 100%;
        padding: 60px 0 2em;
        background-color: #e4edd3;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch
    }
}

@media screen and (min-width: 1100px), print {
    .nav .inner {
        position:static;
        max-width: none
    }
}

@media screen and (max-width: 1099.98px) {
    .nav-contact {
        display:block;
        position: fixed;
        top: 60px;
        right: 0;
        width: 100%;
        padding: 1.5em 1em;
        background-color: #e4edd3;
        pointer-events: none;
        opacity: 0;
        z-index: 910
    }

    .nav-open .nav-contact,.slideout-open .nav-contact {
        position: static;
        pointer-events: auto;
        background: none;
        opacity: 1
    }

    .contact-open .nav-contact {
        pointer-events: auto;
        opacity: 1
    }
}

@media screen and (max-width: 479.98px) {
    .nav-contact {
        width:100%
    }
}

@media screen and (min-width: 1100px), print {
    .nav-contact {
        position:relative;
        max-width: 1100px;
        margin: auto
    }

    .nav-contact .global-contact {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        position: absolute;
        top: 140px;
        right: 0;
        height: 110px
    }
}

.nav-content {
    padding: 0 1em
}

@media screen and (min-width: 1100px), print {
    .nav-content {
        margin-top:-110px;
        padding: 0
    }
}

.main-nav-primary {
    display: none
}

.nav-open .main-nav-primary {
    display: block;
    max-width: 360px;
    margin: auto
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary {
        display:block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0 1em;
        border-top: none
    }
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary .nav-items {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: end;
        -ms-flex-pack: end;
        justify-content: flex-end;
        position: relative;
        width: 100%;
        max-width: 1100px;
        margin: auto
    }
}

@media screen and (max-width: 1099.98px) {
    .main-nav-primary .nav-item:not(:last-child) {
        margin-bottom:.5em
    }
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary .nav-item:last-child {
        position:relative
    }

    .main-nav-primary .nav-item:last-child:before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        width: 2px;
        height: 50%;
        margin: auto;
        background-color: #fff
    }
}

.main-nav-primary .nav-link {
    display: block;
    position: relative;
    padding: .6em 1em;
    color: #333;
    border-radius: 10em;
    border: 2px solid #ccc;
    background-color: #fff
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary .nav-link {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        height: 30px;
        padding: 0 2em;
        border-radius: 0;
        border: none;
        background: none
    }
}

.main-nav-primary .nav-link:hover {
    color: #328f27;
    text-decoration: none;
    border-color: #328f27
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary .nav-link:hover {
        color:#fff;
        background-color: #328f27;
        z-index: 20
    }

    .main-nav-primary .nav-link:hover:before {
        height: 100%;
        background-color: #328f27
    }
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary .nav-link:before {
        content:"";
        display: block;
        position: absolute;
        top: 0;
        bottom: 0;
        left: -2px;
        width: 2px;
        height: 50%;
        margin: auto;
        background-color: #fff
    }
}

.main-nav-primary .nav-link span {
    display: block;
    position: relative;
    font-weight: 500;
    font-size: 1.05em
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary .nav-link span {
        font-size:.9em
    }
}

.main-nav-primary .nav-link span:after {
    content: attr(data-subtitle);
    display: block;
    position: absolute;
    top: 50%;
    right: 0;
    font-size: 1.2rem;
    color: #999;
    letter-spacing: .05em;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
}

@media screen and (min-width: 1100px), print {
    .main-nav-primary .nav-link span:after {
        display:none
    }
}

@media screen and (max-width: 1099.98px) {
    .main-nav-secondary {
        display:block;
        position: fixed;
        top: 60px;
        left: 0;
        width: 100%;
        padding-top: 44px;
        z-index: 900;
        -webkit-transition: top .3s;
        transition: top .3s
    }

    .main-nav-secondary.hide {
        top: 0
    }

    .nav-open .main-nav-secondary {
        display: none
    }
}

@media screen and (min-width: 1100px), print {
    .main-nav-secondary {
        display:block;
        background-color: #23651c;
        -webkit-transform: translateY(410px);
        transform: translateY(410px)
    }

    #top .main-nav-secondary {
        -webkit-transform: translateY(710px);
        transform: translateY(710px)
    }
}

@media screen and (min-width: 1100px), print {
    .main-nav-secondary .nav-items {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        max-width: 1100px;
        margin: auto
    }
}

@media screen and (max-width: 1099.98px) {
    .main-nav-secondary .nav-item.nav-about .nav-link {
        left:0;
        width: 20%
    }

    .main-nav-secondary .nav-item.nav-owner .nav-link {
        left: 20%;
        width: 20%
    }

    .main-nav-secondary .nav-item.nav-doctor .nav-link {
        left: 40%;
        width: 20%
    }

    .main-nav-secondary .nav-item.nav-guide .nav-link {
        left: 60%;
        width: 20%
    }

    .main-nav-secondary .nav-item.nav-access .nav-link {
        left: 80%;
        width: 20%
    }
}

@media screen and (min-width: 1100px), print {
    .main-nav-secondary .nav-item {
        -webkit-box-flex:1;
        -ms-flex-positive: 1;
        flex-grow: 1
    }

    .main-nav-secondary .nav-item:first-child .nav-link:before {
        display: none
    }
}

.main-nav-secondary .nav-link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    height: 44px;
    color: #333;
    background-color: #e4edd3
}

@media screen and (min-width: 1100px), print {
    .main-nav-secondary .nav-link {
        position:relative;
        height: 100px;
        color: #e4edd3;
        background: none
    }
}

.main-nav-secondary .nav-link:hover {
    text-decoration: none
}

@media screen and (min-width: 1100px), print {
    .main-nav-secondary .nav-link:hover {
        color:#fff;
        background-color: #328f27;
        z-index: 20
    }

    .main-nav-secondary .nav-link:hover:before {
        height: 100%;
        background-color: #328f27
    }
}

.main-nav-secondary .nav-link:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -1px;
    width: 1px;
    height: 60%;
    margin: auto;
    background-color: #d1e0b4
}

.main-nav-secondary .nav-link:after {
    content: attr(data-title);
    display: block;
    width: 100%;
    line-height: 1.1;
    font-weight: 500;
    font-size: 1.15rem;
    text-align: center
}

@media screen and (min-width: 768px), print {
    .main-nav-secondary .nav-link:after {
        font-size:1.3rem
    }
}

@media screen and (min-width: 1100px), print {
    .main-nav-secondary .nav-link:after {
        display:none
    }
}

.main-nav-secondary .nav-link span {
    display: none
}

@media screen and (min-width: 1100px), print {
    .main-nav-secondary .nav-link span {
        display:block;
        position: relative;
        width: 100%;
        font-size: 1.2em;
        text-align: center
    }
}

.main-nav-secondary .nav-link span:after {
    content: attr(data-subtitle);
    display: block;
    font-size: 1.15rem;
    letter-spacing: .1em
}

.main-nav-secondary .sub-nav-active .nav-link {
    color: #fff;
    background-color: #328f27;
    z-index: 20
}

.main-nav-secondary .sub-nav-active .nav-link:before {
    height: 100%;
    background-color: #328f27
}

.sub-nav {
    opacity: 0;
    pointer-events: none
}

@media screen and (max-width: 1099.98px) {
    .sub-nav {
        height:0
    }
}

@media screen and (min-width: 1100px), print {
    .sub-nav {
        position:absolute;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 1;
        -webkit-transform: translateY(100px);
        transform: translateY(100px)
    }

    #top .sub-nav {
        -webkit-transform: translateY(-460px);
        transform: translateY(-460px)
    }
}

.sub-nav-active .sub-nav {
    opacity: 1;
    pointer-events: auto;
    background-color: rgba(35,101,28,0.85);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px)
}

@media screen and (max-width: 1099.98px) {
    .sub-nav-active .sub-nav {
        height:auto
    }
}

@media screen and (min-width: 1100px), print {
    #top .sub-nav-active .sub-nav {
        height:460px
    }
}

.sub-nav-inner {
    position: relative;
    width: 100%;
    height: 100%;
    max-height: 16em;
    padding: 0 1.5em 1.5em
}

@media screen and (max-width: 1099.98px) {
    .sub-nav-inner {
        overflow-y:auto;
        -webkit-overflow-scrolling: touch
    }
}

@media screen and (min-width: 1100px), print {
    .sub-nav-inner {
        max-height:none;
        padding: 0 2em 2em
    }
}

.sub-nav-label {
    padding: 1.5em 0 1em;
    text-align: center
}

@media screen and (min-width: 1100px), print {
    .sub-nav-label {
        padding:2.5em 0 2em
    }
}

.sub-nav-label a {
    display: inline-block;
    vertical-align: top;
    position: relative;
    padding: 0 40px;
    line-height: 1.1;
    font-weight: 500;
    font-size: 1.3em;
    color: #fff
}

@media screen and (min-width: 1100px), print {
    .sub-nav-label a {
        padding:0 50px;
        font-size: 1.8em
    }
}

.sub-nav-label a:hover {
    color: #e4edd3;
    text-decoration: none
}

.sub-nav-label a:hover:before {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
}

.sub-nav-label a:hover:after {
    -webkit-transform: rotate(10deg);
    transform: rotate(10deg)
}

.sub-nav-label a:before,.sub-nav-label a:after {
    content: "";
    display: block;
    position: absolute;
    top: -3px;
    bottom: 0;
    width: 40px;
    height: 22.85714px;
    margin: auto;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain
}

@media screen and (min-width: 1100px), print {
    .sub-nav-label a:before,.sub-nav-label a:after {
        height:32px
    }
}

.sub-nav-label a:before {
    left: 0;
    background-image: url(../img/base/dog.svg)
}

.sub-nav-label a:after {
    right: 0;
    background-image: url(../img/base/cat.svg)
}

@media screen and (min-width: 1100px), print {
    .sub-nav-items {
        max-width:1100px;
        margin: auto
    }
}

.sub-nav-items ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -5px -5px 0
}

@media screen and (min-width: 768px), print {
    .sub-nav-items ul {
        margin:0 -7px -7px 0
    }
}

.sub-nav-items li {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 5px 5px 0
}

@media screen and (min-width: 480px), print {
    .sub-nav-items li {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

@media screen and (min-width: 768px), print {
    .sub-nav-items li {
        -ms-flex-preferred-size:33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%;
        padding: 0 7px 7px 0
    }
}

@media screen and (min-width: 992px), print {
    .sub-nav-items li {
        -ms-flex-preferred-size:25%;
        flex-basis: 25%;
        max-width: 25%
    }
}

.sub-nav-items a {
    display: block;
    position: relative;
    padding: .7em 0 .7em 1em;
    font-weight: 500;
    font-size: .85em;
    color: #fff;
    border: 1px solid #e4edd3
}

@media screen and (min-width: 1100px), print {
    .sub-nav-items a {
        font-size:1em
    }
}

.sub-nav-items a:hover {
    color: #23651c;
    text-decoration: none;
    border-color: #fff;
    background-color: #fff
}

.nav-button {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 50px;
    height: 60px;
    background-color: #fff;
    cursor: pointer;
    outline: none;
    z-index: 910
}

@media screen and (max-width: 1099.98px) {
    .nav-button {
        -webkit-transition:top .3s;
        transition: top .3s
    }

    .nav-button.hide {
        top: -60px
    }

    .nav-open .nav-button.hide,.slideout-open .nav-button.hide {
        top: 0;
        -webkit-transition: none;
        transition: none
    }
}

@media screen and (min-width: 768px), print {
    .nav-button {
        width:60px
    }
}

@media screen and (min-width: 1100px), print {
    .nav-button {
        display:none
    }
}

.nav-button-icon {
    display: block;
    position: absolute;
    top: -14px;
    right: 0;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 2px;
    margin: auto;
    background-color: #23651c
}

.nav-open .nav-button-icon,.slideout-open .nav-button-icon {
    background: none
}

.nav-button-icon:before,.nav-button-icon:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: auto;
    background-color: #23651c
}

.nav-button-icon:before {
    margin-top: -8px
}

.nav-open .nav-button-icon:before,.slideout-open .nav-button-icon:before {
    margin-top: 0;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg)
}

.nav-button-icon:after {
    margin-top: 8px
}

.nav-open .nav-button-icon:after,.slideout-open .nav-button-icon:after {
    margin-top: 0;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

.nav-button:after {
    content: "MENU";
    display: block;
    position: absolute;
    bottom: 6px;
    left: 0;
    width: 100%;
    color: #23651c;
    font-size: .7em;
    font-weight: 700;
    text-align: center
}

.nav-open .nav-button:after,.slideout-open .nav-button:after {
    content: "CLOSE"
}

@media screen and (min-width: 1100px) {
    .nav.fixed .nav-contact {
        display:none
    }

    .nav.fixed .main-nav-primary {
        position: fixed;
        top: 0;
        margin-top: -60px;
        -webkit-transform: translateY(60px);
        transform: translateY(60px);
        -webkit-transition: -webkit-transform .2s;
        transition: -webkit-transform .2s;
        transition: transform .2s;
        transition: transform .2s, -webkit-transform .2s
    }

    .nav.fixed .main-nav-primary .nav-item:last-child:before {
        background-color: #23651c
    }

    .nav.fixed .main-nav-primary .nav-link:before {
        background-color: #23651c
    }

    .nav.fixed .main-nav-primary .nav-link:hover:before {
        background-color: #328f27
    }

    .nav.fixed .main-nav-secondary {
        position: fixed;
        top: -60px;
        width: 100%;
        margin: 60px 0 0;
        background: none;
        -webkit-transform: none;
        transform: none;
        -webkit-transition: margin-top .2s;
        transition: margin-top .2s;
        -webkit-transform: translateY(30px);
        transform: translateY(30px)
    }

    #top .nav.fixed .main-nav-secondary {
        top: -60px;
        -webkit-transform: translateY(30px);
        transform: translateY(30px)
    }

    .nav.fixed .main-nav-secondary .nav-link {
        height: 75px
    }

    .nav.fixed .main-nav-secondary .nav-link span {
        font-size: 1em
    }

    .nav.fixed .sub-nav {
        top: 75px;
        height: auto;
        -webkit-transform: none;
        transform: none
    }

    #top .nav.fixed .sub-nav .sub-nav {
        top: 75px;
        height: auto;
        -webkit-transform: none;
        transform: none
    }
}

@media screen and (min-width: 1100px) {
    #top .nav.topfixed .sub-nav {
        top:100px;
        height: auto;
        -webkit-transform: none;
        transform: none
    }

    #top .nav.topfixed.fixed .sub-nav {
        top: 75px;
        height: auto
    }
}

.main {
    display: block;
    padding: 5em 1em 0;
    background: #fff;
    overflow: hidden
}

#top .main {
    padding: 0 1em
}

@media screen and (min-width: 1100px), print {
    .main {
        padding:5em 2em 0;
        overflow: visible
    }

    #top .main {
        padding: 0 2em
    }
}

.main>.inner {
    max-width: none
}

.main-container {
    max-width: 1100px;
    margin: auto;
    margin-bottom: 4em;
    line-height: 1.8
}

@media screen and (min-width: 768px), print {
    .main-container {
        padding-right:1.5rem;
        padding-left: 1.5rem
    }
}

@media screen and (min-width: 1100px), print {
    .main-container {
        margin-bottom:5em;
        padding-right: 2rem;
        padding-left: 2rem
    }
}

.main-container h2,.main-container h3,.main-container h4,.main-container h5,.main-container h6 {
    clear: both;
    position: relative;
    font-weight: 500;
    font-size: 100%;
    line-height: 1.3
}

.main-container h2:first-child,.main-container h3:first-child,.main-container h4:first-child,.main-container h5:first-child,.main-container h6:first-child {
    margin-top: 0
}

.main-container h2 {
    margin: 2.2em -1.6rem .85em;
    padding: .6em .8em;
    font-weight: 700;
    font-size: 1.4em;
    color: #fff;
    border-top: 4px solid #e4edd3;
    border-bottom: 4px solid #e4edd3;
    background-color: #23651c;
    background: repeating-linear-gradient(90deg, #7ea554, #7ea554 15px, #8bae65 0, #8bae65 30px);
    z-index: 1
}

@media screen and (min-width: 768px), print {
    .main-container h2 {
        font-size:1.8em;
        border: 4px solid #e4edd3
    }
}

@media screen and (min-width: 1100px), print {
    .main-container h2 {
        margin-right:-2rem;
        margin-left: -2rem
    }
}

.main-container h3 {
    margin: 2.5em 0 .5em;
    padding: .5em .75em;
    font-size: 1.25em;
    color: #fff;
    border-left: 4px solid #d1e0b4;
    background-color: #23651c
}

.main-container h4 {
    margin: 3em 0 .6em;
    padding: 0 0 .5em;
    font-size: 1.2em;
    color: #23651c;
    border-bottom: 2px solid #d1e0b4
}

@media screen and (min-width: 768px), print {
    .main-container h4 {
        padding-left:.4em;
        font-size: 1.35em
    }
}

.main-container h4::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 2em;
    height: 2px;
    background-color: #23651c
}

.main-container h5 {
    margin: 1.2em 0 .7em;
    padding: .5em .5em .5em 1em;
    font-size: 1.1em;
    border: 1px solid #23651c;
    border-left-width: 5px
}

.main-container h6 {
    margin: 1.2em 0 .7em;
    padding: 0 0 .5em;
    font-size: 1.2em;
    border-bottom: 1px solid #23651c
}

.main-container ul,.main-container ol {
    margin: .5em;
    line-height: 1.5
}

.main-container li:not(:last-child) {
    margin-bottom: 1em
}

.main-container ol+ol,.main-container ul+ul {
    margin-top: 1em
}

.main-container h2+h3 {
    margin-top: 1.5em
}

.main-container h3+ul,.main-container h3+ol {
    margin-top: 1.5em;
    margin-left: .65em
}

.main-container h3+p {
    margin-top: 1.25em
}

.main-container h3+table {
    margin-top: 1.25em
}

.main-container h3+h4 {
    margin-top: 1.35em
}

.main-container .anchor-point+h4 {
    margin-top: 8em;
    margin-top: calc( 100px + 3em)
}

.main-container table {
    width: 100%;
    font-size: .85em;
    line-height: 1.35;
    border-collapse: separate;
    border-spacing: 1px
}

@media screen and (min-width: 992px), print {
    .main-container table {
        font-size:1em
    }
}

.main-container table th,.main-container table td {
    font-weight: 500;
    padding: .7em 1em
}

.main-container table th {
    width: 35%;
    background-color: #dee9c7
}

@media screen and (min-width: 1100px), print {
    .main-container table th {
        width:25%
    }
}

.main-container table td {
    background-color: #eee
}

.main-container table+p {
    margin-top: .7em
}

.main-container a {
    text-decoration: underline
}

.main-container a:hover {
    text-decoration: none
}

.main-container .link-button {
    text-decoration: none
}

.main-content {
    line-height: 1.5
}

@media screen and (min-width: 768px), print {
    .main-content {
        line-height:1.8
    }
}

.main-content img {
    margin: 0 .5em .5em
}

.main-content table thead th,.main-content table thead td {
    padding: .5em 0
}

.main-content table thead th {
    width: auto;
    background-color: #000
}

@media screen and (max-width: 639.98px) {
    .main-content table thead th {
        display:none
    }
}

.main-content table thead td {
    width: 16%;
    color: #fff;
    font-size: 1.1em;
    text-align: center;
    background-color: #444
}

.main-content table tbody th,.main-content table tbody td {
    width: auto;
    text-align: center
}

@media screen and (max-width: 639.98px) {
    .main-content table tbody th {
        display:none
    }
}

.footer {
    display: block;
    position: relative;
    padding: 0 1em;
    background-color: #fff;
    overflow: hidden;
    z-index: 100
}

@media screen and (min-width: 1100px), print {
    .footer {
        padding:0 2em
    }
}

.footer .inner {
    max-width: none
}

.footer-main {
    padding: 2em 0
}

@media screen and (min-width: 1100px), print {
    .footer-main {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        max-width: 1100px;
        margin: auto;
        padding: 2.5em 0
    }
}

.footer-head {
    margin-bottom: 1.5em
}

@media screen and (min-width: 1100px), print {
    .footer-head {
        -webkit-box-flex:1;
        -ms-flex: 1;
        flex: 1;
        margin-bottom: 0;
        padding-right: 2em
    }
}

@media screen and (min-width: 1100px), print {
    .footer-body {
        width:620px
    }
}

.footer-logo {
    text-align: center
}

.footer-logo .site-logo {
    margin-bottom: 1em
}

.footer-logo .site-logo img {
    width: 300px
}

@media screen and (min-width: 768px), print {
    .footer-logo .site-logo img {
        width:428.57143px
    }
}

.footer-logo .site-address {
    font-size: .8em
}

@media screen and (min-width: 1100px), print {
    .footer-logo .site-address {
        font-size:.9em
    }
}

.footer-nav {
    max-width: 280px;
    margin: 0 auto 2em
}

@media screen and (min-width: 480px), print {
    .footer-nav {
        max-width:640px
    }
}

@media screen and (min-width: 1100px), print {
    .footer-nav {
        max-width:none;
        margin-bottom: 1.5em
    }
}

.footer-nav .nav-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -.3em -.3em 0
}

.footer-nav .nav-item {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 .3em .3em 0
}

@media screen and (min-width: 480px), print {
    .footer-nav .nav-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

@media screen and (min-width: 768px), print {
    .footer-nav .nav-item {
        -ms-flex-preferred-size:33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%
    }
}

.footer-nav .nav-link {
    display: block;
    position: relative;
    padding: .5em 0 .5em 25px;
    line-height: 1.3;
    color: #333;
    border: 1px solid #eee
}

@media screen and (min-width: 1100px), print {
    .footer-nav .nav-link {
        font-size:.9em
    }
}

@media screen and (min-width: 1100px), print {
    .footer-nav .nav-link {
        padding:.3em 0 .3em 25px;
        font-size: 1em;
        border-color: #fff
    }
}

.footer-nav .nav-link:hover {
    color: #fff;
    text-decoration: none;
    border-color: #328f27;
    background-color: #328f27
}

.footer-nav .nav-link:hover:before {
    border-color: #fff
}

.footer-nav .nav-link:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 7px;
    bottom: 0;
    width: 8px;
    height: 8px;
    margin: auto;
    border-top: 2px solid #543d29;
    border-right: 2px solid #543d29;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg)
}

.footer-bnr {
    margin: 0 -1em;
    padding: 1.4em 1em;
    background-color: #23651c
}

@media screen and (min-width: 1100px), print {
    .footer-bnr {
        margin:0 -2em;
        padding: 1.4em 2em
    }
}

.footer-bnr .bnr-items {
    margin: -.7em 0
}

@media screen and (min-width: 640px), print {
    .footer-bnr .bnr-items {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        margin: 0
    }
}

.footer-bnr .bnr-item {
    margin: .7em 0;
    text-align: center
}

@media screen and (min-width: 640px), print {
    .footer-bnr .bnr-item {
        margin:0 .3em
    }
}

@media screen and (min-width: 1100px), print {
    .footer-bnr .bnr-item {
        margin:0 .7em
    }
}

.footer .pagetop {
    display: block;
    position: relative;
    width: 44px;
    height: 44px;
    margin: 1.4em auto -.25em;
    text-align: center;
    overflow: hidden;
    z-index: 100
}

@media screen and (min-width: 640px), print {
    .footer .pagetop {
        position:absolute;
        right: 10px;
        bottom: 10px;
        margin: 0
    }
}

@media screen and (min-width: 1100px), print {
    .footer .pagetop {
        position:fixed;
        opacity: 0;
        pointer-events: none;
        -webkit-transition: opacity .3s;
        transition: opacity .3s
    }
}

@media screen and (min-width: 1100px) {
    .footer .pagetop.fixed {
        opacity:1;
        pointer-events: auto
    }
}

.footer .pagetop a {
    display: block;
    width: 100%;
    height: 100%;
    text-align: center;
    border-radius: 4px;
    background-color: #7ea554;
    -webkit-transition: .2s;
    transition: .2s
}

.footer .pagetop a:hover {
    text-decoration: none;
    background-color: #328f27
}

.footer .pagetop a:before {
    content: "";
    display: block;
    position: absolute;
    top: .5em;
    right: 0;
    bottom: 0;
    left: 0;
    width: .8em;
    height: .8em;
    margin: auto;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

.footer .copy {
    display: block;
    margin: 0 -1em;
    padding: 1.5em 1em;
    text-align: center;
    background-color: #fff
}

@media screen and (min-width: 1100px), print {
    .footer .copy {
        margin:0 -2em;
        padding: 1.5em 2em;
        overflow: hidden
    }
}

.footer .copy small {
    display: block;
    font-size: .9em
}

@media screen and (min-width: 1100px), print {
    .footer .copy small {
        font-size:.8em
    }
}

.footer .copy span {
    display: none
}

@media screen and (min-width: 768px), print {
    .footer .copy span {
        display:inline
    }
}

.slider {
    position: relative;
    margin-bottom: 30px;
    background-color: #fff
}

@media screen and (min-width: 1100px), print {
    .slider {
        margin-bottom:100px
    }
}

.slider .inner {
    width: 100%;
    height: 100%;
    max-width: none
}

.slider .inner:before {
    content: "";
    display: block;
    padding-top: 60%
}

@media screen and (min-width: 640px), print {
    .slider .inner:before {
        padding-top:37.5%
    }
}

@media screen and (min-width: 1100px), print {
    .slider .inner:before {
        padding-top:600px
    }
}

.slider .slick-slider,.slider .slick-list,.slider .slick-track {
    height: 100%
}

.slider .slick-slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden
}

.slider .slick-slider.slick-initialized {
    opacity: 1;
    visibility: visible
}

.slider .slide {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden
}

.slider .slide img {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    height: 100%;
    max-width: none;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%)
}

@media screen and (min-width: 640px), print {
    .slider .slide img {
        width:100%;
        height: auto
    }
}

@media screen and (min-width: 1100px), print {
    .slider .slide img {
        width:auto;
        height: 100%
    }
}

@media screen and (min-width: 1600px), print {
    .slider .slide img {
        width:100%;
        height: auto
    }
}

.slider-arrow {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 1600px;
    height: 1px;
    margin: auto;
    z-index: 101
}

@media screen and (min-width: 1100px), print {
    .slider-arrow {
        display:none
    }
}

.slider-prev,.slider-next {
    display: block;
    position: absolute;
    top: -20px;
    width: 40px;
    height: 40px;
    cursor: pointer
}

@media screen and (min-width: 768px), print {
    .slider-prev,.slider-next {
        top:-25px;
        width: 50px;
        height: 50px
    }
}

@media screen and (min-width: 1100px), print {
    .slider-prev,.slider-next {
        top:-55px;
        width: 110px;
        height: 110px
    }
}

.slider-prev:before,.slider-next:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 50%;
    height: 50%;
    margin: auto;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff
}

.slider-prev {
    left: 0
}

.slider-prev:before {
    left: 30%;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

.slider-next {
    right: 0
}

.slider-next:before {
    right: 30%;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg)
}

.slider-dots {
    position: absolute;
    bottom: -30px;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 100
}

.slider-dots ul {
    height: 100%;
    text-align: center;
    overflow: hidden
}

.slider-dots li {
    display: inline-block;
    vertical-align: middle;
    position: relative;
    width: 30px;
    height: 30px;
    cursor: pointer
}

.slider-dots li:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 10px;
    height: 10px;
    margin: auto;
    border-radius: 100%;
    background-color: #d1e0b4
}

.slider-dots li.slick-active:before {
    background-color: #23651c
}

.slider-dots button {
    display: none
}

.tel-button {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    width: 50px;
    height: 60px;
    margin: 0;
    padding: 40px 0 0;
    font-size: 100%;
    color: #fff;
    text-align: center;
    border: none;
    background: #23651c;
    cursor: pointer;
    outline: none;
    z-index: 910
}

@media screen and (max-width: 1099.98px) {
    .tel-button {
        -webkit-transition:top .3s;
        transition: top .3s
    }

    .tel-button.hide {
        top: -60px
    }
}

@media screen and (min-width: 768px), print {
    .tel-button {
        width:60px
    }
}

@media screen and (min-width: 1100px), print {
    .tel-button {
        display:none
    }
}

.nav-open .tel-button,.slideout-open .tel-button {
    display: none
}

.tel-button-icon:before {
    content: "";
    display: block;
    position: absolute;
    top: 10px;
    right: 0;
    left: 0;
    width: 22px;
    height: 22px;
    margin: auto;
    background: url(../img/base/tel.svg) center no-repeat;
    background-size: cover
}

.tel-button-icon:after {
    content: "TEL";
    display: block;
    font-size: .7em;
    letter-spacing: .1em
}

.contact-button {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    z-index: 999
}

@media screen and (min-width: 1100px), print {
    .contact-button {
        top:197px;
        right: 0;
        bottom: auto;
        left: auto;
        width: auto;
        border: 3px solid #fff;
        border-right: none;
        z-index: 1001;
        -webkit-transition: top .2s;
        transition: top .2s
    }
}

@media screen and (min-width: 1280px), print {
    .contact-button {
        top:20px
    }
}

.contact-button a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    position: relative;
    text-align: center;
    color: #fff;
    line-height: 60px;
    border-top: 3px solid #fff;
    background-color: #328f27
}

@media screen and (min-width: 1100px), print {
    .contact-button a {
        display:block;
        padding: 1em 0;
        line-height: 1.5;
        border-top: 50px solid #23651c
    }
}

.contact-button a:hover {
    text-decoration: none;
    background-color: #23651c
}

@media screen and (min-width: 1100px), print {
    .contact-button a:hover {
        border-top-color:#328f27
    }
}

.contact-button a:before {
    content: "";
    display: block;
    width: 34px;
    height: 34px;
    margin-right: .5em;
    background: url(../img/base/mail.svg) center no-repeat;
    background-size: cover
}

@media screen and (min-width: 1100px), print {
    .contact-button a:before {
        position:absolute;
        top: -42px;
        right: 0;
        left: 0;
        margin: auto
    }
}

.contact-button span {
    display: inline-block;
    vertical-align: middle
}

@media screen and (min-width: 1100px), print {
    .contact-button span {
        vertical-align:inherit;
        width: 2.5em;
        line-height: 2.5em;
        font-size: 1.3em;
        -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl
    }
}

.page-title {
    display: block;
    position: relative;
    background-color: #fff;
    background: url(../img/base/title.jpg) center no-repeat;
    background-size: cover;
    overflow: hidden
}

@media screen and (min-width: 1100px), print {
    .page-title {
        margin-bottom:100px
    }
}

.page-title-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 160px;
    padding: 0 1em;
    line-height: 1.2;
    text-align: center
}

@media screen and (min-width: 1100px), print {
    .page-title-inner {
        height:300px;
        padding: 140px 2em 0
    }
}

.page-title-name {
    display: block;
    width: 100%;
    max-width: 360px;
    margin: auto;
    padding: 1em .5em;
    font-size: 100%;
    color: #fff;
    text-align: center;
    background-color: #7ea554
}

@media screen and (min-width: 768px), print {
    .page-title-name {
        max-width:480px
    }
}

.page-title-name .title {
    display: block;
    font-size: 1.3em
}

@media screen and (min-width: 768px), print {
    .page-title-name .title {
        font-size:1.7em
    }
}

@media screen and (min-width: 1100px), print {
    .page-title-name .title {
        font-size:2.1em
    }
}

.topic-path {
    position: relative;
    margin: -5em 0 3em;
    overflow: hidden;
    z-index: 10
}

@media screen and (min-width: 1100px), print {
    .topic-path {
        margin:-5em 0 4em
    }
}

.topic-path ul {
    max-width: 1100px;
    margin: auto;
    padding: 1em .5em 0
}

@media screen and (min-width: 1100px), print {
    .topic-path ul {
        padding:1.3em 1em 0
    }
}

.topic-path ul:after {
    content: "";
    display: table;
    clear: both
}

.topic-path li {
    float: left;
    position: relative;
    margin: 0 22px 0 0;
    padding: 0;
    line-height: 1;
    text-indent: 0;
    font-size: .8em
}

.topic-path li:before,.topic-path li:after {
    display: none
}

.topic-path li:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: -12px;
    width: 6px;
    height: 6px;
    border-top: 1px solid #333;
    border-right: 1px solid #333;
    -webkit-transform: translateY(-50%) rotate(45deg);
    transform: translateY(-50%) rotate(45deg)
}

.topic-path li.current {
    margin: 0;
    color: #333
}

.topic-path li.current:after {
    display: none
}

.topic-path li.home a {
    padding-left: 22px
}

.topic-path li.home a:before {
    content: "";
    display: block;
    position: absolute;
    top: .1em;
    left: 0;
    width: 14px;
    height: 14px;
    background: url(../img/base/home.svg) center no-repeat;
    background-size: cover
}

.topic-path a {
    display: block;
    position: relative
}

.topic-path a:hover {
    text-decoration: underline
}

.time-table-main {
    margin-bottom: .5em
}

@media screen and (min-width: 640px), print {
    .time-table-main {
        position:relative;
        padding-top: 40px
    }
}

.time-table-section {
    position: relative;
    margin-bottom: .5em
}

@media screen and (min-width: 640px), print {
    .time-table-section {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        position: static;
        margin-top: 1px;
        margin-bottom: 0
    }
}

.time-table-head {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 44px
}

@media screen and (min-width: 640px), print {
    .time-table-head {
        width:40%;
        height: 34px;
        margin-right: 1px
    }
}

@media screen and (min-width: 640px), print {
    .time-table-body {
        -webkit-box-flex:1;
        -ms-flex: 1;
        flex: 1
    }
}

.time-table .time-table-heading {
    display: none
}

@media screen and (min-width: 640px), print {
    .time-table .time-table-heading {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        position: absolute;
        top: 0;
        left: 0;
        width: 40%;
        height: 40px;
        margin: 0;
        padding: 0 0 0 .8em;
        color: #fff;
        border-radius: 0;
        border: none;
        background-color: #000;
        z-index: 1
    }
}

.time-table .time-table-label {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    color: #333;
    font-size: 100%;
    border-radius: 0;
    border-bottom: none
}

.time-table .time-table-label::before,.time-table .time-table-label::after {
    display: none
}

.time-table .time-table-label a,.time-table .time-table-label span {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 100%;
    padding-left: .7em;
    color: #333;
    font-weight: 500;
    font-size: 1.15em;
    border-left: 5px solid #23651c;
    background-color: #d1e0b4;
    text-decoration: none
}

@media screen and (min-width: 640px), print {
    .time-table .time-table-label a,.time-table .time-table-label span {
        padding-left:1em;
        font-size: 1em;
        border-left: none
    }
}

.time-table .time-table-label a:hover {
    color: #328f27;
    text-decoration: none
}

@media screen and (min-width: 640px), print {
    .time-table .time-table-label a:hover {
        color:#fff;
        background-color: #23651c
    }
}

.time-table-days {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -1px 0 0;
    padding-top: 1px
}

@media screen and (min-width: 640px), print {
    .time-table-days {
        padding-top:0
    }
}

.time-table-days dl {
    -ms-flex-preferred-size: 20%;
    flex-basis: 20%;
    max-width: 20%;
    padding: 0 1px 0 0
}

.time-table-days dt {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 40px;
    color: #fff;
    text-align: center;
    background-color: #444
}

@media screen and (min-width: 640px), print {
    .time-table-days dt {
        position:absolute;
        top: 0;
        left: 0;
        width: 12%;
        border-left: 1px solid #fff
    }
}

.time-table-days dd {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 44px;
    background-color: #eee
}

@media screen and (min-width: 640px), print {
    .time-table-days dd {
        height:34px;
        font-size: .95em
    }
}

.time-table-days .mon dt {
    left: 40%
}

.time-table-days .tue dt {
    left: 52%
}

.time-table-days .wed dt {
    left: 64%
}

.time-table-days .thu dt {
    left: 76%
}

.time-table-days .fri dt {
    left: 88%
}

.time-table-days .open {
    display: inline-block;
    vertical-align: middle;
    width: 16px;
    height: 16px;
    border-radius: 100%;
    border: 1px solid #333
}

.time-table-days .open span {
    display: none
}

.time-table-days .open+span {
    display: inline-block;
    vertical-align: middle;
    margin-top: .25em;
    margin-left: .5em;
    font-size: .9em
}

.time-table-note {
    margin-bottom: 1em
}

.time-table-note ul {
    margin: 0
}

.time-table-note li {
    font-size: .9em
}

.time-table-note li:not(:last-child) {
    margin-bottom: 0
}

.time-table-schedule {
    max-width: 800px;
    margin: auto
}

.time-table-schedule .schedule-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -5px -1em 0
}

.time-table-schedule .schedule-item {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 5px 1em 0
}

@media screen and (min-width: 640px), print {
    .time-table-schedule .schedule-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

.time-table-schedule dl {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: relative;
    height: 100%;
    padding-top: 2.4em;
    text-align: center;
    border-radius: .3em;
    border: 1px solid #ddd;
    background-color: #fff
}

.time-table-schedule dt {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2.4em;
    border-radius: .3em .3em 0 0;
    background-color: #eee
}

.time-table-schedule dt span {
    display: block;
    width: 100%;
    font-weight: 500;
    font-size: .95em
}

.time-table-schedule dd {
    width: 100%;
    padding: .7em .5em;
    font-size: .9em
}

.time-table-schedule .more {
    margin-top: .7em
}

.time-table .accordion-button {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 44px;
    height: 44px;
    cursor: pointer;
    z-index: 1
}

@media screen and (min-width: 640px), print {
    .time-table .accordion-button {
        display:none
    }
}

.time-table .accordion-button:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 8px;
    height: 8px;
    margin: auto;
    border-top: 2px solid #23651c;
    border-right: 2px solid #23651c;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg)
}

.time-table .accordion-button:hover {
    background-color: #23651c
}

.time-table .accordion-button:hover:after {
    border-color: #fff
}

.time-table .accordion-button.active {
    background-color: #23651c
}

.time-table .accordion-button.active:after {
    bottom: -.3em;
    border-color: #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

.time-table .accordion-button span {
    display: none
}

.time-table .accordion-panel {
    max-height: 0;
    overflow: hidden;
    -webkit-transition: max-height .3s;
    transition: max-height .3s
}

@media screen and (min-width: 640px), print {
    .time-table .accordion-panel {
        max-height:none !important
    }
}

@media print {
    html,body {
        width: 1100px;
        background: none
    }
}

.section {
    margin-right: -1em;
    margin-left: -1em
}

@media screen and (min-width: 1100px), print {
    .section {
        margin-right:-2em;
        margin-left: -2em
    }
}

.section-secondary {
    padding-right: 1em;
    padding-left: 1em
}

@media screen and (min-width: 1100px), print {
    .section-secondary {
        padding-right:2em;
        padding-left: 2em
    }
}

.section-secondary:not(:last-child) {
    margin-bottom: 3.5em
}

@media screen and (min-width: 1100px), print {
    .section-secondary:not(:last-child) {
        margin-bottom:5em
    }
}

.section-secondary .inner {
    line-height: 1.5
}

@media screen and (min-width: 768px), print {
    .section-secondary .inner {
        line-height:1.8
    }
}

@media screen and (min-width: 1100px), print {
    .section-secondary .inner {
        padding-right:1.5em;
        padding-left: 1.5em
    }
}

.section-header {
    position: relative;
    margin: 0 -1em 1em;
    padding: 1em;
    border-top: 4px solid #e4edd3;
    border-bottom: 4px solid #e4edd3;
    background-color: #23651c;
    background: repeating-linear-gradient(90deg, #7ea554, #7ea554 15px, #8bae65 0, #8bae65 30px);
    z-index: 1
}

@media screen and (min-width: 768px), print {
    .section-header {
        padding:1em 1.5em
    }
}

@media screen and (min-width: 1100px), print {
    .section-header {
        max-width:1100px;
        margin: 0 auto 1.5em;
        border: 4px solid #e4edd3
    }
}

.section-heading {
    font-weight: 700;
    font-size: 100%;
    font-size: 1.4em;
    line-height: 1.2;
    color: #fff
}

@media screen and (min-width: 768px), print {
    .section-heading {
        font-size:1.8em
    }
}

.huvth-intro-section {
    padding: 0 1em;
    background-color: #e4edd3;
    overflow: hidden
}

@media screen and (min-width: 768px), print {
    .huvth-intro-section {
        padding-top:1em
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-section {
        padding:2em 2em 0
    }
}

.huvth-intro-head {
    position: relative;
    margin-bottom: 1.5em;
    padding-top: 1.5em;
    text-align: center
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-head {
        margin-bottom:0;
        padding: 4.5em 0 4em
    }
}

.huvth-intro-head:before {
    content: "";
    display: block;
    width: 93px;
    height: 83px;
    margin: 0 auto 1em;
    background: #fff url(../img/top/heart.png) center no-repeat;
    background-size: cover
}

@media screen and (min-width: 768px), print {
    .huvth-intro-head:before {
        width:132.85714px;
        height: 118.57143px
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-head:before {
        position:absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        width: 186px;
        height: 166px;
        margin: auto
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-body {
        position:relative
    }
}

.huvth-intro-body:before,.huvth-intro-body:after {
    content: "";
    display: block;
    position: absolute;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
}

.huvth-intro-body:before {
    top: 0;
    left: 50%;
    width: 45px;
    height: 77.5px;
    margin: 35px 0 0 -130px;
    background-image: url(../img/top/dog.png)
}

@media screen and (min-width: 768px), print {
    .huvth-intro-body:before {
        width:60px;
        height: 103.33333px;
        margin: 30px 0 0 -180px
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-body:before {
        width:108px;
        height: 186px;
        margin: 170px 0 0 -510px
    }
}

.huvth-intro-body:after {
    top: 0;
    right: 50%;
    width: 76.66667px;
    height: 71.66667px;
    margin: 35px -150px 0 0;
    background-image: url(../img/top/cat.png)
}

@media screen and (min-width: 768px), print {
    .huvth-intro-body:after {
        width:102.22222px;
        height: 95.55556px;
        margin: 35px -210px 0 0
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-body:after {
        width:184px;
        height: 172px;
        margin: 150px -570px 0 0
    }
}

.huvth-intro-foot {
    padding: 1.5em 0
}

.huvth-intro-heading {
    position: relative;
    line-height: 1.1;
    font-size: 100%;
    font-size: 1.3em;
    font-weight: 500;
    z-index: 1
}

@media screen and (min-width: 360px), print {
    .huvth-intro-heading {
        font-size:1.7em
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-heading {
        font-size:2em
    }
}

.huvth-intro-heading .word {
    font-size: 1.2em;
    font-weight: 500
}

.huvth-intro-heading .br {
    display: block
}

@media screen and (min-width: 768px), print {
    .huvth-intro-heading .br {
        display:none
    }
}

.huvth-intro-img {
    max-width: 700px;
    margin: auto
}

.huvth-intro-img .img-large {
    margin-bottom: 3px
}

.huvth-intro-img .img-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -3px -3px 0
}

.huvth-intro-img .img-item {
    -ms-flex-preferred-size: 33.33333%;
    flex-basis: 33.33333%;
    max-width: 33.33333%;
    padding: 0 3px 3px 0
}

@media screen and (min-width: 640px), print {
    .huvth-intro-img .img-item {
        -ms-flex-preferred-size:25%;
        flex-basis: 25%;
        max-width: 25%
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-img .img-item {
        -ms-flex-preferred-size:33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%
    }
}

.huvth-intro-img img {
    width: 100%
}

.huvth-intro-img .img5 {
    display: none
}

@media screen and (min-width: 640px), print {
    .huvth-intro-img .img5 {
        display:block
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-img .img5 {
        display:none
    }
}

.huvth-intro-img .img8 {
    display: none
}

@media screen and (min-width: 640px), print {
    .huvth-intro-img .img8 {
        display:block
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-img .img8 {
        display:none
    }
}

.huvth-intro-description {
    margin-bottom: 1em;
    line-height: 1.8
}

@media screen and (min-width: 768px), print {
    .huvth-intro-description {
        text-align:center
    }
}

.huvth-intro-description p {
    font-size: .9em
}

@media screen and (min-width: 360px), print {
    .huvth-intro-description p {
        font-size:1em
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-intro-description p {
        font-size:1.1em
    }
}

@media screen and (min-width: 992px), print {
    .huvth-intro-description .br {
        display:block
    }
}

.huvth-intro-more .more {
    margin-top: 0
}

.huvth-info-section {
    padding: 3em 1em
}

@media screen and (min-width: 1100px), print {
    .huvth-info-section {
        padding:3em 2em 5em
    }
}

.huvth-info-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 0 -3em 0
}

@media screen and (min-width: 1100px), print {
    .huvth-info-items {
        margin:0 -2em 0 0
    }
}

@media screen and (min-width: 1600px), print {
    .huvth-info-items {
        margin:0 -3em 0 0
    }
}

.huvth-info-item {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 0 3em 0
}

@media screen and (min-width: 1100px), print {
    .huvth-info-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%;
        padding: 0 2em 0 0
    }
}

@media screen and (min-width: 1600px), print {
    .huvth-info-item {
        padding:0 3em 0 0
    }
}

.huvth-info-head {
    margin-bottom: 1em;
    padding-bottom: .5em;
    border-bottom: 1px solid #f0ede4
}

@media screen and (min-width: 1100px), print {
    .huvth-info-head {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        height: 5em;
        padding-bottom: 0
    }
}

.huvth-info-body {
    margin-bottom: 1.5em
}

.huvth-info-heading {
    font-size: 100%
}

.huvth-info-heading-news {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 100%;
    font-weight: 500
}

@media screen and (min-width: 1100px), print {
    .huvth-info-heading-news {
        font-weight:700;
        font-size: 1.1em
    }
}

.huvth-info-heading-news:before {
    content: attr(data-subtitle);
    display: block;
    margin: -.1em .2em 0 0;
    line-height: 1.1;
    font-weight: 500;
    font-size: 2.3em
}

@media screen and (min-width: 1100px), print {
    .huvth-info-heading-news:before {
        font-size:3.5em
    }
}

.huvth-info-heading-time {
    font-weight: 500;
    font-size: 1.9em
}

@media screen and (min-width: 1100px), print {
    .huvth-info-heading-time {
        font-size:2.5em
    }
}

.huvth-info-more {
    max-width: 280px;
    margin: auto
}

@media screen and (min-width: 576px), print {
    .huvth-info-more {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        max-width: none;
        margin: 0 -5px
    }
}

.huvth-info-more .more {
    margin-top: .5em
}

@media screen and (min-width: 576px), print {
    .huvth-info-more .more {
        margin-top:0;
        padding: 0 5px
    }
}

.huvth-info-more .link-button {
    display: block
}

.huvth-info .news-list,.huvth-info .news-list-thumb,.huvth-info .news-list-img {
    margin-top: -1em
}

.huvth-menu-section {
    position: relative;
    padding: 2em;
    background: #e4edd3 url(../img/top/bg.jpg) center no-repeat;
    background-size: cover;
    overflow: hidden
}

@media screen and (min-width: 1100px), print {
    .huvth-menu-section {
        padding:5em 2em
    }
}

.huvth-menu-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -5px -5px 0
}

.huvth-menu-item {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 5px 5px 0
}

@media screen and (min-width: 640px), print {
    .huvth-menu-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

.huvth-menu .menu-link {
    display: block;
    position: relative;
    padding: 1.5em;
    color: #23651c;
    background-color: #fff;
    -webkit-transition: background-color .2s;
    transition: background-color .2s
}

@media screen and (min-width: 768px), print {
    .huvth-menu .menu-link {
        padding:2em
    }
}

.huvth-menu .menu-link:hover {
    color: #fff;
    text-decoration: none;
    background-color: #328f27
}

.huvth-menu .menu-link:hover::before {
    right: 1em;
    border-color: #fff
}

.huvth-menu .menu-link::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 1.5em;
    bottom: 0;
    width: 12px;
    height: 12px;
    margin: auto;
    border-top: 3px solid #23651c;
    border-right: 3px solid #23651c;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    -webkit-transition: right .3s;
    transition: right .3s
}

.huvth-menu .menu-link span {
    display: block;
    position: relative;
    font-weight: 700;
    font-size: 1.1em;
    line-height: 1.1;
    z-index: 1
}

@media screen and (min-width: 768px), print {
    .huvth-menu .menu-link span {
        font-size:1.3em
    }
}

.huvth-service-section {
    padding: 1em;
    background-color: #d1e0b4
}

@media screen and (min-width: 768px), print {
    .huvth-service-section {
        padding:2em 1em
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-service-section {
        padding:3em 2em
    }
}

.huvth-service-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -1em -1em 0
}

@media screen and (min-width: 1100px), print {
    .huvth-service-items {
        margin:0 -1.5em -1.5em 0
    }
}

.huvth-service-item {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 1em 1em 0
}

@media screen and (min-width: 768px), print {
    .huvth-service-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-service-item {
        padding:0 1.5em 1.5em 0
    }
}

.huvth-service-inner {
    display: block;
    position: relative;
    height: 100%;
    padding: 0 1em 1em;
    border: 5px solid #fff;
    background-color: #fff
}

@media screen and (min-width: 1100px), print {
    .huvth-service-inner {
        padding:0 1.5em 1.5em;
        border-width: 10px
    }
}

.huvth-service-head {
    margin-bottom: 1em
}

@media screen and (min-width: 1100px), print {
    .huvth-service-head {
        margin-bottom:1.5em
    }
}

.huvth-service-head:before {
    content: attr(data-subtitle);
    display: block;
    padding: .75em 0;
    font-size: 1.8rem;
    color: #fff;
    text-align: center
}

.huvth-service-body {
    position: relative;
    z-index: 1
}

.huvth-service-heading {
    padding: 1em 0;
    font-size: 100%;
    line-height: 1.1;
    text-align: center;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff
}

@media screen and (min-width: 480px), print {
    .huvth-service-heading {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center
    }
}

.huvth-service-heading a {
    font-size: 1.3em;
    font-weight: 700;
    color: #fff
}

@media screen and (min-width: 480px), print {
    .huvth-service-heading a {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-service-heading a {
        font-size:1.6em
    }
}

.huvth-service-heading a:hover {
    text-decoration: none;
    opacity: .85
}

.huvth-service-heading span {
    display: block;
    font-weight: 700;
    font-size: 2.0em
}

@media screen and (min-width: 480px), print {
    .huvth-service-heading span {
        display:inline;
        margin-right: .1em
    }
}

.huvth-service-nav ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -.5em -.5em 0
}

.huvth-service-nav li {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 .5em .5em 0
}

@media screen and (min-width: 576px), print {
    .huvth-service-nav li {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

@media screen and (min-width: 768px), print {
    .huvth-service-nav li {
        -ms-flex-preferred-size:100%;
        flex-basis: 100%;
        max-width: 100%
    }
}

@media screen and (min-width: 992px), print {
    .huvth-service-nav li {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

.huvth-service-nav .link-button {
    display: block;
    padding-right: 0;
    color: #333;
    border: 2px solid #fff;
    background-color: #fff
}

.huvth-service-nav .link-button:hover:before {
    border-color: #fff
}

.huvth-service-nav .link-button:before {
    border-color: #543d29
}

.huvth-service-owner .huvth-service-inner {
    background-color: #e4ada7;
    background: repeating-linear-gradient(90deg, #e4ada7, #e4ada7 15px, #e7b5b0 0, #e7b5b0 30px)
}

.huvth-service-owner .huvth-service-nav .link-button:hover {
    background-color: #d66d63
}

.huvth-service-doctor .huvth-service-inner {
    background-color: #85bdd8;
    background: repeating-linear-gradient(90deg, #7db6d5, #7db6d5 15px, #84bad7 0, #84bad7 30px)
}

.huvth-service-doctor .huvth-service-nav .link-button:hover {
    background-color: #44a0cf
}

.huvth-covid19 {
    max-width: 800px;
    margin: auto;
    background-color: #fff
}

.huvth-covid19 a {
    display: block;
    padding: .7em .5em;
    line-height: 1.4;
    font-weight: 200;
    font-size: 1.2em;
    color: #ad232f;
    border: 2px solid #ad232f
}

@media screen and (min-width: 480px), print {
    .huvth-covid19 a {
        text-align:center
    }
}

@media screen and (min-width: 640px), print {
    .huvth-covid19 a {
        font-size:1.4em
    }
}

@media screen and (min-width: 768px), print {
    .huvth-covid19 a {
        font-size:1.8em
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-covid19 a {
        font-size:1.2em
    }
}

.huvth-covid19 a:hover {
    text-decoration: none
}

@media screen and (min-width: 480px), print {
    .huvth-covid19 .br {
        display:block
    }
}

.huvth-covid19-section {
    padding: 2em 1em;
    border-top: 1px solid #d1e0b4
}

@media screen and (min-width: 1100px), print {
    .huvth-covid19-section {
        padding:2em 2em
    }
}

.news-area {
    position: relative
}

.news-area .inner {
    line-height: 1.5
}

.news-area .inner:not(:last-child) {
    margin-bottom: 0
}

.news-detail .inner {
    line-height: 1.5
}

.news-detail .inner:not(:last-child) {
    margin-bottom: 0
}

.news-detail .news-date {
    font-size: .9em
}

.news-body {
    word-break: break-all;
    word-wrap: break-word;
    text-align: left
}

.news-text {
    margin-top: 1em;
    line-height: 1.8;
    word-break: break-all;
    word-wrap: break-word
}

.news-text p,.news-text div {
    word-break: break-all;
    word-wrap: break-word
}

.news-back {
    clear: both;
    max-width: 1100px;
    margin: 2em auto 0;
    padding: 2em 0 0 0;
    text-align: center;
    border-top: 1px solid #f0ede4
}

.news-list .news-topics {
    position: relative;
    padding-top: 1em;
    padding-bottom: 1em;
    border-bottom: 1px solid #f0ede4;
    overflow: hidden
}

.news-list .news-topics:hover .news-date,.news-list .news-topics:hover .news-title {
    color: #328f27
}

.news-list .news-link:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0) url(../img/base/blank.gif);
    z-index: 1
}

.news-list .news-date {
    font-size: .9em;
    color: #333
}

@media screen and (min-width: 640px), print {
    .news-list .news-date {
        display:block;
        position: absolute;
        top: 1em;
        left: 1em;
        width: 7em;
        font-size: 1em
    }
}

.news-list .news-icon {
    display: block;
    position: absolute;
    top: 1.15em;
    right: 0;
    width: 9em;
    padding: .5em 0;
    line-height: 1.1;
    font-size: .75em;
    color: #fff;
    text-align: center;
    background-color: #23651c
}

@media screen and (min-width: 640px), print {
    .news-list .news-icon {
        position:static;
        margin-left: 12rem
    }
}

.news-list .news-title {
    margin-top: .7em;
    word-break: break-all;
    word-wrap: break-word
}

@media screen and (min-width: 640px), print {
    .news-list .news-title {
        margin:.5em 0 0 12rem
    }
}

@media screen and (min-width: 1100px), print {
    .news-list .news-title {
        margin-right:.5em
    }
}

.news-list .topics .news-icon {
    background-color: #706150
}

.news-list .edu .news-icon {
    background-color: #b25900
}

.news-list .recruit .news-icon {
    background-color: #b28500
}

.news-pagers {
    position: relative;
    margin-top: 2em;
    padding-top: 2em;
    border-top: 1px dotted #eee;
    overflow: hidden
}

.news-pager {
    width: 70px;
    height: 40px;
    margin: auto;
    overflow: hidden
}

@media screen and (min-width: 480px), print {
    .news-pager {
        width:80px
    }
}

.news-pager a {
    display: block;
    position: relative;
    color: #fff;
    line-height: 40px;
    text-align: center;
    border-radius: 0;
    background-color: #23651c;
    -webkit-transition: .2s;
    transition: .2s
}

.news-pager a:hover {
    color: #fff;
    text-decoration: none;
    background-color: #328f27
}

.news-pager a:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 8px;
    height: 8px;
    margin: auto;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff
}

.news-pager-prev {
    position: absolute;
    top: 2em;
    right: 0;
    left: -190px
}

@media screen and (min-width: 480px), print {
    .news-pager-prev {
        left:-240px
    }
}

.news-pager-prev a {
    padding-left: 10px
}

.news-pager-prev a:before {
    display: none
}

.news-pager-prev a:after {
    left: -40px;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg)
}

.news-pager-next {
    position: absolute;
    top: 2em;
    right: -190px;
    left: 0
}

@media screen and (min-width: 480px), print {
    .news-pager-next {
        right:-240px
    }
}

.news-pager-next a {
    padding-right: 10px
}

.news-pager-next a:before {
    display: none
}

.news-pager-next a:after {
    right: -40px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

.news-pager-back {
    width: 90px;
    font-size: 13px
}

@media screen and (min-width: 480px), print {
    .news-pager-back {
        width:120px
    }
}

.news-pager-back a:before,.news-pager-back a:after {
    display: none
}

.floormap:not(:last-child) {
    margin-bottom: 3em
}

.floormap-head {
    margin-bottom: 1.5em
}

.floormap-head .modal-title {
    margin-bottom: 0
}

.floormap-body {
    position: relative;
    max-width: 800px;
    margin: auto
}

@media screen and (min-width: 768px), print {
    .floormap-body {
        width:80%
    }
}

@media screen and (min-width: 1100px), print {
    .floormap-body {
        width:100%
    }
}

.floormap-mainimg {
    position: relative;
    margin-bottom: 1.5em
}

@media screen and (min-width: 640px), print {
    .floormap-mainimg {
        margin-bottom:0
    }
}

.floormap-mainimg .floor-name {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1
}

.floormap-content {
    display: inline-block;
    vertical-align: top;
    margin: 0 .2em .5em 0
}

@media screen and (min-width: 640px), print {
    .floormap-content {
        display:block;
        margin: 0
    }
}

.floormap-content .modal-button {
    cursor: pointer
}

.floormap-content .modal-close-overlay {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    cursor: pointer
}

.floormap-content .modal-close-overlay span {
    display: none
}

.floormap-content .modal-close-button {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 50px;
    height: 50px;
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 100%;
    border: none;
    background: url(../img/base/close2.svg) center no-repeat;
    background-size: 20px;
    cursor: pointer;
    z-index: 1
}

@media screen and (min-width: 768px), print {
    .floormap-content .modal-close-button {
        top:0;
        right: 0;
        background-image: url(../img/base/close.svg)
    }
}

.floormap-content .modal-close-button .close {
    display: none
}

.floormap-label {
    display: block;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    outline: none
}

.floormap-label .label {
    display: block;
    padding: .75em 1em;
    line-height: 1;
    color: #fff;
    background-color: #23651c
}

@media screen and (min-width: 640px), print {
    .floormap-label .label {
        display:none
    }
}

.floormap-label .label:hover {
    background-color: #328f27
}

.floormap-label .buttons {
    display: none
}

@media screen and (min-width: 640px), print {
    .floormap-label .buttons {
        display:block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%
    }
}

.floormap-label .buttons::before,.floormap-label .buttons::after {
    content: "";
    display: block;
    position: absolute
}

.floormap-label .buttons:hover {
    background: rgba(255,255,255,0.4)
}

.floormap-label .buttons:hover::before,.floormap-label .buttons:hover::after {
    background: rgba(255,255,255,0.4)
}

.floormap-label .buttons:hover .button {
    background: rgba(255,255,255,0.4)
}

.floormap-label .buttons:hover .button::before,.floormap-label .buttons:hover .button::after {
    background: rgba(255,255,255,0.4)
}

.floormap-label .button {
    display: none
}

@media screen and (min-width: 640px), print {
    .floormap-label .button {
        display:block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%
    }
}

.floormap-label .button:hover {
    background: rgba(255,255,255,0.4)
}

.floormap-label .button:hover::before,.floormap-label .button:hover::after {
    background: rgba(255,255,255,0.4)
}

.floormap-label .button::before,.floormap-label .button::after {
    content: "";
    display: block;
    position: absolute
}

.floormap-label .button span {
    display: none
}

.floormap-panel {
    display: none;
    height: 0;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
    -webkit-transition: opacity .3s;
    transition: opacity .3s
}

@media screen and (min-width: 640px), print {
    .floormap-panel {
        display:block
    }
}

.floormap-panel.modal-active {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
    pointer-events: auto;
    z-index: 1999
}

@media screen and (min-width: 768px), print {
    .floormap-panel.modal-active {
        padding:1.5em
    }
}

.floormap-panel-inner {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    padding: 0 1em 1em;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background-color: #fff;
    z-index: 1
}

@media screen and (min-width: 768px), print {
    .floormap-panel-inner {
        max-width:960px;
        margin: auto;
        padding: 2em 1em 1em;
        border: 5px solid #d1e0b4
    }
}

@media screen and (min-width: 1100px), print {
    .floormap-panel-inner {
        padding-top:1em
    }
}

.floormap-panel-head {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse
}

@media screen and (min-width: 768px), print {
    .floormap-panel-head {
        display:block
    }
}

.floormap-panel-head h4 {
    margin: 0 0 .75em;
    padding: 0 0 .3em;
    font-size: 1.4em
}

@media screen and (min-width: 768px), print {
    .floormap-panel-head h4 {
        font-size:1.8em
    }
}

.floormap-panel-body {
    word-break: break-all;
    word-wrap: break-word
}

.floormap-panel-body p {
    font-size: .9em
}

@media screen and (min-width: 768px), print {
    .floormap-panel-body p {
        font-size:1.0em
    }
}

.floormap-panel-mainimg {
    margin: -1em -1em 1.5em
}

@media screen and (min-width: 768px), print {
    .floormap-panel-mainimg {
        margin:0 0 1em
    }
}

.floormap-panel-mainimg img {
    width: 100%
}

.floormap-panel-sideimg {
    max-width: 480px;
    margin: 0 auto .5em;
    overflow: hidden
}

@media screen and (min-width: 640px), print {
    .floormap-panel-sideimg {
        float:right;
        width: 38%;
        max-width: none;
        margin: .25em 0 0 1em
    }
}

@media screen and (min-width: 992px), print {
    .floormap-panel-sideimg {
        width:48%
    }
}

.floormap-panel-sideimg .img-items {
    clear: both;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -5px -5px 0
}

.floormap-panel-sideimg .img-item {
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%;
    padding: 0 5px 5px 0
}

@media screen and (min-width: 640px), print {
    .floormap-panel-sideimg .img-item {
        -ms-flex-preferred-size:100%;
        flex-basis: 100%;
        max-width: 100%
    }
}

@media screen and (min-width: 992px), print {
    .floormap-panel-sideimg .img-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

.floormap-panel-sideimg .img-item-wide {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%
}

.floormap-panel-sideimg .img-item img {
    display: block;
    width: 100%
}

.floormap-exam_room .floormap-label .button {
    top: 86.90%;
    left: 11.4545%;
    width: 19%;
    padding-top: 6.60%
}

.floormap-exam_room .floormap-label .button::before {
    top: -266.50%;
    left: 0;
    width: 100%;
    padding-top: 69.40%
}

.floormap-exam_room .floormap-label .button::after {
    content: "";
    display: block;
    position: absolute;
    top: -430.50%;
    left: 0;
    width: 100%;
    padding-top: 33.90%
}

.floormap-treatment_room .floormap-label .button {
    top: 45.44%;
    left: 36.72%;
    width: 25.55%;
    padding-top: 17.25%
}

.floormap-icu .floormap-label .button {
    top: 71.42%;
    left: 36.72%;
    width: 23.00%;
    padding-top: 5.60%
}

.floormap-ct_mri_operation_room .floormap-label .button {
    top: 36.32%;
    left: 67.81%;
    width: 32.18%;
    padding-top: 6.70%
}

.floormap-ct_mri_operation_room .floormap-label .button::before {
    top: 100.00%;
    left: 0;
    width: 57.50%;
    padding-top: 6.00%
}

.floormap-ct .floormap-label .button {
    top: 46.26%;
    left: 86.36%;
    width: 13.63%;
    padding-top: 10.30%
}

.floormap-mri .floormap-label .button {
    top: 48.97%;
    left: 67.81%;
    width: 12.72%;
    padding-top: 8.40%
}

.floormap-xray .floormap-label .button {
    top: 25.44%;
    left: 67.81%;
    width: 17.60%;
    padding-top: 7.40%
}

.floormap-endoscopy_room .floormap-label .button {
    top: 25.44%;
    left: 85.00%;
    width: 10.40%;
    padding-top: 7.40%
}

.floormap-linac_front_room .floormap-label .button {
    top: 69.79%;
    left: 69.54%;
    width: 11.09%;
    padding-top: 6.40%
}

.floormap-linac_operation_room .floormap-label .button {
    top: 69.79%;
    left: 80.63%;
    width: 10.18%;
    padding-top: 6.40%
}

.floormap-radiation_treatment_room .floormap-label .button {
    top: 79.32%;
    left: 70.72%;
    width: 29.27%;
    padding-top: 13.70%
}

.floormap-draft_room .floormap-label .button {
    top: 36.32%;
    left: 43.81%;
    width: 8.36%;
    padding-top: 5.90%
}

.floormap-clinical_laboratory .floormap-label .button {
    top: 25.30%;
    left: 52.27%;
    width: 10.00%;
    padding-top: 13.50%
}

.floormap-echo_exam_room .floormap-label .button {
    top: 6.80%;
    left: 66.44%;
    width: 20.72%;
    padding-top: 7.30%
}

.floormap-hospitalization_room .floormap-label .button {
    top: 6.80%;
    left: 43.40%;
    width: 13.90%;
    padding-top: 7.30%
}

.floormap-counseling_room .floormap-label .button {
    top: 6.80%;
    left: 25.30%;
    width: 6.55%;
    padding-top: 7.30%
}

.floormap-reception_counter .floormap-label .button {
    top: 20.30%;
    left: 12.70%;
    width: 6.91%;
    padding-top: 3.30%;
    border-radius: 1em 0 0 0
}

.floormap-reception_counter .floormap-label .button:before {
    position: absolute;
    top: 100.00%;
    left: 0;
    width: 73.00%;
    padding-top: 183.00%
}

.floormap-waiting_space .floormap-label .button {
    top: 6.80%;
    left: 5.30%;
    width: 20.00%;
    padding-top: 7.50%
}

.floormap-waiting_space .floormap-label .button::before {
    top: 100.00%;
    left: 0;
    width: 29.50%;
    padding-top: 262.00%
}

.floormap-waiting_space .floormap-label .button::after {
    top: 290.00%;
    left: -26.00%;
    width: 26.00%;
    padding-top: 77.50%
}

.floormap-waiting_space .floormap-label .button span {
    display: block;
    position: absolute;
    top: 652.00%;
    left: -26.00%;
    width: 26.00%;
    padding-top: 45.50%
}

.floormap-waiting_space .floormap-label .button:hover {
    background: rgba(140,34,0,0.2)
}

.floormap-waiting_space .floormap-label .button:hover span,.floormap-waiting_space .floormap-label .button:hover::before,.floormap-waiting_space .floormap-label .button:hover::after {
    background: rgba(140,34,0,0.2)
}

.floormap-office .floormap-label .button {
    top: 34.42%;
    width: 19.50%;
    left: 17.45%;
    padding-top: 6.70%
}

.floormap-office .floormap-label .button::before {
    top: 100.00%;
    right: 0;
    width: 33.00%;
    padding-top: 3.40%
}

.floormap-lounge_refresh_corner .floormap-label .button {
    position: absolute;
    top: 0;
    left: 18.80%;
    width: 13.10%;
    padding-top: 11.40%
}

.floormap-lounge_refresh_corner .floormap-label .button::before {
    top: 100.00%;
    left: 0;
    width: 144.10%;
    padding-top: 66.50%
}

.floormap-lounge_refresh_corner .floormap-label .button:hover {
    background: rgba(140,34,0,0.2)
}

.floormap-lounge_refresh_corner .floormap-label .button:hover::before,.floormap-lounge_refresh_corner .floormap-label .button:hover::after {
    background: rgba(140,34,0,0.2)
}

.floormap-conference_room .floormap-label .button {
    top: 19.60%;
    left: 5.10%;
    width: 13.80%;
    padding-top: 30.30%
}

.floormap-resident_room .floormap-label .button {
    top: 77.66%;
    left: 5.10%;
    width: 13.80%;
    padding-top: 3.00%
}

.floormap-resident_room .floormap-label .button::before {
    top: 100.00%;
    left: 0;
    width: 187.00%;
    padding-top: 51.50%
}

.floormap-dog_icu .floormap-label .buttons {
    top: 36.40%;
    left: 40.40%;
    width: 10.00%;
    padding-top: 12.00%
}

.floormap-dog_icu .floormap-label .buttons::before {
    top: -13.00%;
    right: -78.00%;
    width: 78.00%;
    padding-top: 25.60%
}

.floormap-dog_icu .floormap-label .buttons::after {
    top: 9.00%;
    right: -21.40%;
    width: 21.40%;
    padding-top: 110.00%
}

.floormap-dog_icu .floormap-label .button {
    top: 100%;
    left: 47.00%;
    width: 130.50%;
    padding-top: 134.00%
}

.floormap-dog_icu .floormap-label .button::before {
    top: 68.00%;
    left: -36.00%;
    width: 36.00%;
    padding-top: 34.00%
}

.floormap-dog_icu .floormap-label .button::after {
    top: -44.00%;
    left: 57.00%;
    width: 43.50%;
    padding-top: 46.00%
}

.floormap-cat_icu .floormap-label .button {
    top: 55.20%;
    left: 40.40%;
    width: 4.70%;
    padding-top: 9.50%
}

.floormap-corridor1 .floormap-label .button {
    top: 0;
    left: 94.40%;
    width: 5.60%;
    padding-top: 35.50%
}

.floormap-corridor1 .floormap-label .button::before {
    bottom: -17.50%;
    left: -86.00%;
    width: 186.00%;
    padding-top: 110.00%
}

.floormap-corridor2 .floormap-label .button {
    position: absolute;
    top: 0;
    left: 48.90%;
    width: 45.60%;
    padding-top: 5.30%
}

.floormap-corridor2 .floormap-label .button::before {
    top: 0;
    left: -6.00%;
    width: 6.00%;
    padding-top: 13.50%
}

.floormap-surgery_preparation_room .floormap-label .button {
    top: 46.00%;
    left: 58.20%;
    width: 16.40%;
    padding-top: 8.00%
}

.floormap-hospitalization_room2 {
    display: none
}

.floormap-hospitalization_room2 .floormap-label .button {
    top: 38.00%;
    left: 61.80%;
    width: 12.80%;
    padding-top: 5.00%
}

.floormap-operating_room1 .floormap-label .buttons {
    top: 8.10%;
    left: 84.10%;
    width: 10.40%;
    padding-top: 23.80%
}

.floormap-operating_room1 .floormap-label .buttons::before {
    top: 0;
    left: -35.00%;
    width: 35.00%;
    padding-top: 117.00%
}

.floormap-operating_room1 .floormap-label .button {
    top: 100.00%;
    left: -33.00%;
    width: 131.40%;
    padding-top: 63.40%
}

.floormap-operating_room1 .floormap-label .button::before {
    top: 100.00%;
    left: 0;
    width: 66.00%;
    padding-top: 9.00%
}

.floormap-operating_room2 .floormap-label .button {
    position: absolute;
    top: 8.10%;
    left: 58.10%;
    width: 22.50%;
    padding-top: 12.00%
}

.floormap-surgery_observation_room .floormap-label .button {
    position: absolute;
    top: 8.10%;
    left: 50.40%;
    width: 7.80%;
    padding-top: 16.20%
}

.floormap-surgery_observation_room .floormap-label .button::before {
    top: 0;
    left: -17%;
    width: 17%;
    padding-top: 100.00%
}

.floormap-dental_treatment_room .floormap-label .button {
    top: 38.00%;
    left: 52.50%;
    width: 9.30%;
    padding-top: 5.00%
}

.floormap-laundry_and_sterilization_room .floormap-label .button {
    top: 65.70%;
    left: 64.60%;
    width: 13.45%;
    padding-top: 7.00%
}

.greeting-img {
    max-width: 800px;
    margin: auto
}

.greeting-img img {
    display: block;
    width: 100%;
    margin-bottom: .5em
}

.greeting-img figcaption {
    display: block;
    font-size: 1.05em;
    text-align: right
}

.greeting-img figcaption span {
    margin-left: .5em;
    font-size: 1.3em
}

.department-list-heading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center
}

.department-list-heading .en {
    display: block;
    margin-right: -.5em;
    margin-left: auto;
    font-size: .8em
}

.department-list .justifyright {
    margin-top: 1em
}

.owner-menu-section {
    padding: 0 1em 1em
}

@media screen and (min-width: 480px), print {
    .owner-menu-section {
        padding:2em;
        background-color: #d1e0b4
    }
}

.owner-menu-container {
    padding: 0 1.5em 1.5em;
    background-color: #e4ada7;
    background: repeating-linear-gradient(90deg, #e4ada7, #e4ada7 15px, #e7b5b0 0, #e7b5b0 30px)
}

@media screen and (min-width: 480px), print {
    .owner-menu-container {
        border:4px solid #fff
    }
}

@media screen and (min-width: 1100px), print {
    .owner-menu-container {
        border-width:10px
    }
}

.owner-menu-head {
    padding: 1em 0;
    text-align: center
}

.owner-menu-heading {
    color: #fff;
    font-size: 1.7em;
    font-weight: 700
}

@media screen and (min-width: 768px), print {
    .owner-menu-heading {
        font-size:2.0em
    }
}

.owner-menu-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -.3em -.3em 0
}

.owner-menu-item {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 .3em .3em 0
}

@media screen and (min-width: 480px), print {
    .owner-menu-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

@media screen and (min-width: 768px), print {
    .owner-menu-item {
        -ms-flex-preferred-size:33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%
    }
}

@media screen and (min-width: 992px), print {
    .owner-menu-item {
        -ms-flex-preferred-size:25%;
        flex-basis: 25%;
        max-width: 25%
    }
}

.owner-menu .link-button {
    display: block;
    padding: .5em 0 .5em .7em;
    font-size: .95em;
    color: #333;
    border: 2px solid #fff;
    background-color: #fff
}

@media screen and (min-width: 1100px), print {
    .owner-menu .link-button {
        font-size:1em
    }
}

.owner-menu .link-button:before {
    border-color: #543d29
}

.owner-menu .link-button:hover {
    background-color: #d66d63
}

.owner-menu .link-button:hover:before {
    border-color: #fff
}

.owner-menu .link-button.current {
    padding-left: 44px;
    color: #fff;
    background-color: #cc5c52
}

.owner-menu .link-button.current:before {
    display: none
}

.owner-menu .link-button.current:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 1px;
    width: 40px;
    height: 22.85714px;
    margin: auto;
    background: url(../img/base/dog.svg) center no-repeat;
    background-size: contain;
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
}

.owner-menu .link-button.current:hover:after {
    background-image: url(../img/base/cat.svg);
    -webkit-transform: rotate(10deg);
    transform: rotate(10deg)
}

.contact-tel {
    line-height: 1.4;
    text-align: center
}

.contact-tel-foot {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

.contact-tel .label {
    display: block
}

.contact-tel .label span {
    display: block;
    font-weight: 700;
    font-size: 1.4em
}

@media screen and (min-width: 768px), print {
    .contact-tel .label span {
        font-size:1.6em
    }
}

.contact-tel .tel-link {
    position: relative;
    padding-left: 40px;
    font-weight: 700;
    font-size: 2.0em;
    color: #333
}

@media screen and (min-width: 480px), print {
    .contact-tel .tel-link {
        font-size:2.4em
    }
}

.contact-tel .tel-link::before {
    content: "";
    display: block;
    position: absolute;
    top: -4px;
    bottom: 0;
    left: 0;
    width: 32px;
    height: 32px;
    margin: auto;
    background: url(../img/base/tel2.svg) center no-repeat;
    background-size: cover
}

.contact-tel .tel-link span {
    font-weight: 700
}

.contact-tel .tel-link .ruby {
    display: inline-block;
    vertical-align: top;
    position: relative
}

.contact-tel .tel-link .ruby::before {
    content: attr(data-ruby);
    display: block;
    position: absolute;
    top: -.5rem;
    left: -25%;
    width: 150%;
    font-size: 1.0rem
}

@media screen and (min-width: 480px), print {
    .contact-tel .tel-link .ruby::before {
        font-size:1.1rem
    }
}

.contact-tel .tel-link .attention {
    color: #e50a06
}

.contact-tel a.tel-link {
    color: #333;
    text-decoration: none
}

.contact-tel a.tel-link:hover {
    color: #328f27
}

.contact-tel a.tel-link:hover .attention {
    color: #328f27
}

.contact-tel ul {
    margin: 0;
    font-size: .8em;
    text-align: left
}

@media screen and (min-width: 768px), print {
    .contact-tel ul {
        font-size:.9em
    }
}

.contact-tel ul span {
    font-weight: 500;
    font-size: 1.1em;
    color: red
}

.contact-tel li:not(:last-child) {
    margin-bottom: 0
}

.contact-tel-nightholidays .contact-tel-head {
    margin-bottom: .7em
}

.credit-card {
    display: block;
    margin-top: .5em
}

.medical-appointment-document ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0 -1em -1em 0
}

.medical-appointment-document li {
    padding: 0 1em 1em 0
}

.medical-appointment-document li:not(:last-child) {
    margin-bottom: 0
}

.medical-appointment-document a {
    display: block;
    padding: 70px 1em .5em;
    font-size: 1.5em;
    line-height: 1.3;
    color: #333;
    text-decoration: none;
    border-radius: .6em;
    border: 3px solid #ddd;
    background-color: #fff
}

.medical-appointment-document a::before {
    content: "";
    display: block;
    position: absolute;
    top: 15px;
    right: 0;
    left: 0;
    width: 50px;
    height: 50px;
    margin: auto;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
}

.medical-appointment-document a:hover {
    color: #328f27;
    border-color: #328f27
}

.medical-appointment-document a:hover::before {
    top: 12px;
    width: 56px;
    height: 56px
}

.medical-appointment-document span {
    display: block;
    font-weight: 700;
    text-align: center
}

.medical-appointment-document span::after {
    content: attr(data-type);
    display: block;
    font-size: 1.4rem
}

.medical-appointment-document .pdf::before {
    background-image: url(../img/base/pdf.svg)
}

.medical-appointment-document .xls::before {
    background-image: url(../img/base/xls.svg)
}

.staff-list-items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin: 0 -10px -10px 0
}

.staff-list-item {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
    padding: 0 10px 10px 0
}

.staff-list-inner {
    display: block;
    position: relative;
    height: 100%;
    border-radius: 7px;
    border: 1px solid #d1e0b4
}

@media screen and (min-width: 640px), print {
    .staff-list-inner {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: 10px 0 0 10px
    }
}

@media screen and (min-width: 1100px), print {
    .staff-list-inner {
        display:block;
        padding: 0
    }
}

.staff-list-head {
    padding-bottom: 1.5em;
    overflow: hidden
}

@media screen and (min-width: 640px), print {
    .staff-list-head {
        width:220px;
        padding-bottom: 10px
    }
}

@media screen and (min-width: 1100px), print {
    .staff-list-head {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        position: relative;
        width: auto;
        height: 290px;
        margin: 10px 10px 1.5em;
        padding: 0 10px 0 0
    }
}

@media screen and (min-width: 640px), print {
    .staff-list-body {
        -webkit-box-flex:1;
        -ms-flex: 1;
        flex: 1;
        padding-top: 10px
    }
}

@media screen and (min-width: 1100px), print {
    .staff-list-body {
        -webkit-box-flex:1;
        -ms-flex: auto;
        flex: auto;
        width: 100%;
        padding-top: 0
    }
}

.staff-list-img {
    display: block;
    position: relative;
    margin-bottom: 1em;
    padding: 1em 10px 0;
    text-align: center
}

@media screen and (min-width: 640px), print {
    .staff-list-img {
        padding:0
    }
}

@media screen and (min-width: 1100px), print {
    .staff-list-img {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        width: 240px;
        height: 100%;
        margin-bottom: 0
    }
}

.staff-list-img img {
    max-width: 180px;
    margin: 0
}

@media screen and (min-width: 640px), print {
    .staff-list-img img {
        max-width:none;
        width: 100%
    }
}

.staff-list-name {
    display: block;
    line-height: 1.5;
    font-size: .85em;
    text-align: center
}

@media screen and (min-width: 1100px), print {
    .staff-list-name {
        -webkit-box-flex:1;
        -ms-flex: 1;
        flex: 1;
        position: relative;
        margin-top: 1.5em;
        padding-left: 10px;
        font-size: 1em
    }
}

.staff-list-name .post {
    font-weight: 700;
    font-size: .85em;
    letter-spacing: .1em;
    white-space: pre-wrap
}

@media screen and (min-width: 1100px), print {
    .staff-list-name .post {
        position:absolute;
        bottom: 100%;
        width: 100%
    }
}

.staff-list-name .name {
    font-weight: 700;
    font-size: 2.2em;
    color: #23651c;
    letter-spacing: normal
}

@media screen and (min-width: 1100px), print {
    .staff-list-name .name {
        font-size:2.4em
    }
}

.staff-list-name .en {
    font-size: .8em;
    font-weight: 700
}

.staff-list-profile {
    padding: 0 10px 10px
}

.staff-list-profile dl {
    line-height: 1.5
}

.staff-list-profile dl:not(:last-child) {
    margin-bottom: 1em
}

.staff-list-profile dt {
    margin-bottom: .5em;
    padding-bottom: .15em;
    font-weight: 500;
    font-size: 1.1em;
    color: #23651c;
    text-align: center;
    border-bottom: 1px solid #d1e0b4
}

@media screen and (min-width: 640px), print {
    .staff-list-profile dt {
        text-align:left
    }
}

@media screen and (min-width: 1100px), print {
    .staff-list-profile dt {
        text-align:center
    }
}

.staff-list-profile dd {
    font-size: .95em
}

.staff-list-profile table {
    display: block;
    font-size: 1em
}

.staff-list-profile table tbody {
    display: block
}

.staff-list-profile table tr {
    display: table;
    width: 100%;
    padding: .3em 0;
    border-bottom: 1px dotted #ddd
}

.staff-list-profile table td {
    padding: 0;
    vertical-align: top;
    background: none
}

.staff-list-profile table td:first-child {
    width: 4.2em;
    text-align: center
}

.staff-list-profile table td:last-child {
    padding: 0 0 0 1em
}

@media screen and (min-width: 1100px), print {
    .staff-list-primary .staff-list-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

@media screen and (min-width: 640px), print {
    .staff-list-secondary .staff-list-item {
        -ms-flex-preferred-size:50%;
        flex-basis: 50%;
        max-width: 50%
    }
}

.staff-list-secondary .staff-list-inner {
    display: block;
    padding: 0
}

.staff-list-secondary .staff-list-head {
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    padding: 1em 0
}

.staff-list-secondary .staff-list-body {
    -webkit-box-flex: 1;
    -ms-flex: auto;
    flex: auto;
    padding-top: 0
}

.staff-list-secondary .staff-list-img {
    margin-bottom: 0
}

.staff-list-secondary .staff-list-name {
    margin-top: 0;
    padding-left: 0
}

.staff-list-secondary .staff-list-name .post {
    position: static
}

.staff-list-secondary .staff-list-profile table {
    border-top: 1px dotted #ddd
}

.staff-list-secondary .staff-list-profile dt {
    display: none
}

.staff-list-container {
    display: block;
    position: relative;
    padding: 10px 5px 7px;
    border-radius: 7px;
    border: 1px solid #ddd
}

@media screen and (min-width: 768px), print {
    .staff-list-container {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        padding: 7px
    }
}

@media screen and (min-width: 768px), print {
    .staff-list-main {
        -webkit-box-flex:1;
        -ms-flex: 1;
        flex: 1
    }
}

.staff-list-side {
    width: 90px;
    margin: 0 auto .5em
}

@media screen and (min-width: 768px), print {
    .staff-list-side {
        margin:0 7px 0 0
    }
}

.staff-list-department-primary:not(:last-child) {
    margin-bottom: 1em
}

.staff-list-department h3 {
    margin: 0 0 .3em;
    padding: 0;
    font-size: 100%;
    font-size: 1.1em;
    color: #333;
    border-left: none;
    background: none
}

.staff-list-department dl {
    padding-left: 1em;
    line-height: 1.5
}

@media screen and (min-width: 768px), print {
    .staff-list-department dl {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        padding-left: 0
    }
}

.staff-list-department dt {
    margin-left: -1em;
    font-weight: 500;
    font-size: 1.1em
}

@media screen and (min-width: 768px), print {
    .staff-list-department dt {
        margin-left:0;
        font-size: 1em
    }
}

.staff-list-department dt::after {
    content: "："
}

.staff-list-department dd {
    display: inline-block;
    vertical-align: top
}

@media screen and (min-width: 768px), print {
    .staff-list-department dd {
        display:block
    }
}

.staff-list-department dd::before {
    content: "、"
}

.staff-list-department dd.nolink span {
    color: #333;
    text-decoration: none
}

.staff-list-department dd.nolink a {
    display: none
}

.staff-list-department dd.empty {
    display: none
}

.staff-list-department dd span {
    display: inline-block;
    vertical-align: top;
    position: relative;
    color: #23651c;
    text-decoration: underline
}

.staff-list-department dd span:hover {
    text-decoration: none
}

.staff-list-department dd a::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0)
}

.staff-list-department dt+dd::before {
    content: ""
}

.staff-list-department .staff-list-img {
    display: block;
    position: relative;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: hidden
}

.staff-list-department .staff-list-img::before {
    content: "";
    display: block;
    padding-top: 133.33%
}

.staff-list-department .staff-list-img img {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%)
}

.staff-list-department .staff-list-name {
    position: static;
    margin: 0;
    padding: 0
}

@media screen and (min-width: 1280px), print {
    .staff-list-department .staff-list-name {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center
    }
}

.staff-list-department .staff-list-name .link a::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0)
}

.staff-list-department .staff-list-name .name {
    font-weight: 500;
    font-size: 1.15em;
    color: #333
}

@media screen and (min-width: 768px), print {
    .staff-list-department .staff-list-name .name {
        font-size:1.3em
    }
}

@media screen and (min-width: 1280px), print {
    .staff-list-department .staff-list-name .name {
        font-size:1.4em
    }
}

.staff-list-department .staff-list-item {
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%
}

@media screen and (min-width: 480px), print {
    .staff-list-department .staff-list-item {
        -ms-flex-preferred-size:33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%
    }
}

.staff-list-department .staff-list-item.nolink .staff-list-container:hover {
    border-color: #ddd
}

.staff-list-department .staff-list-item.nolink .staff-list-container:hover .staff-list-name .name {
    color: #333;
    text-decoration: none
}

.staff-list-department .staff-list-item.nolink .staff-list-name {
    color: #333
}

.staff-list-department .staff-list-item.nolink .staff-list-name a {
    display: none
}

.staff-list-department .staff-list-item.empty {
    display: none
}

.staff-list-department .staff-list-container:hover {
    border-color: #d1e0b4
}

.staff-list-department .staff-list-container:hover .staff-list-name .name {
    color: #23651c;
    text-decoration: underline
}

.en-page .page-title {
    margin-bottom: 0
}

@media screen and (min-width: 1100px) {
    .en-page .header.fixed .inner {
        display:none
    }
}

@media screen and (max-width: 479.98px) {
    .en-page .header-logo .site-logo {
        -webkit-box-pack:start;
        -ms-flex-pack: start;
        justify-content: flex-start
    }
}

@media screen and (max-width: 767.98px) {
    .en-page .header-link {
        width:242.5px
    }
}

@media screen and (max-width: 479.98px) {
    .en-page .header-link {
        margin-left:13px
    }
}

@media screen and (max-width: 359.98px) {
    .en-page .header-link {
        width:194px
    }
}

@media screen and (min-width: 1100px) {
    .en-page .nav.fixed {
        display:none
    }
}

.en-page .nav-button {
    display: none
}

.en-page .footer .inner {
    margin: 0 -1em;
    padding: 0 1em;
    background-color: #e4edd3
}

@media screen and (min-width: 1100px), print {
    .en-page .footer .inner {
        margin:0 -2em;
        padding: 0 2em
    }
}

@media screen and (min-width: 1100px), print {
    .en-page .footer-head {
        padding-right:0
    }
}

@media screen and (min-width: 1100px), print {
    .en-page .footer-body {
        width:520px
    }
}

@media screen and (min-width: 1100px), print {
    .en-page .global-contact-secondary .tel-item {
        display:block
    }
}

@media screen and (min-width: 1100px), print {
    .en-page .global-contact-secondary .tel-item-primary {
        margin-bottom:.5em
    }
}

/* 250613 保守作業 */
.huvth-75th {
    margin: 3.5em -1em 1em;
}

.huvth-75th-catch {
    font-weight: 500;
    font-size: .95em;
    text-align: center;
}

.huvth-75th-more {
    aspect-ratio: 3 / 1.1;
    display: block;
    position: relative;
    margin-top: 1em;
    overflow: hidden;
    transition: opacity .5s;
}

.huvth-75th-more:hover {
    opacity: 0.75;
}

.huvth-75th-more img {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media screen and (min-width: 768px), print {
    .huvth-75th {
        margin-right: 0;
        margin-left: 0;
    }
    .huvth-75th-catch {
        font-size: 1.1em;
    }
    .huvth-75th-catch .br {
        display: none;
    }
    .huvth-75th-more {
        aspect-ratio: 4 / 1;
    }
}

@media screen and (min-width: 1100px), print {
    .huvth-75th {
        margin-top: 6em;
        margin-bottom: 0;
    }
    .huvth-75th-catch {
        font-size: 1.2em;
    }
}
