/* DAHAWI PREMIUM ENHANCEMENTS */

.site-loader {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    opacity: 1;
    visibility: visible;
    transition: opacity .45s ease, visibility .45s ease;
}

.site-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.site-loader-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.site-loader-logo {
    width: 86px;
    height: 86px;
    object-fit: contain;
    border-radius: 50%;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .16);
    animation: dahawiLoaderLogo 1.4s ease-in-out infinite;
}

.site-loader-spinner {
    width: 44px;
    height: 44px;
    border: 4px solid rgba(13, 92, 166, .15);
    border-top-color: #0d5ca6;
    border-radius: 50%;
    animation: dahawiSpinner .8s linear infinite;
}

.site-loader-text {
    color: #14213d;
    font-weight: 700;
    letter-spacing: .08em;
}

@keyframes dahawiSpinner {
    to { transform: rotate(360deg); }
}

@keyframes dahawiLoaderLogo {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.06); }
}

/* Barre de progression */

.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999999;
    width: 0;
    height: 4px;
    background: linear-gradient(90deg, #0d5ca6, #e4573d);
    pointer-events: none;
    transition: width .08s linear;
}

/* Navbar compacte */

.navbar,
.nav-container,
.nav-logo img,
.logo img {
    transition:
        min-height .3s ease,
        width .3s ease,
        height .3s ease,
        padding .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}

.navbar.is-scrolled {
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 9px 30px rgba(0, 0, 0, .12);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.navbar.is-scrolled .nav-container {
    min-height: 70px;
}

.navbar.is-scrolled .nav-logo img,
.navbar.is-scrolled .logo img {
    width: 54px;
    height: 54px;
}

/* Apparition des sections */

.reveal,
.reveal-up,
.reveal-left,
.reveal-right,
.reveal-scale {
    opacity: 0;
    will-change: opacity, transform;
    transition: opacity .75s ease, transform .75s ease;
}

.reveal,
.reveal-up {
    transform: translateY(34px);
}

.reveal-left {
    transform: translateX(-40px);
}

.reveal-right {
    transform: translateX(40px);
}

.reveal-scale {
    transform: scale(.93);
}

.reveal.visible,
.reveal-up.visible,
.reveal-left.visible,
.reveal-right.visible,
.reveal-scale.visible {
    opacity: 1;
    transform: translate(0, 0) scale(1);
}

.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }

/* Cartes */

.card,
.gallery-card,
.stat-box {
    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.card:hover,
.gallery-card:hover,
.stat-box:hover {
    transform: translateY(-7px);
    box-shadow: 0 22px 45px rgba(0, 0, 0, .14);
}

.card img,
.gallery-card img {
    transition: transform .55s ease;
}

.card:hover img,
.gallery-card:hover img {
    transform: scale(1.045);
}

/* Bouton retour en haut */

.back-to-top {
    position: fixed;
    right: 20px;
    bottom: 92px;
    z-index: 20000;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 47px;
    height: 47px;
    border: 0;
    border-radius: 50%;
    background: #14213d;
    color: #ffffff;
    font-size: 18px;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
    transition:
        opacity .25s ease,
        visibility .25s ease,
        transform .25s ease,
        background .25s ease;
}

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

.back-to-top:hover {
    background: #0d5ca6;
    transform: translateY(-3px);
}

body.rtl .back-to-top {
    right: auto;
    left: 20px;
}

/* WhatsApp pulsation */

.whatsapp-float {
    isolation: isolate;
}

.whatsapp-float::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: 50%;
    background: rgba(37, 211, 102, .3);
    content: "";
    animation: whatsappPulse 2s ease-out infinite;
}

@keyframes whatsappPulse {
    from {
        opacity: .7;
        transform: scale(1);
    }

    to {
        opacity: 0;
        transform: scale(1.65);
    }
}

/* Compteurs */

.counter-number {
    display: inline-block;
    font-variant-numeric: tabular-nums;
}

/* Mobile */

@media (max-width: 768px) {
    .scroll-progress {
        height: 3px;
    }

    .site-loader-logo {
        width: 72px;
        height: 72px;
    }

    .navbar.is-scrolled .nav-container {
        min-height: 60px;
    }

    .navbar.is-scrolled .nav-logo img,
    .navbar.is-scrolled .logo img {
        width: 45px !important;
        height: 45px !important;
    }

    .back-to-top {
        right: 14px;
        bottom: 80px;
        width: 43px;
        height: 43px;
    }

    body.rtl .back-to-top {
        right: auto;
        left: 14px;
    }

    .reveal-left,
    .reveal-right {
        transform: translateY(28px);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }

    .reveal,
    .reveal-up,
    .reveal-left,
    .reveal-right,
    .reveal-scale {
        opacity: 1;
        transform: none;
    }
}

/* DAHAWI MOBILE MENU COLORS */

@media screen and (max-width: 992px) {
    .main-navigation {
        background:
            linear-gradient(
                160deg,
                rgba(20, 33, 61, 0.98),
                rgba(13, 92, 166, 0.97)
            ) !important;

        border: 1px solid rgba(255, 255, 255, 0.12) !important;
        border-radius: 0 0 18px 18px !important;
        box-shadow: 0 20px 45px rgba(0, 0, 0, 0.28) !important;

        padding: 10px !important;

        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
    }

    .main-navigation .nav-links {
        background: transparent !important;
    }

    .main-navigation .nav-links > li {
        background: transparent !important;
    }

    .main-navigation .nav-links > li > a,
    .main-navigation .dropdown-toggle {
        background: transparent !important;
        color: #ffffff !important;

        border-bottom:
            1px solid rgba(255, 255, 255, 0.16) !important;

        padding: 15px 18px !important;
        min-height: 54px !important;

        font-weight: 700 !important;

        transition:
            background 0.22s ease,
            color 0.22s ease,
            padding 0.22s ease;
    }

    .main-navigation .nav-links > li > a:hover,
    .main-navigation .nav-links > li > a:focus,
    .main-navigation .dropdown-toggle:hover,
    .main-navigation .dropdown-toggle:focus {
        background: rgba(255, 255, 255, 0.11) !important;
        color: #ffb648 !important;
        padding-inline-start: 24px !important;
    }

    .main-navigation .nav-links > li:last-child > a {
        border-bottom: none !important;
    }

    .main-navigation .dropdown-toggle i {
        color: #ffb648 !important;
    }

    .main-navigation .nav-dropdown.open > .dropdown-toggle {
        background: rgba(255, 255, 255, 0.12) !important;
        color: #ffb648 !important;
    }

    .main-navigation .dropdown-menu {
        background: rgba(255, 255, 255, 0.96) !important;
        border: none !important;
        border-radius: 12px !important;

        margin: 7px 8px !important;
        padding: 7px !important;

        box-shadow: inset 0 0 0 1px rgba(20, 33, 61, 0.08) !important;
    }

    .main-navigation .dropdown-menu a {
        color: #14213d !important;
        background: transparent !important;

        border-bottom:
            1px solid rgba(20, 33, 61, 0.10) !important;

        border-radius: 8px !important;
        padding: 12px 15px !important;
    }

    .main-navigation .dropdown-menu a:hover,
    .main-navigation .dropdown-menu a:focus {
        background: #eef5fb !important;
        color: #e4573d !important;
    }

    .main-navigation .dropdown-menu li:last-child a {
        border-bottom: none !important;
    }

    body.rtl .main-navigation .nav-links > li > a,
    body.rtl .main-navigation .dropdown-toggle {
        text-align: right !important;
        direction: rtl !important;
    }
}

/* DAHAWI NAVBAR FIXED POSITIONS START */

/*
Toujours :
- logo à gauche ;
- menu et bouton hamburger à droite ;
- quelle que soit la langue.
*/

.navbar .nav-container {
    direction: ltr !important;
}

/* Logo toujours à gauche */
.nav-logo,
.nav-mobile-top .logo,
.desktop-logo {
    direction: ltr !important;
    justify-content: flex-start !important;
}

/* Navigation toujours à droite */
.main-navigation {
    direction: ltr !important;
    justify-content: flex-end !important;
}

/*
Le texte arabe reste RTL à l’intérieur du menu,
sans déplacer le menu lui-même.
*/
body.rtl .main-navigation .nav-links,
body.rtl .main-navigation .dropdown-menu {
    direction: rtl !important;
}

/* Bouton devis toujours à droite */
.nav-actions {
    direction: ltr !important;
    justify-content: flex-end !important;
}

/* Ordre ordinateur */
@media screen and (min-width: 993px) {
    .navbar .nav-container {
        display: grid !important;
        grid-template-columns: auto 1fr auto !important;
        align-items: center !important;
    }

    .nav-logo,
    .desktop-logo {
        grid-column: 1 !important;
        grid-row: 1 !important;
        justify-self: start !important;
    }

    .main-navigation {
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-self: end !important;
        width: 100% !important;
    }

    .nav-actions {
        grid-column: 3 !important;
        grid-row: 1 !important;
        justify-self: end !important;
    }
}

/* Ordre tablette et mobile */
@media screen and (max-width: 992px) {
    .navbar .nav-container {
        display: grid !important;
        grid-template-columns: auto 1fr auto !important;
        align-items: center !important;
        direction: ltr !important;
    }

    /* Logo à gauche */
    .nav-logo,
    .nav-mobile-top .logo {
        grid-column: 1 !important;
        justify-self: start !important;
        order: 1 !important;
    }

    /* Hamburger à droite */
    .navbar-toggle {
        grid-column: 3 !important;
        justify-self: end !important;
        margin-left: auto !important;
        margin-right: 0 !important;
        order: 3 !important;
    }

    /*
    Le panneau du menu reste aligné à droite.
    */
    .main-navigation {
        left: auto !important;
        right: 0 !important;
        direction: rtl !important;
    }

    .main-navigation .nav-links {
        direction: rtl !important;
    }

    .main-navigation .nav-links > li > a,
    .main-navigation .dropdown-toggle {
        direction: rtl !important;
        text-align: right !important;
    }
}

/* DAHAWI NAVBAR FIXED POSITIONS END */

/* DAHAWI NAVBAR LEFT ALIGN START */

/* Masquer le bouton devis de la navbar */
.nav-actions {
    display: none !important;
}

/*
Disposition ordinateur :
Logo à gauche, menu placé après le logo
et décalé vers la gauche.
*/
@media screen and (min-width: 993px) {
    .navbar .nav-container {
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        align-items: center !important;
        column-gap: 60px !important;
        direction: ltr !important;
    }

    .nav-logo,
    .desktop-logo {
        grid-column: 1 !important;
        grid-row: 1 !important;
        justify-self: start !important;
    }

    .main-navigation {
        grid-column: 2 !important;
        grid-row: 1 !important;

        display: flex !important;
        justify-content: flex-start !important;
        justify-self: stretch !important;

        width: 100% !important;
        direction: ltr !important;
    }

    .main-navigation .nav-links {
        justify-content: flex-start !important;
        margin: 0 !important;
    }

    /*
    Petit déplacement supplémentaire vers la gauche.
    Modifie -35px si tu veux plus ou moins de déplacement.
    */
    .main-navigation {
        transform: translateX(-35px);
    }

    /*
    En arabe, les mots restent RTL,
    mais le bloc du menu ne change pas de position.
    */
    body.rtl .main-navigation {
        direction: ltr !important;
    }

    body.rtl .main-navigation .nav-links {
        direction: rtl !important;
    }
}

/* Tablette et mobile : aucun bouton devis */
@media screen and (max-width: 992px) {
    .nav-actions {
        display: none !important;
    }
}

/* DAHAWI NAVBAR LEFT ALIGN END */


/* ===== NAVBAR DESKTOP ===== */

@media (min-width:993px){

.nav-container{
    display:grid;
    grid-template-columns:140px 1fr 140px;
    align-items:center;
}

.desktop-logo{
    justify-self:start;
}

.nav-mobile-wrapper{
    display:flex;
    justify-content:center;
    align-items:center;
}

.nav-col-center{
    width:100%;
    display:flex;
    justify-content:center;
}

.nav-links{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:38px;
    margin:0 auto;
}

.nav-actions{
    display:none !important;
}

}

/* DAHAWI TRUE CENTER NAVBAR START */

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

    /*
    Trois colonnes identiques :
    logo à gauche, menu exactement au centre,
    espace vide à droite.
    */
    .navbar .nav-container {
        position: relative !important;
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        width: min(92%, 1240px) !important;
        min-height: 92px !important;
        margin: 0 auto !important;
        padding: 0 !important;
        gap: 20px !important;
        direction: ltr !important;
    }

    /* Logo toujours à gauche */
    .nav-logo,
    .desktop-logo {
        grid-column: 1 !important;
        grid-row: 1 !important;
        justify-self: start !important;
        align-self: center !important;
        margin: 0 !important;
        transform: none !important;
    }

    /* Menu exactement au centre de la page */
    .main-navigation,
    .nav-mobile-wrapper {
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-self: center !important;
        align-self: center !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: none !important;
        direction: ltr !important;
    }

    .main-navigation .nav-links,
    .nav-mobile-wrapper .nav-links,
    .nav-links {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        gap: 32px !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: none !important;
    }

    /* Aucun bouton devis dans la navbar */
    .nav-actions,
    .nav-quote-button {
        display: none !important;
    }

    /*
    L'arabe reste écrit de droite à gauche,
    mais la position du menu ne change pas.
    */
    body.rtl .navbar .nav-container {
        direction: ltr !important;
    }

    body.rtl .main-navigation,
    body.rtl .nav-mobile-wrapper {
        direction: ltr !important;
    }

    body.rtl .main-navigation .nav-links,
    body.rtl .nav-mobile-wrapper .nav-links {
        direction: rtl !important;
    }
}

/* DAHAWI TRUE CENTER NAVBAR END */
