/* ============================================
   FANTINI STYLE OVERRIDE
   Loaded AFTER zummo.css — do NOT edit zummo.css
   ============================================ */

/* ── FONT: Epilogue global override ── */

body {
    font-family: 'Epilogue', sans-serif;
}

.carousel-status {
    font-weight: 300; /* remap Poppins 200 → Epilogue 300 */
}

.header-logo {
    margin-left: 3%;
}


/* ══════════════════════════════════════════════
   HEADER — Floating Card (desktop ≥1281px)
   ══════════════════════════════════════════════ */

@media screen and (min-width: 1281px) {

    .navbar {
        top: 40px;
        left: 80px;
        right: 80px;
        width: auto;
        border-radius: 20px;
        background-color: #ffffff;
        background-image: none;
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out;
    }

    /* Hidden state (scroll down) */
    .navbar.navbar-hidden {
        transform: translateY(-100%) scaleX(0.95);
        opacity: 0;
        pointer-events: none;
    }

    /* Neutralize h-scrolling on desktop — card is always white */
    body.h-scrolling .navbar {
        background-color: #ffffff;
        background-image: none;
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.15);
    }

    /* Nav links always dark on floating card */
    .header-navigation a {
        color: #000000;
    }
    .header-navigation a:hover {
        color: #ff6601;
    }
    body.h-scrolling .header-navigation a {
        color: #000000;
    }

    /* h-noslider: same floating card */
    body.h-noslider .navbar {
        background-color: #ffffff;
        background-image: none;
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    }
    body.h-noslider .header-navigation a {
        color: #000000;
    }

    /* h-video: floating card, not transparent */
    body.h-video .navbar {
        background-color: #ffffff;
        background-image: none;
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    }
    body.h-video .header-navigation a,
    body.h-noslider.h-video .header-navigation a,
    body.h-scrolling.h-video .header-navigation a {
        color: #000000;
    }
    body.h-scrolling.h-video .navbar {
        background-color: #ffffff;
        background-image: none;
    }

    /* Dropdown submenus */
    .header-navigation .nav-child {
        border-radius: 10px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    }
    .header-navigation .nav-child a {
        color: #ff6601;
    }
    body.h-noslider.h-video .nav-child a {
        color: #ff6601;
    }

    /* Override zummo.css ".header-navigation li .plus { display: none }" */
    .header-navigation li .plus {
        display: block !important;
        line-height: normal;
    }

    /* SVG plus icon container */
    .header-navigation .icon-ct {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        width: 20px;
        height: 20px;
        cursor: pointer;
        vertical-align: middle;
        margin-left: 4px;
    }
    .header-navigation .icon-ct svg {
        transition: transform 0.3s ease;
    }
    .header-navigation .icon-ct svg path {
        stroke: #000000;
        transition: stroke 0.3s ease;
    }

    /* Sync hover: link + icon change together */
    .header-navigation li.parent:hover > a {
        color: #ff6601;
    }
    .header-navigation li.parent:hover > .icon-ct svg path {
        stroke: #ff6601;
    }
    .header-navigation li.parent:hover > .icon-ct svg {
        transform: rotate(90deg);
    }

    /* Align items vertically in parent li */
    .header-navigation li.parent {
        display: inline-flex;
        align-items: center;
    }

    /* Center logo image vertically */
    .header-logo a,
    .header-logo img {
        display: flex;
        align-items: center;
    }

    /* Hide icon on sub-level items */
    .header-navigation .nav-child .icon-ct {
        display: none;
    }
    .header-navigation .nav-child li .plus {
        display: none !important;
    }
}

/* SVG plus icon — mobile */
@media screen and (max-width: 1280px) {
    .header-navigation li .plus {
        display: block !important;
    }
    .header-navigation .icon-ct {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        width: 20px;
        height: 20px;
        vertical-align: middle;
        margin-left: 4px;
    }
    .header-navigation .icon-ct svg path {
        stroke: #ffffff;
    }
    .header-navigation .nav-child .icon-ct {
        display: none;
    }
    .header-navigation .nav-child li .plus {
        display: none !important;
    }
}

/* Content compensation — floating header */
body.h-noslider .main {
    margin-top: 170px;
}


/* ── HEADER — Mobile (≤1280px) ── */

@media screen and (max-width: 1280px) {

    .navbar {
        transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out;
    }

    .navbar.navbar-hidden {
        transform: translateY(-100%);
        opacity: 0;
        pointer-events: none;
    }
}


/* ══════════════════════════════════════════════
   FOOTER — Dark theme + decorations
   ══════════════════════════════════════════════ */

footer {
    background-color: #1E1E1E;
    color: #ffffff;
    position: relative;
    padding: 4vw 0;
    padding-bottom: 7.5rem;
}

footer strong {
    color: #ff6601;
    text-transform: uppercase;
    font-weight: bold;
}

footer a {
    color: #ffffff;
    text-decoration: none;
}
footer a:hover {
    color: #ff6601;
    cursor: pointer;
    text-decoration: underline;
}

footer .inner {
    position: relative;
    z-index: 2;
}

footer li {
    color: #ffffff;
}

/* Force 4-column layout on desktop */
.footer-item {
    width: 25%;
    flex-shrink: 0;
    padding-right: 2rem;
    box-sizing: border-box;
}
.footer-item:last-child {
    padding-right: 0;
}

@media screen and (max-width: 1100px) {
    .footer-item {
        width: 50%;
        padding-right: 1rem;
        margin-bottom: 2rem;
    }
}
@media screen and (max-width: 550px) {
    .footer-item {
        width: 100%;
        padding-right: 0;
    }
}

footer .inner {
    flex-wrap: wrap;
}

.social {
    color: #ff6601;
}

/* Footer decoration container */
.footer-decoration {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 1;
}

/* ── Horizontal lines ── */
.footer-line {
    position: absolute;
    height: 1px;
    background-color: #ACACAC;
    left: 3rem;
    right: 3rem;
}

/* Bottom line */
.footer-line-bottom {
    bottom: 40px;
    left: clamp(44px, 5.56vw + 12px, 92px);
    right: clamp(44px, 5.56vw + 12px, 92px);
}

/* ── Cross decorations (+) ── */
.footer-cross {
    position: absolute;
    width: 23px;
    height: 23px;
}
.footer-cross::before,
.footer-cross::after {
    content: '';
    position: absolute;
    background-color: #ACACAC;
}
.footer-cross::before {
    /* vertical bar */
    width: 1px;
    height: 23px;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}
.footer-cross::after {
    /* horizontal bar */
    width: 23px;
    height: 1px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

/* Bottom crosses */
.footer-cross-bl {
    bottom: 29px;
    left: calc(3rem - 11.5px);
}
.footer-cross-br {
    bottom: 29px;
    right: calc(3rem - 11.5px);
}

/* ── Vertical side lines (desktop only) ── */
.footer-vline {
    display: none;
}

@media screen and (min-width: 980px) {
    .footer-vline {
        display: block;
        position: absolute;
        top: -1rem;
        bottom: 5rem;
        width: 1px;
        background-color: #ACACAC;
    }
    .footer-vline-left {
        left: calc(3rem - 0.5px);
    }
    .footer-vline-right {
        right: calc(3rem - 0.5px);
    }
}

/* ── Legal / bottom row ── */
.footer-row {
    position: relative;
    z-index: 2;
    padding-top: 2rem;
}
.footer-row a {
    color: #767676;
}
.footer-row,
.footer-row .inner {
    color: #767676;
    font-size: 14px;
    text-align: center;
}
.footer-row img.byaltea {
    opacity: 0.5;
}

/* ── Mobile: hide all decorations ── */
@media screen and (max-width: 979px) {
    .footer-decoration {
        display: none;
    }
    footer {
        padding: 2.5rem 1rem;
        padding-bottom: 2.5rem;
    }
}
