/**
 * ==============================================================================
 * LES CHEMINS DE GÉGÈNE - PAGES
 * ==============================================================================
 * Fichier    : /travail/css/pages.css
 * Version    : 1.1
 * Date MAJ   : 16/03/2026
 * Contenu    : Hero, À Propos, Équipement, Animations, Footer, Admin
 *
 * HISTORIQUE :
 * V1.0 - Création
 * V1.1 - Espacement uniforme 15px
 * ==============================================================================
 */

/* ==========================================================================
   TITRES
   ========================================================================== */
.test-titre { font-family: var(--font-titre); font-size: 2.8rem; text-align: center; line-height: 1.2; margin: 40px 0; }
.test-titre-intermediaire { font-family: var(--font-titre); font-size: 2.2rem; margin-top: 35px; margin-bottom: 30px; color: var(--color-orange); text-align: center; text-transform: uppercase; }
.text-block > .test-titre:first-child { margin-top: 0; }
.text-block > .test-titre:last-child  { margin-bottom: 0; }
.text-block:has(> .test-titre:first-child) { padding-top: 15px; }

/* ==========================================================================
   BOUTONS
   ========================================================================== */
.btn-primary, .btn-secondary, .btn-alert, .btn-amazon { display: inline-block; padding: 12px 30px; font-weight: 700; text-decoration: none; border-radius: 50px; font-family: var(--font-base); transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); cursor: pointer; text-align: center; border: 2px solid transparent; }
.btn-small { padding: 6px 18px; font-size: 0.85rem; }

.btn-primary { background-color: var(--color-orange); color: #ffffff; }
.btn-primary:hover { background-color: var(--color-green); box-shadow: 0 6px 15px rgba(39, 174, 96, 0.5); transform: translateY(-3px); border-color: var(--color-green); }
.btn-primary:active { transform: translateY(0); box-shadow: 0 2px 5px rgba(39, 174, 96, 0.5); }

.btn-secondary { background-color: var(--color-green); color: #ffffff; }
.btn-secondary:hover { background-color: var(--color-orange); box-shadow: 0 6px 15px rgba(230, 126, 34, 0.5); transform: translateY(-3px); border-color: var(--color-orange); }
.btn-secondary:active { transform: translateY(0); box-shadow: 0 2px 5px rgba(230, 126, 34, 0.5); }

.btn-alert { background-color: var(--color-red-alert); color: #ffffff; border: 2px solid var(--color-border-dark); }
.btn-alert:hover { background-color: #e74c3c; box-shadow: 0 6px 15px rgba(231, 76, 60, 0.6); transform: translateY(-3px); border-color: #c0392b; }
.btn-alert:active { transform: translateY(0); box-shadow: 0 2px 5px rgba(192, 57, 43, 0.6); }

.btn-amazon { background-color: var(--bg-grey); color: var(--color-orange); border: 2px solid var(--color-amazon-yellow); font-size: 1.1rem; transition: all 0.3s ease; }
.btn-amazon:hover { background-color: var(--color-amazon-yellow); color: var(--color-text); box-shadow: 0 4px 10px rgba(255, 153, 0, 0.6); transform: scale(1.03); }
.btn-amazon:active { transform: scale(1.01); box-shadow: 0 2px 5px rgba(255, 153, 0, 0.6); }

/* ==========================================================================
   CARDS & BLOCS TEXTE
   ========================================================================== */
.card-box, .text-block { padding: 30px; border-radius: 15px; border: 1px solid var(--color-border-dark); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15); margin-top: 15px; margin-bottom: 15px; background-color: #ffffff; transition: transform 0.3s ease, box-shadow 0.3s ease; overflow-wrap: break-word; word-break: break-word; display: flow-root; }
.text-block.share-block { display: flex; align-items: center; justify-content: flex-end; }
.bg-grey { background-color: var(--bg-grey); }
.bg-blue-dotted { background-color: var(--bg-blue-info); border: 3px dotted var(--color-border-dark); }
.card-title { font-family: var(--font-titre); font-size: 2rem; margin-top: 25px; margin-bottom: 15px; }
.card-categorie { font-size: 0.9rem; color: var(--color-orange); font-weight: bold; }
.card-categorie-green { font-size: 0.9rem; color: var(--color-green); font-weight: bold; }
.card-text { margin: 10px 0 15px 0; }
.card-box:hover, .text-block:hover { transform: translateY(-5px); box-shadow: 0 15px 50px rgba(0, 0, 0, 0.20); }

/* ==========================================================================
   ARCHIVE ITEM
   ========================================================================== */
.archive-item { background-color: #ffffff; border: 2px solid var(--color-border-dark); border-radius: 15px; padding: 25px; margin-bottom: 15px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; flex-wrap: nowrap; }
.archive-info { display: flex; flex-direction: column; gap: 8px; margin-bottom: 15px; }
.archive-info h4 { font-family: var(--font-base); font-size: 1.2rem; margin: 0; font-weight: 700; }
.archive-date { font-size: 0.9rem; color: #666; text-align: center; margin-top: 20px; margin-bottom: 15px; }
@media (min-width: 768px) {
    .archive-item { flex-direction: row; justify-content: space-between; text-align: left; align-items: center; padding: 15px 30px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
    .archive-info { margin-bottom: 0; text-align: left; }
}
.archive-item:hover { transform: translateY(-5px); box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15); }

/* ==========================================================================
   VISUELS & IMAGES
   ========================================================================== */
.rico-touch-container { display: flex; flex-direction: row; align-items: center; gap: 20px; text-align: left; }
.rico-touch-content { flex: 1; }
.rico-avatar { width: 150px; height: 150px; border-radius: 50%; border: 4px solid var(--color-green); object-fit: cover; flex-shrink: 0; }
.rico-touch-block { margin-top: 15px; margin-bottom: 15px; padding: 10px 20px; }
.rico-touch-titre { color: var(--color-text); font-size: 1.5rem; margin: 0; }
.rico-touch-texte { font-style: italic; font-size: 1.1rem; line-height: 1.5; margin: 5px 0 0 0; color: var(--color-orange); font-weight: 700; }
@media (max-width: 768px) { .rico-touch-container { flex-direction: column; text-align: center; } }

.gegene-astuce-block { border-left: 10px solid var(--color-orange); padding: 15px 25px; margin-top: 15px; margin-bottom: 15px; }
.gegene-astuce-titre { margin: 0; color: var(--color-orange); font-size: 1.4rem; }
.gegene-astuce-texte { margin-top: 10px; font-weight: bold; font-size: 1.1rem; }

.image-stylee-wrapper { display: inline-block; cursor: pointer; border: 1px solid var(--color-border-dark); border-radius: 12px; overflow: hidden; transition: all 0.3s ease; max-width: 100%; line-height: 0; }
.image-stylee-img { width: 100%; height: auto; transition: transform 0.4s ease; }

.visual-box { margin-bottom: 15px; text-align: center; }
.visual-img { max-width: 100%; height: auto; border-radius: 20px; border: 1px solid var(--color-border-dark); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15); display: block; margin: 0 auto; aspect-ratio: auto 16/9; }
.visual-img.img-float-gauche { float: left; margin: 0 38px 16px 0; border-radius: 8px; }
.visual-img.img-center { float: none; display: block; margin: 0 auto 15px auto; }
.visual-caption { font-family: var(--font-titre); font-size: 1.4rem; margin-top: 15px; color: var(--color-text); display: block; }

.img-xs { max-width: 100px; }
.img-s  { max-width: 200px; }
.img-m  { max-width: 350px; }
.img-l  { max-width: 500px; }
.img-xl { max-width: 800px; }

/* ==========================================================================
   LECTEUR VIDÉO RESPONSIVE (YOUTUBE)
   ========================================================================== */
.video-container { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 15px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2); margin-bottom: 30px; border: 1px solid var(--color-border-dark); background: #000; }
.video-container iframe { width: 100%; height: 100%; border: 0; }

/* ==========================================================================
   ARTICLES & LISTES
   ========================================================================== */
.article-quote { font-style: italic; font-weight: bold; color: var(--color-orange); border-left: 4px solid var(--color-orange); background: var(--bg-grey); padding: 20px; border-radius: 0 10px 10px 0; font-size: 1.2rem; margin: 0 0 15px 0; }
.article-liste { padding-left: 20px; margin-bottom: 15px; }
.article-liste li { margin-bottom: 10px; }

.article-tableau { width: auto; border-collapse: collapse; margin: 20px auto 20px auto; font-size: 0.95rem; overflow: hidden; border-radius: 8px; display: table; }
.article-tableau thead th { background: var(--color-orange); color: #fff; font-weight: 700; padding: 10px 6px; text-align: left; }
.article-tableau tbody tr { background: #ffffff; }
.article-tableau tbody td { padding: 9px 6px; color: var(--text-primary); border-bottom: 1px solid rgba(0,0,0,0.06); vertical-align: top; }
.article-tableau tbody tr:last-child td { border-bottom: none; }
@media (max-width: 600px) { .article-tableau { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; } }

.article-tags-container { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.article-tag { display: inline-block; background: var(--bg-grey); color: var(--color-orange); padding: 5px 12px; border-radius: 20px; font-size: 0.85rem; font-weight: 700; text-decoration: none; border: 1px solid var(--color-orange); transition: all 0.3s ease; }
.article-tag:hover { background: var(--color-orange); color: #ffffff; transform: translateY(-2px); }

.link-texte { color: var(--color-orange); text-decoration: none; font-weight: 700; transition: all 0.3s ease; border-bottom: 2px dotted var(--color-orange); }
.link-texte:hover { color: var(--color-green); border-bottom: 2px solid var(--color-green); }

.liste-retroviseur { text-align: left; }
.liste-rejoindre { margin-bottom: 15px; }
.matos-intro { text-align: center; margin-bottom: 15px; }
.tag-intro { text-align: center; margin-bottom: 25px; padding: 15px 20px; background-color: var(--bg-grey); border-radius: 12px; font-size: 1.15rem; border-left: 4px solid var(--color-orange); }
.liste-titre-discret { font-family: var(--font-titre); font-size: 1.2rem; opacity: 0.4; text-align: center; margin-bottom: 10px; }

/* ==========================================================================
   SÉPARATEURS
   ========================================================================== */
.separator-dashed { border: 0; border-top: 2px dashed var(--color-border-dark); margin: 30px 0; }
.separator-light { border: 0; border-top: 1px solid var(--color-border-dark); opacity: 0.2; margin: 30px 0; }

/* ==========================================================================
   PAGE 404
   ========================================================================== */
.page-error { text-align: center; padding: 50px 0; }
.titre-404 { font-size: 6em; color: var(--color-red-alert); }

/* ==========================================================================
   BLOCS PROMO
   ========================================================================== */
.promo-block { text-align: center; border-width: 3px; margin-top: 15px; margin-bottom: 15px; }
.promo-titre { color: var(--color-green); }
.promo-holafly { border-color: var(--color-green); }
.promo-code-box { border: 3px dashed var(--color-orange); display: block; max-width: 400px; margin: 15px auto 20px auto; padding: 15px 40px; font-weight: bold; font-size: 1.6em; color: var(--color-orange); border-radius: 8px; background-color: #fff8f0; letter-spacing: 2px; text-transform: uppercase; text-align: center; }

/* ==========================================================================
   FAQ ACCORDÉON
   ========================================================================== */
.faq-bloc { margin-top: 15px; margin-bottom: 15px; }
.faq-item { background-color: #ffffff; border: 1px solid var(--color-border-dark); border-radius: 15px; box-shadow: 0 12px 40px rgba(0,0,0,0.15); margin-bottom: 10px; overflow: hidden; }
.faq-question { display: flex; justify-content: space-between; align-items: center; padding: 20px 25px; cursor: pointer; font-weight: 700; font-size: 1.1rem; color: var(--color-text); transition: color 0.3s ease, background 0.3s ease; gap: 15px; list-style: none; }
.faq-question:hover { color: var(--color-orange); background-color: var(--bg-grey); }
.faq-question::after { content: '+'; font-size: 1.5rem; color: var(--color-orange); font-weight: 700; flex-shrink: 0; transition: transform 0.3s ease; }
.faq-question.open { color: var(--color-orange); background-color: var(--bg-grey); }
.faq-question.open::after { content: '−'; }
.faq-reponse { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.3s ease; padding: 0 25px; border-left: 4px solid var(--color-green); margin: 0 20px; }
.faq-reponse.open { max-height: 600px; padding: 15px 25px; margin-bottom: 15px; }

/* ==========================================================================
   UTILITAIRES
   ========================================================================== */
.text-center { text-align: center; }
.mb-0 { margin-bottom: 0; }
.mt-15 { margin-top: 15px; }

/* ==========================================================================
   ARTICLES LIÉS
   ========================================================================== */
.articles-lies-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-top: 15px; }
@media (max-width: 768px) { .articles-lies-grid { grid-template-columns: 1fr; } }

.articles-lies-card { background: #fff; border: 1px solid var(--color-border-dark); border-radius: 12px; padding: 20px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.articles-lies-card:hover { transform: translateY(-4px); box-shadow: 0 8px 25px rgba(0,0,0,0.15); }
.articles-lies-titre { font-family: var(--font-base); font-size: 0.95rem; font-weight: 700; color: var(--color-text); margin: 0; line-height: 1.4; }
.articles-lies-date { font-size: 0.78rem; color: #888; }
.articles-lies-card .btn-secondary { margin-top: auto; }

/* ==========================================================================
   HERO CTA
   ========================================================================== */
.hero-cta-block { margin-top: 20px; padding: 30px 40px; min-height: 120px; }
.hero-cta-identite { font-size: 1.1rem; margin: 0; line-height: 1.7; width: 100%; text-align: center; }
.hero-cursor { display: inline-block; color: var(--color-orange); font-weight: 700; animation: clignoter 0.8s step-end infinite; }
@keyframes clignoter { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.hero-cta-btn { font-size: 1.2rem; animation: pulse-btn 2.5s infinite; }
@keyframes pulse-btn {
    0%   { transform: scale(1); box-shadow: 0 0 0 0 rgba(230,126,34,0.5); }
    50%  { transform: scale(1.04); box-shadow: 0 0 0 10px rgba(230,126,34,0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(230,126,34,0); }
}

/* ==========================================================================
   PAGE CONTACT
   ========================================================================== */
.card-title--green { color: var(--color-green); }
.card-title--orange { color: var(--color-orange); }
.contact-list { text-align: left; font-size: 0.9rem; margin-bottom: 20px; }
.btn-email { font-size: 1.2em; text-transform: none; padding: 10px 25px; }
.social-icon { font-size: 2.5em; }
.social-label { font-size: 0.8rem; color: #888; }
.card-social { text-decoration: none; }

/* ==========================================================================
   HERO ACCUEIL
   ========================================================================== */
.hero-section { text-align: center; margin-bottom: 30px; }
.hero-banniere { background-color: var(--color-orange); color: white; padding: 10px; display: inline-block; transform: rotate(-1deg); margin-bottom: 15px; border-radius: 15px; box-shadow: 0 8px 25px rgba(230, 126, 34, 0.6); }
.hero-titre { margin: 0; font-family: var(--font-titre); font-size: clamp(1.2rem, 4vw, 1.8rem); }
.visual-img-white { background-color: #ffffff; padding: 15px; }

/* ==========================================================================
   À PROPOS
   ========================================================================== */
.apropos-accroche { text-align: center; }
.apropos-accroche-titre { font-size: 2.5rem; }
.apropos-accroche-texte { font-size: 1.1rem; font-style: italic; color: var(--color-orange); }
.apropos-grid { align-items: center; margin-bottom: 0; }
.apropos-img { margin-bottom: 0; }
.apropos-para { margin-top: 15px; }
.apropos-quote { margin-top: 15px; }
.apropos-visual { margin-top: 15px; }
.apropos-piliers { margin-top: 15px; }
.apropos-contact { margin-top: 15px; }
.apropos-photo-wrapper { border-radius: 15px; overflow: hidden; border: 1px solid var(--color-border-dark); }
.apropos-photo { width: 100%; height: 350px; object-fit: cover; object-position: center; display: block; }

/* ==========================================================================
   ÉQUIPEMENT
   ========================================================================== */
.equipement-nav { margin-bottom: 15px; }
.equipement-card { display: flex; flex-direction: column; gap: 15px; }
.equipement-img-wrapper { width: 100%; height: 200px; overflow: hidden; border-radius: 10px; background: #f5f5f5; display: flex; align-items: center; justify-content: center; }
.equipement-img { max-width: 100%; max-height: 200px; object-fit: contain; }
.equipement-titre { font-size: 1.3rem; margin-bottom: 0; }
.equipement-desc { font-size: 1.05rem; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.equipement-desc.expanded { display: block; overflow: visible; -webkit-line-clamp: unset; }
.btn-lire-suite { display: inline-block; background: transparent; border: 1px solid var(--color-orange); color: var(--color-orange); border-radius: 20px; padding: 4px 14px; font-size: 0.9rem; cursor: pointer; margin-top: 6px; transition: background 0.2s, color 0.2s; }
.btn-lire-suite:hover { background: var(--color-orange); color: #fff; }
.equipement-card-actif { border: 3px solid var(--color-orange) !important; box-shadow: 0 0 20px rgba(230, 126, 34, 0.4) !important; position: relative; }
.equipement-card-actif::before { content: "⭐ Votre sélection"; position: absolute; top: -22px; left: 50%; transform: translateX(-50%) rotate(-6deg); background: var(--color-orange); color: white; font-family: var(--font-titre); font-size: 1.6rem; padding: 8px 25px; border-radius: 20px; box-shadow: 0 4px 10px rgba(230, 126, 34, 0.5); white-space: nowrap; }
.grid-3:has(.equipement-card-actif) { padding-top: 35px; }

.equipement-hero { display:flex; gap:30px; margin-top:30px; margin-bottom:36px; padding:24px; border:3px solid var(--color-orange); border-radius:15px; background:var(--bg-white, #fff); position:relative; }
.equipement-hero-badge { position:absolute; top:-22px; left:20px; transform:rotate(-6deg); background:var(--color-orange); color:#fff; font-family:var(--font-titre); font-size:1.6rem; padding:8px 25px; border-radius:20px; box-shadow:0 4px 10px rgba(230,126,34,0.5); white-space:nowrap; z-index:1; }
.equipement-hero-img { width:260px; flex-shrink:0; }
.equipement-hero-img img { width:100%; max-height:300px; object-fit:contain; border-radius:10px; background:#f9f7f4; }
.equipement-hero-img-produit { margin-top:12px; background:#fff !important; }
.equipement-hero-infos { flex:1; display:flex; flex-direction:column; gap:10px; }
.equipement-hero-titre { font-size:1.5rem; margin:0; }
.equipement-hero-desc { font-size:1.05rem; }
.equipement-texte-long { margin-top:8px; font-size:1rem; line-height:1.7; }
.btn-video { display:inline-block; margin-bottom:10px; }
.equipement-articles-lies { display:flex; flex-direction:column; gap:6px; }
@media (max-width:768px) { .equipement-hero { flex-direction:column; } .equipement-hero-img { width:100%; } }

/* ==========================================================================
   ANIMATIONS REVEAL
   ========================================================================== */
.reveal { opacity: 1; transform: translateY(0); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal-visible { opacity: 1; transform: translateY(0); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer { background-color: var(--bg-site); color: var(--color-text); text-align: center; padding: 30px 20px; margin-top: auto; border-top: 1px solid var(--color-border-dark); }
.site-footer p { font-size: 1.1rem; margin-bottom: 5px; }
.scroll-top-wrapper { margin-bottom: 15px; }
.btn-scroll-top { text-decoration: none; color: var(--color-text); font-family: var(--font-titre); font-size: 1rem; padding: 10px 20px; border: 1px solid var(--color-border-dark); border-radius: 8px; background: #ffffff; transition: all 0.3s ease; cursor: pointer; }
.btn-scroll-top:hover { background: var(--color-green); color: #ffffff; border-color: var(--color-green); }
.footer-matricule { font-size: 0.7rem; opacity: 0.4; margin-top: 15px; font-family: Arial, sans-serif; }
.footer-link { color: var(--color-text); font-size: 0.9rem; text-decoration: underline; opacity: 0.6; transition: opacity 0.3s ease; }
.footer-link:hover { opacity: 1; color: var(--color-orange); }

@media (max-width: 768px) {
    .img-xs, .img-s, .img-m, .img-l, .img-xl { max-width: 100%; }
    .visual-img.img-float-gauche { float: none; margin: 0 auto 15px auto; display: block; }
}

/* ==========================================================================
   MAIN CONTENT
   ========================================================================== */
.main-content { padding: 15px 0; flex: 1; }

/* ==========================================================================
   ADMIN
   ========================================================================== */
.archive-item { flex-wrap: nowrap; }
.archive-item .flex-row { flex-shrink: 0; }

/* ==========================================================================
   MAILLAGE INTERNE (LIENS MATOS)
   ========================================================================== */
.lien-produit-auto { color: var(--color-orange); text-decoration: underline dashed; text-underline-offset: 4px; transition: all 0.3s ease; }
.lien-produit-auto:hover { color: var(--color-green); text-decoration: underline solid; }

/* ==========================================================================
   PARTAGE RESEAUX SOCIAUX
   ========================================================================== */
.share-block { display: flex; align-items: center; justify-content: flex-end; padding: 14px 20px; margin-top: 0; background: transparent; }
.share-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 0; }
.share-label { font-weight: 700; font-size: 0.95rem; color: var(--color-orange); white-space: nowrap; margin-right: 8px; }
.btn-share { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: none; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, width 0.2s ease, border-radius 0.15s ease, padding 0.15s ease; text-decoration: none; flex-shrink: 0; box-shadow: 0 2px 6px rgba(0,0,0,0.18); background: var(--btn-color, #64748b); color: #fff; }
.btn-share:hover { transform: scale(1.12); box-shadow: 0 4px 12px rgba(0,0,0,0.28); }
.btn-share svg { width: 22px; height: 22px; fill: #ffffff; }
.share-fb  { background-color: #1877F2; }
.share-x   { background-color: #000000; }
.share-pin { background-color: #E60023; }
.share-wa  { background-color: #25D366; }
.share-copy svg { width: 22px; height: 22px; stroke: #ffffff; fill: none; }
.btn-share.copied { background: #22c55e !important; width: auto !important; border-radius: 20px !important; padding: 0 14px !important; gap: 6px; transform: scale(1.05) !important; box-shadow: 0 4px 14px rgba(34,197,94,0.4) !important; }
.btn-share .copy-confirm { display: none; font-size: 0.82rem; font-weight: 700; white-space: nowrap; }
.btn-share.copied .copy-confirm { display: inline; }
.btn-share.copied svg { display: none; }