/* TiKamp — thème saisonnier « Octobre Rose » (lot 2026-09-30).
   ------------------------------------------------------------------
   Chargée UNIQUEMENT quand le serveur a activé la saison (src/services/saison.js :
   1er→31 octobre heure de Paris, ou THEME_SAISON=octobre-rose). Hors saison,
   ni cette feuille ni l'attribut ne sont servis : zéro effet de bord.

   Mécanique : on ne touche AUCUNE règle de composant ; on redéfinit les
   TOKENS de couleur sous html[data-saison="octobre-rose"] (spécificité
   0,1,1 > :root 0,1,0 → gagne quel que soit l'ordre des feuilles).
   Les noms de tokens verts varient selon l'âge des pages (--primary,
   --terra, --forest, --vert, --foret…) : tous sont couverts ici.

   Nuances (du poudré au framboise, identité nature conservée — accent or
   et neutres inchangés) :
     poudré      #FCE4EC   fonds doux (ex --primary-soft)
     rosé        #F6C6D6   bordures douces
     framboise   #C2185B   primaire   blanc dessus 5,87:1 · sur #FAFAF7 5,62:1 · sur poudré 4,88:1
     prune       #9C1450   survol/texte  blanc dessus 7,99:1 · sur poudré 6,64:1
     lie-de-vin  #4A0B28   fonds profonds (ex --foret-d)  blanc dessus ≥ 14:1
   Ratios WCAG 2.x calculés (formule de luminance relative), tous ≥ 4,5:1 AA.

   Pages aux couleurs d'un camping (data-saison-ruban) : AUCUN token touché,
   seulement le ruban .tk-or-ruban en pied de page.
   ------------------------------------------------------------------ */

html[data-saison="octobre-rose"] {
  --primary: #C2185B;
  --primary-hover: #9C1450;
  --primary-soft: #FCE4EC;
  /* landing / communes / associations */
  --terra: #C2185B;
  --terra-d: #9C1450;
  --terra-soft: #FCE4EC;
  --forest: #C2185B;
  --forest-d: #9C1450;
  --forest-soft: #FCE4EC;
  --sand-2: #F9F1F4;
  /* hôte / espace hôte / boutique / signup / connexion / devenir-hôte */
  --vert: #C2185B;
  --vert-d: #9C1450;
  --vert-l: #FCE4EC;
  /* réseau */
  --foret: #C2185B;
  --foret-d: #4A0B28;
}

/* Carnet de voyage (itineraire.js) : ses tokens sont posés sur l'overlay. */
html[data-saison="octobre-rose"] .tv-ov {
  --tv-primary: #C2185B;
  --tv-primary-h: #9C1450;
  --tv-soft: #FCE4EC;
  --tv-soft-b: #F6C6D6;
}

/* ── Verts codés en dur, habillage uniquement (jamais l'information) ── */
/* Landing + carte : option active de l'autocomplétion. */
html[data-saison="octobre-rose"] .tk-ac-opt.active,
html[data-saison="octobre-rose"] .tk-ac-opt:hover { background: #FCE4EC; }
/* Communes / associations : halo de focus des champs. */
html[data-saison="octobre-rose"] .field input:focus,
html[data-saison="octobre-rose"] .field textarea:focus,
html[data-saison="octobre-rose"] .field select:focus { box-shadow: 0 0 0 3px rgba(194, 24, 91, .15); }
/* Réseau : survol du menu mobile. */
html[data-saison="octobre-rose"] .mob-nav a:hover,
html[data-saison="octobre-rose"] .mob-nav a:focus-visible { background: rgba(194, 24, 91, .08); }

/* Landing : bloc « Vous gérez un terrain » — dégradé assombri pour que le
   titre doré (#F3A724) garde ≥ 3:1 (grand texte) sur toute sa hauteur :
   or sur #6E0F3A = 5,2:1 (sur #C2185B, fin du dégradé d'origine, il tomberait à 2,9:1). */
html[data-saison="octobre-rose"] .pro-block {
  background: linear-gradient(155deg, #0A0F0A 0%, #5A0C30 60%, #7A1340 110%);
}
/* Réseau : héros en dégradé (vert codé en dur #13502f dans la page). */
html[data-saison="octobre-rose"] div.hero:has(> .wrap) {
  background: radial-gradient(120% 110% at 80% -10%, #7A1340 0%, var(--foret-d) 60%);
}

/* ── Couleurs PORTEUSES D'INFORMATION : on garde le vert ──
   Disponibilité (carte : pastilles/épingles « ok » vs « low »), statut
   « disponible » de l'hôte, messages de succès : le vert y signifie
   quelque chose (dispo / réussi), le rose le brouillerait. */
html[data-saison="octobre-rose"] .pin.ok { color: #0F7C3C; }
html[data-saison="octobre-rose"] .camp-row .dot.ok { background: #0F7C3C; }
html[data-saison="octobre-rose"] .leaflet-popup-content .pop-dispo.ok,
html[data-saison="octobre-rose"] .dispo-pill.ok,
html[data-saison="octobre-rose"] .pill.ok { background: #E6F4EB; color: #0A5F2D; }
html[data-saison="octobre-rose"] .msg.ok { color: #0A5F2D; }
html[data-saison="octobre-rose"] .banner.ok { background: #E6F4EB; color: #0A5F2D; border-left-color: #0F7C3C; }

/* ── Encart landing « En octobre, TiKamp se met au rose » ── */
.tk-or-encart {
  max-width: 960px;
  margin: 2.2rem auto 0;
  padding: 0 1.2rem;
  box-sizing: border-box;
}
.tk-or-encart-in {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  background: linear-gradient(135deg, #FCE4EC 0%, #FDF0F4 60%, #FFFFFF 100%);
  border: 1px solid #F6C6D6;
  border-radius: 20px;
  padding: 1.5rem 1.7rem;
}
.tk-or-encart-ic {
  flex: none;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #FFFFFF;
  color: #C2185B;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 1px #F6C6D6;
}
.tk-or-encart-body { flex: 1 1 280px; min-width: 0; }
.tk-or-eyebrow {
  margin: 0 0 .3rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #9C1450;                     /* 6,64:1 sur #FCE4EC */
}
.tk-or-encart h2 {
  margin: 0 0 .4rem;
  font-size: 1.22rem;
  font-weight: 600;
  letter-spacing: -.02em;
  color: var(--ink, #0A0F0A);
}
.tk-or-encart p { margin: 0 0 .4rem; color: var(--ink-2, #3A453F); font-size: .95rem; line-height: 1.55; max-width: 38rem; }
.tk-or-encart p.tk-or-fine { margin: 0; font-size: .85rem; color: var(--ink-2, #3A453F); }
.tk-or-encart-btn {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .7rem 1.2rem;
  border-radius: 12px;
  background: #C2185B;                /* blanc dessus 5,87:1 */
  color: #FFFFFF;
  font-weight: 600;
  font-size: .95rem;
  text-decoration: none;
  transition: background-color .18s ease, transform .18s ease;
}
.tk-or-encart-btn:hover { background: #9C1450; }
.tk-or-encart-btn:active { transform: translateY(1px); }
.tk-or-encart-btn:focus-visible { outline: 3px solid #9C1450; outline-offset: 3px; }
@media (max-width: 560px) {
  .tk-or-encart-in { padding: 1.2rem 1.1rem; }
  .tk-or-encart-btn { width: 100%; }
}

/* ── Ruban des pages aux couleurs d'un camping (pied de page) ── */
.tk-or-ruban {
  display: flex;
  justify-content: center;
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
  width: 100%;
  clear: both;
}
.tk-or-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;                   /* cible tactile */
  max-width: 100%;
  box-sizing: border-box;
  padding: 6px 16px 6px 12px;
  border-radius: 999px;
  background: #FCE4EC;
  border: 1px solid #F6C6D6;
  color: #9C1450;                     /* 6,64:1 sur #FCE4EC */
  font: 600 13px/1.3 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease;
}
.tk-or-pill .tk-or-ic { flex: none; color: #C2185B; }
.tk-or-pill .tk-or-sub { font-weight: 500; }
a.tk-or-pill:hover { background: #F9D5E1; border-color: #EDA3BD; text-decoration: underline; }
a.tk-or-pill:focus-visible { outline: 3px solid #9C1450; outline-offset: 2px; }
@media (max-width: 380px) { .tk-or-pill .tk-or-sep, .tk-or-pill .tk-or-sub { display: none; } }

.tk-or-sr {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  .tk-or-encart-btn, .tk-or-pill { transition: none; }
}
@media print { .tk-or-ruban, .tk-or-encart { display: none !important; } }
