/*
Theme Name: Tracks Child
Template: tracks
Description: Thème enfant de Tracks pour thibaudsaintin.fr - Portfolio photographique professionnel
Author: Thibaud Saintin
Version: 2.2
Text Domain: tracks-child
*/

/* ============================================================
   TABLE DES MATIÈRES
   ============================================================

   1.  VARIABLES GLOBALES
   2.  COULEURS ET TEXTES
   3.  FONDS ET CONTENEURS
   4.  LIENS
   5.  TABLEAUX
   6.  FORMULAIRES GÉNÉRIQUES
   7.  WOOCOMMERCE - Boutons
   8.  WOOCOMMERCE - Checkout classique (ancien système)
   9.  WOOCOMMERCE - Checkout par blocs Gutenberg (nouveau système)
   10. WOOCOMMERCE - Messages
   11. WOOCOMMERCE - Mon Espace
   12. WOOCOMMERCE - Paiement
   13. (réservé — anciennement Cookiebot)
   14. GALERIES PHOTOS - Page individuelle
   15. GALERIES PHOTOS - Lightbox
   16. GALERIES PHOTOS - Grille
   17. (réservé — anciennement Galerie livraison)
   18. PAGE D'ACCUEIL PORTFOLIO
   19. PAGE BOUTIQUE - Tirages / Prints
   20. CATÉGORIE PRODUIT - Page individuelle
   21. ONGLETS TRILINGUES (composant réutilisable)
   22. PAGE FORMATS & PRIX

   ============================================================ */


/* ============================================================
   1. VARIABLES GLOBALES
   ============================================================ */

:root {
  --couleur-fond:               #222222;
  --couleur-fond-clair:         #333333;
  --couleur-fond-transparent:   rgba(255, 255, 255, 0.05);
  --couleur-bordure:            rgba(255, 255, 255, 0.1);
  --couleur-texte:              #ffffff;
  --couleur-lien:               #FFE4B5;
  --couleur-lien-hover:         #FFD700;
  --couleur-lien-visite:        #F5DEB3;
  --couleur-lien-focus:         #FFEFD5;
  --couleur-bouton-hover-ombre: rgba(255, 228, 181, 0.4);
  --radius:                     8px;
  --radius-sm:                  4px;

  /* Surcharge des variables WooCommerce natives */
  --wc-form-border-color:       rgba(255, 255, 255, 0.1);
  --wc-content-bg:              #222222;
  --wc-primary:                 #FFE4B5;

  /* Typographie — titres de rubrique (H1 de page) */
  --titre-rubrique-taille:      64px;
  --titre-rubrique-taille-md:   42px;
  --titre-rubrique-couleur:     var(--couleur-texte);
  --titre-rubrique-poids:       bold;

  /* Typographie — titres de photo individuelle */
  --titre-photo-taille:         38px;
  --titre-photo-taille-md:      26px;
  --titre-photo-couleur:        var(--couleur-lien);
}


/* ============================================================
   2. COULEURS ET TEXTES
   ============================================================ */

body,
.entry-title,
.page-title,
p, strong, li, label, i,
.entry-container,
.woocommerce-page h2,
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td,
.woocommerce div.product .product_title,
.woocommerce div.product form.cart .variations label,
.woocommerce div.product form.cart .variations td,
.sku_wrapper,
.posted_in,
.wp-block-table td,
.has-text-align-center.has-larger-font-size,
div.wpforms-container-full .wpforms-form .wpforms-field-label {
  color: var(--couleur-texte);
}


/* ============================================================
   3. FONDS ET CONTENEURS
   ============================================================ */

#loop-container,
#overflow-container,
.singular-page .entry,
#sidebar-footer.active-2,
.error404 .entry,
.woocommerce div.product,
.product.type-product,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product a.woocommerce-loop-product__link,
.woocommerce ul.products li.product a img,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg {
  background-color: var(--couleur-fond);
}

.page-title,
.entry-title {
  font-size: var(--titre-rubrique-taille);
  font-weight: var(--titre-rubrique-poids);
  color: var(--titre-rubrique-couleur);
  text-align: center;
  text-transform: none !important;  /* neutralise l'uppercase du thème parent Tracks */
  letter-spacing: normal !important;
  margin: 40px 0;
}

@media (max-width: 768px) {
  .page-title,
  .entry-title {
    font-size: var(--titre-rubrique-taille-md);
  }
}


/* ============================================================
   4. LIENS
   ============================================================ */

a,
a:link {
  color: var(--couleur-lien);
  text-decoration: none;
}

a:visited {
  color: var(--couleur-lien-visite);
  text-decoration: none;
}

a:hover,
a:focus {
  color: var(--couleur-lien-focus);
  text-decoration: underline;
}


/* ============================================================
   5. TABLEAUX
   ============================================================ */

table,
.wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--couleur-fond-transparent);
  border-radius: var(--radius);
  overflow: hidden;
}

table td,
table th,
.wp-block-table td,
.wp-block-table th {
  padding: 20px;
  border: 1px solid var(--couleur-bordure);
  vertical-align: top;
}

.texte-encadre,
blockquote,
.wp-block-quote {
  background-color: var(--couleur-fond-transparent);
  border-radius: var(--radius);
  padding: 20px;
  border: 1px solid var(--couleur-bordure);
  margin: 20px 0;
}


/* ============================================================
   6. FORMULAIRES GÉNÉRIQUES
   ============================================================ */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
textarea,
select {
  color: var(--couleur-texte);
  background-color: var(--couleur-fond);
  border: 1px solid var(--couleur-bordure);
  border-radius: var(--radius-sm);
  padding: 10px;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--couleur-lien);
  outline: none;
}

label {
  color: var(--couleur-texte);
}

/* Options de select : fond clair pour meilleure lisibilité */
select option,
select optgroup {
  background-color: #ffffff;
  color: #222222;
}

/* Select2 (WooCommerce) */
.woocommerce-account select,
.woocommerce-account .select2-container,
.woocommerce-account .select2-selection,
.select2-dropdown {
  background-color: var(--couleur-fond-clair) !important;
  color: var(--couleur-texte) !important;
  border: 1px solid var(--couleur-bordure) !important;
}

.select2-results__option {
  background-color: var(--couleur-fond-clair) !important;
  color: var(--couleur-texte) !important;
}

.select2-results__option--highlighted {
  background-color: #444444 !important;
  color: var(--couleur-lien) !important;
}

.select2-search__field {
  background-color: var(--couleur-fond) !important;
  color: var(--couleur-texte) !important;
  border: 1px solid var(--couleur-bordure) !important;
}

.select2-selection__rendered {
  color: var(--couleur-texte) !important;
}


/* ============================================================
   7. WOOCOMMERCE - BOUTONS
   ============================================================ */

/* Boutons panier et checkout */
.wc-block-cart__submit-button,
.wc-block-components-button.wc-block-cart__submit-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce a.checkout-button,
button.checkout-button {
  background-color: var(--couleur-lien) !important;
  color: var(--couleur-fond) !important;
  border: none !important;
  padding: 15px 30px !important;
  font-size: 18px !important;
  font-weight: bold !important;
  border-radius: var(--radius) !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
}

.wc-block-cart__submit-button *,
.wc-block-components-button * {
  color: var(--couleur-fond) !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-button:hover,
.checkout-button:hover {
  background-color: var(--couleur-lien-hover) !important;
  color: #000000 !important;
  transform: scale(1.05) !important;
  box-shadow: 0 4px 12px var(--couleur-bouton-hover-ombre) !important;
}

.wc-block-cart__submit-button:hover *,
.wc-block-components-button:hover * {
  color: #000000 !important;
}

/* Boutons génériques */
.woocommerce a.button {
  background-color: var(--couleur-fond) !important;
  color: var(--couleur-lien) !important;
  border: 1px solid var(--couleur-lien) !important;
  border-radius: var(--radius) !important;
}

.woocommerce a.button:hover {
  background-color: var(--couleur-lien) !important;
  color: var(--couleur-fond) !important;
}


/* ============================================================
   8. WOOCOMMERCE - CHECKOUT CLASSIQUE (ancien système)
   ============================================================ */

/* Champs de saisie */
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.woocommerce-checkout .input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce-billing-fields input,
.woocommerce-shipping-fields input,
.woocommerce-additional-fields textarea {
  color: #ffffff !important;
  background-color: #222222 !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding: 10px !important;
  border-radius: 4px !important;
}

/* Focus */
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
  border-color: #FFE4B5 !important;
  outline: none !important;
}

/* Labels */
.woocommerce-checkout label,
.woocommerce form .form-row label,
.woocommerce-billing-fields label,
.woocommerce-shipping-fields label,
.woocommerce-billing-fields__field-wrapper label,
.woocommerce-shipping-fields__field-wrapper label {
  color: #ffffff !important;
}

/* Placeholder */
.woocommerce-checkout input::placeholder {
  color: rgba(255, 255, 255, 0.4) !important;
}

/* Autofill navigateur */
.woocommerce-checkout input:-webkit-autofill,
.woocommerce-checkout input:-webkit-autofill:hover,
.woocommerce-checkout input:-webkit-autofill:focus,
.woocommerce-checkout select:-webkit-autofill,
.woocommerce-checkout input[type="text"]:-webkit-autofill,
.woocommerce-checkout input[type="email"]:-webkit-autofill,
.woocommerce-checkout input[type="tel"]:-webkit-autofill,
.woocommerce-checkout input[type="number"]:-webkit-autofill {
  -webkit-text-fill-color: #ffffff !important;
  -webkit-box-shadow: 0 0 0px 1000px #222222 inset !important;
  transition: background-color 5000s ease-in-out 0s !important;
}


/* ============================================================
   9. WOOCOMMERCE - CHECKOUT PAR BLOCS GUTENBERG (nouveau système)
   ============================================================ */

/* Champs de saisie */
.wc-block-checkout input[type="text"],
.wc-block-checkout input[type="email"],
.wc-block-checkout input[type="tel"],
.wc-block-checkout input[type="number"],
.wc-block-checkout input[type="password"],
.wc-block-checkout select,
.wc-block-checkout textarea,
.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-block-components-country-input input,
.wc-block-components-state-input input {
  color: #ffffff !important;
  background-color: #222222 !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 4px !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Focus */
.wc-block-checkout input:focus,
.wc-block-checkout select:focus,
.wc-block-checkout textarea:focus {
  border-color: #FFE4B5 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Champ email spécifique (section Coordonnées) */
.wc-block-checkout__contact-fields input#email,
.wc-block-components-address-form__email input,
#contact input[type="email"],
input[name="contact_email"] {
  color: #ffffff !important;
  background-color: #222222 !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 4px !important;
  -webkit-text-fill-color: #ffffff !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Focus sur le champ email */
.wc-block-checkout__contact-fields input#email:focus,
.wc-block-components-address-form__email input:focus,
input[name="contact_email"]:focus {
  border-color: #FFE4B5 !important;
  box-shadow: none !important;
}

/* Neutraliser tous les états de validation (valid, invalid, active) */
.wc-block-checkout__contact-fields input#email:valid,
.wc-block-checkout__contact-fields input#email:invalid,
.wc-block-checkout__contact-fields .wc-block-components-text-input.is-active input,
.wc-block-components-address-form__email.is-active input,
.wc-block-components-text-input--has-error input[type="email"] {
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
}

/* Labels */
.wc-block-checkout label,
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-checkout .wc-block-components-form label {
  color: #ffffff !important;
}

/* Placeholder */
.wc-block-checkout input::placeholder,
.wc-block-components-text-input input::placeholder {
  color: rgba(255, 255, 255, 0.4) !important;
}

/* Cartes d'adresse (résumé nom + adresse affiché) */
.wc-block-components-address-card,
.wc-block-components-address-card address,
.wc-block-components-address-card p,
.wc-block-components-address-card span,
.wc-block-checkout .wc-block-components-address-card__address,
.wp-block-woocommerce-checkout-shipping-address-block address,
.wp-block-woocommerce-checkout-billing-address-block address,
.wc-block-checkout__step .wc-block-components-address-card * {
  color: #ffffff !important;
}

.wc-block-components-address-card {
  background-color: var(--couleur-fond-clair) !important;
  border: 1px solid var(--couleur-bordure) !important;
  border-radius: var(--radius) !important;
  padding: 15px !important;
}

/* Autofill navigateur */
.wc-block-checkout input:-webkit-autofill,
.wc-block-checkout input:-webkit-autofill:hover,
.wc-block-checkout input:-webkit-autofill:focus,
.wc-block-checkout input[type="text"]:-webkit-autofill,
.wc-block-checkout input[type="email"]:-webkit-autofill,
.wc-block-checkout input[type="tel"]:-webkit-autofill,
.wc-block-checkout input[type="number"]:-webkit-autofill {
  -webkit-text-fill-color: #ffffff !important;
  -webkit-box-shadow: 0 0 0px 1000px #222222 inset !important;
  transition: background-color 5000s ease-in-out 0s !important;
}


/* ============================================================
   10. WOOCOMMERCE - MESSAGES
   ============================================================ */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner,
ul.woocommerce-error,
ul.woocommerce-message,
ul.woocommerce-info,
div.woocommerce-message,
div.woocommerce-info,
div.woocommerce-error {
  background-color: var(--couleur-fond-clair) !important;
  border-left: 4px solid var(--couleur-lien) !important;
  color: var(--couleur-texte) !important;
  padding: 15px 20px !important;
  border-radius: var(--radius-sm) !important;
  margin: 20px 0 !important;
}

.woocommerce-message *,
.woocommerce-info *,
.woocommerce-error *,
ul.woocommerce-error li,
ul.woocommerce-message li,
ul.woocommerce-info li {
  color: var(--couleur-texte) !important;
}

.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
  background-color: transparent !important;
  color: var(--couleur-lien) !important;
  text-decoration: underline !important;
  border: none !important;
  padding: 0 !important;
}

.woocommerce-message a:hover,
.woocommerce-info a:hover,
.woocommerce-error a:hover {
  color: var(--couleur-lien-hover) !important;
}

/* Suppression des icônes natives */
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before {
  display: none !important;
  content: none !important;
}


/* ============================================================
   11. WOOCOMMERCE - MON ESPACE
   ============================================================ */

.woocommerce-account .woocommerce,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  background-color: var(--couleur-fond) !important;
  padding: 20px;
  border-radius: var(--radius);
}

.woocommerce-account .woocommerce a {
  color: var(--couleur-lien) !important;
  text-decoration: none !important;
}

.woocommerce-account .woocommerce a:hover {
  color: var(--couleur-lien-hover) !important;
  text-decoration: underline !important;
}

.woocommerce-MyAccount-navigation ul li.is-active a {
  font-weight: bold !important;
  color: var(--couleur-lien-hover) !important;
}

/* Supprimer les puces parasites */
.woocommerce-MyAccount-navigation ul,
.woocommerce-MyAccount-navigation ul li {
  list-style: none !important;
  background: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.woocommerce-MyAccount-navigation ul li::before,
.woocommerce-MyAccount-navigation ul li::after {
  display: none !important;
  content: none !important;
}


/* ============================================================
   12. WOOCOMMERCE - PAIEMENT
   ============================================================ */

.woocommerce-PaymentBox,
.payment_box,
.wc-upe-form,
.wc-payment-form {
  background-color: #ffffff !important;
  color: #222222 !important;
}

.woocommerce-PaymentBox *,
.payment_box *,
.wc-upe-form *,
.wc-payment-form * {
  color: #222222 !important;
}

.woocommerce .woocommerce-PaymentMethods {
  background-color: var(--couleur-fond) !important;
  padding: 15px !important;
  border-radius: var(--radius) !important;
  border: 1px solid var(--couleur-bordure) !important;
}

/* Compteur de catégories */
.woocommerce ul.products li.product-category .count,
mark.count {
  background-color: var(--couleur-fond) !important;
  color: var(--couleur-lien) !important;
  border-radius: 50% !important;
  padding: 5px 10px !important;
  font-size: 14px !important;
  font-weight: bold !important;
}


/* ============================================================
   13. (réservé — anciennement Cookiebot, supprimé)
   ============================================================ */


/* ============================================================
   14. GALERIES PHOTOS - PAGE INDIVIDUELLE
   ============================================================ */

.photo-page-simple {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px 20px;
  text-align: center;
}

/* Wrapper avec effet passe-partout */
.photo-image-wrapper {
  position: relative;
  display: inline-block;
  cursor: zoom-in;
  background: #ffffff;
  padding: 16px 16px 48px 16px;
  margin-bottom: 40px;
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.6),
    0 8px 32px rgba(0, 0, 0, 0.4);
  transition: transform 0.25s ease;
}

.photo-image-wrapper:hover {
  transform: translateY(-2px);
}

/* Image principale */
.photo-image-principale {
  display: block;
  max-width: 100%;
  height: auto;
  transition: filter 0.25s ease;
  user-select: none;
  -webkit-user-select: none;
  pointer-events: none;
}

.photo-image-wrapper:hover .photo-image-principale {
  filter: brightness(0.85);
}

/* Hint discret au survol (« Double-clic pour agrandir ») */
.photo-zoom-hint {
  position: absolute;
  bottom: 56px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.0);
  font-size: 11px;
  letter-spacing: 0.05em;
  background: rgba(0,0,0,0);
  padding: 3px 10px;
  border-radius: 10px;
  transition: all 0.3s ease;
  pointer-events: none;
  white-space: nowrap;
}

.photo-image-wrapper:hover .photo-zoom-hint {
  color: rgba(255,255,255,0.75);
  background: rgba(0,0,0,0.45);
}

/* Icône loupe (ancienne version — conservée pour rétrocompatibilité) */
.photo-loupe {
  position: absolute;
  top: calc(50% - 16px);
  left: 50%;
  transform: translate(-50%, -50%) scale(0.7);
  opacity: 0;
  transition: opacity 0.25s ease, transform 0.25s ease;
  pointer-events: none;
  color: #fff;
}

.photo-loupe svg {
  width: 64px;
  height: 64px;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.7));
}

.photo-image-wrapper:hover .photo-loupe {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* Filigrane */
.photo-copyright {
  position: absolute;
  bottom: 14px;
  left: 0;
  right: 0;
  text-align: center;
  color: #555;
  font-size: 11px;
  letter-spacing: 0.05em;
  pointer-events: none;
  font-weight: 500;
}

/* Titre */
.photo-titre-simple {
  font-size: var(--titre-photo-taille);
  font-weight: var(--titre-rubrique-poids);
  color: var(--titre-photo-couleur);
  text-transform: none;
  letter-spacing: normal;
  margin: 30px 0;
}

@media (max-width: 768px) {
  .photo-titre-simple {
    font-size: var(--titre-photo-taille-md);
  }
}

/* Légende */
.photo-legende {
  max-width: 800px;
  margin: 30px auto;
  font-size: 18px;
  line-height: 1.8;
  color: var(--couleur-texte);
  text-align: justify;
}

.photo-legende p {
  margin-bottom: 20px;
}

/* Métadonnées */
.photo-meta-simple {
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid var(--couleur-bordure);
  font-size: 14px;
  color: rgba(255,255,255,0.6);
  font-style: italic;
}

/* Boutons d'achat */
.photo-boutons-achat {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin: 50px 0;
  flex-wrap: wrap;
}

.bouton-tirage-discret {
  display: inline-block;
  padding: 15px 30px;
  background-color: transparent;
  border: 1px solid var(--couleur-bordure);
  border-radius: var(--radius);
  text-decoration: none;
  transition: all 0.3s ease;
  min-width: 200px;
  text-align: center;
  font-size: 16px;
  color: var(--couleur-texte);
  line-height: 1.5;
}

.bouton-tirage-discret:hover {
  border-color: var(--couleur-lien);
  background-color: rgba(255, 228, 181, 0.05);
  text-decoration: none;
  transform: translateY(-2px);
}

.bouton-sous-titre {
  display: block;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
  margin-top: 3px;
}

.bouton-original:hover {
  border-color: #FFD700;
  background-color: rgba(255, 215, 0, 0.05);
}

.bouton-gelato:hover {
  border-color: var(--couleur-lien);
  background-color: rgba(255, 228, 181, 0.05);
}

/* Navigation */
.photo-navigation-simple {
  margin-top: 60px;
  padding-top: 30px;
  border-top: 1px solid var(--couleur-bordure);
}

.retour-galerie-simple {
  color: var(--couleur-lien);
  font-size: 16px;
  text-decoration: none;
  transition: color 0.3s ease;
}

.retour-galerie-simple:hover {
  color: var(--couleur-lien-hover);
  text-decoration: underline;
}

@media (max-width: 768px) {
  .photo-boutons-achat {
    flex-direction: column;
    align-items: center;
  }

  .bouton-tirage-discret {
    width: 100%;
    max-width: 300px;
  }
}


/* ============================================================
   15. GALERIES PHOTOS - LIGHTBOX
   ============================================================ */

/* Fond noir fixe */
#photo-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.96);
  z-index: 99999;
  overflow: auto;
}

#photo-lightbox.actif {
  display: block;
}

/* Conteneur interne : centre l'image en mode fit, scrollable en mode zoom */
#photo-lightbox-inner {
  min-width: 100%;
  min-height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Mode fit (par défaut) : l'image tient dans l'écran */
#photo-lightbox img {
  max-width: 95vw;
  max-height: 95vh;
  object-fit: contain;
  user-select: none;
  cursor: zoom-in;
}

/* Mode zoom : taille réelle, le conteneur grandit et le lightbox scrolle */
#photo-lightbox.zoomed #photo-lightbox-inner {
  display: block;
}

#photo-lightbox.zoomed img {
  max-width: none;
  max-height: none;
  cursor: zoom-out;
}

#photo-lightbox-fermer {
  position: absolute;
  top: 20px;
  right: 28px;
  color: #fff;
  font-size: 40px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s;
  user-select: none;
  z-index: 100000;
}

#photo-lightbox-fermer:hover {
  opacity: 1;
}


/* ============================================================
   16. GALERIES PHOTOS - GRILLE
   ============================================================ */

/* Description de la galerie */
.galerie-description {
  text-align: center;
  margin: 20px auto 40px;
  max-width: 800px;
  font-size: 18px;
  line-height: 1.6;
  color: var(--couleur-texte);
}

/* Grille de miniatures */
.galerie-photos {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 30px;
  margin-top: 40px;
  padding: 0 20px;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 768px) {
  .galerie-photos {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.photo-miniature {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  background-color: var(--couleur-fond);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.photo-miniature:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(255, 228, 181, 0.3);
}

.photo-lien {
  display: block;
  position: relative;
  text-decoration: none;
}

.photo-thumb-wrapper {
  position: relative;
  overflow: hidden;
  background: var(--couleur-fond);
}

.photo-thumb {
  width: 100%;
  height: 450px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.photo-miniature:hover .photo-thumb {
  transform: scale(1.05);
}

.photo-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.9), rgba(0,0,0,0.3));
  padding: 25px;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.photo-miniature:hover .photo-overlay {
  opacity: 1;
}

.photo-mini-titre {
  color: var(--couleur-texte);
  font-size: 20px;
  margin: 0 0 10px 0;
  font-weight: bold;
}

.photo-mini-lieu {
  color: var(--couleur-lien);
  font-size: 14px;
  margin: 0;
}

/* Pagination */
.galerie-pagination {
  grid-column: 1 / -1;
  text-align: center;
  margin-top: 40px;
}

.galerie-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.galerie-pagination a,
.galerie-pagination .current {
  padding: 10px 15px;
  background-color: var(--couleur-fond-transparent);
  border: 1px solid var(--couleur-bordure);
  border-radius: var(--radius-sm);
  color: var(--couleur-lien);
  text-decoration: none;
  transition: all 0.3s ease;
}

.galerie-pagination a:hover {
  background-color: var(--couleur-lien);
  color: var(--couleur-fond);
  border-color: var(--couleur-lien);
}

.galerie-pagination .current {
  background-color: var(--couleur-lien);
  color: var(--couleur-fond);
  border-color: var(--couleur-lien);
}

/* Message galerie vide */
.galerie-vide {
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 20px;
  font-size: 18px;
  color: rgba(255, 255, 255, 0.6);
}


/* ============================================================
   17. (réservé — anciennement Galerie livraison, supprimée)
   ============================================================ */


/* ============================================================
   18. PAGE D'ACCUEIL PORTFOLIO
   ============================================================ */

/* En-tête portfolio */
.portfolio-header {
  text-align: center;
  margin: 60px auto;
  max-width: 800px;
}

.portfolio-titre {
  font-size: var(--titre-rubrique-taille);
  font-weight: var(--titre-rubrique-poids);
  color: var(--titre-rubrique-couleur);
  text-transform: none;
  letter-spacing: normal;
  margin: 0 0 20px 0;
}

@media (max-width: 768px) {
  .portfolio-titre {
    font-size: var(--titre-rubrique-taille-md);
  }
}

/* Masquer la baseline (slogan déjà dans le header) */
.portfolio-baseline {
  display: none;
}
.portfolio-galeries {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  gap: 40px;
  margin-top: 60px;
  padding: 0 20px;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 768px) {
  .portfolio-galeries {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* Carte de galerie */
.galerie-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.galerie-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 40px rgba(255, 228, 181, 0.4);
}

.galerie-card-lien {
  display: block;
  text-decoration: none;
  position: relative;
}

.galerie-card-image {
  width: 100%;
  height: 500px;
  background-size: cover;
  background-position: center;
  position: relative;
  transition: transform 0.3s ease;
}

.galerie-card:hover .galerie-card-image {
  transform: scale(1.05);
}

/* Overlay avec titre et compteur */
.galerie-card-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.95), rgba(0,0,0,0.3));
  padding: 40px 30px;
  transition: all 0.3s ease;
}

.galerie-card:hover .galerie-card-overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.98), rgba(0,0,0,0.5));
  padding: 50px 30px;
}

.galerie-card-titre {
  color: var(--couleur-texte);
  font-size: 28px;
  margin: 0 0 10px 0;
  font-weight: bold;
  transition: color 0.3s ease;
}

.galerie-card:hover .galerie-card-titre {
  color: var(--couleur-lien);
}

.galerie-card-count {
  color: rgba(255, 255, 255, 0.6);
  font-size: 16px;
  margin: 0;
  font-style: italic;
}


/* ============================================================
   19. PAGE BOUTIQUE - TIRAGES / PRINTS
   ============================================================ */

/* En-tête boutique */
.boutique-header {
  text-align: center;
  margin: 60px auto;
  max-width: 900px;
}

.boutique-titre {
  font-size: var(--titre-rubrique-taille);
  font-weight: var(--titre-rubrique-poids);
  color: var(--titre-rubrique-couleur);
  text-transform: none;
  letter-spacing: normal;
  margin: 0 0 20px 0;
}

@media (max-width: 768px) {
  .boutique-titre {
    font-size: var(--titre-rubrique-taille-md);
  }
}

.boutique-description {
  font-size: 20px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 768px) {
  .boutique-description {
    font-size: 16px;
  }
}

/* Grille des catégories de tirages */
.boutique-galeries {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  gap: 40px;
  margin-top: 60px;
  padding: 0 20px;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 80px;
}

@media (max-width: 768px) {
  .boutique-galeries {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* Carte de catégorie */
.boutique-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.boutique-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 40px rgba(255, 228, 181, 0.4);
}

.boutique-card-lien {
  display: block;
  text-decoration: none;
  position: relative;
}

.boutique-card-image {
  width: 100%;
  height: 500px;
  background-size: cover;
  background-position: center;
  position: relative;
  transition: transform 0.3s ease;
}

.boutique-card:hover .boutique-card-image {
  transform: scale(1.05);
}

/* Overlay avec titre et compteur */
.boutique-card-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.95), rgba(0,0,0,0.3));
  padding: 40px 30px;
  transition: all 0.3s ease;
}

.boutique-card:hover .boutique-card-overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.98), rgba(0,0,0,0.5));
  padding: 50px 30px;
}

.boutique-card-titre {
  color: var(--couleur-texte);
  font-size: 28px;
  margin: 0 0 10px 0;
  font-weight: bold;
  transition: color 0.3s ease;
}

.boutique-card:hover .boutique-card-titre {
  color: var(--couleur-lien);
}

.boutique-card-count {
  color: rgba(255, 255, 255, 0.6);
  font-size: 16px;
  margin: 0;
  font-style: italic;
}


/* ============================================================
   20. CATÉGORIE PRODUIT - PAGE INDIVIDUELLE
   ============================================================ */

/* En-tête de la catégorie */
.categorie-produit-header {
  text-align: center;
  margin: 60px auto 40px;
  max-width: 900px;
}

.categorie-produit-titre {
  font-size: var(--titre-rubrique-taille);
  font-weight: var(--titre-rubrique-poids);
  color: var(--titre-rubrique-couleur);
  text-transform: none;
  letter-spacing: normal;
  margin: 0 0 20px 0;
}

@media (max-width: 768px) {
  .categorie-produit-titre {
    font-size: var(--titre-rubrique-taille-md);
  }
}

.categorie-produit-description {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.6;
  margin: 20px 0;
}

.categorie-produit-choix {
  font-size: 20px;
  color: rgba(255, 255, 255, 0.6);
  margin: 30px 0 0 0;
  font-style: italic;
}

/* Grille des produits */
.produits-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 40px;
  margin: 60px auto;
  padding: 0 20px;
  max-width: 1200px;
}

@media (max-width: 768px) {
  .produits-grille {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* Carte produit */
.produit-card {
  background-color: var(--couleur-fond-clair);
  border-radius: var(--radius);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid var(--couleur-bordure);
}

.produit-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(255, 228, 181, 0.3);
}

.produit-card-lien {
  display: block;
  text-decoration: none;
}

/* Image produit */
.produit-image-wrapper {
  position: relative;
  overflow: hidden;
  background-color: var(--couleur-fond);
  aspect-ratio: 3/4;
}

.produit-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.produit-card:hover .produit-image {
  transform: scale(1.05);
}

/* Informations produit */
.produit-info {
  padding: 25px;
}

.produit-titre {
  color: var(--couleur-texte);
  font-size: 22px;
  margin: 0 0 15px 0;
  font-weight: bold;
}

.produit-prix {
  color: var(--couleur-lien);
  font-size: 24px;
  font-weight: bold;
  margin: 15px 0;
}

.produit-prix del {
  color: rgba(255, 255, 255, 0.4);
  font-size: 18px;
  margin-right: 10px;
}

.produit-prix ins {
  text-decoration: none;
}

/* Bouton produit */
.produit-actions {
  margin-top: 20px;
}

.produit-bouton {
  display: block;
  width: 100%;
  padding: 15px 20px;
  background-color: var(--couleur-lien) !important;
  color: var(--couleur-fond) !important;
  border: none !important;
  border-radius: var(--radius) !important;
  font-size: 16px !important;
  font-weight: bold !important;
  text-align: center;
  text-decoration: none !important;
  transition: all 0.3s ease;
  cursor: pointer;
}

.produit-bouton:hover {
  background-color: var(--couleur-lien-hover) !important;
  transform: scale(1.02);
  box-shadow: 0 4px 12px var(--couleur-bouton-hover-ombre);
}

/* Navigation */
.categorie-produit-navigation {
  text-align: center;
  margin: 60px 0;
  padding-top: 40px;
  border-top: 1px solid var(--couleur-bordure);
}

.retour-boutique {
  color: var(--couleur-lien);
  font-size: 16px;
  text-decoration: none;
  transition: color 0.3s ease;
}

.retour-boutique:hover {
  color: var(--couleur-lien-hover);
  text-decoration: underline;
}


/* Message vide */
.produits-vide {
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 20px;
  font-size: 18px;
  color: rgba(255, 255, 255, 0.6);
}

/* ===================================
   LIEN PANIER - ESPACE CLIENT
   =================================== */
.mon-espace-panier {
    margin-bottom: 1.5em;
}
.mon-espace-panier a {
    display: inline-block;
    padding: 10px 20px;
    background-color: transparent;
    color: #fff;
    border: 1px solid #fff;
    text-decoration: none;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.82em;
    transition: background-color 0.25s ease, color 0.25s ease;
}
.mon-espace-panier a:hover {
    background-color: #fff;
    color: #222;
}

/* ===================================
   NAVIGATION ENTRE PHOTOS / GALERIES
   =================================== */

.photo-nav-barre {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 700px;
  margin: 0 auto 28px auto;
  gap: 12px;
}

.photo-nav-barre a,
.photo-nav-barre span.nav-vide {
  font-size: 0.8em;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  text-decoration: none;
  transition: color 0.2s;
  white-space: nowrap;
  flex: 1;
}

.photo-nav-barre a:hover {
  color: #FFE4B5;
}

.photo-nav-prev { text-align: left; }
.photo-nav-galerie { text-align: center; flex: 1.2; }
.photo-nav-next { text-align: right; }

.photo-nav-barre span.nav-vide {
  pointer-events: none;
}


/* ============================================================
   21. ONGLETS TRILINGUES (composant réutilisable)
   Utilisé sur : single-photographie, page-original-prints,
   et toute page nécessitant un sélecteur de langue FR/EN/TH.
   ============================================================ */

/* Conteneur général */
.photo-legendes {
  margin: 40px auto;
  max-width: 900px;
  text-align: left;
}

/* Ligne des drapeaux */
.legendes-onglets {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 16px;
}

.legende-onglet {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 20px;
  background: transparent;
  color: rgba(255,255,255,0.5);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}

.legende-onglet:hover {
  border-color: rgba(255,255,255,0.4);
  color: rgba(255,255,255,0.85);
}

.legende-onglet.actif {
  border-color: rgba(255,215,0,0.5);
  color: #FFE4B5;
  background: rgba(255,215,0,0.06);
}

/* Panneau de chaque langue */
.legende-panneau {
  display: none;
  padding: 24px 28px;
  background: #f5f0e8;
  border-radius: 4px;
  animation: fadeInLegende 0.2s ease;
}

.legende-panneau.actif {
  display: block;
}

@keyframes fadeInLegende {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.legende-panneau p {
  color: #2a2a2a;
  line-height: 1.75;
  font-size: 0.95em;
  margin: 0;
}

/* Liens dans les panneaux crème : voir règles :not(.panneau-transparent) ci-dessous */

/* Forcer la couleur sombre pour tout le contenu des panneaux crème.
   Couvre : gras, italique, citation, code, spans WordPress, etc.
   Le !important est nécessaire car WordPress peut injecter des couleurs
   inline via l'éditeur Gutenberg (ex: <span style="color:#fff">). */
.legende-panneau:not(.panneau-transparent) p,
.legende-panneau:not(.panneau-transparent) span,
.legende-panneau:not(.panneau-transparent) strong,
.legende-panneau:not(.panneau-transparent) b,
.legende-panneau:not(.panneau-transparent) em,
.legende-panneau:not(.panneau-transparent) i,
.legende-panneau:not(.panneau-transparent) cite,
.legende-panneau:not(.panneau-transparent) blockquote,
.legende-panneau:not(.panneau-transparent) code {
  color: #2a2a2a !important;
}

/* Les liens dans les panneaux crème gardent leur propre couleur brune */
.legende-panneau:not(.panneau-transparent) a {
  color: #8B5E3C !important;
  text-decoration: underline;
  text-decoration-color: rgba(139,94,60,0.3);
  transition: color 0.2s;
}

.legende-panneau:not(.panneau-transparent) a:hover {
  color: #6B3A1F !important;
  text-decoration-color: rgba(107,58,31,0.6);
}

.legende-panneau.thai p {
  line-height: 1.95;
}

/* Variante transparente — pour les pages à fond sombre
   où le panneau ne doit pas avoir de fond crème
   (ex : page-original-prints) */
.legende-panneau.panneau-transparent {
  background: transparent;
  padding: 16px 0;
}

.legende-panneau.panneau-transparent p {
  color: rgba(255,255,255,0.85);
  line-height: 1.8;
}

.legende-panneau.panneau-transparent.thai p {
  line-height: 1.95;
}

.legende-panneau.panneau-transparent a {
  color: #FFE4B5;
}

/* Bouton "Formats & Prix" dans les onglets */
.bouton-formats-prix {
  display: inline-block;
  border: 1px solid rgba(255,228,181,0.4);
  color: #FFE4B5;
  padding: 10px 24px;
  text-decoration: none;
  font-size: 0.9em;
  letter-spacing: 0.08em;
  border-radius: 2px;
  background: rgba(255,228,181,0.05);
  transition: background 0.2s, border-color 0.2s;
}

.bouton-formats-prix:hover {
  background: rgba(255,228,181,0.12);
  border-color: rgba(255,228,181,0.7);
}


/* ============================================================
   22. PAGE FORMATS & PRIX
   ============================================================ */

/* Titre de section (📷 Format 2:3 — Nikon D850, etc.) */
.fp-format-titre {
  color: #FFE4B5;
  font-size: 0.85em;
  font-weight: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 6px;
}

/* Liste des photos concernées sous chaque format */
.fp-format-photos {
  color: rgba(255,255,255,0.5);
  font-size: 0.82em;
  font-style: italic;
  margin-bottom: 16px;
}

/* Cellule taille (Small, Medium, Large) */
.fp-taille {
  color: rgba(255,255,255,0.6);
  font-size: 0.85em;
}

/* Cellule prix */
.fp-prix {
  color: #FFE4B5;
}

/* Note de bas de page : style italique discret */
.legende-panneau.fp-note p {
  font-size: 0.82em;
  font-style: italic;
  color: rgba(255,255,255,0.5);
}

.legende-panneau.fp-note a {
  color: #FFE4B5;
}

/* Lien retour */
.fp-lien-retour {
  color: rgba(255,255,255,0.4);
  font-size: 0.85em;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: color 0.2s;
}

.fp-lien-retour:hover {
  color: #FFE4B5;
}
