*{box-sizing:border-box}
:root{--navy:#0a4275;--blue:#175f98;--pale:#eef7fc;--text:#25465f;--muted:#687f91}
html,body{margin:0;background:#edf3f7;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans SC","Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased}
body{font-size:16px}
.site{width:min(100%,430px);margin:auto;background:#fff;box-shadow:0 0 28px rgba(10,55,90,.08)}
.topbar{padding:18px 20px 14px;border-bottom:1px solid #e4edf4}
.brand{display:flex;align-items:center;gap:9px;color:var(--navy)}
.brand .tooth{font-size:28px;transform:rotate(-12deg);line-height:1}
.brand strong{display:block;font-family:Georgia,serif;font-size:16px}
.brand small{display:block;font-size:8px;margin-top:1px}
.topbar .jp{font-size:10px;color:#466a87;margin-top:7px}
.hero{position:relative;background:linear-gradient(180deg,#f6fbff,#fff);overflow:hidden}
.hero-copy{padding:26px 20px 8px}
h1,h2,h3{color:var(--navy);margin:0}
h1{font-family:Georgia,"Noto Serif SC",serif;font-size:38px;line-height:1.28;letter-spacing:.02em}
.hero h2{font-size:20px;line-height:1.5;margin-top:22px}
.hero p{line-height:1.75;margin:10px 0;color:#46667f}
.jp-sub{font-size:12px;color:#6a8193!important}
.hero img{display:block;width:100%;height:330px;object-fit:cover;object-position:center 34%}
.slogan{position:absolute;right:30px;bottom:30px;font-family:cursive;font-size:24px;line-height:1.15;color:#567b9a;transform:rotate(-7deg)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e1edf5}
.trust-grid>div{background:#fff;text-align:center;padding:18px 6px}
.trust-grid b{display:block;color:var(--blue);font-size:24px}
.trust-grid strong{display:block;color:var(--navy);font-size:14px;margin-top:6px}
.trust-grid span{display:block;font-size:10px;color:#758b9d;margin-top:3px}
.section{padding:34px 20px}
.section.pale{background:linear-gradient(180deg,#f3f9fd,#fff)}
.section>h2,.contact h2{font-family:Georgia,"Noto Serif SC",serif;font-size:28px;line-height:1.35;text-align:center}
.center{text-align:center}
.checks{list-style:none;padding:0;margin:25px 0 0}
.checks li{position:relative;padding:0 0 18px 36px}
.checks li:before{content:"✓";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:5px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:bold}
.checks strong{display:block;color:var(--navy);font-size:15px}
.checks span{display:block;color:#71879a;font-size:11px;margin-top:4px}
.answer{text-align:center;color:var(--navy);font-family:Georgia,"Noto Serif SC",serif;font-size:23px;margin-top:24px}
.answer small{display:block;font-family:inherit;font-size:11px;color:#72879a;margin-top:6px}
.reasons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
.reasons article{background:#f7fbfe;border-radius:10px;padding:18px 14px;min-height:155px}
.reasons em{font-style:normal;font-weight:800;color:var(--blue);font-size:26px}
.reasons strong{display:block;color:var(--navy);font-size:15px;line-height:1.5;margin:8px 0}
.reasons span{font-size:10px;line-height:1.55;color:#74899a}
.wide-photo,.clinic{display:block;width:100%;border-radius:12px;margin-top:22px;object-fit:cover}
.wide-photo{height:180px}
.clinic{height:210px;margin-bottom:24px}
.closing{text-align:center;padding:28px 10px 0}
.closing strong{display:block;color:var(--navy);font-family:Georgia,"Noto Serif SC",serif;font-size:21px;line-height:1.5}
.closing span{display:block;font-size:11px;color:#72889a;margin-top:7px}
.services{margin-top:24px;display:grid;gap:12px}
.services article{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center;background:#fff;border-radius:12px;padding:10px;box-shadow:0 4px 18px rgba(26,83,128,.06)}
.services img{width:110px;height:88px;object-fit:cover;border-radius:8px}
.services strong{display:block;color:var(--navy);font-size:16px}
.services b{display:block;font-size:11px;color:#486a86;margin:2px 0 6px}
.services p{font-size:11px;line-height:1.5;color:#698094;margin:0}
.flow ol{list-style:none;margin:24px 0 0;padding:0}
.flow li{display:grid;grid-template-columns:54px 1fr;gap:12px;padding:0 0 25px;position:relative}
.flow li:not(:last-child):after{content:"";position:absolute;left:26px;top:48px;bottom:0;width:1px;background:#c5dfef}
.flow i{width:52px;height:52px;border-radius:50%;background:#e9f5fc;display:grid;place-items:center;color:var(--blue);font-style:normal;font-weight:800}
.flow strong{display:block;color:var(--navy);font-size:17px}
.flow b{display:block;font-size:11px;color:#638099;margin:2px 0 7px}
.flow p{margin:0;font-size:12px;line-height:1.6;color:#698094}
.section h3{font-size:18px;line-height:1.5;margin:8px 0}
.section p{font-size:13px;line-height:1.8}
.jptext{color:#6e8394}
.faq details{background:#fff;border-radius:12px;padding:15px 16px;margin:12px 0;box-shadow:0 3px 14px rgba(25,75,115,.06)}
.faq summary{cursor:pointer;color:var(--navy);font-weight:700;font-size:14px}
.faq details p{margin:10px 0 0;font-size:12px}
.faq details span{color:#748999}
.contact{padding:38px 24px 34px;text-align:center;background:linear-gradient(180deg,#fff,#eaf6fd)}
.script{font-family:cursive;color:#5e84a3;font-size:26px;line-height:1.2;transform:rotate(-6deg);margin-bottom:30px}
.contact h2{font-size:25px}
.contact p{font-size:12px;color:#657f93}
.qrbtn{border:0;background:#fff;padding:12px;border-radius:16px;box-shadow:0 6px 22px rgba(20,75,120,.12);margin:8px 0 24px}
.qrbtn img{display:block;width:220px;height:220px}
.footer-brand{justify-content:center;margin-top:12px}
.contact>small{display:block;color:#6f879a;margin-top:8px}
.modal{display:none;position:fixed;inset:0;z-index:9999;place-items:center;padding:20px}
.modal.open{display:grid}
.backdrop{position:absolute;inset:0;border:0;background:rgba(8,24,38,.74)}
.card{position:relative;z-index:2;background:#fff;border-radius:20px;width:min(92vw,380px);padding:28px 20px 22px;text-align:center}
.close{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:30px;color:#456b89}
.card h2{font-size:23px}.card p{font-size:12px;color:#71869a}
.modal-qr{display:block;width:min(76vw,300px);height:auto;margin:14px auto}
.save{width:100%;border:0;border-radius:12px;padding:14px;background:var(--blue);color:#fff;font-weight:700}
@media(min-width:431px){body{padding:16px 0}.site{border-radius:18px;overflow:hidden}}