/* ひだまり薬局 — 設計システム（_build/style.css が正。在宅医療の構造を流用し、配色・書体・ヒーローを差し替え） */
:root{
  --terra:#d9971f; --terra-dark:#b47a12; --terra-soft:#fbefd4; --terra-soft2:#f3dca6;
  --navy:#2f6b4f; --navy-dark:#24523d; --navy-soft:#e3efe8;
  --stone:#8d8677; --stone-soft:#f1eee6;
  --green:#2f6b4f; --green-dark:#24523d; --green-soft:#e3efe8; --mint:#f3f6ef;
  --coral:#2f6b4f; --coral-dark:#24523d; --coral-soft:#e3efe8;
  --beige:#f7f3ea; --sand:#e9e1cf; --cream:#fdfaf3;
  --ink:#24302a; --body:#4a534d; --muted:#7c857f; --line:#e6e1d5; --paper:#ffffff; --bg:#fdfbf6;
  --r:14px; --r-lg:22px; --shadow:0 20px 44px -34px rgba(36,48,42,.4); --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.95; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{margin:0; color:var(--ink); font-family:"Zen Maru Gothic",sans-serif; font-weight:700; letter-spacing:.02em; line-height:1.5; word-break:auto-phrase; text-wrap:balance;}
p{margin:0;} ul{margin:0; padding:0; list-style:none;}
.wrap{width:min(1140px,calc(100% - 48px)); margin:0 auto;}
.ic{width:1.2em; height:1.2em; flex:none; stroke:currentColor;}
.kicker{display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.22em; color:var(--terra); font-weight:700; text-transform:uppercase;}
.kicker::before{content:""; width:22px; height:2px; background:var(--terra);}
.kicker--light{color:#f2c56a;} .kicker--light::before{background:var(--terra);}
.mk{color:var(--terra);}

/* ボタン */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:0 24px; border-radius:6px; font-weight:700; font-size:15px; color:#fff; transition:transform .2s var(--ease), background .2s; box-shadow:0 10px 22px -16px rgba(31,42,51,.5);}
.btn:hover{transform:translateY(-2px);}
.btn--green{background:var(--green);} .btn--green:hover{background:var(--green-dark);}
.btn--terra{background:var(--terra);} .btn--terra:hover{background:var(--terra-dark);}
.btn--white{background:#fff; color:var(--navy); border:1.5px solid var(--line); box-shadow:none;} .btn--white:hover{background:var(--stone-soft);}
.btn--navy{background:var(--navy);} .btn--navy:hover{background:var(--navy-dark);}
.btn--coral{background:var(--coral);} .btn--coral:hover{background:var(--coral-dark);}
.btn--outline{background:#fff; color:var(--navy); border:1.5px solid var(--navy); box-shadow:none;} .btn--outline:hover{background:var(--navy-soft);}
.btn--lg{min-height:60px; font-size:16px; padding:0 26px;}
.btn .ic--end{margin-left:auto; opacity:.85;}
.cta3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.cta3 .btn{width:100%; justify-content:flex-start;} .cta3 .btn span{flex:1; text-align:center;}
.cta3--hero{gap:10px;} .cta3--hero .btn{min-height:54px; padding:0 14px; font-size:14px; justify-content:center;} .hero .btn--white{background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.35);} .hero .btn--white:hover{background:rgba(255,255,255,.2);} .cta3--hero .btn span{flex:none;}

/* サンプル帯 */
.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(253,251,246,.96); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.hd__in{width:min(1280px,calc(100% - 40px)); margin:0 auto; display:flex; align-items:center; gap:20px; padding:12px 0;}
.hd__brand{flex:none;}
.logo{display:inline-flex; align-items:center; gap:10px; color:var(--ink);}
.logo__mark{width:42px; height:42px; border-radius:8px; background:var(--terra); color:#fff; display:grid; place-items:center; flex:none;}
.logo__mark .ic{width:22px; height:22px;}
.logo__name{display:block; font-family:"Zen Maru Gothic",sans-serif; font-weight:700; font-size:19px; letter-spacing:.04em; line-height:1.25; white-space:nowrap;}
.logo__dept{display:block; font-size:10.5px; color:var(--muted); letter-spacing:.08em; margin-top:3px; white-space:nowrap;}
.hd__nav{display:flex; gap:2px; margin-left:auto;}
.hd__nav a{font-size:13.5px; font-weight:500; color:var(--ink); padding:8px 11px; white-space:nowrap; position:relative;}
.hd__nav a:hover{color:var(--terra-dark);}
.hd__nav a[aria-current="page"]{color:var(--terra-dark); font-weight:700;}
.hd__nav a[aria-current="page"]::after{content:""; position:absolute; left:11px; right:11px; bottom:2px; height:2px; background:var(--terra);}
.hd__actions{display:flex; align-items:center; gap:10px; flex:none;}
.hd__tel{display:inline-flex; align-items:center; gap:6px; color:var(--ink); font-weight:700; font-size:15px; letter-spacing:.02em; white-space:nowrap;}
.hd__tel .ic{color:var(--terra);}
.hd__cta{display:inline-flex; align-items:center; gap:6px; background:var(--terra); color:#fff; border-radius:6px; padding:11px 18px; font-weight:700; font-size:14px; white-space:nowrap;}
.hd__cta:hover{background:var(--terra-dark);}
.hd__toggle{display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:10px; 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:2px; background:var(--ink); transition:transform .25s ease, opacity .25s ease;}
.hd.is-open .hd__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hd.is-open .hd__toggle span:nth-child(2){opacity:0;}
.hd.is-open .hd__toggle span:nth-child(3){transform:translateY(-7px) 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:600; color:var(--ink); font-size:15px;}
.hd__mobile-links a[aria-current="page"]{color:var(--green);}
.hd__mobile-cta{display:grid; gap:10px; padding:16px 22px 20px;}

/* ヒーロー：写真を大きく、左に情報パネル */
.hero{position:relative; background:var(--navy); color:#fff; overflow:hidden;}
.hero__grid{display:grid; grid-template-columns:1fr 1fr; min-height:560px;}
.hero__body{padding:clamp(48px,6vw,84px) clamp(24px,4vw,56px) clamp(40px,5vw,64px) 0; position:relative; z-index:1; order:1;}
.hero__body .kicker{margin-bottom:16px;}
.hero h1{font-size:clamp(28px,3.3vw,42px); font-weight:600; line-height:1.55; color:#fff; text-wrap:initial; margin:0 0 18px; letter-spacing:.02em;}
.hero h1 .nb{white-space:nowrap;}
.hero h1 .mk{color:#f2c56a;}
.hero__lead{max-width:34em; color:rgba(255,255,255,.86); font-size:clamp(15px,1.4vw,17px); margin-bottom:26px;}
.hero__points{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:26px;}
.hero__pt{background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius:6px; padding:12px 14px; font-size:13px; color:#fff; font-weight:700; display:flex; gap:8px; align-items:center; line-height:1.45;}
.hero__pt .ic{color:#f2c56a; width:22px; height:22px;}
.hero__pic{position:relative; min-height:420px; order:2;}
.hero__pic img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hero__pic::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--navy) 0%, rgba(253,250,243,0) 22%);}
.hero__tag{position:absolute; left:22px; bottom:22px; z-index:1; background:rgba(255,255,255,.94); border-radius:8px; padding:10px 16px; font-size:13px; color:var(--ink); font-weight:700; display:flex; gap:8px; align-items:center; box-shadow:var(--shadow);}
.hero__tag .ic{color:var(--terra);}
.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} .hero-anim > :nth-child(5){animation-delay:.48s}
@keyframes rise{from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:none;}}

/* 受診の入口（CTA帯） */
.entry{background:#fff; border-bottom:1px solid var(--line);}
.entry__in{padding:22px 0;}
.entry .cta3{max-width:none;}

/* 今日の診療・お知らせの帯 */
.today{display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:16px; padding:clamp(28px,4vw,44px) 0 0;}
.tcard{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:20px 22px; box-shadow:var(--shadow);}
.tcard__t{display:flex; align-items:center; gap:8px; font-weight:700; color:var(--ink); font-size:15px; margin-bottom:8px;}
.tcard__t .ic{color:var(--terra);}
.tcard__big{font-family:"Zen Maru Gothic",sans-serif; font-size:clamp(19px,1.6vw,22px); color:var(--ink); font-weight:600; line-height:1.4;}
.tcard__sm{font-size:13px; color:var(--muted); margin-top:6px; line-height:1.7;}
.tcard__tag{display:inline-block; background:var(--terra-soft); color:var(--terra-dark); font-size:11px; font-weight:700; border-radius:4px; padding:2px 8px; margin-right:6px;}
.tcard.is-closed .tcard__big{color:var(--terra-dark);}
.tcard__more{display:inline-flex; align-items:center; gap:4px; color:var(--terra-dark); font-weight:700; font-size:13px; margin-top:10px;}

/* セクション共通 */
.sec{padding:clamp(56px,7.5vw,100px) 0;}
.sec--white{background:#fff;} .sec--beige{background:var(--beige);} .sec--mint{background:var(--mint);}
.sec__head{margin-bottom:clamp(24px,3.5vw,44px); display:grid; gap:10px;}
.sec__head h2{font-size:clamp(24px,3vw,36px);}
.sec__head p{max-width:44em; color:var(--body);}
.sec__head.is-center{text-align:center;} .sec__head.is-center .kicker{justify-content:center;} .sec__head.is-center p{margin:0 auto;}
.lead{max-width:44em; color:var(--body);}

/* 症状・目的から探す */
.finder{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.finder a{display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; transition:transform .2s var(--ease), border-color .2s;}
.finder a:hover{transform:translateY(-2px); border-color:var(--green);}
.finder .ic{width:42px; height:42px; padding:9px; border-radius:8px; background:var(--terra-soft); color:var(--terra-dark);}
.finder .ic.is-coral{background:var(--navy-soft); color:var(--navy);} .finder .ic.is-navy{background:var(--navy); color:#fff;}
.finder b{display:block; color:var(--ink); font-size:16px; font-family:"Zen Maru Gothic",sans-serif; font-weight:600;}
.finder small{display:block; color:var(--muted); font-size:12.5px; line-height:1.6;}
.finder .ar{color:var(--terra); width:18px; height:18px; padding:0; background:none;}

/* 診療メニュー（横長カード） */
.menu{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.mcard{display:grid; grid-template-columns:200px 1fr; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); transition:transform .25s var(--ease);}
.mcard:hover{transform:translateY(-3px);}
.mcard img{width:100%; height:100%; object-fit:cover; min-height:180px;}
.mcard__b{padding:22px 24px; display:flex; flex-direction:column; gap:8px;}
.mcard__no{font-size:11px; letter-spacing:.2em; color:var(--terra-dark); 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(--navy); font-weight:700; font-size:13.5px;}

/* 特徴（数字つき） */
.feat{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:#fff;}
.fcard{padding:32px 30px; border-right:1px solid var(--line);}
.fcard:last-child{border-right:0;}
.fcard__no{font-family:"Zen Maru Gothic",sans-serif; font-size:13px; letter-spacing:.2em; color:var(--terra); margin-bottom:14px;}
.fcard h3{font-size:20px; margin-bottom:10px;}
.fcard p{font-size:14.5px; color:var(--body);}

/* 診療時間表 */
.hours{width:100%; border-collapse:separate; border-spacing:0; background:#fff; border-radius:12px; 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(--navy); color:#fff; font-weight:700;}
.hours tbody th{text-align:left; padding-left:16px; color:var(--ink); font-weight:700; white-space:nowrap; background:var(--cream);}
.hours .on{color:var(--terra-dark); font-weight:700; font-size:16px;} .hours .off{color:#c8c2b7;}
.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:12px; overflow:hidden;}
.info dt,.info dd{margin:0; padding:14px 16px; border-bottom:1px solid var(--line);}
.info dt{background:var(--cream); color:var(--ink); font-weight:700;}
.info dd{color:var(--body);}
.info dt:last-of-type,.info dd:last-of-type{border-bottom:0;}
.access__pics{display:grid; gap:14px; min-width:0;}
.access > *{min-width:0;} .access__pics img{min-width:0;}
.access__pics img{border-radius:var(--r-lg); aspect-ratio:16/11; object-fit:cover; width:100%; box-shadow:var(--shadow);}

/* お知らせ */
.news{display:grid; gap:0; border-top:1px solid var(--line);}
.news a{display:grid; grid-template-columns:110px 96px 1fr auto; gap:14px; align-items:center; padding:16px 6px; border-bottom:1px solid var(--line); transition:background .2s;}
.news a:hover{background:#fff;}
.news .d{color:var(--muted); font-size:13px; letter-spacing:.04em;}
.news .tag{display:inline-block; text-align:center; font-size:11.5px; font-weight:700; border-radius:4px; padding:3px 10px; background:var(--terra-soft); color:var(--terra-dark);}
.news .tag.is-coral{background:var(--navy-soft); color:var(--navy);} .news .tag.is-navy{background:var(--navy); color:#fff;}
.news .t{color:var(--ink);} .news .ic{color:var(--terra);}

/* 最終CTA */
.final{background:var(--navy); color:#fff; padding:clamp(56px,7vw,92px) 0; position:relative; overflow:hidden;}
.final::before{content:""; position:absolute; left:-10vw; bottom:-30vw; width:50vw; height:50vw; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.10), rgba(255,255,255,0) 70%);}
.final__in{position:relative; z-index:1;}
.final h2{color:#fff; font-size:clamp(24px,3.2vw,36px); margin:.3em 0 .5em;}
.final p{color:rgba(255,255,255,.85); max-width:44em; margin-bottom:26px;}
.final .cta3{max-width:920px;} .final .btn{box-shadow:none;} .final .btn--navy{background:#fff; color:var(--navy);} .final .btn--navy:hover{background:var(--navy-soft);} .final .btn--white{background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.35);} .final .btn--white:hover{background:rgba(255,255,255,.2);}

/* フッター */
.ft{background:#fff; border-top:1px solid var(--line);}
.ft__in{width:min(1140px,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:700; font-size:22px; color:var(--ink);} .ft__tel .ic{color:var(--terra);}
.ft__hours{margin-top:12px; font-size:13px; border-collapse:collapse;}
.ft__hours th{text-align:left; color:var(--ink); 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:13px; color:var(--terra-dark); margin-bottom:12px; letter-spacing:.14em; font-family:"Noto Sans JP",sans-serif; font-weight:700;}
.ft__col a{display:block; font-size:14px; color:var(--body); padding:5px 0;} .ft__col a:hover{color:var(--green);}
.ft__cp{background:var(--navy-dark); color:rgba(255,255,255,.72); font-size:12px;}
.ft__cp-in{width:min(1140px,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,.96); 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:54px; border-radius:10px; color:#fff; font-weight:700; font-size:12.5px;}
.bottombar__btn .ic{width:20px; height:20px;}
.bottombar__btn.is-terra{background:var(--terra);} .bottombar__btn.is-stone{background:var(--stone);} .bottombar__btn.is-navy{background:var(--navy);}

/* 下層 */
.phero{background:var(--navy); color:#fff; padding:clamp(44px,6vw,72px) 0 clamp(32px,4vw,48px); position:relative; overflow:hidden;}
.phero__in{position:relative;}
.phero h1{font-size:clamp(28px,3.8vw,42px); margin:.35em 0 .4em; color:#fff;}
.phero .kicker{color:#f2c56a;} .phero .kicker::before{background:#f2c56a;} .phero .lead{color:rgba(255,255,255,.86);}
.phero .lead{font-size:clamp(15px,1.5vw,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}
.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 > *{min-width:0;}
.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 p{color:var(--body);}
.split + .split{margin-top:clamp(40px,5vw,72px);}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.chip{background:var(--terra-soft); color:var(--terra-dark); font-size:13px; font-weight:700; border-radius:6px; padding:5px 12px;}
.chip.is-coral{background:var(--navy-soft); color:var(--navy);} .chip.is-navy{background:var(--navy); color:#fff;}
.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(--terra); margin-top:6px; width:18px; height:18px;}
.boxnote{background:var(--cream); border:1px solid var(--sand); border-radius:12px; padding:16px 18px; font-size:14px; color:var(--body); margin-top:16px;}
.boxnote b{color:var(--ink);}
.boxnote.is-coral{background:var(--terra-soft); border-color:var(--terra-soft2);}
.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-lg); padding:26px 26px; box-shadow:var(--shadow);}
.card h3{font-size:18px; margin-bottom:8px; display:flex; align-items:center; gap:8px;}
.card h3 .ic{color:var(--terra); width:24px; height:24px;}
.card p,.card li{font-size:14.5px; color:var(--body);}
.card ul{padding-left:1.2em; list-style:disc;}
.steps{display:grid; gap:12px; counter-reset:step;}
.step{display:grid; grid-template-columns:52px 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:"0" counter(step); width:44px; height:44px; border-radius:8px; background:var(--navy); color:#fff; display:grid; place-items:center; font-family:"Zen Maru Gothic",sans-serif; font-weight:600; font-size:15px;}
.step strong{display:block; color:var(--ink); 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:12px;}
.faq summary{cursor:pointer; list-style:none; padding:16px 50px 16px 18px; font-weight:700; color:var(--ink); 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:6px; background:var(--navy); 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(--terra); border-bottom:2px solid var(--terra); 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-lg); 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(--ink); 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(--ink); font-weight:600;}
.profile__name small{font-size:15px; color:var(--muted); margin-right:10px; font-weight:700; font-family:"Noto Sans JP",sans-serif;}
.profile__role{color:var(--terra-dark); 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{color:var(--terra-dark); 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(--ink); font-size:14px; display:block; margin-bottom:5px;}
.form label .req{display:inline-block; margin-left:8px; font-size:11px; color:#fff; background:var(--terra); 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:8px; 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(--terra); 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(--terra-soft); border:1px solid var(--terra-soft2); border-radius:12px; padding:16px 18px; color:var(--terra-dark); 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;}
.price{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; font-size:15px;}
.price th,.price td{padding:12px 14px; border-bottom:1px solid var(--line); text-align:left;}
.price th{background:var(--stone-soft); color:var(--ink); font-weight:700; white-space:nowrap;}
.price td:last-child{text-align:right; white-space:nowrap; color:var(--ink); font-weight:700;}
.price tr:last-child th,.price tr:last-child td{border-bottom:0;}

.price tr.cat th{background:var(--navy); color:#fff; letter-spacing:.06em;} .price tr.cat td{background:var(--navy);}
.price .sub{display:block; font-size:12px; color:var(--muted); font-weight:400;}

/* 演出 */
.is-reveal{opacity:0; transform:translateY(22px); transition:opacity .9s var(--ease) .06s, transform .9s var(--ease) .06s;}
.is-reveal.is-shown{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){ .hero-anim > *,.phero__in > *{animation:none;} .is-reveal{opacity:1; transform:none; transition:none;} }

/* レスポンシブ */
@media (max-width:1400px){ .hd__tel{display:none;} .hd__nav a{font-size:13px; padding:8px 9px;} }
@media (max-width:1180px){ .hd__nav a{font-size:12.5px; padding:8px 7px;} }
@media (max-width:960px){
  .hd__nav{display:none;} .hd__toggle{display:flex;} .hd__cta{display:none;}
  .hero__grid{grid-template-columns:1fr;} .hero__pic{min-height:300px; order:1;} .hero__pic::after{background:linear-gradient(180deg, rgba(253,250,243,0) 70%, var(--navy) 100%);}
  .hero__body{padding:28px 0 40px; order:2;}
  .hero__points{grid-template-columns:1fr 1fr;}
  .today{grid-template-columns:1fr;}
  .finder{grid-template-columns:1fr 1fr;}
  .menu{grid-template-columns:1fr;}
  .feat{grid-template-columns:1fr;} .fcard{border-right:0; border-bottom:1px solid var(--line);} .fcard:last-child{border-bottom:0;}
  .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,1140px);}
  .sample-bar .in{padding:8px 0; gap:6px;}
  .logo__mark{width:38px; height:38px;} .logo__name{font-size:16px;} .logo__dept{font-size:9.5px;}
  .hero h1{font-size:clamp(24px,6.6vw,30px);} .hero h1 br{display:none;} .hero__points{grid-template-columns:1fr;}
  .cta3{grid-template-columns:1fr; gap:10px;} .btn--lg{min-height:54px; font-size:15px;}
  .finder,.gallery,.grid3,.grid2,.form__two{grid-template-columns:1fr;}
  .mcard{grid-template-columns:1fr;} .mcard img{min-height:0; aspect-ratio:16/9;}
  .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; padding:14px 0;} .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;} .split{scroll-margin-top:90px;}
  .price{font-size:13px;} .price th,.price td{padding:10px 8px;} .price td:last-child{white-space:normal;}
  .cta3--hero{grid-template-columns:1fr;}
}

/* 薬局：明るいヒーロー（クリーム地・写真は右） */
.hero{background:var(--cream); color:var(--ink);}
.hero h1{color:var(--ink);} .hero h1 .mk{color:var(--terra-dark);}
.hero__lead{color:var(--body);}
.hero__pt{background:#fff; border:1px solid var(--line); color:var(--ink);} .hero__pt .ic{color:var(--terra);}
.hero__pic::after{background:linear-gradient(90deg, var(--cream) 0%, rgba(253,250,243,0) 22%);}
.hero .btn--white{background:#fff; color:var(--navy); border-color:var(--line);} .hero .btn--white:hover{background:var(--stone-soft);}
.hero__tag{background:var(--navy); color:#fff;} .hero__tag .ic{color:#f2c56a;}
.hero .kicker{color:var(--navy);} .hero .kicker::before{background:var(--navy);}
@media (max-width:960px){ .hero__pic::after{background:linear-gradient(180deg, rgba(253,250,243,0) 70%, var(--cream) 100%);} }
