/* ─── louelavie.com: site-wide pieces added on top of the captured pages ─────
 * Linked from the footer block scripts/site-chrome.mjs writes into every page,
 * and from components/public/SiteExtras.tsx on the React pages.
 */

/* EN/FR switcher. Fixed bottom-left on every page and screen size (the chat
   launcher is bottom-right). While the cookie banner is open, public/llv-site.js
   sets --llv-consent-h to its height so the switcher sits just above it. */
.llv-lang{position:fixed;left:calc(16px + env(safe-area-inset-left,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px) + var(--llv-consent-h,0px));z-index:9997;display:flex;gap:2px;padding:4px;border-radius:999px;background:rgba(12,12,12,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);box-shadow:0 4px 18px rgba(0,0,0,.35);font:700 11px/1 Montserrat,system-ui,sans-serif;letter-spacing:1.5px;transition:bottom .2s}
.llv-lang a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:34px;padding:0 12px;border-radius:999px;color:#fff;text-decoration:none}
.llv-lang a:hover{background:rgba(255,255,255,.12)}
.llv-lang a[aria-current]{background:var(--red,#e31837)}
.llv-lang a:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media print{.llv-lang{display:none}}

/* Cookie banner. Bottom of the screen, above the page but below the logo
   intro; the three choices are the same size, colour and weight, so refusing
   is exactly as easy as accepting. */
.llv-consent{position:fixed;left:0;right:0;bottom:0;z-index:2147482000;padding:0 12px calc(12px + env(safe-area-inset-bottom,0px));pointer-events:none;font-family:Montserrat,system-ui,sans-serif}
.llv-consent[hidden]{display:none}
.llv-consent-inner{pointer-events:auto;max-width:980px;margin:0 auto;background:#111;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.55);padding:18px 20px;max-height:calc(100vh - 24px);overflow:auto;box-sizing:border-box}
.llv-consent-title{margin:0 0 6px;font-size:14px;font-weight:800;letter-spacing:.04em;color:#fff;outline:none;text-transform:none;line-height:1.3}
.llv-consent-body{margin:0;font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.78)}
.llv-consent-body a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.llv-consent-prefs{margin:12px 0 0;display:grid;gap:10px}
.llv-consent-prefs[hidden]{display:none}
.llv-consent-cat{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.5;color:rgba(255,255,255,.75);cursor:pointer}
.llv-consent-cat strong{color:#fff;font-weight:700}
.llv-consent-cat em{font-style:normal;color:rgba(255,255,255,.5);font-size:11px}
.llv-consent-cat input{margin-top:3px;width:18px;height:18px;flex-shrink:0;accent-color:var(--red,#e31837)}
.llv-consent-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;justify-content:flex-end}
.llv-consent-btn{flex:1 1 140px;max-width:220px;min-height:42px;padding:0 16px;border-radius:8px;border:1px solid #fff;background:#fff;color:#111;font:800 11px/1 Montserrat,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.llv-consent-btn[hidden]{display:none}
.llv-consent-btn:hover{background:#e9e9e9}
.llv-consent-btn:focus-visible{outline:2px solid var(--red,#e31837);outline-offset:2px}
@media (max-width:560px){.llv-consent-btn{max-width:none}}
@media print{.llv-consent{display:none}}

/* Keep the chat launcher clear of the banner while it is open. */
html #llv-chat-btn{bottom:calc(24px + var(--llv-consent-h,0px));transition:bottom .2s}
html #llv-chat-panel{bottom:calc(96px + var(--llv-consent-h,0px))}

/* Footer legal row and copyright: the capture drew them at 15% white, which
   nobody could read. */
.footer-copy{color:rgba(255,255,255,.5)}
.footer-legal{flex-wrap:wrap}
.footer-legal a{color:rgba(255,255,255,.6)}
.footer-legal a:hover,.footer-legal a:focus-visible{color:#fff}
