﻿@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&&display=swap');
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {padding: 0;margin: 0;}
a{text-decoration:none; outline:none!important;}
table {border-spacing: 0;}
fieldset,img {border: 0;}
html,body,div,article,section,nav,header,footer,input,textarea {-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
address,caption,cite,code,dfn,em,strong,th,var {font-weight: normal;font-style: normal;}
div,article,section{display:block; overflow:hidden;}
strong{font-weight: bold;}
ol,ul {list-style: none;margin:0;padding:0;}
h1,h2,h3,h4,h5,h6,th {font-weight: 700;font-size: 100%;margin:0;padding:0;}
q:before,q:after {content:'';}
abbr,acronym { border: 0;}

:root {
  --fcolor: #3f2000cc;
  --bgcolor: RGBA(240, 240, 225, 0.7);
}
html{
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  height: -webkit-fill-available;
  font-size: 80%;
}
@media screen and (min-width: 900px){
  html{
    font-size: 62.5%;
  }
}
html,body{
  position:relative;
  height:100%;
  min-height:100%;
}
body{
	color: var(--fcolor);
	font-size: 1.4rem;
	background: url(../img/bg_body.jpg) center top repeat;
 	font-family: "Noto Serif JP", serif;
	font-weight: 500;
	font-style: normal;
	line-height: 2;
	letter-spacing: .15rem;
	position: relative;
	min-height: 100vh;
	min-height: -webkit-fill-available;
}
a{color:inherit; text-decoration:none;}
p a{color:inherit; text-decoration:underline;}
@media screen and (min-width: 900px){
  p a:hover{
    opacity: .8;
    transition: .2s;
  }
}

img{max-width:100%; vertical-align:bottom;}

.pc{
  display: none;
}
@media screen and (min-width: 900px){
  .sp{
    display: none!important;
  }
  .pc{
    display: block;
  }
}


/* -------------------------------------------- */
/* ----------------- menu  -------------------- */
/* -------------------------------------------- */
header{
  width: 100%;
  text-align: center;
}
#logo{
	margin: 3.5rem auto 2rem;
	position: relative;
}
#logo img{
  height: 6.5rem;
}
#logo::before,
#logo::after{
	content: "";
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
    display: block;
    z-index: 100;
}
#logo::before {
    background-image: url(../img/ph_deco3.webp);
    width: 4rem;
    height: 4rem;
    left: calc(50% - 20rem);
    top: -5rem;
}
#logo::after {
    background-image: url(../img/ph_deco1.webp);
    width: 5rem;
    height: 7rem;
    left: calc(50% + 12rem);
    bottom: -5rem;
}

/* -------------------------------------------- */
/* ----------------- common  ------------------ */
/* -------------------------------------------- */
#container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
main{
  text-align: center;
}
.loading{
  background: #f8f8f0;
  height: 100vh;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
}
.loading img{
  width: min(15rem, 30vw);
  opacity: 0;
  filter: blur(10px);
  animation: blurIn 2s ease-in-out forwards;
}
@keyframes blurIn {
    0% {
        filter: blur(10px);
        opacity: 0;
    }
    100% {
        filter: blur(0px);
        opacity: 1;
    }
}

footer{
  background: url(../img/bg1.png) center bottom no-repeat;
  background-size: 100% auto;
  text-align: center;
  margin-top: auto;
  padding: 7rem 1rem 1rem;
}
.logo-footer{
  width: 12rem;
  margin-bottom: 3rem;
}

#copy{
  font-size:1rem;
  text-align: right;
  padding: 1rem;
}


.ttl{
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  margin: 3rem auto;
  align-content: center;
  position: relative;
}
.ttl:after{
  content: attr(data-en);
  font-size: 1.3rem;
  display: block;
  text-align: center;
  opacity: .6;
}
h1.ttl{
  font-size: 2.8rem;
  margin-bottom: 8rem;
}

.ttl2{
  font-size: 2.4rem;
  font-weight: 700;
  margin:10rem auto 3rem;
}
.ttl3{
  font-size: 2rem;
  font-weight: 700;
  width: min(60rem, 90svw);
  margin:5rem auto 1rem;
  border-bottom: 1px solid var(--fcolor5);
}

.btn{
  display: block;
  text-align: center;
}
.btn a{
  background: #ffffffcc;
  border: 1px solid #ffffff;
  border-radius: 3rem;
  display: inline-block;
  width: 25rem;
  margin: 1.5rem auto;
  padding: 1.5rem;
  box-shadow: 0 0 1rem var(--fcolor2);
  position: relative;
}
@media screen and (min-width: 900px){
  .btn a:hover{
    background: #fff;
    transition: .3s;
  }
}
.btn a::after{
  content:">";
  display: inline-block;
  position: absolute;
  right: 3rem;
  top: calc(50% - 1.5rem);
  transform: scaleX(.6);
}

#mv{
	background:url(../img/mv.webp) no-repeat center left;
    background-size: cover;
	height: 30rem;
	margin: -0.2rem auto;
	--mask:
    radial-gradient(1.12rem at 50% 1.5rem,#000 99%,#0000 101%) calc(50% - 1rem) 0/2rem 51% repeat-x,
    radial-gradient(1.12rem at 50% -1rem,#0000 99%,#000 101%) 50% 0.5rem/2rem calc(51% - 0.5rem) repeat-x,
    radial-gradient(1.12rem at 50% calc(100% - 1.5rem),#000 99%,#0000 101%) 50% 100%/2rem 51% repeat-x,
    radial-gradient(1.12rem at 50% calc(100% + 1rem),#0000 99%,#000 101%) calc(50% - 1rem) calc(100% - 0.5rem)/2rem calc(51% - 0.5rem) repeat-x;
  -webkit-mask: var(--mask);
          mask: var(--mask);
  position: relative;
}

.line1{
	background:url(../img/mv.webp) no-repeat center left;
    background-size: cover;
    background-attachment: fixed;
    display: block;
    width: 100%;
	height: 0.8rem;
}
.line2{
	background: var(--fcolor);
    display: block;
    width: 100%;
	height: 0.8rem;
}
.line1,
.line2{
  --mask:
    radial-gradient(0.89rem at 50% 1.2rem,#000 99%,#0000 101%) calc(50% - 0.8rem) 0/1.6rem 51% repeat-x,
    radial-gradient(0.89rem at 50% -0.8rem,#0000 99%,#000 101%) 50% 0.4rem/1.6rem calc(51% - 0.4rem) repeat-x,
    radial-gradient(0.89rem at 50% calc(100% - 1.2rem),#000 99%,#0000 101%) calc(50% - 0.8rem) 100%/1.6rem 51% repeat-x,
    radial-gradient(0.89rem at 50% calc(100% + 0.8rem),#0000 99%,#000 101%) 50% calc(100% - 0.4rem)/1.6rem calc(51% - 0.4rem) repeat-x;
  -webkit-mask: var(--mask);
          mask: var(--mask);
}
/*
 	animation: mvslide 12s ease-in-out infinite;
@keyframes mvslide {
    0% {
    	background-position: center left 0%;
    }
    50% {
    	background-position: center left 10%;
    }
    100% {
    	background-position: center left 0%;
    }
}*/
@media screen and (min-width: 900px){
	#mv{
	    background-size: cover;
	    background-attachment: fixed;
		height: 40rem;
	}
}


#about{
	width: 90svw;
    max-width: 75rem;
	margin: 4rem auto;
	position: relative;
	overflow: visible;
}
#about::before,
#about::after{
	content: "";
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
}
#about::after{
    right: -3rem;
    top: 14rem;
    width: 7rem;
    height: 15rem;
}
#about::before{
	background-image: url(../img/bg_aboutb1.webp);
}
#about::after{
	background-image: url(../img/bg_aboutb2.webp);
}
#about .wrap{
    margin: 0 auto;
    text-align: left;
    position: relative;
    overflow: visible;
}
#about .wrap img{
    width: 3.5rem;
    margin: 0 auto 1rem 3rem;
}
@media screen and (min-width: 900px){
	#about{
		margin: 7rem auto;
	}
	#about::before,
	#about::after{
		content: "";
		width: 20rem;
		height: 40rem;
		background-repeat: no-repeat;
		position: absolute;
	}
	#about::before{
        left: -9rem;
        top: 28rem;
        width: 12rem;
        height: 18rem;
	}
	#about::after{
        right: -10rem;
        top: 10rem;
        width: 12rem;
        height: 23rem;
	}
	#about .wrap{
	    max-width: 90rem;
	    margin: 0 auto;
    	text-align: center;
	}
	#about .wrap::after{
		content: "";
		background-size: contain;
		background-repeat: no-repeat;
		position: absolute;
	    background-image: url(../img/ph_deco4.webp);
	    width: 15rem;
	    height: 20rem;
	    right: -3rem;
	    display: block;
	    bottom: -7rem;
	}
	#about .wrap img{
	    margin: 0 auto 1rem;
	}
}


#products {
	background:url(../img/bg_catnav.png) repeat center left;
	color: #fff;
  width: 100%;
  margin-bottom: 4rem;
    padding-bottom: 1rem;
  overflow: hidden;
  position: relative;
	--mask:
    radial-gradient(1.12rem at 50% 1.5rem,#000 99%,#0000 101%) calc(50% - 1rem) 0/2rem 51% repeat-x,
    radial-gradient(1.12rem at 50% -1rem,#0000 99%,#000 101%) 50% 0.5rem/2rem calc(51% - 0.5rem) repeat-x,
    radial-gradient(1.12rem at 50% calc(100% - 1.5rem),#000 99%,#0000 101%) 50% 100%/2rem 51% repeat-x,
    radial-gradient(1.12rem at 50% calc(100% + 1rem),#0000 99%,#000 101%) calc(50% - 1rem) calc(100% - 0.5rem)/2rem calc(51% - 0.5rem) repeat-x;
  -webkit-mask: var(--mask);
          mask: var(--mask);
}

.marquee-inner {
  display: flex;
  width: fit-content;
  animation: scroll 70s linear infinite;
  --mask:
    radial-gradient(1.12rem at 50% calc(100% - 1.5rem),#000 99%,#0000 101%) calc(50% - 1rem) 0/2rem 100%,
    radial-gradient(1.12rem at 50% calc(100% + 1rem),#0000 99%,#000 101%) 50% calc(100% - 0.5rem)/2rem 100% repeat-x;
  -webkit-mask: var(--mask);
          mask: var(--mask);

}
@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-2400px);
  }
}
.marquee-inner .images {
  display: flex;
}
.marquee-inner img {
  width: 400px;
  height: auto;
}
#products .wrap{
    width: 90svw;
    max-width: 90rem;
    margin: 3rem auto;
	display: flex;
	flex-direction: column;
	gap: 0 2rem;
}
#products section{
	text-align: left;
	backdrop-filter: blur(0.6px);
	padding: 1rem;
}
#products h2 img{
	height: 5.5rem;
	width: auto;
	margin: 0 auto 1rem;
}
#products p{
	margin-bottom: 1rem;
	text-shadow: 0 0 2px #000000;
}
#products .link{
	background: #00000055;
	padding: 1.5rem;
    line-height: 1.5;
	border-radius: 2rem;
	margin: 1rem auto 0;
    overflow: hidden;
	border: 1px dotted #ccbfb2;
}
#products .link img{
    width: 25rem;
    margin-bottom: .5rem;
	display: block;
	border-radius: 1.5rem;
	border: 1px dotted #ccbfb2;
}
#products .link small{
	font-size: 1.1rem;
	letter-spacing:0;
	text-decoration: underline;
	opacity: .7;
}
@media screen and (min-width: 900px){
	#products .wrap{
		flex-direction: row;
	    align-items: center;
	}
	#products section{
		text-align: center;
	}
	#products .link:hover{
		background: #00000088;
		border-style: solid;
	}
}



#homusa .wrap{
	display: flex;
    flex-direction: column;
    grid-gap: 3rem;
    justify-content: space-around;
	max-width: 80rem;
	margin: 4rem auto 0;
}
#homusa img{
	border-radius: 2rem;
	width: 32rem;
	height: 32rem;
	border: 1px dotted var(--fcolor);
}
#homusa .line2{
	margin: 2.5rem auto -1rem;
	max-width: 78rem;
	opacity: .8;
}
#homusa h2 small{
	margin-right: .5rem;
}
#homusa section a{
	font-size: 1.2rem;
	text-decoration: underline;
}
#homusa p{
	text-align: left;
}
@media screen and (min-width: 900px){
	#homusa .wrap{
		flex-direction: row;
	}
	#homusa p{
		text-align: center;
	}
}



#other .wrap{
	display: flex;
	flex-direction: column;
	grid-gap: 2rem;
}
@media screen and (min-width: 900px){
	#other .wrap{
		flex-direction: row;
	}
}


#access{}
#access .closed{
	text-decoration: line-through;
	text-decoration-color: #ee333366;
	text-decoration-style: double;
}
#access .caution{
	color: #ee3333;
	text-align: center;
}


.block{
	width: 90svw;
	text-align: center;
	background: var(--bgcolor);
	padding: 2rem;
	border-radius: 2rem;
	border: 2px dotted #ccbfb2;
	margin: 0 auto 1rem;
}
.block h2{
	font-size: 2rem;
	font-weight: 400;
  margin-bottom: 1rem;
}
.block h2 img{
	max-height: 5rem;
	width: auto;
}
.block p{
	margin-bottom: 1rem;
}
.block p br{
	display: none;
}
@media screen and (min-width: 900px){
	.block{
		width: 100rem;
	}
	.block p br{
		display: block;
	}
}

p.notice{
  color: #d06540;
  text-align: center;
  display: block;
}
div.notice{
  width: min(50rem, 90svw);
  margin: 2rem auto;
  font-size: 1.3rem;
  line-height: 1.5;
  letter-spacing: .1rem;
  text-align: left;
}
div.notice p{
  margin-bottom: .5rem;
}
/* -------------------------------------------- */
/* ----------------- inquiry ------------------ */
/* -------------------------------------------- */
#inquiry dl{
  width: 90svw;
  margin: 0 auto 2rem;
  border-top: 1px solid var(--fcolor2);
}
#inquiry dt,
#inquiry dd{
  text-align: left;
}
#inquiry dt small{
  color: #e33;
}
#inquiry dd .wrap{
  display: flex;
  flex-direction: row;
  grid-gap: 2rem;
}
.required{
  font-size: 1rem;
  color: red;
}
@media screen and (min-width: 900px){
  #inquiry dl{
    display: flex;
    padding: 1rem 0;
    width: min(65rem, 90svw);
    margin: 0 auto;
  }
  #inquiry.en dl{
    width: min(80rem, 90svw);
  }
  #inquiry dt{
    width: 16rem;
    text-align: right;
    padding-top: .5rem;
    word-break: keep-all;
  }
  #inquiry dd{
    padding-left: 1.5rem;
  }
}
#inquiry input[type='text'],
#inquiry input[type='tel'],
#inquiry input[type='email'],
#inquiry input[type='date'],
#inquiry input[type='number'],
#inquiry input[type='password'],
#inquiry select,
#inquiry textarea{
  background: #fff;
  color: var(--fcolor);
  max-width: 100%;
  border: 1px solid var(--fcolor5);
  border-radius: 1rem;
  padding: 1rem;
  font-size: 1.7rem;
  -webkit-appearance: none;
}
input[type="date"]{position: relative;}
input[type="date"]::-webkit-inner-spin-button{-webkit-appearance: none;}
input[type="date"]::-webkit-clear-button{-webkit-appearance: none;}
input[type=date]::-webkit-calendar-picker-indicator {
    position: absolute;
    width: 100%;
    height: 100%;
    top:0;
    left: -2rem;
    opacity: 0;
}
input[type="checkbox"],
input[type="radio"] {
  display: none;
}
input[type="checkbox"] + span,
input[type="radio"] + span {
  cursor: pointer;
  display: inline-block;
  margin: 0 0.2em 0;
  padding: 0 1rem 0 1.2em;
  position: relative;
}
input[type="checkbox"] + span::before,
input[type="radio"] + span::before {
  -webkit-transform: translateY(-50%);
  background: #fff;
  border: 1px solid var(--fcolor);
  border-radius: 20%;
  content: "";
  display: block;
  height: 1.5rem;
  width: 1.5rem;
  left: -2px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
input[type="checkbox"] + span::after,
input[type="radio"] + span::after {
  -webkit-transform: translateY(-50%);
  background: var(--fcolor5);
  border: 1px solid transparent;
  border-radius: 20%;
  content: "";
  width: 5px;
  height: 5px;
  left: 1px;
  opacity: 0;
  padding: 2px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease 0s;
}
input[type="checkbox"]:checked + span::after,
input[type="radio"]:checked + span::after {
  opacity: 1;
}
input[type="radio"] + span::before,
input[type="radio"] + span::after {
  border-radius: 100%;
}
input[type="checkbox"] + label,
input[type="radio"] + label {
  cursor: pointer;
  display: inline-block;
  margin: 0 0.2em 0;
  padding: 0 1rem 0 1.2em;
  position: relative;
}
input[type="checkbox"] + label::before,
input[type="radio"] + label::before {
  -webkit-transform: translateY(-50%);
  background: #fff;
  border: 1px solid var(--fcolor);
  border-radius: 20%;
  content: "";
  display: block;
  height: 1.5rem;
  width: 1.5rem;
  left: 0px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
input[type="checkbox"] + label::after,
input[type="radio"] + label::after {
  -webkit-transform: translateY(-50%);
  background: var(--fcolor5);
  border: 1px solid transparent;
  border-radius: 20%;
  content: "";
  height: 6px;
  left: 3px;
  opacity: 0;
  padding: 2px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease 0s;
  width: 6px;
}
input[type="checkbox"]:checked + label::after,
input[type="radio"]:checked + label::after {
  opacity: 1;
}
input[type="radio"] + label::before,
input[type="radio"] + label::after {
  border-radius: 100%;
}
input#total-days,
select#npeople,
input#etotal-days,
select#enpeople{
  width: 10rem;
}
.calcall5 input,
.ecalcall5 input{
  width: 25rem;
}
#inquiry textarea::placeholder {
  font-size: 1.6rem;
  opacity: .6;
}
.wpcf7-list-item{
  display: block;
  padding: .4rem 1rem .4rem 0;
}
.wpcf7-radio label{
  margin-right: 2rem;
}
#inquiry input[type='submit']{
  color: #fff;
  background: var(--fcolor);
  font-size: 2rem;
  font-weight: bold;
  border: none;
  display: block;
  width: 70vw;
  height: 60px;
  line-height: 60px;
  position: relative;
  text-align: center;
  padding: 0 25px;
  margin: 4rem auto;
  border-radius: 35px;
  -webkit-appearance: none;
}
#inquiry input[type='submit']{
  width: 250px;
}
#inquiry input[type='submit']::after{
  content:"";
  display: inline-block;
  border: .5rem solid transparent;
  border-left-color: #fff;
  margin-left: 25px;
}
.screen-reader-response,
.wpcf7-response-output{
  background: none;
  color: #e33;
}
.screen-reader-response ul{
  display: none;
}
.wpcf7-not-valid-tip{
  color: #e33;
  display: block;
}
@media screen and (min-width: 900px){
  #inquiry input[type='submit']:hover,
  form.swpm-form-builder input[type='submit']:hover{
    cursor: pointer;
  }
  #inquiry a.atel{
    pointer-events: none;
  }
}
.grecaptcha-badge { visibility: hidden; }

.recap{
    font-size: 1rem;
    text-align: center;
    line-height: 1.8rem;
    letter-spacing: 0.1rem;
    opacity: .8;
    margin-bottom: 30px;
}
.recap a{
    text-decoration: underline;
}

/* -------------------------------------------- */
/* -----------------  404  -------------------- */
/* -------------------------------------------- */
#not-found section{
  display: block;
  width: 90svw;
  max-width: 700px;
  margin: 3rem auto;
}
#not-found h3{
  font-size: 1.8rem;
  margin: 0 auto 2rem;
}



