/* =========================================================
   POWER WINDOW REPAIR SPECIALIST
   PREMIUM GOLD / BLACK THEME
   ========================================================= */

:root {
    --black: #050505;
    --black-2: #0a0a0a;
    --black-3: #111111;
    --dark: #171717;

    --gold: #d4af37;
    --gold-light: #f5d76e;
    --gold-dark: #9c7b18;
    --gold-soft: rgba(212, 175, 55, 0.15);

    --white: #ffffff;
    --text: #eeeeee;
    --muted: #a8a8a8;

    --border: rgba(212, 175, 55, 0.22);

    --container: 1200px;
    --radius: 14px;

    --shadow:
        0 15px 45px rgba(0, 0, 0, 0.45);

    --gold-shadow:
        0 0 30px rgba(212, 175, 55, 0.16);

    --transition: 0.3s ease;
}


/* =========================================================
   RESET
   ========================================================= */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 20% 20%, rgba(212,175,55,.06), transparent 25%),
        radial-gradient(circle at 80% 70%, rgba(212,175,55,.04), transparent 25%),
        #050505;
    color: var(--text);
    font-family: "Inter", Arial, sans-serif;
    line-height: 1.7;
    overflow-x: hidden;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -2;

    background:
        radial-gradient(circle at 15% 85%, rgba(212,175,55,.08), transparent 20%),
        radial-gradient(circle at 85% 15%, rgba(255,180,0,.05), transparent 20%);

    animation: ambientGlow 10s ease-in-out infinite alternate;
}

body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;

    background-image:
        radial-gradient(circle, rgba(245,215,110,.75) 1px, transparent 1.5px),
        radial-gradient(circle, rgba(212,175,55,.45) 1px, transparent 1.5px);

    background-size: 90px 90px, 140px 140px;
    background-position: 0 0, 40px 70px;
    opacity: .12;

    animation: particlesMove 18s linear infinite;
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}


/* =========================================================
   SCROLLBAR
   ========================================================= */

::-webkit-scrollbar {
    width: 9px;
}

::-webkit-scrollbar-track {
    background: #050505;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(
        180deg,
        var(--gold-light),
        var(--gold-dark)
    );
    border-radius: 20px;
}


/* =========================================================
   GLOBAL
   ========================================================= */

.container {
    width: min(var(--container), calc(100% - 40px));
    margin-inline: auto;
}

main {
    position: relative;
    min-height: 600px;
}

.page-section {
    display: none;
}

.page-section.active-page {
    display: block;
}

.dynamic-page {
    min-height: 600px;
}

.section-label {
    display: inline-block;
    margin-bottom: 12px;
    color: var(--gold-light);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

h1,
h2,
h3 {
    color: var(--white);
    font-family: "Montserrat", sans-serif;
    line-height: 1.15;
}

h1 {
    font-size: clamp(2.5rem, 6vw, 5rem);
}

h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
}

h3 {
    font-size: 1.25rem;
}

p {
    color: var(--muted);
}

strong {
    color: var(--gold-light);
}


/* =========================================================
   TOP BAR
   ========================================================= */

.top-bar {
    position: relative;
    z-index: 1000;
    background: #000;
    border-bottom: 1px solid rgba(212,175,55,.2);
}

.top-bar-content {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.top-bar-message {
    color: #bdbdbd;
    font-size: .78rem;
}

.top-phone {
    color: var(--gold-light);
    font-weight: 800;
    font-size: .82rem;
    transition: var(--transition);
}

.top-phone:hover {
    color: white;
}


/* =========================================================
   HEADER
   ========================================================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 999;

    background: rgba(5,5,5,.92);
    border-bottom: 1px solid rgba(212,175,55,.18);

    backdrop-filter: blur(15px);
}

.header-content {
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.brand {
    display: inline-flex;
    flex-direction: column;
    line-height: 1;
    flex-shrink: 0;
}

.brand-title {
    color: var(--white);
    font-family: "Montserrat", sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
}

.brand-subtitle {
    margin-top: 5px;
    color: var(--gold);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.main-navigation {
    display: flex;
    align-items: center;
    gap: 5px;
}

.nav-link,
.nav-dropdown-toggle {
    position: relative;
    display: flex;
    align-items: center;
    gap: 7px;

    padding: 12px 14px;

    color: #d0d0d0;
    background: transparent;
    border: 0;

    font-size: .9rem;
    font-weight: 600;

    transition: var(--transition);
}

.nav-link::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 5px;
    height: 2px;
    background: var(--gold);
    transform: scaleX(0);
    transition: var(--transition);
}

.nav-link:hover,
.nav-link.active,
.nav-dropdown-toggle:hover {
    color: var(--gold-light);
}

.nav-link:hover::after,
.nav-link.active::after {
    transform: scaleX(1);
}

.nav-dropdown {
    position: relative;
}

.dropdown-arrow {
    color: var(--gold);
    transition: var(--transition);
}

.nav-dropdown.open .dropdown-arrow {
    transform: rotate(180deg);
}

.dropdown-menu {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;

    width: 270px;
    padding: 10px;

    background: rgba(12,12,12,.98);
    border: 1px solid var(--border);
    border-radius: 12px;

    box-shadow: var(--shadow), var(--gold-shadow);

    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);

    transition: var(--transition);
}

.nav-dropdown:hover .dropdown-menu,
.nav-dropdown.open .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-menu a {
    display: block;
    padding: 11px 13px;
    border-radius: 8px;

    color: #cfcfcf;
    font-size: .88rem;

    transition: var(--transition);
}

.dropdown-menu a:hover {
    color: #000;
    background: var(--gold);
}

.nav-contact-button {
    margin-left: 8px;
    padding: 11px 18px;

    color: #050505;
    background: linear-gradient(
        135deg,
        var(--gold-light),
        var(--gold)
    );

    border-radius: 8px;
    font-size: .85rem;
    font-weight: 900;

    box-shadow: 0 5px 20px rgba(212,175,55,.2);
    transition: var(--transition);
}

.nav-contact-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(212,175,55,.35);
}


/* =========================================================
   MOBILE MENU
   ========================================================= */

.mobile-menu-toggle {
    display: none;

    width: 44px;
    height: 44px;

    border: 1px solid var(--border);
    border-radius: 8px;
    background: #0d0d0d;
}

.mobile-menu-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    margin: 4px auto;

    background: var(--gold-light);

    transition: var(--transition);
}

.mobile-menu-toggle.active span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.mobile-menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle.active span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}


/* =========================================================
   HERO
   ========================================================= */

.hero-section {
    position: relative;
    min-height: 720px;

    display: flex;
    align-items: center;

    overflow: hidden;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.97) 0%,
            rgba(0,0,0,.82) 48%,
            rgba(0,0,0,.45) 100%
        ),
        radial-gradient(
            circle at 75% 50%,
            rgba(212,175,55,.16),
            transparent 35%
        );
}

.hero-section::before {
    content: "";
    position: absolute;
    inset: -20%;

    background:
        radial-gradient(
            circle at 70% 50%,
            rgba(255,170,0,.12),
            transparent 18%
        ),
        radial-gradient(
            circle at 85% 30%,
            rgba(212,175,55,.08),
            transparent 15%
        );

    animation: heroFire 7s ease-in-out infinite alternate;
}

.hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(0,0,0,.15),
            rgba(0,0,0,.65)
        );
}

.hero-content {
    position: relative;
    z-index: 2;
    max-width: 780px;
    padding-block: 100px;
}

.hero-badge {
    display: inline-block;
    padding: 7px 14px;

    color: var(--gold-light);
    border: 1px solid var(--border);
    border-radius: 30px;

    background: rgba(212,175,55,.07);

    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.hero-content h1 {
    margin-top: 20px;
}

.hero-content h1 span {
    display: block;
    color: var(--gold);
}

.hero-tagline {
    margin-top: 25px;

    color: var(--white);
    font-family: "Montserrat", sans-serif;
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 700;
}

.hero-mobile-service {
    margin-top: 5px;
    color: var(--gold-light);
    font-weight: 700;
}

.hero-features {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.hero-features span {
    padding: 7px 12px;

    color: #ddd;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 6px;

    font-size: .8rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 35px;
}

.hero-phone {
    margin-top: 18px;
    color: var(--gold-light);
    font-size: 1.2rem;
    font-weight: 900;
    letter-spacing: .04em;
}


/* =========================================================
   BUTTONS
   ========================================================= */

.btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 50px;
    padding: 12px 23px;

    border: 1px solid transparent;
    border-radius: 8px;

    font-weight: 800;
    font-size: .9rem;

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        background .25s ease,
        color .25s ease;
}

.btn:hover {
    transform: translateY(-3px);
}

.btn-primary {
    color: #050505;
    background: linear-gradient(
        135deg,
        var(--gold-light),
        var(--gold)
    );

    box-shadow: 0 8px 25px rgba(212,175,55,.18);
}

.btn-primary:hover {
    box-shadow: 0 12px 35px rgba(212,175,55,.35);
}

.btn-secondary,
.btn-outline {
    color: var(--gold-light);
    background: transparent;
    border-color: var(--gold);
}

.btn-secondary:hover,
.btn-outline:hover {
    color: #050505;
    background: var(--gold);
}

.btn-light {
    color: #050505;
    background: white;
}

.btn-large {
    min-height: 58px;
    padding-inline: 30px;
}


/* =========================================================
   TRUST
   ========================================================= */

.trust-section {
    background: #080808;
    border-block: 1px solid rgba(212,175,55,.12);
}

.trust-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.trust-item {
    padding: 35px 25px;
    text-align: center;
    border-right: 1px solid rgba(255,255,255,.06);
}

.trust-item:last-child {
    border-right: 0;
}

.trust-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 58px;
    height: 58px;
    margin-bottom: 15px;

    color: #050505;
    background: var(--gold);

    border-radius: 50%;

    font-weight: 900;
}

.trust-item h3 {
    margin-bottom: 7px;
    font-size: 1rem;
}

.trust-item p {
    font-size: .82rem;
}


/* =========================================================
   QUOTE HIGHLIGHT
   ========================================================= */

.quote-highlight {
    padding: 55px 0;

    background:
        linear-gradient(
            90deg,
            rgba(212,175,55,.13),
            rgba(212,175,55,.04)
        );

    border-bottom: 1px solid var(--border);
}

.quote-highlight-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.quote-highlight h2 {
    margin-bottom: 8px;
}

.quote-highlight h2 strong {
    color: var(--gold-light);
}


/* =========================================================
   SECTIONS
   ========================================================= */

.content-section {
    padding: 100px 0;
}

.light-section {
    background:
        linear-gradient(
            180deg,
            #0c0c0c,
            #090909
        );
}

.two-column {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 70px;
    align-items: center;
}

.content-text h2 {
    margin-bottom: 22px;
}

.content-text p {
    margin-bottom: 17px;
}

.text-link {
    display: inline-block;
    margin-top: 10px;

    color: var(--gold-light);
    font-weight: 800;

    transition: var(--transition);
}

.text-link:hover {
    color: white;
    transform: translateX(4px);
}

.content-card {
    padding: 32px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.045),
            rgba(255,255,255,.015)
        );

    border: 1px solid var(--border);
    border-radius: var(--radius);

    box-shadow: var(--shadow);

    transition: var(--transition);
}

.content-card:hover {
    transform: translateY(-5px);
    border-color: rgba(212,175,55,.45);
    box-shadow: var(--shadow), var(--gold-shadow);
}

.content-card h3 {
    margin-bottom: 18px;
    color: var(--gold-light);
}


/* =========================================================
   SERVICE LIST
   ========================================================= */

.service-list {
    list-style: none;
    margin-bottom: 25px;
}

.service-list li {
    position: relative;
    padding: 9px 0 9px 23px;
    color: #cfcfcf;
    border-bottom: 1px solid rgba(255,255,255,.06);
}

.service-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--gold);
    font-weight: 900;
}


/* =========================================================
   SECTION HEADING
   ========================================================= */

.section-heading {
    margin-bottom: 45px;
}

.section-heading.centered {
    text-align: center;
    max-width: 760px;
    margin-inline: auto;
}

.section-heading h2 {
    margin-bottom: 14px;
}


/* =========================================================
   WHY US
   ========================================================= */

.why-us-section {
    background: #070707;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.feature-card {
    position: relative;

    padding: 30px;

    background: #0d0d0d;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: var(--radius);

    overflow: hidden;

    transition: var(--transition);
}

.feature-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;

    background: linear-gradient(
        90deg,
        transparent,
        var(--gold),
        transparent
    );

    transform: scaleX(.3);
    transition: var(--transition);
}

.feature-card:hover {
    transform: translateY(-7px);
    border-color: var(--border);
    box-shadow: var(--gold-shadow);
}

.feature-card:hover::before {
    transform: scaleX(1);
}

.feature-number {
    margin-bottom: 18px;
    color: var(--gold);
    font-family: "Montserrat", sans-serif;
    font-weight: 800;
}

.feature-card h3 {
    margin-bottom: 10px;
}


/* =========================================================
   SERVICE AREA BANNER
   ========================================================= */

.service-area-banner {
    padding: 80px 0;

    background:
        linear-gradient(
            135deg,
            rgba(212,175,55,.15),
            rgba(0,0,0,.95)
        );

    border-block: 1px solid var(--border);
}

.service-area-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.service-area-banner h2 {
    margin-bottom: 10px;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.final-cta {
    padding: 100px 20px;
    text-align: center;

    background:
        radial-gradient(
            circle at center,
            rgba(212,175,55,.13),
            transparent 45%
        ),
        #050505;

    border-top: 1px solid rgba(212,175,55,.15);
}

.final-cta h2 {
    margin-bottom: 15px;
}

.final-cta p {
    margin-bottom: 28px;
}

.final-cta .btn span {
    margin-left: 5px;
}


/* =========================================================
   PAGE HERO
   ========================================================= */

.page-hero {
    position: relative;
    padding: 110px 0 90px;
    overflow: hidden;

    background:
        radial-gradient(
            circle at 70% 40%,
            rgba(212,175,55,.13),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #050505,
            #111111
        );

    border-bottom: 1px solid var(--border);
}

.page-hero::after {
    content: "";
    position: absolute;
    width: 300px;
    height: 300px;
    right: -100px;
    top: -100px;

    border-radius: 50%;
    border: 1px solid rgba(212,175,55,.12);

    box-shadow:
        0 0 80px rgba(212,175,55,.08);

    animation: slowSpin 15s linear infinite;
}

.page-hero h1 {
    margin-bottom: 18px;
}

.page-hero p {
    font-size: 1.1rem;
}

.page-hero > .container {
    position: relative;
    z-index: 2;
}

.service-detail-hero {
    background-color: #050505;
    background-image:
        linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.78) 35%, rgba(0,0,0,.54) 60%, rgba(0,0,0,.76) 100%),
        linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.62) 100%),
        var(--service-hero-image);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.service-detail-hero::after {
    opacity: .32;
}

.service-detail-hero h1,
.service-detail-hero p {
    max-width: 760px;
}

.service-detail-hero p {
    color: rgba(255,255,255,.92);
}


/* =========================================================
   ABOUT
   ========================================================= */

.about-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.about-image {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
}

.about-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.warranty-badge {
    display: inline-flex;
    flex-direction: column;

    margin-top: 20px;
    padding: 15px 20px;

    background: rgba(212,175,55,.08);
    border-left: 3px solid var(--gold);
}

.warranty-badge strong {
    font-size: 1.1rem;
}

.warranty-badge span {
    color: var(--muted);
    font-size: .8rem;
}

.trust-badge-section {
    padding: 70px 0;
    background: #090909;
    border-block: 1px solid rgba(255,255,255,.06);
}

.trust-badge-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
}

.trust-badge-content img {
    width: 190px;
    max-height: 130px;
    object-fit: contain;
    background: white;
    border-radius: 8px;
    padding: 10px;
}

.narrow-content {
    max-width: 850px;
}


/* =========================================================
   SERVICES
   ========================================================= */

.service-buttons-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.service-button {
    display: grid;
    grid-template-columns: 55px 1fr 30px;
    align-items: center;

    min-height: 100px;
    padding: 20px;

    background: #0c0c0c;
    border: 1px solid rgba(212,175,55,.16);
    border-radius: var(--radius);

    transition: var(--transition);
}

.service-button:hover {
    transform: translateY(-5px);
    border-color: var(--gold);
    background: #111;
    box-shadow: var(--gold-shadow);
}

.service-button-number {
    color: var(--gold);
    font-family: "Montserrat", sans-serif;
    font-weight: 800;
}

.service-button-title {
    color: white;
    font-weight: 800;
}

.service-button-arrow {
    color: var(--gold-light);
    font-size: 1.4rem;
}

.specialized-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.specialized-card {
    padding: 25px;

    background: #0c0c0c;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: var(--radius);

    transition: var(--transition);
}

.specialized-card:hover {
    transform: translateY(-5px);
    border-color: var(--border);
}

.specialized-card h3 {
    margin-bottom: 10px;
    color: var(--gold-light);
}

.three-column {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}


/* =========================================================
   DYNAMIC SERVICE PAGE
   ========================================================= */

.dynamic-page {
    background: #060606;
}

.dynamic-content {
    padding: 90px 0;
}

.dynamic-content .back-link {
    display: inline-block;
    margin-bottom: 30px;
    color: var(--gold-light);
    font-weight: 800;
}

.dynamic-content h1 {
    margin-bottom: 20px;
}

.dynamic-content .service-intro {
    max-width: 850px;
    margin-bottom: 45px;
}

.dynamic-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 35px;
}

.dynamic-detail-card {
    padding: 28px;
    background: #0d0d0d;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.dynamic-detail-card h3 {
    margin-bottom: 10px;
    color: var(--gold-light);
}


/* =========================================================
   FAQ
   ========================================================= */

.faq-container {
    max-width: 900px;
}

.faq-list {
    display: grid;
    gap: 12px;
}

.faq-item {
    overflow: hidden;
    background: #0c0c0c;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 10px;
}

.faq-question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    padding: 20px;

    color: white;
    background: transparent;
    border: 0;

    text-align: left;
    font-weight: 700;
}

.faq-icon {
    flex-shrink: 0;

    color: var(--gold);
    font-size: 1.5rem;

    transition: var(--transition);
}

.faq-item.open .faq-icon {
    transform: rotate(45deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}

.faq-answer p {
    padding: 0 20px 20px;
}


/* =========================================================
   LOCATIONS
   ========================================================= */

.location-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.location-card {
    position: relative;

    min-height: 220px;
    padding: 28px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    background:
        linear-gradient(
            145deg,
            #111,
            #080808
        );

    border: 1px solid rgba(212,175,55,.16);
    border-radius: var(--radius);

    overflow: hidden;

    transition: var(--transition);
}

.location-card::after {
    content: "";
    position: absolute;
    right: -50px;
    bottom: -50px;

    width: 130px;
    height: 130px;

    border-radius: 50%;
    border: 1px solid rgba(212,175,55,.12);
}

.location-card:hover {
    transform: translateY(-7px);
    border-color: var(--gold);
    box-shadow: var(--gold-shadow);
}

.location-card-number {
    color: var(--gold);
    font-weight: 800;
}

.location-card h3 {
    margin-top: 20px;
}

.location-card strong {
    font-size: 1.25rem;
}

.location-card-link {
    margin-top: 18px;
    color: var(--gold-light);
    font-weight: 700;
}

.service-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.service-tags span {
    padding: 9px 14px;

    color: #ddd;
    background: #0d0d0d;

    border: 1px solid rgba(212,175,55,.18);
    border-radius: 30px;

    font-size: .85rem;
}


/* =========================================================
   DYNAMIC LOCATION PAGE
   ========================================================= */

.location-detail {
    padding: 90px 0;
}

.location-detail h1 {
    margin-bottom: 15px;
}

.location-detail-intro {
    max-width: 850px;
    margin-bottom: 45px;
}

.location-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}


/* =========================================================
   CONTACT
   ========================================================= */

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}

.contact-image {
    position: relative;
    overflow: hidden;

    border: 1px solid var(--border);
    border-radius: var(--radius);

    box-shadow: var(--shadow);
}

.contact-image img {
    width: 100%;
    min-height: 560px;
    object-fit: cover;
}

.contact-image-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;

    display: flex;
    flex-direction: column;

    padding: 30px;

    background:
        linear-gradient(
            transparent,
            rgba(0,0,0,.95)
        );

    color: white;
}

.contact-image-overlay strong {
    margin: 6px 0;
    font-size: 1.4rem;
}

.contact-form-wrapper {
    padding: 35px;

    background: #0b0b0b;
    border: 1px solid var(--border);
    border-radius: var(--radius);

    box-shadow: var(--shadow);
}

.contact-form-wrapper h2 {
    margin-bottom: 12px;
}

.contact-form {
    margin-top: 28px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.form-group {
    margin-bottom: 18px;
}

.form-group label {
    display: block;
    margin-bottom: 7px;

    color: #ddd;
    font-size: .85rem;
    font-weight: 700;
}

.form-group label span {
    color: var(--gold);
}

.form-group input,
.form-group textarea {
    width: 100%;

    padding: 13px 14px;

    color: white;
    background: #050505;

    border: 1px solid rgba(255,255,255,.12);
    border-radius: 7px;

    outline: none;

    transition: var(--transition);
}

.form-group textarea {
    resize: vertical;
}

.form-group input:focus,
.form-group textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212,175,55,.08);
}

.btn-submit {
    width: 100%;
}

.form-message {
    min-height: 24px;
    margin-bottom: 10px;
    font-size: .85rem;
}

.form-message.success {
    color: #70e69a;
}

.form-message.error {
    color: #ff7777;
}

.free-advice {
    margin-top: 22px;
    padding-top: 20px;

    border-top: 1px solid rgba(255,255,255,.08);

    display: flex;
    justify-content: space-between;
    gap: 15px;
}

.free-advice a {
    color: var(--gold-light);
    font-weight: 800;
}

.contact-info-section {
    padding: 50px 0;
    background: #090909;
    border-top: 1px solid var(--border);
}

.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.contact-info-item {
    padding: 25px;
    text-align: center;
    border-right: 1px solid rgba(255,255,255,.07);
}

.contact-info-item:last-child {
    border-right: 0;
}

.contact-info-label {
    display: block;
    margin-bottom: 6px;

    color: var(--gold);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.contact-info-item a {
    color: white;
    font-size: 1.2rem;
    font-weight: 900;
}


/* =========================================================
   FOOTER
   ========================================================= */

.site-footer {
    background: #020202;
    border-top: 1px solid var(--border);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 45px;

    padding: 70px 0;
}

.footer-brand p {
    max-width: 330px;
    margin: 20px 0;
}

.footer-phone {
    color: var(--gold-light);
    font-size: 1.15rem;
    font-weight: 900;
}

.footer-column {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-column h3 {
    margin-bottom: 10px;
    color: white;
    font-size: 1rem;
}

.footer-column a {
    color: #909090;
    font-size: .88rem;
    transition: var(--transition);
}

.footer-column a:hover {
    color: var(--gold-light);
    transform: translateX(3px);
}

.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.07);
}

.footer-bottom-content {
    min-height: 65px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.footer-bottom p {
    font-size: .75rem;
}


/* =========================================================
   BACK TO TOP
   ========================================================= */

.back-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 900;

    width: 46px;
    height: 46px;

    color: #050505;
    background: var(--gold);

    border: 0;
    border-radius: 50%;

    font-size: 1.2rem;
    font-weight: 900;

    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);

    transition: var(--transition);
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    background: var(--gold-light);
    transform: translateY(-3px);
}


/* =========================================================
   CURSOR GLOW
   ========================================================= */

.cursor-glow {
    position: fixed;
    width: 180px;
    height: 180px;

    pointer-events: none;
    z-index: 9999;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(212,175,55,.11),
            transparent 65%
        );

    transform: translate(-50%, -50%);

    mix-blend-mode: screen;

    transition:
        left .08s linear,
        top .08s linear;
}


/* =========================================================
   RIPPLE
   ========================================================= */

.ripple {
    position: absolute;

    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: rgba(255,255,255,.45);

    transform: translate(-50%, -50%) scale(0);
    animation: ripple .65s ease-out forwards;

    pointer-events: none;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes ambientGlow {
    from {
        opacity: .65;
    }

    to {
        opacity: 1;
    }
}

@keyframes particlesMove {
    from {
        background-position: 0 0, 40px 70px;
    }

    to {
        background-position: 0 -180px, 40px -300px;
    }
}

@keyframes heroFire {
    from {
        transform: scale(1);
        opacity: .6;
    }

    to {
        transform: scale(1.15);
        opacity: 1;
    }
}

@keyframes slowSpin {
    from {
        transform: rotate(0);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes ripple {
    to {
        transform: translate(-50%, -50%) scale(35);
        opacity: 0;
    }
}


/* =========================================================
   RESPONSIVE TABLET
   ========================================================= */

@media (max-width: 1050px) {

    .main-navigation {
        gap: 0;
    }

    .nav-link,
    .nav-dropdown-toggle {
        padding-inline: 9px;
        font-size: .82rem;
    }

    .nav-contact-button {
        padding-inline: 13px;
    }

    .feature-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .specialized-services-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .location-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 980px) {

    .container {
        width: min(100% - 28px, var(--container));
    }

    .top-bar-content {
        justify-content: center;
        min-height: 48px;
    }

    .top-bar-message {
        display: none;
    }

    .top-phone {
        font-size: .85rem;
    }

    .header-content {
        min-height: 70px;
    }

    .mobile-menu-toggle {
        display: block;
    }

    .main-navigation {
        position: absolute;
        left: 14px;
        right: 14px;
        top: calc(100% + 8px);

        display: flex;
        flex-direction: column;
        align-items: stretch;

        padding: 12px;

        background: rgba(7,7,7,.98);
        border: 1px solid var(--border);
        border-radius: 12px;

        box-shadow: var(--shadow);

        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);

        transition: var(--transition);
    }

    .main-navigation.mobile-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .nav-link,
    .nav-dropdown-toggle {
        width: 100%;
        justify-content: space-between;

        padding: 14px;
    }

    .nav-link::after {
        display: none;
    }

    .nav-dropdown {
        width: 100%;
    }

    .dropdown-menu {
        position: static;

        width: 100%;
        margin-top: 5px;

        display: none;

        opacity: 1;
        visibility: visible;
        transform: none;

        box-shadow: none;
        border-color: rgba(212,175,55,.12);
    }

    .nav-dropdown.open .dropdown-menu {
        display: block;
    }

    .nav-contact-button {
        margin: 7px 0 0;
        text-align: center;
    }

    .hero-section {
        min-height: 650px;
    }

    .hero-content {
        padding-block: 80px;
    }

    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .hero-actions .btn {
        width: 100%;
    }

    .trust-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .trust-item:nth-child(2) {
        border-right: 0;
    }

    .trust-item:nth-child(-n+2) {
        border-bottom: 1px solid rgba(255,255,255,.06);
    }

    .quote-highlight-content,
    .service-area-content,
    .trust-badge-content {
        flex-direction: column;
        align-items: flex-start;
    }

    .two-column,
    .about-intro,
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .feature-grid,
    .specialized-services-grid,
    .location-grid,
    .three-column {
        grid-template-columns: 1fr;
    }

    .service-buttons-grid {
        grid-template-columns: 1fr;
    }

    .dynamic-detail-grid,
    .location-detail-grid {
        grid-template-columns: 1fr;
    }

    .contact-image img {
        min-height: 350px;
    }

    .contact-info-grid {
        grid-template-columns: 1fr;
    }

    .contact-info-item {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.07);
    }

    .contact-info-item:last-child {
        border-bottom: 0;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .footer-bottom-content {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        padding: 18px 0;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .free-advice {
        flex-direction: column;
    }

    .page-hero {
        padding: 80px 0 65px;
    }

    .content-section {
        padding: 70px 0;
    }

    .final-cta {
        padding: 75px 15px;
    }

    .cursor-glow {
        display: none;
    }
}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 480px) {

    .brand-title {
        font-size: 1.08rem;
    }

    .brand-subtitle {
        font-size: .62rem;
    }

    .hero-section {
        min-height: 610px;
    }

    .hero-content h1 {
        font-size: 2.5rem;
    }

    .hero-tagline {
        font-size: 1.25rem;
    }

    .trust-grid {
        grid-template-columns: 1fr;
    }

    .trust-item,
    .trust-item:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.06);
    }

    .trust-item:last-child {
        border-bottom: 0;
    }

    .service-button {
        grid-template-columns: 42px 1fr 25px;
        padding: 17px;
    }

    .service-button-title {
        font-size: .9rem;
    }

    .content-card,
    .contact-form-wrapper {
        padding: 23px;
    }

    .location-card {
        min-height: 195px;
    }

    .back-to-top {
        right: 15px;
        bottom: 15px;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

}

/* =========================================================
   PROFESSIONAL V2 ENHANCEMENTS
   ========================================================= */

.protected-image { -webkit-user-drag: none; user-select: none; -webkit-user-select: none; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.header-content { gap: 16px; }
.header-tools { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.header-logo-link { display:flex; align-items:center; justify-content:center; width:148px; min-height:58px; }
.header-logo { width:145px; height:auto; filter: drop-shadow(0 4px 14px rgba(212,175,55,.18)); }
.language-switch { display:flex; padding:3px; border:1px solid var(--border); border-radius:999px; background:#080808; }
.lang-btn { min-width:38px; height:32px; padding:0 8px; border:0; border-radius:999px; color:#bbb; background:transparent; font-size:.72rem; font-weight:900; letter-spacing:.05em; transition:var(--transition); }
.lang-btn:hover,.lang-btn.active { color:#050505; background:linear-gradient(135deg,var(--gold-light),var(--gold)); }

.hero-section { min-height: min(820px, calc(100vh - 124px)); }
.hero-slideshow,.hero-slide { position:absolute; inset:0; }
.hero-slideshow { z-index:0; }
.hero-slide { background-size:cover; background-position:center; opacity:0; transform:scale(1.035); transition:opacity 1.3s ease, transform 6s ease; }
.hero-slide.active { opacity:1; transform:scale(1); }
.hero-section::before { z-index:1; }
.hero-overlay { z-index:1; background:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.73) 44%,rgba(0,0,0,.40) 72%,rgba(0,0,0,.52) 100%),linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.68)); }
.hero-content { z-index:2; text-shadow:0 2px 18px rgba(0,0,0,.55); }

.promo-flyer-card { padding:10px; overflow:hidden; background:#0a0a0a; }
.promo-flyer-card:hover { transform:translateY(-4px) scale(1.005); }
.promo-flyer { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:10px; }

.google-business-section { background:linear-gradient(180deg,#080808,#030303); border-top:1px solid rgba(212,175,55,.12); }
.google-live-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.google-live-card { padding:22px; border:1px solid var(--border); border-radius:var(--radius); background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012)); box-shadow:var(--shadow); }
.google-live-heading { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.google-live-heading strong { color:#fff; }
.google-dot { width:10px; height:10px; border-radius:50%; background:var(--gold); box-shadow:0 0 18px rgba(212,175,55,.75); }
.google-share-frame { width:100%; height:320px; border:1px solid rgba(255,255,255,.08); border-radius:10px; background:#111; }
.embed-note { margin:12px 0 16px; font-size:.83rem; }
.google-action-row { display:flex; gap:10px; flex-wrap:wrap; }
.business-map-card { margin-top:25px; display:grid; grid-template-columns:.7fr 1.3fr; overflow:hidden; border:1px solid var(--border); border-radius:var(--radius); background:#080808; }
.business-map-copy { padding:30px; align-self:center; }
.business-map-copy h3 { margin-bottom:10px; }
.business-map { width:100%; min-height:390px; border:0; filter:grayscale(.12) contrast(1.02); }

.policy-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:42px; align-items:start; }
.policy-summary { position:sticky; top:120px; }
.policy-summary .btn { margin-top:18px; }
.policy-content { display:grid; gap:18px; }
.policy-block { padding:27px 30px; border:1px solid rgba(212,175,55,.16); border-radius:12px; background:rgba(255,255,255,.025); }
.policy-block h2 { margin-bottom:12px; font-size:1.32rem; color:var(--gold-light); }
.policy-block p { margin:0; }

.whatsapp-float { position:fixed; left:22px; bottom:22px; z-index:990; min-height:52px; padding:0 18px 0 12px; display:flex; align-items:center; gap:9px; border:1px solid rgba(255,255,255,.15); border-radius:999px; background:#159c4a; color:#fff; font-weight:900; box-shadow:0 12px 32px rgba(0,0,0,.42); transition:var(--transition); }
.whatsapp-float:hover { transform:translateY(-3px); filter:brightness(1.08); }
.whatsapp-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.16); font-size:1.2rem; }

.assistant-widget { position:fixed; right:22px; bottom:22px; z-index:995; }
.assistant-toggle { width:58px; height:58px; border:1px solid rgba(245,215,110,.45); border-radius:50%; color:#050505; background:linear-gradient(135deg,var(--gold-light),var(--gold)); font-size:1.45rem; font-weight:900; box-shadow:0 15px 40px rgba(0,0,0,.48),0 0 28px rgba(212,175,55,.22); }
.assistant-panel { position:absolute; right:0; bottom:72px; width:min(385px,calc(100vw - 30px)); height:560px; max-height:calc(100vh - 150px); display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(212,175,55,.28); border-radius:18px; background:rgba(7,7,7,.98); box-shadow:0 22px 80px rgba(0,0,0,.68); opacity:0; visibility:hidden; transform:translateY(12px) scale(.98); transition:var(--transition); backdrop-filter:blur(18px); }
.assistant-panel.open { opacity:1; visibility:visible; transform:none; }
.assistant-header { min-height:74px; padding:15px 16px; display:flex; justify-content:space-between; align-items:center; background:linear-gradient(135deg,rgba(212,175,55,.16),rgba(255,255,255,.02)); border-bottom:1px solid rgba(255,255,255,.07); }
.assistant-header > div { display:grid; grid-template-columns:auto 1fr; column-gap:9px; align-items:center; }
.assistant-header strong { color:#fff; font-size:.92rem; }
.assistant-header small { grid-column:2; color:#8f8f8f; font-size:.7rem; }
.assistant-status { width:9px; height:9px; border-radius:50%; background:#39d674; box-shadow:0 0 12px rgba(57,214,116,.75); }
.assistant-header button { width:32px; height:32px; border:0; border-radius:50%; color:#ddd; background:rgba(255,255,255,.06); font-size:1.25rem; }
.assistant-messages { flex:1; padding:16px; overflow:auto; display:flex; flex-direction:column; gap:10px; }
.assistant-message { max-width:88%; padding:10px 12px; border-radius:12px 12px 12px 4px; color:#d9d9d9; background:#151515; border:1px solid rgba(255,255,255,.06); font-size:.83rem; line-height:1.5; }
.assistant-message.user { align-self:flex-end; border-radius:12px 12px 4px 12px; color:#050505; background:var(--gold-light); border-color:var(--gold-light); }
.assistant-quick { padding:0 14px 10px; display:flex; gap:7px; overflow-x:auto; }
.assistant-quick button { flex:0 0 auto; padding:7px 10px; border:1px solid var(--border); border-radius:999px; color:var(--gold-light); background:#0b0b0b; font-size:.72rem; }
.assistant-form { display:grid; grid-template-columns:1fr 42px; gap:8px; padding:12px; border-top:1px solid rgba(255,255,255,.07); }
.assistant-form input { min-width:0; height:42px; padding:0 12px; border:1px solid rgba(255,255,255,.09); border-radius:9px; color:#fff; background:#111; outline:none; }
.assistant-form input:focus { border-color:rgba(212,175,55,.55); box-shadow:0 0 0 3px rgba(212,175,55,.08); }
.assistant-form button { border:0; border-radius:9px; color:#050505; background:var(--gold); font-weight:900; }
.back-to-top { right:92px; }

@media (max-width: 1180px) {
  .header-logo-link { width:112px; }
  .header-logo { width:110px; }
  .header-content { gap:9px; }
  .nav-link,.nav-dropdown-toggle { padding-inline:8px; }
  .lang-btn { min-width:34px; padding-inline:6px; }
}
@media (max-width: 1050px) {
  .header-logo-link { width:94px; }
  .header-logo { width:92px; }
  .language-switch { display:none; }
}
@media (max-width: 980px) {
  .header-content { flex-wrap:nowrap; }
  .brand { flex:1; }
  .header-tools { order:2; }
  .mobile-menu-toggle { order:3; }
  .main-navigation { order:4; }
  .header-logo-link { width:104px; }
  .header-logo { width:102px; }
  .language-switch { display:flex; position:absolute; top:calc(100% + 14px); right:76px; z-index:10; }
  .hero-section { min-height:calc(100vh - 118px); }
  .hero-slide { background-position:center; }
  .google-live-grid,.business-map-card,.policy-layout { grid-template-columns:1fr; }
  .policy-summary { position:static; }
  .business-map { min-height:330px; }
  .google-share-frame { height:270px; }
  .whatsapp-label { display:none; }
  .whatsapp-float { width:54px; padding:0; justify-content:center; }
  .whatsapp-icon { background:transparent; }
  .assistant-widget { right:14px; bottom:14px; }
  .assistant-panel { bottom:68px; }
  .back-to-top { right:80px; bottom:18px; }
}
@media (max-width:480px) {
  .brand-title,.brand-subtitle { display:none; }
  .brand { flex:0 0 0; width:0; overflow:hidden; }
  .header-tools { margin-right:auto; }
  .header-logo-link { width:126px; }
  .header-logo { width:122px; }
  .language-switch { right:70px; top:calc(100% + 10px); }
  .google-live-card,.policy-block { padding:20px; }
  .business-map-copy { padding:22px; }
  .assistant-panel { width:calc(100vw - 20px); right:-4px; height:540px; }
}

/* =========================================================
   GOOGLE BUSINESS PROFILES - EMBED FIX
   ========================================================= */
.google-live-heading > div { min-width:0; }
.google-profile-address { display:block; margin-top:5px; color:var(--muted); font-size:.82rem; line-height:1.45; }
.google-map-profile { border:0; background:#0b0b0b; filter:grayscale(.05) contrast(1.02); }
.google-profiles-note { margin-top:24px; padding:22px 24px; border:1px solid rgba(212,175,55,.16); border-radius:12px; background:rgba(255,255,255,.025); text-align:center; }
.google-profiles-note .section-label { margin-bottom:7px; }
.google-profiles-note p { max-width:850px; margin:0 auto; }
@media (max-width: 760px) {
  .google-live-grid { grid-template-columns:1fr; }
  .google-share-frame { height:360px; }
  .google-action-row .btn { width:100%; text-align:center; justify-content:center; }
}


/* =========================================================
   V2.2 CONTENT UPDATE: LOCATIONS / SERVICES / FAQS
   ========================================================= */
.quote-highlight h2 strong.price-red { color:#ff3b30 !important; text-shadow:0 0 18px rgba(255,59,48,.18); }
html[lang="en"] .lang-es, html[lang="es"] .lang-en { display:none !important; }
.lang-block { width:100%; }
.rich-copy { max-width:1120px; }
.rich-copy > p, .rich-copy > ul { max-width:980px; }
.rich-copy h3 { margin:42px 0 18px; color:#fff; }
.rich-copy a { color:var(--gold-light); text-decoration:underline; text-underline-offset:3px; }
.service-hero-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr); gap:44px; align-items:center; }
.service-hero-copy h2 { font-size:clamp(2.1rem,5vw,4rem); color:var(--gold-light); margin:10px 0 12px; }
.lead-copy { font-size:1.15rem; }
.editorial-image { display:block; width:100%; border-radius:16px; border:1px solid rgba(212,175,55,.22); box-shadow:0 18px 50px rgba(0,0,0,.42); object-fit:cover; }
.editorial-image.wide { max-height:560px; margin:34px auto; }
.editorial-image.small { width:min(100%,420px); max-height:280px; object-fit:contain; background:#080808; }
.content-media-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:36px 0; align-items:center; }
.service-link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.service-link-card { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px; border:1px solid rgba(212,175,55,.18); border-radius:14px; color:#d4d4d4; background:linear-gradient(145deg,#111,#080808); transition:var(--transition); }
.service-link-card strong { color:#fff; }
.service-link-card span { color:var(--gold); font-size:1.35rem; }
.service-link-card:hover { transform:translateY(-5px); border-color:var(--gold); box-shadow:var(--gold-shadow); }
.service-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:24px 0 10px; }
.service-detail-grid article { padding:24px; border:1px solid rgba(212,175,55,.15); border-radius:13px; background:rgba(255,255,255,.025); }
.service-detail-grid h4 { margin-bottom:9px; color:var(--gold-light); }
.check-list { display:grid; gap:10px; padding-left:20px; }
.centered-emphasis { text-align:center; font-size:1.25rem; color:var(--gold-light); }
.faq-brand-intro { display:grid; grid-template-columns:minmax(220px,360px) 1fr; gap:36px; align-items:center; margin-bottom:36px; padding:24px; border:1px solid rgba(212,175,55,.16); border-radius:16px; background:rgba(255,255,255,.025); }
.faq-logo { width:100%; max-height:160px; object-fit:contain; }
.faq-brand-intro h2 { margin-top:8px; color:var(--gold-light); }
.footer-locations-served { padding:28px 0 18px; text-align:center; color:#aaa; font-size:.82rem; line-height:1.8; border-bottom:1px solid rgba(255,255,255,.055); }
.footer-locations-served strong { color:var(--gold-light); text-transform:uppercase; letter-spacing:.08em; }
.footer-column a strong { color:#bdbdbd; font-weight:800; }
.footer-column a:hover strong { color:var(--gold-light); }
.location-article .page-hero { padding-bottom:72px; }
.location-summary-bar { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:30px; }
.location-summary-bar span { padding:12px 14px; border:1px solid rgba(212,175,55,.2); border-radius:999px; text-align:center; color:#ddd; background:rgba(0,0,0,.24); font-size:.82rem; font-weight:700; }
.location-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); gap:44px; align-items:center; }
.location-layout.reverse { grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr); }
.location-layout.reverse .location-copy { order:2; }
.location-layout.reverse .editorial-image { order:1; }
.location-copy h2, .location-copy h3 { color:#fff; }
.location-copy h3 { margin:28px 0 12px; }
.location-price-card { padding:30px; margin:32px 0; border:1px solid rgba(255,59,48,.32); border-radius:16px; background:linear-gradient(135deg,rgba(255,59,48,.08),rgba(212,175,55,.06)); text-align:center; }
.location-price-card .price-red { color:#ff3b30; font-size:clamp(1.65rem,4vw,2.8rem); font-weight:900; }
.landmark-list, .location-service-list { display:grid; gap:10px; padding-left:0; list-style:none; }
.landmark-list li, .location-service-list li { padding:13px 16px; border-left:3px solid var(--gold); background:rgba(255,255,255,.025); }
.location-section-image { margin:30px auto; max-height:520px; }
.location-review-image { max-width:460px; max-height:280px; object-fit:contain; margin:28px auto; }
.location-callout { padding:28px; margin:28px 0; border:1px solid rgba(212,175,55,.18); border-radius:15px; background:rgba(212,175,55,.045); }
.location-callout h3 { color:var(--gold-light); }
.location-copy a, .location-article a.inline-link { color:var(--gold-light); text-decoration:underline; text-underline-offset:3px; }
.location-article .content-section h2 { margin-bottom:18px; }
.location-article .content-section h3 { margin-bottom:12px; }
.location-article .content-section p + p { margin-top:14px; }
.location-article .content-section .btn { text-decoration:none; }

@media (max-width:980px){
  .service-hero-grid,.location-layout,.location-layout.reverse { grid-template-columns:1fr; }
  .location-layout.reverse .location-copy,.location-layout.reverse .editorial-image { order:initial; }
  .service-link-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-summary-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px){
  .service-link-grid,.service-detail-grid,.content-media-strip,.faq-brand-intro { grid-template-columns:1fr; }
  .service-detail-hero { background-position:center center; }
  .service-detail-hero h1, .service-detail-hero p { max-width:100%; }
  .service-link-card { min-height:76px; padding:18px; }
  .location-summary-bar { grid-template-columns:1fr; }
  .footer-locations-served { padding-inline:16px; text-align:left; }
}


/* =========================================================
   V2.3 FAQ + IMAGE CLARITY POLISH
   ========================================================= */

/* Fallback for the FAQ accordion if inline height is temporarily unavailable. */
.faq-item.open .faq-answer {
    max-height: 520px;
}

.faq-question {
    cursor: pointer;
}

/* Mild clarity treatment for editorial photos/graphics.
   This improves perceived sharpness/contrast without distorting branding. */
.editorial-image,
.location-section-image,
.location-review-image,
.service-promo-image {
    filter: contrast(1.045) saturate(1.035) brightness(1.01);
    image-rendering: auto;
    backface-visibility: hidden;
}

/* Keep removed location badge area from leaving awkward spacing. */
.location-layout + .container:empty {
    display: none;
}


/* === V2.4 PROFESSIONAL UPDATE === */
.call-bubbles{position:fixed;left:18px;bottom:180px;display:flex;flex-direction:column;gap:12px;z-index:9998}
.call-bubble{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:999px;background:#111;color:#fff;border:1px solid rgba(233,190,72,.45);box-shadow:0 12px 30px rgba(0,0,0,.32);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.call-bubble:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(0,0,0,.38);background:#171717}
.call-bubble-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#e9be48,#c99717);color:#111;font-weight:800}
.call-bubble-label{font-weight:700;letter-spacing:.01em}
.disabled-link{display:inline-flex;align-items:center;justify-content:center;pointer-events:none;opacity:.7}
.editorial-image,.contact-image img{width:100%;height:auto;max-width:100%;object-fit:cover;filter:contrast(1.03) saturate(1.03);image-rendering:auto}
.editorial-image.small{max-width:320px}
.content-media-strip{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.number-list{padding-left:1.35rem;display:grid;gap:10px}
.number-list li{padding-left:.2rem}
.service-link-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.service-link-card{min-height:unset}
.location-page-grid{align-items:center}
.zip-grid-wrapper{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.map-3d-card{position:relative;min-height:330px;border-radius:28px;overflow:hidden;background:linear-gradient(160deg,#1b1b1b,#101010);border:1px solid rgba(233,190,72,.18);box-shadow:0 18px 50px rgba(0,0,0,.34)}
.map-3d-surface{position:absolute;inset:18px;border-radius:22px;background:linear-gradient(180deg,#2a2a2a 0%,#171717 100%);transform:perspective(900px) rotateX(62deg);transform-origin:center 80%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 24px 60px rgba(0,0,0,.4)}
.map-3d-surface::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:34px 34px;border-radius:inherit}
.map-3d-road{position:absolute;background:linear-gradient(90deg,rgba(233,190,72,.9),rgba(233,190,72,.55));height:10px;border-radius:999px;box-shadow:0 0 0 2px rgba(0,0,0,.15),0 0 20px rgba(233,190,72,.35)}
.map-3d-road.road-one{width:65%;left:14%;top:52%;transform:rotate(-18deg)}
.map-3d-road.road-two{width:48%;left:28%;top:63%;transform:rotate(24deg)}
.map-3d-pin{position:absolute;width:18px;height:18px;border-radius:50% 50% 50% 0;background:#e9be48;transform:rotate(-45deg);box-shadow:0 6px 16px rgba(233,190,72,.45)}
.map-3d-pin::after{content:"";position:absolute;inset:4px;border-radius:50%;background:#111}
.map-3d-pin.pin-a{left:26%;top:44%}.map-3d-pin.pin-b{left:58%;top:50%}.map-3d-pin.pin-c{left:48%;top:68%}
.map-3d-label,.map-3d-badge{position:absolute;left:20px;padding:10px 14px;border-radius:999px;background:rgba(5,5,5,.78);border:1px solid rgba(233,190,72,.25);backdrop-filter:blur(8px)}
.map-3d-label{top:20px;font-weight:800}.map-3d-badge{bottom:20px;color:#e9be48;font-weight:700}
.assistant-message{margin-bottom:12px;display:flex}.assistant-message p{margin:0;padding:10px 14px;border-radius:16px;max-width:90%;line-height:1.45}.assistant-message.assistant p{background:#111;border:1px solid rgba(233,190,72,.18)}.assistant-message.user{justify-content:flex-end}.assistant-message.user p{background:#e9be48;color:#111;font-weight:700}
.assistant-quick{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.assistant-quick button{border:none;background:#171717;color:#fff;border-radius:999px;padding:10px 14px;cursor:pointer;border:1px solid rgba(233,190,72,.18)}
.assistant-panel{display:none}.assistant-panel.open{display:block}
@media (max-width:860px){.call-bubbles{left:14px;bottom:150px}.call-bubble-label{font-size:.9rem}.map-3d-card{min-height:280px}}
@media (max-width:640px){.call-bubbles{left:12px;bottom:142px}.call-bubble{padding:10px 12px}.call-bubble-label{font-size:.8rem}}


/* =========================================================
   V2.5 REPAIR + CONTENT RESTORE
   ========================================================= */
.page-section.active-page { display:block; }
.brand { flex:0 0 154px; width:154px; align-items:flex-start; }
.brand-logo { width:150px; height:auto; display:block; filter:drop-shadow(0 5px 16px rgba(212,175,55,.18)); }
.header-tools { margin-left:auto; }
.header-content { gap:12px; }
.main-navigation { flex:1 1 auto; justify-content:center; gap:1px; min-width:0; }
.nav-link,.nav-dropdown-toggle { white-space:nowrap; padding:12px 8px; font-size:.82rem; }
.nav-contact-button { white-space:nowrap; margin-left:4px; padding:11px 13px; font-size:.8rem; }
.header-logo-link { display:none !important; }

/* Desktop dropdowns are available on hover/focus while a click navigates to the main page. */
.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }

/* Animated call bubbles */
.call-bubbles { bottom:176px; }
.call-bubble { position:relative; overflow:visible; animation:callBubbleFloat 3.2s ease-in-out infinite; }
.call-bubble:nth-child(2){ animation-delay:.5s; }
.call-bubble::after { content:""; position:absolute; inset:-6px; border:1px solid rgba(233,190,72,.28); border-radius:999px; opacity:0; animation:callRingPulse 2.4s ease-out infinite; pointer-events:none; }
.call-bubble-icon { animation:phoneWiggle 3.4s ease-in-out infinite; }
.call-bubble:active { transform:scale(.96); }
@keyframes callBubbleFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
@keyframes callRingPulse { 0%{transform:scale(.92);opacity:0} 18%{opacity:.72} 70%,100%{transform:scale(1.12);opacity:0} }
@keyframes phoneWiggle { 0%,72%,100%{transform:rotate(0)} 76%{transform:rotate(-13deg)} 80%{transform:rotate(13deg)} 84%{transform:rotate(-9deg)} 88%{transform:rotate(0)} }

/* Trust logos appear near the end of every page and dynamic subpage. */
.trust-logo-strip { padding:30px 0 34px; border-top:1px solid rgba(212,175,55,.13); background:linear-gradient(180deg,rgba(7,7,7,.9),#040404); }
.trust-logo-row { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:26px; }
.trust-mini-logo { width:auto; max-width:175px; height:72px; object-fit:contain; border-radius:10px; padding:7px; background:rgba(255,255,255,.96); box-shadow:0 10px 26px rgba(0,0,0,.3); }

/* Service and location pages now contain fuller editorial detail. */
.service-detail-lead { align-items:start; }
.service-card-highlight { position:sticky; top:128px; }
.location-service-list strong { color:#e8e8e8; }

@media (max-width:1180px){
  .brand{flex-basis:128px;width:128px}.brand-logo{width:126px}
  .nav-link,.nav-dropdown-toggle{font-size:.76rem;padding-inline:6px}
  .nav-contact-button{font-size:.75rem;padding-inline:10px}
}
@media (max-width:1050px){
  .main-navigation{justify-content:flex-start}
}
@media (max-width:980px){
  .brand{flex:1 1 auto;width:auto}.brand-logo{width:132px}
  .nav-link,.nav-dropdown-toggle{font-size:.9rem;white-space:normal}
  .service-card-highlight{position:static}
}
@media (max-width:640px){
  .trust-logo-row{gap:14px}.trust-mini-logo{height:56px;max-width:130px;padding:5px}
  .call-bubbles{bottom:150px}.call-bubble-label{display:none}.call-bubble{width:54px;height:54px;padding:0;justify-content:center}.call-bubble-icon{width:38px;height:38px}
}
@media (prefers-reduced-motion:reduce){.call-bubble,.call-bubble::after,.call-bubble-icon{animation:none!important}}


/* === V2.6 final polish === */

.header-content{gap:18px;}
.main-navigation{gap:8px;}
.nav-link,.nav-dropdown-toggle{font-size:.9rem;padding:14px 12px;}
.nav-contact-button{padding:12px 16px;font-size:.86rem;}
.brand{flex:0 0 170px;width:170px;}
.brand-logo{width:164px;}
.service-hero-grid.no-media{grid-template-columns:1fr;}
.service-hero-grid.no-media .service-hero-copy{max-width:900px;}

/* right-side collapsible call bubbles */
.call-bubbles{left:auto;right:18px;bottom:196px;align-items:flex-end;gap:14px;}
.call-bubble{width:58px;min-width:58px;height:58px;padding:0 12px;justify-content:flex-start;border-radius:999px;overflow:hidden;cursor:pointer;transition:width .28s ease,padding .28s ease,transform .2s ease,box-shadow .2s ease,background .2s ease;}
.call-bubble-label{display:block;max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transform:translateX(6px);transition:max-width .28s ease,opacity .22s ease,transform .22s ease;}
.call-bubble.is-open{width:182px;padding:0 18px 0 12px;}
.call-bubble.is-open .call-bubble-label{max-width:120px;opacity:1;transform:none;}
.call-bubble::after{inset:-4px;}

/* cleaner location detail layout */
.location-page-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr);gap:34px;align-items:start;}
.location-main-copy{display:flex;flex-direction:column;gap:0;}
.location-side-stack{display:grid;gap:22px;align-content:start;}
.location-price-card{margin:0;padding:30px 28px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));border:1px solid rgba(212,175,55,.16);box-shadow:0 18px 40px rgba(0,0,0,.24);text-align:center;}
.location-price-card p{max-width:40ch;margin:10px auto 0;}
.map-3d-card{min-height:360px;}

@media (max-width:1180px){
  .brand{flex-basis:152px;width:152px}.brand-logo{width:148px}
  .main-navigation{gap:6px}
  .nav-link,.nav-dropdown-toggle{font-size:.84rem;padding:13px 9px}
}
@media (max-width:980px){
  .brand{flex:1 1 auto;width:auto}.brand-logo{width:136px}
  .location-page-grid{grid-template-columns:1fr;gap:24px}
  .location-side-stack{order:2}
}
@media (max-width:860px){.call-bubbles{right:14px;left:auto;bottom:154px}}
@media (max-width:640px){
  .call-bubbles{right:12px;left:auto;bottom:148px;gap:10px}
  .call-bubble{width:54px;min-width:54px;height:54px;padding:0;justify-content:center}
  .call-bubble.is-open{width:170px;padding:0 14px 0 10px;justify-content:flex-start}
  .call-bubble.is-open .call-bubble-label{display:block;font-size:.8rem}
}


/* === V2.6.1 micro-fixes === */

body.force-close-dropdowns .nav-dropdown .dropdown-menu,
body.force-close-dropdowns .nav-dropdown:hover .dropdown-menu,
body.force-close-dropdowns .nav-dropdown:focus-within .dropdown-menu{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(10px)!important;}

/* call bubbles sit above the assistant chat bubble */
.call-bubbles{right:22px;bottom:110px;z-index:1001;align-items:flex-end;}
.call-bubble{width:62px;min-width:62px;height:62px;padding:0;justify-content:center;}
.call-bubble.is-open{width:188px;padding:0 18px 0 12px;justify-content:flex-start;}
.call-bubble-icon{width:42px;height:42px;min-width:42px;font-size:1.15rem;line-height:1;display:flex;align-items:center;justify-content:center;}
.call-bubble-label{font-size:.98rem;}

@media (max-width:860px){.call-bubbles{right:14px;bottom:102px}}
@media (max-width:640px){
  .call-bubbles{right:12px;bottom:96px;gap:10px}
  .call-bubble{width:58px;min-width:58px;height:58px}
  .call-bubble-icon{width:40px;height:40px;min-width:40px;font-size:1.05rem}
  .call-bubble.is-open{width:176px;padding:0 14px 0 10px}
}


/* === V2.6.2 power-window visuals + bubble refinements === */

.call-bubbles{bottom:92px;}
.call-bubble{background:linear-gradient(135deg,#f0ca58,#c99717);border:1px solid rgba(255,214,96,.35);box-shadow:0 12px 28px rgba(0,0,0,.34);color:#111;}
.call-bubble:hover{background:linear-gradient(135deg,#f4d46c,#d3a728);}
.call-bubble-icon{width:100%;height:100%;min-width:100%;background:transparent;color:#111;font-size:1.34rem;}
.call-bubble::after{border-color:rgba(233,190,72,.42);}
.call-bubble.is-open{width:188px;padding:0 16px;background:#111;color:#fff;border-color:rgba(233,190,72,.45);}
.call-bubble.is-open .call-bubble-icon{width:42px;height:42px;min-width:42px;border-radius:50%;background:linear-gradient(135deg,#f0ca58,#c99717);color:#111;font-size:1.12rem;}
.call-bubble.is-open .call-bubble-label{color:#fff;}

.power-window-hero{grid-template-columns:minmax(0,.98fr) minmax(320px,.82fr);align-items:start;gap:34px;}
.power-window-hero .service-hero-copy{max-width:700px;}
.power-window-visuals{display:grid;grid-template-columns:1fr;gap:16px;align-content:start;}
.power-window-visual-card{margin:0;padding:14px;border-radius:22px;background:rgba(255,255,255,.96);border:1px solid rgba(212,175,55,.18);box-shadow:0 18px 42px rgba(0,0,0,.24);}
.power-window-visual-card img{display:block;width:100%;height:auto;max-height:220px;object-fit:contain;object-position:center;filter:contrast(1.04) saturate(1.04);image-rendering:auto;}

@media (max-width:980px){
  .power-window-hero{grid-template-columns:1fr;gap:22px;}
  .power-window-visuals{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .call-bubbles{bottom:88px;}
  .call-bubble{width:60px;min-width:60px;height:60px;}
  .call-bubble-icon{font-size:1.22rem;}
  .call-bubble.is-open{width:176px;padding:0 14px 0 10px;}
  .call-bubble.is-open .call-bubble-icon{width:40px;height:40px;min-width:40px;}
  .power-window-visuals{grid-template-columns:1fr;}
  .power-window-visual-card img{max-height:190px;}
}


/* === V2.6.3 final UI refinement === */
/* Power Window Repair imagery: compact square cards in the site palette. */
.power-window-hero{grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);gap:42px;align-items:center;}
.power-window-visuals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%;max-width:560px;justify-self:end;}
.power-window-visual-card{aspect-ratio:1/1;margin:0;padding:8px;border-radius:22px;overflow:hidden;background:linear-gradient(145deg,#17130a,#070707 62%);border:1px solid rgba(232,190,72,.48);box-shadow:0 18px 45px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,220,115,.04);}
.power-window-visual-card img{width:100%;height:100%;max-height:none;object-fit:cover;border-radius:15px;filter:contrast(1.04) saturate(1.03);}

/* Call bubbles: perfectly centered when closed and readable when expanded. */
.call-bubbles{right:22px;bottom:88px;gap:12px;align-items:flex-end;}
.call-bubble{display:grid;place-items:center;width:64px;min-width:64px;height:64px;padding:0;gap:0;border-radius:50%;overflow:visible;background:linear-gradient(145deg,#f4d465,#d4a72b);color:#111;border:1px solid rgba(255,222,116,.55);box-shadow:0 10px 28px rgba(0,0,0,.36);}
.call-bubble-icon{display:grid;place-items:center;width:100%;height:100%;min-width:0;border-radius:50%;background:transparent;color:#111;font-size:1.42rem;line-height:1;}
.call-bubble-label{display:block;width:0;max-width:0;overflow:hidden;opacity:0;white-space:nowrap;transform:none;color:#fff;font-size:1rem;font-weight:800;letter-spacing:.01em;}
.call-bubble.is-open{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:218px;min-width:218px;height:64px;padding:7px 18px 7px 7px;border-radius:999px;background:#101010;color:#fff;border:1px solid rgba(232,190,72,.55);}
.call-bubble.is-open .call-bubble-icon{width:48px;height:48px;min-width:48px;border-radius:50%;background:linear-gradient(145deg,#f4d465,#d4a72b);font-size:1.15rem;}
.call-bubble.is-open .call-bubble-label{flex:1;width:auto;max-width:none;overflow:visible;opacity:1;color:#fff;text-align:left;}

/* Desktop dropdowns: contained, scrollable, and easier to select. */
.dropdown-menu{top:calc(100% + 8px);width:min(340px,calc(100vw - 28px));max-height:min(66vh,520px);overflow-y:auto;overflow-x:hidden;padding:8px;border-radius:14px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c99b24 #151515;}
.dropdown-menu::-webkit-scrollbar{width:8px;}
.dropdown-menu::-webkit-scrollbar-track{background:#151515;border-radius:999px;}
.dropdown-menu::-webkit-scrollbar-thumb{background:#c99b24;border-radius:999px;}
.dropdown-menu a{padding:10px 12px;font-size:.84rem;line-height:1.25;border-radius:8px;white-space:normal;}
.nav-dropdown:nth-of-type(2) .dropdown-menu{width:min(300px,calc(100vw - 28px));}

@media (max-width:1180px){
  .power-window-hero{grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);gap:28px;}
  .dropdown-menu{max-height:min(62vh,480px);}
}
@media (max-width:980px){
  .power-window-hero{grid-template-columns:1fr;}
  .power-window-visuals{max-width:620px;justify-self:start;}
  .dropdown-menu{max-height:52vh;overflow-y:auto;}
}
@media (max-width:640px){
  .power-window-visuals{grid-template-columns:1fr;max-width:360px;}
  .call-bubbles{right:12px;bottom:84px;gap:10px;}
  .call-bubble{width:60px;min-width:60px;height:60px;}
  .call-bubble-icon{font-size:1.3rem;}
  .call-bubble.is-open{width:200px;min-width:200px;height:60px;padding:6px 14px 6px 6px;gap:10px;}
  .call-bubble.is-open .call-bubble-icon{width:46px;height:46px;min-width:46px;}
  .call-bubble.is-open .call-bubble-label{font-size:.9rem;}
}


/* === V2.6.4 final micro-adjustments === */

/* Power Window Repair image cards: slightly larger imagery while preserving structure */
.power-window-visuals{max-width:600px;gap:18px;}
.power-window-visual-card{padding:6px;border-radius:24px;}
.power-window-visual-card img{width:100%;height:100%;object-fit:contain;object-position:center center;border-radius:16px;background:linear-gradient(145deg,#171717,#111);}
.power-window-visual-card:first-child img{transform:scale(1.18);}
.power-window-visual-card:last-child img{transform:scale(1.14);}

/* Call bubbles: phone icon optically centered, numbers fully visible when expanded */
.call-bubble{position:relative;display:flex;align-items:center;justify-content:center;}
.call-bubble-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;margin:0 auto;border-radius:50%;background:transparent;color:#111;font-size:1.42rem;line-height:1;text-align:center;transform:translateY(1px);}
.call-bubble.is-open{width:232px;min-width:232px;padding:7px 18px 7px 8px;}
.call-bubble.is-open .call-bubble-icon{position:relative;inset:auto;width:50px;height:50px;min-width:50px;transform:none;display:flex;align-items:center;justify-content:center;}
.call-bubble.is-open .call-bubble-label{padding-right:2px;font-size:1.03rem;letter-spacing:.01em;}

@media (max-width:640px){
  .power-window-visuals{max-width:380px;gap:14px;}
  .power-window-visual-card:first-child img{transform:scale(1.14);}
  .power-window-visual-card:last-child img{transform:scale(1.10);}
  .call-bubble.is-open{width:208px;min-width:208px;}
  .call-bubble.is-open .call-bubble-label{font-size:.95rem;}
}


/* === V2.6.5 content polish + contact refinement === */
.power-window-hero{grid-template-columns:minmax(0,1fr) minmax(500px,1.02fr);gap:48px;align-items:center;}
.power-window-hero .service-hero-copy{max-width:680px;}
.power-window-hero .service-hero-copy h2{margin-bottom:16px;}
.power-window-hero .service-hero-copy p{margin:0 0 14px;line-height:1.75;max-width:34ch;}
.power-window-visuals{max-width:680px;gap:22px;}
.power-window-visual-card{padding:8px;border-radius:24px;}
.power-window-visual-card img{background:linear-gradient(145deg,#141414,#0c0c0c);}
.power-window-visual-card:first-child img{transform:scale(1.28);}
.power-window-visual-card:last-child img{transform:scale(1.2);}
#power-window .rich-copy h2{margin:36px 0 18px;}
#power-window .rich-copy p{line-height:1.72;}
#power-window .rich-copy .number-list,
#power-window .rich-copy .check-list{margin:0 0 26px;}
#power-window .rich-copy li{margin-bottom:12px;line-height:1.72;}

.trust-logo-strip{padding:34px 0 38px;}
.trust-logo-row{gap:34px;}
.trust-mini-logo{height:88px;max-width:210px;padding:10px 12px;border-radius:14px;}

.contact-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:42px;align-items:start;}
.contact-side-column{display:grid;gap:22px;align-content:start;}
.contact-image{background:#080808;}
.contact-image img{display:block;width:100%;height:380px;min-height:0;object-fit:contain;object-position:center center;background:#0a0a0a;padding:10px 10px 0;}
.contact-image-overlay{padding:24px 26px;}
.contact-side-card{padding:28px;border:1px solid rgba(212,175,55,.16);border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));box-shadow:0 18px 40px rgba(0,0,0,.24);}
.contact-side-card h3{margin:10px 0 8px;}
.contact-side-phone{display:inline-block;margin-bottom:16px;font-size:2rem;font-weight:800;letter-spacing:.01em;color:var(--primary);text-decoration:none;}
.contact-side-list{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px;color:var(--muted);}
.contact-side-list strong{color:var(--light);}
.facebook-link{display:inline-flex;align-items:center;gap:12px;padding:14px 18px;border-radius:999px;text-decoration:none;background:#111;color:#fff;border:1px solid rgba(212,175,55,.22);box-shadow:0 14px 30px rgba(0,0,0,.22);font-weight:700;transition:transform .2s ease,box-shadow .2s ease;}
.facebook-link:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(0,0,0,.28);}
.facebook-link-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#1877f2;color:#fff;flex:0 0 42px;}
.facebook-link-icon svg{width:20px;height:20px;display:block;}

.call-bubble-icon{position:static!important;display:grid!important;place-items:center!important;width:100%!important;height:100%!important;min-width:0!important;margin:0!important;padding:0!important;line-height:0!important;transform:none!important;text-align:center;}
.call-bubble-icon svg{display:block;width:28px;height:28px;}
.call-bubble.is-open .call-bubble-icon{width:50px!important;height:50px!important;min-width:50px!important;flex:0 0 50px;}
.call-bubble.is-open .call-bubble-icon svg{width:22px;height:22px;}
.call-bubble.is-open .call-bubble-label{font-size:1.02rem;}

@media (max-width:1180px){
  .power-window-hero{grid-template-columns:minmax(0,1fr) minmax(430px,.98fr);gap:34px;}
  .power-window-visuals{max-width:620px;}
}
@media (max-width:980px){
  .power-window-hero{grid-template-columns:1fr;gap:28px;}
  .power-window-hero .service-hero-copy p{max-width:none;}
  .power-window-visuals{max-width:100%;}
  .contact-grid{grid-template-columns:1fr;gap:26px;}
}
@media (max-width:640px){
  .power-window-visuals{max-width:420px;gap:16px;}
  .power-window-visual-card:first-child img{transform:scale(1.18);}
  .power-window-visual-card:last-child img{transform:scale(1.12);}
  .trust-logo-row{gap:16px;}
  .trust-mini-logo{height:68px;max-width:160px;padding:7px;}
  .contact-image img{height:280px;padding:8px 8px 0;}
  .contact-side-phone{font-size:1.55rem;}
  .call-bubble-icon svg{width:24px;height:24px;}
}


/* === V2.6.6 Services tab spacing + brand image refinement === */
.services-page-hero .container{display:grid;gap:16px;}
.hero-meta-line{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:flex-start;color:var(--muted);font-size:1.12rem;line-height:1.6;max-width:100%;}
.hero-meta-line span{display:inline-flex;align-items:center;gap:8px;padding:6px 0;white-space:nowrap;}
.hero-meta-line span:not(:last-child)::after{content:"•";color:rgba(212,175,55,.6);margin-left:10px;}
.service-page-layout{align-items:start;}
.service-page-copy{max-width:900px;}
.service-copy-stack{display:grid;gap:10px;max-width:860px;margin-bottom:22px;}
.service-copy-stack p{margin:0;line-height:1.8;}
.service-highlight strong{display:inline-block;}
.service-badge-line{font-size:1.1rem;letter-spacing:.01em;}
.page-section[data-section="services"] .rich-copy h2{margin-bottom:16px;}
.page-section[data-section="services"] .rich-copy h3{margin:34px 0 18px;}
.page-section[data-section="services"] .rich-copy .check-list{margin:0 0 18px;padding-left:20px;display:grid;gap:14px;}
.page-section[data-section="services"] .rich-copy .check-list li{line-height:1.72;}
.service-advice-line{margin:18px 0 24px;font-size:1.1rem;}
.service-brand-image{display:block;width:min(100%,860px);margin:26px auto 0;border-radius:18px;object-fit:cover;background:#111;box-shadow:0 18px 36px rgba(0,0,0,.22);}
.service-brand-caption{margin-top:18px;text-align:center;font-size:1.5rem;letter-spacing:.01em;}
.service-brand-caption strong{display:block;width:100%;text-align:center;}

@media (max-width:900px){
  .hero-meta-line{gap:10px 14px;font-size:1rem;}
  .hero-meta-line span:not(:last-child)::after{margin-left:8px;}
  .service-brand-image{width:min(100%,760px);}
}
@media (max-width:640px){
  .services-page-hero .container{gap:12px;}
  .hero-meta-line{font-size:.96rem;gap:8px 12px;}
  .hero-meta-line span{white-space:normal;}
  .hero-meta-line span:not(:last-child)::after{display:none;}
  .service-copy-stack{gap:12px;}
  .service-advice-line{font-size:1rem;}
  .service-brand-caption{font-size:1.2rem;}
}

/* V2.6.6 services main-page content polish */
.page-section[data-section="services"] .page-hero .hero-meta-line{gap:12px 26px;line-height:1.9;}
.page-section[data-section="services"] .service-page-copy{max-width:860px;}
.page-section[data-section="services"] .service-copy-stack{gap:14px;max-width:860px;margin-bottom:26px;}
.page-section[data-section="services"] .service-copy-stack p{line-height:1.9;}
.page-section[data-section="services"] .rich-copy h2{margin-bottom:20px;}
.page-section[data-section="services"] .rich-copy h3{margin-top:42px;margin-bottom:18px;}
.page-section[data-section="services"] .rich-copy .check-list{margin:0 0 22px;padding-left:22px;display:grid;gap:16px;}
.page-section[data-section="services"] .rich-copy .check-list li{line-height:1.8;}
.page-section[data-section="services"] .service-brand-showcase{margin-top:32px;padding:26px 28px 30px;border:1px solid rgba(214,176,58,.22);border-radius:24px;background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));box-shadow:0 18px 32px rgba(0,0,0,.18);}
.page-section[data-section="services"] .service-advice-line{margin:0 0 14px;font-size:1.12rem;text-align:left;}
.page-section[data-section="services"] .service-brand-prep{max-width:920px;margin:0 auto 22px;text-align:center;line-height:1.9;color:var(--text-soft);}
.page-section[data-section="services"] .service-brand-image{display:block;width:min(100%,860px);margin:0 auto;border-radius:18px;background:#ece7df;object-fit:contain;box-shadow:0 18px 36px rgba(0,0,0,.22);}
.page-section[data-section="services"] .service-brand-caption{margin-top:20px;text-align:center;font-size:1.55rem;letter-spacing:.01em;}
.page-section[data-section="services"] .service-brand-caption strong{display:block;width:100%;text-align:center;}
@media (max-width: 900px){
  .page-section[data-section="services"] .service-brand-showcase{padding:22px 18px 24px;}
  .page-section[data-section="services"] .service-brand-prep{margin-bottom:18px;}
  .page-section[data-section="services"] .service-brand-image{width:100%;}
  .page-section[data-section="services"] .service-brand-caption{font-size:1.22rem;}
}


/* === V2.6.6 Services page content refinement === */
.page-section[data-section="services"] .content-section{padding-block:72px;}
.page-section[data-section="services"] .service-feature-intro{padding-bottom:56px;}
.page-section[data-section="services"] .hero-meta-line{gap:14px 24px;line-height:1.9;}
.page-section[data-section="services"] .service-page-copy{max-width:900px;}
.page-section[data-section="services"] .service-copy-stack{gap:18px;max-width:900px;margin-bottom:28px;}
.page-section[data-section="services"] .service-copy-stack p{line-height:1.95;}
.page-section[data-section="services"] .rich-copy h2{margin-bottom:22px;}
.page-section[data-section="services"] .service-detail-grid{margin-bottom:34px;}
.page-section[data-section="services"] .rich-copy h3{margin-top:42px;margin-bottom:20px;}
.page-section[data-section="services"] .rich-copy .check-list{margin:0 0 28px;padding-left:24px;display:grid;gap:18px;}
.page-section[data-section="services"] .rich-copy .check-list li{line-height:1.9;}
.page-section[data-section="services"] .service-brand-showcase{margin-top:32px;padding:36px 38px 34px;border:1px solid rgba(214,176,58,.22);border-radius:24px;background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));box-shadow:0 18px 32px rgba(0,0,0,.18);}
.page-section[data-section="services"] .service-advice-line{margin:0 0 16px;font-size:1.18rem;text-align:center;}
.page-section[data-section="services"] .service-brand-prep{max-width:860px;margin:0 auto 26px;text-align:center;line-height:1.95;color:var(--text-soft);}
.page-section[data-section="services"] .service-brand-image{display:block;width:min(100%,940px);margin:0 auto;border-radius:18px;background:#ece7df;object-fit:contain;box-shadow:0 18px 36px rgba(0,0,0,.22);}
.page-section[data-section="services"] .service-brand-caption{margin-top:22px;text-align:center;font-size:1.55rem;letter-spacing:.01em;}
.page-section[data-section="services"] .service-brand-caption strong{display:block;width:100%;text-align:center;}
@media (max-width:900px){
  .page-section[data-section="services"] .content-section{padding-block:58px;}
  .page-section[data-section="services"] .service-brand-showcase{padding:28px 22px 28px;}
  .page-section[data-section="services"] .service-brand-prep{margin-bottom:22px;}
}
@media (max-width:640px){
  .page-section[data-section="services"] .content-section{padding-block:46px;}
  .page-section[data-section="services"] .hero-meta-line{gap:8px 14px;}
  .page-section[data-section="services"] .service-copy-stack{gap:14px;}
  .page-section[data-section="services"] .rich-copy .check-list{gap:14px;padding-left:20px;}
  .page-section[data-section="services"] .service-brand-showcase{padding:22px 16px 24px;}
  .page-section[data-section="services"] .service-advice-line{font-size:1.05rem;}
  .page-section[data-section="services"] .service-brand-caption{font-size:1.25rem;}
}


/* =========================================================
   V2.6.7 FINAL FIXES — Assistant / Mobile Header / Services
   ========================================================= */
body.assistant-open .call-bubbles{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .22s ease, visibility .22s ease, transform .22s ease;
}

.page-section[data-section="services"] .page-hero .hero-meta-line{
  margin-top:18px;
  gap:12px 14px;
  line-height:1.55;
}
.page-section[data-section="services"] .page-hero .hero-meta-line span{
  padding:8px 14px;
  border:1px solid rgba(214,176,58,.18);
  border-radius:999px;
  background:rgba(255,255,255,.025);
  color:#d7d7d7;
}
.page-section[data-section="services"] .page-hero .hero-meta-line span::after,
.page-section[data-section="services"] .page-hero .hero-meta-line span:not(:last-child)::after{
  display:none;
}
.page-section[data-section="services"] .service-page-copy .section-label{margin-bottom:10px;}
.page-section[data-section="services"] .service-page-copy h2{margin-bottom:14px;}
.page-section[data-section="services"] .service-copy-stack{
  gap:18px;
  max-width:920px;
  margin-bottom:30px;
}
.page-section[data-section="services"] .service-copy-stack p{
  max-width:860px;
  line-height:1.95;
}
.page-section[data-section="services"] .rich-copy > h2{margin-bottom:18px;}
.page-section[data-section="services"] .rich-copy > h3{
  margin:46px 0 18px;
  font-size:clamp(1.9rem,3.4vw,2.55rem);
}
.page-section[data-section="services"] .rich-copy .check-list{
  margin:0 0 26px;
  padding-left:24px;
  gap:18px;
}
.page-section[data-section="services"] .service-advice-line{
  margin:0 0 14px;
  text-align:center;
  font-size:1.14rem;
  color:var(--gold-light);
}
.page-section[data-section="services"] .service-brand-showcase{
  margin-top:34px;
  padding:38px 40px 34px;
  text-align:center;
}
.page-section[data-section="services"] .service-brand-prep{
  max-width:920px;
  margin:0 auto 28px;
  text-align:center;
  line-height:1.95;
}
.page-section[data-section="services"] .service-brand-image{
  display:block;
  width:min(100%, 980px);
  margin:0 auto;
  border-radius:18px;
  object-fit:contain;
  background:rgba(255,255,255,.02);
}
.page-section[data-section="services"] .service-brand-caption{
  margin-top:22px;
  text-align:center;
  font-size:1.55rem;
}
.page-section[data-section="services"] .service-brand-caption strong{
  display:block;
  text-align:center;
}

@media (max-width: 980px){
  .header-content{align-items:center;}
  .header-tools{order:3; margin-left:auto; margin-right:0; flex:0 0 auto;}
  .mobile-menu-toggle{order:4; margin-left:8px; flex:0 0 auto;}
  .language-switch{
    display:flex;
    position:static;
    top:auto;
    right:auto;
    z-index:auto;
    margin:0;
  }
  .main-navigation{order:5; width:100%;}
  .page-section[data-section="services"] .page-hero .hero-meta-line{gap:10px 10px;}
  .page-section[data-section="services"] .service-brand-showcase{padding:28px 22px 26px;}
}
@media (max-width: 640px){
  .page-section[data-section="services"] .page-hero .hero-meta-line span{padding:7px 12px; font-size:.92rem;}
  .page-section[data-section="services"] .service-copy-stack{gap:14px;}
  .page-section[data-section="services"] .rich-copy .check-list{gap:14px; padding-left:20px;}
}
@media (max-width: 480px){
  .header-tools{margin-left:auto;}
  .language-switch{transform:scale(.98); transform-origin:right center;}
  .lang-btn{min-width:40px; height:34px;}
  .page-section[data-section="services"] .service-brand-showcase{padding:22px 16px 22px;}
  .page-section[data-section="services"] .service-brand-caption{font-size:1.28rem;}
}

/* =========================================================
   V2.6.7 MOBILE / ASSISTANT UI FIXES
   ========================================================= */
body.assistant-open .call-bubbles{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px);
}
body.assistant-open .assistant-widget{
  z-index:1205;
}
body.assistant-open .assistant-panel{
  z-index:1206;
}
body.assistant-open .assistant-toggle{
  z-index:1207;
}
.call-bubbles{
  transition:opacity .22s ease, visibility .22s ease, transform .22s ease;
}

@media (max-width: 980px){
  .header-content{
    align-items:center;
  }
  .header-tools{
    order:2;
    margin-left:auto;
    margin-right:10px;
    display:flex;
    align-items:center;
    flex-shrink:0;
  }
  .language-switch{
    display:flex;
    position:static;
    top:auto;
    right:auto;
    margin:0;
    z-index:auto;
  }
  .mobile-menu-toggle{
    order:3;
    flex-shrink:0;
  }
}

@media (max-width: 480px){
  .brand{
    flex:1 1 auto;
    width:auto;
    overflow:visible;
  }
  .header-logo-link,
  .header-logo{
    width:122px;
  }
  .header-tools{
    margin-left:auto;
    margin-right:8px;
  }
  .language-switch{
    position:static;
    display:flex;
    padding:2px;
  }
  .lang-btn{
    min-width:34px;
    height:30px;
    font-size:.74rem;
    padding:0 8px;
  }
  .mobile-menu-toggle{
    width:52px;
    height:52px;
  }
}

/* =========================================================
   V2.6.7.1 FINAL MOBILE CHAT / LANGUAGE PATCH
   ========================================================= */
.call-bubbles{
  z-index:1001 !important;
}
body.assistant-open .call-bubbles{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(10px) !important;
}
body.assistant-open .assistant-widget,
.assistant-widget:has(.assistant-panel.open){
  z-index:1400 !important;
}
.assistant-panel,
.assistant-panel.open{
  z-index:1401 !important;
}
.assistant-toggle{
  z-index:1402 !important;
}

@media (max-width: 980px){
  .header-content{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto auto !important;
    align-items:center !important;
    column-gap:10px !important;
    row-gap:0 !important;
    min-height:78px !important;
  }
  .brand{
    grid-column:1 !important;
    min-width:0 !important;
    flex:0 1 auto !important;
  }
  .header-tools{
    grid-column:2 !important;
    order:unset !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-self:end !important;
    flex:0 0 auto !important;
  }
  .language-switch{
    display:flex !important;
    position:static !important;
    top:auto !important;
    right:auto !important;
    margin:0 !important;
    z-index:auto !important;
    transform:none !important;
  }
  .mobile-menu-toggle{
    grid-column:3 !important;
    order:unset !important;
    margin:0 !important;
    justify-self:end !important;
    flex:0 0 auto !important;
  }
  .main-navigation{
    grid-column:1 / -1 !important;
    order:unset !important;
  }
}

@media (max-width: 480px){
  .header-content{
    grid-template-columns:minmax(0,1fr) auto auto !important;
    column-gap:8px !important;
    min-height:74px !important;
  }
  .brand{
    width:auto !important;
    overflow:visible !important;
  }
  .header-logo-link{
    width:106px !important;
    min-height:50px !important;
  }
  .header-logo{
    width:104px !important;
  }
  .header-tools{
    margin:0 !important;
  }
  .language-switch{
    padding:2px !important;
  }
  .lang-btn{
    min-width:34px !important;
    height:32px !important;
    padding:0 8px !important;
    font-size:.72rem !important;
  }
  .mobile-menu-toggle{
    width:52px !important;
    height:52px !important;
  }
}


/* Location subpage covers: preserve the existing title and content layout. */
.location-article .location-detail-hero {
  background-color: #050505;
  background-image:
    linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.58) 55%, rgba(0,0,0,.32) 100%),
    var(--location-hero-image);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.location-article .location-detail-hero::after {
  display: none;
}

/* Service details: original copy and list on the left, 4:3 image on the right. */
.service-detail-lead { align-items:start; }
.service-detail-lead > .content-text { min-width:0; }
.service-detail-lead .service-card-highlight { margin-top:32px; }
.service-detail-photo { margin:0; overflow:hidden; aspect-ratio:4/3; border:1px solid rgba(212,175,55,.3); border-radius:20px; box-shadow:0 22px 60px rgba(0,0,0,.35); }
.service-detail-photo img { display:block; width:100%; height:100%; max-height:none; object-fit:cover; object-position:center; }
.city-crest-card { margin:0; display:grid; place-items:center; padding:12px; border:1px solid rgba(212,175,55,.24); border-radius:24px; background:radial-gradient(ellipse at 50% 38%,rgba(212,175,55,.095),transparent 68%),linear-gradient(145deg,#181816,#080808); }
.city-crest-card img { display:block; width:100%; max-width:440px; height:auto; }
.city-map-section { margin-bottom:44px; }
.city-map-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:24px; }
.city-map-heading h2 { margin:10px 0 0; }
.city-map-heading .btn { flex-shrink:0; }
.city-map-frame { display:block; width:100%; height:480px; border:1px solid rgba(212,175,55,.35); border-radius:22px; background:#e9e5dc; }
.customer-reviews-section { background:linear-gradient(180deg,#070707,#10100d); border-top:1px solid rgba(212,175,55,.12); }
.customer-reviews-section .section-heading p { max-width:740px; margin:20px auto 0; }
.customer-reviews-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.customer-review-card { min-width:0; min-height:300px; display:flex; flex-direction:column; padding:24px; border:1px solid rgba(212,175,55,.25); border-radius:18px; background:linear-gradient(150deg,#191915,#0b0b0b 75%); box-shadow:0 16px 35px rgba(0,0,0,.18); }
.review-card-top { display:flex; align-items:center; gap:11px; }
.review-avatar { flex:0 0 40px; width:40px; height:40px; display:grid; place-items:center; border:1px solid rgba(212,175,55,.4); border-radius:50%; color:#e5c668; background:#282316; font-size:.78rem; font-weight:800; }
.customer-review-card h3 { color:#fff; margin:0 0 3px; font-size:.98rem; line-height:1.35; }
.review-location { color:#aaa99f; font-size:.73rem; }
.review-stars { color:#e4be4b; letter-spacing:3px; margin:18px 0 13px; }
.customer-review-card blockquote { color:#deded9; margin:0 0 24px; font-size:.93rem; line-height:1.7; }
.review-visit { display:block; margin-top:auto; padding:12px 10px; border:1px solid rgba(212,175,55,.35); border-radius:8px; text-align:center; color:var(--gold-light); font-size:.75rem; font-weight:700; }
.review-visit:hover,.review-visit:focus-visible { color:#080808; background:var(--gold); }
.footer-grid { grid-template-columns:minmax(170px,.9fr) minmax(130px,.65fr) minmax(250px,1.25fr) minmax(280px,1.3fr); gap:30px; align-items:start; }
.footer-link-list { display:grid; gap:9px; }
.footer-link-list a { margin:0; line-height:1.55; font-size:.85rem; }
.footer-areas .footer-link-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 16px; }
@media(max-width:1100px) {
  .customer-reviews-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
}
@media(max-width:768px) {
  .service-detail-lead { grid-template-columns:minmax(0,1fr); }
  .service-detail-photo { width:100%; }
  .city-map-heading { align-items:flex-start; flex-direction:column; }
  .city-map-frame { height:380px; }
}
@media(max-width:980px) {
  .header-content > .brand,.header-content > .header-tools,.header-content > .mobile-menu-toggle { grid-row:1 !important; }
  .main-navigation { width:auto !important; }
}
@media(max-width:540px) {
  .customer-reviews-grid,.footer-grid { grid-template-columns:minmax(0,1fr); }
  .customer-review-card { min-height:285px; }
  .city-map-frame { height:340px; }
  .footer-areas .footer-link-list { gap:10px 18px; }
}


/* === V2.7.1 requested service layout + Power Window Repair cover === */
.service-detail-lead{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);
  gap:44px;
  align-items:start;
}
.service-detail-copy{min-width:0;padding-top:8px;}
.service-detail-copy .lead-copy{margin-bottom:16px;}
.service-detail-copy p{line-height:1.78;}
.service-detail-side{display:grid;gap:22px;align-content:start;min-width:0;}
.service-detail-side .service-detail-photo{width:100%;margin:0;}
.service-detail-side .service-card-highlight{
  position:static;
  top:auto;
  margin:0;
  width:100%;
  padding:26px 30px;
  border-color:rgba(212,175,55,.34);
  background:linear-gradient(145deg,rgba(212,175,55,.075),rgba(14,14,14,.96) 38%,#0a0a0a 100%);
  box-shadow:0 18px 40px rgba(0,0,0,.26);
}
.service-detail-side .service-card-highlight h3{margin-bottom:18px;}
.service-detail-side .service-list{margin:0;}

.power-window-main-hero{
  background-color:#050505;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.73) 38%,rgba(0,0,0,.48) 68%,rgba(0,0,0,.64) 100%),
    linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.62)),
    url('assets/power-window-repair-cover.png');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.power-window-main-hero::after{opacity:.18;}
.power-window-main-hero h1,.power-window-main-hero p{max-width:780px;text-shadow:0 2px 18px rgba(0,0,0,.72);}
.power-window-main-hero p{color:rgba(255,255,255,.94);}

@media(max-width:980px){
  .service-detail-lead{grid-template-columns:1fr;gap:28px;}
  .service-detail-copy{padding-top:0;}
  .service-detail-side{gap:18px;}
}
@media(max-width:640px){
  .service-detail-lead{gap:22px;}
  .service-detail-side .service-card-highlight{padding:22px 20px;}
  .power-window-main-hero{background-position:center center;}
}


/* === V2.7.2 client-side protection deterrence === */
img,
picture,
svg,
canvas,
video,
.protected-image,
.hero-slide,
.service-detail-hero,
.power-window-main-hero {
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-touch-callout: none;
}

img,
picture,
svg,
canvas,
video,
.protected-image {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  pointer-events: none;
}

/* Preserve normal interaction for controls, links, forms and embedded UI. */
a img,
button img,
label img,
.assistant-widget img,
.contact-image img,
.logo-link img,
.brand img {
  pointer-events: none;
}

input,
textarea,
select,
button,
a,
[contenteditable="true"] {
  -webkit-touch-callout: default;
}

/* === V2.7.3: floating direct-call buttons green === */
.call-bubble,
.call-bubble:hover,
.call-bubble:focus-visible {
  background: linear-gradient(145deg,#32c96b,#16984d) !important;
  border-color: rgba(82,224,132,.72) !important;
  color:#fff !important;
}
.call-bubble::after {
  border-color: rgba(50,201,107,.46) !important;
}
.call-bubble-icon,
.call-bubble-icon svg {
  color:#fff !important;
}
.call-bubble.is-open {
  background: linear-gradient(145deg,#25b85d,#117b3e) !important;
  border-color: rgba(82,224,132,.72) !important;
  color:#fff !important;
}
.call-bubble.is-open .call-bubble-icon {
  background: rgba(0,0,0,.16) !important;
  color:#fff !important;
}
.call-bubble.is-open .call-bubble-label {
  color:#fff !important;
}


/* === V2.7.5 reviews, rotating call labels, feedback flow & bilingual polish === */
.customer-reviews-section{background:linear-gradient(180deg,#080808,#0d0d0d);}
.customer-review-card{
  background:#fff;
  border:1px solid #e4e7eb;
  box-shadow:0 3px 14px rgba(0,0,0,.18);
  color:#202124;
}
.customer-review-card h3{color:#202124;font-weight:700;}
.review-location{color:#5f6368;}
.review-avatar{border-color:#dadce0;background:#f1f3f4;color:#3c4043;}
.review-stars{color:#fbbc04;letter-spacing:2px;}
.customer-review-card blockquote{color:#3c4043;}
.review-visit{border-color:#dadce0;color:#1a73e8;background:#fff;}
.review-visit:hover,.review-visit:focus-visible{color:#174ea6;background:#f8fafd;border-color:#c4d7f5;}

.call-bubble-label{position:relative;min-width:0;transition:opacity .32s ease,transform .32s ease,max-width .28s ease;}
.call-bubble-label.label-fade{opacity:0!important;transform:translateY(4px)!important;}
.call-bubble.is-open .call-bubble-label{min-width:128px;text-align:left;}

.review-flow-modal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:18px;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;}
.review-flow-modal.open{opacity:1;visibility:visible;}
.review-flow-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(7px);}
.review-flow-dialog{position:relative;z-index:1;width:min(620px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;padding:34px;border:1px solid rgba(212,175,55,.28);border-radius:24px;background:#0c0c0b;box-shadow:0 28px 90px rgba(0,0,0,.65);}
.review-flow-close{position:absolute;right:16px;top:14px;width:40px;height:40px;border:0;border-radius:50%;background:#1b1b1b;color:#fff;font-size:1.55rem;cursor:pointer;}
.review-flow-head h2{margin:8px 0 12px;}
.review-flow-head p{color:#bdbdbd;line-height:1.65;}
.review-rating-panel{margin:24px 0;padding:18px;border:1px solid rgba(212,175,55,.18);border-radius:16px;background:rgba(255,255,255,.025);}
.review-rating-panel label{display:block;margin-bottom:12px;font-weight:800;color:#fff;}
.review-rating-row{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:16px;align-items:center;}
.review-rating-row input{accent-color:#e9bd3c;width:100%;}
.review-rating-row output{font-weight:900;color:#f4ce61;text-align:center;}
.review-positive,.review-support-form{padding:20px;border-radius:16px;background:#121212;border:1px solid rgba(255,255,255,.08);}
.review-positive p,.review-support-note p,.review-private-note{color:#bcbcbc;line-height:1.65;}
.review-support-note{margin-bottom:18px;}
.review-support-form[hidden]{display:none!important;}
.review-support-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:18px;}
.review-google-anyway{color:#d9d9d9;text-decoration:underline;text-underline-offset:4px;font-size:.9rem;}
body.review-flow-open{overflow:hidden;}

@media(max-width:640px){
 .review-flow-dialog{padding:26px 18px 22px;border-radius:18px;}
 .review-rating-row{grid-template-columns:1fr 68px;}
 .review-support-actions{align-items:stretch;flex-direction:column;}
 .review-support-actions .btn{text-align:center;width:100%;}
 .customer-review-card{min-height:0;}
}
