@charset "utf-8";

  /*---------------------------------------
     fonts          
  -----------------------------------------*/
@import url("https://fonts.googleapis.com/css?family=Inter:400,500,600,700|Playfair+Display:700,900&display=swap");
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");

:root {
    --serif: YuMincho,"Hiragino Mincho ProN",serif;
    --sans_serif: YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
	--fotklee: fot-klee-pro,serif;
	--kan415typos:kan415typos-std, sans-serif;
}

  /*---------------------------------------
    colors          
  -----------------------------------------*/
:root {	

    --main-color: #404040;
	--main-bg-color: #ddd;
	--accent-color: #1c5363;
	--inverse-color: #DB84A1;
    --sub-color: #4a3939;
}
/*---------------------------------------
    General CSS          
  -----------------------------------------*/
html{
	line-height:1.15;
	margin:0;
	font-size:100%;
	letter-spacing:0.05em;
}
html{
  scroll-behavior: smooth;/* スムーススクロール */
}
body{
	margin:0;
	padding: 0;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%; /* Safari */
	font-family: var(--serif);
	font-weight:400;
	line-height:1.5em;
}

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

a{
	text-decoration: none;
	color:var(--main-color);
}
a:hover{
	color:var(--accent-color);
}
a img:hover {
  filter: brightness(0.8);
}
.flex {
	display: flex;
}
ul {
  list-style:none;
}
.body-wrap{
	position:relative;
	min-height:100%;
	width: 100%;
}
/*---------------------------------------
    header
  -----------------------------------------*/
header {
  display: flex;
  background: #fff;
  padding: 10px 20px;
  font-size:0.8em;
  width: 100%
}
header h1{
	font-size:1.5rem;
	margin: 0;
}
.headerright {
	text-align: right;
	margin: 0 0 0 700px;
}
@media (max-width: 1280px) {
  .headerright {
   margin: 0 0 0 500px;
	 } 
}
@media (max-width: 1024px) {
  .headerright {
   margin: 0 0 0 150px; 
	 } 
}
 @media (max-width: 768px) {
  .nav{
   display:block;
   padding: 10px 10px;
   text-align: left;
   font-family:  var(--kan415typos);
   font-size:1rem;
}
   header {
	display: block;	 
	 }
   .headerright {
   display: none;
	 } 	 
}
/*---------------------------------------
    footer      
  -----------------------------------------*/	
footer {
	 display: block;
	 position: relative;
     background: var(--main-color);
	 color: #fff;	
	 margin: 0;	
     font-size:0.8em;
     line-height: 1.1rem;
}
.footerbox {
	 display: grid;
	 position: relative;
     grid-template-columns: repeat(3, 1fr);
	 gap: 20px;
}
footer a{
	text-decoration: none;
	color:#fff;
}
footer a:hover{
	color:var(--inverse-color);
}
.fot-1-a {
	grid-column: 1;
}	
.fot-1-b {
	grid-column: 2;
}	
.fot-1-c {
	grid-column: 3;
}	
.fot-1-c a:hover, .fot-1-b a:hover {
	color: var(--inverse-color);
}	
.fot-1-a, .fot-1-b, .fot-1-c {
	text-align: left;
	padding: 30px 10px 30px 40px;
}
.cr {
	text-align: center;
	padding: 10px;
}

@media (max-width: 768px) {
  .footerbox {
    grid-template-columns: 1fr;
  }
	    .fot-1-a, 
		.fot-1-b,
	    .fot-1-c
	{
    grid-column: 1;
    grid-row: auto;
	width: 100%;
	box-sizing: border-box;	 /* 画面はみ出し防止 */	
  }
	}

/*---------------------------------------
    ボタン   
  -----------------------------------------*/
.btn {
  display: inline-block;
  border: 1px solid;
  position: relative;
  background: #fff;
  color: #404040;
  border: 2px solid #404040;
  padding: 3px 70px 3px 10px;
}

.btn:before, .btn:after {
  content: "";
  position: absolute;
  display: block;
  transition: all 0.3s;
  right: 1.5rem;
  top: 50%;
}
.btn:before {
  width: 2rem;
  height: 2px;
  background: #404040;
  transform: translateY(-50%);
}
.btn:after {
  opacity: 0;
  width: 0;
  height: 0;
  border-top: solid 2px currentColor;
  border-right: solid 2px currentColor;
  transform: translateY(-50%) rotate(45deg);
}
.btn:hover:before {
  width: 1.5rem;
}
.btn:hover:after {
  opacity: 1;
  width: 8px;
  height: 8px;
}
.btmspace {
	padding:20px 0;
}
.footerbtm {
   padding:20px 100px 20px 20px;
   font-size: 1rem;
   font-weight: 400;
}

/*---------------------------------------
    トップページ　コンテンツ     
  -----------------------------------------*/
.container {
  background: var(--sub-color);
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: 300px auto 180px repeat(7, 120px) auto;
  margin: 0;
}
.menu {
	background: var(--sub-color);
	padding:15px;
}
.box-c-2 {
	grid-column: 6;
	grid-row: 2;
	background: var(--sub-color);
	padding:0;
}
.box-c-3 {
	grid-column: 5 / 7;
	grid-row: 3;
	background: var(--accent-color);
	padding: 20px; 
	font-family: var(--fotklee);
	font-size: 1.1rem;
	color: #fff;
}
.menu a, .box-d a,.box-d-2 a   {
	color: #fff;
}
.menu a:hover, .box-d a:hover,.box-d-2 a:hover   {
	color: var(--inverse-color);
}
.box-a {
  grid-column: 1 / 3;
  grid-row: 1;
  background:#ddd;
  font-family: var(--fotklee);
  font-size: 1.5rem;
  font-weight: 600;
  padding: 40px 25px 25px 25px;
  line-height:1.5;
  letter-spacing:0.1em;
}

.box-e h2 {
	font-size:1.2rem;
	margin: 0;
}

.box-b {
  grid-column: 3 / 6;
  grid-row: 1 / 4;
  padding: 0;
  text-align: right;
  max-height: 680px;
}
.box-b img{
	width: 100%;
	height: auto;
}
.box-d {
  grid-column: 1 / 3;
  grid-row: 2 / 5;
  background:var(--accent-color);
}
.box-d figure, .box-d-2 figure, .box-d-3 figure {
	padding: 0;
}

.box-d-2{
  grid-column: 3 / 5;
  grid-row: 3 / 7;
  background:var(--sub-color);
  padding: 0;
}
.box-d-3{
  grid-column: 5 / 7;
  grid-row: 4 / 9;
  background:var(--main-bg-color);	
}

.box-d a:hover, .box-d-2 a:hover, .box-d-3 a:hover{
	color: var(--inverse-color);
}
.box-d h3, .box-d-2 h3, .box-d-3 h3{
	font-family: var(--kan415typos);
}
.box-e{
  grid-column: 1 / 3;
  grid-row: 5 / 8;
  background:var(--main-bg-color);	
  font-family: var(--fotklee);
  font-size: 1.1rem;
  padding: 25px;
}
.box-e-2 {
	grid-column: 3 / 5;
	grid-row: 7;
	background: var(--accent-color);
	text-align: center;
	padding-top:40px; 
}
.box-f {
	grid-column: 1 / 5;
	grid-row: 8 / 11;
	text-align: center;
	background: #fff;
}
.box-f img {
	width: 280px;
	height: auto;
	padding-bottom: 10px;
}
.box-f h2 {
	font-size: 1.2rem;
}

.box-f-2{
	grid-column: 5 / 7;
	grid-row: 9/ 12;
	background: var(--main-bg-color);	
	padding: 20px;
	font-size: 1rem;
	border-top :var(--accent-color) double 3px;
}
.inquiry {
	text-align: left;
}
.inquiry h3 {
	text-align: center;	
}
.inquiry-info {
	border-top :var(--accent-color) double 3px;
	text-align: center;	
}

.box-g {
	grid-column: 1 / 5;
	grid-row: 11;
    padding: 0;
	background: #fff;
	paddingbottom: 20px;
}

.tile{
	text-align: center;
	position: relative;
	padding: 20px;
	font-size:0.8rem;
}
.tile img{
	width: 100%;
	height: auto;
	padding: 10px 10px 10px 5px;
}

.shadow{
	box-shadow: 4px 4px 14px rgba(16 29 45 / 0.2);
}

@media (max-width: 1280px) {

  .box-c-2 {	
    display: none;
	}
	.box-d-3 {
	margin-top: -2px;
	}
	.box-c-3 {
	line-height:1.11;
	}
	.box-f-2{
		margin-top: -150px;
}	
}
@media (max-width: 1024px) {

  .box-c-3 {
	padding-top:8px; 
	}
  .box-d-3{
	 width: auto;
	}
	.box-e {
		padding: 15px;
	}
	.box-f-2{
		margin-top: -200px;
}	
}
@media (max-width: 768px) {
  .container {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .box-a, 
  .box-e,
  .box-b,
  .box-c-3,
  .box-d,
  .box-d-2,
  .box-d-3,
  .box-e-2,
  .box-f,
  .box-f-2,
  .box-g
	{
    grid-column: 1;
    grid-row: auto;
	width: 100%;
	padding: 10px;
	box-sizing: border-box;	 /* 画面はみ出し防止 */
  }
  .box-c-3 {
	 padding: 5px;
	}
  .box-d-3 {
	margin: 0;	
	}
  .box-c-2 {
	display: none;
	}
	.box-b {
		margin: 0;
		padding: 0;
	}
   .box-e{
       background:var(--sub-color);
	   color: #fff;
	}
	.box-c-3 {
	  background:var(--main-bg-color);
	   color: #000;
	}
	.box-f-2{
		margin-top: 0;
}	
}
/*---------------------------------------
    スライダー      
  -----------------------------------------*/
.js-flickity{
	margin: auto;
	list-style: none; 
  }

 .js-flickity img{
    height: auto;
    width: 280px;
  }	
/*---------------------------------------
    その他      
  -----------------------------------------*/
.kan415typos {
	font-family: var(--kan415typos);
	font-weight: 200;
}
.fotklee {
	font-family: var(--fotklee);
}
.ta-l {
	text-align: left;
	}
.ta-r {
	text-align: right;
	}
.ta-c {
	text-align: center;
	margin: auto;
	}
.mr-10 {
	margin-right: 10px;
	}
.pb-30 {
	padding-bottom: 30px;
}
.clear {
	clear: both;
}	