/* ==========================================================================
   Thèmes de la fiche publique (pro.php)

   Chargée après annuaire.css et fiche.css. Le <body> porte la classe
   theme-<clé> (includes/themes-fiche.php), et theme-clair pour les fonds
   clairs. Chaque thème est une direction artistique : typographie, couleurs,
   matière (verre, grain, écran cathodique…), décor (.theme-decor, trois <i>
   posés derrière la page) et disposition de l'en-tête. Le contenu ne bouge
   pas : la page reste lisible et utilisable partout, du téléphone au grand
   écran. Les animations s'arrêtent pour qui les a désactivées.

   Le thème par défaut (theme-carnetwash) ne redéfinit rien.
   ========================================================================== */

/* Dans l'aperçu de l'espace pro (un cadre), pas de bouton ‹ : il faisait
   reculer l'espace pro lui-même (fiche-publique.js pose la classe). */
.en-apercu .an-retour{ display:none !important; }

.theme-decor{ display:none; }

/* ---- Socle commun -------------------------------------------------------------
   Valeurs par défaut sans poids (:where) : chaque thème les redéfinit. */
body:where([class*="theme-"]:not(.theme-carnetwash)){
  --police-titre:'Archivo', ui-sans-serif, system-ui, sans-serif;
  --police-texte:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --police-etiquette:var(--police-texte);
  --accent-encre:#fff;
  --accent-survol:color-mix(in srgb, var(--accent) 86%, #fff);
  --btn-fond:var(--accent);
  --survol-doux:color-mix(in srgb, var(--encre) 9%, var(--surface-3));
}
body[class*="theme-"]:not(.theme-carnetwash){ font-family:var(--police-texte); }
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(h1, h2, h3, .fp-prix, .avis-note > b, .fiche-initiale, .an-mini-nom, .an-mini .an-initiale){ font-family:var(--police-titre); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .theme-decor{ position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
body:where([class*="theme-"]:not(.theme-carnetwash)) .theme-decor i{ position:absolute; display:block; }

/* Les couleurs écrites en dur pour un fond sombre suivent le thème. Sans
   poids superflu (:where) : les règles de chaque thème, plus bas, passent devant. */
body:where([class*="theme-"]:not(.theme-carnetwash)) .an-entete{ background:color-mix(in srgb, var(--fond) 80%, transparent); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .an-btn{ background:var(--btn-fond); color:var(--accent-encre); font-family:var(--police-texte); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .an-btn:hover{ background:var(--accent-survol); }
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(.an-btn-sec, .an-btn-contour){ background:var(--surface-3); color:var(--encre); }
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(.an-btn-sec, .an-btn-contour):hover,
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(.fiche-partager, .fiche-reseau-icone):is(:hover, :focus-visible){ background:var(--survol-doux); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .fiche-reseau:hover{ background:color-mix(in srgb, var(--encre) 5%, transparent); }
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(.fiche-couverture, .fiche-galerie button, .fiche-carte){ background:var(--surface-2); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .fiche-couverture::after{ background:linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--surface) 90%, transparent)); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .fiche-initiale{ color:var(--accent-2); background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--accent) 32%, transparent), var(--surface-2) 70%); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .an-mini-media{ background:radial-gradient(circle at 30% 20%, var(--accent-doux), var(--surface-2) 70%); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .an-mini .an-initiale{ color:color-mix(in srgb, var(--encre) 25%, transparent); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .an-etoiles::before{ color:color-mix(in srgb, var(--encre) 16%, transparent); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .avis-reponse{ background:var(--accent-doux); }
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(.an-compte-avatar, .an-pastille){ background:var(--accent); color:var(--accent-encre); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .an-logo-annuaire{ color:var(--accent-2); border-color:color-mix(in srgb, var(--accent) 40%, transparent); }
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(.fiche-form input, .fiche-form textarea, .fiche-form select):focus{
  border-color:color-mix(in srgb, var(--accent) 70%, transparent); box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent);
}
body:where([class*="theme-"]:not(.theme-carnetwash)) .cw-compte{
  color:var(--encre); background:color-mix(in srgb, var(--surface) 80%, transparent);
  border-color:color-mix(in srgb, var(--accent) 45%, transparent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);
}
body:where([class*="theme-"]:not(.theme-carnetwash)) .cw-compte:hover{ color:var(--encre); border-color:var(--accent); }
body:where([class*="theme-"]:not(.theme-carnetwash)) :is(.cw-compte-libelle, .cw-compte-fleche){ color:var(--encre-3); }
body:where([class*="theme-"]:not(.theme-carnetwash)) .fiche-apercu-bandeau{ background:color-mix(in srgb, var(--accent) 9%, var(--surface-2)); border-color:color-mix(in srgb, var(--accent) 50%, transparent); color:var(--encre); }
body:where([class*="theme-"]:not(.theme-carnetwash)) ::selection{ background:color-mix(in srgb, var(--accent) 35%, transparent); }
@media (max-width:760px){
  body:where([class*="theme-"]:not(.theme-carnetwash)) .fiche-barre-mobile{ background:color-mix(in srgb, var(--fond) 90%, transparent); }
}

/* Fonds clairs : ombres douces au lieu du noir, verts lisibles. */
body.theme-clair{ color-scheme:light; }
body.theme-clair .fiche-logo{ box-shadow:0 14px 30px -18px rgba(16,24,40,.35); }
body.theme-clair .an-ouv.est-ouvert{ color:#047857; }
body.theme-clair .an-ouv.est-ouvert i{ box-shadow:0 0 0 3px rgba(4,120,87,.14); }
body.theme-clair .fiche-carte .leaflet-control-attribution{ background:rgba(255,255,255,.8) !important; }
body.theme-clair .an-logo-point{ box-shadow:none; }

/* Le grain de la pellicule, pour les thèmes « matière » (Studio, Maison). */
:is(.theme-studio, .theme-maison)::after{
  content:""; position:fixed; inset:-50%; z-index:3000; pointer-events:none; opacity:.06;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23g)'/></svg>");
}

/* =============================================================================
   STUDIO — gratuit · éditorial, papier, encre noire.
   Pas de cartes : des filets fins, une grande typographie à empattements,
   beaucoup de blanc. L'élégance d'un magazine d'architecture.
   ============================================================================= */
body.theme-studio{
  --fond:#F7F5F0; --fond-2:#EFECE4;
  --surface:#F7F5F0; --surface-2:#EDEAE2; --surface-3:#E6E2D8;
  --encre:#121212; --encre-2:#4B4A46; --encre-3:#8A877F;
  --accent:#121212; --accent-2:#121212; --accent-doux:rgba(18,18,18,.06);
  --accent-encre:#F7F5F0; --accent-survol:#333;
  --vert:#1F7A4D; --rouge:#B3261E; --or:#C88A12;
  --trait:rgba(18,18,18,.12); --trait-2:rgba(18,18,18,.2); --trait-3:rgba(18,18,18,.35);
  --r1:0px; --r2:0px; --r3:0px;
  --ombre:none; --ombre-haute:none;
  --police-titre:'Instrument Serif', 'Times New Roman', serif;
}
.theme-studio :is(.fiche-tete, .fiche-bloc){ background:transparent; border:0; box-shadow:none; border-radius:0; }
.theme-studio .fiche-tete{ border-bottom:1px solid var(--trait-2); }
.theme-studio .fiche-bloc{ border-top:1px solid var(--trait-2); padding-left:0; padding-right:0; }
.theme-studio .fiche-cote .fiche-bloc{ padding-left:22px; border-left:1px solid var(--trait); border-top:0; }
.theme-studio .fiche-identite{ padding-left:0; padding-right:0; }
.theme-studio .fiche-actions{ padding-left:0; padding-right:0; }
.theme-studio .fiche-tete h1{ font-weight:400; font-size:clamp(2.8rem, 7.5vw, 5.6rem); letter-spacing:-.03em; line-height:.92; }
.theme-studio .fiche-situe{ font-size:1.1rem; font-style:italic; font-family:var(--police-titre); color:var(--encre-2); }
.theme-studio .fiche-bloc h2{ font-weight:400; font-size:2rem; letter-spacing:-.02em; }
.theme-studio .fiche-logo{ border-radius:50%; background:#fff; box-shadow:none; }
.theme-studio .an-btn{ border-radius:999px; box-shadow:none; font-weight:500; }
.theme-studio :is(.an-btn-sec, .an-btn-contour){ background:transparent; border-color:var(--trait-3); }
.theme-studio .fiche-actions-outils{ background:transparent; border-color:var(--trait-2); }
.theme-studio .fp-prix{ font-weight:400; font-size:1.5rem; }
.theme-studio .avis-synthese{ background:transparent; border:1px solid var(--trait-2); }

/* =============================================================================
   CARBONE — gratuit · interface d'ingénieur, noir profond, grille, citron.
   Chiffres et libellés en police à chasse fixe, sections numérotées,
   bordures de 1 px : la précision d'un logiciel de 2026.
   ============================================================================= */
body.theme-carbone{
  --fond:#08090A; --fond-2:#050506;
  --surface:#0D0E10; --surface-2:#131417; --surface-3:#1A1B1F;
  --encre:#EDEDED; --encre-2:#A1A1A1; --encre-3:#6B6B6B;
  --accent:#D4FF3A; --accent-2:#D4FF3A; --accent-doux:rgba(212,255,58,.08);
  --accent-encre:#08090A; --accent-survol:#E4FF7A;
  --trait:rgba(255,255,255,.08); --trait-2:rgba(255,255,255,.13); --trait-3:rgba(255,255,255,.22);
  --r1:6px; --r2:8px; --r3:12px;
  --ombre:none;
  --police-titre:'Geist', 'Inter', sans-serif; --police-texte:'Geist', 'Inter', sans-serif;
  --police-etiquette:'Geist Mono', ui-monospace, monospace;
}
.theme-carbone .theme-decor{
  display:block;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 48px 48px,
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 48px 48px;
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
}
.theme-carbone .theme-decor i:first-child{ left:50%; top:-280px; width:900px; height:520px; translate:-50% 0; border-radius:50%; background:radial-gradient(closest-side, rgba(212,255,58,.12), transparent); }
.theme-carbone :is(.fiche-tete, .fiche-bloc){ box-shadow:none; }
.theme-carbone .fiche-tete h1{ font-weight:600; letter-spacing:-.045em; font-size:clamp(2rem, 4.8vw, 3.2rem); }
.theme-carbone .fiche-principal{ counter-reset:section; }
.theme-carbone .fiche-principal .fiche-bloc h2::before{
  counter-increment:section; content:counter(section, decimal-leading-zero) " /";
  display:block; margin-bottom:8px; font:500 .72rem/1 var(--police-etiquette); letter-spacing:.08em; color:var(--accent);
}
.theme-carbone .fiche-bloc h2{ font-weight:600; letter-spacing:-.03em; }
.theme-carbone :is(.fiche-situe, .fp-duree, .fiche-horaires td, .fp-prix small, .fiche-resume-prix, .an-note){ font-family:var(--police-etiquette); }
.theme-carbone .fp-prix{ font-family:var(--police-etiquette); font-weight:500; }
.theme-carbone .an-btn{ border-radius:8px; box-shadow:none; font-weight:600; }
.theme-carbone :is(.an-btn-sec, .an-btn-contour){ background:var(--surface-2); border-color:var(--trait-2); }
.theme-carbone .fiche-actions-outils{ border-radius:8px; }
.theme-carbone .fiche-logo{ border-radius:10px; }

/* =============================================================================
   AURORA — Pro · aurore boréale, verre dépoli, reflets.
   Trois nappes de lumière dérivent lentement derrière des cartes de verre
   aux bords irisés. L'esthétique des meilleurs produits tech actuels.
   ============================================================================= */
body.theme-aurora{
  --fond:#05060F; --fond-2:#03040A;
  --surface:rgba(14,17,34,.55); --surface-2:rgba(22,26,50,.7); --surface-3:rgba(34,39,72,.75);
  --encre:#F4F6FF; --encre-2:#AEB5D6; --encre-3:#6F77A0;
  --accent:#8B7CFF; --accent-2:#9FE7FF; --accent-doux:rgba(139,124,255,.14);
  --accent-encre:#05060F;
  --trait:rgba(255,255,255,.08); --trait-2:rgba(255,255,255,.14); --trait-3:rgba(255,255,255,.24);
  --r1:12px; --r2:18px; --r3:24px;
  --ombre:0 30px 80px -40px rgba(0,0,0,.9);
  --police-titre:'Geist', 'Inter', sans-serif; --police-texte:'Geist', 'Inter', sans-serif;
}
.theme-aurora .theme-decor{ display:block; }
.theme-aurora .theme-decor i{ border-radius:50%; filter:blur(90px); opacity:.55; will-change:transform; }
.theme-aurora .theme-decor i:nth-child(1){ width:60vw; height:60vw; left:-18vw; top:-22vw; background:#5B3DF5; animation:aurora-a 26s ease-in-out infinite alternate; }
.theme-aurora .theme-decor i:nth-child(2){ width:50vw; height:50vw; right:-14vw; top:5vh; background:#00C2FF; opacity:.38; animation:aurora-b 32s ease-in-out infinite alternate; }
.theme-aurora .theme-decor i:nth-child(3){ width:55vw; height:40vw; left:20vw; bottom:-25vw; background:#1DE9B6; opacity:.22; animation:aurora-a 38s ease-in-out infinite alternate-reverse; }
@keyframes aurora-a{ to{ transform:translate(12vw, 8vh) scale(1.15); } }
@keyframes aurora-b{ to{ transform:translate(-10vw, 14vh) scale(.9); } }
.theme-aurora :is(.fiche-tete, .fiche-bloc){
  -webkit-backdrop-filter:blur(24px) saturate(1.5); backdrop-filter:blur(24px) saturate(1.5);
  border:1px solid transparent;
  background:linear-gradient(rgba(12,14,30,.62), rgba(12,14,30,.62)) padding-box,
             linear-gradient(140deg, rgba(255,255,255,.28), rgba(255,255,255,.04) 40%, rgba(159,231,255,.22)) border-box;
}
.theme-aurora .fiche-tete h1{
  font-weight:600; letter-spacing:-.045em; font-size:clamp(2.1rem, 5vw, 3.4rem);
  background:linear-gradient(100deg, #FFFFFF 20%, #C9C2FF 55%, #9FE7FF 90%); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.theme-aurora .fiche-bloc h2{ font-weight:600; letter-spacing:-.03em; }
.theme-aurora .an-btn{ background:#fff; color:#05060F; box-shadow:0 0 0 1px rgba(255,255,255,.4), 0 14px 40px -12px rgba(139,124,255,.7); }
.theme-aurora .an-btn:hover{ background:#E9E6FF; }
.theme-aurora :is(.an-btn-sec, .an-btn-contour){ background:rgba(255,255,255,.06); color:var(--encre); border-color:var(--trait-2); box-shadow:none; }
.theme-aurora .fiche-actions-outils{ background:rgba(255,255,255,.05); }
.theme-aurora .fiche-logo{ border-radius:18px; background:rgba(255,255,255,.08); }

/* =============================================================================
   SYNTHWAVE — Pro · rétro-futur 1984. Coucher de soleil rayé, grille néon
   qui file à l'horizon, titres chromés : la pochette d'album.
   ============================================================================= */
body.theme-synthwave{
  --fond:#12022B; --fond-2:#0A0118;
  --surface:rgba(26,6,56,.78); --surface-2:rgba(38,10,78,.85); --surface-3:#351066;
  --encre:#FFF1FB; --encre-2:#E0B7EA; --encre-3:#A07AB8;
  --accent:#FF2E97; --accent-2:#2DE2E6; --accent-doux:rgba(255,46,151,.14);
  --accent-survol:#FF5BAE; --or:#FFD319;
  --trait:rgba(255,46,151,.18); --trait-2:rgba(45,226,230,.28); --trait-3:rgba(45,226,230,.45);
  --r1:4px; --r2:6px; --r3:10px;
  --ombre:0 0 0 1px rgba(255,46,151,.25), 0 0 40px -12px rgba(255,46,151,.45);
  --police-titre:'Audiowide', sans-serif; --police-texte:'Outfit', 'Inter', sans-serif;
}
body.theme-synthwave{ background:linear-gradient(180deg, #0A0118 0%, #1D0442 45%, #4A0B5E 75%, #12022B 100%) fixed; }
.theme-synthwave .theme-decor{ display:block; }
/* Le soleil : dégradé jaune-rose, découpé de bandes horizontales. */
.theme-synthwave .theme-decor i:nth-child(1){
  width:min(520px, 90vw); aspect-ratio:1; left:50%; bottom:22vh; translate:-50% 0; border-radius:50%;
  background:linear-gradient(180deg, #FFD319 0%, #FF901F 35%, #FF2E97 70%, #8C1EFF 100%);
  -webkit-mask-image:linear-gradient(180deg, #000 48%, transparent 48% 52%, #000 52% 60%, transparent 60% 64%, #000 64% 71%, transparent 71% 76%, #000 76% 82%, transparent 82% 88%, #000 88%);
  mask-image:linear-gradient(180deg, #000 48%, transparent 48% 52%, #000 52% 60%, transparent 60% 64%, #000 64% 71%, transparent 71% 76%, #000 76% 82%, transparent 82% 88%, #000 88%);
  filter:drop-shadow(0 0 60px rgba(255,46,151,.55)); opacity:.9;
}
/* La grille : un sol en perspective qui avance vers nous. */
.theme-synthwave .theme-decor i:nth-child(2){
  left:-50%; right:-50%; bottom:-10vh; height:42vh; transform-origin:50% 0; transform:perspective(300px) rotateX(62deg);
  background:
    linear-gradient(rgba(255,46,151,.9) 2px, transparent 2px) 0 0 / 100% 48px,
    linear-gradient(90deg, rgba(45,226,230,.75) 2px, transparent 2px) 0 0 / 64px 100%;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 45%); mask-image:linear-gradient(180deg, transparent, #000 45%);
  animation:synth-sol 1.6s linear infinite;
}
.theme-synthwave .theme-decor i:nth-child(3){ left:0; right:0; bottom:32vh; height:2px; background:linear-gradient(90deg, transparent, #FF2E97, #2DE2E6, #FF2E97, transparent); box-shadow:0 0 24px #FF2E97; }
@keyframes synth-sol{ to{ background-position:0 48px, 0 0; } }
.theme-synthwave :is(.fiche-tete, .fiche-bloc){ -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.theme-synthwave .fiche-identite{ grid-template-columns:1fr; justify-items:center; text-align:center; }
.theme-synthwave .fiche-tete h1{ justify-content:center; }
.theme-synthwave .fiche-resume, .theme-synthwave .fiche-actions{ justify-content:center; }
.theme-synthwave .fiche-actions-outils{ margin-left:0; }
.theme-synthwave .fiche-tete.avec-photo .fiche-titres{ padding-top:0; }
.theme-synthwave .fiche-tete h1{
  font-weight:400; text-transform:uppercase; letter-spacing:.04em; font-size:clamp(1.9rem, 5.2vw, 3.4rem);
  background:linear-gradient(180deg, #FFFFFF 0%, #E0E9FF 45%, #7B6BFF 50%, #FF2E97 100%); -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 0 18px rgba(255,46,151,.55));
}
.theme-synthwave .fiche-situe{ color:var(--accent-2); text-shadow:0 0 12px rgba(45,226,230,.6); }
.theme-synthwave .fiche-bloc h2{ font-weight:400; text-transform:uppercase; letter-spacing:.06em; color:var(--accent-2); text-shadow:0 0 14px rgba(45,226,230,.55); }
.theme-synthwave .an-btn{
  border-radius:4px; text-transform:uppercase; letter-spacing:.1em; font-weight:600; font-size:.8rem;
  background:linear-gradient(90deg, #FF2E97, #B026FF); box-shadow:0 0 22px rgba(255,46,151,.65), inset 0 0 0 1px rgba(255,255,255,.3);
}
.theme-synthwave .an-btn:hover{ background:linear-gradient(90deg, #FF5BAE, #C35CFF); }
.theme-synthwave :is(.an-btn-sec, .an-btn-contour){ background:transparent; color:var(--accent-2); border-color:var(--accent-2); box-shadow:0 0 14px -2px rgba(45,226,230,.5); }
.theme-synthwave .fp-prix{ color:#FFD319; text-shadow:0 0 12px rgba(255,211,25,.5); }
.theme-synthwave .fiche-logo{ border-radius:50%; border-color:var(--accent); box-shadow:0 0 24px rgba(255,46,151,.6); }

/* =============================================================================
   HALLOWEEN — Pro · la nuit des citrouilles. Pleine lune, vol de chauves-
   souris, brume qui rampe au sol, toile d'araignée dans l'angle, titre qui
   vacille à la lueur d'une bougie. Tout bouge, rien ne gêne la lecture.
   ============================================================================= */
body.theme-halloween{
  --fond:#0D0714; --fond-2:#07030C;
  --surface:rgba(22,11,32,.82); --surface-2:rgba(32,16,46,.9); --surface-3:#2C1740;
  --encre:#FFE9D1; --encre-2:#CDB3D9; --encre-3:#8E6FA3;
  --accent:#FF7518; --accent-2:#FFA94D; --accent-doux:rgba(255,117,24,.12);
  --accent-encre:#1A0B02; --accent-survol:#FF8C3A;
  --vert:#9BE34B; --rouge:#FF4D6D; --or:#FFB547;
  --trait:rgba(255,169,77,.14); --trait-2:rgba(255,169,77,.24); --trait-3:rgba(255,169,77,.4);
  --r1:10px; --r2:14px; --r3:18px;
  --ombre:0 0 0 1px rgba(255,117,24,.12), 0 24px 60px -30px rgba(0,0,0,.95), inset 0 0 60px -30px rgba(255,117,24,.25);
  --police-titre:'Creepster', 'Outfit', cursive; --police-texte:'Outfit', 'Inter', sans-serif;
}
body.theme-halloween{ background:radial-gradient(1200px 700px at 82% -10%, #3A1F4D 0%, #1A0D26 45%, #0D0714 75%) fixed, #0D0714; }
/* Vignettage : les bords de la page s'enfoncent dans la nuit. */
body.theme-halloween::after{ content:""; position:fixed; inset:0; z-index:2900; pointer-events:none; background:radial-gradient(ellipse at 50% 40%, transparent 55%, rgba(5,2,8,.65)); }
.theme-halloween .theme-decor{ display:block; }
/* La pleine lune, ses cratères, son halo qui respire. */
.theme-halloween .theme-decor i:nth-child(1){
  width:clamp(120px, 16vw, 210px); aspect-ratio:1; right:7vw; top:calc(var(--entete) + 4vh); border-radius:50%;
  background:
    radial-gradient(circle at 34% 38%, rgba(190,160,110,.35) 0 9%, transparent 10%),
    radial-gradient(circle at 62% 62%, rgba(190,160,110,.3) 0 12%, transparent 13%),
    radial-gradient(circle at 66% 30%, rgba(190,160,110,.25) 0 6%, transparent 7%),
    radial-gradient(circle at 40% 40%, #FFF8E1, #F6DDA0 60%, #E6C173);
  box-shadow:0 0 60px 10px rgba(255,214,140,.35), 0 0 160px 40px rgba(255,160,70,.18);
  animation:hw-lune 6s ease-in-out infinite alternate;
}
@keyframes hw-lune{ to{ box-shadow:0 0 80px 16px rgba(255,214,140,.45), 0 0 200px 60px rgba(255,160,70,.24); } }
/* Un vol de trois chauves-souris : chacune bat des ailes à son rythme, le vol traverse la nuit. */
.theme-halloween .theme-decor i:nth-child(2),
.theme-halloween .theme-decor i:nth-child(2)::before,
.theme-halloween .theme-decor i:nth-child(2)::after{
  width:64px; height:32px; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32'><path fill='%23050208' d='M32 9c-1.6-3.2-3.6-5-5.6-5.2.8 2.6.2 4.6-1.6 5.8-3-2.6-7.4-3.6-12.4-2.6 3 1.8 4.2 4.6 3.4 7.6-3.4-1.6-7.6-1.4-11.8.8 4.2.8 6.8 3.6 7.6 7.6 4-2.8 9-3.6 13.4-1.8 1.8-2.6 4.4-3.8 7-3.8s5.2 1.2 7 3.8c4.4-1.8 9.4-1 13.4 1.8.8-4 3.4-6.8 7.6-7.6-4.2-2.2-8.4-2.4-11.8-.8-.8-3 .4-5.8 3.4-7.6-5-1-9.4 0-12.4 2.6-1.8-1.2-2.4-3.2-1.6-5.8C35.6 4 33.6 5.8 32 9z'/></svg>") center / contain no-repeat;
  filter:drop-shadow(0 0 6px rgba(255,140,60,.35));
}
.theme-halloween .theme-decor i:nth-child(2){ left:0; top:18vh; animation:hw-vol 19s linear infinite, hw-ailes .22s ease-in-out infinite alternate; }
.theme-halloween .theme-decor i:nth-child(2)::before,
.theme-halloween .theme-decor i:nth-child(2)::after{ content:""; position:absolute; }
.theme-halloween .theme-decor i:nth-child(2)::before{ left:-70px; top:34px; width:44px; height:22px; animation:hw-ailes .18s ease-in-out infinite alternate; }
.theme-halloween .theme-decor i:nth-child(2)::after{ left:-140px; top:-18px; width:36px; height:18px; animation:hw-ailes .26s ease-in-out infinite alternate; }
@keyframes hw-vol{
  0%{ translate:-20vw 0; } 25%{ translate:25vw -6vh; } 50%{ translate:60vw 4vh; } 75%{ translate:95vw -8vh; } 100%{ translate:130vw 0; }
}
@keyframes hw-ailes{ from{ scale:1 1; } to{ scale:1 .35; } }
/* La brume qui rampe au ras du sol, en deux nappes qui glissent l'une sur l'autre. */
.theme-halloween .theme-decor i:nth-child(3){
  left:0; bottom:-6vh; width:200%; height:38vh;
  background:
    radial-gradient(ellipse 18% 55% at 10% 70%, rgba(214,196,230,.2), transparent 70%),
    radial-gradient(ellipse 22% 50% at 32% 80%, rgba(214,196,230,.16), transparent 70%),
    radial-gradient(ellipse 20% 60% at 55% 72%, rgba(214,196,230,.2), transparent 70%),
    radial-gradient(ellipse 24% 50% at 78% 82%, rgba(214,196,230,.15), transparent 70%);
  filter:blur(8px); animation:hw-brume 40s linear infinite;
}
.theme-halloween .theme-decor i:nth-child(3)::after{
  content:""; position:absolute; inset:0; background:inherit; translate:12% 8%; opacity:.8; animation:hw-brume 26s linear infinite reverse;
}
@keyframes hw-brume{ to{ transform:translateX(-50%); } }
/* Les cartes : de la nuit violette, un bord orangé, une lueur de bougie à l'intérieur. */
.theme-halloween :is(.fiche-tete, .fiche-bloc){ -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-color:var(--trait-2); }

/* La scène dessinée en temps réel (fiche-halloween.js) : cinq plans en parallaxe.
   Tant qu'elle n'est pas là (script bloqué, ancien navigateur), le décor CSS
   ci-dessus tient lieu de nuit. */
.hw-scene{ position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.hw-plan{ position:absolute; left:-40px; top:-40px; will-change:transform; }
.hw-loin{ opacity:.9; }
.hw-eclair{ position:absolute; inset:0; background:radial-gradient(ellipse at 30% 10%, #EDE6FF, rgba(200,190,255,.4) 40%, transparent 75%); opacity:0; mix-blend-mode:screen; }
body.hw-actif .theme-decor{ display:none; }
body.hw-actif{ background:#07030D; }
/* Plus de verre, moins d'aplat : on voit la nuit à travers les cartes. */
body.hw-actif.theme-halloween{ --surface:rgba(20,10,30,.66); --surface-2:rgba(30,15,44,.8); }
/* Les cartes en relief : elles s'inclinent sous le curseur, une lueur de bougie suit la main. */
.theme-halloween .hw-relief{
  transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease;
  background-image:radial-gradient(520px circle at var(--mx, 50%) var(--my, -30%), rgba(255,140,60,.13), transparent 45%);
}
.theme-halloween .hw-relief:hover{ box-shadow:0 0 0 1px rgba(255,140,60,.25), 0 40px 80px -40px rgba(0,0,0,1), 0 0 60px -30px rgba(255,117,24,.55); }
/* La toile d'araignée, tendue dans l'angle de l'en-tête. */
.theme-halloween .fiche-tete::after{
  content:""; position:absolute; right:0; top:0; width:clamp(90px, 14vw, 150px); aspect-ratio:1; z-index:2; pointer-events:none;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='none' stroke='%23E9D8FF' stroke-opacity='.35' stroke-width='.8'><path d='M120 0L0 120M120 0L40 120M120 0L0 80M120 0L80 120M120 0L0 30'/><path d='M104 0Q108 12 120 16M86 0Q92 22 120 34M66 0Q76 34 120 54M44 0Q58 50 120 76M20 0Q38 66 120 100'/></svg>") top right / contain no-repeat;
}
.theme-halloween .fiche-tete h1{
  font-weight:400; letter-spacing:.03em; font-size:clamp(2.4rem, 6.4vw, 4.4rem); line-height:1;
  color:#FF8A2A; text-shadow:0 0 12px rgba(255,117,24,.75), 0 0 34px rgba(255,80,0,.45), 0 3px 0 #5A1E00;
  animation:hw-bougie 3.2s infinite;
}
@keyframes hw-bougie{
  0%, 100%{ opacity:1; } 8%{ opacity:.82; } 9%{ opacity:1; } 42%{ opacity:.93; } 44%{ opacity:1; } 71%{ opacity:.78; } 72%{ opacity:.96; } 74%{ opacity:1; }
}
.theme-halloween .fiche-situe{ color:var(--encre-2); }
.theme-halloween .fiche-bloc h2{ font-weight:400; letter-spacing:.04em; font-size:1.6rem; color:var(--accent-2); text-shadow:0 0 12px rgba(255,117,24,.45); display:flex; align-items:center; gap:10px; }
.theme-halloween .fiche-bloc h2::before{ content:""; width:26px; height:26px; flex:0 0 auto; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path fill='%234E8A2E' d='M15 4c1-2 3-3 5-3-1 1-2 3-2 5h-3z'/><ellipse cx='10' cy='18' rx='8' ry='10' fill='%23E8620C'/><ellipse cx='22' cy='18' rx='8' ry='10' fill='%23E8620C'/><ellipse cx='16' cy='18' rx='8' ry='11' fill='%23FF8A2A'/><path fill='%23FFE08A' d='M10 15l3 2-3 1zM22 15l-3 2 3 1zM10 22c2 2 4 2 6 1 2 1 4 1 6-1-1 3-3 4-6 4s-5-1-6-4z'/></svg>") center / contain no-repeat; filter:drop-shadow(0 0 6px rgba(255,117,24,.6)); animation:hw-citrouille 2.8s ease-in-out infinite; }
@keyframes hw-citrouille{ 50%{ rotate:-8deg; scale:1.08; } }
.theme-halloween .fiche-bloc-tete h2{ display:flex; }
.theme-halloween .an-btn{
  background:linear-gradient(180deg, #FF9A3C, #E8520C); color:#1A0B02; font-weight:700;
  box-shadow:0 0 0 1px rgba(255,190,120,.4) inset, 0 10px 30px -10px rgba(255,100,20,.85);
}
.theme-halloween .an-btn:hover{ background:linear-gradient(180deg, #FFB060, #FF6A1A); box-shadow:0 0 0 1px rgba(255,190,120,.5) inset, 0 0 34px -6px rgba(255,120,30,.95); }
.theme-halloween :is(.an-btn-sec, .an-btn-contour){ background:rgba(60,28,86,.55); color:var(--encre); border-color:rgba(190,140,230,.35); box-shadow:none; }
.theme-halloween :is(.an-btn-sec, .an-btn-contour):hover{ background:rgba(90,44,126,.65); }
.theme-halloween .fiche-actions-outils{ background:rgba(60,28,86,.45); border-color:rgba(190,140,230,.3); }
.theme-halloween .fiche-logo{ border-radius:50%; border-color:rgba(255,117,24,.55); box-shadow:0 0 0 4px rgba(255,117,24,.12), 0 0 30px -4px rgba(255,117,24,.55); }
.theme-halloween .fp-prix{ font-family:var(--police-texte); font-weight:700; color:#9BE34B; text-shadow:0 0 10px rgba(155,227,75,.4); }
.theme-halloween .fiche-prestations li{ border-bottom-color:rgba(190,140,230,.18); }

/* =============================================================================
   MAISON — Pro · la grande maison. Noir d'encre et champagne, Bodoni en
   très grand, le nom posé sur la photo, sections en chiffres romains.
   ============================================================================= */
body.theme-maison{
  --fond:#0B0A08; --fond-2:#060504;
  --surface:#11100D; --surface-2:#181612; --surface-3:#221F19;
  --encre:#F3EEE3; --encre-2:#BDB4A2; --encre-3:#80796B;
  --accent:#D8C49A; --accent-2:#E9DAB6; --accent-doux:rgba(216,196,154,.1);
  --accent-encre:#0B0A08; --accent-survol:#E9DAB6; --or:#E9DAB6;
  --trait:rgba(216,196,154,.14); --trait-2:rgba(216,196,154,.26); --trait-3:rgba(216,196,154,.42);
  --r1:0px; --r2:0px; --r3:0px;
  --ombre:none;
  --police-titre:'Bodoni Moda', 'Didot', 'Times New Roman', serif;
}
.theme-maison :is(.fiche-tete, .fiche-bloc){ background:transparent; border:0; border-top:1px solid var(--trait-2); box-shadow:none; }
.theme-maison .fiche-tete{ border:0; }
.theme-maison .fiche-couverture{ aspect-ratio:16/8; }
.theme-maison .fiche-couverture::after{ background:linear-gradient(180deg, rgba(11,10,8,.1) 20%, rgba(11,10,8,.92) 96%); }
.theme-maison .fiche-identite{ grid-template-columns:1fr; justify-items:center; text-align:center; gap:16px; }
.theme-maison .fiche-tete.avec-photo .fiche-identite{ margin-top:-190px; }
.theme-maison .fiche-tete.avec-photo .fiche-titres{ padding-top:0; }
.theme-maison .fiche-tete h1{ justify-content:center; font-weight:500; font-style:italic; font-size:clamp(2.6rem, 7vw, 5.4rem); letter-spacing:-.02em; line-height:.95; }
.theme-maison .fiche-situe{ text-transform:uppercase; letter-spacing:.3em; font-size:.7rem; color:var(--accent); }
.theme-maison .fiche-resume, .theme-maison .fiche-actions{ justify-content:center; }
.theme-maison .fiche-actions-outils{ margin-left:0; background:transparent; border-color:var(--trait-2); border-radius:0; }
.theme-maison .fiche-principal{ counter-reset:chapitre; }
.theme-maison .fiche-principal .fiche-bloc h2::before{ counter-increment:chapitre; content:counter(chapitre, upper-roman) "."; margin-right:.4em; color:var(--accent); font-style:italic; }
.theme-maison .fiche-bloc h2{ font-weight:400; font-size:1.9rem; letter-spacing:-.01em; }
.theme-maison .fiche-bloc{ padding-left:0; padding-right:0; }
.theme-maison .fiche-cote .fiche-bloc{ padding:24px; border:1px solid var(--trait-2); }
.theme-maison .an-btn{ border-radius:0; text-transform:uppercase; letter-spacing:.22em; font-size:.7rem; font-weight:500; box-shadow:none; min-height:50px; padding:0 30px; }
.theme-maison :is(.an-btn-sec, .an-btn-contour){ background:transparent; border-color:var(--trait-3); }
.theme-maison .fiche-logo{ border-radius:50%; border-color:var(--trait-3); background:var(--fond); box-shadow:none; }
.theme-maison .fp-prix{ font-weight:400; font-style:italic; font-size:1.5rem; color:var(--accent-2); }
.theme-maison .fiche-prestations li{ border-bottom-style:solid; }

/* =============================================================================
   PADDOCK — Pro · livrée de course des années 70. Crème, bleu poudre et
   orange, bandes de livrée, le logo dans un rond de numéro de course.
   ============================================================================= */
body.theme-paddock{
  --fond:#F2EAD9; --fond-2:#E9DFCA;
  --surface:#FBF6EA; --surface-2:#F1E8D4; --surface-3:#E6DBC2;
  --encre:#16233A; --encre-2:#45526A; --encre-3:#7C8596;
  --accent:#F26B1D; --accent-2:#D95A10; --accent-doux:rgba(242,107,29,.12);
  --accent-survol:#FF7F32; --bleu-livree:#8CC4E8;
  --vert:#2F7D55; --rouge:#C0392B; --or:#E7A019;
  --trait:rgba(22,35,58,.12); --trait-2:rgba(22,35,58,.2); --trait-3:rgba(22,35,58,.35);
  --r1:6px; --r2:8px; --r3:10px;
  --ombre:0 2px 0 rgba(22,35,58,.08), 0 18px 40px -28px rgba(22,35,58,.45);
  --police-titre:'Barlow Condensed', 'Arial Narrow', sans-serif;
}
.theme-paddock .fiche-tete{ border:2px solid var(--encre); }
/* La livrée : large bande bleue, fine bande orange au centre. */
.theme-paddock .fiche-tete::before{
  content:""; position:absolute; left:0; right:0; top:0; height:14px; z-index:2;
  background:linear-gradient(180deg, var(--bleu-livree) 0 38%, var(--accent) 38% 62%, var(--bleu-livree) 62%);
}
body.theme-paddock .fiche-tete h1{ font-family:'Racing Sans One', var(--police-titre); font-weight:400; font-size:clamp(2.2rem, 5.6vw, 3.8rem); letter-spacing:.005em; line-height:1; }
.theme-paddock .fiche-situe{ font-family:var(--police-titre); font-weight:700; font-style:italic; text-transform:uppercase; letter-spacing:.06em; font-size:1rem; }
.theme-paddock .fiche-bloc{ border:2px solid var(--encre); box-shadow:4px 4px 0 var(--bleu-livree); }
.theme-paddock .fiche-bloc h2{ font-weight:700; font-style:italic; text-transform:uppercase; letter-spacing:.03em; font-size:1.55rem; }
.theme-paddock .fiche-bloc h2::after{ content:""; display:block; width:56px; height:6px; margin-top:8px; background:linear-gradient(180deg, var(--bleu-livree) 0 40%, var(--accent) 40%); }
.theme-paddock .fiche-bloc-tete h2::after{ display:none; }
/* Le rond du numéro de course. */
.theme-paddock .fiche-logo{ border-radius:50%; background:#fff; border:4px solid var(--encre); box-shadow:0 0 0 4px #fff, 0 0 0 6px var(--encre); }
.theme-paddock .an-btn{ border-radius:6px; font-family:var(--police-titre); font-weight:700; font-style:italic; text-transform:uppercase; letter-spacing:.06em; font-size:1rem; box-shadow:3px 3px 0 var(--encre); border:2px solid var(--encre); }
.theme-paddock .an-btn:hover{ transform:translate(-1px, -1px); box-shadow:5px 5px 0 var(--encre); }
.theme-paddock :is(.an-btn-sec, .an-btn-contour){ background:var(--surface); color:var(--encre); }
.theme-paddock .fiche-actions-outils{ border:2px solid var(--encre); background:var(--surface); }
.theme-paddock .fp-prix{ font-weight:700; font-style:italic; font-size:1.35rem; color:var(--accent-2); }

/* =============================================================================
   HOLO — Pro · holographique. Nacre, reflets arc-en-ciel qui tournent sur
   les bords, titre irisé : l'éclat d'une protection céramique neuve.
   ============================================================================= */
@property --holo-angle{ syntax:"<angle>"; inherits:false; initial-value:0deg; }
body.theme-holo{
  --fond:#F4F2FB; --fond-2:#ECE8F7;
  --surface:rgba(255,255,255,.72); --surface-2:#F7F5FD; --surface-3:#EDE9F8;
  --encre:#16132B; --encre-2:#524D72; --encre-3:#8D88A8;
  --accent:#6D5BFF; --accent-2:#5140E8; --accent-doux:rgba(109,91,255,.1);
  --vert:#0F9D6B; --rouge:#D92D5C; --or:#F2A007;
  --trait:rgba(22,19,43,.08); --trait-2:rgba(22,19,43,.13); --trait-3:rgba(22,19,43,.22);
  --r1:14px; --r2:20px; --r3:28px;
  --ombre:0 30px 60px -40px rgba(80,60,180,.45);
  --police-titre:'Unbounded', 'Archivo', sans-serif;
}
.theme-holo .theme-decor{ display:block; }
.theme-holo .theme-decor i:nth-child(1){ width:70vw; height:70vw; right:-25vw; top:-35vw; border-radius:50%; filter:blur(70px); opacity:.55;
  background:conic-gradient(from 0deg, #FFB3E6, #B3C7FF, #A6FFF0, #FFF3A6, #FFB3E6); animation:holo-tourne 30s linear infinite; }
.theme-holo .theme-decor i:nth-child(2){ width:50vw; height:50vw; left:-20vw; bottom:-20vw; border-radius:50%; filter:blur(80px); opacity:.45;
  background:conic-gradient(from 90deg, #A6FFF0, #D6B3FF, #FFD1A6, #A6FFF0); animation:holo-tourne 40s linear infinite reverse; }
@keyframes holo-tourne{ to{ rotate:360deg; } }
.theme-holo :is(.fiche-tete, .fiche-bloc){
  -webkit-backdrop-filter:blur(20px) saturate(1.6); backdrop-filter:blur(20px) saturate(1.6);
  border:1.5px solid transparent;
  background:linear-gradient(rgba(255,255,255,.78), rgba(255,255,255,.78)) padding-box,
             conic-gradient(from var(--holo-angle), #FF9AD5, #9AB8FF, #8FFFE8, #FFF08F, #FF9AD5) border-box;
  animation:holo-bord 8s linear infinite;
}
@keyframes holo-bord{ to{ --holo-angle:360deg; } }
.theme-holo .fiche-tete h1{
  font-weight:600; letter-spacing:-.03em; font-size:clamp(1.9rem, 4.6vw, 3.1rem);
  background:linear-gradient(100deg, #16132B 0%, #6D5BFF 25%, #E052B5 45%, #2FB5D8 65%, #6D5BFF 82%, #16132B 100%) 0 0 / 200% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:holo-titre 9s ease-in-out infinite alternate;
}
@keyframes holo-titre{ to{ background-position:100% 0; } }
.theme-holo .fiche-bloc h2{ font-weight:600; letter-spacing:-.02em; font-size:1.05rem; }
.theme-holo .an-btn{ background:linear-gradient(110deg, #6D5BFF, #B35CF0 50%, #FF6FB5); box-shadow:0 14px 34px -14px rgba(109,91,255,.8); }
.theme-holo .an-btn:hover{ background:linear-gradient(110deg, #8272FF, #C272F5 50%, #FF86C2); }
.theme-holo :is(.an-btn-sec, .an-btn-contour){ background:rgba(255,255,255,.7); border-color:var(--trait-2); }
.theme-holo .fiche-logo{ border-radius:50%; background:#fff; border:2px solid #fff; box-shadow:0 0 0 2px rgba(109,91,255,.35), 0 18px 36px -18px rgba(109,91,255,.6); }

/* =============================================================================
   COCKPIT — Pro · tableau de bord de nuit. Métal sombre, instruments orange,
   repères d'affichage tête haute aux coins des blocs, compteur en fond.
   ============================================================================= */
body.theme-cockpit{
  --fond:#0A0C0E; --fond-2:#060708;
  --surface:#101316; --surface-2:#161A1E; --surface-3:#1D2227;
  --encre:#E9EDF0; --encre-2:#9BA5AE; --encre-3:#65707A;
  --accent:#FF7A1A; --accent-2:#FFA05C; --accent-doux:rgba(255,122,26,.12);
  --accent-encre:#0A0C0E; --accent-survol:#FF9142;
  --trait:rgba(233,237,240,.07); --trait-2:rgba(233,237,240,.13); --trait-3:rgba(233,237,240,.22);
  --r1:4px; --r2:6px; --r3:8px;
  --ombre:inset 0 1px 0 rgba(255,255,255,.04), 0 24px 50px -30px rgba(0,0,0,.95);
  --police-titre:'Chakra Petch', 'Archivo', sans-serif;
}
.theme-cockpit .theme-decor{ display:block; }
/* Le compteur : un arc gradué et sa zone éclairée, en grand, derrière l'en-tête. */
.theme-cockpit .theme-decor i:nth-child(1){
  width:min(900px, 130vw); aspect-ratio:1; left:50%; top:-340px; translate:-50% 0; border-radius:50%;
  background:repeating-conic-gradient(from -120deg, rgba(255,122,26,.3) 0 .6deg, transparent .6deg 6deg);
  -webkit-mask-image:radial-gradient(circle, transparent 60%, #000 61% 64%, transparent 65%); mask-image:radial-gradient(circle, transparent 60%, #000 61% 64%, transparent 65%);
}
.theme-cockpit .theme-decor i:nth-child(2){
  width:min(900px, 130vw); aspect-ratio:1; left:50%; top:-340px; translate:-50% 0; border-radius:50%;
  background:conic-gradient(from -120deg, rgba(255,122,26,0) 0deg, rgba(255,122,26,.35) 170deg, transparent 171deg);
  -webkit-mask-image:radial-gradient(circle, transparent 66%, #000 67% 68%, transparent 69%); mask-image:radial-gradient(circle, transparent 66%, #000 67% 68%, transparent 69%);
}
.theme-cockpit .theme-decor i:nth-child(3){ inset:0; background:radial-gradient(ellipse at 50% 0%, rgba(255,122,26,.08), transparent 55%); }
/* Les repères d'angle d'un affichage tête haute. */
.theme-cockpit :is(.fiche-tete, .fiche-bloc){
  background:
    linear-gradient(var(--accent), var(--accent)) top left / 14px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) top left / 2px 14px no-repeat,
    linear-gradient(var(--accent), var(--accent)) top right / 14px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) top right / 2px 14px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom left / 14px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom left / 2px 14px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom right / 14px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom right / 2px 14px no-repeat,
    linear-gradient(180deg, #13171B, #0E1114);
}
.theme-cockpit .fiche-tete h1{ font-weight:700; text-transform:uppercase; letter-spacing:.02em; font-size:clamp(1.9rem, 4.8vw, 3.1rem); }
.theme-cockpit .fiche-situe{ font-family:var(--police-titre); text-transform:uppercase; letter-spacing:.12em; font-size:.78rem; color:var(--accent-2); }
.theme-cockpit .fiche-bloc h2{ font-weight:600; text-transform:uppercase; letter-spacing:.1em; font-size:.95rem; color:var(--accent-2); }
.theme-cockpit .fiche-bloc h2::before{ content:""; display:inline-block; width:8px; height:8px; margin-right:10px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px var(--accent); vertical-align:1px; }
.theme-cockpit .an-btn{ border-radius:4px; font-family:var(--police-titre); text-transform:uppercase; letter-spacing:.08em; font-weight:700; box-shadow:0 0 0 1px rgba(255,160,92,.5), 0 0 24px -6px rgba(255,122,26,.7); }
.theme-cockpit :is(.an-btn-sec, .an-btn-contour){ background:var(--surface-2); border-color:var(--trait-3); box-shadow:none; }
.theme-cockpit .fiche-actions-outils{ border-radius:4px; }
.theme-cockpit .fiche-logo{ border-radius:8px; border-color:rgba(255,122,26,.5); }
.theme-cockpit :is(.fp-prix, .fiche-horaires td){ font-family:var(--police-titre); font-variant-numeric:tabular-nums; }
.theme-cockpit .fp-prix{ color:var(--accent-2); font-size:1.2rem; }

/* ---- Téléphone ----------------------------------------------------------------- */
@media (max-width:760px){
  :is(.theme-maison, .theme-synthwave, .theme-cockpit, .theme-paddock) .fiche-actions .an-btn{ letter-spacing:.03em; font-size:.74rem; padding:8px 12px; }
  .theme-maison .fiche-tete.avec-photo .fiche-identite{ margin-top:-110px; }
  .theme-maison .fiche-couverture{ aspect-ratio:4/3; }
  .theme-studio .fiche-cote .fiche-bloc{ padding-left:0; border-left:0; border-top:1px solid var(--trait-2); }
  .theme-synthwave .theme-decor i:nth-child(1){ bottom:30vh; }
  .theme-halloween .theme-decor i:nth-child(1){ right:4vw; top:calc(var(--entete) + 2vh); }
  .theme-halloween .fiche-bloc h2{ font-size:1.4rem; }
}

/* Les décors bougent doucement ; pas pour qui a désactivé les animations. */
@media (prefers-reduced-motion:reduce){
  body[class*="theme-"] .theme-decor i,
  .theme-holo :is(.fiche-tete, .fiche-bloc), .theme-holo .fiche-tete h1,
  .theme-halloween .fiche-tete h1, .theme-halloween .fiche-bloc h2::before,
  .theme-halloween .theme-decor i:nth-child(2)::before, .theme-halloween .theme-decor i:nth-child(2)::after,
  .theme-halloween .theme-decor i:nth-child(3)::after{ animation:none !important; }
  .theme-halloween .theme-decor i:nth-child(2){ display:none; }
}
