@charset "UTF-8";

#l-contents,
#l-contents--full .inner,
.l-section .inner {
    display: block
}

#l-contents:after,
#l-contents--full .inner:after,
.l-section .inner:after {
    content: "";
    display: block;
    clear: both;
    height: 0
}

.l-header__navi ul {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-align-self: center;
    -ms-flex-item-align: center;
    align-self: center;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1
}

.l-main a[data-lity],
.l-main a[href*=mailto] {
    opacity: 1;
    transition: opacity .3s
}

.l-main a:hover[data-lity],
.l-main a:hover[href*=mailto] {
    opacity: .7
}

.l-wrapper:first-child,
l-main p:first-child,
.l-main ul.disc:first-child {
    margin-top: auto
}

.l-wrapper:last-child,
.l-main p:last-child,
.l-main ul.disc:last-child {
    margin-bottom: auto
}

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block
}

nav ul {
    list-style: none
}

blockquote,
q {
    quotes: none
}

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

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}

ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none
}

mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: 700
}

del {
    text-decoration: line-through
}

abbr[title],
dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px dashed #ccc;
    margin: 0 0 30px;
    padding: 0
}

input,
select {
    vertical-align: middle
}

body .row-fluid [class*=span] {
    float: none;
    width: auto;
    min-height: 0
}

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
a,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
input,
button,
textarea,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video,
*:before,
*:after {
    box-sizing: border-box
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 400
}

li {
    list-style-type: none
}

a {
    text-decoration: none;
    color: #000;
    outline: 0
}

img {
    border: 0;
    vertical-align: middle;
    width: auto;
    max-width: 100%;
    height: auto
}

i,
em {
    font-style: normal
}

input,
button,
textarea,
select {
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
    border: 0;
    outline: 0;
    margin: 0;
    padding: 0;
    background: #fff;
    vertical-align: middle;
    font-size: inherit;
    color: #000
}

input::-webkit-input-placeholder {
    color: #bfbfbf
}

input:-ms-input-placeholder {
    color: #bfbfbf
}

input::-moz-placeholder {
    color: #bfbfbf
}

option {
    outline: 0
}

html {
    font-size: 14px
}

body {
    font-weight: 400;
    position: relative;
    background: #fff;
    min-width: 320px;
    color: #000
}

body {
    font-family: "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, Meiryo UI, "メイリオ", Meiryo, Helvetica Neue, Helvetica, Arial, Verdana, Roboto, "游ゴシック", Yu Gothic, "游ゴシック体", YuGothic, "ＭＳ Ｐゴシック", MS PGothic, sans-serif;
    width: 100%;
    min-width: 320px;
    line-height: 1.8;
    *font-size: small;
    *font: x-small;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    letter-spacing: .05em;
    line-height: 2.1;
    position: relative
}

a[href^="tel:"].tel-disable {
    pointer-events: none;
    text-decoration: none;
    cursor: default
}

a[href^="tel:"].tel-disable:hover {
    cursor: default;
    opacity: 1 !important;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"
}

.l-header {
    position: fixed;
    height: 66px;
    width: 100%;
    background: #fff;
    color: #111;
    z-index: 10
}

.l-header .inner {
    width: 100%;
    max-width: 1080px;
    margin-right: auto;
    margin-left: auto;
    padding: 0;
    position: relative
}

.l-header__logo {
    min-width: auto;
    width: 230px;
    padding: 30px 0 0;
    margin-bottom: 0
}

.l-header__right {
    position: absolute;
    top: 0;
    right: 0;
    padding: 45px 0 4px
}

.l-header__right ul {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: row nowrap;
    -ms-flex-wrap: row nowrap;
    flex-wrap: row nowrap;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center
}

.l-header__right ul li a {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0;
    font-size: 18px;
    font-size: 1.125rem;
    font-weight: 600;
    text-align: center;
    color: #111
}

.l-header__right ul li a i {
    line-height: 1;
    position: relative;
    display: block;
    margin-right: .5em
}

.l-header__right ul li a:hover span:after {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    -webkit-transform-origin: center;
    transform-origin: center
}

.l-footer {
    padding: 0;
    font-size: 10px;
    font-size: .625rem
}

.l-footer__local {
    background: #fff;
    text-align: center
}

.l-footer__local .c-flex-wrap {
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
    margin: 0
}

.l-footer__local figure {
    text-align: center;
    margin: 0 auto
}

.l-footer__local .footer-logo {
    width: 25%;
    margin-bottom: 0
}

.l-footer__local .footer-logo img {
    width: 100%
}

.l-footer__local .copyright {
    width: 75%;
    text-align: left;
    letter-spacing: -.02em
}

#pagetop {
    display: block;
    position: relative;
    width: 100%;
    height: 61px;
    background-color: #535353;
    border-bottom: 1px solid #ccc
}

#pagetop:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
    -webkit-transform: translate(-50%, -50%) rotate(45deg);
    transform: translate(-50%, -50%) rotate(45deg)
}

#l-contents {
    width: 100%;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding: 0
}

#l-contents--full {
    max-width: 100%
}

#l-contents--full .inner {
    width: 100%;
    max-width: 1080px;
    margin-right: auto;
    margin-left: auto;
    padding: 0
}

.l-section {
    max-width: 100%;
    padding-top: 20px;
    padding-bottom: 20px;
    overflow: hidden
}

.l-section__title {
    padding: 0
}

.l-section .inner {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding: 0 20px
}

.l-wrapper {
    margin-top: 20px
}

.l-main {
    display: block;
    background-color: #eee;
    padding: 66px 0 0
}

.top .l-main {
    padding: 66px 0 0
}


.p-gmap {
    margin: 0 auto 20px
}

.p-gmap iframe {
    width: 100%;
    min-height: 300px;
    border: 0
}

.c-button-wrap {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    margin: 20px auto
}

.c-button-wrap:last-child {
    margin-bottom: 0
}

.c-button-wrap .c-button+.c-button {
    margin-left: 30px
}

.c-button {
    display: block;
    width: 70%;
    margin: 2.5em auto 1.5em;
    padding: 10px 0;
    background-color: #01479d;
    border-radius: 25px;
    font-size: 14px;
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.4;
    color: #fff;
    transition: background .3s;
    position: relative;
    text-align: center !important
}

.c-button:after {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    margin: auto;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    position: absolute;
    right: 2rem;
    top: 0;
    bottom: 0;
    transition: right 400ms
}

.c-button:hover {
    text-decoration: none
}


.c-flex-wrap {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start
}

.c-flex-column {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center
}

.c-flex-column__half {
    display: block
}

.c-flex-column__half>* {
    display: block;
    width: 100%
}

.c-flex-column__half figure {
    position: relative;
    margin-bottom: 30px;
    padding: 0 15px
}

.c-flex-column__half figure img {
    position: static
}

.c-flex-column__half .detail {
    margin-bottom: 30px;
    padding: 0 15px
}

.c-flex-column__half.is-reverse .detail {
    padding: 0 15px;
    text-align: left
}

.c-flex-column__half.is-reverse .detail__inner {
    display: block;
    min-width: auto
}


.u-bg--white {
    background: #fff
}

.u-only--lg,
.u-only-inline--lg {
    display: none !important
}

.u-only--sm {
    display: block !important
}

.u-only-inline--sm {
    display: inline-block !important
}

.u-align--center--sm {
    text-align: center !important
}

.u-align--left--sm {
    text-align: left !important
}

.u-align--right--sm {
    text-align: right !important
}

.u-display--none--sm {
    display: none !important
}

.u-display--inline--sm {
    display: inline !important
}

.u-display--inline--sm-block {
    display: inline-block !important
}

.u-display--block--sm {
    display: block !important
}

.u-display--table--sm {
    display: table !important
}

.u-display--table--sm-cell {
    display: table-cell !important
}

.u-display--flex--sm {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important
}

.u-display--inline--sm-flex {
    display: -webkit-inline-flex !important;
    display: -ms-inline-flexbox !important;
    display: inline-flex !important
}

.u-clearfix:after {
    content: "";
    display: block;
    clear: both;
    height: 0
}

.u-nindent1 {
    padding-left: 1em;
    text-indent: -1em
}

.u-nindent2 {
    padding-left: 2em;
    text-indent: -2em
}

.u-nindent3 {
    padding-left: 3em;
    text-indent: -3em
}

.u-nindent4 {
    padding-left: 4em;
    text-indent: -4em
}

.u-nindent5 {
    padding-left: 5em;
    text-indent: -5em
}

.l-header {
    position: fixed
}

.l-main p {
    margin-top: .5rem;
    margin-bottom: 1.2rem
}

.l-main p.c-link-text {
    margin-bottom: 0
}

.l-main p:not([class])+p:not([class]) {
    margin-top: -.75em
}

.l-main a {
    position: relative
}

.l-main a:not([class]):after {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    margin: auto;
    border-right: 2px solid #121212;
    border-bottom: 2px solid #121212;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    position: absolute;
    right: -1rem;
    top: 0;
    bottom: 0;
    transition: right 400ms
}

.l-main a:not([class]):hover {
    text-decoration: none
}

.l-main a:not([class]):hover:after {
    right: -1.5rem
}

.l-main a[data-lity] {
    display: block
}

.l-main figure {
    text-align: center
}

.l-main figure figcaption {
    font-size: 10px;
    font-size: .625rem;
    line-height: 1.4
}

.l-main figure figcaption+img {
    margin-top: 10px
}

.l-main figure img+figcaption {
    text-align: left;
    font-weight: 600
}

_:-ms-fullscreen,
:root .l-main figure {
    width: 100%;
    height: auto;
    overflow: hidden
}

.l-main ol:not([class]) {
    counter-reset: number
}

.l-main ol:not([class]):not(:last-child) {
    margin-bottom: 30px
}

.l-main ol:not([class])>li {
    margin-bottom: 10px;
    text-indent: -1.25em;
    padding-left: 1.25em
}

.l-main ol:not([class])>li:nth-child(n+10) {
    text-indent: -2.25em;
    padding-left: 2.25em
}

.l-main ol:not([class])>li:last-child {
    margin-bottom: 0
}

.l-main ol:not([class])>li:before {
    display: inline-block;
    margin-right: 5px;
    text-indent: 0;
    padding-left: 0;
    counter-increment: number;
    content: counter(number) ".";
    color: #01479d;
    font-weight: 600
}

.l-main ol:not([class])>li div {
    text-indent: 0;
    padding-left: 0
}

.l-main ol:not([class])>li li:not(:last-child) {
    margin-bottom: 5px
}

.l-main ol:not([class]) ul,
.l-main ol:not([class]) ol {
    margin-top: 10px !important;
    margin-left: 1em;
    padding-left: 0;
    text-indent: 0
}

.l-main ol:not([class]) ol {
    counter-reset: number
}

.l-main ul:not([class])>li {
    margin-bottom: 10px
}

.l-main ul:not([class])>li:last-child {
    margin-bottom: 0
}

.l-main ul ul,
.l-main ul ol {
    margin-top: 10px;
    margin-left: 1em;
    padding-left: 0;
    text-indent: 0
}

.l-main ul.inline>li {
    display: inline-block;
    margin: 0 1em .8em 0;
    vertical-align: top
}

.l-main ul.nind1>li {
    text-indent: -1em;
    padding-left: 1em
}

.l-main ul.nind2>li {
    text-indent: -2em;
    padding-left: 2em
}

.l-main ul.nind3>li {
    text-indent: -3em;
    padding-left: 3em
}

.l-main ul.nind1>li,
.l-main ul.nind2>li,
.l-main ul.nind3>li {
    margin-bottom: 10px
}

.l-main ul.nind1>li:last-child,
.l-main ul.nind2>li:last-child,
.l-main ul.nind3>li:last-child {
    margin-bottom: 0
}

.l-main ul.disc {
    margin-top: 40px;
    margin-bottom: 15px
}

.l-main ul.disc:not(:first-child) {
    margin-top: 20px
}

.l-main ul.disc>li {
    margin-bottom: 5px;
    padding-left: 1.25em;
    position: relative
}

.l-main ul.disc>li:last-child {
    margin-bottom: 0
}

.l-main ul.disc>li:before {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(1, 71, 157, .8);
    position: absolute;
    left: 0;
    top: 8px
}

.l-main ul.is-wide>li {
    margin-bottom: 15px
}

.l-main ul.is-wide>li:last-child {
    margin-bottom: 0
}

.l-main ul.is-short>li {
    margin-bottom: .4em
}

.l-main ul.is-short>li:last-child {
    margin-bottom: 0
}

.l-main dl:not([class])>dt {
    margin-bottom: .75em;
    font-weight: 600
}

.l-main dl:not([class])>dd+dt {
    margin-top: 1.25em
}

.l-main dl.normal dt {
    margin-bottom: .2em;
    font-weight: 600
}

.l-main dl.normal dd {
    margin-bottom: 1.25em
}

.l-main sup {
    font-size: 75.5%;
    vertical-align: super;
    position: relative;
    top: 0
}

.txt a {
    display: inline-block;
    position: relative;
    line-height: 1.1;
    padding-right: 2rem;
    color: #43afff
}

.txt a:not([class]):after {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    margin: auto;
    border-right: 2px solid #43afff;
    border-bottom: 2px solid #43afff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    position: absolute;
    right: 1rem;
    top: 0;
    bottom: 0;
    transition: right 400ms
}

.txt a:hover {
    text-decoration: none
}

.txt a:not([class]):hover:after {
    right: .5rem
}

_:-ms-fullscreen .l-main,
:root .top .l-main {
    background: #eee
}

.notfound .l-main__header {
    background: url(../img/common/bg_general.png) no-repeat 50% 80%/cover
}

.notfound .c-button-wrapper {
    text-align: center
}

@media screen and (max-width:320px) {
    html {
        visibility: visible
    }
}

@media screen and (max-width:480px) {
    html {
        visibility: visible
    }
}

@media screen and (max-width:640px) {
    html {
        visibility: visible
    }
}

@media screen and (max-width:768px) {
    html {
        visibility: visible
    }

    .l-header__logo {
        padding: 15px 20px
    }

    .l-header__right {
        padding: 15px 20px 0 0
    }

    .l-header__right ul li a {
        padding: 0
    }

    .l-header__right ul li a i {
        width: 28px
    }

    .l-header__right ul li:nth-child(1) span,
    .l-header__right ul li:nth-child(2) span {
        display: none
    }

    .l-header__right ul li:nth-child(2) a img {
        width: auto;
        height: 28px
    }

    .l-header__right ul li:nth-child(2) i {
        margin-right: 0
    }
}

@media screen and (min-width:769px) {
    html {
        visibility: visible
    }

    .l-header {
        height: 100px;
        border-bottom: 1px solid #ccc
    }

    .l-header__logo {
        width: 273px;
        padding: 20px 0 15px
    }

    .l-header__right {
        padding: 20px 0
    }

    .l-header__right ul {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        width: calc(100%-430px);
        -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
        justify-content: flex-end;
        -webkit-flex-wrap: row nowrap;
        -ms-flex-wrap: row nowrap;
        flex-wrap: row nowrap;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center
    }

    .l-header__right ul li:not(:last-child) {
        margin-right: 50px
    }

    .l-header__right ul li:not(:last-child) img {
        width: 30px;
        height: 22px
    }

    .l-header__right ul li:hover {
        opacity: .7
    }

    .l-header__right ul li:hover a span:after {
        -webkit-transform: transform .2s;
        transform: transform .2s
    }

    .l-header__right ul li:last-child {
        margin-right: 1em
    }

    .l-header__right ul li:last-child img {
        width: 22px;
        height: 30px
    }

    .l-header__right ul a {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        height: 100%;
        padding: 0;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center
    }

    .l-header__right ul a span {
        font-size: 16px;
        font-size: 1rem;
        padding: 15px 0;
        line-height: 1;
        position: relative;
        font-weight: 500
    }

    .l-header__right ul a span:after {
        content: "";
        display: block;
        width: 100%;
        height: 1px;
        position: absolute;
        left: 0;
        bottom: 0;
        -webkit-transform: scaleX(0);
        transform: scaleX(0);
        transition: -webkit-transform .2s;
        transition: transform .2s;
        transition: transform .2s, -webkit-transform .2s
    }

    .l-footer {
        font-size: 12px;
        font-size: .75rem
    }

    .l-footer .l-section.l-footer__local {
        padding-top: 20px;
        padding-bottom: 20px
    }

    .l-footer__local {
        border-top: 1px solid #ccc;
        text-align: left;
        position: relative
    }

    .l-footer__local.inner {
        padding: 0
    }

    .l-footer__local .c-flex-wrap {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        margin: 0
    }

    .l-footer__local .footer-logo {
        display: none
    }

    .l-footer__local .copyright {
        width: 100%;
        padding: 0;
        position: relative;
        text-align: center;
        color: #111
    }

    #pagetop {
        display: block;
        position: fixed;
        right: 0;
        bottom: 0;
        width: 50px;
        height: 50px;
        background: #01479d;
        opacity: 0;
        transition: opacity .3s;
        border-bottom: none;
        z-index: 99
    }

    #pagetop:after {
        content: "";
        display: block;
        position: absolute;
        top: 55%;
        left: 10%;
        width: 10px;
        height: 10px;
        border-top: 2px solid #fff;
        border-left: 2px solid #fff;
        -webkit-transform: translate(15px, -50%) rotate(45deg);
        transform: translate(15px, -50%) rotate(45deg)
    }

    .is-fix #pagetop {
        position: absolute;
        bottom: 0;
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }

    .top .is-fix #pagetop {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }

    #pagetop.js-show {
        cursor: pointer;
        opacity: .8
    }

    .is-fix #pagetop.js-show {
        opacity: 1
    }

    #pagetop.js-show:hover {
        opacity: .6
    }

    #l-contents {
        padding: 0
    }

    #l-contents--full .inner {
        padding: 0 20px
    }

    .l-section {
        padding-top: 40px;
        padding-bottom: 40px
    }

    .l-section .inner {
        padding: 0 20px
    }

    .l-section.p-movie {
        padding-bottom: 20px
    }

    .l-wrapper {
        margin-top: 80px
    }

    .l-main {
        padding: 100px 0 0
    }

    .top .l-main {
        padding: 100px 0 0
    }

}

