/* Self-hosted fallback @font-face for bundled Montserrat/Mont
   (Divi loads Montserrat from Google Fonts when body_font="Montserrat";
   these serve as offline/fallback so text renders correctly on very slow
   or blocked-Google-fonts networks.) */
@font-face {
    font-family: "Montserrat";
    src: url("../fonts/Montserrat-Light-fdf5_400.ttf") format("truetype");
    font-weight: 300 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Mont";
    src: url("../fonts/Mont-Regular-3c3f_400.otf") format("opentype");
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
}

/* ============================================================
 * Green Custom Paint — brand system (v2 — audit fixes applied)
 * ============================================================ */

:root {
    /* Duda's actual palette — dark green is BRAND (#308325), teal is accent */
    /* Duda's real brand green — extracted from their --color_2 var: rgba(15,110,74,1) */
    --gcp-green: #0F6E4A;
    --gcp-green-dark: #0A4F35;
    --gcp-green-light: #1A8D62;
    --gcp-gold: #D98C00;
    --gcp-gold-dark: #B87500;
    --gcp-teal: #68CCD1;
    --gcp-teal-dark: #4FAAB0;
    --gcp-brown: #432C24;
    --gcp-brown-light: #6B4F44;
    --gcp-cream: #FCFAF6;
    --gcp-off-white: #F5F5F0;
    --gcp-text: #454545;
    --gcp-text-light: #787878;
    --gcp-text-dark: #515151;
    --gcp-border: #E5E0D6;
}

body { font-family: "Montserrat", "Mont", Helvetica, Arial, sans-serif; color: var(--gcp-text); background: var(--gcp-cream); line-height: 1.75; }
.et_pb_text_inner p, .et_pb_text p { line-height: 1.75 !important; }
/* Only set font/letter-spacing here — NOT color. Sections that need light-on-dark keep their inline color. */
h1, h2, h3, h4, h5, h6 { font-family: "Mont", "Montserrat", Helvetica, Arial, sans-serif !important; letter-spacing: 0.5px; }
p, li, span { font-family: "Montserrat", Helvetica, Arial, sans-serif; }

/* Divi default blue kill — link color everywhere */
a, .et_pb_module a, .et_pb_text_inner a { color: var(--gcp-teal); }
a:hover { color: var(--gcp-teal-dark); }
.nav-single a, .posted_in a { color: var(--gcp-teal) !important; }
/* .et_pb_more_button color rules removed 2026-07-19 — hero button now uses gcp-pill-btn via slider rule */
blockquote, .et-search-form { border-color: var(--gcp-teal) !important; }
.entry-title a { color: var(--gcp-brown) !important; }
.entry-title a:hover { color: var(--gcp-teal) !important; }

/* ---------- Header: LOGO VERTICAL CENTER (audit fix #4) ---------- */
#main-header, .et_fixed_nav #main-header { background: rgba(252,250,246,0.98) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
#main-header .container { display: flex; align-items: center; }
.logo_container { display: flex !important; align-items: center !important; justify-content: flex-start; height: 80px; padding: 0 !important; }
.et-fixed-header .logo_container { height: 60px; }
.gcp-logo-img { max-height: 60px; width: auto; vertical-align: middle; transition: max-height 0.3s ease; }
.et-fixed-header .gcp-logo-img { max-height: 45px; }
#top-menu-nav, #et-top-navigation { display: flex; align-items: center; }
#top-menu { margin-top: 0 !important; padding-top: 0 !important; }
#top-menu li a { color: var(--gcp-brown) !important; font-family: "Montserrat" !important; font-weight: 500; letter-spacing: 0.5px; font-size: 14px !important; text-transform: uppercase; padding-bottom: 5px !important; }
#top-menu li a:hover { color: var(--gcp-teal) !important; opacity: 1 !important; }
#top-menu li.current-menu-item > a { color: var(--gcp-teal) !important; }
#top-header { display: none !important; }
#et_search_icon { display: none !important; }
#et-secondary-menu { display: none !important; }

/* ---------- No sidebar ---------- */
#sidebar { display: none !important; }
#left-area { width: 100% !important; float: none !important; padding-right: 0 !important; margin: 0 auto !important; max-width: 1080px; }

/* ---------- Buttons ---------- */
.et_pb_button, a.et_pb_button {
    background-color: var(--gcp-teal) !important;
    border: 2px solid var(--gcp-teal) !important;
    color: #fff !important;
    padding: 12px 32px !important;
    font-family: "Montserrat", sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    font-size: 14px !important;
    border-radius: 3px !important;
    transition: all 0.25s ease !important;
}
.et_pb_button:after, a.et_pb_button:after { display: none !important; }
.et_pb_button:hover { background-color: var(--gcp-green-dark) !important; border-color: var(--gcp-green-dark) !important; padding: 12px 32px !important; }

/* ---------- Hero SLIDER — Duda-matching: dark GREEN brand text on FADED photo (no halo) ---------- */
.et_pb_slider, .et_pb_slider .et_pb_slide { min-height: 620px !important; position: relative !important; }

/* Hero overlay — Divi only emits its gradient CSS for slide 0, so we force a
   uniform 25% cream wash on ALL slides via ::before pseudo-element. This is the
   ONLY overlay layer now — the shortcode gradients only affect slide 0 anyway. */
.et_pb_slider .et_pb_slide::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(252, 250, 246, 0.25);
    z-index: 1;
    pointer-events: none;
}
.et_pb_slider .et_pb_slide > .et_pb_container { position: relative; z-index: 2; }
.et_pb_slider .et_pb_slide_description { position: relative; z-index: 2; }
.et_pb_slider .et_pb_slide > .et_pb_container { position: relative !important; z-index: 2 !important; }
.et_pb_slider .et_pb_slide_description { position: relative !important; z-index: 2 !important; }

/* Widen the description container so title has room to breathe */
.et_pb_slider .et_pb_slide_description { text-align: center; padding: 20px 2% 60px; max-width: 1400px !important; width: 96% !important; margin: 0 auto !important; }

/* Title: dark green, UPPERCASE, HEAVY BOLD — matches Duda hero exactly, NO text-shadow */
.et_pb_slide_title, .et_pb_slide_title a, .et_pb_slider h1.et_pb_slide_title, .et_pb_slider h2.et_pb_slide_title {
    color: var(--gcp-green) !important;
    font-family: "Helvetica Neue", Helvetica, Arial, "Montserrat", sans-serif !important;
    font-size: 84px !important;
    font-weight: 900 !important;
    letter-spacing: -1px !important;  /* Tight tracking → wide caps → matches Duda proportions */
    line-height: 1.0 !important;
    text-transform: uppercase !important;
    text-shadow: none !important;
    margin-bottom: 20px !important;
    width: 100% !important;
    max-width: none !important;
}
@media (max-width: 1200px) {
    .et_pb_slide_title { font-size: 70px !important; }
}
@media (max-width: 980px) {
    .et_pb_slide_title { font-size: 54px !important; letter-spacing: 0 !important; }
}
@media (max-width: 640px) {
    .et_pb_slide_title { font-size: 36px !important; letter-spacing: 0.5px !important; }
}

/* Subtitle: dark neutral, no text-shadow (relies on dimmed image for legibility) */
.et_pb_slide_content {
    /* Duda uses <h4> (regular weight, no letter-spacing, default heading feel) */
    color: var(--gcp-text-dark) !important;
    font-family: "Montserrat", Helvetica, Arial, sans-serif !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
    text-shadow: none !important;
    text-transform: none !important;
    max-width: 800px;
    margin: 0 auto 30px;
}
@media (max-width: 980px) {
    .et_pb_slide_content { font-size: 20px !important; }
}
@media (max-width: 640px) {
    .et_pb_slide_content { font-size: 17px !important; }
}

/* Button: dark green matching title, not teal */
.et_pb_slider .et_pb_more_button, .et_pb_slider a.et_pb_more_button.et_pb_button {
    background: var(--gcp-green) !important;
    color: #fff !important;
    border: 0 !important;
    padding: 14px 32px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    font-size: 16px !important;
    border-radius: 30px !important;
    font-family: "Montserrat", Helvetica, Arial, sans-serif !important;
}
.et_pb_slider .et_pb_more_button:hover { background: var(--gcp-green-dark) !important; border-color: var(--gcp-green-dark) !important; padding: 14px 40px !important; }

/* Slider controls */
.et_pb_slider .et-pb-slider-arrows .et-pb-arrow-prev, .et_pb_slider .et-pb-slider-arrows .et-pb-arrow-next { color: rgba(48,131,37,0.85) !important; }
.et_pb_slider .et-pb-controllers a.et-pb-active-control { background: var(--gcp-green) !important; }

/* Hero static fallback (if not slider) */
.gcp-hero { min-height: 500px; }
.gcp-hero .et_pb_text_inner h1 { color: var(--gcp-green) !important; font-size: 68px; font-weight: 700; line-height: 1.05; letter-spacing: 3px; text-transform: uppercase;  }
.gcp-hero .et_pb_text_inner h3 { color: var(--gcp-green) !important; letter-spacing: 3px; }

/* ---------- Service cards — LEGACY foreground img fallback ---------- */
.gcp-service-card { text-align: center; }
.et_pb_image.gcp-service-img { width: 100%; }
.et_pb_image.gcp-service-img .et_pb_image_wrap, .et_pb_image.gcp-service-img a { display: block; width: 100%; }
.et_pb_image.gcp-service-img img { width: 100% !important; height: 280px !important; object-fit: cover !important; border-radius: 4px; display: block; }
@media (max-width: 980px) {
    .et_pb_image.gcp-service-img img { height: 220px !important; }
}

/* ---------- Service cards — NEW bg-image column pattern ---------- */
.gcp-svc-row { margin-bottom: 30px !important; }
.gcp-svc-card {
    min-height: 380px !important;
    background-size: cover !important;
    background-position: center !important;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 4px 18px rgba(0,0,0,0.12);
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.gcp-svc-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,0.18); }
.gcp-svc-caption {
    margin-top: auto !important;
    backdrop-filter: blur(1px);
}
.gcp-svc-caption h3 { margin-top: 0 !important; margin-bottom: 12px !important; padding-top: 0 !important; text-align: center; }
.gcp-svc-caption .et_pb_text_inner > *:first-child { margin-top: 0 !important; }
.gcp-svc-caption p { margin: 0 !important; text-align: center; }
@media (max-width: 768px) {
    .gcp-svc-card { min-height: 320px !important; }
}

/* ---------- Hero banner (non-slider pages) — text overlay support ---------- */
.gcp-dark-section h1, .gcp-dark-section h2, .gcp-dark-section h3 { text-shadow: 0 2px 12px rgba(0,0,0,0.5); }
.gcp-dark-section p { text-shadow: 0 2px 8px rgba(0,0,0,0.5); }

/* ---------- Section colors — sections declaring cream/off-white bg force text color ---------- */
.et_pb_section[style*="background-color:#432C24"] h1,
.et_pb_section[style*="background-color:#432C24"] h2,
.et_pb_section[style*="background-color:#432C24"] h3,
.et_pb_section[style*="background-color:#432C24"] p { color: #fff !important; }

/* Explicit fallback: any heading inside a brown-bg section */
section.gcp-dark-section h1, section.gcp-dark-section h2, section.gcp-dark-section h3 { color: #fff !important; }
section.gcp-dark-section p { color: #E8DDD5 !important; }

/* Regular sections: brown headings */
.et_pb_section:not([style*="background-color:#432C24"]):not(.gcp-dark-section) h1,
.et_pb_section:not([style*="background-color:#432C24"]):not(.gcp-dark-section) h2 { color: var(--gcp-brown); }

/* ---------- Blog cards ---------- */
.et_pb_post { background: #fff; padding: 25px; border-radius: 6px; box-shadow: 0 2px 10px rgba(0,0,0,0.04); border: 1px solid var(--gcp-border); margin-bottom: 30px; }
.et_pb_post h2.entry-title { font-size: 24px !important; margin-bottom: 12px !important; }
.et_pb_post h2.entry-title a { color: var(--gcp-brown) !important; text-decoration: none !important; }
.et_pb_post h2.entry-title a:hover { color: var(--gcp-teal) !important; }
.et_pb_post .post-meta { color: var(--gcp-text-light); font-size: 13px; margin-bottom: 12px; }
.et_pb_post .post-meta a { color: var(--gcp-teal) !important; }
.et_pb_post .entry-featured-image-url { margin-bottom: 20px; display: block; }
.et_pb_post img { border-radius: 4px; }

/* Single post */
.single-post .et_post_meta_wrapper .entry-title { font-size: 42px !important; letter-spacing: 1px; color: var(--gcp-brown) !important; }
.single-post .et_post_meta_wrapper .post-meta { color: var(--gcp-text-light); font-size: 14px; margin-top: 15px; }
.single-post .entry-content { font-size: 17px; line-height: 1.75; }
.single-post .entry-content p { margin-bottom: 22px; }

/* ---------- Kill Divi footer (audit fix #5) ---------- */
#main-footer, #footer-bottom, #footer-widgets, #footer-info, footer#main-footer .container { display: none !important; height: 0 !important; overflow: hidden !important; }

/* ---------- Custom footer ---------- */
#gcp-footer { background: var(--gcp-brown); color: #E8DDD5; padding: 60px 5% 30px; margin-top: 60px; font-family: "Montserrat", sans-serif; }
.gcp-footer-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 60px; }
.gcp-footer-col h4 { color: var(--gcp-teal) !important; font-size: 14px !important; letter-spacing: 2px !important; text-transform: uppercase !important; margin-bottom: 20px !important; font-family: "Mont", sans-serif !important; }
.gcp-footer-col ul { list-style: none !important; padding: 0 !important; margin: 0; }
.gcp-footer-col li { margin-bottom: 10px; }
.gcp-footer-col a { color: #E8DDD5 !important; text-decoration: none; font-size: 14px; transition: color 0.2s ease; }
.gcp-footer-col a:hover { color: var(--gcp-teal) !important; }
.gcp-footer-col p { color: #E8DDD5; margin: 0 0 10px; font-size: 14px; }
.gcp-footer-logo { max-width: 200px; height: auto; margin-bottom: 20px; filter: brightness(0) invert(1); }
.gcp-footer-license { font-size: 13px; color: #C0A99C; margin-top: 15px !important; }
.gcp-footer-copyright { max-width: 1200px; margin: 40px auto 0; padding-top: 30px; border-top: 1px solid rgba(255,255,255,0.1); text-align: center; }
.gcp-footer-copyright p { color: #A69080; font-size: 13px; margin: 0; }

@media (max-width: 768px) {
    .gcp-footer-inner { grid-template-columns: 1fr; gap: 40px; text-align: center; }
    .gcp-footer-logo { margin: 0 auto 20px; }
}

/* ---------- Floating call CTA ---------- */
#gcp-call-cta {
    position: fixed; bottom: 25px; right: 25px; z-index: 999;
    background: var(--gcp-teal); color: #fff !important; padding: 14px 22px;
    border-radius: 50px; box-shadow: 0 4px 20px rgba(0,0,0,0.25);
    font-family: "Montserrat", sans-serif; font-weight: 500; font-size: 15px;
    text-decoration: none !important; letter-spacing: 0.5px;
    display: inline-flex; align-items: center; gap: 10px;
    transition: all 0.25s ease;
}
#gcp-call-cta:hover { background: var(--gcp-teal-dark); transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,0.3); }
.gcp-call-icon { font-size: 20px; line-height: 1; }
@media (max-width: 768px) {
    #gcp-call-cta { bottom: 20px; right: 20px; padding: 12px 18px; font-size: 14px; }
    .gcp-call-label { display: none; }
    .gcp-call-icon { font-size: 22px; }
}

/* ---------- Section spacing ---------- */
.et_pb_section { padding: 60px 0 !important; }
.et_pb_row { padding: 20px 0 !important; }
.et_pb_slider .et_pb_slide { padding-top: 0 !important; padding-bottom: 0 !important; }

/* ---------- Contact form ---------- */
.et_pb_contact_form_label { color: var(--gcp-brown) !important; font-family: "Montserrat" !important; font-weight: 500 !important; }
.et_pb_contact_form input, .et_pb_contact_form textarea, .et_pb_contact_form select {
    background: #fff !important; border: 1px solid var(--gcp-border) !important; border-radius: 4px !important;
    font-family: "Montserrat", sans-serif !important; padding: 12px 15px !important;
}
.et_pb_contact_form input:focus, .et_pb_contact_form textarea:focus, .et_pb_contact_form select:focus { border-color: var(--gcp-teal) !important; outline: none !important; }

/* ---------- FAQ toggles (audit fix #8 — H3 inside toggle) ---------- */
.et_pb_toggle { background: #fff !important; border: 1px solid var(--gcp-border) !important; border-radius: 4px !important; margin-bottom: 15px !important; padding: 0 !important; }
.et_pb_toggle_title { color: var(--gcp-brown) !important; font-family: "Mont", sans-serif !important; font-size: 17px !important; padding: 20px 25px !important; margin: 0 !important; }
.et_pb_toggle_content { padding: 0 25px 25px !important; color: var(--gcp-text); line-height: 1.7; }

/* ---------- Utility ---------- */
.gcp-text-teal { color: var(--gcp-teal) !important; }
.gcp-text-brown { color: var(--gcp-brown) !important; }
.gcp-bg-teal { background: var(--gcp-teal) !important; }
.gcp-bg-cream { background: var(--gcp-cream) !important; }
.gcp-italic-brown { font-style: italic; color: var(--gcp-brown); font-family: "Mont", sans-serif !important; }

/* ============================================================
 * Home rebuild 2026-07-19 — match original Duda site structure
 * Green pill buttons, 2-col services, full-width transform banner
 * ============================================================ */

/* Green pill button (replaces teal uppercase default for these CTAs) */
.gcp-pill-btn.et_pb_button,
.gcp-pill-btn a.et_pb_button {
    background: var(--gcp-green) !important;
    background-color: var(--gcp-green) !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: 30px !important;
    padding: 14px 32px !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    font-family: "Montserrat", Helvetica, Arial, sans-serif !important;
    transition: background 0.2s ease, transform 0.2s ease !important;
}
.gcp-pill-btn.et_pb_button:hover,
.gcp-pill-btn a.et_pb_button:hover {
    background: var(--gcp-green-dark) !important;
    background-color: var(--gcp-green-dark) !important;
    padding: 14px 32px !important;
    transform: translateY(-1px);
}
.gcp-pill-btn.et_pb_button:after { display: none !important; }

/* 2-col services row: image side rounded + shadow */
.gcp-2col-services .et_pb_column { display: flex; flex-direction: column; justify-content: center; }
.gcp-2col-services .et_pb_column { display: flex !important; flex-direction: column; justify-content: center; }
.gcp-side-img { display: flex; align-items: center; justify-content: center; height: 100%; }
.gcp-side-img .et_pb_image_wrap { width: 100%; height: 100%; display: block; }
.gcp-side-img img {
    border-radius: 6px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.14);
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;         /* SQUARE crop to match Duda */
    max-width: 500px;
    object-fit: cover !important;
    object-position: 55% 65%;                /* focus the swath: horizontally centered-a-tad-right, vertically on the paint bucket cluster */
    display: block;
    margin: 0 auto;
}
@media (max-width: 980px) {
    .gcp-side-img img { max-width: 400px; }
}
.gcp-section-copy h3 { font-family: "Montserrat", sans-serif !important; }
.gcp-section-copy h2 { font-family: "Montserrat", sans-serif !important; }

/* Full-width Transform Your Home banner — text overlay on image */
.gcp-transform-banner { min-height: 220px; }
.gcp-transform-banner h3 { font-family: "Montserrat", sans-serif !important; text-shadow: 0 1px 2px rgba(255,255,255,0.6); }

/* Regular section h2 default: dark green (was warm brown) */
h2 { font-family: "Montserrat", sans-serif !important; }

@media (max-width: 980px) {
    .gcp-2col-services .et_pb_column { text-align: center; }
    .gcp-section-copy h2, .gcp-section-copy h3 { text-align: center; }
    .gcp-side-img { margin-top: 30px; }
    .gcp-transform-banner { min-height: 160px; padding: 60px 5% !important; }
    .gcp-transform-banner h3 { font-size: 16px !important; letter-spacing: 2px !important; }
}


/* Divi contact form polish */
.gcp-contact-form .et_pb_contact_form_container,
.et_pb_contact_form {
    background: transparent !important;
    padding: 0 !important;
}
.gcp-contact-form .et_pb_contact_field input,
.gcp-contact-form .et_pb_contact_field textarea,
.gcp-contact-form .et_pb_contact_field select {
    background: #FFFFFF !important;
    border: 1px solid var(--gcp-border) !important;
    border-radius: 4px !important;
    padding: 12px 15px !important;
    font-size: 15px !important;
    color: var(--gcp-text) !important;
    font-family: "Montserrat", sans-serif !important;
    box-shadow: none !important;
}
.gcp-contact-form .et_pb_contact_field input:focus,
.gcp-contact-form .et_pb_contact_field textarea:focus,
.gcp-contact-form .et_pb_contact_field select:focus {
    border-color: var(--gcp-green) !important;
    outline: 2px solid rgba(15,110,74,0.15) !important;
}
.gcp-contact-form .et_pb_contact_field_options_list label {
    color: var(--gcp-text) !important;
    font-family: "Montserrat", sans-serif !important;
}
.gcp-contact-form .et_pb_contact_submit,
.gcp-contact-form button.et_pb_contact_submit {
    background: var(--gcp-green) !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: 30px !important;
    padding: 14px 32px !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    font-family: "Montserrat", sans-serif !important;
}
.gcp-contact-form .et_pb_contact_submit:hover {
    background: var(--gcp-green-dark) !important;
}
.gcp-contact-form .et_pb_contact_submit:after { display: none !important; }


/* Testimonial section polish */
.gcp-testimonial-block { max-width: 900px; margin: 0 auto; padding: 0 20px; }
.gcp-testimonial-block > p:first-child {
    text-align: center; margin-bottom: 20px;
}
.gcp-testimonial-block > p:nth-child(2) {
    position: relative; padding: 0 40px;
}
.gcp-testimonial-block > p:nth-child(2)::before {
    content: "\"";
    position: absolute; left: 0; top: -10px;
    font-family: Georgia, serif; font-size: 60px; line-height: 1;
    color: var(--gcp-gold); opacity: 0.4;
}

/* Header nav polish: subtle underline on hover */
#top-menu li a { transition: color 0.2s ease !important; padding-bottom: 4px !important; }
#top-menu li.current-menu-item a,
#top-menu li.current_page_item a { color: var(--gcp-green) !important; }

/* Section rhythm: consistent max-width for text-heavy sections */
.et_pb_section .et_pb_row { max-width: 1200px; }

/* Buttons in body sections that arent explicit pill get subtle rounding */
.et_pb_section:not(.gcp-hero-slider) .et_pb_button:not(.gcp-pill-btn) {
    border-radius: 6px !important;
}

/* Divi contact form field spacing tune */
.gcp-contact-form .et_pb_contact_field { margin-bottom: 18px !important; }
.gcp-contact-form p.clearfix { margin-top: 10px !important; }

/* Better placeholder color across inputs */
.gcp-contact-form input::placeholder,
.gcp-contact-form textarea::placeholder { color: #999 !important; opacity: 1; }


/* About page team section polish */
.et_pb_row:has(> .et_pb_column .et_pb_text_inner img[src*="susan-green"]),
.et_pb_row:has(> .et_pb_column .et_pb_text_inner > div[style*="border-radius:50%"]) {
    max-width: 900px; margin-left: auto; margin-right: auto;
}
.et_pb_column .et_pb_text_inner img[style*="border-radius:50%"],
.et_pb_column .et_pb_text_inner > div[style*="border-radius:50%"] {
    box-shadow: 0 8px 24px rgba(0,0,0,0.12) !important;
    transition: transform 0.3s ease;
}
.et_pb_column .et_pb_text_inner img[style*="border-radius:50%"]:hover,
.et_pb_column .et_pb_text_inner > div[style*="border-radius:50%"]:hover {
    transform: scale(1.03);
}

/* Section rhythm: consistent bottom margin on paragraphs after headings */
.et_pb_text_inner h2 + p { margin-top: 20px !important; }
.et_pb_text_inner h3 + h2 { margin-top: 10px !important; }

/* Body max-width for readability on wide screens */
.et_pb_text_inner p { max-width: 820px; }
.et_pb_text_inner[style*="text-align:center"] p,
.et_pb_text[data-text-orientation="center"] p { margin-left: auto; margin-right: auto; }

/* Hero title: tune letter-spacing slightly less aggressive at desktop */
.et_pb_slide_title { letter-spacing: -0.5px !important; }
@media (min-width: 1201px) {
    .et_pb_slide_title { font-size: 76px !important; }
}

/* Transform banner: pad more for hero-like presence */
.gcp-transform-banner { min-height: 280px !important; }
.gcp-transform-banner h3 { max-width: 900px; margin: 0 auto !important; }

/* Fixed header shrink transition should be smoother */
#main-header, .et-fixed-header #main-header {
    transition: padding 0.3s ease, background 0.3s ease, box-shadow 0.3s ease !important;
}
.et-fixed-header #main-header { box-shadow: 0 4px 16px rgba(0,0,0,0.08) !important; }

/* Menu item spacing */
#top-menu { margin-left: auto !important; }
#top-menu li { padding-right: 22px !important; margin-left: 0 !important; }
#et-top-navigation { padding-left: 40px !important; }  /* space between logo and nav */
.logo_container { margin-right: 30px !important; }     /* extra buffer next to logo */
@media (max-width: 1200px) {
    #top-menu li { padding-right: 16px !important; }
    #et-top-navigation { padding-left: 20px !important; }
}
#top-menu li:last-child { padding-right: 0 !important; }

/* Footer social icons: cleaner white circles */
.et_pb_social_media_follow_network_facebook,
.et_pb_social_media_follow_network_instagram {
    background: #ffffff !important; border-radius: 50% !important;
    transition: transform 0.2s ease, background 0.2s ease;
}
.et_pb_social_media_follow_network_facebook a,
.et_pb_social_media_follow_network_instagram a { color: #000 !important; }
.et_pb_social_media_follow_network_facebook:hover,
.et_pb_social_media_follow_network_instagram:hover {
    background: var(--gcp-gold) !important; transform: translateY(-2px);
}
.et_pb_social_media_follow_network_facebook:hover a,
.et_pb_social_media_follow_network_instagram:hover a { color: #ffffff !important; }

/* ==============================================================
 * Fixed-header polish + search icon hiding
 * ============================================================== */

/* Fixed header: SHRINK the logo, do not hide it — Divi default sets opacity:0
   Use body-prefixed higher specificity so we beat Divis dynamic CSS reliably. */
body #main-header.et-fixed-header .logo_container,
body #main-header.et-fixed-header .centered-inline-logo-wrap,
.et-fixed-header#main-header .logo_container,
.et-fixed-header#main-header .centered-inline-logo-wrap,
.et-fixed-header .logo_container,
.et-fixed-header .centered-inline-logo-wrap {
    height: 60px !important;
    opacity: 1 !important;
    padding: 0 !important;
    visibility: visible !important;
    transform: none !important;
}
body #main-header.et-fixed-header .gcp-logo-img,
.et-fixed-header .gcp-logo-img { max-height: 45px !important; display: inline-block !important; }
.et-fixed-header #main-header,
.et-fixed-header { padding-top: 10px !important; padding-bottom: 10px !important; }

/* Hide Divi search icon (site has no search feature) */
#et_search_icon,
#et_top_search,
.et_search_form_container,
.et-search-form,
.et_close_search_field { display: none !important; }
#et-top-navigation { padding-right: 0 !important; }

/* Slider pagination dots: dark green active state (defensive) */
.et_pb_slider .et-pb-controllers a { background-color: rgba(255,255,255,0.5) !important; }
.et_pb_slider .et-pb-controllers a.et-pb-active-control,
.et_pb_slider .et-pb-controllers .et-pb-active-control { background: var(--gcp-green) !important; opacity: 1 !important; }
.et_pb_slider .et-pb-slider-arrows a { color: var(--gcp-green) !important; opacity: 0.9; }

/* Override Divi global heading reset {line-height:1em; padding-bottom:10px}
   Those make headings feel too dense. Duda uses looser line-height + no forced padding. */
h1, h2, h3, h4, h5, h6 {
    line-height: 1.2 !important;
    padding-bottom: 0 !important;
}
h1 { line-height: 1.05 !important; }
h2 { line-height: 1.15 !important; }
h3 { line-height: 1.25 !important; }

/* Kill Divi default text-shadow on slide description (was blurring subtitle) */
.et_pb_slider .et_pb_slide_description { text-shadow: none !important; }

/* ==========================================================
 * Service card CONSISTENCY — same image area + same caption
 * height on every card, solid brown caption for legibility.
 * ========================================================== */
.gcp-svc-row { display: flex !important; }
.gcp-svc-row > .et_pb_column { display: flex !important; }
.gcp-svc-card {
    min-height: 420px !important;
    height: 420px !important;
    background-size: cover !important;
    background-position: center !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-shadow: 0 6px 22px rgba(0,0,0,0.14) !important;
}
.gcp-svc-caption {
    background-color: var(--gcp-brown) !important;
    background: var(--gcp-brown) !important;
    padding: 10px 22px 12px !important;
    margin: 0 !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    backdrop-filter: none !important;
}
.gcp-svc-caption h3 {
    color: var(--gcp-teal) !important;
    margin: 0 0 3px !important;
    padding: 0 !important;
    font-size: 17px !important;
    letter-spacing: 1.5px !important;
    line-height: 1.15 !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
}
.gcp-svc-caption p {
    color: #FFF8ED !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    max-width: 100% !important;
}
@media (max-width: 980px) {
    .gcp-svc-card { min-height: 300px !important; height: 300px !important; }
    .gcp-svc-caption { min-height: 0 !important; padding: 16px 18px 18px !important; }
}

/* Footer icon: give it a clean centered treatment now that we use icon.png (just the G-mark) */
.et-l--footer .et_pb_image img[src*="icon.png"] {
    width: 120px !important;
    height: auto !important;
    max-width: 140px;
}

/* Footer h4 (OVERVIEW / CONTACT): ensure gold color + weight/tracking consistency */
.et-l--footer h4 {
    color: var(--gcp-gold) !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    margin-bottom: 20px !important;
}

/* Footer link contrast — brighter white/cream on black */
/* Every anchor in the footer → white. Broad rule beats the global inline a{color:green}.
   Previously only ul li a + tel: + mailto: were caught which missed items nested in <p>. */
.et-l--footer a,
.et-l--footer a:visited,
.et-l--footer p a,
.et-l--footer h4 a,
.et-l--footer div a { color: #FFFFFF !important; text-decoration: none !important; }
.et-l--footer a:hover,
.et-l--footer p a:hover,
.et-l--footer div a:hover { color: var(--gcp-gold) !important; }

/* Every text element in the footer → white (was dim cream/brown-gray) — Duda uses white on black */
.et-l--footer,
.et-l--footer p,
.et-l--footer .et_pb_text_inner p,
.et-l--footer .et_pb_text_inner strong,
.et-l--footer .et_pb_text_inner span { color: #FFFFFF !important; }

/* Section h4 headings stay gold (matches section eyebrows across site) */
.et-l--footer h4 { color: var(--gcp-gold) !important; }

/* License / copyright: slightly muted (75% white) for hierarchy without losing contrast */
.et-l--footer .gcp-footer-license,
.et-l--footer p[style*="C0A99C"],
.et-l--footer p[style*="A69080"],
.et-l--footer p[style*="B8A99C"] { color: rgba(255,255,255,0.75) !important; }

/* Copyright + license text: cleaner cream (was muted brown-gray) */
.et-l--footer .et_pb_text_inner p[style*="A69080"],
.et-l--footer .et_pb_text_inner p[style*="B8A99C"] { color: #B8A99C !important; }

/* ==========================================================
 * Header spacing — override Divis float layout with a proper
 * gap between logo and nav. Multiple techniques stacked because
 * Divis default #et-top-navigation{float:right} + #top-menu{float:left}
 * ignores simple margin/padding on the outer container.
 * ========================================================== */
body #main-header .container.clearfix.et_menu_container,
body #main-header .container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}
body #main-header .logo_container {
    min-width: 240px !important;
    flex-shrink: 0 !important;
    margin-right: 40px !important;
    float: none !important;
}
body #main-header #et-top-navigation {
    float: none !important;
    padding-left: 60px !important;
    margin-left: auto !important;
}
body #main-header #top-menu {
    float: none !important;
    display: flex !important;
    align-items: center !important;
}
body #main-header #top-menu > li:first-child { margin-left: 40px !important; }

@media (max-width: 1200px) {
    body #main-header .logo_container { min-width: 200px !important; margin-right: 20px !important; }
    body #main-header #et-top-navigation { padding-left: 30px !important; }
    body #main-header #top-menu > li:first-child { margin-left: 20px !important; }
    body #main-header #top-menu li { padding-right: 14px !important; }
}

/* ============================================================
 * Service card v3: image on top (uncropped, full picture) +
 * caption below. All 4 cards equal height via flex row.
 * ============================================================ */
.gcp-svc-row { display: flex !important; align-items: stretch !important; }
.gcp-svc-row > .et_pb_column.gcp-svc-card {
    display: flex !important;
    flex-direction: column !important;
    background-image: none !important;   /* remove old column background */
    background: #F5F5F0 !important;      /* subtle off-white so any letterbox blends */
    border-radius: 6px !important;
    overflow: hidden !important;
    padding: 0 !important;
    box-shadow: 0 6px 22px rgba(0,0,0,0.14) !important;
    min-height: 420px !important;         /* consistent card height */
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.gcp-svc-row > .et_pb_column.gcp-svc-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.18) !important;
}
.gcp-svc-img {
    flex: 1 1 auto !important;            /* image takes remaining space */
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden;
    background: #F5F5F0;                  /* letterbox fill if aspect differs */
}
.gcp-svc-img .et_pb_image_wrap,
.gcp-svc-img a { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.gcp-svc-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;        /* fill full width/height, crop as needed, no stretch */
    object-position: center !important;
    display: block;
    max-width: none !important;
    max-height: none !important;
}
.gcp-svc-caption {
    flex: 0 0 auto !important;            /* caption is fixed size */
    background: var(--gcp-brown) !important;
    background-color: var(--gcp-brown) !important;
    padding: 14px 22px 16px !important;
    margin: 0 !important;
    min-height: 0 !important;
    text-align: center !important;
}
.gcp-svc-caption h3 {
    color: var(--gcp-teal) !important;
    margin: 0 0 3px !important;
    font-size: 17px !important;
    letter-spacing: 1.5px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
}
.gcp-svc-caption p {
    color: #FFF8ED !important;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}
@media (max-width: 980px) {
    .gcp-svc-row { flex-direction: column; }
    .gcp-svc-row > .et_pb_column.gcp-svc-card { min-height: 340px !important; margin-bottom: 20px !important; }
}

/* NUCLEAR footer text — anything inside footer that could inherit green from global a{color:green}
   Broad selectors + high specificity to override ALL green leaks. */
body .et-l--footer,
body .et-l--footer *,
body .et-l--footer p,
body .et-l--footer span,
body .et-l--footer li,
body .et-l--footer strong,
body .et-l--footer em { color: #FFFFFF !important; }
body .et-l--footer a,
body .et-l--footer a:link,
body .et-l--footer a:visited,
body .et-l--footer a:active { color: #FFFFFF !important; text-decoration: none !important; }
body .et-l--footer a:hover,
body .et-l--footer a:focus { color: var(--gcp-gold) !important; }
body .et-l--footer h1,
body .et-l--footer h2,
body .et-l--footer h3,
body .et-l--footer h4,
body .et-l--footer h5,
body .et-l--footer h6 { color: var(--gcp-gold) !important; }
/* license/copyright — slightly muted so eye lands on primary content first, but still legible */
body .et-l--footer .gcp-footer-license,
body .et-l--footer p[style*="C0A99C"],
body .et-l--footer p[style*="A69080"],
body .et-l--footer p[style*="B8A99C"],
body .et-l--footer .gcp-footer-copyright p { color: rgba(255,255,255,0.75) !important; }

/* FAQ toggle icons: add right padding so icon does not butt against the title text */
.et_pb_toggle_title { padding-right: 50px !important; position: relative !important; }
.et_pb_toggle_title:before {
    right: 12px !important;   /* pull icon further from the right edge of the title */
    padding-right: 0 !important;
}


/* ============================================================
 * Phone number in the primary nav (Duda parity)
 * Menu item has class .gcp-menu-phone (li) + tel: link inside.
 * ============================================================ */
#top-menu li.gcp-menu-phone {
    margin-left: 20px !important;
    padding: 0 !important;
}
#top-menu li.gcp-menu-phone a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 20px !important;
    background: var(--gcp-gold, #D98C00) !important;
    color: #FFFFFF !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    font-size: 15px !important;
    text-transform: none !important;
    line-height: 1 !important;
    transition: background 0.2s ease, transform 0.15s ease !important;
    opacity: 1 !important;
}
#top-menu li.gcp-menu-phone a::before {
    content: "\260E"; /* ☎ */
    font-size: 15px;
    line-height: 1;
    display: inline-block;
}
#top-menu li.gcp-menu-phone a:hover {
    background: #b87500 !important;
    color: #FFFFFF !important;
    transform: translateY(-1px);
}
/* remove Divi's default nav item spacing/underline artifacts */
#top-menu li.gcp-menu-phone a::after,
#top-menu li.gcp-menu-phone > a > .menu-item-link { display: none !important; }

/* Mobile: keep it visible but sized down */
@media (max-width: 980px) {
    #top-menu li.gcp-menu-phone a { padding: 8px 14px !important; font-size: 14px !important; }
}
@media (max-width: 480px) {
    #top-menu li.gcp-menu-phone a { padding: 7px 12px !important; font-size: 13px !important; }
}

/* ============================================================
 * Vertically center everything in the primary nav — replaces
 * Divi's default padding-top:33px trick (which only centers
 * plain text links, throws off the phone pill).
 * ============================================================ */
body #main-header #et-top-navigation {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    height: 80px !important;
    display: flex !important;
    align-items: center !important;
}
body #main-header.et-fixed-header #et-top-navigation {
    height: 60px !important;
}
body #main-header #top-menu {
    align-items: center !important;
    height: 100% !important;
}
body #main-header #top-menu > li {
    display: flex !important;
    align-items: center !important;
}
body #main-header #top-menu > li > a {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
}
/* The pill overrides again (in case cascade weight is lost) */
#top-menu li.gcp-menu-phone a {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}

/* ============================================================
 * Hero subtitle readability — was dark text on photo, invisible
 * on lighter slides. White + strong shadow + subtle dark pill
 * guarantees contrast across all 3 rotating slides.
 * ============================================================ */
body .gcp-hero-slider .et_pb_slide_content,
body .et_pb_slider .et_pb_slide_content {
    color: #FFFFFF !important;
    font-weight: 600 !important;
    letter-spacing: 0.5px !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.65), 0 0 2px rgba(0, 0, 0, 0.4) !important;
    display: inline-block !important;
    background: rgba(0, 0, 0, 0.42) !important;
    padding: 14px 32px !important;
    border-radius: 4px !important;
    backdrop-filter: blur(2px) !important;
    -webkit-backdrop-filter: blur(2px) !important;
    max-width: 90% !important;
    margin: 0 auto 30px !important;
}
@media (max-width: 640px) {
    body .gcp-hero-slider .et_pb_slide_content,
    body .et_pb_slider .et_pb_slide_content {
        padding: 10px 20px !important;
    }
}
