/* ════════════════════════════════════════════════════════════════════════
 * Charte A' « Lac & Océan » — Guide Hossegor (validée 2026-10-16)
 *
 * Chargée APRÈS site-v2.css : remappe les tokens hérités (navy, saffron,
 * paper, ink, polices) sur la charte A', puis ajoute les composants A'
 * (en-tête, bande « Aujourd'hui », accueil éditorial, pied de page, hub plages).
 * Maquettes : canvas Design « Guide Hossegor — Charte graphique », ligne A'.
 * ═══════════════════════════════════════════════════════════════════════ */

:root {
  /* Charte A' */
  --a2-ocean: #0F5C73;
  --a2-ocean-dark: #0B4556;
  --a2-encre: #12303D;
  --a2-pin: #1F3328;
  --a2-pin-2: #2E4A3A;
  --a2-soleil: #E8A33D;
  --a2-sable: #F3ECDD;
  --a2-ecume: #FFFBF3;
  --a2-filet: #DCD1BA;
  --a2-texte-2: #3D5446;
  --a2-brun: #6B5B3E;
  --a2-bleu-clair: #CFE3E8;
  --a2-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --a2-sans: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --a2-gutter: clamp(16px, 4.5vw, 64px);

  /* Remap des tokens site-v2 */
  --c-navy-900: var(--a2-encre);
  --c-navy-700: var(--a2-ocean);
  --c-navy-500: #2E7A8F;
  --c-navy-100: #DCEBEE;
  --c-saffron-600: #C9822A;
  --c-saffron-500: var(--a2-soleil);
  --c-saffron-300: #F2C98A;
  --c-saffron-100: #FBEBD0;
  --c-ink-900: var(--a2-pin);
  --c-ink-700: #2A3F33;
  --c-ink-500: #4A5D51;
  --c-ink-300: #8C9A90;
  --c-paper-50: var(--a2-sable);
  --c-paper-100: var(--a2-ecume);
  --c-paper-200: #E7DDC8;
  --font-sans: var(--a2-sans);
  --font-serif: var(--a2-serif);
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-xl: 8px;
  --shadow-md: 0 4px 12px -4px rgba(18, 48, 61, 0.10);
  --shadow-lg: 0 12px 24px -8px rgba(18, 48, 61, 0.14);
  --shadow-xl: 0 24px 48px -16px rgba(18, 48, 61, 0.18);
}

body { font-family: var(--a2-sans); background-color: var(--a2-sable); color: var(--a2-pin); }

/* Titres hérités → Fraunces fin */
.hero__title, .section__title, .page-hero__title, .single-hero__title,
.single-main__title, .info-card__title, .card__title, .blog-card__title,
.archive-hero__title, .feature__title, .banner__title, .page-content h2, .page-content h3,
.single-content h2, .single-content h3 {
  font-family: var(--a2-serif);
  font-weight: 300;
  letter-spacing: -0.02em;
}
.card__title, .blog-card__title { font-weight: 400; }
.section__pill, .single-hero__pill {
  background: transparent; border: 0; padding: 0; border-radius: 0;
  font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--a2-brun);
}
.single-hero__pill { color: var(--a2-bleu-clair); }
.btn { border-radius: 4px; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--a2-soleil); outline-offset: 3px; }

/* ─── En-tête ─────────────────────────────────────────────────────────── */
.a2-header { background: var(--a2-ocean); color: var(--a2-sable); position: relative; z-index: 50; }
.a2-header--over { background: transparent; position: absolute; left: 0; right: 0; top: 0; }
.a2-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 22px var(--a2-gutter); }
.a2-logo { display: flex; align-items: center; gap: 12px; color: var(--a2-sable); text-decoration: none; flex: 0 0 auto; }
.a2-logo svg { width: 40px; height: 40px; }
.a2-logo span { font-family: var(--a2-serif); font-weight: 500; font-size: 24px; letter-spacing: -0.01em; white-space: nowrap; }
.a2-nav ul { display: flex; gap: 32px; list-style: none; margin: 0; padding: 0; }
.a2-nav a { color: var(--a2-sable); text-decoration: none; font-weight: 500; font-size: 16px; white-space: nowrap; padding: 6px 0; border-bottom: 2px solid transparent; }
.a2-nav a:hover, .a2-nav .is-current > a { border-bottom-color: var(--a2-soleil); }
.a2-search { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 18px; border: 1px solid rgba(243, 236, 221, 0.6); border-radius: 4px; color: var(--a2-sable); text-decoration: none; font-weight: 500; font-size: 15px; white-space: nowrap; }
.a2-search:hover { background: rgba(243, 236, 221, 0.12); }
.a2-burger { display: none; width: 44px; height: 44px; border: 0; background: transparent; color: var(--a2-sable); align-items: center; justify-content: center; cursor: pointer; }
.a2-burger path { transform-box: view-box; transform-origin: 12px 12px; transition: transform .28s cubic-bezier(.2, .7, .2, 1); } /* burger → croix */
.a2-burger[aria-expanded="true"] .a2-burger__l1 { transform: rotate(45deg) translateY(4px); }
.a2-burger[aria-expanded="true"] .a2-burger__l2 { transform: rotate(-45deg) translateY(-4px); }
@media (prefers-reduced-motion: reduce) { .a2-burger path { transition: none; } }
@media (max-width: 1080px) {
  .a2-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--a2-encre); padding: 8px var(--a2-gutter) 24px; }
  .nav-open .a2-nav { display: block; }
  .a2-nav ul { flex-direction: column; gap: 0; }
  .a2-nav a { display: flex; min-height: 48px; align-items: center; font-size: 18px; border-bottom: 1px solid rgba(243, 236, 221, 0.12); }
  .a2-burger { display: inline-flex; }
  .a2-search span { display: none; }
  .a2-search { padding: 0 12px; border: 0; }
}
@media (max-width: 600px) { .a2-logo span { font-size: 20px; } .a2-logo svg { width: 32px; height: 32px; } }

/* ─── Bande « Aujourd'hui » ──────────────────────────────────────────── */
.a2-today { background: var(--a2-encre); color: var(--a2-sable); }
.a2-today__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 44px; min-height: 64px; padding: 12px var(--a2-gutter); box-sizing: border-box; font-size: 15px; }
.a2-today__title { font-family: var(--a2-serif); font-style: italic; font-weight: 500; font-size: 18px; color: var(--a2-soleil); }
.a2-today strong { font-weight: 600; }
.a2-today a { color: #E8C48A; font-weight: 600; text-underline-offset: 4px; }
.a2-today__push { margin-left: auto; }
@media (max-width: 760px) { .a2-today__inner { gap: 6px 18px; font-size: 14px; } .a2-today__push { margin-left: 0; } }

/* ─── Hero A' ────────────────────────────────────────────────────────── */
.a2-hero { position: relative; min-height: 760px; background: var(--a2-ocean); background-size: cover; background-position: center; background-repeat: no-repeat; color: var(--a2-sable); overflow: hidden; display: flex; flex-direction: column; }
.a2-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,48,61,0.3) 0%, rgba(18,48,61,0) 30%, rgba(18,48,61,0) 50%, rgba(18,48,61,0.55) 100%); }
.a2-hero--small { min-height: 600px; }
.a2-hero__content { position: relative; margin-top: auto; padding: 0 var(--a2-gutter) 96px; max-width: 1000px; }
.a2-kicker { margin: 0 0 18px; font-size: 14px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--a2-bleu-clair); }
.a2-hero h1 { margin: 0; font-family: var(--a2-serif); font-weight: 300; font-size: clamp(54px, 7.8vw, 112px); line-height: 0.95; letter-spacing: -0.035em; color: var(--a2-sable); }
.a2-hero h1 em { font-weight: 300; }
.a2-hero__lead { margin: 22px 0 0; font-size: 19px; line-height: 1.55; max-width: 640px; color: #E3EEF0; }
.a2-hero__credit { position: absolute; right: var(--a2-gutter); bottom: 24px; font-size: 12px; opacity: 0.85; }
.a2-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
@media (max-width: 760px) { .a2-hero { min-height: 600px; } .a2-hero__content { padding-bottom: 40px; } }

.a2-btn { display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 26px; border-radius: 4px; font: 600 16px var(--a2-sans); text-decoration: none; white-space: nowrap; border: 1px solid transparent; cursor: pointer; }
.a2-btn--soleil { background: var(--a2-soleil); color: var(--a2-pin); }
.a2-btn--soleil:hover { background: #F0B455; }
.a2-btn--ghost { border-color: rgba(243, 236, 221, 0.7); color: var(--a2-sable); }
.a2-btn--ghost:hover { background: rgba(243, 236, 221, 0.12); }
.a2-btn--pin { background: var(--a2-pin); color: var(--a2-sable); }

/* ─── Sections éditoriales ───────────────────────────────────────────── */
.a2-wrap { padding-left: var(--a2-gutter); padding-right: var(--a2-gutter); }
.a2-h2 { margin: 0; font-family: var(--a2-serif); font-weight: 300; font-size: clamp(36px, 4.5vw, 64px); line-height: 1; letter-spacing: -0.03em; color: var(--a2-pin); }
.a2-intro { display: grid; grid-template-columns: 1fr 1.4fr; gap: 80px; align-items: end; padding-top: 120px; padding-bottom: 80px; }
.a2-intro p { margin: 0; font-size: 20px; line-height: 1.6; color: var(--a2-texte-2); max-width: 620px; }
@media (max-width: 900px) { .a2-intro { grid-template-columns: 1fr; gap: 20px; padding-top: 56px; padding-bottom: 32px; } .a2-intro p { font-size: 17px; } }

.a2-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 120px; gap: 20px; padding-bottom: 120px; }
.a2-tile { position: relative; overflow: hidden; text-decoration: none; color: var(--a2-sable); background: var(--a2-pin-2); display: block; }
.a2-tile__img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .4s ease; }
.a2-tile:hover .a2-tile__img { transform: scale(1.03); }
.a2-tile__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(18,48,61,0.72)); }
.a2-tile__txt { position: absolute; left: 28px; right: 28px; bottom: 24px; }
.a2-tile__k { font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; }
.a2-tile h3 { margin: 6px 0 0; font-family: var(--a2-serif); font-weight: 300; font-size: 38px; line-height: 1; letter-spacing: -0.02em; color: inherit; }
.a2-tile--xl h3 { font-size: 56px; }
.a2-tile--soleil { background: var(--a2-soleil); color: var(--a2-pin); padding: 28px; display: flex; flex-direction: column; justify-content: space-between; }
.a2-tile--soleil h3 { font-size: 40px; }
.a2-tile--list { background: var(--a2-ecume); border: 1px solid var(--a2-filet); color: var(--a2-pin); padding: 28px; display: flex; flex-direction: column; justify-content: space-between; }
.a2-tile--list .a2-tile__k { color: var(--a2-brun); }
.a2-tile--list ul { margin: 0; padding: 0; list-style: none; font-family: var(--a2-serif); font-weight: 300; font-size: 26px; line-height: 1.5; }
.a2-tile--list li a { text-decoration: none; color: inherit; }
.a2-tile--list li a:hover { color: var(--a2-ocean); }
.a2-tile--list small { font-family: var(--a2-sans); font-size: 15px; color: var(--a2-brun); }
.a2-g-lac { grid-column: 1 / 8; grid-row: span 5; }
.a2-g-plages { grid-column: 8 / 13; grid-row: span 3; }
.a2-g-surf { grid-column: 8 / 13; grid-row: span 2; }
.a2-g-resto { grid-column: 1 / 5; grid-row: span 3; }
.a2-g-balades { grid-column: 5 / 9; grid-row: span 3; }
.a2-g-dormir { grid-column: 9 / 13; grid-row: span 3; }
@media (max-width: 900px) {
  .a2-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 10px; padding-bottom: 56px; }
  .a2-g-lac { grid-column: 1 / 3; grid-row: span 2; }
  .a2-g-plages, .a2-g-surf, .a2-g-resto, .a2-g-balades { grid-column: auto; grid-row: span 1; }
  .a2-g-dormir { grid-column: 1 / 3; grid-row: span 2; }
  .a2-tile__txt { left: 14px; right: 14px; bottom: 12px; }
  .a2-tile h3, .a2-tile--soleil h3 { font-size: 24px; }
  .a2-tile--xl h3 { font-size: 34px; }
  .a2-tile--soleil, .a2-tile--list { padding: 16px; }
  .a2-g-surf .a2-tile__k, .a2-g-resto .a2-tile__k, .a2-g-balades .a2-tile__k, .a2-g-plages .a2-tile__k { display: none; }
}

/* Listes typographiques (agenda, à deux pas, sélection) */
.a2-agenda { background: var(--a2-ecume); padding-top: 100px; padding-bottom: 100px; }
.a2-head { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 40px; }
.a2-head a { font-weight: 600; color: var(--a2-ocean); text-underline-offset: 4px; white-space: nowrap; }
.a2-rows { border-top: 1px solid var(--a2-pin); margin: 0; padding: 0; list-style: none; }
.a2-row { display: grid; grid-template-columns: 180px minmax(0, 1fr) 260px 40px; gap: 16px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--a2-filet); text-decoration: none; color: var(--a2-pin); }
.a2-row__d { font-family: var(--a2-serif); font-size: 26px; font-weight: 300; }
.a2-row__t { font-family: var(--a2-serif); font-size: 30px; font-weight: 500; line-height: 1.15; }
.a2-row__m { color: var(--a2-texte-2); }
.a2-row__arrow { font-size: 24px; color: var(--a2-ocean); }
.a2-row:hover .a2-row__t { color: var(--a2-ocean); }
.a2-rows--2 .a2-row { grid-template-columns: minmax(0, 1fr) 240px 40px; }
@media (max-width: 900px) {
  .a2-agenda { padding-top: 48px; padding-bottom: 48px; }
  .a2-row, .a2-rows--2 .a2-row { grid-template-columns: 1fr; gap: 2px; padding: 16px 0; }
  .a2-row__d, .a2-row__m { font-family: var(--a2-sans); font-size: 13px; color: var(--a2-brun); }
  .a2-row__t { font-size: 22px; }
  .a2-row__arrow { display: none; }
}

.a2-vivre { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; padding-top: 100px; padding-bottom: 100px; }
.a2-vivre p { margin: 16px 0 0; font-size: 18px; line-height: 1.6; color: var(--a2-texte-2); }
.a2-vivre ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; font-size: 18px; }
.a2-vivre li { border-bottom: 1px solid var(--a2-filet); }
.a2-vivre li a { display: block; padding: 18px 0; text-decoration: none; color: var(--a2-pin); }
.a2-vivre li a:hover { color: var(--a2-ocean); }
@media (max-width: 900px) { .a2-vivre { grid-template-columns: 1fr; gap: 20px; padding-top: 48px; padding-bottom: 56px; } .a2-vivre ul { grid-template-columns: 1fr; } .a2-vivre li a { padding: 12px 0; } }

/* ─── Pied de page ───────────────────────────────────────────────────── */
.a2-footer { background: var(--a2-pin); color: #C9D2C6; padding: 72px var(--a2-gutter) 40px; font-size: 15px; }
.a2-footer__cols { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; }
.a2-footer__brand { font-family: var(--a2-serif); font-size: 40px; font-weight: 300; color: var(--a2-sable); letter-spacing: -0.02em; text-decoration: none; }
.a2-footer p { margin: 12px 0 0; max-width: 360px; line-height: 1.6; }
.a2-footer__col { display: flex; flex-direction: column; gap: 10px; }
.a2-footer__col strong { color: var(--a2-soleil); font-weight: 600; }
.a2-footer a { color: #C9D2C6; text-decoration: none; }
.a2-footer a:hover { color: var(--a2-sable); text-decoration: underline; text-underline-offset: 4px; }
.a2-footer__bottom { margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(243, 236, 221, 0.14); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px; color: #9FAE9F; }
@media (max-width: 900px) { .a2-footer { padding-top: 40px; } .a2-footer__cols { grid-template-columns: 1fr 1fr; gap: 28px; } .a2-footer__cols > :first-child { grid-column: 1 / 3; } .a2-footer__brand { font-size: 30px; } }

/* ─── Fiche établissement (single-datas) ─────────────────────────────── */
.single-hero { min-height: 560px; border-radius: 0; }
.single-hero__title { font-size: clamp(44px, 6.5vw, 96px); line-height: 0.95; letter-spacing: -0.035em; }
.single-hero__breadcrumb, .single-hero__breadcrumb a { color: var(--a2-bleu-clair); }
.a2-status { background: var(--a2-encre); color: var(--a2-sable); }
.info-card { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: 0; box-shadow: none; }
.single-section { background: var(--a2-sable); }
.card { border-radius: 0; background: var(--a2-ecume); box-shadow: none; border: 1px solid var(--a2-filet); }
.card__media { border-radius: 0; }
.card__type-badge { border-radius: 0; background: var(--a2-encre); color: var(--a2-sable); letter-spacing: 0.1em; text-transform: uppercase; font-size: 11px; }
.card__media--empty { background: linear-gradient(160deg, #6E8C8A, #2E4A3A); }

/* ─── Hub plages ─────────────────────────────────────────────────────── */
.a2-chips { display: flex; flex-wrap: wrap; gap: 10px; padding-bottom: 40px; }
.a2-chip { height: 44px; padding: 0 20px; border-radius: 4px; border: 1px solid #CDBF9F; background: transparent; font: 500 15px var(--a2-sans); color: var(--a2-pin); white-space: nowrap; cursor: pointer; }
.a2-chip[aria-pressed="true"] { background: var(--a2-pin); border-color: var(--a2-pin); color: var(--a2-sable); }
.a2-h3 { margin: 0 0 24px; font-family: var(--a2-serif); font-weight: 300; font-size: 40px; color: var(--a2-pin); }
.a2-plages { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 300px; gap: 20px; padding-bottom: 80px; }
.a2-plages .a2-tile { height: auto; }
.a2-plages--ocean .a2-tile:first-child { grid-row: span 2; }
.a2-plages .a2-tile h3 { font-size: 32px; margin-bottom: 8px; }
.a2-plages .a2-tile p { margin: 0; font-size: 14px; line-height: 1.5; }
.a2-plages--ocean .a2-tile:first-child { grid-column: span 2; }
.a2-plages--ocean .a2-tile:first-child h3 { font-size: 52px; }
.a2-tile[hidden] { display: none; }
@media (max-width: 900px) { .a2-plages { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; gap: 10px; padding-bottom: 48px; } .a2-plages .a2-tile h3 { font-size: 24px; } .a2-plages--ocean .a2-tile:first-child h3 { font-size: 32px; } }
.a2-pair { background: var(--a2-ecume); display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding-top: 100px; padding-bottom: 100px; }
.a2-safety { background: var(--a2-pin); color: var(--a2-sable); padding: 48px; }
.a2-safety h2 { color: var(--a2-sable); font-size: 44px; margin-bottom: 20px; }
.a2-safety p { margin: 0 0 28px; font-size: 17px; line-height: 1.6; color: #D5DCD2; }
.a2-safety ul { margin: 0 0 28px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.a2-safety li { display: flex; align-items: center; gap: 14px; }
.a2-safety li span { width: 30px; height: 20px; flex: 0 0 auto; }
.a2-safety a { color: #E8C48A; font-weight: 600; }
@media (max-width: 900px) { .a2-tile--list { justify-content: flex-start; gap: 18px; } }
@media (max-width: 900px) { .a2-pair { grid-template-columns: 1fr; gap: 40px; padding-top: 48px; padding-bottom: 48px; } .a2-safety { padding: 28px; } .a2-safety h2 { font-size: 32px; } }
.a2-page-body { padding-top: 72px; padding-bottom: 40px; max-width: 760px; font-size: 18px; line-height: 1.7; }

@media (prefers-reduced-motion: reduce) { .a2-tile__img { transition: none; } }

/* ─── Animations (coupées si prefers-reduced-motion) ─────────────────── */
.a2-header--over.is-scrolled, .a2-header.is-scrolled { position: fixed; left: 0; right: 0; top: 0; background: var(--a2-ocean); box-shadow: 0 6px 20px -10px rgba(18, 48, 61, 0.5); animation: a2-drop .35s ease backwards; } /* backwards : pas de transform résiduel (sinon le header devient le bloc conteneur du menu mobile fixed) */
.a2-header.is-scrolled .a2-header__inner { padding-top: 12px; padding-bottom: 12px; }
@keyframes a2-drop { from { transform: translateY(-100%); } to { transform: none; } }
.a2-hero__content > * { animation: a2-rise .9s cubic-bezier(.2,.7,.2,1) both; }
.a2-hero__content > :nth-child(2) { animation-delay: .12s; }
.a2-hero__content > :nth-child(3) { animation-delay: .24s; }
.a2-hero__content > :nth-child(4) { animation-delay: .36s; }
/* Zoom lent retiré : animer background-size en % faisait répéter la photo en portrait (mobile) */
@keyframes a2-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.a2-js [data-a2-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.a2-js [data-a2-reveal].is-in { opacity: 1; transform: none; }
.a2-row { transition: padding-left .25s ease; }
.a2-row:hover { padding-left: 8px; }
.a2-row__arrow { transition: transform .25s ease; }
.a2-row:hover .a2-row__arrow { transform: translateX(6px); }
.a2-btn { transition: background-color .2s ease, transform .2s ease; }
.a2-btn:active { transform: translateY(1px); }
.a2-today strong { transition: opacity .3s ease; }
@media (prefers-reduced-motion: reduce) {
  .a2-header.is-scrolled, .a2-hero__content > *, .a2-hero { animation: none !important; }
  .a2-js [data-a2-reveal] { opacity: 1; transform: none; transition: none; }
  .a2-row, .a2-row__arrow, .a2-btn { transition: none; }
  .a2-row:hover { padding-left: 0; }
}
@media (max-width: 1080px) { .a2-header.is-scrolled .a2-nav { top: 100%; } }

/* Fiche : hero photo */
.a2-hero--fiche { background-size: cover; background-position: center; }
.a2-hero--fiche::before { background: linear-gradient(90deg, rgba(18,48,61,0.75) 0%, rgba(18,48,61,0.35) 55%, rgba(18,48,61,0) 100%), linear-gradient(180deg, rgba(18,48,61,0) 40%, rgba(18,48,61,0.75) 100%); }
.a2-hero--fiche h1 { font-size: clamp(42px, 6.5vw, 96px); max-width: 1100px; }
.a2-hero--fiche .a2-hero__content { max-width: none; padding-bottom: 56px; }
.a2-kicker a { color: inherit; text-decoration: none; }
.a2-kicker a:hover { text-decoration: underline; text-underline-offset: 4px; }
.single-hero__stars { margin-top: 12px; }

/* ─── Pages de liste ─────────────────────────────────────────────────── */
.a2-hero--list { min-height: 520px; }
.a2-hero--list h1 { font-size: clamp(48px, 7vw, 104px); }
.a2-list { padding-top: 56px; padding-bottom: 96px; }
.a2-list__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin-bottom: 20px; }
.a2-list__search { display: flex; align-items: center; gap: 10px; flex: 1 1 360px; max-width: 520px; border-bottom: 2px solid var(--a2-pin); color: var(--a2-pin); }
.a2-list__search input { flex: 1; min-width: 0; border: 0; background: transparent; font: 400 18px var(--a2-sans); color: var(--a2-pin); padding: 14px 0; outline: none; }
.a2-list__search:focus-within { border-bottom-color: var(--a2-ocean); }
.a2-list__count { margin: 0; color: var(--a2-texte-2); font: 400 16px var(--a2-sans); }
.a2-list__count strong { font-family: var(--a2-serif); font-weight: 400; font-size: 28px; color: var(--a2-pin); }
.a2-chips__sep { width: 1px; height: 28px; background: var(--a2-filet); align-self: center; margin: 0 6px; }
.a2-chip { display: inline-flex; align-items: center; text-decoration: none; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.a2-chip:hover { border-color: var(--a2-pin); }
.a2-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 28px 24px; }
.a2-card { display: flex; flex-direction: column; background: var(--a2-ecume); border: 1px solid var(--a2-filet); text-decoration: none; color: var(--a2-pin); transition: border-color .2s ease, box-shadow .3s ease, transform .3s ease; }
.a2-card:hover { border-color: var(--a2-pin); box-shadow: 0 18px 36px -24px rgba(18, 48, 61, 0.45); transform: translateY(-3px); }
.a2-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: url('../img/placeholder-a2.svg') center / cover, var(--a2-pin-2); }
.a2-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.a2-card:hover .a2-card__media img { transform: scale(1.04); }
.a2-card__status { position: absolute; left: 12px; top: 12px; background: var(--a2-encre); color: var(--a2-sable); font-size: 12px; font-weight: 600; padding: 6px 10px; letter-spacing: 0.04em; }
.a2-card__status.is-open { background: var(--a2-soleil); color: var(--a2-pin); }
.a2-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.a2-card__k { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--a2-brun); }
.a2-card h3 { margin: 0; font-family: var(--a2-serif); font-weight: 400; font-size: 24px; line-height: 1.15; letter-spacing: -0.01em; }
.a2-card:hover h3 { color: var(--a2-ocean); }
.a2-card p { margin: 0; font-size: 14px; color: var(--a2-texte-2); }
.a2-card[hidden], .a2-row[hidden], [data-a2-month][hidden] { display: none; }
.a2-list__empty { padding: 40px 0; font-size: 18px; color: var(--a2-texte-2); }
.a2-month { margin: 48px 0 8px; }
.a2-month:first-of-type { margin-top: 16px; }
.a2-row__d small { display: block; font-family: var(--a2-sans); font-size: 13px; color: var(--a2-brun); }
.a2-subs { padding-bottom: 96px; }
.a2-subs__list { display: flex; flex-wrap: wrap; gap: 10px; }
.a2-subs .a2-chip { height: 48px; font-size: 16px; }
.a2-page-body { margin: 0 0 72px; padding-top: 0; }
@media (max-width: 760px) {
  .a2-hero--list { min-height: 440px; }
  .a2-list { padding-top: 32px; padding-bottom: 56px; }
  .a2-cards { gap: 16px; }
  .a2-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(var(--a2-gutter) * -1); padding: 0 var(--a2-gutter) 24px; scrollbar-width: none; }
  .a2-chips::-webkit-scrollbar { display: none; }
}
@media (prefers-reduced-motion: reduce) { .a2-card, .a2-card__media img { transition: none; } .a2-card:hover { transform: none; } }
.a2-more { display: flex; justify-content: center; padding-top: 40px; }
.a2-more[hidden] { display: none; }
@media (max-width: 600px) {
  .a2-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .a2-card__body { padding: 12px 12px 14px; gap: 4px; }
  .a2-card h3 { font-size: 18px; }
  .a2-card__k { font-size: 10px; letter-spacing: 0.12em; }
  .a2-card p { font-size: 12px; }
  .a2-card__status { left: 8px; top: 8px; font-size: 11px; padding: 4px 8px; }
}

/* ─── Carte ──────────────────────────────────────────────────────────── */
.a2-view { display: inline-flex; gap: 6px; }
.a2-view .a2-chip { height: 40px; }
.a2-list__map { display: none; }
.a2-list.show-map .a2-list__map { display: block; }
.a2-list.only-map .a2-list__main { display: none; }
.a2-map { height: 72vh; min-height: 420px; background: #DCE6E2; border: 1px solid var(--a2-filet); }
.a2-map--wide { height: 560px; min-height: 0; }
.a2-map-wrap { padding-bottom: 96px; }
.a2-map__err { padding: 24px; color: var(--a2-texte-2); }
@media (min-width: 1100px) {
  .a2-list.show-map:not(.only-map) .a2-list__layout { display: grid; grid-template-columns: minmax(0, 1fr) 42%; gap: 28px; align-items: start; }
  .a2-list.show-map:not(.only-map) .a2-list__map { position: sticky; top: 84px; }
  .a2-list.show-map:not(.only-map) .a2-map { height: calc(100vh - 108px); }
  .a2-list.show-map:not(.only-map) .a2-cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
  .a2-list.show-map:not(.only-map) .a2-row { grid-template-columns: 150px minmax(0, 1fr) 40px; }
  .a2-list.show-map:not(.only-map) .a2-row__m { display: none; }
}
@media (max-width: 760px) { .a2-map--wide { height: 420px; } .a2-map-wrap { padding-bottom: 56px; } }

/* Repères */
.a2-pin { background: none; border: 0; }
.a2-pin i { display: block; width: 18px; height: 18px; margin: 4px; border-radius: 50%; border: 3px solid var(--a2-ecume); box-shadow: 0 2px 6px rgba(18, 48, 61, 0.45); background: var(--a2-ocean); transition: transform .2s ease; }
.a2-pin--manger i { background: var(--a2-soleil); }
.a2-pin--dormir i { background: var(--a2-ocean); }
.a2-pin--faire i { background: var(--a2-pin-2); }
.a2-pin--culture i { background: var(--a2-encre); }
.a2-pin--commerce i { background: #B9875C; }
.a2-pin--plage i { background: #2E8FA8; }
.a2-pin.is-hot { z-index: 1000 !important; }
.a2-pin.is-hot i, .a2-pin:hover i { transform: scale(1.45); }
.a2-cluster { background: var(--a2-encre); color: var(--a2-sable); border-radius: 50%; border: 3px solid rgba(255, 251, 243, 0.85); box-sizing: border-box; text-align: center; line-height: 34px; font: 600 14px/34px var(--a2-sans); box-shadow: 0 4px 12px rgba(18, 48, 61, 0.35); }
.a2-cluster span { display: block; }
.a2-map .leaflet-popup-content-wrapper { border-radius: var(--a2-radius, 4px); padding: 0; overflow: hidden; background: var(--a2-ecume); }
.a2-map .leaflet-popup-content { margin: 0; width: 220px !important; }
.a2-pop { display: block; text-decoration: none; color: var(--a2-pin); }
.a2-pop img { display: block; width: 100%; height: 120px; object-fit: cover; }
.a2-pop__k { display: block; padding: 10px 14px 0; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--a2-brun); }
.a2-pop strong { display: block; padding: 2px 14px 12px; font: 400 18px/1.2 var(--a2-serif); }
.a2-pop:hover strong { color: var(--a2-ocean); }
.leaflet-container { font-family: var(--a2-sans); }
.a2-map .leaflet-container a.leaflet-popup-close-button, .a2-map a.leaflet-popup-close-button { color: var(--a2-sable); text-shadow: 0 1px 3px rgba(0,0,0,.6); }
@media (prefers-reduced-motion: reduce) { .a2-pin i { transition: none; } }

/* ─── Arrondi commun (même rayon que les boutons) ────────────────────── */
:root { --a2-radius: 4px; }
.a2-btn, .a2-chip, .a2-search { border-radius: var(--a2-radius); }
.a2-card, .a2-tile, .a2-map, .a2-safety, .a2-tile--list, .info-card, .card, .a2-subs .a2-chip, .single-hero, .a2-pair .a2-safety { border-radius: var(--a2-radius); overflow: hidden; }
.a2-card__media { border-radius: var(--a2-radius) var(--a2-radius) 0 0; }
.a2-card__status { border-radius: calc(var(--a2-radius) - 1px); }
.a2-map .leaflet-bar { border-radius: var(--a2-radius); }
.a2-map .leaflet-bar a:first-child { border-radius: var(--a2-radius) var(--a2-radius) 0 0; }
.a2-map .leaflet-bar a:last-child { border-radius: 0 0 var(--a2-radius) var(--a2-radius); }
.a2-map--fiche { height: 240px; min-height: 0; }
.info-card__map .a2-map { margin-bottom: 10px; }
@media (min-width: 1100px) { .a2-view { display: none; } }

/* ─── Pages de contenu ───────────────────────────────────────────────── */
.a2-hero--page { min-height: 480px; }
.a2-hero--page h1 { font-size: clamp(44px, 6.4vw, 92px); max-width: 1100px; }
.a2-article { padding-top: 72px; padding-bottom: 72px; }
.a2-article.has-toc { display: grid; grid-template-columns: 260px minmax(0, 760px); gap: 72px; justify-content: start; }
.a2-toc { position: sticky; top: 96px; align-self: start; font-size: 15px; }
.a2-toc__title { margin: 0 0 12px; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--a2-brun); }
.a2-toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--a2-filet); }
.a2-toc li a { display: block; padding: 7px 0 7px 16px; margin-left: -2px; border-left: 2px solid transparent; color: var(--a2-texte-2); text-decoration: none; line-height: 1.35; }
.a2-toc li a:hover, .a2-toc li a.is-active { color: var(--a2-pin); border-left-color: var(--a2-soleil); }
.a2-prose { max-width: 760px; font-size: 18px; line-height: 1.7; color: var(--a2-pin); }
.a2-prose > * + * { margin-top: 1.1em; }
.a2-prose p { margin: 0; }
.a2-prose p + p { margin-top: 1.1em; }
.a2-prose h2 { margin: 2.2em 0 .6em; font-family: var(--a2-serif); font-weight: 300; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.08; letter-spacing: -0.02em; scroll-margin-top: 96px; }
.a2-prose h2:first-child { margin-top: 0; }
.a2-prose h3 { margin: 1.8em 0 .4em; font-family: var(--a2-serif); font-weight: 400; font-size: 25px; line-height: 1.2; }
.a2-prose a { color: var(--a2-ocean); text-decoration: underline; text-decoration-color: rgba(15, 92, 115, .35); text-underline-offset: 3px; }
.a2-prose a:hover { text-decoration-color: var(--a2-ocean); }
.a2-prose ul, .a2-prose ol { padding-left: 1.2em; }
.a2-prose li + li { margin-top: .35em; }
.a2-prose li::marker { color: var(--a2-soleil); }
.a2-prose strong { font-weight: 600; }
.a2-prose table { width: 100%; border-collapse: collapse; font-size: 16px; font-variant-numeric: tabular-nums; }
.a2-prose th { text-align: left; font-weight: 600; font-size: 14px; color: var(--a2-brun); padding: 10px 14px 10px 0; border-bottom: 2px solid var(--a2-pin); }
.a2-prose td { padding: 12px 14px 12px 0; border-bottom: 1px solid var(--a2-filet); vertical-align: top; }
.a2-prose .a2-table { overflow-x: auto; }
.a2-prose blockquote { margin-left: 0; padding-left: 20px; border-left: 3px solid var(--a2-soleil); font-family: var(--a2-serif); font-size: 22px; font-style: italic; }
.a2-callout { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-left: 4px solid var(--a2-soleil); border-radius: var(--a2-radius); padding: 20px 24px; font-size: 17px; }
.a2-callout--info { border-left-color: var(--a2-ocean); }
.a2-callout > :first-child { margin-top: 0; }
.a2-callout strong:first-child { display: block; margin-bottom: 4px; font-family: var(--a2-serif); font-weight: 500; font-size: 20px; }
.a2-faq details { border-bottom: 1px solid var(--a2-filet); }
.a2-faq details:first-of-type { border-top: 1px solid var(--a2-pin); }
.a2-faq summary { cursor: pointer; list-style: none; padding: 18px 40px 18px 0; position: relative; font-family: var(--a2-serif); font-size: 21px; line-height: 1.3; }
.a2-faq summary::-webkit-details-marker { display: none; }
.a2-faq summary::after { content: "+"; position: absolute; right: 6px; top: 14px; font: 300 28px var(--a2-sans); color: var(--a2-ocean); transition: transform .2s ease; }
.a2-faq details[open] summary::after { transform: rotate(45deg); }
.a2-faq details > :not(summary) { padding-bottom: 18px; }
.a2-cards--inline { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.a2-prose .a2-cards--inline a { text-decoration: none; color: var(--a2-pin); }
.a2-prose .a2-card h3 { margin: 0; font-size: 20px; }
@media (max-width: 1000px) {
  .a2-article.has-toc { display: block; }
  .a2-toc { position: static; margin-bottom: 40px; padding: 18px 20px; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
  .a2-toc ol { border-left: 0; }
  .a2-toc li a { padding-left: 0; border-left: 0; }
}
@media (max-width: 760px) { .a2-hero--page { min-height: 400px; } .a2-article { padding-top: 40px; } .a2-prose { font-size: 17px; } }
/* Correctifs pages de contenu */
.a2-hero { padding-top: 96px; box-sizing: border-box; }
.a2-hero .a2-header--over { position: absolute; }
.a2-prose ul { list-style: disc; }
.a2-prose ol { list-style: decimal; }
.a2-prose ul ul { list-style: circle; }
.a2-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 700px) {
  .a2-table table { min-width: 560px; }
  .a2-callout { padding: 16px 16px; }
}

/* Hero vidéo (accueil) */
.a2-hero--video { background-size: cover; background-position: center; }
.a2-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; opacity: 0; transition: opacity 1.2s ease; }
.a2-hero__video.is-playing { opacity: 1; }
.a2-hero--video::before { z-index: 1; background: linear-gradient(180deg, rgba(18,48,61,0.45) 0%, rgba(18,48,61,0.05) 32%, rgba(18,48,61,0.1) 55%, rgba(18,48,61,0.7) 100%); }
.a2-hero--video .a2-hero__content, .a2-hero--video .a2-hero__credit { z-index: 2; }
.a2-hero--video .a2-header--over { z-index: 3; }
.a2-hero--video h1 { text-shadow: 0 2px 24px rgba(18, 48, 61, 0.35); }
@media (prefers-reduced-motion: reduce) { .a2-hero__video { display: none; } }
@media (max-width: 760px) {
  .a2-hero--video .a2-hero__content { padding-bottom: 52px; }
  .a2-hero__credit { bottom: 12px; font-size: 10px; }
}
/* Heros photo : voile plus dense en bas à gauche pour la lisibilité du titre */
.a2-hero[style*="background-image"]:not(.a2-hero--video):not(.a2-hero--fiche)::before,
.a2-hero[style*="--a2-hero-lg"]::before {
  background: linear-gradient(180deg, rgba(18,48,61,.45) 0%, rgba(18,48,61,.1) 30%, rgba(18,48,61,.25) 55%, rgba(18,48,61,.82) 100%),
              linear-gradient(90deg, rgba(18,48,61,.45) 0%, rgba(18,48,61,0) 60%);
}
.a2-hero[style*="background-image"], .a2-hero[style*="--a2-hero-lg"] { background-size: cover; background-position: center 60%; background-repeat: no-repeat; }
.a2-hero[style*="background-image"] h1, .a2-hero[style*="--a2-hero-lg"] h1 { text-shadow: 0 2px 22px rgba(18,48,61,.4); }
/* Pages de contenu : bloc sommaire + texte centré dans la page */
.a2-article.has-toc { justify-content: center; }
.a2-article:not(.has-toc) .a2-prose { margin-left: auto; margin-right: auto; }
.page-a2 .a2-subs { max-width: 1092px; margin-left: auto; margin-right: auto; box-sizing: content-box; }
@media (min-width: 1001px) { .page-a2 .a2-subs { padding-left: max(var(--a2-gutter), calc((100% - 1092px) / 2)); padding-right: max(var(--a2-gutter), calc((100% - 1092px) / 2)); max-width: none; } }
@media (min-width: 1001px) { .page-a2 .a2-hero--page .a2-hero__content { padding-left: max(var(--a2-gutter), calc((100% - 1092px) / 2)); max-width: none; } .page-a2 .a2-hero--page h1, .page-a2 .a2-hero--page .a2-hero__lead { max-width: 1000px; } }
/* Tableaux responsives : cartes empilées sous 700 px */
@media (max-width: 700px) {
  .a2-table table.a2-rtable { min-width: 0; }
  .a2-rtable, .a2-rtable tbody, .a2-rtable tr, .a2-rtable td { display: block; width: 100%; box-sizing: border-box; }
  .a2-rtable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .a2-rtable tr { padding: 14px 0; border-bottom: 1px solid var(--a2-filet); }
  .a2-rtable tr:first-child { border-top: 2px solid var(--a2-pin); }
  .a2-prose .a2-rtable td { display: grid; grid-template-columns: 38% 1fr; gap: 12px; padding: 4px 0; border: 0; white-space: normal; }
  .a2-rtable td::before { content: attr(data-label); font-size: 13px; font-weight: 600; color: var(--a2-brun); }
  .a2-rtable td:first-child { font-family: var(--a2-serif); font-size: 19px; }
  .a2-rtable td:first-child::before { align-self: center; }
}
@media (max-width: 700px) {
  .a2-prose .a2-rtable td:first-child { display: block; margin-bottom: 6px; font-size: 21px; }
  .a2-rtable td:first-child::before { content: none; }
}

/* Horaires des fiches : marges intérieures pour que la ligne du jour ne touche pas les bords */
.gh-hours__day{padding-left:12px}
.gh-hours__slot{padding-right:12px}
.gh-hours__row.is-today{background:none}
.gh-hours__row.is-today>*{background:var(--c-saffron-100,#fbecd3)}
.gh-hours__row.is-today>:first-child{border-radius:var(--a2-radius) 0 0 var(--a2-radius)}
.gh-hours__row.is-today>:last-child{border-radius:0 var(--a2-radius) var(--a2-radius) 0}

/* ════════════════════════════════════════════════════════════════════
 * Tableau de bord météo (/meteo/, /meteo/15-jours/) — inc/meteo.php
 * ════════════════════════════════════════════════════════════════════ */
.a2-meteo { max-width: 1092px; box-sizing: content-box; margin: 0 auto; padding-top: 56px; }
.a2-meteo__k { margin: 0 0 14px; font: 600 13px var(--a2-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--a2-brun); }
.a2-meteo__now { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 0; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); overflow: hidden; }
.a2-meteo__main { padding: 32px 36px; }
.a2-meteo__sea { padding: 32px 32px; background: var(--a2-encre); color: var(--a2-sable); }
.a2-meteo__sea .a2-meteo__k { color: var(--a2-soleil); }
.a2-meteo__big { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 26px; }
.a2-meteo__t { font: 300 88px/1 var(--a2-serif); color: var(--a2-pin); letter-spacing: -.02em; }
.a2-meteo__lbl { display: flex; flex-direction: column; gap: 4px; font: 400 26px/1.15 var(--a2-serif); color: var(--a2-pin); }
.a2-meteo__lbl small { font: 400 15px var(--a2-sans); color: var(--a2-texte-2); }
.a2-meteo__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 24px; margin: 0; }
.a2-meteo__facts div { border-top: 1px solid var(--a2-filet); padding-top: 10px; }
.a2-meteo__facts dt { font-size: 13px; color: var(--a2-texte-2); margin-bottom: 2px; }
.a2-meteo__facts dd { margin: 0; font-weight: 600; font-size: 17px; color: var(--a2-pin); font-variant-numeric: tabular-nums; }
.a2-meteo__facts--sea { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.a2-meteo__sea .a2-meteo__facts div { border-color: rgba(243, 236, 221, .18); }
.a2-meteo__sea .a2-meteo__facts dt { color: #B9C7C9; }
.a2-meteo__sea .a2-meteo__facts dd { color: var(--a2-sable); }
.a2-meteo__sea .a2-meteo__xl { font: 300 40px/1.1 var(--a2-serif); }
.a2-meteo__tides { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.a2-meteo__tides li { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 8px; padding: 10px 12px; background: rgba(243, 236, 221, .07); border-radius: var(--a2-radius); font-size: 14px; color: #B9C7C9; }
.a2-meteo__tides strong { color: var(--a2-sable); font-size: 17px; font-variant-numeric: tabular-nums; }
.a2-meteo__tides small { color: var(--a2-soleil); font-size: 12px; }
.a2-meteo__links { margin: 20px 0 0; font-size: 15px; }
.a2-meteo__links a { color: #E8C48A; font-weight: 600; text-underline-offset: 4px; }
.a2-meteo__h { margin: 56px 0 18px; font: 300 34px/1.15 var(--a2-serif); color: var(--a2-pin); scroll-margin-top: 96px; }

/* Pictos */
.a2-wx { flex: none; display: block; }
.a2-wx .m-sun { stroke: var(--a2-soleil); }
.a2-wx .m-sun circle { fill: rgba(232, 163, 61, .18); }
.a2-wx .m-moon { stroke: #8FA8B0; fill: rgba(143, 168, 176, .15); }
.a2-wx .m-cloud { stroke: var(--a2-ocean); fill: var(--a2-ecume); }
.a2-wx .m-cloud--back { fill: none; opacity: .6; }
.a2-wx .m-rain { stroke: #2E7A8F; stroke-width: 1.8; }
.a2-wx .m-bolt { stroke: var(--a2-soleil); stroke-width: 1.8; }
.a2-wind-arrow { display: inline-block; font-weight: 700; line-height: 1; color: var(--a2-ocean); }
.a2-meteo__sea .a2-wind-arrow { color: var(--a2-soleil); }

/* Heure par heure : bande défilante */
.a2-meteo__hours { overflow-x: auto; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); scrollbar-width: thin; scroll-snap-type: x proximity; }
.a2-meteo__hours:focus-visible { outline: 2px solid var(--a2-ocean); outline-offset: 2px; }
.a2-meteo__hours ol { display: flex; list-style: none; margin: 0; padding: 0; }
.a2-meteo__hours li { flex: 0 0 72px; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 38px 0 16px; position: relative; scroll-snap-align: start; font-variant-numeric: tabular-nums; }
.a2-meteo__hours li.is-newday { border-left: 1px solid var(--a2-filet); }
.a2-meteo__hours li.is-newday:first-child { border-left: 0; }
.a2-meteo__hours li.is-now { background: var(--c-saffron-100); }
.a2-meteo__day { position: absolute; top: 10px; left: 10px; white-space: nowrap; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--a2-brun); }
.a2-meteo__hh { font-size: 14px; color: var(--a2-texte-2); }
.a2-meteo__ht { font: 400 22px var(--a2-serif); color: var(--a2-pin); }
.a2-meteo__hp, .a2-meteo__hw { font-size: 13px; color: var(--a2-texte-2); }
.a2-meteo__hp.is-wet { color: #1F6478; font-weight: 600; }
.a2-meteo__legend { margin: 10px 0 0; font-size: 14px; color: var(--a2-texte-2); }

/* Jours */
.a2-meteo__days { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
.a2-meteo__drow { display: grid; grid-template-columns: 150px 44px minmax(0, 1fr) minmax(170px, 1.1fr) 92px 120px 72px; align-items: center; gap: 16px; padding: 12px 20px; border-top: 1px solid var(--a2-filet); font-variant-numeric: tabular-nums; }
.a2-meteo__drow--head { border-top: 0; padding-top: 14px; padding-bottom: 10px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--a2-brun); }
.a2-meteo__drow.is-today { background: var(--c-saffron-100); }
.a2-meteo__drow.is-trend { opacity: .78; }
.a2-meteo__drow small { display: block; font-size: 13px; font-weight: 400; color: var(--a2-texte-2); }
.a2-meteo__dn strong { font-weight: 600; color: var(--a2-pin); }
.a2-meteo__dl { color: var(--a2-pin); }
.a2-meteo__dl small { display: inline-block; margin: 2px 0 0 8px; padding: 1px 8px; border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); font-size: 12px; }
.a2-meteo__dt { display: flex; align-items: center; gap: 10px; }
.a2-meteo__min { width: 30px; text-align: right; color: var(--a2-texte-2); }
.a2-meteo__max { width: 30px; font-weight: 600; color: var(--a2-pin); }
.a2-meteo__bar { position: relative; flex: 1; height: 6px; background: var(--a2-sable); border-radius: 3px; }
.a2-meteo__bar i { position: absolute; top: 0; bottom: 0; border-radius: 3px; background: linear-gradient(90deg, #6FA6B5, var(--a2-soleil)); }
.a2-meteo__dp.is-wet { color: #1F6478; font-weight: 600; }
.a2-meteo__more { margin: 28px 0 0; }
.a2-meteo__src { margin: 22px 0 0; font-size: 13px; line-height: 1.5; color: var(--a2-texte-2); max-width: 760px; }
.a2-meteo__src a { color: var(--a2-ocean); }
.a2-meteo__err { padding: 20px; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
.a2-meteo + .a2-article { padding-top: 24px; }

@media (max-width: 1000px) {
  .a2-meteo__now { grid-template-columns: 1fr; }
  .a2-meteo__drow { grid-template-columns: 110px 40px minmax(0, 1fr) 150px 80px; }
  .a2-meteo__drow > :nth-child(6), .a2-meteo__drow > :nth-child(7) { display: none; }
}
@media (max-width: 700px) {
  .a2-meteo { padding-top: 32px; }
  .a2-meteo__main, .a2-meteo__sea { padding: 22px 18px; }
  .a2-meteo__t { font-size: 68px; }
  .a2-meteo__lbl { font-size: 22px; }
  .a2-meteo__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
  .a2-meteo__h { font-size: 28px; margin-top: 40px; }
  .a2-meteo__drow--head { display: none; }
  .a2-meteo__drow { grid-template-columns: minmax(0, 1fr) 36px auto; grid-template-areas: "n i t" "l l p"; gap: 4px 12px; padding: 12px 14px; }
  .a2-meteo__drow:nth-child(2) { border-top: 0; }
  .a2-meteo__dn { grid-area: n; } .a2-meteo__drow > :nth-child(2) { grid-area: i; } .a2-meteo__dt { grid-area: t; }
  .a2-meteo__dl { grid-area: l; font-size: 14px; color: var(--a2-texte-2); } .a2-meteo__dp { grid-area: p; text-align: right; font-size: 14px; }
  .a2-meteo__dp small { display: inline; margin-left: 6px; }
  .a2-meteo__bar { display: none; }
  .a2-meteo__dt { gap: 6px; } .a2-meteo__min, .a2-meteo__max { width: auto; }
  .a2-meteo__dw { display: none; }
  .a2-meteo__hours li { flex-basis: 64px; }
}

/* ════════════════════════════════════════════════════════════════════
 * Webcams (/webcams/, /webcams/la-*) — inc/webcams.php
 * ════════════════════════════════════════════════════════════════════ */
.a2-cams { max-width: 1092px; box-sizing: content-box; margin: 0 auto; padding-top: 56px; }
.a2-cams__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.a2-cams__side { display: grid; gap: 24px; }
.a2-cam { margin: 0; }
.a2-cam__player { position: relative; aspect-ratio: 16 / 9; background: var(--a2-encre); border-radius: var(--a2-radius); overflow: hidden; }
.a2-cam__player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.a2-cam__live { position: absolute; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: rgba(18, 48, 61, .78); color: var(--a2-sable); border-radius: var(--a2-radius); font: 600 12px var(--a2-sans); letter-spacing: .06em; text-transform: uppercase; pointer-events: none; }
.a2-cam__live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #E5484D; animation: a2-pulse 1.6s ease-in-out infinite; }
@keyframes a2-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .a2-cam__live::before { animation: none; } }
.a2-cam figcaption { padding: 12px 2px 0; }
.a2-cam__t { margin: 0; font: 400 26px/1.2 var(--a2-serif); color: var(--a2-pin); }
.a2-cam--side .a2-cam__t { font-size: 20px; }
.a2-cam__s { display: block; margin-top: 4px; font-size: 14px; color: var(--a2-texte-2); }
.a2-cam__out { display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; aspect-ratio: 16 / 9; padding: 18px 20px; box-sizing: border-box; border-radius: var(--a2-radius); text-decoration: none; color: var(--a2-sable); background: linear-gradient(160deg, var(--a2-ocean) 0%, var(--a2-encre) 100%); transition: transform .2s ease; }
.a2-cam__out:hover { transform: translateY(-2px); }
.a2-cam__out-k { font: 600 12px var(--a2-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--a2-soleil); }
.a2-cam__out-t { font: 300 28px/1.1 var(--a2-serif); }
.a2-cam__out-a { font-weight: 600; font-size: 15px; color: #E8C48A; }
.a2-cams__now { padding: 22px 22px 18px; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
.a2-cams__now dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 0; }
.a2-cams__now dl div { border-top: 1px solid var(--a2-filet); padding-top: 8px; }
.a2-cams__now dt { font-size: 13px; color: var(--a2-texte-2); }
.a2-cams__now dd { margin: 0; font-weight: 600; font-size: 16px; color: var(--a2-pin); font-variant-numeric: tabular-nums; }
.a2-cams__now dd small { display: block; font-weight: 400; font-size: 13px; color: var(--a2-texte-2); }
.a2-cams__more { margin: 14px 0 0; font-size: 14px; }
.a2-cams__more a { color: var(--a2-ocean); font-weight: 600; }
.a2-cams + .a2-article { padding-top: 24px; }
@media (max-width: 1000px) { .a2-cams__grid { grid-template-columns: 1fr; } .a2-cams__side { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .a2-cams { padding-top: 24px; padding-left: 0; padding-right: 0; } .a2-cam--main figcaption, .a2-cams__side { padding-left: 16px; padding-right: 16px; } .a2-cam__player { border-radius: 0; } .a2-cams__side { grid-template-columns: 1fr; } .a2-cam__t { font-size: 22px; } }
.a2-cam__player--page { aspect-ratio: auto; height: 640px; background: #1b1b1b; }
@media (max-width: 700px) { .a2-cam__player--page { height: 560px; } }

/* ════════════════════════════════════════════════════════════════════
 * Cinéma Le Rex (/sortir/cinema-le-rex/) — inc/cinema.php
 * ════════════════════════════════════════════════════════════════════ */
.a2-cine { max-width: 1092px; box-sizing: content-box; margin: 0 auto; padding-top: 16px; }
.a2-cine .a2-meteo__h:first-child { margin-top: 40px; }
.a2-cine__days { padding: 0; margin: 0 0 20px; }
.a2-cine__days [aria-selected="true"] { background: var(--a2-pin); color: var(--a2-sable); border-color: var(--a2-pin); }
.a2-cine__panel { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
.a2-cine__date { margin: 0; padding: 16px 22px; border-bottom: 1px solid var(--a2-filet); font: 600 13px var(--a2-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--a2-brun); }
.a2-cine__film { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 12px 32px; align-items: center; padding: 18px 22px; border-top: 1px solid var(--a2-filet); }
.a2-cine__date + .a2-cine__film { border-top: 0; }
.a2-cine__t { margin: 0 0 4px; font: 400 24px/1.2 var(--a2-serif); color: var(--a2-pin); }
.a2-cine__meta, .a2-cine__cast { margin: 0; font-size: 15px; color: var(--a2-texte-2); }
.a2-cine__cast { font-size: 14px; margin-top: 2px; }
.a2-cine__shows { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; justify-content: flex-end; }
.a2-cine__show { display: inline-flex; align-items: baseline; gap: 6px; min-height: 44px; padding: 10px 14px; box-sizing: border-box; border: 1px solid var(--a2-ocean); border-radius: var(--a2-radius); color: var(--a2-ocean); text-decoration: none; font-variant-numeric: tabular-nums; transition: background-color .2s ease, color .2s ease; }
.a2-cine__show strong { font-size: 17px; }
.a2-cine__show small { font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.a2-cine__show:hover { background: var(--a2-ocean); color: var(--a2-ecume); }
.a2-cine__show.is-past { opacity: .4; border-color: var(--a2-filet); color: var(--a2-texte-2); pointer-events: none; }
.a2-cine__soon { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.a2-cine__soon li { padding: 12px 0; border-top: 1px solid var(--a2-filet); }
.a2-cine__soon strong { display: block; font: 400 20px/1.25 var(--a2-serif); color: var(--a2-pin); }
.a2-cine__soon span { font-size: 14px; color: var(--a2-texte-2); }
.a2-cine .a2-table { margin-top: 0; }
@media (max-width: 760px) {
  .a2-cine__film { grid-template-columns: 1fr; padding: 16px; }
  .a2-cine__shows { justify-content: flex-start; }
  .a2-cine__soon { grid-template-columns: 1fr; }
  .a2-cine__days { flex-wrap: nowrap; overflow-x: auto; margin-left: -16px; margin-right: -16px; padding: 0 16px 4px; }
  .a2-cine__days .a2-chip { flex: none; }
}
.a2-cine__prices { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.a2-cine__prices li { display: flex; flex-direction: column; gap: 2px; padding: 16px 18px; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
.a2-cine__prices li.is-extra { background: transparent; border-style: dashed; }
.a2-cine__pn { font-size: 15px; color: var(--a2-texte-2); }
.a2-cine__prices strong { font: 300 32px/1.15 var(--a2-serif); color: var(--a2-pin); font-variant-numeric: tabular-nums; }
.a2-cine__prices small { font-size: 13px; color: var(--a2-texte-2); line-height: 1.4; }

/* Agenda dynamique : marchés et cinéma du jour (inc/agenda.php) */
.a2-list__none { margin: 8px 0 0; font-size: 17px; color: var(--a2-texte-2); }
.a2-agx .a2-meteo__h { margin-top: 40px; }
.a2-agx__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.a2-agx__day { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); padding-bottom: 8px; }
.a2-agx__k { margin: 16px 20px 6px; font: 600 13px var(--a2-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--a2-brun); }
.a2-agx__list { list-style: none; margin: 0; padding: 0 20px; }
.a2-agx__list li { display: flex; flex-direction: column; padding: 8px 0; border-top: 1px solid var(--a2-filet); }
.a2-agx__list li:first-child { border-top: 0; }
.a2-agx__list a { font: 400 19px/1.3 var(--a2-serif); color: var(--a2-pin); text-decoration: none; }
.a2-agx__list a:hover { color: var(--a2-ocean); }
.a2-agx__list span { font-size: 14px; color: var(--a2-texte-2); font-variant-numeric: tabular-nums; }
.a2-agx__none { margin: 0 20px; font-size: 15px; color: var(--a2-texte-2); }

/* Tableaux éditoriaux : carte avec marges intérieures (ordinateur et tablette) */
@media (min-width: 701px) {
  .a2-prose .a2-table { margin: 28px 0; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
  .a2-prose .a2-table table { font-size: 16px; line-height: 1.5; }
  .a2-prose .a2-table th { padding: 14px 18px; background: rgba(220, 209, 186, .35); border-bottom: 1px solid var(--a2-filet); font-size: 12px; letter-spacing: .07em; text-transform: uppercase; vertical-align: bottom; }
  .a2-prose .a2-table td { padding: 14px 18px; }
  .a2-prose .a2-table tr:last-child td { border-bottom: 0; }
  .a2-prose .a2-table td:first-child { font-weight: 600; color: var(--a2-pin); }
  .a2-prose .a2-table td:first-child a { font-weight: 600; }
  .a2-prose .a2-callout .a2-table { margin: 14px 0 0; }
}

/* Tableau vent et houle (/meteo/vent/) */
.a2-wind__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.a2-wind__bar .a2-chips { padding: 0; margin: 0; }
.a2-wind__bar [aria-pressed="true"] { background: var(--a2-pin); color: var(--a2-sable); border-color: var(--a2-pin); }
.a2-wind__legend { margin: 0; display: flex; gap: 10px; font-size: 13px; }
.a2-wind__legend span { padding: 4px 10px; border-radius: var(--a2-radius); }
.a2-wind__legend .is-off, .a2-wind__dir.is-off { background: #DCEFE2; }
.a2-wind__legend .is-on, .a2-wind__dir.is-on { background: #F6DEDA; }
.a2-wind { overflow-x: auto; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); scrollbar-width: thin; }
.a2-wind:focus-visible { outline: 2px solid var(--a2-ocean); outline-offset: 2px; }
.a2-wind table { border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.a2-wind th, .a2-wind td { padding: 7px 0; min-width: 44px; text-align: center; border-bottom: 1px solid rgba(220, 209, 186, .6); }
.a2-wind tbody th, .a2-wind thead th[scope="row"] { position: sticky; left: 0; z-index: 1; min-width: 96px; padding: 7px 12px; text-align: left; background: var(--a2-ecume); border-right: 1px solid var(--a2-filet); font-weight: 600; font-size: 13px; color: var(--a2-texte-2); }
.a2-wind__days th { padding: 9px 8px; font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--a2-brun); text-align: left; border-left: 1px solid var(--a2-filet); }
.a2-wind thead tr:last-child th { font-weight: 500; color: var(--a2-texte-2); }
.a2-wind .is-newday { border-left: 1px solid var(--a2-filet); }
.a2-wind__speed td { font-weight: 700; color: var(--a2-pin); }
.a2-wind__dir small { display: block; font-size: 11px; color: var(--a2-texte-2); }
.a2-wind td.is-wet { color: #1F6478; font-weight: 600; }
.a2-wind__surf td { color: var(--a2-ocean); font-size: 12px; letter-spacing: 1px; }
.a2-wind__surf td.is-2 { background: #CFE7DA; }
.a2-wind__surf td.is-1 { background: #E9F3EC; }
.a2-wind__wave td { font-weight: 700; color: var(--a2-pin); }
.a2-wind td.is-long { font-weight: 700; color: var(--a2-ocean); }
.a2-wind__tide td { font-size: 12px; color: var(--a2-texte-2); }
.a2-wind__tide td.is-ext { font-weight: 700; color: var(--a2-pin); white-space: normal; line-height: 1.15; }
.a2-surfbest { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.a2-surfbest li { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-left: 4px solid #8CC7A2; border-radius: var(--a2-radius); }
.a2-surfbest li.is-2 { border-left-color: #2F8F5B; }
.a2-surfbest strong { font: 400 20px/1.2 var(--a2-serif); color: var(--a2-pin); }
.a2-surfbest span { font-size: 14px; color: var(--a2-texte-2); }
.a2-surfbest em { font-style: normal; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #2F8F5B; }

/* Webcams v2 : deux lecteurs côte à côte, conditions en dessous */
.a2-cams__h { margin-top: 0; }
.a2-cams__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.a2-cam__player video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: var(--a2-encre); }
.a2-cam__live.is-vod::before { background: var(--a2-soleil); animation: none; }
.a2-cam__msg { position: absolute; inset: auto 12px 12px 12px; padding: 8px 12px; background: rgba(18, 48, 61, .85); color: var(--a2-sable); border-radius: var(--a2-radius); font-size: 14px; }
.a2-cam__t a { color: inherit; text-decoration: none; }
.a2-cam__t a:hover { color: var(--a2-ocean); }
.a2-cams .a2-cams__now { margin-top: 24px; }
.a2-cams .a2-cams__now dl { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1000px) { .a2-cams .a2-cams__now dl { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) {
  .a2-cams__pair { grid-template-columns: 1fr; gap: 20px; }
  .a2-cams__h { padding: 0 16px; }
  .a2-cams .a2-cams__now { margin: 20px 16px 0; }
  .a2-cams .a2-cams__now dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a2-cams .a2-meteo__src { padding: 0 16px; }
}
@media (max-width: 700px) { .a2-cam figcaption { padding-left: 16px; padding-right: 16px; } }

/* Carte d'Hossegor : couches pratiques et légende */
.a2-map__tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; margin-bottom: 14px; }
.a2-map__layers { padding: 0; margin: 0; }
.a2-map__layers [aria-pressed="true"] { background: var(--a2-pin); color: var(--a2-sable); border-color: var(--a2-pin); }
.a2-dot { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 3px; box-sizing: border-box; border-radius: 3px; font: 700 10px var(--a2-sans); color: #fff; margin-right: 4px; }
.a2-dot--parking, .a2-pin--parking i { background: #3B6EA8; }
.a2-dot--wc, .a2-pin--wc i { background: #7A6A9C; }
.a2-pin--sq i { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 4px; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.25); font: 700 9px var(--a2-sans); color: #fff; font-style: normal; }
.a2-map__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; font-size: 13px; color: var(--a2-texte-2); }
.a2-map__legend li { display: flex; align-items: center; gap: 6px; }
.a2-map__legend i { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--a2-filet); }
.a2-map__legend .a2-pin--manger { background: var(--a2-soleil); } .a2-map__legend .a2-pin--dormir { background: var(--a2-ocean); } .a2-map__legend .a2-pin--faire { background: var(--a2-pin-2); }
.a2-map__legend .a2-pin--culture { background: var(--a2-encre); } .a2-map__legend .a2-pin--commerce { background: #B9875C; } .a2-map__legend .a2-pin--plage { background: #2E8FA8; }
.a2-pop small { display: block; margin-top: 2px; font-size: 13px; color: var(--a2-texte-2); }
.a2-article--list { padding-top: 24px; }

/* Un seul style de tableau sur tout le site : carte écume, filet, en-tête sable en petites capitales */
:root { --a2-thead: rgba(220, 209, 186, .35); }
.a2-meteo__drow--head, .a2-wind thead tr, .a2-wind thead th[scope="row"] { background: var(--a2-thead); }
.a2-wind thead th[scope="row"] { background: #F1EBDD; }
.a2-meteo__drow--head { border-radius: var(--a2-radius) var(--a2-radius) 0 0; }
.a2-wind__days th, .a2-meteo__drow--head { font-size: 12px; letter-spacing: .07em; }
/* Horaires des fiches : même en-tête teinté */
.gh-hours__table { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.gh-hours__row:last-child { border-bottom: 0; }
/* Mobile : les tableaux empilés restent dans la même carte */
@media (max-width: 700px) {
  .a2-prose .a2-table { margin: 24px 0; background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
  .a2-prose .a2-table table:not(.a2-rtable) th { padding: 12px 14px; background: var(--a2-thead); font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }
  .a2-prose .a2-table table:not(.a2-rtable) td { padding: 12px 14px; }
  .a2-rtable tr { padding: 14px 16px; }
  .a2-rtable tr:first-child { border-top: 0; }
  .a2-rtable tr:last-child { border-bottom: 0; }
  .a2-prose .a2-callout .a2-table { margin: 14px 0 0; }
}

/* Surf report du jour (/surf/report/) */
.a2-report { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); overflow: hidden; }
.a2-report__main { padding: 28px 32px; }
.a2-report__verdict { margin: 0 0 8px; font: 300 40px/1.1 var(--a2-serif); color: var(--a2-pin); }
.a2-report__verdict.is-2 { color: #2F8F5B; } .a2-report__verdict.is-0 { color: #A4553B; }
.a2-report__txt { margin: 0 0 22px; font-size: 18px; line-height: 1.55; color: var(--a2-pin); }
.a2-report__spots { padding: 28px 28px; background: var(--a2-encre); color: var(--a2-sable); }
.a2-report__spots .a2-meteo__k { color: var(--a2-soleil); }
.a2-report__spots ul { list-style: none; margin: 0 0 12px; padding: 0; }
.a2-report__spots li { display: grid; grid-template-columns: 1fr auto; gap: 0 12px; padding: 10px 0; border-top: 1px solid rgba(243, 236, 221, .15); }
.a2-report__spots li a { font: 400 20px/1.2 var(--a2-serif); color: var(--a2-sable); text-decoration: none; }
.a2-report__spots li span { align-self: center; font-size: 13px; font-weight: 600; padding: 3px 9px; border-radius: var(--a2-radius); background: rgba(243, 236, 221, .1); color: #B9C7C9; }
.a2-report__spots li.is-ok span { background: #23714A; color: #fff; }
.a2-report__spots li small { grid-column: 1 / -1; font-size: 13px; color: #B9C7C9; }
.a2-report__spots .a2-meteo__legend { color: #B9C7C9; }
.a2-report__days { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.a2-report__day { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius); }
.a2-report__slot { display: grid; grid-template-columns: 56px 1fr auto; grid-template-areas: "l h s" "l w s"; gap: 0 10px; margin: 0; padding: 12px 18px; border-top: 1px solid var(--a2-filet); font-size: 14px; font-variant-numeric: tabular-nums; }
.a2-report__slot strong { grid-area: l; align-self: center; font-weight: 600; color: var(--a2-pin); }
.a2-report__slot span:nth-of-type(1) { grid-area: h; font-weight: 700; color: var(--a2-pin); }
.a2-report__slot span:nth-of-type(2) { grid-area: w; color: var(--a2-texte-2); }
.a2-report__slot em { grid-area: s; align-self: center; font-style: normal; color: var(--a2-ocean); letter-spacing: 1px; }
.a2-report__slot.is-2 { background: #E3F1E8; } .a2-report__slot.is-1 { background: #F1F7F2; }
@media (max-width: 1000px) { .a2-report { grid-template-columns: 1fr; } .a2-report__days { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .a2-report__main, .a2-report__spots { padding: 22px 18px; } .a2-report__verdict { font-size: 32px; } }

/* Pages spot (/surf/spots/{spot}/) */
.a2-spot { padding-top: 40px; }
.a2-spot__cam { padding: 20px; }
.a2-spot__cam .a2-cam__t, .a2-spot__cam .a2-cam__t a { color: var(--a2-sable); font-size: 20px; }
.a2-spot__cam .a2-cam__s { color: #B9C7C9; }
.a2-spot__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 24px; align-items: stretch; }
.a2-spot__map .a2-map { height: 100%; min-height: 340px; border-radius: var(--a2-radius); }
.a2-spot__k2 { margin-top: 22px; }
.a2-spot__parks li { flex-direction: row; justify-content: space-between; gap: 12px; }
.a2-spot__parks strong { font-weight: 600; color: var(--a2-pin); }
.a2-spot .a2-cards--inline { margin-top: 0; }
@media (max-width: 900px) { .a2-spot__grid { grid-template-columns: 1fr; } }
.a2-spot__parks { padding: 0; }

/* Hubs de contenu : tuiles des sous-pages (composant du hub Plages) */
.a2-hubtiles { max-width: 1092px; box-sizing: content-box; margin: 0 auto; padding-top: 56px; }
.a2-hubtiles .a2-plages { padding-bottom: 8px; grid-auto-rows: 220px; }
.a2-hubtiles .a2-tile h3 { font-size: 28px; }
.a2-hubtiles .a2-plages--ocean .a2-tile:first-child h3 { font-size: 40px; }
@media (max-width: 1000px) { .a2-hubtiles .a2-plages { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .a2-hubtiles .a2-plages { grid-template-columns: 1fr; grid-auto-rows: 180px; } .a2-hubtiles .a2-plages--ocean .a2-tile:first-child { grid-column: auto; grid-row: auto; } }

/* ════════════════════════════════════════════════════════════════════
 * Méga-menu (arborescence inspirée de hossegor.fr)
 * ════════════════════════════════════════════════════════════════════ */
@media (min-width: 1081px) { .a2-nav ul { gap: 26px; } }
.a2-nav > ul > li { position: static; display: flex; align-items: center; }
.a2-mega__toggle { display: none; width: 28px; height: 28px; margin-left: 2px; border: 0; background: transparent; color: inherit; cursor: pointer; align-items: center; justify-content: center; }
.a2-mega { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 60; background: var(--a2-ecume); color: var(--a2-pin); box-shadow: 0 24px 40px -24px rgba(18, 48, 61, .45); border-top: 3px solid var(--a2-soleil); }
.a2-mega__inner { display: flex; gap: 48px; max-width: 1240px; margin: 0 auto; padding: 32px var(--a2-gutter) 36px; box-sizing: border-box; }
.a2-mega__col { min-width: 160px; }
.a2-mega__h { margin: 0 0 12px; font: 600 12px var(--a2-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--a2-brun); }
.a2-nav .a2-mega ul { display: block; }
.a2-nav .a2-mega li { display: block; }
.a2-nav .a2-mega a { display: block; padding: 5px 0; border: 0; color: var(--a2-pin); font-weight: 400; font-size: 15px; white-space: normal; }
.a2-nav .a2-mega a:hover { color: var(--a2-ocean); text-decoration: underline; text-underline-offset: 4px; }
.a2-mega__feature { margin-left: auto; flex: 0 0 260px; min-height: 180px; display: flex; align-items: flex-end; padding: 18px; box-sizing: border-box; border-radius: var(--a2-radius); background: linear-gradient(170deg, #9FC1C8, #0F5C73) center / cover; position: relative; overflow: hidden; }
.a2-nav .a2-mega a.a2-mega__feature { color: #fff; font: 400 22px/1.15 var(--a2-serif); padding: 18px; }
.a2-mega__feature::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(18,48,61,.75)); }
.a2-mega__feature span { position: relative; }
@media (min-width: 1081px) {
  .a2-nav li.has-mega:hover > .a2-mega, .a2-nav li.has-mega:focus-within > .a2-mega, .a2-nav li.has-mega.is-open > .a2-mega { display: block; animation: a2-drop .18s ease both; }
  .a2-nav li.has-mega > a { padding-bottom: 26px; margin-bottom: -20px; } /* zone de survol continue jusqu'au panneau */
}
@media (max-width: 1080px) {
  .a2-nav > ul > li { display: flex; flex-wrap: wrap; }
  .a2-nav > ul > li > a { flex: 1; }
  .a2-mega__toggle { display: inline-flex; width: 48px; height: 48px; border-bottom: 1px solid rgba(243, 236, 221, 0.12); }
  .a2-nav li.is-open .a2-mega__toggle svg { transform: rotate(180deg); }
  .a2-mega { position: static; flex-basis: 100%; background: transparent; color: var(--a2-sable); box-shadow: none; border-top: 0; }
  .a2-nav li.is-open > .a2-mega { display: block; }
  .a2-mega__inner { flex-direction: column; gap: 14px; padding: 8px 0 16px 12px; }
  .a2-mega__h { color: var(--a2-soleil); margin-bottom: 4px; }
  .a2-nav .a2-mega a { color: var(--a2-sable); min-height: 0; font-size: 16px; padding: 6px 0; border: 0; }
  .a2-mega__feature { display: none !important; }
}
@media (prefers-reduced-motion: reduce) { .a2-nav li.has-mega:hover > .a2-mega { animation: none; } }
.a2-nav .a2-mega a.a2-mega__feature { display: flex; align-items: flex-end; }
@media (max-width: 1080px) {
  .nav-open .a2-nav { position: fixed; top: 72px; left: 0; right: 0; bottom: 0; overflow-y: auto; z-index: 100; -webkit-overflow-scrolling: touch; }
  .nav-open .a2-header .a2-nav { top: var(--a2-nav-top, 72px); } /* bas réel du header, posé par a2.js (88 px en haut, 68 px défilé) */
  .nav-open { overflow: hidden; }
}
.a2-tides .a2-meteo__drow { grid-template-columns: 160px 1fr 1fr; } .a2-tides .a2-meteo__drow span:not(.a2-meteo__dn) { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--a2-pin); }
.a2-article--home { padding-top: 24px; }
/* Accueil : blocs images (en direct, sortir, vivre) */
.a2-homeblk { padding-top: 72px; }
.a2-homeblk .a2-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 28px; }
.a2-homeblk .a2-head p { margin: 0; max-width: 380px; font-size: 17px; line-height: 1.55; color: var(--a2-texte-2); }
.a2-homeblk .a2-plages { grid-auto-rows: 260px; padding-bottom: 20px; }
.a2-homeblk__more { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.a2-homeblk__more a { display: inline-block; padding: 9px 16px; border: 1px solid var(--a2-filet); border-radius: 999px; font-size: 15px; text-decoration: none; color: var(--a2-pin); }
.a2-homeblk__more a:hover { border-color: var(--a2-ocean); color: var(--a2-ocean); }
@media (max-width: 900px) { .a2-homeblk { padding-top: 48px; } .a2-homeblk .a2-head { display: block; } .a2-homeblk .a2-head p { margin-top: 10px; } .a2-homeblk .a2-plages { grid-auto-rows: 180px; padding-bottom: 14px; } }
.a2-homeblk + .a2-article--home { padding-top: 72px; }
@media (max-width: 900px) { .a2-homeblk .a2-tile__k { display: none; } .a2-homeblk + .a2-article--home { padding-top: 40px; } }
.a2-article--home { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: start; }
.a2-article--home .a2-prose { max-width: none; }
.a2-article--home .a2-prose > h2:first-child { margin-top: 0; }
@media (max-width: 900px) { .a2-article--home { grid-template-columns: 1fr; gap: 8px; } }
.a2-tube { padding-top: 56px; padding-bottom: 8px; }
.a2-tube .a2-head { align-items: flex-end; }
.a2-tube__lieu { margin: 0; font-size: 15px; color: var(--a2-texte-2); }
@media (max-width: 760px) { .a2-tube .a2-head { display: block; } .a2-tube__lieu { margin-top: 8px; } }
/* Formulaire de contact dans un contenu (ex. opposition RGPD) */
.a2-prose .gh-form { max-width: 560px; margin-top: 1.6em; padding: 28px; background: var(--a2-ecume, #fff); border: 1px solid var(--a2-filet); border-radius: 14px; }
.a2-prose .gh-form p, .a2-prose .gh-form p + p { margin: 0 0 18px; }
.a2-prose .gh-form p:last-child { margin-bottom: 0; }
.a2-prose .gh-form label { font-size: 14px; color: var(--a2-pin); }
.a2-prose .gh-form input[type="submit"] { background: var(--a2-pin); border-color: var(--a2-pin); }
/* Accueil : tuile « Dormir » sur photo */
.a2-tile--photo { background: var(--a2-pin); border: 0; color: var(--a2-sable); }
.a2-tile--photo > *:not(.a2-tile__img):not(.a2-tile__shade) { position: relative; z-index: 1; }
.a2-tile__shade--full { background: linear-gradient(180deg, rgba(18,48,61,.55), rgba(18,48,61,.82)); }
.a2-tile--photo .a2-tile__k, .a2-tile--photo small { color: rgba(255,251,243,.8); }
.a2-tile--photo li a:hover { color: var(--a2-soleil); }
/* Tuile « Dormir » entièrement cliquable (lien étiré), les liens de la liste restent au-dessus */
.a2-tile.a2-tile--photo > a.a2-tile__k.a2-tile__stretch { position: static; }
.a2-tile__stretch::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.a2-tile--photo ul { position: relative; z-index: 2; }
.a2-tile--photo:hover .a2-tile__img { transform: scale(1.03); }
/* Héros de page : image dimensionnée selon l'écran (gh_hero_image) */
.a2-hero[style*="--a2-hero-lg"] { background-image: var(--a2-hero-lg); }
@media (max-width: 760px) { .a2-hero[style*="--a2-hero-sm"] { background-image: var(--a2-hero-sm); } }
/* Lisibilité du texte sur les photos de héros (photos claires) */
.a2-hero--page::before, .a2-hero--list::before, .a2-hero--small::before { background: linear-gradient(180deg, rgba(18,48,61,.35) 0%, rgba(18,48,61,.12) 28%, rgba(18,48,61,.35) 55%, rgba(18,48,61,.78) 100%); }
.a2-hero h1, .a2-hero .a2-hero__lead, .a2-hero .a2-kicker { text-shadow: 0 1px 2px rgba(10,30,40,.35), 0 2px 18px rgba(10,30,40,.35); }
@media (max-width: 760px) {
  .a2-hero--page::before, .a2-hero--list::before, .a2-hero--small::before { background: linear-gradient(180deg, rgba(18,48,61,.45) 0%, rgba(18,48,61,.3) 25%, rgba(18,48,61,.6) 50%, rgba(18,48,61,.85) 100%); }
}
/* Page Pros : cartes des offres */
.a2-offers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 1.6em 0 0 !important; }
.a2-offer { background: var(--a2-ecume); border: 1px solid var(--a2-filet); border-radius: var(--a2-radius, 14px); padding: 26px 24px; display: flex; flex-direction: column; }
.a2-offer--main { border: 2px solid var(--a2-ocean); box-shadow: 0 10px 30px rgba(18,48,61,.08); }
.a2-prose .a2-offer p { margin: 0; }
.a2-offer__k { font: 600 13px var(--a2-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--a2-brun); }
.a2-prose .a2-offer .a2-offer__p { margin-top: 10px; font-family: var(--a2-serif); font-weight: 300; font-size: 44px; line-height: 1; color: var(--a2-pin); }
.a2-offer__p small { font-family: var(--a2-sans); font-size: 16px; color: var(--a2-texte-2); }
.a2-prose .a2-offer .a2-offer__alt { margin-top: 6px; font-size: 14px; line-height: 1.4; color: var(--a2-texte-2); }
.a2-offer ul { margin: 18px 0 0; padding: 0; list-style: none; font-size: 15px; line-height: 1.5; }
.a2-offer li { padding: 7px 0 7px 22px; border-top: 1px solid var(--a2-filet); position: relative; }
.a2-offer li::before { content: "✓"; position: absolute; left: 0; color: var(--a2-ocean); font-weight: 600; }
@media (max-width: 900px) { .a2-offers { grid-template-columns: 1fr; } }
/* ─── Offres Pros ─── */
.a2-verified { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 5px 10px; border-radius: 999px; background: rgba(255,251,243,.92); color: var(--a2-ocean); font: 600 13px var(--a2-sans); letter-spacing: .02em; text-shadow: none; }
.a2-verified--sm { margin: 0 0 0 6px; padding: 0; background: none; vertical-align: -2px; }
.a2-partner-label { display: inline-block; padding: 3px 8px; border-radius: 4px; background: var(--a2-soleil); color: var(--a2-pin); font: 700 11px var(--a2-sans); letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; }
.a2-card__media .a2-partner-label { position: absolute; right: 10px; top: 10px; }
.a2-card--partner { box-shadow: 0 0 0 2px var(--a2-soleil); }
.a2-pin--partner i { width: 24px; height: 24px; margin: 1px; background: var(--a2-soleil) !important; border-color: var(--a2-pin); }
.a2-offer-now { margin: 0 0 28px; padding: 18px 22px; border-radius: 12px; background: var(--a2-ecume); border: 2px solid var(--a2-soleil); }
.a2-offer-now__k { font: 700 12px var(--a2-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--a2-brun); }
.a2-offer-now p { margin: 6px 0 0; font-family: var(--a2-serif); font-size: 22px; line-height: 1.3; color: var(--a2-pin); }
.a2-offer-now small { display: block; margin-top: 6px; color: var(--a2-texte-2); }
.a2-partner-box { margin-top: 40px; margin-bottom: 40px; }
.a2-partner-box__k { margin: 0 0 12px; font: 600 13px var(--a2-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--a2-brun); }
.a2-partner-box__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.a2-partner-card { display: flex; gap: 14px; align-items: center; padding: 12px; border-radius: 12px; background: var(--a2-ecume); border: 1px solid var(--a2-filet); text-decoration: none; color: var(--a2-pin); }
.a2-partner-card img { width: 96px; height: 72px; object-fit: cover; border-radius: 8px; flex: none; }
.a2-partner-card strong { display: block; font-family: var(--a2-serif); font-weight: 400; font-size: 20px; }
.a2-partner-card small { display: block; margin-top: 4px; font-size: 14px; color: var(--a2-texte-2); }
.a2-featured { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; }
.a2-featured__item { display: flex; gap: 14px; align-items: center; padding: 12px; border-radius: 12px; background: var(--a2-ecume); border: 2px solid var(--a2-soleil); text-decoration: none; color: var(--a2-pin); }
.a2-featured__item img { width: 110px; height: 80px; object-fit: cover; border-radius: 8px; flex: none; }
.a2-featured__item strong { display: block; margin-top: 6px; font-family: var(--a2-serif); font-weight: 400; font-size: 20px; line-height: 1.2; }
.a2-featured__item small { display: block; margin-top: 4px; font-size: 14px; color: var(--a2-texte-2); }
.a2-row__t .a2-partner-label { margin-right: 6px; font-size: 10px; }
@media (max-width: 760px) { .a2-partner-box__grid, .a2-featured { grid-template-columns: 1fr; } }
/* Fiches : encart « Vous gérez cet établissement ? » (fiches sans formule) */
.a2-pro-cta { margin-top: 20px; padding: 18px 20px; border-radius: 12px; border: 1px dashed var(--a2-filet); background: transparent; font-size: 15px; line-height: 1.5; color: var(--a2-texte-2); }
.a2-pro-cta p { margin: 0 0 8px; }
.a2-pro-cta__k { font-weight: 600; color: var(--a2-pin); }
.a2-pro-cta a { font-weight: 600; color: var(--a2-ocean); text-decoration: none; }
.a2-pro-cta a:hover { text-decoration: underline; }
/* Cartes Leaflet : leurs calques (z-index 400 à 1000) restent sous l'en-tête fixe */
[data-a2-map], .leaflet-container { isolation: isolate; z-index: 0; }
/* En-tête fixe au défilement aussi quand il est posé sur le héros (règle .a2-hero .a2-header--over plus haut) */
.a2-hero .a2-header--over.is-scrolled { position: fixed; }
/* Méga-menu : pont invisible entre le titre de rubrique et le panneau (sinon le survol se perd dans l'écart) */
@media (min-width: 1081px) {
  .a2-mega::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: var(--a2-mega-gap, 24px); }
}
/* ─── Recherche : fenêtre instantanée + page de résultats ─── */
.a2-sx { position: fixed; inset: 0; z-index: 2000; background: rgba(18, 48, 61, .55); backdrop-filter: blur(3px); display: flex; justify-content: center; align-items: flex-start; padding: 8vh 16px 16px; }
.a2-sx[hidden] { display: none; }
html.a2-sx-open { overflow: hidden; }
.a2-sx__panel { width: 100%; max-width: 720px; max-height: 84vh; display: flex; flex-direction: column; background: var(--a2-ecume); border-radius: 16px; box-shadow: 0 30px 60px -20px rgba(18,48,61,.6); overflow: hidden; }
.a2-sx__form { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--a2-filet); color: var(--a2-pin); }
.a2-sx__form input { flex: 1; min-width: 0; border: 0; background: transparent; font: 400 20px var(--a2-sans); color: var(--a2-pin); outline: none; }
.a2-sx__close { border: 1px solid var(--a2-filet); background: transparent; border-radius: 6px; padding: 4px 8px; font: 500 12px var(--a2-sans); color: var(--a2-texte-2); cursor: pointer; }
.a2-sx__res { overflow-y: auto; padding: 6px 10px 12px; }
.a2-sx__res:empty { display: none; }
.a2-sx__g { margin: 12px 8px 6px; font: 600 12px var(--a2-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--a2-brun); }
.a2-sx__it { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 10px; text-decoration: none; color: var(--a2-pin); }
.a2-sx__it:hover, .a2-sx__it.is-sel, .a2-sx__it:focus { background: rgba(15,92,115,.08); outline: none; }
.a2-sx__it img, .a2-sx__ph { width: 52px; height: 52px; border-radius: 8px; object-fit: cover; flex: none; background: var(--a2-filet); }
.a2-sx__it strong { display: block; font: 500 16px/1.3 var(--a2-sans); }
.a2-sx__it small { display: block; margin-top: 2px; font-size: 13px; color: var(--a2-texte-2); }
.a2-sx__all { display: block; margin: 8px; padding: 10px 12px; border-radius: 10px; font-weight: 600; color: var(--a2-ocean); text-decoration: none; }
.a2-sx__all:hover, .a2-sx__all.is-sel { background: rgba(15,92,115,.08); }
.a2-sx__none, .a2-sx__hint { margin: 0; padding: 14px 18px; font-size: 14px; color: var(--a2-texte-2); }
.a2-sx__hint a { color: var(--a2-ocean); }
.a2-hero--search { min-height: 0; background: var(--a2-ocean); }
.a2-hero--search .a2-hero__content { padding-top: 140px; padding-bottom: 48px; }
.a2-searchpage__form { display: flex; gap: 10px; max-width: 640px; margin-top: 18px; }
.a2-searchpage__form input { flex: 1; min-width: 0; height: 52px; padding: 0 16px; border: 0; border-radius: 4px; font: 400 17px var(--a2-sans); }
.a2-searchpage { padding-top: 40px; padding-bottom: 72px; max-width: 900px; }
.a2-searchpage__count { margin: 0 0 8px; color: var(--a2-texte-2); }
.a2-searchpage__group { margin-top: 28px; }
.a2-searchpage__group h2 small { font: 500 15px var(--a2-sans); color: var(--a2-texte-2); }
.a2-searchpage__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; margin-top: 10px; }
.a2-searchpage__none { padding: 24px; border-radius: 12px; background: var(--a2-ecume); border: 1px solid var(--a2-filet); }
@media (max-width: 760px) { .a2-sx { padding-top: 12px; } .a2-sx__panel { max-height: 92vh; } .a2-searchpage__list { grid-template-columns: 1fr; } .a2-hero--search .a2-hero__content { padding-top: 110px; } }
/* Menu (ordinateur) : soulignement juste sous le libellé, même quand la zone de survol est allongée vers le panneau */
@media (min-width: 1081px) {
  .a2-nav > ul > li > a { border-bottom-color: transparent !important; text-decoration: underline 2px; text-decoration-color: transparent; text-underline-offset: 9px; transition: text-decoration-color .12s ease; }
  .a2-nav > ul > li > a:hover, .a2-nav > ul > li:hover > a, .a2-nav > ul > li:focus-within > a, .a2-nav > ul > li.is-current > a { text-decoration-color: var(--a2-soleil); }
}
.a2-hero--search::before { display: none; }
.a2-hero--search .a2-hero__content { z-index: 2; }
.a2-searchpage__form input { background: #fff; color: var(--a2-pin); }
/* Accessibilité : liens distinguables autrement que par la couleur, séances passées lisibles (contraste ≥ 4,5:1) */
.a2-footer__bottom a, .a2-meteo__src a { text-decoration: underline; text-underline-offset: 3px; }
.a2-cine__show.is-past { opacity: 1; color: #6A7368; text-decoration: line-through; background: transparent; }
.a2-cine__show.is-past strong, .a2-cine__show.is-past small { color: #6A7368; }
.a2-hero--page .a2-hero__credit { z-index: 2; margin: 0; color: var(--a2-sable); }
/* Mobile : rangée de filtres qui porte déjà la gouttière (.a2-wrap) => pas de marge négative (débordait la page) ;
   sur-titres des petites tuiles sur deux lignes sans chevaucher le titre ; texte et FAQ de l'accueil espacés */
@media (max-width: 900px) {
  .a2-chips.a2-wrap { margin-left: 0; margin-right: 0; }
  .a2-plages .a2-tile__k { display: block; font-size: 10px; letter-spacing: .1em; line-height: 1.5; margin-bottom: 6px; }
  .a2-article--home { gap: 32px; }
}
@media (max-width: 900px) { .a2-plages .a2-tile h3 { line-height: 1.12; } .a2-plages .a2-tile__k { margin-bottom: 8px; } }
/* Tuiles photo : dégradé plus haut et plus dense sous le texte (photos claires de plage et de ciel) */
.a2-tile__txt { text-shadow: 0 1px 2px rgba(10,30,40,.35); }
/* Tableaux clé / valeur (2 colonnes, ex. « En bref ») : pas de largeur minimale, le texte passe à la ligne */
.a2-table table:not(:has(td:nth-child(3), th:nth-child(3))) { min-width: 0; }
/* Toutes les tuiles photo : même dégradé renforcé que les plages */
.a2-tile__shade:not(.a2-tile__shade--full) { background: linear-gradient(180deg, rgba(18,48,61,0) 25%, rgba(18,48,61,.45) 55%, rgba(18,48,61,.85) 100%); }
/* Accueil : les deux colonnes texte / FAQ occupent toute leur cellule (pas de centrage auto qui rétrécit la FAQ en tablette) */
.a2-article--home .a2-prose { margin-left: 0; margin-right: 0; }
/* « Dans cette rubrique » : pas de case vide en fin de grille (grande tuile 2×2 + tuiles simples) */
@media (min-width: 1001px) {
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(2):last-child { grid-column: span 2; grid-row: span 2; }
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(2):nth-last-child(2),
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(3):last-child,
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(2):nth-last-child(3) { grid-column: span 2; }
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(4n+6):last-child { grid-column: span 4; }
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(4n+6):nth-last-child(2),
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(4n+7):last-child,
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(4n+6):nth-last-child(3) { grid-column: span 2; }
}
@media (max-width: 1000px) {
  .a2-hubtiles .a2-plages--ocean .a2-tile:nth-child(2n+2):last-child { grid-column: span 2; }
}
/* Rubriques les plus consultées (404, recherche vide) */
.a2-hubtiles--popular { padding-bottom: 96px; }
@media (max-width: 760px) { .a2-hubtiles--popular { padding-bottom: 56px; } .a2-hubtiles--popular .a2-plages { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 10px; } .a2-hubtiles--popular .a2-tile h3 { font-size: 21px; } }
/* Lien d'évitement clavier */
.a2-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; padding: 10px 16px; background: var(--a2-soleil, #E8A33D); color: var(--a2-encre, #12303D); font: 600 15px var(--a2-sans); border-radius: 4px; text-decoration: none; transition: top .15s; }
.a2-skip:focus { top: 12px; outline: 3px solid #fff; outline-offset: 2px; }
#contenu:focus { outline: none; }
.a2-h1x { font-size: .5em; font-style: italic; opacity: .85; white-space: nowrap; }
.a2-sx__sugg { background: none; border: 0; padding: 0; font: inherit; color: var(--a2-ocean); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
/* Méga-menu desktop : apparition douce (fondu + léger glissé) avec délai d'intention, au lieu d'un
   glissement de toute la hauteur dès le premier survol. Le panneau reste dans le flux (display:block)
   et n'est masqué que par visibility/opacity, pour pouvoir animer l'ouverture comme la fermeture. */
@media (min-width: 1081px) {
  .a2-nav li.has-mega > .a2-mega { display: block; visibility: hidden; opacity: 0; transform: translateY(-8px); pointer-events: none; animation: none;
    transition: opacity .18s ease .06s, transform .2s ease .06s, visibility 0s linear .26s; }
  .a2-nav li.has-mega:hover > .a2-mega, .a2-nav li.has-mega:focus-within > .a2-mega, .a2-nav li.has-mega.is-open > .a2-mega { visibility: visible; opacity: 1; transform: none; pointer-events: auto; animation: none;
    transition: opacity .22s ease .12s, transform .28s cubic-bezier(.2,.7,.2,1) .12s, visibility 0s linear .12s; }
}
@media (min-width: 1081px) and (prefers-reduced-motion: reduce) {
  .a2-nav li.has-mega > .a2-mega, .a2-nav li.has-mega:hover > .a2-mega, .a2-nav li.has-mega:focus-within > .a2-mega, .a2-nav li.has-mega.is-open > .a2-mega { transform: none; transition-property: opacity, visibility; transition-duration: .01s, 0s; }
}
/* Mobile : pas de surbrillance native au toucher (carré bleu Android/Chrome, gris iOS) ; retour visuel
   discret à l'appui à la place. Le contour de focus clavier (:focus-visible) reste inchangé. */
html { -webkit-tap-highlight-color: transparent; }
@media (hover: none) {
  a:active, button:active, summary:active, .a2-btn:active, .a2-chip:active, .a2-burger:active, .a2-search:active { opacity: .65; transition: opacity 0s; }
}
