/* Festival du Fjord, version « Sobre » : page Toute l'année.
   Vision 2026 (le festival au centre, quatre satellites en croix), soirées-bénéfice de l'hiver 2026,
   moitié-moitié partagé en deux, location d'équipement, rappel infolettre sur photo. */

/* ---------- Vision 2026 : le festival et ses satellites, en croix ---------- */
.vision { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 88px); align-items: center; }
.vision__txt { display: grid; gap: 18px; }
.vision__txt .surtitre { margin: 0 0 -4px; }
.orbite { --ecart: 12px; position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: var(--ecart); width: 100%; max-width: 540px; aspect-ratio: 1; justify-self: end; }
/* Deux filets qui se croisent derrière le cœur */
.orbite::before, .orbite::after { content: ""; position: absolute; z-index: 0; background: rgba(27, 34, 48, 0.28); }
.orbite::before { left: 16.6%; right: 16.6%; top: 50%; height: 1px; }
.orbite::after { top: 16.6%; bottom: 16.6%; left: 50%; width: 1px; }
.orbite__coeur {
  grid-column: 2; grid-row: 2; position: relative; z-index: 2; display: grid; place-content: center; justify-items: center; gap: 6px; padding: 14px; text-align: center;
  border-radius: var(--r); background: var(--nuit); color: var(--blanc);
}
.orbite__coeur i { font-size: 1.7rem; color: var(--jaune); }
.orbite__coeur strong { font: 700 clamp(1.4rem, 2vw, 1.8rem)/1 var(--f-titre); letter-spacing: 0.02em; text-transform: uppercase; }
.orbite__coeur span { font-size: 0.88rem; line-height: 1.3; color: rgba(255, 255, 255, 0.8); }
.orbite__sat { grid-column: 1 / -1; grid-row: 1 / -1; position: relative; z-index: 1; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: var(--ecart); }
.orbite__sat li {
  display: grid; place-content: center; justify-items: center; gap: 10px; padding: 12px; text-align: center;
  border: 1px solid var(--ligne); border-radius: var(--r); background: var(--blanc);
  font: 700 clamp(0.95rem, 1.2vw, 1.08rem)/1.15 var(--f-titre); letter-spacing: 0.06em; text-transform: uppercase;
}
.orbite__sat li i { font-size: 1.6rem; color: var(--accent); }
.orbite__nord { grid-column: 2; grid-row: 1; }
.orbite__est { grid-column: 3; grid-row: 2; }
.orbite__sud { grid-column: 2; grid-row: 3; }
.orbite__ouest { grid-column: 1; grid-row: 2; }

/* ---------- Soirées-bénéfice de l'hiver 2026 ---------- */
.billets-hiver { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.billet { display: grid; }
.billet__carte { display: grid; grid-template-columns: 132px minmax(0, 1fr); border: 1px solid var(--ligne); border-top: 4px solid var(--accent); border-radius: var(--r); background: var(--blanc); overflow: hidden; }
.billet:nth-child(2) .billet__carte { border-top-color: var(--bleu); }
.billet__talon { display: grid; align-content: center; justify-items: center; gap: 6px; padding: 24px 10px; border-right: 1px solid var(--ligne); background: var(--sable); text-align: center; }
.billet__jour { font: 700 3.6rem/0.85 var(--f-titre); color: var(--encre); }
.billet__mois { font: 700 1.9rem/1 var(--f-titre); letter-spacing: 0.04em; text-transform: uppercase; color: var(--accent); }
.billet:nth-child(2) .billet__mois { font-size: 1.5rem; }
.billet__an { font: 700 1rem/1 var(--f-titre); letter-spacing: 0.12em; color: var(--encre-2); }
.billet__corps { display: grid; gap: 10px; align-content: start; padding: clamp(22px, 2.6vw, 32px); }
.billet__corps p { margin: 0; line-height: 1.55; color: var(--encre-2); }
.billet__type { display: inline-flex; align-items: center; gap: 8px; font: 700 0.92rem/1.2 var(--f-titre) !important; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent) !important; }
.billet__type i { font-size: 1.15rem; }
.billet__nom { margin: 0; font: 700 clamp(1.8rem, 2.8vw, 2.4rem)/1 var(--f-titre); letter-spacing: 0.01em; text-transform: uppercase; }
.billet__tags { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.billet__tags li { padding: 5px 9px; border-radius: 2px; background: var(--sable); font: 700 0.8rem/1.1 var(--f-titre); letter-spacing: 0.1em; text-transform: uppercase; color: var(--encre); }

/* ---------- Moitié-moitié : le montant partagé en deux ---------- */
.moitie { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 28px clamp(32px, 5vw, 80px); align-items: center; }
.moitie__tete { margin-bottom: 0; }
.dechire { position: relative; display: grid; grid-template-columns: 1fr 1fr; padding: 0; overflow: hidden; }
.dechire::before { content: ""; position: absolute; left: 50%; top: 28px; bottom: 28px; width: 1px; background: rgba(255, 255, 255, 0.28); transform: scaleY(0); transition: transform 900ms var(--ease) 200ms; }
.dechire.est-dechire::before { transform: none; }
.dechire__moitie { display: grid; justify-items: center; align-content: center; gap: 8px; text-align: center; min-height: 280px; padding: 32px 18px; }
.dechire__moitie i { font-size: 2rem; color: rgba(255, 255, 255, 0.7); }
.dechire__gros { margin: 0; font: 700 clamp(3.6rem, 6.4vw, 5.6rem)/0.85 var(--f-titre); white-space: nowrap; }
.dechire__moitie--toi .dechire__gros { color: var(--jaune); }
.dechire__moitie--fete .dechire__gros { color: var(--accent); }
.dechire__pour { margin: 0; font: 700 clamp(1rem, 1.4vw, 1.2rem)/1.1 var(--f-titre); letter-spacing: 0.1em; text-transform: uppercase; }
.fonds__titre { margin: clamp(48px, 5vw, 72px) 0 clamp(18px, 2.2vw, 28px); }
.fonds { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 24px); }
.fonds__carte { display: grid; gap: 12px; align-content: start; }
.fonds__carte h4 { margin: 6px 0 0; font: 700 1.35rem/1.1 var(--f-titre); letter-spacing: 0.02em; text-transform: uppercase; }
.fonds__carte p { margin: 0; line-height: 1.55; color: var(--encre-2); }
.moitie__action { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: clamp(28px, 3vw, 40px); }
.moitie__action .petit { max-width: 52ch; }

/* ---------- Location ---------- */
.loc { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.loc__visuel { position: relative; margin: 0; overflow: hidden; border-radius: var(--r-img); box-shadow: var(--ombre); }
.loc__photo { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; }
.loc__prix { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; padding: 16px 22px; background: var(--nuit); color: var(--blanc); }
.loc__prix b { font: 700 2.2rem/1 var(--f-titre); color: var(--jaune); }
.loc__prix span { font: 600 1rem/1.2 var(--f-titre); letter-spacing: 0.08em; text-transform: uppercase; }
.loc__txt { display: grid; gap: 18px; justify-items: start; }
.loc__txt .surtitre { margin: 0 0 -6px; }
.loc__liste { list-style: none; margin: 4px 0 8px; padding: 0; width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; border-top: 2px solid var(--encre); }
.loc__liste li { position: relative; padding: 10px 0 10px 22px; border-bottom: 1px solid var(--ligne); font-weight: 500; line-height: 1.35; }
.loc__liste li::before { content: ""; position: absolute; left: 2px; top: 1.05em; width: 9px; height: 5px; border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg); }

/* ---------- Rappel infolettre, sur photo ---------- */
.ta-info { padding: calc(var(--section) * 1.15) 0; --voile: linear-gradient(90deg, rgba(10, 14, 22, 0.9) 0%, rgba(10, 14, 22, 0.72) 50%, rgba(10, 14, 22, 0.3) 100%); }
.rappel { display: grid; gap: 18px; justify-items: start; max-width: 640px; }
.rappel .surtitre { margin: 0 0 -4px; }
.rappel__btn { margin-top: 8px; --btn-survol: var(--blanc); --btn-survol-texte: var(--encre); }

/* ---------- Tablette ---------- */
@media (max-width: 1100px) {
  .vision, .moitie { grid-template-columns: 1fr; }
  .orbite { justify-self: start; }
  .billets-hiver { grid-template-columns: 1fr; max-width: 760px; }
  .fonds { grid-template-columns: 1fr 1fr; }
  .loc { grid-template-columns: 1fr; }
  .loc__visuel { max-width: 640px; }
  .loc__photo { aspect-ratio: 16 / 10; }
}

/* ---------- Téléphone ---------- */
@media (max-width: 700px) {
  /* La croix devient une pile : le cœur, puis les quatre satellites deux par deux */
  .orbite { grid-template-columns: 1fr; grid-template-rows: none; max-width: none; aspect-ratio: auto; --ecart: 10px; }
  .orbite::before, .orbite::after { display: none; }
  .orbite__coeur { grid-column: 1; grid-row: 1; padding: 24px 16px; }
  .orbite__sat { grid-column: 1; grid-row: 2; grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .orbite__sat li { grid-column: auto; grid-row: auto; min-height: 112px; font-size: 0.95rem; }
  .billet__carte { grid-template-columns: 88px minmax(0, 1fr); }
  .billet__jour { font-size: 2.6rem; }
  .billet__mois, .billet:nth-child(2) .billet__mois { font-size: 1.2rem; }
  .billet__an { font-size: 0.85rem; }
  .billet__corps { padding: 20px 16px 22px; }
  .dechire__moitie { min-height: 210px; padding: 24px 10px; }
  .dechire__gros { font-size: 3.2rem; }
  .dechire__pour { font-size: 0.92rem; }
  .fonds { grid-template-columns: 1fr; }
  .moitie__action .btn { width: 100%; }
  .ta-location .btn--grand, .ta-moitie .btn--grand { white-space: normal; text-align: center; }
  .loc__photo { aspect-ratio: 4 / 3.2; }
  .loc__prix { padding: 12px 16px; }
  .loc__liste { grid-template-columns: 1fr 1fr; column-gap: 16px; }
  .loc__txt .btn { width: 100%; }
  .rappel__btn { width: 100%; }
}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
  .dechire::before { transition: none; }
}
