:root{
  --green: #89BE1F;
  --orange: #f39c12;
  --text: #333;
  --bg: #fff;
  --gray: #777;
  --border: #e5e5e5;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family: "游ゴシック","Yu Gothic",YuGothic,"ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN",メイリオ,Meiryo,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.8;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1100px; margin:0 auto; padding:0 20px;}

/* header */
header.site-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px; border-bottom:1px solid var(--border); flex-wrap:wrap; gap:12px;
}
header.site-header .logo img{height:60px;}
nav.main-nav ul{list-style:none; display:flex; gap:28px; margin:0; padding:0; flex-wrap:wrap;}
nav.main-nav li a{text-align:center; font-size:14px; display:block;}
nav.main-nav li a .sub{display:block; font-size:11px; color:var(--green); letter-spacing:.05em; margin-top:2px;}
.header-contact{text-align:right; font-size:13px;}
.header-contact .tel{font-size:20px; font-weight:bold; color:var(--text);}
.header-contact .btn-contact{
  display:inline-block; margin-top:6px; background:var(--orange); color:#fff;
  padding:8px 18px; border-radius:4px; font-weight:bold;
}

/* hero */
.hero{
  position:relative; height:340px; background:#333 center/cover no-repeat;
  display:flex; align-items:center; justify-content:center;
}
.hero .caption{
  color:#fff; text-align:center; font-size:28px; letter-spacing:.08em;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
}
.share-heading{
  text-align:center; color:#9db79a; letter-spacing:.3em; font-size:28px;
  padding:48px 0 16px; font-weight:bold;
}

/* breadcrumb / page header */
.page-head{background:#f7f8f5; padding:48px 0 32px; text-align:center;}
.page-head .eyebrow{color:var(--green); letter-spacing:.2em; font-size:13px;}
.page-head h1{margin:6px 0 10px; font-size:28px;}
.breadcrumb{font-size:12px; color:var(--gray);}

/* sections */
section{padding:56px 0;}
section.alt{background:#f7f8f5;}
.section-head{text-align:center; margin-bottom:36px;}
.section-head .eyebrow{color:var(--green); letter-spacing:.2em; font-size:13px; display:block;}
.section-head h2{font-size:26px; margin:6px 0 0;}

.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card{border:1px solid var(--border); border-radius:8px; padding:28px; text-align:center;}
.card h3{color:var(--green); font-size:17px;}
.card .num{font-size:26px; font-weight:bold; color:var(--orange); margin:10px 0;}

.facility-block{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start; margin-bottom:48px;}
.facility-block h3{font-size:22px; border-left:5px solid var(--green); padding-left:12px;}
.facility-block ul{padding-left:1.2em;}
.btn{
  display:inline-block; padding:10px 26px; border-radius:4px; font-weight:bold;
  border:2px solid var(--green); color:var(--green); margin-top:12px; margin-right:8px;
}
.btn.solid{background:var(--green); color:#fff; border-color:var(--green);}

table.price-table{width:100%; border-collapse:collapse; margin-top:16px;}
table.price-table th, table.price-table td{border:1px solid var(--border); padding:14px; text-align:left;}
table.price-table th{background:#f7f8f5; width:30%;}

.contact-points{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:28px 0;}
.contact-points div{background:#f7f8f5; padding:16px; border-radius:6px; text-align:center; font-size:14px;}
.contact-cta{text-align:center; margin-top:32px;}
.contact-cta .tel{font-size:30px; font-weight:bold;}
.contact-cta .btn{font-size:18px; padding:14px 48px;}

form.contact-form{max-width:640px; margin:0 auto;}
form.contact-form label{display:block; font-weight:bold; margin:18px 0 6px;}
form.contact-form input, form.contact-form select, form.contact-form textarea{
  width:100%; padding:10px; border:1px solid var(--border); border-radius:4px; font-size:15px;
}
form.contact-form .req{color:#e74c3c; font-size:11px; margin-left:6px;}
form.contact-form button{
  display:block; margin:28px auto 0; background:var(--orange); color:#fff; border:none;
  padding:14px 56px; border-radius:4px; font-size:16px; font-weight:bold; cursor:pointer;
}

footer.site-footer{background:#2e2e2e; color:#ccc; padding:48px 0 20px; margin-top:0; font-size:13px;}
footer.site-footer .wrap{display:grid; grid-template-columns:2fr 1fr 1fr; gap:32px;}
footer.site-footer h4{color:#fff; font-size:14px; margin-bottom:12px;}
footer.site-footer ul{list-style:none; padding:0; margin:0;}
footer.site-footer li{margin-bottom:8px;}
footer.site-footer a:hover{color:#fff;}
.footer-bottom{text-align:center; padding-top:24px; margin-top:24px; border-top:1px solid #444; color:#888;}

@media (max-width: 860px){
  header.site-header{flex-direction:column; align-items:flex-start;}
  nav.main-nav ul{gap:14px; font-size:13px;}
  .hero{grid-template-columns:1fr;}
  .cards{grid-template-columns:1fr;}
  .facility-block{grid-template-columns:1fr;}
  footer.site-footer .wrap{grid-template-columns:1fr;}
  .contact-points{grid-template-columns:1fr;}
}
