@import url('planner-ui-polish.css?v=20260913-v1');
@import url('guides-ui-polish.css?v=20260913-v1');
/* UI polish complémentaire — chargé par illustration.css */

/* Le menu mobile doit rester présent entre 851 et 1080 px même si pages.css est chargé après. */
@media(max-width:1080px){
  body .site-header .main-nav{display:none!important}
  body .site-header .mobile-menu-btn{display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 42px!important}
  body #mobile-menu-drawer{display:block!important}
}
@media(min-width:1081px){
  body .site-header .mobile-menu-btn,body #mobile-menu-drawer{display:none!important}
}

/* Recherche / filtres : cibles confortables et plus de boutons Chrome minuscules. */
.search-input-wrapper,.fauna-search-wrapper{min-width:0!important;min-height:46px!important;border-radius:10px!important;overflow:hidden}
.search-input-wrapper input,.fauna-search-wrapper input{min-width:0!important;width:100%!important;height:44px!important}
#activity-search-clear,#fauna-search-clear{display:grid!important;place-items:center!important;flex:0 0 44px!important;width:44px!important;height:44px!important;padding:0!important;border-radius:0!important}
#activity-search-clear .site-svg-icon,#fauna-search-clear .site-svg-icon{width:16px!important;height:16px!important}
.filter-button,.region-button,.wildlife-filter,.type-filter,.climate-tab-btn{min-height:40px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1.2!important}

/* Les variantes de hero avec stats en div avaient hérité des styles de paragraphe génériques. */
.page-hero .hero-notes>div{min-width:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important}
.page-hero .hero-notes>div>span{display:block!important;font:700 13px/1.2 var(--mono)!important;color:var(--yellow)!important}
.page-hero .hero-notes>div>p{margin:0!important;max-width:none!important;font:10px/1.35 var(--mono)!important;color:#b9c9b9!important}

/* Hébergements : la barre de recherche n'essaie plus de faire tenir 8 contrôles sur une ligne. */
.hotel-search{display:grid!important;grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(135px,.72fr)) minmax(125px,.58fr) minmax(120px,.58fr)!important;gap:8px!important;width:100%!important;flex:1 0 100%!important;align-items:stretch!important}
.hotel-search input,.hotel-search select{width:100%!important;min-width:0!important;min-height:44px!important;border-radius:8px!important;padding-left:12px!important;padding-right:36px!important;box-sizing:border-box!important}
.hotel-search input[type="date"]{padding-right:10px!important}
.hotel-search-btns{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.hotel-search-btns .button{width:100%!important;min-height:44px!important;white-space:normal!important;text-align:center!important}
.lodging-filter-controls{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.lodging-filter-controls label{min-width:0!important}
.lodging-filter-controls select{width:100%!important;min-width:0!important;min-height:44px!important;border-radius:8px!important}
.stay-summary-bar{min-width:0!important;overflow-wrap:anywhere!important}

/* Annuaire des guides : champs et pagination cohérents avec le reste du site. */
.guide-directory-toolbar{border-radius:14px!important;min-width:0!important}
.guide-search-row{grid-template-columns:minmax(0,2fr) minmax(180px,1fr)!important}
.guide-search-field,.guide-select-field{min-width:0!important}
.guide-search-field input,.guide-select-field select{width:100%!important;min-width:0!important;min-height:44px!important;border-radius:8px!important;box-sizing:border-box!important}
.pagination-shell{max-width:100%!important;flex-wrap:wrap!important}
.pagination-btn{min-height:42px!important;border-radius:999px!important;padding:9px 16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.pagination-info{text-align:center!important}

/* Écrans de chargement : état visuel volontaire au lieu d'une ligne de texte perdue. */
.page-loading{min-height:150px!important;padding:36px 24px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:11px!important;text-align:center!important;background:#eef3eb!important;border:1px solid #d8e2d5!important;border-radius:12px!important;box-sizing:border-box!important}
.page-loading::before{content:"";width:17px;height:17px;flex:0 0 17px;border:2px solid #b8c7b4;border-top-color:var(--green);border-radius:50%;animation:ui-polish-spin .75s linear infinite}
@keyframes ui-polish-spin{to{transform:rotate(360deg)}}

/* Fiches détail : les CTA générés restent alignés même quand pages.css demande block. */
.page-detail-aside .button,.detail-actions .button{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;white-space:normal!important}
.page-detail-card,.page-detail-aside,.detail-note{min-width:0!important;overflow-wrap:anywhere!important}

/* Contrôles MapLibre : retire l'aspect widget tiers brut. */
.maplibregl-ctrl-group{border-radius:10px!important;overflow:hidden!important;border:1px solid #d7e1d3!important;box-shadow:0 6px 18px #10271a24!important}
.maplibregl-ctrl-group button{width:36px!important;height:36px!important;background-color:#f7f8f3!important}
.maplibregl-ctrl-group button:hover{background-color:#e7efdf!important}
.maplibregl-ctrl-attrib{font-size:9px!important;border-radius:6px 0 0 0!important}
.map-topline-actions{min-width:0!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:wrap!important}
.map-mode-gps{min-height:38px!important;max-width:100%!important;padding:8px 10px!important;border:1px solid #ffffff2e!important;border-radius:999px!important;white-space:normal!important;text-align:center!important;line-height:1.2!important}
.map-mode-gps .site-svg-icon{flex:0 0 auto!important}

/* Cartes : métadonnées longues et boutons d'action ne peuvent plus pousser la grille. */
.guide-card-header,.guide-actions-row,.lodging-actions,.activity-actions,.selected-activity-line{min-width:0!important}
.guide-card-header>* ,.guide-actions-row>* ,.lodging-actions>* ,.activity-actions>* ,.selected-activity-line>*{min-width:0!important}
.guide-btn-call,.guide-btn-wa,.guide-btn-mail{min-height:40px!important;white-space:normal!important;overflow-wrap:anywhere!important}
.lodging-actions a,.activity-sources a{overflow-wrap:anywhere!important}

/* Notes éditoriales : liens lisibles sans pousser le texte hors cadre. */
.wildlife-note,.method-note{min-width:0!important}
.wildlife-note>div,.method-note>span{min-width:0!important}
.wildlife-note a,.method-note a{max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important}

/* Footer : évite que les liens ou textes longs se chevauchent sur tablette. */
.site-footer>*{min-width:0!important}
.site-footer p{overflow-wrap:anywhere!important}
.footer-meta{flex-wrap:wrap!important;justify-content:flex-end!important}

@media(max-width:980px){
  .hotel-search{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .hotel-search input[type="search"],.hotel-search-btns{grid-column:1/-1!important}
  .lodging-filter-controls{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .guide-search-row{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:620px){
  .hotel-search,.lodging-filter-controls{grid-template-columns:minmax(0,1fr)!important}
  .hotel-search>* ,.hotel-search input[type="search"],.hotel-search-btns{grid-column:auto!important}
  .hotel-search-btns{grid-template-columns:minmax(0,1fr)!important}
  .guide-directory-toolbar{padding:16px!important}
  .pagination-shell{gap:8px!important}
  .pagination-btn{flex:1 1 120px!important}
  .pagination-info{flex:1 0 100%!important;order:-1}
  .footer-meta{justify-content:flex-start!important}
  .map-topline-actions{width:100%!important;justify-content:flex-start!important}
  .map-mode-gps{width:100%!important;justify-content:center!important}
  .wildlife-note{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:start!important}
  .wildlife-note>a{grid-column:1/-1!important;margin:0!important;width:100%!important;padding:10px 12px!important;border:1px solid #cbd7c5!important;border-radius:8px!important;text-align:center!important}
  .method-note{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  .method-note strong{margin:0!important}
}
@media(prefers-reduced-motion:reduce){.page-loading::before{animation:none!important;border-top-color:#b8c7b4!important}}

/* Hero hardening : les médias et libellés ne peuvent plus agrandir la grille ou sortir du cadre. */
.page-hero{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important}
.page-hero>* ,.page-hero .hero-copy,.page-hero .hero-visual{min-width:0!important;max-width:100%!important}
.page-hero .hero-visual{width:100%!important;overflow:hidden!important;isolation:isolate;contain:paint}
.page-hero .hero-visual>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center!important;display:block!important;z-index:0!important}
.page-hero .hero-caption{left:24px!important;right:24px!important;max-width:calc(100% - 48px)!important;overflow-wrap:anywhere!important;word-break:normal}
.page-hero .hero-stamp,.page-hero .hero-stamp>*{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important}
.page-hero .hero-stamp{text-align:center!important}
.page-hero span.hero-stamp{right:6%!important;width:auto!important;height:auto!important;max-width:min(260px,calc(100% - 40px))!important;white-space:normal!important}
.page-hero .hero-notes{min-width:0!important;max-width:100%!important}
.page-hero .hero-notes>span,.page-hero .hero-notes>div{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important}

@media(max-width:980px){
  .page-hero{grid-template-columns:minmax(0,1fr)!important}
  .page-hero .hero-visual{justify-self:stretch!important}
}
@media(max-width:620px){
  .page-hero .hero-caption{left:18px!important;right:18px!important;max-width:calc(100% - 36px)!important}
  .page-hero span.hero-stamp{right:18px!important;max-width:calc(100% - 36px)!important}
}

/* ========================================================================== 
   AUDIT GLOBAL — garde-fous communs à toute la codebase
   ========================================================================== */

/* Tout composant en flex/grid doit pouvoir rétrécir au lieu de pousser la page. */
:where(.hero,.page-hero,.home-hero,.detail-page-hero,.section-shell,.section-heading,.planner-layout,.activity-page-layout,.home-live,.home-source,.guide-source-panel,.flight-card,.flight-search-form,.route-trip-bar,.hotel-search,.lodging-toolbar,.guide-directory-toolbar,.guide-search-row,.quick-start,.home-quick-links,.official-grid,.program-grid,.stage-grid,.route-grid,.activity-grid,.lodging-grid,.walk-grid,.fauna-grid,.guide-grid,.car-grid,.transport-grid,.method-grid,.source-list,.video-shelf,.guide-editorial-grid,.activity-advanced-grid,.activity-extra-filters){min-width:0!important;max-width:100%}
:where(.hero,.page-hero,.home-hero,.detail-page-hero,.section-heading,.planner-layout,.activity-page-layout,.home-live,.home-source,.guide-source-panel,.flight-card,.flight-search-form,.route-trip-bar,.hotel-search,.lodging-toolbar,.guide-directory-toolbar,.guide-search-row,.quick-start,.home-quick-links,.official-grid,.program-grid,.stage-grid,.route-grid,.activity-grid,.lodging-grid,.walk-grid,.fauna-grid,.guide-grid,.car-grid,.transport-grid,.method-grid,.source-list,.video-shelf,.guide-editorial-grid,.activity-advanced-grid)>*{min-width:0!important;max-width:100%}

/* Médias et overlays : aucun visuel ne doit déborder de sa carte. */
:where(.hero-visual,.route-card,.activity-card,.stage-card,.walk-card,.lodging-card,.fauna-card,.guide-pro-card,.media-card,.official-card,.program-card,.home-page-card,.guide-editorial-card,.flight-offer-card){box-sizing:border-box;min-width:0!important;max-width:100%!important}
:where(.route-card,.activity-card,.stage-card,.walk-card,.lodging-card,.fauna-card,.guide-pro-card,.media-card,.guide-editorial-card,.flight-offer-card){overflow:hidden}
:where(.hero-visual,.route-card,.activity-card,.stage-card,.walk-card,.lodging-card,.fauna-card,.guide-pro-card,.media-card,.guide-editorial-card,.flight-offer-card) img{max-width:100%!important}

/* Textes et badges longs : retour à la ligne contrôlé, jamais de fuite horizontale. */
:where(.hero-caption,.hero-notes,.route-top,.route-bottom,.activity-meta,.activity-actions,.stage-card-meta,.walk-meta,.lodging-meta,.lodging-actions,.fauna-meta,.guide-card-header,.guide-specialty-line,.guide-region-tag,.guide-actions-row,.car-card-top,.car-card-bottom,.official-card-top,.flight-result,.flight-results-summary-strip,.stay-summary-bar,.api-badge,.guide-note-ict,.lodging-subtext,.activity-filter-status,.guide-editorial-meta){min-width:0!important;max-width:100%!important;overflow-wrap:anywhere}
:where(.button,.filter-button,.region-button,.wildlife-filter,.type-filter,.pagination-btn,.activity-extra-button,.activity-advanced-reset,.guide-btn-call,.guide-btn-wa,.guide-btn-mail,.airport-button,.map-mode-gps){white-space:normal!important;overflow-wrap:anywhere!important}

/* Filtres/chips : ils reviennent à la ligne au lieu de créer un scroll de page. */
:where(.filter-row,.region-filter-row,.wildlife-filters,.wildlife-type-filters,.guide-filter-chips,.itinerary-filter-chips,.activity-extra-filters,.guide-topic-filters){display:flex;flex-wrap:wrap!important;max-width:100%!important;min-width:0!important}
:where(.filter-row,.region-filter-row,.wildlife-filters,.wildlife-type-filters,.guide-filter-chips,.itinerary-filter-chips,.activity-extra-filters,.guide-topic-filters)>*{min-width:0;max-width:100%}

/* Stamp circulaire : texte dimensionné pour rester à l'intérieur même avec des libellés plus longs. */
.page-hero .hero-stamp:not(span){box-sizing:border-box!important;width:clamp(82px,8vw,98px)!important;height:clamp(82px,8vw,98px)!important;padding:10px!important;overflow:hidden!important}
.page-hero .hero-stamp:not(span)>span{font-size:clamp(10px,1.15vw,17px)!important;line-height:1!important}
.page-hero .hero-stamp:not(span)>strong{font-size:clamp(10px,1vw,15px)!important;line-height:1.03!important;max-width:78px!important}
.page-hero .hero-stamp:not(span)>small{font-size:7px!important;line-height:1.15!important;margin-top:6px!important;max-width:72px!important}

/* Les stats du hero restent compactes même lorsqu'une traduction est plus longue. */
.page-hero .hero-notes{display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:14px 22px!important}
.page-hero .hero-notes>span,.page-hero .hero-notes>div{flex:0 1 auto!important}
.page-hero .hero-notes>span{line-height:1.35!important}

/* Filtres avancés des activités : vraie grille responsive, aucun select écrasé. */
.activity-advanced-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px!important}
.activity-filter-field{min-width:0!important}
.activity-filter-field select{width:100%!important;min-width:0!important;max-width:100%!important;min-height:44px!important;box-sizing:border-box!important;background-image:none!important}
.activity-advanced-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;flex-wrap:wrap!important}
.activity-advanced-head>*{min-width:0!important;max-width:100%!important}

/* Barre footer / callouts : évite les collisions sur écrans intermédiaires. */
.home-callout,.activity-fauna-bridge,.car-warning{min-width:0!important;max-width:100%!important;flex-wrap:wrap!important}
.home-callout>* ,.activity-fauna-bridge>* ,.car-warning>*{min-width:0!important;max-width:100%!important}

@media(max-width:1100px){
  .activity-advanced-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .car-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:850px){
  .activity-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .guide-grid,.transport-grid,.car-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .page-hero .hero-stamp:not(span){right:16px!important;top:16px!important;width:78px!important;height:78px!important;padding:8px!important}
  .page-hero .hero-stamp:not(span)>span{font-size:11px!important}
  .page-hero .hero-stamp:not(span)>strong{font-size:10px!important;max-width:62px!important}
  .page-hero .hero-stamp:not(span)>small{font-size:6px!important;max-width:60px!important}
  .page-hero .hero-notes{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  .activity-advanced-grid,.guide-grid,.transport-grid,.car-grid{grid-template-columns:minmax(0,1fr)!important}
  .activity-advanced-head{display:grid!important;grid-template-columns:minmax(0,1fr)!important}
  .activity-advanced-reset{width:100%!important}
}

/* ========================================================================== 
   AUDIT FINAL — loaders, lightboxes, tris et vues dynamiques
   ========================================================================== */

/* Un état de chargement placé dans une grille doit occuper toute la grille. */
:where(.official-grid,.program-grid,.guides-cards-container,.lodging-grid,.activity-grid,.fauna-grid,.walk-grid,.stage-grid,.route-grid,.flight-offers-grid)>.page-loading{grid-column:1/-1!important;width:100%!important;max-width:none!important}
main[id$="-page"]>.page-loading{width:calc(100% - 36px)!important;max-width:1184px!important;margin:48px auto!important}

/* Tri des résultats de vols : rendu identique aux autres outils et aucun contrôle natif flottant. */
.flight-results-controls{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;min-width:0!important}
.flight-results-controls>*{min-width:0!important}
.flight-results-controls label{font:10px var(--mono)!important;color:var(--muted)!important}
.flight-results-controls select{min-height:42px!important;max-width:100%!important;border:1px solid var(--line)!important;border-radius:8px!important;background-color:var(--paper)!important;color:var(--green)!important;padding-left:12px!important}

/* Lightboxes : viewport dynamique, safe areas et boutons qui ne sortent jamais de l'écran. */
.stage-lightbox,.fauna-lightbox{box-sizing:border-box!important;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}
.stage-lightbox .lightbox-container{width:min(1200px,100%)!important;max-height:calc(100dvh - 24px)!important}
.fauna-lightbox .lightbox-content,.fauna-lightbox>.lightbox-content{width:min(1400px,100%)!important;height:min(94dvh,calc(100dvh - 24px))!important;max-height:calc(100dvh - 24px)!important}
.stage-lightbox .lightbox-body{min-width:0!important;max-width:100%!important}
.stage-lightbox .lightbox-body img{max-width:100%!important;max-height:calc(100dvh - 120px)!important}
@media(max-width:1100px){
  .stage-lightbox .lightbox-prev{left:10px!important}
  .stage-lightbox .lightbox-next{right:10px!important}
  .stage-lightbox .lightbox-nav-btn{width:44px!important;height:44px!important;display:grid!important;place-items:center!important}
}
@media(max-width:620px){
  .stage-lightbox .lightbox-close-btn{top:10px!important;right:10px!important;width:44px!important;height:44px!important;border-radius:50%!important;background:#173c2ee6!important;display:grid!important;place-items:center!important;z-index:20!important}
  .stage-lightbox .lightbox-nav-btn{display:none!important}
  .stage-lightbox .lightbox-body img{max-height:calc(100dvh - 150px)!important}
  .fauna-lightbox .lightbox-close,.lightbox-close{top:8px!important;right:8px!important}
}

/* Tables de comparaison et zones scrollables : défilement local au lieu d'élargir la page. */
.activity-compare-table-wrap,.climate-table-container,.table-scroll,.comparison-table-wrap{max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}

/* Les libellés chargés dynamiquement restent lisibles, même avec données longues. */
:where(.page-loading,.api-loading,.api-fallback,.flight-copy-result,.flight-result,.selected-activity-summary,.stay-summary-bar,.guide-status-bar,.lodging-status-bar){overflow-wrap:anywhere!important;min-width:0!important}

/* ========================================================================== 
   AUDIT GLOBAL — passe 6 : layouts hérités, nowrap et cartes denses
   ========================================================================== */

/* Les contrôles natifs et le contenu dynamique doivent pouvoir se réduire. */
:where(input,select,textarea,button,output){min-width:0!important;max-width:100%;box-sizing:border-box}
textarea{resize:vertical}
:where(.live-strip,.live-strip-label,.live-weather,.live-rate,.weather-chip,.currency-tool,.transport-list,.detail-fact-grid,.page-detail-columns,.detail-grid,.route-detail-stats,.route-segment-head,.selected-activity-heading,.selected-activity-line,.panel-header,.day-row,.budget-line,.booking-links,.fold-summary,.fold-summary-left,.fold-summary-right,.ribbon-stop){min-width:0!important;max-width:100%}

/* Les anciens nowrap étaient encore capables de faire sortir des éléments. */
.button-dark,.hotel-search .button,.car-warning strong,.car-warning a,.wildlife-note a,.mini-lodging a,.fauna-open,.stage-card-meta strong,.official-card-top b,.method-note strong,.stage-pill,.ribbon-stop{white-space:normal!important;overflow-wrap:anywhere!important}
.map-place span{white-space:normal!important;max-width:118px!important;line-height:1.15!important;text-align:center!important;overflow-wrap:anywhere!important}

/* Barres live et outils compacts : plus de collision à largeur intermédiaire. */
.live-strip>* ,.live-weather>* ,.live-rate>*{min-width:0!important}
.live-weather{flex-wrap:wrap!important}
.weather-chip{max-width:100%!important}
.currency-tool>*{min-width:0!important;max-width:100%!important}

/* Les grilles en 1fr utilisent maintenant une vraie largeur minimale nulle. */
.route-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.activity-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.walk-grid,.lodging-grid,.fauna-grid,.stage-grid,.official-itinerary-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.guides-cards-container{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.official-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.program-grid,.official-programs{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.video-shelf{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.home-page-grid,.safety-grid,.sources-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.media-grid{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr))!important}
.booking-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}

/* Flex internes : wrap contrôlé plutôt que chevauchement. */
.route-top,.route-bottom,.activity-meta,.walk-meta,.lodging-meta,.fauna-meta,.stage-card-meta,.car-card-top,.car-card-bottom,.official-card-top,.panel-header,.route-segment-head,.selected-activity-heading{flex-wrap:wrap!important}
.day-row{grid-template-columns:31px minmax(0,1fr) auto!important}
.budget-line{grid-template-columns:minmax(0,1fr) auto!important}
.detail-fact{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important}
.season-bars div{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)!important}
.selected-activity-line{grid-template-columns:minmax(0,1fr) auto auto!important}

/* Fiches détail générées : URLs, titres et valeurs longues restent dans le panneau. */
.detail-page-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)!important;overflow:hidden}
.detail-page-hero>* ,.page-detail-columns>* ,.detail-grid>* ,.detail-fact>* ,.route-segment-head>* ,.selected-activity-line>*{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere}
.detail-page-hero h1,.detail-hero h2,.page-detail-card h3,.route-segment-head b,.route-segment-head strong{overflow-wrap:anywhere!important}
.maplibregl-popup,.maplibregl-popup-content{max-width:min(320px,calc(100vw - 36px))!important}
.leaflet-popup-content{max-width:min(280px,calc(100vw - 44px))!important;overflow-wrap:anywhere}

@media(max-width:1050px) and (min-width:761px){
  .official-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .video-shelf{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .walk-grid,.lodging-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:1100px) and (min-width:761px){.fauna-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:900px) and (min-width:561px){
  .route-grid,.activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .home-page-grid,.safety-grid,.sources-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .media-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .media-large{grid-column:1/-1!important}
}
@media(max-width:760px){
  .fold-title-group h3,.fold-title-group .fold-subtext,.fold-summary-right>*{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
  .fold-summary-right{flex-wrap:wrap!important;justify-content:flex-start!important}
  .detail-page-hero{grid-template-columns:minmax(0,1fr)!important}
  .detail-fact-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .currency-tool{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .official-grid,.program-grid,.official-programs,.video-shelf,.walk-grid,.lodging-grid,.car-grid{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:760px) and (min-width:521px){.fauna-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){
  .route-grid,.activity-grid,.home-page-grid,.safety-grid,.sources-grid,.media-grid,.booking-links,.currency-tool{grid-template-columns:minmax(0,1fr)!important}
  .media-large{grid-column:auto!important}
  .detail-fact-grid{grid-template-columns:minmax(0,1fr)!important}
  .detail-fact-grid div{border-right:0!important}
  .selected-activity-line{grid-template-columns:minmax(0,1fr) auto!important}
  .selected-activity-line select{grid-column:1/2;width:100%!important}
  .map-place span{max-width:88px!important;font-size:9px!important}
}
