/* ==========================================================
   山口鍼灸整骨院 モダンリニューアル版 共通スタイルシート
   落ち着いたウェルネス系:セージグリーン × ウォームベージュ/クリーム
   ========================================================== */

:root{
  --sage:#7C9473;
  --sage-deep:#4F6449;
  --sage-pale:#EAF0E4;
  --cream:#FBF8F1;
  --beige:#F1E9D8;
  --ink:#3A362E;
  --sub:#8A8175;
  --line:#E6DFCB;
  --white:#FFFFFF;
  --radius:18px;
  --radius-sm:10px;
  --shadow-sm:0 10px 30px -18px rgba(58,54,46,.25);
  --shadow-md:0 24px 50px -24px rgba(58,54,46,.32);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:"Noto Serif JP",serif;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px;}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:100;background:rgba(251,248,241,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
}
.header-top{
  max-width:1160px;margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;
}
.logo img{height:56px;width:auto;}
.header-contact{
  text-align:right;color:var(--sage-deep);font-size:14px;line-height:1.6;
}
.header-contact .tel{font-size:20px;font-weight:700;font-family:"Noto Serif JP",serif;}
.menu-btn{display:none;background:none;border:none;font-size:26px;color:var(--sage-deep);cursor:pointer;}

nav.main-nav{border-top:1px solid var(--line);}
nav.main-nav ul{display:flex;flex-wrap:wrap;list-style:none;max-width:1160px;margin:0 auto;padding:4px 16px;}
nav.main-nav a{
  display:block;padding:12px 16px;font-size:13.5px;color:var(--sage-deep);font-weight:500;
  border-radius:999px;margin:4px 2px;transition:background .2s,color .2s;
}
nav.main-nav li.active a{background:var(--sage);color:#fff;}
nav.main-nav a:hover{background:var(--sage-pale);}
@media (max-width:900px){
  .menu-btn{display:block;}
  nav.main-nav{display:none;}
  nav.main-nav.open{display:block;}
  nav.main-nav ul{flex-direction:column;padding:8px 16px 16px;}
  nav.main-nav a{margin:2px 0;}
}

/* ---------- section heading ---------- */
.section-head{margin:52px 0 24px;}
.section-head .eyebrow{
  display:block;color:var(--sage);font-size:12px;letter-spacing:.14em;font-weight:700;
  text-transform:uppercase;margin-bottom:8px;
}
.section-head h1,.section-head h2{
  font-size:clamp(24px,3.6vw,34px);color:var(--sage-deep);font-weight:700;
  position:relative;padding-left:20px;
}
.section-head h1::before,.section-head h2::before{
  content:"";position:absolute;left:0;top:6px;bottom:6px;width:5px;
  background:var(--sage);border-radius:4px;
}
.section-head.small h2{font-size:20px;}
.section-head.small{margin:44px 0 18px;}

.page-wrap{max-width:1160px;margin:0 auto;padding:36px 24px 70px;}
.page-wrap p{margin-bottom:16px;font-size:15px;color:var(--ink);}
.page-wrap h3{margin:22px 0 10px;font-size:16px;color:var(--sage-deep);font-weight:700;}
.page-wrap ul{margin:0 0 16px 20px;font-size:14.5px;}
.page-wrap li{margin-bottom:6px;}

/* ---------- home hero ---------- */
.home-hero{
  max-width:1160px;margin:0 auto;padding:40px 24px 0;display:grid;
  grid-template-columns:340px 1fr;gap:36px;align-items:center;
}
.home-hero-text{color:var(--sage-deep);}
.home-hero-text .l1{font-size:14px;font-weight:700;letter-spacing:.14em;color:var(--sage);text-transform:uppercase;}
.home-hero-text .l2{font-family:"Noto Serif JP",serif;font-size:clamp(26px,4vw,38px);font-weight:700;margin-top:10px;line-height:1.5;color:var(--ink);}
.greet-btn{
  display:inline-block;margin-top:26px;background:var(--sage-deep);color:#fff;text-align:center;
  border-radius:999px;padding:16px 30px;font-size:14.5px;font-weight:700;box-shadow:var(--shadow-sm);
  transition:transform .2s;
}
.greet-btn:hover{transform:translateY(-2px);}
.greet-btn span{display:block;font-size:11px;font-weight:400;margin-top:4px;opacity:.85;}
.home-hero-photo{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);}
.home-hero-photo img{width:100%;height:380px;object-fit:cover;}
.home-hero-photo .cap{
  position:absolute;right:16px;bottom:14px;background:rgba(255,255,255,.9);
  padding:6px 16px;font-size:12.5px;border-radius:999px;color:var(--sage-deep);
}
@media (max-width:760px){
  .home-hero{grid-template-columns:1fr;}
  .home-hero-photo img{height:240px;}
}

.feature-row{
  max-width:1160px;margin:0 auto;padding:34px 24px 0;display:grid;
  grid-template-columns:repeat(5,1fr);gap:14px;align-items:stretch;
}
.feature-row img{height:120px;object-fit:cover;width:100%;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);}
.feature-btn{
  background:var(--beige);color:var(--sage-deep);text-align:center;padding:24px 8px;font-weight:700;font-size:14.5px;
  border-radius:var(--radius-sm);display:flex;flex-direction:column;justify-content:center;transition:transform .2s,box-shadow .2s;
}
.feature-btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);}
.feature-btn span{display:block;font-size:11px;font-weight:400;margin-top:4px;color:var(--sub);}
.feature-btn.blue{background:var(--sage);color:#fff;}
.feature-btn.blue span{color:rgba(255,255,255,.85);}
@media (max-width:760px){
  .feature-row{grid-template-columns:repeat(2,1fr);}
}

.home-note{max-width:1160px;margin:26px auto 0;padding:0 24px;color:var(--sage-deep);font-size:14.5px;font-style:italic;}

.notice-card{
  max-width:1160px;margin:26px auto 60px;padding:30px 28px;background:var(--sage-pale);
  border-radius:var(--radius);
}
.notice-card p{font-size:13.5px;margin-bottom:10px;color:var(--ink);}
.notice-card .section-head{margin-top:0;margin-bottom:18px;}

/* ---------- image rows / inline figures ---------- */
.img-row{display:flex;gap:20px;margin:22px 0;flex-wrap:wrap;}
.img-row img{flex:1;min-width:220px;height:220px;object-fit:cover;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);}
.img-row.two img{max-width:calc(50% - 10px);}

.figure-inline{float:right;width:340px;margin:0 0 24px 28px;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm);}
.figure-inline img{width:100%;}
@media (max-width:700px){ .figure-inline{float:none;width:100%;margin:0 0 20px;} }

/* ---------- tables ---------- */
.hours-table,.pricing-table{width:100%;max-width:700px;border-collapse:collapse;margin:20px 0;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm);}
.hours-table th,.hours-table td{border:1px solid var(--line);padding:12px;text-align:center;font-size:14px;background:var(--white);}
.hours-table thead th{background:var(--sage-deep);color:#fff;border-color:var(--sage-deep);}
.hours-table td:first-child{background:var(--beige);font-weight:700;}

/* ---------- feature links row (2-col) ---------- */
.link-cards{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0;}
.link-cards a{
  flex:1;min-width:220px;display:block;text-align:center;padding:16px;font-weight:700;
  background:var(--beige);color:var(--sage-deep);border-radius:var(--radius-sm);transition:transform .2s;
}
.link-cards a:hover{transform:translateY(-2px);}

/* ---------- pricing flex block ---------- */
.price-block{display:flex;gap:40px;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px;}
.price-block > div{flex:1;min-width:220px;}
.price-block img{width:280px;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);}

/* ---------- contact card (no form) ---------- */
.contact-wrap{display:flex;justify-content:center;margin:20px 0;}
.contact-card{
  background:var(--sage-deep);color:var(--white);border-radius:var(--radius);padding:44px 38px;
  max-width:560px;width:100%;position:relative;overflow:hidden;
}
.contact-card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px 260px at 90% 0%,rgba(255,255,255,.12),transparent 70%);}
.contact-card h3{position:relative;font-size:19px;margin-bottom:22px;font-family:"Noto Serif JP",serif;}
.contact-item{position:relative;display:flex;gap:14px;margin-bottom:20px;font-size:14px;}
.contact-item .k{color:#CBDAC4;font-size:12px;letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:4px;}
.contact-item .v{color:var(--white);font-weight:700;}

/* ---------- action / cta strip ---------- */
.action-strip{
  max-width:1160px;margin:50px auto 0;padding:0 24px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
}
.action-strip a{
  background:var(--beige);color:var(--sage-deep);text-align:center;padding:28px 10px;font-weight:700;font-size:14.5px;
  border-radius:var(--radius-sm);transition:transform .2s,box-shadow .2s;
}
.action-strip a:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);}
.action-strip a span{display:block;font-size:11.5px;font-weight:400;margin-top:4px;color:var(--sub);}
.action-strip a.phone{background:var(--sage-deep);color:#fff;}
.action-strip a.phone span{color:rgba(255,255,255,.8);}
@media (max-width:700px){
  .action-strip{grid-template-columns:1fr;}
}

footer.site-footer{
  margin-top:50px;padding:26px;text-align:center;font-size:12.5px;color:var(--sub);
  border-top:1px solid var(--line);
}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
