/* bloo.Cards — Card redesign (free 6-btn 2x3, glass hero chips, +avatar, liquid no-scroll, side-by-side CTAs)
   Deployed 2026-09-17. Loaded by card.php after layout CSS. */
/* ===== BLOO CARD REDESIGN v4 ===== */
:root{ --k-accent: var(--card-accent,#7c5cfc); }
/* black bar + top gap */
.card-idbar{ display:none !important; }
html, body[data-layout]{ background:#f2ede7 !important; }
body[data-layout] .card-wrap, body[data-layout] .card-inner{ margin:0 !important; padding-top:0 !important; }
/* full-height liquid column, no scroll */
html,body{ height:100% !important; overflow:hidden !important; }
body[data-layout]{ height:100dvh !important; min-height:0 !important; overflow:hidden !important; }
body[data-layout] .card-wrap, body[data-layout] .card-inner{
  height:100dvh !important; min-height:0 !important; max-height:100dvh !important;
  overflow-y:auto !important; overflow-x:hidden !important; display:flex !important; flex-direction:column !important; -webkit-overflow-scrolling:touch; }
/* hero height (specificity-correct: beats layout rules) */
body[data-layout] .card-wrap .card-header{ height:clamp(112px,19vh,205px) !important; flex:0 0 auto !important; }
/* hero chips: frosted glass readable on ANY bg */
.h-badges-float{ top:10px !important; right:12px !important; gap:9px !important; }
.h-badge{ width:40px !important; height:40px !important; border-radius:50% !important;
  background:rgba(15,18,24,.46) !important; -webkit-backdrop-filter:blur(12px) saturate(1.5); backdrop-filter:blur(12px) saturate(1.5);
  border:1.5px solid rgba(255,255,255,.68) !important; color:#fff !important; box-shadow:0 4px 18px rgba(0,0,0,.35) !important; }
.h-badge i,.h-badge *{ color:#fff !important; text-shadow:0 1px 3px rgba(0,0,0,.5) !important; }
.h-badge.h-badge-lang{ font-weight:800 !important; font-size:11px !important; }
/* avatar prominent + height-aware (specificity-correct) */
body[data-layout] .card-wrap .card-avatar-wrap{ margin-top:clamp(-92px,-12vh,-58px) !important; flex:0 0 auto !important; }
body[data-layout] .card-wrap .card-avatar-frame{ width:clamp(132px,min(46vw,25vh),190px) !important; height:clamp(132px,min(46vw,25vh),190px) !important; }
/* identity compact */
.card-identity{ flex:0 0 auto !important; padding:4px 18px 0 !important; }
.card-name{ font-size:clamp(24px,7vw,40px) !important; line-height:1.08 !important; margin:0 !important; }
.card-title{ margin:2px 0 0 !important; }
.card-tagline{ font-size:clamp(10.5px,3vw,13px) !important; line-height:1.2 !important; margin-top:3px !important; }
/* action area fills + centers, no scroll */
.modules-section{ flex:1 1 auto !important; min-height:0 !important; overflow:hidden !important;
  display:flex !important; flex-direction:column !important; justify-content:center !important; padding:4px 14px 0 !important; }
.modules-page-wrap{ flex:0 1 auto !important; overflow:hidden !important; }
.modules-track{ height:auto !important; }
.modules-page{ overflow:hidden !important; gap:clamp(8px,2vh,16px) 10px !important; justify-items:center !important; align-content:center !important; }
body[data-tier="free"] .modules-page{ grid-template-columns:repeat(3,1fr) !important; }
body[data-tier="paid"] .modules-page{ grid-template-columns:repeat(4,1fr) !important; }
/* clean action buttons */
.mod-btn{ background:transparent !important; padding:2px !important; width:100% !important; max-width:132px !important; }
.mod-icon{ width:clamp(46px,min(14.5vw,8vh),62px) !important; height:clamp(46px,min(14.5vw,8vh),62px) !important;
  border-radius:18px !important; margin:0 auto !important;
  background:color-mix(in srgb,var(--k-accent) 14%,#fff) !important; color:var(--k-accent) !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  font-size:clamp(18px,5.2vw,23px) !important; box-shadow:0 6px 16px rgba(0,0,0,.10) !important;
  border:1px solid color-mix(in srgb,var(--k-accent) 22%,transparent) !important; }
.mod-label{ font-size:clamp(10px,3.1vw,12.5px) !important; font-weight:700 !important; margin-top:5px !important;
  max-width:100% !important; white-space:nowrap !important; overflow:visible !important; text-overflow:clip !important; }
.mod-btn.is-empty{ opacity:.42 !important; pointer-events:none !important; }
.mod-btn.is-empty .mod-icon{ background:rgba(120,120,130,.12) !important; color:#9aa0aa !important; border-color:rgba(120,120,130,.18) !important; }
/* CTA + footer compact */
.contact-actions{ flex:0 0 auto !important; gap:6px !important; padding:6px 16px calc(4px + env(safe-area-inset-bottom,0px)) !important; }
body[data-layout] .card-action-btn{ min-height:clamp(40px,5.2vh,50px) !important; }
.card-footer{ flex:0 0 auto !important; padding:2px 0 calc(2px + env(safe-area-inset-bottom,0px)) !important; font-size:11px !important; }
/* ===== v4b: kill top gap + compact footer ===== */
html,body{ padding:0 !important; margin:0 !important; }
body[data-layout] .card-wrap .card-header{ margin-top:0 !important; height:clamp(100px,17vh,196px) !important; }
body[data-layout] .card-inner{ padding-top:0 !important; }
.card-footer{ padding:1px 0 calc(1px + env(safe-area-inset-bottom,0px)) !important; font-size:10.5px !important; }
.card-footer *{ line-height:1.2 !important; }
.modules-page{ gap:clamp(6px,1.8vh,15px) 10px !important; }
/* ===== v5: cross-theme fixes ===== */
/* stronger disc border so icons read on light themes (premium) */
.mod-icon{ border:1.5px solid color-mix(in srgb,var(--k-accent) 42%,transparent) !important; }
/* header-hidden / avatar-first layouts: no negative pull (avatar was overlapping the name) */
body[data-layout="liquid"] .card-wrap .card-avatar-wrap,
body[data-layout="frost"] .card-wrap .card-avatar-wrap,
body[data-layout="bento"] .card-wrap .card-avatar-wrap,
body[data-layout="tactile"] .card-wrap .card-avatar-wrap,
body[data-layout="magazine"] .card-wrap .card-avatar-wrap,
body[data-layout="brutal"] .card-wrap .card-avatar-wrap{ margin-top:8px !important; }
/* a touch more global compaction for the tight themes */
.card-identity{ padding-bottom:0 !important; }
.contact-actions{ padding-top:4px !important; }
/* ===== v6: CTAs side-by-side everywhere + disc contrast ===== */
.contact-actions{ display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; gap:8px !important; align-items:stretch !important; }
body[data-layout] .card-action-btn{ flex:1 1 0 !important; min-width:0 !important; padding:8px 6px !important;
  font-size:clamp(10.5px,2.9vw,12.5px) !important; line-height:1.12 !important; white-space:normal !important; text-align:center !important; }
.mod-icon{ background:color-mix(in srgb,var(--k-accent) 12%,#fff) !important;
  border:1.5px solid color-mix(in srgb,var(--k-accent) 45%,transparent) !important;
  box-shadow:0 4px 14px rgba(0,0,0,.12) !important; }
/* ===== v7: per-theme cleanup ===== */
/* liquid/frost have no hero → smaller avatar so it doesn't cover the name */
body[data-layout="liquid"] .card-wrap .card-avatar-frame,
body[data-layout="frost"] .card-wrap .card-avatar-frame{ width:112px !important; height:112px !important; }
body[data-layout="liquid"] .card-wrap .card-avatar-wrap,
body[data-layout="frost"] .card-wrap .card-avatar-wrap{ margin-top:12px !important; }
/* bento/magazine/tactile: hide the redundant decorative photo band (avatar already shown) */
body[data-layout="bento"] .card-header,
body[data-layout="magazine"] .card-header,
body[data-layout="tactile"] .card-header{ display:none !important; }
/* brutal: shrink avatar so it fits alongside its top hero */
body[data-layout="brutal"] .card-wrap .card-avatar-frame{ width:118px !important; height:118px !important; }
body[data-layout="brutal"] .card-wrap .card-avatar-wrap{ margin-top:6px !important; }
/* brutal: trim hero + avatar to fit */
body[data-layout="brutal"] .card-wrap .card-header{ height:clamp(76px,12vh,116px) !important; }
body[data-layout="brutal"] .card-wrap .card-avatar-frame{ width:104px !important; height:104px !important; }
body[data-layout="brutal"] .card-wrap .card-avatar-wrap{ margin-top:4px !important; }
/* liquid/frost: name sits in a glass panel under the avatar → push content clear of avatar */
body[data-layout="liquid"] .card-identity,
body[data-layout="frost"] .card-identity{ padding-top:52px !important; }
body[data-layout="liquid"] .card-avatar-frame img,
body[data-layout="frost"] .card-avatar-frame img{ width:100% !important; height:100% !important; }

/* v8 — button cleanup + accent labels + bigger icons + readable tagline */
body[data-layout] .modules-page .mod-btn{ background:transparent !important; border:none !important; box-shadow:none !important; }
body[data-layout] .modules-page .mod-icon{
  background:color-mix(in srgb, var(--card-accent) 15%, #fff) !important;
  border:1.5px solid color-mix(in srgb, var(--card-accent) 45%, transparent) !important;
  color:var(--card-accent) !important; box-shadow:0 4px 14px rgba(0,0,0,.14) !important;
  width:clamp(50px,min(16vw,9vh),68px) !important; height:clamp(50px,min(16vw,9vh),68px) !important; }
body[data-layout] .modules-page .mod-icon i{ font-size:clamp(20px,5.8vw,26px) !important; }
body[data-layout] .modules-page .mod-label{ color:var(--card-accent) !important; }
body[data-layout] .card-identity .card-tagline{ color:var(--card-accent) !important; opacity:.85 !important; }

/* v9 — aurora feedback + global bold */
/* AURORA: remove the brown tile, KEEP the button disc */
body[data-layout="aurora"] .card-inner .modules-page .mod-btn{ background:transparent !important; border:none !important; box-shadow:none !important; }
/* AURORA: subtler, deeper dark background (no muddy mid-brown) */
body[data-layout="aurora"], body[data-layout="aurora"] .card-wrap{ background:#0a0809 !important; }
body[data-layout="aurora"] .card-inner{
  background:
    radial-gradient(ellipse 75% 50% at 18% 28%, rgba(52,211,153,.17) 0%, rgba(52,211,153,0) 62%),
    radial-gradient(ellipse 65% 45% at 82% 58%, rgba(255,181,107,.14) 0%, rgba(255,181,107,0) 62%),
    radial-gradient(ellipse 55% 40% at 50% 92%, rgba(139,92,246,.12) 0%, rgba(139,92,246,0) 62%),
    linear-gradient(180deg,#16121a 0%,#0e0b10 55%,#090709 100%) !important;
  background-size:200% 200%,200% 200%,200% 200%,100% 100% !important;
  animation:bloo-aurora 26s ease-in-out infinite alternate !important; }
@keyframes bloo-aurora{ from{background-position:0% 0%,100% 100%,50% 100%,0 0} to{background-position:35% 25%,65% 75%,40% 85%,0 0} }
/* AURORA: glass disc that reads on deep dark */
body[data-layout="aurora"] .card-inner .modules-page .mod-icon{
  background:rgba(255,255,255,.08) !important; border:1px solid rgba(255,214,170,.35) !important; box-shadow:0 6px 20px rgba(0,0,0,.35) !important; }
/* icon +5% (global) */
body[data-layout] .modules-page .mod-icon i{ font-size:clamp(21px,6.1vw,27px) !important; }
/* readable slogan on dark themes */
body[data-layout="aurora"] .card-identity .card-tagline,
body[data-layout="neon"] .card-identity .card-tagline{ color:rgba(255,246,235,.94) !important; opacity:1 !important; }
/* CTA symmetry (global) */
.contact-actions{ align-items:stretch !important; }
body[data-layout] .card-action-btn{ white-space:nowrap !important; font-size:clamp(9.5px,2.7vw,12.5px) !important; }
/* GLOBAL: name + title heavy bold */
body[data-layout] .card-identity .card-name{ font-weight:800 !important; }
body[data-layout] .card-identity .card-title{ font-weight:800 !important; }
/* GLOBAL: button label = button icon color */
body[data-layout] .card-inner .modules-page .mod-icon,
body[data-layout] .card-inner .modules-page .mod-icon i,
body[data-layout] .card-inner .modules-page .mod-label{ color:var(--card-accent) !important; }
/* AURORA: label + glyph share the same amber (theme forces amber glyphs) */
body[data-layout="aurora"] .card-inner .modules-page .mod-icon,
body[data-layout="aurora"] .card-inner .modules-page .mod-icon i,
body[data-layout="aurora"] .card-inner .modules-page .mod-label{ color:#ffb56b !important; }

/* v10 — brand fonts GLOBAL: Lexend (headings) + Inter (body), local variable woff2 */
@font-face{font-family:'Inter';src:url('/assets/fonts/inter.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Lexend';src:url('/assets/fonts/lexend.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
body[data-layout], body[data-layout] .card-inner,
body[data-layout] .card-inner *:not(i):not(svg):not([class*="fa-"]){ font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif !important; }
body[data-layout] .card-inner .card-identity .card-name,
body[data-layout] .card-inner .card-identity .card-title{ font-family:'Lexend','Inter',system-ui,sans-serif !important; }

/* v11 — subtle shadows everywhere */
.h-badge{ box-shadow:0 2px 10px rgba(0,0,0,.18) !important; }
body[data-layout] .modules-page .mod-icon{ box-shadow:0 2px 8px rgba(0,0,0,.08) !important; }
body[data-layout="aurora"] .card-inner .modules-page .mod-icon{ box-shadow:0 3px 10px rgba(0,0,0,.22) !important; }

/* v12 — footer readable on dark themes (bloo / Confidentialité / Cookies) */
body[data-layout="aurora"] .card-footer, body[data-layout="aurora"] .card-footer a, body[data-layout="aurora"] .card-footer span,
body[data-layout="neon"] .card-footer, body[data-layout="neon"] .card-footer a, body[data-layout="neon"] .card-footer span{ color:rgba(255,246,235,.85) !important; }
body[data-layout="aurora"] .card-footer .f-accent, body[data-layout="neon"] .card-footer .f-accent{ color:#ffb56b !important; }

/* v12b — footer links readable on dark themes (targets the exact elements) */
body[data-layout="aurora"] .card-inner .card-footer a.card-footer-logo,
body[data-layout="aurora"] .card-inner .card-footer .card-footer-legal a,
body[data-layout="aurora"] .card-inner .card-footer .card-footer-legal span,
body[data-layout="neon"] .card-inner .card-footer a.card-footer-logo,
body[data-layout="neon"] .card-inner .card-footer .card-footer-legal a,
body[data-layout="neon"] .card-inner .card-footer .card-footer-legal span{ color:rgba(255,246,235,.88) !important; }
body[data-layout="aurora"] .card-inner .card-footer .f-accent,
body[data-layout="neon"] .card-inner .card-footer .f-accent{ color:#ffb56b !important; }

/* v13 — AURORA: dark neumorphic action buttons */
body[data-layout="aurora"] .card-inner .modules-page .mod-icon{
  background:linear-gradient(145deg,#1b1a1e 0%,#0f0e12 100%) !important;
  border:none !important;
  box-shadow:5px 5px 12px rgba(0,0,0,.55), -3px -3px 8px rgba(255,255,255,.05), inset 0 0 0 1px rgba(255,181,107,.12) !important;
  border-radius:20px !important; }
body[data-layout="aurora"] .card-inner .modules-page .mod-btn:active .mod-icon{
  box-shadow:inset 4px 4px 10px rgba(0,0,0,.6), inset -3px -3px 8px rgba(255,255,255,.04) !important; }

/* v14 — AURORA: ghost / transparent action buttons (replaces neumorphic) */
body[data-layout="aurora"] .card-inner .modules-page .mod-icon{
  background:rgba(255,255,255,.035) !important;
  border:1.5px solid rgba(255,181,107,.55) !important;
  box-shadow:none !important; border-radius:20px !important;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
body[data-layout="aurora"] .card-inner .modules-page .mod-btn:active .mod-icon{
  background:rgba(255,181,107,.14) !important; box-shadow:none !important; }

/* v15 — footer mascot = same color as ".Cards" */
body[data-layout] .card-inner .card-footer .card-footer-logo i{ color:var(--card-accent) !important; }
body[data-layout="aurora"] .card-inner .card-footer .card-footer-logo i,
body[data-layout="neon"] .card-inner .card-footer .card-footer-logo i{ color:#ffb56b !important; }

/* v16 — hero chips: border + glyph like the action buttons */
body[data-layout] .h-badges-float .h-badge{ border:1.5px solid var(--card-accent) !important; color:var(--card-accent) !important; background:rgba(15,18,24,.55) !important; }
body[data-layout] .h-badges-float .h-badge i, body[data-layout] .h-badges-float .h-badge *{ color:var(--card-accent) !important; text-shadow:none !important; }
body[data-layout="aurora"] .h-badges-float .h-badge, body[data-layout="neon"] .h-badges-float .h-badge{ border-color:#ffb56b !important; color:#ffb56b !important; }
body[data-layout="aurora"] .h-badges-float .h-badge i, body[data-layout="aurora"] .h-badges-float .h-badge *,
body[data-layout="neon"] .h-badges-float .h-badge i, body[data-layout="neon"] .h-badges-float .h-badge *{ color:#ffb56b !important; }

/* v17 — ÉDITORIAL (slug magazine): restore native paper / serif / written design */
body[data-layout="magazine"] .card-inner .card-identity .card-name{
  font-family:Georgia,'Bitstream Charter','Times New Roman',serif !important; font-weight:400 !important;
  font-size:clamp(40px,12vw,56px) !important; line-height:.84 !important; letter-spacing:-.06em !important; margin:12px 0 10px !important; }
body[data-layout="magazine"] .card-inner .card-identity .card-tagline{
  font-family:Georgia,'Bitstream Charter','Times New Roman',serif !important; font-style:italic !important;
  font-size:15px !important; line-height:1.5 !important; color:var(--m-ink,#1a1a1a) !important; opacity:1 !important; margin:0 0 12px !important; }
body[data-layout="magazine"] .card-inner .card-identity .card-title{
  font-family:'Inter',system-ui,sans-serif !important; font-weight:800 !important; font-size:10px !important;
  text-transform:uppercase !important; letter-spacing:.12em !important; margin:0 !important; }
/* restore the photo-cadre (reduced height so it still fits small phones) */
body[data-layout="magazine"] .card-header{ display:block !important; }
body[data-layout="magazine"] .card-wrap .card-header{ height:clamp(110px,17vh,190px) !important; }
/* ÉDITORIAL: compaction to fit without scroll (identity preserved) */
body[data-layout="magazine"] .card-inner{ padding-top:30px !important; }
body[data-layout="magazine"] .card-wrap .card-header{ height:clamp(80px,12.5vh,150px) !important; margin:0 0 4px !important; }
body[data-layout="magazine"] .card-wrap .card-avatar-frame{ width:clamp(100px,min(33vw,16.5vh),140px) !important; height:clamp(100px,min(33vw,16.5vh),140px) !important; }
body[data-layout="magazine"] .card-wrap .card-avatar-wrap{ margin-top:0 !important; }
body[data-layout="magazine"] .card-inner .card-identity .card-name{ font-size:clamp(34px,10.5vw,52px) !important; margin:6px 0 4px !important; }
body[data-layout="magazine"] .card-inner .card-identity .card-tagline{ font-size:14px !important; line-height:1.4 !important; margin:0 0 6px !important; }
body[data-layout="magazine"] .card-inner .card-identity .card-title{ padding:5px 0 !important; }
body[data-layout="magazine"] .modules-section{ padding-top:2px !important; }
body[data-layout="magazine"] .modules-page{ gap:6px 10px !important; }
body[data-layout="magazine"] .modules-page .mod-icon{ width:clamp(42px,min(12.5vw,6.8vh),54px) !important; height:clamp(42px,min(12.5vw,6.8vh),54px) !important; }
body[data-layout="magazine"] .modules-page .mod-icon i{ font-size:clamp(18px,5vw,22px) !important; }
body[data-layout="magazine"] .modules-page .mod-label{ margin-top:3px !important; }
body[data-layout="magazine"] .card-inner .contact-actions .card-action-btn{ white-space:nowrap !important; font-size:clamp(9px,2.55vw,11.5px) !important; padding:7px 5px !important; min-height:38px !important; }
body[data-layout="magazine"] .card-footer{ padding-top:0 !important; }

/* v18 — ÉDITORIAL: hero chips styled like the theme's light action buttons */
body[data-layout="magazine"] .h-badges-float .h-badge{ background:rgba(255,255,255,.88) !important; border:1.5px solid var(--card-accent) !important; color:var(--card-accent) !important; box-shadow:0 2px 8px rgba(0,0,0,.10) !important; -webkit-backdrop-filter:none; backdrop-filter:none; }
body[data-layout="magazine"] .h-badges-float .h-badge i, body[data-layout="magazine"] .h-badges-float .h-badge *{ color:var(--card-accent) !important; }

/* v19 — NEON: photo-as-background layout — avatar, chips, glow ghost buttons, readable CTA/footer */
body[data-layout="neon"]{ background:#0b0c12 !important; }
body[data-layout="neon"] .card-wrap .card-avatar-wrap{ margin-top:14px !important; }
body[data-layout="neon"] .card-wrap .card-avatar-frame{ width:clamp(116px,min(38vw,20vh),156px) !important; height:clamp(116px,min(38vw,20vh),156px) !important; }
body[data-layout="neon"] .card-identity{ padding-top:10px !important; }
body[data-layout="neon"] .h-badges-float{ left:auto !important; right:12px !important; }
body[data-layout="neon"] .h-badges-float .h-badge{ background:rgba(10,12,20,.55) !important; border:1.5px solid color-mix(in srgb,var(--card-accent) 70%,#fff) !important; box-shadow:0 0 12px color-mix(in srgb,var(--card-accent) 45%,transparent) !important; }
body[data-layout="neon"] .h-badges-float .h-badge, body[data-layout="neon"] .h-badges-float .h-badge i, body[data-layout="neon"] .h-badges-float .h-badge *{ color:color-mix(in srgb,var(--card-accent) 55%,#fff) !important; }
body[data-layout="neon"] .card-inner .modules-page .mod-btn{ background:transparent !important; border:none !important; box-shadow:none !important; }
body[data-layout="neon"] .card-inner .modules-page .mod-icon{ background:rgba(255,255,255,.04) !important; border:1.5px solid color-mix(in srgb,var(--card-accent) 70%,#fff) !important; border-radius:20px !important;
  box-shadow:0 0 14px color-mix(in srgb,var(--card-accent) 40%,transparent), inset 0 0 10px color-mix(in srgb,var(--card-accent) 12%,transparent) !important; }
body[data-layout="neon"] .card-inner .modules-page .mod-icon, body[data-layout="neon"] .card-inner .modules-page .mod-icon i, body[data-layout="neon"] .card-inner .modules-page .mod-label{
  color:color-mix(in srgb,var(--card-accent) 55%,#fff) !important; text-shadow:0 0 8px color-mix(in srgb,var(--card-accent) 55%,transparent) !important; }
body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--ghost{ background:transparent !important; border:1.5px solid rgba(255,255,255,.55) !important; color:#eef3f8 !important; }
body[data-layout="neon"] .card-inner .card-footer .card-footer-logo i, body[data-layout="neon"] .card-inner .card-footer .f-accent{ color:color-mix(in srgb,var(--card-accent) 55%,#fff) !important; }
body[data-layout="neon"] .card-wrap .card-inner .h-badges-float, body[data-layout="neon"] .card-inner > .h-badges-float{ left:auto !important; right:12px !important; top:10px !important; transform:none !important; }
body[data-layout="neon"] .h-badges-float{ display:flex !important; justify-content:flex-end !important; }

/* v20 — NEON typography: Orbitron (name) + Space Grotesk (UI), self-hosted variable woff2 (OFL) */
@font-face{font-family:'Orbitron';src:url('/assets/fonts/orbitron-latin.woff2') format('woff2');font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Grotesk';src:url('/assets/fonts/space-grotesk-latin.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Grotesk';src:url('/assets/fonts/space-grotesk-latin-ext.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
body[data-layout="neon"] .card-inner *:not(i):not(svg):not([class*="fa-"]):not(.card-name){ font-family:'Space Grotesk','Inter',system-ui,sans-serif !important; }
body[data-layout="neon"] .card-inner .card-identity .card-name{ font-family:'Orbitron','Space Grotesk',sans-serif !important; font-weight:800 !important; letter-spacing:.02em !important;
  text-shadow:0 0 18px color-mix(in srgb,var(--card-accent) 55%,transparent), 0 0 2px rgba(255,255,255,.35) !important; }
body[data-layout="neon"] .card-inner .card-identity .card-title{ font-family:'Space Grotesk',sans-serif !important; font-weight:700 !important; letter-spacing:.04em !important; text-transform:uppercase !important; font-size:12px !important; }

/* v21 — NEON day/night: on this dark layout the accent derives from the theme's signature color (--card-bg), since the dark background can't show it */
/* (v21 accent override moved to .card-wrap in v22) */
/* NEON avatar +15% */
body[data-layout="neon"] .card-wrap .card-avatar-frame{ width:clamp(133px,min(44vw,23vh),180px) !important; height:clamp(133px,min(44vw,23vh),180px) !important; }
/* v22 — NEON two-tone (ex. Mandarine = orange + vert) : A = couleur signature du thème (--card-bg), B = accent du thème.
   Les deux sont normalisées en couleurs "tube" lumineuses (oklch) ; A = nom, glyphes/labels, CTA primaire, footer ; B = titre, chips héro, anneaux des boutons, CTA ghost, halo. */
body[data-layout="neon"]{ --neon-a: var(--card-bg,#ffb56b); --neon-b: var(--card-accent,#5ee1c9); }
@supports (color: oklch(from red calc(l + .1) c h)){
  body[data-layout="neon"]{ --neon-a: oklch(from var(--card-bg,#ffb56b) .82 max(c,.14) h); --neon-b: oklch(from var(--card-accent,#5ee1c9) .80 max(c,.13) h); }
}
body[data-layout="neon"]{ --neon-a-txt: color-mix(in srgb,var(--neon-a) 80%,#fff); --neon-b-txt: color-mix(in srgb,var(--neon-b) 80%,#fff); }
/* l'accent de la carte devient A (le panneau de partage garde l'accent d'origine sur son fond clair) */
body[data-layout="neon"] .card-wrap{ --card-accent: var(--neon-a); }
/* A : glyphes + labels (même couleur), nom */
body[data-layout="neon"] .card-inner .modules-page .mod-icon, body[data-layout="neon"] .card-inner .modules-page .mod-icon i, body[data-layout="neon"] .card-inner .modules-page .mod-label{
  color:var(--neon-a-txt) !important; text-shadow:0 0 8px color-mix(in srgb,var(--neon-a) 55%,transparent) !important; }
body[data-layout="neon"] .card-inner .card-identity .card-name{ color:#fff !important;
  text-shadow:0 0 16px color-mix(in srgb,var(--neon-a) 65%,transparent), 0 0 44px color-mix(in srgb,var(--neon-b) 40%,transparent), 0 0 2px rgba(255,255,255,.35) !important; }
body[data-layout="neon"] .card-inner .card-footer .card-footer-logo i, body[data-layout="neon"] .card-inner .card-footer .f-accent{ color:var(--neon-a-txt) !important; text-shadow:0 0 8px color-mix(in srgb,var(--neon-a) 45%,transparent) !important; }
body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--primary{ box-shadow:0 0 16px color-mix(in srgb,var(--neon-a) 40%,transparent) !important; }
/* B : titre, chips héro, anneaux, CTA ghost */
body[data-layout="neon"] .card-inner .card-identity .card-title{ color:var(--neon-b-txt) !important; text-shadow:0 0 10px color-mix(in srgb,var(--neon-b) 60%,transparent) !important; }
body[data-layout="neon"] .card-inner .card-identity .card-title::after, body[data-layout="neon"] .card-inner .card-identity .card-name::after, body[data-layout="neon"] .card-inner .card-identity hr{ background:var(--neon-b-txt) !important; border-color:var(--neon-b-txt) !important; }
body[data-layout="neon"] .h-badges-float .h-badge{ border-color:var(--neon-b-txt) !important; box-shadow:0 0 12px color-mix(in srgb,var(--neon-b) 50%,transparent) !important; }
body[data-layout="neon"] .h-badges-float .h-badge, body[data-layout="neon"] .h-badges-float .h-badge i, body[data-layout="neon"] .h-badges-float .h-badge *{ color:var(--neon-b-txt) !important; text-shadow:0 0 8px color-mix(in srgb,var(--neon-b) 55%,transparent) !important; }
body[data-layout="neon"] .card-inner .modules-page .mod-icon{ border-color:var(--neon-b-txt) !important;
  box-shadow:0 0 14px color-mix(in srgb,var(--neon-b) 45%,transparent), inset 0 0 10px color-mix(in srgb,var(--neon-b) 14%,transparent) !important; }
body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--ghost, body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--ghost i, body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--ghost .card-action-btn__label{
  color:var(--neon-b-txt) !important; text-shadow:0 0 8px color-mix(in srgb,var(--neon-b) 50%,transparent) !important; }
body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--ghost{ border-color:var(--neon-b-txt) !important; box-shadow:0 0 12px color-mix(in srgb,var(--neon-b) 35%,transparent) !important; }
body[data-layout="neon"] .card-inner .carousel-dots > *{ background:rgba(255,255,255,.28) !important; }
body[data-layout="neon"] .card-inner .carousel-dots > .active, body[data-layout="neon"] .card-inner .carousel-dots > .is-active, body[data-layout="neon"] .card-inner .carousel-dots > [aria-current="true"]{ background:var(--neon-b-txt) !important; box-shadow:0 0 8px var(--neon-b) !important; }
/* halo ambiant bicolore derrière le contenu (sous les enfants z-index:1 du layout) */
body[data-layout="neon"] .card-inner::after{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: radial-gradient(70% 30% at 8% 46%, color-mix(in srgb,var(--neon-a) 14%,transparent), transparent 70%), radial-gradient(70% 34% at 96% 80%, color-mix(in srgb,var(--neon-b) 16%,transparent), transparent 70%); }
/* v22b — NEON primary CTA: plein en couleur signature A (toujours lisible, quel que soit le thème) */
body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--primary{ background:var(--neon-a) !important; border:1.5px solid var(--neon-a-txt) !important; color:#0b0c12 !important; }
body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--primary i, body[data-layout="neon"] .card-inner .contact-actions .card-action-btn--primary .card-action-btn__label{ color:#0b0c12 !important; text-shadow:none !important; }
/* v23 — FORME DES BOUTONS (backoffice > Thème > Forme des boutons) : body[data-btnshape] pilote modules, chips héro et CTA — déclaré en dernier pour gagner sur les layouts */
body[data-btnshape="round"] .card-wrap .card-inner .modules-page .mod-icon{ border-radius:50% !important; }
body[data-btnshape="round"] .card-wrap .card-inner .h-badges-float .h-badge{ border-radius:999px !important; }
body[data-btnshape="round"] .card-wrap .card-inner .contact-actions .card-action-btn{ border-radius:999px !important; }
body[data-btnshape="rounded-square"] .card-wrap .card-inner .modules-page .mod-icon{ border-radius:clamp(14px,4.5vw,20px) !important; }
body[data-btnshape="rounded-square"] .card-wrap .card-inner .h-badges-float .h-badge{ border-radius:12px !important; }
body[data-btnshape="rounded-square"] .card-wrap .card-inner .contact-actions .card-action-btn{ border-radius:12px !important; }
/* v24 — CHIPS HÉRO lisibles sur N'IMPORTE QUEL fond (photo claire/sombre, accent clair/foncé).
   Défaut (hors neon/aurora/magazine) : disque quasi opaque sombre + glyphe BLANC + liseré teinté accent (éclairci pour rester visible) + ombre douce. */
body[data-layout]:not([data-layout="neon"]):not([data-layout="aurora"]):not([data-layout="magazine"]) .card-wrap .h-badges-float .h-badge{
  background:rgba(17,20,26,.90) !important;
  border:1.6px solid color-mix(in srgb,var(--card-accent) 50%,#fff) !important;
  box-shadow:0 2px 12px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.12) !important;
  -webkit-backdrop-filter:blur(6px) !important; backdrop-filter:blur(6px) !important; }
body[data-layout]:not([data-layout="neon"]):not([data-layout="aurora"]):not([data-layout="magazine"]) .card-wrap .h-badges-float .h-badge i,
body[data-layout]:not([data-layout="neon"]):not([data-layout="aurora"]):not([data-layout="magazine"]) .card-wrap .h-badges-float .h-badge *{
  color:#fff !important; text-shadow:0 1px 2px rgba(0,0,0,.45) !important; }
/* Magazine (layout papier clair) : disque blanc quasi opaque + glyphe encre foncé (indépendant de l'accent) + liseré accent foncé. */
body[data-layout="magazine"] .card-wrap .h-badges-float .h-badge{
  background:rgba(255,255,255,.95) !important;
  border:1.6px solid color-mix(in srgb,var(--card-accent) 55%,#1a1310) !important;
  box-shadow:0 2px 10px rgba(0,0,0,.20) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
body[data-layout="magazine"] .card-wrap .h-badges-float .h-badge i,
body[data-layout="magazine"] .card-wrap .h-badges-float .h-badge *{ color:#241a12 !important; text-shadow:none !important; }
