/* Davis & Parker refresh: shared typography, palette, and existing patient tools. */
:root {
 --purple: #7042b5; --purple-dark: #553087; --ink: #242326; --paper: #f5f4f0; --concrete: #e5e3df;
 --muted: #5e5a61; --line: #c9c5c9; --body-font: 'Manrope', Arial, sans-serif; --display-font: 'Oswald', 'Arial Narrow', sans-serif;
 --primary: var(--purple); --primary-rgb: 112, 66, 181; --secondary: #77736f; --secondary-rgb: 119, 115, 111;
 --tertiary: #343236; --tertiary-rgb: 52, 50, 54; --accent: var(--purple); --accent-rgb: 112, 66, 181;
 --background: var(--paper); --background-light: #e9e6eb; --text: var(--ink); --text-primary: var(--ink);
 --border-color: var(--line); --nav-menu-height: 129px; --total-header-height: 129px;
 --bs-primary: #7042b5; --bs-primary-rgb: 112, 66, 181; --bs-primary-darker: #553087;
 --bs-body-font-family: var(--body-font); --bs-body-color: var(--ink); --bs-link-color: var(--purple);
 --paper-texture: url("../sites/davisparkerfamilydental/images/refresh/textures/paper.svg");
 --concrete-texture: url("../sites/davisparkerfamilydental/images/refresh/textures/concrete.svg"), radial-gradient(ellipse at 12% 8%, #ffffff30, transparent 65%), radial-gradient(ellipse at 88% 90%, #2423260a, transparent 60%);
 --charcoal-grooves: repeating-radial-gradient(circle at 108% 120%, transparent 0 14px, #c7a9ef09 14px 15px, transparent 15px 18px);
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--total-header-height) + 25px); }
body { font-family: var(--body-font); background: var(--paper); background-image: var(--paper-texture); background-size: 512px 512px; color: var(--ink); -webkit-font-smoothing: antialiased; }
::selection { background: #d4b9f0; color: var(--ink); }
h1, h2, h3, h4, h5, h6 { font-family: var(--display-font); color: var(--ink); font-weight: 500; }
h1, h2 { letter-spacing: -.025em; }
p { line-height: 1.85; }
a { color: var(--purple-dark); text-underline-offset: 4px; }
a:hover { color: var(--purple); }
img { max-width: 100%; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #9d6eda !important; outline-offset: 5px; }
.dp-shell, .container { max-width: 1320px; width: calc(100% - 112px); padding-left: 0; padding-right: 0; margin-left: auto; margin-right: auto; }
.container .container { width: 100%; }
.dp-eyebrow { font-family: var(--body-font); font-size: .63rem; line-height: 1.6; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); margin: 0 0 23px; }
.track-number { color: var(--purple); margin-right: 8px; }
.dp-section-title { font-family: var(--display-font); font-size: clamp(2.8rem, 4.4vw, 4.3rem); font-weight: 500; line-height: 1.16; letter-spacing: -.025em; color: var(--ink); text-transform: uppercase; margin: 0 0 28px; }
.dp-section-title span { color: var(--purple); }
.dp-button, .dp-button-outline, .btn { font-family: var(--body-font); display: inline-flex; align-items: center; justify-content: center; gap: 24px; padding: 16px 22px; min-height: 50px; border-radius: 0; font-size: .76rem; font-weight: 700; line-height: 1.5; text-decoration: none; border: 1px solid var(--purple); transition: background .2s, color .2s; }
.dp-button, .btn-primary { background: var(--purple); color: white; border-color: var(--purple); }
.dp-button:hover, .btn-primary:hover { background: var(--purple-dark); border-color: var(--purple-dark); color: white; transform: none; }
.dp-button span, .dp-button-outline span { font-size: 1.1rem; line-height: 1; }
.dp-button-outline { background: transparent; color: var(--purple-dark); }
.dp-button-outline:hover { background: var(--purple); color: white; }
.dp-text-link { display: inline-flex; align-items: center; gap: 22px; font-size: .79rem; font-weight: 700; color: var(--ink); border-bottom: 1px solid #9f929e; padding: 0 0 7px; text-decoration: none; }
.dp-text-link span { color: var(--purple); font-size: 1.1rem; }
.dp-text-link:hover { color: var(--purple-dark); border-color: var(--purple); }
.page main.multi-page-content { padding-top: var(--total-header-height); padding-bottom: 0; }
main > .container, main > .contact-page > .container { padding-bottom: 80px; }
main > .container.mt-5 { margin-top: 0 !important; }
.page main .dp-page-header { padding: 70px 0 52px; margin-bottom: 35px; border-bottom: 1px solid var(--line); text-align: left; }
.dp-page-header h1 { font-size: clamp(3.4rem, 6.5vw, 6.3rem); font-weight: 500; line-height: 1.12; text-transform: uppercase; max-width: 1050px; margin: 0 0 22px; color: var(--ink); }
.dp-page-header .page-header-subtitle { font-family: var(--body-font); font-size: 1.03rem; color: var(--muted); max-width: 790px; margin: 0; line-height: 1.85; }
.dp-page-header .detail-text { color: var(--muted); font-size: .84rem; margin-top: 18px; }
.dp-page-header h2 { font-size: 1.65rem; margin-top: 20px; }
.dp-page-header.has-photo { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; align-items: center; }
.page-header-photo { width: 100%; height: 350px; object-fit: cover; }
.page .card, .page .contact-info-sidebar, .page .contact-form-section, .page .contact-card, .page .contact-form-container, .page .career-card, .page .feature-card, .page .action-card, .page .benefit-card, .page .location-card {
 background: #edeae8; border: 1px solid var(--line); border-radius: 0; box-shadow: none; color: var(--ink); transform: none;
}
.page .card:hover, .page .contact-card:hover, .page .career-card:hover, .page .benefit-card:hover, .page .location-card:hover { transform: none; box-shadow: none; border-color: #aa95c2; }
.page .card-body { padding: 28px; }
.page .card-title, .page .card h3, .page .card h4 { color: var(--ink); }
.page .card-title { font-size: 1.55rem; font-weight: 500; }
.page .contact-form-section, .page .contact-info-sidebar { padding: 36px; }
.page .contact-section h4 { font-family: var(--body-font); font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--purple-dark); }
.page .form-label { font-size: .78rem; font-weight: 700; margin-bottom: 8px; color: var(--ink); }
.page .form-control, .page .form-select { border-radius: 0; border: 1px solid #aaa5ac; padding: 12px; background: var(--paper); color: var(--ink); font-size: .86rem; }
.page .form-control:focus, .page .form-select:focus { border-color: var(--purple); box-shadow: 0 0 0 3px #7042b51f; }
.page .form-control.invalid { border-color: #b4384c; }
.page .validation-message, .page .validation-errors { color: #a3273c; font-size: .8rem; }
.page .btn-secondary { background: #ded8e5; color: var(--purple-dark); border-color: #b8a5ce; }
.page .btn-secondary:hover { background: #cdc0db; color: var(--ink); }
.page .btn:disabled { opacity: .55; }
.page .modal { z-index: 1060; }
.page .modal-dialog { margin-top: max(30px, calc(var(--notification-banner-height, 0px) + 24px)); }
.page .modal-content { border-radius: 0; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 20px 70px #15121d40; }
.page .modal-header, .page .modal-footer { background: var(--concrete); border-color: var(--line); padding: 20px 25px; }
.page .modal-title { font-size: 1.75rem; color: var(--ink); }
.page .modal-body { padding: 25px; }
.page .modal-backdrop { z-index: 1050; }
.page .appointment-request-icon { background: var(--purple); color: white; width: 48px; height: 48px; right: 20px; bottom: 20px; border: 1px solid #baa1d8; box-shadow: 0 3px 14px #24232630; font-size: 1.05rem; z-index: 1035; }
.page .appointment-request-icon:hover { background: var(--purple-dark); transform: none; }
.page .map-container { border: 1px solid var(--line); border-radius: 0; }
.page .schedule-header, .page .upcoming-schedule { border-radius: 0; background: var(--concrete); padding: 20px; }
.page .table { --bs-table-bg: transparent; --bs-table-striped-bg: #ddd8e133; color: var(--ink); font-size: .82rem; }
.page .table th { color: var(--purple-dark); }
.page .insurance-item { border-bottom: 1px solid var(--line); padding: 0 0 20px; margin-bottom: 22px; }
.page .insurance-item h5 { font-size: 1.45rem; }
.page .insurance-qa-container { max-width: 100%; margin-top: 28px; }
.page .qa-item { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; margin: 0; }
.page .qa-question { width: 100%; border: 0; text-align: left; background: var(--concrete); padding: 25px; color: var(--ink); }
.page .qa-question h5 { color: var(--ink); font-family: var(--body-font); font-size: .88rem; font-weight: 700; line-height: 1.6; }
.page .qa-answer { text-align: left; background: var(--paper); padding: 0 25px; }
.page .qa-answer.show { padding: 25px; }
.page .care-guide-card { background: transparent; }
.page .care-guide-header h2, .page .recommendations-content h2 { font-family: var(--display-font); font-size: 2.2rem; color: var(--ink); }
.page .recommendations-spotlight { background: var(--concrete); border: 1px solid var(--line); border-radius: 0; }
.page .recommendations-qr { border-radius: 0; }
.page .btn-amazon { background: var(--purple); color: white; border-radius: 0; font-size: .78rem; }
.page .btn-amazon:hover { background: var(--purple-dark); color: white; transform: none; }
.page .benefits-section { background: var(--concrete); border-radius: 0; padding: 35px; }
.page .benefit-card i, .page .card-icon { color: var(--purple); }
.page .career-pay-range, .page .no-positions-message { border-radius: 0; }
.page .review, .page .modern-review { background: var(--concrete); box-shadow: none; border: 1px solid var(--line) !important; border-radius: 0 !important; padding: 30px !important; transform: none; }
.page .review-text, .page .modern-review-content p { font-size: .92rem; line-height: 1.95; }
.page .rating.text-warning { color: var(--purple) !important; }
.page .reviews-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; }
.page .review { margin-bottom: 0 !important; }
.page .info-cards-section { background: transparent; padding: 40px 0; }
.page .modern-form-section { background: var(--concrete); padding: 45px 0; }
.page .notification-banner { background: var(--purple-dark); color: white; }
/* Stationary background layers keep the grain behind type and photography. */
.page .about-page, .page .services-page, .page .patient-welcome-page, .page .media-page {
 background-image: var(--paper-texture); background-size: 512px 512px;
}
.page .home-hero, .page .home-services, .page .home-reviews,
.page .team-section, .page .patient-tools, .page .care-feature-copy,
.page .benefits-section, .page .recommendations-spotlight, .page .modern-form-section {
 background-image: var(--concrete-texture);
 background-size: 512px 512px, 100% 100%, 100% 100%;
 background-repeat: repeat, no-repeat, no-repeat;
}
/* Broad purple light pools and cropped vinyl grooves add quiet venue detail. */
.page .home-welcome {
 background-color: var(--purple-dark);
 background-image: radial-gradient(ellipse at 14% 15%, #9866d54d, transparent 60%), radial-gradient(ellipse at 92% 95%, #30113c70, transparent 65%), linear-gradient(115deg, #553087, #7042b5 48%, #593089);
}
.page .technology-feature, .page .portal-tool, .page .dp-footer {
 background-image: var(--charcoal-grooves);
 background-repeat: no-repeat;
}
[id] { scroll-margin-top: calc(var(--total-header-height) + 25px); }
@media (max-width: 1100px) { .dp-shell, .container { width: calc(100% - 72px); } }
@media (max-width: 900px) { :root { --nav-menu-height: 115px; --total-header-height: 115px; }.dp-shell, .container { width: calc(100% - 48px); } }
@media (max-width: 650px) {
 .dp-section-title { font-size: clamp(2.65rem, 9vw, 3.5rem); }.dp-eyebrow { font-size: .57rem; }
 .page main .dp-page-header { padding-top: 44px; padding-bottom: 35px; margin-bottom: 30px; }.dp-page-header h1 { font-size: clamp(3.1rem, 12vw, 4.5rem); }.dp-page-header .page-header-subtitle { font-size: .89rem; }
 .dp-page-header.has-photo { grid-template-columns: 1fr; gap: 25px; }.page-header-photo { height: 260px; }
 .page .contact-form-section, .page .contact-info-sidebar, .page .card-body { padding: 24px; }.page .reviews-container { grid-template-columns: 1fr; }
 .page .modal-body { padding: 20px; }.page .modal-footer { flex-wrap: wrap; }.page .modal-header { padding: 17px 20px; }.page .modal-dialog { margin-left: 12px; margin-right: 12px; }
 .page .appointment-request-icon { right: 14px; bottom: 14px; }.page .benefits-section { padding: 25px; }
 main > .container { padding-bottom: 55px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

.page .qa-answer.show { max-height: none; }
.career-team-photo { margin: 0 0 50px; }
.career-team-photo img { width: 100%; height: auto; aspect-ratio: 2; object-fit: cover; object-position: center 42%; }
.career-team-photo figcaption { display: flex; justify-content: space-between; gap: 20px; padding-top: 15px; font-size: .7rem; color: var(--muted); }
.career-team-photo .dp-eyebrow { margin: 0; }
@media (max-width:650px) { .career-team-photo img { aspect-ratio: 1.3; }.career-team-photo figcaption { font-size: .6rem; } }
.page .qa-question .qa-label { font-family: var(--body-font); color: var(--ink); font-size: .88rem; font-weight: 700; line-height: 1.6; }
.page .qa-answer[hidden] { display: none; }
