/* Landing page machine (single-machine). Variables partagées avec l'archive. */
.machine-landing {
  --mch-red: #a6192e;
  --mch-red-dark: #8c1526;
  --mch-ink: #292828;
  --mch-grey: #6f6f6f;
  --mch-light: #ececec;
  --mch-band: #d8d8d8;
  --mch-line: #dcdcdc;
  --mch-line-soft: #e4e4e4;
  --mch-radius: 6px;
  --mch-text: 1.0625rem;
  --mch-leading: 1.4;
  --mch-display: var(--wp--preset--font-family--univers, "Univers", "Archivo Narrow", sans-serif);
  --mch-body: var(--wp--preset--font-family--calibri, Calibri, Carlito, sans-serif);
  font-family: var(--mch-body);
  color: var(--mch-grey);
}
.machine-landing h1,
.machine-landing h2,
.machine-landing h3 { font-family: var(--mch-display); color: var(--mch-ink); }
.machine-landing :where(p, li) { line-height: var(--mch-leading); }
.machine-landing .machine-section { padding-block: 4.5rem; }
.machine-landing .machine-section.machine-description { padding-top: 3rem; }
.machine-landing :is(h2, p):empty { display: none; }

/* --- Intitulé de section : un seul titre, identique sur toutes les sections --- */
.machine-landing .machine-eyebrow__label {
  font-family: var(--mch-display);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .875rem;
  font-weight: 600;
  color: var(--mch-red);
  display: flex;
  align-items: center;
  gap: .875rem;
  line-height: 1.4;
  margin: 0 0 2.25rem;
}
.machine-landing .machine-eyebrow__label::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--mch-red);
  flex: none;
}

/* --- Hero --- */
.machine-hero { padding-block: 3.5rem 4rem; }
.machine-hero__cols { gap: 5rem; }
.machine-landing .machine-breadcrumb {
  font-family: var(--wp--preset--font-family--universext, "Univers Extended"), sans-serif;
  font-size: .875rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--mch-grey);
  margin-bottom: 1.25rem;
}
.machine-landing .machine-breadcrumb a { color: inherit; font-family: inherit; text-decoration: none; }
.machine-landing .machine-breadcrumb a:hover { color: var(--mch-ink); }
.machine-landing .machine-breadcrumb .is-current,
.machine-landing .machine-breadcrumb a.is-current:hover { color: var(--mch-red); }
.machine-landing .machine-breadcrumb .wp-block-post-terms__separator { color: var(--mch-grey); padding-inline: .25rem; }
.machine-landing .machine-title {
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: 0;
  text-wrap: balance;
  color: var(--mch-red);
  margin: 0 0 1.25rem;
}
.machine-landing .machine-subtitle {
  font-family: var(--mch-display);
  font-size: 1.25rem;
  line-height: 1.35;
  font-weight: 500;
  color: var(--mch-red);
  margin: 0 0 1.25rem;
}
.machine-landing .machine-intro { font-size: var(--mch-text); line-height: var(--mch-leading); max-width: 35rem; margin: 0 0 1.75rem; }
.machine-landing .machine-intro p { line-height: inherit; }
.machine-landing .machine-intro > * { margin: 0 0 .75em; }
.machine-landing .machine-intro > :last-child { margin-bottom: 0; }
.machine-landing .machine-intro :is(ul, ol) { padding-left: 1.25rem; }
.machine-hero__actions { gap: 1.5rem; align-items: center; }
.machine-landing .machine-btn-primary .wp-block-button__link {
  background: var(--mch-red);
  color: #fff;
  border-radius: var(--mch-radius);
  padding: 12px 32px;
  font-family: var(--mch-display);
  text-transform: none;
  letter-spacing: 0;
  font-size: 1rem;
  font-weight: 600;
}
.machine-landing .machine-btn-primary .wp-block-button__link:hover { background: var(--mch-red-dark); }
.machine-landing .machine-btn-ghost .wp-block-button__link {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid var(--mch-line) !important;
  border-radius: 0 !important;
  padding: 0 0 .1875rem !important;
  color: var(--mch-ink) !important;
  font-family: var(--mch-display);
  text-transform: none;
  letter-spacing: 0;
  font-size: 1rem;
  font-weight: 600;
}
.machine-landing .machine-btn-ghost .wp-block-button__link:hover { border-bottom-color: var(--mch-red) !important; }
.machine-hero__media .wp-block-post-featured-image img {
  background: #f7f7f7;
  border: 1px solid var(--mch-line-soft);
  margin: 0;
}
.machine-hero__media img { width: 100%; height: auto; }

/* --- Chiffres clés --- */
.machine-figures {
  background: var(--mch-light);
  border-block: 1px solid var(--mch-line);
}
.machine-figures__grid {
  display: grid;
  grid-template-columns: repeat(var(--machine-figures-count, 4), minmax(0, 1fr));
}
.machine-figure {
  padding: 2.5rem 2.5rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  border-left: 1px solid #d3d3d3;
}
.machine-figure:first-child { border-left: 0; padding-left: 0; }
.machine-figure:last-child { padding-right: 0; }
.machine-figure__value {
  font-family: var(--mch-display);
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--mch-ink);
  line-height: 1;
}
.machine-figure__unit { font-size: 1.25rem; font-weight: 500; color: var(--mch-grey); }
.machine-figure__label {
  font-family: var(--mch-display);
  font-size: .9375rem;
  letter-spacing: .02em;
  color: var(--mch-grey);
}

/* --- Overview (bloc AFO) --- */
/* Surcharge de blocks/afo/afo.css, chargé après ces styles : le thème impose
   un fond gris sur .aof-blocks, un flex avec 50px de padding gauche et des
   cartes en width:35.3%. On repasse en grille de 3 cartes pleine largeur. */
.machine-afo { padding-block: 4.5rem 2rem; }
.machine-afo .aof__contener {
  margin-block: 0 !important;
  background: none !important;
  padding: 0 !important;
}
.machine-afo div.aof-blocks {
  background: none !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 2rem !important;
  padding: 0 !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  flex-direction: unset !important;
}
.machine-afo .aof__card {
  width: auto !important;
  max-width: none !important;
  background: var(--mch-light);
  border: 0 !important;
  border-top: 3px solid var(--mch-red) !important;
  border-radius: 0 0 var(--mch-radius) var(--mch-radius);
  padding: 2.25rem 2rem 2.5rem !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.machine-afo .aof_header_group { gap: 1rem; }
.machine-afo img.aof__icon { width: auto; height: 40px !important; }
.machine-afo .aof__cadre {
  font-family: var(--mch-display);
  text-transform: none;
  font-size: 1.375rem;
  font-weight: 700;
  letter-spacing: 0;
  margin: 0;
}
.machine-afo .aof__texte { margin: 0 !important; font-size: 1rem; line-height: 1.45; }
.machine-afo .aof__texte ul {
  list-style: none !important;
  padding-inline-start: 0 !important;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.machine-afo .aof__texte ul li {
  position: relative;
  padding-left: 1.5rem;
  line-height: 1.45;
}
.machine-afo .aof__texte ul li::before {
  content: "\2014";
  color: var(--mch-red);
  position: absolute;
  left: 0;
  top: 0;
}
.machine-afo .aof__texte p { margin: 0 0 .5rem; line-height: 1.45; }

/* --- Description + carrousel --- */
/* Filet pleine largeur : le groupe Description n'est pas en alignfull. Le
   border-image déborde sur les côtés sans créer de défilement horizontal. */
.machine-landing .machine-description {
  border-top: 1px solid var(--mch-line);
  border-image: linear-gradient(var(--mch-line), var(--mch-line)) 1 / 1px 0 0 0 / 0 100vmax;
}
.machine-description .wp-block-post-content > * {
  max-width: 62rem;
  margin-left: 0 !important;
  margin-right: auto !important;
}
.machine-description :is(p, li) { font-size: var(--mch-text); line-height: var(--mch-leading); }
.machine-description :is(ul, ol) { padding-left: 1.25rem; }
.machine-description li + li { margin-top: .25rem; }

.machine-carousel { margin-top: 3rem; display: flex; flex-direction: column; min-width: 0; }
.machine-carousel__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 3rem) / 3);
  gap: 1.5rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  cursor: grab;
}
.machine-carousel__track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; }
.machine-carousel__track img { -webkit-user-drag: none; user-select: none; }
.machine-carousel__track::-webkit-scrollbar { display: none; }
.machine-carousel__track:focus-visible { outline: 2px solid var(--mch-red); outline-offset: 4px; }
.machine-carousel__slide {
  margin: 0;
  scroll-snap-align: start;
  aspect-ratio: 4 / 3;
  background: #f7f7f7;
  border: 1px solid var(--mch-line-soft);
  border-radius: var(--mch-radius);
  overflow: hidden;
}
.machine-carousel__link { display: block; width: 100%; height: 100%; }
.machine-carousel__img { display: block; width: 100%; height: 100%; object-fit: contain; }
.machine-carousel__title {
  font-size: 1.5rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0;
  text-wrap: balance;
  margin: 0 0 1.5rem;
}
.machine-carousel__nav { display: flex; justify-content: flex-start; gap: .5rem; margin: 1.25rem 0 0; }
.machine-carousel__nav[hidden] { display: none; }
.machine-carousel__btn {
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--mch-red);
  color: #fff;
  border: 1px solid var(--mch-red);
  border-radius: 50%;
  cursor: pointer;
}
.machine-carousel__btn:hover:not(:disabled) { background: var(--mch-red-dark); border-color: var(--mch-red-dark); }
.machine-carousel__btn:disabled { background: #fff; color: var(--mch-grey); border-color: var(--mch-line); opacity: .6; cursor: default; }

/* --- Details & downloads --- */
.machine-landing .machine-details { border-top: 1px solid var(--mch-line); }
.machine-accordions {
  background: #fff;
  border: 1px solid var(--mch-line);
  border-radius: var(--mch-radius);
  overflow: hidden;
}
.machine-tab { border-bottom: 1px solid var(--mch-line-soft); margin: 0; padding: 0; }
.machine-tab:last-child { border-bottom: 0; }
.machine-tab > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: 1rem 1.5rem;
  font-family: var(--mch-display);
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--mch-ink);
}
.machine-tab > summary::-webkit-details-marker { display: none; }
.machine-tab > summary::marker { content: ""; }
.machine-tab > summary:hover,
.machine-tab[open] > summary { color: var(--mch-red); background: #fafafa; }
.machine-tab__icon { display: inline-flex; flex: none; color: var(--mch-red); }
/* H3 pour la hiérarchie SEO, sans changement visuel. */
.machine-landing .machine-tab__title { font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; line-height: 1.35; margin: 0; }
.machine-tab__body { padding: 1rem 1.5rem 1.75rem 3.625rem; }
.machine-tab__body > :first-child { margin-top: 0; }
.machine-tab__body > :last-child { margin-bottom: 0; }
.machine-tab__body img {
  max-width: min(100%, 640px);
  height: auto;
  border-radius: var(--mch-radius);
}
.machine-tab__body figure { margin: 0 0 1rem; }
/* 4. Les liens du thème sont en Univers Extended, bien plus large que le
   texte courant : dans le contenu, ils reprennent la police du paragraphe. */
.machine-landing :is(.machine-tab__body, .wp-block-post-content, .machine-intro) a:not(.machine-download__btn) {
  font-family: inherit;
  font-size: inherit;
  color: var(--mch-ink);
  text-decoration: underline;
  text-decoration-color: var(--mch-line);
  text-underline-offset: .2em;
}
.machine-landing :is(.machine-tab__body, .wp-block-post-content, .machine-intro) a:not(.machine-download__btn):hover {
  color: var(--mch-red);
  text-decoration-color: currentColor;
}
.machine-tab__body :is(p, li, td, th) { font-size: 1rem; line-height: 1.45; }
.machine-tab__body p { margin: 0 0 .625rem; }
.machine-tab__body table { width: 100%; border-collapse: collapse; }
.machine-tab__body table :is(td, th) {
  border: 0;
  border-bottom: 1px solid var(--mch-light);
  padding: .5rem 0;
  text-align: left;
}
.machine-tab__body table td:last-child { color: var(--mch-ink); }
/* Retrait par position absolue et non par grille : les <li> issus de YITH
   contiennent souvent <strong>Libellé</strong> puis la valeur en texte libre. */
.machine-tab__body ul { list-style: none; padding-left: 0; margin: 0 0 .625rem; }
.machine-tab__body ul li {
  position: relative;
  padding: .3125rem 0 .3125rem 1.25rem;
  border-bottom: 1px solid var(--mch-light);
  break-inside: avoid;
}
.machine-tab__body ul li:last-child { border-bottom: 0; }
.machine-tab__body ul li::before {
  content: "\2014";
  color: var(--mch-red);
  position: absolute;
  left: 0;
  top: .3125rem;
}
.machine-tab__body ul li > strong:first-child {
  display: inline-block;
  min-width: 14rem;
  padding-right: 1rem;
  color: var(--mch-ink);
  font-weight: 600;
  vertical-align: top;
}
.machine-specs .machine-tab__body ul { column-count: 2; column-gap: 3.5rem; }
.machine-specs .machine-tab__body ul li > strong:first-child { min-width: 10rem; }
.machine-tab__body .gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.machine-tab__body .gallery img { width: 100%; height: auto; border: 0 !important; }

.machine-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1.25rem; }
.machine-video iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }

.machine-downloads { display: flex; flex-direction: column; gap: .75rem; }
.machine-download {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1rem 1.25rem;
  background: #f7f7f7;
  border: 1px solid var(--mch-line);
  border-radius: var(--mch-radius);
}
.machine-tab__body .machine-download__name { margin: 0; font-size: 1rem; color: var(--mch-ink); line-height: 1.4; }
.machine-download__meta { font-size: .75rem; color: var(--mch-grey); text-transform: uppercase; }
.machine-tab__body .machine-download__desc { margin: .375rem 0 0; font-size: .8125rem; line-height: 1.4; color: var(--mch-grey); }
.machine-landing .machine-download__btn {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .625rem 1.25rem;
  background: var(--mch-light);
  color: var(--mch-red);
  border: 1px solid var(--mch-line);
  border-radius: 999px;
  font-family: var(--mch-display);
  font-size: .875rem;
  font-weight: 600;
  text-decoration: none;
}
.machine-landing .machine-download__btn:hover { background: var(--mch-red); color: #fff; border-color: var(--mch-red); }

/* --- Bandeau contact : centré, titre, texte puis formulaire --- */
.machine-landing .machine-contact {
  background: var(--mch-band);
  color: var(--mch-ink);
  text-align: center;
  padding-block: 5rem;
}
.machine-landing .machine-contact__title {
  font-size: clamp(1.375rem, 2.2vw, 1.75rem);
  line-height: 1.3;
  font-weight: 700;
  text-transform: none;
  margin: 0 0 .75rem;
}
.machine-landing .machine-contact__text {
  font-size: var(--mch-text);
  max-width: 40rem;
  margin: 0 auto 2.5rem !important;
}
.machine-contact .forminator-ui { text-align: left; }
.machine-contact .forminator-ui input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.machine-contact .forminator-ui textarea,
.machine-contact .forminator-ui select,
.machine-contact .forminator-ui .select2-selection {
  background: #fff !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--mch-ink) !important;
}
.machine-contact .forminator-ui input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.machine-contact .forminator-ui textarea { padding: .75rem .875rem !important; }
.machine-contact .forminator-ui :is(input, textarea):focus { box-shadow: inset 0 -2px 0 var(--mch-red) !important; outline: 0; }
.machine-contact .forminator-ui input.machine-interest-locked { color: #8a8a8a !important; cursor: default; }
.machine-contact .forminator-ui label {
  color: var(--mch-ink) !important;
  font-family: var(--mch-body);
  text-transform: none;
  letter-spacing: 0;
  font-size: .9375rem !important;
}
.machine-contact .forminator-ui button[type=submit] {
  background: var(--mch-red) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--mch-radius) !important;
  font-family: var(--mch-body);
  text-transform: none;
  letter-spacing: 0;
  font-size: 1rem !important;
  font-weight: 600;
  padding: .75rem 2.5rem !important;
}
.machine-contact .forminator-ui button[type=submit]:hover { background: var(--mch-red-dark) !important; }

/* --- Tablette et mobile --- */
@media (max-width: 1100px) {
  .machine-carousel__track { grid-auto-columns: calc((100% - 1.5rem) / 2); }
}
@media (max-width: 781px) {
  .machine-landing .machine-section,
  .machine-afo { padding-block: 3rem; }
  .machine-afo { padding-bottom: 1.75rem; }
  .machine-landing .machine-section.machine-description { padding-top: 2.25rem; }
  .machine-landing .machine-contact { padding-block: 3.5rem; }
  .machine-hero { padding-block: 1.75rem 2.25rem; }
  .machine-hero__cols { gap: 2rem; }
  .machine-landing .machine-title { font-size: 1.625rem; }
  .machine-hero__media .wp-block-post-featured-image { padding: 1rem; }
  .machine-figures__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .machine-figure { padding: 1.5rem 1.25rem; }
  .machine-figure:nth-child(odd) { border-left: 0; padding-left: 0; }
  .machine-figure__value { font-size: 1.75rem; }
  .machine-afo div.aof-blocks { grid-template-columns: 1fr !important; gap: 1.25rem !important; }
  .machine-carousel__track { grid-auto-columns: 82%; gap: 1rem; }
  .machine-tab > summary { padding: .875rem 1rem; font-size: 1rem; }
  .machine-tab__body { padding: .875rem 1rem 1.25rem; }
  .machine-specs .machine-tab__body ul { column-count: 1; }
  .machine-tab__body ul li > strong:first-child { display: block; min-width: 0; padding-right: 0; }
  .machine-tab__body .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .machine-download { flex-direction: column; align-items: flex-start; gap: .875rem; }
}
