

    
/* ---------------------------------------------------------
   Header design tokens
--------------------------------------------------------- */
.v_header_header{
    --navy:#0D2A6D;
    --royal:#1B4EA3;
    --gold:#ea0000;
    --gold-dark:#ea0000;
    --gold-light:#ea0000;
    --peacock-green:#0F8C73;
    --peacock-blue:#1B7FB8;
    --white:#FFFFFF;
    --font-display:'Cormorant Garamond', 'Georgia', serif;
    --font-body:'Poppins', 'Segoe UI', sans-serif;
    font-family:var(--font-body);
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:1000;
    background:var(--white);
}
.v_header_float-actions{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1003;
    display:flex;
    justify-content:space-between;
    padding:0 1rem calc(1rem + env(safe-area-inset-bottom,0px));
    pointer-events:none;
}
.v_header_float-btn{
    position:relative;
    pointer-events:auto;
    width: 57px;
    height: 57px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(13,42,109,.35);
    transition:transform .2s ease;
}
.v_header_float-btn:active{ transform:scale(.94); }
.v_header_float-btn svg{ width:24px; height:24px; color:var(--white); }
.v_header_float-btn img{ width:60px; height:60px; display:block; }

.v_header_float-call{ background:linear-gradient(135deg, var(--navy), var(--royal)); }
.v_header_float-whatsapp{ background:#25D366; }

.v_header_float-btn::before{
    content:"";
    position:absolute;
    inset:-6px;
    border-radius:50%;
    border:2px solid var(--gold-light);
    opacity:0;
    animation:v_header_float-ring 2.6s ease-out infinite;
}
.v_header_float-whatsapp::before{ animation-delay:.8s; }

@keyframes v_header_float-ring{
    0%{   transform:scale(.8); opacity:.6; }
    100%{ transform:scale(1.35); opacity:0; }
}

@media (prefers-reduced-motion: reduce){
    .v_header_call-bar,
    .v_header_float-btn::before{ animation:none; }
}
/* ---------------------------------------------------------
   Utility strip
--------------------------------------------------------- */
.v_header_topbar{
    background:var(--navy);
    color:var(--white);
    font-size:.8rem;
}
.v_header_topbar-inner{
    max-width:1400px;
    margin:0 auto;
    padding:.45rem 1.5rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
}
.v_header_topbar-contact{
    display:flex;
    align-items:center;
    gap:1.25rem;
    flex-wrap:wrap;
}
.v_header_topbar-contact a,
.v_header_topbar-contact span{
    color:var(--white);
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    opacity:.92;
    transition:opacity .2s ease, color .2s ease;
}
.v_header_topbar-contact a:hover{
    color:var(--gold-light);
    opacity:1;
}
.v_header_topbar-contact svg{
    width:14px;
    height:14px;
    flex-shrink:0;
}
.v_header_topbar-tagline{
    font-family:var(--font-display);
    font-style:italic;
    letter-spacing:.03em;
    color:var(--gold-light);
    font-size:.85rem;
}

/* ---------------------------------------------------------
   Mobile-only tap-to-call bar
--------------------------------------------------------- */
.v_header_call-bar{
    display:none;
    align-items:center;
    justify-content:center;
    gap:.7rem;
    margin:.6rem 1rem;
    background:linear-gradient(90deg, #E8382D, #8E2FC9, #1B7FB8, #0F8C73);
    background-size:220% 220%;
    color:var(--white);
    text-decoration:none;
    font-weight:800;
    font-size:1.55rem;
    letter-spacing:.02em;
    padding:.7rem 1.4rem;
    border-radius:999px;
    /* box-shadow:0 8px 20px rgba(142,47,201,.35); */
    animation:v_header_callbar-shift 4s ease-in-out infinite;
}
@keyframes v_header_callbar-shift{
    0%{   background-position:0% 50%; }
    50%{  background-position:100% 50%; }
    100%{ background-position:0% 50%; }
}
.v_header_call-bar-icon{
    position:relative;
    width:36px;
    height:36px;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
}
.v_header_call-bar-icon::before{
    content:"";
    position:absolute;
    inset:-6px;
    border-radius:50%;
    background:var(--gold-light);
    opacity:.55;
    animation:v_header_call-ping 1.8s ease-out infinite;
}
.v_header_call-bar-icon svg{
    position:relative;
    width:18px;
    height:18px;
    background:var(--gold-light);
    border-radius:50%;
    padding:9px;
    box-sizing:content-box;
    color:#8a1a00;
    fill:#8a1a00;
    stroke:none;
}
@keyframes v_header_call-ping{
    0%{ transform:scale(.85); opacity:.55; }
    75%{ transform:scale(1.5); opacity:0; }
    100%{ transform:scale(1.5); opacity:0; }
}

/* ---------------------------------------------------------
   Main header
--------------------------------------------------------- */
.v_header_main{
    background:var(--white);
    box-shadow:0 2px 14px rgba(13,42,109,.08);
}
.v_header_main-inner{
    max-width:1280px;
    margin:0 auto;
    padding:.75rem 1.5rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
}

/* Logo lockup */
.v_header_brand{
    display:flex;
    align-items:center;
    gap:.9rem;
    text-decoration:none;
    flex-shrink:0;
}
.v_header_logo-wrap{
    position:relative;
    display:flex;
    align-items:center;
}
.v_header_logo-glow{
    position:absolute;
    inset:-14px -10px;
    border-radius:50%;
    filter:blur(4px);
    animation:v_header_pulse 4.5s ease-in-out infinite;
    z-index:0;
}
.v_header_logo-img{
    position:relative;
    z-index:1;
    display:block;
    height:90px;
    width:auto;
}
@keyframes v_header_pulse{
    0%,100%{ opacity:.45; transform:scale(.94); }
    50%{ opacity:1; transform:scale(1); }
}
.v_header_brand-sub{
    font-family:var(--font-display);
    font-style:italic;
    font-size:.85rem;
    color:var(--gold-dark);
    letter-spacing:.02em;
    border-left:1px solid rgba(13,42,109,.15);
    padding-left:.9rem;
    line-height:1.3;
    max-width:150px;
}

/* Primary navigation */
.v_header_nav{
    display:flex;
    align-items:center;
    gap:1.9rem;
}
.v_header_header ul,
.v_header_header li{
    margin:0;
    padding:0;
    list-style:none;
}
.v_header_nav-list > li{
    position:relative;
}
.v_header_nav-list{
    display:flex;
    align-items:center;
    gap:1.9rem;
    margin:0;
    padding:0;
}
.v_header_nav a.v_header_link{
    display:inline-flex;
    align-items:center;
    gap:.3rem;
    text-decoration:none;
    color:var(--navy);
    font-weight:500;
    font-size:.95rem;
    padding:.5rem 0;
    position:relative;
}
.v_header_nav a.v_header_link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:0;
    height:2px;
    background:linear-gradient(90deg, var(--gold), var(--peacock-green));
    transition:width .25s ease;
}
.v_header_nav a.v_header_link:hover::after,
.v_header_nav li.v_header_active a.v_header_link::after{
    width:100%;
}
.v_header_nav a.v_header_link:hover{
    color:var(--gold);
}
.v_header_nav svg.v_header_chevron{
    width:11px;
    height:11px;
    transition:transform .2s ease;
    flex-shrink:0;
}
.v_header_nav li:hover svg.v_header_chevron{
    transform:rotate(180deg);
}

/* Dropdown panels (services / locations) — desktop */
.v_header_dropdown{
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%) translateY(8px);
    background:var(--white);
    border-radius:10px;
    box-shadow:0 18px 40px rgba(13,42,109,.16);
    padding:1.1rem;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
    border-top:3px solid var(--gold);
    z-index:20;
}
@media (min-width:901px){
    .v_header_nav li:hover .v_header_dropdown,
    .v_header_nav li.v_header_open .v_header_dropdown{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transform:translateX(-50%) translateY(0);
    }
}
.v_header_dropdown-services{
    display:grid;
    grid-template-columns:repeat(2, minmax(190px,1fr));
    gap:.15rem .5rem;
    width:460px;
}
.v_header_dropdown-locations{
    display:flex;
    flex-direction:column;
    gap:.15rem;
    width:220px;
}
.v_header_dropdown a{
    display:flex;
    align-items:center;
    gap:.5rem;
    color:var(--navy);
    text-decoration:none;
    font-size:.87rem;
    padding:.5rem .6rem;
    border-radius:6px;
    transition:background .18s ease, color .18s ease, padding-left .18s ease;
}
.v_header_dropdown a svg{
    width:13px;
    height:13px;
    color:var(--peacock-green);
    flex-shrink:0;
}
.v_header_dropdown a:hover{
    background:linear-gradient(90deg, rgba(200,155,60,.1), rgba(15,140,115,.06));
    color:var(--royal);
    padding-left:.85rem;
}

/* CTA + mobile toggle */
.v_header_actions{
    display:flex;
    align-items:center;
    gap:.9rem;
    flex-shrink:0;
}
.v_header_cta{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    /* background:linear-gradient(135deg, var(--gold), var(--gold-dark)); */
    background-color:#0C2767;
    color:var(--white);
    text-decoration:none;
    font-weight:600;
    font-size:.88rem;
    padding:.65rem 1.3rem;
    border-radius:30px;
    box-shadow:0 6px 16px rgba(168,120,31,.35);
    transition:transform .2s ease, box-shadow .2s ease;
    white-space:nowrap;
}
.v_header_cta1{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    /* background:linear-gradient(135deg, var(--gold), var(--gold-dark)); */
    background-color:#2196F3;
    color:var(--white);
    text-decoration:none;
    font-weight:600;
    font-size:.88rem;
    padding:.65rem 1.3rem;
    border-radius:30px;
    box-shadow:0 6px 16px rgba(168,120,31,.35);
    transition:transform .2s ease, box-shadow .2s ease;
    white-space:nowrap;
}
.v_header_cta:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(168,120,31,.45);
}
.v_header_cta svg{
    display:block;
    width:15px;
    height:15px;
    flex-shrink:0;
    color:inherit;
    fill:none;
    stroke:currentColor;
}
.v_header_cta-icon-wrap{
    display:flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    flex-shrink:0;
    background:var(--white);
    border-radius:50%;
    box-shadow:0 2px 5px rgba(0,0,0,.22);
}
.v_header_cta-icon{
    display:block;
    width:40px;
    height:40px;
    object-fit:contain;
}
.v_header_toggle{
    display:none;
    background:none;
    border:none;
    cursor:pointer;
    width:40px;
    height:40px;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    padding:0;
    -webkit-tap-highlight-color:transparent;
}
.v_header_toggle:hover{
    background:rgba(13,42,109,.06);
}
.v_header_toggle span{
    display:block;
    width:22px;
    height:2px;
    background:var(--navy);
    position:relative;
    transition:background .2s ease;
}
.v_header_toggle span::before,
.v_header_toggle span::after{
    content:"";
    position:absolute;
    left:0;
    width:22px;
    height:2px;
    background:var(--navy);
    transition:transform .25s ease, top .25s ease;
}
.v_header_toggle span::before{ top:-7px; }
.v_header_toggle span::after{ top:7px; }
.v_header_header.v_header_menu-open .v_header_toggle span{ background:transparent; }
.v_header_header.v_header_menu-open .v_header_toggle span::before{ top:0; transform:rotate(45deg); }
.v_header_header.v_header_menu-open .v_header_toggle span::after{ top:0; transform:rotate(-45deg); }

.v_header_drawer-head{
    display:none;
}
.v_header_close{
    display:none;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.18);
    border-radius:8px;
    width:36px;
    height:36px;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    flex-shrink:0;
    padding:0;
    -webkit-tap-highlight-color:transparent;
}
.v_header_close svg{
    width:16px;
    height:16px;
    color:var(--white);
}
.v_header_close:hover{
    background:rgba(255,255,255,.16);
}

/* ---------------------------------------------------------
   Responsive behaviour
--------------------------------------------------------- */
@media (max-width:1080px){
    .v_header_nav-list{ gap:1.3rem; }
    .v_header_dropdown-services{ width:380px; }
}

@media (max-width:900px){
    .v_header_topbar{ display:none; }
    .v_header_call-bar{ display:flex; }
    .v_header_brand-sub{ display:none; }
    .v_header_logo-img{ height:48px; }

    .v_header_nav{
        position:fixed;
        top:0;
        right:0;
        height:100%;
        height:100dvh;
        width:min(300px, 86vw);
        background:var(--navy);
        flex-direction:column;
        align-items:stretch;
        justify-content:flex-start;
        gap:0 !important;          /* kill desktop gap:1.9rem */
        padding:0;
        padding-bottom:max(1.25rem, env(safe-area-inset-bottom));
        transform:translateX(100%);
        transition:transform .3s ease;
        overflow-x:hidden;
        overflow-y:auto;
        -webkit-overflow-scrolling:touch;
        z-index:1002;
        pointer-events:none;
        box-shadow:-8px 0 32px rgba(0,0,0,.28);
    }
    .v_header_header.v_header_menu-open .v_header_nav{
        transform:translateX(0);
        pointer-events:auto;
    }

    .v_header_drawer-head{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:.75rem;
        padding:.85rem 1rem;
        border-bottom:1px solid rgba(255,255,255,.14);
        position:sticky;
        top:0;
        background:var(--navy);
        z-index:2;
        flex-shrink:0;
    }
    .v_header_drawer-head .v_header_logo-img{
        height:70px;
        width:auto;
        background:var(--white);
        border-radius:8px;
        padding:.3rem .55rem;
        box-sizing:content-box;
    }
    .v_header_drawer-head .v_header_logo-glow{ display:none; }
    .v_header_close{ display:flex; }

    .v_header_nav-list{
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:0 !important;          /* kill desktop gap */
        margin:0 !important;
        padding:0 0 .25rem !important;
        list-style:none;
        flex:0 0 auto;
        width:100%;
    }
    .v_header_nav-list > li{
        margin:0 !important;
        padding:0 !important;
        border-bottom:1px solid rgba(255,255,255,.12);
        /* list-style:none; */
        width:100%;
    }
    .v_header_nav-list > li:last-child{
        border-bottom:none;
    }
    .v_header_nav a.v_header_link{
        color:var(--white);
        font-weight:600;
        font-size:1rem;
        line-height:1.3;
        padding:.95rem 1.15rem;
        justify-content:space-between;
        align-items:center;
        width:100%;
        box-sizing:border-box;
        -webkit-tap-highlight-color:transparent;
        min-height:48px;
    }
    .v_header_nav a.v_header_link:active{
        background:rgba(255,255,255,.07);
    }
    .v_header_nav a.v_header_link::after{ display:none; }
    .v_header_nav svg.v_header_chevron{
        color:var(--gold-light);
        width:14px;
        height:14px;
        opacity:.9;
    }

    /* Mobile accordion dropdowns */
    .v_header_dropdown{
        position:static !important;
        left:auto !important;
        top:auto !important;
        transform:none !important;
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
        display:none;
        width:100% !important;
        max-width:none;
        box-shadow:none;
        border-top:none;
        border-radius:0;
        background:rgba(0,0,0,.18);
        padding:.25rem 0 .35rem;
        margin:0;
        z-index:auto;
    }
    .v_header_nav-list > li.v_header_open{
        background:rgba(255,255,255,.04);
    }
    .v_header_nav-list > li.v_header_open .v_header_dropdown{
        display:block !important;
    }
    .v_header_nav-list > li.v_header_open > a.v_header_dropdown-toggle svg.v_header_chevron{
        transform:rotate(180deg);
    }
    .v_header_nav li:hover svg.v_header_chevron{
        transform:none;
    }
    .v_header_nav-list > li.v_header_open:hover svg.v_header_chevron,
    .v_header_nav-list > li.v_header_open svg.v_header_chevron{
        transform:rotate(180deg);
    }

    .v_header_dropdown-services,
    .v_header_dropdown-locations{
        width:100%;
        grid-template-columns:1fr;
        gap:0;
    }
    .v_header_dropdown a{
        color:rgba(255,255,255,.92);
        padding:.7rem 1.15rem .7rem 1.5rem;
        font-size:.92rem;
        font-weight:500;
        border-radius:0;
    }
    .v_header_dropdown a:hover,
    .v_header_dropdown a:active{
        color:var(--gold-light);
        background:rgba(255,255,255,.08);
        padding-left:1.65rem;
    }
    .v_header_dropdown a svg{
        color:var(--gold-light);
        width:12px;
        height:12px;
    }

    /* WhatsApp CTA — brighter on navy, sits under the links */
    .v_header_nav-cta-mobile{
        display:flex !important;
        margin:1.25rem 1.15rem 0;
        justify-content:center;
        align-items:center;
        flex-shrink:0;
        /* background:linear-gradient(135deg, #D4A84B, #B8862A) !important; */
        background: #29A71A !important;
        color:#fff !important;
        box-shadow:0 6px 18px rgba(0,0,0,.35);
        font-size:.92rem;
        padding:.8rem 1.2rem;
        border-radius:28px;
        text-decoration:none;
        font-weight:600;
    }
    .v_header_nav-cta-mobile:active{
        transform:scale(.98);
    }
    .v_header_nav-cta-mobile svg{
        display:block;
        width:16px;
        height:16px;
        flex-shrink:0;
    }
    .v_header_nav-cta-mobile .v_header_cta-icon-wrap{
        width:24px;
        height:24px;
    }

    .v_header_toggle{ display:flex; }
    .v_header_actions .v_header_cta{ display:none; }
}

@media (max-width:560px){
    .v_header_topbar-inner{ padding:.4rem 1rem; }
    .v_header_topbar-contact{ gap:.8rem; }
    .v_header_topbar-contact .v_header_topbar-address{ display:none; }
    .v_header_main-inner{ padding:.65rem 1rem; }
    .v_header_logo-img{ height:70px; }
}

@media (max-width:480px){
    .v_header_nav{ width:100vw; }
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce){
    .v_header_logo-glow{ animation:none; opacity:.7; }
    .v_header_call-bar-icon::before{ animation:none; opacity:.35; }
    .v_header_cta, .v_header_dropdown, .v_header_nav, .v_header_toggle span, .v_header_toggle span::before, .v_header_toggle span::after{
        transition:none;
    }
}

/* Overlay behind mobile drawer — sibling of header so it sits above page content */
.v_header_overlay{
    position:fixed;
    inset:0;
    background:rgba(13,42,109,.55);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .3s ease, visibility .3s ease;
    z-index:1001;
}
.v_header_overlay.v_header_overlay-visible{
    opacity:1;
    /* visibility:visible; */
    pointer-events:auto;
}

/* ---------------------------------------------------------
   Self-hosted fonts
--------------------------------------------------------- */
@font-face{
    font-family:'Cormorant Garamond';
    src:url('<?php echo $BASE_URL; ?>/assets/fonts/cormorant-garamond/CormorantGaramond-SemiBold.woff2') format('woff2');
    font-weight:600;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:'Cormorant Garamond';
    src:url('<?php echo $BASE_URL; ?>/assets/fonts/cormorant-garamond/CormorantGaramond-Bold.woff2') format('woff2');
    font-weight:700;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:'Cormorant Garamond';
    src:url('<?php echo $BASE_URL; ?>/assets/fonts/cormorant-garamond/CormorantGaramond-Italic.woff2') format('woff2');
    font-weight:400;
    font-style:italic;
    font-display:swap;
}
@font-face{
    font-family:'Poppins';
    src:url('<?php echo $BASE_URL; ?>/assets/fonts/poppins/Poppins-Regular.woff2') format('woff2');
    font-weight:400;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:'Poppins';
    src:url('<?php echo $BASE_URL; ?>/assets/fonts/poppins/Poppins-Medium.woff2') format('woff2');
    font-weight:500;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:'Poppins';
    src:url('<?php echo $BASE_URL; ?>/assets/fonts/poppins/Poppins-SemiBold.woff2') format('woff2');
    font-weight:600;
    font-style:normal;
    font-display:swap;
}




/* ---------------------------------------------------------
   Footer design tokens (self-contained, mirrors header)
--------------------------------------------------------- */
.v_footer_footer{
    --navy:#0D2A6D;
    --royal:#1B4EA3;
    --gold:#ea0000;
    --gold-dark:#ea0000;
    --gold-light:#ea0000;
    --peacock-green:#0F8C73;
    --peacock-blue:#1B7FB8;
    --white:#FFFFFF;
    --font-display:'Cormorant Garamond', 'Georgia', serif;
    --font-body:'Poppins', 'Segoe UI', sans-serif;
    font-family:var(--font-body);
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(ellipse at 15% 0%, rgba(27,79,163,.55) 0%, rgba(13,42,109,0) 45%),
        radial-gradient(ellipse at 85% 100%, rgba(15,140,115,.25) 0%, rgba(13,42,109,0) 50%),
        linear-gradient(180deg, var(--navy) 0%, #081B4A 100%);
    color:rgba(255,255,255,.82);
}

/* ---------------------------------------------------------
   Celestial divider (zodiac wave)
--------------------------------------------------------- */
.v_footer_divider{
    display:block;
    width:100%;
    height:auto;
    line-height:0;
}
.v_footer_divider svg{
    display:block;
    width:100%;
    height:44px;
}

/* ---------------------------------------------------------
   Ambient starfield + orbiting constellation ring
--------------------------------------------------------- */
.v_footer_stars{
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:0;
    background-image:
        radial-gradient(1.5px 1.5px at 8% 20%, rgba(255,255,255,.55) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 22% 65%, rgba(255,255,255,.4) 50%, transparent 51%),
        radial-gradient(1px 1px at 38% 15%, rgba(255,255,255,.5) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 54% 80%, rgba(226,196,110,.55) 50%, transparent 51%),
        radial-gradient(1px 1px at 68% 30%, rgba(255,255,255,.45) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 79% 55%, rgba(255,255,255,.4) 50%, transparent 51%),
        radial-gradient(1px 1px at 91% 22%, rgba(226,196,110,.5) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 96% 75%, rgba(255,255,255,.4) 50%, transparent 51%);
    animation:v_footer_twinkle 5s ease-in-out infinite;
}
@keyframes v_footer_twinkle{
    0%,100%{ opacity:.55; }
    50%{ opacity:1; }
}
.v_footer_zodiac-ring{
    position:absolute;
    top:-120px;
    right:-120px;
    width:340px;
    height:340px;
    z-index:0;
    opacity:.14;
    animation:v_footer_rotate 90s linear infinite;
    pointer-events:none;
}
.v_footer_zodiac-ring--reverse{
    top:auto;
    right:auto;
    bottom:-160px;
    left:-140px;
    width:300px;
    height:300px;
    opacity:.1;
    animation-duration:120s;
    animation-direction:reverse;
}
@keyframes v_footer_rotate{
    from{ transform:rotate(0deg); }
    to{ transform:rotate(360deg); }
}

/* ---------------------------------------------------------
   Main grid
--------------------------------------------------------- */
.v_footer_main{
    position:relative;
    z-index:1;
    max-width:1280px;
    margin:0 auto;
    padding:3.5rem 1.5rem 2.5rem;
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr 1.2fr;
    gap:2.5rem;
}

/* Brand column */
.v_footer_brand-logo{
    display:inline-flex;
    align-items:center;
    margin-bottom:1rem;
}
.v_footer_brand-logo img{
    height:70px;
    width:auto;
    display:block;
}
.v_footer_tagline{
    font-family:var(--font-display);
    font-style:italic;
    font-size:1.05rem;
    color:var(--gold-light);
    margin:0 0 .85rem;
    line-height:1.4;
}
.v_footer_about-text{
    font-size:.9rem;
    line-height:1.7;
    color:rgba(255,255,255,.68);
    margin:0 0 1.4rem;
    max-width:320px;
}

/* Social row */
.v_footer_social{
    display:flex;
    align-items:center;
    gap:.65rem;
}
.v_footer_social a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:50%;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.14);
    color:var(--gold-light);
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.v_footer_social a:hover{
    background:linear-gradient(135deg, var(--gold), var(--gold-dark));
    border-color:transparent;
    color:var(--navy);
    transform:translateY(-3px);
}
.v_footer_social svg{
    width:16px;
    height:16px;
}

/* Column headings */
.v_footer_col h3{
    font-family:var(--font-display);
    font-weight:700;
    font-size:1.2rem;
    color:var(--white);
    margin:0 0 1.1rem;
    position:relative;
    padding-bottom:.6rem;
}
.v_footer_col h3::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:34px;
    height:2px;
    background:linear-gradient(90deg, var(--gold), var(--peacock-green));
}

.v_footer_col ul{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:.65rem;
}
.v_footer_col a{
    color:rgba(255,255,255,.72);
    text-decoration:none;
    font-size:.9rem;
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    transition:color .2s ease, padding-left .2s ease;
}
.v_footer_col a svg{
    width:11px;
    height:11px;
    color:var(--peacock-green);
    flex-shrink:0;
    transition:transform .2s ease;
}
.v_footer_col a:hover{
    color:var(--gold-light);
    padding-left:.25rem;
}
.v_footer_col a:hover svg{
    transform:translateX(2px);
}
.v_footer_col-services ul{
    display:grid;
    grid-template-columns:1fr;
}

/* Contact column */
.v_footer_contact-item{
    display:flex;
    align-items:flex-start;
    gap:.65rem;
    margin-bottom:1rem;
    font-size:.9rem;
    line-height:1.55;
}
.v_footer_contact-item svg{
    width:16px;
    height:16px;
    flex-shrink:0;
    margin-top:.15rem;
    color:var(--gold-light);
}
.v_footer_contact-item a{
    color:rgba(255,255,255,.78);
    text-decoration:none;
    transition:color .2s ease;
}
.v_footer_contact-item a:hover{
    color:var(--gold-light);
}
.v_footer_contact-item span{
    color:rgba(255,255,255,.78);
}

.v_footer_whatsapp-btn{
    margin-top:.5rem;
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    background:linear-gradient(135deg, var(--gold), var(--gold-dark));
    color:var(--navy);
    text-decoration:none;
    font-weight:600;
    font-size:.87rem;
    padding:.7rem 1.25rem;
    border-radius:28px;
    box-shadow:0 8px 20px rgba(168,120,31,.3);
    transition:transform .2s ease, box-shadow .2s ease;
}
.v_footer_whatsapp-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 24px rgba(168,120,31,.4);
}
.v_footer_whatsapp-btn svg{
    width:15px;
    height:15px;
}

/* ---------------------------------------------------------
   Bottom bar
--------------------------------------------------------- */
.v_footer_bottom{
    position:relative;
    z-index:1;
    border-top:1px solid rgba(255,255,255,.12);
}
.v_footer_bottom-inner{
    max-width:1280px;
    margin:0 auto;
    padding:1.2rem 1.5rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    font-size:.8rem;
    color:rgba(255,255,255,.55);
}
.v_footer_bottom-inner a{
    color:rgba(255,255,255,.55);
}
.v_footer_credit{
    display:inline-flex;
    align-items:center;
    gap:.4rem;
}
.v_footer_credit strong{
    color:var(--gold-light);
    font-weight:600;
}

/* Back-to-top */
.v_footer_to-top{
    position:absolute;
    top:-22px;
    right:1.75rem;
    z-index:2;
    width:44px;
    height:44px;
    border-radius:50%;
    background:linear-gradient(135deg, var(--gold), var(--gold-dark));
    border:3px solid var(--navy);
    color:var(--navy);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(0,0,0,.3);
    transition:transform .2s ease;
}
.v_footer_to-top:hover{
    transform:translateY(-3px);
}
.v_footer_to-top svg{
    width:18px;
    height:18px;
}

/* ---------------------------------------------------------
   Responsive behaviour
--------------------------------------------------------- */
@media (max-width:1080px){
    .v_footer_main{
        grid-template-columns:1fr 1fr;
        row-gap:2.75rem;
    }
}
@media (max-width:640px){
    .v_footer_main{
        grid-template-columns:1fr;
        padding:3rem 1.25rem 2rem;
        gap:2.25rem;
    }
    .v_footer_about-text{ max-width:none; }
    .v_footer_bottom-inner{
        flex-direction:column;
        text-align:center;
        gap:.5rem;
    }
    .v_footer_to-top{
        right:1.25rem;
    }
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce){
    .v_footer_stars,
    .v_footer_zodiac-ring{
        animation:none;
    }
}
