﻿/* =========================================================
   Study in the Kingdom - CSS unificato e ottimizzato
   (Base = tuo CSS originale, con fix nav mobile e accordion)
   ========================================================= */

/* ========== 01) Reset & Base ========== */
@import url("https://fonts.googleapis.com/css?family=Poppins:100,200,300,400,500,600,700,800,900");

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn,
em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt,
var, b, u, i, center, dl, dt, dd, ol, ul, li, figure, header, nav, section,
article, aside, footer, figcaption {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
}

.clearfix:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

.clearfix {
    display: inline-block;
}

html[xmlns] .clearfix {
    display: block;
}

* html .clearfix {
    height: 1%;
}

ul, li {
    list-style: none;
    margin: 0;
    padding: 0;
}

header, nav, section, article, aside, footer, hgroup {
    display: block;
}

* {
    box-sizing: border-box;
}

html, body {
    font-family: 'Poppins',sans-serif;
    font-weight: 400;
    font-size: 16px;
    background: #fff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img {
    max-width: 100%;
    height: auto;
    display: block;
}

h1, h2, h3, h4, h5, h6 {
    margin: 0;
}

ul {
    margin-bottom: 0;
}

p {
    font-size: 14px;
    line-height: 25px;
    color: #2a2a2a;
}

::selection {
    background: #f5a425;
    color: #fff;
}

::-moz-selection {
    background: #f5a425;
    color: #fff;
}

@media (max-width: 991px) {
    html, body {
        overflow-x: hidden;
    }

    .mobile-top-fix {
        margin-top: 30px;
        margin-bottom: 0;
    }

    .mobile-bottom-fix {
        margin-bottom: 30px;
    }

    .mobile-bottom-fix-big {
        margin-bottom: 60px;
    }
}

/* Link testuali (non bottoni) */
a {
    text-decoration: none !important;
    color: #3CF;
}

    a:hover {
        color: #3CF;
    }
    /* niente giallo globale sui link non-bottone */
    a:not(.btn):not(.main-button-blu):hover {
        color: #5a3e2b;
    }

.text-brown {
    color: #5a3e2b !important;
}

.text-teal {
    color: #0ea5b3 !important;
}

html {
    scroll-behavior: smooth;
}

/* ========== 02) Bottoni ========== */
.main-button-red a {
    font-size: 13px;
    color: #fff;
    background: #a12c2f;
    padding: 12px 30px;
    display: inline-block;
    border-radius: 22px;
    font-weight: 500;
    text-transform: uppercase;
    transition: all .3s;
}

    .main-button-red a:hover {
        opacity: .9;
    }

.main-button-yellow a {
    font-size: 13px;
    color: #fff;
    background: #f5a425;
    padding: 12px 30px;
    display: inline-block;
    border-radius: 22px;
    font-weight: 500;
    text-transform: uppercase;
    transition: all .3s;
}

    .main-button-yellow a:hover {
        opacity: .9;
    }

/* Pulsante turchese compatto */
a.main-button-blu, button.main-button-blu, .main-button-blu a, .btn.main-button-blu {
    display: inline-block !important;
    width: auto !important;
    max-width: 100%;
    white-space: nowrap;
    padding: .6rem 1.1rem !important;
    border-radius: 28px !important;
    background: #22aeb3 !important;
    color: #fff !important;
    border: 0 !important;
    line-height: 1.2;
    text-decoration: none !important;
    font-weight: 600;
}

    a.main-button-blu:hover, button.main-button-blu:hover, .main-button-blu a:hover, .btn.main-button-blu:hover {
        background: #1a98a0 !important;
        color: #fff !important;
    }

    a.main-button-blu i, button.main-button-blu i, .main-button-blu a i, .btn.main-button-blu i,
    a.main-button-blu span, button.main-button-blu span, .main-button-blu a span, .btn.main-button-blu span {
        color: inherit !important;
    }

/* ========== 03) Header / Navigation ========== */
.sub-header {
    background: #1f272b;
    position: relative;
    z-index: 1111;
}

    .sub-header .right-icons {
        text-align: right;
        padding: 8px 0;
    }

        .sub-header .right-icons ul li {
            display: inline-block;
            margin-left: 15px;
        }

            .sub-header .right-icons ul li a {
                color: #fff;
                font-size: 14px;
                transition: all .3s;
            }

                .sub-header .right-icons ul li a:hover {
                    color: #f5a425;
                }

/* Header fixed */
.header-area {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2000;
    background: rgba(31,39,43,0.85);
    padding: 0 15px;
    height: 80px;
    box-shadow: 0 0 10px rgba(0,0,0,.15);
    transition: all .5s ease;
}

    .header-area .main-nav {
        min-height: 80px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        background: transparent;
    }
        /* Logo */
        /* Logo nel vecchio header (.header-area) */
        .header-area .main-nav .logo img {
            height: 36px; /* prima era 40px */
            width: auto !important; /* neutralizza img{width:100%} */
            max-width: 100%;
            display: block;
            object-fit: contain;
            transition: filter .2s ease;
        }
    /* Header SCURO → logo invertito */
    .header-area:not(.background-header) .main-nav .logo img {
        filter: invert(1) brightness(1.15) contrast(1.05);
    }
    /* Header CHIARO → logo normale */
    .header-area.background-header .main-nav .logo img {
        filter: none;
    }
/* (vecchio fix mobile che forzava chiaro) rimosso: gestiamo sotto con media query unificata */

/* Desktop */
@media (min-width: 992px) {
    .menu-trigger {
        display: none !important;
    }

    .header-area {
        background: #1f272b;
    }

        .header-area .main-nav .nav {
            margin-left: auto;
            display: flex;
            align-items: center;
            gap: 16px;
        }

            .header-area .main-nav .nav li {
                padding: 0 12px;
            }

                .header-area .main-nav .nav li:last-child {
                    padding-right: 0;
                }

                .header-area .main-nav .nav li a {
                    display: block;
                    font-weight: 500;
                    font-size: 14px;
                    text-transform: uppercase;
                    color: #fff;
                    height: 48px;
                    line-height: 48px;
                    letter-spacing: .5px;
                    transition: all .3s ease;
                }

                    .header-area .main-nav .nav li:hover a,
                    .header-area .main-nav .nav li a.active {
                        color: #f5a425 !important;
                    }

                /* Submenu */
                .header-area .main-nav .nav li.has-sub {
                    position: relative;
                    padding-right: 15px;
                }

                    .header-area .main-nav .nav li.has-sub:after {
                        font-family: FontAwesome;
                        content: "\f107";
                        font-size: 12px;
                        color: #fff;
                        position: absolute;
                        right: 5px;
                        top: 16px;
                    }

                    .header-area .main-nav .nav li.has-sub ul.sub-menu {
                        position: absolute;
                        width: 200px;
                        box-shadow: 0 2px 28px rgba(0,0,0,.06);
                        overflow: hidden;
                        top: 48px;
                        opacity: 0;
                        transform: translateY(10px);
                        transition: all .2s ease;
                        visibility: hidden;
                        z-index: 3000;
                    }

                    .header-area .main-nav .nav li.has-sub:hover ul.sub-menu {
                        visibility: visible;
                        opacity: 1;
                        transform: translateY(0);
                    }

                    .header-area .main-nav .nav li.has-sub ul.sub-menu li a {
                        display: block;
                        background: #f7f7f7;
                        color: #2a2a2a !important;
                        padding-left: 20px;
                        height: 40px;
                        line-height: 40px;
                        font-size: 13px;
                        border-bottom: 1px solid #eee;
                    }

                    .header-area .main-nav .nav li.has-sub ul li a:hover {
                        background: #fff;
                        color: #0ea5b3 !important;
                        padding-left: 25px;
                    }
}

/* Variante chiara (se la usi via JS allo scroll) */
.background-header {
    background: #fff !important;
}

    .background-header .main-nav .nav li a, .background-header .main-nav .logo {
        color: #1e1e1e !important;
    }

    .background-header .main-nav .nav li:hover a, .background-header .nav li a.active {
        color: #0ea5b3 !important;
    }

    .background-header .main-nav .nav li.has-sub:after {
        color: #1e1e1e;
    }

/* ===== NAV Mobile/Tablet con :target (UNICO BLOCCO) ===== */
@media (max-width: 991.98px) {
    /* Header scuro coerente */
    .header-area {
        background: #1f272b !important;
        height: 80px !important;
        padding: 0 15px !important;
    }

    nav.main-nav {
        position: relative !important;
        min-height: 80px;
        display: flex;
        align-items: center;
        gap: 12px;
        background: transparent !important;
        z-index: 2000 !important;
    }

        /* logo versione bianca opzionale */
        nav.main-nav .logo.logo--white img {
            filter: invert(1) brightness(1.15) contrast(1.05);
        }

        /* Trigger */
        nav.main-nav .menu-trigger {
            display: inline-block !important;
            position: relative;
            margin-left: auto;
            color: #fff !important;
            border: 1px solid rgba(255,255,255,.25);
            border-radius: 8px;
            padding: 7px 12px;
            font-weight: 600;
            transition: color .2s, border-color .2s;
        }

            nav.main-nav .menu-trigger:hover {
                color: #f5a425 !important;
                border-color: #f5a425;
            }

    /* Chiusa di default (vinciamo sulle regole del template) */
    .header-area .main-nav .nav {
        display: none !important;
    }

    nav.main-nav > ul#mobileNav {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #1f272b !important;
        border: 1px solid rgba(255,255,255,.20);
        border-radius: 12px;
        padding: 12px;
        gap: 8px;
        box-shadow: 0 8px 24px rgba(0,0,0,.35);
        flex-direction: column;
        z-index: 3000 !important;
        transition: opacity .15s ease;

    }
    /* aperto quando il checkbox è spuntato */

    .nav-toggle:checked ~ ul#mobileNav {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    /* opzionale: stato ARIA per accessibilità su label trigger */
    .nav-toggle:checked + .menu-trigger { /* puoi cambiare icona/testo se vuoi */
    }
        /* Aperta SOLO quando target */
       /*/* nav.main-nav > ul#mobileNav:target {
            display: flex !important;
            visibility: visible !important;
            opacity: 1 !important;
            pointer-events: auto !important;
        }

        /* Link */
        nav.main-nav > ul#mobileNav li {
            width: 100%;
            border: 0 !important;
        }

        nav.main-nav > ul#mobileNav a {
            display: block;
            color: #fff !important;
            background: transparent !important;
            padding: 10px 12px;
            border-radius: 8px;
            height: auto;
            line-height: 1.3;
            transition: color .2s, background .2s;
        }

            nav.main-nav > ul#mobileNav a:hover, nav.main-nav > ul#mobileNav a:focus, nav.main-nav > ul#mobileNav a.active {
                color: #f5a425 !important;
                background: rgba(255,255,255,.08) !important;
            }
}

/* ========== 04) Hero / Banner ========== */
.section.main-banner, .main-banner {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    padding-top: 80px; /* spazio header */
}

#bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

    #bg-video::-webkit-media-controls {
        display: none !important;
    }

.video-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(31,39,43,0.75);
    z-index: 1;
}

.main-banner .caption {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    min-height: calc(100vh - 80px);
    gap: 20px;
    max-width: 900px;
    margin-left: 5%;
}

    .main-banner .caption h6 {
        color: #fff;
        font-size: 18px;
        font-weight: 600;
        text-transform: uppercase;
        margin: 0;
    }

    .main-banner .caption h2 {
        color: #fff;
        font-size: 42px;
        font-weight: 800;
        margin: 0;
    }

    .main-banner .caption .main-button-blu {
        margin-top: 6px;
    }

@media (max-width:992px) {
    .main-banner .caption {
        max-width: 700px;
        margin-left: 4%;
    }

        .main-banner .caption h2 {
            font-size: 32px;
        }
}

@media (max-width:575.98px) {
    .main-banner .caption {
        max-width: 92%;
        margin-left: 4%;
    }

        .main-banner .caption h2 {
            font-size: 28px;
        }
}

/* Scroll down FAB */
.scroll-down-fab {
    position: absolute;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    z-index: 3;
}

    .scroll-down-fab a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 56px;
        height: 56px;
        border-radius: 50%;
        border: 2px solid rgba(255,255,255,.75);
        background: transparent;
        color: #fff;
        transition: all .3s ease;
    }

        .scroll-down-fab a:hover {
            background: rgba(255,255,255,.2);
            color: #0ea5b3;
            border-color: #0ea5b3;
        }

    .scroll-down-fab i {
        font-size: 20px;
    }

.scroll-to-section {
    display: inline-block !important;
}
/* === HERO LOGO PNG: blocca l’effetto "a tutta larghezza" solo nel banner === */
.main-banner img.brand-logo,
.main-banner .hero-logo {
    width: auto !important; /* annulla img{width:100%} solo qui */
    height: clamp(90px, 28vw, 160px); /* scala in base allo schermo */
    max-width: 85vw; /* sicurezza su XS */
    display: block;
    margin: 0 0 8px;
    object-fit: contain;
}

@media (max-width: 380px) {
    .main-banner img.brand-logo,
    .main-banner .hero-logo {
        height: 110px;
        max-width: 80vw;
    }
}

/* ========== 05) Services (cards) ========== */
.services .item {
    background-color: rgba(106,178,209,.3);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    border: 1px solid #000;
    border-radius: 20px;
    text-align: center;
    color: #783205;
    padding: 40px;
    overflow: hidden;
}

    .services .item .icon {
        max-width: 60px;
        margin: 0 auto;
    }

    .services .item h4 {
        margin: 25px 0 15px;
        font-size: 18px;
        font-weight: 600;
    }

    .services .item p {
        color: #010F55;
        font-size: 13px;
    }

.services .owl-nav {
    display: inline-block !important;
    text-align: center;
    position: absolute;
    width: 100%;
    top: 50%;
    transform: translateY(-25px);
}

    .services .owl-nav .owl-prev, .services .owl-nav .owl-next {
        position: absolute;
        outline: none;
    }

    .services .owl-nav .owl-prev {
        left: -80px;
    }

    .services .owl-nav .owl-next {
        right: -85px;
    }

        .services .owl-nav .owl-prev span, .services .owl-nav .owl-next span {
            opacity: 0;
        }

    .services .owl-nav .owl-prev:before, .our-courses .owl-nav .owl-prev:before {
        display: inline-block;
        font-family: 'FontAwesome';
        color: #1e1e1e;
        font-size: 25px;
        font-weight: 700;
        content: '\f104';
        background: #fff;
        width: 50px;
        height: 50px;
        border-radius: 50%;
        line-height: 50px;
    }

    .services .owl-nav .owl-next:before, .our-courses .owl-nav .owl-next:before {
        display: inline-block;
        font-family: 'FontAwesome';
        color: #1e1e1e;
        font-size: 25px;
        font-weight: 700;
        content: '\f105';
        background: #fff;
        width: 50px;
        height: 50px;
        border-radius: 50%;
        line-height: 50px;
    }

@media (max-width:1005px) {
    .services .owl-nav .owl-next, .services .owl-nav .owl-prev {
        display: none;
    }
}

/* ========== 06) Upcoming meetings (template) ========== */
section.upcoming-meetings {
    background-image: url("/assets/images/meetings-page-bg1.jpg");
    background-position: center center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    padding-top: 230px;
    padding-bottom: 110px;
}

    section.upcoming-meetings .section-heading {
        text-align: center;
    }

    section.upcoming-meetings .categories {
        background: #fff;
        border-radius: 20px;
        padding: 40px;
        margin-right: 45px;
    }

        section.upcoming-meetings .categories h4 {
            font-size: 18px;
            font-weight: 600;
            color: #1f272b;
            margin-bottom: 30px;
            padding-bottom: 20px;
            border-bottom: 1px solid #eee;
        }

        section.upcoming-meetings .categories ul li {
            display: inline-block;
            margin-bottom: 15px;
        }

            section.upcoming-meetings .categories ul li a {
                font-size: 15px;
                color: #1f272b;
                font-weight: 500;
                transition: all .3s;
            }

                section.upcoming-meetings .categories ul li a:hover {
                    color: #a12c2f;
                }

.meeting-item {
    margin-bottom: 30px;
}

    .meeting-item .thumb {
        position: relative;
    }

        .meeting-item .thumb img {
            border-top-right-radius: 20px;
            border-top-left-radius: 20px;
        }

        .meeting-item .thumb .price {
            position: absolute;
            left: 20px;
            top: 20px;
        }

            .meeting-item .thumb .price span {
                font-size: 16px;
                color: #1f272b;
                font-weight: 600;
                background: rgba(250,250,250,0.9);
                padding: 7px 12px;
                border-radius: 10px;
            }

    .meeting-item .down-content {
        background: #fff;
        padding: 30px;
        border-bottom-right-radius: 20px;
        border-bottom-left-radius: 20px;
    }

        .meeting-item .down-content .date {
            float: left;
            text-align: center;
            display: inline-block;
            margin-right: 20px;
        }

            .meeting-item .down-content .date h6 {
                font-size: 13px;
                text-transform: uppercase;
                font-weight: 600;
                color: #a12c2f;
            }

            .meeting-item .down-content .date span {
                display: block;
                color: #1f272b;
                font-size: 22px;
                margin-top: 7px;
            }

        .meeting-item .down-content h4 {
            font-size: 18px;
            color: #1f272b;
            font-weight: 600;
            display: inline-block;
            margin-bottom: 15px;
        }

        .meeting-item .down-content p {
            margin-left: 50px;
            color: #1f272b;
            font-size: 14px;
        }

/* ========== 07) Apply now / accordions (template base) ========== */
section.apply-now {
    background-image: url("/assets/images/apply-bg.jpg");
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 140px 0;
}

    section.apply-now .item {
        background-color: rgba(250,250,250,0.15);
        padding: 40px;
        margin-bottom: 30px;
    }

        section.apply-now .item h3 {
            color: #fff;
            text-transform: uppercase;
            font-size: 24px;
            font-weight: 700;
            margin-bottom: 20px;
        }

        section.apply-now .item p {
            color: #fff;
            margin-bottom: 20px;
        }

.accordions {
    border-radius: 20px;
    padding: 40px;
    background: #fff;
    margin-left: 45px;
}

    .accordions .accordion {
        border-bottom: 1px solid #eee;
    }

    .accordions .last-accordion {
        border-bottom: none;
    }

.accordion-head {
    padding: 20px;
    font-size: 18px;
    font-weight: 700;
    color: #1f272b;
    cursor: pointer;
    transition: color .2s;
    border-bottom: 1px solid #fff;
}

    .accordion-head .icon {
        float: right;
        transition: transform .2s;
    }

    .accordion-head.is-open {
        color: #f5a425;
        border-bottom: none;
    }

        .accordion-head.is-open .icon {
            transform: rotate(45deg);
        }

.accordions .accordion-body {
    overflow: hidden;
    height: 0;
    transition: height .3s;
    border-bottom: 1px solid #fff;
}

.accordion-body > .content {
    padding: 20px;
    padding-top: 0;
}

/* ========== 08) Our Courses ========== */
section.our-courses {
    background-image: url("/assets/images/meetings-page-bg-bej.jpg");
    background-position: center center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    padding-top: 140px;
    padding-bottom: 130px;
}

.our-courses .item .down-content {
    background: #fff;
}

    .our-courses .item .down-content h4 {
        padding: 25px;
        font-size: 18px;
        color: #1f272b;
        text-align: center;
        border-bottom: 1px solid #eee;
    }

    .our-courses .item .down-content .info {
        padding: 25px;
    }

        .our-courses .item .down-content .info ul li {
            display: inline-block;
            margin-right: 1px;
        }

            .our-courses .item .down-content .info ul li i {
                color: #f5a425;
                font-size: 14px;
            }

        .our-courses .item .down-content .info span {
            color: #a12c2f;
            font-size: 15px;
            font-weight: 600;
            text-align: right;
            display: inline-block;
            width: 100%;
        }

.our-courses .owl-nav {
    text-align: center;
    position: absolute;
    width: 100%;
    top: 50%;
    transform: translateY(-45px);
}

.our-courses .owl-dots {
    display: inline-block;
    text-align: center;
    width: 100%;
    margin-top: 40px;
}

    .our-courses .owl-dots .owl-dot {
        transition: all .5s;
        width: 7px;
        height: 7px;
        background: #fff;
        margin: 0 5px;
        border-radius: 50%;
        outline: none;
    }

    .our-courses .owl-dots .active {
        width: 24px;
        height: 8px;
        border-radius: 4px;
    }

@media (max-width:1005px) {
    .our-courses .owl-nav .owl-next, .our-courses .owl-nav .owl-prev {
        display: none;
    }
}

/* ========== 09) Our Facts ========== */
section.our-facts {
    background-image: url("/assets/images/facts-bg.jpg");
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 140px 0 125px;
}

    section.our-facts h2 {
        font-size: 38px;
        color: #fff;
        line-height: 50px;
        font-weight: 700;
        letter-spacing: .5px;
        margin-bottom: 50px;
    }

.count-area-content {
    text-align: center;
    background-color: rgba(250,250,250,0.15);
    border-radius: 20px;
    padding: 25px 30px 35px;
    margin: 15px 0;
}

.count-digit {
    margin: 5px 0;
    color: #f5a425;
    font-weight: 700;
    font-size: 36px;
}

.percentage .count-digit:after {
    content: '%';
    margin-left: 3px;
}

.count-title {
    font-size: 18px;
    font-weight: 500;
    color: #fff;
    letter-spacing: .5px;
}

.new-students {
    margin-top: 45px;
}

section.our-facts .video {
    text-align: center;
    margin-left: 70px;
    background-image: url("/assets/images/video-item-bg.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    border-radius: 20px;
}

    section.our-facts .video img {
        padding: 170px 0;
        max-width: 56px;
    }

@media (max-width:992px) {
    section.our-facts .video {
        margin-left: 0;
        margin-top: 15px;
    }
}

/* ========== 10) Contact Us (template base) ========== */
section.contact-us {
    background-image: url("/assets/images/meetings-page-bg-bej.jpg");
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 140px 0 0 0;
}

    section.contact-us #contact {
        background: #fff;
        border-radius: 20px;
        padding: 40px;
    }

        section.contact-us #contact h2 {
            text-transform: uppercase;
            color: #1f272b;
            border-bottom: 1px solid #eee;
            margin-bottom: 40px;
            padding-bottom: 20px;
            font-size: 22px;
            font-weight: 700;
        }

        section.contact-us #contact input, section.contact-us #contact textarea {
            width: 100%;
            border-radius: 20px;
            background: #f7f7f7;
            outline: none;
            border: none;
            box-shadow: none;
            font-size: 13px;
            font-weight: 500;
            color: #7a7a7a;
            padding: 0 15px;
            margin-bottom: 30px;
        }

        section.contact-us #contact textarea {
            min-height: 140px;
            max-height: 180px;
            padding: 15px;
        }

        section.contact-us #contact button {
            font-size: 13px;
            color: #fff;
            background: #a12c2f;
            padding: 12px 30px;
            display: inline-block;
            border-radius: 22px;
            font-weight: 500;
            text-transform: uppercase;
            transition: all .3s;
            border: none;
            outline: none;
        }

            section.contact-us #contact button:hover {
                opacity: .9;
            }

    section.contact-us .right-info {
        background: #a12c2f;
        border-radius: 20px;
        padding: 40px;
    }

        section.contact-us .right-info ul li {
            display: inline-block;
            border-bottom: 1px solid rgba(250,250,250,0.15);
            margin-bottom: 30px;
            padding-bottom: 30px;
        }

            section.contact-us .right-info ul li:last-child {
                margin-bottom: 0;
                padding-bottom: 0;
                border-bottom: none;
            }

            section.contact-us .right-info ul li h6 {
                color: #fff;
                font-size: 15px;
                font-weight: 600;
                margin-bottom: 10px;
            }

            section.contact-us .right-info ul li span {
                display: block;
                font-size: 18px;
                color: #fff;
                font-weight: 700;
            }

/* Footer semplice */
.footer {
    text-align: center;
    margin-top: 140px;
    border-top: 1px solid rgba(250,250,250,0.15);
    padding: 50px 0;
}

    .footer p {
        text-transform: uppercase;
        font-size: 14px;
        color: #fff;
    }

        .footer p a {
            color: #f5a425;
        }

/* ========== 11) Heading page ========== */
section.heading-page {
    background-image: url("/assets/images/heading-bg.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding-top: 230px;
    padding-bottom: 110px;
    text-align: center;
}

    section.heading-page h6 {
        font-size: 15px;
        text-transform: uppercase;
        font-weight: 600;
        color: #fff;
        letter-spacing: 1px;
    }

    section.heading-page h2 {
        margin: 20px 0;
        font-size: 36px;
        text-transform: uppercase;
        font-weight: 800;
        color: #fff;
        letter-spacing: 1px;
    }

/* ========== 12) Meetings page ========== */
section.meetings-page {
    background-image: url("/assets/images/meetings-page-bg.jpg");
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    padding-top: 140px;
    padding-bottom: 0;
}

/* ========== 13) Responsive varia (dal tuo file) ========== */
@media (max-width:1300px) {
    .services .owl-nav .owl-next {
        right: -30px;
    }

    .services .owl-nav .owl-prev {
        left: -25px;
    }

    .our-courses .owl-nav .owl-next {
        right: -30px;
    }

    .our-courses .owl-nav .owl-prev {
        left: -25px;
    }
}

@media (max-width:1200px) {
    .services .owl-nav .owl-next {
        right: -70px;
    }

    .services .owl-nav .owl-prev {
        left: -65px;
    }

    .our-courses .owl-nav .owl-next {
        right: -70px;
    }

    .our-courses .owl-nav .owl-prev {
        left: -65px;
    }
}

@media (max-width:1085px) {
    .services .owl-nav .owl-next {
        right: -30px;
    }

    .services .owl-nav .owl-prev {
        left: -25px;
    }

    .our-courses .owl-nav .owl-next {
        right: -30px;
    }

    .our-courses .owl-nav .owl-prev {
        left: -25px;
    }
}

@media (max-width:992px) {
    section.upcoming-meetings {
        padding-top: 400px;
    }

        section.upcoming-meetings .categories {
            margin-right: 0;
            margin-bottom: 30px;
        }
}

/* ========== 14) Sezioni personalizzate (tue) ========== */
/* Heading delle sezioni */
.section-heading h2 {
    line-height: 40px;
    margin: 0 0 50px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(250,250,250,0.15);
    font-size: 22px;
    font-weight: 700;
    text-transform: uppercase;
    color: #8B4513;
}

/* Sfondi beach coerenti */
.intro-hero, #saudi-cards, #Services, .accordion-blu,
#about-locations, #program-section, #costs-section,
#apply-form, #stay-informed, #contact-us, #site-footer {
    background-image: url("/assets/images/beach.jpg") !important;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

@media (max-width: 991px) {
    #saudi-cards, .accordion-blu, #about-locations, #program-section, #costs-section, #apply-form, #stay-informed, #contact-us, #site-footer {
        background-attachment: scroll;
    }
}

/* Intro hero (card glass) */
section.intro-hero {
    position: relative;
    padding: 120px 0;
    color: #fff;
}

    section.intro-hero::before {
        content: "";
        position: absolute;
        inset: 0;
    }

.intro-hero .container, .intro-hero .row, .intro-card {
    position: relative;
    z-index: 1;
}

.intro-card {
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.25);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 18px;
    padding: 28px;
    color: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,.15);
}

    .intro-card h2 {
        color: #fff;
        margin: 0 0 10px;
    }

.intro-lead {
    color: #f0f0f0;
    margin: 0 0 14px;
}

.intro-details {
    margin: 0;
}

.intro-toggle {
    display: inline-block;
    margin-top: 6px;
    padding: 10px 18px;
    border-radius: 22px;
    background: #0ea5b3;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    cursor: pointer;
    user-select: none;
    list-style: none;
}

    .intro-toggle::-webkit-details-marker {
        display: none;
    }

    .intro-toggle .less {
        display: none;
    }

.intro-details[open] .intro-toggle .more {
    display: none;
}

.intro-details[open] .intro-toggle .less {
    display: inline;
}

.intro-content {
    margin-top: 14px;
    color: #f7f7f7;
}

@media (max-width:767.98px) {
    section.intro-hero {
        padding: 80px 0;
    }

    .intro-card {
        padding: 20px;
    }
}

/* Saudi cards (glass) */
.saudi-section {
    min-height: 420px;
    padding: 40px 0;
    color: #5a3e2b;
}

.place-card {
    border-radius: 20px;
    padding: 24px;
    margin: 20px 0;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.25);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.25);
    transition: transform .2s, box-shadow .2s;
}

    .place-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 12px 32px rgba(0,0,0,0.35);
    }

.place-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: #4b2e20;
}

.place-subtitle {
    font-size: 1rem;
    color: #7b4f35;
    margin-bottom: 1rem;
}

.place-list {
    padding-left: 1.2rem;
}

    .place-list li {
        margin-bottom: .4rem;
        color: #5a3e2b;
    }

.place-card .btn {
    background: rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.4);
    color: #fff;
}

    .place-card .btn:hover {
        background: rgba(255,255,255,0.35);
        color: #000;
    }

/* Program section */
#program-section {
    position: relative;
    padding: 140px 0 110px;
}

    #program-section::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255,255,255,.10);
        pointer-events: none;
        z-index: 0;
    }

    #program-section > * {
        position: relative;
        z-index: 1;
    }

    #program-section #program-title {
        color: #4b2e20;
        font-weight: 700;
    }

    #program-section .fa {
        margin-right: .5rem;
    }

/* Card accordion (glass) */
.program-accordion {
    background-color: rgba(255,255,255,0.20);
    border: 1px solid rgba(90,62,43,0.25);
    border-radius: 16px;
    overflow: hidden;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    color: #5a3e2b;
}

    .program-accordion .card-header {
        background: transparent;
        border: none;
        padding: 1rem;
        text-align: center;
    }

    .program-accordion .card-toggle {
        background: none;
        border: none;
        font-weight: 600;
        font-size: 1.1rem;
        color: #4b2e20;
        cursor: pointer;
        width: 100%;
        transition: color .2s;
    }

        .program-accordion .card-toggle:hover {
            color: #7b4f35;
        }

    .program-accordion .card-body {
        background: transparent;
        color: #5a3e2b;
        padding: 1rem 1.2rem;
    }

    .program-accordion i {
        color: #7b4f35;
    }

/* Accordion Bootstrap glass */
#program .accordion-item, #program-section .accordion-item {
    background-color: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 16px;
    overflow: hidden;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

#program .accordion-body, #program-section .accordion-body {
    background-color: rgba(255,255,255,0.10);
    color: #1f272b;
}

#program .accordion-button:not(.collapsed), #program-section .accordion-button:not(.collapsed) {
    box-shadow: none;
    background-color: transparent;
}

#program .accordion-button::after, #program-section .accordion-button::after {
    filter: invert(0);
}

/* FAQ (Accordion Blu con gradient) */
#accordion-blu {
    padding: 90px 0 70px;
    position: relative;
    z-index: 3;
    clear: both;
}

    #accordion-blu .accordion-item {
        border: 0;
        border-radius: 16px;
        overflow: hidden;
        margin-bottom: 12px;
    }

    #accordion-blu .accordion-button {
        font-weight: 600;
        box-shadow: none;
        border: 0;
    }

        #accordion-blu .accordion-button:not(.collapsed) {
            box-shadow: none;
        }

    #accordion-blu .accordion-body {
        background: #ffffff;
        color: #1f272b;
    }

    /* Gradiente 1..18 */
    #accordion-blu .accordion-item:nth-child(1) .accordion-button {
        background: linear-gradient(90deg,#f9f2df,#f6e7c8);
    }

    #accordion-blu .accordion-item:nth-child(2) .accordion-button {
        background: linear-gradient(90deg,#f6e7c8,#f0dcae);
    }

    #accordion-blu .accordion-item:nth-child(3) .accordion-button {
        background: linear-gradient(90deg,#f0dcae,#ead093);
    }

    #accordion-blu .accordion-item:nth-child(4) .accordion-button {
        background: linear-gradient(90deg,#ead093,#e3c47b);
    }

    #accordion-blu .accordion-item:nth-child(5) .accordion-button {
        background: linear-gradient(90deg,#e3c47b,#daba64);
    }

    #accordion-blu .accordion-item:nth-child(6) .accordion-button {
        background: linear-gradient(90deg,#daba64,#cfeee6);
    }

    #accordion-blu .accordion-item:nth-child(7) .accordion-button {
        background: linear-gradient(90deg,#cfeee6,#b9e8df);
    }

    #accordion-blu .accordion-item:nth-child(8) .accordion-button {
        background: linear-gradient(90deg,#b9e8df,#a3e1d7);
    }

    #accordion-blu .accordion-item:nth-child(9) .accordion-button {
        background: linear-gradient(90deg,#a3e1d7,#8bd7cd);
    }

    #accordion-blu .accordion-item:nth-child(10) .accordion-button {
        background: linear-gradient(90deg,#8bd7cd,#73ccc2);
    }

    #accordion-blu .accordion-item:nth-child(11) .accordion-button {
        background: linear-gradient(90deg,#73ccc2,#5bc0b5);
    }

    #accordion-blu .accordion-item:nth-child(12) .accordion-button {
        background: linear-gradient(90deg,#5bc0b5,#45b2a9);
    }

    #accordion-blu .accordion-item:nth-child(13) .accordion-button {
        background: linear-gradient(90deg,#45b2a9,#2aa0ba);
    }

    #accordion-blu .accordion-item:nth-child(14) .accordion-button {
        background: linear-gradient(90deg,#2aa0ba,#168fc1);
    }

    #accordion-blu .accordion-item:nth-child(15) .accordion-button {
        background: linear-gradient(90deg,#168fc1,#0f7dbf);
    }

    #accordion-blu .accordion-item:nth-child(16) .accordion-button {
        background: linear-gradient(90deg,#0f7dbf,#0c6ab4);
    }

    #accordion-blu .accordion-item:nth-child(17) .accordion-button {
        background: linear-gradient(90deg,#0c6ab4,#0a58a4);
    }

    #accordion-blu .accordion-item:nth-child(18) .accordion-button {
        background: linear-gradient(90deg,#0a58a4,#083d84);
    }

    #accordion-blu .accordion-button:not(.collapsed) {
        background: inherit;
        color: inherit;
        box-shadow: none;
    }

    #accordion-blu .accordion-item:nth-child(n+13) .accordion-button {
        color: #fff;
    }

        #accordion-blu .accordion-item:nth-child(n+13) .accordion-button::after {
            filter: invert(1);
        }

/* Background sezione + mobile fix */
.accordion-blu {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

@media (max-width:991px) {
    .accordion-blu {
        background-attachment: scroll;
    }
}

/* About locations */
#about-locations {
    position: relative;
    padding-top: 72px;
    margin-top: 16px;
}

    #about-locations::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.18));
        pointer-events: none;
        z-index: 0;
    }

    #about-locations > * {
        position: relative;
        z-index: 1;
    }

/* Costs */
#costs-section {
    position: relative;
    padding: 140px 0 130px;
    z-index: 0;
}

    #costs-section::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255,255,255,0.10);
        z-index: 0;
    }

    #costs-section > * {
        position: relative;
        z-index: 1;
    }

    #costs-section .costs-intro {
        background: rgba(255,255,255,0.20);
        border: 1px solid rgba(90,62,43,0.25);
        border-radius: 12px;
        padding: 16px 20px;
        color: #5a4632;
    }

    #costs-section .program-accordion {
        background-color: rgba(255,255,255,0.20) !important;
        border: 1px solid rgba(90,62,43,0.25);
        border-radius: 16px;
        color: #5a3e2b;
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }

        #costs-section .program-accordion .card-header,
        #costs-section .program-accordion .card-body {
            background: transparent !important;
            border: 0 !important;
        }

        #costs-section .program-accordion .card-title {
            color: #4b2e20;
        }

        #costs-section .program-accordion i {
            color: #7b4f35;
        }

/* Apply form */
#apply-form {
    position: relative;
    padding: 140px 0 110px;
    z-index: 0;
}

    #apply-form::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255,255,255,0.20);
        pointer-events: none;
        z-index: 0;
    }

    #apply-form > .container {
        position: relative;
        z-index: 1;
    }

.apply-form {
    background: transparent;
    color: #5a3e2b;
}

.bg-teal {
    background-color: #0ea5b3;
    color: #fff;
    border-radius: 0 12px 12px 0;
}

#apply-form h3, #apply-form label, #apply-form p, #apply-form .form-check-label {
    color: #5a3e2b;
}

#apply-form .form-control {
    border-radius: 8px;
}

#apply-form .btn.main-button-blu {
    background: #0ea5b3;
    border: none;
    border-radius: 30px;
    padding: 10px 25px;
    font-weight: 600;
}

/* Stay informed */
#stay-informed {
    position: relative;
    padding: 140px 0 110px;
    z-index: 0;
}
#apply-form input[type="file"].form-control:focus {
    outline: 0;
    box-shadow: 0 0 0 .2rem rgba(14,165,179,.15);
    border-color: #0ea5b3;
}

    #stay-informed::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255,255,255,0.10);
        z-index: 0;
    }

    #stay-informed > * {
        position: relative;
        z-index: 1;
    }

    #stay-informed h2 {
        color: #5a3e2b;
        font-weight: 700;
    }

    #stay-informed p {
        color: #1f272b;
    }

    #stay-informed a {
        color: #0ea5b3;
        text-decoration: none;
        transition: color .2s;
    }

        #stay-informed a:hover {
            color: #5a3e2b !important;
        }

.info-card {
    background-color: rgba(255,255,255,0.20);
    border: 1px solid rgba(90,62,43,0.25);
    border-radius: 16px;
    padding: 1.25rem;
    transition: transform .2s, box-shadow .2s, border-color .2s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

    .info-card:hover {
        transform: translateY(-4px);
        border-color: #0ea5b3;
        box-shadow: 0 6px 16px rgba(14,165,179,0.3);
    }

    .info-card .card-title {
        color: #5a3e2b;
        font-weight: 600;
    }

    .info-card p, .info-card h6 {
        color: #1f272b;
    }

    .info-card i {
        color: #5a3e2b;
        transition: color .2s;
    }

    .info-card:hover i {
        color: #0ea5b3;
    }

/* Contact-us (pannello) */
#contact-us {
    position: relative;
    padding: 140px 0 110px;
    z-index: 0;
}

    #contact-us::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255,255,255,0.10);
        z-index: 0;
    }

    #contact-us .container {
        position: relative;
        z-index: 1;
    }

.contact-form {
    background: rgba(255,255,255,0.20);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 12px;
}

.bg-brown {
    background-color: #5a3e2b !important;
}

.text-sand {
    color: #f5deb3 !important;
}

/* Footer sito (beach + leggero blur) */
#site-footer {
    position: relative;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    z-index: 0;
}

    #site-footer::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255,255,255,0.001);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        pointer-events: none;
        z-index: 0;
    }

    #site-footer .container {
        position: relative;
        z-index: 1;
    }

.footer-link {
    color: #22aeb3;
    text-decoration: none;
}

    .footer-link:hover {
        text-decoration: underline;
    }

/* Logo (ripetuto per sicurezza) */
.header-area .main-nav .logo img {
    height: 40px;
    width: auto;
    display: block;
    transition: filter .2s ease;
}

.header-area:not(.background-header) .main-nav .logo img {
    filter: invert(1) brightness(1.15) contrast(1.05);
}

.header-area.background-header .main-nav .logo img {
    filter: none;
}

/* Campus Events – coerente con le altre sezioni */
#campus-events {
    position: relative;
    padding: 140px 0 110px;
    background-image: url("/assets/images/beach.jpg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

    #campus-events::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
    }

    #campus-events > .container {
        position: relative;
        z-index: 1;
    }

    #campus-events .row.g-0.shadow.rounded.overflow-hidden {
        background-color: transparent !important;
        box-shadow: none;
    }

    #campus-events .form-control, #campus-events .form-select {
        border-radius: 8px;
    }

/* ========== 15) FIX Accordion (compat Bootstrap) ========== */
.accordion-button * {
    pointer-events: none;
}

.accordion-collapse.collapse {
    display: none;
}

    .accordion-collapse.collapse.show {
        display: block;
    }

/* ========== 16) Tweak vari ========== */
.templatemo-item-col {
    width: 31%;
}

@media (max-width:992px) {
    .templatemo-item-col {
        width: 45%;
    }
}

@media (max-width:767px) {
    .templatemo-item-col {
        width: 100%;
    }
}

.tricolore {
    background: linear-gradient(to right, #008C45 33%, #F4F5F0 33% 66%, #CD212A 66%);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}
/* ====== PALETTE ====== */
:root {
    --nav-brown: #6b4e2e; /* testo su bianco */
    --nav-orange: #ff7a00; /* attivo/hover */
}
/* ================= NAVBAR & HEADER ================= */

/* Elimina lo "spacer" fantasma sotto la navbar */
.navbar-spacer {
    height: 0 !important;
    display: none !important;
}

/* Transizioni morbide */
#mainNav {
    transition: background-color .3s ease, color .3s ease, box-shadow .2s ease;
}

    /* Logo nel main nav */
    #mainNav .brand-logo {
        height: 50px;
        width: auto !important; /* batte la regola img{width:100%} */
        max-width: 100%;
        display: block;
        object-fit: contain;
    }

@media (max-width: 575.98px) {
    #mainNav .brand-logo {
        height: 36px;
    }
    /* prima 30px */
}

/* ====== STATO INIZIALE TRASPARENTE (sopra hero / mobile) ====== */
#mainNav.bg-transparent {
    background-color: transparent !important;
}

    #mainNav.bg-transparent .navbar-brand,
    #mainNav.bg-transparent .nav-link,
    #mainNav.bg-transparent .btn {
        color: #fff !important;
        border-color: rgba(255,255,255,.85) !important;
    }
    /* Logo bianco su scuro */
    #mainNav.bg-transparent .brand-logo {
        filter: invert(1) brightness(1.15) contrast(1.05);
    }

/* ====== STATO BIANCO (scroll o menu aperto) ====== */
#mainNav.scrolled,
#mainNav.is-open,
#mainNav:has(#navCollapse.show) {
    background-color: #fff !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
}

    #mainNav.scrolled .navbar-brand,
    #mainNav.scrolled .nav-link,
    #mainNav.scrolled .btn,
    #mainNav.is-open .navbar-brand,
    #mainNav.is-open .nav-link,
    #mainNav.is-open .btn,
    #mainNav:has(#navCollapse.show) .navbar-brand,
    #mainNav:has(#navCollapse.show) .nav-link {
        color: var(--nav-brown) !important;
        border-color: var(--nav-brown) !important;
    }
        /* Hover & attivo → arancione */
        #mainNav.scrolled .nav-link:hover,
        #mainNav.scrolled .nav-link:focus,
        #mainNav.scrolled .nav-link.active,
        #mainNav.scrolled .nav-link[aria-current="page"],
        #mainNav.is-open .nav-link:hover,
        #mainNav.is-open .nav-link:focus,
        #mainNav.is-open .nav-link.active,
        #mainNav.is-open .nav-link[aria-current="page"],
        #mainNav:has(#navCollapse.show) .nav-link:hover,
        #mainNav:has(#navCollapse.show) .nav-link:focus {
            color: var(--nav-orange) !important;
        }
    /* Logo normale su bianco */
    #mainNav.scrolled .brand-logo,
    #mainNav.is-open .brand-logo,
    #mainNav:has(#navCollapse.show) .brand-logo {
        filter: none;
    }

/* Bottone outline (es. Contact Us) */
#mainNav .btn.btn-outline-dark,
#mainNav .btn.btn-outline-light {
    color: inherit !important;
    border-color: currentColor !important;
    background: transparent !important;
    border-width: 1px;
    border-radius: 999px;
    padding-top: .45rem;
    padding-bottom: .45rem;
}

    #mainNav .btn.btn-outline-dark:hover,
    #mainNav .btn.btn-outline-light:hover {
        color: #fff !important;
        background: var(--nav-orange) !important;
        border-color: var(--nav-orange) !important;
    }

/* ====== PALETTE ====== */
:root {
    --nav-brown: #6b4e2e;
    --nav-orange: #ff7a00;
}

/* ====== DESKTOP (≥992px) ====== */
@media (min-width: 992px) {
    #mainNav {
        background: #fff !important;
        box-shadow: 0 2px 12px rgba(0,0,0,.06);
    }

    #navCollapse {
        display: flex !important;
        align-items: center;
    }

    #mainNav .navbar-nav {
        flex-direction: row !important;
        gap: .35rem;
    }

    #mainNav .nav-item {
        margin: 0 .25rem;
    }

    #mainNav .nav-link, #mainNav .navbar-brand {
        color: var(--nav-brown) !important;
    }

        #mainNav .nav-link:hover,
        #mainNav .nav-link:focus,
        #mainNav .nav-link.active,
        #mainNav .nav-link[aria-current="page"] {
            color: var(--nav-orange) !important;
        }
}

/* ====== MOBILE (<992px) ====== */
@media (max-width: 991.98px) {
    /* Collapse pannello scuro */
    .navbar-collapse {
        position: fixed;
        top: 80px;
        left: 12px;
        right: 12px;
        background: #1f272b !important;
        border: 1px solid rgba(255,255,255,.18);
        border-radius: 12px;
        padding: 12px;
        box-shadow: 0 14px 28px rgba(0,0,0,.35);
        z-index: 2150;
        max-height: calc(100dvh - 100px);
        overflow-y: auto;
    }

    .navbar-nav .nav-link {
        color: #fff !important;
        padding: 10px 12px;
        border-radius: 8px;
    }

        .navbar-nav .nav-link:hover,
        .navbar-nav .nav-link:focus {
            color: #f5a425 !important;
            background: rgba(255,255,255,.08);
        }
}
/* ================== HAMBURGER MENU (all screens) ================== */
.navbar-toggler {
    border: 2px solid var(--nav-orange) !important; /* bordo sempre visibile */
    border-radius: 6px;
    padding: 4px 8px;
    z-index: 2200;
}

/* Stoppa l'SVG di Bootstrap ovunque */
.navbar .navbar-toggler-icon,
.navbar-dark .navbar-toggler-icon,
.navbar-light .navbar-toggler-icon {
    background-image: none !important;
}

/* 3 linee personalizzate */
.navbar-toggler-icon {
    width: 24px;
    height: 2px;
    display: block;
    position: relative;
}

/* Contrasto linee:
   - su navbar scura -> bianche
   - su navbar chiara -> arancioni
*/
.navbar-dark .navbar-toggler-icon,
.navbar-dark .navbar-toggler-icon::before,
.navbar-dark .navbar-toggler-icon::after {
    background-color: #fff !important;
}

.navbar-light .navbar-toggler-icon,
.navbar-light .navbar-toggler-icon::before,
.navbar-light .navbar-toggler-icon::after {
    background-color: var(--nav-orange) !important;
}

/* posizionamento linee */
.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
    content: "";
    position: absolute;
    left: 0;
    width: 24px;
    height: 2px;
    transition: all .2s ease;
}

.navbar-toggler-icon {
    background-color: currentColor;
}
    /* linea centrale */
    .navbar-toggler-icon::before {
        top: -7px;
    }

    .navbar-toggler-icon::after {
        top: 7px;
    }

/* Hover: enfatizza il colore (soprattutto su scuro) */
.navbar-toggler:hover .navbar-toggler-icon,
.navbar-toggler:hover .navbar-toggler-icon::before,
.navbar-toggler:hover .navbar-toggler-icon::after {
    filter: brightness(1.1) saturate(1.1);
}

/* (Opzionale ma consigliato) Stato aperto: hamburger -> X */
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
    background-color: transparent !important; /* nasconde la centrale */
}

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
        top: 0;
        transform: rotate(45deg);
    }

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
        top: 0;
        transform: rotate(-45deg);
    }


/* ================= FIX HERO & CONTENT SPACING ================= */

/* Compensazione per header fixed (80px) */
body {
    padding-top: 80px !important;
}
/* Offset universale per ancore sotto header fisso */
:root {
    --header-h: 80px; /* altezza reale header */
    --anchor-gap: 20px; /* margine extra per lasciare respiro al titolo */
}

section[id] {
    scroll-margin-top: calc(var(--header-h) + var(--anchor-gap));
}

/* Se vuoi più respiro su mobile, aumenta un filo */
@media (max-width: 991.98px) {
    section[id] {
        scroll-margin-top: calc(var(--header-h) + 28px);
    }
}

/* Elimina margini indesiderati sopra la prima section */
.section:first-of-type {
    margin-top: 0 !important;
}

/* Hero: non lascia spazio bianco */
.section.main-banner,
.main-banner {
    padding-top: 80px !important;
    margin-top: 0 !important;
}


/* Logo navbar responsive */
.navbar-brand .brand-logo {
    height: clamp(28px, 5vw, 36px); /* si adatta tra 28 e 36px in base allo schermo */
    width: auto;
    max-width: 100%;
    object-fit: contain;
    display: block;
}

/* Su schermi XS (iPhone 13, <576px) il logo non deve rompere */
@media (max-width: 575.98px) {
    .navbar-brand .brand-logo {
        height: 28px; /* più compatto */
    }


    .link-campus {
        color: #ff7a00; /* arancione */
        font-weight: 600; /* un po' più marcato */
        text-decoration: none; /* senza sottolineatura */
        transition: color 0.3s ease; /* transizione morbida */
    }

        .link-campus:hover,
        .link-campus:focus {
            color: #fff; /* diventa bianco al passaggio */
            text-decoration: none; /* evita underline */
        }
    /* ========= ICON SIZE NORMALIZER (sito intero) ========= */

    /* 0) Regola base per tutte le immagini */
    img {
        max-width: 100%;
        height: auto;
    }

    /* 1) Logo navbar */
    .navbar-brand .brand-logo {
        height: clamp(24px, 5vw, 36px);
        width: auto;
        max-width: 100%;
        object-fit: contain;
        display: block;
        flex: 0 0 auto;
    }

    /* 2) Icone font (Font Awesome / Bootstrap Icons) */
    i.fa, i.fas, i.far, i.fab, i.fa-solid,
    i.bi, .bi,
    .navbar .nav-link i,
    .right-icons i {
        font-size: clamp(16px, 3.8vw, 22px);
        line-height: 1;
        vertical-align: middle;
    }

    /* 3) SVG inline */
    svg.icon, .navbar .nav-link svg, .right-icons svg, svg.bi {
        width: 1em;
        height: 1em;
        display: inline-block;
        vertical-align: -0.125em;
    }

    /* 4) Immagini usate come icone (non foto grandi) */
    img.icon, .icon-img, .right-icons img {
        width: auto;
        height: 1.25em;
        max-height: 28px;
        object-fit: contain;
        display: inline-block;
        vertical-align: -0.125em;
    }

    /* 5) Contenitori icone (evita espansioni) */
    .navbar-brand, .right-icons, .navbar .nav-link {
        min-width: 0;
    }

    /* 6) iPhone Mini & schermi molto piccoli */
    @media (max-width: 380px) {
        i.fa, i.fas, i.far, i.fab, i.fa-solid,
        i.bi, .bi, .navbar .nav-link i, .right-icons i {
            font-size: 18px;
        }

        .navbar-brand .brand-logo {
            height: 26px;
        }

        img.icon, .icon-img, .right-icons img {
            max-height: 24px;
        }
    }

    /* 7) (Opzionale) nascondi icone non essenziali su XS */
    @media (max-width: 360px) {
        .hide-xs {
            display: none !important;
        }
    }






}


