@charset "UTF-8";


/* mainvisual
------------------------------------------------- */
.mainvisual {
    width: 100%;
    height: 100vh;
    min-height: 620px;
    background-color: #000;
    position: relative;
}
.mainvisual .logobox {
    width: 100%;
    text-align: center;
    color: #fff;
    position: absolute;
    left: 50%;
    top: 56%;
    transform: translateX(-50%) translateY(-50%);
    z-index: 2;
}
.mainvisual h2 {
    font-weight: 400;
    line-height: 1.15;
}
.mainvisual h3 {
    font-weight: 500;
    padding: 0.75em 0 1.25em;
}
.mainvisual .btnst1 {
    margin: 0 auto;
}
.mainvisual .moviebox {
    width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	z-index: 1;
}
.mainvisual .moviebox video {
    display: block;
    width: 100%;
	height: 100%;
	object-fit: cover;
}
@media only screen and (max-width:750px){
.mainvisual {
    height: 100svh;
    min-height: 400px;
}
.mainvisual .logobox {
    top: 50%;
}
.mainvisual h2 {
    font-size: 8.5266vw;
}
.mainvisual h3 {
    font-size: 4.168vw;
}
.mainvisual .moviebox {
    height: 100svh;
}
}


/* introduction
------------------------------------------------- */
.introduction {
    background: url("../img/top/introduction_bg.jpg") center center no-repeat;
    background-size: cover;
    padding: 6em 0 6.875em;
}
.introduction .con {
    width: 46.6%;
}
.introduction .con h3 {
    line-height: 1.75;
    margin: 0.75em 0;
}
.introduction .con p {
    letter-spacing: 0.05em;
    padding-bottom: 1.5em;
}
.introduction .photo1 {
    width: 32.9375em;
    position: absolute;
    left: 6.5em;
    top: 0;
}
.introduction .photo2 {
    width: 29em;
    margin: 0 auto 2.8em;
}
@media only screen and (max-width:750px){
.introduction {
    background-image: url("../img/top/introduction_bg_sp.jpg");
    padding: 12.5vw 0 18vw;
}
.introduction .con {
    width: 100%;
}
.introduction .con h3 {
    font-size: 4.4vw;
    margin: 0 0 6vw;
}
.introduction .con p {
    padding: 9.5vw 0 1.5em;
}
.introduction .photo1 {
    width: 100%;
    position: static;
}
.introduction .photo2 {
    width: 100%;
    margin: 0 auto 7.33vw;
}
}


/* programs
------------------------------------------------- */
.programs {
    background-color: #faf7f1;
    padding: 4.25em 0 4.5em;
}
.programs ul li:nth-child(4),
.programs ul li:nth-child(5) {
    margin-bottom: 3.125em;
}
@media only screen and (max-width:750px){
.programs {
    padding: 12.5vw 0 16vw;
}
.programs ul li:nth-child(4),
.programs ul li:nth-child(5) {
    margin-bottom: 0;
}
}


/* fresh
------------------------------------------------- */
.fresh {
    height: 49.375em;
    background: url("../img/top/fresh_bg.jpg") center center no-repeat;
    background-size: cover;
    display: flex;
    align-items: center;
}
.fresh .inner {
    padding: 0 3.75em;
}
.fresh .con {
    width: 27.8125em;
    padding-bottom: 5em;
}
.fresh .con .headline1 {
    text-align: left;
    margin-bottom: 1em;
}
.fresh .con p {
    line-height: 1.8;
    letter-spacing: 0.05em;
    padding-bottom: 2em;
}
.fresh .con .btnst2 {
    margin: 0;
}
@media only screen and (max-width:750px){
.fresh {
    height: 106vw;
    background: url("../img/top/fresh_bg.jpg") center center no-repeat;
    background-size: auto 100%;
}
.fresh .inner {
    padding: 0;
}
.fresh .con {
    width: 100%;
    padding-bottom: 0;
}
.fresh .con .headline1 {
    margin-bottom: 0.75em;
}
.fresh .con p {
    font-size: 2.877vw;
    padding-bottom: 2em;
}
.fresh .con .btnst2 {
    margin: 0 auto;
}
}


/* lipocube, doctor
------------------------------------------------- */
.lipocube .photo {
    width: 50vw;
    margin-left: calc(36.1875em - 50cqw);
}
.doctor .photo {
    width: 50vw;
    margin-right: calc(36.1875em - 50cqw);
}
.lipocube .con,
.doctor .con {
    width: 38.86%;
}
.lipocube .con .headline1,
.doctor .con .headline1 {
    text-align: left;
    margin-bottom: 1em;
}
.lipocube .con p,
.doctor .con p {
    line-height: 1.8;
    letter-spacing: 0.05em;
    padding-bottom: 2em;
}
.lipocube .con .btnst2,
.doctor .con .btnst2 {
    margin: 0;
}
@media only screen and (max-width:750px){
.lipocube .photo {
    width: 100vw;
    margin-left: -6vw;
}
.doctor .photo {
    width: 100vw;
    margin: 0 0 0 -6vw;
}
.lipocube .con,
.doctor .con {
    width: 100%;
    padding: 11.5vw 0 10.5vw;
}
.doctor .con {
    padding-top: 8.5vw;
}
.lipocube .con .headline1,
.doctor .con .headline1 {
    font-size: 2.9vw;
    text-align: left;
    margin-bottom: 1em;
}
.lipocube .con .headline1 span,
.doctor .con .headline1 span {
    font-size: 6.589vw;
}
.lipocube .con p,
.doctor .con p {
    font-size: 2.877vw;
    padding-bottom: 2em;
}
}


/* newslist
------------------------------------------------- */
.newslist {
    background-color: #faf7f1;
    padding: 5em 0 5.5em;
}
.newslist .headline1 {
    margin-bottom: 2.5em;
}
@media only screen and (max-width:750px){
.newslist {
    padding: 15.5vw 0 4.65vw;
}
.newslist .headline1 {
    font-size: 2.9vw;
}
.newslist .headline1 span {
    font-size: 8vw;
}
}


/* snav
------------------------------------------------- */
@media only screen and (max-width:750px){
#snav a::before {
    content: '';
    width: 100%;
    height: 100%;
    background-color: #fff;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    transition: 0.4s;
}
#snav a::after {
    border: 1px solid #333;
}
#snav a span {
    color: #333;
}
.hbg #snav a::before {
    opacity: 0;
}
.hbg #snav a::after {
    border: 1px solid #fff;
}
.hbg #snav a span {
    color: #fff;
}
}