body.smp-dental { --dn-pale:#e6f4f1; --dn-teal:#0f766e; --dn-ink:#203b39; --dn-line:#c7dfdb; margin:0; background:#fff; color:var(--dn-ink); font-family:'Zen Kaku Gothic New',sans-serif; font-size:16px; line-height:1.75; }
body.smp-dental .dn-wrap { width:min(1140px,calc(100% - 40px)); margin-inline:auto; }
body.smp-dental .dn-header { position:sticky; top:48px; z-index:50; background:#fff; border-bottom:1px solid var(--dn-line); }
body.smp-dental .dn-header-in { display:flex; align-items:center; gap:32px; min-height:74px; }
body.smp-dental .dn-logo { display:inline-flex; align-items:center; min-height:44px; color:var(--dn-teal); text-decoration:none; font-size:23px; font-weight:700; white-space:nowrap; }
body.smp-dental .dn-header nav { display:flex; gap:25px; margin-left:auto; }
body.smp-dental .dn-header nav a { display:inline-flex; align-items:center; min-height:44px; color:var(--dn-ink); text-decoration:none; font-weight:700; font-size:14px; }
body.smp-dental .dn-header-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:5px 17px; border-radius:12px; background:var(--dn-teal); color:#fff; text-decoration:none; font-size:14px; font-weight:700; white-space:nowrap; }
body.smp-dental .dn-hero { background:var(--dn-pale); padding:clamp(70px,9vw,124px) 0; }
body.smp-dental .dn-hero-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.7fr); align-items:center; gap:8%; }
body.smp-dental .dn-kicker { margin:0 0 20px; font-size:14px; font-weight:700; color:var(--dn-teal); }
body.smp-dental .dn-hero h1 { margin:0 0 26px; font-size:clamp(34px,4vw,55px); line-height:1.45; letter-spacing:.04em; }
body.smp-dental .dn-hero-copy > p:not(.dn-kicker) { max-width:34em; margin:0 0 28px; }
body.smp-dental .dn-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:8px 22px; border-radius:12px; background:var(--dn-teal); color:#fff; font-weight:700; text-decoration:none; }
body.smp-dental .dn-today { padding:30px; border-radius:16px; background:#fff; box-shadow:0 12px 35px rgba(13,85,78,.09); }
body.smp-dental .dn-today > span { display:block; margin-bottom:18px; color:var(--dn-teal); font-weight:700; }
body.smp-dental .dn-today strong { display:block; font-size:30px; line-height:1.4; }
body.smp-dental .dn-today p { margin:7px 0; }
body.smp-dental .dn-today .dn-today-status { display:inline-block; margin:15px 0 19px; padding:6px 12px; border-radius:99px; background:var(--dn-pale); color:#135b54; font-size:14px; font-weight:700; }
body.smp-dental .dn-today a { display:flex; align-items:center; min-height:44px; color:var(--dn-teal); font-weight:700; }
body.smp-dental .dn-section { padding:clamp(68px,8vw,106px) 0; }
body.smp-dental .dn-section h2 { margin:0; font-size:clamp(29px,3vw,41px); line-height:1.5; }
body.smp-dental .dn-section h3 { margin:0 0 12px; font-size:20px; }
body.smp-dental .dn-heading { display:flex; align-items:end; gap:18px; margin-bottom:35px; }
body.smp-dental .dn-heading > p { align-self:start; margin:2px 0 0; color:var(--dn-teal); font-weight:700; }
body.smp-dental .dn-heading > span { margin-left:auto; max-width:21em; font-size:14px; color:#47635f; }
body.smp-dental .dn-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
body.smp-dental .dn-service-grid article { min-height:210px; padding:28px; border:1px solid var(--dn-line); border-radius:16px; background:#fff; }
body.smp-dental .dn-service-grid article::before { content:""; display:block; width:35px; height:5px; margin-bottom:24px; border-radius:5px; background:var(--dn-teal); }
body.smp-dental .dn-service-grid p { margin:0; }
body.smp-dental .dn-photo-section { background:#f5faf9; }
body.smp-dental .dn-photo-grid, body.smp-dental .dn-space-grid, body.smp-dental .dn-care-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:7%; }
body.smp-dental .dn-photo-grid img, body.smp-dental .dn-space-grid img, body.smp-dental .dn-care-grid img { width:100%; height:400px; object-fit:cover; border-radius:16px; }
body.smp-dental .dn-step { margin:0 0 16px; color:var(--dn-teal); font-weight:700; }
body.smp-dental .dn-photo-grid p:not(.dn-step), body.smp-dental .dn-space-grid p:not(.dn-step), body.smp-dental .dn-care-grid p:not(.dn-step) { margin:20px 0 0; }
body.smp-dental .dn-first { background:var(--dn-pale); }
body.smp-dental .dn-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
body.smp-dental .dn-steps li { padding:26px 22px; border-radius:16px; background:#fff; }
body.smp-dental .dn-steps li > span { display:flex; justify-content:center; align-items:center; width:42px; height:42px; margin-bottom:28px; border-radius:50%; background:var(--dn-teal); color:#fff; font-weight:700; }
body.smp-dental .dn-steps h3 { font-size:18px; }
body.smp-dental .dn-steps p { margin:0; font-size:14px; }
body.smp-dental .dn-space-grid img { order:2; }
body.smp-dental .dn-care { background:#f5faf9; }
body.smp-dental .dn-schedule { background:#fff; }
body.smp-dental .dn-table-wrap { overflow-x:auto; border:1px solid var(--dn-line); border-radius:16px; }
body.smp-dental .dn-table-wrap table { width:100%; border-collapse:collapse; table-layout:fixed; text-align:center; }
body.smp-dental .dn-table-wrap caption { padding:18px 20px; text-align:left; font-size:17px; font-weight:700; }
body.smp-dental .dn-table-wrap th, body.smp-dental .dn-table-wrap td { padding:15px 5px; border-top:1px solid var(--dn-line); border-right:1px solid var(--dn-line); font-size:14px; }
body.smp-dental .dn-table-wrap th:first-child { width:160px; text-align:left; padding-left:17px; }
body.smp-dental .dn-table-wrap thead th { background:var(--dn-pale); }
body.smp-dental .dn-table-wrap th:last-child, body.smp-dental .dn-table-wrap td:last-child { border-right:0; }
body.smp-dental .dn-table-wrap [data-dn-weekday].is-today { background:#c7e9e2; color:#07584f; font-weight:700; box-shadow:inset 0 0 0 2px var(--dn-teal); }
body.smp-dental .dn-table-note { margin:20px 0 0; color:#47635f; font-size:14px; }
body.smp-dental .dn-footer { padding:56px 0; background:#164a45; color:#e5f5f1; font-size:14px; }
body.smp-dental .dn-footer-name { margin:0 0 18px; color:#fff; font-size:24px; font-weight:700; }
body.smp-dental .dn-footer p:not(.dn-footer-name) { max-width:55em; }
body.smp-dental .dn-footer-links { display:flex; flex-wrap:wrap; gap:10px 25px; margin-top:22px; }
body.smp-dental .dn-footer-links a { display:inline-flex; align-items:center; min-height:44px; color:#fff; }
body.smp-dental :is(a,button):focus-visible { outline:3px solid #0f766e; outline-offset:3px; }
body.smp-dental.is-cap .dn-header { top:0; }
@media (max-width:900px) {
body.smp-dental .dn-header nav { display:none; }
body.smp-dental .dn-header-link { margin-left:auto; }
body.smp-dental .dn-hero-grid { gap:4%; }
body.smp-dental .dn-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
body.smp-dental .dn-wrap { width:calc(100% - 32px); }
body.smp-dental .dn-header-in { min-height:60px; gap:10px; }
body.smp-dental .dn-logo { font-size:20px; }
body.smp-dental .dn-header-link { padding:5px 10px; font-size:12px; }
body.smp-dental .dn-hero { padding:62px 0; }
body.smp-dental .dn-hero-grid, body.smp-dental .dn-photo-grid, body.smp-dental .dn-space-grid, body.smp-dental .dn-care-grid { grid-template-columns:1fr; gap:30px; }
body.smp-dental .dn-hero h1 { font-size:clamp(30px,8vw,40px); }
body.smp-dental .dn-today { padding:24px; }
body.smp-dental .dn-heading { display:block; }
body.smp-dental .dn-heading > span { display:block; margin:12px 0 0; }
body.smp-dental .dn-service-grid { grid-template-columns:1fr; }
body.smp-dental .dn-service-grid article { min-height:0; padding:23px; }
body.smp-dental .dn-photo-grid img, body.smp-dental .dn-space-grid img, body.smp-dental .dn-care-grid img { height:240px; }
body.smp-dental .dn-space-grid img { order:0; }
body.smp-dental .dn-steps { gap:12px; }
body.smp-dental .dn-steps li { padding:20px 16px; }
body.smp-dental .dn-steps h3 { font-size:16px; }
body.smp-dental .dn-table-wrap { margin-inline:-8px; }
body.smp-dental .dn-table-wrap caption { padding:12px; font-size:15px; }
body.smp-dental .dn-table-wrap th, body.smp-dental .dn-table-wrap td { padding:10px 1px; font-size:12px; word-break:keep-all; }
body.smp-dental .dn-table-wrap th:first-child { width:65px; padding-left:5px; font-size:12px; }
}
@media (max-width:380px) { body.smp-dental .dn-steps { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { body.smp-dental *, body.smp-dental *::before, body.smp-dental *::after { scroll-behavior:auto; animation:none; transition:none; } }
