/* ============================================================
   BUILDER OVERRIDES — Divi & Elementor
   Loaded last to override builder defaults without !important abuse
   ============================================================ */

/* ============================================================
   DIVI GLOBAL OVERRIDES
   ============================================================ */

/* Reset Divi's default font to Space Grotesk */
body #page-container,
body .et_pb_section,
body .et_pb_row,
body .et_pb_column,
body .et_pb_module {
    font-family: var(--font-primary);
}

/* Divi headings */
body .et_pb_section h1,
body .et_pb_section h2,
body .et_pb_section h3,
body .et_pb_section h4,
body .et_pb_section h5,
body .et_pb_section h6 {
    font-family: var(--font-primary);
    color: var(--color-heading);
}

/* Divi text modules */
body .et_pb_text_inner p {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-normal);
    color: var(--color-text);
}

/* Divi button overrides — map to our .btn--primary style */
body .et_pb_button,
body .et_pb_promo_button {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    background-color: var(--color-btn-primary);
    color: #fff;
    border: 2px solid var(--color-btn-primary);
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-8);
    letter-spacing: 0;
    text-transform: none;
    transition:
        background-color var(--transition-normal),
        border-color var(--transition-normal),
        box-shadow var(--transition-normal),
        transform var(--transition-fast);
}

body .et_pb_button:hover,
body .et_pb_promo_button:hover {
    background-color: var(--color-btn-primary-hover);
    border-color: var(--color-btn-primary-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Remove Divi's default button arrow animation */
body .et_pb_button::after {
    display: none;
}

/* Divi section defaults */
body .et_pb_section {
    padding-top: var(--space-20);
    padding-bottom: var(--space-20);
}

/* Divi row max width */
body .et_pb_row {
    max-width: var(--container-xl);
    width: 100%;
}

/* Divi image border-radius */
body .et_pb_image img {
    border-radius: var(--radius-md);
}

/* Divi divider colour */
body .et_pb_divider_position_top::before,
body .et_pb_divider_position_bottom::after {
    border-color: var(--color-border);
}

/* Divi menu module */
body #et-top-navigation {
    font-family: var(--font-primary);
}

body #et-top-navigation nav > ul > li > a {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-sm);
    color: var(--color-text);
}

body #et-top-navigation nav > ul > li > a:hover {
    color: var(--color-violet);
}

/* Divi dark section */
body .et_pb_section.section--dark {
    background-color: var(--color-violet);
}

body .et_pb_section.section--dark .et_pb_text_inner,
body .et_pb_section.section--dark .et_pb_text_inner p,
body .et_pb_section.section--dark h1,
body .et_pb_section.section--dark h2,
body .et_pb_section.section--dark h3,
body .et_pb_section.section--dark h4 {
    color: var(--color-cream);
}

/* Divi blurb (icon + text) module */
body .et_pb_blurb .et_pb_blurb_content {
    font-family: var(--font-primary);
}

body .et_pb_blurb_title {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-bold);
    color: var(--color-violet);
}

/* Divi testimonial module */
body .et_pb_testimonial {
    background-color: var(--color-cream);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
}

body .et_pb_testimonial_description {
    font-family: var(--font-primary);
    color: var(--color-text);
}

body .et_pb_testimonial_author {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-bold);
    color: var(--color-violet);
}

/* Divi pricing table */
body .et_pb_pricing_table {
    border-radius: var(--radius-xl);
    border: 2px solid var(--color-border);
    font-family: var(--font-primary);
}

body .et_pb_pricing_table.et_pb_featured_table {
    background-color: var(--color-violet);
    border-color: var(--color-violet);
}

body .et_pb_pricing_heading {
    font-family: var(--font-primary);
}

body .et_pb_best_value {
    background-color: var(--color-deep-amber);
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    border-radius: var(--radius-full);
    padding: var(--space-1) var(--space-4);
}

/* Divi contact form */
body .et_pb_contact_field input,
body .et_pb_contact_field textarea,
body .et_pb_contact_field select {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    background-color: #fff;
    color: var(--color-text);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

body .et_pb_contact_field input:focus,
body .et_pb_contact_field textarea:focus {
    border-color: var(--color-violet);
    box-shadow: 0 0 0 3px rgba(89, 46, 107, 0.12);
    outline: none;
}

body .et_pb_contact_form_submit {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-semibold);
    background-color: var(--color-btn-primary);
    color: #fff;
    border: 2px solid var(--color-btn-primary);
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-8);
    cursor: pointer;
    transition:
        background-color var(--transition-normal),
        transform var(--transition-fast);
}

body .et_pb_contact_form_submit:hover {
    background-color: var(--color-btn-primary-hover);
    border-color: var(--color-btn-primary-hover);
    transform: translateY(-2px);
}

/* ============================================================
   ELEMENTOR GLOBAL OVERRIDES
   ============================================================ */

/* Elementor typography */
.elementor-widget-text-editor .elementor-widget-container,
.elementor-widget-heading .elementor-widget-container {
    font-family: var(--font-primary);
}

/* Elementor heading */
.elementor-widget-heading .elementor-heading-title {
    font-family: var(--font-primary);
    color: var(--color-heading);
}

/* Elementor button */
.elementor-widget-button .elementor-button {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-semibold);
    background-color: var(--color-btn-primary);
    color: #fff;
    border: 2px solid var(--color-btn-primary);
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-8);
    font-size: var(--font-size-base);
    letter-spacing: 0;
    text-transform: none;
    transition:
        background-color var(--transition-normal),
        transform var(--transition-fast),
        box-shadow var(--transition-normal);
}

.elementor-widget-button .elementor-button:hover {
    background-color: var(--color-btn-primary-hover);
    border-color: var(--color-btn-primary-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Elementor divider */
.elementor-divider-separator {
    border-color: var(--color-border);
}

/* Elementor image */
.elementor-widget-image img {
    border-radius: var(--radius-md);
}

/* Elementor icon box */
.elementor-icon-box-title {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-bold);
    color: var(--color-violet);
}

.elementor-icon-box-description {
    font-family: var(--font-primary);
    color: var(--color-text-light);
}

/* Elementor testimonial */
.elementor-testimonial-content {
    font-family: var(--font-primary);
    color: var(--color-text);
    font-style: italic;
}

.elementor-testimonial-name {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-bold);
    color: var(--color-violet);
}

/* Elementor form */
.elementor-field-group input,
.elementor-field-group textarea,
.elementor-field-group select {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    background-color: #fff;
    color: var(--color-text);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    width: 100%;
}

.elementor-field-group input:focus,
.elementor-field-group textarea:focus {
    border-color: var(--color-violet);
    box-shadow: 0 0 0 3px rgba(89, 46, 107, 0.12);
    outline: none;
}

.elementor-button-wrapper .elementor-button {
    width: 100%;
}

/* Elementor accordion / FAQ */
.elementor-accordion-title {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-semibold);
    color: var(--color-violet);
}

.elementor-tab-content {
    font-family: var(--font-primary);
    color: var(--color-text-light);
    line-height: var(--line-height-loose);
}

/* Elementor price table */
.elementor-price-table__heading {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-bold);
    color: var(--color-violet);
}

.elementor-price-table__price {
    font-family: var(--font-primary);
    color: var(--color-violet);
}

.elementor-price-table--featured .elementor-price-table__heading,
.elementor-price-table--featured .elementor-price-table__price {
    color: var(--color-cream);
}

/* ============================================================
   RANK MATH SEO — breadcrumbs
   ============================================================ */
.rank-math-breadcrumb {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
}

.rank-math-breadcrumb a {
    color: var(--color-text-light);
    transition: color var(--transition-fast);
}

.rank-math-breadcrumb a:hover {
    color: var(--color-deep-amber);
}

/* ============================================================
   WP CORE — comments, widgets
   ============================================================ */
.comment-form input,
.comment-form textarea {
    font-family: var(--font-primary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    width: 100%;
}

.comment-form input:focus,
.comment-form textarea:focus {
    border-color: var(--color-violet);
    outline: none;
    box-shadow: 0 0 0 3px rgba(89, 46, 107, 0.12);
}

.comment-form .submit {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-semibold);
    background-color: var(--color-btn-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-8);
    cursor: pointer;
    transition: background-color var(--transition-normal);
}

.comment-form .submit:hover {
    background-color: var(--color-btn-primary-hover);
}
