﻿@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500&display=swap');
.top_cms_title h2, #sf h3, .linkBtn .txt span {
     font-family: 'Cinzel', serif;
     font-weight: normal;
 }
/* html, body{overflow: auto}*/
/*.pp-section{position: static}*/
html {
    font-size: 16px;
}
.modal_scroll .txt_white {
    color: #212121;
}

@keyframes triangle-skew-spin {
  25% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
            transform: perspective(100px) rotateX(180deg) rotateY(0); }
  50% {
    -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
            transform: perspective(100px) rotateX(180deg) rotateY(180deg); }
  75% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
            transform: perspective(100px) rotateX(0) rotateY(180deg); }
  100% {
    -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
            transform: perspective(100px) rotateX(0) rotateY(0); } }
.triangle {
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translate(-50%,-50%);
}
.triangle-skew-spin .loader {
    box-sizing: border-box;
    display: flex;
    flex: 0 1 auto;
    flex-direction: column;
    flex-grow: 1;
    flex-shrink: 0;
    flex-basis: 25%;
    max-width: 25%;
    height: 200px;
    align-items: center;
    justify-content: center;
}
.triangle-skew-spin > div {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-bottom: 20px solid #fff;
    -webkit-animation: triangle-skew-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite;
    animation: triangle-skew-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite;
}
.intro_img img, .intro_img a span, .intro_img a::before, .modal_wrap figure img, .cms_4-a figure {
    border-radius: 50%;
}
.fv_eng {
    right: 5%;
    bottom: 19%;
    max-width: 550px;
    z-index: 1;
    width: 52%;
}
.button_container.active .top, .button_container.active .bottom {
    background: #9f9f9f;
}
/* top loader */
.top_loader{
	z-index: 999;
	left: 0;
	top: 0;
}
.top_loader .logo{
    max-width: 200px;	
}
.top_loader .logo img{
	width: 100%!important;
}
.top_loader .loader_txt{
	z-index: 11;
	pointer-events: none;
	font-size:-webkit-calc(1rem + 25px);
	font-size : calc(1rem + 25px);
	 text-shadow: 1px 1px 19px #ffffff, -1px 1px 17px #ffffff, 1px -1px 17px #ffffff, -1px -1px 11px #ffffff, 1px 0px 10px #ffffff, 0px 1px 10px #ffffff, -1px 0px 12px #ffffff, 0px -1px 17px #ffffff;
}
.top_loader .loader_txt span,.scroll_anime span{
	display: inline-block;
	opacity: 0;
	transform: translateY(20px);
}
.loader_txt span{
	display: inline-block;
	opacity: 0;
	transform: translateY(20px);
}
.loader_txt span.active,.scroll_anime span.active{
-webkit-animation: fw 0.5s ease 0.5s 1 forwards;
    animation: fw 0.5s ease 0.5s 1 forwards;
}
@-webkit-keyframes fw {
	50%{
		transform: translateY(0px);
	}
	100%{
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes fw {
	50%{
		transform: translateY(0px);
	}
	100%{
		opacity: 1;
		transform: translateY(0);
	}
}


.fix_bnr {
    position: fixed;
    bottom: 30px;
    z-index: 7;
    left: 27px;
}
.fix_bnr a {
    background-image: linear-gradient(to right, #ee9ebc 0%, #fbc4c4 51%, #f9cbcb 100%);
    flex: 1 1 auto;
    padding: 19px 26px 19px;
    text-align: center;
    text-transform: uppercase;
    transition: 0.5s;
    background-size: 200% auto;
    color: white;
   box-shadow: 0 0 20px rgb(158 158 158 / 55%);
    border-radius: 46px;
    border: 3px solid #fff;
    font-weight: bold;
}
.fix_bnr i {
    font-weight: normal;
}
.fix_bnr a:hover {
    background-position: right center;
    transform: scale(1.05);
}

.top_cms_title h2 {
    font-size: 64px;
    letter-spacing: 0.5rem;
    color: #a8a8a8;
    line-height: 1;
}
#logo {
    max-width: 310px;
}
.linkBtn {
    max-width: 550px;
    margin: 25px auto;
}
.linkBtn a::before {
    position: absolute;
    content: "";
    width: 0px;
    height: 1px;
    left: 0;
    bottom: -1px;
    background-color: currentColor;
    transition: 0.6s;
}
.linkBtn a:hover::before {
    width: 100%;
}
.linkBtn .icon {
    width: 46px;
    height: 46px;
    border-radius: 26px;
    background-color: #fff;
    display: flex;
    justify-content: center;
    align-content: center;
    background-image: url(Dup/img/arrow.png);
    background-repeat: no-repeat;
    background-size: 16px;
    transition: all 0.5s;
    background-position: center;
}
.linkBtn a:hover .icon {
    background-color: #81796e;
     background-image: url(Dup/img/arrow_w.png);
}
#header ul li a {
    border-color: #666;
    color: #666;
    padding-top: 10px;
    padding-bottom: 10px;
}
#header ul li a:hover {
    border-color: #ff9090;
    color: #ff9090;
}
#header .h_box > li:last-child {
    margin-left: 49px;margin-right: 30px;
}
.button_container span {
    background: #666;
}
.pp-scrollable {
    background-image: url(Dup/img/bg.jpg);
    background-size: 600px;
}
.sf_contact_tel {
    display: none;
}
.sns_link a.width_20 {
    width: 30px;
}
header {
    /*box-shadow: -3px 1px 10px -1px rgba(0, 0, 0, 0.12);*/
    background-color: transparent!important;
}
header {
    padding-top: 14px;
    padding-bottom: 14px;
}
#header .h_tel_btn {
    display: none;
}
.banner a, #header ul li a {
    border-radius: 40px;
}
.more_btn > span, .sf_contact_mail a, .more_btn a {
    border-radius: 33px;
}
.intro_box {
    max-width: inherit;
    margin-left: 30px;
    margin-right: 25px;
}
.intro_img div {
    font-size: 5em;
    top: 0%;
    left: -2%;
    -webkit-text-stroke: 1px #ffffff;
    z-index: 1;
    font-family: 'Cinzel', serif;
    font-weight: normal;
}
#main_img {
    overflow-y: hidden;
    background-image: url(Dup/img/main_img.jpg);
    background-size: cover;
    background-position: 50% 50%;
}
.main_img_txt {
    text-shadow: 1px 1px 19px #ffffff, -1px 1px 17px #ffffff, 1px -1px 17px #ffffff, -1px -1px 11px #ffffff, 1px 0px 10px #ffffff, 0px 1px 10px #ffffff, -1px 0px 12px #ffffff, 0px -1px 17px #ffffff;
    color: #666;
    border: 0;
    left: auto;
    right: 7%;
    transform: translateY(-50%);
}
.more_btn > span {
    box-shadow: 0 0 1vw 0 rgb(219 66 66 / 10%) inset;
}
.more_btn a i, .more_btn > span i {
    right: 1.3rem;
}
.modal_txt_wrap .list {
    display: flex;
    max-width: 1100px;
    margin: 0 auto;
    justify-content: center;
    align-items: stretch;
}
.bulletslist {
    position: relative;
    width: 23.4%;
    box-sizing: border-box;
    margin-left: 0.8%;
    margin-right: 0.8%;
    background-color: #ffffff;
    border-radius: 5px;
    padding: 2% 1%;
    margin-top: 35px;
    box-shadow: -0.137px 3.596px 31px 0 rgb(205 205 205 / 38%);
}
.check {
    position: absolute!important;
    transform: translateX(-50%);
    left: 50%;
    top: 0px;
}
.check img {
    width: 40px;
    transform: translateY(-50%);
}
.highlight {
    color: #932154;
    font-size: 1.2rem;
    border-bottom: 2px solid #d3749f;
}
#pp-nav li a {
    color: #eb8a86;
}
.topcms_news_type1 .box_wrap, #topcms_news_type1.box_wrap {
	align-items: stretch;
}
.topcms_news_type1 .cate_box a, #topcms_news_type1 .cate_box .box_item{
	flex-direction: column;
}
.topcms_news_type1 .cate_box, #topcms_news_type1 .cate_box{
	width: 30.33333%!important;
	margin-right: 1.5%;
	margin-left: 1.5%;
	cursor: pointer;
	box-shadow: 0 10px 20px rgb(0 0 0 / 0);
}
.topcms_news_type1 .cate_box, #topcms_news_type1 .cate_box .box_item{
	border-radius: 20px;
 box-shadow: 1px 5px 9px rgb(0 0 0 / 9%);
	background-color: #fff;
	padding: 0;
}

.topcms_news_type1 .cate_box:hover, #topcms_news_type1 .cate_box .box_item:hover {
	transform: translateY(-5px);
}
.topcms_news_type1 .cate_box .box_item, #topcms_news_type1 .cate_box .box_item{
	cursor: pointer;
}
.topcms_news_type1 .txt_height, #topcms_news_type1 .txt_height{
	height: 3em
}
.topcms_news_type1 .box_txt1:empty, #topcms_news_type1 .box_txt1:empty {
	display: block!important;
}
.topcms_news_type1 .box_img1, #topcms_news_type1 .box_item .box_img1{
	border-radius: 20px 20px 0 0;
	flex-grow: 0;
}
.topcms_news_type1 .txt_box, #topcms_news_type1 .txt_box{
	flex-grow: 1
}

/* topcms_news_type1 .modal */
html.modalset{overflow: hidden;}
.topcms_news_type1 .modal, #topcms_news_type1 .modal{
	display: none;
	width: 100%;
	height: 100vh;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 9999;
	line-height: 1.7;
}
.topcms_news_type1 .modal-wrap, #topcms_news_type1 .modal-wrap {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	text-align: center;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: none;
	overflow: -moz-scrollbars-none;
	overflow: auto;
	padding: 20px;
	padding-top: 100px;
	padding-bottom: 50px;
}
.topcms_news_type1 .modal-bg, #topcms_news_type1 .modal-bg{
	position: absolute;
	left: 0;
	top: 0;
	background: rgba(0,0,0,0.3);
	width: 100%;
	height: 100%;
}
.topcms_news_type1 .modal-box, #topcms_news_type1 .modal-box {
	width: 90%;
	max-width: 900px;
	box-sizing: border-box;
	display: inline-block;
	vertical-align: middle;
	position: relative;
	padding: 10px;
	padding-bottom: 23px;
	background-color: #fff;
	text-align: left;
	border-radius: 20px;
}
.topcms_news_type1 .modal-box .inner, #topcms_news_type1 .modal-box .inner{
	max-height: 100%!important;
	overflow: auto;
	-ms-overflow-style: none;
}
.topcms_news_type1 .modal-box .inner::-webkit-scrollbar, #topcms_news_type1 .modal-box .inner::-webkit-scrollbar {
	width: 2px;
	height: 10px;
}
.topcms_news_type1 .modal-box .inner::-webkit-scrollbar-track, #topcms_news_type1 .modal-box .inner::-webkit-scrollbar-track {
	border-radius: 5px;
	box-shadow: 0 0 4px #aaa inset;
}
.topcms_news_type1 .modal-box .inner::-webkit-scrollbar-thumb, #topcms_news_type1 .modal-box .inner::-webkit-scrollbar-thumb {
	border-radius: 5px;
	background: #333;
}
.topcms_news_type1 .modal-box .modal-close, #topcms_news_type1 .modal-box .modal-close{
	cursor: pointer;
	position: absolute;
	top: 19px;
	right: 25px;
}
.topcms_news_type1 .modal-box .modal-close img, #topcms_news_type1 .modal-box .modal-close img {box-shadow: 0 2px 4px rgb(0 0 0 / 0%);}

#cms_3-g .cate_item, .cms_3-g .box_wrap {
    box-shadow: rgb(0 0 0 / 11%) 0px 3px 21px;
}
.cms_4-a .box_wrap .cate_box:nth-child(odd) {
    padding-top: 80px;
}

@media screen and (min-width: 769px){
#s_content1, #s_content2 .c2_box_txt {
    opacity: 0;
    transform: translateY(20px);
    transition: 1s;
    transition-property: opacity, transform;
}
#s_content1.trans, #s_content2.trans .c2_box_txt {
    opacity: 1;
    transform: none;
}
}

/* ---------- タブレット ---------- */
@media screen and (max-width: 768px){
.intro_img div {
    font-size: 4em;
    top: -11%;
    left: -2%;
    -webkit-text-stroke: 1px #a1a1a1;
}
.topcms_news_type1 .cate_box, #topcms_news_type1 .cate_box {width: 46.33333%!important;}
.cms_4-a .box_wrap .cate_box:nth-child(odd) {
    padding-bottom: 10px;
}
.bulletslist {
    width: 48%;
}
.main_img_txt {
    right: 3.5%;
    width: auto;
}
.fv_eng {
    right: 5%;
    bottom: 5%;
    width: 45%;
}
}
/* ---------- スマートフォン ---------- */
@media screen and (max-width: 667px){
.overlay .menu-box {
    padding-top: 14px;
}
    .top_loader .loader_txt {
    font-size: -webkit-calc(1rem + 20px);
    font-size: calc(1rem + 20px);
}
header {
    background-color: rgb(255 255 255 / 79%)!important;
    padding: 0;
}
.fv_eng {
    right: 5%;
    bottom: 3%;
    width: 44%;
}
.linkBtn a {
    padding: 12px 2px;
}
#logo {
    max-width: 185px;
}
#header .h_box > li:last-child {
    margin-left: 30px;
    margin-right: 13px;
}
.cms_4-a .box_wrap .cate_box:nth-child(even) {
    margin-top: -30px;
}
.cms_4-a .box_wrap .cate_box:nth-child(odd) {
    padding-top: 60px;
    padding-bottom: 0;
}
.top_cms_title h2 {
    font-size: 41px;
}
.main_img_txt {
    right: 0%;
    top: 55%;
}
.intro_box {
    max-width: inherit;
    margin-left: 3px;
    margin-right: 9px;
}
.topcms_news_type1 .cate_box, #topcms_news_type1 .cate_box {width: 100%!important;}
.bulletslist {
    width: 85%;
    padding: 5% 4%;
    margin-top: 30px;
}
.overlay, .overlay.open {
    top: 0px;
}
.fix_bnr a {
    padding: 9px 20px 9px;
}
.fix_bnr {
    bottom: 12px;
    left: 10px;
}
}