/* ================================================================
   pages.css — Les Lames de la Rose
   Styles partagés par toutes les pages internes (hors accueil).
   Chargé en PLUS de style.css sur chaque page secondaire.

   TABLE DES MATIÈRES
   ------------------------------------------------------------------
   1.  Bannière de page (hero compact en haut de chaque page)
   2.  Styles de page : À Propos
   3.  Styles de page : Galerie
   4.  Styles de page : Commandes
   5.  Styles de page : Contact
   6.  Media queries pages internes
================================================================ */


/* ----------------------------------------------------------------
   1. BANNIÈRE DE PAGE
   Remplace le hero plein écran pour les pages secondaires.
   Hauteur réduite (45vh), même esthétique : photo + dégradé + titre.
---------------------------------------------------------------- */

/* Conteneur de la bannière */
.page-banner {
  position: relative;
  height: 45vh;
  min-height: 320px;
  display: flex;
  align-items: flex-end;     /* Titre collé en bas de la bannière */
  overflow: hidden;
  /* Compense la navigation fixe (hauteur ~70px) */
  margin-top: 70px;
}

/* Photo de fond de la bannière */
.page-banner-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  /* Léger zoom au chargement via animation */
  animation: bannerZoom 1.2s ease forwards;
  transform: scale(1.04);
}

/* Animation : dézoom doux à l'entrée de page */
@keyframes bannerZoom {
  from { transform: scale(1.08); }
  to   { transform: scale(1.0); }
}

/* Dégradé de bas en haut pour lisibilité du titre */
.page-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10, 9, 8, 0.95) 0%,
    rgba(10, 9, 8, 0.4)  60%,
    rgba(10, 9, 8, 0.2)  100%
  );
}

/* Contenu textuel de la bannière (label + titre + séparateur) */
.page-banner-content {
  position: relative;
  z-index: 2;
  padding: 0 4rem 3rem;
  /* Animation d'entrée : monte depuis le bas */
  opacity: 0;
  animation: fadeUp 0.9s 0.2s forwards;
}

/* Titre principal de la page dans la bannière */
.page-banner-content h1 {
  font-family: 'Cinzel', serif;
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.1;
  margin-top: 0.6rem;
}

/* Filet doré sous le titre de bannière */
.page-banner-content .banner-divider {
  width: 50px;
  height: 1px;
  background: var(--gold);
  margin-top: 1rem;
}


/* ----------------------------------------------------------------
   2. PAGE : À PROPOS
   Portrait du forgeron + timeline de son parcours + valeurs.
---------------------------------------------------------------- */

/* Wrapper principal de la page à propos */
.about-page {
  padding: 6rem 4rem;
}

/* Grille intro : photo portrait | texte long */
.about-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 5rem;
  align-items: start;
  margin-bottom: 6rem;
}

/* Photo portrait collante (reste visible pendant le scroll du texte) */
.about-portrait {
  position: sticky;
  top: 100px;             /* Reste 100px sous la nav fixe */
}

.about-portrait img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: brightness(0.75) sepia(0.15);
  display: block;
}

/* Encadrement doré décoratif autour de la photo */
.about-portrait-frame {
  position: relative;
}

/* Coin décoratif en bas-droite de la photo */
.about-portrait-frame::after {
  content: '';
  position: absolute;
  bottom: -12px;
  right: -12px;
  width: 60px;
  height: 60px;
  border-bottom: 1px solid var(--gold);
  border-right: 1px solid var(--gold);
  pointer-events: none;
}

/* Légende sous la photo portrait */
.about-portrait-caption {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.85rem;
  color: var(--white-dim);
  text-align: center;
  margin-top: 1rem;
  letter-spacing: 0.06em;
}

/* Colonne de texte à propos */
.about-body h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 300;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.about-body .about-divider {
  width: 36px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 2rem;
}

/* Paragraphes du texte bio */
.about-body p {
  font-size: 0.92rem;
  line-height: 1.95;
  color: rgba(240, 235, 227, 0.7);
  margin-bottom: 1.4rem;
}

.about-story {
  position: relative;
  padding-left: 1.5rem;
  border-left: 1px solid rgba(201, 168, 76, 0.28);
}

.about-story .about-lead {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.25rem;
  line-height: 1.6;
  color: var(--white);
}

.about-story .about-lead strong,
.about-story .about-lead em {
  color: var(--gold-light);
  font-weight: 400;
}

.about-story blockquote {
  position: relative;
  margin: 2.2rem 0;
  padding: 1.4rem 1.5rem 1.4rem 2rem;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  color: rgba(240, 235, 227, 0.88);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.25rem;
  font-style: italic;
  line-height: 1.65;
}

.about-story blockquote::before {
  content: '“';
  position: absolute;
  left: 0;
  top: 0.55rem;
  color: var(--gold);
  font-size: 2.8rem;
  line-height: 1;
}

.about-story .about-welcome {
  margin-top: 2rem;
  color: var(--gold-light);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-style: italic;
}

/* Signature stylisée */
.about-signature {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.4rem;
  color: var(--gold);
  margin-top: 2rem;
  letter-spacing: 0.04em;
}

/* ── VALEURS ── */

/* Section des valeurs du forgeron */
.about-values {
  border-top: 1px solid var(--border);
  padding-top: 5rem;
}

/* En-tête de la section valeurs */
.about-values-header {
  text-align: center;
  margin-bottom: 4rem;
}

.about-values-header h2 {
  font-family: 'Cinzel', serif;
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 0.6rem;
}

/* Grille des 3 cartes de valeurs */
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}

/* Carte de valeur individuelle */
.value-card {
  background: var(--dark-card);
  border: 1px solid var(--border);
  padding: 3rem 2.5rem;
  transition: background 0.3s;
  position: relative;
  overflow: hidden;
}

.value-card::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  margin: 0.9rem 0 1.2rem;
  background: var(--gold);
  opacity: 0.7;
  order: 2;
}

.value-card {
  display: flex;
  flex-direction: column;
}

.value-card h3 { order: 1; }
.value-card p { order: 3; }

.value-card:hover {
  background: #1c1a17;
}

/* Icône SVG de la valeur */
.value-icon {
  width: 36px;
  height: 36px;
  margin-bottom: 1.5rem;
  opacity: 0.7;
}

/* Titre de la valeur */
.value-card h3 {
  font-family: 'Cinzel', serif;
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

/* Description de la valeur */
.value-card p {
  font-size: 0.85rem;
  color: rgba(240, 235, 227, 0.55);
  line-height: 1.8;
}

/* ── ATELIER ── */

/* Section photo de l'atelier (bande pleine largeur) */
.about-atelier {
  margin-top: 6rem;
  position: relative;
  height: 400px;
  overflow: hidden;
}

.about-atelier img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.5) sepia(0.2);
  transition: filter 1s;
}

.about-atelier:hover img {
  filter: brightness(0.65) sepia(0.1);
}

/* Texte centré sur la photo de l'atelier */
.atelier-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: rgba(10, 9, 8, 0.45);
}

.atelier-overlay h3 {
  font-family: 'Cinzel', serif;
  font-size: clamp(1.2rem, 2.5vw, 2rem);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 0.5rem;
}

.atelier-overlay p {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.05rem;
  color: rgba(240, 235, 227, 0.65);
  margin-top: 1rem;
  max-width: 500px;
}


/* ----------------------------------------------------------------
   3. PAGE : GALERIE
   Grille masonry-like de photos + filtre par catégorie.
---------------------------------------------------------------- */

/* Wrapper galerie */
.gallery-page {
  padding: 4rem;
}

/* Barre de filtres de catégorie */
.gallery-filters {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}

/* Bouton filtre individuel */
.filter-btn {
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--white-dim);
  background: transparent;
  border: 1px solid var(--border);
  padding: 0.6rem 1.4rem;
  cursor: pointer;
  transition: all 0.3s;
}

/* Filtre actif ou survolé : couleur dorée */
.filter-btn:hover,
.filter-btn.active {
  color: var(--gold);
  border-color: var(--gold);
  background: rgba(201, 168, 76, 0.06);
}

/* Grille principale des photos de galerie */
.gallery-grid {
  display: grid;
  /* 3 colonnes égales, chaque photo garde son ratio */
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;               /* Espacement minimal entre photos */
}

/* Item de galerie (conteneur du ratio) */
.gallery-grid-item {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  /* Certains items peuvent être plus grands (grand format) */
}

/* Item au format "large" : prend 2 colonnes */
.gallery-grid-item.large {
  grid-column: span 2;
}

/* Item au format "tall" : hauteur doublée */
.gallery-grid-item.tall {
  grid-row: span 2;
}

/* Ratio d'aspect de chaque photo (4:3 par défaut) */
.gallery-grid-item .ratio-box {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

/* Ratio 4:3 pour les items tall (visuellement 8:3 avec span 2) */
.gallery-grid-item.tall .ratio-box {
  aspect-ratio: 3 / 4;
  height: 100%;
}

/* Ratio pour les items large */
.gallery-grid-item.large .ratio-box {
  aspect-ratio: 16 / 7;
}

/* Photo dans la grille */
.gallery-grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.6) sepia(0.2);
  transition: filter 0.6s ease, transform 0.8s ease;
  display: block;
}

/* Survol : photo éclairée + léger zoom */
.gallery-grid-item:hover img {
  filter: brightness(0.85) sepia(0);
  transform: scale(1.05);
}

/* Overlay au survol : affiche le titre de la photo */
.gallery-grid-item .item-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 9, 8, 0);
  display: flex;
  align-items: flex-end;
  padding: 1.5rem;
  transition: background 0.4s;
}

.gallery-grid-item:hover .item-overlay {
  background: rgba(10, 9, 8, 0.4);
}

/* Titre de la photo affiché au survol */
.item-overlay-text {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.4s, transform 0.4s;
}

.gallery-grid-item:hover .item-overlay-text {
  opacity: 1;
  transform: translateY(0);
}

.item-overlay-text span {
  font-family: 'Cinzel', serif;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--white);
  display: block;
}

.item-overlay-text small {
  font-size: 0.75rem;
  color: var(--gold);
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
}


/* ----------------------------------------------------------------
   4. PAGE : COMMANDES
   Processus détaillé + formulaire de demande sur mesure.
---------------------------------------------------------------- */

/* Wrapper page commandes */
.orders-page {
  padding: 6rem 4rem;
}

/* Section processus : les étapes détaillées */
.orders-process {
  margin-bottom: 7rem;
}

/* En-tête de la section processus */
.orders-process-header {
  text-align: center;
  margin-bottom: 5rem;
}

.orders-process-header h2 {
  font-family: 'Cinzel', serif;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 0.6rem;
}

/* Grille des étapes : alternance gauche/droite */
.process-timeline {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Ligne verticale centrale de la timeline */
.process-timeline::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--border);
  transform: translateX(-50%);
}

/* Étape individuelle de la timeline */
.timeline-step {
  display: grid;
  /* Alternance : texte | point central | vide  ou  vide | point | texte */
  grid-template-columns: 1fr 80px 1fr;
  align-items: center;
  gap: 0;
  padding: 3rem 0;
}

/* Étapes paires : texte à droite */
.timeline-step:nth-child(even) .step-content { order: 3; text-align: left; }
.timeline-step:nth-child(even) .step-dot     { order: 2; }
.timeline-step:nth-child(even) .step-empty   { order: 1; }

/* Étapes impaires : texte à gauche */
.timeline-step:nth-child(odd) .step-content { order: 1; text-align: right; }
.timeline-step:nth-child(odd) .step-dot     { order: 2; }
.timeline-step:nth-child(odd) .step-empty   { order: 3; }

/* Contenu texte d'une étape */
.step-content {
  padding: 2.5rem;
  background: var(--dark-card);
  border: 1px solid var(--border);
  transition: border-color 0.3s;
}

.step-content:hover {
  border-color: rgba(201, 168, 76, 0.4);
}

/* Numéro doré de l'étape */
.step-content .step-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 3rem;
  font-weight: 300;
  color: var(--gold);
  opacity: 0.4;
  line-height: 1;
  margin-bottom: 0.5rem;
}

/* Titre de l'étape */
.step-content h3 {
  font-family: 'Cinzel', serif;
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}

/* Description de l'étape */
.step-content p {
  font-size: 0.85rem;
  color: rgba(240, 235, 227, 0.6);
  line-height: 1.8;
}

/* Point central de la timeline (cercle doré) */
.step-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

/* Cercle extérieur du point */
.step-dot-inner {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid var(--gold);
  background: var(--black);
  position: relative;
}

/* Point intérieur du cercle */
.step-dot-inner::after {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--gold);
  opacity: 0.6;
}

/* Colonne vide (côté opposé au texte) */
.step-empty {
  /* Vide intentionnellement pour l'effet timeline alternée */
}

/* ── SECTION DEVIS ── */

/* Séparateur entre processus et formulaire */
.orders-divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 0 0 6rem;
}

/* En-tête de la section formulaire */
.orders-form-header {
  text-align: center;
  margin-bottom: 4rem;
}

.orders-form-header h2 {
  font-family: 'Cinzel', serif;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 0.6rem;
}

.orders-form-header p {
  margin-top: 1.2rem;
  font-size: 0.88rem;
  color: rgba(240, 235, 227, 0.55);
  max-width: 500px;
  margin-inline: auto;
  line-height: 1.8;
}

/* Formulaire de demande de devis */
.order-form {
  max-width: 800px;
  margin: 0 auto;
}

/* Grille du formulaire : 2 colonnes pour les petits champs */
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

/* Groupe de champ (label + input) */
.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Champ qui prend toute la largeur */
.form-group.full {
  grid-column: span 2;
}

/* Label du champ */
.form-group label {
  font-family: 'Cinzel', serif;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Style commun : input, select, textarea */
.form-group input,
.form-group select,
.form-group textarea {
  background: var(--dark-card);
  border: 1px solid var(--border);
  color: var(--white);
  font-family: 'Raleway', sans-serif;
  font-size: 0.88rem;
  padding: 0.85rem 1rem;
  outline: none;
  transition: border-color 0.3s;
  /* Supprime l'apparence native du navigateur */
  -webkit-appearance: none;
  appearance: none;
}

/* Options du select héritent de la couleur de fond */
.form-group select option {
  background: var(--dark-card);
  color: var(--white);
}

/* Textarea non redimensionnable horizontalement */
.form-group textarea {
  resize: vertical;
  min-height: 140px;
}

/* Bordure dorée quand le champ est actif */
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--gold);
}

/* Ligne de placeholder plus claire */
.form-group input::placeholder,
.form-group textarea::placeholder {
  color: rgba(158, 150, 137, 0.45);
}

/* Bouton de soumission du formulaire */
.form-submit {
  text-align: center;
  margin-top: 2.5rem;
}

/* Note informative sous le bouton */
.form-note {
  font-size: 0.75rem;
  color: rgba(158, 150, 137, 0.45);
  margin-top: 1rem;
  font-style: italic;
}


/* ----------------------------------------------------------------
   5. PAGE : CONTACT
   Informations de contact + formulaire simple + carte/localisation.
---------------------------------------------------------------- */

/* Wrapper page contact */
.contact-page {
  padding: 6rem 4rem;
}

/* Grille contact : infos | formulaire */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 6rem;
  align-items: start;
}

/* Colonne d'informations de contact */
.contact-info h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 300;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.contact-info .about-divider {
  margin-bottom: 2rem;
}

/* Texte introductif de la page contact */
.contact-info > p {
  font-size: 0.88rem;
  line-height: 1.9;
  color: rgba(240, 235, 227, 0.6);
  margin-bottom: 2.5rem;
}

/* Liste des moyens de contact */
.contact-details {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 3rem;
}

/* Ligne de contact (icône + texte) */
.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

/* Icône dorée du contact */
.contact-item-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--gold);
}

/* Contenu textuel du contact */
.contact-item-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

/* Intitulé du contact (ex: "Email", "Instagram") */
.contact-item-text span:first-child {
  font-family: 'Cinzel', serif;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Valeur / lien */
.contact-item-text a,
.contact-item-text span:last-child {
  font-size: 0.88rem;
  color: rgba(240, 235, 227, 0.65);
  text-decoration: none;
  transition: color 0.3s;
}

.contact-item-text a:hover {
  color: var(--white);
}

/* Bloc réseaux sociaux */
.contact-social h4 {
  font-family: 'Cinzel', serif;
  font-size: 0.62rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
}

/* Liens sociaux en ligne */
.social-links {
  display: flex;
  gap: 1rem;
}

.social-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--white-dim);
  text-decoration: none;
  border: 1px solid var(--border);
  padding: 0.5rem 1rem;
  transition: all 0.3s;
}

.social-link:hover {
  color: var(--gold);
  border-color: var(--gold);
}

/* ── FORMULAIRE CONTACT ── */

/* Colonne formulaire de contact */
.contact-form-wrapper h3 {
  font-family: 'Cinzel', serif;
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}

/* Formulaire contact (réutilise les styles .form-group de commandes) */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* Grille 2 colonnes pour les premiers champs */
.contact-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

/* ── FAQ ── */

/* Section FAQ en bas de la page contact */
.contact-faq {
  margin-top: 7rem;
  border-top: 1px solid var(--border);
  padding-top: 5rem;
}

/* En-tête FAQ */
.contact-faq-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.contact-faq-header h2 {
  font-family: 'Cinzel', serif;
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 0.6rem;
}

/* Grille des questions : 2 colonnes */
.faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
}

/* Carte FAQ individuelle */
.faq-item {
  background: var(--dark-card);
  border: 1px solid var(--border);
  padding: 2.5rem;
  transition: background 0.3s;
}

.faq-item:hover {
  background: #1c1a17;
}

/* Question */
.faq-item h4 {
  font-family: 'Cinzel', serif;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 0.8rem;
  padding-left: 1.2rem;
  position: relative;
}

/* Tiret doré avant la question */
.faq-item h4::before {
  content: '—';
  position: absolute;
  left: 0;
  color: var(--gold);
  font-size: 0.6rem;
  top: 2px;
}

/* Réponse */
.faq-item p {
  font-size: 0.84rem;
  color: rgba(240, 235, 227, 0.55);
  line-height: 1.8;
}

.faq-item p a {
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(201, 168, 76, 0.45);
  transition: color 0.3s, border-color 0.3s;
}

.faq-item p a:hover {
  color: var(--white);
  border-color: var(--gold);
}


/* ----------------------------------------------------------------
   6. MEDIA QUERIES — PAGES INTERNES (≤ 900px)
---------------------------------------------------------------- */
@media (max-width: 900px) {

  /* Bannière plus petite sur mobile */
  .page-banner {
    height: 35vh;
    min-height: 260px;
  }

  .page-banner-content {
    padding: 0 1.5rem 2rem;
  }

  /* À Propos */
  .about-page {
    padding: 3rem 1.5rem;
  }

  .about-intro-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .about-story {
    padding-left: 1rem;
  }

  /* Portrait non collant sur mobile */
  .about-portrait {
    position: static;
  }

  .values-grid {
    grid-template-columns: 1fr;
  }

  /* Galerie */
  .gallery-page {
    padding: 3rem 1rem;
  }

  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Remet tous les items en format normal sur mobile */
  .gallery-grid-item.large,
  .gallery-grid-item.tall {
    grid-column: span 1;
    grid-row: span 1;
  }

  .gallery-grid-item .ratio-box,
  .gallery-grid-item.tall .ratio-box,
  .gallery-grid-item.large .ratio-box {
    aspect-ratio: 4 / 3;
    height: auto;
  }

  /* Commandes */
  .orders-page {
    padding: 3rem 1.5rem;
  }

  /* Timeline linéaire (plus d'alternance gauche/droite) */
  .process-timeline::before {
    left: 20px;
  }

  .timeline-step {
    grid-template-columns: 40px 1fr;
    padding: 1.5rem 0;
  }

  /* Toutes les étapes : point à gauche, texte à droite */
  .timeline-step:nth-child(even) .step-content,
  .timeline-step:nth-child(odd)  .step-content {
    order: 2;
    text-align: left;
  }

  .timeline-step:nth-child(even) .step-dot,
  .timeline-step:nth-child(odd)  .step-dot {
    order: 1;
  }

  /* Cache la colonne vide sur mobile */
  .step-empty {
    display: none;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .form-group.full {
    grid-column: span 1;
  }

  /* Contact */
  .contact-page {
    padding: 3rem 1.5rem;
  }

  .contact-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .contact-form-row {
    grid-template-columns: 1fr;
  }

  .faq-grid {
    grid-template-columns: 1fr;
  }
}
