/*
 * Couche client — Festival des Muses.
 *
 * Direction artistique : forêt enchantée, élégante et cosy (fantasy, romantasy,
 * cosy fantasy). Vert sapin profond + crème, accent rose poudré, motif laurier.
 *
 * CSS pur (ne réimporte PAS Tailwind) : redéfinit au runtime les variables de
 * design de Tailwind v4 consommées par les utilities (var(--color-…)), ce qui
 * reskin tout le site sans toucher à la structure des templates.
 * Servi via /_tenant/styles.css (ThemeAssetController), chargé après l'app CSS.
 *
 * Polices de marque « Malibu » (script) et « Atteron » (serif) non fournies :
 * on retombe sur les secours de la charte — Pinyon Script (script, accents) et
 * Cormorant Garamond (serif, corps & titres).
 *
 * Polices AUTO-HÉBERGÉES (woff2, sous-ensemble latin, licence OFL — cf.
 * fonts/LICENSE-*.txt) et servies depuis le même domaine via /_tenant/fonts/.
 * Aucune requête tierce (Google Fonts) : meilleur LCP/CLS et conformité RGPD.
 * Les poids critiques (corps 400, titres 600) sont préchargés dans le <head>
 * (cf. tenants/festival-des-muses/templates/base.html.twig).
 */

@font-face {
    font-family: "Cormorant Garamond";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/_tenant/fonts/cormorant-garamond-latin-400-normal.woff2") format("woff2");
}
@font-face {
    font-family: "Cormorant Garamond";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/_tenant/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2");
}
@font-face {
    font-family: "Cormorant Garamond";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/_tenant/fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2");
}
@font-face {
    font-family: "Cormorant Garamond";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/_tenant/fonts/cormorant-garamond-latin-700-normal.woff2") format("woff2");
}
@font-face {
    font-family: "Cormorant Garamond";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("/_tenant/fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2");
}
@font-face {
    font-family: "Pinyon Script";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/_tenant/fonts/pinyon-script-latin-400-normal.woff2") format("woff2");
}

/* Secours métrique : aligne Georgia sur la Cormorant Garamond (corps & titres)
   pour neutraliser le décalage (CLS) pendant le bref échange police de secours
   -> police réelle. Utilisé via var(--font-serif-brand) ci-dessous. */
@font-face {
    font-family: "Cormorant Garamond Fallback";
    src: local("Georgia");
    size-adjust: 92%;
    ascent-override: 95%;
    descent-override: 28%;
    line-gap-override: 0%;
}

:root {
    /* Palette charte */
    --vert-sapin: #103525; /* vert profond — primaire, fonds sombres, texte sur clair */
    --vert-sapin-2: #0c2a1e; /* vert sapin plus dense (hovers, filets footer) */
    --vert-sauge: #819454; /* vert sauge — secondaire, sous-titres, liens, aplats doux */
    --vert-sauge-fonce: #5b6b3d; /* sauge assombri — texte sauge sur clair (AA ≥4.5:1) */
    --vert-sauge-clair: #b6c68d; /* sauge éclairci, lisible sur fond sombre */
    --creme: #edeccd; /* crème/ivoire — fond clair principal */
    --creme-2: #e3e1be; /* crème plus soutenue (filets/cartes claires) */
    --rose-poudre: #cf9287; /* rose poudré — accent rare (badges, hovers) */
    --rose-poudre-clair: #e0b3aa;
    --vert-logo: #084431; /* couleur native des SVG verts */

    /* Typographies (secours de la charte) */
    --font-script: "Pinyon Script", "Malibu", cursive; /* accents courts uniquement */
    --font-serif-brand: "Cormorant Garamond", "Atteron", "Cormorant Garamond Fallback", Georgia, serif;

    /* --- Remapping des tokens Tailwind utilisés par les templates --- */

    /* Fonts : tout en serif (corps & titres), conformément à la charte. */
    --font-sans: var(--font-serif-brand);
    --font-serif: var(--font-serif-brand);
    --default-font-family: var(--font-serif-brand);

    /* Neutres : fonds sombres (hero/header/footer) en vert sapin, fond clair crème. */
    --color-gray-50: var(--creme); /* fond de page */
    --color-gray-100: var(--creme-2); /* filets/cartes claires */
    --color-gray-400: #5f6e48; /* texte tertiaire — sauge grisé, assombri pour AA (≥4.5:1 sur crème ET blanc) */
    --color-gray-500: #5a6a4a; /* texte secondaire sur clair — sauge profond */
    --color-gray-600: #46543a;
    --color-gray-800: var(--vert-sapin-2); /* hovers / filet footer */
    --color-gray-900: var(--vert-sapin); /* fonds sombres ET texte principal */

    /* Accents « violet » de la maquette -> palette forêt */
    --color-violet-50: var(--creme); /* aplats clairs (bandeau goodies) */
    --color-violet-100: var(--creme-2); /* filets clairs / pastilles d'initiales */
    --color-violet-200: var(--vert-sapin); /* lettre d'initiale (guest show) */
    --color-violet-300: var(--vert-sauge); /* lettre d'initiale (mosaïque) */
    --color-violet-400: var(--vert-sauge-clair); /* liens nav + accroche sur fond sombre */
    --color-violet-500: var(--vert-sauge); /* pastille de créneau réservable, rings de sélection */
    --color-violet-600: var(--vert-sapin); /* CTA, prix, panier */
    --color-violet-700: var(--vert-sauge-fonce); /* hover CTA + prix sauge : sauge assombri pour rester lisible en texte sur clair (AA) */
    --color-violet-900: var(--vert-sapin); /* dégradé du hero -> uni sombre */

    /* Badge panier : accent rose poudré (touche rare) */
    --color-yellow-400: var(--rose-poudre);

    /* Alerte stock faible (text-orange-600) : terracotta assombri, accessible
       sur blanc/crème (AA ≥4.5:1) et accordé à la palette forêt. */
    --color-orange-600: #b8420a;

    /* Coins doux « sans excès » (charte : 8px / 16px). */
    --radius-lg: 0.5rem;
    --radius-xl: 0.5rem;
    --radius-2xl: 0.75rem;
}

/* Corps en serif crème/sapin. */
body {
    font-family: var(--font-serif-brand);
}

/* Titres de section : Atteron capitales, interlettrage généreux (logique du logo). */
h1,
h2 {
    font-family: var(--font-serif-brand);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}

/* Titres de cartes / sous-blocs : serif, casse normale (lisibilité). */
h3,
h4,
h5,
h6 {
    font-family: var(--font-serif-brand);
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* Le titre de marque dans le footer (1re colonne) reçoit la touche script
   (accent court). Ciblé pour ne pas toucher « Navigation » / « Contact ». */
footer .grid > div:first-child > h3 {
    font-family: var(--font-script);
    text-transform: none;
    letter-spacing: 0;
    font-size: 1.6rem;
    color: var(--creme);
}

/* --- Header plus haut : on agrandit la barre (64px -> 88px) et le wordmark, les
   liens de nav restant centrés verticalement (items-center) et légèrement
   agrandis pour accompagner. --- */
header .h-16 {
    height: 5.5rem;
}

/* Liens de nav (desktop uniquement — la nav est masquée en mobile) : plus grands
   et davantage espacés pour mieux occuper la barre agrandie. */
@media (min-width: 768px) {
    header nav {
        gap: 2.5rem;
    }

    header nav a {
        font-size: 1.125rem;
        letter-spacing: 0.02em;
    }

    /* Bouton panier agrandi du même facteur (~1,2) : police, padding, icône
       et espacement, pour rester proportionné aux liens dans la barre haute. */
    header a.bg-violet-600 {
        font-size: 1.05rem;
        padding: 0.6rem 0.9rem;
        gap: 0.6rem;
    }

    header a.bg-violet-600 svg {
        width: 1.2rem;
        height: 1.2rem;
    }
}

/* --- Header : on remplace le nom textuel par le wordmark SVG « FESTIVAL des Muses ».
   Le wordmark blanc se pose sur le bandeau vert sapin (contraste charte).
   Sélecteur ciblé sur le SEUL lien de marque (enfant direct de la barre .h-16),
   pour ne pas toucher aux liens de <nav> ni du menu mobile. --- */
header .h-16 > a[href]:first-child {
    display: inline-block;
    width: 200px;
    height: 62px;
    background: url("/_tenant/brand/logo-name.svg") left center / contain no-repeat;
    /* Masque le texte « Festival des Muses » tout en gardant le lien cliquable. */
    font-size: 0;
    color: transparent;
    overflow: hidden;
}

/* Sur petit écran, on garde une barre et un logo compacts pour ne pas serrer
   le bouton panier et le burger. */
@media (max-width: 640px) {
    header .h-16 {
        height: 4.75rem;
    }

    header .h-16 > a[href]:first-child {
        width: 152px;
        height: 46px;
    }
}

/* Liens de contenu (CGV, footer) en vert sauge. */
.cgu-content a {
    color: var(--vert-sauge);
}

/* Le lien « Voir sur Google Maps » porte un style inline violet (#7c3aed) codé
   en dur dans base.html.twig : on le ramène dans la palette (sauge clair sur
   fond sombre). !important nécessaire pour battre le style inline. */
footer a[style*="7c3aed"] {
    color: var(--vert-sauge-clair) !important;
}

/* --- Hero : forêt enchantée. Emblème (la muse + couronne de laurier) calé à
   droite, grande branche de laurier en bas à gauche, le tout sous un voile
   vert sapin pour garder le texte crème lisible.
   Servis via /_tenant/brand/… (ThemeAssetController). --- */
#home-hero {
    background-color: var(--vert-sapin);
    background-image:
        url("/_tenant/brand/leaf-left-large-white.svg"),
        url("/_tenant/brand/logo-white.svg");
    background-repeat: no-repeat, no-repeat;
    background-position:
        left -36px bottom -28px,
        right 5% center;
    background-size:
        260px auto,
        auto 88%;
}

/* Le voile (div de dégradé déjà présent) : opaque à gauche (texte), translucide
   à droite pour laisser transparaître l'emblème. */
#home-hero > div:first-child {
    background: linear-gradient(
        105deg,
        rgba(16, 53, 37, 0.97) 0%,
        rgba(16, 53, 37, 0.86) 52%,
        rgba(16, 53, 37, 0.5) 100%
    );
}

/* L'accroche du hero passe en rose poudré clair (accent de marque). */
#home-hero p.text-violet-400 {
    color: var(--rose-poudre-clair);
    font-style: italic;
    letter-spacing: 0.01em;
}

/* Avatars / portraits : cadre rond, filet sauge en accent (charte §7). */
#home-hero ~ section .rounded-full,
main .rounded-full {
    box-shadow: 0 0 0 1px var(--vert-sauge);
}

/* Boutons primaires (sections CLAIRES) : fond vert sapin, texte crème, liseré
   rose poudré au survol (charte). */
a.bg-violet-600:hover,
button.bg-violet-600:hover {
    box-shadow: inset 0 0 0 1.5px var(--rose-poudre);
}

/* Boutons primaires sur fond SOMBRE (panier du header, CTA « Acheter des
   billets » du hero) : en vert sapin sur fond vert sapin, ils se fondaient dans
   le décor. On les inverse en boutons CRÈME à texte vert sapin — fort contraste
   sur le vert profond, conforme au principe charte « texte crème sur sombre ».
   Le badge panier (rose poudré) reste lisible sur ce fond crème.
   (Le texte des templates est `text-white` : on le force en vert sapin.) */
header .bg-violet-600,
#home-hero a.bg-violet-600 {
    background-color: var(--creme);
    color: var(--vert-sapin);
}

/* Survol : on garde le fond crème (badge toujours lisible) et on ajoute le
   liseré rose poudré de la charte. On neutralise le `hover:bg-violet-700` des
   templates qui repasserait le fond en sauge. */
header .bg-violet-600:hover,
#home-hero a.bg-violet-600:hover {
    background-color: var(--creme);
    color: var(--vert-sapin);
    box-shadow: inset 0 0 0 2px var(--rose-poudre);
}

/* Filets de cartes : 1px fin sauge plutôt qu'ombres lourdes. */
.border-gray-100 {
    border-color: var(--creme-2);
}

/* --- Footer : texte plus clair. Le pied de page utilise `text-gray-400` ; on
   redéfinit ce token UNIQUEMENT dans le footer (scope CSS) en sauge clair, bien
   lisible sur le vert sapin. Touche le corps, l'adresse, les liens et le
   copyright sans affecter les titres (text-white). --- */
footer {
    --color-gray-400: #d6dfba;
}

/* --- Homepage, bloc « Plus que des billets ! » : passe en fond vert sapin avec
   texte clair, comme le hero (était en crème). Seule <section> en bg-violet-50. --- */
section.bg-violet-50 {
    background-color: var(--vert-sapin);
    border-color: var(--vert-sapin-2);
}

section.bg-violet-50 h3 {
    color: var(--creme);
}

section.bg-violet-50 p {
    color: var(--vert-sauge-clair);
}

section.bg-violet-50 a {
    color: var(--vert-sauge-clair);
}

section.bg-violet-50 a:hover {
    color: var(--creme);
}

/* --- Fallbacks sans image (vignettes produit, avatars invités sans photo) :
   dégradé vert foncé + initiale/icône en clair. Ces vignettes utilisent toutes
   `bg-gradient-to-br from-violet-{50|100}` ; les classes text-violet-{200|300}
   ne servent qu'aux lettres de fallback. --- */
.bg-gradient-to-br.from-violet-50,
.bg-gradient-to-br.from-violet-100 {
    background-image: linear-gradient(135deg, #17492f 0%, var(--vert-sapin) 55%, var(--vert-sapin-2) 100%);
    /* Couleur des lettres qui héritent (ex. mosaïque d'accueil). */
    color: var(--creme);
}

/* Lettres de fallback à couleur explicite (text-violet-200/300), qu'elles soient
   sur l'élément du dégradé (collage boutique) ou un enfant (fiches invités). */
.bg-gradient-to-br.from-violet-50.text-violet-300,
.bg-gradient-to-br.from-violet-100.text-violet-300,
.bg-gradient-to-br.from-violet-50 .text-violet-200,
.bg-gradient-to-br.from-violet-50 .text-violet-300,
.bg-gradient-to-br.from-violet-100 .text-violet-200,
.bg-gradient-to-br.from-violet-100 .text-violet-300 {
    color: var(--creme);
}

/* --- Pastilles de tags des exposant·es (liste invités + fiche invité) :
   fond vert sapin, texte clair. Ces pastilles combinent bg-violet-50 +
   text-violet-700 (unique à ce composant). --- */
.bg-violet-50.text-violet-700 {
    background-color: var(--vert-sapin);
    color: var(--creme);
}

.bg-violet-50.text-violet-700:hover {
    background-color: var(--vert-sapin-2);
    color: var(--creme);
}
