/* Mise en page : en-tête, pied de page, accueil, pages de contenu. */

/* ---------- En-tête ---------- */
.cubik-entete {
  background: var(--cubik-blanc);
  border-bottom: 1px solid var(--cubik-filet);
  position: relative;
  z-index: 20;
}
.cubik-entete__barre {
  display: flex;
  align-items: center;
  gap: var(--cubik-esp-3);
  min-height: 4.5rem;
}
.cubik-entete__logo { display: inline-flex; align-items: center; }
.cubik-entete__logo:focus-visible { box-shadow: var(--cubik-focus); border-radius: var(--cubik-rayon-controle); outline: none; }
.cubik-entete__nav { margin-left: var(--cubik-esp-4); }
.cubik-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 0.25rem;
}
.cubik-menu a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.5rem 0.75rem;
  color: var(--cubik-encre);
  font-weight: 700;
  border-radius: var(--cubik-rayon-controle);
  text-decoration: none;
}
.cubik-menu a:hover, .cubik-menu a:focus-visible { color: var(--cubik-marine); background: var(--cubik-ciel); text-decoration: none; }
.cubik-menu a[aria-current="page"] { color: var(--cubik-marine); box-shadow: inset 0 -3px 0 var(--cubik-bleu); border-radius: 0; }
.cubik-entete__actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--cubik-esp-2);
}
.cubik-entete__compte {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.5rem 0.75rem;
  color: var(--cubik-marine);
  font-weight: 700;
  border-radius: var(--cubik-rayon-controle);
}
.cubik-entete__compte:hover, .cubik-entete__compte:focus-visible { background: var(--cubik-ciel); text-decoration: none; }
.cubik-entete__menu-bouton {
  display: none;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  min-width: 2.75rem;
  justify-content: center;
  padding: 0.5rem 0.75rem;
  background: none;
  border: 1px solid var(--cubik-marine);
  border-radius: var(--cubik-rayon-controle);
  color: var(--cubik-marine);
  font-weight: 700;
  cursor: pointer;
}
.cubik-entete__menu-bouton svg { flex: none; width: 1.25rem; min-width: 1.25rem; height: 1.25rem; }
.cubik-entete__menu-bouton .cubik-icone-fermer { display: none; }
.cubik-entete__menu-bouton[aria-expanded="true"] .cubik-icone-menu { display: none; }
.cubik-entete__menu-bouton[aria-expanded="true"] .cubik-icone-fermer { display: block; }

@media (max-width: 63.99em) {
  .cubik-entete__menu-bouton { display: inline-flex; }
  .cubik-entete__nav {
    display: none;
    position: absolute;
    left: 0; right: 0; top: 100%;
    min-height: calc(100vh - 100%);
    min-height: calc(100dvh - 100%);
    margin: 0;
    background: var(--cubik-blanc);
    padding: var(--cubik-esp-2) var(--cubik-marge-page) var(--cubik-esp-4);
  }
  .cubik-entete__nav.est-ouvert { display: block; }
  .cubik-menu { flex-direction: column; gap: 0; }
  .cubik-menu a { min-height: 3rem; width: 100%; border-radius: 0; border-bottom: 1px solid var(--cubik-filet); }
  .cubik-menu li:last-child a { border-bottom: 0; }
  .cubik-menu a[aria-current="page"] { box-shadow: inset 4px 0 0 var(--cubik-bleu); }
  .cubik-entete__compte { display: none; }
}
@media (max-width: 29.99em) {
  .cubik-entete__barre { gap: 0.5rem; }
  .cubik-entete__actions { gap: 0.25rem; }
  .cubik-entete__commander { padding-inline: 0.875rem; }
  .cubik-entete__menu-texte { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
  .cubik-entete__menu-bouton { padding: 0.5rem 0.625rem; }
}
.cubik-entete__compte svg { flex: none; width: 1.375rem; min-width: 1.375rem; height: 1.375rem; }
.cubik-menu__compte { display: none; }
@media (max-width: 63.99em) { .cubik-menu__compte { display: block; } }

/* ---------- Pied de page ---------- */
.cubik-pied {
  background: var(--cubik-marine);
  color: var(--cubik-blanc);
  border-top: 4px solid var(--cubik-bleu);
  padding-block: var(--cubik-esp-6) var(--cubik-esp-4);
  font-size: var(--cubik-taille-petit);
}
.cubik-pied__colonnes {
  display: grid;
  gap: var(--cubik-esp-5) var(--cubik-gouttiere);
}
.cubik-pied__colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cubik-pied__marque, .cubik-pied__coordonnees, .cubik-pied__legal { grid-column: 1 / -1; }
@media (min-width: 40em) { .cubik-pied__coordonnees, .cubik-pied__legal { grid-column: auto; } }
@media (min-width: 64em) { .cubik-pied__colonnes { grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; } .cubik-pied__marque { grid-column: auto; } }
.cubik-pied h2 {
  font-family: var(--cubik-police-corps);
  font-size: var(--cubik-taille-base);
  color: var(--cubik-blanc);
  margin-bottom: var(--cubik-esp-3);
}
.cubik-pied ul { list-style: none; margin: 0; padding: 0; }
.cubik-pied li + li { margin-top: 0.5rem; }
.cubik-pied a { color: var(--cubik-blanc); }
.cubik-pied a:hover, .cubik-pied a:focus-visible { text-decoration-color: var(--cubik-ciel); }
.cubik-pied address { font-style: normal; }
.cubik-pied__marque p { color: var(--cubik-ciel); max-width: 34ch; margin-top: var(--cubik-esp-3); }
.cubik-pied__bas {
  margin-top: var(--cubik-esp-5);
  padding-top: var(--cubik-esp-4);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  display: flex;
  flex-wrap: wrap;
  gap: var(--cubik-esp-2) var(--cubik-esp-4);
  justify-content: space-between;
  color: var(--cubik-ciel);
}
.cubik-pied__bas p { margin: 0; }
.cubik-pied__rprp { margin-top: var(--cubik-esp-3); color: var(--cubik-ciel); }

/* ---------- Héros de l'accueil : marine, liseré bleu, configurateur à droite ---------- */
.cubik-heros {
  padding-block: var(--cubik-esp-5) var(--cubik-esp-6);
}
.cubik-heros__grille {
  display: grid;
  gap: var(--cubik-esp-5) var(--cubik-gouttiere);
  align-items: start;
}
@media (min-width: 60em) {
  .cubik-heros__grille { grid-template-columns: 7fr 5fr; gap: var(--cubik-esp-6); align-items: center; }
}
.cubik-heros__texte h1 {
  margin-bottom: var(--cubik-esp-4);
  max-width: 16ch;
}
.cubik-heros__texte p {
  font-size: var(--cubik-taille-intro);
  max-width: 48ch;
  color: #E9F1F8;
  margin-bottom: var(--cubik-esp-4);
}
.cubik-heros__texte .cubik-actions { margin-top: var(--cubik-esp-4); }
.cubik-heros__mention { font-size: var(--cubik-taille-petit); color: var(--cubik-ciel); margin-top: var(--cubik-esp-3); }

/* Séquence d'entrée, une seule fois : le titre se pose, puis le total. Rien si reduced-motion. */
@media (prefers-reduced-motion: no-preference) {
  .cubik-heros__texte > * { animation: cubik-pose var(--cubik-duree-longue) var(--cubik-courbe) both; }
  .cubik-heros__texte > *:nth-child(2) { animation-delay: 60ms; }
  .cubik-heros__texte > *:nth-child(3) { animation-delay: 120ms; }
  .cubik-configurateur { animation: cubik-pose var(--cubik-duree-longue) var(--cubik-courbe) 150ms both; }
}
@keyframes cubik-pose {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

/* ---------- Mini-configurateur (héros) ---------- */
.cubik-configurateur {
  background: var(--cubik-blanc);
  color: var(--cubik-encre);
  border-radius: var(--cubik-rayon-surface);
  padding: var(--cubik-esp-4);
  display: grid;
  gap: var(--cubik-esp-3);
}
.cubik-configurateur .cubik-choix { gap: 0.375rem; }
.cubik-configurateur .cubik-choix legend { margin-bottom: 0.375rem; }
.cubik-configurateur h2 {
  font-family: var(--cubik-police-corps);
  font-size: var(--cubik-taille-base);
  color: var(--cubik-ardoise);
  font-weight: 700;
  margin: 0;
}
.cubik-configurateur .cubik-choix legend { font-size: var(--cubik-taille-base); }
.cubik-configurateur .cubik-carte-radio { padding: 0.375rem 0.75rem; min-height: 2.75rem; }
.cubik-configurateur .cubik-carte-radio__detail { font-size: 0.875rem; }
.cubik-configurateur__total {
  border-top: 2px solid var(--cubik-marine);
  padding-top: var(--cubik-esp-3);
  display: grid;
  gap: 0.125rem;
}
.cubik-configurateur__total-ligne {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--cubik-esp-3);
  flex-wrap: wrap;
}
.cubik-configurateur__total-libelle { font-weight: 700; color: var(--cubik-marine); }
.cubik-configurateur__montant {
  font-family: var(--cubik-police-titres);
  font-size: var(--cubik-taille-prix);
  font-weight: 700;
  color: var(--cubik-marine);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  transition: opacity var(--cubik-duree) var(--cubik-courbe);
}
.cubik-configurateur__montant small {
  font-family: var(--cubik-police-corps);
  font-size: var(--cubik-taille-base);
  font-weight: 400;
  color: var(--cubik-ardoise);
}
.cubik-configurateur__detail { color: var(--cubik-ardoise); font-size: 0.875rem; margin: 0; }
.cubik-configurateur__garantie { font-weight: 700; color: var(--cubik-marine); margin: 0.25rem 0 0; }
.cubik-configurateur__devise { color: var(--cubik-ardoise); font-size: 0.875rem; margin: 0; }
.cubik-configurateur .cubik-bouton { width: 100%; }

/* ---------- Sections de l'accueil ---------- */
.cubik-forfaits__bascule { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cubik-esp-3); margin-bottom: var(--cubik-esp-4); }
.cubik-forfaits__bascule p { margin: 0; color: var(--cubik-ardoise); }
.cubik-forfaits .cubik-tableau thead th { width: 33%; }
.cubik-forfaits .cubik-tableau thead th:first-child { width: 34%; }
.cubik-forfaits__cta td { text-align: left; }
.cubik-forfaits__note { margin-top: var(--cubik-esp-3); max-width: var(--cubik-mesure); }

.cubik-sauvegarde__grille {
  display: grid;
  gap: var(--cubik-esp-5) var(--cubik-gouttiere);
  align-items: start;
}
@media (min-width: 60em) { .cubik-sauvegarde__grille { grid-template-columns: 5fr 7fr; } }
/* Schéma de sauvegarde : cube (SVG) + trois destinations en HTML, connecteurs en CSS. Texte réel, jamais mis à l'échelle. */
.cubik-schema { margin: 0; display: grid; gap: var(--cubik-esp-3); }
.cubik-schema__site { display: flex; align-items: center; gap: var(--cubik-esp-3); font-weight: 700; color: var(--cubik-marine); }
.cubik-schema__site svg { flex: none; }
.cubik-schema__niveaux { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cubik-esp-3); position: relative; }
.cubik-schema__niveau {
  position: relative;
  background: var(--cubik-blanc);
  border: 1px solid var(--cubik-filet);
  border-left: 4px solid var(--cubik-marine);
  border-radius: 0 var(--cubik-rayon-surface) var(--cubik-rayon-surface) 0;
  padding: 0.75rem 1rem;
  display: grid;
  gap: 0.125rem;
}
.cubik-schema__niveau--base, .cubik-schema__niveau--externe, .cubik-schema__niveau--complete { border-left-color: var(--cubik-marine); } /* un seul liseré : la pastille « Incluse » distingue déjà la base */
.cubik-schema__niveau strong { color: var(--cubik-marine); }
.cubik-schema__niveau span { color: var(--cubik-ardoise); font-size: var(--cubik-taille-petit); }
.cubik-schema__niveau em { font-style: normal; font-weight: 700; font-size: var(--cubik-taille-petit); color: var(--cubik-marine); }
.cubik-schema__niveau--base em { color: var(--cubik-vert); }
.cubik-schema__note { font-size: var(--cubik-taille-petit); color: var(--cubik-ardoise); margin: 0; }
@media (min-width: 48em) {
  .cubik-schema { grid-template-columns: auto 1fr; column-gap: var(--cubik-esp-5); align-items: center; }
  .cubik-schema__site { flex-direction: column; text-align: center; gap: var(--cubik-esp-2); position: relative; }
  .cubik-schema__site::after { content: ""; position: absolute; left: 100%; top: 50%; width: calc(var(--cubik-esp-5) / 2); height: 2px; background: var(--cubik-bleu); }
  .cubik-schema__niveaux::before { content: ""; position: absolute; left: calc(-1 * var(--cubik-esp-5) / 2); top: 2rem; bottom: 2rem; width: 2px; background: var(--cubik-bleu); }
  .cubik-schema__niveau::before { content: ""; position: absolute; left: calc(-1 * var(--cubik-esp-5) / 2 - 4px); top: 50%; width: calc(var(--cubik-esp-5) / 2 + 4px); height: 2px; background: var(--cubik-bleu); }
  .cubik-schema__note { grid-column: 1 / -1; }
}

.cubik-personne {
  display: grid;
  gap: var(--cubik-esp-4);
  align-items: start;
}
@media (min-width: 48em) {
  .cubik-personne { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--cubik-esp-5); }
  .cubik-personne--sans-photo { grid-template-columns: 1fr; }
}
.cubik-personne__photo { display: block; aspect-ratio: 4 / 5; max-width: 22rem; }
.cubik-photo-support img { display: block; width: 100%; height: auto; border-radius: var(--cubik-rayon-surface); }
.cubik-ou__photo { display: block; max-width: 20rem; margin-top: var(--cubik-esp-4); }
.cubik-personne__coordonnees {
  display: grid;
  gap: var(--cubik-esp-3);
  margin-top: var(--cubik-esp-4);
}
@media (min-width: 40em) { .cubik-personne__coordonnees { grid-template-columns: repeat(3, auto); justify-content: start; gap: var(--cubik-esp-5); } }
.cubik-personne__coordonnees a { font-family: var(--cubik-police-titres); font-size: var(--cubik-taille-h4); font-weight: 700; color: var(--cubik-marine); }
.cubik-personne__coordonnees span:not(.cubik-chiffre__valeur) { display: block; color: var(--cubik-ardoise); font-size: var(--cubik-taille-petit); }
.cubik-personne__coordonnees .cubik-chiffre__valeur { font-size: var(--cubik-taille-h4); line-height: 1.55; }

.cubik-migration {
  border: 1px solid var(--cubik-filet);
  border-left: 4px solid var(--cubik-marine);
  border-radius: 0 var(--cubik-rayon-surface) var(--cubik-rayon-surface) 0;
  padding: var(--cubik-esp-4);
  display: grid;
  gap: var(--cubik-esp-3);
  align-items: center;
}
@media (min-width: 48em) { .cubik-migration { grid-template-columns: 1fr auto; gap: var(--cubik-esp-5); } }
.cubik-migration h2 { font-size: var(--cubik-taille-h3); margin-bottom: var(--cubik-esp-2); }
.cubik-migration p { margin: 0; max-width: var(--cubik-mesure); }

.cubik-cta-final {
  text-align: center;
  padding-block: var(--cubik-esp-6);
}
.cubik-cta-final h2 { margin-bottom: var(--cubik-esp-3); }
.cubik-cta-final p { max-width: 52ch; margin-inline: auto; margin-bottom: var(--cubik-esp-4); }
.cubik-cta-final .cubik-actions { justify-content: center; }
.cubik-cta-final .cubik-support { margin-top: var(--cubik-esp-4); color: var(--cubik-ardoise); }

/* ---------- Pages de contenu (gabarits page / single / archive) ---------- */
.cubik-page__bandeau { padding-block: var(--cubik-esp-5); }
.cubik-page__bandeau h1 { margin: 0; max-width: 22ch; }
.cubik-page__bandeau p { margin: var(--cubik-esp-2) 0 0; color: #E9F1F8; max-width: 60ch; font-size: var(--cubik-taille-lecture); }
.cubik-page__contenu { padding-block: var(--cubik-esp-5); }
.cubik-page__contenu > * { max-width: var(--cubik-mesure); }
.cubik-page__contenu .alignwide { max-width: var(--cubik-large); }
.cubik-page__contenu .alignfull { max-width: none; }
.cubik-page__contenu img { border-radius: var(--cubik-rayon-surface); }
.cubik-page__contenu ul, .cubik-page__contenu ol { padding-left: 1.25rem; }
.cubik-page--legal .cubik-page__contenu { font-size: var(--cubik-taille-lecture); line-height: 1.6; }
.cubik-page--legal .cubik-page__contenu h2 { font-size: var(--cubik-taille-h3); margin-top: var(--cubik-esp-5); }
.cubik-page--legal .cubik-page__contenu h3 { font-size: var(--cubik-taille-h4); margin-top: var(--cubik-esp-4); }
.cubik-page__meta { color: var(--cubik-ardoise); font-size: var(--cubik-taille-petit); }

/* Archive / liste d'articles (centre d'aide, phase 4) */
.cubik-liste-articles { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--cubik-esp-4); }
.cubik-liste-articles li { border-bottom: 1px solid var(--cubik-filet); padding-bottom: var(--cubik-esp-4); }
.cubik-liste-articles h2 { font-size: var(--cubik-taille-h4); margin-bottom: var(--cubik-esp-1); }

/* 404 : centrée, utile */
.cubik-404 { text-align: center; padding-block: var(--cubik-esp-7); }
.cubik-404 p { max-width: 52ch; margin-inline: auto; }
.cubik-404 .cubik-actions { justify-content: center; margin-top: var(--cubik-esp-4); }

/* Blocs WordPress courants dans le contenu : cohérence avec les composants */
.wp-block-buttons { gap: var(--cubik-esp-3); }
.wp-block-button__link { border: 2px solid var(--cubik-marine); }
.is-style-outline .wp-block-button__link, .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent; color: var(--cubik-marine);
}
.wp-block-table table { border-collapse: collapse; }
.wp-block-table thead th { background: var(--cubik-marine); color: var(--cubik-blanc); border-bottom: 3px solid var(--cubik-bleu); }
.wp-block-table tbody tr:nth-child(even) td { background: var(--cubik-ciel); }
.wp-block-quote { border-left: 4px solid var(--cubik-bleu); padding-left: var(--cubik-esp-4); margin-left: 0; font-style: normal; }
.wp-block-separator { border-color: var(--cubik-filet); }

/* Le configurateur est blanc dans le héros marine : ses boutons redeviennent marine */
.cubik-sur-marine .cubik-configurateur .cubik-bouton { background: var(--cubik-marine); border-color: var(--cubik-marine); color: var(--cubik-blanc); }
.cubik-sur-marine .cubik-configurateur .cubik-bouton:hover, .cubik-sur-marine .cubik-configurateur .cubik-bouton:focus-visible { background: var(--cubik-bleu-lien); border-color: var(--cubik-bleu-lien); color: var(--cubik-blanc); box-shadow: var(--cubik-focus); }

/* Sous le comparatif : ce qui est identique dans les deux forfaits */
.cubik-forfaits__inclus { margin-top: var(--cubik-esp-5); }
.cubik-forfaits__inclus h3 { font-size: var(--cubik-taille-h4); margin-bottom: var(--cubik-esp-2); }
.cubik-liste--deux-colonnes { columns: 2; column-gap: var(--cubik-esp-5); max-width: 60rem; }
.cubik-liste--deux-colonnes li { break-inside: avoid; margin: 0 0 0.5rem; }
@media (max-width: 47.99em) { .cubik-liste--deux-colonnes { columns: 1; } }
.cubik-configurateur .cubik-bouton { gap: 0.3em; }

/* Longueur de ligne ≤ 75 caractères dans les blocs de texte, même quand la colonne est plus large */
.cubik-encadre p, .cubik-migration p, .cubik-personne p, .cubik-accordeon__reponse p, .cubik-forfaits__note, .cubik-schema__note { max-width: var(--cubik-mesure); }

/* Tableau posé sur une section ciel : fond blanc pour garder l'alternance blanc / ciel (signature des tableaux Cubik) */
.cubik-section--ciel .cubik-tableau-enveloppe { background: var(--cubik-blanc); }
.cubik-section--ciel .cubik-tableau tbody tr:nth-child(odd) td, .cubik-section--ciel .cubik-tableau tbody tr:nth-child(odd) th { background: var(--cubik-blanc); }
@media (max-width: 47.99em) { .cubik-section--ciel .cubik-tableau--empile tbody tr:nth-child(odd) { background: var(--cubik-blanc); } }

/* Portables courts (≤ 820 px de haut) : la carte du configurateur se resserre pour garder total et bouton dans le premier écran */
@media (min-width: 60em) and (max-height: 820px) {
  .cubik-heros { padding-block: var(--cubik-esp-4) var(--cubik-esp-5); }
  .cubik-configurateur { gap: 0.625rem; padding: var(--cubik-esp-3) var(--cubik-esp-4); }
  .cubik-configurateur .cubik-choix { gap: 0.25rem; }
  .cubik-configurateur .cubik-choix legend { margin-bottom: 0.25rem; }
  .cubik-configurateur .cubik-carte-radio { padding-block: 0.25rem; row-gap: 0; }
  .cubik-configurateur__total { padding-top: 0.5rem; gap: 0; }
  .cubik-configurateur__garantie { margin: 0; }
  .cubik-configurateur h2 { display: none; }
}

/* Page produit (pages SEO des forfaits) */
.cubik-produit__accroche p { color: #E9F1F8; max-width: 60ch; font-size: var(--cubik-taille-lecture); margin: var(--cubik-esp-2) 0 0; }
.cubik-produit__grille { display: grid; gap: var(--cubik-esp-5) var(--cubik-gouttiere); align-items: start; }
@media (min-width: 60em) { .cubik-produit__grille { grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr); } }
.cubik-produit__grille > * { max-width: none; }
.cubik-produit__inclus ul { padding-left: 1.25rem; max-width: var(--cubik-mesure); }
.cubik-produit__inclus li + li { margin-top: 0.375rem; }
.cubik-produit__encart { border: 1px solid var(--cubik-filet); border-top: 4px solid var(--cubik-marine); border-radius: var(--cubik-rayon-surface); padding: var(--cubik-esp-4); display: grid; gap: var(--cubik-esp-3); position: sticky; top: var(--cubik-esp-3); }
.cubik-produit__prix { margin: 0; }
.cubik-produit__annuel { margin: 0; font-weight: 700; color: var(--cubik-marine); }
.cubik-produit__reco { margin: 0; display: grid; gap: 0.25rem; border-top: 1px solid var(--cubik-filet); padding-top: var(--cubik-esp-3); }
.cubik-produit__reco dt { font-weight: 700; color: var(--cubik-marine); font-size: var(--cubik-taille-petit); }
.cubik-produit__reco dd { margin: 0 0 0.5rem; }

.cubik-produit__prix { display: flex; align-items: baseline; gap: 0.5rem; }
.cubik-produit__unite { color: var(--cubik-ardoise); }
@media (max-width: 59.99em) { .cubik-produit__encart { order: -1; position: static; } }


/* Pages Panier et Commande (blocs WooCommerce) : pleine largeur du conteneur */
.cubik-page__contenu--large > * { max-width: none; }
.cubik-page__contenu--large .wp-block-woocommerce-cart, .cubik-page__contenu--large .wp-block-woocommerce-checkout { margin-top: 0; }
.cubik-page--commande .cubik-page__contenu, .cubik-page--panier .cubik-page__contenu { padding-block-start: var(--cubik-esp-4); }

/* ---------- Phase 4 : pages de contenu ---------- */
/* Fil d'Ariane : une ligne discrète sous le bandeau */
.cubik-fil { border-bottom: 1px solid var(--cubik-filet); }
.cubik-fil__liste { list-style: none; margin: 0; padding: 0.625rem 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; font-size: var(--cubik-taille-petit); color: var(--cubik-ardoise); }
.cubik-fil__item + .cubik-fil__item::before { content: "\203A"; margin-right: 0.5rem; color: var(--cubik-ardoise); }
.cubik-fil a { color: var(--cubik-bleu-lien); text-decoration: underline; }
.cubik-fil [aria-current] { color: var(--cubik-encre); }
/* Colonnes de cartes */
.cubik-col-4 { grid-column: span 12; }
.cubik-col-8 { grid-column: span 12; }
@media (min-width: 48em) { .cubik-col-4 { grid-column: span 4; } .cubik-col-8 { grid-column: span 8; } .cubik-deux-colonnes .cubik-col-6 { grid-column: span 6; } }
.cubik-carte { background: var(--cubik-blanc); border: 1px solid var(--cubik-filet); border-radius: var(--cubik-rayon-surface); padding: var(--cubik-esp-4); min-width: 0; }
.cubik-carte h3 { margin: 0 0 var(--cubik-esp-3); font-size: var(--cubik-taille-h4); }
.cubik-carte p:last-child { margin-bottom: 0; }
.cubik-carte--marine { background: var(--cubik-marine); color: var(--cubik-blanc); border-color: var(--cubik-marine); }
.cubik-carte--marine h3, .cubik-carte--marine a { color: var(--cubik-blanc); }
.cubik-section--ciel .cubik-carte { border-color: transparent; }
/* Listes : coches vertes réservées aux inclusions réelles ; tout le reste en puces standard */
.cubik-liste--coches { list-style: none; padding-left: 0; }
.cubik-liste--coches li { position: relative; padding-left: 1.75rem; }
.cubik-liste--coches li::before { content: ""; position: absolute; left: 0; top: 0.35em; width: 1rem; height: 0.55rem; border-left: 2px solid var(--cubik-vert); border-bottom: 2px solid var(--cubik-vert); transform: rotate(-45deg); }
/* Engagements chiffrés (Pourquoi Cubik) */
/* Tableau des tarifs : lignes principales en gras */
.cubik-tableau .cubik-ligne-principale th, .cubik-tableau .cubik-ligne-principale td { font-weight: 700; }
/* Cas concrets (sauvegarde) */
.cubik-cas { display: grid; gap: var(--cubik-esp-4); }
@media (min-width: 48em) { .cubik-cas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cubik-cas__niveau { display: inline-block; margin-top: var(--cubik-esp-2); font-weight: 700; color: var(--cubik-marine); }
/* Formulaires maison (support, soumission) */
.cubik-formulaire { display: grid; gap: var(--cubik-esp-4); max-width: 44rem; }
.cubik-formulaire .cubik-champ textarea { min-height: 8rem; }
.cubik-formulaire__cases { display: grid; gap: 0.5rem; }
.cubik-formulaire__pot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cubik-formulaire__ok { border-left: 4px solid var(--cubik-vert); background: #E3F1E8; padding: var(--cubik-esp-3) var(--cubik-esp-4); }
.cubik-formulaire__erreur { border-left: 4px solid var(--cubik-erreur); background: var(--cubik-erreur-fond); padding: var(--cubik-esp-3) var(--cubik-esp-4); }
/* Coordonnées en grand (support) */
.cubik-coordonnees { display: grid; gap: var(--cubik-esp-3); }
.cubik-coordonnees a { font-family: var(--cubik-police-titres); font-size: var(--cubik-taille-h3); font-weight: 700; color: var(--cubik-marine); text-decoration: none; }
.cubik-coordonnees a:hover, .cubik-coordonnees a:focus-visible { text-decoration: underline; }
/* Centre d'aide : sections et articles */
.cubik-aide__sections { display: grid; gap: var(--cubik-esp-4); }
@media (min-width: 48em) { .cubik-aide__sections { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cubik-aide__articles { list-style: none; margin: 0; padding: 0; }
.cubik-aide__articles li + li { margin-top: 0.5rem; }
.cubik-aide__articles a { text-decoration: underline; }
.cubik-prose .cubik-encadre { margin: var(--cubik-esp-4) 0; }
.cubik-prose ol.cubik-etapes-article { counter-reset: etape; list-style: none; padding-left: 0; display: grid; gap: var(--cubik-esp-3); }
.cubik-prose ol.cubik-etapes-article > li { position: relative; padding-left: 3rem; counter-increment: etape; }
.cubik-prose ol.cubik-etapes-article > li::before { content: counter(etape); position: absolute; left: 0; top: 0; width: 2rem; height: 2rem; border-radius: 50%; background: var(--cubik-marine); color: var(--cubik-blanc); font-family: var(--cubik-police-titres); font-weight: 700; display: grid; place-items: center; }
.cubik-prose table { width: 100%; border-collapse: collapse; font-size: var(--cubik-taille-petit); }
.cubik-prose th, .cubik-prose td { text-align: left; vertical-align: top; padding: 0.625rem 0.75rem; border-bottom: 1px solid var(--cubik-filet); }
.cubik-prose thead th { background: var(--cubik-marine); color: var(--cubik-blanc); border-bottom: 3px solid var(--cubik-bleu); }
.cubik-prose kbd { font-family: inherit; border: 1px solid var(--cubik-bordure-controle); border-radius: 3px; padding: 0 0.35rem; background: var(--cubik-ciel); }
/* Recherche de domaine hors configurateur */
.cubik-recherche-domaine { display: grid; gap: var(--cubik-esp-3); max-width: 40rem; }
.cubik-recherche-domaine__ligne { display: flex; flex-wrap: wrap; gap: var(--cubik-esp-3); }
.cubik-recherche-domaine__ligne input { flex: 1 1 14rem; }
/* Carte du Québec (SVG) */
.cubik-quebec { max-width: 22rem; margin: 0; }
.cubik-quebec svg { width: 100%; height: auto; }
/* Mon compte (WooCommerce) habillé */
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation a { color: var(--cubik-marine); font-weight: 700; }
.woocommerce-MyAccount-content { margin-top: var(--cubik-esp-4); max-width: none; }
.woocommerce-MyAccount-content table { width: 100%; border-collapse: collapse; }
.woocommerce-MyAccount-content th, .woocommerce-MyAccount-content td { text-align: left; padding: 0.625rem 0.75rem; border-bottom: 1px solid var(--cubik-filet); vertical-align: top; }
.woocommerce-MyAccount-content thead th { background: var(--cubik-marine); color: var(--cubik-blanc); }
.woocommerce-MyAccount-content .woocommerce-button, .woocommerce-MyAccount-content .button { display: inline-block; padding: 0.5rem 1rem; background: var(--cubik-marine); color: var(--cubik-blanc); border-radius: var(--cubik-rayon-controle); text-decoration: none; font-weight: 700; border: 0; }
.woocommerce-message, .woocommerce-info { border-left: 4px solid var(--cubik-bleu); background: var(--cubik-ciel); padding: var(--cubik-esp-3) var(--cubik-esp-4); margin-bottom: var(--cubik-esp-4); list-style: none; }
.woocommerce-error { border-left: 4px solid var(--cubik-erreur); background: var(--cubik-erreur-fond); padding: var(--cubik-esp-3) var(--cubik-esp-4); list-style: none; margin-bottom: var(--cubik-esp-4); }
.woocommerce form .form-row { margin-bottom: var(--cubik-esp-3); }
.woocommerce form .form-row label { display: block; font-weight: 700; margin-bottom: 0.25rem; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword { max-width: 28rem; }
.woocommerce-form-login .button, .woocommerce-form-register .button, .woocommerce-ResetPassword .button { padding: 0.75rem 1.25rem; background: var(--cubik-marine); color: var(--cubik-blanc); border: 0; border-radius: var(--cubik-rayon-controle); font-weight: 700; cursor: pointer; }
.woocommerce-MyAccount-content .cubik-encadre { margin-top: var(--cubik-esp-4); }
.cubik-page__contenu.cubik-prose h2 { font-size: var(--cubik-taille-h3); margin-top: var(--cubik-esp-5); }
.cubik-page__contenu.cubik-prose h3 { font-size: var(--cubik-taille-h4); margin-top: var(--cubik-esp-4); }
kbd { font-family: inherit; font-size: 0.9em; border: 1px solid var(--cubik-bordure-controle); border-radius: 3px; padding: 0 0.35rem; background: var(--cubik-blanc); }
/* Mon compte : navigation en colonne, contenu large (la grille WooCommerce 30/70 et la mesure de lecture sont écartées) */
.woocommerce-account .cubik-page__contenu .entry-content > .woocommerce { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--cubik-esp-4); }
@media (min-width: 48em) { .woocommerce-account .cubik-page__contenu .entry-content > .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 14rem minmax(0, 1fr); gap: var(--cubik-esp-5); } } /* deux colonnes seulement quand la navigation du compte est là (pas sur Connexion / Inscription) */
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: auto !important; margin: 0 !important; }
.woocommerce-MyAccount-navigation ul { flex-direction: column; }
.woocommerce-MyAccount-navigation a { display: block; }
.woocommerce-MyAccount-content .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-orders-table__cell-order-actions .button { white-space: nowrap; }
.cubik-page__contenu > .entry-content { max-width: none; }
.cubik-page__contenu > .entry-content > * { max-width: var(--cubik-mesure); }
.woocommerce-account .cubik-page__contenu > .entry-content > .woocommerce { max-width: none; }
.woocommerce-account .col2-set { display: grid; gap: var(--cubik-esp-5); max-width: none; grid-column: 1 / -1; }
.woocommerce-account .woocommerce .col2-set .col-1, .woocommerce-account .woocommerce .col2-set .col-2 { float: none; width: auto; max-width: none; min-width: 0; }
.woocommerce-account .cubik-article__texte > .entry-content { max-width: none; } /* Mon compte : la mesure de 68 caractères ne vaut que pour la prose des articles */
.woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 0.5rem; }
@media (min-width: 48em) { .woocommerce-account .col2-set { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.woocommerce-account .entry-content > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; margin: 0; }
@media (min-width: 48em) { .woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; } .woocommerce-account .woocommerce-MyAccount-content { grid-column: 2; } }

/* Revue DA phase 4 */
.cubik-etapes + p { margin-top: var(--cubik-esp-4); }
.cubik-tableau-enveloppe > table { margin: 0; }
.cubik-aide__sections .cubik-carte { border: 0; padding: 0; background: transparent; }
.cubik-aide__sections h3 { border-bottom: 1px solid var(--cubik-filet); padding-bottom: 0.5rem; }
.cubik-aide__sections h3 a, .cubik-aide__articles a { text-decoration: none; }
.cubik-aide__sections h3 a:hover, .cubik-aide__sections h3 a:focus-visible, .cubik-aide__articles a:hover, .cubik-aide__articles a:focus-visible { text-decoration: underline; }
/* Article du centre d'aide : texte + colonne « Dans cette section » */
.cubik-article { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--cubik-esp-5); align-items: start; }
.cubik-article__texte { min-width: 0; }
@media (min-width: 64em) { .cubik-article { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--cubik-esp-6); } .cubik-article__aside { position: sticky; top: var(--cubik-esp-5); } }
.cubik-article__aside h2 { font-size: var(--cubik-taille-h4); margin: 0 0 var(--cubik-esp-3); padding-bottom: 0.5rem; border-bottom: 1px solid var(--cubik-filet); }
.cubik-article__aside ul { list-style: none; margin: 0; padding: 0; }
.cubik-article__aside li + li { margin-top: 0.5rem; }
.cubik-article__aside a { text-decoration: none; }
.cubik-article__aside a:hover, .cubik-article__aside a:focus-visible { text-decoration: underline; }
.cubik-article__aside [aria-current] { font-weight: 700; color: var(--cubik-marine); }
/* Pourquoi Cubik : colonnes inégales, sans cartes */
.cubik-col-3 { grid-column: span 12; }
@media (min-width: 48em) { .cubik-col-3 { grid-column: span 3; } }
/* Mon compte : liste simple, item actif marqué d'un filet bleu ; formulaires de connexion pleine colonne ; astérisques discrets */
.woocommerce-MyAccount-navigation a { border: 0; border-left: 3px solid transparent; border-radius: 0; padding: 0.5rem 0.75rem; display: block; text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: transparent; color: var(--cubik-marine); border-left-color: var(--cubik-bleu); text-decoration: none; }
.woocommerce-account .col2-set .woocommerce-form-login, .woocommerce-account .col2-set .woocommerce-form-register { max-width: none; }
.woocommerce form .form-row .required { color: var(--cubik-ardoise); text-decoration: none; }
.woocommerce-account .col2-set::before, .woocommerce-account .col2-set::after { display: none; } /* le clearfix WooCommerce occuperait des cellules de la grille */
.cubik-article:not(:has(.cubik-article__aside)) { display: block; }
.cubik-article__texte > * { max-width: var(--cubik-mesure); }
.cubik-article__texte h2 { font-size: var(--cubik-taille-h3); margin-top: var(--cubik-esp-5); }
.cubik-article__texte h3 { font-size: var(--cubik-taille-h4); margin-top: var(--cubik-esp-4); }
.cubik-page__contenu.cubik-article > * { max-width: none; }
@media (max-width: 40em) { .cubik-prose table { table-layout: fixed; } .cubik-prose td, .cubik-prose th { overflow-wrap: anywhere; } }
.cubik-formulaire__actions { display: flex; flex-wrap: wrap; gap: var(--cubik-esp-3); }
.cubik-grille.cubik-deux-colonnes { align-items: start; } /* chaque boîte à sa hauteur, pas de vide de remplissage */
.cubik-support-ligne { padding-top: 0; }
/* Carte du Québec (Pourquoi Cubik) : un trait, un point */
.cubik-ou { text-align: left; }
.cubik-carte-qc { display: block; width: 100%; max-width: 20rem; height: auto; margin: 0 0 var(--cubik-esp-3); }
.cubik-carte-qc__terre { fill: var(--cubik-ciel); stroke: var(--cubik-marine); stroke-width: 1.5; stroke-linejoin: round; }
.cubik-carte-qc__point { fill: var(--cubik-bleu); stroke: var(--cubik-blanc); stroke-width: 2; }
.cubik-carte-qc__etiquette { font-family: var(--cubik-police-corps); font-size: 13px; font-weight: 700; fill: var(--cubik-marine); }
.cubik-ou h3 { margin-top: 0; }
/* ---------- Phase 5 : pages légales (sommaire + texte, versions) ---------- */
.cubik-legal__grille { display: grid; gap: var(--cubik-esp-5); align-items: start; }
@media (min-width: 64em) { .cubik-legal__grille { grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: var(--cubik-esp-6); } .cubik-legal__sommaire { position: sticky; top: var(--cubik-esp-5); } }
.cubik-legal__sommaire ol { margin: 0; padding-left: 1.25rem; font-size: var(--cubik-taille-petit); }
.cubik-legal__sommaire li + li { margin-top: 0.4rem; }
.cubik-legal__sommaire a { text-decoration: none; color: var(--cubik-marine); }
.cubik-legal__sommaire a:hover, .cubik-legal__sommaire a:focus-visible { text-decoration: underline; }
.cubik-legal__version { margin: 0 0 var(--cubik-esp-3); padding-bottom: 0.5rem; border-bottom: 1px solid var(--cubik-filet); font-size: var(--cubik-taille-petit); color: var(--cubik-ardoise); }
.cubik-legal__texte > h2 { margin-top: var(--cubik-esp-5); scroll-margin-top: var(--cubik-esp-5); font-size: var(--cubik-taille-h3); }
.cubik-legal__texte > h2:first-of-type { margin-top: 0; }
.cubik-legal__preambule { font-size: var(--cubik-taille-grand, 1.125rem); }
.cubik-legal__pied { margin-top: var(--cubik-esp-5); padding-top: var(--cubik-esp-3); border-top: 1px solid var(--cubik-filet); }
.cubik-legal .cubik-formulaire-bloc--droits { margin-top: var(--cubik-esp-4); padding: var(--cubik-esp-4); background: var(--cubik-ciel); }
.cubik-legal .cubik-formulaire-bloc--droits .cubik-encadre__titre { margin-top: 0; }
.cubik-definitions { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.25rem 1.5rem; }
.cubik-definitions dt { font-weight: 700; color: var(--cubik-marine); margin-top: 0.75rem; }
.cubik-definitions dd { margin: 0; }
@media (min-width: 48em) { .cubik-definitions { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } .cubik-definitions dt, .cubik-definitions dd { margin-top: 0; padding: 0.5rem 0; border-bottom: 1px solid var(--cubik-filet); } }
.cubik-prose .cubik-tableau th[scope="row"] { font-weight: 700; color: var(--cubik-encre); text-align: left; }
.cubik-legal__texte .cubik-tableau-enveloppe { margin-bottom: var(--cubik-esp-4); }
.cubik-legal__texte > * { max-width: 46rem; } /* une seule largeur pour le texte, les tableaux et les encadrés */
.cubik-tableau code { font-family: Consolas, "Lucida Console", monospace; font-size: 0.9em; color: var(--cubik-encre); overflow-wrap: anywhere; }
@media (min-width: 48em) { .cubik-tableau--temoins { table-layout: fixed; } .cubik-tableau--temoins col:nth-child(1) { width: 18%; } .cubik-tableau--temoins col:nth-child(2) { width: 30%; } .cubik-tableau--temoins col:nth-child(3) { width: 37%; } .cubik-tableau--temoins col:nth-child(4) { width: 15%; } }
/* Bandeau de témoins (Complianz) : surcharges pour docs/03 — Lato, pas d'ombre, boutons de même poids, texte à gauche */
.cmplz-cookiebanner { font-family: var(--cubik-police-corps) !important; box-shadow: none !important; border-top: 1px solid var(--cubik-filet) !important; }
.cmplz-cookiebanner .cmplz-header { display: none !important; } /* le paragraphe se suffit ; rien de centré */
.cmplz-cookiebanner .cmplz-buttons { display: flex !important; flex-wrap: wrap; gap: var(--cubik-esp-2); justify-content: flex-end; align-items: center; }
.cmplz-cookiebanner .cmplz-btn { width: auto !important; min-width: 0 !important; height: 3rem !important; padding: 0 1.5rem !important; font-weight: 700 !important; box-shadow: none !important; margin: 0 !important; }
.cmplz-cookiebanner .cmplz-categories .cmplz-category { background: var(--cubik-ciel) !important; color: var(--cubik-encre) !important; }
.cmplz-cookiebanner .cmplz-always-active { color: var(--cubik-encre) !important; }
@media (max-width: 47.99em) { .cmplz-cookiebanner .cmplz-buttons, .cmplz-cookiebanner .cmplz-links { justify-content: flex-start !important; } .cmplz-cookiebanner .cmplz-buttons { flex-direction: row !important; flex-wrap: wrap; } .cmplz-cookiebanner .cmplz-btn { flex: 1 1 40%; } .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences { flex: 1 1 100%; height: auto !important; background: transparent !important; border: 0 !important; color: var(--cubik-bleu-lien) !important; text-decoration: underline; padding: 0.25rem 0 !important; } }
.cmplz-cookiebanner .cmplz-links a { text-decoration: underline; text-underline-offset: 0.15em; }
.cmplz-cookiebanner .cmplz-message a { color: var(--cubik-bleu-lien); }
.cubik-recu-vendeur { margin-top: var(--cubik-esp-4); padding-top: var(--cubik-esp-3); border-top: 1px solid var(--cubik-filet); font-size: var(--cubik-taille-petit); color: var(--cubik-ardoise); max-width: var(--cubik-mesure); }
.cubik-recu-vendeur p { margin: 0 0 0.25rem; }
.cubik-recu-vendeur__titre { font-weight: 700; color: var(--cubik-marine); }
@media (min-width: 64em) {
  /* Bandeau bas compact : message et liens à gauche, boutons à droite, sur une seule bande (≤ 110 px) */
  .cmplz-cookiebanner { grid-template-columns: minmax(0, 1fr) auto !important; grid-template-areas: "body buttons" "links buttons" !important; align-items: center; column-gap: var(--cubik-esp-5) !important; margin: 0 !important; width: 100% !important; padding: var(--cubik-esp-3) var(--cubik-esp-4) !important; border-radius: 0 !important; }
  .cmplz-cookiebanner .cmplz-body { grid-area: body !important; grid-column: auto !important; }
  .cmplz-cookiebanner .cmplz-buttons { grid-area: buttons !important; grid-column: auto !important; grid-row: auto !important; flex-direction: row !important; }
  .cmplz-cookiebanner .cmplz-links.cmplz-documents { grid-area: links !important; grid-column: auto !important; grid-row: auto !important; }
  .cmplz-cookiebanner .cmplz-links.cmplz-information, .cmplz-cookiebanner .cmplz-divider, .cmplz-cookiebanner .cmplz-close { display: none !important; }
  .cmplz-cookiebanner .cmplz-message { margin: 0 !important; }
}
