
/* Layout: full-bleed bands edge to edge; text sits on a wide inner track. The building's vertical white sign is the hero's anchor. */
:root{
  --paper:#ffffff;
  --ink:#1b2333;
  --mute:#566074;
  --line:#dfe3ea;
  --tint:#f1f4f8;
  --k-red:#c34b36;      /* logo squares */
  --k-blue:#334a8f;
  --k-green:#3a7a42;
  --k-yellow:#e5c64b;
  --deep:#22325f;       /* darkened logo blue for bands */
  --orange:#e8731c;     /* phone button */
  --f-body:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --f-sign:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --track:1360px;
  --gut-l:max(20px, env(safe-area-inset-left,0px));
  --gut-r:max(20px, env(safe-area-inset-right,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.85;letter-spacing:.02em;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ink)}
a{color:inherit}
img{max-width:100%;display:block}
h1,h2,h3{text-wrap:balance;line-height:1.4;margin:0}
:focus-visible{outline:3px solid var(--k-blue);outline-offset:3px}
.inner{max-width:var(--track);margin-inline:auto;padding-left:var(--gut-l);padding-right:var(--gut-r)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* logo mark */
.mark{display:inline-grid;grid-template-columns:1fr .9fr 1fr;grid-template-rows:1fr .9fr 1fr;width:40px;height:40px;flex:none}
.mark i{display:block}
.mark i:nth-child(1){background:var(--k-red);grid-area:1/1}
.mark i:nth-child(2){background:var(--k-blue);grid-area:1/3}
.mark i:nth-child(3){background:var(--k-green);grid-area:3/1}
.mark i:nth-child(4){background:var(--k-yellow);grid-area:3/3}

/* header */
.hd{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;color:#fff;background:linear-gradient(to bottom,rgba(12,18,34,.62),rgba(12,18,34,0));transition:background .35s,color .35s,box-shadow .35s}
.hd.solid{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.hd .brand small,.hd .hd-tel span{color:inherit;opacity:.85}
.hd:not(.solid) .brand b,.hd:not(.solid) .gnav>ul a,.hd:not(.solid) .hd-tel a{text-shadow:0 1px 6px rgba(0,0,0,.45)}
.hd:not(.solid) .gnav>ul a:hover{background:rgba(255,255,255,.18)}
.hd:not(.solid) .burger span,.hd:not(.solid) .burger::before,.hd:not(.solid) .burger::after{background:#fff}
.hd .inner{display:flex;align-items:center;gap:28px;min-height:76px;max-width:none}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand small{display:block;font-size:12px;color:var(--mute);line-height:1.2;letter-spacing:.08em}
.brand b{display:block;font-family:var(--f-sign);font-weight:800;font-size:26px;line-height:1.15;letter-spacing:.18em}
.gnav{margin-left:auto}
.gnav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.gnav a{display:block;padding:8px 12px;text-decoration:none;font-weight:500;font-size:15px;border-radius:4px;white-space:nowrap}
.gnav a:hover{background:var(--tint)}
.gnav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--orange)}
.hd-tel{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;flex:none}
.hd-tel span{font-size:11px;color:var(--mute)}
.hd-tel a{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border:2px solid var(--orange);background:var(--orange);color:#fff;border-radius:999px;font-size:21px;font-weight:700;text-decoration:none;font-variant-numeric:tabular-nums;letter-spacing:.04em;text-shadow:none!important;transition:background .2s,border-color .2s}
.hd-tel a:hover{background:#d4630f;border-color:#d4630f}
.hd-tel svg{width:18px;height:18px}
.burger{display:none;margin-left:auto;width:48px;height:48px;border:0;background:none;cursor:pointer;position:relative}
.burger span,.burger::before,.burger::after{content:"";position:absolute;left:12px;right:12px;height:2px;background:var(--ink);transition:transform .3s,opacity .3s}
.burger::before{top:16px}.burger span{top:23px}.burger::after{top:30px}
.burger[aria-expanded="true"]::before{transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span{opacity:0}
.burger[aria-expanded="true"]::after{transform:translateY(-7px) rotate(-45deg)}

/* hero: header and catch copy sit on the photos. Height follows the 1920x700 source so photos are never enlarged. */
.hero{position:relative;height:100vh;height:100svh;min-height:480px;overflow:hidden;background:var(--deep);color:#fff}
.slides{position:absolute;inset:0;overflow:hidden}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity 1.6s ease, transform 7s linear}
.slides img.on{opacity:1;transform:scale(1)}
.slides::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(14,22,44,.62) 0%,rgba(14,22,44,.22) 22%,rgba(14,22,44,0) 42%),linear-gradient(to right,rgba(14,22,44,.30) 0%,rgba(14,22,44,0) 45%)}
.hero-copy{position:absolute;z-index:2;left:0;right:0;bottom:0;padding-block:0 34px}
.hero-copy .inner{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.hero-copy .mark{width:44px;height:44px;margin-bottom:18px}
.hero h1{font-family:var(--f-sign);font-weight:800;font-size:clamp(28px,3.6vw,52px);letter-spacing:.12em;line-height:1.45;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.hero h1 small{display:block;font-family:var(--f-body);font-weight:500;font-size:clamp(14px,1.2vw,17px);letter-spacing:.2em;margin-top:10px;opacity:.92}
.hero h1 .phr{display:inline-block}
.hero-cap{display:flex;gap:28px;align-items:flex-end;flex-wrap:wrap}
.hero-cap dl{display:flex;gap:28px;margin:0}
.hero-cap dt{font-size:12px;opacity:.85}
.hero-cap dd{margin:0;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3}
/* vertical scroll cue */
.scroll{position:absolute;z-index:3;right:calc(28px + env(safe-area-inset-right,0px));bottom:0;display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff;text-decoration:none;padding-top:8px}
.scroll span{writing-mode:vertical-rl;font-size:11px;letter-spacing:.3em;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.scroll i{position:relative;display:block;width:1px;height:90px;background:rgba(255,255,255,.35);overflow:hidden}
.scroll i::after{content:"";position:absolute;left:0;top:0;width:1px;height:100%;background:#fff;animation:cue 2s cubic-bezier(.6,0,.3,1) infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
@media (prefers-reduced-motion:reduce){.scroll i::after{animation:none;transform:none}}
.hero-copy .inner{padding-right:calc(70px + env(safe-area-inset-right,0px))}

/* page-load moment: the four squares gather, then the copy rises */
@media (prefers-reduced-motion:no-preference){
  .hero-copy .mark i{animation:sq .9s cubic-bezier(.2,.8,.2,1) both}
  .hero-copy .mark i:nth-child(1){--x:-60px;--y:-60px}
  .hero-copy .mark i:nth-child(2){--x:60px;--y:-60px;animation-delay:.08s}
  .hero-copy .mark i:nth-child(3){--x:-60px;--y:60px;animation-delay:.16s}
  .hero-copy .mark i:nth-child(4){--x:60px;--y:60px;animation-delay:.24s}
  .hero h1{animation:up 1.1s .45s cubic-bezier(.2,.8,.2,1) both}
  .hero-cap{animation:up 1.1s .75s cubic-bezier(.2,.8,.2,1) both}
}
@keyframes sq{from{transform:translate(var(--x),var(--y)) rotate(90deg);opacity:0}}
@keyframes up{from{transform:translateY(24px);opacity:0}}

/* first info band: hours + news */
.band1{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.hours{background:var(--deep);color:#fff;padding-block:52px 56px;padding-left:var(--gut-l);padding-right:48px}
.hours h2,.news h2,.sec-h h2{font-size:26px;font-weight:700;display:flex;align-items:center;gap:12px}
.hours h2::before,.news h2::before,.sec-h h2::before{content:"";width:12px;height:12px;flex:none;background:var(--c,var(--k-blue))}
.hours h2{--c:var(--k-yellow)}
.htable{width:100%;border-collapse:collapse;margin-top:22px;font-variant-numeric:tabular-nums}
.htable th,.htable td{padding:12px 6px;border-bottom:1px solid rgba(255,255,255,.18);text-align:left;font-weight:500}
.htable th{width:5.5em;font-weight:700}
.htable td.t{font-size:20px;font-weight:700;white-space:nowrap}
.htable td.d{font-size:14px;opacity:.9}
.hours .note{font-size:14px;opacity:.88;margin:14px 0 0;line-height:1.75}
.telbox{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:10px 22px;font-weight:700;text-decoration:none;border:2px solid currentColor;border-radius:999px;font-size:15px;transition:background .25s,color .25s}
.btn.solid{background:#fff;color:var(--deep);border-color:#fff}
.btn.solid:hover{background:var(--k-yellow);border-color:var(--k-yellow)}
.btn.ghost{color:#fff}
.btn.ghost:hover{background:#fff;color:var(--deep)}
.tel-big{display:block;font-size:34px;font-weight:700;letter-spacing:.04em;line-height:1.2;text-decoration:none;margin-top:22px;font-variant-numeric:tabular-nums}
.tel-big small{display:block;font-size:12px;font-weight:500;opacity:.85;letter-spacing:.1em}
.news{padding-block:52px 56px;padding-left:56px;padding-right:var(--gut-r);background:var(--paper)}
.news h2{--c:var(--k-red)}
.news-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.more{font-size:14px;font-weight:700;text-decoration:none;border-bottom:2px solid var(--k-red);padding-bottom:2px}
.nlist{list-style:none;margin:18px 0 0;padding:0}
.nlist a{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:16px;padding:18px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:background .2s,padding .2s}
.nlist a:hover{background:var(--tint);padding-left:12px}
.nlist time{color:var(--mute);font-variant-numeric:tabular-nums;font-size:15px}
.nlist span{font-weight:500}

/* departments */
.dp{padding-block:88px 96px;background:var(--tint)}
.sec-h{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.sec-h h2{font-size:30px}
.sec-h p{margin:0;color:var(--mute)}
.dp .sec-h h2{--c:var(--k-green)}
.dgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:var(--line);border:2px solid var(--line)}
.dgrid a{background:var(--paper);display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 16px;padding:24px 22px;text-decoration:none;min-height:150px;align-content:start;position:relative;transition:background .25s}
.dgrid a::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:0;background:var(--k-green);transition:width .35s}
.dgrid a:hover{background:#f8fbf8}
.dgrid a:hover::after{width:100%}
.ic{grid-row:span 2;width:56px;height:56px;background:var(--k-green);-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.dgrid b{font-size:19px;line-height:1.4;align-self:center}
.dgrid small{font-size:14px;color:var(--mute);line-height:1.65}
.dgrid a.special{background:var(--k-green);color:#fff}
.dgrid a.special small{color:#fff;opacity:.9}
.dgrid a.special .mark{grid-row:span 2;width:44px;height:44px;margin:6px}
.dgrid a.special .mark i{background:#fff}
.dgrid a.special:hover{background:#336d3a}
.dfill{background:var(--paper)}
.senmon{margin-top:28px;background:var(--k-green);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px 48px;padding:40px 44px;align-items:start}
.senmon h3{font-size:28px;font-weight:700;display:flex;align-items:center;gap:14px}
.senmon h3::before{content:"";width:14px;height:14px;background:#fff;flex:none}
.senmon-h p{margin:14px 0 0;font-size:15px;line-height:1.8;opacity:.92}
.senmon ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.senmon a{display:flex;flex-direction:column;gap:2px;padding:16px 46px 16px 20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;position:relative;transition:background .25s,color .25s}
.senmon a::after{content:"";position:absolute;right:20px;top:50%;width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:translateY(-50%) rotate(45deg);transition:right .25s}
.senmon a:hover{background:#fff;color:var(--k-green)}
.senmon a:hover::after{right:16px}
.senmon b{font-size:18px}
.senmon small{font-size:13.5px;opacity:.9}
@media (max-width:900px){.senmon{grid-template-columns:minmax(0,1fr);padding:30px 24px}}
@media (max-width:640px){.senmon ul{grid-template-columns:minmax(0,1fr)}.dfill{display:none}}
.sched-link{margin-top:26px;display:flex;justify-content:flex-end}
.btn.dark{color:var(--ink)}
.btn.dark:hover{background:var(--ink);color:#fff}

/* guide mosaic: edge to edge, no gaps */
.guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.guide a{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;color:#fff;text-decoration:none;max-width:100%}
.guide img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.guide a::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(15,22,40,.78) 0%,rgba(15,22,40,.15) 55%,transparent 75%);transition:background .4s}
.guide a:hover img{transform:scale(1.07)}
.guide a:hover::before{background:linear-gradient(to top,rgba(15,22,40,.88) 0%,rgba(15,22,40,.35) 70%,rgba(15,22,40,.1) 100%)}
.guide .cap{position:absolute;z-index:2;left:28px;right:28px;bottom:26px}
.guide .cap i{display:block;width:14px;height:14px;background:var(--c);margin-bottom:12px}
.guide .cap b{display:block;font-size:24px;line-height:1.35}
.guide .cap small{display:block;font-size:14px;opacity:.9;margin-top:4px}

/* notices */
.notice{padding-block:88px}
.notice .sec-h h2{--c:var(--k-blue)}
.acc{border-top:2px solid var(--ink)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;padding:20px 52px 20px 4px;font-weight:700;font-size:17px;position:relative}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";position:absolute;right:14px;top:50%;width:12px;height:12px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.acc details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.acc .body{padding:0 4px 24px;color:var(--mute);max-width:56em}
.acc .body p{margin:0 0 .8em}
.acc ol{margin:0 0 .8em;padding-left:1.4em}

/* access: split full-bleed */
.access{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--tint)}
.access .txt{padding-block:72px;padding-left:var(--gut-l);padding-right:56px;max-width:720px;justify-self:end;width:100%}
.access .sec-h h2{--c:var(--k-red)}
.access address{font-style:normal;font-size:18px;font-weight:500}
.access dl{margin:22px 0 0;display:grid;grid-template-columns:8.5em minmax(0,1fr);gap:12px 18px;font-size:15px}
.access dt{font-weight:700}
.access dd{margin:0;color:var(--mute)}
.access .pic{min-height:420px;position:relative}
.access .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.access .btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* footer */
.ft{background:var(--ink);color:#d9dee8;padding-block:64px 32px;font-size:14px}
.ft .grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:40px}
.ft .brand b{color:#fff;font-size:22px}
.ft .brand small{color:#aab3c4}
.ft .mark{width:34px;height:34px}
.ft h3{font-size:14px;color:#fff;margin-bottom:12px}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ft a{text-decoration:none}
.ft a:hover{text-decoration:underline}
.ft .sns{display:flex;gap:10px;margin-top:18px}
.ft .sns{flex-wrap:wrap}
.ft .sns a{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid #6b7489;border-radius:999px;font-size:14px;font-weight:700;line-height:1.4;white-space:nowrap}
.ft .sns a span{font-size:12px;opacity:.7}
.ft .sns a:hover{background:#fff;color:var(--ink);text-decoration:none}
.ft .group{margin:0}
.ft .group ul{display:grid;gap:8px}
.ft .group a{display:flex;align-items:baseline;gap:10px;padding:9px 14px;border:1px solid #4a5469;border-radius:8px;background:rgba(255,255,255,.04);white-space:nowrap}
.ft .group a b{font-size:14px;color:#fff}
.ft .group a small{color:#aab3c4;font-size:12px}
.ft .group a span{margin-left:auto;color:var(--orange);font-weight:700}
.ft .group a:hover{background:#fff;text-decoration:none}
.ft .group a:hover b{color:var(--ink)}
/* footer: full width & compact */
.ft{padding-block:36px 18px}
.ft .inner{max-width:none}
.ft .grid{grid-template-columns:auto auto auto auto auto;justify-content:space-between;gap:28px 40px}
.ft .grid>div:nth-child(4) ul{grid-template-columns:auto auto;column-gap:28px}
.ft .grid>div:first-child p{margin:10px 0 0}
.ft .sns{margin-top:12px}
.ft .sns a{padding:6px 14px;font-size:13px}
.ft .copy{margin-top:24px;padding-top:14px}
@media (max-width:1560px){.ft .grid{gap:28px 32px}.ft .grid>div:nth-child(4) ul{grid-template-columns:auto}.ft .group a small{display:none}}
@media (max-width:1240px){.ft .grid{grid-template-columns:auto auto auto;justify-content:start}.ft .grid>div:first-child{grid-row:span 2}.ft .group a small{display:inline}}
@media (max-width:900px){.ft .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ft .grid>div:first-child{grid-row:auto}}
@media (max-width:640px){.ft .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 16px}.ft .grid>div:first-child,.ft .group{grid-column:1/-1}.ft ul{gap:4px}.ft .group a{display:grid;grid-template-columns:1fr auto;white-space:normal;row-gap:0}.ft .group a small{grid-column:1}.ft .group a span{grid-column:2;grid-row:1/3;align-self:center}}
.copy{margin-top:48px;padding-top:22px;border-top:1px solid #39435a;font-size:12px;color:#97a1b4}

/* back to top */
.totop{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:40;width:62px;height:62px;border-radius:50%;border:2px solid #fff;background:var(--k-blue);color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font:700 10px/1 var(--f-body);letter-spacing:.12em;box-shadow:0 6px 18px rgba(30,40,70,.3);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .3s,transform .3s,background .2s}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop:hover{background:var(--k-red)}
.totop svg{width:22px;height:22px}

/* reveal on scroll: content stays readable at rest, it only rises into place */
@media (prefers-reduced-motion:no-preference){
  .rise{transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .8s}
  .rise.wait{transform:translateY(28px);opacity:.35}
}
@media (prefers-reduced-motion:reduce){
  .slides img{transition:opacity .01s}
  html{scroll-behavior:auto}
}

.toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:6px;font-size:14px;z-index:70}

/* responsive */
@media (max-width:1180px){
  .gnav,.hd-tel{display:none}
  .burger{display:block}
  .gnav.open{display:block;position:fixed;color:var(--ink);top:calc(77px + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;background:var(--paper);overflow:auto;padding:16px var(--gut-r) 40px var(--gut-l)}
  .gnav.open ul{flex-direction:column}
  .gnav.open a{font-size:18px;padding:16px 8px;border-bottom:1px solid var(--line);border-radius:0}
  .gnav.open .m-tel{display:block}
  .dgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.gnav .m-tel{display:none;margin-top:20px;font-size:26px;font-weight:700}
@media (max-width:900px){
  .band1,.access{grid-template-columns:minmax(0,1fr)}
  .hours{padding-right:var(--gut-r)}
  .news{padding-left:var(--gut-l)}
  .access .txt{padding-right:var(--gut-r);max-width:none}
  .access .pic{min-height:300px}
  .guide{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:640px){
  body{font-size:16px}
  .hero{height:100vh;height:100svh;min-height:520px}
  .hero-cap{gap:14px}
  .hero-cap dl{gap:18px}
  .hero-cap dd{font-size:17px}
  .brand b{font-size:21px}
  .brand small{font-size:11px}
  .mark{width:34px;height:34px}
  .dgrid{grid-template-columns:minmax(0,1fr)}
  .dgrid a{min-height:0}
  .guide{grid-template-columns:minmax(0,1fr)}
  .guide a{aspect-ratio:16/10}
  .nlist a{grid-template-columns:minmax(0,1fr);gap:2px}
  .access dl{grid-template-columns:minmax(0,1fr);gap:2px}
  .access dd{margin-bottom:10px}
  .ft .grid{grid-template-columns:minmax(0,1fr)}
  .sec-h h2{font-size:25px}
  .tel-big{font-size:30px}
}

[hidden]{display:none!important}

/* ===== inner pages ===== */
.ph{position:relative;height:clamp(280px,26vw,440px);overflow:hidden;background:var(--deep);color:#fff}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(14,22,44,.72) 0%,rgba(14,22,44,.28) 55%,rgba(14,22,44,.45) 100%)}
.ph .inner{position:absolute;z-index:2;left:0;right:0;bottom:0;max-width:1120px;padding-bottom:34px}
.ph h1{font-family:var(--f-sign);font-weight:800;font-size:clamp(30px,3.4vw,48px);letter-spacing:.12em;line-height:1.35;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.ph p{margin:8px 0 0;font-size:15px;opacity:.92;letter-spacing:.08em}
@media (prefers-reduced-motion:no-preference){
  .ph img{animation:phzoom 9s ease-out both}
  .ph h1{animation:up 1s .15s cubic-bezier(.2,.8,.2,1) both}
}
@keyframes phzoom{from{transform:scale(1.06)}}

.crumb{border-bottom:1px solid var(--line);font-size:13px;color:var(--mute)}
.crumb ol{list-style:none;margin:0 auto;max-width:1120px;padding-block:12px;display:flex;flex-wrap:wrap;gap:6px}
.crumb li+li::before{content:"›";margin-right:6px}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}

.page{padding-block:56px 96px}
.page>.inner{max-width:1120px}
.lead{font-size:clamp(19px,1.8vw,24px);font-weight:700;line-height:1.7;margin:0 0 28px;text-wrap:balance}
.prose .toc{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 56px;padding:0;list-style:none;max-width:none}
.prose .toc li{margin:0}
.toc a{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-size:15px;font-weight:500;background:var(--paper);transition:border-color .2s,background .2s}
.toc a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);opacity:.6}
.toc a:hover{border-color:var(--pc);background:var(--tint)}

.prose{--pc:var(--k-blue)}
.prose section{margin-top:72px}
.prose section:first-child{margin-top:0}
.prose h2{font-size:clamp(24px,2.3vw,30px);font-weight:700;display:flex;align-items:center;gap:14px;margin:0 0 26px;padding-bottom:14px;border-bottom:2px solid var(--ink)}
.prose h2::before{content:"";width:14px;height:14px;flex:none;background:var(--pc)}
.prose h3{font-size:21px;font-weight:700;margin:40px 0 14px;padding-left:14px;border-left:4px solid var(--pc);line-height:1.5}
.prose h4{font-size:18px;font-weight:700;margin:28px 0 8px}
.prose p{margin:0 0 1.1em;max-width:46em}
.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.5em;max-width:46em}
.prose li{margin-bottom:.45em}
.prose li::marker{color:var(--pc)}
.prose a{color:var(--k-blue);text-underline-offset:3px}
.prose strong{font-weight:700}
.prose .note{display:block;font-size:14.5px;color:var(--mute);margin-top:.5em;line-height:1.75}
.prose .red,.prose em{color:var(--k-red);font-style:normal;font-weight:700}
.prose figure{margin:0 0 24px}
.prose figure img{width:100%;height:auto}
.prose figure.fig-s{float:right;width:240px;max-width:40%;margin:4px 0 16px 32px}
.prose h2,.prose .tbl,.prose dl.kv,.prose .sp-out{clear:both}
.prose .banner{aspect-ratio:1120/250;object-fit:cover;width:100%;height:auto;margin-bottom:24px}
.prose .panel{background:var(--tint);padding:24px 28px;margin:0 0 1.4em}
.prose .panel>*:last-child{margin-bottom:0}
.prose .panel ol,.prose .panel ul{max-width:none}
.prose dl.qa{margin:0 0 1.4em;max-width:46em}
.prose dl.qa dt{font-weight:700;margin-top:18px}
.prose dl.qa dt::before{content:"Q.";color:var(--pc);margin-right:8px}
.prose dl.qa dd{margin:6px 0 0;padding-left:1.6em}
.prose dl.kv{display:grid;grid-template-columns:11em minmax(0,1fr);border-top:1px solid var(--line);margin:0 0 1.4em}
.prose dl.kv dt,.prose dl.kv dd{padding:14px 12px;border-bottom:1px solid var(--line);margin:0}
.prose dl.kv dt{font-weight:700;background:var(--tint)}
.tbl{overflow-x:auto;margin:0 0 1.4em;-webkit-overflow-scrolling:touch}
.prose table{width:100%;border-collapse:collapse;font-size:15.5px;font-variant-numeric:tabular-nums}
.prose th,.prose td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
.prose thead th{background:var(--deep);color:#fff;font-weight:700;text-align:center}
.prose tbody th{background:var(--tint);font-weight:700;white-space:nowrap}
.prose td.c,.prose th.c{text-align:center}
.prose .mark-tbl td{text-align:center}
.prose .mark-tbl tbody th{text-align:left}
.prose .callout{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px;background:var(--deep);color:#fff;padding:26px 30px;margin:40px 0 0}
.prose .callout p{margin:0;max-width:none}
.prose .callout small{display:block;opacity:.85;font-size:13px}
.prose .callout .num{font-size:30px;font-weight:700;letter-spacing:.04em;color:#fff;text-decoration:none;font-variant-numeric:tabular-nums}
.prose .btns{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 1.4em}
.prose .btn{color:var(--ink);text-decoration:none}
.prose .btn:hover{background:var(--ink);color:#fff}
.prose .btn.fill{background:var(--orange);border-color:var(--orange);color:#fff}
.prose .btn.fill:hover{background:#d4630f;border-color:#d4630f}
.prose .pdf::after{content:"PDF";font-size:11px;font-weight:700;margin-left:6px;padding:1px 6px;border:1px solid currentColor;border-radius:3px;vertical-align:2px}
.prose .split{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:28px 40px;align-items:start;margin-bottom:1.4em}
.prose .split img{width:100%;height:auto}
.prose .sp-out{border:2px solid var(--pc);padding:26px 28px;margin:28px 0}
.prose .sp-out .tag{display:inline-block;background:var(--pc);color:#fff;font-size:13px;font-weight:700;padding:3px 12px;margin-bottom:10px}
.prose .sp-out h3{margin-top:0;border:0;padding:0}
.prose .sign{text-align:right;font-weight:700;margin-top:-.4em}
.prose .grid-icons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;list-style:none;padding:0;max-width:none}
.prose .grid-icons.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.prose .grid-icons li{border:1px solid var(--line);margin:0;padding:20px 10px;text-align:center;font-weight:700;font-size:15px;line-height:1.5}
.prose .grid-icons img{width:84px;height:84px;margin:0 auto 10px}
.prose .picto{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 20px;list-style:none;padding:0;max-width:none;font-size:14px}
.prose .picto li{display:flex;align-items:center;gap:12px;margin:0}
.prose .picto img{width:36px;height:36px;flex:none}
.prose .iv{border-top:1px solid var(--line)}
.prose .iv details{border-bottom:1px solid var(--line)}
.prose .iv summary{cursor:pointer;list-style:none;padding:18px 44px 18px 4px;position:relative;font-weight:700;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.prose .iv summary::-webkit-details-marker{display:none}
.prose .iv summary small{font-weight:500;color:var(--mute);font-size:14px}
.prose .iv summary::after{content:"";position:absolute;right:12px;top:50%;width:10px;height:10px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.prose .iv details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.prose .iv dl{padding:0 4px 18px;margin:0}
.prose .iv dt{font-weight:700;margin-top:12px;color:var(--pc)}
.prose .iv dd{margin:4px 0 0}

/* schedule */
.sched{min-width:760px}
.sched thead th{white-space:nowrap}
.sched tbody th.dp{background:var(--deep);color:#fff;text-align:center;vertical-align:middle;white-space:nowrap}
.sched tbody th.t{background:var(--tint);text-align:center;white-space:nowrap;font-size:14px}
.sched td{text-align:center;font-size:14.5px;line-height:1.5;min-width:5.5em}
.sched td small{display:block;font-size:12px;color:var(--mute)}
.sched td:empty::after{content:"―";color:var(--line)}

/* news */
.nlist.full a{grid-template-columns:7.5em minmax(0,1fr)}
.article time{display:block;color:var(--mute);font-variant-numeric:tabular-nums;margin-bottom:10px}
.article h2{border:0;padding:0}
.article .body{margin-top:24px}
.pager{display:flex;justify-content:space-between;gap:16px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}

/* forms */
.form{max-width:760px}
.form .row{display:grid;grid-template-columns:13em minmax(0,1fr);gap:8px 24px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}
.form .row:first-of-type{border-top:1px solid var(--line)}
.form label.l,.form .l{font-weight:700;padding-top:10px}
.form .req{display:inline-block;font-size:11px;background:var(--k-red);color:#fff;padding:1px 8px;margin-left:8px;vertical-align:2px;font-weight:700}
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=date],.form textarea,.form select{width:100%;font:inherit;font-size:16px;padding:11px 13px;border:1px solid #b9c0cc;border-radius:4px;background:#fff;color:var(--ink)}
.form textarea{min-height:180px;resize:vertical}
.form input:focus,.form textarea:focus,.form select:focus{outline:3px solid rgba(51,74,143,.3);border-color:var(--k-blue)}
.form .opts{display:flex;flex-wrap:wrap;gap:8px 22px;padding-top:8px}
.form .opts label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.form .opts input{width:20px;height:20px;accent-color:var(--k-blue)}
.form .hint{font-size:13px;color:var(--mute);margin:6px 0 0}
.form .err{color:var(--k-red);font-size:14px;font-weight:700;margin:6px 0 0}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .agree{margin:28px 0 8px;padding:20px 22px;background:var(--tint);font-size:14.5px}
.form .agree label{display:flex;gap:10px;align-items:center;font-weight:700;margin-top:10px}
.form .agree input{width:20px;height:20px;accent-color:var(--k-blue)}
.form .submit{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}
.form button.btn{font:inherit;font-weight:700;cursor:pointer;background:var(--orange);border-color:var(--orange);color:#fff;min-width:240px;justify-content:center}
.form button.btn:hover{background:#d4630f;border-color:#d4630f}
.form button.btn.back{background:var(--paper);color:var(--ink);border-color:var(--ink)}
.form [data-show]{display:none}
.alert{padding:18px 22px;margin:0 0 24px;border-left:5px solid var(--k-red);background:#fbeeeb;font-weight:500}
.alert.ok{border-color:var(--k-green);background:#eef6ef}

@media (max-width:760px){
  .prose .grid-icons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prose .grid-icons.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .prose .grid-icons img{width:64px;height:64px}
  .prose .split{grid-template-columns:minmax(0,1fr)}
  .prose .split img{max-width:260px}
  .prose dl.kv{grid-template-columns:minmax(0,1fr)}
  .prose dl.kv dt{border-bottom:0;padding-bottom:4px}
  .form .row{grid-template-columns:minmax(0,1fr)}
  .form .l{padding-top:0}
  .prose .callout .num{font-size:26px}
  .page{padding-block:40px 72px}
  .toc{margin-bottom:40px}
}
@media print{.hd,.totop,.ft,.toc{display:none}.ph{height:auto;color:var(--ink);background:none}.ph img,.ph::after{display:none}.ph .inner{position:static}}

/* ===== WEB冊子（入院生活のご案内） ===== */
.bk-wrap{--pw:min(38vw,520px);margin:8px 0 0}
.bk-intro{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;margin-bottom:28px}
.bk-intro p{margin:0}
.bk-dl{display:flex;flex-wrap:wrap;gap:10px}
.bk-stage{position:relative;background:radial-gradient(ellipse at 50% 40%,#f6f2ec 0%,#e7e1d8 70%,#ddd6cb 100%);padding:48px 16px 40px;overflow:hidden;user-select:none;-webkit-user-select:none}
.bk-stage:fullscreen{display:flex;flex-direction:column;justify-content:center;padding:24px}
.bk-stage:fullscreen .bk-wrap{--pw:min(46vw,calc((100vh - 140px) * .7074))}
.book{position:relative;width:calc(var(--pw) * 2);aspect-ratio:2480/1753;margin:0 auto;perspective:2600px;transition:transform .9s cubic-bezier(.4,.1,.2,1);max-width:100%}
.book[data-at="0"]{transform:translateX(-25%)}
.book[data-at="4"]{transform:translateX(25%)}
.leaf{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:0 50%;transform-style:preserve-3d;transition:transform 1.05s cubic-bezier(.45,.05,.25,1);cursor:pointer}
.leaf.flipped{transform:rotateY(-180deg)}
.leaf .face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;background:#fff}
.leaf .face img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.leaf .back{transform:rotateY(180deg)}
/* paper depth: gutter shading and page edge */
.leaf .front{box-shadow:0 18px 40px -12px rgba(40,30,20,.45),2px 0 0 #f1ede6,4px 1px 0 #e4ded4,6px 2px 0 #d8d1c5}
.leaf .back{box-shadow:0 18px 40px -12px rgba(40,30,20,.45),-2px 0 0 #f1ede6,-4px 1px 0 #e4ded4,-6px 2px 0 #d8d1c5}
.leaf .front::after,.leaf .back::after{content:"";position:absolute;inset:0;pointer-events:none}
.leaf .front::after{background:linear-gradient(to right,rgba(0,0,0,.18) 0%,rgba(0,0,0,.04) 4%,rgba(0,0,0,0) 9%,rgba(255,255,255,0) 92%,rgba(0,0,0,.05) 100%)}
.leaf .back::after{background:linear-gradient(to left,rgba(0,0,0,.18) 0%,rgba(0,0,0,.04) 4%,rgba(0,0,0,0) 9%,rgba(255,255,255,0) 92%,rgba(0,0,0,.05) 100%)}
.leaf.cover-leaf .front::after,.leaf.last-leaf .back::after{background:linear-gradient(to right,rgba(0,0,0,.08),rgba(0,0,0,0) 3%)}
.leaf.last-leaf .back::after{background:linear-gradient(to left,rgba(0,0,0,.08),rgba(0,0,0,0) 3%)}
.leaf .shade{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.05s;background:linear-gradient(to left,rgba(0,0,0,.25),rgba(0,0,0,0) 60%)}
.leaf.turning .shade{opacity:1}
.bk-hit{position:absolute;top:0;bottom:0;width:50%;z-index:60;background:none;border:0;cursor:pointer;padding:0}
.bk-hit.prev{left:0}.bk-hit.next{right:0}
.bk-hit:focus-visible{outline:3px solid var(--k-blue);outline-offset:-3px}
.bk-ctrl{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:26px;flex-wrap:wrap}
.bk-ctrl button{font:inherit;font-weight:700;border:2px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:999px;min-width:48px;height:48px;padding:0 18px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .2s,color .2s}
.bk-ctrl button:hover:not(:disabled){background:var(--ink);color:#fff}
.bk-ctrl button:disabled{opacity:.3;cursor:default}
.bk-no{min-width:7.5em;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.bk-bar{height:4px;background:rgba(0,0,0,.08);margin:18px auto 0;max-width:420px;border-radius:2px;overflow:hidden}
.bk-bar i{display:block;height:100%;width:0;background:var(--k-red);transition:width .6s}
.prose .bk-hint{text-align:center;font-size:13px;color:var(--mute);margin:12px auto 0;max-width:none}
.bk-stage{scroll-margin-top:90px}
.bk-thumbs{list-style:none;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;padding:0;margin:28px 0 0;max-width:none}
.bk-thumbs li{margin:0}
.bk-thumbs button{width:100%;padding:0;border:2px solid transparent;background:#fff;cursor:pointer;display:block;transition:border-color .2s,transform .2s}
.bk-thumbs button:hover{transform:translateY(-3px)}
.bk-thumbs button[aria-current="true"]{border-color:var(--k-red)}
.bk-thumbs img{width:100%;height:auto;display:block;aspect-ratio:310/438}
.bk-thumbs span{display:block;font-size:12px;text-align:center;padding:4px 0;color:var(--mute)}
.bk-print{display:none}

/* one page at a time on narrow screens */
@media (max-width:900px){
  .bk-wrap{--pw:min(84vw,460px)}
  .book{width:var(--pw);aspect-ratio:1240/1753;perspective:1800px}
  .book[data-at]{transform:none}
  .leaf{left:0;width:100%;transform-origin:0 50%}
  .leaf.flipped{transform:rotateY(-180deg)}
  .leaf .back{display:none}
  .leaf.flipped{pointer-events:none}
  .bk-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .bk-stage{padding:28px 12px 28px}
}
@media (prefers-reduced-motion:reduce){.leaf,.book,.leaf .shade{transition:none}}

/* printing: one A4 page per sheet */
@media print{
  @page{size:A4 portrait;margin:0}
  body.bk-printing>*:not(.bk-print){display:none!important}
  body.bk-printing .bk-print{display:block!important}
  body.bk-printing::before{display:none}
  .bk-print img{display:block;width:210mm;height:297mm;object-fit:contain;page-break-after:always;break-after:page}
  .bk-print img:last-child{page-break-after:auto;break-after:auto}
}
.prose .guide-card{display:flex;gap:20px;align-items:center;max-width:560px;padding:16px;border:2px solid var(--line);text-decoration:none;color:var(--ink);margin:8px 0 1.4em;transition:border-color .2s,box-shadow .2s}
.prose .guide-card:hover{border-color:var(--k-red);box-shadow:0 8px 24px -10px rgba(0,0,0,.25)}
.prose .guide-card img{width:96px;height:auto;flex:none;box-shadow:2px 3px 8px rgba(0,0,0,.2)}
.prose .guide-card b{display:block;font-size:18px;color:var(--k-red)}
.prose .guide-card small{display:block;font-size:14px;color:var(--mute);margin-top:4px}

/* ===== 入院セットレンタル（CSセット） ===== */
.prose .cs-merit{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:none}
.prose .cs-merit li{margin:0;background:var(--paper);padding:14px 16px;font-weight:700;border-left:4px solid var(--k-blue)}
.cs-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 10px}
.cs-plan{border:2px solid var(--k-blue);padding:22px 24px}
.prose .cs-plan p{margin:0}
.prose .cs-name{font-size:20px;font-weight:700;color:var(--k-blue)}
.prose .cs-price{margin-top:4px}
.cs-price b{font-size:44px;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.cs-price small{font-size:14px;margin-left:4px;color:var(--mute)}
.prose .cs-tax{font-size:13px;color:var(--mute)}
.cs-plan dl{margin:14px 0 0;display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:6px 10px;font-size:15px}
.cs-plan dt{font-weight:700}
.cs-plan dd{margin:0}
.cs-plan dd span{display:block;font-size:13px;color:var(--mute)}
.prose .cs-items{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 18px;max-width:none}
.prose .cs-items li{margin:0;padding-left:16px;position:relative}
.prose .cs-items li::before{content:"";position:absolute;left:2px;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--k-blue)}
.prose .cs-check{list-style:none;padding:0}
.prose .cs-check li{position:relative;padding-left:30px;font-weight:500}
.prose .cs-check li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border:2px solid var(--k-red);border-radius:3px}
.prose .cs-check li::after{content:"";position:absolute;left:6px;top:.55em;width:6px;height:10px;border-right:2px solid var(--k-red);border-bottom:2px solid var(--k-red);transform:rotate(45deg)}
.cs-contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:6px 28px;background:var(--deep);color:#fff;padding:24px 28px;margin:0 0 10px}
.prose .cs-contact p{margin:0;max-width:none}
.prose .cs-contact a{color:#fff}
.cs-co{font-size:22px;font-weight:700}
.cs-co small,.cs-tel small{display:block;font-size:13px;font-weight:500;opacity:.88}
.cs-tel a{font-size:30px;font-weight:700;text-decoration:none;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.prose .cs-web{grid-column:1/-1;font-size:14px;opacity:.92;border-top:1px solid rgba(255,255,255,.25);padding-top:12px;margin-top:8px}
.prose .cs-thumbs{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:none}
.prose .cs-thumbs li{margin:0}
.cs-thumbs a{display:block;border:1px solid var(--line);transition:transform .2s,box-shadow .2s}
.cs-thumbs a:hover{transform:translateY(-3px);box-shadow:0 8px 20px -8px rgba(0,0,0,.3)}
.cs-thumbs img{display:block;width:100%;height:auto}
.lb{border:0;padding:0;background:transparent;max-width:min(92vw,760px);max-height:94vh;overflow:visible}
.lb::backdrop{background:rgba(10,14,25,.82)}
.lb img{display:block;max-width:min(92vw,760px);max-height:86vh;width:auto;height:auto;margin:0 auto;background:#fff}
.lb-no{color:#fff;text-align:center;margin:8px 0 0;font-size:14px}
.lb button{position:fixed;border:0;background:rgba(255,255,255,.95);color:var(--ink);width:52px;height:52px;border-radius:50%;font-size:30px;line-height:1;cursor:pointer}
.lb-x{top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px))}
.lb-p{left:calc(10px + env(safe-area-inset-left,0px));top:50%;transform:translateY(-50%)}
.lb-n{right:calc(10px + env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%)}
.pp-print{display:none}
@media (max-width:760px){
  .prose .cs-merit,.cs-plans,.cs-contact{grid-template-columns:minmax(0,1fr)}
  .prose .cs-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cs-tel a{font-size:26px}
}
@media print{
  body.pp-printing>*:not(.pp-print.on){display:none!important}
  body.pp-printing .pp-print.on{display:block!important}
  body.pp-printing::before{display:none}
  .pp-print img{display:block;width:210mm;height:297mm;object-fit:contain;page-break-after:always;break-after:page}
  .pp-print img:last-child{page-break-after:auto;break-after:auto}
}
.prose button.btn[data-print],.prose #bkPrintBtn{font:inherit;font-weight:700;background:var(--paper);color:var(--ink);cursor:pointer}
.prose button.btn[data-print]:hover,.prose #bkPrintBtn:hover{background:var(--ink);color:#fff}
/* ===== 面会 ===== */
.vs-keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 24px}
.vs-keys>div{border:2px solid var(--k-red);padding:18px 20px;display:flex;flex-direction:column;gap:2px}
.vs-keys small{font-size:13px;color:var(--mute);font-weight:700}
.vs-keys b{font-size:24px;line-height:1.35;color:var(--k-red);font-variant-numeric:tabular-nums}
.vs-keys span{font-size:14px}
.prose .vs-list{padding-left:1.8em;max-width:52em}
.prose .vs-list li{margin-bottom:.7em}
.prose .vs-list li::marker{font-weight:700}
.vs-warn{border:2px solid var(--k-red);background:#fdf2f0;padding:16px 20px;margin:8px 0 28px}
.prose .vs-warn p{margin:0;max-width:none;font-weight:500}
.prose .vs-thumb{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:760px){.vs-keys{grid-template-columns:minmax(0,1fr)}.vs-keys b{font-size:21px}.prose .vs-thumb{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 診察担当医表 */
.sc-legend{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14.5px;color:var(--mute)}
.sc-legend li{display:flex;align-items:center;gap:8px;margin:0;padding:0}
.sc-legend li::before{display:none}
.sl{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.06em;line-height:1.5;white-space:nowrap}
.sl-am{background:#fff4d6;color:#8a5a00}
.sl-pm{background:#ffe6d5;color:#a4470d}
.sl-ev{background:#e3e8f7;color:#2b3f86}
.sc-mode{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px;background:var(--tint);margin:0 0 14px}
.sc-mode button{border:0;background:none;padding:9px 20px;border-radius:999px;font:inherit;font-size:15px;font-weight:700;color:var(--mute);cursor:pointer}
.sc-mode button[aria-selected="true"]{background:#fff;color:var(--deep);box-shadow:0 1px 4px rgba(20,30,60,.15)}
.sc-today{margin:0 0 14px;font-size:15px}
.sc-today b{display:inline-block;background:var(--orange);color:#fff;border-radius:4px;padding:1px 9px;margin-right:6px;font-size:13px}
.sc-hint{font-size:13px;color:var(--mute);margin:0 0 8px}
.prose .sc-wrap{border:1px solid var(--line);border-radius:10px;overflow-x:auto}
.prose table.sc{min-width:820px;width:100%;border-collapse:separate;border-spacing:0;margin:0;font-size:14px;table-layout:fixed}
.prose table.sc th,.prose table.sc td{border:0;border-bottom:1px solid var(--line);padding:10px 6px;vertical-align:middle;background:#fff}
.prose table.sc thead th{background:var(--deep);color:#fff;font-size:15px;text-align:center;padding:12px 4px;position:sticky;top:0;z-index:2}
.prose table.sc thead th.c-dp{width:118px}.prose table.sc thead th.c-tm{width:84px}
.prose table.sc thead th.c-d{font-size:17px}
.prose table.sc th.dp{white-space:normal;word-break:keep-all;background:var(--tint);color:var(--deep);font-size:15px;font-weight:700;text-align:center;line-height:1.4;border-right:1px solid var(--line);position:relative;padding:10px 8px 10px 14px}
.prose table.sc th.dp::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--k-green)}
.prose table.sc tbody.alt th.dp::before{background:var(--k-blue)}
.prose table.sc tbody.alt td,.prose table.sc tbody.alt th.tm{background:#fafbfd}
.prose table.sc th.tm{text-align:center;font-weight:400;border-right:1px solid var(--line)}
.prose table.sc tbody tr:last-child th,.prose table.sc tbody tr:last-child td{border-bottom:2px solid #c9d0dc}
.prose table.sc tbody:last-child tr:last-child th,.prose table.sc tbody:last-child tr:last-child td{border-bottom:0}
.prose table.sc td{text-align:center;line-height:1.35}
.prose table.sc td+td{border-left:1px dashed #e6e9ef}
.prose table.sc td.e{background-image:linear-gradient(#fff0,#fff0)}
.prose table.sc td.e::after{content:"";display:block;width:14px;height:2px;margin:auto;background:#d9dde5;border-radius:2px}
.sc .dr,.sc-day .dr{display:block;margin:2px 0}
.sc .dr+.dr{margin-top:8px}
.dr b{display:block;font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.04em}
.dr i{display:block;font-style:normal;font-size:12px;color:var(--mute);line-height:1.4;margin-top:1px}
.dr em{display:inline-block;font-style:normal;font-size:11.5px;font-weight:700;color:#8a5a00;background:#fff4d6;border-radius:4px;padding:0 6px;margin-top:3px;white-space:nowrap}
.sc-cl{display:inline-block;font-size:12.5px;line-height:1.35;color:var(--k-blue);text-decoration:none;border:1px solid #c8d1ea;border-radius:6px;padding:4px 6px;background:#f4f6fc}
.sc-cl small{display:block;font-size:11px;color:var(--mute)}
.sc-cl:hover{background:#e8edfa}
.sc-ok{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;background:#e4f2e6;color:var(--k-green);font-weight:900;font-size:15px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* today column */
.prose table.sc thead th.today{background:var(--orange)}
.prose table.sc thead th.today::after{content:"今日";display:block;font-size:11px;font-weight:700;letter-spacing:.1em}
.prose table.sc td.today{background:#fff7ef!important;box-shadow:inset 2px 0 0 #f5c9a6,inset -2px 0 0 #f5c9a6}
/* sticky first col on narrow screens */
@media (max-width:820px){.prose table.sc th.dp{position:sticky;left:0;z-index:1}}
/* day view */
.sc-days{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:0 0 18px}
.sc-days button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 0 8px;font:inherit;font-size:20px;font-weight:700;color:var(--deep);cursor:pointer;line-height:1.1}
.sc-days button small{display:block;font-size:11px;font-weight:400;color:var(--mute);margin-top:3px}
.sc-days button[aria-selected="true"]{background:var(--deep);border-color:var(--deep);color:#fff}
.sc-days button[aria-selected="true"] small{color:#c9d3ef}
.sc-days button.today{position:relative}
.sc-days button.today::after{content:"今日";position:absolute;top:-8px;right:-4px;background:var(--orange);color:#fff;font-size:10px;padding:1px 5px;border-radius:4px}
.prose .sc-dh{font-size:18px;margin:0 0 12px;border:0;padding:0}
.sc-slot{border:1px solid var(--line);border-radius:12px;margin:0 0 14px;overflow:hidden}
.prose .sc-slot h4{margin:0;padding:10px 14px;background:var(--tint);display:flex;align-items:center;gap:10px;font-size:15px;border:0}
.prose .sc-slot h4::before{display:none}
.tm-t{font-weight:400;color:var(--mute);font-size:14px}
.prose .sc-slot ul{list-style:none;margin:0;padding:0}
.prose .sc-slot li{display:grid;grid-template-columns:8.5em 1fr;gap:10px;align-items:start;padding:11px 14px;margin:0;border-top:1px solid var(--line)}
.prose .sc-slot li::before{display:none}
.prose .sc-slot li:first-child{border-top:0}
.sc-slot .dn{font-weight:700;color:var(--deep);font-size:14.5px;padding-top:2px}
.sc-slot .dd{display:flex;flex-wrap:wrap;gap:6px 18px}
.sc-slot .dr{margin:0}
.sc-ok-t{color:var(--k-green);font-weight:700}
@media (max-width:480px){.prose .sc-slot li{grid-template-columns:7em 1fr}.sc-days button{font-size:18px}}
@media print{.sc-mode,.sc-v-day,.sc-hint{display:none!important}.sc-v-tbl{display:block!important}}
.sc-closed{border:2px solid #f2b98f;background:#fff8f1;border-radius:12px;padding:14px 18px;margin:0 0 20px}
.sc-closed .sc-ct{margin:0 0 6px;font-weight:700;color:#a4470d;font-size:16px}
.prose .sc-closed ul{list-style:none;margin:0;padding:0}
.prose .sc-closed li{margin:0;padding:4px 0;display:flex;flex-wrap:wrap;gap:4px 16px}
.prose .sc-closed li::before{display:none}
.sc-cd{font-weight:700}
.sc-cl2{color:var(--mute)}
@media (max-width:640px){.ft .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.ft .group a.logo-link{display:flex;align-items:center;justify-content:space-between;gap:12px;height:84px;padding:8px 16px;background:#fff;border:0;border-radius:8px}
.ft .group a.logo-link img{display:block;max-height:70px;max-width:270px;width:auto;height:auto}
.ft .group a.logo-link span{margin:0;color:var(--orange);font-weight:700}
.ft .group a.logo-link:hover{box-shadow:0 0 0 3px rgba(232,115,28,.6);background:#fff}
@media (max-width:640px){.ft .group a.logo-link{display:flex}.ft .group a.logo-link img{max-width:calc(100% - 30px)}}
.ft .group a.logo-link{position:relative;padding-right:28px}
.ft .group a.logo-link .arw{position:absolute;top:6px;right:10px;font-size:13px}
.ft .group a.logo-link img[src*="konkon_top"]{max-height:62px}
.ft .group a.logo-link .tag{flex:1;color:#b83c00;font-size:12px;line-height:1.5;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.ft .group a.logo-link .tag b{display:inline-block;margin-top:2px;padding:1px 8px;border-radius:999px;background:#b83c00;color:#fff;font-size:11.5px}

/* 診療科アイコン（案C） */
.dgrid .ic{-webkit-mask:none;mask:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e6f2e8;color:#2f6f3a;--icbg:#e6f2e8;transition:background .25s,color .25s}
.dgrid .ic svg{width:38px;height:38px;display:block}
.dgrid a:hover .ic{background:var(--k-green);color:#fff;--icbg:var(--k-green)}


.hero h1,.hero h1 small{text-shadow:0 2px 16px rgba(10,16,34,.55),0 1px 3px rgba(10,16,34,.45)}
/* トップスライド1（外観・青空） */
.slides img.h-ext{object-position:52% 50%}
@media (max-width:640px){.slides img.h-ext{object-position:66% 40%}}
/* スライド1：横長画面では建物を横幅ぴったりに */
@media (min-aspect-ratio: 13/10){.slides img.h-ext{object-position:50% 85%}}
@media (min-aspect-ratio: 3/2){.slides img.h-ext{object-position:50% 65%}}
@media (min-aspect-ratio: 16/10){.slides img.h-ext{object-position:50% 55%}}
@media (min-aspect-ratio: 17/10){.slides img.h-ext{object-position:50% 48%}}
@media (min-aspect-ratio: 19/10){.slides img.h-ext{object-position:50% 33%}}
@media (min-aspect-ratio: 22/10){.slides img.h-ext{object-position:50% 29%}}
@media (min-aspect-ratio: 16/10){.slides img.h-ext{object-position:50% 63%}}
@media (min-aspect-ratio: 17/10){.slides img.h-ext{object-position:50% 58%}}
@media (min-aspect-ratio: 19/10){.slides img.h-ext{object-position:50% 52%}}
@media (min-aspect-ratio: 22/10){.slides img.h-ext{object-position:50% 48%}}
@media (min-aspect-ratio: 13/10){.slides img.h-ext{object-position:50% 80%}}
@media (min-aspect-ratio: 3/2){.slides img.h-ext{object-position:50% 68%}}
@media (min-aspect-ratio: 16/10){.slides img.h-ext{object-position:50% 60%}}
@media (min-aspect-ratio: 17/10){.slides img.h-ext{object-position:50% 57%}}
@media (min-aspect-ratio: 19/10){.slides img.h-ext{object-position:50% 54%}}
@media (min-aspect-ratio: 22/10){.slides img.h-ext{object-position:50% 52%}}

/* hero 20261104i: wider photo on PC, keep tower top below header */
@media (min-aspect-ratio: 13/10){.slides img.h-ext{object-position:50% 50%}}
@media (min-aspect-ratio: 16/10){.slides img.h-ext{object-position:50% 70%}}
@media (min-aspect-ratio: 17/10){.slides img.h-ext{object-position:50% 44%}}
@media (min-aspect-ratio: 18/10){.slides img.h-ext{object-position:50% 35%}}
@media (min-aspect-ratio: 19/10){.slides img.h-ext{object-position:50% 31%}}
@media (min-aspect-ratio: 20/10){.slides img.h-ext{object-position:50% 28%}}
@media (min-aspect-ratio: 21/10){.slides img.h-ext{object-position:50% 27%}}
@media (min-aspect-ratio: 22/10){.slides img.h-ext{object-position:50% 25%}}
@media (min-aspect-ratio: 24/10){.slides img.h-ext{object-position:50% 23%}}
@media (min-aspect-ratio: 27/10){.slides img.h-ext{object-position:50% 22%}}
@media (min-aspect-ratio: 30/10){.slides img.h-ext{object-position:50% 19%}}

/* hero 20261104j: slightly closer */
@media (min-aspect-ratio: 13/10){.slides img.h-ext{object-position:50% 50%}}
@media (min-aspect-ratio: 147/100){.slides img.h-ext{object-position:50% 77%}}
@media (min-aspect-ratio: 16/10){.slides img.h-ext{object-position:50% 51%}}
@media (min-aspect-ratio: 17/10){.slides img.h-ext{object-position:50% 41%}}
@media (min-aspect-ratio: 18/10){.slides img.h-ext{object-position:50% 36%}}
@media (min-aspect-ratio: 19/10){.slides img.h-ext{object-position:50% 33%}}
@media (min-aspect-ratio: 20/10){.slides img.h-ext{object-position:50% 30%}}
@media (min-aspect-ratio: 21/10){.slides img.h-ext{object-position:50% 29%}}
@media (min-aspect-ratio: 22/10){.slides img.h-ext{object-position:50% 26%}}
@media (min-aspect-ratio: 24/10){.slides img.h-ext{object-position:50% 24%}}
@media (min-aspect-ratio: 27/10){.slides img.h-ext{object-position:50% 23%}}
@media (min-aspect-ratio: 30/10){.slides img.h-ext{object-position:50% 19%}}

/* hero 20261104k: a little closer */
@media (min-aspect-ratio: 13/10){.slides img.h-ext{object-position:50% 50%}}
@media (min-aspect-ratio: 147/100){.slides img.h-ext{object-position:50% 62%}}
@media (min-aspect-ratio: 16/10){.slides img.h-ext{object-position:50% 47%}}
@media (min-aspect-ratio: 17/10){.slides img.h-ext{object-position:50% 40%}}
@media (min-aspect-ratio: 18/10){.slides img.h-ext{object-position:50% 36%}}
@media (min-aspect-ratio: 19/10){.slides img.h-ext{object-position:50% 33%}}
@media (min-aspect-ratio: 20/10){.slides img.h-ext{object-position:50% 31%}}
@media (min-aspect-ratio: 21/10){.slides img.h-ext{object-position:50% 29%}}
@media (min-aspect-ratio: 22/10){.slides img.h-ext{object-position:50% 27%}}
@media (min-aspect-ratio: 24/10){.slides img.h-ext{object-position:50% 25%}}
@media (min-aspect-ratio: 27/10){.slides img.h-ext{object-position:50% 24%}}
@media (min-aspect-ratio: 30/10){.slides img.h-ext{object-position:50% 19%}}

/* hero 20261104l: a little closer again */
@media (min-aspect-ratio: 13/10){.slides img.h-ext{object-position:50% 50%}}
@media (min-aspect-ratio: 147/100){.slides img.h-ext{object-position:50% 59%}}
@media (min-aspect-ratio: 16/10){.slides img.h-ext{object-position:50% 47%}}
@media (min-aspect-ratio: 17/10){.slides img.h-ext{object-position:50% 40%}}
@media (min-aspect-ratio: 18/10){.slides img.h-ext{object-position:50% 36%}}
@media (min-aspect-ratio: 19/10){.slides img.h-ext{object-position:50% 33%}}
@media (min-aspect-ratio: 20/10){.slides img.h-ext{object-position:50% 31%}}
@media (min-aspect-ratio: 21/10){.slides img.h-ext{object-position:50% 30%}}
@media (min-aspect-ratio: 22/10){.slides img.h-ext{object-position:50% 28%}}
@media (min-aspect-ratio: 24/10){.slides img.h-ext{object-position:50% 26%}}
@media (min-aspect-ratio: 27/10){.slides img.h-ext{object-position:50% 24%}}
@media (min-aspect-ratio: 30/10){.slides img.h-ext{object-position:50% 19%}}

/* slide 3 room photo: show bed on phones */
.slides img.h-room{object-position:50% 60%}
@media (max-aspect-ratio: 1/1){.slides img.h-room{object-position:72% 60%}}

/* 20261106a: phone + LINE contact */
.contact-ways{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:8px 0 28px}
.cway{border:1px solid var(--line);border-radius:12px;padding:24px;background:#fff;text-align:center}
.cway h3{margin:0 0 10px;font-size:18px;border:0;padding:0}
.cway h3::before{display:none}
.cway .num{display:block;font-size:30px;font-weight:800;letter-spacing:.02em;color:var(--ink);text-decoration:none;margin:4px 0 6px}
.cway p{margin:6px 0;font-size:14px;line-height:1.7}
.cway .qr{display:block;width:140px;height:140px;margin:12px auto 4px}
.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#06C755;color:#fff!important;border-radius:999px;padding:12px 26px;font-weight:700;font-size:15px;text-decoration:none!important;line-height:1.3}
.btn-line:hover{background:#05b04b}
.btn-line svg{width:20px;height:20px;flex:none}
.line-inline{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px}
.line-inline small{display:block;font-size:13px;opacity:.8}
.hours .line-inline{justify-content:flex-start;margin:12px 0 18px}
.callout .line-inline{justify-content:center}
.sns a.line{border-color:#06C755}
@media (max-width:700px){.contact-ways{grid-template-columns:1fr}.cway .qr{display:none}}

/* 20261106b: slideshow pause (WCAG 2.2.2) */
.hero-pause{position:absolute;z-index:4;right:calc(14px + env(safe-area-inset-right,0px));bottom:178px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.85);background:rgba(10,25,55,.45);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hero-pause:hover{background:rgba(10,25,55,.7)}
.hero-pause:focus-visible{outline:3px solid #ffd54a;outline-offset:2px}
.hero-pause svg{width:20px;height:20px}
.hero-pause .i-play{display:none}
.hero-pause[aria-pressed="true"] .i-play{display:block}
.hero-pause[aria-pressed="true"] .i-pause{display:none}
.hero-pause .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hero.paused .scroll i::after{animation-play-state:paused}

/* 20261109: kenshin-reserve LINE banners */
.kr-banner{margin:24px auto;text-align:center}
.kr-banner a{display:inline-block;line-height:0}
.kr-banner img{max-width:100%;height:auto}
.kr-wide img{width:600px}
.kr-btn img{width:260px}
.kr-btn{margin:16px 0;text-align:left}
.kr-wbtn img{width:520px}
.kr-wbtn{margin:12px 0;text-align:left}
.sched-link + .kr-banner{margin-top:28px}
.kr-banner .kr-cap{margin:0 auto 10px;max-width:none;text-align:center}
