/* ============================================================
   M21 GLOBAL — DESIGN SYSTEM v1.0
   Palette: #0c1f2e (dark) · #12384a (teal) · #c9963a (gold)
            #f7f5f0 (warm bg) · #ffffff (white) · #1c2d3a (text)
   Fonts: Playfair Display (headings) · Source Sans 3 (body)
   ============================================================ */

:root {
    --m21-dark: #0c1f2e;
    --m21-teal: #12384a;
    --m21-gold: #c9963a;
    --m21-gold-hover: #b8872f;
    --m21-warm: #f7f5f0;
    --m21-white: #ffffff;
    --m21-text: #1c2d3a;
    --m21-text-light: rgba(28, 45, 58, 0.7);
    --m21-heading-font: 'Playfair Display', Georgia, serif;
    --m21-body-font: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --m21-radius: 8px;
    --m21-shadow: 0 2px 16px rgba(0, 0, 0, 0.04);
    --m21-shadow-hover: 0 10px 36px rgba(0, 0, 0, 0.08);
}

/* === BASE TYPOGRAPHY === */
body,
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p {
    font-family: var(--m21-body-font);
    color: var(--m21-text);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

/* Headings — Playfair Display */
.elementor-heading-title,
.elementor h1, .elementor h2, .elementor h3,
.elementor h4, .elementor h5, .elementor h6 {
    font-family: var(--m21-heading-font);
    color: var(--m21-text);
    line-height: 1.3;
    margin-bottom: 1.2em;
}

/* Heading scale */
h1.elementor-heading-title, .elementor-widget-heading h1 { font-size: 48px; font-weight: 700; }
h2.elementor-heading-title, .elementor-widget-heading h2 { font-size: 36px; font-weight: 700; }
h3.elementor-heading-title, .elementor-widget-heading h3 { font-size: 28px; font-weight: 600; }
h4.elementor-heading-title, .elementor-widget-heading h4 { font-size: 22px; font-weight: 600; }
h5.elementor-heading-title, .elementor-widget-heading h5 { font-size: 18px; font-weight: 600; }
h6.elementor-heading-title, .elementor-widget-heading h6 { font-size: 16px; font-weight: 600; }

/* === LINKS (content only — not header/footer/nav) === */
.elementor:not(.elementor-location-header):not(.elementor-location-footer) a:not(.elementor-button):not(.elementor-item):not(.elementor-post__thumbnail__link):not(.elementor-post__read-more) {
    color: var(--m21-gold);
    text-decoration: underline;
    text-decoration-color: rgba(201,150,58,0.4);
    text-underline-offset: 3px;
    text-decoration-thickness: 1.5px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.elementor:not(.elementor-location-header):not(.elementor-location-footer) a:not(.elementor-button):not(.elementor-item):not(.elementor-post__thumbnail__link):not(.elementor-post__read-more):hover {
    color: var(--m21-gold-hover);
    text-decoration-color: var(--m21-gold);
}
/* Ensure no underline in header/footer */
.elementor-location-header a,
.elementor-location-footer a { text-decoration: none !important; }

/* Links in custom PHP templates (outside .elementor) */
.site-main a:not([class*="btn"]):not([class*="button"]):not(nav a):not(header a):not(footer a) {
    text-decoration: underline;
    text-decoration-color: rgba(201,150,58,0.4);
    text-underline-offset: 3px;
    text-decoration-thickness: 1.5px;
    transition: text-decoration-color 0.2s ease;
}
.site-main a:not([class*="btn"]):not([class*="button"]):not(nav a):not(header a):not(footer a):hover {
    text-decoration-color: var(--m21-gold);
}

/* === BUTTONS === */
.elementor .elementor-button {
    font-family: var(--m21-body-font);
    font-weight: 600;
    letter-spacing: 0.3px;
    border-radius: var(--m21-radius);
    transition: all 0.3s ease;
}
.elementor .elementor-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

/* === ICON BOXES === */
.elementor-widget-icon-box .elementor-icon {
    color: var(--m21-gold);
    transition: transform 0.3s ease;
}
.elementor-widget-icon-box:hover .elementor-icon {
    transform: scale(1.1);
}
.elementor-widget-icon-box .elementor-icon-box-title {
    font-family: var(--m21-heading-font);
}
.elementor-widget-icon-box .elementor-icon-box-description {
    font-family: var(--m21-body-font);
    color: var(--m21-text-light);
}

/* === ICON LISTS === */
.elementor-icon-list-item .elementor-icon-list-icon i,
.elementor-icon-list-item .elementor-icon-list-icon svg {
    color: var(--m21-gold);
    fill: var(--m21-gold);
}

/* === COUNTERS === */
.elementor-widget-counter .elementor-counter-number-wrapper {
    font-family: var(--m21-heading-font);
    color: var(--m21-gold);
}
.elementor-widget-counter .elementor-counter-title {
    font-family: var(--m21-body-font);
}

/* === TESTIMONIALS === */
.elementor-widget-testimonial-carousel .elementor-testimonial__text,
.elementor-testimonial__text {
    font-family: var(--m21-body-font);
    font-style: italic;
    line-height: 1.7;
}
.elementor-widget-testimonial-carousel .elementor-testimonial__name {
    font-family: var(--m21-body-font);
    font-weight: 700;
    color: var(--m21-text);
}

/* === SECTION DIVIDERS & SPACING === */
.elementor-widget-divider .elementor-divider-separator {
    border-color: rgba(201, 150, 58, 0.3);
}

/* === IMAGE HOVER === */
.elementor-widget-image:hover img {
    transition: transform 0.4s ease;
}

/* === POSTS WIDGET === */
.elementor-posts .elementor-post__title a {
    font-family: var(--m21-heading-font);
    color: var(--m21-text);
    transition: color 0.2s ease;
}
.elementor-posts .elementor-post__title a:hover {
    color: var(--m21-gold);
}
.elementor-posts .elementor-post__excerpt {
    font-family: var(--m21-body-font);
    color: var(--m21-text-light);
}
.elementor-posts .elementor-post__read-more {
    font-family: var(--m21-body-font);
    font-weight: 600;
    color: var(--m21-gold);
}
.elementor-posts .elementor-post__read-more:hover {
    color: var(--m21-gold-hover);
}

/* === FORMS (CF7 + Elementor) === */
.elementor-form .elementor-field,
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea,
.wpcf7-form select {
    font-family: var(--m21-body-font);
    border: 1px solid rgba(28, 45, 58, 0.15);
    border-radius: var(--m21-radius);
    padding: 12px 16px;
    transition: border-color 0.2s ease;
}
.elementor-form .elementor-field:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
    border-color: var(--m21-gold);
    outline: none;
    box-shadow: 0 0 0 3px rgba(201, 150, 58, 0.1);
}
.elementor-form .elementor-button[type="submit"],
.wpcf7-form input[type="submit"] {
    font-family: var(--m21-body-font);
    font-weight: 600;
    background: var(--m21-gold);
    border: none;
    border-radius: var(--m21-radius);
    color: var(--m21-white);
    cursor: pointer;
    transition: all 0.3s ease;
}
.elementor-form .elementor-button[type="submit"]:hover,
.wpcf7-form input[type="submit"]:hover {
    background: var(--m21-gold-hover);
    transform: translateY(-2px);
}

/* === FOOTER HARMONY === */
.elementor-location-footer {
    font-family: var(--m21-body-font);
}
.elementor-location-footer h3,
.elementor-location-footer h4,
.elementor-location-footer .elementor-heading-title {
    font-family: var(--m21-heading-font);
}

/* === RESPONSIVE TYPOGRAPHY === */
@media (max-width: 1024px) {
    h1.elementor-heading-title, .elementor-widget-heading h1 { font-size: 38px; }
    h2.elementor-heading-title, .elementor-widget-heading h2 { font-size: 30px; }
    h3.elementor-heading-title, .elementor-widget-heading h3 { font-size: 24px; }
}
@media (max-width: 767px) {
    h1.elementor-heading-title, .elementor-widget-heading h1 { font-size: 30px; }
    h2.elementor-heading-title, .elementor-widget-heading h2 { font-size: 26px; }
    h3.elementor-heading-title, .elementor-widget-heading h3 { font-size: 22px; }
    h4.elementor-heading-title, .elementor-widget-heading h4 { font-size: 20px; }
}

/* ============================================================
   INTERNAL PAGES — GLOBAL STYLING v1.0
   Applies to all non-homepage pages
   ============================================================ */

/* === PAGE CONTENT AREA === */
body:not(.home) .elementor[data-elementor-type="wp-page"] {
    padding-top: 0;
}

/* === SECTION SPACING (internal pages) === */
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent {
    padding-top: 60px;
    padding-bottom: 60px;
}

/* First section (hero area) — teal gradient background */
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child {
    background: linear-gradient(135deg, var(--m21-dark) 0%, var(--m21-teal) 100%);
    padding-top: 50px;
    padding-bottom: 50px;
    position: relative;
}

/* Hero headings — white text */
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-heading-title,
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-text-editor,
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-text-editor p,
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-animated-headline,
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-headline {
    color: var(--m21-white);
}
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child .elementor-widget-text-editor p {
    color: rgba(255, 255, 255, 0.85);
}

/* Animated headline — gold highlight */
body:not(.home) .elementor-headline-dynamic-wrapper {
    color: var(--m21-gold);
}

/* === ALTERNATING SECTION BACKGROUNDS === */
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:nth-child(even) {
    background-color: var(--m21-warm);
}
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:nth-child(odd) {
    background-color: var(--m21-white);
}
/* Override: first child always teal gradient (already set above) */
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child {
    background: linear-gradient(135deg, var(--m21-dark) 0%, var(--m21-teal) 100%);
}

/* === SECTION HEADINGS — Gold accent underline === */
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:not(:first-child) .elementor-widget-heading .elementor-heading-title {
    position: relative;
    display: inline-block;
    padding-bottom: 16px;
    margin-bottom: 12px;
}
body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:not(:first-child) .elementor-widget-heading .elementor-heading-title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 3px;
    background: var(--m21-gold);
    border-radius: 2px;
}

/* Centered headings — center the underline */
body:not(.home) .elementor-widget-heading[data-widget_type="heading.default"] .elementor-widget-container[style*="text-align: center"] .elementor-heading-title::after,
body:not(.home) .elementor-widget-heading .elementor-heading-title[style*="text-align: center"]::after {
    left: 50%;
    transform: translateX(-50%);
}

/* === CONTENT TEXT — better readability === */
body:not(.home) .elementor-widget-text-editor {
    max-width: 800px;
    line-height: 1.8;
}
body:not(.home) .elementor-widget-text-editor p {
    margin-bottom: 1em;
}
body:not(.home) .elementor-widget-text-editor ul,
body:not(.home) .elementor-widget-text-editor ol {
    padding-left: 1.5em;
    margin-bottom: 1em;
}
body:not(.home) .elementor-widget-text-editor li {
    margin-bottom: 0.4em;
    line-height: 1.7;
}

/* === BUTTONS — internal pages consistent style === */
body:not(.home) .elementor-button-wrapper .elementor-button {
    padding: 14px 32px;
    font-size: 15px;
    min-width: 160px;
    text-align: center;
}

/* Primary buttons (gold) */
body:not(.home) .elementor-button.elementor-size-md,
body:not(.home) .elementor-button.elementor-size-lg {
    background-color: var(--m21-gold);
    color: var(--m21-white);
    border: none;
}
body:not(.home) .elementor-button.elementor-size-md:hover,
body:not(.home) .elementor-button.elementor-size-lg:hover {
    background-color: var(--m21-gold-hover);
}

/* === IMAGE STYLING === */
body:not(.home) .elementor-widget-image img {
    border-radius: var(--m21-radius);
    box-shadow: var(--m21-shadow);
}
body:not(.home) .elementor-widget-image:hover img {
    box-shadow: var(--m21-shadow-hover);
    transform: translateY(-2px);
    transition: all 0.4s ease;
}

/* === ALERT / NOTICE BOXES === */
body:not(.home) .elementor-widget-alert .elementor-alert {
    border-radius: var(--m21-radius);
    font-family: var(--m21-body-font);
    border: none;
    padding: 20px 24px;
}
body:not(.home) .elementor-alert-info {
    background: rgba(18, 56, 74, 0.08);
    color: var(--m21-teal);
}
body:not(.home) .elementor-alert-success {
    background: rgba(40, 167, 69, 0.08);
    color: #28A745;
}

/* === DIVIDERS === */
body:not(.home) .elementor-divider .elementor-divider-separator {
    border-color: rgba(201, 150, 58, 0.2);
}

/* === ICON BOXES (service cards) === */
body:not(.home) .elementor-widget-icon-box {
    background: var(--m21-white);
    border-radius: var(--m21-radius);
    padding: 28px 24px;
    box-shadow: var(--m21-shadow);
    transition: all 0.3s ease;
}
body:not(.home) .elementor-widget-icon-box:hover {
    box-shadow: var(--m21-shadow-hover);
    transform: translateY(-4px);
}

/* === HEADER — Override old hardcoded colors === */
[data-elementor-type="header"] a:hover {
    color: var(--m21-gold) !important;
}
a.elementor-item:focus {
    background-color: var(--m21-gold) !important;
}
.elementor-sub-item:hover,
.elementor-sub-item:focus {
    background-color: var(--m21-gold) !important;
}
li.menu-item > a.elementor-item-active,
a.elementor-sub-item.elementor-item-active {
    background-color: var(--m21-teal) !important;
}
.elementor-25871 .elementor-element.elementor-element-122868c2:not(.elementor-motion-effects-element-type-background) {
    background-color: var(--m21-teal) !important;
}

/* === RESPONSIVE — Internal pages === */
@media (max-width: 1024px) {
    body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child {
        padding-top: 36px;
        padding-bottom: 36px;
    }
}
@media (max-width: 767px) {
    body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent {
        padding-top: 32px;
        padding-bottom: 32px;
    }
    body:not(.home) .elementor[data-elementor-type="wp-page"] > .elementor-element.e-parent:first-child {
        padding-top: 28px;
        padding-bottom: 28px;
    }
    body:not(.home) .elementor-widget-text-editor {
        max-width: 100%;
    }
    body:not(.home) .elementor-button-wrapper .elementor-button {
        width: 100%;
        min-width: auto;
    }
    body:not(.home) .elementor-widget-icon-box {
        padding: 20px 16px;
    }
}

/* ═══ FOOTER DARK — ALL pages ═══ */
.elementor-location-footer {
    font-family: var(--m21-body-font) !important;
    background: var(--m21-dark) !important;
    margin-top: 0 !important;
}
.elementor-location-footer .e-con {
    background: transparent !important;
}
.elementor-location-footer h4 {
    font-family: var(--m21-heading-font) !important;
    font-size: 18px !important;
    color: #fff !important;
    margin-bottom: 16px !important;
    letter-spacing: 0.3px !important;
}
.elementor-location-footer a {
    font-family: var(--m21-body-font) !important;
    color: rgba(255,255,255,0.6) !important;
    transition: color 0.3s ease !important;
    font-size: 14px !important;
}
.elementor-location-footer a:hover {
    color: var(--m21-gold) !important;
}
.elementor-location-footer > .elementor-element:first-child {
    border-top: 1px solid rgba(201,150,58,0.15) !important;
    padding-top: 60px !important;
    padding-bottom: 40px !important;
}
.elementor-element-0f288d5,
.elementor-element-f4fa3c6,
.elementor-element-3d7108e,
.elementor-element-cec326f,
.elementor-element-ba87152 {
    opacity: 0.5 !important;
}
.elementor-element-0f288d5 a,
.elementor-element-f4fa3c6 a,
.elementor-element-3d7108e a,
.elementor-element-cec326f a,
.elementor-element-ba87152 a {
    font-size: 11px !important;
    font-style: italic !important;
    color: rgba(255,255,255,0.4) !important;
}
.elementor-location-footer img {
    opacity: 0.8;
    transition: opacity 0.3s ease;
}
.elementor-location-footer img:hover {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════
   REMAINING ELEMENTOR PAGES — Enhanced styling v2.0
   Target: Contactos (29), Orçamento (864), Finanças (17904)
   Also: Blog page (body.blog)
   ═══════════════════════════════════════════════════════ */

/* --- ELEMENTOR FORMS — Modern clean styling --- */
body.page-template-default .elementor-form {
    font-family: var(--m21-body-font) !important;
}
body.page-template-default .elementor-field-group {
    margin-bottom: 4px !important;
}
body.page-template-default .elementor-field-label {
    font-family: var(--m21-body-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--m21-dark) !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
    margin-bottom: 6px !important;
}
body.page-template-default .elementor-field-textual {
    font-family: var(--m21-body-font) !important;
    font-size: 15px !important;
    color: var(--m21-dark) !important;
    background: #fff !important;
    border: 1.5px solid rgba(14,42,53,0.15) !important;
    border-radius: 6px !important;
    padding: 12px 16px !important;
    transition: all 0.25s ease !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}
body.page-template-default .elementor-field-textual:focus {
    border-color: var(--m21-teal) !important;
    box-shadow: 0 0 0 3px rgba(18,56,74,0.1) !important;
    outline: none !important;
}
body.page-template-default .elementor-field-textual::placeholder {
    color: rgba(14,42,53,0.35) !important;
    font-style: italic !important;
}
body.page-template-default select.elementor-field-textual {
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2312384a' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    padding-right: 36px !important;
}
body.page-template-default textarea.elementor-field-textual {
    min-height: 120px !important;
    resize: vertical !important;
}
/* Form submit button */
body.page-template-default .elementor-field-type-submit .elementor-button {
    background: linear-gradient(135deg, var(--m21-gold), #d4a847) !important;
    color: #fff !important;
    font-family: var(--m21-body-font) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    letter-spacing: 0.5px !important;
    padding: 14px 40px !important;
    border-radius: 6px !important;
    border: none !important;
    transition: all 0.3s ease !important;
    text-transform: none !important;
    min-width: 200px !important;
    box-shadow: 0 4px 15px rgba(201,150,58,0.25) !important;
}
body.page-template-default .elementor-field-type-submit .elementor-button:hover {
    background: linear-gradient(135deg, #b8832e, var(--m21-gold)) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(201,150,58,0.35) !important;
}
/* Form success/error messages */
body.page-template-default .elementor-message {
    font-family: var(--m21-body-font) !important;
    border-radius: 6px !important;
    padding: 14px 20px !important;
    margin-top: 16px !important;
}
body.page-template-default .elementor-message-success {
    background: rgba(40,167,69,0.08) !important;
    color: #28A745 !important;
    border: 1px solid rgba(40,167,69,0.2) !important;
}

/* File upload fields */
body.page-template-default .elementor-field-type-upload .elementor-field {
    border: 2px dashed rgba(14,42,53,0.15) !important;
    border-radius: 6px !important;
    padding: 20px !important;
    background: rgba(247,245,240,0.5) !important;
    cursor: pointer !important;
    transition: border-color 0.2s ease !important;
}
body.page-template-default .elementor-field-type-upload .elementor-field:hover {
    border-color: var(--m21-teal) !important;
}

/* Radio & checkbox styling */
body.page-template-default .elementor-field-subgroup {
    gap: 12px !important;
}
body.page-template-default .elementor-field-option label {
    font-family: var(--m21-body-font) !important;
    font-size: 14px !important;
    color: #3a4a56 !important;
    cursor: pointer !important;
}

/* Multi-step form progress */
body.page-template-default .elementor-field-type-step {
    border: none !important;
}

/* --- ELEMENTOR TABS (Contactos page) --- */
body.page-template-default .elementor-tabs {
    border: none !important;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06) !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: #fff !important;
}
body.page-template-default .elementor-tabs-wrapper {
    background: var(--m21-dark) !important;
    border-bottom: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    padding: 0 !important;
}
body.page-template-default .elementor-tab-title {
    font-family: var(--m21-body-font) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: rgba(255,255,255,0.7) !important;
    padding: 14px 20px !important;
    border: none !important;
    background: transparent !important;
    transition: all 0.25s ease !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}
body.page-template-default .elementor-tab-title:hover {
    color: #fff !important;
    background: rgba(255,255,255,0.08) !important;
}
body.page-template-default .elementor-tab-title.elementor-active {
    color: var(--m21-gold) !important;
    background: rgba(201,150,58,0.12) !important;
    border-bottom: 2px solid var(--m21-gold) !important;
    font-weight: 600 !important;
}
body.page-template-default .elementor-tab-title a {
    color: inherit !important;
    text-decoration: none !important;
}
body.page-template-default .elementor-tab-content {
    font-family: var(--m21-body-font) !important;
    padding: 28px 24px !important;
    font-size: 15px !important;
    line-height: 1.75 !important;
    color: #3a4a56 !important;
    border: none !important;
    background: #fff !important;
}
body.page-template-default .elementor-tab-content p {
    margin-bottom: 0.8em !important;
}
body.page-template-default .elementor-tab-content a {
    color: var(--m21-teal) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(18,56,74,0.2) !important;
}
body.page-template-default .elementor-tab-content a:hover {
    color: var(--m21-gold) !important;
    border-bottom-color: var(--m21-gold) !important;
}

/* --- ICON BOXES (Contactos info cards) --- */
body.page-template-default .elementor-icon-box-wrapper {
    text-align: center !important;
}
body.page-template-default .elementor-icon-box-icon .elementor-icon {
    color: var(--m21-gold) !important;
    fill: var(--m21-gold) !important;
    font-size: 36px !important;
    margin-bottom: 12px !important;
}
body.page-template-default .elementor-icon-box-title {
    font-family: var(--m21-heading-font) !important;
    font-size: 18px !important;
    color: var(--m21-dark) !important;
    margin-bottom: 8px !important;
}
body.page-template-default .elementor-icon-box-description {
    font-family: var(--m21-body-font) !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    color: #3a4a56 !important;
}

/* --- ICON LIST (Orçamento benefits) --- */
body.page-template-default .elementor-icon-list-items {
    padding: 0 !important;
}
body.page-template-default .elementor-icon-list-item {
    padding: 8px 0 !important;
    font-family: var(--m21-body-font) !important;
}
body.page-template-default .elementor-icon-list-icon i {
    color: var(--m21-gold) !important;
    font-size: 14px !important;
}
body.page-template-default .elementor-icon-list-text {
    font-size: 15px !important;
    color: #3a4a56 !important;
    line-height: 1.6 !important;
}

/* --- COUNTERS (Contactos stats) --- */
body.page-template-default .elementor-counter {
    text-align: center !important;
}
body.page-template-default .elementor-counter-number-wrapper {
    font-family: var(--m21-heading-font) !important;
    font-size: 42px !important;
    font-weight: 700 !important;
    color: var(--m21-gold) !important;
    line-height: 1.2 !important;
}
body.page-template-default .elementor-counter-title {
    font-family: var(--m21-body-font) !important;
    font-size: 14px !important;
    color: #3a4a56 !important;
    margin-top: 8px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

/* --- TESTIMONIALS --- */
body.page-template-default .elementor-testimonial-wrapper {
    background: #fff !important;
    border-radius: 10px !important;
    padding: 28px !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
    border-left: 3px solid var(--m21-gold) !important;
}
body.page-template-default .elementor-testimonial-content {
    font-family: var(--m21-body-font) !important;
    font-size: 15px !important;
    font-style: italic !important;
    line-height: 1.7 !important;
    color: #3a4a56 !important;
}
body.page-template-default .elementor-testimonial-name {
    font-family: var(--m21-heading-font) !important;
    font-weight: 600 !important;
    color: var(--m21-dark) !important;
}
body.page-template-default .elementor-testimonial-job {
    font-family: var(--m21-body-font) !important;
    color: var(--m21-teal) !important;
    font-size: 13px !important;
}

/* --- HERO text on gradient — force white in hero --- */
body.page-template-default .elementor[data-elementor-type="wp-page"] > .e-parent:first-child .elementor-headline .elementor-headline-plain-text {
    color: #fff !important;
}
body.page-template-default .elementor[data-elementor-type="wp-page"] > .e-parent:first-child .elementor-heading-title {
    color: #fff !important;
}
body.page-template-default .elementor[data-elementor-type="wp-page"] > .e-parent:first-child .elementor-heading-title::after {
    display: none !important;
}

/* --- FINANÇAS calculator results area --- */
body.page-id-17904 #prest_result,
body.page-id-17904 #fin_result {
    font-family: var(--m21-body-font) !important;
    background: var(--m21-warm) !important;
    border-radius: 8px !important;
    padding: 20px !important;
    margin-top: 16px !important;
    border: 1px solid rgba(201,150,58,0.15) !important;
    min-height: 60px !important;
}
body.page-id-17904 #prest_result *,
body.page-id-17904 #fin_result * {
    font-family: var(--m21-body-font) !important;
}

/* --- CONTACTOS page — 2-column layout fix --- */
body.page-id-29 .elementor[data-elementor-type="wp-page"] > .e-parent:nth-child(2) {
    background: #fff !important;
}

/* ═══════════════════════════════════════════════════════
   BLOG PAGE — body.blog
   ═══════════════════════════════════════════════════════ */
body.blog {
    background: var(--m21-warm, #f7f5f0) !important;
}
body.blog main.site-main,
body.blog .page-content {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 60px 24px 80px !important;
}

/* Blog hero heading (if any) */
body.blog .page-header {
    text-align: center !important;
    margin-bottom: 48px !important;
    padding-bottom: 32px !important;
    border-bottom: 1px solid rgba(14,42,53,0.08) !important;
}
body.blog .page-header .page-title {
    font-family: var(--m21-heading-font) !important;
    font-size: 42px !important;
    color: var(--m21-dark, #0c1f2e) !important;
    margin-bottom: 8px !important;
}

/* Blog post cards */
body.blog article.post {
    background: #fff !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
    overflow: hidden !important;
    margin-bottom: 28px !important;
    transition: all 0.3s ease !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
}
body.blog article.post:hover {
    box-shadow: 0 8px 30px rgba(0,0,0,0.1) !important;
    transform: translateY(-3px) !important;
}

/* Post thumbnail */
body.blog article.post > a:first-child {
    flex: 0 0 280px !important;
    display: block !important;
    overflow: hidden !important;
}
body.blog article.post > a:first-child img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.4s ease !important;
    border-radius: 0 !important;
}
body.blog article.post:hover > a:first-child img {
    transform: scale(1.05) !important;
}

/* Post content area */
body.blog article.post .entry-title {
    font-family: var(--m21-heading-font) !important;
    font-size: 22px !important;
    line-height: 1.35 !important;
    margin: 20px 24px 12px !important;
}
body.blog article.post .entry-title a {
    color: var(--m21-dark, #0c1f2e) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}
body.blog article.post .entry-title a:hover {
    color: var(--m21-teal, #12384a) !important;
}

/* Post excerpt */
body.blog article.post .entry-content,
body.blog article.post .entry-summary,
body.blog article.post p:not(.entry-title):not(.post-meta) {
    font-family: var(--m21-body-font) !important;
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: #3a4a56 !important;
    margin: 0 24px 16px !important;
}

/* Post meta (date, category, etc.) */
body.blog article.post .post-meta,
body.blog article.post .entry-meta,
body.blog article.post time {
    font-family: var(--m21-body-font) !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: var(--m21-gold, #c9963a) !important;
    padding: 0 24px !important;
}

/* Read more link */
body.blog article.post a[class*="more"],
body.blog article.post .read-more {
    display: inline-block !important;
    font-family: var(--m21-body-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--m21-teal, #12384a) !important;
    text-decoration: none !important;
    margin: 0 24px 20px !important;
    padding: 8px 0 !important;
    border-bottom: 2px solid var(--m21-gold, #c9963a) !important;
    transition: all 0.2s ease !important;
}
body.blog article.post a[class*="more"]:hover,
body.blog article.post .read-more:hover {
    color: var(--m21-gold, #c9963a) !important;
}

/* Pagination */
body.blog .pagination,
body.blog .nav-links {
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-top: 48px !important;
    padding-top: 32px !important;
    border-top: 1px solid rgba(14,42,53,0.08) !important;
}
body.blog .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 12px !important;
    border-radius: 6px !important;
    font-family: var(--m21-body-font) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--m21-dark, #0c1f2e) !important;
    background: #fff !important;
    border: 1px solid rgba(14,42,53,0.12) !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
}
body.blog .page-numbers:hover {
    border-color: var(--m21-teal, #12384a) !important;
    color: var(--m21-teal, #12384a) !important;
}
body.blog .page-numbers.current {
    background: var(--m21-teal, #12384a) !important;
    color: #fff !important;
    border-color: var(--m21-teal, #12384a) !important;
}

/* Blog responsive */
@media (max-width: 767px) {
    body.blog main.site-main,
    body.blog .page-content {
        padding: 32px 16px 48px !important;
    }
    body.blog article.post {
        flex-direction: column !important;
    }
    body.blog article.post > a:first-child {
        flex: none !important;
        height: 200px !important;
    }
    body.blog article.post .entry-title {
        font-size: 19px !important;
        margin: 16px 16px 8px !important;
    }
    body.blog article.post .entry-content,
    body.blog article.post .entry-summary,
    body.blog article.post p:not(.entry-title):not(.post-meta) {
        margin: 0 16px 12px !important;
    }
    body.blog article.post .post-meta,
    body.blog article.post .entry-meta,
    body.blog article.post time {
        padding: 0 16px !important;
    }
    body.blog article.post a[class*="more"],
    body.blog article.post .read-more {
        margin: 0 16px 16px !important;
    }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE — Form pages
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    body.page-template-default .elementor-tabs-wrapper {
        justify-content: center !important;
    }
    body.page-template-default .elementor-tab-title {
        font-size: 12px !important;
        padding: 12px 14px !important;
    }
}
@media (max-width: 767px) {
    body.page-template-default .elementor-tabs-wrapper {
        flex-direction: column !important;
    }
    body.page-template-default .elementor-tab-title {
        text-align: left !important;
        padding: 12px 16px !important;
        border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    }
    body.page-template-default .elementor-tab-content {
        padding: 20px 16px !important;
    }
    body.page-template-default .elementor-field-type-submit .elementor-button {
        width: 100% !important;
        min-width: auto !important;
    }
    body.page-template-default .elementor-counter-number-wrapper {
        font-size: 32px !important;
    }
}

