* {
    padding: 0;
    margin: 0;
    box-sizing: border-box
}

body,html {
    background: #fff 0 0;
    color: #000
}

address,blockquote,caption,cite,code,dd,dt,em,h1,h2,h3,h4,h5,h6,input,li,p,pre,select,small,strong,td,textarea,th {
    font-size: 100%;
    font-weight: inherit;
    font-style: inherit
}
/* ------------------------------------
    h1-h5 sp
------------------------------------ */
.midashi01 {
    width: 100%;
    margin: 0 auto 12vw;
    text-align: center;
    position: relative;
}

.midashi01 .jp {
    display: block;
    font-size: 6.8vw;
    font-family: var(--mincho);
    margin-bottom: 2vw;
    font-weight: bold;
}

.midashi01 .en {
    color: #aea393;
    font-size: 4vw;
    font-family: "garamond-premier-pro", serif;
}

.midashi01::after {
    content: "";
    display: block;
    margin: 0 auto;
    width: 20vw;
    height: 1px;
    background: #aea393;
    position: absolute;
    left: 0;
    right: 0;
    bottom: -30%;
}

.midashi02 {
    margin-bottom: 4%;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.midashi02 span {
    font-size: 10vw;
    color: #7b6660;
    font-family: var(--script);
    position: relative;
    background: #fff;
    padding: 0 4vw;
}

.midashi02:before {
    content: "";
    background: url(../images/problem_ttl.jpg) no-repeat center left;
    width: 40%;
    height: 30px;
    background-size: contain;
}

.midashi02:after {
    content: "";
    background: url(../images/problem_ttl.jpg) no-repeat center right;
    width: 40%;
    height: 30px;
    background-size: contain;
    transform: scale(-1,1);
}

.midashi03 {
    margin: 6vw auto;
    text-align: center;
}

.midashi03 .en {
    font-family: var(--script);
    display: block;
    color: #7b6660;
    font-size: 12vw;
/*     margin-bottom: 4%; */
}

.midashi03 .jp {
    font-family: var(--mincho);
    color: #aea393;
}

.midashi04 {
    font-size: 6vw;
    padding: 7%;
    margin-bottom: 5vw;
    position: relative;
    text-align: center;
    background: url("../images/top/midashi_bg.jpg") repeat;
    color: #fff;
    font-family: var(--mincho);
    line-height: 1.5;
}

.midashi04::before,.midashi04::after {
    content: "";
    position: absolute;
    width: 100%;
    left: 0;
    height: 1px;
    background: -webkit-linear-gradient(left, rgb(139, 110, 45) 0%, rgb(246, 243, 199) 16%, rgb(193, 152, 77) 35%, rgb(139, 110, 45) 50%, rgb(226, 208, 152) 75%, rgb(139, 110, 45) 100%);
    background: -o-linear-gradient(left, rgb(139, 110, 45) 0%, rgb(246, 243, 199) 16%, rgb(193, 152, 77) 35%, rgb(139, 110, 45) 50%, rgb(226, 208, 152) 75%, rgb(139, 110, 45) 100%);
    background: -ms-linear-gradient(left, rgb(139, 110, 45) 0%, rgb(246, 243, 199) 16%, rgb(193, 152, 77) 35%, rgb(139, 110, 45) 50%, rgb(226, 208, 152) 75%, rgb(139, 110, 45) 100%);
    background: -moz-linear-gradient(left, rgb(139, 110, 45) 0%, rgb(246, 243, 199) 16%, rgb(193, 152, 77) 35%, rgb(139, 110, 45) 50%, rgb(226, 208, 152) 75%, rgb(139, 110, 45) 100%);
    background: linear-gradient(to right, rgb(139, 110, 45) 0%, rgb(246, 243, 199) 16%, rgb(193, 152, 77) 35%, rgb(139, 110, 45) 50%, rgb(226, 208, 152) 75%, rgb(139, 110, 45) 100%);
}

.midashi04::before {
    top: 5px;
}

.midashi04::after {
    bottom: 5px;
}

.midashi05 {
    width: 100%;
    white-space: nowrap;
    font-family: var(--mincho);
    margin: 10% auto;
    color: #7b6660;
    font-size: 5.2vw;
    text-align: center;
    position: relative;
    display: -webkit-box;
    display: -moz-box;
    display: -webkit-flex;
    display: box;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    justify-content: space-between;
}

.midashi05 span {
    width: 100%;
}

.midashi05:before, .midashi05:after {
    content: '';
    height: 1px;
    background: #7b6660;
    width: calc(100% / 2 - 20px);
}

.midashi05:before {
    margin-right: 10px;
}

.midashi05:after {
    margin-left: 10px;
}
/* ------------------------------------
    /h1-h5 sp
------------------------------------ */
/* ------------------------------------
    h1-h5 pc
------------------------------------ */
@media only screen and (min-width: 736px) {
.container {
    padding-top: 170px;
}

.more01 {
    margin: 62px auto 0;
    width: fit-content;
    font-size: 20px;
    padding: 15px 45px 15px 20px ;
}

.more01:after {
    width: 50px;
    max-width: initial;
}

.more02 {
    margin: 20px auto;
    width: fit-content;
    font-size: 20px;
    padding: 15px 45px 15px 20px;
}

.more02:after {
    width: 50px;
    max-width: initial;
}

.midashi01 {
    margin-bottom: 80px;
}

.midashi01 .en {
    margin-bottom: 6px;
    font-size: 18px;
    letter-spacing: 1px;
}

.midashi01 .jp {
    font-size: 30px;
    margin-bottom: 10px;
}

.midashi01::after {
    width: 5%;
}

.midashi02 {
    margin-bottom: 4%;
}

.midashi02 span {
    font-size: 46px;
    padding: 0 20px;
}

.midashi03 {
    margin: 50px auto;
}

.midashi03 .en {
    font-size: 80px;
/*     margin-bottom: 2%; */
}

.midashi04 {
    font-size: 26px;
    padding: 3%;
    margin-bottom: 20px;
}

.midashi04::before,.midashi04::after {
    width: 100%;
    left: 0;
    height: 1px;
}

.midashi04::before {
    top: 5px;
}

.midashi04::after {
    bottom: 5px;
}

.midashi05 {
    margin: 3% auto;
    font-size: 25px;
}

}

/* ------------------------------------
 / h1-h5
------------------------------------ */

li,ol,ul {
    list-style: none
}

table {
    border-collapse: collapse
}

caption,th {
    text-align: left
}

fieldset {
    border: 0
}

a {
    text-decoration: none;
    color: inherit;
    color: #28282d;
    text-decoration: none;
    display: block;
    -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1);
    transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1);
}

img {
    vertical-align: top;
    border: 0;
    max-width: 100%
}

br {
    letter-spacing: 0
}

button,input:not([type='checkbox']):not([type='radio']),textarea {
    -webkit-appearance: none;
    border-radius: 0;
    border: 0;
    outline: 0;
    background: transparent
}

a:hover {
    text-decoration: none
}

.clb {
    clear: both
}

.clr {
    clear: right
}

.cll {
    clear: left
}

.cln {
    clear: none
}

.cura {
    cursor: auto
}

.curc {
    cursor: crosshair
}

.curd {
    cursor: default
}

.curm {
    cursor: move
}

.curp {
    cursor: pointer
}

.curt {
    cursor: text
}

.dn {
    display: none
}

.di {
    display: inline
}

.db {
    display: block
}

.dib {
    display: inline-block
}

.dtb {
    display: table
}

.dtbc {
    display: table-cell
}

.fll {
    float: left
}

.flr {
    float: right
}

.fln {
    float: none
}

.fsn {
    font-style: normal
}

.fsi {
    font-style: italic
}

.fso {
    font-style: oblique
}

.fwn {
    font-weight: 400
}

.fwb {
    font-weight: 700
}

.fwbr {
    font-weight: bolder
}

.fwlr {
    font-weight: lighter
}

.fz10 {
    font-size: 10px
}

.fz11 {
    font-size: 11px
}

.fz12 {
    font-size: 9pt
}

.fz13 {
    font-size: 13px
}

.fz14 {
    font-size: 14px
}

.fz15 {
    font-size: 15px
}

.fz16 {
    font-size: 1pc
}

.fz17 {
    font-size: 17px
}

.fz18 {
    font-size: 18px
}

.fz19 {
    font-size: 19px
}

.fz20 {
    font-size: 20px
}

.fz21 {
    font-size: 21px
}

.fz22 {
    font-size: 22px
}

.fz23 {
    font-size: 23px
}

.fz24 {
    font-size: 24px
}

.fz25 {
    font-size: 25px
}

.fz30 {
    font-size: 30px
}

.fz35 {
    font-size: 35px
}

.fz40 {
    font-size: 40px
}

.fz45 {
    font-size: 45px
}

.fz50 {
    font-size: 50px
}

.ha {
    height: auto
}

.h0 {
    height: 0
}

.h100p {
    height: 100%
}

.lh100 {
    line-height: 1
}

.lh110 {
    line-height: 1.1
}

.lh120 {
    line-height: 1.2
}

.lh130 {
    line-height: 1.3
}

.lh140 {
    line-height: 1.4
}

.lh150 {
    line-height: 1.5
}

.lh160 {
    line-height: 1.6
}

.lh170 {
    line-height: 1.7
}

.lh180 {
    line-height: 1.8
}

.lh190 {
    line-height: 1.9
}

.lh200 {
    line-height: 2
}

.lts0 {
    letter-spacing: 0
}

.lts25 {
    letter-spacing: 0.025em
}

.lts50 {
    letter-spacing: 0.05em
}

.lts80 {
    letter-spacing: 0.08em
}

.lts100 {
    letter-spacing: 0.1em
}

.lts125 {
    letter-spacing: 0.125em
}

.lts150 {
    letter-spacing: 0.15em
}

.lts175 {
    letter-spacing: 0.175em
}

.lts200 {
    letter-spacing: 0.2em
}

.lts300 {
    letter-spacing: 0.3em
}

.lts400 {
    letter-spacing: 0.4em
}

.lts500 {
    letter-spacing: 0.5em
}

.lts600 {
    letter-spacing: 0.6em
}

.lts700 {
    letter-spacing: 0.7em
}

.lts800 {
    letter-spacing: 0.8em
}

.lts900 {
    letter-spacing: 0.9em
}

.lts1000 {
    letter-spacing: 1em
}

.mahn {
    max-height: none
}

.mah100p {
    max-height: 100%
}

.mawn {
    max-width: none
}

.maw100p {
    max-width: 100%
}

.mih0 {
    min-height: 0
}

.mih100p {
    min-height: 100%
}

.miw0 {
    min-width: 0
}

.miw100p {
    min-width: 100%
}

.mt5 {
    margin-top: 5px
}

.mt10 {
    margin-top: 10px
}

.mt15 {
    margin-top: 15px
}

.mt20 {
    margin-top: 20px
}

.mt25 {
    margin-top: 25px
}

.mt30 {
    margin-top: 30px
}

.mt35 {
    margin-top: 35px
}

.mt40 {
    margin-top: 40px
}

.mt45 {
    margin-top: 45px
}

.mt50 {
    margin-top: 50px
}

.mt55 {
    margin-top: 55px
}

.mt60 {
    margin-top: 60px
}

.mt65 {
    margin-top: 65px
}

.mt70 {
    margin-top: 70px
}

.mt75 {
    margin-top: 75px
}

.mt80 {
    margin-top: 5pc
}

.mt85 {
    margin-top: 85px
}

.mt90 {
    margin-top: 90px
}

.mt95 {
    margin-top: 95px
}

.mt100 {
    margin-top: 75pt
}

.mt110 {
    margin-top: 110px
}

.mt120 {
    margin-top: 90pt
}

.mt130 {
    margin-top: 130px
}

.mt140 {
    margin-top: 140px
}

.mt150 {
    margin-top: 150px
}

.mt160 {
    margin-top: 10pc
}

.mt170 {
    margin-top: 170px
}

.mt180 {
    margin-top: 180px
}

.mt190 {
    margin-top: 190px
}

.mt200 {
    margin-top: 200px
}

.mra {
    margin-right: auto
}

.mb5 {
    margin-bottom: 5px
}

.mb10 {
    margin-bottom: 10px
}

.mb15 {
    margin-bottom: 15px
}

.mb20 {
    margin-bottom: 20px
}

.mb25 {
    margin-bottom: 25px
}

.mb30 {
    margin-bottom: 30px
}

.mb35 {
    margin-bottom: 35px
}

.mb40 {
    margin-bottom: 40px
}

.mb45 {
    margin-bottom: 45px
}

.mb50 {
    margin-bottom: 50px
}

.mb55 {
    margin-bottom: 55px
}

.mb60 {
    margin-bottom: 60px
}

.mb65 {
    margin-bottom: 65px
}

.mb70 {
    margin-bottom: 70px
}

.mb75 {
    margin-bottom: 75px
}

.mb80 {
    margin-bottom: 5pc
}

.mb85 {
    margin-bottom: 85px
}

.mb90 {
    margin-bottom: 90px
}

.mb95 {
    margin-bottom: 95px
}

.mb100 {
    margin-bottom: 75pt
}

.mb110 {
    margin-bottom: 110px
}

.mb120 {
    margin-bottom: 90pt
}

.mb130 {
    margin-bottom: 130px
}

.mb140 {
    margin-bottom: 140px
}

.mb150 {
    margin-bottom: 150px
}

.mb160 {
    margin-bottom: 10pc
}

.mb170 {
    margin-bottom: 170px
}

.mb180 {
    margin-bottom: 180px
}

.mb190 {
    margin-bottom: 190px
}

.mb200 {
    margin-bottom: 200px
}

.mla {
    margin-left: auto
}

.pt5 {
    padding-top: 5px
}

.pt10 {
    padding-top: 10px
}

.pt15 {
    padding-top: 15px
}

.pt20 {
    padding-top: 20px
}

.pt25 {
    padding-top: 25px
}

.pt30 {
    padding-top: 30px
}

.pt35 {
    padding-top: 35px
}

.pt40 {
    padding-top: 40px
}

.pt45 {
    padding-top: 45px
}

.pt50 {
    padding-top: 50px
}

.pt55 {
    padding-top: 55px
}

.pt60 {
    padding-top: 60px
}

.pt65 {
    padding-top: 65px
}

.pt70 {
    padding-top: 70px
}

.pt75 {
    padding-top: 75px
}

.pt80 {
    padding-top: 5pc
}

.pt85 {
    padding-top: 85px
}

.pt90 {
    padding-top: 90px
}

.pt95 {
    padding-top: 95px
}

.pt100 {
    padding-top: 75pt
}

.pt110 {
    padding-top: 110px
}

.pt120 {
    padding-top: 90pt
}

.pt130 {
    padding-top: 130px
}

.pt140 {
    padding-top: 140px
}

.pt150 {
    padding-top: 150px
}

.pt160 {
    padding-top: 10pc
}

.pt170 {
    padding-top: 170px
}

.pt180 {
    padding-top: 180px
}

.pt190 {
    padding-top: 190px
}

.pt200 {
    padding-top: 200px
}

.pb5 {
    padding-bottom: 5px
}

.pb10 {
    padding-bottom: 10px
}

.pb15 {
    padding-bottom: 15px
}

.pb20 {
    padding-bottom: 20px
}

.pb25 {
    padding-bottom: 25px
}

.pb30 {
    padding-bottom: 30px
}

.pb35 {
    padding-bottom: 35px
}

.pb40 {
    padding-bottom: 40px
}

.pb45 {
    padding-bottom: 45px
}

.pb50 {
    padding-bottom: 50px
}

.pb55 {
    padding-bottom: 55px
}

.pb60 {
    padding-bottom: 60px
}

.pb65 {
    padding-bottom: 65px
}

.pb70 {
    padding-bottom: 70px
}

.pb75 {
    padding-bottom: 75px
}

.pb80 {
    padding-bottom: 5pc
}

.pb85 {
    padding-bottom: 85px
}

.pb90 {
    padding-bottom: 90px
}

.pb95 {
    padding-bottom: 95px
}

.pb100 {
    padding-bottom: 75pt
}

.pb110 {
    padding-bottom: 110px
}

.pb120 {
    padding-bottom: 90pt
}

.pb130 {
    padding-bottom: 130px
}

.pb140 {
    padding-bottom: 140px
}

.pb150 {
    padding-bottom: 150px
}

.pb160 {
    padding-bottom: 10pc
}

.pb170 {
    padding-bottom: 170px
}

.pb180 {
    padding-bottom: 180px
}

.pb190 {
    padding-bottom: 190px
}

.pb200 {
    padding-bottom: 200px
}

.ovh {
    overflow: hidden
}

.ovv {
    overflow: visible
}

.ovs {
    overflow: scroll
}

.ova {
    overflow: auto
}

.poss {
    position: static
}

.posr {
    position: relative
}

.posa {
    position: absolute
}

.posf {
    position: fixed
}

.tar {
    text-align: right
}

.tal {
    text-align: left
}

.tac {
    text-align: center
}

.tdn {
    text-decoration: none
}

.tdu {
    text-decoration: underline
}

.tdo {
    text-decoration: overline
}

.tdl {
    text-decoration: line-through
}

.vat {
    vertical-align: top
}

.vam {
    vertical-align: middle
}

.vab {
    vertical-align: bottom
}

.vabl {
    vertical-align: baseline
}

.vv {
    visibility: visible
}

.vh {
    visibility: hidden
}

.vc {
    visibility: collapse
}

.wa {
    width: auto
}

.w0 {
    width: 0
}

.w100p {
    width: 100%
}

.block-flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center
}

.fadein {
    opacity: 0;
    transition: all 1s
}

.fadein.scroll-fade {
    opacity: 1
}

.fadein-right {
    opacity: 0;
    -webkit-transform: translate(50px, 0);
    transform: translate(50px, 0);
    transition: all 1s
}

.fadein-right.scroll-fade {
    opacity: 1;
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0)
}

.fadein-left {
    opacity: 0;
    -webkit-transform: translate(-50px, 0);
    transform: translate(-50px, 0);
    transition: all 1s
}

.fadein-left.scroll-fade {
    opacity: 1;
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0)
}

.fadein-top {
    opacity: 0;
    -webkit-transform: translate(0, -50px);
    transform: translate(0, -50px);
    transition: all 1s
}

.fadein-top.scroll-fade {
    opacity: 1;
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0)
}

.fadein-bottom {
    opacity: 0;
    -webkit-transform: translate(0, 50px);
    transform: translate(0, 50px);
    transition: all 1s
}

.fadein-bottom.scroll-fade {
    opacity: 1;
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0)
}

.effect-space {
    display: inline-block;
    width: 0.3em
}

.tE-fade {
    display: inline-block;
    transition: all 0.7s ease;
    opacity: 0
}

.tE-fade.activeEffect {
    opacity: 1
}

.tE-fade-left {
    display: inline-block;
    transition: all 0.7s ease;
    opacity: 0;
    -webkit-transform: translateX(-30px);
    transform: translateX(-30px)
}

.tE-fade-left.activeEffect {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0)
}

.tE-fade-right {
    display: inline-block;
    transition: all 0.7s ease;
    opacity: 0;
    -webkit-transform: translateX(30px);
    transform: translateX(30px)
}

.tE-fade-right.activeEffect {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0)
}

.tE-fade-top {
    display: inline-block;
    transition: all 0.7s ease;
    opacity: 0;
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px)
}

.tE-fade-top.activeEffect {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0)
}

.tE-fade-bottom {
    display: inline-block;
    transition: all 0.7s ease;
    opacity: 0;
    -webkit-transform: translateY(30px);
    transform: translateY(30px)
}

.tE-fade-bottom.activeEffect {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0)
}

.tE-roll-left {
    display: inline-block;
    transition: all 0.7s ease;
    opacity: 0;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom
}

.tE-roll-left.activeEffect {
    opacity: 1;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg)
}

.tE-roll-right {
    display: inline-block;
    transition: all 0.7s ease;
    opacity: 0;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom
}

.tE-roll-right.activeEffect {
    opacity: 1;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg)
}
