/*
Theme Name: TEE Clearwater
Theme URI:  https://clearwaterfloridaelectrician.com
Description: Clearwater district child theme for Thomas Edison Electric. Brand colors, typography, and SEO-tuned layout overrides on top of Twenty Twenty-Five.
Author:     Thomas Edison Electric
Author URI: https://floridaelectrician.com
Template:   twentytwentyfive
Version:    1.0.47
License:    Proprietary
Text Domain: tee-clearwater
*/

/* === Headings inherit color from parent block context === */
/* (default: navy on light bg; white on dark bg via .has-white-color cascade) */
.wp-block-heading { color: var(--wp--preset--color--primary, #041C2C); }
.has-white-color, .has-white-color * { color: #ffffff !important; }
.has-white-color h1, .has-white-color h2, .has-white-color h3, .has-white-color h4,
.has-white-color .wp-block-heading { color: #ffffff !important; }
.has-white-color .wp-block-button__link { color: #ffffff !important; }

/* Body default text + readability tune-up */
body { color: #041C2C; font-size: 1.0625rem; line-height: 1.65; }
/* 70ch readability cap only on DIRECT-child paragraphs of post content,
   so shortcode-generated intros (e.g. tee-areas-intro) keep their full width. */
.wp-block-post-content > p,
.entry-content > p { max-width: 70ch; }
.wp-block-post-content p:not(:last-child),
.entry-content p:not(:last-child) { margin-bottom: 1.1em; }
.wp-block-heading + p,
.wp-block-heading + .wp-block-paragraph { margin-top: 0.5em; }

/* Defensive: section-level intro paragraphs (.tee-block) must NEVER be width-capped */
.tee-block p.tee-areas-intro,
.tee-block .tee-network-intro,
.tee-service-areas p.tee-areas-intro { max-width: none !important; }

/* License badge + phone CTA in footer column 1 - both fill the column width to
   the same cap so they line up visually as a uniform "trust-card" stack */
.tee-license-badge,
.tee-footer-call {
    display: flex;
    box-sizing: border-box;
    width: 100%;
    max-width: 240px;
}
.tee-license-badge {
    flex-direction: column; align-items: flex-start;
    gap: 0.15em;
    border: 2px solid #C6893F; border-radius: 4px;
    padding: 0.55em 0.85em; margin-top: 1rem;
    background: rgba(198,137,63,0.08);
    line-height: 1.15;
}
.tee-license-badge .tee-license-label {
    color: #C6893F; font-size: clamp(0.58rem, 1vw, 0.68rem); font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.08em;
    white-space: nowrap;
}
.tee-license-badge .tee-license-number {
    color: #ffffff; font-size: clamp(0.9rem, 1.4vw, 1.05rem); font-weight: 800;
    letter-spacing: 0.04em; font-family: 'Inter', sans-serif;
    white-space: nowrap;
}
/* Footer column 1 phone CTA button - matches the badge box size */
.tee-footer-call {
    align-items: center; justify-content: center; gap: 0.5em;
    margin-top: 0.85rem;
    padding: 0.75em 1.15em;
    background: #C6893F; color: #fff !important;
    border-radius: 4px;
    font-weight: 700; font-size: clamp(0.88rem, 1.3vw, 1rem);
    text-transform: uppercase; letter-spacing: 0.04em;
    text-decoration: none;
    transition: background-color 0.15s ease, transform 0.12s ease;
}
.tee-footer-call:hover { background: #ffffff; color: #041C2C !important; transform: translateY(-1px); }
.tee-footer-call::before {
    content: ""; display: inline-block; width: 0.95em; height: 0.95em;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
    background-size: contain; background-repeat: no-repeat;
}
.tee-footer-call:hover::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23041C2C' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
}
/* Footer legal block (default: left-aligned column variant if ever used inline) */
.tee-footer-legal {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(162,181,205,0.18);
    font-size: 0.78rem;
    line-height: 1.55;
    color: #a2b5cd;
}
.tee-footer-copyright { color: #a2b5cd; margin-bottom: 0.35em; }
.tee-footer-legal-links { display: flex; flex-wrap: wrap; gap: 0.4em 0.6em; align-items: center; margin-bottom: 0.5em; }
.tee-footer-legal-links a { color: #C6893F; text-decoration: none; }
.tee-footer-legal-links a:hover { color: #ffffff; text-decoration: underline; }
.tee-footer-legal-links .tee-sep { color: #5a6478; }
.tee-footer-tagline { color: #5a6478; font-style: italic; font-size: 0.76rem; margin-top: 0.4em; }
/* Centered variant: full-width centered row at the very bottom of the footer */
.tee-footer-legal--center {
    text-align: center;
    margin: 0.75rem 0 0;
    padding-top: 0.75rem;
    border-top: 0;
}
.tee-footer-legal--center .tee-footer-legal-links { justify-content: center; }
.tee-footer-legal--center .tee-footer-copyright { margin-bottom: 0.25em; }
.tee-footer-legal--center .tee-footer-tagline { margin-top: 0.3em; }

/* Footer logo - responsive AND properly top-aligned with adjacent columns.
   Three pieces:
     1. clamp() width so it scales 150px (phone) -> 220px (desktop)
     2. line-height:1 on the .wp-block-site-logo wrapper to override
        WP core's default line-height:0 (which makes the image overhang)
     3. vertical-align:top + display:block on the img so the image's top
        edge sits exactly at the column origin (same y as headings start)
*/
footer .wp-block-site-logo,
.wp-block-template-part:has(footer) .wp-block-site-logo {
    line-height: 1;
    display: block;
}
footer .wp-block-site-logo a,
.wp-block-template-part:has(footer) .wp-block-site-logo a {
    display: inline-block;
    line-height: 0;
    vertical-align: top;
}
footer .wp-block-site-logo img,
.wp-block-template-part:has(footer) .wp-block-site-logo img {
    width: clamp(150px, 16vw, 220px);
    height: auto;
    max-height: none;
    display: block;
    vertical-align: top;
}

/* Footer column heading - force amber color regardless of parent .has-text-color overrides */
footer h4.wp-block-heading,
.wp-block-template-part:has(footer) h4.wp-block-heading {
    color: #C6893F !important;
}

/* Hide the auto-injected post title block on pages (our content has its own H1) */
body.page .wp-block-post-title { display: none; }
body.page-id-11 .wp-block-post-title,
body.home .wp-block-post-title { display: none; }

/* === Header: dark brand bar, SINGLE-ROW compact layout, shrink-on-scroll === */
.wp-block-site-title { display: none; }

/* Outer sticky template part */
header.wp-block-template-part {
    background: #003D4C;             /* Edison Teal */
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 9999;                   /* above Leaflet maps (which default to z-index 1000) */
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    transition: box-shadow 0.2s ease;
    overflow: visible;               /* prevent any clipping during transitions */
}
/* v1.0.47: when WP admin bar is visible, offset the sticky header so its top
   isn't hidden behind the admin bar. WP adds .admin-bar to <body> on the
   front-end whenever a logged-in user is viewing the site. Without this, the
   top half of the nav/logo gets clipped behind the 32px-tall admin bar. */
body.admin-bar header.wp-block-template-part {
    top: 32px;
}
@media (max-width: 782px) {
    /* WP's admin bar is taller on mobile (46px). */
    body.admin-bar header.wp-block-template-part {
        top: 46px;
    }
}
/* Leaflet maps need to stay BELOW the sticky header */
.leaflet-container,
.leaflet-pane,
.leaflet-top,
.leaflet-bottom { z-index: 50 !important; }

/* The bar wrapper */
.tee-header-bar {
    background: #003D4C !important;
}

/* Single-row layout: logo | nav | phone+CTA */
.tee-header-row {
    padding: 0.5rem 0 !important;    /* tight vertical padding */
    gap: 1.25rem;
    min-height: 0;
    transition: padding 0.2s ease;
}

/* Logo - reasonable size, sits cleanly in the row */
.tee-header-logo,
header .wp-block-site-logo {
    flex: 0 0 auto;
    position: relative;
    z-index: 110;
    align-self: center;
    line-height: 0;
    width: auto !important;
    max-width: none !important;
}
.tee-header-logo img,
header .wp-block-site-logo img {
    height: 72px;
    width: auto;
    max-height: none;
    display: block;
    transition: height 0.2s ease;
}

/* Nav takes the middle space and centers itself */
.tee-header-nav {
    flex: 1 1 auto;
    justify-content: center;
    align-items: center;
}
.tee-header-nav .wp-block-navigation__container {
    justify-content: center;
    gap: 0.2rem !important;
}
.tee-header-nav .wp-block-navigation-item__content {
    color: #ffffff !important;
    font-weight: 500;
    font-size: 0.95rem;
    padding: 0.4em 0.7em !important;
    transition: color 0.15s ease, font-size 0.2s ease, padding 0.2s ease;
    white-space: nowrap;
}
.tee-header-nav .wp-block-navigation-item__content:hover,
.tee-header-nav .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content {
    color: #C6893F !important;
}
.tee-header-nav .wp-block-navigation__submenu-icon { color: rgba(255,255,255,0.7); }
.tee-header-nav .wp-block-navigation__submenu-container {
    background: #003D4C !important;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 0 0 4px 4px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.2);
}
.tee-header-nav .wp-block-navigation__submenu-container a { color: #ffffff !important; }
.tee-header-nav .wp-block-navigation__submenu-container a:hover {
    background: rgba(198,137,63,0.18);
    color: #C6893F !important;
}

/* Mobile hamburger overlay: WP core ships a white background by default, which
   collides with our white nav text. Force the overlay to use our brand teal so
   the white text is legible. Applies only when the overlay is open. */
.tee-header-nav .wp-block-navigation__responsive-container.is-menu-open {
    background-color: #003D4C !important;
}
.tee-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    color: #ffffff;
}
.tee-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.tee-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a {
    color: #ffffff !important;
    font-size: 1.05rem;
    padding: 0.6em 0.4em !important;
}
.tee-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.tee-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a:hover {
    color: #C6893F !important;
}
/* Make the open/close hamburger icon visible against the teal bar */
.tee-header-nav .wp-block-navigation__responsive-container-open svg,
.tee-header-nav .wp-block-navigation__responsive-container-close svg {
    fill: #ffffff;
}

/* Right side: phone callout + amber Schedule button */
.tee-header-right {
    flex: 0 0 auto;
    gap: 0.9rem;
    align-items: center !important;
}
.tee-header-callout {
    color: #ffffff;
    text-decoration: none !important;
    line-height: 1.15;
    display: inline-flex;
    flex-direction: column;
    text-align: right;
    transition: color 0.15s ease;
}
.tee-header-callout-label {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.65);
}
.tee-header-callout-number {
    color: #ffffff;
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.01em;
    transition: font-size 0.2s ease;
}
.tee-header-callout:hover .tee-header-callout-number { color: #C6893F; }

.tee-header-cta a.wp-block-button__link {
    background-color: #C6893F !important;
    color: #ffffff !important;
    border-radius: 4px;
    font-size: 0.82rem;
}
.tee-header-cta a.wp-block-button__link:hover {
    background-color: #ffffff !important;
    color: #003D4C !important;
}

/* === Shrink-on-scroll: tightens further, never clips logo === */
/* All animated properties use the SAME transition timing so nothing snaps mid-shrink. */
.tee-header-callout-number,
.tee-header-callout-label,
.tee-header-nav .wp-block-navigation-item__content,
.tee-header-cta a.wp-block-button__link {
    transition: font-size 0.2s ease, padding 0.2s ease, opacity 0.2s ease;
    will-change: font-size, padding;
}
body.tee-header-shrunk header.wp-block-template-part {
    box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
body.tee-header-shrunk .tee-header-row {
    padding: 0.2rem 0 !important;
}
body.tee-header-shrunk .tee-header-logo img,
body.tee-header-shrunk header .wp-block-site-logo img {
    height: 50px;
}
body.tee-header-shrunk .tee-header-callout-number { font-size: 0.95rem; }
/* Use opacity+visibility (not display:none) so the height collapse is animatable */
body.tee-header-shrunk .tee-header-callout-label {
    opacity: 0;
    visibility: hidden;
    max-height: 0;
    margin: 0;
    overflow: hidden;
}
.tee-header-callout-label {
    transition: opacity 0.2s ease, max-height 0.2s ease;
    overflow: hidden;
}
body.tee-header-shrunk .tee-header-nav .wp-block-navigation-item__content {
    font-size: 0.9rem;
    padding: 0.3em 0.55em !important;
}
body.tee-header-shrunk .tee-header-cta a.wp-block-button__link {
    padding-top: 0.45rem !important;
    padding-bottom: 0.45rem !important;
    font-size: 0.78rem;
}

/* Responsive: nav collapses + logo shrinks gracefully */
@media (max-width: 1100px) {
    .tee-header-logo img,
    header .wp-block-site-logo img { height: 60px; }
    .tee-header-nav .wp-block-navigation-item__content {
        font-size: 0.88rem;
        padding: 0.35em 0.55em !important;
    }
    .tee-header-callout-label { display: none; }
}
@media (max-width: 900px) {
    .tee-header-callout { display: none; }
    .tee-header-logo img,
    header .wp-block-site-logo img { height: 54px; }
    body.tee-header-shrunk .tee-header-logo img,
    body.tee-header-shrunk header .wp-block-site-logo img { height: 42px; }
}
@media (max-width: 600px) {
    .tee-header-logo img,
    header .wp-block-site-logo img { height: 46px; }
}
/* Header nav: comfortable readable sizing - one line on desktop */
header .wp-block-navigation {
    font-size: 1rem;
    font-weight: 500;
}
header .wp-block-navigation a.wp-block-navigation-item__content {
    padding: 0.5em 0.7em;
}
header .wp-block-navigation .wp-block-navigation-item {
    margin: 0;
}
@media (max-width: 1100px) {
    header .wp-block-navigation { font-size: 0.92rem; }
    header .wp-block-navigation a.wp-block-navigation-item__content { padding: 0.4em 0.5em; }
}
/* Tighter header CTA buttons */
header .wp-block-buttons {
    flex-wrap: nowrap;
    gap: 0.4rem;
}
header .wp-block-button__link {
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    font-size: 0.85rem;
    white-space: nowrap;
}
@media (max-width: 1100px) {
    header .wp-block-button__link { font-size: 0.78rem; padding-left: 0.7rem !important; padding-right: 0.7rem !important; }
}
/* Page H1 - clean, readable, matches body font shape but heavier weight.
   (Was Anton uppercase - too condensed/blocky per design feedback.) */
main h1, main .wp-block-post-title {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: clamp(2rem, 4.5vw, 3.25rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #041C2C;
    margin: 0 0 0.75em;
}
main h2 {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: #041C2C;
}
/* H1 on dark backgrounds (cover blocks) flips to white + subtle shadow */
.wp-block-cover h1, .wp-block-cover .wp-block-post-title,
.has-background h1 {
    color: #ffffff !important;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

/* Navigation styling */
.wp-block-navigation a { color: #041C2C; font-weight: 500; }
.wp-block-navigation a:hover { color: #C6893F; }

/* TEE CMS Bridge block tweaks for brand */
.tee-reviews .review-card { background: #ffffff; border-color: #e2e8f0; }
.tee-reviews .stars { color: #C6893F; }
.tee-block h2 { color: #041C2C; }

/* Body readability */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* tel: link styling */
a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
}

/* Mobile sticky CTA bar (Book + Call side by side) */
@media (max-width: 768px) {
    .tee-mobile-call-bar {
        position: fixed; bottom: 0; left: 0; right: 0;
        display: flex; gap: 0;
        z-index: 200; box-shadow: 0 -2px 8px rgba(0,0,0,.15);
        font-weight: 700; font-size: 1rem;
    }
    .tee-mobile-call-bar > a,
    .tee-mobile-call-bar > button {
        flex: 1; text-align: center; padding: 14px 8px;
        color: #fff; text-decoration: none; border: 0; cursor: pointer;
        font-weight: 700; font-size: 1rem; letter-spacing: .03em;
    }
    .tee-mobile-call-bar .tee-book { background: #C6893F; }
    .tee-mobile-call-bar .tee-call { background: #041C2C; }
    body { padding-bottom: 56px; }

    /* Stack header CTAs on small screens; shrink Call button label */
    .wp-block-template-part .wp-block-buttons { gap: 0.4rem !important; }
    .tee-header-call .wp-block-button__link { padding-left: 0.7rem !important; padding-right: 0.7rem !important; font-size: 0.85rem; }
    .tee-header-cta .wp-block-button__link { padding-left: 0.9rem !important; padding-right: 0.9rem !important; font-size: 0.9rem; }
}
@media (max-width: 480px) {
    /* Very small phones: hide header Call button - mobile bar covers it */
    .tee-header-call { display: none; }
}

/* Performance: prevent FOUC on transitions */
* { transition: none !important; }
*:hover, *:focus { transition: all .15s ease !important; }

/* Buttons: brand-accent with proper hover */
.wp-block-button .wp-block-button__link {
    background-color: #C6893F;
    color: #ffffff;
    border-radius: 4px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: background-color 0.2s ease;
}
.wp-block-button .wp-block-button__link:hover {
    background-color: #041C2C;
    color: #ffffff;
}
.wp-block-button.is-style-outline .wp-block-button__link {
    background-color: transparent;
    border: 2px solid currentColor;
}

/* === Case Studies archive grid === */
.tee-case-archive-grid {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
}
.tee-case-archive-grid > li { margin: 0; padding: 0; }
.tee-case-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.tee-case-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.tee-case-card .tee-case-card-img img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}
.tee-case-card .tee-case-card-img:not(:has(img)) { display: none; }

/* === Geo Grid office-card stack (replaces the separate tee_district_network section) === */
.tee-geo-office-cards { margin: 1.5rem 0 0; }
.tee-geo-office-cards-heading {
    margin: 0 0 1rem; font-size: 1.1rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.05em; color: #5a6478;
}
.tee-geo-office-cards-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem;
}
.tee-geo-office-card {
    position: relative; background: #ffffff; border: 1px solid #e2e8f0;
    border-radius: 8px; padding: 1.1rem 1.15rem 1rem;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.tee-geo-office-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(4,28,44,0.08); }
.tee-geo-office-card.is-current { border-color: #C6893F; border-width: 2px; background: #fffdf9; }
.tee-geo-office-badge {
    position: absolute; top: 0.75rem; right: 0.75rem;
    background: #C6893F; color: #ffffff; font-size: 0.62rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.06em; padding: 0.2em 0.6em; border-radius: 999px;
}
.tee-geo-office-name { margin: 0 0 0.4em; font-size: 1.1rem; font-weight: 800; color: #041C2C; }
.tee-geo-office-addr { font-size: 0.88rem; color: #5a6478; line-height: 1.45; margin: 0 0 0.6em; }
.tee-geo-office-phone {
    display: inline-block; font-weight: 700; color: #041C2C !important;
    font-size: 1rem; text-decoration: none; margin-bottom: 0.6em;
}
.tee-geo-office-phone:hover { color: #C6893F !important; }
.tee-geo-office-links { display: flex; flex-wrap: wrap; gap: 0.6em; font-size: 0.85rem; }
.tee-geo-office-link { color: #C6893F !important; text-decoration: none; font-weight: 600; }
.tee-geo-office-link:hover { color: #041C2C !important; text-decoration: underline; }

/* === Map popups: office popup with phone/reviews/CTA === */
.tee-mappop { font-family: 'Inter', sans-serif; color: #041C2C; font-size: 0.92rem; line-height: 1.4; }
.tee-mappop-head { margin-bottom: 0.5em; }
.tee-mappop-head strong { color: #041C2C; font-size: 1.05rem; }
.tee-mappop-sub { display: block; color: #5a6478; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.15em; }
.tee-mappop-here {
    background: #C6893F; color: #fff; font-size: 0.65rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.05em;
    padding: 0.15em 0.6em; border-radius: 999px; margin-left: 0.5em; vertical-align: middle;
}
.tee-mappop-addr { color: #5a6478; font-size: 0.85rem; margin: 0.3em 0; }
.tee-mappop-phone { color: #041C2C !important; font-weight: 700; text-decoration: none; font-size: 0.95rem; }
.tee-mappop-phone:hover { color: #C6893F !important; }
.tee-mappop-stats { display: flex; gap: 0.85em; font-size: 0.78rem; color: #5a6478; margin: 0.5em 0 0.3em; flex-wrap: wrap; }
.tee-mappop-stats span { display: inline-flex; align-items: center; gap: 0.3em; }
.tee-mappop-quote { margin: 0.5em 0; padding: 0.4em 0.6em; background: #f5f6fa; border-left: 3px solid #C6893F; font-style: italic; font-size: 0.85rem; color: #5a6478; }
.tee-mappop-cta {
    display: inline-block; margin-top: 0.5em; background: #C6893F; color: #fff !important;
    font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em;
    padding: 0.4em 0.85em; border-radius: 4px; text-decoration: none;
}
.tee-mappop-cta:hover { background: #041C2C !important; }
.tee-mappop-snip { font-weight: 600; color: #041C2C; margin: 0.5em 0; }
.tee-mappop-byline { font-size: 0.82rem; color: #5a6478; }

/* === Geo Grid: PinParrot-style FL-wide job map + activity feed === */
.tee-geo-grid {
    margin: 2rem 0;
    padding: 0;
}
.tee-geo-grid-heading {
    margin: 0 0 0.75rem;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: #041C2C;
}
.tee-geo-grid-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    margin-bottom: 1.5rem;
    align-items: center;
    color: #5a6478;
    font-size: 0.95rem;
}
.tee-geo-stat strong { color: #041C2C; font-size: 1.15rem; font-weight: 800; margin-right: 0.25em; }
.tee-geo-stat-live {
    display: inline-flex; align-items: center; gap: 0.45em;
    margin-left: auto;
    background: rgba(198,137,63,0.12);
    color: #C6893F;
    font-weight: 700;
    padding: 0.3em 0.85em;
    border-radius: 999px;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.tee-geo-stat-pulse {
    width: 8px; height: 8px; border-radius: 50%; background: #C6893F;
    animation: tee-live-pulse 1.8s ease-in-out infinite;
}
@keyframes tee-live-pulse {
    0%, 100% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 0 rgba(198,137,63,0.7); }
    50%      { transform: scale(1.15); opacity: 0.7; box-shadow: 0 0 0 8px rgba(198,137,63,0); }
}
.tee-geo-grid-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1.25rem;
    align-items: stretch;
}
@media (max-width: 880px) {
    .tee-geo-grid-layout { grid-template-columns: 1fr; }
    .tee-geo-feed { max-height: 420px; }
}
.tee-geo-map {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(4,28,44,0.10);
    min-height: 520px;
}
.tee-geo-feed {
    background: #f5f6fa;
    border-radius: 8px;
    padding: 1rem 1rem 0.5rem;
    overflow-y: auto;
    max-height: 520px;
}
.tee-geo-feed-heading {
    margin: 0 0 0.85rem;
    font-size: 0.92rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5a6478;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 0.6rem;
}
.tee-geo-feed-list {
    list-style: none !important; margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 0.65rem;
}
.tee-geo-feed-item {
    display: flex; gap: 0.75rem; align-items: center;
    padding: 0.55rem 0.6rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.tee-geo-feed-item:hover { transform: translateX(2px); box-shadow: 0 3px 10px rgba(4,28,44,0.08); }
.tee-geo-feed-photo {
    width: 56px; height: 56px;
    border-radius: 6px;
    object-fit: cover;
    flex: 0 0 56px;
    background: #e2e8f0;
}
.tee-geo-feed-photo--blank { background: linear-gradient(135deg, #e2e8f0, #f5f6fa); }
.tee-geo-feed-meta { display: flex; flex-direction: column; gap: 0.3em; min-width: 0; flex: 1; }
.tee-geo-feed-snippet {
    font-weight: 600;
    color: #041C2C;
    font-size: 0.95rem;
    line-height: 1.35;
    letter-spacing: -0.005em;
}
.tee-geo-feed-where { display: flex; gap: 0.45em; align-items: center; flex-wrap: wrap; }
.tee-geo-feed-tag {
    background: rgba(198,137,63,0.14);
    color: #C6893F;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.16em 0.55em;
    border-radius: 999px;
    line-height: 1.3;
    white-space: nowrap;
}
.tee-geo-feed-when { font-size: 0.78rem; color: #5a6478; }
.tee-geo-feed-photo { width: 72px; height: 72px; flex: 0 0 72px; }

/* === [tee_live_activity] compact ticker === */
.tee-live-activity {
    background: linear-gradient(135deg, #003D4C 0%, #041C2C 100%);
    color: #ffffff;
    border-radius: 8px;
    padding: 1.25rem 1.25rem 1rem;
    margin: 1.5rem 0;
}
.tee-live-activity-heading {
    margin: 0 0 0.85rem;
    color: #ffffff !important;
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    display: flex; align-items: center; gap: 0.5em;
}
.tee-live-pulse {
    width: 9px; height: 9px; border-radius: 50%; background: #C6893F;
    animation: tee-live-pulse 1.8s ease-in-out infinite;
}
.tee-live-activity-list { list-style: none !important; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.tee-live-activity-item {
    display: flex; gap: 0.7rem; align-items: center;
    padding: 0.55rem 0.6rem;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 6px;
}
.tee-live-activity-photo {
    width: 48px; height: 48px; border-radius: 4px; object-fit: cover; flex: 0 0 48px;
}
.tee-live-activity-meta { display: flex; flex-direction: column; gap: 0.1em; }
.tee-live-activity-snippet { color: #ffffff; font-weight: 600; font-size: 0.92rem; line-height: 1.35; letter-spacing: -0.005em; }
.tee-live-activity-where { display: flex; gap: 0.45em; align-items: center; flex-wrap: wrap; margin-top: 0.25em; }
.tee-live-activity-tag {
    background: rgba(198,137,63,0.22);
    color: #C6893F;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.16em 0.55em;
    border-radius: 999px;
    line-height: 1.3;
    white-space: nowrap;
}
.tee-live-activity-when { color: rgba(255,255,255,0.65); font-size: 0.74rem; }

/* === Twinkling map pins (Leaflet office + customer pins) ===
   CRITICAL: only animate the INNER SVG, never .leaflet-marker-icon itself.
   Leaflet uses transform:translate3d() on the marker container to position it;
   adding our own transform animation there sends every pin to map (0,0). */
.tee-office-pin svg {
    animation: tee-pulse-office 2.4s ease-in-out infinite;
    transform-origin: center bottom;
}
@keyframes tee-pulse-office {
    0%, 100% { transform: scale(1); filter: drop-shadow(0 2px 4px rgba(198,137,63,0.45)); }
    50%      { transform: scale(1.12); filter: drop-shadow(0 4px 12px rgba(198,137,63,0.85)); }
}
.tee-customer-pin svg {
    animation: tee-pulse-customer 3.2s ease-in-out infinite;
    transform-origin: center;
}
@keyframes tee-pulse-customer {
    0%, 100% { transform: scale(1); opacity: 1; }
    50%      { transform: scale(1.45); opacity: 0.85; filter: drop-shadow(0 0 6px rgba(4,28,44,0.6)); }
}
/* Stagger animation timing on the INNER svg (not the marker container) */
.leaflet-marker-icon.tee-customer-pin:nth-child(3n) svg { animation-delay: 0.4s; }
.leaflet-marker-icon.tee-customer-pin:nth-child(4n) svg { animation-delay: 0.9s; }
.leaflet-marker-icon.tee-customer-pin:nth-child(5n) svg { animation-delay: 1.4s; }
.leaflet-marker-icon.tee-customer-pin:nth-child(7n) svg { animation-delay: 2.1s; }
.leaflet-marker-icon.tee-office-pin:nth-child(2n) svg   { animation-delay: 0.6s; }
.leaflet-marker-icon.tee-office-pin:nth-child(3n) svg   { animation-delay: 1.2s; }

/* === Auto-scrolling review marquee ("constant scrolling of happiness") === */
.tee-reviews-marquee {
    margin: 2rem 0;
    padding: 2rem 0;
    background: linear-gradient(135deg, #003D4C 0%, #041C2C 100%);
    color: #ffffff;
    overflow: hidden;
    position: relative;
}
.tee-reviews-marquee-heading {
    color: #ffffff !important;
    text-align: center;
    margin: 0 0 1.5rem;
    font-size: clamp(1.4rem, 2.6vw, 1.85rem);
    font-weight: 700;
    padding: 0 1.5rem;
}
.tee-reviews-marquee-track {
    display: flex;
    gap: 1.25rem;
    width: max-content;
    animation: tee-marquee-scroll linear infinite;
    will-change: transform;
}
.tee-reviews-marquee:hover .tee-reviews-marquee-track { animation-play-state: paused; }
@keyframes tee-marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
.tee-marquee-card {
    flex: 0 0 320px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 8px;
    padding: 1.1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    backdrop-filter: blur(8px);
}
.tee-marquee-stars {
    color: #C6893F;
    font-size: 1.05rem;
    letter-spacing: 0.08em;
}
.tee-marquee-quote {
    color: #ffffff !important;
    font-size: 0.95rem;
    line-height: 1.45;
    margin: 0;
    font-style: italic;
}
.tee-marquee-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    font-size: 0.78rem;
    color: rgba(255,255,255,0.7);
    margin-top: auto;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(255,255,255,0.1);
}
.tee-marquee-tech { color: #C6893F; font-weight: 600; }
.tee-marquee-job::before  { content: "\00B7\00A0"; color: rgba(255,255,255,0.4); }
.tee-marquee-date::before { content: "\00B7\00A0"; color: rgba(255,255,255,0.4); }
.tee-reviews-marquee-cta {
    text-align: center;
    margin: 1.5rem 0 0;
    padding: 0 1.5rem;
}
.tee-reviews-marquee-cta a {
    color: #C6893F !important;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
}
.tee-reviews-marquee-cta a:hover { color: #ffffff !important; text-decoration: underline; }
@media (prefers-reduced-motion: reduce) {
    .tee-reviews-marquee-track { animation: none; flex-wrap: wrap; justify-content: center; }
    .tee-office-pin svg, .tee-customer-pin svg { animation: none; }
}

/* === Case Study category + tag filter chips === */
.tee-cs-filters {
    margin: 1.5rem 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.tee-cs-filters-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.55rem;
}
.tee-cs-filters-label {
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5a6478;
    margin-right: 0.4em;
}
.tee-cs-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
    padding: 0.42em 0.85em;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #ffffff;
    color: #041C2C !important;
    text-decoration: none !important;
    font-size: 0.88rem;
    font-weight: 500;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}
.tee-cs-chip:hover {
    background: #C6893F;
    border-color: #C6893F;
    color: #ffffff !important;
    transform: translateY(-1px);
}
.tee-cs-chip-all {
    background: #041C2C;
    border-color: #041C2C;
    color: #ffffff !important;
    font-weight: 700;
}
.tee-cs-chip-all:hover {
    background: #C6893F;
    border-color: #C6893F;
}
.tee-cs-chip-count {
    background: #f5f6fa;
    color: #5a6478;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.1em 0.5em;
    border-radius: 999px;
    line-height: 1.3;
}
.tee-cs-chip:hover .tee-cs-chip-count {
    background: rgba(255,255,255,0.25);
    color: #ffffff;
}
.tee-cs-chip-tag { font-size: 0.82rem; }

/* === Safety Tip cards: hover + readability === */
.tee-tip-card {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.tee-tip-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.tee-tip-card h3 a {
    color: #041C2C !important;
    text-decoration: none;
}
.tee-tip-card h3 a:hover { color: #C6893F !important; }

/* Case-card title needs high specificity to beat theme.json :where(h2) and :where(a) */
.tee-case-card h2.tee-case-card-title,
.tee-case-card .tee-case-card-title.wp-block-post-title {
    margin: 1rem 1.1rem 0.4rem;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.005em;
    color: #041C2C;
    font-family: 'Inter', sans-serif;
    text-transform: none;
}
.tee-case-card .tee-case-card-title a,
.tee-case-card h2.tee-case-card-title a {
    color: #041C2C !important;
    text-decoration: none;
    font-weight: inherit;
}
.tee-case-card .tee-case-card-title a:hover { color: #C6893F !important; }
.tee-case-card .tee-case-card-excerpt p { margin: 0; }
.tee-case-card .tee-case-card-excerpt .wp-block-post-excerpt__more-link {
    color: #C6893F;
    font-weight: 600;
    text-decoration: none;
}
.tee-case-card .tee-case-card-excerpt .wp-block-post-excerpt__more-link:hover { text-decoration: underline; }
.tee-case-card .tee-case-card-excerpt {
    margin: 0 1.1rem 0.6rem;
    color: #5a6478;
    font-size: 0.95rem;
    line-height: 1.5;
    flex: 1;
}
.tee-case-card .tee-case-card-date {
    margin: 0 1.1rem 1.1rem;
    color: #8893a1;
    font-size: 0.82rem;
}

/* === Technician archive grid === */
.tee-tech-archive-grid {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1.5rem;
}
.tee-tech-archive-grid > li { margin: 0; padding: 0; }
.tee-tech-card {
    text-align: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 1.25rem 1rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.tee-tech-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.tee-tech-card-photo-wrap {
    width: 140px;
    height: 140px;
    margin: 0 auto 0.8rem;
    border-radius: 50%;
    overflow: hidden;
    background: #f3f4f6;
}
.tee-tech-card-photo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.tee-tech-card h2.tee-tech-card-name,
.tee-tech-card .tee-tech-card-name.wp-block-post-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.005em;
    color: #041C2C;
    text-transform: none;
}
.tee-tech-card .tee-tech-card-name a,
.tee-tech-card h2.tee-tech-card-name a { color: #041C2C !important; text-decoration: none; }
.tee-tech-card .tee-tech-card-name a:hover { color: #C6893F !important; }
