/* いわながスポーツ整体院 — 下層ページ共通スタイル（A案・洗練版トーン） */
:root{
  --sky:#2E9BC4; --sky-2:#5FB9D8; --sky-deep:#1F7EA3; --sky-bg:#F2F8FB; --sky-line:#E1EDF3;
  --navy:#1E3B49; --ink:#31505E; --ink-soft:#6C8492;
  --orange:#E38A2B; --orange-deep:#CE761A;
  --green:#7CAA4F; --green-deep:#5F8B3A;
  --line:#E7EEF2; --white:#fff;
  --shadow:0 16px 40px rgba(30,59,73,.09);
  --shadow-sm:0 8px 22px rgba(30,59,73,.07);
  --r:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:#fff;line-height:1.95;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-size:16px}
.jp{font-family:"Zen Kaku Gothic New",sans-serif}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:920px}
.sec{padding:88px 0}
.sec-sky{background:var(--sky-bg)}
.center{text-align:center}

/* headings */
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--sky-deep);font-size:.78rem;letter-spacing:.28em;margin-bottom:20px}
.eyebrow::before{content:"";width:26px;height:1.5px;background:var(--sky)}
.eyebrow.c::before{width:22px}.eyebrow.c::after{content:"";width:22px;height:1.5px;background:var(--sky)}
.h2{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.45rem,3.9vw,2.15rem);line-height:1.55;color:var(--navy);letter-spacing:.02em}
.h2 .mk{color:var(--sky-deep)}
.h3{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1.22rem;line-height:1.6}
.lead{margin-top:22px;font-size:1rem;color:var(--ink-soft);font-weight:500;line-height:2}
.sintro{max-width:760px;margin:0 auto}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:"Zen Kaku Gothic New";font-weight:700;padding:14px 30px;border-radius:999px;font-size:.98rem;letter-spacing:.04em;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 10px 24px rgba(227,138,43,.28)}
.btn-primary:hover{background:var(--orange-deep)}
.btn-line{background:#fff;color:var(--sky-deep);border:1.5px solid var(--sky-line)}
.btn-ghostw{background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.75);backdrop-filter:blur(4px)}
.btn-ghostw:hover{background:rgba(255,255,255,.24)}
.btn.sm{padding:11px 22px;font-size:.9rem}

/* topbar + nav */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar .row{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{display:flex;align-items:center;gap:11px;font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1.06rem;letter-spacing:.03em}
.logomark{height:32px;width:auto;flex:0 0 auto}
.topbar .act{display:flex;align-items:center;gap:18px}
.topbar .num{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1.05rem;letter-spacing:.02em}
.topbar .num small{display:block;font-size:.62rem;font-weight:500;color:var(--ink-soft);letter-spacing:.14em;text-align:right}
@media(max-width:900px){.topbar .num{display:none}}
.gnav{border-bottom:1px solid var(--line);background:#fff}
.gnav ul{display:flex;justify-content:center;gap:4px;list-style:none;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 12px}
.gnav a{display:block;white-space:nowrap;padding:12px 16px;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.86rem;color:var(--ink-soft);letter-spacing:.04em;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.gnav a:hover{color:var(--sky-deep)}
.gnav a.on{color:var(--sky-deep);border-bottom-color:var(--sky)}

/* page hero (下層) */
.phero{position:relative;color:#fff;padding:84px 0 76px;
  background-color:#2C7C9E;
  background-image:linear-gradient(100deg, rgba(18,45,58,.82) 0%, rgba(18,45,58,.55) 50%, rgba(18,45,58,.25) 100%);
  background-size:cover;background-position:center}
.phero.photo{background-blend-mode:normal}
.phero .kicker{display:inline-block;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.78rem;letter-spacing:.2em;border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:6px 16px;margin-bottom:20px}
.phero h1{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.65rem,4.6vw,2.6rem);line-height:1.55;letter-spacing:.02em;text-shadow:0 2px 18px rgba(10,30,40,.35)}
.phero .sub{margin-top:18px;color:#eaf6fb;font-weight:500;font-size:clamp(.95rem,2vw,1.08rem);max-width:34em;text-shadow:0 1px 10px rgba(10,30,40,.4)}
.phero .hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}

/* photo blocks */
.photo-card{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
.photo-card img{width:100%;height:100%;object-fit:cover}
.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-top:52px;text-align:left}
.split.rev>.photo-card{order:2}
@media(max-width:820px){.split{grid-template-columns:1fr;gap:26px}.split.rev>.photo-card{order:0}}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.gallery figure{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:#fff}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.85rem;color:var(--ink-soft);padding:12px 14px;text-align:center}
@media(max-width:720px){.gallery{grid-template-columns:1fr}}

/* cards / lists */
.cards2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:48px;text-align:left}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px;text-align:left}
@media(max-width:820px){.cards2,.cards3{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sky)}
.card.g::before{background:var(--green)}.card.o::before{background:var(--orange)}
.card .cn{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.72rem;letter-spacing:.16em;color:var(--ink-soft);margin-bottom:8px}
.card h3{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1.1rem;margin-bottom:10px;line-height:1.6}
.card p{color:var(--ink-soft);font-size:.95rem}
.checklist{max-width:720px;margin:44px auto 0;border-top:1px solid var(--line);text-align:left}
.checklist li{list-style:none;padding:16px 8px 16px 42px;position:relative;font-weight:500;border-bottom:1px solid var(--line)}
.checklist li::before{content:"";position:absolute;left:8px;top:23px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--sky);background:
  linear-gradient(var(--sky),var(--sky)) no-repeat center/8px 2px,
  linear-gradient(var(--sky),var(--sky)) no-repeat center/2px 8px}
.note{max-width:840px;margin:22px auto 0;text-align:center;color:var(--ink-soft);font-size:.84rem}

/* price tables */
.ptable{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:30px}
.ptable{border-radius:0}
.ptable-wrap{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:30px;background:#fff}
.ptable-wrap .ptable{border:0;margin-top:0}
.ptable th{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.85rem;color:var(--sky-deep);background:var(--sky-bg);padding:14px 18px;text-align:left;letter-spacing:.05em}
.ptable td{padding:16px 18px;border-top:1px solid var(--line);font-size:.95rem;font-weight:500;vertical-align:top}
.ptable td.pr{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);white-space:nowrap;font-size:1.02rem}
.ptable td small{display:block;color:var(--ink-soft);font-size:.78rem;font-weight:400}
@media(max-width:640px){.ptable th,.ptable td{padding:12px 12px;font-size:.88rem}}

/* ox row (回数券なし等) */
.oxrow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}
.ox{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 12px;text-align:center}
.ox .sym{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:1.7rem;line-height:1;margin-bottom:12px}
.ox.no .sym{color:#C25B5B}.ox.yes .sym{color:var(--green-deep)}
.ox .t{font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--navy);font-size:.92rem;line-height:1.6}
@media(max-width:720px){.oxrow{grid-template-columns:repeat(2,1fr)}}

/* story / message */
.story{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:52px 56px;max-width:940px;margin:0 auto;box-shadow:var(--shadow-sm);text-align:left}
.story .q{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--sky-deep);font-size:clamp(1.2rem,3vw,1.55rem);line-height:1.65;margin-bottom:24px;letter-spacing:.02em}
.story p{color:var(--ink);font-size:1rem;margin-bottom:16px}
.story .sign{text-align:right;font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--ink-soft);margin-top:14px}
.story .sign b{color:var(--navy);font-size:1.08rem}
@media(max-width:680px){.story{padding:34px 26px}}
.tl{max-width:820px;margin:48px auto 0;text-align:left}
.tl .ti{position:relative;padding:0 0 34px 34px;border-left:2px solid var(--sky-line);margin-left:8px}
.tl .ti:last-child{border-left-color:transparent;padding-bottom:0}
.tl .ti::before{content:"";position:absolute;left:-8px;top:4px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--sky)}
.tl .tt{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--sky-deep);font-size:.85rem;letter-spacing:.12em;margin-bottom:6px}
.tl .th{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1.12rem;margin-bottom:8px}
.tl p{color:var(--ink-soft);font-size:.96rem}

/* flow steps */
.flow{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:46px}
.flow .step{background:#fff;border:1px solid var(--sky-line);border-radius:10px;padding:13px 20px;font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--sky-deep);font-size:.9rem;letter-spacing:.02em}
.flow .arw{color:var(--sky-2)}

/* voices */
.voices{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:40px;text-align:left}
.voice{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px 34px}
.voice .stars{color:var(--orange);font-size:.92rem;letter-spacing:.12em;margin-bottom:12px}
.voice p{color:var(--ink);font-size:.96rem;margin-bottom:16px}
.voice .who{font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--ink-soft);font-size:.82rem;letter-spacing:.03em}
@media(max-width:720px){.voices{grid-template-columns:1fr}}

/* faq */
.faq{max-width:820px;margin:44px auto 0;text-align:left}
.faq .qa{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 30px;margin-bottom:16px}
.faq .qq{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1rem;padding-left:34px;position:relative;line-height:1.7}
.faq .qq::before{content:"Q";position:absolute;left:0;top:0;font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--sky-deep)}
.faq .aa{margin-top:10px;color:var(--ink-soft);font-size:.95rem;padding-left:34px;position:relative}
.faq .aa::before{content:"A";position:absolute;left:0;top:0;font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--orange)}

/* final cta */
.finalcta{position:relative;overflow:hidden;color:#fff;text-align:center;border-radius:22px;padding:70px 26px;
  background:linear-gradient(120deg,#1F7EA3 0%,#2E9BC4 55%,#4FB3D9 100%)}
.finalcta h2{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.35rem,4vw,2rem);line-height:1.6;letter-spacing:.02em}
.finalcta p{margin:20px auto 32px;max-width:640px;opacity:.95;font-weight:500}
.finalcta .hero-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* footer */
footer{background:var(--navy);color:#b9d3de;padding:56px 0 96px;text-align:center;font-size:.9rem}
footer .fbrand{font-family:"Zen Kaku Gothic New";font-weight:900;color:#fff;font-size:1.25rem;margin-bottom:14px;letter-spacing:.04em}
footer a{color:#8fc9de}
footer .fnav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:18px 0 6px;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.86rem}
footer .fnote{margin-top:16px;opacity:.55;font-size:.78rem}

/* mobile sticky */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;background:#fff;box-shadow:0 -6px 22px rgba(0,0,0,.1);border-top:1px solid var(--line)}
.sticky-cta a{flex:1;text-align:center;padding:15px 6px;font-family:"Zen Kaku Gothic New";font-weight:700;color:#fff;font-size:.96rem;letter-spacing:.03em}
.sticky-cta a.t{background:var(--navy)}
.sticky-cta a.r{background:var(--orange)}
@media(max-width:820px){.sticky-cta{display:flex}body{padding-bottom:58px}}

.testtag{background:#f4efe3;color:#8a7a52;text-align:center;font-size:.78rem;padding:7px;font-weight:700;font-family:"Zen Kaku Gothic New";letter-spacing:.04em}

/* ===== 院長紹介ページ（生い立ちストーリー） ===== */
/* ヒーロー：左テキスト＋右「写真カード」の2カラム。背景はCSSのフラットグラデ（画像合成はしない） */
.dhero{background:linear-gradient(135deg,#F2F8FB 0%,#E9F4F9 60%,#E1EFF6 100%);border-bottom:1px solid var(--line)}
.dhero .inner{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:56px;align-items:center;padding:64px 24px}
.dhero .kicker{display:inline-block;font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--sky-deep);font-size:.78rem;letter-spacing:.2em;border:1px solid var(--sky-2);background:rgba(255,255,255,.8);border-radius:999px;padding:6px 16px;margin-bottom:20px}
.dhero h1{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:clamp(1.7rem,4.2vw,2.6rem);line-height:1.45;letter-spacing:.02em}
.dhero h1 span{display:block;font-size:.42em;font-weight:700;color:var(--ink-soft);margin-top:12px;letter-spacing:.06em}
.dhero .sub{margin-top:20px;color:var(--ink);font-weight:700;font-family:"Zen Kaku Gothic New";font-size:clamp(1rem,2.1vw,1.18rem);max-width:26em;line-height:1.9}
.dhero-card{margin:0;position:relative}
.dhero-card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:18px;box-shadow:var(--shadow);border:4px solid #fff;display:block}
.dhero-card figcaption{position:absolute;left:-14px;bottom:22px;background:rgba(255,255,255,.96);border-left:4px solid var(--sky);border-radius:0 9px 9px 0;padding:8px 16px 9px;box-shadow:var(--shadow-sm)}
.dhero-card figcaption span{display:block;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.66rem;color:var(--sky-deep);letter-spacing:.12em}
.dhero-card figcaption b{display:block;font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1rem;letter-spacing:.03em}
@media(max-width:860px){
  .dhero .inner{grid-template-columns:1fr;gap:34px;padding:48px 24px 56px}
  .dhero-card{max-width:280px;margin:0 auto}
}

/* ストーリー：写真＋本文の交互ブロック */
.sblock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;margin-top:52px;text-align:left}
.sblock.rev .sfig{order:2}
.sfig{margin:0}
.sfig img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--line);background:#fff}
.sfig.tall img{aspect-ratio:3/4}
.sfig figcaption{margin-top:12px;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.82rem;color:var(--ink-soft);text-align:center;line-height:1.7}
.sbody h3{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:clamp(1.15rem,2.6vw,1.45rem);line-height:1.6;margin-bottom:16px}
.sbody p{color:var(--ink);font-size:1rem;margin-bottom:14px}
.sbody p:last-child{margin-bottom:0}
@media(max-width:820px){.sblock{grid-template-columns:1fr;gap:26px;margin-top:38px}.sblock.rev .sfig{order:0}}

/* 写真ストリップ（横並びの思い出写真） */
.pstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.pstrip figure{margin:0}
.pstrip img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.pstrip figcaption{margin-top:10px;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.8rem;color:var(--ink-soft);text-align:center;line-height:1.7}
@media(max-width:820px){.pstrip{grid-template-columns:1fr;gap:26px}}

/* 引用（本人の言葉） */
.pquote{max-width:820px;margin:48px auto 0;text-align:center;font-family:"Zen Kaku Gothic New";font-weight:900;
  color:var(--sky-deep);font-size:clamp(1.15rem,3vw,1.6rem);line-height:1.75;letter-spacing:.02em;position:relative;padding:0 18px}
.pquote::before,.pquote::after{content:"";display:block;width:44px;height:2px;background:var(--sky);margin:0 auto}
.pquote::before{margin-bottom:26px}.pquote::after{margin-top:26px}

/* プロフィール：正方形の大きな院長写真＋表 */
.profcard{display:grid;grid-template-columns:300px minmax(0,1fr);gap:44px;align-items:start;margin-top:44px;text-align:left}
.profcard .pf{margin:0}
.profcard .pf img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 16%;border-radius:14px;box-shadow:var(--shadow);border:1px solid var(--line)}
.profcard .pf figcaption{margin-top:14px;text-align:center;font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--navy);font-size:1.05rem}
.profcard .pf figcaption span{display:block;font-size:.7rem;font-weight:700;color:var(--sky-deep);letter-spacing:.12em;margin-bottom:2px}
.profcard .ptable-wrap{margin-top:0}
@media(max-width:820px){.profcard{grid-template-columns:1fr;gap:26px}.profcard .pf{max-width:280px;margin:0 auto}}
/* 縦位置の人物写真は顔が切れないよう上寄せトリミング（引き伸ばしはしない） */
.sfig img.fit-top,.pstrip img.fit-top{object-position:center 8%}
