/* Conservative additions: preserve the original theme and style only new SEO content. */
.gcm-seo-h1,
.gcm-seo-content h1 {
    color: #214f3a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    line-height: 1.18;
    margin: 0 0 1.1rem;
}

/* Permanent clinic brand rule: every text-rendered company name uses Book Antiqua Bold Italic. */
.elementor-element-f71c109 .elementor-heading-title,
.elementor-element-f71c109 .elementor-heading-title a,
.elementor-element-cc34016 .elementor-heading-title {
    font-family: "Book Antiqua", "Palatino Linotype", Palatino, serif !important;
    font-style: italic !important;
    font-weight: 700 !important;
}

@media (min-width: 768px) {
    .elementor-910 .elementor-element.elementor-element-f71c109 .elementor-heading-title {
        font-size: clamp(30px, 2vw, 38px) !important;
        line-height: 1.1 !important;
    }
}

/* Physically contain the original flower inside the peach banner at every screen width. */
.elementor-910 .elementor-element.elementor-element-ad5da2f {
    overflow: hidden !important;
}

.elementor-910 .elementor-element.elementor-element-6964bd2 {
    left: 24px !important;
    right: auto !important;
    text-align: left !important;
    top: 12px !important;
}

.elementor-910 .elementor-element.elementor-element-6964bd2 img {
    height: auto !important;
    max-height: 130px !important;
    object-fit: contain !important;
    width: clamp(82px, 10vw, 150px) !important;
}

/* Restore the original behavior where the homepage service artwork opens its matching page. */
.elementor-element-258299d,
.elementor-element-a9b1394,
.elementor-element-5e149a5,
.elementor-element-c6ae0e5,
.elementor-element-97e6cba,
.elementor-element-e496bab,
.elementor-element-ec69bea,
.elementor-element-e10d78e {
    position: relative !important;
}

.gcm-service-card-overlay {
    inset: 0;
    position: absolute;
    z-index: 1;
}

.gcm-service-card-overlay:focus-visible {
    outline: 3px solid #214f3a;
    outline-offset: -3px;
}

.elementor-element-258299d .elementor-widget-heading,
.elementor-element-a9b1394 .elementor-widget-heading,
.elementor-element-5e149a5 .elementor-widget-heading,
.elementor-element-c6ae0e5 .elementor-widget-heading,
.elementor-element-97e6cba .elementor-widget-heading,
.elementor-element-e496bab .elementor-widget-heading,
.elementor-element-ec69bea .elementor-widget-heading,
.elementor-element-e10d78e .elementor-widget-heading {
    position: relative;
    z-index: 2;
}

.gcm-seo-panel,
.gcm-seo-faq,
.gcm-seo-content {
    box-sizing: border-box;
    color: #2e372f;
    max-width: 100%;
}

.gcm-seo-panel {
    background: #f6f3e8;
    border-left: 5px solid #5c805d;
    margin: 1.5rem 0;
    padding: 1.15rem 1.3rem;
}

.gcm-seo-panel h2,
.gcm-seo-faq h2,
.gcm-seo-content h2 {
    color: #214f3a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    line-height: 1.25;
    margin: 0 0 .7rem;
}

.gcm-seo-content h2 {
    margin-top: 1.7rem;
}

.gcm-seo-content p,
.gcm-seo-content li,
.gcm-seo-panel p,
.gcm-seo-faq p {
    font-size: 1rem;
    line-height: 1.65;
}

.gcm-seo-button {
    background: #315f45;
    border: 1px solid #315f45;
    color: #fff !important;
    display: inline-block;
    font-weight: 700;
    margin: .3rem .35rem .3rem 0;
    padding: .7rem 1rem;
    text-decoration: none;
}

.gcm-seo-button:hover,
.gcm-seo-button:focus {
    background: #214f3a;
    color: #fff !important;
}

.gcm-seo-button-secondary {
    background: #fff;
    color: #214f3a !important;
}

.gcm-seo-phone {
    font-weight: 700;
    white-space: nowrap;
}

.gcm-seo-faq {
    margin: 2rem 0;
}

.gcm-seo-faq details,
.gcm-seo-content details {
    border-bottom: 1px solid #c9c4b5;
    padding: .8rem 0;
}

.gcm-seo-faq summary,
.gcm-seo-content summary {
    color: #214f3a;
    cursor: pointer;
    font-weight: 700;
}

.gcm-seo-source {
    background: #f4f4f4;
    border-left: 3px solid #777;
    font-size: .92rem !important;
    padding: .8rem 1rem;
}

img {
    max-width: 100%;
}

@media (max-width: 767px) {
    .elementor-910 .elementor-element.elementor-element-6964bd2 {
        left: 8px !important;
        top: 6px !important;
    }

    .elementor-910 .elementor-element.elementor-element-6964bd2 img {
        max-height: 48px !important;
        width: 48px !important;
    }

    .gcm-seo-panel,
    .gcm-seo-content {
        padding: 1rem;
    }

    .gcm-seo-button {
        display: block;
        margin-right: 0;
        text-align: center;
        width: 100%;
    }
}
