@charset "UTF-8";

/* ----------------------------reset ---------------------------- */

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

body {
    font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
    line-height: 1.75;
    -webkit-text-size-adjust: 100%;
    background: #fff;
}

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

li {
    list-style-type: none;
}

a {
    outline: none;
    text-decoration: none;
}

*:focus {
    outline: none;
}

strong {
    font-weight: bold;
}

img {
    max-width: 100%;
}

.cf {
    zoom: 1;
}

.cf:before,
.cf:after {
    content: "";
    display: table;
}

.cf:after {
    clear: both;
}


/* ----------------------------common ---------------------------- */

.nobreak {
    display: inline-block;
}

.wrap {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
    background-color: #f8f7fc;
}

.content_ttl {
    width: 60%;
    margin: 0 auto;
}

.btn_counseling {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    padding: 0 2%;
    filter: drop-shadow(0px 1px 5px #838383);
    animation: scale 2.5s ease-out infinite normal;
}

@keyframes scale {
    0%,
    40%,
    60%,
    80% {
        transform: scale(1.0);
    }
    50%,
    70% {
        transform: scale(0.98);
    }
}


/* ----------------------------header ---------------------------- */

.header {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
    position: fixed;
    z-index: 99;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: rgba(255, 255, 255, .6);
    padding: 10px 0;
}

.header_logo {
    width: 24%;
    margin: 0 2%;
}

.header_logo a {
    display: block;
}

.header_btn ul {
    display: flex;
}

.header_btn li {
    margin-right: 3%;
}


/* ----------------------------first View ---------------------------- */

.hero {
    position: relative;
}

.reserve_btn01 {
    text-align: center;
    position: absolute;
    bottom: 2.5%;
}

.campaign {
    margin-top: 8%;
}

.treatment {
    text-align: center;
    margin-bottom: 12%;
    padding: 0 2%;
}

.campaign01 {
    margin-bottom: 4%;
}

.coupon {
    position: relative;
    text-align: center;
}

.campaign_hukidasi {
    position: absolute;
    top: -12%;
    left: 0;
    right: 0;
    padding: 0 4%;
}

.keyframe1 {
    animation: fluffy 1.5s ease-in-out infinite alternate;
}

@keyframes fluffy {
    0% {
        transform: translate(0, 0px);
    }
    100% {
        transform: translate(0, 10px);
    }
}

.campaign02 {
    margin-bottom: 8%;
    text-align: center;
    padding: 0 6%;
}

.shine span.mask {
    position: relative;
    /*キラッの基点となる位置を定義*/
    display: block;
    line-height: 0;
    /*行の高さを0にする*/
    overflow: hidden;
    /*拡大してはみ出る要素を隠す*/
}

.shine span.mask::before {
    position: absolute;
    content: "";
    width: 20%;
    /*キラッの横幅*/
    height: 100%;
    /*キラッの縦幅*/
    top: 0;
    /*.shine span.maskのトップ0を基点*/
    left: -75%;
    /*画面の見えていない左から右へ移動するスタート地点*/
    background: linear-gradient(to right, rgba(255, 255, 255, 0.11) 0%, rgba(255, 255, 255, 0.404) 100%);
    transform: skewX(-25deg);
    /*背景白透過を斜めに*/
    animation: shine 2s ease-in-out infinite;
}

@keyframes shine {
    100% {
        left: 125%;
        /*画面の見えていない左から右へ移動する終了地点*/
    }
}


/* ----------------------------reasons ---------------------------- */

.reasons {
    position: relative;
}

.reasons,
.anxiety {
    margin-bottom: 6%;
}

.reasons_half {
    position: absolute;
    top: -2%;
    z-index: 3;
    left: 0;
    right: 0;
}

.reasons .content_body:before {
    content: "";
    display: inline-block;
    position: absolute;
    width: 100%;
    height: 100%;
    background: url("../images/reason_bg.jpg") no-repeat center top/100% auto;
    top: 0;
    left: 0;
    z-index: 1;
}

.reasons_list {
    position: relative;
    z-index: 2;
    padding: 8% 0;
}

.reasons_list_item+.reasons_list_item {
    margin-top: 4%;
}

.reasons_list_item:nth-child(odd) {
    text-align: right;
    padding-left: 6%;
}

.reasons_list_item:nth-child(even) {
    text-align: left;
    padding-right: 6%;
}


/* ----------------------------anxiety ---------------------------- */

.anxiety {
    text-align: center;
    padding: 0 4%;
}

.secretmes {
    text-align: center;
    margin-bottom: 4%;
    padding: 0 3%;
}

.reserve_btn02 {
    margin-bottom: 40px;
}

.anxiety01,
.anxiety02,
.reasons_list_item {
    opacity: 0;
    transform: translateY(30px);
    transition: 1s all;
}

.flow_list li {
    opacity: 0;
    transform: translateY(15px);
    transition: .5s all;
}


/* ----------------------------flow ---------------------------- */

.flow {
    position: relative;
    width: 100%;
    max-width: 750px;
    margin: 0 auto 8%;
}

.flow_list {
    text-align: center;
}

.flow_half {
    position: absolute;
    top: -0.6%;
    z-index: 3;
    left: 0;
    right: 0;
}

.flow_bg {
    background-image: linear-gradient( -45deg, rgb(228, 228, 245) 0%, rgb(224, 243, 255) 100%);
}

.flow_list {
    padding: 10% 6%;
    text-align: center;
}

.flow_aside {
    margin-top: 16%;
}


/* ----------------------------information ---------------------------- */

.information {
    width: 100%;
    max-width: 750px;
    margin: 0 auto 10%;
}

.info_table {
    border-collapse: collapse;
    color: #313561;
    font-family: fot-tsukuardgothic-std, sans-serif;
    width: 98%;
    margin: 0 auto;
}

.border_dot {
    border-bottom: 1px dashed #313561;
}

th,
td {
    font-size: 2rem;
    padding: 2rem;
}

th {
    width: 120px;
    text-align: left;
}


/* ----------------------------access ---------------------------- */


/*anchor*/

.access {
    width: 100%;
    max-width: 750px;
    margin: 0 auto 8%;
}

.access .content_ttl:after {
    width: 26.27%;
    padding-bottom: 38.27%;
    left: 0;
}

.map {
    width: 98%;
    margin: 0 auto;
}

iframe {
    width: 100%;
}

.access_txt {
    padding: 0 2%;
}

.access_txt p {
    font-size: 1.8rem;
    color: #313561;
    font-family: fot-tsukuardgothic-std, sans-serif;
}


/* ----------------------------footer ---------------------------- */

.footer {
    padding: 4% 0 0.8%;
    background: #889EB5;
    text-align: center;
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
}

.footer_copy {
    margin-top: 0.8%;
    font-size: 1rem;
    color: #fff;
}