@import"https://fonts.googleapis.com/css2?family=Bodoni+Moda:wght@400;500&display=swap";

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

* {
    margin: 0
}

html,
body {
    height: 100%
}

body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%
}

input,
button,
textarea,
select {
    font: inherit
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word
}

#root,
#__next {
    isolation: isolate
}

fieldset {
    border: none
}

input {
    border-radius: 0
}

[type=number] {
    width: auto
}

[type=search] {
    -webkit-appearance: textfield
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

textarea {
    overflow: auto;
    resize: vertical
}

button,
input,
optgroup,
textarea,
select {
    font: inherit
}

optgroup {
    font-weight: bold
}

button {
    overflow: visible
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
    border-style: 0;
    padding: 0
}

button:-moz-focusring,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
    outline: 1px dotted ButtonText
}

button,
html [type=button],
[type=reset],
[type=submit] {
    -webkit-appearance: button
}

button {
    text-transform: none
}

button,
input,
textarea {
    background-color: rgba(0, 0, 0, 0);
    border-style: none;
    color: inherit
}

select {
    max-width: 100%;
    overflow: hidden
}

legend {
    border: 0;
    color: inherit;
    display: table;
    max-width: 100%;
    white-space: normal
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

::-moz-placeholder {
    color: inherit;
    opacity: .5
}

:-ms-input-placeholder {
    color: inherit;
    opacity: .5
}

::-webkit-input-placeholder {
    color: inherit;
    opacity: .5
}

[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

html {
    height: -webkit-fill-available;
    font-size: 100%
}

body {
    -webkit-text-size-adjust: 100%;
    min-height: 100vh;
    min-height: -webkit-fill-available;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
    font-size: .875em;
    line-height: 1.8;
    margin: 0;
    padding: 0;
    font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    color: #514d4c;
    text-align: center;
    font-feature-settings: "palt"
}

@media all and (-ms-high-contrast: none) {
    body {
        font-family: "メイリオ", Meiryo, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif
    }
}

@media print,
screen and (min-width: 800px) {
    body {
        font-size: 1em
    }
}

.no-overflow {
    position: fixed;
    left: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
    height: 100vh;
    overflow-y: scroll
}

.anime {
    transition: all .3s ease-in-out
}

.flt-R {
    float: right
}

.flt-L {
    float: left
}

.flt-C {
    text-align: center;
    margin-left: auto;
    margin-right: auto
}

.tb-L {
    margin-left: 0;
    margin-right: auto;
    text-align: left
}

.tb-R {
    margin-right: 0;
    margin-left: auto;
    text-align: right
}

.clr-L {
    clear: left
}

.clr-R {
    clear: right
}

.clr-B {
    clear: both
}

.aln-R {
    text-align: right
}

.aln-C {
    text-align: center
}

@media print,
screen and (max-width: 767px) {
    .aln-C.aln-L-smp {
        text-align: left
    }
}

@media print,
screen and (max-width: 767px) {
    .aln-C.aln-R-smp {
        text-align: right
    }
}

.aln-L {
    text-align: left
}

.noshow {
    display: none
}

.clearfix:after,
.row:after {
    content: " ";
    display: block;
    clear: both
}

.clear {
    clear: both;
    visibility: hidden;
    width: 0;
    height: 0
}

.border-box {
    box-sizing: border-box
}

.content-box {
    box-sizing: content-box
}

.linkbox .readmore,
.lkbx .readmore {
    display: none
}

img {
    max-width: 100%;
    height: auto
}

@media print,
screen and (min-width: 768px) {
    .onlySMP {
        display: none
    }
}

.noSMP {
    display: none
}

@media print,
screen and (min-width: 768px) {
    .noSMP {
        display: inherit
    }
}

.onlyPC {
    display: none
}

@media print,
screen and (min-width: 800px) {
    .onlyPC {
        display: inherit
    }
}

@media print,
screen and (min-width: 800px) {
    .noPC {
        display: none
    }
}

@media print,
screen and (min-width: 576px) {
    .sm {
        display: none
    }
}

.notice {
    font-weight: 700
}

h1,
h2 {
    margin-bottom: 1.5em
}

h3,
h4 {
    margin-bottom: 1em
}

h1:not(:first-child):not(.no-sp-top),
h2:not(:first-child):not(.no-sp-top),
h3:not(:first-child):not(.no-sp-top) {
    margin-top: 2em
}

h5,
h6,
li,
dt,
dd {
    margin-bottom: .5em
}

p:not(:last-child) {
    margin-bottom: 1.5em
}

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

h1 {
    font-size: 1.5em
}

@media print,
screen and (min-width: 576px) {
    h1 {
        font-size: 1.8em
    }
}

@media print,
screen and (min-width: 800px) {
    h1 {
        font-size: 2.025em
    }
}

h2 {
    font-size: 1.35em
}

@media print,
screen and (min-width: 576px) {
    h2 {
        font-size: 1.62em
    }
}

@media print,
screen and (min-width: 800px) {
    h2 {
        font-size: 1.8225em
    }
}

h3,
h2.sml {
    font-size: 1.215em
}

@media print,
screen and (min-width: 576px) {

    h3,
    h2.sml {
        font-size: 1.458em
    }
}

@media print,
screen and (min-width: 800px) {

    h3,
    h2.sml {
        font-size: 1.64025em
    }
}

h4 {
    font-size: 1.1em
}

@media print,
screen and (min-width: 576px) {
    h4 {
        font-size: 1.1em
    }
}

@media print,
screen and (min-width: 800px) {
    h4 {
        font-size: 1.1em
    }
}

h5 {
    font-size: 1em
}

@media print,
screen and (min-width: 800px) {
    h5 {
        font-size: 1.05em
    }
}

h6 {
    font-size: .92em
}

.fntSS {
    font-size: .6875em;
    line-height: 1.5
}

.fntS {
    font-size: .875em
}

.fntL {
    font-size: 1.125em
}

.fntLL {
    font-size: 1.375em
}

.fntBold {
    font-weight: 700
}

.dsp-b {
    display: block
}

.dsp-ib {
    display: inline-block
}

.dsp-tbl {
    display: table
}

.dsp-tbl>.col {
    display: table-cell
}

.dsp-fx {
    -js-display: flex;
    display: flex
}

.list-ib {
    letter-spacing: -0.4em
}

.list-ib>li,
.list-ib>.col {
    letter-spacing: normal;
    display: inline-block;
    vertical-align: middle
}

.list-ib.with-gap li:not(:last-child) {
    margin-right: 2em
}

@-moz-document url-prefix() {
    .list-ib {
        word-spacing: .1em
    }
}

.list-tbl {
    display: table
}

.list-tbl>li {
    display: table-cell;
    vertical-align: middle
}

a {
    color: #351432;
    text-decoration: none;
    transition: all .15s ease-in-out
}

nav a,
header a,
footer a,
a.no-underline {
    text-decoration: none
}

a:active,
a:hover {
    color: #5a2255
}

dt,
dd,
li,
th,
td {
    line-height: 1.5
}

nav ol,
nav ul,
.no-list-style {
    list-style: none;
    margin: 0;
    padding: 0
}

ol:not(:last-child),
ul:not(:last-child) {
    margin-bottom: 1.5em
}

ol ol,
ol ul,
ul ul,
ul ol,
table ul,
table ol {
    margin-bottom: 0
}

.list-norm,
.page-single ul,
.page-single ol {
    margin-left: 1.75em
}

.list-norm li:not(:last-child),
.page-single ul li:not(:last-child),
.page-single ol li:not(:last-child) {
    margin-bottom: .5em
}

.list-norm li ol,
.list-norm li ul,
.page-single ul li ol,
.page-single ul li ul,
.page-single ol li ol,
.page-single ol li ul {
    margin-top: .5em
}

ol.list-norm,
.page-single ol {
    list-style: decimal
}

ul.list-norm,
.page-single ul {
    list-style: disc
}

table {
    border-collapse: collapse;
    margin-bottom: 1.5em
}

table p {
    margin-bottom: 0
}

.tb-norm {
    position: relative;
    margin-bottom: 1.5rem;
    font-size: .92em
}

.tb-norm.fullW {
    width: 100%
}

.tb-norm th,
.tb-norm td {
    padding: .5em;
    border: 1px solid #aaa;
    vertical-align: top
}

@media print,
screen and (min-width: 800px) {

    .tb-norm th,
    .tb-norm td {
        padding: 1em
    }
}

.tb-norm thead th {
    background-color: rgba(185, 160, 131, .2)
}

.tb-norm tbody th {
    background-color: rgba(185, 160, 131, .1)
}

.tb-norm .aln-C th,
.tb-norm .aln-C td {
    text-align: center
}

[class*=inner-wrap] {
    position: relative;
    padding-left: 2rem;
    padding-right: 2rem;
    margin-left: auto;
    margin-right: auto;
    text-align: left
}

@media print,
screen and (max-width: 575px) {
    [class*=inner-wrap].small-space-smp {
        padding-left: .5rem;
        padding-right: .5rem
    }
}

.inner-wrap {
    max-width: 1120px
}

.inner-wrap.aln-C {
    text-align: center
}

.inner-wrap--semi {
    max-width: 944px
}

.inner-wrap--narrow {
    max-width: 768px
}

.inner-wrap--thin {
    max-width: 592px
}

.inner-wrap--wide {
    max-width: 1296px
}

.inner-wrap--wider {
    max-width: 1472px
}

[class*=swrap] {
    position: relative;
    margin-left: auto;
    margin-right: auto
}

[class*=swrap].mgn-bottom {
    margin-bottom: 1.5rem
}

@media print,
screen and (min-width: 800px) {
    [class*=swrap].mgn-bottom {
        margin-bottom: 2rem
    }
}

.swrap {
    max-width: 1056px
}

.swrap--semi {
    max-width: 880px
}

.swrap--narrow {
    max-width: 704px
}

.swrap--thin {
    max-width: 528px
}

.swrap--wide {
    max-width: 1232px
}

.swrap--wider {
    max-width: 1408px
}

.with-bottom-border::before {
    position: absolute;
    bottom: 0;
    left: 2rem;
    width: calc(100% - 4rem);
    height: 0;
    content: " ";
    border-bottom: 1px solid #ccc
}

#Mask-cnt {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #1f2731;
    z-index: 100;
    cursor: pointer;
    opacity: 0;
    display: none
}

.gglmap {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 133%;
    overflow: hidden
}

@media print,
screen and (min-width: 576px) {
    .gglmap {
        padding-top: 100%
    }
}

@media print,
screen and (min-width: 768px) {
    .gglmap {
        padding-top: 67%
    }
}

@media print,
screen and (min-width: 960px) {
    .gglmap {
        padding-top: 52.8%
    }
}

.gglmap iframe,
.gglmap object,
.gglmap embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.vd {
    position: relative;
    width: 100%;
    padding-top: 56.25%
}

.vd iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important
}

.no-margin-top {
    margin-top: 0 !important
}

.no-margin-btm {
    margin-bottom: 0 !important
}

.margin-top--sm {
    margin-top: .5rem !important
}

.margin-top--md {
    margin-top: 1.5rem !important
}

.margin-top--lg {
    margin-top: 3rem !important
}

.margin-top--xl {
    margin-top: 4rem !important
}

.margin-btm--sm {
    margin-bottom: .5rem !important
}

.margin-btm--md {
    margin-bottom: 1.5rem !important
}

.margin-btm--lg {
    margin-bottom: 3rem !important
}

.margin-btm--xl {
    margin-bottom: 4rem !important
}

.no-padding-top {
    padding-top: 0 !important
}

.no-padding-btm {
    padding-bottom: 0 !important
}

.padding-top--sm {
    padding-top: .5rem !important
}

.padding-top--md {
    padding-top: 1.5rem !important
}

.padding-top--lg {
    padding-top: 3rem !important
}

.padding-top--xl {
    padding-top: 4rem !important
}

.padding-btm--sm {
    padding-bottom: .5rem !important
}

.padding-btm--md {
    padding-bottom: 1.5rem !important
}

.padding-btm--lg {
    padding-bottom: 3rem !important
}

.padding-btm--xl {
    padding-bottom: 4rem !important
}

.accordion {
    position: relative;
    border-bottom: 1px solid #ddd
}

.accordion:not(:last-child) {
    margin-bottom: 2rem
}

.accordion dt {
    position: relative;
    padding: .75em 0;
    margin: 0;
    padding-right: 2em;
    display: block;
    border-top: 1px solid #ddd;
    font-weight: bold;
    cursor: pointer;
    background-color: #fff;
    transition: all .15s ease-in-out
}

.accordion dt::before {
    position: absolute;
    top: 50%;
    right: 16px;
    margin-top: -5px;
    width: 0;
    height: 11px;
    content: " ";
    border-left: 1px solid #888
}

.accordion dt::after {
    position: absolute;
    top: 50%;
    right: 11px;
    width: 11px;
    height: 0;
    content: " ";
    border-top: 1px solid #888
}

.accordion dt.active::before {
    display: none
}

.accordion dd {
    border-top: 1px dotted #aaa;
    padding: 0;
    margin-bottom: 0;
    visibility: hidden;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all .1s ease-in-out
}

.accordion dd.active {
    padding: .75em 0 1.5em;
    visibility: visible;
    opacity: 1;
    max-height: 999999px
}

.btn-i-arrow {
    position: absolute;
    top: 50%;
    right: .5em;
    margin-top: -1em;
    width: 2em;
    height: 2em;
    border-radius: 1em;
    overflow: hidden;
    display: block;
    background-color: #3f3a39
}

.btn-i-arrow i {
    position: absolute;
    top: 50%;
    left: 0;
    width: 60%;
    height: 0;
    border-top: 1px solid #ccc;
    display: block;
    transform: translateY(-50%)
}

.btn-i-arrow i::before {
    position: absolute;
    top: 50%;
    right: 0;
    content: " ";
    width: .5em;
    height: .5em;
    border-top: 1px solid #ccc;
    border-right: 1px solid #ccc;
    transform: translateY(-50%) rotate(45deg)
}

.btn {
    position: relative;
    display: inline-block;
    padding: 0 3em 0 0;
    line-height: 1.4
}

.btn .text {
    position: relative;
    display: inline-block;
    font-size: 1.25em;
    font-size: clamp(.875em, 4.8vw, 1.35em);
    line-height: 1.4;
    font-weight: 700;
    padding-bottom: .15em;
    overflow: hidden
}

@media print,
screen and (min-width: 768px) {
    .btn .text {
        font-size: 1.5em
    }
}

@media print,
screen and (min-width: 960px) {
    .btn .text {
        font-size: 1.875em
    }
}

.btn .text .line {
    position: absolute;
    bottom: 0;
    right: 0;
    display: block;
    content: " ";
    width: 100%;
    height: 0;
    border-bottom: 1px solid rgba(138, 11, 94, .5)
}

.btn .text .en {
    font-size: .6em;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    color: #8a0b5e;
    font-weight: 500
}

.btn .btn-i-arrow {
    top: inherit;
    bottom: .5em;
    right: 0;
    margin-top: 0
}

.btn:hover .text {
    color: #8a0b5e
}

.btn:hover .text .line {
    animation: btnHoverA 1s ease-in-out forwards
}

.btn:hover .btn-i-arrow {
    animation: btnArrowHoverA .5s ease-in-out forwards
}

.btn:hover .btn-i-arrow i {
    animation: btnArrowHoverB 1s ease-in-out forwards
}

@keyframes btnHoverA {
    0% {
        width: 100%
    }

    20% {
        right: 0;
        width: 0
    }

    21% {
        right: 100%;
        width: 0
    }

    22% {
        right: 100%;
        width: 100%;
        border-bottom-color: rgba(138, 11, 94, .5)
    }

    100% {
        right: 0;
        border-bottom-color: #8a0b5e
    }
}

@keyframes btnArrowHoverA {
    0% {
        background-color: #3f3a39
    }

    100% {
        background-color: #8a0b5e
    }
}

@keyframes btnArrowHoverB {
    0% {
        margin-left: 0
    }

    20% {
        margin-left: 0
    }

    40% {
        margin-left: 3em
    }

    41% {
        margin-left: -3em
    }

    100% {
        margin-left: 0
    }
}

.btn-box-large {
    position: relative;
    display: block;
    border: 1px solid #3f3a39;
    padding: .5em 4em .5em 1.5em;
    background-color: #fff
}

.btn-box-large .ja {
    position: relative;
    display: block;
    overflow: hidden;
    font-size: 1.25em;
    font-weight: 700;
    line-height: 1.2;
    font-size: clamp(.875em, 4.8vw, 1.35em);
    padding: 0 1.5em .25em;
    margin-bottom: .35em
}

@media print,
screen and (min-width: 768px) {
    .btn-box-large .ja {
        font-size: 1.35em
    }
}

@media print,
screen and (min-width: 960px) {
    .btn-box-large .ja {
        font-size: 1.5em
    }
}

.btn-box-large .ja .large {
    font-size: 1.5em
}

.btn-box-large .ja .line {
    position: absolute;
    bottom: 0;
    right: 0;
    display: block;
    content: " ";
    width: 100%;
    height: 0;
    border-bottom: 1px solid rgba(138, 11, 94, .5)
}

.btn-box-large .en {
    display: block;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    color: #8a0b5e;
    font-weight: 500
}

.btn-box-large:hover .ja {
    color: #8a0b5e
}

.btn-box-large:hover .ja .line {
    animation: btnHoverA 1s ease-in-out forwards
}

.btn-box-large:hover .btn-i-arrow {
    animation: btnArrowHoverA .5s ease-in-out forwards
}

.btn-box-large:hover .btn-i-arrow i {
    animation: btnArrowHoverB 1s ease-in-out forwards
}

.wrap-btns,
.wrap-btns--half-smp {
    position: relative;
    margin-left: -0.25em;
    margin-right: -0.25em;
    z-index: 3
}

.wrap-btns li,
.wrap-btns--half-smp li {
    padding: .25em
}

.wrap-btns--half-smp li {
    width: 50%
}

@media print,
screen and (min-width: 800px) {
    .wrap-btns--half-smp li {
        width: auto
    }
}

.link-txt {
    display: inline-block;
    border-bottom: 1px dotted
}

.link-txt:hover.with-arrow i {
    right: .25em
}

.link-txt.with-arrow {
    position: relative;
    padding-right: 2em;
    padding: .5em 2em .5em 0
}

.link-txt.with-arrow i {
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: -12px;
    transition: all .1s ease-in-out
}

.link-txt.with-arrow i svg {
    width: 24px;
    height: 24px
}

.dropdown-menu {
    position: relative
}

.dropdown-menu dt {
    position: relative;
    margin: 0;
    display: block
}

.dropdown-menu dt.active i::before,
.dropdown-menu dt.active i::after {
    margin-top: 0;
    margin-bottom: 0
}

@media print,
screen and (max-width: 959px) {
    .dropdown-menu dt.active+dd {
        visibility: visible;
        opacity: 1;
        max-height: 9999em
    }
}

.dropdown-menu dd {
    position: absolute;
    top: 100%;
    left: 0;
    margin: 0;
    overflow: hidden;
    visibility: hidden;
    max-height: 0;
    opacity: 0;
    display: block;
    transition: all .15s ease-in-out
}

.form-group {
    position: relative;
    margin-bottom: 3rem;
    display: block
}

.form-group--inner {
    display: block;
    width: 100%;
    padding: 1em 0;
    margin: 0;
    border-top: 1px solid #ddd
}

@media print,
screen and (min-width: 800px) {
    .form-group--inner {
        display: table;
        padding: 1.5em 0 0;
        margin-bottom: 1em
    }
}

.form-group--inner .col {
    display: block;
    width: auto
}

@media print,
screen and (min-width: 800px) {
    .form-group--inner .col {
        display: table-cell;
        width: 12em;
        vertical-align: text-top
    }
}

.form-group--inner .col.ver-top {
    vertical-align: top
}

.form-group--inner .col+.col {
    margin-top: .5em
}

@media print,
screen and (min-width: 800px) {
    .form-group--inner .col+.col {
        padding-top: 0;
        width: calc(100% - 12em)
    }
}

.form-group--inner .col span.error {
    display: block;
    color: #f7b227;
    margin-top: .5em
}

.form-group--inner .col .inner-col {
    display: block
}

.form-group--inner .col .inner-col:not(:last-child) {
    margin-bottom: .75em
}

.form-group--inner .col .inner-col--title {
    display: block;
    font-size: .875em;
    margin-bottom: .5em
}

.form-group--inner .mst,
.form-group--inner .opt {
    position: relative;
    display: inline-block;
    font-size: .7em;
    vertical-align: middle;
    font-style: normal;
    color: #f7b227;
    margin-left: .5em
}

.form-group--inner .opt {
    color: #385567
}

@media print,
screen and (min-width: 800px) {
    .form-group--inner.no-flt {
        margin-bottom: 0
    }
}

.form-group--inner.no-flt dt {
    font-size: 1.07em;
    font-weight: 700;
    color: #8a0b5e
}

.form-group--inner.no-flt dt .fntS {
    font-weight: 400;
    font-size: .8125em;
    color: #444
}

@media print,
screen and (min-width: 800px) {
    .form-group--inner.no-flt .col {
        display: block;
        width: auto;
        margin-bottom: 1em
    }
}

@media print,
screen and (min-width: 800px) {
    .form-group--inner.no-flt .col+.col {
        width: auto
    }
}

.form-group--bottom {
    border-top: 1px solid #ccc;
    padding-top: 1.5em
}

input,
textarea,
select {
    padding: .35em 1em
}

textarea {
    min-height: 10em
}

input,
textarea {
    width: 100%;
    background-color: #f8f8f8;
    border: 1px solid #e0e0e0
}

input.ipt-S {
    width: 10em
}

input.ipt-SS {
    width: 5em
}

input:focus,
textarea:focus,
select:focus {
    border-color: #999;
    outline: 0
}

:disabled {
    opacity: .5
}

[type=radio],
[type=radio]+label,
[type=checkbox],
[type=checkbox]+label {
    width: auto;
    display: inline-block
}

[type=radio],
[type=checkbox] {
    margin-right: .5em
}

.wrap-select {
    position: relative;
    display: inline-block;
    width: auto
}

select,
.list-group-team select {
    padding: .5em 1em;
    background-color: #f0f0f0;
    background: linear-gradient(0deg, #F2F2F2, #FFF);
    padding-right: 32px;
    border: 1px solid #ddd;
    cursor: pointer;
    max-width: 100%;
    text-overflow: ellipsis;
    white-space: normal
}

.form-group select {
    max-width: calc(100vw - 4rem - 32px)
}

@media print,
screen and (min-width: 360px) {
    .form-group select {
        max-width: calc(100vw - 4rem - 48px)
    }
}

@media print,
screen and (min-width: 576px) {
    .form-group select {
        max-width: calc(100vw - 4rem - 96px)
    }
}

@media print,
screen and (min-width: 960px) {
    .form-group select {
        max-width: 100%
    }
}

.list-group-team select {
    border: 1px solid #bbb
}

.btn-label input[type=radio],
.btn-label input[type=checkbox],
.txt-label input[type=radio],
.txt-label input[type=checkbox] {
    display: none
}

.btn-label label {
    position: relative;
    padding: .5em 1em;
    border: 1px solid #aaa;
    background-color: #f5f5f5;
    cursor: pointer;
    transition: all .2s ease-in-out;
    margin-left: -1px;
    margin-top: -1px
}

.btn-label label:hover {
    background-color: #ccc;
    color: #111
}

.btn-label.sort-item label {
    padding: .5em .5em;
    background-color: #fff;
    border-color: #ddd
}

@media print,
screen and (min-width: 360px) {
    .btn-label.sort-item label {
        padding: .5em .75em
    }
}

.btn-label.separated label {
    padding: 1em .5em;
    background-color: #fff;
    border-radius: 0
}

.btn-label.separated label.btn-img label {
    padding: 0;
    background-color: #000;
    border-radius: 0;
    border: none
}

.btn-label.full label {
    width: 100%
}

.btn-label:not(:first-child) label {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0
}

.btn-label:not(:last-child) label {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0
}

.btn-label.separated :not(:last-child) label {
    border-right: 1px solid #aaa
}

.btn-label.separated.btn-img :not(:last-child) label {
    border: none
}

.txt-label label {
    position: relative;
    padding: .25em 0;
    padding-left: 1em;
    cursor: pointer;
    transition: all .2s ease-in-out
}

.txt-label label::before {
    position: relative;
    content: "・";
    margin-left: -1em;
    margin-right: .5em;
    display: inline-block
}

.txt-label label:hover {
    color: #111
}

.btn-label input[type=radio]:checked+label,
.btn-label input[type=checkbox]:checked+label {
    background-color: #555;
    color: #fff
}

.btn-label.btn-img input[type=radio]:checked+label,
.btn-label.btn-img input[type=checkbox]:checked+label {
    background-color: #000;
    border: 3px solid #e7cd00
}

.btn-label.btn-img label img {
    transition: all .2s ease-in-out
}

.btn-label.btn-img input[type=radio]:checked+label img,
.btn-label.btn-img input[type=checkbox]:checked+label img {
    opacity: .5
}

.txt-label input[type=checkbox]:checked+label {
    font-weight: bold
}

.txt-label input[type=checkbox]:checked+label::before {
    content: "-"
}

.form-help {
    display: inline-block;
    font-size: .83em;
    line-height: 1.4;
    margin-top: .5em
}

.error label,
.error .label {
    color: #f7b227
}

.error input,
.error select,
.error .btn-label label {
    border-color: #f7b227
}

.error-msg {
    display: block;
    color: #f7b227;
    margin-top: .5em
}

.form-btns {
    position: relative;
    border-top: 1px solid #ccc;
    padding-top: 1.5rem;
    margin-top: 2rem
}

@media print,
screen and (min-width: 960px) {
    .form-btns {
        margin-top: 3rem;
        padding-top: 2rem
    }
}

.form-btns ul {
    list-style: none;
    letter-spacing: -0.4em;
    display: block;
    width: 100%;
    margin: -0.25rem
}

.form-btns ul li {
    letter-spacing: 0;
    display: inline-block;
    margin: 0;
    padding: .25rem
}

.form-group--buttons {
    position: relative;
    border-top: 1px solid #ccc;
    padding-top: 1.5rem
}

.form-group--buttons ul {
    list-style: none;
    letter-spacing: -0.4em;
    display: block;
    width: 100%;
    margin: -0.25rem
}

.form-group--buttons ul li {
    letter-spacing: 0;
    display: inline-block;
    margin: 0;
    padding: .25rem
}

.flex-container--no-space,
.flex-container {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: stretch
}

.flex-container {
    margin: -0.75rem
}

@media print,
screen and (min-width: 800px) {
    .flex-container {
        margin: -1rem
    }
}

.flex-container--no-space {
    margin: 0
}

.flex-container.sp-btm {
    margin-bottom: 1.5rem
}

@media print,
screen and (min-width: 800px) {
    .flex-container.sp-btm {
        margin-bottom: 2rem
    }
}

.flex-container.rev {
    flex-direction: row-reverse
}

.flex-container>*[class^=col-] {
    position: relative;
    min-width: 2rem;
    padding: .75rem;
    word-wrap: break-word
}

@media print,
screen and (min-width: 800px) {
    .flex-container>*[class^=col-] {
        padding: 1rem
    }
}

.flex-container--no-space>*[class^=col-] {
    padding: 0
}

.col-sm-1 {
    width: 16.6666666667%
}

.col-sm-2 {
    width: 33.3333333333%
}

.col-sm-3 {
    width: 50%
}

.col-sm-4 {
    width: 66.6666666667%
}

.col-sm-5 {
    width: 83.3333333333%
}

.col-sm-6 {
    width: 100%
}

@media print,
screen and (min-width: 768px) {
    .col-xsm-1 {
        width: 12.5%
    }

    .col-xsm-2 {
        width: 25%
    }

    .col-xsm-3 {
        width: 37.5%
    }

    .col-xsm-4 {
        width: 50%
    }

    .col-xsm-5 {
        width: 62.5%
    }

    .col-xsm-6 {
        width: 75%
    }

    .col-xsm-7 {
        width: 87.5%
    }

    .col-xsm-8 {
        width: 100%
    }
}

@media print,
screen and (min-width: 800px) {
    .col-md-1 {
        width: 12.5%
    }

    .col-md-2 {
        width: 25%
    }

    .col-md-3 {
        width: 37.5%
    }

    .col-md-4 {
        width: 50%
    }

    .col-md-5 {
        width: 62.5%
    }

    .col-md-6 {
        width: 75%
    }

    .col-md-7 {
        width: 87.5%
    }

    .col-md-8 {
        width: 100%
    }
}

@media print,
screen and (min-width: 960px) {
    .col-lg-1 {
        width: 8.3333333333%
    }

    .col-lg-2 {
        width: 16.6666666667%
    }

    .col-lg-3 {
        width: 25%
    }

    .col-lg-4 {
        width: 33.3333333333%
    }

    .col-lg-5 {
        width: 41.6666666667%
    }

    .col-lg-6 {
        width: 50%
    }

    .col-lg-7 {
        width: 58.3333333333%
    }

    .col-lg-8 {
        width: 66.6666666667%
    }

    .col-lg-9 {
        width: 75%
    }

    .col-lg-10 {
        width: 83.3333333333%
    }

    .col-lg-11 {
        width: 91.6666666667%
    }

    .col-lg-12 {
        width: 100%
    }
}

[class*=icon-] {
    font-size: 1px !important;
    line-height: 1
}

svg.icon-fill,
svg.icon-stroke {
    width: 100%;
    height: 100%
}

svg.icon-fill {
    fill: #000
}

svg.icon-stroke {
    fill: none;
    stroke: #000;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-miterlimit: 10
}

svg.icon-stroke.thin {
    stroke-width: 1
}

.wrap-inline-scrl {
    padding: 4px;
    border: 1px solid #ddd;
    background-color: #f5f5f5;
    font-size: .875em;
    margin-bottom: 2rem
}

@media print,
screen and (min-width: 800px) {
    .wrap-inline-scrl {
        padding: 8px;
        margin-bottom: 3rem
    }
}

.inline-scrl {
    position: relative;
    padding: 2rem;
    height: 300px;
    overflow-y: scroll;
    border: 1px solid #ddd;
    background-color: #fafafa
}

@media print,
screen and (min-width: 800px) {
    .inline-scrl {
        padding: 3rem;
        height: 300px
    }
}

#modalMask {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1001;
    display: none;
    background-color: rgba(0, 0, 0, .95)
}

.modal {
    position: fixed;
    top: 50%;
    left: 50%;
    box-shadow: 0 0 8px rgba(0, 0, 0, .8);
    z-index: 1002;
    display: block
}

.modal .modalBtns {
    z-index: 1000;
    position: absolute;
    width: 40px;
    height: 40px;
    text-align: left;
    top: -40px;
    right: -40px
}

.modal .modalBtns a.modalBtn-close {
    position: relative;
    float: right;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    display: block;
    background-color: #444
}

.modal .modalBtns a.modalBtn-close span {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -1px;
    transform: rotate(45deg);
    transition: all .2s ease-in-out
}

.modal .modalBtns a.modalBtn-close span::before,
.modal .modalBtns a.modalBtn-close span::after {
    position: absolute;
    top: -10px;
    left: -10px;
    content: "";
    transition: all .1s ease-in-out
}

.modal .modalBtns a.modalBtn-close span::before {
    margin-top: 10px;
    width: 21px;
    height: 0;
    border-top: 1px solid #fff
}

.modal .modalBtns a.modalBtn-close span::after {
    margin-left: 10px;
    height: 21px;
    width: 0;
    border-left: 1px solid #fff
}

.modal .modalBtns a.modalBtn-close:hover span {
    transform: scale(1.25) rotate(45deg)
}

#MdTrailer {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.25%;
    background-color: #000
}

#MdTrailer.md-ver {
    padding-top: 178%
}

#MdTrailer.md-ver #vd-mpg {
    width: auto;
    height: 100%
}

#MdTrailer iframe,
#MdTrailer #vd-mpg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.list-paging {
    font-size: .875em;
    line-height: 1;
    font-family: "robotolight", sans-serif;
    letter-spacing: -0.4em
}

.list-paging a {
    position: relative;
    text-decoration: none
}

.list-paging a:hover {
    border-color: #aaa;
    background-color: #eee
}

.list-paging a:active {
    border-color: #111;
    background-color: #444;
    color: #fff
}

.list-paging li {
    letter-spacing: normal;
    display: inline-block;
    margin: 0 2px
}

.list-paging li a,
.list-paging li span {
    text-align: center;
    display: block;
    padding: .35em;
    min-width: 2.5em;
    border: 1px solid #ddd;
    border-radius: 3px
}

.list-paging li .current {
    background-color: #222;
    color: #fff
}

.list-paging li.prev a {
    padding-left: 24px
}

.list-paging li.prev a::after {
    left: 4px;
    content: ""
}

.list-paging li.prev a:hover::after {
    color: #555
}

.list-paging li.prev a:active::after {
    color: #fff
}

.list-paging li.next a {
    padding-right: 24px
}

.list-paging li.next a::after {
    right: 4px;
    content: ""
}

.list-paging li.next a:hover::after {
    color: #555
}

.list-paging li.next a:active::after {
    color: #fff
}

.list-paging li.prev a::after,
.list-paging li.next a::after {
    font-family: "icons";
    position: absolute;
    top: 50%;
    margin-top: -8px;
    width: 16px;
    height: 16px;
    font-size: 16px;
    line-height: 1;
    color: #888;
    pointer-events: none
}

.isInView {
    transition: all .5s ease-in-out
}

.isInView.fast {
    transition: all .3s ease-in-out
}

.isInView.faster {
    transition: all .2s ease-in-out
}

.isInView.fastest {
    transition: all .1s ease-in-out
}

.isInView.slow {
    transition: all 1s ease-in-out
}

.isInView.slower {
    transition: all 2s ease-in-out
}

.isInView.slowest {
    transition: all 3s ease-in-out
}

.isInView.fadeIn {
    opacity: 0 !important
}

.isInView.fadeIn.scrlin {
    opacity: 1 !important
}

.isInView.slideIn {
    top: 2rem
}

.isInView.slideIn.scrlin {
    top: 0
}

.isInView.slideIn.hori {
    left: 2rem;
    top: 0
}

.isInView.slideIn.hori.scrlin {
    left: 0
}

.isInView.acco {
    visibility: hidden;
    max-height: 0;
    overflow: hidden;
    opacity: 0
}

.isInView.acco.scrlin {
    visibility: visible;
    max-height: none;
    opacity: 1
}

.isInView.shutter.open {
    overflow: hidden
}

.isInView.shutter.open::after {
    position: absolute;
    top: 0;
    right: 0;
    content: " ";
    width: 100%;
    height: 100%;
    background-color: #fff;
    z-index: 1;
    transition: all .8s ease-in-out
}

.isInView.shutter.open.shutter-rev::after {
    left: 0
}

.isInView.shutter.open.scrlin::after {
    width: 0
}

.isInView.delay1 {
    transition-delay: .2s
}

.isInView.delay2 {
    transition-delay: .4s
}

.isInView.delay3 {
    transition-delay: .6s
}

.isInView.delay4 {
    transition-delay: .8s
}

.isInView.delay5 {
    transition-delay: 1s
}

.isInView.delay6 {
    transition-delay: 1.2s
}

.isInView.delay7 {
    transition-delay: 1.4s
}

.isInView.delay8 {
    transition-delay: 1.6s
}

.isInView.delay9 {
    transition-delay: 1.8s
}

.isInView.delay10 {
    transition-delay: 2s
}

@keyframes inViewShutterOpen {
    0% {
        left: 0
    }

    99% {
        left: 100%
    }

    100% {
        left: 100%;
        display: none
    }
}

.preloader {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999
}

.preloader--bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    display: block;
    background: linear-gradient(to bottom, #0c1133 0%, #221234 60%, #221234 60%)
}

.preloader .btn-skip-home {
    position: fixed;
    bottom: 1em;
    right: 1em;
    z-index: 10;
    display: none
}

.preloader .btn-skip-home.show {
    display: block
}

.preloader .btn-skip-home span {
    position: relative;
    display: block;
    padding: .25em 0;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    letter-spacing: .2em;
    font-size: .8125em;
    overflow: hidden;
    cursor: pointer
}

.preloader .btn-skip-home span::before {
    position: absolute;
    bottom: 1px;
    left: 0;
    content: " ";
    width: 0;
    height: 0;
    border-bottom: 1px solid #fff;
    transition: all .15s ease-in-out
}

.preloader .btn-skip-home span:hover::before {
    width: 100%
}

.preloader .home-first-phrase {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
    color: #fff;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-weight: 500;
    font-feature-settings: "palt";
    letter-spacing: .15em;
    transition: all 2s ease-in-out;
    opacity: 1;
    filter: blur(0)
}

.preloader .home-first-phrase .line {
    position: relative;
    display: block;
    font-size: 1.375em;
    font-size: clamp(.875em, 1.65vw, 2em);
    transition: all 1.25s ease-in-out;
    opacity: 0;
    filter: blur(0.8em)
}

.preloader .home-first-phrase .line.l2 {
    margin-top: .25em;
    transition-delay: 1.5s
}

.preloader .home-first-phrase.show .line {
    opacity: 1;
    filter: blur(0)
}

.preloader .home-first-phrase.show.hide {
    opacity: 0;
    filter: blur(0.8em)
}

.preloader .loading {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 3em;
    height: 3em;
    transform: translate(-50%, -50%)
}

.preloader .loading ul {
    position: relative;
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
    height: 100%;
    display: block
}

.preloader .loading ul li {
    position: absolute;
    margin: 0;
    padding: 0;
    width: 18.75%;
    padding-top: 18.75%;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .5);
    opacity: 0;
    animation: laodingBlink 2s ease-in-out infinite
}

.preloader .loading ul li:nth-child(1) {
    top: 0;
    left: 0
}

.preloader .loading ul li:nth-child(2) {
    top: 0;
    left: 50%;
    margin-left: -9.375%;
    animation-delay: .6s
}

.preloader .loading ul li:nth-child(3) {
    top: 0;
    right: 0;
    animation-delay: 1.2s
}

.preloader .loading ul li:nth-child(4) {
    top: 50%;
    left: 0;
    margin-top: -9.375%;
    animation-delay: .2s
}

.preloader .loading ul li:nth-child(5) {
    bottom: 0;
    left: 50%;
    margin-left: -9.375%;
    animation-delay: 1s
}

.preloader .loading ul li:nth-child(6) {
    top: 50%;
    right: 0;
    margin-top: -9.375%;
    animation-delay: 1.4s
}

.preloader .second-block {
    position: relative;
    margin-bottom: 1.5em
}

.preloader .second-block .line {
    display: inline-block;
    font-size: 2em;
    line-height: 1.4;
    font-size: clamp(1.35em, 2.5vw, 3em);
    padding: .25em
}

.preloader .second-block .line.l1 {
    background-color: #c6c6c6
}

.preloader .second-block .line.l1 .clr {
    color: #8a0b5e
}

.preloader .second-block .line.l2 {
    background-color: #8a0b5e;
    color: #fff;
    margin-left: 3em
}

@keyframes laodingBlink {
    0% {
        opacity: 0
    }

    40% {
        opacity: 1
    }

    80% {
        opacity: 0
    }

    100% {
        opacity: 0
    }
}

.tab-menu {
    position: relative;
    display: table;
    border-collapse: collapse;
    margin-bottom: 0 !important;
    z-index: 1
}

@media print,
screen and (min-width: 800px) {
    .tab-menu {
        border-collapse: separate;
        border-spacing: 8px;
        margin: 0 -8px
    }
}

.tab-menu li {
    display: table-cell;
    vertical-align: middle;
    cursor: pointer;
    border: 1px solid #ddd;
    padding: 1rem 1.5rem;
    line-height: 1.5;
    transition: all .15s ease-in-out
}

.tab-menu li:hover {
    background-color: #5b073e;
    color: #eee;
    border-color: #5b073e
}

.tab-menu li:active {
    background-color: #b90f7e;
    color: #555;
    border-color: #b90f7e
}

.tab-menu li.active {
    background-color: #5b073e;
    color: #eee;
    border-color: #5b073e
}

.tab-content {
    position: relative;
    display: none;
    opacity: 0;
    transition: all .3s ease-in-out
}

.tab-content.active {
    display: block;
    opacity: 1
}

.wrap-tab-content {
    position: relative;
    width: 100%;
    margin-top: -1px;
    border-top: 1px solid #ddd;
    padding-top: 2rem;
    z-index: 0
}

@media print,
screen and (min-width: 800px) {
    .wrap-tab-content {
        margin-top: -9px
    }
}

.wrap-tbls .dsp-tbls-norm .dsp-tbl {
    display: block;
    width: 100%;
    border-top: 1px dotted #aaa
}

@media print,
screen and (min-width: 800px) {
    .wrap-tbls .dsp-tbls-norm .dsp-tbl {
        display: table
    }
}

.wrap-tbls .dsp-tbls-norm .dsp-tbl>.col {
    display: block
}

@media print,
screen and (min-width: 800px) {
    .wrap-tbls .dsp-tbls-norm .dsp-tbl>.col {
        display: table-cell;
        padding: 1em 0
    }
}

.wrap-tbls .dsp-tbls-norm .dsp-tbl>dt.col {
    color: #005748;
    padding: .75em 0 .5em
}

@media print,
screen and (min-width: 800px) {
    .wrap-tbls .dsp-tbls-norm .dsp-tbl>dt.col {
        width: 30%;
        padding-right: 2em;
        color: #005748
    }
}

.wrap-tbls .dsp-tbls-norm .dsp-tbl>dd.col {
    padding-bottom: .75em
}

@media print,
screen and (min-width: 800px) {
    .wrap-tbls .dsp-tbls-norm .dsp-tbl>dd.col {
        width: 70%
    }
}

.wrap-tb {
    position: relative;
    width: 100%
}

.wrap-tb.scrl-x {
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch
}

.wrap-tb.scrl-x>.tb-norm.fullW {
    min-width: 720px
}

@media print,
screen and (min-width: 800px) {
    .wrap-tb.scrl-x {
        overflow-x: visible
    }

    .wrap-tb.scrl-x>.tb-norm.fullW {
        min-width: inherit
    }
}

.trigger {
    position: fixed;
    bottom: 0;
    right: 0;
    width: 56px;
    height: 56px;
    background-color: #8a0b5e;
    z-index: 1000;
    overflow: hidden;
    cursor: pointer;
    -webkit-font-smoothing: antialiased
}

@media print,
screen and (min-width: 576px) {
    .trigger {
        width: 64px;
        height: 64px
    }
}

.trigger .ti {
    position: absolute;
    bottom: 12%;
    left: 0;
    display: block;
    width: 100%;
    height: 2em;
    text-align: center;
    font-size: 8px;
    line-height: 2em;
    letter-spacing: .1em;
    color: #fff;
    overflow: hidden;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif
}

.trigger .ti span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2em;
    line-height: 2em;
    display: block;
    transition: all .25s ease-in-out
}

.trigger .ti span:nth-child(1) {
    top: 0
}

.trigger .ti span:nth-child(2) {
    top: 2em
}

@media print,
screen and (min-width: 960px) {
    .trigger .ti {
        font-size: 9px
    }
}

.trigger .bars {
    position: absolute;
    display: block;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    margin-top: -4px;
    transition: all .5s ease-in-out
}

.trigger .bars i {
    position: absolute;
    display: block;
    transition: all .15s ease-in-out
}

.trigger .bars i.up {
    top: -4px;
    left: -12px;
    width: 24px;
    height: 0;
    border-top: 1px solid #fff
}

.trigger .bars i.bm {
    top: 4px;
    left: -12px;
    width: 24px;
    height: 0;
    border-top: 1px solid #fff
}

.trigger:not(.active):hover .bars .up {
    width: 32px;
    left: -16px;
    top: -2px
}

.trigger:not(.active):hover .bars .bm {
    width: 32px;
    left: -16px;
    top: 2px
}

.trigger.active .ti span:nth-child(1) {
    top: 2em
}

.trigger.active .ti span:nth-child(2) {
    top: 0
}

.trigger.active .bars {
    transform: rotate(360deg)
}

.trigger.active .bars .up {
    top: 0;
    left: -12px;
    transform: rotate(45deg)
}

.trigger.active .bars .bm {
    top: 0;
    left: -12px;
    transform: rotate(-45deg)
}

.global-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: .5em 0;
    background-color: rgba(255, 255, 255, 0);
    z-index: 10;
    transition: all .15s ease-in-out
}

@media print,
screen and (min-width: 768px) {
    .global-header {
        position: fixed
    }
}

.scrld .global-header {
    background-color: #fff;
    box-shadow: 0 0 1em rgba(0, 0, 0, .15)
}

.global-header--inner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    justify-content: space-between
}

.global-header--inner .h1 {
    font-size: 1em;
    line-height: 1;
    display: block;
    margin: 0;
    padding-left: .5em;
    min-width: 180px;
    width: 26vw;
    max-width: 280px
}

@media print,
screen and (min-width: 768px) {
    .global-header--inner .h1 {
        padding-left: 1em;
        width: 22vw;
        max-width: 280px
    }
}

@media print,
screen and (min-width: 1056px) {
    .global-header--inner .h1 {
        width: 24vw
    }
}

.global-header--inner .h1 a {
    display: block;
    padding: 0
}

@media print,
screen and (min-width: 768px) {
    .global-header--inner .h1 a {
        padding: .5em 0
    }
}

.global-header--inner .h1 img {
    width: 100%;
    height: auto
}

@media print,
screen and (max-width: 767px) {
    .global-header--inner .header-right {
        display: none
    }
}

.global-header--inner .header-right .global-header--contact {
    position: relative;
    width: 48vw;
    max-width: 580px;
    margin-right: 0;
    margin-left: auto
}

.global-header--inner .header-right .global-header--contact a {
    display: block
}

.global-header--inner .header-right .global-header--contact img {
    width: 100%;
    height: auto
}

.footer-address {
    position: relative;
    text-align: center;
    font-style: normal;
    padding: 2rem 1rem;
    z-index: 3
}

@media print,
screen and (min-width: 800px) {
    .footer-address {
        padding: 2rem 2rem 4rem
    }
}

.footer-address dl {
    position: relative;
    margin-bottom: 1.5em
}

@media print,
screen and (min-width: 800px) {
    .footer-address dl {
        margin-bottom: 2.5em
    }
}

.footer-address dl dt {
    display: block;
    width: 120px;
    margin: 0 auto 1.5em
}

@media print,
screen and (min-width: 768px) {
    .footer-address dl dt {
        width: 144px
    }
}

@media print,
screen and (min-width: 960px) {
    .footer-address dl dt {
        width: 180px
    }
}

.footer-address dl dt img {
    width: 100%;
    height: auto
}

.footer-address dl dd {
    font-size: .92em
}

.global-footer {
    position: relative;
    padding: 2rem 2rem 80px;
    background-color: #8a0b5e;
    color: #fff;
    z-index: 4
}

@media print,
screen and (min-width: 768px) {
    .global-footer {
        padding-bottom: 2rem
    }
}

.global-footer a {
    color: #fff
}

.global-footer .footer-navigation {
    position: relative;
    margin-bottom: 1em
}

@media print,
screen and (max-width: 1055px) {
    .global-footer .footer-navigation {
        max-width: 680px;
        margin-left: auto;
        margin-right: auto
    }
}

@media print,
screen and (max-width: 575px) {
    .global-footer .footer-navigation {
        max-width: 400px
    }
}

.global-footer .footer-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: .92em;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: flex-start
}

@media print,
screen and (min-width: 768px) {
    .global-footer .footer-navigation ul {
        font-size: .875em;
        display: flex;
        flex-wrap: wrap;
        flex-grow: 1;
        align-items: center;
        justify-content: center
    }
}

@media print,
screen and (min-width: 1056px) {
    .global-footer .footer-navigation ul {
        font-size: .875em
    }
}

.global-footer .footer-navigation ul+ul {
    margin-top: .5em
}

.global-footer .footer-navigation ul li {
    margin: 0;
    padding: 1em 0;
    text-align: center;
    width: 50%
}

@media print,
screen and (min-width: 576px) {
    .global-footer .footer-navigation ul li {
        width: 33.33333333%
    }
}

@media print,
screen and (min-width: 768px) {
    .global-footer .footer-navigation ul li {
        width: 20%
    }
}

@media print,
screen and (min-width: 1056px) {
    .global-footer .footer-navigation ul li {
        width: auto
    }
}

@media print,
screen and (min-width: 1056px) {
    .global-footer .footer-navigation ul li:not(:first-child)::before {
        content: "|";
        margin-left: .5em;
        padding-right: .5em
    }
}

@media print,
screen and (max-width: 575px) {
    .global-footer .footer-navigation ul li:first-child {
        width: 100%
    }
}

.global-footer .copyright {
    font-size: .875em;
    line-height: 1.5
}

.tel-and-trigger {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    padding-right: 56px;
    height: 56px;
    background-color: #fff;
    z-index: 12;
    box-shadow: 0 0 1em rgba(0, 0, 0, .15)
}

@media print,
screen and (min-width: 576px) {
    .tel-and-trigger {
        padding-right: 64px;
        height: 64px
    }
}

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

.tel-and-trigger .tel-smp {
    position: relative;
    width: 100%;
    text-align: center;
    display: block
}

.tel-and-trigger .tel-smp a {
    display: inline-block;
    margin: 0 auto;
    padding: .25em;
    height: 56px
}

@media print,
screen and (min-width: 576px) {
    .tel-and-trigger .tel-smp a {
        height: 64px;
        padding: .5em
    }
}

.tel-and-trigger .tel-smp a img {
    max-width: none;
    width: auto;
    height: 100%
}

.global-navigation {
    position: relative
}

.global-navigation ul {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: stretch;
    margin: .5em 0 0;
    padding: 0;
    list-style: none;
    font-size: .92em;
    font-weight: 700;
    font-feature-settings: "palt";
    font-size: clamp(.8125em, 1.45vw, .92em);
    letter-spacing: .075em
}

.global-navigation ul li {
    margin: 0 .35em
}

@media print,
screen and (min-width: 1056px) {
    .global-navigation ul li {
        margin: 0 .5em
    }
}

@media print,
screen and (min-width: 1500px) {
    .global-navigation ul li {
        margin: 0 1em
    }
}

.global-navigation ul li a {
    position: relative;
    display: block;
    padding: .5em 0;
    z-index: 1
}

.global-navigation ul li a::before {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -1em;
    margin-left: -1em;
    content: " ";
    width: 2em;
    height: 2em;
    border-radius: 50%;
    z-index: -1;
    background-color: rgba(138, 11, 94, .2);
    border: 1px solid rgba(138, 11, 94, .1);
    transform: scale(0);
    transition: all .15s cubic-bezier(0.455, 0.03, 0.515, 0.955)
}

.global-navigation ul li a:hover::before {
    transform: scale(1.2)
}

@media print,
screen and (max-width: 1055px) {
    .global-navigation ul li:first-child {
        display: none
    }
}

.global-navigation ul li.current a::before {
    transform: scale(1.2)
}

.global-navigation-flt {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0;
    background: #8a0b5e;
    z-index: 11;
    overflow-y: scroll;
    text-align: left;
    opacity: 0;
    visibility: hidden;
    transition: all .15s cubic-bezier(0.455, 0.03, 0.515, 0.955)
}

@media print,
screen and (min-width: 768px) {
    .global-navigation-flt {
        display: none
    }
}

.global-navigation-flt ul {
    list-style: none;
    margin: 0;
    padding: 2rem;
    padding-bottom: 80px
}

.global-navigation-flt ul li {
    margin-bottom: .5em;
    font-size: 6vw;
    opacity: 0;
    filter: blur(0.5em);
    transition: all .8s cubic-bezier(0.455, 0.03, 0.515, 0.955)
}

.global-navigation-flt ul li a {
    position: relative;
    display: inline-block;
    padding: .25em 0;
    color: #fff;
    font-weight: 700
}

.global-navigation-flt ul li a::before {
    position: absolute;
    top: 50%;
    left: -0.5em;
    margin-top: -1em;
    content: " ";
    width: 2em;
    height: 2em;
    border-radius: 50%;
    z-index: -1;
    background-color: rgba(255, 255, 255, .2);
    border: 1px solid rgba(255, 255, 255, .1);
    transform: scale(0);
    transition: all .15s cubic-bezier(0.455, 0.03, 0.515, 0.955)
}

.global-navigation-flt ul li a:hover::before {
    transform: scale(1)
}

.global-navigation-flt ul li:nth-child(1) {
    transition-delay: .085s
}

.global-navigation-flt ul li:nth-child(2) {
    transition-delay: .17s
}

.global-navigation-flt ul li:nth-child(3) {
    transition-delay: .255s
}

.global-navigation-flt ul li:nth-child(4) {
    transition-delay: .34s
}

.global-navigation-flt ul li:nth-child(5) {
    transition-delay: .425s
}

.global-navigation-flt ul li:nth-child(6) {
    transition-delay: .51s
}

.global-navigation-flt ul li:nth-child(7) {
    transition-delay: .595s
}

.global-navigation-flt ul li:nth-child(8) {
    transition-delay: .68s
}

.global-navigation-flt ul li:nth-child(9) {
    transition-delay: .765s
}

.global-navigation-flt ul li:nth-child(10) {
    transition-delay: .85s
}

.global-navigation-flt.active {
    opacity: 1;
    visibility: visible;
    overflow-y: scroll;
    overflow-x: hidden;
    height: 100%
}

.global-navigation-flt.active li {
    opacity: 1;
    filter: blur(0)
}

.page-container {
    position: relative
}

.content {
    position: relative;
    z-index: 1
}

.sp-top {
    padding-top: 2rem
}

@media print,
screen and (min-width: 768px) {
    .sp-top {
        padding-top: 3rem
    }
}

@media print,
screen and (min-width: 960px) {
    .sp-top {
        padding-top: 4rem
    }
}

.sp-btm {
    padding-bottom: 2rem
}

@media print,
screen and (min-width: 768px) {
    .sp-btm {
        padding-bottom: 3rem
    }
}

@media print,
screen and (min-width: 960px) {
    .sp-btm {
        padding-bottom: 4rem
    }
}

.corner-header {
    position: relative;
    z-index: 2
}

.corner-header--inner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    padding: 2rem;
    transform: translate(-50%, -50%);
    z-index: 1;
    text-align: left
}

@media print,
screen and (min-width: 1056px) {
    .corner-header--inner {
        padding: 2rem 4rem
    }
}

.corner-header--inner h1 {
    position: relative;
    margin: 0;
    line-height: 1;
    color: #3f3a39
}

.corner-header--inner h1 .ja {
    position: relative;
    padding: .5em;
    padding-left: 0;
    background-color: rgba(255, 255, 255, .9);
    display: inline-block;
    letter-spacing: .1em
}

.corner-header--inner h1 .en {
    position: relative;
    font-size: .45em;
    display: inline-block;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-weight: 500;
    letter-spacing: .075em;
    color: #8a0b5e;
    background-color: rgba(255, 255, 255, .9);
    padding: .5em;
    padding-left: 0;
    top: -0.5em
}

.corner-header--bg {
    position: relative;
    margin: 0 0 0 auto;
    width: calc(100% - 4rem);
    height: 38vw;
    max-height: 320px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    z-index: 0
}

@media print,
screen and (min-width: 576px) {
    .corner-header--bg {
        width: calc(100% - 6rem);
        height: 34vw
    }
}

@media print,
screen and (min-width: 960px) {
    .corner-header--bg {
        width: 80vw;
        height: 24vw
    }
}

.content-body {
    position: relative;
    z-index: 2
}

.content-body::before {
    position: absolute;
    top: 0;
    right: 0;
    width: 60%;
    height: 100%;
    content: " ";
    z-index: -1;
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain;
    background-image: url(../img/common/logo-mark.svg);
    filter: grayscale(0.5);
    opacity: .02
}

.ph-norm,
.vd-norm {
    position: relative
}

.ph-norm:not(:first-child),
.vd-norm:not(:first-child) {
    margin-top: 2em
}

@media print,
screen and (min-width: 800px) {

    .ph-norm:not(:first-child),
    .vd-norm:not(:first-child) {
        margin-top: 3em
    }
}

.ph-norm:not(:last-child),
.vd-norm:not(:last-child) {
    margin-bottom: 2em
}

@media print,
screen and (min-width: 800px) {

    .ph-norm:not(:last-child),
    .vd-norm:not(:last-child) {
        margin-bottom: 3em
    }
}

.ph-norm img,
.vd-norm img {
    width: 100%;
    height: auto
}

.ph-norm video,
.vd-norm video {
    position: relative;
    z-index: 2;
    box-shadow: 0 0 2em rgba(53, 20, 50, .1)
}

.ph-norm .poster,
.vd-norm .poster {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    transition: all .15s ease-in-out;
    cursor: pointer
}

.ph-norm .poster img,
.vd-norm .poster img {
    width: 100%;
    height: auto
}

.ph-norm .poster:hover,
.vd-norm .poster:hover {
    opacity: .2
}

.vd-norm::before {
    position: absolute;
    top: -1em;
    right: -1em;
    width: 80%;
    height: calc(100% + 2em);
    content: " ";
    z-index: 1;
    background-color: rgba(138, 11, 94, .04)
}

@media print,
screen and (min-width: 800px) {
    .vd-norm::before {
        top: -2em;
        right: -2em;
        height: calc(100% + 4em)
    }
}

.scn-norm,
.scn-home {
    position: relative;
    padding: 2.5rem 0
}

@media print,
screen and (min-width: 768px) {

    .scn-norm,
    .scn-home {
        padding: 3.5rem 0
    }
}

@media print,
screen and (min-width: 960px) {

    .scn-norm,
    .scn-home {
        padding: 4rem 0
    }
}

@media print,
screen and (min-width: 1056px) {

    .scn-norm,
    .scn-home {
        padding: 5rem 0
    }
}

.scn-norm.clrd,
.scn-home.clrd {
    background-color: rgba(185, 160, 131, .1)
}

.scn-norm.clrd.light,
.scn-home.clrd.light {
    background-color: rgba(185, 160, 131, .05)
}

.scn-norm.clrd.pink,
.scn-home.clrd.pink {
    background-color: rgba(138, 11, 94, .03)
}

.scn-norm.last,
.scn-home.last {
    padding-bottom: 5rem
}

@media print,
screen and (min-width: 768px) {

    .scn-norm.last,
    .scn-home.last {
        padding-bottom: 7rem
    }
}

@media print,
screen and (min-width: 960px) {

    .scn-norm.last,
    .scn-home.last {
        padding-bottom: 8rem
    }
}

.scn-norm.small-sp-top,
.scn-home.small-sp-top {
    padding-top: 1.75rem
}

@media print,
screen and (min-width: 768px) {

    .scn-norm.small-sp-top,
    .scn-home.small-sp-top {
        padding-top: 2.25rem
    }
}

@media print,
screen and (min-width: 960px) {

    .scn-norm.small-sp-top,
    .scn-home.small-sp-top {
        padding-top: 2.75rem
    }
}

@media print,
screen and (min-width: 1056px) {

    .scn-norm.small-sp-top,
    .scn-home.small-sp-top {
        padding-top: 3rem
    }
}

.scn-norm.double-sp-bottom,
.scn-home.double-sp-bottom {
    padding-bottom: 5rem
}

@media print,
screen and (min-width: 768px) {

    .scn-norm.double-sp-bottom,
    .scn-home.double-sp-bottom {
        padding-bottom: 7rem
    }
}

@media print,
screen and (min-width: 960px) {

    .scn-norm.double-sp-bottom,
    .scn-home.double-sp-bottom {
        padding-bottom: 8rem
    }
}

@media print,
screen and (min-width: 1056px) {

    .scn-norm.double-sp-bottom,
    .scn-home.double-sp-bottom {
        padding-bottom: 10rem
    }
}

.scn-norm.no-sp,
.scn-home.no-sp {
    padding: 0
}

.scn-norm.no-sp-top,
.scn-home.no-sp-top {
    padding-top: 0
}

.scn-norm.no-sp-bottom,
.scn-home.no-sp-bottom {
    padding-bottom: 0
}

.scn-norm.row-divide-half,
.scn-home.row-divide-half {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: stretch;
    width: 100%
}

.scn-norm.row-divide-half.rev,
.scn-home.row-divide-half.rev {
    flex-direction: row-reverse
}

.scn-norm.row-divide-half>.col,
.scn-home.row-divide-half>.col {
    position: relative;
    width: 50%
}

.scn-norm .palt,
.scn-home .palt {
    font-feature-settings: "palt"
}

.scn-norm em,
.scn-home em {
    font-style: italic;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif
}

.scn-norm h2:not(.plain).with-dot,
.scn-home h2:not(.plain).with-dot {
    position: relative;
    display: block;
    text-align: center;
    padding-top: 1.5em;
    color: #3f3a39
}

.scn-norm h2:not(.plain).with-dot::before,
.scn-home h2:not(.plain).with-dot::before {
    position: absolute;
    top: 0;
    left: 50%;
    content: " ";
    margin-left: -0.5em;
    width: 1em;
    height: 1em;
    display: block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-image: url(../img/common/dot.svg)
}

.scn-norm h2:not(.plain) .en,
.scn-home h2:not(.plain) .en {
    display: block;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-size: .6em;
    letter-spacing: .1em;
    color: #8a0b5e
}

.scn-norm h3:not(.plain).with-dot,
.scn-home h3:not(.plain).with-dot {
    position: relative;
    display: block;
    text-align: center;
    padding-top: 1.25em;
    color: #3f3a39
}

.scn-norm h3:not(.plain).with-dot::before,
.scn-home h3:not(.plain).with-dot::before {
    position: absolute;
    top: 0;
    left: 50%;
    content: " ";
    margin-left: -0.5em;
    width: 1em;
    height: 1em;
    display: block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-image: url(../img/common/dot.svg)
}

.scn-norm h3:not(.plain).with-dot.left,
.scn-home h3:not(.plain).with-dot.left {
    text-align: left
}

.scn-norm h3:not(.plain).with-dot.left::before,
.scn-home h3:not(.plain).with-dot.left::before {
    left: 0;
    margin-left: 0
}

.scn-norm p.justified,
.scn-home p.justified {
    line-height: 2;
    text-align: justify;
    text-justify: inter-ideograph;
    text-justify: inter-character
}

.scn-norm .list-norm,
.scn-home .list-norm {
    list-style: none;
    margin: 0;
    padding: 0
}

.scn-norm .list-norm:not(:last-child),
.scn-home .list-norm:not(:last-child) {
    margin-bottom: 1.5em
}

.scn-norm .list-norm li,
.scn-home .list-norm li {
    position: relative;
    margin: 0;
    padding: 0;
    margin-left: 1em;
    text-indent: -1em
}

.scn-norm .list-norm li:not(:last-child),
.scn-home .list-norm li:not(:last-child) {
    margin-bottom: .5em
}

.scn-norm .list-norm li::before,
.scn-home .list-norm li::before {
    text-indent: 0;
    content: "・";
    width: 1em;
    display: inline-block;
    text-align: center
}

.scn-norm a.underline,
.scn-home a.underline {
    text-decoration: underline
}

.scn-norm .asterisk,
.scn-home .asterisk {
    text-indent: -1em;
    margin-left: 1em
}

.scn-norm .marker,
.scn-home .marker {
    position: relative;
    background: linear-gradient(transparent 70%, rgba(233, 47, 113, 0.2) 0%);
    display: inline;
    padding-bottom: 0
}

.dummy-mov {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    display: block;
    background-color: #000
}

.dummy-mov:not(:first-child) {
    margin-top: 2em
}

@media print,
screen and (min-width: 800px) {
    .dummy-mov:not(:first-child) {
        margin-top: 3em
    }
}

.dummy-mov:not(:last-child) {
    margin-bottom: 2em
}

@media print,
screen and (min-width: 800px) {
    .dummy-mov:not(:last-child) {
        margin-bottom: 3em
    }
}

.dummy-mov span {
    position: absolute;
    top: 50%;
    left: 0;
    text-align: center;
    width: 100%;
    height: auto;
    transform: translateY(-50%);
    color: #fff;
    font-weight: 700
}

.scn-home--hero {
    position: relative
}

.scn-home--hero---visual {
    position: relative;
    z-index: 0;
    text-align: right
}

.scn-home--hero---visual span {
    display: inline-block;
    width: calc(100% - 1rem)
}

@media print,
screen and (min-width: 576px) {
    .scn-home--hero---visual span {
        width: 64%
    }
}

.scn-home--hero---visual span img {
    width: 100%;
    height: auto
}

.scn-home--hero---text {
    position: relative;
    z-index: 2;
    text-align: left;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-weight: 700;
    font-feature-settings: "palt";
    letter-spacing: .1em;
    padding: 1rem;
    background-color: rgba(255, 255, 255, .9);
    margin-top: -3rem;
    margin-left: 2rem
}

@media print,
screen and (min-width: 576px) {
    .scn-home--hero---text {
        position: absolute;
        bottom: 4vw;
        left: 3vw;
        padding: 0;
        margin: 0;
        background-color: rgba(0, 0, 0, 0)
    }
}

@media print,
screen and (min-width: 960px) {
    .scn-home--hero---text {
        left: 8vw
    }
}

.scn-home--hero---text .first-block {
    position: relative;
    margin-bottom: 1.5em
}

.scn-home--hero---text .first-block .line {
    display: block;
    font-size: .92em;
    font-size: clamp(.65em, 2.5vw, 1.5em)
}

@media print,
screen and (min-width: 576px) {
    .scn-home--hero---text .first-block .line {
        font-size: 1.375em;
        font-size: clamp(.875em, 1.65vw, 2em)
    }
}

.scn-home--hero---text .first-block .line.l2 {
    margin-top: .25em
}

.scn-home--hero---text .second-block {
    position: relative;
    margin-bottom: .5em
}

@media print,
screen and (min-width: 576px) {
    .scn-home--hero---text .second-block {
        margin-bottom: 1.5em
    }
}

.scn-home--hero---text .second-block .line {
    position: relative;
    display: inline-block;
    font-size: 2em;
    line-height: 1.4;
    font-size: clamp(.75em, 3.5vw, 2em);
    overflow: hidden
}

@media print,
screen and (min-width: 576px) {
    .scn-home--hero---text .second-block .line {
        font-size: 2em;
        font-size: clamp(1.35em, 2.5vw, 3em)
    }
}

.scn-home--hero---text .second-block .line--inner {
    position: relative;
    display: inline-block;
    padding: .25em;
    opacity: 0
}

.scn-home--hero---text .second-block .line .phr-shutter_a,
.scn-home--hero---text .second-block .line .phr-shutter_b {
    position: absolute;
    top: 0;
    left: 0;
    width: 0%;
    height: 100%;
    z-index: 2;
    background-color: #f5f5f5
}

.scn-home--hero---text .second-block .line.l1 .line--inner {
    background-color: #c6c6c6
}

.scn-home--hero---text .second-block .line.l1 .clr {
    color: #8a0b5e
}

.scn-home--hero---text .second-block .line.l1 .phr-shutter_b {
    background-color: #c6c6c6
}

.scn-home--hero---text .second-block .line.l2 {
    animation-delay: 1s;
    color: #fff;
    margin-left: 3em
}

.scn-home--hero---text .second-block .line.l2 .line--inner {
    background-color: #8a0b5e
}

.scn-home--hero---text .second-block .line.l2 .phr-shutter_b {
    animation-delay: 1s;
    background-color: #8a0b5e
}

.scn-home--hero---text .second-block.start-action .line--inner {
    animation: behindSlideShutter .6s ease-in-out forwards
}

.scn-home--hero---text .second-block.start-action .phr-shutter_a {
    animation: slideShutter .6s ease-in-out forwards
}

.scn-home--hero---text .second-block.start-action .phr-shutter_b {
    animation: slideShutter .6s ease-in-out forwards
}

.scn-home--hero---text .second-block.start-action .line.l1 .phr-shutter_a {
    animation-delay: .2s
}

.scn-home--hero---text .second-block.start-action .line.l2 .line--inner {
    animation-delay: .65s
}

.scn-home--hero---text .second-block.start-action .line.l2 .phr-shutter_a {
    animation-delay: .65s
}

.scn-home--hero---text .second-block.start-action .line.l2 .phr-shutter_b {
    animation-delay: .85s
}

.scn-home--hero---text .credit {
    position: relative;
    letter-spacing: 0;
    opacity: 0;
    transition: all 1s ease-in-out
}

@media print,
screen and (min-width: 576px) {
    .scn-home--hero---text .credit {
        margin-left: 8vw
    }
}

.scn-home--hero---text .credit .of {
    display: block;
    font-size: clamp(.7em, 1.25vw, 1.35em)
}

.scn-home--hero---text .credit .name {
    display: block;
    font-size: clamp(.875em, 1.85vw, 2.25em)
}

.scn-home--hero---text .credit .name i {
    font-size: .8em;
    font-style: normal;
    margin-right: .5em
}

.scn-home--hero.end-opening .credit {
    opacity: 1
}

.scn-home.scn-home--intro .deco-en {
    position: relative;
    width: 100%;
    margin: 0 auto;
    display: block;
    max-width: 1408px
}

.scn-home.scn-home--intro .deco-en img {
    width: 100%;
    height: auto
}

.scn-home.scn-home--intro .bg {
    position: relative;
    max-width: 1584px;
    margin: 0 auto;
    display: block
}

.scn-home.scn-home--intro .bg img {
    width: 100%;
    height: auto
}

.scn-home.scn-home--intro .corp-or-ind {
    position: relative;
    margin-top: -3em
}

.scn-home.scn-home--intro .corp-or-ind ul {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none
}

.scn-home.scn-home--intro .corp-or-ind ul li {
    position: relative;
    padding: 0 1em
}

.scn-home.scn-home--lawyer {
    position: relative
}

.scn-home.scn-home--lawyer .ph {
    position: relative;
    width: calc(100% - 1.5rem);
    display: block
}

@media print,
screen and (min-width: 768px) {
    .scn-home.scn-home--lawyer .ph {
        position: absolute;
        top: 0;
        left: 0;
        width: 86%
    }
}

@media print,
screen and (min-width: 1056px) {
    .scn-home.scn-home--lawyer .ph {
        width: calc(90% - (100% - 1056px)*.5)
    }
}

.scn-home.scn-home--lawyer .ph img {
    width: 100%;
    height: auto
}

.scn-home.scn-home--lawyer h2 {
    position: relative;
    text-align: center;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-size: clamp(1.25em, 6vw, 3em);
    color: #3f3a39;
    margin-bottom: .75em
}

.scn-home.scn-home--lawyer h2 span {
    color: #8a0b5e
}

@media print,
screen and (min-width: 768px) {
    .scn-home.scn-home--lawyer h2 {
        font-size: clamp(1.5em, 2.75vw, 3em);
        writing-mode: vertical-rl;
        text-orientation: upright
    }
}

.scn-home.scn-home--lawyer .btns {
    position: relative;
    max-width: 1120px;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    margin: 0 auto
}

@media print,
screen and (min-width: 800px) {
    .scn-home.scn-home--lawyer .btns {
        padding-left: 2rem;
        padding-right: 2rem
    }
}

.scn-home.scn-home--lawyer .btns ul {
    position: relative;
    margin: 2em 0 -1.5em;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    justify-content: flex-end
}

.scn-home.scn-home--lawyer .btns ul li {
    margin: 0 0 1.5em
}

.scn-home.scn-home--lawyer .btns ul li:not(:last-child) {
    margin-right: 3em
}

@media screen and (max-width: 1408px) {
    .scn-home.scn-home--policy {
        padding-top: 0
    }
}

.scn-home.scn-home--policy .bg {
    position: relative;
    display: block;
    max-width: 1408px;
    margin: 0 auto
}

.scn-home.scn-home--policy .bg img {
    width: 100%;
    height: auto
}

.scn-home.scn-home--policy .home-our-policy {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: stretch;
    justify-content: space-between;
    margin-top: -20vw;
    padding-bottom: 4em
}

@media print,
screen and (min-width: 576px) {
    .scn-home.scn-home--policy .home-our-policy {
        margin-top: -15vw
    }
}

@media print,
screen and (min-width: 800px) {
    .scn-home.scn-home--policy .home-our-policy {
        margin-top: -10em;
        padding-bottom: 6em
    }
}

.scn-home.scn-home--policy .home-our-policy--item {
    position: relative;
    display: block;
    width: 32.5%;
    padding-top: 56.25%;
    border-radius: 1em
}

@media print,
screen and (min-width: 768px) {
    .scn-home.scn-home--policy .home-our-policy--item {
        width: 30%;
        padding-top: 44%
    }
}

.scn-home.scn-home--policy .home-our-policy--item .bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 0;
    border-radius: 1em;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    overflow: hidden
}

.scn-home.scn-home--policy .home-our-policy--item .bg::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 0;
    border-radius: 1em;
    content: " ";
    background-color: rgba(0, 0, 0, .4);
    z-index: 1
}

.scn-home.scn-home--policy .home-our-policy--item:nth-child(1) .bg {
    background-image: url(../img/home/policy1.jpg)
}

.scn-home.scn-home--policy .home-our-policy--item:nth-child(2) .bg {
    background-image: url(../img/home/policy2.jpg)
}

.scn-home.scn-home--policy .home-our-policy--item:nth-child(3) .bg {
    background-image: url(../img/home/policy3.jpg)
}

.scn-home.scn-home--policy .home-our-policy--item .ti {
    position: absolute;
    top: 14%;
    left: 50%;
    transform: translateX(-50%);
    writing-mode: vertical-rl;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-weight: 700;
    font-size: 1.5em;
    font-size: clamp(.7em, 3.5vw, 1.25em);
    line-height: 1.75;
    font-feature-settings: "palt";
    color: #fff;
    z-index: 3
}

@media print,
screen and (min-width: 768px) {
    .scn-home.scn-home--policy .home-our-policy--item .ti {
        font-size: clamp(.7em, 2.25vw, 1.5em)
    }
}

.scn-home.scn-home--policy .home-our-policy--item i {
    position: absolute;
    bottom: -0.35em;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-size: 7.25em;
    line-height: 1;
    font-style: normal;
    color: #8a0b5e;
    font-size: clamp(1em, 10vw, 7.25em);
    z-index: 2
}

.scn-home.scn-home--policy .link-to-page {
    text-align: center
}

.scn-home.scn-home--policy .link-to-page a {
    display: inline-block;
    margin: 0 auto
}

@keyframes slideShutter {
    0% {
        width: 0;
        left: 0
    }

    50% {
        width: 100%;
        left: 0
    }

    100% {
        left: 100%
    }
}

@keyframes behindSlideShutter {
    0% {
        opacity: 0
    }

    50% {
        opacity: 0
    }

    51% {
        opacity: 1
    }

    100% {
        opacity: 1
    }
}

.page-container.bg-message {
    overflow: hidden
}

.page-container.bg-message .bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: " ";
    z-index: 0;
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% auto;
    background-image: url(../img/message/bg-message.jpg)
}

.page-container.bg-message .content-body::before {
    display: none
}

.scn-norm.scn-message .message-heading {
    position: relative;
    /*writing-mode: vertical-rl;*/
    width: 100%;
    display: flex
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-message .message-heading {
        position: absolute;
        top: 0;
        left: 2rem;
        width: auto;
        display: block
    }
}

.scn-norm.scn-message .message-heading h1 {
    position: relative;
    display: block;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-weight: 500;
    letter-spacing: .1em;
    margin: 0 auto;
    color: #3f3a39;
    text-shadow: 0 0 1em #fff
}

.scn-norm.scn-message .message-heading h1 .sml {
    display: block;
    font-size: .5em;
    font-weight: 700;
    color: #8a0b5e
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-message .message-heading h1 br.sm {
        display: none
    }
}

.scn-norm.scn-message .message-content {
    position: relative;
    padding-top: 2em
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-message .message-content {
        padding-top: 5em;
        padding-bottom: 12em;
        padding-right: 10em
    }
}

@media print,
screen and (min-width: 960px) {
    .scn-norm.scn-message .message-content {
        padding-top: 5em;
        padding-right: 12em
    }
}

.scn-norm.scn-message .message-content h2 {
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    letter-spacing: .1em;
    font-weight: 500
}

.scn-norm.scn-message p {
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    line-height: 2;
    letter-spacing: .1em;
    color: #303030
}

@media print,
screen and (min-width: 960px) {
    .scn-norm.scn-message p {
        font-size: clamp(1em, 2vw, 1.15em)
    }
}

.scn-norm.scn-our-policy .our-policy--item {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: flex-start
}

.scn-norm.scn-our-policy .our-policy--item:not(:last-child) {
    margin-bottom: 2em
}

.scn-norm.scn-our-policy .our-policy--item---img {
    position: relative;
    width: 5em;
    padding-top: 7.5em;
    border-radius: .5em;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    overflow: hidden
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-our-policy .our-policy--item---img {
        width: 8em;
        padding-top: 10.64em
    }
}

@media print,
screen and (min-width: 800px) {
    .scn-norm.scn-our-policy .our-policy--item---img {
        width: 12em;
        padding-top: 12em
    }
}

.scn-norm.scn-our-policy .our-policy--item---img::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 0;
    border-radius: .5em;
    content: " ";
    background-color: rgba(0, 0, 0, .4);
    z-index: 1
}

.scn-norm.scn-our-policy .our-policy--item---img i {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-style: normal;
    font-size: 8vw;
    color: #b9a083;
    z-index: 2
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-our-policy .our-policy--item---img i {
        font-size: 6vw
    }
}

@media print,
screen and (min-width: 800px) {
    .scn-norm.scn-our-policy .our-policy--item---img i {
        font-size: 4em
    }
}

.scn-norm.scn-our-policy .our-policy--item---desc {
    width: calc(100% - 5em);
    padding-left: 1em
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-our-policy .our-policy--item---desc {
        width: calc(100% - 8em);
        padding-left: 2em
    }
}

@media print,
screen and (min-width: 800px) {
    .scn-norm.scn-our-policy .our-policy--item---desc {
        width: calc(100% - 12em);
        padding-left: 3em
    }
}

.scn-norm.scn-our-policy .our-policy--item h3 {
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-weight: 500;
    letter-spacing: .1em;
    color: #8a0b5e;
    padding-bottom: .25em;
    margin-bottom: .5em;
    border-bottom: 1px dotted #8a0b5e
}

@media print,
screen and (max-width: 575px) {
    .scn-norm.scn-our-policy .our-policy--item h3 {
        font-size: clamp(1em, 4.5vw, 1.35em)
    }
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-our-policy .our-policy--item h3 br {
        display: none
    }
}

.scn-norm.scn-our-policy .our-policy--item p {
    font-weight: 700
}

@media print,
screen and (max-width: 575px) {
    .scn-norm.scn-our-policy .our-policy--item p {
        font-size: clamp(.875em, 3.5vw, 1em)
    }
}

.scn-norm.scn-our-policy .our-policy--item:nth-child(1) .our-policy--item---img {
    background-image: url(../img/home/policy1.jpg)
}

.scn-norm.scn-our-policy .our-policy--item:nth-child(2) .our-policy--item---img {
    background-image: url(../img/home/policy2.jpg)
}

.scn-norm.scn-our-policy .our-policy--item:nth-child(3) .our-policy--item---img {
    background-image: url(../img/home/policy3.jpg)
}

.scn-norm.scn-lawyer-profile {
    text-align: left
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-lawyer-profile {
        height: 46.56vw
    }
}

@media print,
screen and (min-width: 1500px) {
    .scn-norm.scn-lawyer-profile {
        height: 700px
    }
}

.scn-norm.scn-lawyer-profile .deco-en {
    position: absolute;
    top: -1em;
    left: 0;
    transform-origin: bottom left;
    transform: rotate(90deg);
    z-index: 1;
    display: block;
    font-size: 5em;
    line-height: 1;
    letter-spacing: .05em;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-weight: 500;
    color: rgba(138, 11, 94, .2);
    font-size: clamp(2em, 8vw, 5em)
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-lawyer-profile .deco-en {
        font-size: clamp(2em, 6vw, 5em)
    }
}

.scn-norm.scn-lawyer-profile .lawyer-profile--visual {
    position: relative;
    width: calc(100% - 2rem);
    margin-left: auto;
    display: block;
    z-index: 0;
    text-align: right
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-lawyer-profile .lawyer-profile--visual {
        position: absolute;
        top: 0;
        right: 0;
        width: 80%;
        height: 100%
    }
}

.scn-norm.scn-lawyer-profile .lawyer-profile--visual img {
    max-width: none;
    width: 100%;
    height: auto;
    margin-left: auto
}

@media print,
screen and (min-width: 1500px) {
    .scn-norm.scn-lawyer-profile .lawyer-profile--visual img {
        width: auto;
        height: 100%
    }
}

.scn-norm.scn-lawyer-profile .swrap--wide {
    margin-top: -10vw;
    z-index: 2
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-lawyer-profile .swrap--wide {
        width: 100%;
        height: 100%;
        margin-top: 0
    }
}

.scn-norm.scn-lawyer-profile .lawyer-profile--title {
    position: relative;
    z-index: 2;
    display: inline-block;
    background-color: rgba(255, 255, 255, .85);
    padding: 2rem;
    font-size: 1em;
    max-width: calc(100% - 2rem)
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-lawyer-profile .lawyer-profile--title {
        font-size: .8125em;
        padding: 2em;
        top: 50%;
        transform: translateY(-50%)
    }
}

@media print,
screen and (min-width: 1056px) {
    .scn-norm.scn-lawyer-profile .lawyer-profile--title {
        font-size: 1em;
        padding: 3em
    }
}

.scn-norm.scn-lawyer-profile .lawyer-profile--title h2.name {
    font-size: 2.75em;
    line-height: 1.2;
    margin-bottom: .5em;
    color: #3f3a39
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-lawyer-profile .lawyer-profile--title h2.name {
        font-size: 2m
    }
}

@media print,
screen and (min-width: 800px) {
    .scn-norm.scn-lawyer-profile .lawyer-profile--title h2.name {
        font-size: 4em
    }
}

.scn-norm.scn-lawyer-profile .lawyer-profile--title h2.name .title {
    display: block;
    font-size: .875rem
}

.scn-norm.scn-lawyer-profile .lawyer-profile--title h2.name .en {
    display: block;
    font-size: .285em;
    letter-spacing: .185em;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-weight: 500;
    color: #8a0b5e
}

@media print,
screen and (min-width: 576px) {
    .scn-norm.scn-lawyer-profile .lawyer-profile--title h2.name .en {
        display: none
    }
}

.scn-norm.scn-lawyer-profile .lawyer-profile--title p {
    font-size: .92em;
    line-height: 1.7;
    margin: 0
}

.scn-norm.scn-lawyer-profile .lawyer-profile--title p .fntBold {
    display: inline-block;
    margin-bottom: .5em
}

.scn-norm.scn-lawyer-profile .lawyer-profile--title p.other {
    margin-top: 1em
}

.scn-norm.scn-personality {
    background-color: #f8f6f3;
    background-repeat: no-repeat;
    background-position: left top;
    background-size: 90% auto;
    background-image: url(../img/about/bg-about.jpg)
}

.scn-norm.scn-personality .qa-personality {
    position: relative
}

.scn-norm.scn-personality .qa-personality dl {
    position: relative;
    margin-bottom: .5em;
    background-color: rgba(185, 160, 131, .2);
    background-color: rgba(255, 255, 255, .7);
    border-radius: .25em
}

@media print,
screen and (min-width: 800px) {
    .scn-norm.scn-personality .qa-personality dl {
        display: flex;
        flex-wrap: wrap;
        flex-grow: 1;
        align-items: flex-start
    }
}

.scn-norm.scn-personality .qa-personality dl dt,
.scn-norm.scn-personality .qa-personality dl dd {
    line-height: 1.8
}

.scn-norm.scn-personality .qa-personality dl dt i,
.scn-norm.scn-personality .qa-personality dl dd i {
    position: absolute;
    top: 1.23em;
    left: -1em;
    font-style: normal;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-size: .8125em;
    color: #fff;
    background-color: #8a0b5e;
    text-align: center;
    width: 3em;
    height: 3em;
    line-height: 3em;
    border-radius: 1.5em;
    margin-top: -0.5em
}

@media print,
screen and (min-width: 800px) {

    .scn-norm.scn-personality .qa-personality dl dt i,
    .scn-norm.scn-personality .qa-personality dl dd i {
        top: 2.4615384em
    }
}

.scn-norm.scn-personality .qa-personality dl dt {
    position: relative;
    margin: 0;
    padding: 1em 0 .5em 2.5em;
    font-weight: 700;
    color: #8a0b5e
}

@media print,
screen and (min-width: 800px) {
    .scn-norm.scn-personality .qa-personality dl dt {
        width: 18em;
        padding: 2em 4em 2em 2.5em
    }
}

.scn-norm.scn-personality .qa-personality dl dt i {
    color: #fff;
    background-color: #8a0b5e
}

@media print,
screen and (max-width: 799px) {
    .scn-norm.scn-personality .qa-personality dl dt br {
        display: none
    }
}

.scn-norm.scn-personality .qa-personality dl dd {
    position: relative;
    margin: 0 0 0 2em;
    padding: 1em;
    padding-left: 2.5em;
    color: #252525
}

@media print,
screen and (min-width: 800px) {
    .scn-norm.scn-personality .qa-personality dl dd {
        padding: 2em 2em 2em 2.5em;
        width: calc(100% - 18em);
        margin: 0
    }
}

.scn-norm.scn-personality .qa-personality dl dd i {
    color: #8a0b5e;
    background-color: #fff
}

.page-container.service.corp-customer .corner-header--bg {
    background-image: url(../img/service/header-corp.jpg)
}

.page-container.service.advisory-contract .corner-header--bg {
    background-image: url(../img/service/header-advisory.jpg)
}

.page-container.service.ind-customer .corner-header--bg {
    background-image: url(../img/service/header-ind.jpg)
}

.page-container.service.ind-customer .list-main-service ul {
    max-width: 640px
}

.page-container.service .tb-norm.tb-fee thead th,
.page-container.service .tb-norm.tb-fee thead td {
    text-align: center
}

.page-container.service .tb-norm.tb-fee tbody th {
    text-align: center;
    font-weight: 700
}

.scn-norm.scn-service-top {
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 50vw auto;
    background-image: url(../img/service/bg-service-top.jpg)
}

@media print,
screen and (max-width: 1055px) {
    .scn-norm.scn-service-top {
        padding-bottom: 40vw;
        background-size: 80vw auto
    }
}

.corp-customer .scn-norm.scn-service-top {
    background-image: url(../img/service/bg-service-top--corp.jpg)
}

.service-top {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: stretch;
    text-align: left;
    padding: 0 2rem;
    max-width: 1920px;
    margin: 0 auto
}

@media print,
screen and (min-width: 1500px) {
    .service-top {
        padding: 0 4rem
    }
}

.service-top .main-service {
    position: relative;
    width: 100%;
    margin-bottom: 1.5em
}

@media print,
screen and (min-width: 1056px) {
    .service-top .main-service {
        width: 40%;
        padding-right: 2rem
    }
}

.service-top .main-service h2 {
    position: absolute;
    top: -0.5em;
    left: 0
}

.service-top .main-service h2 span.ver {
    position: relative;
    writing-mode: vertical-rl
}

.service-top .main-service .list-main-service {
    margin-left: 2.5em;
    max-width: 560px
}

@media print,
screen and (min-width: 1056px) {
    .service-top .main-service .list-main-service {
        max-width: 560px
    }
}

.service-top .service-introducition-movie {
    width: 100%
}

@media print,
screen and (min-width: 1056px) {
    .service-top .service-introducition-movie {
        width: 60%;
        padding-top: 6em
    }
}

.list-main-service {
    position: relative;
    padding: 1em;
    background: rgba(185, 160, 131, .15);
    border-radius: .25em;
    margin-bottom: .5em
}

@media print,
screen and (min-width: 800px) {
    .list-main-service {
        padding: 1.5em;
        font-size: 1.2em
    }
}

.list-main-service ul {
    margin: 0 auto;
    padding: 0;
    width: 100%;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: stretch
}

.list-main-service ul li {
    margin: 0;
    padding: .35em;
    text-align: center;
    font-size: .92em;
    font-weight: 700
}

@media print,
screen and (min-width: 576px) {
    .list-main-service ul li {
        padding: .25em 1em
    }
}

.list-main-service ul li .fntS {
    font-size: .7em
}

.list-main-service .bnr-advisory-contract {
    position: relative;
    text-align: right;
    border-top: 1px dotted rgba(0, 0, 0, .2);
    padding-top: 1em;
    margin-top: .5em
}

.list-main-service .bnr-advisory-contract a {
    position: relative;
    display: inline-block;
    padding: .75em 3em .75em 1.25em;
    background-color: #8a0b5e;
    color: #fff
}

.list-main-service .bnr-advisory-contract a span {
    font-weight: 700
}

.list-main-service .bnr-advisory-contract a .arrow {
    position: absolute;
    top: 50%;
    right: 1em;
    margin-top: -1em;
    width: 1em;
    height: 2em;
    display: block;
    transition: all .15s ease-in-out
}

.list-main-service .bnr-advisory-contract a .arrow i {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 0;
    border-top: 1px solid #ccc;
    display: block;
    transform: translateY(-50%)
}

.list-main-service .bnr-advisory-contract a .arrow i::before {
    position: absolute;
    top: 50%;
    right: 0;
    content: " ";
    width: .5em;
    height: .5em;
    border-top: 1px solid #ccc;
    border-right: 1px solid #ccc;
    transform: translateY(-50%) rotate(45deg)
}

.list-main-service .bnr-advisory-contract a:hover {
    background-color: #5b073e
}

.list-main-service .bnr-advisory-contract a:hover .arrow {
    right: .5em
}

.scn-norm.scn-service-flow::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: " ";
    background-repeat: no-repeat;
    background-position: left center;
    background-size: auto 100%;
    background-attachment: fixed;
    background-image: url(../img/service/bg-flow.png);
    z-index: 0
}

.contract-flow {
    position: relative;
    max-width: 880px;
    margin-left: auto
}

.contract-flow--item {
    position: relative;
    background: rgba(138, 11, 94, .05);
    background: linear-gradient(45deg, rgba(138, 11, 94, 0.08) 0, rgba(138, 11, 94, 0.08) 50%, rgba(233, 47, 113, 0.1) 100%);
    border-radius: .5em
}

.contract-flow--item:not(:last-child) {
    margin-bottom: 1em
}

.contract-flow--item:not(:last-child)::after {
    position: absolute;
    top: 100%;
    left: 50%;
    content: " ";
    width: 0;
    height: 0;
    border: .75em solid rgba(0, 0, 0, 0);
    border-top-color: rgba(138, 11, 94, .08)
}

.contract-flow--item i.num {
    position: absolute;
    top: 50%;
    left: -1em;
    margin-top: -1em;
    width: 2em;
    height: 2em;
    border-radius: 1em;
    text-align: center;
    font-size: 1.15em;
    line-height: 2em;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-style: normal;
    color: #8a0b5e;
    background-color: #fff
}

@media print,
screen and (min-width: 960px) {
    .contract-flow--item dl {
        display: flex;
        flex-wrap: wrap;
        flex-grow: 1;
        align-items: center
    }
}

.contract-flow--item dl dt {
    position: relative;
    padding: 1em;
    padding-left: 2em;
    margin: 0
}

@media print,
screen and (min-width: 576px) {
    .contract-flow--item dl dt {
        padding: 1.5em;
        padding-left: 2em
    }
}

@media print,
screen and (min-width: 960px) {
    .contract-flow--item dl dt {
        width: 20em;
        padding: 2em;
        padding-left: 2em
    }
}

.contract-flow--item dl dt span {
    font-size: 1.25em;
    font-weight: 700;
    color: #8a0b5e
}

.contract-flow--item dl dd {
    padding: 0 1em 1em 2em;
    margin: 0;
    line-height: 1.75;
    font-weight: 700
}

@media print,
screen and (min-width: 576px) {
    .contract-flow--item dl dd {
        padding: 0 1.5em 1.5em 2em
    }
}

@media print,
screen and (min-width: 960px) {
    .contract-flow--item dl dd {
        width: calc(100% - 20em);
        padding: 2em
    }
}

.contract-flow--item dl dd .asterisk {
    display: block;
    font-weight: 500
}

.our-value,
.our-plan {
    position: relative;
    overflow: hidden;
    padding: 1.5em 0;
    background-color: rgba(138, 11, 94, .06);
    border-radius: .5em
}

@media print,
screen and (min-width: 800px) {

    .our-value,
    .our-plan {
        padding: 2em 0
    }
}

.our-value:not(:last-child),
.our-plan:not(:last-child) {
    margin-bottom: 2em
}

@media print,
screen and (min-width: 800px) {

    .our-value:not(:last-child),
    .our-plan:not(:last-child) {
        margin-bottom: 3em
    }
}

.our-value h4,
.our-plan h4 {
    text-align: center
}

.our-value h4>span,
.our-plan h4>span {
    position: relative;
    display: block;
    margin: 0 auto
}

.our-value h4>span.ja,
.our-plan h4>span.ja {
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-size: 1.85em;
    line-height: 1.4;
    letter-spacing: .1em;
    color: #385567
}

.our-value h4>span.ja .sml,
.our-plan h4>span.ja .sml {
    display: block;
    font-size: .65em;
    letter-spacing: 0
}

.our-value h4>span.en,
.our-plan h4>span.en {
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    line-height: 1.4;
    letter-spacing: .1em;
    color: #3f3a39;
    font-weight: 500;
    margin-top: .35em;
    padding-top: .5em
}

.our-value h4>span.en::before,
.our-plan h4>span.en::before {
    position: absolute;
    top: 0;
    left: 50%;
    content: " ";
    margin-left: -2em;
    width: 4em;
    height: 0;
    border-top: 1px dotted #8a0b5e
}

.en-background {
    position: absolute;
    z-index: 0;
    font-size: 20vw;
    font-size: clamp(11em, 20vw, 24em);
    line-height: 1;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    color: rgba(138, 11, 94, .05);
    mix-blend-mode: screen
}

.our-value {
    background-color: rgba(138, 11, 94, .06)
}

.our-value .en-background {
    top: -0.05em;
    left: -0.05em
}

.our-value h4>span.ja {
    color: #8a0b5e
}

.our-value h4>span.en::before {
    border-top-color: #8a0b5e
}

.our-value .list-our-value ol {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: stretch;
    flex-direction: column;
    margin: 0 0 -1em;
    padding: 1em 1em 0
}

@media print,
screen and (min-width: 800px) {
    .our-value .list-our-value ol {
        flex-direction: row;
        padding: 2em 1em 0
    }
}

.our-value .list-our-value ol li {
    position: relative;
    background-color: #fff;
    line-height: 1.75;
    padding: 2em 1.5em 1.5em;
    margin: .5em auto;
    text-align: center;
    font-weight: 700;
    width: 90%;
    max-width: 480px
}

@media print,
screen and (min-width: 800px) {
    .our-value .list-our-value ol li {
        padding: 2em 1em;
        width: calc(33.33333333% - 1em);
        margin: .5em
    }
}

@media print,
screen and (max-width: 575px) {
    .our-value .list-our-value ol li {
        width: auto;
        margin: .5em 0
    }
}

@media print,
screen and (min-width: 576px) {
    .our-value .list-our-value ol li br {
        display: none
    }
}

@media print,
screen and (min-width: 800px) {
    .our-value .list-our-value ol li br {
        display: block
    }
}

.our-value .list-our-value ol li i {
    position: absolute;
    top: -0.5em;
    left: 50%;
    color: #fff;
    z-index: 1;
    font-style: normal;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif
}

@media print,
screen and (min-width: 800px) {
    .our-value .list-our-value ol li i {
        top: -1em
    }
}

.our-value .list-our-value ol li i::before {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2em;
    height: 2em;
    content: " ";
    z-index: -1;
    background-color: #8a0b5e;
    transform: translate(-50%, -50%) rotate(45deg);
    border-radius: .25em
}

.our-value .list-our-value ol li span {
    display: block;
    font-weight: 700;
    font-size: 1.35em;
    line-height: 1.5;
    margin-bottom: .5em;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif
}

.our-plan {
    background-color: rgba(56, 85, 103, .06)
}

.our-plan .en-background {
    top: -0.05em;
    right: -0.05em;
    color: rgba(56, 85, 103, .08)
}

.our-plan h4>span.ja {
    color: #385567
}

.our-plan h4>span.en::before {
    border-top-color: #8a0b5e
}

.our-plan .list-our-plan {
    position: relative;
    margin: 0;
    padding: 0
}

@media print,
screen and (min-width: 768px) {
    .our-plan .list-our-plan {
        display: flex;
        flex-wrap: wrap;
        flex-grow: 1;
        align-items: stretch
    }
}

.our-plan .list-our-plan--item {
    position: relative;
    padding: 1em 0;
    margin: 0 1em
}

@media print,
screen and (min-width: 768px) {
    .our-plan .list-our-plan--item {
        width: 33.33333333%;
        padding: 1em .5em;
        margin: 1em 0 0
    }
}

.our-plan .list-our-plan--item:not(:first-child) {
    border-top: 1px solid rgba(56, 85, 103, .4)
}

@media print,
screen and (min-width: 768px) {
    .our-plan .list-our-plan--item:not(:first-child) {
        border-top: none;
        border-left: 1px solid rgba(56, 85, 103, .4)
    }
}

.our-plan .list-our-plan--item dt {
    font-size: 1.35em;
    text-align: center;
    font-weight: 700;
    display: block;
    padding: .5em 0;
    color: #385567;
    font-size: clamp(1.25em, 5vw, 1.35em)
}

@media print,
screen and (min-width: 768px) {
    .our-plan .list-our-plan--item dt {
        padding: .5em 0 1em;
        font-size: 1.35em;
        font-size: clamp(1.15em, 2.5vw, 1.35em)
    }
}

.our-plan .list-our-plan--item dt .price {
    margin-top: .25em;
    display: block;
    font-size: 1.35em;
    color: #2f4756
}

.our-plan .list-our-plan--item dt .price i.sml {
    font-style: normal;
    font-size: .65em
}

.our-plan .list-our-plan--item dd {
    line-height: 1.75;
    font-weight: 700;
    text-align: left;
    font-size: clamp(.875em, 4vw, 1.07em);
    padding: 0
}

@media print,
screen and (min-width: 768px) {
    .our-plan .list-our-plan--item dd {
        font-size: clamp(.65em, 1.5vw, 1em);
        padding: 0 .5em
    }
}

@media print,
screen and (min-width: 1056px) {
    .our-plan .list-our-plan--item dd {
        padding: 0 1.5em
    }
}

.our-plan .list-our-plan--item dd .plan--details {
    position: relative;
    padding: 1em;
    background-color: rgba(255, 255, 255, .8);
    margin-top: 1em;
    border-radius: .5em
}

.our-plan .list-our-plan--item dd .plan--details h5 {
    text-align: center
}

.our-plan .list-our-plan--item dd .plan--details ul {
    font-size: .92em;
    text-align: left;
    list-style: none;
    margin: 0;
    padding: 0
}

.our-plan .list-our-plan--item dd .plan--details ul li {
    position: relative;
    line-height: 1.65;
    display: block;
    margin: 0 0 0 1em;
    text-indent: -1em
}

.our-plan .list-our-plan--item dd .plan--details ul li:not(:last-child) {
    margin-bottom: .25em
}

.our-plan .list-our-plan--item dd .plan--details ul li::before {
    letter-spacing: 0;
    text-indent: 0;
    display: inline-block;
    width: 1em;
    content: "・"
}

@media print,
screen and (min-width: 768px) {
    .our-plan .list-our-plan--item dd span.smp {
        display: none
    }
}

@media print,
screen and (max-width: 767px) {
    .our-plan .list-our-plan--item dd span.pc {
        display: none
    }
}

.scn-norm.scn-service-advisory-contract {
    background-color: #fbf8f9;
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 100% auto;
    background-image: url(../img/service/bg-advisory-contract.jpg)
}

.scn-norm.scn-service-advisory-contract h2 {
    text-align: center;
    color: #8a0b5e;
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif
}

.scn-norm.scn-service-advisory-contract .service-adv-contract--item {
    margin-bottom: 1em
}

.scn-norm.scn-service-advisory-contract .service-adv-contract--item dl {
    position: relative;
    background-color: #fff;
    box-shadow: 0 0 2em -0.5em rgba(138, 11, 94, .06);
    border-radius: .25em;
    padding: 1em
}

@media print,
screen and (min-width: 960px) {
    .scn-norm.scn-service-advisory-contract .service-adv-contract--item dl {
        display: flex;
        flex-wrap: wrap;
        flex-grow: 1;
        align-items: stretch;
        padding: 0
    }
}

.scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dt {
    position: relative;
    font-size: 1.15em;
    padding: .5em 0 .5em;
    margin: 0;
    font-weight: 700;
    color: #8a0b5e
}

@media print,
screen and (min-width: 768px) {
    .scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dt {
        font-size: 1.25em
    }
}

@media print,
screen and (min-width: 960px) {
    .scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dt {
        width: 22em;
        padding: 1.5em
    }
}

.scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dt .num {
    position: absolute;
    top: -1em;
    left: 0;
    font-size: 1.5em;
    line-height: 1;
    font-weight: 500;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif
}

@media print,
screen and (min-width: 960px) {
    .scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dt .num {
        top: -0.5em;
        left: .5em;
        font-weight: 700
    }
}

.scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dt .num i {
    font-size: .4em;
    font-style: normal
}

.scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dd {
    margin: 0;
    line-height: 1.75
}

@media print,
screen and (min-width: 960px) {
    .scn-norm.scn-service-advisory-contract .service-adv-contract--item dl dd {
        width: calc(100% - 27.5em);
        padding: 1.5em 1.5em
    }
}

.list-faq dl {
    position: relative
}

.list-faq dl dt {
    position: relative;
    color: #385567;
    font-size: 1.15em;
    font-weight: 700;
    padding: 1em 0;
    padding-left: 2em;
    display: block;
    margin: 0;
    border-top: 1px solid #385567;
    cursor: pointer
}

@media print,
screen and (min-width: 800px) {
    .list-faq dl dt {
        font-size: 1.25em;
        padding: 1.5em;
        padding-left: 2.5em
    }
}

.list-faq dl dt span.q {
    position: absolute;
    top: 50%;
    left: 0;
    line-height: 1.5em;
    margin-top: -0.75em;
    font-family: "Bodoni Moda", Georgia, "Times New Roman", Times, serif;
    font-weight: 500
}

.list-faq dl dt i {
    position: absolute;
    top: 50%;
    right: .5em;
    margin-top: -0.5em;
    width: 1em;
    height: 1em;
    display: block
}

.list-faq dl dt i::before {
    position: absolute;
    top: 50%;
    left: 50%;
    content: " ";
    width: 100%;
    height: 0;
    border-top: 2px solid #385567;
    transform: translate(-50%, -50%);
    transition: all .15s ease-in-out
}

.list-faq dl dt i::after {
    position: absolute;
    top: 50%;
    left: 50%;
    content: " ";
    height: 100%;
    width: 0;
    border-left: 2px solid #385567;
    transform: translate(-50%, -50%);
    transition: all .15s ease-in-out
}

.list-faq dl dt.active i::after {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(-90deg)
}

.list-faq dl dt.active+dd {
    visibility: visible;
    opacity: 1;
    max-height: 99999em
}

.list-faq dl dd {
    position: relative;
    padding: 0;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: all .2s ease-in-out
}

.list-faq dl dd .answer {
    position: relative;
    padding: 1em;
    margin: 0 0 .25em;
    background-color: rgba(56, 85, 103, .05);
    border-radius: .25em
}

@media print,
screen and (min-width: 800px) {
    .list-faq dl dd .answer {
        padding: 1.5em
    }
}

.page-container.access .corner-header--bg {
    background-image: url(../img/access/header.jpg)
}

.page-container.access .wrap-map {
    position: relative;
    margin: auto;
    padding: 2rem;
    max-width: 1920px;
    text-align: left
}

.row-access {
    position: relative
}

@media print,
screen and (min-width: 960px) {
    .row-access {
        display: flex;
        flex-wrap: wrap;
        flex-grow: 1;
        align-items: stretch
    }
}

.row-access::before {
    position: absolute;
    top: 2em;
    left: 10vw;
    width: calc(90vw - 2rem);
    height: 60%;
    content: " ";
    z-index: -1;
    background-color: rgba(185, 160, 131, .08)
}

@media print,
screen and (min-width: 960px) {
    .row-access::before {
        top: 5%;
        left: 10%;
        width: 50%;
        height: 100%
    }
}

.row-access .col-details {
    position: relative;
    width: 100%;
    margin-bottom: 2em
}

@media print,
screen and (min-width: 960px) {
    .row-access .col-details {
        width: 33%;
        padding-right: 2em;
        margin-bottom: 0
    }
}

.row-access .col-details h3 {
    margin-bottom: .75em
}

.row-access .col-details ul {
    list-style: none;
    margin: 0 0 1.5em;
    padding: 0
}

.row-access .col-details ul li {
    line-height: 1.45;
    margin: 0;
    padding: 0
}

.row-access .col-details ul li:not(:last-child) {
    margin-bottom: .25em
}

.row-access .col-details ul li.sp-d {
    margin-bottom: .75em
}

.row-access .col-details p {
    margin-top: 1em
}

.row-access .col-map {
    position: relative;
    width: 100%
}

@media print,
screen and (min-width: 960px) {
    .row-access .col-map {
        width: 67%
    }
}

.page-container.privacy-policy .corner-header--bg {
    background-image: url(../img/privacy-policy/header.jpg)
}

.scn-norm.scn-policy address {
    font-style: normal;
    padding: 1.5em;
    background-color: rgba(138, 11, 94, .05)
}

.scn-norm.scn-policy address p {
    font-weight: 700
}

.page-container.sitemap .corner-header--bg {
    background-image: url(../img/sitemap/header.jpg)
}

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