@charset "utf-8";
/*
Theme Name: elk
Theme URI: http://elkpharmacy.sakura.ne.jp/ctrl/wp-content/themes/elk/
Description: elk theme
Version: 1.0
Author: Coco-Factory
Author URI: http://coco-factory.jp
*/

@import url('https://fonts.googleapis.com/css2?family=Amatic+SC:wght@700&family=Sawarabi+Gothic&display=swap');

/*--------------- Reset -----------------*/

html, body, div,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, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

body {
    line-height:1;
	-webkit-text-size-adjust: 100%;
}

address{
	font-style:normal;
	display:inline;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
	display:block;
}

ol, ul {
	list-style: none;
}

blockquote, q {
    quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}

html, body {
        position: relative;
        height: 100%;
}

a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select,textarea {
    vertical-align:middle;
	font-size: 16px;
}

img {
    vertical-align: middle;
    font-size:0;
    line-height: 0;
	border:none;
}

*{
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

.aligncenter{
	display: block;
	clear: both;
	margin:0 auto 20px auto;
	text-align:center;
}
 
.alignleft{
	float:left;
	margin:0 10px 20px 0;
}

.alignright{
	float:right;
	margin:0 0 20px 10px;
}

.cl{
	clear:both;
}

.font-b{
	font-size:1.3rem;
}

.font-s{
	font-size:0.9rem;
}


/* responsive ----------------------- */

.alignleft,
.alignright,
.aligncenter,
#identity img{
	max-width:100%;
	width:auto;
	height:auto;
}

.iframe-area{ position:relative; padding-bottom:31%; padding-top:30px; height:0; overflow:hidden;}
.iframe-area iframe,
.iframe-area object,  
.iframe-area embed{ position:absolute; top:0; left:0; width:100%; height:100%; }

/*--------------- Layout -----------------*/

body{
	font-size:16px;
	line-height:1.5;
	word-wrap: break-word;
	font-family: "Sawarabi Gothic","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic";
}

main{
	display: block;
}

a{
	text-decoration:underline;
	color:#333;
	outline:none;
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	transition: all 0.5s;
}

a:hover{
	text-decoration:none;
	color:#444;
}

.row{
	position: relative;
	width:100%;
	max-width:1250px;
	margin:0 auto;
	padding:0 20px;
	overflow:hidden;
}

/*------------- Header --------------*/

#header{
	padding: 33px 0 0 0;
}

#identity{
	text-align: center;
	width:212px;
	height: 268px;
	margin:0 auto 68px auto;
}

.logoeffect{
    -webkit-animation:roll 0.3s linear;
    -moz-animation:roll 0.3s linear;
    -ms-animation:roll 0.3s linear;
    -o-animation:roll 0.3s linear;
    animation: roll 0.3s linear;
}

@keyframes roll {
    from {
        transform: perspective(500px) rotateY(0deg);
    }
    to{
        transform: perspective(500px) rotateY(360deg);
    }
}

#utility-area{
	position: absolute;
	right:20px;
	top:33px;
	text-align: right;
}

#utility-area dl{
	margin:0 0 10px 0;
}

#utility-area dt,
#utility-area dd{
	display: inline;
	font-size:1.2rem;
}

#utility-area dt{
	padding: 0 5px 0 1em;
}

#utility-area a{
    text-decoration: none;
}

/*------------- Gnavi --------------*/

#g-nav-area.bgactive{
	position: fixed;
	top:0;
	z-index: 999;
	background:#333;
	width:100%;
	height:100%;
}

#g-nav{
	margin:0 auto;
	width:100%;
	max-width: 1250px;
	padding:40px 20px 0 20px;
	display:none;
	font-family:'Amatic SC', cursive;
	text-align: center;
	font-size:4rem;
}

.bgactive #g-nav{
	display: block;
}

#g-nav li a{
	color:#fff;
	text-decoration: none;
	padding:10px 0;
	display: block;
}

#g-nav li a:hover,
#g-nav li a:active{
	color: #fff150;
}
#g-nav li span{
	position: relative;
}

#g-nav li span:before{
  position: absolute;
  top: 1.3em;
  left: 0;
  content: "";
  display: inline-block;
  width: 0;
  height: 2px;
  background: #fff150;
  transition: 0.5s;
}

#g-nav li a:hover span:before{
  width:100%;
}


#openbtn{
	cursor: pointer;
	display:block;
	position:fixed;
    left: 20px;
    top: 25px;
	width:68px;
	height: 68px;
	border-radius: 34px;
	z-index:5;
	background:#333;
	color: #fff;
	text-transform: uppercase;
	font-size: 0.8rem;
}

#openbtn span:nth-of-type(1) ,
#openbtn span:nth-of-type(2) ,
#openbtn span:nth-of-type(3) {
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 17px;
	width: 50%;
	margin:0 auto;
	height: 2px;
	background-color: #fff;
	border-radius: 2px;
}

#openbtn span:nth-of-type(1) {
	top: 15px;
}

#openbtn span:nth-of-type(2) {
	top: 25px;
}

#openbtn span:nth-of-type(3) {
	top: 33px;
}

#openbtn span:nth-of-type(4) {
	position: absolute;
	top: 39px;
	left:16px;
}

.active#openbtn span:nth-of-type(1) {
	top: 22px;
	-webkit-transform: translateY(6px) rotate(-45deg);
	transform: translateY(6px) rotate(-45deg);
}

.active#openbtn span:nth-of-type(2) {
	top: 33px;
	-webkit-transform: translateY(-6px) rotate(45deg);
	transform: translateY(-6px) rotate(45deg);
}

.active#openbtn span:nth-of-type(3){
	opacity: 0;
}

/*------------- Footer --------------*/

#page-top{
	position:fixed;
	right:20px;
	bottom:20px;
	z-index:10;
}

.pteffect{
	transition: .5s ;
	transform: rotateY( 0deg ) ;
}

#page-top:hover .pteffect {
	transform: rotateY( 360deg ) ;
}

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

#main-area li{
	list-style: disc;
	margin:0 0 5px 1.5em;
}

.line{
	background:rgba(0, 0, 0, 0) linear-gradient(transparent 80%, #fff150 0%) repeat scroll 0 0;
}

.fade-in{
    -webkit-animation:fadeec 1s linear;
    -moz-animation:fadeec 1s linear;
    -ms-animation:fadeec 1s linear;
    -o-animation:fadeec 1s linear;
    animation: fadeec 1s linear;
}

@keyframes fadeec {
    from {
		　-moz-transition:    all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          -webkit-transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          -ms-transition:     all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          transition:         all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          -webkit-transform: translate(0,30px);
          -moz-transform:    translate(0,30px);
          -ms-transform:     translate(0,30px);
          transform:         translate(0,30px);
          opacity:0;
	}
    to{
       -webkit-transform: translate(0,0);
          -moz-transform:    translate(0,0);
          -ms-transform:     translate(0,0);
          transform:         translate(0,0);
          opacity:1
    }
}


.fade-up {-moz-transition:    all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          -webkit-transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          -ms-transition:     all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          transition:         all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
          -webkit-transform: translate(0,30px);
          -moz-transform:    translate(0,30px);
          -ms-transform:     translate(0,30px);
          transform:         translate(0,30px);
          opacity:0;}

.action  {-webkit-transform: translate(0,0);
          -moz-transform:    translate(0,0);
          -ms-transform:     translate(0,0);
          transform:         translate(0,0);
          opacity:1}

.circle{
	fill:none;
	stroke:#a0a0a0;
	stroke-linecap:round;
	stroke-linejoin:round;
	stroke-width:3px;
	stroke-dasharray:3,8;
}

.addline{
    stroke:gray;
    stroke-width: 2;
}

.heading01,
.heading02{
	font-family:'Amatic SC', cursive;
}

.heading01 span{
	display: block;
	font-size:6.5rem;
	letter-spacing: 0.1em;
}

.heading02{
	font-size:1.5rem;
	margin:0 0 20px 0;
}

.heading02:first-letter{
	font-size:3.5rem;
	letter-spacing: 0.1em;
	font-style: italic;
	padding: 0 10px 0 0;
	line-height: 1.3;
}


/*------------- lead --------------*/

#lead-area{
	min-height: 590px;
}

.lead{
	position: absolute;
	top:1%;
	left:10%;
	background:#fff;
	padding: 10px 20px;
	font-size: 25px;
	z-index: 2;
	-webkit-animation-delay: 0.5s;
    -moz-animation-delay:0.5s;
    -ms-animation-delay:0.5s;
	animation-delay:0.5s;
}

.lead-pict01{
	position: absolute;
	top:0;
	right:0;
	z-index: 1;
	text-align: right;
	-webkit-animation-delay: 0.9s;
    -moz-animation-delay:0.9s;
    -ms-animation-delay:0.9s;
	animation-delay:0.9s;
}

.lead-pict02{
	position: absolute;
	top:207px;
	left:0;	
}

#cicle01{
	position: absolute;
	top:300px;
    left: 32%;
}

/*------------- About Us--------------*/

#about {
	position: relative;
}

#about .heading01{
    position: relative;
    right: 163px;
    top: -56px;
    z-index: 2;
    text-align: right;
    line-height: 1;
    letter-spacing: 0.3em;
}
#about .about-area{
	position: absolute;
    top: 15px;
    right:5%;
    width: 51%;
    min-height: 415px;
    background: url(../img/pict_03.png) no-repeat right top;
    background-size: cover;
    z-index: 1;
}

#about .txt{
	position: relative;
    background: #fff;
    top: 98px;
    left: 121px;
    padding: 30px 40px;
    z-index: 2;
    width: 43%;
    line-height: 2.5;
}

#about .txt p{
	margin: 0 0 30px 0;
}

#about .txt p.btn{
	margin:0 auto;
	text-align: center;
	max-width:200px;
}

#about .btn a{
	background:#333;
	color: #fff;
	display: block;
	padding:0 10px;
	text-decoration: none;
}

#about .btn a i{
	font-size: 12px;
    color: #fff;
}

#about .btn a:hover,
#about .btn a:active{
	background:#fff150;
	color:#333;
}

#about .moveline{
	position: relative;
	bottom: 0;
    left: 50%;
}

/*------------- Service --------------*/

#service{
	position: relative;
	top:-100px;
}

#service .heading01{
	position: relative;
	z-index: 2;
	margin: 0 0 0 5%;
}

#service .heading01 span{
	display: inline;
}

#service .txt{
    position: absolute;
    background: #fff;
    padding: 30px 40px;
    z-index: 2;
    width: 43%;
    line-height: 2.5;
}

#service01{
	position: relative;
}

#service01 .service-pict{
	position: relative;
	top:-60px;
	right:0;
	z-index: 1;
}

#service #service01 .txt{
    top: 14px;
    right: 14%;
}

#service #service01 .moveline{
	position: relative;
    bottom: 25px;
    left: 37%;
	z-index: 3;
}

#service02{
	position: relative;
}

#service02 .service-pict{
	position: relative;
	top:-60px;
	right:0;
	z-index: 1;
	text-align: right;
}

#service #service02 .txt{
    top: 34px;
    left: 10%;
}

#service #service02 .moveline{
	position: relative;
    bottom: 0;
    left: 37%;
}

#service03{
	position: relative;
}

#service03 .service-pict{
	position: relative;
	top:-80px;
	right:0;
	z-index: 1;
}

#service #service03 .txt{
    top: 14px;
    right: 14%;
}

#service #service03 .circle{
	position: relative;
    bottom: 25px;
    left: 60%;
}

/*------------- FAQ --------------*/

#faq{
	position: relative;
	top:-100px;
}

#faq .heading01{
	text-align: center;
	margin:0 0 30px 0;
}

#faq section{
	border-bottom: 1px dashed #aaa;
	margin:0 0 20px 0;
	padding: 0 0 20px 0;
}

#faq section h3{
	display: flex;
	align-items: center;
	margin:0 0 20px 0;
}

#faq section h3:before{
	content:'Q';
	background:#333;
	color:#fff;
	font-family:'Amatic SC', cursive;
	font-size:1.4em;
	padding: 3px 10px;
	margin:0 20px 0 0;
}

#faq section .answer{
	display: flex;
	align-items: center;
}

#faq section .answer:before{
	content:'A';
	background:#fff150;
	font-family:'Amatic SC', cursive;
	font-size:1.4em;
	padding: 5px 10px;
	margin:0 20px 0 0;
}

#faq .moveline{
	position: relative;
	top:50px;
	left:49%;
}

/*------------- Contact --------------*/

#contact{
	position: relative;
}

#contact .heading01{
	position: relative;
	top:-200px;
	text-align: center;
	z-index: 2;
}

#contact .contact-pict{
	position: absolute;
	top: -100px;
	z-index: 1;
	width: 100%;
}

#contact .contact-pict img{
	width:100%;
}

#contact .self-box{
	position: absolute;
	top:0;
	right:20px;
}

#contact .self{
	position: relative;
    padding:10px ;
    background-color:#fff;
    border:6px solid #fff;
    border-radius: 7px;
	z-index: 3;
} 

#contact .self::before{
  content: '';
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  left: 45%;
  bottom: -17px;
  border-top: 15px solid #fff;
  border-right: 15px solid transparent;
  border-left: 15px solid transparent;
}

#contact .contact-form{
	position: relative;
	background: #fff;
	z-index: 3;
	padding: 60px 30px;
	width:95%;
	margin:0 auto;
	top:150px;
}

#contact .contact-form a{
    text-decoration: none;   
}

.form-list dl{
	margin:0 0 20px 0;
	padding:10px 20px;
}

.form-list span.bgyellow{
	background:#fff150;
	padding: 2px 10px;
	margin:0 0 0 10px;
	line-height: 1;
}

.form-list dt{
	margin:0 0 20px 0;
}

.form-list dd{
	margin:0 0 30px 0;
}

.mw_wp_form_confirm dd{
	border-bottom:1px solid #ccc;
	padding: 0 0 10px 0;
}

.form-list input,
.form-list select{
	height:55px;
	background:#efefef;
	border: none;
	color:#333;
	width:100%;
	padding:5px 10px;
}

.form-list textarea{
	height:232px;
	width:100%;
	border: none;
	background:#efefef;
	color:#333;
	padding:10px;
}

.submit-btn{
	width:250px;
	margin:30px auto 0;
}

.submit{
	width: 230px;
	margin: 0 auto;
}

input[type="submit"] {
   -webkit-appearance: none;
	background:#333;
	color: #fff;
	border: none;
	padding:10px 20px;
	margin: 0 0 20px 0;
	width: 230px;
	cursor: pointer;
}

.mw_wp_form_complete p{
	margin:0 0 40px 0;
}

#contact .moveline{
	position: relative;
	top:80px;
	left:49%;
	z-index: 4;
}

/*------------- Access --------------*/

#access{
	position: relative;
	top:-50px;
}

#access .heading01{
	position: relative;
	text-align: center;
	z-index: 2;
}

#access .map-area{
	position: relative;
	top:-80px;
	z-index: 1;
}

#access .acf-map {
	   width: 100%;
	   height: 400px;
}

#access .acf-map img {
   max-width: inherit !important;
}

/*------------- error --------------*/


.error404 .heading01{
	text-align: center;
	padding:0 0 40px 0;
}

.error404 footer{
	top:inherit;
}

#notfound{
	margin:50px 0 100px 0;	
	padding: 20px 0;
	border-top: 1px dashed #000;
	border-bottom: 1px dashed #000;
}

#notfound p{
	line-height: 2;
	margin:0 0 20px 0;
}
/*------------- Footer --------------*/

footer{
	position: relative;
	top:-80px;
	text-align: center;
	padding: 0 0 20px 0;
}

footer p{
	margin:0 0 30px 0;
}

footer dl{
	margin:0 0 10px 0;
}

footer p.btn02 a{
	display: block;
	border: 1px solid #333;
	padding:5px 30px;
	max-width: 200px;
	margin:0 auto;
	text-decoration: none;
}

footer p.btn02 i{
    font-size: 12px;   
}

footer p.btn02 a:hover,
footer p.btn02 a:active{
	background:#eee;
}

footer dl dt,
footer dl dd{
	display: inline;
}

footer dl dt{
	margin:0 10px;
}

@media only screen and (max-width:1000px){
	#service .txt{
		padding:20px;	
	}

}

@media only screen and (max-width:950px){
	.lead-pict01 img{
		width:85%;
	}
	
	#about .about-area{
		right: 0;
		width:50%;
	}
	
	#about .txt{
		top:0;
		left: 0;
		width: 50%;
	}
}

@media only screen and (max-width:860px){

#identity {
    width: 179px;
    height: 258px;
    margin: 0 auto;
}

#utility-area {
    position: relative;
    right: inherit;
    top: 0;
    text-align: center;
	margin:0 0 20px 0;
}

.lead-pict02 img{
	width:75%;
}

}

@media only screen and (max-width:825px){

	#about .about-area{
		width:100%;
		background-position: center;
	}
	
	#about .txt{
		width:90%;
		margin:0 auto 150px auto;
		top:200px;
	}
	
}

@media only screen and (max-width:780px){
	.lead{
		left:5%;
	}
	.lead-pict02 img{
	width:55%;
}
	.lead{
		font-size:20px;
	}

}

@media only screen and (max-width:767px){
	#service img{
		width:100%;
	}
	
	#service .txt{
		position: relative;
		width:90%;
		margin: 0 auto;
		top:-200px!important;
		right:0!important;
		left: 0!important;
		padding: 30px 40px!important;
	}
	
	#service #service01 .moveline{
		position: absolute!important;
		width:150px;
		height: 150px;
		bottom:inherit;
		top:80%;
	}
	
	#service #service02 .moveline {
    bottom: 152px;
	}
	
	#service03{
		top:-100px;
	}
	#service #service03 .circle{
		 bottom: 184px;
	}
	
	#faq{
		top: -300px;
	}
	
	#contact{
		top: -100px;
	}
}

@media only screen and (max-width:720px){
	.lead-pict01 img{
	width:65%;
}

	#about .heading01{
		right: inherit;
		text-align: center;
	}
.heading01 span {
    font-size: 4.5rem;
	}
	#access .heading01{
		top:-50px;
	}

}

@media only screen and (max-width:605px){
	.lead-pict01{
		position: relative;
		right: inherit;
		text-align:left;
	}
	.lead-pict01 img{
		width:100%;
	}
	.lead{
		left:0;
	    width: 300px;
	}
	.lead-pict02{
		position: relative;	
		top:inherit;
		margin:0 0 30px 0;
	}
		
#cicle01{
		top:5%;
		left:inherit;
		right:0;
}
	#contact .contact-form{
		padding:30px 0;
		width:100%;
		top:0;
	}

}

@media only screen and (max-width:415px){
	.row{
		padding: 0 15px;
	}
#identity {
    width: 151px;
    height: 215px;
}

#header p span,
footer p span{
	display: none;
}

footer dl,
#utility-area dl {
    margin: 0 0 20px 0;
}	
#utility-area dl{
	display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

#utility-area dt {
    padding: 0 5px;
}
    
#utility-area dd{
    font-size: 1rem;
    margin:0 5px;
}
    
footer dl dd,
#utility-area dd{
	display: block;
}
	
footer dl dd{
		margin:0 0 10px 0;
}
#utility-area dd a{
	text-decoration: none;
}

#openbtn{
	top:10px;
	left:10px;
}
	
#g-nav{
	font-size:2.5rem;
}

	#cicle01{
		top:300px;
		width:150px;
		height: 150px;
	}
	.heading02:first-letter{
	font-size:2.5rem;
	}
	.heading02{
		font-size:1.3rem;
	}
	
	#about .txt{
	padding: 30px 20px;
	}

	#service .txt{
    top: -135px!important;
	padding: 30px 20px!important;
	}
	#service .heading01 span{
		display: block;
	}
	
	#service #service03 .circle{
		left:20%;
	}
	
	#contact .heading01 span{
		 font-size: 4rem;
	}
	
	#page-top{
		bottom:0;
	}
	
	#page-top img{
		width:50px;
		height: auto;
	}
	
}


    .open-modal-btn {
      padding: 10px 20px;
      font-size: 16px;
      cursor: pointer;
      background-color:#333;
      color:#fff;
      border: none;
      border-radius: 5px;
	  display: block;
	  width: 200px;
	  margin:0 auto 20px auto;
    }

    .modal-overlay {
      display: none;
      position: fixed;
      z-index: 9999;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.6);
      justify-content: center;
      align-items: center;
      padding: 20px;
    }

    .modal-content {
      background: #fff;
      max-width: 800px;
      width: 100%;
      max-height: 90vh;
      overflow-y: auto;
      border-radius: 10px;
      padding: 20px;
	  margin:0 auto;
      position: relative;
    }

    .modal-content h2{
		font-size: 1.5rem;
		text-align: center;
		margin-bottom: 1em;
	}

	.modal-content h3{
		font-size:1.2rem;
		margin: 1em 0;
	}

    .close-btn {
      background:#333;
	  text-align: center;
	  color: #fff;
	  border:none;
	  padding: 10px 20px;
	  margin:20px auto 0 auto;
      cursor: pointer;
	  width:100px;
	  display: block;
	  border-radius: 5px;
    }
