html{
  background:#f8f6f2;
}

body{

  margin:0;

  background:
  linear-gradient(
    to bottom,
    #f8f6f2 0%,
    #fdfcf9 100%
  );

  color:#4c4640;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

}

/* header */

.page-header{

  padding:90px 20px 70px;

  text-align:center;

}

.page-header h1{

  margin:0;

  font-size:54px;
  font-weight:500;

  letter-spacing:0.08em;

  color:#342f2a;

}

.sub-title{

  margin-top:18px;

  font-size:14px;

  letter-spacing:0.18em;

  color:#8a8177;

}

/* gallery */

.gallery-wrap{

  max-width:1280px;

  margin:0 auto;

  padding:0 20px;

  display:grid;

  grid-template-columns:
  repeat(auto-fit,minmax(320px,1fr));

  gap:18px;

}

.gallery-wrap a{

  display:block;

  overflow:hidden;

  border-radius:4px;

  background:#fff;

}

.gallery-wrap img{

  width:100%;

  display:block;

  transition:
    transform .8s ease,
    opacity .6s ease;

}

.gallery-wrap a:hover img{

  transform:scale(1.03);

  opacity:.92;

}

/* message */

.message-section{

  max-width:860px;

  margin:0 auto;

  padding:140px 24px 160px;

}

.message-inner{

  text-align:center;

}

.message-inner p{

  margin:0 0 48px;

  font-size:18px;

  line-height:2.5;

  letter-spacing:0.08em;

  color:#5d554e;

}

.lead{

  font-size:32px !important;

  line-height:2 !important;

  color:#3d3731 !important;

}

.brand-name{

  margin:80px 0 36px !important;

  font-size:52px !important;

  line-height:1.4 !important;

  letter-spacing:0.04em;

  color:#2d2925 !important;

}

/* price */

.price-box{

  margin-top:100px;

  padding:56px;

  background:rgba(255,255,255,0.7);

  border:1px solid rgba(0,0,0,0.06);

  border-radius:24px;

  box-shadow:
    0 10px 40px rgba(0,0,0,0.04);

}

.price-box h2{

  margin:0 0 42px;

  text-align:center;

  font-size:14px;

  letter-spacing:0.28em;

  color:#93887c;

}

.price-row{

  display:flex;

  justify-content:space-between;

  align-items:flex-end;

  gap:20px;

  padding-bottom:24px;

  border-bottom:
  1px solid rgba(0,0,0,0.08);

}

.label{

  font-size:20px;

  letter-spacing:0.06em;

}

.price{

  font-size:42px;

  line-height:1;

  color:#2f2a25;

}

.note{

  margin-top:28px;

  text-align:center;

  font-size:13px;

  line-height:2.1;

  letter-spacing:0.08em;

  color:#8b847b;

}

/* mobile */

@media(max-width:768px){

  .page-header{

    padding:60px 20px 50px;

  }

  .page-header h1{

    font-size:38px;

  }

  .gallery-wrap{

    grid-template-columns:1fr;

    gap:14px;

  }

  .message-section{

    padding:90px 24px 110px;

  }

  .message-inner p{

    font-size:15px;

    line-height:2.3;

    margin-bottom:38px;

  }

  .lead{

    font-size:24px !important;

  }

  .brand-name{

    font-size:38px !important;

    margin-top:60px !important;

  }

  .price-box{

    margin-top:70px;

    padding:36px 28px;

    border-radius:18px;

  }

  .price-row{

    flex-direction:column;

    align-items:flex-start;

  }

  .price{

    font-size:34px;

	}
}

/* =========================================
footer
========================================= */

.page-footer{
	
	padding:
		90px 20px 40px;
	
	text-align:center;
}

.page-footer p{
	
	margin:0;
	
	font-size:11px;
	
	line-height:2;
	
	letter-spacing:0.08em;
	
	color:#8f817b;
}