/* Échelle typographique du thème agency : une taille par niveau de titre, sur toutes les pages et sections.
   Tailles fluides (clamp) : la plus petite valeur au mobile, la plus grande à partir des grands écrans.
   Chargée en dernier par base/front.blade.php. Valeurs à utiliser : var(--tl-fs-*) / classes .tl-title-*. */

:root{
  --tl-fs-hero:    clamp(2rem, 1.35rem + 2.6vw, 3rem);       /* bandeau d'accueil / de module : 32 → 48 px */
  --tl-fs-h1:      clamp(1.625rem, 1.3rem + 1.3vw, 2.25rem); /* titre de page : 26 → 36 px */
  --tl-fs-h2:      clamp(1.375rem, 1.15rem + .9vw, 1.875rem);/* titre de section : 22 → 30 px */
  --tl-fs-h3:      clamp(1.125rem, 1.05rem + .35vw, 1.3125rem);/* sous-section (pages détail) : 18 → 21 px */
  --tl-fs-card:    1.0625rem;                                 /* titre de carte produit : 17 px */
  --tl-fs-h4:      1rem;                                      /* petit titre (filtres, encadrés) : 16 px */
  --tl-fs-lead:    1rem;                                      /* sous-titre de section : 16 px */
  --tl-fw-title:   800;
  --tl-fw-sub:     700;
  --tl-lh-title:   1.2;
  --tl-color-title: #1f2633;
}

/* ── Titres sans style (Tailwind preflight les ramène à 14 px / 400) ─────────────────────────────
   Seulement les titres sans classe (un titre avec classe peut servir à autre chose : prix, accordéon…),
   dans la couche « base » de Tailwind : après sa remise à zéro, sous toutes les règles du thème. */
@layer base{
  h1:not([class]){ font-size: var(--tl-fs-h1); font-weight: var(--tl-fw-title); line-height: var(--tl-lh-title); }
  h2:not([class]){ font-size: var(--tl-fs-h2); font-weight: var(--tl-fw-title); line-height: var(--tl-lh-title); }
  h3:not([class]){ font-size: var(--tl-fs-h3); font-weight: var(--tl-fw-sub); line-height: 1.25; }
  h4:not([class]){ font-size: var(--tl-fs-h4); font-weight: var(--tl-fw-sub); line-height: 1.3; }
  h5:not([class]), h6:not([class]){ font-size: .9375rem; font-weight: var(--tl-fw-sub); line-height: 1.35; }
}
/* builder/css/style.css ramène tous les h1 à 18 px / 600 sous 768 px (règle hors couche) : rétabli */
@media (max-width: 768px){
  h1{ font-size: var(--tl-fs-h1); font-weight: var(--tl-fw-title); }
}

/* Classes communes pour les nouveaux écrans */
.tl-title-page{ font-size: var(--tl-fs-h1) !important; font-weight: var(--tl-fw-title) !important; line-height: var(--tl-lh-title); color: var(--tl-color-title); }
.tl-title-section{ font-size: var(--tl-fs-h2) !important; font-weight: var(--tl-fw-title) !important; line-height: var(--tl-lh-title); }
.tl-title-sub{ font-size: var(--tl-fs-h3) !important; font-weight: var(--tl-fw-sub) !important; line-height: 1.25; }
.tl-title-card{ font-size: var(--tl-fs-card) !important; font-weight: var(--tl-fw-sub) !important; line-height: 1.3; }

/* ── Bandeau (accueil, pages de résultats) ───────────────────────────────────────────────────── */
.builder-hero-title{ font-size: var(--tl-fs-hero) !important; line-height: 1.12 !important; }

/* ── Titres de page (H1) ─────────────────────────────────────────────────────────────────────── */
.details-clean .package-title,
.omra-list__title,
.tl-deals-page__title,
.cv-destination-title,
h1.title-hotel,
h1.display-5{
  font-size: var(--tl-fs-h1) !important;
  font-weight: var(--tl-fw-title) !important;
  line-height: var(--tl-lh-title) !important;
}

/* ── Titres de section (accueil, plugins du Page Builder, pages détail) ─────────────────────── */
.row-title h2,
.row-title h2 span,
.section-title-center-lg h2,
.section-title-center-lg h2.text-3xl,
.builder-faq-v2__title,
.text-plugin-title,
.bcs-section-title,
.blc-title,
.builder-form-title,
.builder-newsletter-card h3,
.clean-similar-packages__title,
.main_title h2,
.testi-header h2,
h2.fw-bold{
  font-size: var(--tl-fs-h2) !important;
  font-weight: var(--tl-fw-title) !important;
  line-height: var(--tl-lh-title) !important;
}
.section-title-center-lg,
.row-title .subtitle,
.text-plugin-subtitle,
.main_title .subtitle{ font-size: var(--tl-fs-lead) !important; }

/* Sous-sections des pages détail (description, programme, inclus…) */
.details-clean .section-title,
.details-clean h2.section-title,
.details-clean h3.section-title{
  font-size: var(--tl-fs-h3) !important;
  font-weight: var(--tl-fw-title) !important;
  line-height: 1.25 !important;
}

/* ── Titres de carte produit (toutes les familles) ───────────────────────────────────────────── */
.cv-hotel-name,
.cv-hotel-title,
.trs-card-title,
.trl-card-name,
.tl-result-card .text-lg.font-semibold,
.bcs-card-title,
.clean-package-card__title,
.afc-title,
.cv-dest-name,
.builder-offer-card .builder-offer-title{
  font-size: var(--tl-fs-card) !important;
  font-weight: var(--tl-fw-sub) !important;
  line-height: 1.3 !important;
}
.tl-hmap-card__name{ font-size: .9375rem; }

/* ── Petits titres (filtres, encadrés, panier) ───────────────────────────────────────────────── */
.tl-filters h3, .tl-filters h4, .tl-filters h5,
.tl-filters .trl-sidebar-title, .tl-filters .trl-filter-title,
.passenger-box-title{
  font-size: var(--tl-fs-h4) !important;
  font-weight: var(--tl-fw-title) !important;
}
