/* ═════════════════════════════════════════════════════════════
   common.css — La Pousterle de Sabran
   Regles CSS partagees entre pages.
   Ordre : nav, mobile menu, footer, skip-link, focus, breadcrumb,
           classes utilitaires footer (.ft-link-*).
   Charger AVANT le <style> inline pour permettre aux regles
   specifiques (inline) de surcharger si besoin.
   ═════════════════════════════════════════════════════════════ */

/* ── Liens footer : remplace les styles inline dupliques ── */
.ft-link-legal{color:inherit;text-decoration:none}
.ft-link-sitemap{color:rgba(255,255,255,.55);font-size:.8rem;text-decoration:none}
/* .ft-link-social : surcharge .footer-brand a (plus specifique) */
.footer-brand a.ft-link-social,a.ft-link-social{color:rgba(255,255,255,.55);font-size:.85rem;text-decoration:none;font-family:var(--fb);font-weight:400}
.ft-link-mini{color:rgba(255,255,255,.4);text-decoration:none;font-size:.75rem}

/* ── Fix menu mobile : masque la barre CTA fixe quand le menu est ouvert ── */
body:has(.mob-menu.open) .mob-actions,
body:has(.mob-menu.open) .mob-cta{display:none!important}

/* ── Fix burger menu : plus visible (fond + bordure legere) ── */
.nav-burger{background:rgba(61,92,56,.06)!important;border:1px solid rgba(61,92,56,.18)!important;border-radius:6px}
.nav-burger:hover{background:rgba(61,92,56,.12)!important}
.nav-burger span{background:var(--vert)!important;height:2px!important}

/* ── Banniere cookies (opt-out) ── */
#cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:rgba(26,24,20,.97);color:#f2ede6;font-family:'Jost',sans-serif;padding:16px 20px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;box-shadow:0 -2px 20px rgba(0,0,0,.25);backdrop-filter:blur(8px);transform:translateY(0);transition:transform .3s ease}
#cookie-banner .cb-text{flex:1 1 300px;font-size:.85rem;line-height:1.5;font-weight:300}
#cookie-banner .cb-link{color:#C9A96E;text-decoration:underline;text-underline-offset:2px}
#cookie-banner .cb-actions{display:flex;gap:10px;flex-shrink:0}
#cookie-banner .cb-btn{font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:10px 18px;border:1px solid rgba(242,237,230,.3);background:transparent;color:#f2ede6;cursor:pointer;border-radius:3px;font-weight:400;transition:all .2s;min-height:40px}
#cookie-banner .cb-btn-accept{background:#3D5C38;border-color:#3D5C38}
#cookie-banner .cb-btn-accept:hover{background:#4e7348;border-color:#4e7348}
#cookie-banner .cb-btn-refuse:hover{background:rgba(242,237,230,.08);border-color:rgba(242,237,230,.5)}
@media(max-width:600px){#cookie-banner{flex-direction:column;align-items:stretch}#cookie-banner .cb-actions{justify-content:flex-end}}

.nav {position:fixed;top:0;left:0;right:0;z-index:50;height:clamp(68px,10vw,80px);background:rgba(253,251,247,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 2px 20px rgba(30,28,20,.07);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,52px);border-bottom:1px solid rgba(61,92,56,.06)}

.nav-l {display:none;align-items:center;gap:clamp(18px,2.5vw,32px)}

.nav-brand {display:none}

.nav-logo {height:calc(clamp(68px,10vw,80px) - 8px);width:auto;flex-shrink:0}

.nav-logo-wrap {cursor:pointer;display:flex;align-items:center;flex-shrink:0}

.nav-logo rect,.nav-logo path,.nav-logo circle {stroke:#3D5C38}

.nav-name {font-family:var(--fd);font-size:clamp(.85rem,1.4vw,.95rem);color:var(--encre);font-weight:500;line-height:1.15;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.nav-sub {font-size:7.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--vert);font-family:var(--fb);font-weight:300;display:block;text-align:center}

@media(min-width:1024px) {.nav-sub{display:block}}

.nav-r {display:flex;align-items:center;margin-left:auto;gap:clamp(8px,1.5vw,16px);flex-shrink:0}

.nav-links {display:none;list-style:none;gap:clamp(16px,2.2vw,28px)}

.nav-burger {width:44px;height:44px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:6px}

.nav-cta:hover {background:var(--vert-lt);transform:translateY(-1px)}

.nav-tel {display:none;align-items:center;gap:6px;font-size:0.8rem;font-weight:400;color:var(--encre);text-decoration:none;letter-spacing:0.02em;transition:color .3s}

.nav-tel:hover {color:var(--vert)}

@media(min-width:1024px) {.nav-tel{display:flex}}

.mob-overlay {position:fixed;inset:0;z-index:199;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .35s}

.mob-overlay.open {opacity:1;pointer-events:all}

.mob-menu {position:fixed;top:0;right:0;bottom:0;z-index:200;width:min(85vw,400px);background:#FDFBF7;display:flex;flex-direction:column;padding:0;overflow-y:auto;transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:-12px 0 40px rgba(26,24,20,.2)}

.mob-menu.open {transform:translateX(0)}

.mob-header {padding:20px 24px 16px;border-bottom:1px solid rgba(61,92,56,.08);display:flex;align-items:center;justify-content:space-between}

.mob-header-brand {font-family:var(--fd);font-size:.95rem;color:var(--encre);letter-spacing:.02em}

.mob-close:hover {color:var(--vert)}

.mob-items {flex:1;padding:16px 0}

.mob-item {display:flex;align-items:center;padding:14px 24px;cursor:pointer;text-decoration:none;color:var(--encre);position:relative;transition:background .2s}

.mob-item:hover {background:rgba(61,92,56,.04)}

.mob-item.active::before {content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;background:#3D5C38;border-radius:0 3px 3px 0}

.mob-item-text {flex:1}

.mob-item-title {font-family:var(--fd);font-size:1.15rem;font-weight:500;color:var(--encre);line-height:1.3}

.mob-item:hover .mob-item-arrow {transform:translateX(3px);color:var(--vert)}

.mob-item+.mob-item {border-top:1px solid rgba(61,92,56,.06)}

.mob-footer {padding:16px 24px 28px;border-top:1px solid rgba(61,92,56,.08);margin-top:auto}

.mob-footer-cta:hover {background:#4A6E44}

.mob-footer-info {display:flex;align-items:center;justify-content:center;gap:16px;margin-top:14px}

.mob-footer-info a:hover {color:var(--vert)}

.breadcrumb a:hover {color:#fff}

.breadcrumb span.sep {opacity:.4}

footer {background:var(--encre);color:rgba(247,243,236,.5);padding:4rem clamp(16px,5vw,48px) 2rem}

.footer-top {display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem;max-width:1200px;margin-left:auto;margin-right:auto}

.footer-brand p {font-size:.85rem;font-weight:300;line-height:1.8;max-width:280px;margin-top:1rem}

.footer-brand a {font-family:var(--fd);font-size:1.1rem;font-weight:500;color:rgba(255,255,255,.9);text-decoration:none}

.footer-col h4 {font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-bottom:1.2rem}

.footer-col ul {list-style:none;display:flex;flex-direction:column;gap:.6rem}

.footer-col ul li a {font-size:.82rem;font-weight:300;color:rgba(255,255,255,.55);text-decoration:none;transition:color .2s}

.footer-col ul li a:hover {color:rgba(255,255,255,.9)}

.footer-bottom {border-top:1px solid rgba(255,255,255,.08);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin-left:auto;margin-right:auto}

.footer-bottom p {font-size:.75rem}

@media(max-width:768px) {.footer-top{grid-template-columns:1fr 1fr}}

button:focus-visible,a:focus-visible,[role="button"]:focus-visible,[tabindex]:focus-visible {outline:2px solid var(--vert);outline-offset:2px;border-radius:4px}

.skip-link:focus {top:8px}
