/*!
Theme Name: Villoz Child theme
Theme URI: https://bracketweb.com/villozwp/
Template: villoz
Author: Layerdrops
Author URI: https://themeforest.net/user/Layerdrops
Description: This is a Child theme for Villoz WordPress theme.
Version: 1.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: villoz-child
*/

:root {
  --villoz-heading-font: "Playfair Display", Georgia, serif;
  --villoz-base: #a9afc5;
}

.banner-one {
    padding: 175px 0 275px;
    background: url("/wp-content/uploads/2026/05/pattern_hero_big-scaled.png") no-repeat top center / cover !important;
    /* background-image:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,0.18), transparent 45%),
        radial-gradient(circle at 80% 80%, rgba(0,0,0,0.08), transparent 50%),
        linear-gradient(135deg, #c4c9da 0%, var(--villoz-base) 55%, #8c93ad 100%) !important; */
}

.banner-one__title {
    font-size: 60px;
    line-height: 70px;
    padding-left: 200px;
}

.banner-form__position,
.banner-one__content ,
.about-two__awards,
.feature-one__image::after {
    display:none !important;
}

.main-header__logo img {
    padding: 10px 0;
}

.main-header__logo.logo-retina img {
    height: auto !important;
    object-fit: contain !important;
    image-rendering: auto;
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
}

.preloader .preloader__image {
    background-size: 200px auto !important;
}

.preloader {
    background-color: var(--villoz-base, #a9afc5) !important;
}

.main-menu .main-menu__list > li + li {
    margin-left: 25px;
}

.about-one {
    padding: 120px 0 60px;
}

.about-one__right .about-one__image-two img,
.about-one__content img {
    width: 100% !important;
}

.about-one__shape {
    bottom: 30px;
}

.service-one .container {
    max-width: 1680px;
}

/* Service widget : grille responsive 4 colonnes
   Owl injecte margin-right:30px sur chaque .owl-item (inline style).
   On le neutralise et on gère l'espacement via gap sur le stage. */
.service-one__carousel .owl-stage-outer {
    display: block !important;
    overflow: hidden !important;
}

.service-one__carousel .owl-stage {
    display: flex !important;
    flex-wrap: wrap !important;
    transform: none !important;
    width: 100% !important;
    gap: 30px !important;
}

/* Grand écran (≥ 1200px) : 4 colonnes
   calc : (3 gaps × 30px) / 4 items = 22.5px à soustraire par item */
.service-one__carousel .owl-item {
    width: calc(25% - 22.5px) !important;
    margin-right: 0 !important;
    float: none !important;
}

/* Réduction de la font-size des titres pour 4 colonnes */
.service-one__content__title {
    font-size: 17px;
}

/* Tablette (≤ 1199px) : 2 lignes de 2
   calc : (1 gap × 30px) / 2 items = 15px à soustraire par item */
@media (max-width: 1199px) {
    .service-one__carousel .owl-item {
        width: calc(50% - 15px) !important;
    }
    .service-one__content__title {
        font-size: 20px;
    }
}

/* Mobile (≤ 767px) : 1 colonne */
@media (max-width: 767px) {
    .service-one__carousel .owl-stage {
        gap: 0 !important;
    }
    .service-one__carousel .owl-item {
        width: 100% !important;
    }
}

.testimonials-one {
    padding-bottom: 120px;
}

.gallery-one {
    padding: 80px 0 0px;
}

/* Force toutes les images de la galerie à un format portrait uniforme */
.gallery-one__card {
    aspect-ratio: 3 / 4;
    overflow: hidden;
}

.gallery-one__card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
}

.feature-one__image {
    margin-left: 100px;
}

.elementor-button {
    border-radius : unset !important;
}

@media (min-width: 1200px) {
    .container {
        max-width: 1680px;
    }

    /* Aligne verticalement image et texte dans la section About Two */
    .about-two .row {
        align-items: center;
    }

    .about-two .col-xl-6 {
        display: flex;
        align-items: center;
    }

    .about-two__thumb-area,
    .about-two__content {
        width: 100%;
    }
}

/* #home_about_main {
    background: url("/wp-content/uploads/2026/05/987357135-VQBJZFDG-70.png") no-repeat top center / cover;
} */

/* .about-one a background-color:#fff dans le thème parent — on le neutralise
   pour laisser apparaître le background de #home_about_main */
#home_about_main .about-one {
    background-color: transparent;
}

/* Le thème injecte un ::after blanc en bas du slider banner-form pour masquer
   la transition avec la section suivante (qui était blanche). On le supprime
   maintenant que #home_about_main a un fond coloré. */
.banner-form::after {
    display: none !important;
}

.blog-one {
    padding: 20px 0 !important;
}

.blog-one .blog-card__meta {
    display: none !important;
}

.gallery-one {
    padding-top: 20px !important;
}

/* Blog Layout Three - excerpt */
.blog-card__excerpt {
    margin-top: 15px;
    font-size: 16px;
    line-height: 24px;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 16px;
}

.about-one__circle {
    background: transparent;
}

.about-one__circle__icon {
    color: var(--villoz-black);
}

/* Contact Form 7 - AJAX informational notices */
.contact-one__form .wpcf7 form .wpcf7-response-output {
    margin: 16px 0 0;
    padding: 14px 18px;
    border: 1px solid transparent;
    border-radius: 0;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 500;
}

/* Success */
.contact-one__form .wpcf7 form.sent .wpcf7-response-output,
.contact-one__form .wpcf7 form[data-status="sent"] .wpcf7-response-output {
    color: #1f5d3a;
    background-color: #eaf7ef;
    border-color: #9bd3b0;
}

/* Validation issues */
.contact-one__form .wpcf7 form.invalid .wpcf7-response-output,
.contact-one__form .wpcf7 form.unaccepted .wpcf7-response-output,
.contact-one__form .wpcf7 form[data-status="invalid"] .wpcf7-response-output,
.contact-one__form .wpcf7 form[data-status="unaccepted"] .wpcf7-response-output,
.contact-one__form .wpcf7 form .wpcf7-validation-errors {
    color: #7a4b00;
    background-color: #fff5e6;
    border-color: #f0c36b;
}

/* Failure / spam / aborted / payment-required */
.contact-one__form .wpcf7 form.failed .wpcf7-response-output,
.contact-one__form .wpcf7 form.aborted .wpcf7-response-output,
.contact-one__form .wpcf7 form.spam .wpcf7-response-output,
.contact-one__form .wpcf7 form.payment-required .wpcf7-response-output,
.contact-one__form .wpcf7 form[data-status="failed"] .wpcf7-response-output,
.contact-one__form .wpcf7 form[data-status="aborted"] .wpcf7-response-output,
.contact-one__form .wpcf7 form[data-status="spam"] .wpcf7-response-output,
.contact-one__form .wpcf7 form[data-status="payment-required"] .wpcf7-response-output {
    color: #7e1f24;
    background-color: #fdeced;
    border-color: #e4a3a7;
}

/* Inline field errors */
.contact-one__form .wpcf7-not-valid-tip {
    display: block;
    margin-top: 8px;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 600;
    color: #8a252b;
}

.contact-one__form .wpcf7-form-control.wpcf7-not-valid,
.contact-one__form .wpcf7-form-control-wrap .wpcf7-not-valid {
    border: 1px solid #e4a3a7 !important;
    background-color: #fff8f8 !important;
}

/* CF7 loader: force a visible spinner during AJAX submit */
.contact-one__form .wpcf7-spinner {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin: 0 0 0 10px;
    border: 2px solid rgba(115, 122, 131, 0.3);
    border-top-color: var(--villoz-base, #a9afc5);
    border-radius: 50%;
    background: transparent;
    vertical-align: middle;
    visibility: hidden;
    opacity: 0;
    animation: villoz-cf7-spin 0.7s linear infinite;
    transition: opacity 0.2s ease;
}

.contact-one__form .wpcf7-spinner::before {
    content: none;
}

.contact-one__form .wpcf7 form.submitting .wpcf7-spinner {
    visibility: visible;
    opacity: 1;
}

/* Fallback: some custom CF7 buttons do not output .wpcf7-spinner */
.contact-one__form .wpcf7 form .villoz-btn {
    position: relative;
}

.contact-one__form .wpcf7 form .villoz-btn::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.5);
    border-top-color: #ffffff;
    border-radius: 50%;
    opacity: 0;
    visibility: hidden;
    animation: villoz-cf7-spin 0.7s linear infinite;
}

.contact-one__form .wpcf7 form.submitting .villoz-btn::after {
    opacity: 1;
    visibility: visible;
}

.contact-one__form .wpcf7 form.is-click-submitting .villoz-btn::after {
    opacity: 1;
    visibility: visible;
}

@keyframes villoz-cf7-spin {
    from {
        transform: translateY(-50%) rotate(0deg);
    }

    to {
        transform: translateY(-50%) rotate(360deg);
    }
}

.about-three__box:nth-child(2) .about-three__box__icon {
    display:none;
}

/* Align icon + title vertically for checklist items (keep intro box unchanged) */
.about-three__content .about-three__box:not(:first-child) {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-left: 0;
    margin-bottom: 14px;
}

.about-three__content .about-three__box:not(:first-child) .about-three__box__icon {
    position: static;
    top: auto;
    left: auto;
    transform: none;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    font-size: 15px;
}

.about-three__content .about-three__box:not(:first-child) .about-three__box__title {
    margin: 0;
}

.about-three__content .about-three__box:not(:first-child) .about-three__box__text:empty {
    display: none;
}

.video-two .video-popup {
    display:none !important;
}

/* Custom SVG icon usable with class="icon-globe-new" */
.icon-globe-new::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: url("/wp-content/themes/villoz-child/assets/images/globe-new.svg") no-repeat center center / contain;
    mask: url("/wp-content/themes/villoz-child/assets/images/globe-new.svg") no-repeat center center / contain;
}

.icon-bathrobe::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: url("/wp-content/themes/villoz-child/assets/images/bathrobe.svg") no-repeat center center / contain;
    mask: url("/wp-content/themes/villoz-child/assets/images/bathrobe.svg") no-repeat center center / contain;
}

.icon-translation::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: url("/wp-content/themes/villoz-child/assets/images/translation.svg") no-repeat center center / contain;
    mask: url("/wp-content/themes/villoz-child/assets/images/translation.svg") no-repeat center center / contain;
}

.icon-weekly-calendar::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: url("/wp-content/themes/villoz-child/assets/images/weekly-calendar.svg") no-repeat center center / contain;
    mask: url("/wp-content/themes/villoz-child/assets/images/weekly-calendar.svg") no-repeat center center / contain;
}

/* Elementor Text Editor widget: basic typography fixes for all text blocks */
.elementor-widget-text-editor h3 {
    margin-top: 36px;
    margin-bottom: 10px;
    font-size: 22px;
    line-height: 1.3;
    color: var(--villoz-black, #132742);
}

.elementor-widget-text-editor h3:first-child {
    margin-top: 0;
}

.elementor-widget-text-editor p {
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 12px;
}

.elementor-widget-text-editor ul {
    margin-bottom: 12px;
}

.elementor-widget-text-editor li {
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 6px;
}

.elementor-widget-text-editor hr {
    display: block;
    height: 1px !important;
    margin: 28px 0 !important;
    border: none !important;
    background-color: #d0d3dc !important;
    opacity: 1 !important;
}

/* Video widget (Layout Two): custom CTA under title */
.video-two__content .video-two__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 28px;
    min-width: 240px;
    height: 56px;
    padding: 0 28px;
    background-color: var(--villoz-base, #a9afc5);
    color: white;
    font-size: 17px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    border: 0;
    border-radius: 0;
    transition: background-color 0.3s ease;
}

.video-two__content .video-two__cta-btn:hover,
.video-two__content .video-two__cta-btn:focus {
    color: #ffffff;
    background-color: var(--villoz-black, #132742);
}

#about-one-blanchisserie .about-one {
    background: transparent !important;
}

.work-process-one .row {
    margin-top: 50px;
}

.work-process-one__item__image {
    margin-top: 18px;
}

.work-process-one__item__image img {
    display: block;
    width: 100%;
    height: auto;
}

.elementor-widget-villoz-counter .fact-one > .container > .row:first-child {
    justify-content: center;
}

.about-one__image-three,
.about-one__image-four {
    margin-top: 24px;
}

.about-one__image-three img,
.about-one__image-four img {
    display: block;
    width: 100%;
    height: auto;
}

.mobile-nav__content {
    background-color : var(--villoz-base, #a9afc5) !important;
}

.mobile-nav__content .main-menu__list li > a {
    line-height: 16px !important;
}
