/* Mouvance — blanc & bleu marine, élégance classique, très animé
   (structure et textes inchangés) */
:root {
  --olive: #102240;
  --olive-fonce: #0a1830;
  --bronze: #c8902a;
  --bronze-clair: #e0b45a;
  --blanc: #fdfdfc;
  --creme: #f6f4ee;
  --sauge: #e9ecf3;
  --texte: #22262e;
  --gris: #6b6f76;
  --ligne: #dfe2ea;
  --ease: cubic-bezier(.22,1,.36,1);
}

html { scroll-behavior: smooth; }
body { background: var(--blanc); overflow-x: hidden; }

/* Barre de progression */
#mv-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 100%;
  background: linear-gradient(90deg, var(--olive), var(--bronze));
  transform-origin: 0 50%; transform: scaleX(0); z-index: 100;
}

/* En-tête clair, translucide */
header.site {
  background: rgba(253,253,251,.85) !important;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: background .4s, border-color .4s, transform .5s var(--ease);
}
header.site.scrolled { border-bottom-color: var(--ligne); box-shadow: 0 10px 30px -18px rgba(55,70,44,.28) !important; }
header.site.mv-hide { transform: translateY(-100%); }
header.site .brand, header.site .nav-links a, header.site .nav-toggle { color: var(--olive-fonce) !important; }
header.site .nav-links a { position: relative; letter-spacing: .05em; }
header.site .nav-links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px;
  background: var(--bronze); transform: scaleX(0); transform-origin: right;
  transition: transform .5s var(--ease);
}
header.site .nav-links a:hover::after, header.site .nav-links a.active::after { transform: scaleX(1); transform-origin: left; }
header.site .nav-links a.active { color: var(--olive) !important; }
#cart-count { background: var(--olive) !important; color: #fff !important; }
@media (max-width: 800px) { header.site .nav-links { background: var(--blanc) !important; } }

/* Hero : grand, lumineux, en mouvement */
/* Only the homepage hero gets the big animated splash treatment; inner-page
   heroes stay compact (their own inline padding controls their height). */
.hero-home {
  position: relative; overflow: hidden;
  background: radial-gradient(120% 90% at 50% 0%, #fff 0%, var(--creme) 55%, var(--sauge) 100%) !important;
  padding: 56px 24px 64px !important;
  min-height: 0; display: flex; align-items: center;
}
.hero-home > .container { position: relative; z-index: 2; width: 100%; }
.hero-home::before {
  content: ""; position: absolute; inset: -30%;
  background: conic-gradient(from 0deg at 50% 50%, transparent 0 65%, rgba(74,93,58,.12) 78%, rgba(176,141,87,.16) 86%, transparent 94%);
  animation: mv-spin 26s linear infinite; z-index: 0;
}
.hero-home::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 60px;
  background: linear-gradient(to bottom, transparent, var(--blanc)); z-index: 1;
}
.hero-deco { border-color: rgba(74,93,58,.3) !important; animation: mv-float 8s ease-in-out infinite; }
.hero-deco.d2 { animation-duration: 11s; animation-delay: -3s; border-color: rgba(176,141,87,.35) !important; }
.hero-deco.d3 { animation-duration: 14s; animation-delay: -6s; }
.hero-home .logo-mark { animation: mv-drop 1.2s var(--ease) both; height: 64px; }

.hero-home h1 {
  font-size: clamp(1.9rem, 3.6vw, 2.8rem) !important; line-height: 1.1;
  letter-spacing: -.01em; color: var(--olive-fonce) !important; max-width: 720px; margin-inline: auto !important;
}
.hero-home h1 .mv-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; }
.hero-home h1 .mv-w > span { display: inline-block; transform: translateY(115%) rotate(4deg); animation: mv-up 1s var(--ease) forwards; }
.hero-home p { animation: mv-fade 1.2s .6s var(--ease) both; font-size: 0.98rem !important; color: var(--gris) !important; }
.hero-home .btn { animation: mv-fade 1.2s .85s var(--ease) both; }

/* Boutons vivants */
.btn { position: relative; overflow: hidden; transition: transform .4s var(--ease), box-shadow .4s, color .4s !important; }
.btn-or { background: var(--olive) !important; color: #fff !important; border-color: var(--olive) !important; }
.btn-or::before {
  content: ""; position: absolute; inset: 0; background: var(--bronze);
  transform: translateY(101%); transition: transform .5s var(--ease); z-index: -1;
}
.btn-or { z-index: 0; }
.btn-or:hover::before { transform: translateY(0); }
.btn:hover { transform: translateY(-3px); box-shadow: 0 14px 28px -14px rgba(55,70,44,.45); }
.btn-outline { color: var(--olive-fonce) !important; border-color: var(--olive-fonce) !important; }
.btn-outline:hover { background: var(--olive-fonce) !important; color: #fff !important; }

/* Sections */
section { position: relative; }
.section-alt { background: var(--creme) !important; }
#how-timeline .cine-section, #how-timeline .cine-section.alt { background: #fff !important; }
.section-title { font-size: clamp(1.9rem, 3.6vw, 2.8rem) !important; color: var(--olive-fonce) !important; letter-spacing: -.01em; }
.section-title::after {
  content: ""; display: block; width: 70px; height: 2px; background: var(--bronze);
  margin: 18px auto 0; transform: scaleX(0); transition: transform 1.2s var(--ease) .2s;
}
.section-title.mv-in::after { transform: scaleX(1); }

/* Révélations au défilement — plus amples */
.mv-reveal { opacity: 0; transform: translateY(60px) scale(.97); transition: opacity 1s var(--ease), transform 1.15s var(--ease); }
.mv-reveal.mv-in { opacity: 1; transform: none; }
.reveal, .cine-reveal { transition-timing-function: var(--ease) !important; }

/* Cartes */
.card, .step, .wine-card, .form-box, .contact-item, .info-block, .cine-stat {
  background: #fff !important; border: 1px solid var(--ligne) !important;
  transition: transform .6s var(--ease), box-shadow .6s var(--ease), border-color .4s !important;
}
.card:hover, .step:hover, .wine-card:hover, .contact-item:hover, .cine-stat:hover {
  transform: translateY(-10px) !important; border-color: var(--bronze-clair) !important;
  box-shadow: 0 32px 52px -30px rgba(55,70,44,.38) !important;
}
.num, .cine-num, .cine-visual-num { color: var(--bronze) !important; }
.wine-card-img { overflow: hidden; background: var(--creme) !important; }
.wine-card-img img { transition: transform 0.5s var(--ease); }
.wine-card:hover .wine-card-img img { transform: scale(1.04); }

/* Sections cinématiques en clair */
.cine-section { background: var(--blanc) !important; color: var(--texte) !important; }
.order-recap { background: var(--sauge) !important; color: var(--texte) !important; }
.order-recap-head .cine-heading { color: var(--olive-fonce) !important; }
.order-recap-copy h3 { color: var(--olive-fonce) !important; }
.cine-heading, .cine-title, .cine-section h2, .cine-section h3 { color: var(--olive-fonce) !important; }
.cine-text, .cine-subtitle, .cine-section p { color: var(--gris) !important; }
.cine-kicker { color: var(--bronze) !important; letter-spacing: .28em; }
.cine-visual { background: linear-gradient(145deg, #fff, var(--sauge)) !important; border: 1px solid var(--ligne); }
.cine-visual-mark { opacity: .85; }

/* Bandeau défilant */
/* Bureaux et pied de page clairs */
.office-section { background: var(--sauge) !important; color: var(--texte) !important; }
.office-section h3 { color: var(--olive-fonce) !important; }
.office-section a { color: var(--olive) !important; }
footer.site { background: var(--creme) !important; color: var(--gris) !important; border-top: 1px solid var(--ligne); }
footer.site strong, footer.site .brand { color: var(--olive-fonce) !important; }
footer.site a { transition: color .3s; }
footer.site a:hover { color: var(--bronze) !important; }
.footer-bottom { border-top-color: var(--ligne) !important; color: var(--gris) !important; }

input, select, textarea { transition: border-color .3s, box-shadow .3s; }
input:focus, select:focus, textarea:focus { border-color: var(--olive) !important; box-shadow: 0 0 0 3px rgba(74,93,58,.15); outline: none; }

/* Curseur suiveur (ordinateur) */
#mv-cursor {
  position: fixed; width: 34px; height: 34px; border: 1px solid var(--olive); border-radius: 50%;
  pointer-events: none; z-index: 99; transform: translate(-50%,-50%);
  transition: width .3s var(--ease), height .3s var(--ease), background .3s; mix-blend-mode: multiply;
}
#mv-cursor.big { width: 72px; height: 72px; background: rgba(176,141,87,.2); }
@media (hover: none) { #mv-cursor { display: none; } }

@keyframes mv-spin { to { transform: rotate(360deg); } }
@keyframes mv-float { 0%,100% { transform: translate(0,0); } 50% { transform: translate(20px,-26px); } }
@keyframes mv-up { to { transform: translateY(0) rotate(0); } }
@keyframes mv-fade { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes mv-drop { from { opacity: 0; transform: translateY(-34px) scale(.9); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .mv-reveal, .hero-home h1 .mv-w > span { opacity: 1 !important; transform: none !important; }
}

/* Catalogue épuré : pas de cadre, photo carrée, nom cliquable */
.wine-card, .wine-card:hover {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  transform: none !important; border-radius: 0 !important; overflow: visible !important;
  text-align: center;
}
.catalog-grid { gap: 48px 36px; }
.wine-card-img { border-radius: 0 !important; margin: 0 !important; background: #fff !important; aspect-ratio: 1 / 1; }
.wine-card-img img { padding: 0 !important; object-fit: contain; }
.wine-card:hover .wine-card-img img { transform: none; }
.wine-card-body { padding: 22px 0 0 !important; align-items: center; }
.wine-card-domaine { color: var(--marine) !important; font-size: .9rem !important; font-weight: 400 !important; letter-spacing: .6px !important; margin-bottom: 8px !important; }
.wine-card-body h3 { font-size: 1.3rem !important; font-weight: 700 !important; text-decoration: underline; text-underline-offset: 3px; margin-bottom: 10px !important; }
.wine-card-format { margin-bottom: 8px !important; font-size: .9rem !important; }
.wine-card-price { border-top: 0 !important; padding-top: 0 !important; font-size: .95rem !important; color: var(--marine) !important; }
.wine-card-case { font-size: .95rem; color: var(--marine); margin-top: 8px; }
.wine-card-cta { display: none !important; }

/* Schéma de curation */
.cure-title { text-align:center; font-family:'Instrument Serif',serif; color:var(--marine); font-size:1.7rem; margin:0 0 6px; font-weight:400; }
.cure-sub { text-align:center; color:var(--gris); font-size:.95rem; max-width:520px; margin:0 auto 30px; }
.cure-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; position:relative; }
.cure-steps::before { content:""; position:absolute; top:34px; left:16%; right:16%; border-top:2px dashed #b9b56a; z-index:0; }
.cure-step { position:relative; z-index:1; text-align:center; padding:0 6px; }
.cure-num { width:68px; height:68px; margin:0 auto 14px; border-radius:50%; background:#7d7a35; color:#f3efe2; font-family:'Instrument Serif',serif; font-size:1.6rem; display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 7px #fff; }
.cure-step:nth-child(2) .cure-num { background:#a8a43a; }
.cure-step:nth-child(3) .cure-num { background:#6d6753; }
.cure-step h4 { margin:0 0 8px; color:var(--marine); font-size:1.1rem; font-weight:700; }
.cure-dur { display:inline-block; background:#eeecd2; color:#5d5a22; border-radius:999px; padding:4px 14px; font-size:.82rem; font-weight:600; margin-bottom:10px; }
.cure-dur span { font-weight:400; opacity:.75; margin-right:4px; }
.cure-step p { color:var(--gris); font-size:.9rem; line-height:1.55; margin:0; }
.cure-bar { display:flex; height:30px; border-radius:999px; overflow:hidden; margin:30px auto 8px; max-width:760px; }
.cure-bar i { font-style:normal; font-size:.72rem; color:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; white-space:nowrap; }
.cure-bar i:nth-child(1){background:#7d7a35} .cure-bar i:nth-child(2){background:#a8a43a} .cure-bar i:nth-child(3){background:#6d6753}
.cure-note { text-align:center; font-size:.78rem; color:var(--gris); margin:0; }
@media (max-width:720px){ .cure-steps{grid-template-columns:1fr; gap:28px;} .cure-steps::before{display:none;} }

/* Fiches des labels ibériques */
.label-card { position:relative; border-top:5px solid var(--lc) !important; overflow:hidden; }
.label-noir{--lc:#1f1f1f} .label-rouge{--lc:#a63a2f} .label-vert{--lc:#6f8a3b} .label-blanc{--lc:#c9c7b8}
.label-tag { align-self:flex-start; background:var(--lc); color:#fff; font-size:.72rem; font-weight:700; letter-spacing:1.6px; padding:5px 14px; border-radius:999px; margin-bottom:14px; }
.label-blanc .label-tag { color:#4a4a42; border:1px solid #b5b3a3; }
.label-card h3 { font-size:1.15rem !important; }
.label-facts { list-style:none; margin:0 0 4px; padding:12px 0 0; border-top:1px solid var(--ligne); font-size:.82rem; }
.label-facts li { display:flex; justify-content:space-between; gap:12px; padding:5px 0; color:var(--marine); text-align:right; }
.label-facts li span { color:var(--gris); text-align:left; flex-shrink:0; }
.label-stock { margin-top:10px; font-size:.78rem; font-weight:600; color:#5d5a22; background:#eeecd2; border-radius:8px; padding:6px 10px; text-align:center; }
.label-noir { box-shadow:0 10px 28px -16px rgba(0,0,0,.35); }

/* Infos pratiques : même taille de texte que l'onglet À propos */
#how-timeline .cine-heading, #titulaires-permis .cine-heading, #a-savoir .cine-heading { font-size: clamp(1.1rem, 1.7vw, 1.4rem) !important; margin-bottom: 6px; }
#how-timeline .cine-text, #titulaires-permis .cine-text, #a-savoir .cine-text { font-size: 0.86rem !important; line-height: 1.42 !important; }
#titulaires-permis .cine-text, #a-savoir .cine-text { max-width: none; }
#titulaires-permis .cine-heading[style*="font-size"] { font-size: clamp(1.1rem, 1.7vw, 1.4rem) !important; }
