*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  background:#f5f4f1;
  color:#1c2438;
  line-height:1.8;
  padding-bottom:76px;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
.wrap{max-width:920px;margin:0 auto;padding:0 24px}
.wrap.narrow{max-width:560px}

[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}
[data-reveal].is-in{opacity:1;transform:none}

.label{
  margin:0 0 10px;
  font-size:11px;
  letter-spacing:.28em;
  font-weight:700;
  color:#c4893a;
}
.label--light{color:rgba(255,255,255,.75)}

/* —— Hero —— */
.hero{
  position:relative;
  min-height:min(90vh,780px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
}
.hero-media{
  position:absolute;inset:-8% 0 -8% 0;
  will-change:transform;
}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(28,36,56,.22) 0%,rgba(28,36,56,.58) 45%,rgba(20,26,42,.92) 100%);
}
.hero-inner{
  position:relative;z-index:1;
  width:100%;max-width:920px;margin:0 auto;
  padding:0 24px 88px;
}
.eyebrow{
  margin:0 0 16px;
  font-size:13px;
  letter-spacing:.18em;
  font-weight:700;
  opacity:.9;
}
.hero h1{
  margin:0;
  font-size:clamp(28px,5vw,46px);
  line-height:1.35;
  font-weight:700;
  letter-spacing:.04em;
}
.hero-lead{
  margin:20px 0 0;
  max-width:28em;
  font-size:15px;
  line-height:1.95;
  opacity:.95;
}
.btn{
  display:inline-block;
  margin-top:28px;
  background:#c4893a;
  color:#fff;
  font-weight:700;
  text-decoration:none;
  padding:15px 28px;
  border:none;
  border-radius:999px;
  cursor:pointer;
  font-size:15px;
  font-family:inherit;
  transition:transform .25s ease,opacity .2s ease,background .2s ease;
}
.btn:hover{opacity:.92;transform:translateY(-1px)}
.btn--hero{background:#f5f4f1;color:#243056}

/* —— Problems —— */
.problems{
  padding:96px 0 80px;
  background:#f5f4f1;
}
.problems h2{
  margin:0 0 36px;
  font-size:clamp(22px,3.2vw,30px);
  font-weight:700;
  letter-spacing:.03em;
}
.problem-list{
  list-style:none;margin:0;padding:0;
  display:grid;gap:14px;
}
.problem-list li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:18px;
  align-items:start;
  padding:22px 24px;
  background:#fff;
  border-radius:20px;
  box-shadow:0 8px 28px rgba(40,45,70,.06);
}
.problem-num{
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
  color:#c4893a;
  padding-top:2px;
}
.problem-list strong{display:block;font-size:15px;font-weight:700}
.problem-list p{margin:6px 0 0;font-size:13px;color:#6a6a78;line-height:1.7}

/* —— Split —— */
.split{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  min-height:540px;
  background:#fff;
}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.split-img{overflow:hidden;border-radius:0 0 0 48px}
@media(max-width:860px){.split-img{border-radius:0;min-height:280px}}
.split-img img{width:100%;height:100%;min-height:320px;object-fit:cover}
.split-copy{
  padding:64px 48px;
  display:flex;flex-direction:column;justify-content:center;
  background:#ebe8e1;
}
@media(max-width:860px){.split-copy{padding:48px 24px}}
.split-copy h2{
  margin:0;
  font-size:clamp(22px,3.2vw,30px);
  font-weight:700;
  line-height:1.45;
  letter-spacing:.03em;
}
.split-copy > p{margin:18px 0 0;font-size:15px;color:#3a3a4a}
.benefits{
  margin:28px 0 0;padding:0;list-style:none;
  display:grid;gap:12px;
}
.benefits li{
  position:relative;
  padding:12px 16px 12px 36px;
  background:rgba(255,255,255,.7);
  border-radius:14px;
  font-size:14px;
  font-weight:600;
}
.benefits li::before{
  content:"";
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:10px;height:10px;border-radius:50%;
  background:#c4893a;
}

/* —— Hours —— */
.hours{padding:88px 0;background:#f5f4f1}
.hours-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:40px;
  align-items:center;
}
@media(max-width:760px){.hours-grid{grid-template-columns:1fr;gap:28px}}
.hours h2{
  margin:0;
  font-size:clamp(22px,3.2vw,30px);
  font-weight:700;
  letter-spacing:.03em;
}
.hours-lead{margin:14px 0 0;color:#6a6a78;font-size:15px}
.hours-card{
  background:#fff;
  border-radius:24px;
  padding:28px 30px;
  box-shadow:0 10px 32px rgba(40,45,70,.07);
}
.hours-card dl{margin:0;display:grid;gap:18px}
.hours-card dl > div{
  display:grid;
  grid-template-columns:7.5em 1fr;
  gap:12px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(120,110,90,.12);
}
.hours-card dl > div:last-child{border-bottom:none;padding-bottom:0}
.hours-card dt{font-size:12px;font-weight:800;letter-spacing:.08em;color:#c4893a}
.hours-card dd{margin:0;font-size:14px;font-weight:600;line-height:1.7}

/* —— Image band —— */
.image-band{
  position:relative;
  min-height:min(52vh,420px);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.image-band img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
}
.image-band__shade{
  position:absolute;inset:0;
  background:rgba(28,36,56,.58);
}
.image-band__text{
  position:relative;z-index:1;
  margin:0;padding:40px 24px;
  text-align:center;
  color:#fff;
  font-size:clamp(18px,3vw,26px);
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.7;
}

/* —— Voices —— */
.voices{padding:88px 0;background:#ebe8e1}
.voices h2{
  margin:0 0 32px;
  font-size:clamp(22px,3.2vw,30px);
  font-weight:700;
}
.voice-grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(3,1fr);
}
@media(max-width:800px){.voice-grid{grid-template-columns:1fr}}
.voices blockquote{
  margin:0;
  padding:26px 24px;
  background:#fff;
  border-radius:20px;
  box-shadow:0 8px 24px rgba(40,45,70,.05);
}
.voices p{margin:0;font-size:14px;line-height:1.9}
.voices cite{
  display:block;
  margin-top:16px;
  font-style:normal;
  font-size:12px;
  font-weight:700;
  color:#c4893a;
}

/* —— FAQ —— */
.faq{padding:80px 0;background:#f5f4f1}
.faq h2{
  margin:0 0 24px;
  font-size:clamp(22px,3.2vw,30px);
  font-weight:700;
}
.faq details{
  background:#fff;
  border-radius:16px;
  padding:16px 20px;
  margin-bottom:10px;
  box-shadow:0 4px 16px rgba(40,45,70,.04);
}
.faq summary{
  cursor:pointer;
  font-weight:700;
  font-size:15px;
  list-style:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:12px 0 0;color:#6a6a78;font-size:14px;line-height:1.8}

/* —— Form —— */
.final{
  padding:88px 0 100px;
  background:#243056;
  color:#fff;
  border-radius:40px 40px 0 0;
}
.final h2{
  margin:0 0 8px;
  font-size:clamp(22px,3.2vw,30px);
  font-weight:700;
}
.final-lead{margin:0 0 28px;opacity:.9;font-size:14px}
.form{display:grid;gap:14px}
.form label{display:grid;gap:6px;font-size:13px;font-weight:600}
.form input,
.form textarea,
.form select{
  font:inherit;
  padding:13px 16px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.1);
  color:#fff;
  border-radius:12px;
}
.form select option{color:#1c2438}
.form input::placeholder,
.form textarea::placeholder{color:rgba(255,255,255,.5)}
.form .btn{
  justify-self:start;
  margin-top:6px;
  background:#f5f4f1;
  color:#243056;
}
.form-note{font-size:12px;opacity:.7;margin:4px 0 0}

.site-footer{
  padding:28px 0 100px;
  text-align:center;
  color:#7a7a88;
  font-size:12px;
  background:#f5f4f1;
}
.site-footer p{margin:0}

/* —— Sticky bottom CTA —— */
.sticky-cta{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:1800;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  background:#fff;
  box-shadow:0 -6px 24px rgba(30,35,55,.12);
  border-top:1px solid rgba(120,110,90,.15);
}
.sticky-cta a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  text-decoration:none;
  font-weight:800;
  font-size:15px;
  letter-spacing:.04em;
  transition:opacity .2s ease;
}
.sticky-cta a:hover{opacity:.88}
.sticky-cta__line{background:#c4893a;color:#fff}
.sticky-cta__tel{background:#f5f4f1;color:#243056}

@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
  .btn{transition:none}
}
