@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap");

:root{--ink:#142348;--blue:#244bb4;--light:#eaf1ff;--pink:#fae5ef;--line:#dce5f6;--muted:#4a5874}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f8faff;color:var(--ink);font:16px/1.8 "Noto Sans JP","Hiragino Sans",Meiryo,sans-serif}
a{color:inherit;text-decoration:none}
a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.wrap{width:min(1160px,calc(100% - 64px));margin-inline:auto}
header{background:#fff;border-bottom:1px solid var(--line)}
.bar,.foot,.access{display:flex;align-items:center;justify-content:space-between;gap:24px}
.bar{min-height:78px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;line-height:1.45;font-size:18px}
.brand small{display:block;font-size:11px;font-weight:600}
.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--light);color:var(--blue);font-size:24px}
nav,.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
nav{font-size:14px;font-weight:700}
nav a:hover{text-decoration:underline}
.hero{padding-top:24px}
.hero-inner{display:grid;grid-template-columns:1fr 1.04fr;align-items:center;gap:20px;padding:clamp(28px,5vw,72px);border-radius:38px;background:linear-gradient(117deg,#edf3ff 38%,#f5edfa 73%,#fae5ef)}
.eyebrow{margin:0 0 10px;color:var(--blue);font-size:13px;font-weight:800;letter-spacing:.12em}
h1,h2{margin:0;line-height:1.28;font-weight:800;letter-spacing:-.035em}
h1{font-size:clamp(40px,5vw,72px)}
h2{font-size:clamp(24px,3vw,36px)}
.lead{margin:17px 0 24px;font-weight:700}
.hero-photo{margin:0;background:#ffffff70;border-radius:50% 50% 34% 34%;padding:12px}
.hero-photo img{display:block;width:100%;height:auto}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:11px 18px;min-height:48px;border-radius:100px;background:var(--blue);color:#fff;font-weight:750;border:1px solid var(--blue)}
.secondary{background:#fff;color:var(--blue)}
.button:hover{filter:brightness(.94)}
.shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}
.shortcuts a{position:relative;display:block;padding:14px 34px 14px 16px;border:1px solid var(--line);border-radius:16px;background:white;font-weight:700}
.shortcuts a:hover{background:var(--light)}
.shortcuts small{display:block;color:var(--blue);font-weight:800}
.shortcuts span{position:absolute;right:13px;top:13px;color:var(--blue)}
.content{display:grid;grid-template-columns:1.24fr 1fr;gap:16px;padding-block:32px 56px}
.content section,.concept{border:1px solid var(--line);background:#fff;border-radius:24px;padding:clamp(20px,3vw,36px);scroll-margin:16px;min-width:0}
#visit,#scenes,#access,.concept{grid-column:1/-1}
#visit{background:var(--light)}
#access{background:#fff1f7}
.muted,.note{color:var(--muted);font-size:14px}
.note{margin-bottom:0}
table{width:100%;border-collapse:collapse;text-align:center;font-variant-numeric:tabular-nums}
th,td{padding:10px 4px;border-bottom:1px solid var(--line)}
thead{background:var(--light)}
.services{list-style:none;padding:0;margin:14px 0}
.services li{padding:8px 0;border-bottom:1px solid var(--line);font-weight:650}
.scenes-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}
.scenes-grid figure{margin:0;overflow:hidden;border-radius:16px;background:var(--light)}
.scenes-grid figure:nth-child(even){background:#fff1f7}
.scenes-grid img{display:block;width:100%;height:auto}
.scenes-grid figcaption{text-align:center;padding:10px;font-weight:750}
.concept summary{cursor:pointer;font-weight:700}
.concept img{display:block;width:min(100%,800px);border-radius:16px}
.access{margin-top:15px}
address{font-style:normal}
footer{padding:24px 0;background:var(--ink);color:#fff;font-size:13px}
.foot a{text-decoration:underline}
.mobile{display:none}
@media(max-width:700px){
.wrap{width:calc(100% - 28px)}
.bar{padding:10px 0;min-height:0;align-items:flex-start;flex-direction:column;gap:8px}
nav{gap:16px;font-size:13px}
.hero{padding-top:12px}
.hero-inner{grid-template-columns:1fr;border-radius:24px;padding:22px;gap:10px}
h1{font-size:clamp(32px,9vw,52px)}
.hero-photo{width:min(100%,360px);justify-self:center;padding:6px}
.lead{margin:12px 0 17px}
.actions{gap:8px}
.button{font-size:14px;padding:9px 13px}
.shortcuts,.scenes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.shortcuts a{font-size:13px;padding-left:10px}
.content{grid-template-columns:1fr;gap:12px;padding-block:18px 32px}
table{font-size:14px}
.access,.foot{flex-direction:column;align-items:flex-start;gap:12px}
footer{padding-bottom:78px}
.mobile{display:grid;grid-template-columns:1fr 1fr;position:fixed;inset:auto 0 0;background:white;border-top:1px solid var(--line);padding:6px 8px max(6px,env(safe-area-inset-bottom));gap:8px}
.mobile a{text-align:center;background:var(--blue);color:white;padding:8px;border-radius:100px;font-weight:700}
.mobile a+a{background:var(--pink);color:var(--ink)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

h1,h2{font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:600;letter-spacing:.025em;line-height:1.45}
h1{font-size:clamp(39px,4.8vw,66px)}
.hero-inner{background-size:160% 160%}
@media(max-width:700px){h1{font-size:clamp(30px,8.5vw,50px)}}
@media(prefers-reduced-motion:no-preference){
 .hero-inner{animation:hero-tone 11s ease-in-out infinite alternate}
 .hero-copy{animation:lift-in .75s ease-out both}
 .hero-photo{animation:lift-in .95s .12s ease-out both}
 .hero-photo img{animation:illustration-drift 6s ease-in-out infinite}
 .button,.shortcuts a{transition:transform .2s ease,background-color .2s ease}
 .button:hover,.shortcuts a:hover{transform:translateY(-2px)}
 .arrive{animation:lift-in .55s ease-out both}
 @keyframes hero-tone{from{background-position:0 35%}to{background-position:100% 70%}}
 @keyframes lift-in{from{opacity:.35;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
 @keyframes illustration-drift{50%{transform:translateY(-5px)}}
}

:root{--ink:#121e32;--blue:#0045cf;--light:#eff5ff;--line:#d9e3f2}
body{background:#fff}
header .mark{background:var(--blue);color:#fff;border-radius:9px}
h1,h2{font-family:"Noto Sans JP","Hiragino Sans",Meiryo,sans-serif;letter-spacing:-.045em;font-weight:800}
.hero{padding-block:44px 0}
.hero-inner{padding:0;gap:clamp(24px,5vw,80px);background:none;animation:none;grid-template-columns:.9fr 1.1fr}
.hero-copy .eyebrow{letter-spacing:.08em}
.hero-copy h1{font-size:clamp(42px,6.2vw,82px);line-height:1.12}
.hero-copy .lead{font-weight:500;color:var(--muted)}
.hero-photo{padding:24px 16px 0;background:var(--light);border-radius:18px;position:relative;border-bottom:8px solid var(--blue)}
.hero-photo img{animation:none}
.shortcuts{margin-top:36px;gap:0;border-block:1px solid var(--line)}
.shortcuts a{border:0;border-right:1px solid var(--line);border-radius:0;padding-block:16px}
.shortcuts a:last-child{border-right:0}
#access,.scenes-grid figure:nth-child(even),.mobile a+a{background:var(--light)}
@media(max-width:700px){
.hero{padding-top:24px}
.hero-inner{grid-template-columns:1fr;gap:20px}
.hero-copy h1{font-size:clamp(38px,10vw,58px)}
.hero-photo{width:100%;padding-top:12px}
.shortcuts{margin-top:24px}
.shortcuts a:nth-child(2){border-right:0}
.shortcuts a:nth-child(-n+2){border-bottom:1px solid var(--line)}
}

/* Patient-centred hand-drawn design */
:root{--ink:#09357d;--blue:#0045bf;--pink:#fceaf1;--muted:#455973}body{color:var(--ink)}.hero-inner{grid-template-columns:.85fr 1.15fr;gap:28px}.hero-copy h1{font-size:clamp(30px,3.5vw,52px);line-height:1.5;letter-spacing:-.04em}.hero-copy h1:after{content:"";display:block;width:75%;height:5px;background:#f3a8c8;border-radius:50%;margin-top:10px;transform:rotate(-2deg)}.hero-photo{padding:0;border:0;background:white;border-radius:0}.hero-photo img{width:100%;height:auto}.connection{padding-block:80px 45px}.connection h2{line-height:1.5}.intro{max-width:760px;margin:24px 0 36px;color:var(--muted)}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.benefits article{border-top:2px solid #aac6f2;padding-top:20px}.benefits span{color:#d780a9;font-weight:800;letter-spacing:.12em}.benefits h3{font-size:20px;margin:10px 0}.benefits p,.dental p{color:var(--muted)}.dental{margin-top:32px;padding:20px 28px;background:#fff2f7;border-radius:18px}.dental h3{margin:0}.dental p{margin-bottom:0}.scene-sheet{display:block;width:100%;height:auto;max-width:960px;margin:24px auto 0}.content{padding-top:15px}#scenes{grid-row:1;grid-column:1/-1;border:0;padding-inline:0;border-top:1px solid var(--line);border-radius:0;padding-top:42px}.shortcuts{border-color:#9fbde9}.brand{color:#09357d}@media(max-width:700px){.hero-inner{grid-template-columns:1fr;gap:20px}.hero-copy h1{font-size:clamp(28px,7vw,40px)}.hero-photo{width:100%}.connection{padding-block:45px 20px}.benefits{grid-template-columns:1fr;gap:20px}.connection h2{font-size:26px}.dental{padding:20px}nav{gap:12px;font-size:12px}.scene-sheet{margin-top:15px}.hero-copy .lead{font-size:15px}}
