/* しろやまこどもクリニック — 設計システム（_build/style.css が正。build.py が assets/css/style.css へ書き出す） */
:root{
  --blue:#2f7fd6; --blue-dark:#1f5fa8; --blue-soft:#eaf4fb; --sky:#f3f9fd;
  --green:#3aa876; --green-dark:#2c8a5f; --mint:#e6f6ee;
  --red:#e5605c; --red-dark:#c94743; --peach:#fdeeed;
  --yellow:#f7c948; --cream:#fff8e3;
  --navy:#1c3f6e; --ink:#1e2b3c; --body:#3d4a5c; --muted:#6b7684; --line:#e3e9f0; --bg:#f7fbfe; --paper:#ffffff;
  --r:18px; --r-lg:28px;
  --shadow:0 18px 40px -28px rgba(28,63,110,.45);
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{margin:0; background:var(--bg); color:var(--body); font-family:"Noto Sans JP",sans-serif; font-size:16px; line-height:1.9; -webkit-font-smoothing:antialiased; overflow-x:hidden; padding-bottom:0;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{margin:0; color:var(--navy); font-family:"Zen Maru Gothic",sans-serif; font-weight:700; line-height:1.45; word-break:auto-phrase; text-wrap:balance;}
p{margin:0;}
ul{margin:0; padding:0; list-style:none;}
.wrap{width:min(1180px,calc(100% - 48px)); margin:0 auto;}
.ic{width:1.25em; height:1.25em; flex:none; stroke:currentColor;}
.kicker{display:inline-block; font-family:"Zen Maru Gothic",sans-serif; font-size:12px; letter-spacing:.2em; color:var(--blue); font-weight:700;}
.kicker--light{color:#cfe6ff;}
.mk{color:var(--blue);}
.mk-g{color:var(--green);}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}

/* ボタン */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:0 22px; border-radius:999px; font-weight:700; font-size:15px; font-family:"Zen Maru Gothic",sans-serif; color:#fff; transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s; box-shadow:0 10px 24px -14px rgba(28,63,110,.5);}
.btn:hover{transform:translateY(-2px);}
.btn--blue{background:var(--blue);} .btn--blue:hover{background:var(--blue-dark);}
.btn--green{background:var(--green);} .btn--green:hover{background:var(--green-dark);}
.btn--red{background:var(--red);} .btn--red:hover{background:var(--red-dark);}
.btn--outline{background:#fff; color:var(--blue); border:2px solid var(--blue); box-shadow:none;} .btn--outline:hover{background:var(--blue-soft);}
.btn--lg{min-height:62px; font-size:17px; padding:0 28px;}
.btn .ic--end{margin-left:auto; opacity:.9;}
.cta3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.cta3 .btn{width:100%; justify-content:flex-start; padding:0 22px;}
.cta3 .btn span{flex:1; text-align:center;}

/* サンプル帯 */
.sample-bar{background:#16304f; color:rgba(255,255,255,.88); font-size:12px; letter-spacing:.02em; position:relative; z-index:60;}
.sample-bar .in{width:min(1280px,calc(100% - 48px)); margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:14px; padding:7px 0; flex-wrap:wrap;}
.sample-bar a{color:#F6B06F; font-weight:700; white-space:nowrap; border-bottom:1px solid rgba(246,176,111,.5);}
.sample-bar a:hover{color:#fff; border-color:#fff;}

/* ヘッダー */
.hd{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.95); backdrop-filter:blur(12px); border-bottom:1px solid var(--line);}
.hd__in{width:min(1280px,calc(100% - 40px)); margin:0 auto; display:flex; align-items:center; gap:22px; padding:10px 0;}
.hd__brand{flex:none;}
.logo{display:inline-flex; align-items:center; gap:10px; color:var(--navy);}
.logo__mark{width:56px; height:56px; object-fit:contain; flex:none;}
.logo__name{display:block; font-family:"Zen Maru Gothic",sans-serif; font-weight:900; font-size:22px; letter-spacing:.02em; line-height:1.2; white-space:nowrap;}
.logo__dept{display:block; font-size:11px; color:var(--muted); letter-spacing:.08em; margin-top:3px; white-space:nowrap;}
.hd__nav{display:flex; gap:4px; margin-left:auto;}
.hd__nav a{font-size:14px; font-weight:700; color:var(--ink); padding:8px 12px; border-radius:999px; white-space:nowrap; position:relative;}
.hd__nav a:hover{background:var(--blue-soft); color:var(--blue);}
.hd__nav a[aria-current="page"]{color:var(--blue);}
.hd__nav a[aria-current="page"]::after{content:""; position:absolute; left:12px; right:12px; bottom:2px; height:2px; background:var(--blue); border-radius:2px;}
.hd__actions{display:flex; align-items:center; gap:10px; flex:none;}
.hd__tel{display:inline-flex; align-items:center; gap:6px; border:2px solid var(--blue); color:var(--blue); border-radius:999px; padding:9px 16px; font-weight:700; font-size:15px; font-family:"Zen Maru Gothic",sans-serif; white-space:nowrap;}
.hd__tel:hover{background:var(--blue-soft);}
.hd__cta{display:inline-flex; align-items:center; gap:6px; background:var(--blue); color:#fff; border-radius:999px; padding:11px 18px; font-weight:700; font-size:15px; font-family:"Zen Maru Gothic",sans-serif; white-space:nowrap;}
.hd__cta:hover{background:var(--blue-dark);}
.hd__toggle{display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:12px; background:#fff; flex-direction:column; justify-content:center; align-items:center; gap:5px; cursor:pointer; padding:0;}
.hd__toggle span{display:block; width:22px; height:2.5px; background:var(--navy); border-radius:2px; transition:transform .25s ease, opacity .25s ease;}
.hd.is-open .hd__toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.hd.is-open .hd__toggle span:nth-child(2){opacity:0;}
.hd.is-open .hd__toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
.hd__mobile{display:none; border-top:1px solid var(--line); background:#fff;}
.hd.is-open .hd__mobile{display:block;}
.hd__mobile-links{display:grid; padding:6px 22px;}
.hd__mobile-links a{display:block; padding:13px 0; border-bottom:1px solid var(--line); font-weight:700; color:var(--ink); font-size:15px;}
.hd__mobile-links a[aria-current="page"]{color:var(--blue);}
.hd__mobile-cta{display:grid; gap:10px; padding:16px 22px 20px;}

/* ヒーロー */
.hero{position:relative; overflow:hidden; background:linear-gradient(180deg,#e8f3fb 0%, #f3f9fd 70%, var(--bg) 100%);}
.hero::before{content:""; position:absolute; right:-14vw; top:-18vw; width:60vw; height:60vw; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.9), rgba(255,255,255,0) 68%); pointer-events:none;}
.hero__deco{position:absolute; color:var(--green); opacity:.35; width:120px; height:120px; pointer-events:none;}
.hero__deco.l{left:-20px; top:60px; transform:rotate(-20deg);} .hero__deco.r{right:-10px; bottom:40px; transform:rotate(160deg);}
.hero__in{position:relative; display:grid; grid-template-columns:1.25fr .85fr; gap:clamp(24px,4vw,56px); align-items:center; padding:clamp(40px,6vw,72px) 0 clamp(32px,4vw,48px);}
.hero__sub{font-family:"Zen Maru Gothic",sans-serif; font-weight:700; font-size:clamp(15px,1.6vw,19px); color:var(--navy); line-height:1.8;}
.hero__sub .q{color:var(--blue);} .hero__sub .q2{color:var(--green);}
.hero h1{font-size:clamp(26px,2.9vw,42px); font-weight:900; line-height:1.42; margin:14px 0 24px; letter-spacing:.01em; text-wrap:initial;}
.hero h1 .nb{white-space:nowrap;}
.tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:24px;}
.tile{display:flex; align-items:center; gap:9px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:11px 10px; box-shadow:var(--shadow); font-size:12.5px; line-height:1.45; color:var(--ink); font-weight:700; word-break:auto-phrase;}
.tile .ic{width:30px; height:30px; color:var(--blue); background:var(--blue-soft); border-radius:10px; padding:5px;}
.tile.is-green .ic{color:var(--green); background:var(--mint);}
.tile b{color:var(--blue); font-size:20px; font-family:"Zen Maru Gothic",sans-serif;}
.hero__visual{position:relative;}
.hero__visual img{width:100%; aspect-ratio:5/4; object-fit:cover; border-radius:48% 52% 45% 55% / 40% 44% 56% 60%; box-shadow:0 30px 60px -36px rgba(28,63,110,.6);}
.hero__badge{position:absolute; left:-8px; bottom:18px; background:#fff; border-radius:999px; padding:10px 18px; font-family:"Zen Maru Gothic",sans-serif; font-weight:700; color:var(--navy); font-size:14px; box-shadow:var(--shadow); display:flex; align-items:center; gap:8px;}
.hero__badge .ic{color:var(--green);}
.hero__cta{padding:0 0 26px;}
.symptoms{display:flex; flex-wrap:wrap; gap:10px; padding:0 0 clamp(28px,4vw,40px);}
.symptom{display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 16px; font-weight:700; color:var(--ink); font-size:15px; font-family:"Zen Maru Gothic",sans-serif; box-shadow:0 8px 18px -14px rgba(28,63,110,.4); transition:transform .2s var(--ease), border-color .2s;}
.symptom:hover{transform:translateY(-2px); border-color:var(--blue);}
.symptom .ic{width:24px; height:24px;}
.symptom.c1 .ic{color:var(--red);} .symptom.c2 .ic{color:var(--blue);} .symptom.c3 .ic{color:var(--green);} .symptom.c4 .ic{color:#e58a5c;} .symptom.c5 .ic{color:#b8862e;} .symptom.c6 .ic{color:var(--blue);} .symptom.c7 .ic{color:var(--green);}
.hero-anim > *{animation:rise .9s var(--ease) both;}
.hero-anim > :nth-child(1){animation-delay:.08s} .hero-anim > :nth-child(2){animation-delay:.18s} .hero-anim > :nth-child(3){animation-delay:.28s} .hero-anim > :nth-child(4){animation-delay:.38s}
@keyframes rise{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:none;}}

/* 4カード */
.quick{display:grid; grid-template-columns:1.1fr 1.3fr .8fr .8fr; gap:16px; padding:0 0 clamp(48px,6vw,72px);}
.qcard{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:22px 22px 20px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:10px;}
.qcard__t{display:flex; align-items:center; gap:8px; font-family:"Zen Maru Gothic",sans-serif; font-weight:700; color:var(--navy); font-size:16px;}
.qcard__t .ic{color:var(--blue); width:26px; height:26px;}
.qcard.is-green .qcard__t .ic{color:var(--green);} .qcard.is-cream{background:var(--cream);} .qcard.is-mint{background:var(--mint);}
.qcard__big{font-family:"Zen Maru Gothic",sans-serif; font-size:clamp(20px,1.8vw,24px); color:var(--ink); font-weight:900; line-height:1.4;}
.qcard__tag{display:inline-block; background:var(--blue); color:#fff; font-size:11px; font-weight:700; border-radius:999px; padding:2px 10px; margin-right:6px;}
.qcard__sm{font-size:13px; color:var(--muted); line-height:1.7;}
.qcard__closed{border-top:1px dashed var(--line); padding-top:10px; font-size:13px; color:var(--body);}
.qcard__doc-row{display:flex; gap:14px; align-items:flex-start;}
.qcard__doc-row img{width:104px; height:130px; object-fit:cover; border-radius:14px; flex:none;}
.qcard__doc-row > div{min-width:0;}
.qcard--doc .nm{font-family:"Zen Maru Gothic",sans-serif; font-size:24px; color:var(--navy); font-weight:900;}
.qcard--doc .nm small{font-size:14px; margin-right:8px; color:var(--muted);}
.qcard--doc .role{font-size:12px; color:var(--blue); font-weight:700; line-height:1.6;}
.qcard__more{margin-top:auto; align-self:flex-start; display:inline-flex; align-items:center; gap:6px; border:1.5px solid var(--green); color:var(--green); border-radius:999px; padding:7px 16px; font-size:13px; font-weight:700;}
.qcard__more:hover{background:var(--green); color:#fff;}

/* セクション共通 */
.sec{padding:clamp(52px,7vw,92px) 0;}
.sec--sky{background:var(--sky);} .sec--white{background:#fff;} .sec--mint{background:var(--mint);}
.sec__head{margin-bottom:clamp(24px,3vw,40px);}
.sec__head h2{font-size:clamp(24px,3vw,36px); margin:.25em 0 .4em;}
.sec__head p{max-width:44em; color:var(--body);}
.sec__head.is-center{text-align:center;} .sec__head.is-center p{margin:0 auto;}
.lead{max-width:44em; color:var(--body);}

/* 診療メニュー */
.menu{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.mcard{background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:transform .25s var(--ease);}
.mcard:hover{transform:translateY(-4px);}
.mcard img{aspect-ratio:4/3; object-fit:cover; width:100%;}
.mcard__b{padding:18px 20px 22px; display:flex; flex-direction:column; gap:8px; flex:1;}
.mcard__no{font-family:"Zen Maru Gothic",sans-serif; font-size:12px; letter-spacing:.16em; color:var(--blue); font-weight:700;}
.mcard h3{font-size:19px;}
.mcard p{font-size:14px; color:var(--muted);}
.mcard__more{margin-top:auto; display:inline-flex; align-items:center; gap:4px; color:var(--blue); font-weight:700; font-size:14px;}

/* 特徴 */
.feat{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.fcard{background:#fff; border-radius:var(--r-lg); padding:30px 28px; border:1px solid var(--line); box-shadow:var(--shadow); position:relative;}
.fcard__no{position:absolute; right:22px; top:16px; font-family:"Zen Maru Gothic",sans-serif; font-size:40px; font-weight:900; color:var(--blue-soft); line-height:1;}
.fcard .ic{width:52px; height:52px; padding:12px; border-radius:16px; background:var(--blue-soft); color:var(--blue); margin-bottom:14px;}
.fcard.is-green .ic{background:var(--mint); color:var(--green);} .fcard.is-red .ic{background:var(--peach); color:var(--red);}
.fcard h3{font-size:20px; margin-bottom:8px;}
.fcard p{font-size:14.5px; color:var(--body);}

/* 診療時間表 */
.hours{width:100%; border-collapse:separate; border-spacing:0; background:#fff; border-radius:14px; overflow:hidden; border:1px solid var(--line); font-size:15px;}
.hours th,.hours td{padding:12px 6px; text-align:center; border-bottom:1px solid var(--line);}
.hours thead th{background:var(--blue-soft); color:var(--navy); font-family:"Zen Maru Gothic",sans-serif; font-weight:700;}
.hours tbody th{text-align:left; padding-left:16px; color:var(--navy); font-weight:700; white-space:nowrap; background:var(--sky);}
.hours .on{color:var(--blue); font-weight:900; font-size:17px;} .hours .off{color:#c3ccd6;}
.hours tr:last-child th,.hours tr:last-child td{border-bottom:0;}
.hours-note{font-size:13px; color:var(--muted); margin-top:10px; line-height:1.7;}
.access{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(24px,4vw,48px); align-items:start;}
.info{display:grid; grid-template-columns:150px 1fr; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.info dt,.info dd{margin:0; padding:14px 16px; border-bottom:1px solid var(--line);}
.info dt{background:var(--sky); color:var(--navy); font-weight:700; font-family:"Zen Maru Gothic",sans-serif;}
.info dd{color:var(--body);}
.info dt:last-of-type,.info dd:last-of-type{border-bottom:0;}
.access__pic img{border-radius:var(--r-lg); aspect-ratio:16/11; object-fit:cover; width:100%; box-shadow:var(--shadow);}
.access__pics{display:grid; gap:14px; min-width:0;}
.access > *{min-width:0;} .access__pics img{min-width:0;}

/* お知らせ */
.news{display:grid; gap:10px;}
.news a{display:grid; grid-template-columns:110px 90px 1fr auto; gap:14px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 18px; transition:transform .2s var(--ease);}
.news a:hover{transform:translateX(4px);}
.news .d{font-family:"Zen Maru Gothic",sans-serif; color:var(--muted); font-size:13px;}
.news .tag{display:inline-block; text-align:center; font-size:12px; font-weight:700; border-radius:999px; padding:3px 10px; background:var(--blue-soft); color:var(--blue);}
.news .tag.is-green{background:var(--mint); color:var(--green);} .news .tag.is-red{background:var(--peach); color:var(--red);}
.news .t{color:var(--ink); font-weight:500;}
.news .ic{color:var(--blue);}

/* 最終CTA */
.final{background:linear-gradient(135deg,var(--navy),#2a5a94); color:#fff; padding:clamp(56px,7vw,90px) 0; position:relative; overflow:hidden;}
.final::after{content:""; position:absolute; right:-10vw; bottom:-24vw; width:48vw; height:48vw; border-radius:50%; background:radial-gradient(circle, rgba(58,168,118,.35), rgba(58,168,118,0) 70%);}
.final__in{position:relative; z-index:1;}
.final h2{color:#fff; font-size:clamp(24px,3.2vw,38px); margin:.3em 0 .4em;}
.final p{color:rgba(255,255,255,.85); max-width:44em; margin-bottom:26px;}
.final .cta3{max-width:900px;}
.final .btn{box-shadow:none;}

/* フッター */
.ft{background:#fff; border-top:1px solid var(--line); padding-bottom:0;}
.ft__in{width:min(1180px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:36px; padding:52px 0 36px;}
.ft__nap p{margin:12px 0 8px; font-size:14px; color:var(--body); line-height:1.8;}
.ft__tel{display:inline-flex; align-items:center; gap:6px; font-family:"Zen Maru Gothic",sans-serif; font-weight:900; font-size:22px; color:var(--blue);}
.ft__hours{margin-top:12px; font-size:13px; border-collapse:collapse;}
.ft__hours th{text-align:left; color:var(--navy); padding:3px 14px 3px 0; white-space:nowrap; font-weight:700;} .ft__hours td{padding:3px 0; color:var(--body);}
.ft__col h3{font-size:14px; color:var(--navy); margin-bottom:10px; letter-spacing:.06em;}
.ft__col a{display:block; font-size:14px; color:var(--body); padding:5px 0;} .ft__col a:hover{color:var(--blue);}
.ft__cp{background:var(--navy); color:rgba(255,255,255,.75); font-size:12px;}
.ft__cp-in{width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:16px 0; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;}

/* スマホ下部固定バー */
.bottombar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:55; grid-template-columns:repeat(3,1fr); gap:6px; padding:8px 8px calc(8px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.95); backdrop-filter:blur(10px); border-top:1px solid var(--line);}
.bottombar__btn{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:56px; border-radius:12px; color:#fff; font-family:"Zen Maru Gothic",sans-serif; font-weight:700; font-size:13px;}
.bottombar__btn .ic{width:22px; height:22px;}
.bottombar__btn.is-blue{background:var(--blue);} .bottombar__btn.is-green{background:var(--green);} .bottombar__btn.is-red{background:var(--red);}

/* 下層ページ */
.phero{background:linear-gradient(180deg,#e8f3fb, var(--bg)); padding:clamp(44px,6vw,72px) 0 clamp(32px,4vw,48px); position:relative; overflow:hidden;}
.phero::after{content:""; position:absolute; right:-8vw; top:-14vw; width:40vw; height:40vw; border-radius:50%; background:radial-gradient(circle, rgba(58,168,118,.18), rgba(58,168,118,0) 70%); pointer-events:none;}
.phero__in{position:relative;}
.phero h1{font-size:clamp(28px,4vw,44px); font-weight:900; margin:.3em 0 .4em;}
.phero .lead{font-size:clamp(15px,1.6vw,17px);}
.phero__in > *{animation:rise .9s var(--ease) both;}
.phero__in > :nth-child(1){animation-delay:.1s} .phero__in > :nth-child(2){animation-delay:.22s} .phero__in > :nth-child(3){animation-delay:.34s}
.crumb{font-size:12px; color:var(--muted); margin-bottom:8px;} .crumb a{color:var(--blue);}
.split{display:grid; grid-template-columns:5fr 7fr; gap:clamp(24px,4vw,56px); align-items:center; scroll-margin-top:110px;}
.split:nth-of-type(even) .split__pic{order:2;}
.split__pic img{border-radius:var(--r-lg); aspect-ratio:4/3; object-fit:cover; width:100%; box-shadow:var(--shadow);}
.split h2,.split h3{font-size:clamp(22px,2.6vw,30px); margin:6px 0 12px;}
.split .kicker{margin-bottom:2px;}
.split p{color:var(--body);}
.split + .split{margin-top:clamp(36px,5vw,64px);}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.chip{background:var(--blue-soft); color:var(--navy); font-size:13px; font-weight:700; border-radius:999px; padding:5px 12px;}
.chip.is-green{background:var(--mint);} .chip.is-yellow{background:var(--cream);}
.checklist{display:grid; gap:8px; margin-top:14px;}
.checklist li{display:flex; gap:8px; align-items:flex-start; color:var(--body); font-size:15px;}
.checklist .ic{color:var(--green); margin-top:5px; width:18px; height:18px;}
.boxnote{background:var(--cream); border-radius:14px; padding:16px 18px; font-size:14px; color:var(--body); margin-top:16px; border:1px solid #f1e3b3;}
.boxnote b{color:var(--navy);}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.grid2{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.card{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px 24px; box-shadow:var(--shadow);}
.card h3{font-size:18px; margin-bottom:8px; display:flex; align-items:center; gap:8px;}
.card h3 .ic{color:var(--blue); width:26px; height:26px;}
.card p,.card li{font-size:14.5px; color:var(--body);}
.card ul{padding-left:1.2em; list-style:disc;}
.steps{display:grid; gap:14px; counter-reset:step;}
.step{display:grid; grid-template-columns:56px 1fr; gap:16px; align-items:start; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:20px 22px;}
.step::before{counter-increment:step; content:counter(step); width:44px; height:44px; border-radius:50%; background:var(--blue); color:#fff; display:grid; place-items:center; font-family:"Zen Maru Gothic",sans-serif; font-weight:900; font-size:20px;}
.step strong{display:block; color:var(--navy); font-family:"Zen Maru Gothic",sans-serif; font-size:17px; margin-bottom:4px;}
.step p{font-size:14.5px;}
.faq{display:grid; gap:10px;}
.faq details{background:#fff; border:1px solid var(--line); border-radius:14px;}
.faq summary{cursor:pointer; list-style:none; padding:16px 50px 16px 18px; font-weight:700; color:var(--navy); position:relative; display:flex; gap:10px; align-items:flex-start; line-height:1.6;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q"; flex:none; width:26px; height:26px; border-radius:50%; background:var(--blue); color:#fff; display:grid; place-items:center; font-family:"Zen Maru Gothic",sans-serif; font-size:13px; margin-top:1px;}
.faq summary::after{content:""; position:absolute; right:20px; top:24px; width:9px; height:9px; border-right:2px solid var(--blue); border-bottom:2px solid var(--blue); transform:rotate(45deg); transition:transform .25s;}
.faq details[open] summary::after{transform:rotate(-135deg); top:28px;}
.faq details p{padding:0 18px 18px 54px; color:var(--body); font-size:15px;}
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.gallery figure{margin:0; background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow);}
.gallery img{aspect-ratio:4/3; object-fit:cover; width:100%;}
.gallery figcaption{padding:12px 16px 14px; font-size:14px; color:var(--body);}
.gallery figcaption b{display:block; color:var(--navy); font-family:"Zen Maru Gothic",sans-serif; font-size:15px; margin-bottom:2px;}
.profile{display:grid; grid-template-columns:4fr 8fr; gap:clamp(24px,4vw,56px); align-items:start;}
.profile__pic img{border-radius:var(--r-lg); aspect-ratio:4/5; object-fit:cover; width:100%; box-shadow:var(--shadow);}
.profile__name{font-family:"Zen Maru Gothic",sans-serif; font-size:clamp(26px,3vw,34px); color:var(--navy); font-weight:900;}
.profile__name small{font-size:15px; color:var(--muted); margin-right:10px; font-weight:700;}
.profile__role{color:var(--blue); font-weight:700; font-size:14px; margin:4px 0 16px;}
.profile__body p{margin-bottom:1em; color:var(--body);}
.career{margin-top:18px; border-top:1px solid var(--line); padding-top:16px; display:grid; grid-template-columns:auto 1fr; gap:6px 18px; font-size:14px;}
.career dt{font-family:"Zen Maru Gothic",sans-serif; color:var(--blue); font-weight:700;} .career dd{margin:0; color:var(--body);}
.prose{max-width:46em;} .prose h2{font-size:clamp(20px,2.2vw,26px); margin:2em 0 .6em;} .prose h2:first-child{margin-top:0;} .prose p{margin-bottom:1em;} .prose ul{padding-left:1.3em; list-style:disc; margin-bottom:1em;} .prose .date{font-size:13px; color:var(--muted); margin-top:30px;}
.form{display:grid; gap:16px;}
.form label{font-weight:700; color:var(--navy); font-size:14px; display:block; margin-bottom:5px;}
.form label .req{display:inline-block; margin-left:8px; font-size:11px; color:#fff; background:var(--red); padding:2px 7px; border-radius:4px; vertical-align:middle;}
.form input,.form select,.form textarea{width:100%; font:inherit; font-size:15px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink);}
.form textarea{min-height:120px; resize:vertical;}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--blue); outline-offset:1px;}
.form__two{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.form__agree{font-size:14px; display:flex; gap:10px; align-items:flex-start;} .form__agree input{width:auto; margin-top:5px;}
.form__done{display:none; background:var(--mint); border:1px solid #cdebd9; border-radius:12px; padding:16px 18px; color:var(--navy); font-weight:700;}
.form.is-done .form__done{display:block;} .form.is-done .form__submit{display:none;}
.form__note{font-size:13px; color:var(--muted);}
.reserve-box{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(22px,3vw,34px); box-shadow:var(--shadow); scroll-margin-top:110px;}

/* スクロール演出（節目のみ） */
.is-reveal{opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease) .06s, transform .9s var(--ease) .06s;}
.is-reveal.is-shown{opacity:1; transform:none;}
/* 診療案内などの split：写真を左右からスライドイン（左の写真は左から、右の写真は右から） */
.split__pic.is-reveal{transform:translateX(-56px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);}
.split:nth-of-type(even) .split__pic.is-reveal{transform:translateX(56px);}
.split__pic.is-reveal.is-shown, .split:nth-of-type(even) .split__pic.is-reveal.is-shown{transform:none;}
/* 院長あいさつ（message-02 型：左＝本文と署名／中央＝縦書き見出し／右＝写真＋角飾り） */
.msg__eyebrow{display:inline-block; margin-bottom:34px;}
.msg__layout{display:grid; grid-template-columns:1fr auto .78fr; gap:clamp(28px,4.5vw,56px); align-items:center;}
.msg__layout > *{min-width:0;}
.msg__body p{margin:0 0 1.5em; color:var(--body); font-size:clamp(15px,1.4vw,17px); line-height:2.05; max-width:28em;}
.msg__lead{font-family:"Zen Maru Gothic",sans-serif; font-weight:700; color:var(--navy); font-size:clamp(18px,1.9vw,22px); line-height:1.8;}
.msg__sign{margin-top:30px; display:flex; align-items:center; gap:16px;}
.msg__role{font-size:12px; letter-spacing:.14em; color:var(--muted); font-weight:700; text-transform:uppercase;}
.msg__name{font-family:"Zen Maru Gothic",sans-serif; font-size:22px; font-weight:900; color:var(--navy); line-height:1.3;}
.msg__seal{width:46px; height:46px; border:2px solid var(--red); border-radius:8px; color:var(--red); font-family:"Zen Maru Gothic",sans-serif; font-weight:900; font-size:13px; display:flex; align-items:center; justify-content:center; line-height:1.2; transform:rotate(-5deg); flex:none;}
.msg__vtitle{writing-mode:vertical-rl; text-orientation:upright; display:flex; flex-direction:column; gap:12px; align-items:flex-start; align-self:center; font-family:"Zen Maru Gothic",sans-serif; font-weight:900; color:var(--navy); font-size:clamp(26px,3.2vw,42px); line-height:1.3; letter-spacing:.12em;}
.msg__vtitle .mk{position:relative; z-index:0;}
.msg__vtitle .mk::after{content:""; position:absolute; right:-6px; top:0; bottom:0; width:10px; background:rgba(247,201,72,.55); z-index:-1; border-radius:4px;}
.msg__vsmall{font-size:11px; letter-spacing:.3em; color:var(--muted); font-weight:700; font-family:"Noto Sans JP",sans-serif; text-orientation:mixed; margin-top:6px;}
.msg__portrait{position:relative; aspect-ratio:3/4; border-radius:var(--r); overflow:visible;}
.msg__portrait img{width:100%; height:100%; object-fit:cover; display:block; border-radius:var(--r); box-shadow:var(--shadow); position:relative; z-index:1;}
.msg__frame{position:absolute; right:-12px; bottom:-12px; width:90px; height:90px; border-right:3px solid var(--green); border-bottom:3px solid var(--green); border-bottom-right-radius:var(--r); z-index:0;}
.msg__career{margin-top:clamp(36px,5vw,56px); padding-top:26px; border-top:1px solid var(--line); max-width:760px;}
.msg__career .career{margin-top:14px; border-top:0; padding-top:0;}
/* 演出：レイアウト全体を1つの判定にし、中の要素を時間差で出す */
.msg__layout.is-reveal{opacity:1; transform:none; transition:none;}
.msg__layout.is-reveal .msg__portrait{opacity:0; transform:translateX(40px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);}
.msg__layout.is-reveal .msg__vtitle{opacity:0; transform:translateY(30px); transition:opacity 1.1s var(--ease) .1s, transform 1.1s var(--ease) .1s;}
.msg__layout.is-reveal .msg__body > *{opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.msg__layout.is-reveal .msg__body > :nth-child(1){transition-delay:.05s} .msg__layout.is-reveal .msg__body > :nth-child(2){transition-delay:.19s} .msg__layout.is-reveal .msg__body > :nth-child(3){transition-delay:.33s} .msg__layout.is-reveal .msg__body > :nth-child(4){transition-delay:.47s} .msg__layout.is-reveal .msg__body > :nth-child(5){transition-delay:.61s} .msg__layout.is-reveal .msg__body > :nth-child(6){transition-delay:.75s} .msg__layout.is-reveal .msg__body > :nth-child(7){transition-delay:.89s}
.msg__layout.is-reveal.is-shown .msg__portrait, .msg__layout.is-reveal.is-shown .msg__vtitle, .msg__layout.is-reveal.is-shown .msg__body > *{opacity:1; transform:none;}

@media (prefers-reduced-motion:reduce){
  .hero-anim > *,.phero__in > *{animation:none;}
  .is-reveal{opacity:1; transform:none; transition:none;}
  .split__pic.is-reveal, .split:nth-of-type(even) .split__pic.is-reveal{transform:none; transition:none;}
  .msg__layout.is-reveal .msg__portrait, .msg__layout.is-reveal .msg__vtitle, .msg__layout.is-reveal .msg__body > *{opacity:1; transform:none; transition:none;}
}

/* レスポンシブ */
@media (max-width:1280px){ .tiles{grid-template-columns:repeat(2,1fr);} }
@media (max-width:1100px){
  .hd__nav a{font-size:13px; padding:8px 9px;}
  .hd__tel{display:none;}
}
@media (max-width:960px){
  .hd__nav{display:none;} .hd__toggle{display:flex;} .hd__cta{display:none;}
  .hero__in{grid-template-columns:1fr;} .hero__visual{order:-1; max-width:520px; margin:0 auto;}
  .tiles{grid-template-columns:repeat(2,1fr);}
  .quick{grid-template-columns:1fr 1fr;}
  .menu{grid-template-columns:repeat(2,1fr);} .feat{grid-template-columns:1fr;}
  .access,.split,.profile{grid-template-columns:1fr;} .split:nth-of-type(even) .split__pic{order:0;}
  .profile__pic{max-width:380px;}
  .gallery,.grid3{grid-template-columns:repeat(2,1fr);}
  .ft__in{grid-template-columns:1fr; gap:24px;}
}
@media (max-width:768px){
  body{padding-bottom:84px;}
  .bottombar{display:grid;}
  .wrap{width:min(100% - 32px,1180px);}
  .sample-bar .in{padding:8px 0; gap:6px;}
  .logo__mark{width:46px; height:46px;} .logo__name{font-size:18px;} .logo__dept{font-size:10px;}
  .hero__in{padding-top:24px; gap:18px;} .hero h1{font-size:clamp(24px,7vw,32px); margin:10px 0 18px; word-break:auto-phrase;} .hero h1 br{display:none;} .hero h1 .nb{white-space:normal;}
  .hero__visual img{aspect-ratio:4/3;}
  .tile{font-size:12px; padding:10px;}
  .cta3{grid-template-columns:1fr; gap:10px;} .btn--lg{min-height:54px; font-size:16px;}
  .symptoms{gap:8px;} .symptom{font-size:14px; padding:9px 13px;}
  .quick{grid-template-columns:1fr;} .qcard--doc img{width:100px; height:125px;}
  .menu,.gallery,.grid3,.grid2,.form__two{grid-template-columns:1fr;}
  .info{grid-template-columns:1fr;} .info dt{padding-bottom:4px; border-bottom:0;} .info dd{padding-top:4px;}
  .news a{grid-template-columns:1fr; gap:6px;} .news .tag{justify-self:start;}
  .hours{font-size:13px;} .hours th,.hours td{padding:10px 4px;} .hours tbody th{padding-left:10px;}
  .final .cta3{max-width:none;}
  .ft__cp-in{padding-bottom:16px;}
  .split{scroll-margin-top:90px;}
}
@media (max-width:960px){
  .msg__layout{grid-template-columns:1fr; gap:28px;}
  .msg__vtitle{writing-mode:horizontal-tb; text-orientation:mixed; flex-direction:column; gap:4px; letter-spacing:.04em; order:-1; font-size:clamp(24px,5.6vw,32px);}
  .msg__vtitle .mk::after{right:0; left:0; top:auto; bottom:2px; height:10px; width:auto;}
  .msg__vsmall{margin-top:6px; letter-spacing:.24em;}
  .msg__portrait{max-width:300px;}
  .msg__body p{max-width:none;}
}
