/* Comm'une Couleur Landing Page  */

/* Paddings par défaut des titres (scopés au flux principal,
   cf. commentaire dans sodev-resets.css) */
#wrapper h1 { padding: 20px 0; }
#wrapper h2 { padding: 14px 0; }
#wrapper h3 { padding: 10px 0; }
#wrapper h4,
#wrapper h5,
#wrapper h6 { padding: 7px 0; }

/* Utilitaire : contenu visible uniquement par les lecteurs d'écran */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Skip link : caché jusqu'au focus clavier */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #c0ae7e;
    color: #fff;
    padding: 8px 16px;
    z-index: var(--z-toast);
    text-decoration: none;
}

.skip-link:focus {
    top: 0;
}

/* Bannière affichée uniquement si JavaScript est désactivé.
   Hors d'un <noscript>, ce sélecteur ne matche jamais (la balise n'est pas rendue). */
.noscript-banner {
    margin: 0;
    padding: 12px 20px;
    background: #c0ae7e;
    color: #fff;
    text-align: center;
    font-size: 14px;
    line-height: 1.5;
}

.noscript-banner a {
    color: #fff;
    text-decoration: underline;
    font-weight: 600;
}

.noscript-banner a:hover,
.noscript-banner a:focus-visible {
    opacity: 0.85;
}

.parallax-window {
    min-height: 400px;
    background: transparent;
}

#wrapper {
    margin:0;
    padding:0;
    position: relative;
}

/* --------- Header --------- */

#header {
    height: 71px;
    overflow: visible;
    z-index: var(--z-sticky);
    width: 100%;
    position: absolute;
}

#header .row {
    padding: 0;
}

#header aside {
    text-align: right;
}

#header ul {
    text-align: center;
}

#header li {
    display: inline-block;
    list-style: none;
    margin: 0;
}

/* --------- Logo ---------- */

#logo {
    float: left;
    height: 71px;
    line-height: 66px;
    margin-right: 15px;
}

#logo h1, #logo h2 {
    display: inline-block;
}

#banner #logo h1 {
    margin-right: 10px;
    padding: 0;
}

#logo h2 {
    font-size: 18px;
    padding: 0;
}

#logo img {
    height: 42px;
    width: auto;
    max-height: 42px;
    vertical-align: middle;
    margin-right: 15px;
}

#navigation-logo {
    display: none;
}

.nav-solid #logo #banner-logo {
    display: none;
}

.nav-solid #logo #navigation-logo {
    display: inline-block;
}

/* --------- Buttons ---------- */

.call-to-action {
    padding: 35px 0 35px 0;
}

.button {
    margin: 35px 0;
    padding: 11px 16px;
    transition: background-color .3s linear, color .3s linear, border-color .3s linear;
    display: inline-block;
    border-width: 1px;
    border-style: solid;
}


/* --------- 2.4 Navigation ---------- */


#header aside {
    float: right;
}

#header nav ul {
    text-transform: uppercase;

}
#header nav a {
    height: 71px;
    line-height: 71px;
    display: block;
    padding: 0 10px;
}

#header nav a:hover {
    opacity: 0.6;
}

/*Navigation Solid*/

#header.nav-solid [class*='col-'] {
    padding: 0 20px;
}

#header.nav-solid {
    background: #fff;
    box-shadow: 2px 0px 3px rgba(0, 0, 0, 0.2);
    position: fixed;
    left: 0;
}

#header.nav-solid nav a {
    border-bottom: 3px solid;
    border-color: #fff;
    transition: border-color 0.3s ease-out, opacity 0.3s ease-out;
}

#header.nav-solid nav a:hover {
    opacity: 1;
}

/* Social Elements when Solid*/

#header.nav-solid .social-icons a {
    transition: opacity 0.3s ease-out, color 0.3s ease-out;
    opacity: 0.5;
}

#header.nav-solid .social-icons a:hover {
    opacity: 1;
    color: #e4473c;
}

/* Responsive Nav Styling */

/* Bouton burger : caché par défaut, rendu visible en mobile via responsifs.css.
   Aligné à la même hauteur que le logo (71px) pour garder une nav cohérente. */
#nav-trigger {
    display: none;
    align-items: center;
    justify-content: center;
    height: 71px;
    width: 48px;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: #111;
    font: inherit;
    transition: color 0.3s ease-out, opacity 0.3s ease-out;
}

#nav-trigger .icon-svg {
    width: 28px;
    height: 28px;
}

/* Bascule menu / close selon l'état du bouton */
#nav-trigger .icon-close { display: none; }
#nav-trigger.open .icon-menu { display: none; }
#nav-trigger.open .icon-close { display: inline-block; }

#nav-trigger:hover,
.nav-solid #nav-trigger:hover,
.nav-solid #nav-trigger.open:hover {
    opacity: 0.6;
}

.nav-solid #nav-trigger {
    color: #999;
    opacity: 1;
}

nav#nav-mobile {
    position: relative;
    display: none;
}

nav#nav-mobile ul {
    display: none;
    list-style-type: none;
    position: absolute;
    left: 0;
    right: 0;
    margin-left: -20px;
    margin-right: -20px;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
    background-color: #fff;
    box-shadow: 0 5px 3px rgba(0, 0, 0, 0.2);
}

nav#nav-mobile ul:after {
    display: none;
}

nav#nav-mobile li {
    margin: 0 20px;
    float: none;
    text-align: left;
    border-bottom: 1px solid #e1e1e1;
}

nav#nav-mobile li:last-child {
    border-bottom: none;
}

.nav-solid nav#nav-mobile li {
    border-top: 1px solid #e1e1e1;
    border-bottom: none;
}

/* Bouton de fermeture en tête du menu mobile (injecté par site.js).
   Aligné à droite, sans bordure inférieure (séparation visuelle nette). */
nav#nav-mobile li.nav-mobile-close-item {
    text-align: right;
    border-bottom: 1px solid #e1e1e1;
    margin: 0 12px 4px;
    padding: 4px 0;
}

.nav-mobile-close {
    background: transparent;
    border: 0;
    padding: 8px 12px;
    cursor: pointer;
    color: #555;
    line-height: 0;
    transition: color 0.2s ease-out;
}

.nav-mobile-close:hover,
.nav-mobile-close:focus-visible {
    color: #c0ae7e;
}

nav#nav-mobile a {
    display: block;
    padding: 12px 0;
    color: #333;
    width: 100%;
    height: auto;
    line-height: normal;
    border-bottom: none;
    transition: background-color 0.3s ease-out;
}

nav#nav-mobile a:hover {
    background: #fafafa;
    opacity: 1;
}

/* --------- 2.5 Social Elements ---------- */

#header .col-4 {
    text-align: right;
}

.social-icons {
    display: inline-block;
    list-style: none;
}

.social-icons a {
    display: inline-block;
    width: 32px;
    text-align: center;
}

.social-icons a:hover {
    opacity: 0.7;
}

/* Le label texte des icônes sociales est masqué visuellement,
   sauf .sr-only qui reste lu par les lecteurs d'écran. */
.social-icons span:not(.sr-only) {
    display: none;
}

#header .social-icons {
    margin-top: 27px;
}

/* Section Headings */

.section-heading {
    padding: 0 0 15px 0;
}

.section-subtitle {
    padding-top: 0;
}

.section-heading h3 {
    font-weight: bold;
    color: #ccc;
    letter-spacing: 2px;
    padding-bottom: 0;
}

/*------------------------------------------------------------------------------------------*/
/* 4. Banner */
/*------------------------------------------------------------------------------------------*/

#banner {
    background-size: cover;
}

#banner-content.row {
    padding-top: 170px;
    padding-bottom: 100px;
}

#banner h1 {
    padding-top: 5%;
}

#banner .section-heading:before,
.section-heading h2:after {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    margin-top: 30px;
}


/* --------- 5.2 Parallax Elements ---------- */

.banner-parallax-1, .banner-parallax-2, .banner-parallax-3 {
    min-height: 350px;
}

/* --------- 5.3 Divider ---------- */

.divider {
    position: relative;
    width: 40%;
    height: 20px;
    line-height: 20px;
    margin: 10px auto 5px auto;
    clear: both;
    text-align: center;
}

.divider-inner {
    position: absolute;
    height: 1px;
    width: 100%;
    top: 50%;
    margin-top: -1px;
    border-top: 1px solid;
    border-color: #e1e1e1;
}

.divider i {
    background: #fff;
    position: relative;
    top: -11px;
    padding: 0 5px 0 5px;
    color: #e1e1e1;
}

/*------------------------------------------------------------------------------------------*/
/* 6. Landing Page Sections */
/*------------------------------------------------------------------------------------------*/

/* --------- 6.1 Introduction ---------- */

.introduction img.featured {
    padding: 55px 0 0 0;
}

/* --------- 6.2 Features ---------- */

.features.row {
    padding-left: 5%;
    padding-right: 5%;
}

.features div:nth-child(4) {
    clear: both;
}

/* --------- 6.3 Testimonials ---------- */

.testimonial {
    padding: 15px;
}

blockquote {
    position: relative;
}

.testimonial footer {
    padding-top: 12px;
}

/* Style Classic - Avatar above Testimonial */


.testimonial.classic q {
    display: block;
}

.testimonial.classic footer:before {
    display: block;
    content: "";
    width: 30px;
    height: 1px;
    margin: 10px auto 15px auto;
}

/* Style Big */

.testimonial.bigtest {
    padding-top: 0;
}


/* --------- 6.4 Gallery ---------- */

#gallery img {
    max-height: 300px;
}

#gallery [class*='col-'] {
    padding: 0;
}

#gallery a {
    display: inline-block;
    position: relative;
    overflow: hidden;
}

#gallery a:hover img {
    opacity: 0.15;
    -moz-backface-visibility: hidden;
}

#gallery a:before {
    font-size: 2.2em;
    font-style: normal;
    font-weight: normal;
    text-align: center;
    content: "+";
    width: 70px;
    height: 70px;
    border-radius: 100em;
    display: block;
    position: absolute;
    top: 55%;
    left: 50%;
    line-height: 72px;
    margin: -35px 0 0 -35px;
    opacity: 0;
    transition: opacity .2s linear, top .2s linear;
    vertical-align: middle;
}

#gallery a:hover:before {
    opacity: 1;
    top: 50%;
    left: 50%;
}



/* --------- 6.5 Video ---------- */


.video_container, .easyContainer {
    position: relative;
    padding-bottom: 56.25%; /* 16/9 ratio */
    margin: 0;
    padding-top: 0; /* IE6 workaround*/
    height: 0;
    overflow: hidden;
}

.video_container iframe, .video_container object, .video_container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.lbv-lightbox iframe, .lbv-lightbox object, .lbv-lightbox embed {
    width: 100%;
    height: 529px;
}

.videojs-background-wrap {
    overflow: hidden;
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    z-index: var(--z-behind);
}

#lbv-window {
    width: 100%;
    min-height: 100%;
    z-index: var(--z-modal);
    background: rgba(0, 0, 0, 0.8);
    position: fixed;
    top: 0;
    left: 0;
}

#lbv-window,
#lbv-window * {
    box-sizing: border-box;
}

#lbv-background-close {
    width: 100%;
    min-height: 100%;
    /* z-index relatif au stacking context du #lbv-window (--z-modal) */
    z-index: 1;
    position: fixed;
    top: 0;
    left: 0;
}

#lbv-back-lightbox {
    max-width: 940px;
    max-height: 529px;
    z-index: 2;
    text-align: center;
    margin: 0 auto;
}

.lbv-lightbox {
    width: 100%;
    height: 100%;
    margin: 0;
    z-index: 3;
}

#lbv-close-icon {
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    position: absolute;
    top: 15px;
    right: 15px;
    width: 28px;
    height: 28px;
    /* Au-dessus de la lightbox (.lbv-lightbox z-index: 3) */
    z-index: 4;
    color: #fff;
    opacity: 0.7;
    transition: opacity 0.3s ease-out;
    line-height: 0;
}

#lbv-close-icon:hover,
#lbv-close-icon:focus-visible {
    opacity: 1;
}

/* --------- 6.6 Clients ---------- */

#clients a {
    display: block;
    text-align: center;
    position: relative;
    text-transform: uppercase;
    font-weight: bold;
    color: #fff;
}

#clients img {
    display: inline-block;
    padding: 15px 25px;
}

.client-overlay {
    background: rgba(0, 0, 0, 0.8);
    position: absolute;
    top:0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.3s ease-out;
}

#clients a:hover .client-overlay {
    opacity: 1;
}

.client-overlay span {
    position: absolute;
    top: 48%;
    left: 0;
    width: 100%;
    text-align: center;
    display: inline-block;
}

/* --------- 6.7 Pricing Table ---------- */

.pricing-block-content {
    background: #fff;
    padding: 25px 0 25px 0;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.07);
    transition: all 0.2s ease-in-out 0s;
    position: relative;
    border: 10px solid #fff;
}


.pricing-block ul {
    list-style: none;
    margin: 25px 0 25px 0;
}

.pricing-block li {
    padding: 14px 0;
    border-bottom: 1px dotted #e1e1e1;
}

.pricing-block li:last-of-type {
    border:none;
}

.pricing-block h3 {
    font-size:17px;
    text-transform:uppercase;
    padding-bottom:0;
}

.pricing-sub {
    font-style: italic;
    color:#ccc;
    margin:0 0 25px 0;
}

/*Price*/

.pricing {
    background: #f5f5f5;
    padding: 25px;
    position: relative;
}

.price {
    display: inline-block;
    font-size: 62px;
    font-weight: 700;
    position: relative;
}

.price span {
    position: absolute;
    top: 0;
    left: -20px;
    font-size: 22px;
}

.pricing  p {
    font-style:italic;
    color:#b4b4b4;
    line-height:auto;
    margin:0;
}



/*------------------------------------------------------------------------------------------*/
/* 7. Footer */
/*------------------------------------------------------------------------------------------*/

#landing-footer {
    clear: both;
}

#landing-footer .row {
    padding: 0;
}

#landing-footer p {
    margin: 0;
}

#landing-footer ul {
    list-style: none;
    text-align: right;
}

#landing-footer li {
    display: inline-block;
}

/* Scroll Up */

#scrollUp {
    position: fixed;
    bottom: 15px;
    right: 30px;
    width: 45px;
    height: 45px;
    padding: 0;
    text-align: center;
    background: #ccc;
    color: #fff;
    border: 0;
    cursor: pointer;
    z-index: var(--z-floating);
    border-radius: 4px;
    line-height: 0;
    transition: background-color 150ms linear, transform 150ms linear;
}

#scrollUp:hover,
#scrollUp:focus-visible {
    background: #c0ae7e;
    transform: translateY(-2px);
}

/*Preloader*/

#preloader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #fff;
    /* Au-dessus de tout pendant le chargement initial */
    z-index: var(--z-toast);
}

#status {
    width: 110px;
    height: 110px;
    position: absolute;
    left: 50%; /* centers the loading animation horizontally one the screen */
    top: 50%; /* centers the loading animation vertically one the screen */
    background-position: center;
    margin: -55px 0 0 -55px; /* is width and height divided by two */
    text-align: center;
}


/*------------------------------------------------------------------------------------------*/
/* Contact Section */
/*------------------------------------------------------------------------------------------*/

#contact .section-heading {
    margin-bottom: 40px;
}

#contact .contact-info h3 {
    margin-bottom: 20px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 18px;
}

#contact .contact-details {
    list-style: none;
    margin: 0 0 25px;
    padding: 0;
}

#contact .contact-details li {
    margin-bottom: 14px;
    line-height: 24px;
}

#contact .contact-details li i {
    width: 22px;
    margin-right: 12px;
    text-align: center;
}

#contact-form label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #222222;
    margin: 14px 0 4px;
}

#contact-form label span[aria-hidden="true"] {
    color: #c0ae7e;
    margin-left: 2px;
}

#contact-form .form-required-note {
    font-size: 12px;
    font-style: italic;
    color: #888;
    margin: 12px 0 0;
}

#contact-form .form-required-note span[aria-hidden="true"] {
    color: #c0ae7e;
}

/* Honeypot : visible aux bots, caché aux humains.
   On évite display:none car certains bots l'ignorent. */
#contact-form .hp-field {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

#contact-form .form-status {
    margin: 14px 0 0;
    font-size: 14px;
    min-height: 1.4em;
}

#contact-form .form-status.is-success {
    color: #4a7a3a;
}

#contact-form .form-status.is-error {
    color: #b54545;
}

#contact-form input.has-error,
#contact-form textarea.has-error {
    border-color: #b54545;
}

#contact-form input[type="submit"][disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}


#contact-form input,
#contact-form textarea {
    width: 100%;
    display: block;
    margin: 0 0 4px;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 14px;
}

#contact-form textarea {
    height: auto;
    min-height: 140px;
    resize: vertical;
}

#contact-form .col-2 {
    padding: 0 8px 0 0;
}

#contact-form .col-2:last-child {
    padding: 0 0 0 8px;
}

#contact-form input[type="submit"] {
    width: auto;
    display: inline-block;
    height: auto;
    line-height: normal;
    padding: 11px 16px;
    margin: 25px 0 0;
}



/*------- A ranger */


.text-center .section-heading h2:after {
    margin: 30px auto 25px auto;
}


/* --------- Image Lightbox (vanilla) --------- */

.img-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--z-modal);
    padding: 40px;
}

.img-lightbox__image {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.img-lightbox__close,
.img-lightbox__prev,
.img-lightbox__next {
    position: absolute;
    background: transparent;
    border: 0;
    color: #fff;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s ease-out;
    font-family: inherit;
}

.img-lightbox__close:hover,
.img-lightbox__prev:hover,
.img-lightbox__next:hover {
    opacity: 1;
}

.img-lightbox__close {
    top: 20px;
    right: 25px;
    font-size: 40px;
    line-height: 1;
}

.img-lightbox__prev,
.img-lightbox__next {
    top: 50%;
    transform: translateY(-50%);
    font-size: 32px;
    padding: 15px 20px;
}

.img-lightbox__prev { left: 20px; }
.img-lightbox__next { right: 20px; }

@media (max-width: 480px) {
    .img-lightbox { padding: 10px; }
    .img-lightbox__prev { left: 5px; padding: 10px; }
    .img-lightbox__next { right: 5px; padding: 10px; }
}
