/* ===== 基本 ===== */
:root{
  --bg-cream:#f3f0e8;
  --text:#2a2a2a;
  --gold:#b08f2a;
  --olive:#5b5a2a;
  --orange:#f08a00;
  --line:#e6e2d6;
  --shadow:0 10px 30px rgba(0,0,0,.08);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:"Noto Serif JP", serif;
  color:var(--text);
  background:#fff;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }

.container{
  width:min(1100px, 92vw);
  margin:0 auto;
}

/* ===== Header ===== */
.site-header{
  background:#fff;
}
.site-header__inner{
  width:min(1200px, 96vw);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.1rem 0 .6rem;
}
.logo img{
  width:260px;
  max-width:40vw;
}
.header-right{
  display:flex;
  align-items:center;
  gap:1rem;
}
.tel{
  text-align:right;
  line-height:1.25;
}
.tel__number{
  font-size:22px;
  letter-spacing:.02em;
}
.tel__hours{
  font-size:14px;
  opacity:.85;
}
.header-buttons{
  display:flex;
  gap:.5rem;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  padding:.75rem 1.25rem;
  font-size:14px;
  letter-spacing:.06em;
  color:#fff;
  box-shadow:var(--shadow);
}
.btn--olive{ background:var(--olive); }
.btn--orange{ background:var(--orange); }
.btn--wide{ width:min(260px, 42vw); }

.nav{
  width:min(1200px, 96vw);
  margin:0 auto;
  display:flex;
  justify-content:center;
  gap:1.8rem;
  padding:.45rem 0 1.2rem;
  font-size:18px;
  color:var(--olive);
}
.nav a{ padding:.25rem .2rem; }

/* ===== Hero ===== */
.hero{
  position:relative;
  height:min(520px, 62vh);
  overflow:hidden;
}
.hero__bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url("hero.jpg") center/cover no-repeat;
  filter:saturate(1.05);
}
.hero__overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  padding:1rem;
}
.hero__title{
  font-size:clamp(44px, 6vw, 92px);
  font-weight:300;
  letter-spacing:.06em;
  margin:0 0 .6rem;
  text-shadow:0 2px 20px rgba(0,0,0,.35);
}
.hero__subtitle{
  font-size:clamp(18px, 2.4vw, 34px);
  margin:0;
  letter-spacing:.12em;
  text-shadow:0 2px 18px rgba(0,0,0,.35);
}

/* ===== Intro ===== */
.intro{
  background:var(--bg-cream);
  padding:3.2rem 0 3rem;
  border-top:1px solid var(--line);
}
.intro__headline{
  text-align:center;
  color:var(--gold);
  font-weight:400;
  letter-spacing:.12em;
  margin:0 0 1.4rem;
  font-size:clamp(20px, 2.6vw, 34px);
}
.intro__lead{
  text-align:center;
  line-height:2.05;
  margin:0 auto 1.8rem;
  max-width:900px;
  font-size:16px;
}
.cta-row{
  display:flex;
  justify-content:center;
  gap:1.2rem;
  flex-wrap:wrap;
}

/* ===== Banner ===== */
.banner{
  background:var(--gold);
  padding:2.4rem 0;
  position:relative;
}
.banner__inner{
  text-align:center;
  color:#fff;
  padding:.6rem 0;
}
.banner__title{
  margin:0 0 .4rem;
  font-size:44px;
  font-weight:300;
  text-decoration:underline;
}
.banner__subtitle{
  margin:0;
  opacity:.95;
}

/* ===== Plans ===== */
.plans{
  background:#fff;
  padding:0 0 3rem;
}
.plan{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:0;
  min-height:420px;
}
.plan + .plan{ margin-top:0; }
.plan__text{
  background:#fff;
  padding:3.2rem 3rem;
}
.plan__image{
  background:#eee;
  position:relative;
}
.plan__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:420px;
  filter:saturate(1.05);
}
.plan__name{
  margin:0 0 .4rem;
  color:var(--gold);
  font-weight:400;
  font-size:26px;
}
.plan__note{ font-size:14px; color:#6a5a2d; }
.plan__price{
  color:var(--gold);
  font-size:34px;
  letter-spacing:.02em;
  margin:0 0 1.6rem;
}
.plan__tax{ font-size:14px; }
.plan__desc-title{
  color:var(--gold);
  margin:0 0 .7rem;
}
.plan ul{
  margin:0;
  padding-left:1.1rem;
  line-height:1.9;
  font-size:15px;
}
.plan--right .plan__text{ order:2; }
.plan--right .plan__image{ order:1; }

/* ===== Footer anchors ===== */
.footer-anchors{
  background:var(--bg-cream);
  padding:2.4rem 0;
  border-top:1px solid var(--line);
}
.footer-anchors__title{
  margin:0 0 .6rem;
  color:var(--gold);
  font-weight:400;
}
.footer-anchors__text{ margin:0; }

.site-footer{
  background:#fff;
  border-top:1px solid var(--line);
  padding:1.2rem 0;
  text-align:center;
  color:#666;
}

/* ===== Responsive ===== */
@media (max-width: 900px){
  .site-header__inner{
    flex-direction:column;
    align-items:flex-start;
  }
  .header-right{
    width:100%;
    justify-content:space-between;
  }
  .tel{ text-align:left; }
  .nav{
    flex-wrap:wrap;
    gap:1rem;
  }
  .plan{
    grid-template-columns:1fr;
  }
  .plan__text{ padding:2.2rem 1.4rem; }
  .plan__image img{ min-height:320px; }
  .plan--right .plan__text, .plan--right .plan__image{ order:unset; }
}

/* ===== Assets mapping =====
   hero背景は assets/hero.jpg を参照します（下の相対パス調整のため）。
*/
.hero__bg{
  background:
    linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url("hero.jpg") center/cover no-repeat;
}
