/*
 * Espace Ouvertures — Feuille de styles principale
 * CSS public du site Espace Ouvertures.
 */
/* ══ RESET & VARIABLES ══ */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --or:#D4891A;
  --or-dark:#B5720F;
  --or-light:#FBF4E5;
  --or-pale:#FEF6E4;
  --or-mid:#FFEFC8;
  --fond:#FDFAF4;
  --blanc:#FFFFFF;
  --texte:#1E1E1E;
  --muted:#888888;
  --border:#ECEAE2;
  --sombre:#2A2620;
  --gris-clair:#F5F5F5;
}
html,body{height:100%;font-family:'DM Sans',sans-serif;color:var(--texte);background:var(--blanc)}


/* ══ NAVIGATION ══ */
/* ══ NAVIGATION ══ */
.site-nav{background:var(--blanc);height:75px;display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;position:sticky;top:0;z-index:100;border-bottom:0.5px solid var(--border);box-shadow:0 1px 12px rgba(0,0,0,.04)}
.nav-logo{display:flex;flex-direction:column;gap:0}
.site-nav-list{list-style:none;display:flex;gap:1.8rem;align-items:center}
.logo{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:500;color:var(--texte);text-decoration:none;letter-spacing:.3px;display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.logo em{color:var(--or);font-style:normal;font-weight:600}
.logo-nom{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--texte);letter-spacing:-.2px;line-height:1.05}
.logo-nom em{color:var(--or);font-style:normal}
.logo-sub{font-size:.68rem;color:#A89F84;letter-spacing:1px;text-transform:uppercase;margin-top:3px}
.nav-links{display:flex;list-style:none;height:100%;align-items:center;gap:0}
.nav-links>li{position:relative;height:100%;display:flex;align-items:center}
.nav-links>li>a{display:flex;align-items:center;height:100%;padding:0 1rem;color:#555;font-size:.78rem;text-decoration:none;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;gap:4px;user-select:none}
.nav-links>li>a:hover,.nav-links>li>a.active{color:var(--or)}
.nav-links>li>a.active{border-bottom-color:var(--or)}
.nav-arrow{font-size:.5rem;margin-top:1px;transition:transform .2s}
.nav-links>li:hover .nav-arrow{transform:rotate(180deg)}
/* Dropdown produits */
.nav-dropdown{position:absolute;top:100%;left:0;min-width:200px;background:var(--blanc);border:0.5px solid var(--border);border-radius:0 0 10px 10px;box-shadow:0 8px 24px rgba(0,0,0,.08);display:none;z-index:200;overflow:hidden}
.nav-links>li:hover .nav-dropdown{display:block}
.nav-dropdown a{display:block;padding:.65rem 1.1rem;font-size:.78rem;color:#555;text-decoration:none;border-bottom:0.5px solid var(--border);cursor:pointer;transition:background .12s,color .12s}
.nav-dropdown a:last-child{border-bottom:none}
.nav-dropdown a:hover{background:var(--or-light);color:var(--or)}
.nav-cta{background:var(--or);color:#fff;border:none;padding:.5rem 1.3rem;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;cursor:pointer;border-radius:6px;white-space:nowrap}
.nav-cta:hover{background:var(--or-dark)}


/* ══ HERO (page accueil) ══ */
/* Hero : occupe ~85% de la hauteur d'écran, contenu aéré, transition douce vers KPIs */
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:520px;padding:2.5rem 2.5rem 0;gap:0;align-items:stretch}
.hero-left{padding:1.5rem 2rem 1.5rem 0;display:flex;flex-direction:column;justify-content:center}
.hero-tag{font-size:.7rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--or);margin-bottom:1.4rem;opacity:.9}
.hero-h1{font-family:'Playfair Display',serif;font-size:2.5rem;font-weight:500;color:var(--texte);line-height:1.2;margin-bottom:1.4rem}
.hero-h1 em{color:var(--or);font-style:normal}
.hero-sub{font-size:.95rem;color:var(--muted);line-height:1.75;margin-bottom:2rem}
.hero-btns{display:flex;gap:.75rem;flex-wrap:wrap}
.btn-or{background:var(--or);color:#fff;border:none;padding:.78rem 1.85rem;border-radius:6px;font-family:'DM Sans',sans-serif;font-size:.83rem;font-weight:500;cursor:pointer}
.btn-or:hover{background:var(--or-dark)}
.btn-ghost{background:transparent;color:#555;border:0.5px solid #D8D3C8;padding:.78rem 1.85rem;border-radius:6px;font-family:'DM Sans',sans-serif;font-size:.83rem;cursor:pointer}
.btn-ghost:hover{border-color:var(--or);color:var(--or)}
.hero-right{background:var(--or-pale);display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:1.8rem 1.7rem;border-radius:14px;box-shadow:0 4px 24px rgba(212,137,26,.10);border:0.5px solid #EDD8A8}

/* ── Formulaire hero ── */
.hero-form{display:flex;flex-direction:column;gap:.95rem;width:100%}
.hero-form-head{text-align:center;margin-bottom:.4rem}
.hero-form-titre{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:500;color:var(--texte);line-height:1.2;margin:0 0 .3rem}
.hero-form-sub{font-size:.78rem;color:var(--muted);margin:0;line-height:1.4}
.hero-form-row2{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.hero-form-group{display:flex;flex-direction:column;gap:.3rem}
.hero-form-label{font-size:.72rem;font-weight:500;color:var(--texte);letter-spacing:.2px}
.hero-form-req{color:var(--or);margin-left:2px}
.hero-form-ctrl{padding:.6rem .75rem;border:0.5px solid #E8D9B8;border-radius:7px;background:#fff;font-family:'DM Sans',sans-serif;font-size:.86rem;color:var(--texte);transition:border-color .15s,box-shadow .15s;outline:none}
.hero-form-ctrl:focus{border-color:var(--or);box-shadow:0 0 0 2px rgba(212,137,26,.12)}
.hero-form-ctrl::placeholder{color:#B8A988;font-size:.83rem}
.hero-form-help{font-size:.66rem;color:var(--muted);font-style:italic;margin-bottom:.18rem}
.hero-form-btn{margin-top:.45rem;padding:.85rem 1rem;background:var(--or);color:#fff;border:none;border-radius:7px;font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:500;letter-spacing:.3px;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 4px 14px rgba(212,137,26,.18)}
.hero-form-btn:hover{background:var(--or-dark);transform:translateY(-1px);box-shadow:0 6px 20px rgba(212,137,26,.28)}
.hero-form-btn:active{transform:translateY(0)}
.hero-form-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.hero-form-msg{padding:.7rem .85rem;border-radius:7px;font-size:.78rem;line-height:1.5;margin-top:.4rem}
.hero-form-msg.success{background:#E8F4F0;color:#1F6B4F;border:0.5px solid #A8D5C0}
.hero-form-msg.error{background:#FBE9E9;color:#A03330;border:0.5px solid #E8B6B4}

/* Multi-select produits — réutilise le style du formulaire de devis principal */
.hf-prods-select{position:relative}
.hf-prods-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.6rem .75rem;border:0.5px solid #E8D9B8;border-radius:7px;background:#fff;font-family:'DM Sans',sans-serif;font-size:.86rem;color:var(--texte);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}
.hf-prods-trigger:hover{border-color:var(--or-pale)}
.hf-prods-trigger:focus{outline:none;border-color:var(--or);box-shadow:0 0 0 2px rgba(212,137,26,.12)}
.hf-prods-select.open .hf-prods-trigger{border-color:var(--or);box-shadow:0 0 0 2px rgba(212,137,26,.12)}
.hf-prods-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hf-prods-trigger-text.is-placeholder{color:#B8A988}
.hf-prods-trigger-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--or);color:#fff;font-size:.7rem;font-weight:500;margin-right:.5rem}
.hf-prods-trigger-arrow{display:inline-block;width:8px;height:8px;border:1.5px solid var(--muted);border-top:0;border-left:0;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.hf-prods-select.open .hf-prods-trigger-arrow{transform:rotate(-135deg) translateY(2px)}
.hf-prods-panel{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:0.5px solid #E8D9B8;border-radius:7px;box-shadow:0 6px 22px rgba(0,0,0,.10);max-height:240px;overflow-y:auto;z-index:30;padding:.4rem}
.hf-prods-select.open .hf-prods-panel{display:block}
.hf-prod-check{display:flex;align-items:center;gap:.5rem;padding:.45rem .55rem;border-radius:5px;cursor:pointer;transition:background .12s;font-size:.85rem}
.hf-prod-check:hover{background:var(--or-pale)}
.hf-prod-check input{cursor:pointer;accent-color:var(--or)}
.hf-prod-check-label{color:var(--texte);user-select:none}
.hf-prods-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}
.hf-prods-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;background:var(--or-pale);border:0.5px solid #EDD8A8;border-radius:12px;font-size:.72rem;color:var(--texte)}
.hf-prods-chip-x{cursor:pointer;color:var(--or);font-weight:500;line-height:1}

/* Honeypot — invisible aux humains */
.hf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Responsive : sur mobile, le formulaire passe en pleine largeur */
@media (max-width:768px){
  .hero-form-row2{grid-template-columns:1fr}
  .hero-form-titre{font-size:1.3rem}
}

/* ══ KPIs ══ */
/* Style "carte" : fond or-pale chaleureux, border-radius, ombre douce */
.kpis{display:flex;background:var(--or-pale);margin:2rem 2.5rem 0;border-radius:14px;box-shadow:0 4px 24px rgba(212,137,26,.12);border:0.5px solid #EDD8A8;overflow:hidden}
.kpi{flex:1;text-align:center;padding:1rem .5rem;border-right:0.5px solid rgba(212,137,26,.18);background:transparent;transition:background .2s}
.kpi:last-child{border-right:none}
.kpi:hover{background:rgba(255,255,255,.4)}
.kpi-v{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:500;color:var(--or-dark)}
.kpi-l{font-size:.68rem;color:#8A7B5C;margin-top:5px;line-height:1.3;text-transform:uppercase;letter-spacing:.5px}

/* ══ ZONES ══ */
/* Bandeau ville : marge-top vers les KPIs et marge-bottom à zéro (transition immédiate vers la section suivante) */
.zones{display:flex;align-items:center;gap:.5rem;padding:.8rem 2.5rem;margin-top:1rem;margin-bottom:0;background:var(--blanc);flex-wrap:wrap}
.zones-lbl{font-size:.72rem;color:#AAA;margin-right:.25rem}
.zone-tag{padding:3px 12px;border-radius:20px;background:var(--or-light);font-size:.7rem;color:var(--or-dark);border:0.5px solid #EDD8A0;font-weight:500}

/* ══ SECTIONS COMMUNES ══ */
.section{padding:3.5rem 2.5rem}
/* Section Produits : padding-top minimal pour transition immédiate avec les zones (pas de barre vide) */
#sec-produits{padding-top:0.6rem}
/* Sur écrans plus petits que 1080p, on relâche le min-height du hero pour ne pas trop forcer */
@media (max-height:850px){
  .hero{min-height:auto}
  .hero-tag{margin-bottom:.9rem}
  .hero-h1{margin-bottom:.9rem}
  .hero-sub{margin-bottom:1.4rem}
}
.section-alt{background:var(--fond)}
.section-label{font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--or);margin-bottom:.6rem;opacity:.9}
.section-titre{font-family:'Playfair Display',serif;font-size:1.85rem;color:var(--texte);margin-bottom:.5rem;line-height:1.2}
.section-sous{font-size:.9rem;color:var(--muted);margin-bottom:2.5rem;max-width:540px;line-height:1.7}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2rem}
.lien-or{color:var(--or);cursor:pointer;font-size:.82rem;font-weight:500}
.lien-or:hover{text-decoration:underline}

/* ══ PRODUITS ══ */
.produits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
/* Mise en page accueil : 4 colonnes (la 7e carte se centre automatiquement) */
#prods-accueil{grid-template-columns:repeat(4,1fr);gap:1.25rem}
/* Force la dernière ligne à être centrée quand on a 5, 6 ou 7 cartes :
   on simule 12 colonnes, chaque carte prend 3 cols → 4 cards par ligne.
   Pour 7 cartes : 4 + 3 cards, la 2e ligne se centre via le décalage */
#prods-accueil.layout-4plus3{grid-template-columns:repeat(12,1fr)}
#prods-accueil.layout-4plus3 > .prod-card{grid-column:span 3}
#prods-accueil.layout-4plus3 > .prod-card:nth-child(5){grid-column:2 / span 3}
/* Responsive : sur écran moyen, retombe en 3 colonnes */
@media (max-width:1100px){
  #prods-accueil,#prods-accueil.layout-4plus3{grid-template-columns:repeat(3,1fr)}
  #prods-accueil.layout-4plus3 > .prod-card,
  #prods-accueil.layout-4plus3 > .prod-card:nth-child(5){grid-column:auto}
}
@media (max-width:768px){
  #prods-accueil,#prods-accueil.layout-4plus3{grid-template-columns:1fr}
}
.prod-card{background:var(--blanc);border:0.5px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s}
.prod-card:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(0,0,0,.08)}
.prod-photo{height:190px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}
.prod-photo img{width:100%;height:100%;object-fit:cover;display:block}
.prod-photo-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.prod-info{padding:1rem 1.1rem}
.prod-nom{font-weight:500;font-size:.92rem;color:var(--texte);margin-bottom:3px}
.prod-sous{font-size:.75rem;color:var(--muted)}
.prod-lien{font-size:.73rem;color:var(--or);margin-top:.5rem;display:inline-block;font-weight:500}
/* Sur l'accueil : cartes plus compactes pour faire tenir 2 lignes (4+3) dans un écran 1080p */
#prods-accueil .prod-photo{height:150px}
#prods-accueil .prod-info{padding:.8rem 1rem}
#prods-accueil .prod-lien{margin-top:.35rem}

/* ══ POURQUOI NOUS ══ */
.atouts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.atout{background:var(--blanc);border:0.5px solid var(--border);border-radius:12px;padding:1.5rem 1.2rem;text-align:center}
.atout-icone{width:48px;height:48px;border-radius:50%;background:var(--or-light);margin:0 auto 1rem;display:flex;align-items:center;justify-content:center}
.atout-icone svg{width:22px;height:22px;stroke:var(--or);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.atout-titre{font-size:.88rem;font-weight:500;color:var(--texte);margin-bottom:.3rem}
.atout-desc{font-size:.75rem;color:var(--muted);line-height:1.55}

/* ══ PROCESS PAGE CONTACT — 5 étapes du parcours client ══ */
.process-grid{display:flex;flex-direction:column;gap:1.2rem;max-width:780px;margin:0 auto}
.process-step{display:flex;gap:1.3rem;align-items:flex-start;padding:1.2rem 1.4rem;background:var(--blanc);border:0.5px solid var(--border);border-radius:12px;transition:transform .15s,box-shadow .15s}
.process-step:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.process-num{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--or);color:#fff;font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:500;display:flex;align-items:center;justify-content:center}
.process-content{flex:1}
.process-titre{font-size:.95rem;font-weight:500;color:var(--texte);margin-bottom:.3rem}
.process-desc{font-size:.85rem;color:var(--muted);line-height:1.65}
@media (max-width:768px){
  .process-step{padding:1rem 1.1rem;gap:1rem}
  .process-num{width:36px;height:36px;font-size:1.1rem}
}

/* ══ FAQ PAGE CONTACT ══ */
.faq-list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:.7rem}
.faq-item{background:var(--blanc);border:0.5px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .15s}
.faq-item[open]{border-color:#EDD8A8}
.faq-q{padding:1.05rem 1.3rem;font-size:.92rem;font-weight:500;color:var(--texte);cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;user-select:none;transition:background .15s}
.faq-q::-webkit-details-marker{display:none}
.faq-q:hover{background:var(--fond)}
.faq-q::after{content:'+';font-family:'DM Sans',sans-serif;font-size:1.4rem;font-weight:300;color:var(--or);margin-left:1rem;transition:transform .2s;line-height:1}
.faq-item[open] .faq-q::after{content:'−'}
.faq-r{padding:0 1.3rem 1.2rem;font-size:.85rem;color:var(--muted);line-height:1.7}

/* ══ RÉALISATIONS ══ */
.reals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;align-items:start}
.real-card{border-radius:10px;overflow:hidden;aspect-ratio:4/3;position:relative;cursor:default;background:var(--or-light);transition:box-shadow .2s,transform .25s}
.real-card.is-auto{aspect-ratio:auto;height:auto}
.real-card:hover{box-shadow:0 12px 40px rgba(40,30,15,.18);transform:translateY(-2px)}
.real-card .real-photo{width:100%;height:100%;display:block;background:#1a1410}
.real-card .real-photo[data-fit="cover"]{object-fit:cover}
.real-card .real-photo[data-fit="contain"]{object-fit:contain}
.real-card.is-auto .real-photo{height:auto}
/* Ancienne règle conservée pour compat (si ailleurs des img sont insérées) */
.real-card img{display:block}
/* Bouton plein écran */
.real-zoom{position:absolute;top:10px;right:10px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);color:#fff;border:0.5px solid rgba(255,255,255,.25);border-radius:50%;cursor:pointer;z-index:6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:all .15s;padding:0;font-family:inherit}
.real-zoom:hover{background:var(--or);border-color:var(--or);transform:scale(1.08)}
.real-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:.25}
.real-overlay{position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(26,20,10,.7));display:flex;align-items:flex-end;padding:1rem}
.real-label{color:#fff;font-size:.8rem;font-weight:500}
.real-ville{font-size:.68rem;color:rgba(255,255,255,.75);margin-top:2px}

/* ══ AVIS ══ */
.avis-header{text-align:center;margin-bottom:2rem}
.avis-google{display:inline-flex;align-items:center;gap:.75rem;background:var(--blanc);border:0.5px solid var(--border);border-radius:30px;padding:.45rem 1.4rem;margin-top:.75rem}
.avis-etoiles{color:#FBBC05;font-size:.9rem;letter-spacing:1px}
.avis-note{font-size:.78rem;color:var(--muted)}
.avis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.avis-card{background:var(--blanc);border:0.5px solid var(--border);border-radius:12px;padding:1.25rem}
.avis-stars{color:#FBBC05;font-size:.85rem;margin-bottom:.5rem;letter-spacing:1px}
.avis-texte{font-size:.8rem;color:var(--muted);line-height:1.65;margin-bottom:.75rem;font-style:italic}
.avis-auteur{font-size:.75rem;font-weight:500;color:var(--texte)}
.avis-ville{font-size:.68rem;color:var(--muted)}

/* ══ ENCART SOCIÉTÉ ══ */
.societe-encart{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
/* Variante centrée (sans photo) — utilisée sur l'accueil */
.societe-encart-centre{max-width:780px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center}
.societe-encart-centre .section-label{margin-bottom:.6rem}
.societe-encart-centre .section-titre{margin-bottom:1.2rem}
.encart-soc-texte{font-size:.95rem;color:var(--muted);line-height:1.85;margin-bottom:1.8rem;max-width:680px}
.soc-photo{height:280px;border-radius:14px;overflow:hidden;border:0.5px solid var(--border);background:var(--or-light);display:flex;align-items:center;justify-content:center}
.soc-photo img{width:100%;height:100%;object-fit:cover}
.soc-photo-ph{opacity:.25}

/* ══ BANDEAU DEVIS ══ */
/* Grand bandeau dernier écran : prend toute la fenêtre, centré, impactant */
.devis-band{background:var(--sombre);padding:3rem 2.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;text-align:center;min-height:60vh}
.devis-band > div{max-width:780px}
.devis-band h2{font-family:'Playfair Display',serif;color:#FAF5EC;font-size:2.2rem;font-weight:500;line-height:1.25;margin-bottom:.9rem}
.devis-band p{color:rgba(250,245,236,.65);font-size:1rem;line-height:1.7;max-width:680px;margin:0 auto}
.btn-or-inv{background:var(--or);color:#fff;border:none;padding:.95rem 2.4rem;font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:500;cursor:pointer;border-radius:7px;white-space:nowrap;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 4px 14px rgba(212,137,26,.25)}
.btn-or-inv:hover{background:var(--or-dark);transform:translateY(-1px);box-shadow:0 6px 20px rgba(212,137,26,.4)}
@media (max-width:768px){
  .devis-band{min-height:auto;padding:2.5rem 1.5rem}
  .devis-band h2{font-size:1.6rem}
}

/* ══ PAGE PRODUIT DETAIL ══ */
.prod-detail-hero{background:var(--fond);padding:2.5rem 2.5rem 2rem;border-bottom:0.5px solid var(--border)}
.back-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--or);cursor:pointer;margin-bottom:1.25rem;font-weight:500}
.back-link:hover{text-decoration:underline}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;padding:2.5rem;margin-bottom:0}
.detail-grid.full-width{grid-template-columns:1fr}
.detail-grid.full-width #detail-specs{margin-top:1rem}
.detail-photo-ph{height:240px;background:var(--or-light);border-radius:10px;border:0.5px solid var(--border);display:flex;align-items:center;justify-content:center;opacity:.3}
/* Carrousel produit */
.prod-carousel{display:flex;flex-direction:column;gap:.5rem}
.prod-carousel-main{position:relative;width:100%;height:340px;border-radius:10px;overflow:hidden;border:0.5px solid var(--border);background:var(--fond)}
.prod-carousel-main img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .15s}
.prod-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.92);border:0.5px solid var(--border);width:38px;height:38px;border-radius:50%;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--texte);display:flex;align-items:center;justify-content:center;font-family:inherit;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:all .15s}
.prod-carousel-arrow:hover{background:#fff;color:var(--or);transform:translateY(-50%) scale(1.05)}
.prod-carousel-arrow.prev{left:10px}
.prod-carousel-arrow.next{right:10px}
.prod-carousel-counter{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.55);color:#fff;font-size:.7rem;padding:3px 9px;border-radius:11px;font-weight:500;letter-spacing:.03em}
.prod-carousel-thumbs{display:flex;gap:5px;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}
.prod-carousel-thumb{flex-shrink:0;width:62px;height:48px;border-radius:6px;overflow:hidden;border:1.5px solid var(--border);padding:0;background:none;cursor:pointer;transition:all .15s}
.prod-carousel-thumb:hover{border-color:var(--or-mid)}
.prod-carousel-thumb.active{border-color:var(--or);box-shadow:0 0 0 1px var(--or)}
.prod-carousel-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.prod-carousel-caption{font-size:.85rem;color:var(--muted);line-height:1.55;padding:.6rem .2rem;font-style:italic}
/* MODE LISTE — toutes les photos l'une après l'autre */
.prod-liste{display:flex;flex-direction:column;gap:1.5rem}
.prod-liste-item{display:grid;gap:1.2rem;align-items:stretch}
.prod-liste-item.layout-img-only{grid-template-columns:1fr;align-items:start}
.prod-liste-item.layout-img-txt{grid-template-columns:1fr 1fr}
.prod-liste-item.layout-txt-img{grid-template-columns:1fr 1fr}
.prod-liste-img{width:100%;border-radius:10px;border:0.5px solid var(--border);display:block;object-fit:cover;max-height:340px}
.prod-liste-item.layout-img-only .prod-liste-img{max-height:none}
.prod-liste-col-img{min-width:0;display:flex;align-items:center}
.prod-liste-col-img img{width:100%}
.prod-liste-col-txt{min-width:0;display:flex;flex-direction:column;justify-content:center}
.prod-liste-col-txt p{font-size:.92rem;color:var(--texte);line-height:1.7;margin:0;white-space:pre-wrap}
.prod-liste-caption{font-size:.85rem;color:var(--muted);line-height:1.6;padding:.5rem .2rem 0;font-style:italic}
@media (max-width:780px){
  .prod-liste-item.layout-img-txt,
  .prod-liste-item.layout-txt-img{grid-template-columns:1fr}
}
/* Badge "+N" sur les cartes produit en accueil/liste si plusieurs photos */
.prod-card-photos-badge{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.55);color:#fff;font-size:.65rem;padding:3px 8px;border-radius:10px;font-weight:500;letter-spacing:.02em;backdrop-filter:blur(4px)}
.prod-photo{position:relative}
@media (max-width:780px){
  .prod-carousel-main{height:240px}
  .prod-carousel-thumb{width:52px;height:40px}
}
.specs-table{background:var(--blanc);border:0.5px solid var(--border);border-radius:10px;overflow:hidden}
.spec-row{display:flex;justify-content:space-between;padding:.8rem 1.1rem;border-bottom:0.5px solid var(--border);font-size:.82rem}
.spec-row:last-child{border-bottom:none}
.spec-k{color:var(--muted)}.spec-v{font-weight:500;color:var(--texte)}
.faq-section{padding:0 2.5rem 2.5rem}
.faq-titre{font-family:'Playfair Display',serif;font-size:1.4rem;margin-bottom:1.25rem}
.faq-item{border:0.5px solid var(--border);border-radius:8px;margin-bottom:.6rem;overflow:hidden}
.faq-q{padding:.9rem 1.1rem;font-size:.85rem;font-weight:500;cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}
.faq-q:hover{background:var(--or-light)}
.faq-icon{color:var(--or);font-size:1.1rem;line-height:1;transition:transform .2s}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-r{display:none;padding:.9rem 1.1rem;font-size:.82rem;color:var(--muted);line-height:1.7;border-top:0.5px solid var(--border)}
.faq-item.open .faq-r{display:block}

/* ══ PAGE RÉALISATIONS ══ */
.real-filtres{display:flex;gap:.5rem;margin-bottom:1.75rem;flex-wrap:wrap}
.filtre-btn{padding:.4rem 1.1rem;font-size:.75rem;border-radius:20px;cursor:pointer;font-family:inherit;border:0.5px solid var(--border);background:transparent;color:#555;transition:all .15s}
.filtre-btn:hover,.filtre-btn.active{background:var(--or);color:#fff;border-color:var(--or)}

/* ══ PAGE CONTACT ══ */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem;padding:2.5rem}
.contact-card{background:var(--blanc);border:0.5px solid var(--border);border-radius:14px;padding:2rem}
/* Formulaire en section autonome (sans grille 2 colonnes) */
.contact-card-solo{
  background:var(--blanc);border:0.5px solid var(--border);
  border-radius:14px;padding:2.2rem 2.5rem;
  max-width:760px;margin:0 auto;
  box-shadow:0 2px 18px rgba(0,0,0,.04);
}
@media (max-width:680px){
  .contact-card-solo{padding:1.5rem 1.2rem}
}

/* ══ LAYOUT 2 COLONNES — Formulaire + Bloc infos contact ══ */
.contact-form-layout{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:2rem;
  max-width:1180px;margin:0 auto;
  align-items:start;
  padding:0 1.5rem;
}
.contact-form-layout .contact-card-solo{
  /* Reset les contraintes du card-solo quand il est dans le layout 2 col */
  max-width:none;margin:0;
}
.contact-infos-bloc{
  background:var(--blanc);
  border:0.5px solid var(--border);
  border-radius:14px;
  padding:2.2rem 2.2rem;
  box-shadow:0 2px 18px rgba(0,0,0,.04);
  position:sticky;top:6rem;
  /* Liseré or fin sur le côté gauche pour différencier visuellement */
  border-left:3px solid var(--or);
}
.contact-infos-bloc .cib-titre{
  font-family:'Playfair Display',serif;
  font-size:1.35rem;font-weight:600;
  color:var(--texte);
  margin-bottom:.35rem;
  line-height:1.2;
}
.contact-infos-bloc .cib-eyebrow{
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:1.2px;
  color:var(--or);
  font-weight:600;
  margin-bottom:.55rem;
}
.contact-infos-bloc .cib-intro{
  font-size:.85rem;color:var(--muted);
  line-height:1.55;
  margin-bottom:1.5rem;
  padding-bottom:1.3rem;
  border-bottom:0.5px solid var(--border);
}
.contact-infos-bloc .cib-bloc{
  display:flex;gap:.85rem;
  margin-bottom:1.15rem;
  align-items:flex-start;
}
.contact-infos-bloc .cib-bloc:last-child{margin-bottom:0}
.contact-infos-bloc .cib-icone{
  width:38px;height:38px;
  background:var(--or-light);
  border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  font-size:1rem;
}
.contact-infos-bloc .cib-bloc-text{
  flex:1;min-width:0;
  padding-top:2px;
}
.contact-infos-bloc .cib-lbl{
  font-size:.66rem;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.6px;
  margin-bottom:3px;
  font-weight:500;
}
.contact-infos-bloc .cib-val{
  font-size:.9rem;
  font-weight:500;
  color:var(--texte);
  line-height:1.5;
  word-break:break-word;
}
.contact-infos-bloc a.cib-val{
  color:var(--texte);
  text-decoration:none;
  transition:color .15s;
}
.contact-infos-bloc a.cib-val:hover{
  color:var(--or);
}
.contact-infos-bloc .cib-val small{
  display:block;
  font-size:.78rem;
  font-weight:400;
  color:var(--muted);
  margin-top:2px;
}
@media (max-width:900px){
  .contact-form-layout{
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  .contact-infos-bloc{
    position:static;
    padding:1.7rem 1.5rem;
  }
}
.contact-bloc{display:flex;gap:.9rem;margin-bottom:1.5rem;align-items:flex-start}
.contact-icone{width:40px;height:40px;background:var(--or-light);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-icone svg{width:18px;height:18px;stroke:var(--or);fill:none;stroke-width:1.6;stroke-linecap:round}
.contact-lbl{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.contact-val{font-size:.88rem;font-weight:500;color:var(--texte)}
.contact-map{background:var(--or-light);border:0.5px solid var(--border);border-radius:10px;height:200px;display:flex;align-items:center;justify-content:center;margin-top:1rem;font-size:.8rem;color:var(--muted)}

/* ══ FICHES CONTACTS — section "Vos interlocuteurs" page Contact ══
   Layout adaptatif au nombre de contacts :
   - 1 contact  → centré, carte un peu plus large (jusqu'à 480px)
   - 2 contacts → 2 colonnes côte à côte (centrées)
   - 3+         → grille auto-fit (3 par ligne sur large, 2 sur tablet, 1 sur mobile) */
.contacts-grid{
  display:grid;gap:1.5rem;
  max-width:1100px;margin:0 auto;padding:0 1.5rem 2rem;
  justify-content:center;
}
.contacts-grid-1{
  grid-template-columns:minmax(0,480px);
}
.contacts-grid-2{
  grid-template-columns:repeat(2,minmax(0,420px));
}
.contacts-grid-auto{
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
@media (max-width:760px){
  .contacts-grid-2{grid-template-columns:minmax(0,460px)}
  .contacts-grid-auto{grid-template-columns:minmax(0,460px)}
}

.contact-fiche{
  background:var(--blanc);
  border:0.5px solid var(--border);
  border-radius:14px;
  padding:1.8rem 1.5rem;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
  transition:border-color .2s,box-shadow .2s,transform .2s;
  box-shadow:0 1px 6px rgba(0,0,0,.03);
}
.contact-fiche:hover{
  border-color:var(--or-pale);
  box-shadow:0 4px 24px rgba(0,0,0,.07);
  transform:translateY(-2px);
}
.contact-fiche-avatar{
  width:96px;height:96px;border-radius:50%;
  overflow:hidden;flex-shrink:0;
  border:2px solid var(--or-pale);
  margin-bottom:1.1rem;background:var(--fond);
}
.contact-fiche-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.contact-fiche-avatar-vide{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.8rem;font-weight:500;color:var(--or);
  background:var(--or-light);
  font-family:'Playfair Display',serif;
}
.contact-fiche-nom{
  font-family:'Playfair Display',serif;
  font-size:1.15rem;color:var(--texte);
  line-height:1.2;margin-bottom:.25rem;
}
.contact-fiche-role{
  font-size:.72rem;color:var(--or);
  text-transform:uppercase;letter-spacing:.6px;
  font-weight:500;margin-bottom:1.2rem;
}
.contact-fiche-coords{
  display:flex;flex-direction:column;gap:.5rem;
  width:100%;align-items:center;
  margin-top:auto;
}
.contact-fiche-row{
  display:flex;align-items:center;gap:8px;
  font-size:.78rem;color:var(--muted);
  text-decoration:none;line-height:1.4;
  padding:4px 8px;border-radius:6px;
  transition:background .15s,color .15s;
  word-break:break-word;
}
a.contact-fiche-row:hover{
  background:var(--or-pale);
  color:var(--or);
}
.contact-fiche-row.no-link{cursor:default}
.contact-fiche-ico{
  font-size:.85rem;flex-shrink:0;
  filter:grayscale(.3);opacity:.85;
}
/* Fiche unique : layout horizontal (avatar à gauche) sur écran large */
.contacts-grid-1 .contact-fiche{
  padding:2rem 2.2rem;
}

/* ══ SECTION "NOS SITES" en bas de la page Contact ══ */
.sites-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.4rem;
  max-width:1100px;margin:0 auto;padding:0 1.5rem 2rem;
}
.site-card{
  background:var(--blanc);
  border:0.5px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;
  transition:border-color .2s,box-shadow .2s,transform .2s;
  box-shadow:0 1px 6px rgba(0,0,0,.03);
}
.site-card:hover{
  border-color:var(--or-pale);
  box-shadow:0 6px 28px rgba(0,0,0,.08);
  transform:translateY(-3px);
}
.site-card-thumb{
  width:100%;aspect-ratio:16/10;
  background:var(--or-light);overflow:hidden;
  position:relative;
}
.site-card-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.site-card:hover .site-card-thumb img{transform:scale(1.04)}
.site-card-thumb-empty{
  display:flex;align-items:center;justify-content:center;
  font-size:3rem;color:var(--or);
}
.site-card-body{
  padding:1.2rem 1.4rem 1.4rem;
  display:flex;flex-direction:column;flex:1;
}
.site-card-type{
  display:inline-block;width:fit-content;
  background:var(--or-pale);color:var(--or);
  padding:3px 10px;border-radius:99px;
  font-size:.62rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.5px;
  margin-bottom:.6rem;
}
.site-card-nom{
  font-family:'Playfair Display',serif;
  font-size:1.25rem;color:var(--texte);
  line-height:1.2;margin-bottom:3px;font-weight:500;
}
.site-card-cp{font-size:.72rem;color:var(--muted);margin-bottom:.6rem}
.site-card-desc{
  font-size:.78rem;color:var(--muted);line-height:1.55;
  margin-bottom:.8rem;flex:1;
}
.site-card-link{
  font-size:.75rem;color:var(--or);font-weight:500;
  margin-top:auto;
}

/* ══ PAGE DÉDIÉE D'UN SITE ══ */
#spage-site{padding-bottom:2rem}
.site-page-breadcrumb{padding-top:1.5rem;padding-bottom:0!important}
.site-page-back{
  display:inline-flex;align-items:center;gap:5px;
  font-size:.78rem;color:var(--muted);text-decoration:none;
  padding:6px 12px;border-radius:6px;
  transition:background .15s,color .15s;
}
.site-page-back:hover{background:var(--or-pale);color:var(--or)}
.site-page-hero{padding-top:1rem!important}
.site-page-desc{
  font-size:.95rem;line-height:1.7;color:var(--texte);
  max-width:760px;margin-top:1rem;
}
.site-page-section{padding-top:2rem;padding-bottom:2rem}
.site-page-photos{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:repeat(2, 180px);
  gap:8px;
  max-width:1100px;margin:0 auto;
  border-radius:14px;overflow:hidden;
}
.site-page-photo{
  display:block;overflow:hidden;
  position:relative;background:var(--or-light);
  transition:transform .25s;
}
.site-page-photo.main{
  grid-row:1/3;grid-column:1/2;
}
.site-page-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.site-page-photo:hover img{transform:scale(1.04)}
.site-page-photo-plus{
  display:flex;align-items:center;justify-content:center;
  background:var(--sombre);color:#fff;
  font-size:.85rem;font-weight:500;
  border-radius:0;
}
@media (max-width:780px){
  .site-page-photos{
    grid-template-columns:1fr 1fr;
    grid-template-rows:200px 100px 100px;
  }
  .site-page-photo.main{grid-row:1/2;grid-column:1/3}
}
.site-page-grid{
  display:grid;grid-template-columns:1fr 1.2fr;
  gap:2.5rem;max-width:1100px;margin:0 auto;
  align-items:start;
}
@media (max-width:880px){
  .site-page-grid{grid-template-columns:1fr;gap:1.5rem}
}
.site-page-infos{
  display:flex;flex-direction:column;gap:.9rem;
  margin-bottom:1.5rem;
}
.site-page-info-item{
  display:flex;gap:.8rem;align-items:flex-start;
}
.site-page-info-ico{
  width:36px;height:36px;border-radius:8px;
  background:var(--or-pale);
  display:flex;align-items:center;justify-content:center;
  font-size:.95rem;flex-shrink:0;
}
.site-page-info-body{flex:1;min-width:0}
.site-page-info-lbl{
  font-size:.62rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.5px;
  margin-bottom:2px;
}
.site-page-info-val{
  font-size:.85rem;color:var(--texte);font-weight:500;
  word-break:break-word;text-decoration:none;
}
a.site-page-info-val{color:var(--or)}
a.site-page-info-val:hover{text-decoration:underline}
.site-page-info-val.multi{font-weight:400;line-height:1.55}
.site-page-cta{
  display:flex;gap:.8rem;flex-wrap:wrap;
  margin-top:1.5rem;
}
.site-page-map-wrap{
  border-radius:14px;overflow:hidden;
  border:0.5px solid var(--border);
  box-shadow:0 2px 12px rgba(0,0,0,.05);
}
.site-page-map{
  width:100%;height:340px;
  background:#E5EDF2;
}
.site-page-riche{
  max-width:760px;margin:0 auto;
  font-size:.92rem;line-height:1.75;color:var(--texte);
  padding-top:2rem;padding-bottom:2rem;
}
.site-page-riche p{margin-bottom:1rem}
.site-page-riche h2,.site-page-riche h3{
  font-family:'Playfair Display',serif;
  margin-top:1.5rem;margin-bottom:.7rem;color:var(--texte);
}

/* ══ PAGE SOCIÉTÉ ══ */
.soc-h1{max-width:850px;margin-bottom:1.5rem;line-height:1.15}
.soc-hero-sub{font-size:1.05rem;color:var(--muted);line-height:1.7;max-width:780px;font-weight:300}
.soc-para{font-size:.92rem;color:var(--muted);line-height:1.85;margin-bottom:1.1rem}
.soc-para:last-child{margin-bottom:0}
/* Bloc 2 — grille parcours + photo */
.soc-parc-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:3rem;align-items:start}
.soc-parc-text{min-width:0}
.soc-parc-photo{position:sticky;top:6rem}
.soc-photo-placeholder{
  width:100%;aspect-ratio:3/4;
  background:var(--or-pale,rgba(212,137,26,.08));
  border:2px dashed rgba(212,137,26,.35);
  border-radius:12px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;
  color:var(--or);
  font-size:.78rem;letter-spacing:1px;text-transform:uppercase;
}
@media (max-width:880px){
  .soc-parc-grid{grid-template-columns:1fr;gap:2rem}
  .soc-parc-photo{position:static;max-width:320px;margin:0 auto}
}
/* Bloc 3 — déclic */
.soc-decl-titre{max-width:780px;line-height:1.2;font-style:italic}
/* Bloc 4 — engagements (liste verticale numérotée) */
.soc-eng-list{
  list-style:none;padding:0;margin:2rem 0 0 0;
  display:flex;flex-direction:column;gap:1.4rem;
  max-width:880px;
}
.soc-eng-item{
  display:grid;grid-template-columns:auto 1fr;gap:1.5rem;
  padding:1.5rem 1.75rem;
  background:var(--fond);
  border:0.5px solid var(--border);
  border-radius:10px;
  transition:border-color .2s,transform .2s;
}
.soc-eng-item:hover{border-color:var(--or);transform:translateY(-2px)}
.soc-eng-num{
  font-family:'Playfair Display',serif;
  font-size:2.4rem;line-height:1;
  color:var(--or);
  font-weight:700;
  min-width:2.5rem;
}
.soc-eng-body{min-width:0}
.soc-eng-titre{
  font-family:'Playfair Display',serif;
  font-size:1.15rem;margin:0 0 .5rem 0;color:var(--texte);
}
.soc-eng-desc{
  font-size:.88rem;color:var(--muted);line-height:1.7;margin:0;
}
@media (max-width:600px){
  .soc-eng-item{grid-template-columns:1fr;gap:.5rem;padding:1.25rem 1.4rem}
  .soc-eng-num{font-size:1.8rem}
}

/* ══ FORMULAIRES ══ */
.form-group{margin-bottom:.9rem}
.form-label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:5px}
.form-ctrl{width:100%;padding:10px 13px;border:0.5px solid var(--border);border-radius:7px;font-size:.82rem;font-family:'DM Sans',sans-serif;background:var(--fond);color:var(--texte);transition:border-color .15s}
.form-ctrl:focus{outline:none;border-color:var(--or)}
textarea.form-ctrl{min-height:110px;resize:vertical}
select.form-ctrl{cursor:pointer}
.form-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-submit{width:100%;padding:.8rem;background:var(--or);color:#fff;border:none;font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:500;cursor:pointer;border-radius:7px}
.form-submit:hover{background:var(--or-dark)}
.form-titre{font-family:'Playfair Display',serif;font-size:1.2rem;margin-bottom:1.25rem}
.form-help{font-size:.66rem;color:var(--muted);margin:0 0 .5rem 0;line-height:1.45}
/* Astérisque pour champ obligatoire */
.form-req{color:#B85C3F;font-weight:500;margin-left:1px}
/* Bloc visuel "moyens de contact" : groupe tél+email avec liseré or
   pour signaler que c'est un sous-ensemble lié (au moins un obligatoire) */
.form-contact-bloc{
  background:var(--fond);
  border:0.5px solid var(--border);
  border-left:3px solid var(--or);
  border-radius:7px;
  padding:.85rem 1rem;
  margin-bottom:1rem;
}
.form-contact-bloc .form-help{margin-bottom:.55rem;color:var(--texte)}
.form-contact-bloc .form-help strong{color:var(--or-dark);font-weight:600}
/* Honeypot anti-bot : caché aux humains, rempli par les bots qui scannent
   tous les inputs visibles dans le DOM. On utilise plusieurs techniques
   combinées pour échapper aux détections d'accessibilité naïves. */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  top:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
/* Zone reCAPTCHA — espacement propre */
.rc-zone{margin-top:.4rem;margin-bottom:1rem;display:flex;justify-content:center}
/* Petit avis sous le widget si pas de backend */
.rc-warn{font-size:.66rem;color:var(--muted);text-align:center;margin-top:6px;line-height:1.45;font-style:italic}

/* ── Cases à cocher produits dans le formulaire devis ── */
.d-prods-checks{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:6px;
  background:var(--fond);
  border:0.5px solid var(--border);
  border-radius:7px;
  padding:.55rem;
}
.d-prod-check{
  display:flex;align-items:center;gap:.5rem;
  padding:.4rem .55rem;
  background:#fff;
  border:0.5px solid var(--border);
  border-radius:6px;
  font-size:.78rem;
  cursor:pointer;
  transition:all .12s;
  user-select:none;-webkit-user-select:none;
}
.d-prod-check:hover{border-color:var(--or-pale);background:#fdfaf3}
.d-prod-check input[type="checkbox"]{
  width:14px;height:14px;
  margin:0;
  accent-color:var(--or);
  cursor:pointer;
  flex-shrink:0;
}
.d-prod-check input[type="checkbox"]:checked + .d-prod-check-label{color:var(--or-dark);font-weight:600}
.d-prod-check:has(input:checked){border-color:var(--or);background:#fdfaf3;box-shadow:0 0 0 1px var(--or-pale)}
.d-prod-check-label{flex:1;line-height:1.3}
.d-prod-check-autre{grid-column:1/-1;background:#fef9e8;border-color:#e8d18a}
.d-prod-check-autre:hover{background:#fdf3d4}

/* ── Multi-select dropdown (devis produits) ── */
.d-prods-select{
  position:relative;
  font-size:.85rem;
}
/* Bouton trigger : aspect d'un select natif */
.d-prods-trigger{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:.6rem .8rem;
  background:var(--fond);
  border:0.5px solid var(--border);
  border-radius:7px;
  font-size:.85rem;
  font-family:inherit;
  color:var(--texte);
  cursor:pointer;
  text-align:left;
  transition:border-color .12s, background .12s;
  min-height:38px;
}
.d-prods-trigger:hover{border-color:var(--or-pale)}
.d-prods-trigger:focus{outline:none;border-color:var(--or);box-shadow:0 0 0 1px var(--or-pale)}
.d-prods-select.open .d-prods-trigger{
  border-color:var(--or);
  border-bottom-left-radius:0;
  border-bottom-right-radius:0;
  background:#fff;
}
.d-prods-trigger-text{
  flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.d-prods-trigger-text.is-placeholder{color:var(--muted)}
.d-prods-trigger-count{
  flex-shrink:0;
  background:var(--or);
  color:#fff;
  font-size:.65rem;font-weight:600;
  padding:2px 7px;
  border-radius:9px;
  min-width:20px;text-align:center;
}
.d-prods-trigger-arrow{
  flex-shrink:0;
  width:10px;height:10px;
  border-right:1.5px solid var(--muted);
  border-bottom:1.5px solid var(--muted);
  transform:rotate(45deg) translateY(-2px);
  transition:transform .15s;
}
.d-prods-select.open .d-prods-trigger-arrow{transform:rotate(-135deg) translateY(2px)}
/* Panneau déroulant */
.d-prods-panel{
  display:none;
  position:absolute;
  top:100%;left:0;right:0;
  background:#fff;
  border:0.5px solid var(--or);
  border-top:none;
  border-radius:0 0 7px 7px;
  box-shadow:0 6px 22px rgba(40,30,15,.13);
  z-index:5;
  max-height:280px;
  overflow-y:auto;
  padding:.45rem;
}
.d-prods-select.open .d-prods-panel{display:block}
/* Items dans le panneau (identique aux .d-prod-check mais sans grille) */
.d-prods-panel .d-prod-check{
  width:100%;
  margin:0 0 4px 0;
}
.d-prods-panel .d-prod-check:last-child{margin-bottom:0}
/* Sélections affichées sous le bouton (chips) */
.d-prods-chips{
  display:flex;flex-wrap:wrap;gap:5px;
  margin-top:.55rem;
}
.d-prods-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 4px 3px 10px;
  background:var(--or-light);
  border:0.5px solid #EDD8A0;
  border-radius:14px;
  font-size:.72rem;
  color:var(--or-dark);
  font-weight:500;
}
.d-prods-chip-x{
  width:18px;height:18px;
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:none;
  border-radius:50%;
  color:var(--or-dark);
  cursor:pointer;
  font-size:.85rem;line-height:1;
  padding:0;
  transition:background .12s;
}
.d-prods-chip-x:hover{background:rgba(212,137,26,.18)}

/* ── Zone Pièces jointes ── */
.d-pj-zone{
  display:flex;align-items:center;justify-content:center;
  padding:.7rem;
  background:var(--fond);
  border:1px dashed var(--border);
  border-radius:7px;
  transition:border-color .15s;
}
.d-pj-zone:hover{border-color:var(--or)}
.d-pj-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  background:#fff;
  border:0.5px solid var(--border);
  color:var(--or-dark);
  border-radius:6px;
  padding:.5rem .9rem;
  font-size:.76rem;font-weight:500;
  font-family:inherit;
  cursor:pointer;
  transition:all .15s;
}
.d-pj-btn:hover{background:var(--or);color:#fff;border-color:var(--or)}
.d-pj-liste{margin-top:.6rem;display:flex;flex-direction:column;gap:5px}
.d-pj-item{
  display:flex;align-items:center;gap:.6rem;
  padding:.5rem .65rem;
  background:#fff;
  border:0.5px solid var(--border);
  border-radius:6px;
  font-size:.74rem;
}
.d-pj-ico{font-size:1rem;flex-shrink:0}
.d-pj-nom{flex:1;color:var(--texte);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.d-pj-size{color:var(--muted);font-size:.66rem;white-space:nowrap;flex-shrink:0}
.d-pj-rem{
  width:24px;height:24px;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;
  border:0.5px solid var(--border);
  border-radius:50%;
  color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:1rem;line-height:1;
  padding:0;
  transition:all .12s;
  flex-shrink:0;
}
.d-pj-rem:hover{background:#fbe9e9;border-color:#c84545;color:#c84545}

/* ══ PAGE PRO ══ */
.pro-features{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}
.pro-feat{background:var(--blanc);border:0.5px solid var(--border);border-radius:10px;padding:1.25rem;text-align:center}
.pro-login-card{max-width:420px;margin:0 auto;background:var(--blanc);border:0.5px solid var(--border);border-radius:14px;padding:2rem}

/* ══ FOOTER ══ */
.site-footer{background:var(--sombre);padding:3rem 2.5rem;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}
.footer-logo-nom{font-family:'Playfair Display',serif;color:#FAF5EC;font-size:1.1rem;margin-bottom:.4rem}
.footer-logo-nom em{color:var(--or);font-style:normal}
.footer-tagline{font-size:.75rem;color:rgba(250,245,236,.38);line-height:1.6}
.footer-col h4{font-size:.65rem;text-transform:uppercase;letter-spacing:1.5px;color:rgba(250,245,236,.35);margin-bottom:.85rem}
.footer-col a,.footer-col p{display:block;font-size:.78rem;color:rgba(250,245,236,.55);margin-bottom:.4rem;cursor:pointer;text-decoration:none}
.footer-col a:hover{color:var(--or)}
.footer-bottom{background:#1A1612;padding:.85rem 2.5rem;display:flex;justify-content:space-between;align-items:center}
.footer-bottom p{font-size:.68rem;color:rgba(250,245,236,.28)}
.footer-bottom a{font-size:.68rem;color:rgba(250,245,236,.25);text-decoration:none;margin-left:1.25rem}
.footer-ver{font-size:.55rem;color:rgba(250,245,236,.15)}

/* ══ MODAL DEVIS ══ */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(26,22,18,.6);z-index:2000;align-items:center;justify-content:center}
.modal-bg.open{display:flex}
.modal{background:var(--blanc);border-radius:14px;padding:2rem;width:100%;max-width:520px;margin:1rem;position:relative;max-height:90vh;overflow-y:auto}
/* ── Modale Devis large : layout 2 colonnes ── */
.modal.modal-devis-large{max-width:920px;padding:2.2rem 2.4rem}
.modal-devis-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);
  gap:2rem;
  margin-top:1.4rem;
  align-items:start;
}
.modal-devis-form{min-width:0}
/* Le bloc infos dans la modale : variante visuelle plus compacte que la page Contact */
.modal-devis-infos{
  position:sticky;top:0;
  padding:1.7rem 1.6rem;
  background:linear-gradient(180deg, var(--or-light) 0%, var(--blanc) 60%);
}
.modal-devis-infos .cib-titre{font-size:1.15rem}
.modal-devis-infos .cib-intro{font-size:.8rem;margin-bottom:1.2rem;padding-bottom:1rem}
@media (max-width:780px){
  .modal.modal-devis-large{max-width:520px;padding:2rem}
  .modal-devis-grid{
    grid-template-columns:1fr;
    gap:1.4rem;
  }
  /* Sur mobile, le bloc infos passe AVANT le formulaire pour mettre les coordonnées
     en évidence (l'utilisateur peut décider d'appeler plutôt que remplir) */
  .modal-devis-infos{
    order:-1;
    position:static;
    padding:1.3rem 1.2rem;
  }
}
.modal-x{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--muted);line-height:1}
.modal-titre{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--texte);margin-bottom:.25rem}
.modal-sous{font-size:.78rem;color:var(--muted);margin-bottom:1.5rem}
.modal-succes{display:none;text-align:center;padding:1.5rem 0}
.modal-succes-ico{font-size:2.5rem;margin-bottom:.75rem}
.modal-succes h3{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--texte);margin-bottom:.4rem}
.modal-succes p{font-size:.82rem;color:var(--muted)}

/* ══ NOTIF ══ */
.notif{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(60px);background:var(--sombre);color:#FAF5EC;padding:.9rem 1.4rem;border-radius:9px;font-size:.8rem;z-index:400;opacity:0;transition:all .3s;pointer-events:none;white-space:nowrap}
.notif.show{transform:translateX(-50%) translateY(0);opacity:1}

/* ══════════════════════════════════════════════════════════════ */
/* ══ CARTE LEAFLET — Zone d'intervention page Contact         ══ */
/* ══════════════════════════════════════════════════════════════ */
/* ══ CARTE LEAFLET — Zone d'intervention page Contact ══ */
.carte-wrap{
  display:grid;grid-template-columns:1fr 320px;gap:1.5rem;
  background:var(--blanc);border:0.5px solid var(--border);
  border-radius:14px;overflow:hidden;
  box-shadow:0 2px 18px rgba(0,0,0,.04);
}
.carte-leaflet{
  width:100%;height:480px;background:#E5EDF2;
  font-family:inherit;
}
.carte-leaflet:focus{outline:2px solid var(--or);outline-offset:-2px}
.carte-villes{
  padding:1.5rem 1.4rem;background:var(--fond);
  display:flex;flex-direction:column;gap:.4rem;
  border-left:0.5px solid var(--border);
  overflow-y:auto;max-height:480px;
}
.carte-villes-titre{
  font-family:'Playfair Display',serif;font-size:1rem;
  color:var(--texte);margin-bottom:.4rem;
}
.carte-ville{
  padding:.65rem .8rem;background:var(--blanc);
  border:0.5px solid var(--border);border-radius:8px;
  cursor:pointer;display:flex;align-items:center;gap:.7rem;
  transition:all .15s;font-family:inherit;
  text-align:left;width:100%;font-size:.85rem;color:var(--texte);
}
.carte-ville:hover{border-color:var(--or);background:var(--or-pale);transform:translateX(2px)}
.carte-ville.active{border-color:var(--or);background:var(--or-pale);box-shadow:inset 3px 0 0 var(--or)}
.carte-ville-icone{
  width:28px;height:28px;border-radius:50%;
  background:var(--or);color:#fff;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:.7rem;font-weight:600;
}
.carte-ville-info{flex:1;min-width:0}
.carte-ville-nom{font-weight:500;font-size:.85rem;line-height:1.2}
.carte-ville-dist{font-size:.68rem;color:var(--muted);margin-top:1px}
/* Personnalisation Leaflet pour intégrer dans la charte */
.leaflet-popup-content-wrapper{border-radius:10px;font-family:inherit;box-shadow:0 4px 18px rgba(0,0,0,.15)}
.leaflet-popup-content{margin:.7rem .9rem;font-size:.78rem;line-height:1.5;color:var(--texte)}
.leaflet-popup-content strong{color:var(--or);font-family:'Playfair Display',serif;font-size:.92rem;display:block;margin-bottom:3px}
/* Description et photos dans la popup d'une ville */
.carte-popup-desc{
  font-size:.72rem;line-height:1.55;color:var(--texte);
  margin-bottom:8px;
}
.carte-popup-photos{
  display:flex;gap:5px;margin:8px 0 4px;flex-wrap:wrap;align-items:center;
}
.carte-popup-photo{
  display:block;width:64px;height:64px;border-radius:6px;overflow:hidden;
  border:0.5px solid var(--border);transition:transform .15s,border-color .15s;
}
.carte-popup-photo:hover{transform:scale(1.05);border-color:var(--or)}
.carte-popup-photo img{width:100%;height:100%;object-fit:cover;display:block}
.carte-popup-photo-plus{
  width:64px;height:64px;border-radius:6px;background:var(--or-pale);
  display:flex;align-items:center;justify-content:center;
  font-size:.78rem;font-weight:600;color:var(--or);
}
/* Aide molette sous la carte */
.carte-aide-molette{
  display:flex;align-items:flex-start;gap:8px;
  margin:.9rem auto 0;max-width:1100px;
  padding:.7rem 1rem;background:var(--or-pale);
  border:0.5px solid var(--or-light);border-radius:8px;
  font-size:.7rem;color:var(--texte);line-height:1.55;
}
.carte-aide-molette strong{color:var(--or);font-weight:500}
.carte-aide-molette>span:first-child{font-size:1rem;flex-shrink:0;line-height:1}
.leaflet-popup-tip{background:#fff}
.leaflet-container{font-family:inherit !important}
.leaflet-control-attribution{font-size:.6rem;background:rgba(255,255,255,.85)}
.leaflet-control-zoom a{border-radius:6px !important;color:var(--texte) !important}
.leaflet-control-zoom a:hover{background:var(--or-pale) !important;color:var(--or) !important}
/* ══ MARQUEURS DE CARTE — Style "pin Google Maps" ══ */
/* Pin en goutte d'eau or pour les sites avec étoile (siège, showroom, dépôt, etc.) */
.carte-pin{
  position:relative;
  cursor:pointer;
  transition:transform .15s ease-out;
  transform-origin:50% 100%; /* point d'ancrage = bas du pin */
}
.carte-pin:hover{transform:scale(1.12)}
.carte-pin-emoji{
  position:absolute;left:0;
  text-align:center;
  line-height:1;
  /* Polices emoji système pour un rendu coloré natif */
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji','Twemoji Mozilla',sans-serif;
  /* Centre vertical de l'emoji dans la pastille blanche */
  display:flex;align-items:center;justify-content:center;
  height:1em;
  pointer-events:none;
  user-select:none;
}
/* Ancien style "rond plein or" — gardé pour rétrocompat (mini-cartes) */
.carte-marker-siege{
  width:36px;height:36px;border-radius:50%;
  background:var(--or);border:3px solid #fff;
  box-shadow:0 2px 8px rgba(0,0,0,.3);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1rem;font-weight:700;line-height:1;
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji','DM Sans',sans-serif;
}
/* Marqueurs petites villes desservies (sans étoile) */
.carte-marker-ville{
  border-radius:50%;
  background:#fff;border:2.5px solid var(--or);
  box-shadow:0 2px 6px rgba(0,0,0,.18);
  display:flex;align-items:center;justify-content:center;
  color:var(--or);font-weight:700;line-height:1;
  transition:transform .15s;
}
.carte-marker-ville:hover{transform:scale(1.18)}
@media (max-width:920px){
  .carte-wrap{grid-template-columns:1fr}
  .carte-villes{border-left:none;border-top:0.5px solid var(--border);max-height:none}
  .carte-leaflet{height:380px}
/* ══════════════════════════════════════════════════════════════ */
/* ══ RTE CONTENT — Formatage texte riche côté visiteur        ══ */
/* ══════════════════════════════════════════════════════════════ */
/* Affichage du contenu RTE côté site public */
.rte-content strong,.rte-content b{font-weight:700}
.rte-content em,.rte-content i{font-style:italic}
.rte-content u{text-decoration:underline}
.rte-content a{color:var(--or);text-decoration:underline}
.rte-content a:hover{text-decoration:none}
.rte-content p{margin:0 0 .6rem}
.rte-content p:last-child{margin-bottom:0}
