/* Which Dental — page layout */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--ink);font:400 16px/1.6 var(--font-body)}
img{max-width:100%;height:auto}
a{color:var(--brand);text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0}
h1{font-weight:800;font-size:40px;line-height:1.1;letter-spacing:-.02em}
h2{font-weight:700;font-size:28px;line-height:1.2;letter-spacing:-.01em}
h3{font-weight:700;font-size:19px;line-height:1.3}
p{margin:0 0 var(--space-4)}
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--space-5)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:10;background:var(--surface-card);padding:8px 12px;border-radius:8px}

/* header */
.site-head{padding:var(--space-4) 0}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.brand-link{display:inline-flex}
.brand-link img{height:40px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:var(--space-5)}
.nav a{color:var(--ink);text-decoration:none;font-size:15px}
.nav a[aria-current=page]{font-weight:700;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px}
.nav .wd-btn{color:var(--on-brand);font-size:15px;min-height:40px;padding:8px 16px}
.menu-btn{display:none;border:1px solid var(--line-strong);background:var(--surface-card);color:var(--ink);border-radius:var(--radius-pill);padding:8px 14px;font:700 15px var(--font-display)}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--surface-hero);color:var(--on-hero);border-radius:var(--radius-lg);padding:var(--space-7) 48px;margin-top:var(--space-2)}
.hero::after{content:"";position:absolute;right:-90px;top:-90px;width:340px;height:340px;border-radius:50%;background:var(--accent);opacity:.92}
.hero>*{position:relative;z-index:1}
.hero h1{color:var(--on-hero);font-size:54px;line-height:1.04;letter-spacing:-.03em;max-width:12em}
.hero .lede{font-size:18px;line-height:1.55;margin:var(--space-4) 0 28px;max-width:32em;color:var(--on-hero);opacity:.92}
.hero .chips{margin-top:var(--space-4);display:flex;gap:var(--space-2);flex-wrap:wrap}
.hero .chips a{text-decoration:none}
.page-hero{padding:var(--space-6) 0 var(--space-5)}
.page-hero .kicker{display:block;color:var(--accent-text);font:700 13px var(--font-body);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-2)}
.page-hero .lede{font-size:18px;line-height:1.55;max-width:40em;color:var(--ink-muted);margin-top:var(--space-4)}

/* sections */
.section{padding:var(--space-7) 0 0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
.pillar{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:28px;display:flex;flex-direction:column;gap:var(--space-3)}
.pillar .num{width:44px;height:44px;border-radius:50%;background:var(--surface-clay);display:grid;place-items:center;font:800 18px var(--font-display);color:var(--brand)}
.pillar p{color:var(--ink-muted);margin:0}
.pillar .wd-btn{align-self:flex-start;margin-top:auto}
.band{background:var(--surface-clay);border-radius:var(--radius-lg);padding:var(--space-6) 48px;margin-top:var(--space-7)}
.band p{max-width:46em}

/* prose */
.prose{max-width:760px}
.prose h2{margin:var(--space-6) 0 var(--space-3)}
.prose h3{margin:var(--space-5) 0 var(--space-2)}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 var(--space-4)}
.prose li{margin-bottom:6px}
.layout-aside{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start}
.toc{position:sticky;top:24px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5)}
.toc h2{font-size:15px;margin-bottom:var(--space-3)}
.toc ol{margin:0;padding-left:1.2em;font-size:15px}
.toc li{margin-bottom:6px}

/* tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-card);margin:0 0 var(--space-5)}
table{border-collapse:collapse;width:100%;font-size:15px;min-width:560px}
th,td{text-align:left;vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--line)}
thead th{font:700 14px var(--font-display);background:var(--surface-clay);color:var(--ink)}
tbody tr:last-child td{border-bottom:0}
td:first-child{font-weight:700}

/* directory */
.dir{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:start}
.filters{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}
.filters fieldset{border:0;padding:0;margin:0}
.filters legend{font:700 15px var(--font-display);margin-bottom:var(--space-2)}
.filters .chipset{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.filters select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--ink);font:16px var(--font-body);padding:8px 10px}
.results-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4);color:var(--ink-muted);font-size:15px}
.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.empty{padding:var(--space-6);text-align:center;color:var(--ink-muted);background:var(--surface-card);border:1px dashed var(--line-strong);border-radius:var(--radius-md)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:var(--radius-sm);border:2px solid var(--status-declared);color:var(--ink);font-size:15px;margin-bottom:var(--space-4)}
.notice strong{color:var(--status-declared)}

/* course detail */
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-card);overflow:hidden;margin:var(--space-5) 0}
.facts div{padding:14px 18px;border-bottom:1px solid var(--line)}
.facts div:nth-child(odd){border-right:1px solid var(--line)}
.facts dt{font-size:13px;color:var(--ink-muted)}
.facts dd{margin:2px 0 0;font-weight:700}
.review{border-top:1px solid var(--line);padding:var(--space-5) 0}
.review h3{margin:6px 0}
.review .meta{font-size:14px;color:var(--ink-muted)}

/* forms */
.form{display:grid;gap:var(--space-4);background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5)}
.form label{display:block;font:700 15px var(--font-display);margin-bottom:6px}
.form .hint{display:block;font:400 14px var(--font-body);color:var(--ink-muted);margin-top:2px}
.form input,.form select,.form textarea{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-page);color:var(--ink);font:16px var(--font-body);padding:10px 12px}
.form textarea{min-height:140px;resize:vertical}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{outline:3px solid var(--brand);outline-offset:1px}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.form .check{display:flex;gap:10px;align-items:flex-start;font:400 15px var(--font-body)}
.form .check input{width:20px;min-height:20px;margin-top:3px}
.form-status{font-weight:700}
.form-status.ok{color:var(--status-verified)}.form-status.err{color:var(--status-alert)}

/* footer */
.site-foot{margin-top:var(--space-7);background:var(--surface-hero);color:var(--on-hero);padding:var(--space-6) 0}
.site-foot a{color:var(--on-hero)}
.site-foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-5)}
.site-foot h2{color:var(--on-hero);font-size:15px;margin-bottom:var(--space-2)}
.site-foot ul{list-style:none;margin:0;padding:0;font-size:15px}
.site-foot li{margin-bottom:6px}
.site-foot small{display:block;margin-top:var(--space-5);opacity:.85;font-size:13px}

@media (max-width:960px){
  .dir,.layout-aside{grid-template-columns:1fr}
  .toc{position:static}
}
@media (max-width:760px){
  .wrap{padding:0 var(--space-4)}
  h1{font-size:32px}
  .hero{padding:40px 24px;border-radius:var(--radius-md)}
  .hero h1{font-size:36px}
  .hero::after{width:170px;height:170px;right:-85px;top:-95px}
  .grid-3,.grid-2,.results,.facts,.form .row2,.site-foot .cols{grid-template-columns:1fr}
  .facts div:nth-child(odd){border-right:0}
  .band{padding:32px 24px}
  .menu-btn{display:inline-block}
  .nav{display:none;position:absolute;left:16px;right:16px;top:72px;z-index:5;flex-direction:column;align-items:stretch;gap:0;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:8px;box-shadow:var(--shadow-card)}
  .nav.open{display:flex}
  .nav a{padding:12px}
  .site-head{position:relative}
}
