/* =========================================================
   Sillage — blocks.css
   Une section commentée par bloc BEM. Préfixe : sil-
   ========================================================= */

/* === sil-header ========================================= */
.sil-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background-color: var(--sil-sand);
  border-bottom: 1px solid transparent;
  transition: border-color var(--sil-ease), background-color var(--sil-ease);
}

.sil-header--is-scrolled {
  border-bottom-color: var(--sil-rule);
  background-color: rgba(247, 243, 236, .94);
  backdrop-filter: saturate(120%) blur(6px);
}

.sil-header__inner {
  min-height: var(--sil-header-h);
  display: flex;
  align-items: center;
  gap: var(--sil-s5);
}

.sil-header__wordmark {
  font-family: var(--sil-serif);
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--sil-indigo);
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: var(--sil-s2);
}

.sil-header__mark {
  font-size: var(--sil-t-micro);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-family: var(--sil-sans);
  color: var(--sil-ink-3);
  font-weight: 600;
}

.sil-header__spacer { flex: 1 1 auto; }

.sil-header__aside {
  display: flex;
  align-items: center;
  gap: var(--sil-s4);
}

.sil-header__phone {
  font-size: var(--sil-t-small);
  color: var(--sil-ink-2);
  display: flex;
  align-items: center;
  gap: var(--sil-s2);
  transition: color var(--sil-ease);
  white-space: nowrap;
}

.sil-header__phone:hover { color: var(--sil-terra); }

.sil-header__burger {
  display: none;
  color: var(--sil-indigo);
  padding: var(--sil-s2);
  margin-right: calc(var(--sil-s2) * -1);
}

@media (max-width: 1023px) {
  .sil-header__burger { display: block; }
  .sil-header__aside { display: none; }
}

/* === sil-nav ============================================ */
.sil-nav__list {
  display: flex;
  align-items: center;
  gap: clamp(var(--sil-s3), 2vw, var(--sil-s5));
}

.sil-nav__link {
  font-size: var(--sil-t-small);
  color: var(--sil-ink-2);
  padding-block: var(--sil-s2);
  position: relative;
  transition: color var(--sil-ease);
  white-space: nowrap;
}

.sil-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background-color: var(--sil-terra);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--sil-ease);
}

.sil-nav__link:hover { color: var(--sil-indigo); }
.sil-nav__link:hover::after { transform: scaleX(1); }

.sil-nav__link--is-active { color: var(--sil-indigo); font-weight: 500; }
.sil-nav__link--is-active::after { transform: scaleX(1); }

@media (max-width: 1023px) {
  .sil-nav { display: none; }
}

/* === sil-drawer — menu plein écran mobile =============== */
.sil-drawer {
  position: fixed;
  inset: 0;
  z-index: 150;
  background-color: var(--sil-sand);
  padding: var(--sil-s4) var(--sil-gutter) var(--sil-s6);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity var(--sil-ease), transform var(--sil-ease), visibility var(--sil-ease);
}

.sil-drawer--is-open { opacity: 1; visibility: visible; transform: none; }

.sil-drawer__top {
  min-height: var(--sil-header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sil-drawer__close { color: var(--sil-indigo); padding: var(--sil-s2); }

.sil-drawer__list {
  display: grid;
  gap: var(--sil-s1);
  margin-block: var(--sil-s5);
}

.sil-drawer__link {
  font-family: var(--sil-serif);
  font-size: 1.75rem;
  color: var(--sil-indigo);
  padding-block: var(--sil-s3);
  border-bottom: 1px solid var(--sil-rule);
  display: block;
}

.sil-drawer__link--is-active { color: var(--sil-terra); }

.sil-drawer__foot { display: grid; gap: var(--sil-s3); margin-top: auto; }

.sil-drawer__meta {
  font-size: var(--sil-t-small);
  color: var(--sil-ink-2);
  display: flex;
  align-items: center;
  gap: var(--sil-s2);
}

/* === sil-btn ============================================ */
.sil-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sil-s2);
  padding: 14px var(--sil-s4);
  border-radius: var(--sil-radius);
  font-size: var(--sil-t-small);
  font-weight: 500;
  letter-spacing: .01em;
  border: 1px solid transparent;
  transition: background-color var(--sil-ease), color var(--sil-ease), border-color var(--sil-ease);
  text-align: center;
}

.sil-btn--primary { background-color: var(--sil-terra); color: var(--sil-on-terra); }
.sil-btn--primary:hover { background-color: var(--sil-terra-dark); }

.sil-btn--ghost { border-color: var(--sil-rule-strong); color: var(--sil-indigo); }
.sil-btn--ghost:hover { border-color: var(--sil-indigo); background-color: var(--sil-card); }

.sil-btn--inverse { border-color: var(--sil-rule-dark); color: var(--sil-on-dark); }
.sil-btn--inverse:hover { background-color: var(--sil-indigo-mid); border-color: transparent; }

.sil-btn--small { padding: 9px var(--sil-s3); font-size: var(--sil-t-micro); letter-spacing: .1em; text-transform: uppercase; }

.sil-btn--block { width: 100%; }

.sil-btn[aria-disabled="true"],
.sil-btn:disabled { opacity: .4; pointer-events: none; }

/* === sil-hero =========================================== */
.sil-hero { position: relative; }

.sil-hero__media {
  position: relative;
  display: grid;
  align-content: end;
  min-height: clamp(460px, 56vw, 720px);
  background-color: var(--sil-band);
  border-bottom: 1px solid var(--sil-rule);
  overflow: hidden;
}

.sil-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.88);
}

.sil-hero__img--is-missing { display: none; }

.sil-hero__scrim { position: absolute; inset: 0; background: var(--sil-scrim); }

.sil-hero__content {
  position: relative;
  padding-block: clamp(var(--sil-s6), 8vw, var(--sil-s7))
                 clamp(var(--sil-s5), 6vw, var(--sil-s7));
}

.sil-hero__inner { display: grid; gap: var(--sil-s4); justify-items: start; }

/* Longueur de ligne : mesurée dans la police du titre, pas dans celle du corps */
.sil-hero__inner .sil-title { max-width: 18ch; }
.sil-hero__inner .sil-lede { max-width: 46ch; }

.sil-hero__actions { display: flex; flex-wrap: wrap; gap: var(--sil-s3); margin-top: var(--sil-s2); }

.sil-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sil-s4);
  color: var(--sil-on-dark-2);
  font-size: var(--sil-t-small);
}

.sil-hero__meta-item { display: flex; align-items: center; gap: var(--sil-s2); }

/* Variante de tête de page sans photo */
.sil-hero--plain { padding-block: clamp(var(--sil-s6), 8vw, 120px) var(--sil-s6); }
.sil-hero__lead { display: grid; gap: var(--sil-s4); }
.sil-hero__lead .sil-title { max-width: 18ch; }
.sil-hero__aside { max-width: 46ch; }

.sil-hero__split {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: var(--sil-s6);
  align-items: end;
}

@media (max-width: 767px) {
  .sil-hero__split { grid-template-columns: 1fr; gap: var(--sil-s4); }
  .sil-hero__media { min-height: 420px; }
  .sil-hero__inner .sil-title,
  .sil-hero__lead .sil-title { max-width: none; }
  .sil-hero__inner .sil-lede { max-width: none; }
}

/* === sil-value — bandeau de promesses =================== */
.sil-values {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background-color: var(--sil-rule);
  border-block: 1px solid var(--sil-rule);
}

.sil-value {
  background-color: var(--sil-sand);
  padding: var(--sil-s5) var(--sil-s4);
  display: grid;
  gap: var(--sil-s3);
  align-content: start;
}

.sil-value__icon { color: var(--sil-indigo-soft); transition: color var(--sil-ease); }
.sil-value:hover .sil-value__icon { color: var(--sil-terra); }
.sil-value__title { font-family: var(--sil-serif); font-size: 1.125rem; color: var(--sil-indigo); }
.sil-value__text { font-size: var(--sil-t-small); color: var(--sil-ink-2); }

@media (max-width: 1023px) { .sil-values { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px) { .sil-values { grid-template-columns: 1fr; } }

/* === sil-grid — grille de voyages ======================= */
.sil-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sil-s5) var(--sil-s4);
}

.sil-grid--two { grid-template-columns: repeat(2, 1fr); }
.sil-grid--spaced { margin-top: var(--sil-s5); }

@media (max-width: 1023px) { .sil-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .sil-grid, .sil-grid--two { grid-template-columns: 1fr; } }

/* === sil-trip — carte voyage ============================ */
.sil-trip {
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color var(--sil-ease), transform var(--sil-ease);
}

.sil-trip:hover { border-color: var(--sil-rule-strong); transform: translateY(-3px); }

.sil-trip__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background-color: var(--sil-band);
  overflow: hidden;
}

.sil-trip__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.88);
  transition: transform 600ms cubic-bezier(.4, 0, .2, 1);
}

.sil-trip__img--is-missing { display: none; }
.sil-trip:hover .sil-trip__img { transform: scale(1.03); }

.sil-trip__body { padding: var(--sil-s4); display: grid; gap: var(--sil-s3); flex: 1 1 auto; align-content: start; }
.sil-trip__country { font-size: var(--sil-t-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--sil-ink-3); font-weight: 600; }
.sil-trip__title { font-family: var(--sil-serif); font-size: 1.3rem; line-height: 1.2; color: var(--sil-indigo); }
.sil-trip__title:hover { color: var(--sil-terra); }
.sil-trip__facts { display: flex; flex-wrap: wrap; gap: var(--sil-s2) var(--sil-s3); font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-trip__fact { display: flex; align-items: center; gap: 6px; }
.sil-trip__fact .sil-icon { color: var(--sil-indigo-soft); }
.sil-trip:hover .sil-trip__fact .sil-icon { color: var(--sil-terra); }

.sil-trip__foot {
  margin-top: auto;
  padding: var(--sil-s3) var(--sil-s4);
  border-top: 1px solid var(--sil-rule);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sil-s3);
}

.sil-trip__price { font-family: var(--sil-serif); font-size: 1.2rem; color: var(--sil-terra); }
.sil-trip__price-unit { font-family: var(--sil-sans); font-size: var(--sil-t-micro); color: var(--sil-ink-3); letter-spacing: .04em; }
.sil-trip__next { font-size: var(--sil-t-small); color: var(--sil-ink-2); text-align: right; }

.sil-trip--is-complet { opacity: .78; }
.sil-trip--is-complet .sil-trip__img { filter: saturate(.2) contrast(.95); }
.sil-trip--is-hidden { display: none; }

/* === sil-badge ========================================== */
.sil-badge {
  position: absolute;
  top: var(--sil-s3);
  left: var(--sil-s3);
  background-color: var(--sil-terra);
  color: var(--sil-on-terra);
  font-size: var(--sil-t-micro);
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: var(--sil-radius);
}

.sil-badge--neutre { background-color: var(--sil-indigo); }
.sil-badge--sauge { background-color: var(--sil-sage-deep); }

/* === sil-steps — méthode de travail ===================== */
.sil-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sil-s4);
  counter-reset: sil-step;
}

.sil-step {
  padding-top: var(--sil-s4);
  border-top: 1px solid var(--sil-rule-strong);
  display: grid;
  gap: var(--sil-s2);
  align-content: start;
}

.sil-step__num {
  font-family: var(--sil-serif);
  font-size: var(--sil-t-small);
  color: var(--sil-terra);
  letter-spacing: .06em;
}

.sil-step__title { font-family: var(--sil-serif); font-size: 1.25rem; color: var(--sil-indigo); }
.sil-step__text { font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-step__delay { font-size: var(--sil-t-micro); letter-spacing: .12em; text-transform: uppercase; color: var(--sil-ink-3); font-weight: 600; }

@media (max-width: 1023px) { .sil-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px) { .sil-steps { grid-template-columns: 1fr; } }

/* === sil-saison — calendrier des départs ================ */
.sil-saison__scroll { overflow-x: auto; padding-bottom: var(--sil-s2); }

.sil-saison__grid {
  display: grid;
  grid-template-columns: 190px repeat(12, minmax(46px, 1fr));
  min-width: 900px;
  border: 1px solid var(--sil-rule);
  background-color: var(--sil-rule);
  gap: 1px;
}

.sil-saison__cell {
  background-color: var(--sil-sage-wash);
  padding: 10px 6px;
  font-size: var(--sil-t-micro);
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sil-ink-3);
  text-align: center;
}

.sil-saison__cell--head { color: var(--sil-indigo); }
.sil-saison__cell--zone {
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-size: var(--sil-t-small);
  font-weight: 400;
  color: var(--sil-ink);
  font-family: var(--sil-serif);
  padding-inline: var(--sil-s3);
}

.sil-saison__cell--ideal { background-color: var(--sil-sage); color: var(--sil-on-terra); }
.sil-saison__cell--moyen { background-color: var(--sil-sage-mid); color: var(--sil-ink); }

.sil-saison__legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sil-s4);
  margin-top: var(--sil-s4);
  font-size: var(--sil-t-small);
  color: var(--sil-ink-2);
}

.sil-saison__key { display: flex; align-items: center; gap: var(--sil-s2); }
.sil-saison__swatch { width: 14px; height: 14px; border: 1px solid var(--sil-rule); }
.sil-saison__swatch--ideal { background-color: var(--sil-sage); }
.sil-saison__swatch--moyen { background-color: var(--sil-sage-mid); }
.sil-saison__swatch--non { background-color: var(--sil-sage-wash); }

/* === sil-quiz — « Composons votre voyage » ============== */
.sil-quiz {
  background-color: var(--sil-band);
  border-block: 1px solid var(--sil-rule);
  padding-block: clamp(var(--sil-s6), 7vw, var(--sil-s7));
}

.sil-quiz__frame { max-width: 760px; margin-inline: auto; }
.sil-quiz__head { display: grid; gap: var(--sil-s3); margin-bottom: var(--sil-s5); }

.sil-quiz__bar {
  height: 2px;
  background-color: var(--sil-rule);
  position: relative;
  margin-bottom: var(--sil-s2);
}

.sil-quiz__bar-fill {
  position: absolute;
  inset-block: 0;
  left: 0;
  background-color: var(--sil-terra);
  width: 20%;
  transition: width var(--sil-ease);
}

.sil-quiz__progress {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--sil-s3);
  font-size: var(--sil-t-micro);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sil-ink-3);
}

.sil-quiz__counter { color: var(--sil-terra); font-variant-numeric: tabular-nums; }
.sil-quiz__question { margin-bottom: var(--sil-s4); }
.sil-quiz__hint { font-size: var(--sil-t-small); color: var(--sil-ink-2); margin-top: var(--sil-s2); }
.sil-quiz__options { display: grid; gap: var(--sil-s2); }

.sil-quiz__option { position: relative; display: block; }

.sil-quiz__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.sil-quiz__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sil-s3);
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  padding: 15px var(--sil-s4);
  cursor: pointer;
  transition: border-color var(--sil-ease), background-color var(--sil-ease), color var(--sil-ease);
}

.sil-quiz__label:hover { border-color: var(--sil-rule-strong); }

.sil-quiz__check { opacity: 0; color: var(--sil-terra); transition: opacity var(--sil-ease); }

.sil-quiz__input:checked + .sil-quiz__label { border-color: var(--sil-terra); background-color: var(--sil-terra-wash); }
.sil-quiz__input:checked + .sil-quiz__label .sil-quiz__check { opacity: 1; }
.sil-quiz__input:focus-visible + .sil-quiz__label { outline: 2px solid var(--sil-terra); outline-offset: 3px; }

.sil-quiz__fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sil-s3); }
.sil-quiz__fields--spaced { margin-top: var(--sil-s4); }
.sil-quiz__actions {
  display: flex;
  justify-content: space-between;
  gap: var(--sil-s3);
  margin-top: var(--sil-s5);
  padding-top: var(--sil-s4);
  border-top: 1px solid var(--sil-rule);
}

.sil-quiz__result {
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  padding: var(--sil-s5);
  display: grid;
  gap: var(--sil-s3);
}

.sil-quiz__summary { font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-quiz__step--is-hidden { display: none; }

@media (max-width: 767px) { .sil-quiz__fields { grid-template-columns: 1fr; } }

/* === sil-honesty — ce que nous ne faisons pas =========== */
.sil-honesty {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background-color: var(--sil-rule-dark);
  border: 1px solid var(--sil-rule-dark);
}

.sil-honesty__item { background-color: var(--sil-indigo); padding: var(--sil-s5) var(--sil-s4); display: grid; gap: var(--sil-s2); align-content: start; }
.sil-honesty__title { font-family: var(--sil-serif); font-size: 1.2rem; color: var(--sil-on-dark); }
.sil-honesty__text { font-size: var(--sil-t-small); color: var(--sil-on-dark-2); }

@media (max-width: 767px) { .sil-honesty { grid-template-columns: 1fr; } }

/* === sil-figure — chiffres ============================== */
.sil-figures {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sil-s4);
}

.sil-figure { display: grid; gap: var(--sil-s1); padding-top: var(--sil-s3); border-top: 1px solid var(--sil-rule-strong); }
.sil-figure__value { font-family: var(--sil-serif); font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); color: var(--sil-indigo); line-height: 1; }
.sil-figure__label { font-size: var(--sil-t-small); color: var(--sil-ink-2); }

@media (max-width: 767px) { .sil-figures { grid-template-columns: repeat(2, 1fr); } }

/* === sil-media — image éditoriale ======================= */
.sil-media { background-color: var(--sil-band); border: 1px solid var(--sil-rule); overflow: hidden; }
.sil-media--ratio-32 { aspect-ratio: 3 / 2; }
.sil-media--ratio-11 { aspect-ratio: 1 / 1; }
.sil-media__img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88); }
.sil-media__img--is-missing { display: none; }
.sil-media__caption { font-size: var(--sil-t-small); color: var(--sil-ink-3); margin-top: var(--sil-s2); }

.sil-duo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sil-s6); align-items: center; }
.sil-duo--reverse .sil-duo__media { order: 2; }
.sil-duo__body { display: grid; gap: var(--sil-s4); }

@media (max-width: 767px) {
  .sil-duo { grid-template-columns: 1fr; gap: var(--sil-s5); }
  .sil-duo--reverse .sil-duo__media { order: 0; }
}

/* === sil-filters — barre de filtres ===================== */
.sil-filters { display: grid; gap: var(--sil-s4); }
.sil-filters__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sil-s3); }
.sil-filters__legend { font-size: var(--sil-t-micro); letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--sil-ink-3); min-width: 92px; }

.sil-filters__btn {
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  padding: 8px 14px;
  font-size: var(--sil-t-small);
  color: var(--sil-ink-2);
  background-color: var(--sil-card);
  transition: border-color var(--sil-ease), color var(--sil-ease), background-color var(--sil-ease);
}

.sil-filters__btn:hover { border-color: var(--sil-rule-strong); color: var(--sil-indigo); }
.sil-filters__btn[aria-pressed="true"] { border-color: var(--sil-terra); color: var(--sil-terra); background-color: var(--sil-terra-wash); }

.sil-filters__sort { display: flex; align-items: center; gap: var(--sil-s2); }
.sil-filters__select {
  border: 1px solid var(--sil-rule);
  background-color: var(--sil-card);
  border-radius: var(--sil-radius);
  padding: 8px 12px;
  font-size: var(--sil-t-small);
  color: var(--sil-ink);
}

.sil-filters__count {
  font-size: var(--sil-t-small);
  color: var(--sil-ink-2);
  padding-top: var(--sil-s3);
  border-top: 1px solid var(--sil-rule);
}

.sil-filters__empty { padding: var(--sil-s6) 0; text-align: center; color: var(--sil-ink-2); }
.sil-filters__empty--is-hidden { display: none; }

@media (max-width: 767px) { .sil-filters__legend { min-width: 100%; } }

/* === sil-note — encadrés ================================ */
.sil-note {
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
  border-left: 2px solid var(--sil-terra);
  border-radius: var(--sil-radius);
  padding: var(--sil-s4) var(--sil-s5);
  display: grid;
  gap: var(--sil-s3);
}

.sil-note--sauge { border-left-color: var(--sil-sage); background-color: var(--sil-sage-wash); }
.sil-note--plain { border-left-color: var(--sil-rule); }
.sil-note__title { font-family: var(--sil-serif); font-size: 1.2rem; color: var(--sil-indigo); }
.sil-note__text { font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-note__list { display: grid; gap: var(--sil-s2); font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-note__item { display: flex; gap: var(--sil-s2); align-items: flex-start; }
.sil-note__item .sil-icon { color: var(--sil-indigo-soft); margin-top: 2px; }

/* === sil-pricing — inclus / non inclus ================== */
.sil-pricing { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sil-s4); }
.sil-pricing__col {
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  padding: var(--sil-s4);
  display: grid;
  gap: var(--sil-s3);
  align-content: start;
}

.sil-pricing__title { font-size: var(--sil-t-micro); letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--sil-ink-3); }
.sil-pricing__list { display: grid; gap: var(--sil-s2); font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-pricing__item { display: flex; gap: var(--sil-s2); align-items: flex-start; }
.sil-pricing__item .sil-icon { margin-top: 2px; color: var(--sil-sage-deep); }
.sil-pricing__item--out .sil-icon { color: var(--sil-ink-3); }

.sil-pricing__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--sil-s3);
  margin-bottom: var(--sil-s4);
  padding-bottom: var(--sil-s3);
  border-bottom: 1px solid var(--sil-rule);
}

.sil-pricing__amount { font-family: var(--sil-serif); font-size: clamp(2rem, 1.5rem + 1.6vw, 2.6rem); color: var(--sil-terra); line-height: 1; }
.sil-pricing__unit { font-size: var(--sil-t-small); color: var(--sil-ink-2); }

@media (max-width: 767px) { .sil-pricing { grid-template-columns: 1fr; } }

/* === sil-itinerary — jour par jour ====================== */
.sil-itinerary { border-top: 1px solid var(--sil-rule); counter-reset: sil-day; }
.sil-itinerary__day { border-bottom: 1px solid var(--sil-rule); }

.sil-itinerary__summary {
  display: flex;
  align-items: baseline;
  gap: var(--sil-s4);
  padding-block: var(--sil-s4);
  transition: color var(--sil-ease);
}

.sil-itinerary__summary:hover { color: var(--sil-terra); }
.sil-itinerary__num { font-family: var(--sil-serif); font-size: var(--sil-t-small); color: var(--sil-terra); min-width: 68px; letter-spacing: .04em; }
.sil-itinerary__title { font-family: var(--sil-serif); font-size: 1.2rem; color: inherit; flex: 1 1 auto; }
.sil-itinerary__chevron { color: var(--sil-ink-3); transition: transform var(--sil-ease); }
.sil-itinerary__day[open] .sil-itinerary__chevron { transform: rotate(180deg); }

.sil-itinerary__body { padding: 0 0 var(--sil-s5) 92px; display: grid; gap: var(--sil-s3); max-width: var(--sil-measure); color: var(--sil-ink-2); }
.sil-itinerary__facts { display: flex; flex-wrap: wrap; gap: var(--sil-s3); font-size: var(--sil-t-small); color: var(--sil-ink-3); }
.sil-itinerary__fact { display: flex; align-items: center; gap: 6px; }

@media (max-width: 767px) {
  .sil-itinerary__summary { flex-wrap: wrap; gap: var(--sil-s2); }
  .sil-itinerary__num { min-width: 100%; }
  .sil-itinerary__body { padding-left: 0; }
}

/* === sil-map — emplacement carte ======================== */
.sil-map {
  position: relative;
  aspect-ratio: 16 / 9;
  background-color: var(--sil-indigo-wash);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.sil-map__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(27, 36, 64, .07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(27, 36, 64, .07) 1px, transparent 1px);
  background-size: 42px 42px;
}

.sil-map__inner { position: relative; display: grid; gap: var(--sil-s2); justify-items: center; text-align: center; padding: var(--sil-s4); }
.sil-map__pin { color: var(--sil-terra); }
.sil-map__label { font-family: var(--sil-serif); font-size: 1.15rem; color: var(--sil-indigo); }
.sil-map__hint { font-size: var(--sil-t-small); color: var(--sil-ink-2); max-width: 40ch; }

/* === sil-stay — hébergements ============================ */
.sil-stay { display: grid; gap: var(--sil-s3); }
.sil-stay__media { aspect-ratio: 3 / 2; background-color: var(--sil-band); border: 1px solid var(--sil-rule); overflow: hidden; }
.sil-stay__img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88); }
.sil-stay__img--is-missing { display: none; }
.sil-stay__name { font-family: var(--sil-serif); font-size: 1.15rem; color: var(--sil-indigo); }
.sil-stay__meta { font-size: var(--sil-t-micro); letter-spacing: .12em; text-transform: uppercase; color: var(--sil-ink-3); font-weight: 600; }
.sil-stay__text { font-size: var(--sil-t-small); color: var(--sil-ink-2); }

/* === sil-level — niveau de difficulté =================== */
.sil-level { display: grid; gap: var(--sil-s4); }
.sil-level__scale { display: flex; gap: var(--sil-s1); }
.sil-level__step { height: 4px; flex: 1 1 0; background-color: var(--sil-rule); }
.sil-level__step--is-on { background-color: var(--sil-terra); }

/* === sil-table — tableaux =============================== */
.sil-table__scroll { overflow-x: auto; }

.sil-table {
  min-width: 620px;
  font-size: var(--sil-t-small);
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
}

.sil-table__caption {
  caption-side: top;
  text-align: left;
  font-size: var(--sil-t-micro);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sil-ink-3);
  padding-bottom: var(--sil-s3);
}

.sil-table__th {
  text-align: left;
  font-weight: 600;
  color: var(--sil-indigo);
  padding: var(--sil-s3) var(--sil-s4);
  border-bottom: 1px solid var(--sil-rule-strong);
  white-space: nowrap;
}

.sil-table__td { padding: var(--sil-s3) var(--sil-s4); border-bottom: 1px solid var(--sil-rule); color: var(--sil-ink-2); vertical-align: top; }
.sil-table__td--price { color: var(--sil-terra); font-family: var(--sil-serif); font-size: 1.05rem; white-space: nowrap; }
.sil-table__row--is-complet .sil-table__td { color: var(--sil-ink-3); }
.sil-table__row--is-complet .sil-table__td--price { color: var(--sil-ink-3); font-family: var(--sil-sans); font-size: var(--sil-t-small); }

/* === sil-faq — accordéon ================================ */
.sil-faq { border-top: 1px solid var(--sil-rule); max-width: var(--sil-measure); }
.sil-faq__item { border-bottom: 1px solid var(--sil-rule); }
.sil-faq__summary { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sil-s4); padding-block: var(--sil-s4); font-family: var(--sil-serif); font-size: 1.15rem; color: var(--sil-indigo); transition: color var(--sil-ease); }
.sil-faq__summary:hover { color: var(--sil-terra); }
.sil-faq__icon { color: var(--sil-ink-3); transition: transform var(--sil-ease); flex: none; }
.sil-faq__item[open] .sil-faq__icon { transform: rotate(180deg); }
.sil-faq__body { padding-bottom: var(--sil-s4); color: var(--sil-ink-2); display: grid; gap: var(--sil-s3); }

/* === sil-form =========================================== */
.sil-form {
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  padding: clamp(var(--sil-s4), 3vw, var(--sil-s5));
  display: grid;
  gap: var(--sil-s4);
}

.sil-form--bare { background-color: transparent; border: 0; padding: 0; }
.sil-form__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sil-s3); }
.sil-form__field { display: grid; gap: 6px; }
.sil-form__label { font-size: var(--sil-t-micro); letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--sil-ink-2); }
.sil-form__req { color: var(--sil-terra); }

.sil-form__input,
.sil-form__select,
.sil-form__textarea {
  width: 100%;
  background-color: var(--sil-sand);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  padding: 12px 14px;
  font-size: var(--sil-t-small);
  color: var(--sil-ink);
  transition: border-color var(--sil-ease), background-color var(--sil-ease);
}

.sil-form__input:hover,
.sil-form__select:hover,
.sil-form__textarea:hover { border-color: var(--sil-rule-strong); }

.sil-form__input:focus,
.sil-form__select:focus,
.sil-form__textarea:focus { background-color: var(--sil-card); border-color: var(--sil-terra); outline: none; }

.sil-form__textarea { min-height: 148px; resize: vertical; line-height: 1.6; }

.sil-form__input--is-invalid,
.sil-form__select--is-invalid,
.sil-form__textarea--is-invalid { border-color: var(--sil-terra); background-color: var(--sil-terra-wash); }

.sil-form__error { font-size: var(--sil-t-small); color: var(--sil-terra-dark); display: none; }
.sil-form__error--is-visible { display: block; }

.sil-form__consent--spaced { margin-top: var(--sil-s3); }
.sil-form__consent { display: flex; gap: var(--sil-s3); align-items: flex-start; font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-form__checkbox { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--sil-terra); flex: none; }
.sil-form__note { font-size: var(--sil-t-small); color: var(--sil-ink-3); }
.sil-form__note--spaced { margin-top: var(--sil-s4); }

.sil-form__status {
  display: none;
  padding: var(--sil-s3) var(--sil-s4);
  border: 1px solid var(--sil-sage);
  background-color: var(--sil-sage-wash);
  border-radius: var(--sil-radius);
  font-size: var(--sil-t-small);
  color: var(--sil-sage-deep);
}

.sil-form__status--is-visible { display: block; }

@media (max-width: 767px) { .sil-form__row { grid-template-columns: 1fr; } }

/* === sil-team =========================================== */
.sil-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sil-s4); }
.sil-team__card { display: grid; gap: var(--sil-s3); align-content: start; }

.sil-team__portrait {
  aspect-ratio: 1 / 1;
  background-color: var(--sil-indigo-wash);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  display: grid;
  place-items: center;
}

.sil-team__initials { font-family: var(--sil-serif); font-size: 2.2rem; color: var(--sil-indigo-soft); letter-spacing: .04em; }
.sil-team__name { font-family: var(--sil-serif); font-size: 1.2rem; color: var(--sil-indigo); }
.sil-team__role { font-size: var(--sil-t-micro); letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--sil-terra); }
.sil-team__text { font-size: var(--sil-t-small); color: var(--sil-ink-2); }

@media (max-width: 1023px) { .sil-team { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px) { .sil-team { grid-template-columns: 1fr; } }

/* === sil-timeline — jalons ============================== */
.sil-timeline { display: grid; gap: 0; }
.sil-timeline__item { display: grid; grid-template-columns: 120px 1fr; gap: var(--sil-s5); padding-block: var(--sil-s4); border-top: 1px solid var(--sil-rule); }
.sil-timeline__year { font-family: var(--sil-serif); font-size: 1.35rem; color: var(--sil-terra); }
.sil-timeline__text { color: var(--sil-ink-2); max-width: var(--sil-measure); }
.sil-timeline__title { font-family: var(--sil-serif); font-size: 1.2rem; color: var(--sil-indigo); margin-bottom: 6px; }

@media (max-width: 767px) { .sil-timeline__item { grid-template-columns: 1fr; gap: var(--sil-s2); } }

/* === sil-guarantee ====================================== */
.sil-guarantee { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sil-s4); }
.sil-guarantee__item {
  background-color: var(--sil-card);
  border: 1px solid var(--sil-rule);
  border-radius: var(--sil-radius);
  padding: var(--sil-s4);
  display: grid;
  gap: var(--sil-s2);
  align-content: start;
}
.sil-guarantee__icon { color: var(--sil-indigo-soft); transition: color var(--sil-ease); }
.sil-guarantee__item:hover .sil-guarantee__icon { color: var(--sil-terra); }
.sil-guarantee__title { font-family: var(--sil-serif); font-size: 1.15rem; color: var(--sil-indigo); }
.sil-guarantee__text { font-size: var(--sil-t-small); color: var(--sil-ink-2); }

@media (max-width: 767px) { .sil-guarantee { grid-template-columns: 1fr; } }

/* === sil-contact ======================================== */
.sil-contact { display: grid; grid-template-columns: .85fr 1.15fr; gap: var(--sil-s6); align-items: start; }
.sil-contact__block { display: grid; gap: var(--sil-s4); }
.sil-contact__list { display: grid; gap: var(--sil-s4); }
.sil-contact__row { display: flex; gap: var(--sil-s3); align-items: flex-start; }
.sil-contact__row .sil-icon { color: var(--sil-terra); margin-top: 3px; }
.sil-contact__label { font-size: var(--sil-t-micro); letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--sil-ink-3); display: block; margin-bottom: 2px; }
.sil-contact__value { color: var(--sil-ink); }
.sil-contact__value:hover { color: var(--sil-terra); }

@media (max-width: 1023px) { .sil-contact { grid-template-columns: 1fr; gap: var(--sil-s5); } }

/* === sil-urgence ======================================== */
.sil-urgence {
  background-color: var(--sil-indigo);
  color: var(--sil-on-dark);
  border-radius: var(--sil-radius);
  padding: var(--sil-s5);
  display: grid;
  gap: var(--sil-s3);
}

.sil-urgence__phone { font-family: var(--sil-serif); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); color: var(--sil-on-dark); display: inline-flex; align-items: center; gap: var(--sil-s3); }
.sil-urgence__phone:hover { color: var(--sil-terra-wash); }
.sil-urgence__text { font-size: var(--sil-t-small); color: var(--sil-on-dark-2); max-width: 52ch; }

/* === sil-legal — textes réglementaires ================== */
.sil-legal { border-top: 1px solid var(--sil-rule); }
.sil-legal__item { border-bottom: 1px solid var(--sil-rule); }
.sil-legal__summary { display: flex; align-items: center; justify-content: space-between; gap: var(--sil-s4); padding-block: var(--sil-s4); font-family: var(--sil-serif); font-size: 1.15rem; color: var(--sil-indigo); }
.sil-legal__summary:hover { color: var(--sil-terra); }
.sil-legal__icon { color: var(--sil-ink-3); transition: transform var(--sil-ease); }
.sil-legal__item[open] .sil-legal__icon { transform: rotate(180deg); }
.sil-legal__body { padding-bottom: var(--sil-s5); display: grid; gap: var(--sil-s3); max-width: var(--sil-measure); font-size: var(--sil-t-small); color: var(--sil-ink-2); }
.sil-legal__subtitle { font-weight: 600; color: var(--sil-indigo); }

/* === sil-cta — appel final ============================== */
.sil-cta { display: grid; grid-template-columns: 1.2fr .8fr; gap: var(--sil-s6); align-items: center; }
.sil-cta__body { display: grid; gap: var(--sil-s3); }
.sil-cta__actions { display: flex; flex-wrap: wrap; gap: var(--sil-s3); }

@media (max-width: 767px) { .sil-cta { grid-template-columns: 1fr; gap: var(--sil-s4); } }

/* === sil-footer ========================================= */
.sil-footer { background-color: var(--sil-indigo); color: var(--sil-on-dark-2); padding-block: var(--sil-s6) var(--sil-s5); }

.sil-footer__top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--sil-s5); padding-bottom: var(--sil-s5); border-bottom: 1px solid var(--sil-rule-dark); }
.sil-footer__brand { font-family: var(--sil-serif); font-size: 1.6rem; color: var(--sil-on-dark); display: block; margin-bottom: var(--sil-s3); }
.sil-footer__tagline { font-size: var(--sil-t-small); max-width: 32ch; }
.sil-footer__title { font-size: var(--sil-t-micro); letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--sil-on-dark); margin-bottom: var(--sil-s3); }
.sil-footer__list { display: grid; gap: var(--sil-s2); font-size: var(--sil-t-small); }
.sil-footer__link { transition: color var(--sil-ease); }
.sil-footer__link:hover { color: var(--sil-terra-wash); }
.sil-footer__row { display: flex; gap: var(--sil-s2); align-items: flex-start; }
.sil-footer__row .sil-icon { color: var(--sil-indigo-soft); margin-top: 2px; }

.sil-footer__legal { padding-top: var(--sil-s4); display: grid; gap: var(--sil-s3); font-size: var(--sil-t-small); }
.sil-footer__mentions { max-width: 90ch; }
.sil-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sil-s3); padding-top: var(--sil-s3); border-top: 1px solid var(--sil-rule-dark); font-size: var(--sil-t-small); }
.sil-footer__inline { display: flex; flex-wrap: wrap; gap: var(--sil-s4); }

@media (max-width: 1023px) { .sil-footer__top { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px) { .sil-footer__top { grid-template-columns: 1fr; } }

/* === sil-anchors — sous-navigation de page ============== */
.sil-anchors { display: flex; flex-wrap: wrap; gap: var(--sil-s3); padding-block: var(--sil-s3); }
.sil-anchors__link { font-size: var(--sil-t-small); color: var(--sil-ink-2); border: 1px solid var(--sil-rule); border-radius: var(--sil-radius); padding: 7px 13px; transition: border-color var(--sil-ease), color var(--sil-ease); }
.sil-anchors__link:hover { border-color: var(--sil-terra); color: var(--sil-terra); }

/* === sil-list — listes de contenu ======================= */
.sil-list { display: grid; gap: var(--sil-s3); max-width: var(--sil-measure); }
.sil-list__item { display: flex; gap: var(--sil-s3); align-items: flex-start; color: var(--sil-ink-2); }
.sil-list__item .sil-icon { color: var(--sil-terra); margin-top: 3px; }
.sil-list__item--light { color: var(--sil-on-dark-2); }
.sil-list__strong { color: var(--sil-indigo); font-weight: 500; }
.sil-list__strong--light { color: var(--sil-on-dark); }

/* === sil-split — colonnes de contenu ==================== */
.sil-split { display: grid; grid-template-columns: 300px 1fr; gap: var(--sil-s6); align-items: start; }
.sil-split__aside { display: grid; gap: var(--sil-s3); position: sticky; top: calc(var(--sil-header-h) + var(--sil-s4)); }
.sil-split__main { display: grid; gap: var(--sil-s5); }

@media (max-width: 1023px) {
  .sil-split { grid-template-columns: 1fr; gap: var(--sil-s5); }
  .sil-split__aside { position: static; }
}
