:root{--navy:#1f3a36;--navy2:#2a4a45;--green:#5fdf2a;--green-d:#2f6b17;--brown:#714a2d;--head:#714a2d;--card:#fff;--hbg:#eaf7d9;--hbd:#bfe3a0;--grain:.045;--amber:#f2a54a;--cream:#fdfdf0;--paper:#f6f5e3;--ink:#2a2118;--mute:#6a5d50;--line:#e4dfc6;--r:16px;--serif:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;--sans:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
@view-transition{navigation:auto}
body{transition:background .5s,color .5s;margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.95;font-size:16px;padding-bottom:0}
a{color:inherit}img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:6px}
.wrap{width:min(1080px,100% - 32px);margin-inline:auto}
.prog{position:fixed;left:0;top:0;height:3px;width:0;background:var(--green);z-index:60;transition:width .1s}
/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(31,58,54,.94);backdrop-filter:blur(8px);color:#fff}
.hd{display:flex;align-items:center;gap:20px;padding:10px 0;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;margin-right:auto}
.logo b{font-family:var(--serif);font-size:1.25rem;letter-spacing:.1em}.logo small{font-size:.7rem;color:#aab6c8;align-self:flex-end;padding-bottom:3px}
.sprout{width:24px;height:24px;fill:none;stroke:var(--green);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:90;stroke-dashoffset:90;animation:draw 1.4s .2s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.top nav{display:flex;gap:4px;flex-wrap:wrap}.top nav a{text-decoration:none;font-size:.88rem;padding:6px 10px;border-radius:8px;color:#d6e4dc}
.top nav a:hover,.top nav a[aria-current]{background:rgba(255,255,255,.12);color:#fff}
.tel{background:var(--green);color:#14260a;font-weight:700;text-decoration:none;padding:8px 14px;border-radius:999px;font-size:.88rem;white-space:nowrap}
/* hero */
.hero{position:relative;background:radial-gradient(900px 520px at 80% 40%,#356b4d 0%,var(--navy) 64%);color:#fff;overflow:hidden}
.stars{position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 12% 20%,#fff9,transparent),radial-gradient(1px 1px at 30% 70%,#fff8,transparent),radial-gradient(1.5px 1.5px at 55% 15%,#fff9,transparent),radial-gradient(1px 1px at 90% 30%,#fff8,transparent),radial-gradient(1px 1px at 42% 45%,#fff6,transparent);animation:tw 6s ease-in-out infinite alternate}
@keyframes tw{to{opacity:.4}}
.hero-in{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:36px;align-items:center;padding:68px 0 76px}
.kick{color:var(--green);letter-spacing:.2em;font-size:.82rem;margin:0 0 10px;font-weight:700}
.hero h1{font-family:var(--serif);margin:0 0 18px;font-size:clamp(1.7rem,3.8vw,2.7rem);line-height:1.5;letter-spacing:.05em;font-weight:800;word-break:auto-phrase}
.hero h1 .l{display:block;animation:up .9s .2s backwards}.hero h1 .l+.l{animation-delay:.6s}
@keyframes up{from{opacity:0;transform:translateY(14px)}}
.lead{color:#dfeae3;max-width:34em;margin:0 0 24px}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--green);color:#14260a;font-weight:700;text-decoration:none;padding:13px 22px;border-radius:999px;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(95,223,42,.35)}
.btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
.small-btn{padding:10px 18px;font-size:.9rem;margin-top:6px;background:var(--green-d);color:#fff}
.note-s{font-size:.82rem;color:#b9d0c4;margin:16px 0 0}
/* arc */
.arc-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:18px 18px 14px;backdrop-filter:blur(4px)}
.arc-t{margin:0 0 2px;font-size:.78rem;letter-spacing:.2em;color:#b9d0c4}
#arc{width:100%;height:auto;display:block;overflow:visible}
#arc .tr{fill:none;stroke:rgba(255,255,255,.12);stroke-width:14;stroke-linecap:round}
#arc .sg{fill:none;stroke:var(--green);stroke-width:14;stroke-linecap:round;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:dr 1.4s ease forwards}
#arc .sg.n{stroke:var(--amber);animation-delay:.5s}
@keyframes dr{to{stroke-dashoffset:0}}
#arc text{fill:#c9dcd1;font-size:21px;text-anchor:middle}
#arc .tk{stroke:rgba(255,255,255,.35);stroke-width:2}
#arc .now circle.o{fill:rgba(255,255,255,.22);animation:pulse2 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
#arc .now circle.i{fill:#fff}
.arc-s{margin:6px 0 4px;text-align:center;font-weight:700;font-size:1.05rem}
.arc-n{margin:0;text-align:center;font-size:.78rem;color:#b9d0c4}
.arc-f{margin:6px 0 0;text-align:center;font-size:.7rem;color:#9fb8ab}
.arc-n i{display:inline-block;width:12px;height:6px;border-radius:3px;margin:0 4px 1px 10px;background:var(--green)}.arc-n i.k2{background:var(--amber)}
@keyframes pulse2{50%{transform:scale(1.5);opacity:.5}}
/* sections */
.sec{padding:76px 0}.sec.alt{background:var(--paper);border-block:1px solid var(--line)}
.eyebrow{font-family:var(--serif);letter-spacing:.3em;font-size:.8rem;color:var(--green-d);margin:0 0 4px;font-weight:700}
.sh{font-family:var(--serif);color:var(--head);font-size:1.7rem;margin:0 0 20px;letter-spacing:.05em;line-height:1.5;font-weight:800}
.two{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px}
.card h3{margin:0 0 8px}.card.big h3{color:var(--mute);font-size:.9rem;font-weight:600}
.tel-l,.mail-l{font-size:1.7rem;font-weight:800;margin:.2em 0;word-break:break-all}.mail-l{font-size:1.15rem}.tel-l a,.mail-l a{text-decoration:none}
.lnk{color:var(--green-d);font-weight:700;text-decoration:none}.lnk:hover{text-decoration:underline}
.small{font-size:.85rem;color:var(--mute)}
/* tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.tabs button{font:inherit;font-weight:700;border:1.5px solid var(--head);background:transparent;color:var(--head);padding:9px 18px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.tabs button:hover{transform:translateY(-2px)}.tabs button[aria-selected=true]{background:var(--head);color:#fff}
.tp{display:flex;gap:24px;justify-content:space-between;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--green);border-radius:var(--r);padding:26px 30px;animation:fade .5s}
.tp[hidden]{display:none}.tp h3{font-family:var(--serif);font-size:1.4rem;margin:0 0 8px;color:var(--head)}.tp p{margin:0}
@keyframes fade{from{opacity:0;transform:translateY(8px)}}
.tag{display:inline-block;white-space:nowrap;font-size:.72rem;font-weight:700;letter-spacing:.08em;background:var(--green);color:#14260a;border-radius:999px;padding:2px 12px}
/* body map */
.map-sec{background:var(--paper);border-block:1px solid var(--line)}
.mapl{margin:-8px 0 26px;color:var(--mute)}
.map{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:40px;align-items:center}
.body{width:100%;max-height:520px;height:auto;display:block;margin-inline:auto}
.body .outline{fill:rgba(113,74,45,.05);stroke:var(--head);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.body .shadow{fill:rgba(113,74,45,.12)}
.body .outline.ghost{stroke:rgba(113,74,45,.35);stroke-width:1.4;fill:none}
.body .outline path,.body .outline circle,.body .outline ellipse{stroke-dasharray:1400;stroke-dashoffset:1400;transition:stroke-dashoffset 2.2s ease}
.body.in .outline path,.body.in .outline circle,.body.in .outline ellipse{stroke-dashoffset:0}
.spot{cursor:pointer;outline:none}.spot .core{fill:var(--green-d);transition:fill .2s}.spot .ring{fill:rgba(95,223,42,.25);stroke:var(--green-d);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:pulse2 2.4s ease-in-out infinite}
.spot:hover .core,.spot:focus-visible .core,.spot.on .core{fill:var(--head)}.spot.on .ring{fill:rgba(113,74,45,.18);stroke:var(--head)}
.mapp{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;min-height:260px}
.mapp .ph0{color:var(--mute);margin:0}.mapp h3{font-family:var(--serif);color:var(--head);font-size:1.5rem;margin:0 0 6px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}.chips span{font-size:.82rem;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:1px 12px}
.route{display:grid;gap:10px}.route div{border-radius:12px;padding:12px 16px;font-size:.95rem}.route b{display:block;font-size:.78rem;letter-spacing:.1em;margin-bottom:2px}
.route .h{background:var(--hbg);border:1px solid var(--hbd)}.route .h b{color:var(--green-d)}.route .j{background:var(--navy);color:#fff}.route .j b{color:var(--green)}
.mapp .fine{font-size:.8rem;color:var(--mute);margin:14px 0 0}
/* band */
.band{position:relative;overflow:hidden;color:#fff;min-height:320px;display:grid}
.band img{grid-area:1/1;width:100%;height:100%;min-height:320px;object-fit:cover}.band::after{content:"";grid-area:1/1;background:linear-gradient(90deg,rgba(15,27,45,.82),rgba(15,27,45,.1))}
.glow{position:absolute;right:30%;top:42%;width:160px;height:160px;margin:-80px;border-radius:50%;background:radial-gradient(circle,rgba(242,165,74,.55),transparent 65%);mix-blend-mode:screen;animation:pulse2 4s ease-in-out infinite;z-index:1}
.band-tx{grid-area:1/1;z-index:2;align-self:center;position:relative}.band-tx h2{font-family:var(--serif);margin:0 0 6px;font-size:1.9rem}.band-tx p{margin:0;color:#e3e9f1}.band-tx .kick{color:var(--amber);margin-bottom:6px}
.ph-img img{border-radius:20px;aspect-ratio:3/2;object-fit:cover;box-shadow:0 18px 40px rgba(31,58,54,.22)}
/* hours / cal */
.hours{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--r);overflow:hidden;font-size:.93rem}
.hours th,.hours td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
.hours thead th{background:#ece8c8;font-size:.8rem}.hours tbody th{white-space:nowrap;width:5.5em}
.hours tr.today{background:#eaf7d9;outline:2px solid var(--green);outline-offset:-2px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;text-align:center;font-size:.9rem}
.cal .cm{grid-column:1/-1;font-family:var(--serif);font-weight:800;color:var(--head);margin-bottom:4px}
.cal .dw{font-size:.72rem;color:var(--mute)}.cal .d{padding:6px 0;border-radius:8px}.cal .d.off{background:#efe9d3;color:#9a8e78}.cal .d.sat{color:#2f6b17}.cal .d.today{outline:2px solid var(--green-d);font-weight:800}
/* pages */
.ph{background:var(--navy);color:#fff;padding:46px 0 42px}.ph h1{font-family:var(--serif);margin:6px 0 6px;font-size:2rem;letter-spacing:.08em}.ph p{margin:0;color:#d4e3da}
.crumbs{font-size:.8rem;color:#b9d0c4}.crumbs a{text-decoration:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 26px}
.panel h2{font-family:var(--serif);font-size:1.25rem;margin:.4em 0;color:var(--head)}.panel.dark{background:var(--navy2);color:#fff;border-color:var(--navy2)}.panel.dark h2{color:#fff}.panel.dark .small{color:#c3d6cb}
.ems{margin:44px 0;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--green);border-radius:var(--r);padding:28px 30px}
.list{list-style:none;padding:0;margin:14px 0}.list li{padding:12px 0;border-top:1px dashed var(--line)}.list b{display:block}
.price{font-weight:800;color:var(--green-d);font-size:1.1rem;margin:.6em 0 0}
.pass{margin-top:28px;background:#ece8c8;border-radius:var(--r);padding:22px 26px}.pass h3{margin:0 0 6px}.pass ul{margin:0;padding-left:1.2em}.pass b{margin-right:.6em}
.career{margin:12px 0 0}.career div{display:grid;grid-template-columns:4em 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.career dt{font-weight:700;color:var(--green-d)}.career dd{margin:0}
.cta{background:var(--navy);color:#fff;text-align:center;padding:68px 0}.cta h2{font-family:var(--serif);margin:0 0 8px;font-size:1.6rem}.cta p{color:#d4e3da;margin:0 0 22px}.cta .btns{justify-content:center}
footer{background:#14261f;color:#a9c0b3;padding:30px 0 90px;font-size:.82rem}footer nav{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px}footer a{color:#dbe8e0;text-decoration:none}
/* dock (mobile) */
.dock{display:none}
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.js .rv.in{opacity:1;transform:none}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#8a9a90;margin-right:6px}.open .dot,.dock.open .dot{background:#47d18c;box-shadow:0 0 8px 2px rgba(71,209,140,.6)}.dock.night .dot{background:var(--amber)}
@media (max-width:820px){
.hero-in,.two,.split,.map{grid-template-columns:1fr}.hero-in{padding:40px 0 48px}.sec{padding:54px 0}.hd{gap:8px}.top nav{order:3;width:100%}.top nav a{font-size:.8rem;padding:5px 8px}.tel{display:none}
.tp{flex-direction:column;gap:12px;padding:22px}.band-tx{width:calc(100% - 32px);margin-inline:auto}.band-tx h2{font-size:1.5rem}.mapp{min-height:0}
.dock{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;align-items:center;gap:8px;background:rgba(20,38,31,.97);padding:8px 12px calc(8px + env(safe-area-inset-bottom));color:#fff;font-size:.85rem}
.dock-st{margin-right:auto;display:flex;align-items:center;white-space:nowrap}.dock a{text-decoration:none;padding:9px 16px;border-radius:999px;border:1.5px solid rgba(255,255,255,.5);font-weight:700}.dock a.pri{background:var(--green);color:#14260a;border-color:var(--green)}
}
@media (max-width:420px){.logo small{display:none}.hours th,.hours td{padding:8px 6px;font-size:.8rem}.dock-st b{font-size:.78rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .rv{opacity:1;transform:none}.sprout{stroke-dashoffset:0}#arc .sg{stroke-dashoffset:0}.body .outline path,.body .outline circle,.body .outline ellipse{stroke-dashoffset:0}}

/* ---- 夜モード */
:root[data-theme=night]{--cream:#0e1b19;--paper:#13242a;--ink:#e6eee8;--mute:#a4b8ad;--line:#27403a;--head:#e2bf98;--card:#162a2c;--hbg:#173523;--hbd:#2c5a3a}
:root[data-theme=night] .tabs button{color:var(--head);border-color:var(--head)}
:root[data-theme=night] .tabs button[aria-selected=true]{background:var(--head);color:#1a1209}
:root[data-theme=night] .hours thead th,:root[data-theme=night] .pass{background:#1d3430}
:root[data-theme=night] .chips span{background:#1d3430}
:root[data-theme=night] .cal .d.off{background:#243b36;color:#7d948a}
:root[data-theme=night] .eyebrow,:root[data-theme=night] .lnk,:root[data-theme=night] .price{color:var(--green)}
:root[data-theme=night] .body .spot .core{fill:var(--green)}
.theme{display:inline-flex;border:1.5px solid rgba(255,255,255,.4);background:transparent;color:#fff;border-radius:999px;padding:2px;cursor:pointer;font:inherit;font-size:.78rem}
.theme span{padding:4px 12px;border-radius:999px;transition:background .3s,color .3s}.theme .t-d{background:#fff;color:#1f3a36}
:root[data-theme=night] .theme .t-d{background:transparent;color:#fff}:root[data-theme=night] .theme .t-n{background:var(--amber);color:#2a1700}
/* ---- 紙のざらつき */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:70;opacity:var(--grain);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
/* ---- ヒーロー(全画面の写真+縦書き) */
.hero2{position:relative;min-height:min(88vh,760px);display:grid;color:#fff;overflow:hidden;background:#14261f}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 18s ease-out forwards;transform-origin:70% 40%}
@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-sh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,38,31,.9) 0%,rgba(20,38,31,.55) 45%,rgba(20,38,31,.15) 100%),linear-gradient(0deg,rgba(20,38,31,.7),transparent 40%)}
.hero2-in{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:90px 0 56px}
.h2-l{max-width:30em}.h2-l .lead{color:#e4efe8;margin:0 0 22px}
.vt{writing-mode:vertical-rl;font-family:var(--serif);font-weight:800;font-size:clamp(2.1rem,5.2vw,4rem);line-height:1.45;letter-spacing:.14em;margin:0;align-self:flex-start;text-shadow:0 6px 30px rgba(0,0,0,.45);word-break:keep-all}
.vt span{display:block;animation:up 1.1s .3s backwards}.vt span+span{animation-delay:.9s;margin-top:0;padding-top:0}
.vt span+span{margin-right:.3em}
.chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:22px 0 0;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:6px 16px;font-size:.9rem;backdrop-filter:blur(6px)}
.chip small{font-size:.68rem;color:#c3d6cb}.chip.open .dot{background:#47d18c;box-shadow:0 0 8px 2px rgba(71,209,140,.6)}.chip.night .dot{background:var(--amber);box-shadow:0 0 8px 2px rgba(242,165,74,.6)}
/* ---- 流れる症状の帯 */
.ticker{overflow:hidden;background:var(--navy);color:#cfe3d6;font-family:var(--serif);font-size:1.15rem;letter-spacing:.2em;white-space:nowrap;border-block:1px solid rgba(255,255,255,.12)}
.tk-in{display:inline-flex;padding:14px 0;animation:tk 60s linear infinite}.tk-in span{padding-right:0}
@keyframes tk{to{transform:translateX(-50%)}}
/* ---- スクロールで一日が進む */
.day-track{height:320vh;position:relative}
.day-pin{position:sticky;top:0;height:100vh;min-height:560px;overflow:hidden;color:var(--dt,#10261f)}
.day-sky{position:absolute;inset:0;background:linear-gradient(#bfe3ee,#f7f0d8)}
.day-svg{position:absolute;inset:0;width:100%;height:100%}
.day-svg .halo{fill:var(--halo,rgba(255,211,107,.35))}.day-svg .body{fill:var(--orb,#ffd36b)}
.day-svg .town{fill:#0c1b17;opacity:.92}.day-svg .clinic path{fill:#10231d}.day-svg #win{fill:#f2a54a;opacity:var(--win,.15);filter:drop-shadow(0 0 14px #f2a54a)}
#stars circle{fill:#fff}
.day-ui{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;max-width:1080px}
.day-ui .eyebrow{color:inherit;opacity:.8}
.day-time{font-family:var(--serif);font-weight:800;font-size:clamp(4rem,13vw,9.5rem);line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.day-ch{position:relative;min-height:190px;max-width:26em;margin-top:10px}
.ch{position:absolute;inset:0 auto auto 0;opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s;pointer-events:none}.ch.on{opacity:1;transform:none;pointer-events:auto}
.ch b{display:inline-block;font-size:.78rem;letter-spacing:.2em;border:1px solid currentColor;border-radius:999px;padding:1px 14px}
.ch h3{font-family:var(--serif);font-size:1.7rem;margin:8px 0 4px}.ch p{margin:0;font-size:1rem}
.day-note{position:absolute;left:0;bottom:22px;font-size:.72rem;opacity:.75;margin:0}
.js-off .day-track,.no-anim .day-track{height:auto}
@media (max-width:820px){.hero2{min-height:640px}.hero2-in{flex-direction:column-reverse;align-items:flex-start;padding:70px 0 40px}.vt{font-size:2rem;align-self:flex-end}.day-track{height:280vh}.theme{order:2}.ch h3{font-size:1.35rem}}
@media (prefers-reduced-motion:reduce){.tk-in,.hero-bg{animation:none!important}.day-track{height:auto}.day-pin{height:auto;position:relative;padding:60px 0}.day-sky{background:linear-gradient(#bfe3ee,#f7f0d8)}.day-svg{display:none}.day-ch{min-height:0}.ch{position:relative;opacity:1;transform:none;margin-bottom:18px}.day-time{display:none}.day-note{position:static;margin-top:10px}.day-ui{height:auto}}

.h2-l .lead{word-break:auto-phrase;max-width:27em}
@media (max-width:820px){.hero-sh{background:linear-gradient(0deg,rgba(20,38,31,.94) 0%,rgba(20,38,31,.62) 55%,rgba(20,38,31,.5) 100%)}.hero2-in{padding-bottom:96px}.vt{text-shadow:0 2px 18px rgba(0,0,0,.6)}}
