/* Styles complementaires — Aniane en Scenes 2026 */
/* Ici UNIQUEMENT ce que Tailwind ne peut pas faire */

/* Titre identitaire contour terracotta — stroke 3px (hero) */
.titre-contour {
    color: transparent;
    -webkit-text-stroke: 4px #D14B28;
    font-weight: 700;
}

/* Variante stroke fin — 1.5px (nav, footer, titres secondaires) */
.titre-contour-sm {
    color: transparent;
    -webkit-text-stroke: 1.5px #D14B28;
    font-weight: 700;
}

/* Fallback accessibilite : si stroke non supporte, texte terracotta plein */
@supports not (-webkit-text-stroke: 1px #D14B28) {
    .titre-contour,
    .titre-contour-sm {
        color: #D14B28;
    }
}

/* Fond coup de pinceau — brush stroke avec bords bien ondules */
.fond-crayon {
    position: relative;
    display: inline-block;
}
.fond-crayon::before {
    content: '';
    position: absolute;
    inset: -10px -15px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 200' preserveAspectRatio='none'%3E%3Cpath d='M20 70 C8 50,5 30,20 20 C40 10,90 8,160 15 C230 22,280 30,350 25 S480 10,550 18 S680 28,750 20 C800 14,850 18,875 35 C895 50,900 70,895 95 C890 120,880 140,860 155 C830 172,770 180,700 175 C630 170,560 178,480 180 S340 175,260 178 S120 172,60 162 C30 155,12 140,8 120 C4 100,8 85,20 70Z' fill='%23D14B28'/%3E%3C/svg%3E") no-repeat center;
    background-size: 100% 100%;
    z-index: 0;
}

/* Motif hachure noir */
.motif-hachure {
    background-image: repeating-linear-gradient(45deg, #000 0, #000 1px, transparent 0, transparent 50%);
    background-size: 12px 12px;
}

/* Motif hachure lavande */
.motif-hachure-lavande {
    background-image: repeating-linear-gradient(45deg, #ADA0CC 0, #ADA0CC 1px, transparent 0, transparent 50%);
    background-size: 16px 16px;
}

/* Titre contour dans zone hachuree : interieur blanc */
.motif-hachure-lavande .titre-contour {
    color: white;
    paint-order: stroke fill;
}

/* --- Animations page accueil --- */

/* Fade in */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.animate-fade-in {
    animation: fadeIn 1s ease-out both;
    animation-delay: 0.3s;
}

/* Scale in (titre hero) */
@keyframes scaleIn {
    from { opacity: 0; transform: scale(0.85); }
    to { opacity: 1; transform: scale(1); }
}
.animate-scale-in {
    animation: scaleIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-delay: 0.1s;
}

/* Fade in + slide up */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up {
    animation: fadeInUp 0.8s ease-out both;
    animation-delay: 0.6s;
}

/* Scroll reveal — sections */
.scroll-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
.scroll-reveal.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Cartes partenaires cliquables */
.carte-partenaire {
    display: flex;
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.carte-partenaire:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.10);
    transform: translateY(-3px);
}
.carte-partenaire span {
    color: #4a4a4a;
    transition: color 0.2s ease;
}
a.carte-partenaire:hover span {
    color: #D14B28;
}

/* Bokeh — cercles lumineux doux, bords nets, opacite pulsante */
.bokeh {
    box-shadow: 0 0 40px 10px currentColor;
    animation: bokehPulse 4s ease-in-out infinite alternate;
}
.bokeh:nth-child(2) { animation-delay: 1s; }
.bokeh:nth-child(3) { animation-delay: 2s; }
.bokeh:nth-child(4) { animation-delay: 3s; }

@keyframes bokehPulse {
    from { opacity: 0.4; transform: scale(1); }
    to { opacity: 0.7; transform: scale(1.08); }
}
