/*
 * MVP Dental (mvpdentalut.com, Divi 4) refresh. Loaded only while the site kit is active:
 * in a preview session (admins and holders of the preview link) until go-live, then for
 * everyone. Kody's review 2026-10-16. Theme markup is unchanged; this file restyles it.
 *
 * Rules:
 * - Never hides content outside the motion guards (sites/_shared/motion invariant). Divi's
 *   own entrance animations start elements at opacity 0, so they are switched off here and
 *   replaced by the kit's guarded motion (see config modernize.motion_selectors).
 * - Brand: gold #a98f40 on near-black #141414, Cormorant Garamond headings, Open Sans body.
 * - Gold buttons carry dark text (gold with white text is under 3:1, gold with #141414 is
 *   above 7:1, WCAG AA).
 * - Form styling only: field names, the honeypot and the form guard fields are untouched.
 */

:root {
    --mvp-gold: #a98f40;
    --mvp-gold-dark: #8a7432;
    --mvp-ink: #141414;
    --mvp-ink-2: #1f1c16;
    --mvp-cream: #faf7f0;
    --mvp-line: #e7e1d1;
    --mvp-text: #2b2925;
    --mvp-muted: #5f5a4e;
    --mvp-radius: 14px;
    --mvp-shadow: 0 1px 2px rgba(20, 20, 20, 0.06), 0 8px 24px rgba(20, 20, 20, 0.08);
    --mvp-ease: cubic-bezier(0.16, 1, 0.3, 1);
    /* The one content width: the same box as the theme header (85% of the page, measured on
       the live site at 1440, 820 and 390). Every section on every page shares this edge. */
    --mvp-wrap: 85%;
    --mvp-hero-h: max(420px, min(72vh, 56.25vw));
}
@media (max-width: 767px) {
    /* Phones: the whole 16:9 frame, uncropped; the title sits in its own band below. */
    :root {
        --mvp-hero-h: 56.25vw;
    }
}

/* ---------- 9. scroll flash: the canvas behind the page is the footer's color ----------
   Overscroll past the bottom showed the white body behind a black footer. The root
   background paints the overscroll area; the page container keeps its own white. */
html,
body {
    /* No white can show at the page edges (overscroll, short pages); sections keep their own
       backgrounds on #page-container. */
    background: #0b0b0b !important;
}
#page-container {
    background: #fff;
}

/* ---------- 10. Divi entrance animations off (they hide content at opacity 0) ---------- */
/* Divi's own entrance animations (et_animated, et-waypoint, et_pb_animation_*) ran alongside
   ours and made modules, the testimonial videos among them, flash. Only the kit's motion runs. */
html body #page-container .et_animated,
html body #page-container .et-animated,
html body #page-container .et-waypoint,
html body #page-container [class*="et_pb_animation_"] {
    opacity: 1 !important;
    animation: none !important;
    transform: none !important;
    transition-property: color, background-color, border-color, box-shadow !important;
}

/* ---------- motion: one subtle system ----------
   Read by the kit's prskRise rules: 10px rise, 600ms, ease-out, 70ms stagger. The script
   reveals elements a little before they scroll in (config.modernize.motion), once. Embedded
   media is never animated (the kit skips any match containing an iframe or video). */
:root {
    --prsk-rise-from: 10px;
    --prsk-rise-from-small: 8px;
    --prsk-rise-dur: 0.6s;
    --prsk-rise-dur-small: 0.5s;
    --prsk-rise-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
    --prsk-rise-step: 70ms;
}
@media (min-width: 981px) {
    .mvp-more-grid > li:nth-child(4n + 2) {
        --prsk-i: 1;
    }
    .mvp-more-grid > li:nth-child(4n + 3) {
        --prsk-i: 2;
    }
    .mvp-more-grid > li:nth-child(4n) {
        --prsk-i: 3;
    }
    .et_pb_row > .et_pb_column:nth-child(2) > .et_pb_blurb {
        --prsk-i: 1;
    }
    .et_pb_row > .et_pb_column:nth-child(3) > .et_pb_blurb {
        --prsk-i: 2;
    }
}

/* ---------- 1. buttons: one modern, rounded, consistent style ---------- */
html body #page-container .et_pb_section .et_pb_button,
html body #page-container .et_pb_contact_submit,
html body .prsk-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    border-radius: 999px !important;
    border: 2px solid var(--mvp-gold) !important;
    background-color: var(--mvp-gold) !important;
    color: var(--mvp-ink) !important;
    font-family: "Open Sans", system-ui, sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    text-transform: none !important;
    line-height: 1.2 !important;
    padding: 13px 26px !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
    transition: background-color 0.2s var(--mvp-ease), color 0.2s var(--mvp-ease), box-shadow 0.2s var(--mvp-ease), translate 0.2s var(--mvp-ease);
}
html body #page-container .et_pb_section .et_pb_button:hover,
html body #page-container .et_pb_contact_submit:hover,
html body .prsk-btn:hover {
    background-color: var(--mvp-gold-dark) !important;
    border-color: var(--mvp-gold-dark) !important;
    color: #fff !important;
    padding: 13px 26px !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
    translate: 0 -1px;
}
html body #page-container .et_pb_section .et_pb_button:focus-visible,
html body #page-container .et_pb_contact_submit:focus-visible,
html body .prsk-btn:focus-visible,
html body .mvp-btn:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 6px var(--mvp-ink);
}
/* Divi slides an arrow icon in on hover and shifts the padding to make room: removed. */
html body #page-container .et_pb_section .et_pb_button::after,
html body #page-container .et_pb_section .et_pb_button::before,
html body #page-container .et_pb_contact_submit::after {
    display: none !important;
}
.mvp-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    border-radius: 999px;
    padding: 12px 24px;
    font-weight: 600;
    text-decoration: none;
    border: 2px solid var(--mvp-gold);
    transition: background-color 0.2s var(--mvp-ease), color 0.2s var(--mvp-ease);
}
.mvp-btn-ghost {
    color: var(--mvp-ink);
    background: transparent;
}
.mvp-btn-ghost:hover {
    background: var(--mvp-gold);
    color: var(--mvp-ink);
}

/* ---------- 3. header phone: a clean pill with a phone icon ---------- */
/* The theme draws a 4px gold box around the phone item (.menu-item-474); the pill replaces it. */
#top-menu li.menu-telephone {
    border: 0 !important;
    background: none !important;
}
#top-menu li.menu-telephone > a {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 9px 18px !important;
    border: 1.5px solid var(--mvp-gold) !important;
    border-radius: 999px;
    color: #fff !important;
    background: rgba(169, 143, 64, 0.12);
    font-family: "Open Sans", system-ui, sans-serif;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
    transition: background-color 0.2s var(--mvp-ease), color 0.2s var(--mvp-ease);
}
#top-menu li.menu-telephone > a::before {
    content: "";
    width: 15px;
    height: 15px;
    flex: none;
    background: var(--mvp-gold);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
}
#top-menu li.menu-telephone > a:hover {
    background: var(--mvp-gold);
    color: var(--mvp-ink) !important;
}
#top-menu li.menu-telephone > a:hover::before {
    background: var(--mvp-ink);
}

/* ---------- 2. home hero: full-width video, no player controls over the title ---------- */
.home .et_pb_section_0 {
    padding: 0 !important;
    /* The theme fixed this section at 70vh over a still photo, so on a phone the photo showed
       as a second band under the shorter video. The section is now exactly the video's box. */
    height: var(--mvp-hero-h) !important;
    max-height: none !important;
    background: var(--mvp-ink) !important;
}
.home .et_pb_section_0 .et_pb_row_0,
.home .et_pb_section_0 .et_pb_column_0 {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.home .et_pb_section_0 .et_pb_code_0,
.home .et_pb_section_0 .et_pb_code_inner {
    position: relative;
    height: var(--mvp-hero-h);
    overflow: hidden;
    margin: 0 !important;
}
/* Cover the box at any aspect ratio (16:9 video). pointer-events off: the YouTube title,
   previous and pause controls only appear on hover, and they sat on top of "MVP DENTAL". */
.home .et_pb_section_0 .et_pb_code_inner iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max(100%, calc(var(--mvp-hero-h) * 16 / 9));
    height: max(100%, calc(100vw * 9 / 16));
    max-width: none !important;
    transform: translate(-50%, -50%);
    border: 0;
    pointer-events: none;
}
/* Divi's FitVids wraps the iframe in a padding-ratio box at runtime; let the iframe cover the
   hero box instead. */
.home .et_pb_section_0 .fluid-width-video-wrapper {
    position: static !important;
    padding: 0 !important;
    height: 100%;
}
.home .et_pb_section_0::after {
    /* readability scrim over the video, under the title */
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.45) 100%);
    pointer-events: none;
}
/* Title over the video. The theme pulls row_1 up by a fixed 500px (50vh on tablet), which
   only lined up with one video height; tie it to the hero height instead. Row_3 (Learn More)
   is hidden, so rows 1 and 2 together fill the hero and row_4 starts below it. */
.home .et_pb_section_1 .et_pb_row_1,
.home .et_pb_section_1 .et_pb_row_2 {
    position: relative;
    z-index: 2;
}
@media (min-width: 981px) {
    .home .et_pb_section_1 .et_pb_row_1 {
        margin-top: calc(-1 * var(--mvp-hero-h)) !important;
        padding-top: calc(var(--mvp-hero-h) / 2 - 160px) !important;
    }
    .home .et_pb_section_1 .et_pb_row_2 {
        padding-bottom: calc(var(--mvp-hero-h) / 2 - 160px) !important;
    }
}
/* Tablet and phone: the white title sat on a white page under the video. Give the title
   and the two buttons their own dark band directly under the video, buttons side by side. */
@media (max-width: 980px) {
    .home .et_pb_section_1 {
        padding-top: 0 !important;
    }
    .home .et_pb_section_1 .et_pb_row_1,
    .home .et_pb_section_1 .et_pb_row_2 {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        background: var(--mvp-ink);
    }
    .home .et_pb_section_1 .et_pb_row_1 {
        padding: 36px 20px 8px !important;
    }
    .home .et_pb_section_1 .et_pb_row_2 {
        display: flex !important;
        flex-wrap: wrap;
        justify-content: center;
        gap: 12px;
        padding: 8px 20px 40px !important;
    }
    .home .et_pb_section_1 .et_pb_row_2 > .et_pb_column {
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .home .et_pb_section_1 .et_pb_row_2 .et_pb_button_module_wrapper {
        text-align: center !important;
        margin: 0 !important;
    }
    .home .et_pb_section_1 .et_pb_text_0 h1 {
        font-size: clamp(30px, 9vw, 52px) !important;
        letter-spacing: 0.12em !important;
    }
    .home .et_pb_section_1 .et_pb_text_1,
    .home .et_pb_section_1 .et_pb_text_1 p {
        color: #fff !important;
        font-size: 17px !important;
        line-height: 1.5 !important;
    }
}
.home .et_pb_section_1 .et_pb_text_0 h1 {
    font-weight: 500;
    letter-spacing: 0.18em !important;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.home .et_pb_section_1 .et_pb_text_1 p {
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45);
}
.home .et_pb_section_1 .et_pb_row_2 .et_pb_button_1 {
    background-color: transparent !important;
    color: #fff !important;
    border-color: #fff !important;
}
.home .et_pb_section_1 .et_pb_row_2 .et_pb_button_1:hover {
    background-color: #fff !important;
    color: var(--mvp-ink) !important;
}
/* The lone "Learn More" (finance options) under the hero read as out of place: hidden in
   the refresh. Membership Plans stays in the Patient Info menu. */
.home .et_pb_section_1 .et_pb_row_3 {
    display: none !important;
}

/* ---------- 4. intro: "We believe..." and "Your Top Dentists in Farmington" ---------- */
.home .et_pb_section_1 .et_pb_row_4 {
    padding-top: 72px !important;
    padding-bottom: 8px !important;
}
.home .et_pb_section_1 .et_pb_text_2 {
    max-width: 880px;
    margin: 0 auto !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-size: clamp(22px, 2.6vw, 32px) !important;
    line-height: 1.35 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    color: var(--mvp-ink) !important;
}
.home .et_pb_section_1 .et_pb_row_5 {
    border: 0 !important;
    max-width: 920px !important;
    margin: 0 auto 64px !important;
    padding: 0 !important;
}
.home .et_pb_section_1 .et_pb_text_3 {
    border: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    background: var(--mvp-cream);
    border-radius: var(--mvp-radius);
    padding: clamp(24px, 4vw, 48px) !important;
    box-shadow: var(--mvp-shadow);
    position: relative;
    /* Divi's scroll effect slid this card sideways (the "odd animation"); it now stays put. */
    transform: none !important;
    min-height: 0 !important;
}
.home .et_pb_section_1 .et_pb_text_3::before {
    content: "";
    position: absolute;
    left: clamp(24px, 4vw, 48px);
    top: 0;
    width: 56px;
    height: 3px;
    background: var(--mvp-gold);
    border-radius: 0 0 3px 3px;
}
.home .et_pb_section_1 .et_pb_text_3 h2 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.2;
    margin-bottom: 12px;
}
.home .et_pb_section_1 .et_pb_text_3 p {
    font-size: 17px;
    line-height: 1.75;
    color: var(--mvp-text);
    max-width: 70ch;
}
.home .et_pb_section_1 .et_pb_row_6 .et_pb_image img {
    border-radius: var(--mvp-radius);
}

/* ---------- 5. video testimonials: aligned grid, equal aspect ratio ---------- */
.home .et_pb_section_2 .et_pb_row_8 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 360px));
    justify-content: center;
    gap: 32px;
}
.home .et_pb_section_2 .et_pb_row_8::after {
    display: none;
}
.home .et_pb_section_2 .et_pb_row_8 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
}
.home .et_pb_section_2 .et_pb_video {
    margin: 0 !important;
}
.home .et_pb_section_2 .et_pb_video_box {
    position: relative;
    aspect-ratio: 9 / 16;
    border-radius: var(--mvp-radius);
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    background: #000;
}
.home .et_pb_section_2 .et_pb_video_box iframe {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}
@media (max-width: 767px) {
    .home .et_pb_section_2 .et_pb_row_8 {
        grid-template-columns: minmax(0, 340px);
    }
}

/* ---------- 6. home services: cards with icons, plus "More ways we can help" ---------- */
.home .et_pb_section_3 .et_pb_row_12 {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}
.home .et_pb_section_3 .et_pb_row_12::after {
    display: none;
}
.home .et_pb_section_3 .et_pb_row_12 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--mvp-line);
    border-radius: var(--mvp-radius);
    padding: 28px 24px;
    box-shadow: var(--mvp-shadow);
    transition: box-shadow 0.25s var(--mvp-ease);
}
.home .et_pb_section_3 .et_pb_row_12 > .et_pb_column:hover {
    box-shadow: 0 2px 4px rgba(20, 20, 20, 0.08), 0 16px 32px rgba(20, 20, 20, 0.12);
}
.home .et_pb_section_3 .et_pb_row_12 > .et_pb_column > .et_pb_button_module_wrapper {
    margin-top: auto !important;
}
.home .et_pb_section_3 .et_pb_row_12 h3 {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 17px;
    letter-spacing: 0.06em;
    line-height: 1.3;
}
.home .et_pb_section_3 .et_pb_row_12 h3::before {
    content: "";
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background-color: var(--mvp-cream);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 22px;
}
.home .et_pb_section_3 .et_pb_text_7 h3::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a98f40' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.2 4.6 5 .7-3.6 3.5.9 5-4.5-2.4-4.5 2.4.9-5L4.8 8.3l5-.7z'/%3E%3C/svg%3E");
}
.home .et_pb_section_3 .et_pb_text_9 h3::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a98f40' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M7 3c-2.5 0-4 2-4 4.5 0 3 1.5 4.5 2 7.5.5 3 1 6 2.5 6s1.8-3.5 2.5-5.5c.3-.9.8-1.5 2-1.5s1.7.6 2 1.5c.7 2 1 5.5 2.5 5.5s2-3 2.5-6c.5-3 2-4.5 2-7.5C21 5 19.5 3 17 3c-2 0-3 1-5 1S9 3 7 3z'/%3E%3C/svg%3E");
}
.home .et_pb_section_3 .et_pb_text_11 h3::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a98f40' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 2l8 3v6c0 5-3.4 9.4-8 11-4.6-1.6-8-6-8-11V5z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
}
.home .et_pb_section_3 .et_pb_text_13 h3::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a98f40' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='6' y='6' width='12' height='12' rx='2'/%3E%3Cpath d='M9 2v4M15 2v4M9 18v4M15 18v4M2 9h4M2 15h4M18 9h4M18 15h4'/%3E%3C/svg%3E");
}
.home .et_pb_section_3 .et_pb_row_12 .et_pb_button {
    background-color: transparent !important;
    color: var(--mvp-ink) !important;
    padding: 10px 20px !important;
    font-size: 14px !important;
}
.home .et_pb_section_3 .et_pb_row_12 .et_pb_button:hover {
    background-color: var(--mvp-gold) !important;
    color: var(--mvp-ink) !important;
    padding: 10px 20px !important;
}
@media (max-width: 980px) {
    .home .et_pb_section_3 .et_pb_row_12 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .home .et_pb_section_3 .et_pb_row_12 {
        grid-template-columns: minmax(0, 1fr);
    }
}
.mvp-more-services {
    padding: 8px 0 72px;
    background: #fff;
}
.mvp-wrap {
    width: var(--mvp-wrap);
    max-width: none;
    margin: 0 auto;
}
.mvp-more-h {
    text-align: center;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(26px, 3vw, 34px);
    margin: 0 0 24px;
    color: var(--mvp-ink);
}
.mvp-more-grid {
    list-style: none !important;
    margin: 0;
    padding: 0 !important;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.mvp-more-grid li {
    list-style: none !important;
    margin: 0;
    padding: 0;
}
.mvp-more-grid a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--mvp-line);
    border-radius: 12px;
    color: var(--mvp-ink);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    background: #fff;
    transition: border-color 0.2s var(--mvp-ease), background-color 0.2s var(--mvp-ease);
}
.mvp-more-grid a:hover,
.mvp-more-grid a:focus-visible {
    border-color: var(--mvp-gold);
    background: var(--mvp-cream);
}
.mvp-ico {
    flex: none;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--mvp-cream);
}
.mvp-ico svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: var(--mvp-gold);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.mvp-more-all {
    text-align: center;
    margin: 28px 0 0;
}
@media (max-width: 980px) {
    .mvp-more-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 480px) {
    .mvp-more-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- 7. hours / phone / address: solid cards over the photo, readable ---------- */
.home .et_pb_section_4 .et_pb_row_13 {
    border: 0 !important;
    gap: 20px;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.home .et_pb_section_4 .et_pb_row_13::after {
    display: none;
}
.home .et_pb_section_4 .et_pb_row_13 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
    border: 0 !important;
    background: rgba(14, 14, 14, 0.9);
    border-radius: var(--mvp-radius);
    padding: 32px 24px !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}
.home .et_pb_section_4 .et_pb_blurb h4,
.home .et_pb_section_4 .et_pb_blurb h4 a {
    color: var(--mvp-gold) !important;
    letter-spacing: 0.18em;
    font-weight: 700;
}
.home .et_pb_section_4 .et_pb_blurb_description,
.home .et_pb_section_4 .et_pb_blurb_description p,
.home .et_pb_section_4 .et_pb_blurb_description a {
    color: #fff !important;
    font-size: 16px;
    line-height: 1.6;
}
@media (max-width: 980px) {
    .home .et_pb_section_4 .et_pb_row_13 {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- 8. forms: modern fields (styling only) ---------- */
html body #page-container .et_pb_contact_form .input,
html body #page-container .et_pb_contact_form input[type="text"],
html body #page-container .et_pb_contact_form input[type="email"],
html body #page-container .et_pb_contact_form input[type="tel"],
html body #page-container .et_pb_contact_form textarea {
    background: #fff !important;
    color: var(--mvp-ink) !important;
    border: 1px solid #d9d2bf !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    font-size: 16px !important;
    transition: border-color 0.2s var(--mvp-ease), box-shadow 0.2s var(--mvp-ease);
}
html body #page-container .et_pb_contact_form .input::placeholder {
    color: #6d685c !important;
}
html body #page-container .et_pb_contact_form .input:focus {
    border-color: var(--mvp-gold) !important;
    box-shadow: 0 0 0 3px rgba(169, 143, 64, 0.3);
    outline: none;
}
/* The consent block: Divi printed its placeholder field title "New Field" above the box. */
html body #page-container .et_pb_contact_form .et_pb_contact_field_options_title {
    display: none !important;
}
html body #page-container .et_pb_contact_form .et_pb_contact_field[data-type="checkbox"] {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    padding: 16px 18px !important;
}
html body #page-container .et_pb_contact_form .et_pb_contact_field[data-type="checkbox"] label,
html body #page-container .et_pb_contact_form .et_pb_contact_field_checkbox label {
    display: block;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.86) !important;
}
/* The field's own label element repeats "New Field" for screen readers only. */
html body #page-container .et_pb_contact_form .et_pb_contact_field[data-type="checkbox"] > .et_pb_contact_form_label {
    display: none !important;
}
html body #page-container .et_contact_bottom_container {
    margin-top: 8px;
}

/* ---------- 12. service pages: body text at full height, clean two-column intro ----------
   These text modules had a fixed height (about 433px) with their own scrollbar, a dark top
   border and a gold right border, so most of the copy sat in a small scroll box. Found by
   specs/customers/mvp-dental/research/scan_inner_scroll.py on 2026-10-16 (63 pages). */
.page-id-93 .et_pb_text_2,
.page-id-96 .et_pb_text_1,
.page-id-108 .et_pb_text_1,
.page-id-104 .et_pb_text_2,
.page-id-109 .et_pb_text_2,
.page-id-103 .et_pb_text_1,
.page-id-102 .et_pb_text_2,
.page-id-114 .et_pb_text_1,
.page-id-358 .et_pb_text_5,
.page-id-383 .et_pb_text_1,
.page-id-392 .et_pb_text_1,
.page-id-721 .et_pb_text_5,
.page-id-2480 .et_pb_text_1,
.page-id-2485 .et_pb_text_1,
.page-id-2490 .et_pb_text_1,
.page-id-2498 .et_pb_text_1,
.page-id-2474 .et_pb_text_1,
.page-id-2586 .et_pb_text_2,
.page-id-2596 .et_pb_text_1,
.page-id-2602 .et_pb_text_2,
.page-id-2609 .et_pb_text_2,
.page-id-2615 .et_pb_text_1,
.page-id-2623 .et_pb_text_1,
.page-id-2629 .et_pb_text_1,
.page-id-2635 .et_pb_text_2,
.page-id-2640 .et_pb_text_1,
.page-id-2650 .et_pb_text_1,
.page-id-2655 .et_pb_text_2,
.page-id-2663 .et_pb_text_2,
.page-id-2669 .et_pb_text_1,
.page-id-2675 .et_pb_text_1,
.page-id-2680 .et_pb_text_1,
.page-id-2686 .et_pb_text_2,
.page-id-2691 .et_pb_text_1,
.page-id-2706 .et_pb_text_1,
.page-id-2710 .et_pb_text_2,
.page-id-2716 .et_pb_text_2,
.page-id-2720 .et_pb_text_1,
.page-id-2726 .et_pb_text_1,
.page-id-2730 .et_pb_text_1,
.page-id-2734 .et_pb_text_2,
.page-id-2739 .et_pb_text_1,
.page-id-110 .et_pb_text_1,
.page-id-111 .et_pb_text_1,
.page-id-112 .et_pb_text_1,
.page-id-101 .et_pb_text_1,
.page-id-100 .et_pb_text_1,
.page-id-99 .et_pb_text_1,
.page-id-113 .et_pb_text_1,
.page-id-97 .et_pb_text_1,
.page-id-98 .et_pb_text_1,
.page-id-387 .et_pb_text_1,
.page-id-402 .et_pb_text_1,
.page-id-412 .et_pb_text_2,
.page-id-510 .et_pb_text_1,
.page-id-517 .et_pb_text_1,
.page-id-523 .et_pb_text_1,
.page-id-529 .et_pb_text_1,
.page-id-539 .et_pb_text_1,
.page-id-543 .et_pb_text_2,
.page-id-547 .et_pb_text_1,
.page-id-896 .et_pb_text_1,
.page-id-915 .et_pb_text_1 {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    border-top: 0 !important;
    border-right: 0 !important;
    padding: 0 !important;
    font-size: 17px !important;
    line-height: 1.75 !important;
    color: var(--mvp-text);
    max-width: 68ch;
}
.et_pb_section_0 .et_pb_row_1 .et_pb_image img,
.et_pb_section_0 .et_pb_row_2 .et_pb_image img {
    border-radius: var(--mvp-radius);
    box-shadow: var(--mvp-shadow);
}
/* /contact/ keeps its two columns: the hours box gets room inside its gold bar. */
.page-id-721 .et_pb_text_5 {
    padding-left: 24px !important;
}

/* ---------- 12b. service pages: title, image banner, call strip, one readable column ----------
   Kody 2026-10-16: the two columns read as "a wall of text" with a photo that ended halfway.
   The kit marks the row (.mvp-svc-row) and the text column (.mvp-svc-text) on the 61 service
   pages in config.modernize.prose and puts the call strip at the top of the text column. */
.mvp-svc-row {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 0;
    width: var(--mvp-wrap) !important;
    max-width: none !important;
}
.mvp-svc-row::after {
    display: none;
}
.mvp-svc-row > .et_pb_column {
    float: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    order: 1;
}
/* Text spans the banner's width (Kody 2026-10-16: a narrower column under a wide image
   looked like a bug). */
.mvp-svc-row > .mvp-svc-text {
    order: 2;
    max-width: none;
}
/* Media column: the photo becomes a banner; its old button, "or Call" line and empty video
   modules give way to the call strip. */
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_button_module_wrapper,
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_text,
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_video:not(:has(iframe)) {
    display: none !important;
}
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_image {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 28px !important;
    text-align: center;
}
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_image_wrap,
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_image a {
    display: block;
    width: 100%;
}
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_image img {
    display: block;
    width: 100% !important;
    height: auto;
    aspect-ratio: 21 / 9;
    object-fit: cover;
    border-radius: var(--mvp-radius);
    box-shadow: 0 1px 2px rgba(20, 20, 20, 0.06), 0 12px 32px rgba(20, 20, 20, 0.12);
}
/* A YouTube video in the media column: landscape at 16:9, a vertical Short kept narrow. */
.mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_video:has(iframe) {
    /* the theme fixed some of these modules at about 205px, so the video overflowed the text */
    height: auto !important;
    max-height: none !important;
    width: 100%;
    max-width: 880px;
    margin: 0 auto 28px !important;
}
.mvp-svc-short > .et_pb_column:not(.mvp-svc-text) .et_pb_video:has(iframe) {
    max-width: 340px;
}
.mvp-svc-row .et_pb_video_box {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: var(--mvp-radius);
    overflow: hidden;
    background: #111;
    box-shadow: 0 12px 32px rgba(20, 20, 20, 0.14);
}
.mvp-svc-short .et_pb_video_box {
    aspect-ratio: 9 / 16;
}
.mvp-svc-row .et_pb_video_box .fluid-width-video-wrapper {
    position: static !important;
    padding: 0 !important;
}
.mvp-svc-row .et_pb_video_box iframe {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}
/* The call strip: one line on desktop, stacked on a phone. */
.mvp-svc-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 20px;
    margin: 0 0 32px;
    font-size: 17px;
    color: var(--mvp-text);
}
.mvp-svc-cta .mvp-btn {
    margin: 0;
    background: var(--mvp-gold);
    color: var(--mvp-ink) !important;
}
.mvp-svc-cta .mvp-btn:hover {
    background: var(--mvp-gold-dark);
    border-color: var(--mvp-gold-dark);
    color: #fff !important;
}
.mvp-svc-call a {
    color: var(--mvp-ink) !important;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid var(--mvp-gold);
}
.mvp-svc-call a:hover {
    color: var(--mvp-gold-dark) !important;
}
@media (max-width: 600px) {
    .mvp-svc-cta {
        flex-direction: column;
    }
}
/* The text: no bars, no box, one column with a lead paragraph and air between paragraphs. */
.mvp-svc-text .et_pb_text {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 auto !important;
    max-width: none;
    font-size: 17px !important;
    line-height: 1.75 !important;
}
.mvp-svc-text .et_pb_text_inner,
.mvp-svc-text .et_pb_text_inner p,
.mvp-svc-text .et_pb_text_inner li {
    font-size: 17px !important;
    line-height: 1.75 !important;
    color: var(--mvp-text);
}
.mvp-svc-text .et_pb_text_inner > p {
    margin: 0 0 1.15em;
    padding: 0;
}
.mvp-svc-text .et_pb_text_inner > p:first-of-type {
    font-size: 20px !important;
    line-height: 1.6 !important;
    color: var(--mvp-ink);
}
.mvp-svc-text .et_pb_text_inner ul {
    list-style: none !important;
    margin: 0.4em 0 1.4em !important;
    padding: 0 !important;
}
.mvp-svc-text .et_pb_text_inner ul li {
    position: relative;
    margin: 0 0 10px;
    padding-left: 28px;
    line-height: 1.65;
}
.mvp-svc-text .et_pb_text_inner ul li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 0.62em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--mvp-gold);
}
.mvp-svc-text .et_pb_text_inner li > p,
.mvp-svc-text .et_pb_text_inner li > span {
    margin: 0 !important;
    padding: 0 !important;
}
.mvp-svc-text .et_pb_text_inner li strong {
    color: var(--mvp-ink);
}
@media (max-width: 980px) {
    .mvp-svc-row > .et_pb_column:not(.mvp-svc-text) .et_pb_image img {
        aspect-ratio: 16 / 9;
    }
}
/* Dental Technology: same reading column; its photo column goes above the text. */
.page-id-358 .mvp-svc-row > .et_pb_column:not(.mvp-svc-text) {
    order: 0;
}

/* ---------- 13. doctor pages: readable bio, facts card, headings, pull quote ---------- */
.page-id-784 .et_pb_text_4,
.page-id-932 .et_pb_text_4 {
    max-width: none;
    margin-left: 0 !important;
    margin-right: 0 !important;
    font-size: 17px !important;
    line-height: 1.8 !important;
    color: var(--mvp-text);
}
.mvp-bio-h {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(22px, 2.4vw, 28px);
    line-height: 1.25;
    color: var(--mvp-ink);
    margin: 36px 0 10px;
    padding: 0;
}
.mvp-bio-h:first-child {
    margin-top: 0;
}
.mvp-pull {
    margin: 32px 0;
    padding: 20px 24px;
    border-left: 4px solid var(--mvp-gold);
    background: var(--mvp-cream);
    border-radius: 0 var(--mvp-radius) var(--mvp-radius) 0;
}
.mvp-pull p {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(22px, 2.4vw, 28px);
    line-height: 1.35;
    font-style: italic;
    color: var(--mvp-ink);
    margin: 0;
    padding: 0;
}
.mvp-dr-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
    margin: 20px auto 24px;
    padding: 20px 24px;
    max-width: 640px;
    background: var(--mvp-cream);
    border: 1px solid var(--mvp-line);
    border-radius: var(--mvp-radius);
    text-align: left;
}
.mvp-dr-facts > div:last-child {
    grid-column: 1 / -1;
}
.mvp-dr-facts dt {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mvp-gold-dark);
    margin: 0 0 4px;
}
.mvp-dr-facts dd {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    color: var(--mvp-ink);
}
.page-id-784 .et_pb_section_0 h1,
.page-id-932 .et_pb_section_0 h1 {
    letter-spacing: 0.12em;
}
@media (max-width: 600px) {
    .mvp-dr-facts {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- kit pages (blog, places, FAQ) on Divi: grid and spacing ----------
   The kit's markup uses container/row/col classes that Divi does not define. */
.prsk-main .container {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 20px;
}
.prsk-main .row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -12px;
}
.prsk-main [class*="col-"] {
    padding: 0 12px;
    box-sizing: border-box;
    width: 100%;
}
@media (min-width: 768px) {
    .prsk-main .col-md-6 {
        width: 50%;
    }
    .prsk-main .col-md-10 {
        width: 83.333%;
    }
}
@media (min-width: 992px) {
    .prsk-main .col-lg-3 {
        width: 25%;
    }
    .prsk-main .col-lg-4 {
        width: 33.333%;
    }
    .prsk-main .col-lg-8 {
        width: 66.666%;
    }
}
.prsk-page .prsk-banner,
.prsk-page .prsk-hero {
    background: linear-gradient(180deg, var(--mvp-ink) 0%, var(--mvp-ink-2) 100%) !important;
    color: #fff;
    padding: clamp(56px, 8vw, 96px) 0 !important;
}
.prsk-page .prsk-banner h1,
.prsk-page .prsk-hero .prsk-headline {
    color: #fff !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
}
.prsk-page .prsk-banner .prsk-banner-eyebrow,
.prsk-page .prsk-hero .prsk-eyebrow {
    color: var(--mvp-gold) !important;
    letter-spacing: 0.2em;
}
.prsk-page .prsk-banner .prsk-banner-lede,
.prsk-page .prsk-hero .prsk-lede {
    color: rgba(255, 255, 255, 0.86) !important;
}
.prsk-main .prsk-card {
    border-radius: var(--mvp-radius);
    border: 1px solid var(--mvp-line);
    box-shadow: var(--mvp-shadow);
    overflow: hidden;
    background: #fff;
}
.prsk-main .prsk-chip {
    border-radius: 999px;
}

/* FAQ list and the blog's "Common questions" box (native <details>, no script). */
.prsk-faq-content,
.prsk-faq-teaser {
    padding: 40px 0;
}
/* The FAQ list is printed straight into <main> (no container), so it gets the shared box. */
html body.prsk-modern .prsk-main > .prsk-faq-content,
html body.prsk-modern .prsk-main > .prsk-faq-search {
    width: var(--mvp-wrap);
    margin-left: auto;
    margin-right: auto;
}
.prsk-faq-content .service-accordion,
.prsk-faq-teaser .prsk-faq-list {
    max-width: none;
    margin: 0;
    display: grid;
    gap: 10px;
}
.prsk-faq-content .qa-accordion,
.prsk-faq-teaser .qa-accordion {
    border: 1px solid var(--mvp-line);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}
.prsk-faq-content summary,
.prsk-faq-teaser summary {
    cursor: pointer;
    list-style: none;
    padding: 16px 52px 16px 20px;
    position: relative;
}
.prsk-faq-content summary::-webkit-details-marker,
.prsk-faq-teaser summary::-webkit-details-marker {
    display: none;
}
.prsk-faq-content summary::after,
.prsk-faq-teaser summary::after {
    content: "+";
    position: absolute;
    right: 20px;
    top: 50%;
    translate: 0 -50%;
    font-size: 22px;
    color: var(--mvp-gold);
}
.prsk-faq-content details[open] summary::after,
.prsk-faq-teaser details[open] summary::after {
    content: "-";
}
.prsk-faq-q {
    font-family: "Open Sans", system-ui, sans-serif !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--mvp-ink);
}
.prsk-faq-a {
    padding: 0 20px 18px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--mvp-text);
}
.prsk-faq-teaser-box {
    max-width: 880px;
    margin: 0 auto;
    padding: 28px;
    background: var(--mvp-cream);
    border-radius: var(--mvp-radius);
}
.prsk-faq-teaser-box h2 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 28px;
    margin: 0 0 16px;
}
.prsk-service-list {
    columns: 2;
    column-gap: 32px;
    padding-left: 1.2em !important;
}
@media (max-width: 600px) {
    .prsk-service-list {
        columns: 1;
    }
}

/* ---------- 15. blog cards: real photos or none, padded body, equal heights ----------
   Kody 2026-10-16: the featured graphics repeated the title in a black box, and the card text
   sat against the card edges. The kit drops those graphics (config.blog.card_*); posts without
   a photo get a title-only card. */
.prsk-listing .prsk-card-col {
    display: flex;
    margin-bottom: 28px;
}
.prsk-listing .prsk-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    padding: 0 0 22px;
}
.prsk-listing .prsk-card .prsk-card-media {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    margin: 0 0 18px;
    background: var(--mvp-cream);
}
.prsk-listing .prsk-card .prsk-card-media img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    border-radius: 0;
}
.prsk-listing .prsk-card > .prsk-card-meta,
.prsk-listing .prsk-card > .prsk-card-title,
.prsk-listing .prsk-card > .prsk-read-more {
    padding: 0 22px;
}
.prsk-listing .prsk-card > .prsk-card-meta {
    margin: 0 0 10px;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--mvp-muted);
}
.prsk-listing .prsk-card > .prsk-card-meta a {
    color: var(--mvp-gold-dark);
}
.prsk-listing .prsk-card > .prsk-card-title {
    margin: 0 0 16px;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 23px;
    line-height: 1.3;
}
.prsk-listing .prsk-card > .prsk-card-title a {
    color: var(--mvp-ink);
    text-decoration: none;
}
.prsk-listing .prsk-card > .prsk-card-title a:hover {
    color: var(--mvp-gold-dark);
}
.prsk-listing .prsk-card > .prsk-read-more {
    margin: auto 0 0;
    font-weight: 600;
}
.prsk-listing .prsk-card > .prsk-read-more a {
    color: var(--mvp-ink);
    text-decoration: none;
    border-bottom: 2px solid var(--mvp-gold);
}
/* Title-only card: a gold rule on top so it still reads as a card in the grid. */
.prsk-listing .prsk-card-text-only {
    padding-top: 26px;
    border-top: 4px solid var(--mvp-gold);
}
.prsk-listing .prsk-card-text-only > .prsk-card-title {
    font-size: 26px;
}

/* ---------- 16. Places We Serve town pages ----------
   Kody 2026-10-16: body text rendered gold (the kit's prose colour is the brand primary,
   which is gold here), headings were oversized, and the services list ran down one narrow
   column. Text is dark, links are underlined, the services are a grid of cards, and the
   page shares one container width. Layout comes from config.areas.getting_here. */
.prsk-town-strip {
    padding: 28px 0 0;
}
.prsk-town-strip .mvp-svc-cta {
    margin: 0;
}
.prsk-page .prsk-prose-section {
    padding: 40px 0 8px;
}
/* (container width: section 17) */
.prsk-page .prsk-prose,
.prsk-page .prsk-prose .prsk-prose-body {
    max-width: none;
}
.prsk-page .prsk-prose h2,
.prsk-getting-here h2,
.prsk-page .prsk-others h2 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(24px, 2.4vw, 30px);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
    color: var(--mvp-ink);
    margin: 40px 0 12px;
}
.prsk-page .prsk-prose .prsk-prose-body > h2:first-child {
    margin-top: 0;
}
.prsk-page .prsk-prose .prsk-prose-body p,
.prsk-page .prsk-prose .prsk-prose-body li {
    font-size: 17px;
    line-height: 1.75;
    letter-spacing: 0;
    color: var(--mvp-text);
}
.prsk-page .prsk-prose .prsk-prose-body p {
    margin: 0 0 1em;
}
.prsk-page .prsk-prose a {
    color: var(--mvp-ink);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--mvp-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
.prsk-page .prsk-prose a:hover {
    color: var(--mvp-gold-dark);
}
/* The services: a grid of linked cards instead of a 20-line column. */
.prsk-page .prsk-prose .prsk-service-list {
    list-style: none !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px !important;
    margin: 8px 0 8px !important;
    padding: 0 !important;
    columns: auto !important;
}
.prsk-page .prsk-prose .prsk-service-list li {
    margin: 0;
    padding: 0;
    list-style: none;
}
.prsk-page .prsk-prose .prsk-service-list li::before {
    display: none;
}
.prsk-page .prsk-prose .prsk-service-list a {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 14px 16px;
    border: 1px solid var(--mvp-line);
    border-radius: 12px;
    background: #fff;
    color: var(--mvp-ink);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
    transition: border-color 0.2s var(--mvp-ease), background-color 0.2s var(--mvp-ease);
}
.prsk-page .prsk-prose .prsk-service-list a:hover,
.prsk-page .prsk-prose .prsk-service-list a:focus-visible {
    border-color: var(--mvp-gold);
    background: var(--mvp-cream);
    color: var(--mvp-ink);
}
@media (max-width: 980px) {
    .prsk-page .prsk-prose .prsk-service-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 359px) {
    .prsk-page .prsk-prose .prsk-service-list {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* Getting here: drive facts beside the office. */
.prsk-getting-here {
    padding: 24px 0 8px;
}
.prsk-gh-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 24px;
}
.prsk-gh-col {
    padding: 24px 26px;
    border: 1px solid var(--mvp-line);
    border-radius: var(--mvp-radius);
    background: var(--mvp-cream);
}
.prsk-gh-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
}
.prsk-gh-facts dt {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mvp-muted);
    margin: 0 0 4px;
}
.prsk-gh-facts dd {
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--mvp-ink);
}
.prsk-getting-here .prsk-source {
    margin: 16px 0 0;
    font-size: 13px;
    color: var(--mvp-muted);
}
.prsk-gh-office {
    background: #fff;
}
.prsk-gh-office p {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--mvp-text);
}
.prsk-gh-office .prsk-gh-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mvp-muted);
}
.prsk-gh-office a {
    color: var(--mvp-ink);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--mvp-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
@media (max-width: 980px) {
    .prsk-gh-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 480px) {
    .prsk-gh-facts {
        grid-template-columns: minmax(0, 1fr);
    }
}
.prsk-page .prsk-others {
    padding: 16px 0 24px;
}
.prsk-page .prsk-others .prsk-town-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Phones: the kit's listing and town sections use the full width with a 16px gutter. */
@media (max-width: 600px) {
    .prsk-main .prsk-listing .container,
    .prsk-main .prsk-filters-section .container {
        width: 100% !important;
        max-width: none !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .prsk-main .prsk-listing .row {
        margin-left: 0;
        margin-right: 0;
    }
    .prsk-main .prsk-listing .prsk-card-col {
        padding-left: 0;
        padding-right: 0;
    }
}
/* Closing call to action on kit pages. */
.prsk-page .prsk-cta {
    padding: 48px 0 64px;
    text-align: center;
}
.prsk-page .prsk-cta h2 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(26px, 2.6vw, 32px);
    color: var(--mvp-ink);
    margin: 0 0 8px;
}
.prsk-page .prsk-cta p {
    margin: 0 0 18px;
    font-size: 17px;
    color: var(--mvp-text);
}

/* ---------- 17. one container, one left edge (1.1.3) ----------
   Kody 2026-10-16: "does not line up with the header". Divi rows default to 80% / 1080px and
   several pages set their own widths, so sections started at different x positions. On every
   page the stylesheet styles (body.prsk-modern), theme rows and the kit's containers use the
   header's box. Full-bleed pieces (the home video) are the only exception. */
html body.prsk-modern #page-container .et_pb_section .et_pb_row {
    width: var(--mvp-wrap) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
html body.prsk-modern.home #page-container .et_pb_section_0 .et_pb_row_0 {
    width: 100% !important;
}
@media (max-width: 980px) {
    html body.prsk-modern.home #page-container .et_pb_section_1 .et_pb_row_1,
    html body.prsk-modern.home #page-container .et_pb_section_1 .et_pb_row_2 {
        width: 100% !important;
        padding-left: 7.5% !important;
        padding-right: 7.5% !important;
    }
}
html body.prsk-modern .prsk-main .container {
    width: var(--mvp-wrap);
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
}
html body.prsk-modern .prsk-main .prsk-prose,
html body.prsk-modern .prsk-main .prsk-prose-body,
html body.prsk-modern .prsk-main .prsk-banner-text {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}
html body.prsk-modern .prsk-main .container > .row > [class*="col-"]:only-child {
    padding-left: 0;
    padding-right: 0;
}
html body.prsk-modern .prsk-main .container > .row:has(> [class*="col-"]:only-child) {
    margin-left: 0;
    margin-right: 0;
}
@media (max-width: 600px) {
    html body.prsk-modern .prsk-main .prsk-listing .container {
        width: var(--mvp-wrap) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ---------- 18. service page structure: subheadings, lead-ins, one callout ---------- */
.mvp-svc-text .prsk-prose-h {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(24px, 2.4vw, 30px) !important;
    font-weight: 600;
    line-height: 1.25;
    color: var(--mvp-ink);
    margin: 40px 0 12px;
    padding: 0;
}
.mvp-svc-text .prsk-lead {
    font-weight: 700;
    color: var(--mvp-ink);
}
.mvp-svc-text .prsk-callout {
    margin: 28px 0 32px;
    padding: 20px 24px;
    border-left: 4px solid var(--mvp-gold);
    border-radius: 0 var(--mvp-radius) var(--mvp-radius) 0;
    background: var(--mvp-cream);
}
.mvp-svc-text .prsk-callout p {
    margin: 0 !important;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(21px, 2vw, 25px) !important;
    line-height: 1.4 !important;
    font-style: italic;
    color: var(--mvp-ink) !important;
}

/* ---------- 19. Places We Serve hub ---------- */
.prsk-main .prsk-towns .prsk-town-card {
    display: flex;
    flex-direction: column;
    gap: 0 !important;
    width: 100%;
    height: auto;
    padding: 22px 22px 22px !important;
    border: 1px solid var(--mvp-line);
    border-radius: var(--mvp-radius);
    background: #fff;
    box-shadow: var(--mvp-shadow);
}
.prsk-main .prsk-towns .prsk-card-col {
    display: flex;
    margin-bottom: 24px;
}
.prsk-main .prsk-town-time {
    margin: 0 0 14px;
    line-height: 1;
    color: var(--mvp-muted);
}
.prsk-main .prsk-town-mins {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 40px;
    letter-spacing: 0;
    color: var(--mvp-ink);
}
.prsk-main .prsk-town-card .prsk-card-title {
    margin: 0 0 6px;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 24px;
}
.prsk-main .prsk-town-card .prsk-card-title a {
    color: var(--mvp-ink);
    text-decoration: none;
}
.prsk-main .prsk-town-card .prsk-card-meta {
    margin: 0 0 16px;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mvp-muted);
}
.prsk-main .prsk-town-card .prsk-read-more {
    margin: auto 0 0;
    font-weight: 600;
}
.prsk-main .prsk-town-card .prsk-read-more a {
    color: var(--mvp-ink);
    text-decoration: none;
    border-bottom: 2px solid var(--mvp-gold);
}
.prsk-main .prsk-towns {
    margin: 8px 0 16px;
}
.prsk-main .prsk-nearby {
    margin: 32px 0 0;
}
.prsk-main .prsk-nearby h2 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(24px, 2.4vw, 30px);
    color: var(--mvp-ink);
    margin: 0 0 10px;
}
.prsk-main .prsk-nearby p {
    font-size: 16px;
    color: var(--mvp-text);
}
.prsk-main .prsk-table,
.prsk-main .prsk-table td {
    font-family: "Open Sans", system-ui, sans-serif;
    font-size: 16px;
    color: var(--mvp-text);
}
.prsk-main .prsk-table tbody th {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 19px;
    color: var(--mvp-ink);
}
.prsk-main .prsk-table th,
.prsk-main .prsk-table td {
    padding: 12px 12px 12px 0;
}
.prsk-gh-single {
    grid-template-columns: minmax(0, 1fr);
    max-width: 560px;
}
.prsk-page .prsk-getting-here {
    padding: 40px 0 8px;
}
.prsk-page .prsk-getting-here h2 {
    margin-top: 0;
}
.prsk-gh-office .prsk-gh-hours {
    color: var(--mvp-text);
}
.prsk-gh-grid {
    align-items: start;
}
.prsk-town-strip .mvp-svc-cta {
    justify-content: flex-start;
}

/* ---------- 20. preview bar never covers the footer ----------
   The preview bar is fixed to the bottom of the window. Scrolled to the end, it sat on top of
   the footer's "Site Created By ... | Privacy Policy" line, which read as two overlapping
   lines of text in the footer (Kody 2026-10-16, hub page). Room for it below the footer, on
   the dark page background, only while the bar is showing. */
body:has(> .prsk-preview-banner),
body:has(.prsk-preview-banner) {
    padding-bottom: 76px !important;
}
@media (max-width: 600px) {
    body:has(.prsk-preview-banner) {
        padding-bottom: 110px !important;
    }
}
/* Phone: Divi's 50px uppercase text-module H1 with wide tracking broke "JONATHAN" mid-word
   ("JONATHA / N") on the doctor pages at 375px (1.1.4; the public site has it too). Scale it so
   the longest word fits and never break inside a word. The home hero has its own rule above. */
@media (max-width: 600px) {
    html body.prsk-modern:not(.home) #page-container .et_pb_text .et_pb_text_inner h1 {
        font-size: clamp(28px, 8.5vw, 50px) !important;
        letter-spacing: 0.08em !important;
        line-height: 1.15 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }
}
