/*
Theme Name: BDLM
Theme URI: https://www.sdip.fr
Author: Agence Web SDIP
Description: SDIP Thème Wordpress Le Bois de la Marche
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sdip
*/

/* Variables globales
#B88B5F marron clair
#836446 marron foncé
#343434 gray foncé
#676767 gray moyen
#c9c9c9 gray clair
#F1EEE3 beige clair
#FDF9F6 beige très clair
#d9633b orange
#4e6f44 vert
#d3dbd0 vert clair

*/
:root {
    --font-family1: 'Canela', Arial, sans-serif;
    --font-family2: 'Switzer', Arial, sans-serif;
    --container-width: 1300px;
}

/*--------------------------------------------------------------
    Couleurs supplémentaires pour Gutenberg
--------------------------------------------------------------*/
.has-gris-fonce-color {
    color: #343434;
}

.has-gris-fonce-background-color {
    background-color: #343434;
}

.has-gris-moyen-color {
    color: #676767;
}

.has-gris-moyen-background-color {
    background-color: #676767;
}

.has-gris-clair-color {
    color: #c9c9c9;
}

.has-gris-clair-background-color {
    background-color: #c9c9c9;
}

.has-beige-clair-color {
    color: #f1eee3;
}

.has-beige-clair-background-color {
    background-color: #f1eee3;
}

.has-beige-tres-clair-color {
    color: #FDF9F6;
}

.has-beige-tres-clair-background-color {
    background-color: #FDF9F6;
}

.has-orange-color {
    color: #d9633b;
}

.has-orange-background-color {
    background-color: #d9633b;
}

.has-vert-color {
    color: #4e6f44;
}

.has-vert-background-color {
    background-color: #4e6f44;
}

.has-vert-clair-color {
    color: #d3dbd0;
}

.has-vert-clair-background-color {
    background-color: #d3dbd0;
}

.has-marron-fonce-color {
    color: #836446;
}

.has-marron-fonce-background-color {
    background-color: #836446;
}

.has-marron-clair-color {
    color: #B88B5F;
}

.has-marron-clair-background-color {
    background-color: #B88B5F;
}

/* Container image uniquement */
.sdip-image {
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    min-height: unset !important;
    width: 100%;
}

@media (max-width: 768px) {
    .sdip-image {
        aspect-ratio: 16 / 9;
    }
}

/*--------------------------------------------------------------
    BASE
--------------------------------------------------------------*/
html {
    /*   scrollbar-width: thin;
    scrollbar-color: #000 #000;*/
}

body {
    font-family: var(--font-family2);
    font-weight: 300;
    font-size: 16px;
    color: #888;
    background-color: #fff;
    line-height: 1.5;
    overflow-x: hidden !important;
    width: 100%;
    position: relative;
}

a {
    color: #4e6f44;
    cursor: pointer;
    transition: all .25s ease;
    text-decoration: none;
}

a:hover {
    color: #343434;
}

/* selection*/
::selection {
    color: #fffdf5;
    background: #4e6f44;
}

textarea,
input {
    max-width: 100%;
}

img {
    object-fit: cover;
    max-width: 100%;
    height: auto;
}

b,
strong {
    font-weight: bold;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-family1);
    font-weight: 300;
    color: #343434;
    word-break: normal !important;
    margin: 0;
    line-height: 1.3;
}

h1 {
    font-size: 36px;
}

h2 {
    font-size: 28px;
}

h3 {
    font-size: 28px;
}

h4 {
    font-size: 24px;
}

h5 {
    font-size: 20px;
}

h6 {
    font-size: 16px;
}

p {
    margin-bottom: 0;
}

.font-canela {
    font-family: var(--font-family1);
}

.font-switzer {
    font-family: var(--font-family2);
    font-size: 16px;
    color: #7c7c7c;
    font-weight: 300;
}

.site-main {
    min-height: 600px;
    position: relative;
}

/*--------------------------------------------------------------
  TITRES AVEC PICTO
--------------------------------------------------------------*/

/* Classe générique — à ajouter sur n'importe quel titre WordPress */
.sdip-titre {
    display: flex;
    align-items: center;
    gap: 0.5em;
}

.sdip-titre::before {
    content: '';
    display: inline-block;
    width: 1.4em;
    /* taille relative à la font-size du titre */
    height: 1em;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top;
    flex-shrink: 0;
}

/* ── Pictos restaurant ── */
.sdip-titre.restaurant-marron::before {
    background-image: url('./assets/img/picto-restaurant-marron.png');
}

.sdip-titre.restaurant-gris::before {
    background-image: url('./assets/img/picto-restaurant-gris.png');
}

.sdip-titre.restaurant-blanc::before {
    background-image: url('./assets/img/picto-restaurant-blanc.png');
}

/* ── Pictos hotel ── */
.sdip-titre.hotel-orange::before {
    background-image: url('./assets/img/picto-hotel-orange.png');
}

.sdip-titre.hotel-gris::before {
    background-image: url('./assets/img/picto-hotel-gris.png');
}

.sdip-titre.hotel-blanc::before {
    background-image: url('./assets/img/picto-hotel-blanc.png');
}

/* ── Pictos séminaire ── */
.sdip-titre.seminaire-marron::before {
    background-image: url('./assets/img/picto-seminaire-marron.png');
}

.sdip-titre.seminaire-gris::before {
    background-image: url('./assets/img/picto-seminaire-gris.png');
}

.sdip-titre.seminaire-blanc::before {
    background-image: url('./assets/img/picto-seminaire-blanc.png');
}

/* ── Pictos Garden── */
.sdip-titre.garden-vert::before {
    background-image: url('./assets/img/picto-garden-vert.png');
}

.sdip-titre.garden-gris::before {
    background-image: url('./assets/img/picto-garden-gris.png');
}

.sdip-titre.garden-blanc::before {
    background-image: url('./assets/img/picto-garden-blanc.png');
}

/* ── Pictos Label── */
.sdip-titre.label-bleu::before {
    background-image: url('./assets/img/picto-label-bleu.png');
}

.sdip-titre.label-gris::before {
    background-image: url('./assets/img/picto-label-gris.png');
}

.sdip-titre.label-blanc::before {
    background-image: url('./assets/img/picto-label-blanc.png');
}

/* ── Pictos Domaine── */

.sdip-titre.domaine-gris::before {
    background-image: url('./assets/img/picto-domaine-gris.png');
}

.sdip-titre.domaine-blanc::before {
    background-image: url('./assets/img/picto-domaine-blanc.png');
}


/*--------------------------------------------------------------
  LOADER STYLES
--------------------------------------------------------------*/

#intro-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: #F1EEE3;
    pointer-events: all;
    overflow: hidden;
    animation: overlayFadeOut 0.8s ease-out forwards;
    animation-delay: 2.8s;
    animation-play-state: paused;
}

#intro-overlay.running {
    animation-play-state: running;
}

/* Panneaux beige — partent joints au centre, glissent vers l'extérieur */
#intro-beige-left,
#intro-beige-right {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    background: #fff;
    animation-duration: 0.9s;
    /* animation-timing-function: cubic-bezier(0.77, 0, 0.175, 1); */
    animation-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-play-state: paused;
}

#intro-overlay.running #intro-beige-left,
#intro-overlay.running #intro-beige-right {
    animation-play-state: running;
}

#intro-beige-left {
    left: 0;
    transform: translateX(0);
    animation-name: slideLeft;
    animation-duration: 1.7s;
    animation-delay: 0.3s;
    z-index: 3;
}

#intro-beige-right {
    right: 0;
    transform: translateX(0);
    animation-name: slideRight;
    animation-duration: 1.7s;
    animation-delay: 0.3s;
    z-index: 3;
}

/* Logo */
#intro-logo-wrap {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 2;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.6);
    animation: logoIn 2.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: 0.5s;
    animation-play-state: paused;
}

#intro-overlay.running #intro-logo-wrap {
    animation-play-state: running;
}

.shine-wrap-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 40px;
}

.intro-logo-1 {
    width: 200px;
    height: auto;
}

.intro-logo-2 {
    width: 75px;
    height: auto;
}

/* Shine */
.shine-beam {
    position: absolute;
    top: -20%;
    left: -60%;
    width: 40%;
    height: 140%;
    background: linear-gradient(105deg,
            transparent 40%,
            rgba(255, 255, 255, 0.55) 50%,
            transparent 60%);
    transform: skewX(-20deg);
    pointer-events: none;
    animation: shineSweep 0.9s ease forwards;
    animation-delay: 1.4s;
    animation-play-state: paused;
}

#intro-overlay.running .shine-beam {
    animation-play-state: running;
}

.shine-wrap {
    position: relative;
    overflow: hidden;
    display: inline-block;
}



/* Keyframes */
@keyframes slideLeft {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

@keyframes slideRight {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(100%);
    }
}

@keyframes logoIn {
    from {
        opacity: 0;
        transform: scale(0.6);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes shineSweep {
    0% {
        left: -60%;
        opacity: 0;
    }

    10% {
        opacity: 1;
    }

    100% {
        left: 120%;
        opacity: 0.6;
    }
}

@keyframes overlayFadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        pointer-events: none;
    }
}

.wp-block-separator {
    /* balise gutemberg <hr> */
    border-bottom: 1px solid;
}


/*--------------------------------------------------------------
  ANIMATIONS SPÉCIFIQUES
--------------------------------------------------------------*/
.sdip-link a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-transform: uppercase;
    color: #343434;
    text-decoration: none;
    position: relative;
    padding-left: 74px;
    transition: color .25s ease;
    font-family: var(--font-family2);
    font-size: 14px;
}

.sdip-link a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 54px;
    height: 1px;
    background: #343434;
    transition: width 250ms ease;
}

.sdip-link a:hover {
    color: #343434;
}

.sdip-link a:hover::before {
    width: 64px;
}

/* Ajout de l'effet overlay dans spectra */
.sdip-overlay-hover {
    position: relative;
    overflow: hidden;
}

.sdip-overlay-hover::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.2);
    opacity: 0;
    transition: opacity 0.4s ease-out;
}

.sdip-overlay-hover:hover::after {
    opacity: 1;
}


/*--------------------------------------------------------------
  Video Vimeo
--------------------------------------------------------------*/
.wp-block-embed-vimeo {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

.wp-block-embed-vimeo iframe {
    width: 100% !important;
    aspect-ratio: 16 / 9;
    /* Ajuste le ratio si nécessaire */
}

/*--------------------------------------------------------------
  GUTEMBERG
--------------------------------------------------------------*/
.wp-block-buttons {
    gap: 20px;
}

.wp-block {
    box-sizing: border-box;
    /* Inclut padding et bordures dans la largeur totale */
}

.alignfull {
    width: 100vw !important;
    /* Prend toute la largeur de la fenêtre */
    margin-left: calc(-50vw + 50%) !important;
    /* Compense le conteneur centré */
    margin-right: calc(-50vw + 50%) !important;
}

.alignwide {
    margin-left: 5% !important;
    margin-right: 5% !important;
}


/*--------------------------------------------------------------
  ANTISPAMBOT
--------------------------------------------------------------*/

/* Cache le contenu original des emails/téléphones */
.sdip-email-part,
.sdip-phone-part {
    display: none !important;
}

/* Placeholders visibles jusqu'à l'exécution de JavaScript */
.sdip-email-placeholder,
.sdip-phone-placeholder {
    display: inline;
    color: var(--primary-color);
    /* Couleur personnalisable */
    text-decoration: none;
}

/*-----------------------------------------------
  FORMULAIRES CONTACT 7 FORMS
----------------------------------------------- */
/* ════════════════════════════════
   CF7 — BASE GLOBALE
   S'applique à tous les formulaires
════════════════════════════════ */

/* Inputs & Email & Tel */
.wpcf7-form-control-wrap {
    display: block;
    margin-bottom: 2rem;
}

.wpcf7-form-control-wrap input[type="text"],
.wpcf7-form-control-wrap input[type="email"],
.wpcf7-form-control-wrap input[type="tel"],
.wpcf7-form-control-wrap input[type="number"],
.wpcf7-form-control-wrap input[type="date"],
.wpcf7-form-control-wrap textarea {
    width: 100%;
    border: none;
    border-bottom: 1px solid #c8c8c8;
    border-radius: 0;
    background: transparent;
    padding: 6px 0 10px;
    font-size: 0.9rem;
    color: #343434;
    outline: none;
    box-shadow: none;
    -webkit-appearance: none;
    transition: border-color 0.2s ease;
}

.wpcf7-form-control-wrap input:focus,
.wpcf7-form-control-wrap textarea:focus {
    border-bottom-color: #888;
}

.wpcf7-form-control-wrap input::placeholder,
.wpcf7-form-control-wrap textarea::placeholder {
    color: #343434;
    font-size: 0.88rem;
}

/* Textarea */
.wpcf7-form-control-wrap textarea {
    min-height: 130px;
    resize: vertical;
}

/* Checkbox */
.wpcf7-acceptance {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.85rem;
    color: #343434;
    margin-bottom: 1.5rem;
    line-height: 1.4;
}

.wpcf7-acceptance input[type="checkbox"] {
    width: 14px;
    height: 14px;
    margin-top: 2px;
    margin-right: 4px;
    flex-shrink: 0;
    accent-color: #4e6f44;
    cursor: pointer;
}

/* Bouton */
.wpcf7-submit {
    background-color: #4e6f44;
    color: #fff;
    border: 1px solid #4e6f44;
    padding: 11px 28px;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    border-radius: 2px;
    transition: background 0.2s ease, color 0.2s ease;
}

.wpcf7-submit:hover {
    background-color: transparent;
    color: #4e6f44;
}

/* Erreurs */
.wpcf7-not-valid-tip {
    font-size: 0.75rem;
    color: #c00;
    margin-top: 3px;
    display: block;
}

.wpcf7-response-output {
    border: none !important;
    padding: 0 !important;
    font-size: 0.82rem;
    margin-top: 0.5rem;
}

.wpcf7-list-item {
    margin: 0;
}

/* ════════════════════════════════
   MODIFICATEUR — 2 colonnes
   Usage : ajouter .cf7-two-cols
   sur le bloc CF7 dans Gutenberg
════════════════════════════════ */

.cf7-two-cols .cf7-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 3rem;
}

@media (max-width: 768px) {
    .cf7-two-cols .cf7-grid {
        grid-template-columns: 1fr;
    }
}

/* Mentions légales (formulaire contact) */
.cf7-two-cols .cf7-mentions {
    font-size: 0.78rem;
    color: #343434;
    line-height: 1.6;
    margin: 1.5rem 0 1rem;
}

/* ════════════════════════════════
   MODIFICATEUR — Devis séminaire
   Usage : ajouter .cf7-devis
   sur le bloc CF7 dans Gutenberg
════════════════════════════════ */

/* Groupe des radios */
.cf7-devis .cf7-radio-group {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    margin-bottom: 2rem;
}

.cf7-devis .cf7-radio-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    border-bottom: 1px solid #c8c8c8;
    padding-bottom: 1rem;
}

/* Label de la question (Repas ? etc.) */
.cf7-devis .cf7-radio-label {
    font-size: 0.9rem;
    color: #343434;
    min-width: 140px;
}

/* Boutons radio */
.cf7-devis .wpcf7-radio .wpcf7-list-item {
    margin: 0;
    margin-right: 1.2rem;
}

.cf7-devis .wpcf7-radio .wpcf7-list-item label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.88rem;
    color: #343434;
    cursor: pointer;
}

.cf7-devis .wpcf7-radio input[type="radio"] {
    accent-color: #4e6f44;
    width: 14px;
    height: 14px;
    cursor: pointer;
}

/*-----------------------------------------------
  RESPONSIVE
----------------------------------------------- */
@media screen and (min-width: 1440px) {
    .container {
        max-width: var(--container-width);
    }

}


@media screen and (max-width: 768px) {

    h1 {
        font-size: 26px;
    }
}