/* dentkit.css (design1 10-16): styles for templates2's F0400 sections + the forms page, kept out of the counted kit bytes */
/* opening hours: a calm two-column table; closed days muted */
#hours dl.hours{display:grid;margin:0;padding:8px 28px;border-radius:28px;background:var(--surface);box-shadow:var(--sf)}
#hours dl.hours>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px dashed var(--line)}
#hours dl.hours>div:last-child{border-bottom:0}
#hours dt{font-weight:700;color:var(--ink)}
#hours dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);text-align:right}
#hours dd:is(:empty,[data-closed]){color:var(--ink-2);font-weight:600}
/* FAQ: one readable column of accordions, 44px tap rows, a visible +/- marker */
#faq .faq[data-list]{grid-template-columns:1fr;gap:0;max-width:48rem}
#faq .faq details{padding:0;border-top:1px solid var(--line)}
#faq .faq details:last-child{border-bottom:1px solid var(--line)}
#faq .faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 0;cursor:pointer;list-style:none;font-weight:800;color:var(--ink)}
#faq .faq summary::-webkit-details-marker{display:none}
#faq .faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--bd);color:var(--accent);font-size:1.3rem;line-height:1}
#faq .faq details[open] summary::after{content:"\2212"}
#faq .faq details p{margin:0 0 18px;max-width:60ch;color:var(--ink-2)}
/* forms page: a clear but calm refusal message above the submit button */
.form-status{margin:0;padding:10px 14px;border-radius:12px;background:light-dark(#FDECEA,#3A1513);color:light-dark(#8C1D18,#FFB4AB);font-weight:600}
.form-status[hidden]{display:none}
/* desktop header: the brand keeps its row; the links wrap inside their own column (one row when they fit, never under the brand, never overflowing) */
@media (min-width:1000px){.nav{flex-wrap:nowrap}.brand{flex:none;white-space:nowrap}.nav ul{flex:1 1 auto;min-width:0;flex-wrap:wrap;justify-content:flex-end;gap:4px 2px}.nav ul a{padding:0 10px;white-space:nowrap}}
/* v3 (world-class spec 10-16): no template furniture. Real top sites show zero icon trios and card grids; spec_judge named "templated icon-trio rules and numbered step-card grids" as the dentist's weakest element */
/* the promises: editorial rows (a big statement left, the explanation right, hairlines between), no icons */
#approach .ico{display:none}
#approach [data-list]{display:grid;grid-template-columns:1fr;gap:0;max-width:62rem;margin-inline:auto}
#approach [data-item]{display:grid;grid-template-columns:1fr;gap:6px;padding:26px 0;border:0;border-top:1px solid var(--line);text-align:left}
#approach [data-item]:last-child{border-bottom:1px solid var(--line)}
#approach [data-item] h3{font-size:clamp(1.35rem,1rem + 1.2vw,1.8rem);line-height:1.15}
#approach [data-item] p{max-width:52ch;color:var(--ink-2)}
@media (min-width:860px){#approach [data-item]{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:56px;align-items:baseline}}
/* the visit, step by step: a calm timeline, not four white cards with numbered circles (higher specificity: this file loads before app.css) */
#how [data-list]{gap:28px clamp(24px,3vw,40px);counter-reset:step}
main #how li[data-item]{padding:22px 0 0;border:0;border-top:2px solid var(--accent);border-radius:0;background:none;box-shadow:none}
main #how li[data-item]::before{display:block;width:auto;height:auto;margin-bottom:10px;border-radius:0;background:none;color:var(--accent);font:800 var(--t-sm)/1 var(--sans);letter-spacing:.12em}
/* v4b (10-16): phone header = brand row + the links wrapped in at most 2 tidy rows, nothing clipped (v4's swipe row lost 1:5: "cuts off 'How it works' mid-word"); the header Book pill hides on phone because the hero's Book button (first screen) and the scroll call bar carry it */
@media (max-width:699px){.nav ul{flex:1 0 100%;column-gap:0;margin-inline:-8px}.nav ul a{padding:0 8px;font-size:.8125rem}.nav li:last-child:not(:first-child){display:none}}
/* v4c (10-17): the model renders a service price either as p.kicker or as span.price; app.css placed only li>.kicker in the leader row, so span.price dropped below and the dotted leader ran to nothing (E3DENTf/g lost 1:5 and 0:6 on exactly this) */
#services li>.price{grid-area:1/2;padding-left:12px}
/* v4d: a service row with no price shows no dotted leader (it ran to an empty edge when the model omitted fees) */
#services li:not(:has(.price,.kicker)) h3::after{display:none}
/* v4g (10-17): size-matched fallback faces so text wraps the same before and after Nunito / Nunito Sans swap in (font-swap header reflow = the dentist CLS). Width-matched to Arial/Liberation in Chrome; no visual change once the web font loads */
@font-face{font-family:fbs;font-weight:100 500;src:local("Arial"),local("Liberation Sans");unicode-range:U+20-7E,U+A0-FF,U+2010-2027;size-adjust:102.13%;ascent-override:98.99%;descent-override:34.56%;line-gap-override:0%}
@font-face{font-family:fbs;font-weight:600 900;src:local("Arial Bold"),local("Liberation Sans Bold");unicode-range:U+20-7E,U+A0-FF,U+2010-2027;size-adjust:98.78%;ascent-override:102.35%;descent-override:35.74%;line-gap-override:0%}
@font-face{font-family:fbn;font-weight:100 900;src:local("Arial Bold"),local("Liberation Sans Bold");unicode-range:U+20-7E,U+A0-FF,U+2010-2027;size-adjust:100.94%;ascent-override:100.16%;descent-override:34.97%;line-gap-override:0%}
/* v4g: the footer stays invisible until app.js has filled main (it painted at the top of the first screen, then was pushed down: E3DENTk CLS 0.16) */
main[data-main]:not(:has(section))~footer.foot{visibility:hidden;animation:dk-foot 0s 2.5s forwards}@keyframes dk-foot{to{visibility:visible}}
