/*
Theme Name: Armanello Child
Theme URI: https://demo.casethemes.net/armanello/
Description: Thème enfant pour les personnalisations du thème Armanello.
Author: Madeleine
Template: armanello
Version: 1.0.0
Text Domain: armanello-child
*/

/*
 * Ajoutez ici vos règles CSS personnalisées.
 * Ce fichier est chargé après les styles du thème parent.
 */

/* Widget Elementor « Google Map ». */
/* Relaie la hauteur du conteneur parent jusqu'à la carte, pour que l'unité
   « % » du réglage Hauteur ait une référence. Sans effet si le parent est en
   hauteur automatique. */
.elementor-widget-armanello_child_google_map,
.elementor-widget-armanello_child_google_map > .elementor-widget-container {
    height: 100%;
}

.pxl-map-render {
    width: 100%;
    /* Repli si aucune hauteur n'est définie dans Elementor. */
    height: 450px;
    min-height: 150px;
    overflow: hidden;
    border-radius: 999px 999px 0 0;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}

.pxl-map-render iframe {
    display: block;
    width: 100%;
    height: 113%;
    margin-top: -112px;
}

/* Widget Elementor « Plan du site (menu) ». */
.armanello-child-menu-sitemap__list,
.armanello-child-menu-sitemap__list .sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.armanello-child-menu-sitemap__list .sub-menu {
    padding: 10px 0 0 24px;
}

.armanello-child-menu-sitemap__list li + li {
    margin-top: 10px;
}

.armanello-child-menu-sitemap a {
    text-decoration: none;
}

/* Variante statique du Layout 1 Service : aucune animation au survol. */
.pxl-service-carousel-static .pxl-item-inner:hover .pxl-wrap {
    opacity: 0;
    transform: translateY(100%);
}

.pxl-service-carousel-static .pxl-item-inner:hover .pxl-item--featured img,
.pxl-service-carousel-static .pxl-item--featured img {
    transform: none !important;
    scale: 1 !important;
    transition: none !important;
}

/* Widget Elementor « Menu sticky ». */
.armanello-child-sticky-menu {
    position: fixed;
    right: 0;
    z-index: 999;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}

.armanello-child-sticky-menu--top {
    top: var(--sticky-menu-offset);
}

.armanello-child-sticky-menu--middle {
    top: 50%;
    transform: translateY(-50%);
}

.armanello-child-sticky-menu--bottom {
    bottom: var(--sticky-menu-offset);
}

.armanello-child-sticky-menu__link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    padding: 0;
    color: #111;
    background: #fff;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.armanello-child-sticky-menu__link + .armanello-child-sticky-menu__link {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.armanello-child-sticky-menu__link:first-child {
    border-top-left-radius: 8px;
}

.armanello-child-sticky-menu__link:last-child {
    border-bottom-left-radius: 8px;
}

.armanello-child-sticky-menu__link:hover,
.armanello-child-sticky-menu__link:focus-visible {
    color: #111;
    background: #f2f2f2;
}

.armanello-child-sticky-menu__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25em;
    font-size: 18px;
}

.armanello-child-sticky-menu__icon svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.armanello-child-sticky-menu__title {
    position: absolute;
    top: 50%;
    right: calc(100% + 10px);
    z-index: 1;
    padding: 8px 14px;
    background: var(--primary-color, #000);
    color: #fff;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
    border-radius: 4px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(8px, -50%);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.armanello-child-sticky-menu__link:hover .armanello-child-sticky-menu__title,
.armanello-child-sticky-menu__link:focus-visible .armanello-child-sticky-menu__title {
    opacity: 1;
    visibility: visible;
    transform: translate(0, -50%);
}

@media (max-width: 767px) {
    .armanello-child-sticky-menu__link {
        width: 44px;
        height: 44px;
    }
}

#ouverturePanel img {
    height: 100px;
    width: auto
}

#pxl-footer-elementor #headingFooter h1 {
    font-size: clamp(15rem, 8rem + 8vw, 11rem);
    line-height: 1.2;
}

.logo-rotate .show-case-box img {
    width: 125px !important;
}

@media screen and (max-width: 1199px) {
    #pxl-header-elementor #pxl-header-mobile {
        z-index: 1000;
    }
}

#logoFooterBackground .pxl-item--image img {
    margin-bottom: -20px;
}

#homeHeader .elementor-element.elementor-widget-pxl_heading .pxl-heading .pxl-item--title {
    font-size: 59px;
}

/* Widget Elementor « Case Team Grid » : colonne 60% pour les grilles 60-40 / 40-60. */
@media screen and (min-width: 1200px) {
    .pxl-grid .col-xl-60-pxl {
        -ms-flex: 0 0 60%;
        flex: 0 0 60%;
        max-width: 60%;
    }
}

.pxl-portfolio-grid-layout1 .pxl-item--title {
    font-size: 3rem;
}
.pxl-portfolio-grid-layout1 .pxl-item--excerpt {
    font-size: 2rem;
    line-height: 2rem;
}
.pxl-portfolio-grid-layout1 .pxl--price {
    width: auto;
    height: auto;
    font-size: 2rem;
    padding: 1rem 2rem;
}

.btn-line .pxl-text-btn {
    line-height: 1.1rem;
}
.armanello-child-mobile-cta .pxl-text-btn {
    line-height: 1.2rem;
}
/* Le thème parent passe la flèche en blanc au survol, invisible sur le fond
   clair du site : on garde un contraste en assombrissant vers l'olive. */
.pxl-scroll-top {
    color: #8e8e8e;
    border: 1px solid #8e8e8e;
}
.pxl-scroll-top:hover,
.pxl-scroll-top:focus {
    color: #46462A;
    border-color: #46462A;
}

@media (max-width: 767px) {
    #sliderHome .pxl-swiper-arrow-wrap {
        top: 40px !important;
    }
    #sliderHome .pxl-testimonial-carousel .pxl-swiper-arrow {
        color: #FFF;
    }

    .pxl-team-grid1 .pxl-grid-inner img {
        height: auto;
        width: 100%;
    }
}

#burgerWhite .pxl-hidden-panel-button.pxl-anchor-button1 .pxl-line {
    background-color: #ffa300;
}

/* Boutons « Réserver votre table » du mobile : reprennent le style du widget
   Case Button (btn-line). Les points d'application suivent ceux du widget
   (elements/widgets/pxl_button.php) : bordure sur le wrapper .pxl-button,
   padding sur le lien, cadre décalé sur .btn-line::before. */
.armanello-child-mobile-cta.pxl-button {
    border-style: solid;
    border-width: 1px;
    border-color: #46462A;
    background-color: #fff;
}
.armanello-child-mobile-cta.btn-line::before {
    border-color: rgba(70, 70, 42, 0.35);
}
.armanello-child-mobile-cta .pxl-text-btn {
    margin-top: 0;
    line-height: 1.2;
}
.armanello-child-mobile-cta .btn {
    color: #1c1c1c;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-decoration: none;
}
.armanello-child-mobile-cta .btn:hover,
.armanello-child-mobile-cta .btn:focus {
    color: #1c1c1c;
}

/* Bouton du panneau du menu : pleine largeur, sous les liens. La marge droite
   compense les 5 px de débord du cadre décalé. */
.armanello-child-mobile-cta--panel.pxl-button {
    display: flex;
    margin: 30px 25px 10px 20px;
}
.armanello-child-mobile-cta--panel .btn {
    padding: 22px 25px;
    font-size: 14px;
}

/* Bouton de la barre d'en-tête : compact, entre le logo et le burger. Le
   conteneur de la barre est en display:block et le burger en position
   absolue (right: 15px) : on passe le conteneur en ligne et on réserve la
   largeur du burger à droite. */
.armanello-child-has-header-cta {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    padding-right: 64px;
}
.armanello-child-mobile-cta--header.pxl-button {
    display: inline-flex;
    flex: 0 0 auto;
    align-self: center;
    margin: 0 0 0 auto;
}
.armanello-child-mobile-cta--header .btn {
    padding: 10px 14px;
    font-size: 11px;
    letter-spacing: 0.1em;
    white-space: nowrap;
}

/* Safari iOS transforme automatiquement les numéros de téléphone en liens et
   leur applique sa couleur de lien par défaut (noir). On leur rend la couleur
   du texte environnant, y compris sur les liens tel:/sms: saisis à la main. */
a[x-apple-data-detectors],
a[href^="tel:"],
a[href^="sms:"] {
    color: inherit !important;
    font-size: inherit !important;
    font-family: inherit !important;
    font-weight: inherit !important;
    text-decoration: none !important;
}

/* Bouton optionnel des diapositives du Case Testimonial Carousel (layout 5).
   Bordure et texte en currentColor : le carousel est utilisé sur fond clair
   comme sur fond olive, le bouton suit la couleur du texte de la section. */
.armanello-child-testimonial-cta-wrap {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}
.armanello-child-testimonial-cta.pxl-button {
    display: inline-flex;
    border: 1px solid currentColor;
}
.armanello-child-testimonial-cta.btn-line::before {
    border-color: currentColor;
    opacity: 0.35;
}
.armanello-child-testimonial-cta .pxl-text-btn {
    margin-top: 0;
    line-height: 1.2;
}
.armanello-child-testimonial-cta .btn {
    padding: 18px 24px;
    color: inherit;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-decoration: none;
}
.armanello-child-testimonial-cta .btn:hover,
.armanello-child-testimonial-cta .btn:focus {
    color: inherit;
}

@media (max-width: 767px) {
    .armanello-child-testimonial-cta-wrap--hide-mobile {
        display: none !important;
    }
}

/* Ancres : la cible d'un lien #ancre est calée en haut de la fenêtre, donc
   masquée par l'en-tête quand celui-ci est fixe. La variable est tenue à jour
   par assets/js/anchor-offset.js et vaut 0 sans en-tête fixe. */
:target {
    scroll-margin-top: calc(var(--armanello-anchor-offset, 0px) + 20px);
}

#sliderHome .pxl-description a {
    color: #FFFFFFBF;
    text-decoration: underline;
    transition: background-color 0.2s ease, color 0.2s ease;
}
#sliderHome .pxl-description a:hover {
    text-decoration: none;
}

@media screen and (max-width: 1199px) {
    #pxl-header-default .pxl-header-branding img, #pxl-header-elementor .pxl-header-branding img {
        height: 60px;
    }

    .pxl-logo-mobile img {
        height: 60px;
    }

    #homeHeader .elementor-element.elementor-widget-pxl_heading .pxl-heading .pxl-item--title {
        font-size: 39px;
    }
}

.elementor-widget-spacer {
    min-height: 1px;
}

/* Complianz : le conteneur de blocage de Google Maps doit occuper toute la hauteur de la carte (avant et après consentement) */
.pxl-map-render > .cmplz-blocked-content-container {
    height: 100%;
}

.pxl-map-render > .cmplz-blocked-content-container > iframe {
    height: 100%;
}