/* ==========================================================================
   Château de Garonneau — Pages intérieures (Domaine, Vins, etc.)
   ========================================================================== */

/* ---------- Hero de page (avec photo) ---------- */
.page-hero{
  position: relative; height: 62vh; min-height: 420px;
  display:flex; align-items:flex-end;
  overflow:hidden;
}
.page-hero .hero-media{ position:absolute; inset:0; background-color:#3a3128; overflow:hidden; }
.page-hero .hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero .hero-overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(28,23,18,0.2), rgba(28,23,18,0.7)); }
.page-hero .temp-photo-badge{ position:absolute; left:1.2rem; bottom:1.2rem; z-index:2; background: rgba(0,0,0,0.4); color: rgba(255,255,255,0.85); }
.page-hero-content{ position:relative; z-index:2; padding: 0 2.4rem 3.5rem; color:#fff; max-width: var(--container); margin: 0 auto; width:100%; }
.page-hero-content h1{ color:#fff; }
.page-hero-content .eyebrow{ color:#E7C9AA; }

/* ---------- Bandeau clair (page sans photo hero) ---------- */
.light-header{ max-width: var(--container); margin: 0 auto; padding: 9.5rem 2rem 3.5rem; }
.light-header-sub{ max-width: 560px; margin: 1rem auto 0; }

/* ---------- Listes de faits (appellation) ---------- */
.fact-list{ list-style:none; margin-top: 1.8rem; border-top: 1px solid var(--border-soft); }
.fact-list li{
  display:flex; justify-content:space-between; align-items:center;
  padding: 0.8rem 0; border-bottom: 1px solid var(--border-soft);
  font-size: 0.92rem;
}
.fact-list li span{ color: var(--ink-soft); }
.fact-list li strong{ font-family: var(--font-display); font-weight:500; color: var(--ink); }

.appellation-logo-frame{
  aspect-ratio: 1/1; display:flex; align-items:center; justify-content:center;
  background: var(--sand);
}
.appellation-logo-frame img{ object-fit: contain; padding: 3rem; background: var(--sand); }

.portrait-frame{ aspect-ratio: 3/4; }

.editorial-note{ font-size: 0.82rem; font-style: italic; color: var(--ink-soft); margin-top: 1.5rem; opacity: 0.8; }

/* ---------- Fiches vins (page Les Vins) ---------- */
.wine-detail{ padding-top: 5rem; padding-bottom: 5rem; }
.wine-detail.alt{ background: var(--sand); max-width: none; }
.wine-detail.alt .section-grid{ max-width: var(--container); margin: 0 auto; }
.wine-detail-photo{ aspect-ratio: 3/4; }
.wine-detail-photo img{ object-fit: contain; padding: 2.5rem; background: var(--sand); }
.wine-anecdote{
  font-family: var(--font-display); font-style: italic; font-size: 1.02rem;
  color: var(--ink); border-left: 2px solid var(--bordeaux); padding-left: 1.1rem; margin: 1.4rem 0;
}
.wine-specs{ width:100%; border-collapse: collapse; margin: 1.6rem 0; font-size: 0.9rem; }
.wine-specs th, .wine-specs td{ text-align:left; padding: 0.6rem 0; border-bottom: 1px solid var(--border-soft); }
.wine-specs th{ color: var(--ink-soft); font-weight: 400; width: 44%; }
.wine-specs td{ color: var(--ink); font-weight: 500; }
.vintage-badges{ display:flex; align-items:center; gap: 0.6rem; flex-wrap:wrap; margin-bottom: 1.8rem; }
.eyebrow-inline{ font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-soft); margin-right: 0.4rem; }
.vintage-badge{
  display:inline-block; border: 1px solid var(--border-soft); padding: 0.3rem 0.7rem;
  font-size: 0.82rem; color: var(--ink);
}
.specs-disclaimer{ max-width: var(--container); margin: 0 auto 4rem; padding: 0 2rem; font-size: 0.78rem; color: var(--ink-soft); opacity: 0.75; }

/* ---------- Placeholder générique avec libellé ---------- */
.ph-label{ font-size: 0.75rem; color: var(--ink-soft); background: rgba(250,246,239,0.85); padding: 0.6rem 0.9rem; display:block; }

.medal-frame{ background: var(--sand); display:flex; align-items:center; justify-content:center; }
.medal-frame img{ object-fit: contain; padding: 2rem; max-height: 100%; }

/* ---------- Champs de formulaire génériques (contact, devis, commande étiquette) ---------- */
.form-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.2rem; margin-bottom: 1.2rem; }
@media (max-width: 560px){ .form-grid{ grid-template-columns: 1fr; } }
.form-field{ margin-bottom: 1.1rem; }
.form-field label{ display:block; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); margin-bottom: 0.4rem; }
select{
  font-family: var(--font-body); font-size: 0.85rem; padding: 0.55rem 0.7rem;
  border: 1px solid var(--border-soft); background: #fff; flex: 1; width: 100%;
}
input[type="number"], input[type="text"], input[type="email"], input[type="tel"]{
  font-family: var(--font-body); font-size: 0.92rem; padding: 0.65rem 0.8rem;
  border: 1px solid var(--border-soft); background:#fff; width:100%;
}
input[type="number"]:focus, input[type="text"]:focus, input[type="email"]:focus,
input[type="tel"]:focus, select:focus, textarea:focus{
  outline: none; border-color: var(--bordeaux);
}
.order-note{ font-size: 0.82rem; color: var(--ink-soft); background: var(--sand); padding: 0.9rem 1rem; margin: 1rem 0 1.4rem; }
.order-status{ margin-top: 1rem; font-size: 0.88rem; }
.order-status.success{ color: #2f6d3f; }
.order-status.error{ color: var(--bordeaux); }

/* ---------- Savoir-faire ---------- */
.intro-lead{
  max-width: 760px; margin: 0 auto 1rem; text-align:center;
  font-family: var(--font-display); font-size: 1.3rem; font-weight:400; color: var(--ink);
}
.process-detail{ padding-top: 4.5rem; padding-bottom: 4.5rem; }
.process-detail.alt{ background: var(--sand); max-width: none; }
.process-detail.alt .section-grid{ max-width: var(--container); margin: 0 auto; }
.process-step-num{ font-family: var(--font-display); color: var(--bordeaux); font-size: 1.1rem; display:block; margin-bottom: 0.8rem; }

.timeline-section{ background: var(--ink); max-width:none; padding: 6rem 2rem; }
.timeline-section .eyebrow{ color:#E7C9AA; }
.timeline-section h2{ color:#fff; margin-bottom: 3.5rem; }
.timeline{ max-width: var(--container); margin: 0 auto; display:grid; grid-template-columns: repeat(3,1fr); gap: 2rem; border-top: 1px solid rgba(255,255,255,0.15); padding-top: 2.4rem; }
@media (max-width: 800px){ .timeline{ grid-template-columns: 1fr; } }
.timeline-year{ font-family: var(--font-display); font-size: 1.6rem; color: var(--bordeaux); display:block; margin-bottom: 0.6rem; }
.timeline-point p{ color: rgba(255,255,255,0.75); font-size: 0.92rem; }

/* ---------- Actualités ---------- */
.article-detail{ padding-top: 4.5rem; padding-bottom: 4.5rem; }
.article-detail.alt{ background: var(--sand); max-width:none; }
.article-detail.alt .section-grid{ max-width: var(--container); margin: 0 auto; }
.news-empty{ text-align:center; max-width: 560px; margin: 0 auto 5rem; padding: 0 2rem; }
.news-empty p{ font-size: 0.92rem; color: var(--ink-soft); font-style: italic; }

/* ---------- Palmarès ---------- */
.awards-section{ max-width: 720px; }
.awards-section h2{ margin-bottom: 0.8rem; }
.awards-section .light-header-sub{ margin-bottom: 3rem; }
.awards-list{ list-style:none; border-top: 1px solid var(--border-soft); }
.awards-list li{
  display:flex; align-items:baseline; gap: 1.5rem;
  padding: 1rem 0; border-bottom: 1px solid var(--border-soft);
}
.awards-year{ font-family: var(--font-display); color: var(--bordeaux); font-size: 1.1rem; min-width: 3.2rem; flex-shrink:0; }
.awards-desc{ font-size: 0.94rem; color: var(--ink); }
.awards-section .specs-disclaimer{ margin-top: 2rem; padding: 0; }

/* ---------- Contact ---------- */
.contact-layout{ display:grid; grid-template-columns: 1fr 1.3fr; gap: 4rem; }
@media (max-width: 900px){ .contact-layout{ grid-template-columns: 1fr; } }
.contact-block{ margin-bottom: 2.2rem; }
.contact-block h3{ font-size: 1rem; margin-bottom: 0.5rem; }
.contact-block a{ color: var(--bordeaux); }
.contact-form-wrap form{ display:flex; flex-direction:column; gap: 1.1rem; }
.contact-form-wrap textarea{
  font-family: var(--font-body); font-size: 0.92rem; padding: 0.7rem 0.8rem;
  border: 1px solid var(--border-soft); background:#fff; resize: vertical; width:100%;
}
.map-section{ height: 380px; }
.map-section iframe{ width:100%; height:100%; border:0; filter: grayscale(15%); }

/* ---------- Devis multi-lignes ---------- */
.devis-form-section{ max-width: 760px; }
.devis-form{ display:flex; flex-direction:column; gap: 1.4rem; }
.devis-subheading{ font-size: 1.1rem; margin-top: 1rem; padding-top: 1.6rem; border-top: 1px solid var(--border-soft); }
.devis-form > .devis-subheading:first-child{ border-top:none; padding-top:0; margin-top:0; }
.devis-rows{ display:flex; flex-direction:column; gap: 1rem; }
.devis-row{
  display:grid; grid-template-columns: 1.4fr 1fr 0.8fr auto; gap: 0.8rem; align-items:end;
  padding: 1rem; background: var(--sand); border: 1px solid var(--border-soft);
}
@media (max-width: 640px){ .devis-row{ grid-template-columns: 1fr 1fr; } .devis-qty-field{ grid-column: span 2; } }
.devis-row .form-field{ margin-bottom: 0; }
.devis-row .form-field label{ font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); margin-bottom: 0.3rem; display:block; }
.devis-row select, .devis-row input{
  font-family: var(--font-body); font-size: 0.88rem; padding: 0.55rem 0.6rem;
  border: 1px solid var(--border-soft); background:#fff; width:100%;
}
.devis-row-remove{
  background:none; border:1px solid var(--border-soft); width: 34px; height: 34px; cursor:pointer;
  font-size: 1.1rem; color: var(--ink-soft); line-height:1;
}
.devis-row-remove:hover{ color: var(--bordeaux); border-color: var(--bordeaux); }

/* ---------- Pages légales ---------- */
.legal-page{ max-width: 760px; margin: 0 auto; padding: 9.5rem 2rem 6rem; }
.legal-page h1{ margin: 0.6rem 0 1.6rem; }
.legal-page h2{ font-size: 1.15rem; margin: 2.4rem 0 0.9rem; }
.legal-page p{ margin-bottom: 0.9rem; font-size: 0.95rem; }
.legal-page ul{ margin: 0 0 1.2rem 1.2rem; }
.legal-page li{ font-size: 0.95rem; color: var(--ink-soft); margin-bottom: 0.4rem; }
.legal-page li strong{ color: var(--ink); font-weight: 500; }
.legal-disclaimer{
  background: var(--sand); border-left: 2px solid var(--bordeaux);
  padding: 1rem 1.2rem; font-size: 0.85rem; font-style: italic; color: var(--ink-soft);
}
