:root {
    --pvc-gold: #D4AF37;
    --pvc-gold-light: #F2D482;
    --pvc-gold-dark: #B8860B;
    --pvc-black: #000000;
    --pvc-dark-gray: #111111;
    --pvc-white: #FFFFFF;
    --font-heading: 'Outfit', sans-serif;
    --font-body: 'Inter', sans-serif;
    --transition-smooth: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    --pvc-gradient: linear-gradient(to right, #BF953F, #FCF6BA, #B38728, #FBF5B7, #AA771C);

    /* ------------------------------------------------------------------
       LOGO TRIM — the logo PNG has transparent padding baked into the file,
       which is what leaves the dead gap between the mark and the company
       name. This value pulls the name back up toward the logo.
       Increase it if a gap remains, decrease it if they overlap.
       ------------------------------------------------------------------ */
    --logo-trim-y: 26px;
}

.pvc-global-footer {
    background: var(--pvc-black);
    color: var(--pvc-white);
    padding: 40px 0 0;
    font-family: var(--font-body);
    border-top: 2px solid var(--pvc-gold-dark);
    position: relative;
    overflow: hidden;
}

.pvc-global-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 50% 0%, rgba(184, 134, 11, 0.1) 0%, transparent 70%);
    pointer-events: none;
}

.pvc-footer-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
    z-index: 2;
}

.pvc-footer-row {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    margin-bottom: 15px;
}

.pvc-footer-col {
    flex: 1;
    min-width: 250px;
}

.pvc-footer-col:first-child {
    margin-top: -50px;
}

/* ==========================================================================
   Section 1: Brand
   The block is inline-flex so it shrinks to the width of the company name,
   and align-items:center then centres the logo mark over that text —
   the block as a whole still sits left-aligned in the column.
   The logo asset carries its own transparent padding, so --logo-trim-y
   removes the resulting vertical gap.
   ========================================================================== */
.pvc-footer-logo {
    display: inline-flex;
    flex-direction: column;
    align-items: center;    /* logo centred over the company name */
    gap: 0;                 /* spacing handled by the trim offset below */
    margin-bottom: 20px;
    line-height: 0;         /* kills the inline-image descender gap */
}

/* Near-square mark (~1:1): fixed width AND height so it can never stretch.
   !important guards the size against any later site-wide "img {...}" rule. */
.pvc-footer-logo img {
    height: 200px !important;
    width: 200px !important;
    max-width: none !important;
    object-fit: contain;
    object-position: center;
    display: block;
    margin-bottom: calc(var(--logo-trim-y) * -1);
    filter: drop-shadow(0 0 10px rgba(212, 175, 55, 0.2));
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.pvc-footer-logo img:hover {
    transform: scale(1.05);
}

/* Company name sits under the logo */
.pvc-footer-brand-name {
    margin: 0;
    line-height: 1.15;
    text-align: center;
    white-space: nowrap;
}

.pvc-brand-top {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--pvc-white);
    line-height: 1.2;
}

.pvc-brand-bottom {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--pvc-white);
    line-height: 1.2;
}

.pvc-footer-desc {
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.7;
    font-size: 14px;
    margin-bottom: 24px;
    word-break: break-word;
    max-width: 280px;
}

.pvc-trust-icons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 20px;
}

.pvc-trust-item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: var(--pvc-gold-light);
    font-weight: 500;
    letter-spacing: 0.5px;
}

.pvc-trust-item i {
    font-size: 16px;
    color: var(--pvc-gold);
}

/* Working hours pill (Address & Hours column) */
.pvc-working-hours-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    padding: 9px 16px;
    max-width: 100%;
    border-radius: 50px;
    background: rgba(212, 175, 55, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.25);
    color: var(--pvc-white);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.3px;
    transition: var(--transition-smooth);
}

.pvc-working-hours-badge i {
    color: var(--pvc-gold);
    font-size: 15px;
    flex-shrink: 0;
}

.pvc-working-hours-badge span {
    word-break: break-word;
}

.pvc-working-hours-badge:hover {
    background: rgba(212, 175, 55, 0.15);
    border-color: var(--pvc-gold);
    transform: translateY(-2px);
}

/* Section Titles */
.pvc-footer-title {
    color: var(--pvc-white);
    font-family: var(--font-heading);
    font-size: 19px;
    font-weight: 700;
    margin-bottom: 28px;
    position: relative;
    padding-bottom: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.pvc-footer-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 3px;
    background: var(--pvc-gradient);
    border-radius: 2px;
}

/* Quick Links */
.pvc-footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pvc-footer-links li {
    margin-bottom: 15px;
}

/* Hover/active animate via transform + color only (no padding/left changes),
   so nothing reflows mid-animation. */
.pvc-footer-links a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1),
                color 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    font-size: 15px;
    display: inline-block;
    position: relative;
}

.pvc-footer-links a:hover,
.pvc-footer-links a.active {
    background: var(--pvc-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 600;
}

.pvc-footer-links a.active {
    font-weight: 800;
}

.pvc-footer-links a::before {
    content: '\f105';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    left: -15px;
    opacity: 0;
    transition: opacity 0.4s cubic-bezier(0.165, 0.84, 0.44, 1),
                transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    color: var(--pvc-gold);
}

.pvc-footer-links a:hover::before,
.pvc-footer-links a.active::before {
    opacity: 1;
}

/* Contact Info */
.pvc-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pvc-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 20px;
    transition: var(--transition-smooth);
}

.pvc-contact-item:hover {
    transform: translateX(5px);
}

.pvc-contact-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(212, 175, 55, 0.1);
    border: 1px solid rgba(212, 175, 55, 0.2);
    color: var(--pvc-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    transition: var(--transition-smooth);
}

.pvc-contact-item:hover .pvc-contact-icon {
    background: var(--pvc-gold);
    color: var(--pvc-black);
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.4);
}

/* Lets the text column shrink below its content's natural width inside the
   flex row instead of overflowing. Long emails/addresses wrap instead. */
.pvc-contact-text {
    min-width: 0;
    flex: 1;
}

.pvc-contact-text span {
    display: block;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 4px;
}

.pvc-contact-text a,
.pvc-contact-text p {
    color: var(--pvc-white);
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
    transition: var(--transition-smooth);
    word-break: break-word;
    overflow-wrap: break-word;
}

.pvc-contact-text a:hover {
    background: var(--pvc-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Address Lines Styling */
.pvc-address-lines {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.pvc-address-line {
    color: var(--pvc-white);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.6;
    margin: 0;
}

/* Location Map Container */
.pvc-map-container {
    margin-top: 24px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.15);
}

.pvc-location-map {
    border-radius: 8px;
    display: block;
}

/* Support & Connect */
.pvc-action-btns {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 15px;
}

.pvc-footer-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 25px;
    border-radius: 50px;
    text-decoration: none !important;
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: var(--transition-smooth);
}

.pvc-btn-whatsapp {
    background: #25D366;
    color: var(--pvc-white) !important;
    box-shadow: 0 4px 15px rgba(37, 211, 102, 0.3);
}

.pvc-btn-whatsapp:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(184, 134, 11, 0.5);
    background: var(--pvc-gradient) !important;
    color: var(--pvc-black) !important;
}

.pvc-btn-call {
    background: var(--pvc-gradient);
    color: var(--pvc-black);
    box-shadow: 0 4px 15px rgba(184, 134, 11, 0.3);
}

.pvc-btn-call:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(184, 134, 11, 0.5);
    background-position: right center;
}

.pvc-footer-social {
    display: flex;
    gap: 15px;
}

.pvc-social-link {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pvc-white);
    text-decoration: none;
    font-size: 16px;
    transition: var(--transition-smooth);
}

.pvc-social-link:hover {
    border-color: var(--pvc-gold);
    color: var(--pvc-gold);
    transform: translateY(-5px) rotate(360deg);
    background: rgba(212, 175, 55, 0.1);
}

/* Bottom Bar */
.pvc-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    padding: 40px 0;
    text-align: center;
}

.pvc-copyright {
    color: rgba(255, 255, 255, 0.4);
    font-size: 14px;
    margin: 0;
    letter-spacing: 0.5px;
    word-break: break-word;
}

/* Global Mobile Sticky CTA */
.pvc-mobile-sticky-cta {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(10px);
    padding: 15px 25px;
    z-index: 9998;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.5);
    border-top: 2px solid var(--pvc-gold);
}

.pvc-sticky-text {
    color: var(--pvc-white);
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.pvc-sticky-btn {
    background: var(--pvc-gradient);
    color: var(--pvc-black);
    padding: 10px 22px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    box-shadow: 0 4px 10px rgba(184, 134, 11, 0.3);
}

/* ==========================================================================
   Tablet: 2-column layout (768–991px)
   ========================================================================== */
@media (max-width: 991px) {
    .pvc-footer-col {
        flex: 0 0 45%;
    }

    .pvc-footer-col:first-child {
        margin-top: -30px;
    }

    .pvc-footer-logo img {
        height: 160px !important;
        width: 160px !important;
    }

    .pvc-brand-top,
    .pvc-brand-bottom {
        font-size: 18px;
    }

    .pvc-location-map {
        height: 160px !important;
    }
}

/* ==========================================================================
   Mobile (≤767px) — original left-aligned layout
   Single consolidated breakpoint (the original file had overlapping 768px
   and 767px blocks fighting over the same properties, e.g. .pvc-contact-text a
   was 22px in one and 15px in the other).
   ========================================================================== */
@media (max-width: 767px) {

    /* Smaller trim on mobile since the logo itself is smaller */
    .pvc-footer-logo img {
        --logo-trim-y: 18px;
    }

    .pvc-global-footer {
        display: block !important;
        background: var(--pvc-black) !important;
        color: var(--pvc-white);
        padding: 40px 0 80px !important;
        margin: 0 !important;
        border-top: 2px solid var(--pvc-gold-dark) !important;
    }

    .pvc-global-footer::before {
        display: block;
    }

    .pvc-footer-container {
        display: block !important;
        padding: 0 20px !important;
    }

    .pvc-footer-row {
        display: flex;
        flex-direction: column;
        gap: 28px;
        margin-bottom: 15px;
    }

    .pvc-footer-col {
        flex: 0 0 100%;
        min-width: 0;
    }

    .pvc-footer-col:first-child {
        margin-top: -20px;
    }

    .pvc-footer-logo {
        margin-bottom: 18px;
    }

    .pvc-footer-logo img {
        height: 170px !important;
        width: 170px !important;
    }

    .pvc-brand-top,
    .pvc-brand-bottom {
        font-size: 18px;
        letter-spacing: 0.5px;
    }

    .pvc-footer-desc {
        font-size: 14px;
        line-height: 1.7;
        margin-bottom: 22px;
        max-width: 100%;
    }

    .pvc-trust-icons {
        gap: 10px;
    }

    .pvc-trust-item {
        font-size: 12px;
    }

    .pvc-working-hours-badge {
        margin-top: 16px;
        padding: 9px 14px;
        font-size: 12px;
    }

    .pvc-footer-title {
        font-size: 18px;
        margin-bottom: 20px;
        padding-bottom: 10px;
    }

    .pvc-footer-title::after {
        width: 40px;
        height: 2px;
    }

    .pvc-footer-links li {
        margin-bottom: 12px;
    }

    .pvc-footer-links a {
        font-size: 14px;
    }

    .pvc-contact-item {
        gap: 12px;
        margin-bottom: 18px;
    }

    .pvc-contact-icon {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }

    .pvc-contact-text span {
        font-size: 10px;
        margin-bottom: 3px;
    }

    .pvc-contact-text a,
    .pvc-contact-text p {
        font-size: 14px;
        line-height: 1.4;
    }

    .pvc-address-line {
        font-size: 14px;
    }

    .pvc-map-container {
        margin-top: 20px;
    }

    .pvc-location-map {
        height: 150px !important;
    }

    .pvc-action-btns {
        flex-direction: row;
        gap: 10px;
    }

    .pvc-footer-btn {
        flex: 1;
        padding: 12px 10px;
        font-size: 11px;
    }

    .pvc-footer-social {
        gap: 10px;
    }

    .pvc-social-link {
        width: 38px;
        height: 38px;
        font-size: 15px;
    }

    .pvc-footer-bottom-bar {
        display: block !important;
    }

    .pvc-mobile-sticky-cta {
        display: flex;
    }
}

/* Extra-small phones: single Action button (WhatsApp) reads better
   stacked full-width than squeezed into a row. */
@media (max-width: 400px) {
    .pvc-action-btns {
        flex-direction: column;
    }

    .pvc-footer-btn {
        width: 100%;
    }

    .pvc-footer-col:first-child {
        margin-top: -15px;
    }

    .pvc-footer-logo img {
        height: 150px !important;
        width: 150px !important;
    }

    .pvc-brand-top,
    .pvc-brand-bottom {
        font-size: 16px;
    }

    .pvc-footer-desc {
        font-size: 13px;
    }

    .pvc-contact-text a,
    .pvc-contact-text p {
        font-size: 13px;
    }

    .pvc-address-line {
        font-size: 13px;
    }

    .pvc-location-map {
        height: 130px !important;
    }
}