.live-strip{display:grid;grid-template-columns:1.05fr 2fr .75fr;align-items:center;gap:20px;margin-top:20px;margin-bottom:20px;background:#e9eee5;border:1px solid #d8e0d4;padding:14px 20px;border-radius:12px;box-shadow:0 6px 20px rgba(18,39,26,0.05)}.live-strip-label{display:flex;align-items:center;gap:8px;font:10px var(--mono);color:var(--green);text-transform:uppercase;letter-spacing:.04em}.live-strip-label small{color:#89958b;text-transform:none;letter-spacing:0;margin-left:3px}.live-weather{display:flex;gap:14px;justify-content:center}.weather-chip{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--green)}.weather-chip>b{font-size:16px}.weather-chip small,.live-rate small{display:block;color:#89958b;font:9px var(--mono);margin-top:1px}.live-rate{display:flex;align-items:center;gap:8px;justify-content:end;color:var(--green)}.rate-symbol{width:24px;height:24px;background:var(--yellow);border-radius:50%;display:grid;place-items:center;font:13px var(--mono)}.live-rate b{font:10px var(--mono)}.api-loading,.api-fallback{font:10px var(--mono);color:#89958b}@media(max-width:900px){.live-strip{grid-template-columns:1fr;gap:12px;margin-top:14px}.live-strip-label{justify-content:space-between}.live-weather{justify-content:flex-start;flex-wrap:wrap}.live-rate{justify-content:flex-start}}@media(max-width:560px){.live-strip-label small{display:none}.weather-chip:nth-child(3){display:none}}
.map-mode{border:0;background:transparent;color:var(--lime);font:9px var(--mono);cursor:pointer}.real-map{display:none;position:absolute;inset:0;z-index:4}.map-canvas.real-mode> :not(.real-map){display:none}.map-canvas.real-mode .real-map{display:block}.leaflet-popup-content{font-family:var(--sans);font-size:12px;color:var(--green)}.leaflet-popup-content small{color:var(--muted)}.leaflet-add{background:var(--green);color:var(--lime);border:0;border-radius:3px;padding:7px 9px;font:10px var(--mono);margin-top:8px;cursor:pointer}
.map-place{padding:0;border:0;background:transparent;font-family:inherit;text-align:left;appearance:none}
.walk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.walk-card{background:var(--paper);border:1px solid #dce4d8;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.walk-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #12271a15}.walk-image{height:165px;background-size:cover;background-position:center;display:flex;align-items:flex-end;justify-content:space-between;gap:8px;padding:12px;color:white}.walk-image span,.walk-image b{font:9px var(--mono);background:#12271ac7;padding:5px 7px}.walk-image b{color:var(--yellow);max-width:58%;text-align:right}.walk-info{padding:15px}.walk-info h3{font:700 19px var(--sans);color:var(--green);margin:7px 0}.walk-info p{font-size:12px;line-height:1.45;color:var(--muted);min-height:34px}.walk-info>small{display:block;color:var(--green);font:10px var(--mono);line-height:1.45;margin-top:10px}.walk-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-top:10px;border-top:1px solid #e0e7dc;color:var(--muted);font:10px var(--mono)}.walk-meta strong{color:var(--coral)}.walk-detail-hero{background:linear-gradient(135deg,#e3eee0,#f7f1e7)}
@media(max-width:1050px){.walk-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.walk-grid{grid-template-columns:1fr 1fr}}@media(max-width:500px){.walk-grid{grid-template-columns:1fr}}
.guide-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px}.guide-card{background:var(--paper);border:1px solid #dce4d8;padding:24px;min-height:310px;display:flex;flex-direction:column}.guide-card h3{font:700 25px var(--sans);line-height:1.05;margin:18px 0 10px;color:var(--green)}.guide-card p{color:var(--muted);font-size:13px;line-height:1.65;margin:0 0 18px}.guide-index,.guide-footnote{font:10px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--green)}.guide-seasons{background:#e7efdf}.season-bars{display:grid;gap:9px;margin:auto 0 18px}.season-bars div{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;border-top:1px solid #cbd7c5;padding-top:8px;font-size:11px}.season-bars span{color:var(--green)}.season-bars b{font-weight:600;color:#748172}.guide-link{margin-top:auto;color:var(--green);font:11px var(--mono);text-decoration:none}.currency-tool{display:grid;grid-template-columns:1.5fr .8fr auto .9fr .9fr;align-items:center;gap:8px;margin:auto 0 15px;background:#f1f4ef;padding:12px}.currency-tool label{font:10px var(--mono);color:var(--green)}.currency-tool input{display:block;width:100%;margin-top:6px;border:1px solid #d8e0d4;padding:8px;font:13px var(--mono);background:white}.currency-tool div{display:grid;gap:2px}.currency-tool strong{font:700 14px var(--mono);color:var(--green)}.currency-tool span{font:9px var(--mono);color:var(--muted)}.transport-list{display:grid;gap:9px;margin:auto 0 18px}.transport-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e1e7df;padding:7px 0}.transport-list b{font-size:11px;color:var(--green)}.transport-list span{font:10px var(--mono);color:var(--muted);text-align:right}.lodging-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 18px}.lodging-toolbar>label{display:flex;align-items:center;gap:8px;font:10px var(--mono);color:var(--green);margin-left:auto}.lodging-toolbar select,.hotel-search input,.hotel-search select{border:1px solid #cfd9cc;background:var(--paper);padding:10px;font:10px var(--mono);color:var(--green)}.hotel-search{display:flex;gap:6px;flex:1 1 620px}.hotel-search input[type=search]{min-width:160px;flex:1}.hotel-search input[type=date]{width:145px}.hotel-search .button{padding:10px 13px;white-space:nowrap}.lodging-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.lodging-card{background:var(--paper);border:1px solid #dce4d8;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.lodging-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #12271a15}.lodging-image{height:155px;background-size:cover;background-position:center;display:flex;align-items:flex-end;justify-content:space-between;padding:12px;color:white}.lodging-image span,.lodging-image b{font:10px var(--mono);background:#12271abf;padding:5px 7px}.lodging-image b{color:var(--yellow);text-transform:uppercase}.lodging-info{padding:15px}.lodging-info h3{font:700 19px var(--sans);color:var(--green);margin:7px 0}.lodging-info p{font-size:12px;line-height:1.45;color:var(--muted);min-height:34px}.lodging-meta{display:flex;align-items:baseline;gap:5px;margin:12px 0}.lodging-meta strong{font:700 15px var(--mono);color:var(--green)}.lodging-meta small{font:10px var(--mono);color:var(--muted)}.lodging-actions{display:flex;gap:10px;flex-wrap:wrap}.lodging-actions a,.car-link{font:10px var(--mono);color:var(--green);text-decoration:none;border-bottom:1px solid #c4d0bf;padding-bottom:3px}.cars-section{background:#dfe9dc;padding-top:55px;padding-bottom:55px}.car-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.car-card{background:#f5f7f2;padding:19px;min-height:250px;display:flex;flex-direction:column;border:1px solid #cfd9cc}.car-card-top{display:flex;justify-content:space-between;color:var(--green);font:10px var(--mono)}.car-card-top b{color:var(--coral)}.car-card h3{font:700 20px var(--sans);color:var(--green);margin:25px 0 10px}.car-card p{font-size:12px;line-height:1.55;color:var(--muted);margin:0}.car-card-bottom{display:flex;justify-content:space-between;align-items:end;gap:8px;margin:auto 0 15px}.car-card-bottom strong{font:700 14px var(--mono);color:var(--green)}.car-card-bottom small{font:9px var(--mono);color:var(--muted);text-align:right}.car-warning{display:flex;gap:15px;align-items:center;margin-top:16px;padding:14px;background:#fff7d4;color:var(--green);font-size:12px}.car-warning strong{font:700 12px var(--mono);white-space:nowrap}.car-warning span{flex:1}.car-warning a{color:var(--green);font:10px var(--mono);white-space:nowrap}.detail-modal{display:none;position:fixed;inset:0;z-index:100}.detail-modal.open{display:flex;align-items:center;justify-content:center;padding:15px}.detail-backdrop{position:absolute;inset:0;background:#07150dcc;backdrop-filter:blur(6px)}.detail-dialog{position:relative;width:min(880px,calc(100% - 30px));max-height:calc(100vh - 40px);overflow-y:auto;overflow-x:hidden;margin:auto;background:var(--paper);color:var(--green);border-radius:12px;box-shadow:0 25px 80px #00000080;z-index:1}.detail-close{position:absolute;right:14px;top:10px;border:0;background:#ffffffcc;color:var(--green);font:26px var(--sans);cursor:pointer;z-index:10;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;box-shadow:0 2px 8px #0002}.detail-close:hover{background:#fff;color:var(--orange)}.detail-hero{padding:44px 38px 30px;background:linear-gradient(135deg,#e4eee0,#f6f3e9)}.detail-hero h2{font:700 clamp(30px,5vw,54px) var(--sans);line-height:.98;margin:12px 0}.detail-hero p{max-width:680px;color:#617064;line-height:1.6;margin:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:30px 38px}.detail-kicker{display:block;font:10px var(--mono);letter-spacing:.08em;color:var(--coral);margin:0 0 12px}.detail-fact{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px;border-top:1px solid #dbe3d8;padding:11px 0;font-size:12px}.detail-fact b{font:10px var(--mono);text-transform:uppercase;color:var(--green)}.detail-fact span{color:var(--muted);line-height:1.4}.detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px}.detail-tags span{padding:6px 8px;background:#e7efdf;font:10px var(--mono);color:var(--green)}.detail-media-link,.detail-source{display:block;color:var(--green);font:11px var(--mono);text-decoration:none;margin-top:18px}.detail-media-link.secondary{margin-top:10px;color:var(--coral)}.detail-note{background:#eef3eb;padding:17px;font-size:12px;line-height:1.6;color:var(--muted)}.detail-note b{color:var(--green);font:11px var(--mono)}.detail-actions{margin-top:18px}.route-detail{padding:30px 38px}.route-detail-stats{display:flex;gap:30px;margin-top:25px}.route-detail-stats span{display:grid;gap:4px}.route-detail-stats b{font:700 15px var(--mono);color:var(--green)}.route-detail-stats small{font:10px var(--mono);color:var(--muted)}.route-segment{border-left:2px solid var(--coral);padding:12px 15px;margin:0 0 10px;background:#f0f4ed}.route-segment-head{display:flex;justify-content:space-between;gap:15px}.route-segment-head b{font-size:13px}.route-segment-head strong{font:12px var(--mono);color:var(--coral)}.route-segment small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.day-plan{display:grid;gap:8px;margin:0 0 20px}.day-plan div{font-size:12px;padding:8px 0;border-bottom:1px solid #e1e8de}.mini-lodgings{display:grid;gap:10px;margin-bottom:18px}.mini-lodging{display:flex;justify-content:space-between;gap:10px;padding:10px;background:#eef3eb}.mini-lodging div{display:grid;gap:4px}.mini-lodging b{font-size:12px}.mini-lodging small{font:10px var(--mono);color:var(--muted)}.mini-lodging a{font:10px var(--mono);color:var(--green);white-space:nowrap}.detail-add{width:100%;margin-top:15px}.selected-activity-summary{grid-column:2;padding:15px;background:#edf3e9;border:1px solid #d7e1d3}.selected-activity-heading,.selected-activity-line{display:flex;justify-content:space-between;gap:10px;align-items:center}.selected-activity-heading{font:10px var(--mono);color:var(--green);margin-bottom:10px}.selected-activity-heading strong{font:12px var(--mono)}.selected-activity-line{border-top:1px solid #d4dfd0;padding:8px 0;font-size:11px}.selected-activity-line select{font:10px var(--mono);padding:4px;border:1px solid #c9d6c5;background:white}.mini-remove{border:0;background:transparent;color:var(--coral);font-size:18px;cursor:pointer}.selected-activity-empty{font:11px var(--mono);color:var(--muted)}.route-timeline{display:grid;gap:10px;margin:12px 0}.timeline-row{display:grid;grid-template-columns:8px 1fr;gap:10px}.timeline-line{background:var(--coral);width:2px;min-height:32px;margin:4px auto}.timeline-row b{display:block;font-size:11px;color:var(--green)}.timeline-row small{font:9px var(--mono);color:var(--muted)}.itinerary-stage{width:100%;border:0;text-align:left;cursor:pointer}.wildlife-note{display:flex;gap:14px;align-items:center;background:#f1f4ef;padding:14px;margin-bottom:17px}.wildlife-note>span{font-size:25px;color:var(--coral)}.wildlife-note div{flex:1}.wildlife-note strong{display:block;color:var(--green);font-size:12px}.wildlife-note small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.wildlife-note a{font:10px var(--mono);color:var(--green)}.wildlife-filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.wildlife-filter{border:1px solid #cfd9cc;background:transparent;padding:8px 10px;color:var(--green);font:10px var(--mono);cursor:pointer}.wildlife-filter.active{background:var(--green);color:var(--lime)}.fauna-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.fauna-card{background:var(--paper);border:1px solid #dce4d8;cursor:pointer}.fauna-image{height:135px;background-size:cover;background-position:center}.fauna-info{padding:13px}.fauna-info h3{font:700 17px var(--sans);color:var(--green);margin:7px 0}.fauna-info p{font-size:11px;line-height:1.5;color:var(--muted)}.maplibregl-map{font:12px var(--sans)}.maplibregl-canvas{filter:saturate(.9)}.maplibre-marker{width:34px;height:34px;border:2px solid var(--lime);border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--coral);color:white;font:700 12px var(--mono);box-shadow:0 5px 12px #12271a55;cursor:pointer}.maplibre-marker::first-letter{display:inline-block;transform:rotate(45deg)}.maplibregl-ctrl-group{border-radius:3px!important}.maplibregl-ctrl button{background-color:#f4f5ee!important}
@media(max-width:1050px){.lodging-grid{grid-template-columns:repeat(3,1fr)}.car-grid{grid-template-columns:repeat(3,1fr)}.guide-grid{grid-template-columns:1fr 1fr}.guide-transport{grid-column:span 2}.fauna-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.guide-grid,.lodging-grid,.car-grid,.fauna-grid{grid-template-columns:1fr}.guide-transport{grid-column:auto}.hotel-search{display:grid;grid-template-columns:1fr 1fr}.hotel-search input[type=search],.hotel-search .button{grid-column:span 2;width:100%}.lodging-toolbar>label{margin-left:0}.currency-tool{grid-template-columns:1fr 1fr}.currency-tool>span{display:none}.detail-grid{grid-template-columns:1fr;padding:24px}.detail-hero{padding:40px 24px 24px}.route-detail{padding:24px}.route-detail-stats{display:grid;gap:12px}.car-warning{align-items:flex-start;flex-direction:column}.transport-list div{display:grid;gap:4px}.transport-list span{text-align:left}}
.wildlife-section{background:var(--blue)}.wildlife-note{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);padding:16px 18px;margin:0 0 20px}.wildlife-note>span{font-size:24px;color:var(--orange)}.wildlife-note strong,.wildlife-note small{display:block}.wildlife-note strong{font:11px var(--mono);color:var(--green)}.wildlife-note small{margin-top:3px;color:var(--muted);font-size:11px}.wildlife-note a{margin-left:auto;white-space:nowrap;color:var(--green);font:10px var(--mono);border-bottom:1px solid var(--orange);padding-bottom:3px}.wildlife-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.wildlife-filter{border:1px solid var(--line);background:transparent;color:var(--green);padding:10px 13px;font:10px var(--mono);cursor:pointer}.wildlife-filter.active,.wildlife-filter:hover{background:var(--green);border-color:var(--green);color:var(--lime)}.wildlife-filter span{opacity:.65;margin-left:5px}.fauna-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.fauna-card{background:var(--panel);border:1px solid var(--line);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.fauna-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #173c2e18}.fauna-image{height:180px;background-size:cover;background-position:center;display:flex;align-items:flex-end;justify-content:space-between;padding:11px;color:#fff;font:9px var(--mono);text-transform:uppercase}.fauna-image b{background:var(--yellow);color:var(--green);padding:4px 6px;font-size:8px}.fauna-info{padding:16px}.fauna-info h3{margin:5px 0 4px;color:var(--green);font:700 20px var(--serif);line-height:1.05}.fauna-info em{color:var(--muted);font:italic 11px var(--mono)}.fauna-info p{min-height:38px;margin:10px 0 14px;color:var(--muted);font-size:11px;line-height:1.45}.fauna-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:10px;color:var(--green);font:9px var(--mono)}.fauna-open{border:0;background:transparent;color:var(--orange);font:10px var(--mono);padding:0;cursor:pointer;white-space:nowrap}.fauna-detail-hero{min-height:290px;background-image:linear-gradient(90deg,#173c2ee8 0%,#173c2e8c 60%,#173c2e2e 100%),var(--detail-image);background-size:cover;background-position:center}@media(max-width:1100px){.fauna-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.wildlife-note{align-items:flex-start;flex-wrap:wrap}.wildlife-note a{margin-left:38px}.fauna-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.fauna-grid{grid-template-columns:1fr}.fauna-image{height:210px}}
.maplibre-marker span{transform:rotate(45deg)}
.map-canvas .real-map.maplibregl-map{position:absolute;width:100%;height:100%;inset:0}

/* Carte principale : fond réel, marqueurs Pura Rica et tracé lisible. */
.map-canvas.real-mode{background:#c9d9cf}
.map-canvas.real-mode .real-map{display:block;z-index:1}
.map-canvas.real-mode .maplibregl-map{position:absolute;inset:0;width:100%;height:100%;background:#c9d9cf}
.map-canvas.real-mode .maplibregl-canvas{outline:0}
.map-canvas.real-mode .maplibregl-ctrl-bottom-right{right:12px;bottom:12px}
.map-canvas.real-mode .maplibregl-ctrl-group{overflow:hidden;border:1px solid #dce8d9;box-shadow:0 4px 16px #08251f26}
.maplibre-marker{position:relative;display:flex;align-items:center;gap:7px;width:max-content;min-height:30px;padding:0;border:0;background:transparent;color:var(--green);font:600 10px var(--sans);line-height:1;white-space:nowrap;cursor:pointer;overflow:visible;transform:none}
.maplibre-marker .map-marker-pin,.maplibre-marker .map-marker-label{transform:none}
.map-marker-pin{position:relative;display:grid;place-items:center;width:30px;height:30px;border:2px solid #f6f3e9;border-radius:50%;background:var(--green);color:var(--lime);box-shadow:0 5px 14px #0b2c2455;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.map-marker-pin:after{content:'';position:absolute;left:50%;bottom:-6px;width:10px;height:10px;background:inherit;transform:translateX(-50%) rotate(45deg);z-index:-1}
.map-marker-pin b{font:700 9px var(--mono);letter-spacing:-.03em}
.map-marker-label{display:none;padding:7px 9px;border:1px solid #e4ead9;background:#f7f5e9ee;color:#183c2f;box-shadow:0 4px 12px #0b2c241f;transition:transform .2s ease,background .2s ease}
.maplibre-marker:hover .map-marker-pin,.maplibre-marker:focus .map-marker-pin,.maplibre-marker:focus-visible .map-marker-pin{transform:scale(1.1)}
.maplibre-marker:hover .map-marker-label,.maplibre-marker:focus .map-marker-label,.maplibre-marker:focus-visible .map-marker-label{display:block;background:#fffdf4;transform:translateY(-1px)}
.maplibre-marker.is-selected .map-marker-pin{background:var(--orange);color:#fff;box-shadow:0 0 0 4px #eb815b45,0 5px 14px #0b2c2455}
.maplibre-marker.is-selected .map-marker-label{border-color:#eb815b66;background:#fff8ee}
.map-canvas.real-mode .maplibregl-ctrl-attrib{background:#f7f5e9dd;color:#476254;font:9px var(--mono)}
.map-canvas.real-mode .maplibregl-ctrl-attrib a{color:#204b3a}
.itinerary-panel button.selected-place,.itinerary-panel button.day-row{appearance:none;-webkit-appearance:none;background:transparent;color:inherit;font-family:var(--sans)}
.itinerary-panel button.selected-place{width:100%;text-align:left}
.itinerary-panel .day-row{grid-template-columns:31px minmax(0,1fr) auto 18px;text-align:left}
.itinerary-panel .stage-remove{justify-self:end;color:var(--orange);font-size:18px;line-height:1;padding:0;background:transparent}
.itinerary-panel .day-row:hover,.itinerary-panel .selected-place:hover{background:#ffffff0d}
.itinerary-panel .day-row:focus-visible,.itinerary-panel .selected-place:focus-visible,.map-place:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.map-foot #map-status{margin-left:auto;color:#b5c4b3}
.video-poster,.detail-video,.video-frame{position:relative!important;overflow:hidden!important;isolation:isolate!important;aspect-ratio:16/9!important;background:#0b1810!important;border-radius:8px;max-width:100%}
.video-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0}
.video-poster-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0b181044,#0b1810b8);z-index:1}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;display:flex;align-items:center;gap:9px;border:1px solid #eff4db99;border-radius:999px;padding:10px 18px;background:#173c2ee8;color:var(--lime);font:11px var(--mono);white-space:nowrap;cursor:pointer;transition:all .2s ease}
.video-play:hover{background:var(--orange);color:#fff;border-color:var(--orange)}
.video-poster-badge{position:absolute;left:12px;top:12px;z-index:2;padding:5px 9px;border-radius:4px;background:#173c2ed9;color:var(--lime);font:9px var(--mono);text-transform:uppercase;letter-spacing:.05em}
.detail-video iframe,.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;border-radius:8px}
.transport-sources{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 17px}.transport-sources a{color:var(--green);font:9px var(--mono);text-decoration:none;border-bottom:1px solid #cbd7c5;padding-bottom:4px}
.activity-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0 8px}.activity-toggle{border:1px solid var(--green);background:var(--green);color:var(--lime);padding:8px 10px;border-radius:3px;font:10px var(--mono);cursor:pointer}.activity-toggle.selected{background:var(--orange);border-color:var(--orange);color:#fff}.activity-toggle span{font-size:15px;line-height:0}.activity-sources{display:flex;gap:12px;flex-wrap:wrap}.activity-sources a{color:var(--green);font:9px var(--mono);text-decoration:underline;text-underline-offset:3px}.activity-card.is-selected{border-color:var(--orange);box-shadow:0 0 0 2px #eb815b2a}.selected-activity-summary{grid-column:2;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.selected-activity-heading{display:flex;justify-content:space-between;color:var(--green);font:11px var(--mono);margin-bottom:10px}.selected-activity-heading strong{color:var(--orange)}.selected-activity-line{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.activity-participants{border:1px solid var(--line);background:var(--panel);color:var(--green);padding:5px;font:10px var(--mono)}.mini-remove,.stage-remove{border:0;background:transparent;color:var(--orange);font-size:18px;cursor:pointer;padding:3px 5px}.place-remove{cursor:pointer}.place-empty{color:var(--muted);font-size:11px}.activity-sources a:hover,.lodging-actions a:hover{color:var(--orange)}@media(max-width:900px){.selected-activity-summary{grid-column:1 / -1}}@media(max-width:600px){.activity-sources{display:block}.activity-sources a{display:inline-block;margin:3px 10px 3px 0}.selected-activity-line{grid-template-columns:1fr auto auto}}
.wildlife-section{background-image:linear-gradient(90deg,#dce9d9f0 0%,#dce9d9de 48%,#dce9d9aa 100%),url('assets/costa-rica-wildlife-hero.png');background-size:cover;background-position:center top}
.fauna-sheet{padding-bottom:30px}.fauna-detail-intro{margin:0 38px;padding:20px;background:#e7efdf;border-left:3px solid var(--orange)}.fauna-detail-intro p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.65}.fauna-detail-column{min-width:0}.fauna-ethics-note{margin-top:18px}.fauna-detail-credit{display:inline-block;margin-top:18px;color:var(--lime);font:10px var(--mono);text-decoration:underline;text-underline-offset:4px}.fauna-detail-hero .eyebrow,.fauna-detail-hero h2,.fauna-detail-hero p{color:var(--lime)}.fauna-detail-hero p{max-width:680px}.fauna-detail-hero .detail-kicker{color:var(--yellow)}@media(max-width:720px){.fauna-detail-intro{margin:0 24px}.fauna-detail-credit{font-size:9px}}
.fauna-search-bar{margin:0 0 16px}.fauna-search-wrapper{position:relative;display:flex;align-items:center;background:var(--paper);border:1px solid #cfd9cc;border-radius:3px;transition:border-color .2s,box-shadow .2s}.fauna-search-wrapper:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #173c2e1f}#fauna-search{flex:1;border:0;background:transparent;padding:12px 14px;font-family:var(--sans);font-size:13px;color:var(--green);outline:none}#fauna-search::placeholder{color:var(--muted);font-size:12px}#fauna-search-clear{border:0;background:transparent;padding:0 14px;font-size:20px;line-height:1;color:var(--muted);cursor:pointer}#fauna-search-clear:hover{color:var(--orange)}.fauna-filter-stack{display:grid;gap:10px;margin-bottom:20px}.fauna-filter-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.fauna-filter-label{font:10px var(--mono);color:var(--green);text-transform:uppercase;letter-spacing:.05em;min-width:68px}.wildlife-type-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.type-filter{border:1px solid #cfd9cc;background:var(--paper);padding:7px 11px;color:var(--green);font:10px var(--mono);cursor:pointer;border-radius:2px;transition:all .15s}.type-filter.active,.type-filter:hover{background:var(--green);border-color:var(--green);color:var(--lime)}.type-filter span{opacity:.65;margin-left:4px}.fauna-card{display:flex;flex-direction:column}.fauna-meta{margin-top:auto}
.place-guanacaste{left:16%;top:25%}
.stage-section{background:#f0f4ed}.stage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stage-card{background:var(--paper);border:1px solid #dce4d8;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.stage-card:hover,.stage-card:focus{transform:translateY(-3px);box-shadow:0 12px 30px #12271a15;outline:none}.stage-card-image{height:165px;background-size:cover;background-position:center;display:flex;align-items:flex-end;justify-content:space-between;padding:12px;color:#fff}.stage-card-image span,.stage-card-image b{font:10px var(--mono);background:#12271abf;padding:5px 7px}.stage-card-image b{color:var(--yellow);text-transform:uppercase}.stage-card-info{padding:15px}.stage-card-info h3{font:700 20px var(--sans);color:var(--green);margin:7px 0}.stage-card-info p{font-size:11px;line-height:1.5;color:var(--muted);min-height:67px}.stage-card-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;border-top:1px solid #e1e7df;padding-top:10px}.stage-card-meta span{font:9px var(--mono);color:var(--muted)}.stage-card-meta strong{font:10px var(--mono);color:var(--green);white-space:nowrap}.editorial-section{background:#e7efdf}.official-itinerary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.official-card{background:var(--paper);padding:18px;border:1px solid #d2dfce;min-height:190px;display:flex;flex-direction:column}.official-card-top{display:flex;justify-content:space-between;gap:8px;font:9px var(--mono);color:var(--green);text-transform:uppercase}.official-card-top b{color:var(--coral);white-space:nowrap}.official-card h3{font:700 19px var(--sans);color:var(--green);margin:22px 0 9px}.official-card p{font-size:11px;line-height:1.5;color:var(--muted);margin:0 0 14px}.official-card a,.program-card a{margin-top:auto;color:var(--green);font:10px var(--mono);text-decoration:none;border-bottom:1px solid #bdcfb7;padding-bottom:4px;width:max-content}.official-programs{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}.program-card{background:var(--paper);border:1px solid #d2dfce;padding:20px;display:grid;gap:16px}.program-card h3{font:700 21px var(--sans);color:var(--green);margin:8px 0}.program-card p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}.program-days{display:grid;gap:7px}.program-days div{border-top:1px solid #dce6d9;padding-top:7px;font-size:11px;line-height:1.4;color:#617064}.video-section{background:#12271a;color:var(--lime)}.video-section .section-heading h2,.video-section .section-heading p{color:var(--lime)}.video-shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.video-card{background:#1b3724;border:1px solid #36533e}.video-frame{aspect-ratio:16/9;background:#0b1810}.video-frame iframe{width:100%;height:100%;border:0;display:block}.video-card-info{padding:14px}.video-card-info span,.video-card-info small{font:9px var(--mono);color:#b9c8ae;text-transform:uppercase}.video-card-info h3{font:700 18px var(--sans);color:var(--lime);margin:8px 0}.video-card-info small{text-transform:none}@media(max-width:1050px){.stage-grid,.official-itinerary-grid{grid-template-columns:repeat(2,1fr)}.video-shelf{grid-template-columns:1fr 1fr}}@media(max-width:720px){.stage-grid,.official-itinerary-grid,.official-programs,.video-shelf{grid-template-columns:1fr}.stage-card-info p{min-height:0}.program-card{padding:16px}}.detail-video{margin:16px 0 6px}.video-caption{display:block;color:var(--muted);font:9px var(--mono);margin-bottom:12px}

.page-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:end;padding-top:76px;padding-bottom:70px}.page-hero h1{font-size:clamp(52px,7vw,92px);line-height:.93;letter-spacing:-.075em;margin:0 0 24px;color:var(--ink)}.page-hero h1 em{font-family:var(--serif);font-weight:400;color:#55765e}.page-hero p:not(.eyebrow){max-width:590px;color:var(--muted);font-size:16px;line-height:1.65;margin:0}.page-hero-note{justify-self:end;max-width:280px;padding:22px;border-left:2px solid var(--orange);background:#e9eee5;color:var(--green)}.page-hero-note span,.page-hero-note small{display:block;font:10px var(--mono)}.page-hero-note strong{display:block;font:700 23px var(--sans);margin:10px 0}.page-hero-note small{color:var(--muted);line-height:1.5}.main-nav a.active{color:var(--green);font-weight:700}.activity-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:start}.activity-trip-panel{position:sticky;top:18px;background:#e7efdf;border:1px solid #d2dfce;padding:20px}.activity-trip-panel h3{font:700 23px var(--sans);line-height:1.05;color:var(--green);margin:10px 0}.activity-trip-panel>p:not(.eyebrow){font-size:11px;line-height:1.5;color:var(--muted)}.activity-trip-panel .selected-activity-summary{display:block;margin:17px 0;background:transparent;border-top:1px solid #cbd8c7;border-bottom:1px solid #cbd8c7}.activity-trip-panel .button{display:inline-block;margin-top:8px}.transport-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.transport-card{background:var(--panel);border:1px solid var(--line);padding:22px;min-height:235px;display:flex;flex-direction:column}.transport-card>span{font:10px var(--mono);color:var(--green)}.transport-card h3{font:700 22px var(--sans);line-height:1.05;color:var(--green);margin:22px 0 10px}.transport-card p{font-size:12px;line-height:1.55;color:var(--muted);margin:0}.transport-card a{margin-top:auto;padding-top:18px;color:var(--green);font:10px var(--mono);text-decoration:underline;text-underline-offset:4px}.safety-section{background:#e7efdf}.safety-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.safety-grid article{background:var(--paper);padding:23px;border:1px solid #d2dfce}.safety-grid article>span{font:10px var(--mono);color:var(--orange)}.safety-grid h3{font:700 21px var(--sans);color:var(--green);margin:18px 0 8px}.safety-grid p{font-size:12px;line-height:1.55;color:var(--muted);margin:0}.sources-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sources-grid a{background:var(--panel);border:1px solid var(--line);padding:20px;color:var(--green);display:flex;flex-direction:column;min-height:150px}.sources-grid span{font:9px var(--mono);color:var(--orange)}.sources-grid strong{font:700 20px var(--sans);margin:12px 0 6px}.sources-grid small{color:var(--muted);font-size:11px;line-height:1.45;margin-bottom:12px}.method-note{display:flex;gap:16px;margin-top:18px;background:#fff7d4;color:var(--green);padding:16px;font-size:12px;line-height:1.5}.method-note strong{font:11px var(--mono);white-space:nowrap}.home-live{padding-top:24px;padding-bottom:24px}.home-live h2{font-size:35px;letter-spacing:-.07em;margin:0 0 8px}.home-lead{color:var(--muted);font-size:12px;max-width:480px}.home-live-strip{margin:22px 0 0}.home-index{padding-top:70px}.home-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.home-page-card{background:#e7efdf;border:1px solid #d2dfce;padding:24px;min-height:210px;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.home-page-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #12271a15}.home-page-card-wide{grid-column:span 2;background:var(--green);color:var(--lime)}.home-page-card-dark{background:var(--ink);color:var(--lime)}.home-page-card span{font:9px var(--mono);opacity:.8}.home-page-card h3{font:700 24px var(--sans);line-height:1.05;margin:20px 0 9px}.home-page-card p{font-size:12px;line-height:1.5;opacity:.78;margin:0}.home-page-card b{margin-top:auto;font:10px var(--mono)}.home-callout{display:flex;justify-content:space-between;align-items:center;gap:30px;background:#dfe9dc;padding-top:28px;padding-bottom:28px}.home-callout h2{font-size:28px;letter-spacing:-.06em;margin:5px 0 7px}.home-callout p:not(.eyebrow){color:var(--muted);font-size:12px;margin:0}.home-source{display:grid;grid-template-columns:1fr 280px;gap:40px}.home-source h2{font-size:42px;line-height:1;letter-spacing:-.07em;margin:0 0 14px}.home-source p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.6;max-width:600px}.source-proof{background:var(--green);color:var(--lime);padding:23px;display:flex;flex-direction:column}.source-proof span,.source-proof small{font:10px var(--mono);color:#b7c7ad}.source-proof strong{font:700 25px var(--sans);margin:18px 0 8px}.source-proof a{margin-top:auto;font:10px var(--mono);text-decoration:underline}.stage-next{background:#f0f4ed;max-width:none;padding-left:max(28px,calc((100% - 1240px)/2));padding-right:max(28px,calc((100% - 1240px)/2))}
@media(max-width:980px){.page-hero{grid-template-columns:1fr;padding-top:50px}.page-hero-note{justify-self:start;max-width:420px}.activity-page-layout{grid-template-columns:1fr}.activity-trip-panel{position:static}.transport-grid{grid-template-columns:1fr 1fr}.sources-grid{grid-template-columns:1fr 1fr}.home-page-grid{grid-template-columns:1fr 1fr}.home-page-card-wide{grid-column:auto}.home-source{grid-template-columns:1fr}.home-callout{display:block}.home-callout .button{display:inline-block;margin-top:15px}}
@media(max-width:620px){.page-hero{padding-top:34px;padding-bottom:42px}.page-hero h1{font-size:56px}.transport-grid,.safety-grid,.sources-grid,.home-page-grid{grid-template-columns:1fr}.method-note{display:block}.method-note strong{display:block;margin-bottom:8px}}
.page-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:32px;align-items:end;padding-top:62px;padding-bottom:48px}.page-hero h1{font-size:clamp(48px,7vw,82px);line-height:.94;letter-spacing:-.08em;margin:0}.page-hero h1 em{font-family:var(--serif);font-weight:400;color:#55765e}.page-hero p:not(.eyebrow){max-width:640px;color:var(--muted);line-height:1.65}.page-hero-note{background:#e7efdf;padding:22px;display:grid;gap:7px;border:1px solid #d4dfcf}.page-hero-note span,.page-hero-note small{font:10px var(--mono);color:var(--green)}.page-hero-note strong{font-size:22px;color:var(--green)}.home-live{display:grid;grid-template-columns:1fr 1.6fr;gap:25px;background:#eef3eb;padding-top:28px;padding-bottom:28px;align-items:center}.home-live h2{font-size:30px;letter-spacing:-.06em;margin:0 0 8px}.home-lead{font-size:12px;color:var(--muted);margin:0;max-width:430px}.home-live-strip{margin:0;border:0;padding:0;background:transparent}.home-index{padding-top:75px}.home-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.home-page-card{display:flex;flex-direction:column;min-height:210px;background:#e7efdf;border:1px solid #d2dfce;padding:22px;transition:transform .2s,box-shadow .2s}.home-page-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #12271a18}.home-page-card-wide{grid-column:span 2;background:#173c2e;color:var(--lime)}.home-page-card-dark{background:#244c3b;color:#eaf2df}.home-page-card span{font:10px var(--mono);color:var(--green)}.home-page-card-wide span,.home-page-card-dark span{color:#b8c99e}.home-page-card h3{font-size:24px;letter-spacing:-.06em;margin:22px 0 8px}.home-page-card p{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 18px}.home-page-card-wide p,.home-page-card-dark p{color:#c5d6c1}.home-page-card b{margin-top:auto;font:10px var(--mono);color:var(--green)}.home-page-card-wide b,.home-page-card-dark b{color:var(--lime)}.home-callout{display:flex;justify-content:space-between;align-items:center;gap:25px;background:#f0c766;padding-top:32px;padding-bottom:32px}.home-callout h2{font-size:26px;letter-spacing:-.06em;margin:0 0 8px;color:var(--green)}.home-callout p{margin:0;color:#5c5a3b;font-size:12px}.home-source{display:grid;grid-template-columns:1.5fr .8fr;gap:25px;align-items:center}.home-source h2{font-size:40px;letter-spacing:-.07em;line-height:.98;margin:0 0 15px}.home-source-copy>p:not(.eyebrow){max-width:600px;color:var(--muted);line-height:1.65}.source-proof{background:#e7efdf;padding:24px;display:grid;gap:8px}.source-proof span,.source-proof small{font:10px var(--mono);color:var(--muted)}.source-proof strong{font-size:24px;color:var(--green)}.source-proof a{font:10px var(--mono);color:var(--green);text-decoration:underline}.transport-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.transport-grid article,.method-grid article{background:var(--paper);border:1px solid #dce4d8;padding:20px;min-height:180px}.transport-grid article>span,.method-grid article>span{font:10px var(--mono);color:var(--coral)}.transport-grid h3,.method-grid h3{font-size:21px;color:var(--green);margin:20px 0 8px}.transport-grid p,.method-grid p{font-size:12px;line-height:1.55;color:var(--muted)}.transport-grid a{font:10px var(--mono);color:var(--green);text-decoration:underline}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.method-grid article{min-height:205px}.method-grid div{display:grid;gap:5px;border-top:1px solid #dbe4d8;padding:9px 0}.method-grid div b{font:10px var(--mono);color:var(--green)}.method-grid div span{font-size:11px;color:var(--muted)}.source-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.source-list a{display:grid;gap:5px;background:#e7efdf;padding:17px;border:1px solid #d2dfce}.source-list b{font-size:15px;color:var(--green)}.source-list span{font-size:11px;color:var(--muted);line-height:1.4}.activity-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:end;flex-wrap:wrap}.activity-toolbar .filter-row{margin-bottom:0}.activity-trip-controls{display:flex;gap:14px;align-items:end}.activity-trip-controls label{font:10px var(--mono);color:var(--green);display:grid;gap:5px}.activity-trip-controls select{border:1px solid var(--line);padding:9px;color:var(--green);background:var(--paper)}.activity-trip-controls a,.price-status{font:10px var(--mono);color:var(--green);text-decoration:underline}.video-disclaimer{margin-top:14px;padding:12px;background:#234a39;color:#c7d8c0;font:10px var(--mono)}.official-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.lodging-rules{background:#eef3eb}.guide-money-section{background:#e7efdf}.price-status{display:block;text-decoration:none;margin-bottom:10px}.source-list a:hover{transform:translateY(-2px)}@media(max-width:900px){.page-hero,.home-live,.home-source{grid-template-columns:1fr}.home-page-grid,.source-list{grid-template-columns:1fr 1fr}.home-page-card-wide{grid-column:auto}.transport-grid,.method-grid,.official-mini-grid{grid-template-columns:1fr 1fr}.activity-toolbar{display:grid}.activity-trip-controls{justify-content:space-between}}@media(max-width:560px){.page-hero{padding-top:35px}.home-page-grid,.source-list,.transport-grid,.method-grid,.official-mini-grid{grid-template-columns:1fr}.home-callout{display:block}.home-callout .button{display:inline-block;margin-top:15px}}
 .map-only-section{background:var(--green);padding:0 0 72px}.map-panel-large{max-width:1240px;margin:0 auto}.map-panel-large .map-canvas{height:min(70vh,720px)}.official-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.program-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.official-intro{background:#f0f4ed;max-width:none;padding-left:max(28px,calc((100% - 1240px)/2));padding-right:max(28px,calc((100% - 1240px)/2))}.official-program-section{background:#e7efdf}.official-program-section .section-shell{max-width:1240px}.source-closure{background:#f0f4ed;max-width:none;padding-left:max(28px,calc((100% - 1240px)/2));padding-right:max(28px,calc((100% - 1240px)/2))}@media(max-width:1050px){.official-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.official-grid,.program-grid{grid-template-columns:1fr}.map-only-section{padding-bottom:35px}.map-panel-large .map-canvas{height:560px}}
.activity-search-bar{margin:0 0 16px}
.search-input-wrapper{position:relative;display:flex;align-items:center;background:var(--paper);border:1px solid #cfd9cc;border-radius:3px;transition:border-color .2s,box-shadow .2s}
.search-input-wrapper:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #173c2e1f}
.search-icon{padding-left:14px;font-size:14px;opacity:.6;pointer-events:none}
#activity-search{flex:1;border:0;background:transparent;padding:12px 14px;font-family:var(--sans);font-size:13px;color:var(--green);outline:none}
#activity-search::placeholder{color:var(--muted);font-size:12px}
#activity-search-clear{border:0;background:transparent;padding:0 14px;font-size:20px;line-height:1;color:var(--muted);cursor:pointer}
#activity-search-clear:hover{color:var(--coral)}
.region-filter-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:10px 0 22px}
.filter-label{font:10px var(--mono);color:var(--green);text-transform:uppercase;letter-spacing:.05em;margin-right:4px}
.region-button{border:1px solid #cfd9cc;background:var(--paper);padding:7px 11px;color:var(--green);font:10px var(--mono);cursor:pointer;border-radius:2px;transition:background .15s,color .15s,border-color .15s}
.region-button span{opacity:.65;margin-left:3px;font-size:9px}
.region-button:hover{background:#eef3eb;border-color:var(--green)}
.region-button.active{background:var(--green);border-color:var(--green);color:var(--lime)}
.region-button.active span{opacity:.9}
.activity-badges{display:flex;gap:6px;flex-wrap:wrap;max-width:72%}
.activity-region-tag{font:9px var(--mono);background:#173c2ee8;color:var(--yellow);padding:4px 7px;border-radius:2px;text-transform:uppercase;letter-spacing:.04em}
.activity-card-status{background:#edf5ea;border-left:3px solid var(--orange);padding:8px 10px;margin:8px 0;display:grid;gap:2px}
.activity-card-status span{font:11px var(--mono);color:var(--green)}
.activity-card-status small{font:10px var(--mono);color:var(--coral)}
.activity-empty-state{grid-column:1 / -1;text-align:center;padding:50px 20px;background:var(--paper);border:1px dashed #cfd9cc;border-radius:4px}
.activity-empty-icon{font-size:38px;display:block;margin-bottom:12px}
.activity-empty-state h3{font:700 22px var(--sans);color:var(--green);margin:0 0 8px}
.activity-empty-state p{font-size:13px;color:var(--muted);max-width:480px;margin:0 auto 16px}
.detail-pro-tip{background:#f5f9f0;border-left:4px solid var(--green);border-radius:0 4px 4px 0;padding:14px 16px;margin:10px 0 20px}
.detail-pro-tip p{font-size:13px;line-height:1.6;color:#24412c;margin:0}
.detail-calc-box{background:#f1f6ed;border:1px solid #d4dfd0;padding:18px;border-radius:3px;margin-bottom:18px}
.calc-intro{font-size:12px;color:var(--muted);line-height:1.45;margin:4px 0 12px}
.calc-control{display:grid;gap:6px;margin-bottom:14px}
.calc-control label{font:10px var(--mono);color:var(--green);text-transform:uppercase}
.calc-control select{border:1px solid #c8d5c4;background:var(--paper);padding:9px 12px;font:12px var(--mono);color:var(--green);border-radius:2px}
.calc-breakdown{display:grid;gap:8px;border-top:1px solid #d8e3d4;border-bottom:1px solid #d8e3d4;padding:12px 0;margin-bottom:14px}
.calc-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;color:var(--muted)}
.calc-row strong{font-family:var(--mono);color:var(--green)}
.calc-row small{font-size:10px;color:var(--muted)}
.calc-row.calc-highlight{color:var(--green);font-weight:600;padding-top:4px}
.calc-row.calc-highlight strong{color:var(--coral);font-size:14px}
.modal-action-btn{width:100%;text-align:center;padding:12px;cursor:pointer}
.detail-links-box{background:#eef3eb;border:1px solid #dce4d8;padding:16px;margin-bottom:16px;display:grid;gap:8px}
.detail-full-link{display:block;font:10px var(--mono);color:var(--coral);text-decoration:underline;margin-top:4px}
.flight-metasearch{margin-top:24px;background:#e2ece4;border:1px solid #c9d8cb;padding:18px;border-radius:3px}
.flight-search-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0 16px}
.flight-field{display:grid;gap:5px}
.flight-field label{font:10px var(--mono);color:var(--green);text-transform:uppercase}
.flight-field select,.flight-field input{border:1px solid #b7c7b8;background:var(--paper);padding:8px 10px;font:11px var(--mono);color:var(--green);border-radius:2px}
.flight-search-actions{display:flex;gap:8px;flex-wrap:wrap}
.flight-search-actions .button{padding:10px 14px;font-size:11px}
.hotel-search-btns{display:flex;gap:6px;flex-wrap:wrap}
.hotel-search-btns .button{padding:10px 12px;font-size:11px;white-space:nowrap}
.map-topline-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.map-mode-gps,.text-button-gps{color:var(--yellow)!important;font-weight:600}
.text-button-gps{margin-left:14px;cursor:pointer}
.stage-actions-box{display:grid;gap:8px;margin:14px 0}
.stage-gmaps-full{display:block;text-align:center;padding:10px;font:11px var(--mono);color:var(--green);border-color:var(--green)}
.stage-gmaps-full:hover{background:var(--green);color:var(--lime)}
.mini-lodging-links{display:flex;gap:8px}
.mini-lodging-links a{color:var(--green);font:10px var(--mono);text-decoration:underline}
.weather-chip{cursor:pointer;transition:transform .15s}
.weather-chip:hover{transform:translateY(-2px)}
.detail-weather-box{background:#e7f0e4;border:1px solid #ccdcce;border-radius:3px;padding:14px;margin:14px 0}
.weather-box-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.live-status-pill{background:#173c2e;color:var(--lime);font:9px var(--mono);padding:2px 7px;border-radius:999px;letter-spacing:.04em}
.weather-box-body{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.weather-live-icon{font-size:32px;line-height:1}
.weather-live-temp{font:700 18px var(--sans);color:var(--green)}
.weather-live-temp b{font-size:13px;font-weight:500;color:#436149;margin-left:6px}
.weather-box-body small{display:block;font:10px var(--mono);color:var(--muted);margin-top:2px}
.weather-forecast-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;border-top:1px solid #cbdcc9;padding-top:10px}
.stage-weather-day{text-align:center;display:grid;gap:2px}
.stage-weather-day span{font:9px var(--mono);color:var(--green);text-transform:uppercase}
.stage-weather-day b{font-size:16px;line-height:1.2}
.stage-weather-day strong{font:11px var(--mono);color:var(--green)}
.stage-weather-day strong small{font-size:9px;color:var(--muted)}
.stage-weather-day small{font:8px var(--mono);color:#4e775a}

/* Moteur de vols dynamique & Résultats en direct */
.flight-results-section{margin-top:40px;padding-top:20px}
.flight-results-controls{display:flex;align-items:center;gap:10px}
.flight-results-controls label{font:10px var(--mono);color:var(--muted);text-transform:uppercase}
.flight-results-controls select{height:38px;padding:0 12px;border:1px solid var(--line);background:var(--paper);color:var(--green);font:12px var(--sans);border-radius:2px}
.flight-results-summary-strip{background:#e8efe5;border:1px solid #d4dfd1;padding:14px 18px;border-radius:3px;margin:18px 0 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font:12px var(--mono);color:var(--green)}
.flight-summary-route{display:flex;align-items:center;gap:8px;font-weight:600}
.flight-summary-route span{color:var(--coral)}
.flight-offers-grid{display:flex;flex-direction:column;gap:16px}
.flight-offer-card{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:22px;display:grid;grid-template-columns:1fr 250px;gap:24px;transition:transform .2s,box-shadow .2s,border-color .2s}
.flight-offer-card:hover{border-color:#a4bea1;transform:translateY(-2px);box-shadow:0 8px 24px rgba(18,39,26,.07)}
.flight-offer-main{display:flex;flex-direction:column;gap:14px}
.flight-offer-header{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.flight-airline-pill{display:inline-flex;align-items:center;gap:8px;font:13px var(--sans);color:var(--green);font-weight:700}
.flight-airline-logo{font-size:20px;line-height:1}
.flight-badge-tag{font:9px var(--mono);padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.badge-recommended{background:var(--green);color:var(--lime)}
.badge-fastest{background:var(--coral);color:#fff}
.badge-cheapest{background:#0ea5e9;color:#fff}
.badge-comfort{background:#8b5cf6;color:#fff}
.flight-legs{display:flex;flex-direction:column;gap:10px}
.flight-leg{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:12px 16px}
.flight-leg-type{font:9px var(--mono);color:var(--coral);text-transform:uppercase;font-weight:600}
.flight-leg-route{display:flex;align-items:center;gap:14px}
.flight-point{display:flex;flex-direction:column}
.flight-time{font:700 18px var(--sans);color:var(--green);line-height:1}
.flight-iata{font:10px var(--mono);color:var(--muted);margin-top:2px}
.flight-arrow-box{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 8px}
.flight-duration-tag{font:9px var(--mono);color:var(--muted)}
.flight-arrow-line{width:60px;height:1px;background:#b7c7b5;position:relative}
.flight-arrow-line::after{content:'';position:absolute;right:-4px;top:-4px;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:5px solid #8ba389}
.flight-stop-label{font:9px var(--mono);color:var(--coral);font-weight:600}
.flight-leg-meta{text-align:right;font:10px var(--mono);color:var(--green)}
.flight-leg-meta small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
.flight-offer-side{display:flex;flex-direction:column;justify-content:space-between;border-left:1px solid var(--line);padding-left:22px;text-align:right}
.flight-price-box{display:flex;flex-direction:column;gap:3px}
.flight-price-box span{font:10px var(--mono);color:var(--muted);text-transform:uppercase}
.flight-per-person{font:700 26px var(--sans);color:var(--green);line-height:1}
.flight-total-pax{font:12px var(--mono);color:var(--coral);font-weight:600;margin-top:2px}
.flight-baggage-note{font:9px var(--mono);color:#526756;margin:6px 0 12px;background:#eef4ea;padding:5px 8px;border-radius:2px;text-align:left}
.flight-card-actions{display:flex;flex-direction:column;gap:7px}
.flight-card-actions .button{width:100%;text-align:center;padding:9px 8px;font-size:11px}
.flight-detail-btn{font:10px var(--mono);color:var(--green);text-decoration:underline;background:none;border:none;cursor:pointer;margin-top:6px;padding:4px}
.flight-detail-btn:hover{color:var(--coral)}

/* Séjour Hébergements & Recalcul */
.stay-summary-bar{background:#e8efe5;border:1px solid #d4dfd1;border-radius:3px;padding:12px 18px;margin:16px 0;font:11px var(--mono);color:var(--green);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.stay-summary-bar strong{color:var(--green)}
.lodging-card-pricing{display:flex;flex-direction:column;gap:3px;margin:10px 0;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lodging-nightly-rate{font:12px var(--mono);color:var(--muted)}
.lodging-total-price{font:700 15px var(--sans);color:var(--green)}
.lodging-stay-tag{font:10px var(--mono);color:var(--coral);font-weight:600}

/* Dates & Parcours */
.stage-calendar-date{display:inline-block;font:10px var(--mono);color:var(--coral);background:#fdf2ed;padding:2px 7px;border-radius:2px;margin-right:6px;font-weight:600}
.itinerary-date-badge{font:9px var(--mono);color:#436149;background:#e4eee0;padding:2px 6px;border-radius:2px;margin-left:6px}
.plan-date-summary{font:11px var(--mono);color:var(--green);background:#e8efe4;border:1px solid #d4dfd1;padding:10px 16px;border-radius:3px;margin-bottom:16px}

@media(max-width:850px){
  .flight-offer-card{grid-template-columns:1fr;gap:16px}
  .flight-offer-side{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:16px;text-align:left}
  .flight-leg{grid-template-columns:1fr;gap:8px}
  .flight-leg-route{flex-wrap:wrap}
  .flight-leg-meta{text-align:left}
}

/* Direction visuelle 2027 — carnet tropical, lecture directe */
:root{--ink:#08251f;--muted:#60766c;--paper:#f7f4ec;--panel:#fffdf8;--line:#d9e0d4;--green:#0b382c;--lime:#dff58e;--yellow:#ffc95d;--orange:#f2764d;--blue:#b9e2df;--coral:#f2764d}
body{background:radial-gradient(circle at 84% 0%,#e6f0d4 0 16%,transparent 38%),var(--paper);color:var(--ink);font-size:15px;overflow-x:hidden}
main{overflow:hidden}
.site-header{position:sticky;top:0;z-index:30;max-width:none;padding-left:max(28px,calc((100% - 1280px)/2));padding-right:max(28px,calc((100% - 1280px)/2));height:76px;background:#f7f4eced;backdrop-filter:blur(16px);border-bottom:1px solid #d7dfd4}
.brand-mark{width:38px;height:38px;background:var(--green);color:var(--yellow);box-shadow:0 4px 0 #0b382c20}
.main-nav{gap:8px;font-size:13px;align-items:center}
.main-nav{display:flex}
.main-nav a{padding:9px 11px;border-radius:999px;color:#547066;transition:background .2s,color .2s,transform .2s}
.main-nav a:hover,.main-nav a.active{background:#e3eedb;color:var(--green);transform:translateY(-1px)}
.main-nav a:nth-child(2),.main-nav a:nth-child(5),.main-nav a:nth-child(7),.main-nav a:nth-child(8){display:none}
.header-cta{background:var(--green);border-color:var(--green);color:var(--lime);padding:11px 16px;font-size:13px;box-shadow:0 8px 18px #0b382c20}
.header-cta:hover{background:#13523f}
.button{border-radius:13px;padding:14px 18px;font-size:13px;transition:transform .2s,box-shadow .2s,background .2s}
.button:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0b382c1e}
.button-primary,.btn-primary{background:var(--orange);color:#fff;box-shadow:0 10px 24px #f2764d38;border:1px solid transparent}
.button-primary:hover,.btn-primary:hover{background:#d85e38}
.button-ghost,.btn-secondary{border:1px solid #ffffff80;color:#fff;background:#ffffff12}
.button-ghost:hover,.btn-secondary:hover{background:#ffffff26;border-color:#fff;color:#fff}
.button-dark{background:var(--green);border-radius:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:13px;padding:14px 20px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0b382c1e}
.hero h1{font-size:clamp(56px,7.5vw,104px);letter-spacing:-.09em}
.hero h1 em{color:var(--yellow)}
.eyebrow{font-size:12px;letter-spacing:.12em}
.home-hero{max-width:none;min-height:calc(100vh - 76px);padding-top:78px;padding-bottom:80px;padding-left:max(28px,calc((100% - 1280px)/2));padding-right:max(28px,calc((100% - 1280px)/2));grid-template-columns:.83fr 1.17fr;gap:72px;background:var(--green);color:#f4f7ee;position:relative}
.home-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 12% 24%,#39745b70,transparent 32%),linear-gradient(125deg,#0b382c 12%,#0b382c 46%,#0a3027 100%);z-index:0}
.home-hero>*{position:relative;z-index:1}
.home-hero .hero-copy{padding-top:12px}
.home-hero .eyebrow{color:#bed0af}
.home-hero .live-dot{background:var(--yellow);box-shadow:0 0 0 4px #ffc95d2b}
.home-hero .hero-intro{max-width:470px;color:#cad9c8;font-size:17px;line-height:1.55}
.home-hero .hero-visual{height:590px;border-radius:26px 26px 26px 86px;background-image:linear-gradient(180deg,#09291c12 20%,#08251fd6 100%),url('assets/costa-rica-hero-illustration-v2.webp');box-shadow:22px 24px 0 #ffc95d25,0 30px 90px #051b1459;transform:rotate(1.2deg)}
.home-hero .hero-visual:before{inset:14px;border:1px solid #ffffff80;border-radius:18px 18px 18px 65px}
.home-hero .hero-visual:after{content:'PACIFIQUE  ·  VOLCAN  ·  FORÊT';right:26px;top:26px;color:#fff;font-size:10px}
.home-hero .hero-stamp{right:7%;top:9%;background:var(--yellow);color:var(--green);box-shadow:0 12px 0 #0b382c50}
.home-hero .hero-caption{left:30px;right:30px;bottom:26px;transform:none;color:#fff}
.home-hero .hero-caption strong{color:#fff;font-size:14px}
.quick-start{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:560px;margin-top:28px}
.quick-start a{display:grid;gap:5px;padding:12px 13px;background:#ffffff12;border:1px solid #ffffff30;border-radius:12px;transition:background .2s,transform .2s,border-color .2s}
.quick-start a:hover{background:#ffffff20;border-color:#ffffff70;transform:translateY(-3px)}
.quick-start span{font:10px var(--mono);color:var(--yellow)}
.quick-start strong{font-size:13px;color:#fff}
.quick-start small{font-size:11px;color:#b8cbbb;line-height:1.2}
.home-hero .hero-notes{border-color:#ffffff2c;color:#b9c9b9;margin-top:30px}
.home-hero .hero-notes b{color:var(--yellow)}
.home-live{max-width:1280px;margin:-28px auto 0;position:relative;z-index:4;border:1px solid #c5d7c8;border-radius:18px;background:#e1f0df;box-shadow:0 18px 50px #0b382c18;padding-top:22px;padding-bottom:22px}
.home-live .eyebrow{color:#4e7160}
.home-live h2{font-size:32px}
.home-lead{font-size:13px}
.home-live-strip{gap:10px}
.home-live-strip .live-strip-label{background:var(--green);color:var(--lime);border-radius:999px;padding:9px 12px}
.home-index{padding-top:105px}
.home-index .section-heading{margin-bottom:38px}
.home-index .section-heading h2{font-size:clamp(38px,5vw,64px)}
.home-page-grid{gap:16px}
.home-start-grid{grid-template-columns:1.2fr 1fr 1fr}
.home-page-card{min-height:260px;border:0;border-radius:18px;padding:25px;background:#e8f0e1;box-shadow:0 8px 0 #dce8d9;transition:transform .22s,box-shadow .22s}
.home-page-card:hover{transform:translateY(-6px);box-shadow:0 14px 0 #d3e3d2,0 24px 36px #0b382c14}
.home-page-card-wide{background:linear-gradient(135deg,#0b382c,#14513d);color:#f4f7ee}
.home-page-card-dark{background:linear-gradient(135deg,#f2764d,#d95d39);color:#fff}
.home-page-card span,.home-page-card-wide span,.home-page-card-dark span{font-size:11px;letter-spacing:.12em;color:var(--orange)}
.home-page-card-wide span{color:var(--yellow)}
.home-page-card-dark span{color:#ffe0a2}
.home-page-card h3{font-size:30px;line-height:1.02;margin:28px 0 10px}
.home-page-card p{font-size:14px;line-height:1.55}
.home-page-card b{font-size:11px}
.home-quick-links{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px;border-top:1px solid var(--line);padding-top:20px}
.home-quick-links a{display:grid;gap:4px;padding:14px 0;color:var(--green);transition:padding-left .2s}
.home-quick-links a:hover{padding-left:8px}
.home-quick-links span{font-size:13px;font-weight:700}
.home-quick-links b{font:11px var(--mono);color:var(--muted)}
.illustration-feature{gap:54px;padding-top:110px;padding-bottom:110px}
.illustration-feature-media{border-radius:24px;box-shadow:18px 18px 0 var(--yellow);transform:rotate(-1deg)}
.illustration-feature-copy h2{font-size:clamp(44px,6vw,74px)}
.illustration-facts strong{color:var(--orange)}
.home-callout{border-radius:22px;margin-bottom:20px;background:var(--yellow);padding-top:38px;padding-bottom:38px;box-shadow:0 12px 0 #e3b64e}
.home-callout h2{font-size:clamp(24px,3vw,38px)}
.home-callout .button-dark{background:var(--green);color:var(--lime)}
.home-source{padding-top:95px;padding-bottom:110px}
.source-proof{border-radius:18px;background:var(--green);color:var(--lime);padding:27px;box-shadow:12px 12px 0 #cbdcc7}
.source-proof strong{color:#fff;font-size:28px}
.page-hero{max-width:none;min-height:500px;padding-top:68px;padding-bottom:72px;padding-left:max(28px,calc((100% - 1280px)/2));padding-right:max(28px,calc((100% - 1280px)/2));display:grid;grid-template-columns:1.08fr .92fr;gap:52px;align-items:center;background:var(--green);color:#f4f7ee;position:relative;overflow:hidden}
.page-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 14% 22%,#39745b70,transparent 34%),linear-gradient(125deg,#0b382c 12%,#0b382c 46%,#0a3027 100%);z-index:0}
.page-hero>*{position:relative;z-index:1}
.page-hero .hero-copy{padding-top:8px}
.page-hero .eyebrow{color:#bed0af;font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.page-hero .live-dot{background:var(--yellow);box-shadow:0 0 0 4px #ffc95d2b}
.page-hero h1{font-size:clamp(46px,6vw,76px);line-height:.95;letter-spacing:-.075em;color:#fff;margin:0 0 22px;font-weight:700}
.page-hero h1 em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.08em;color:var(--yellow)}
.page-hero .hero-intro{max-width:520px;color:#cad9c8;font-size:16px;line-height:1.6;margin:0 0 28px}
.page-hero .hero-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.page-hero .hero-notes{border-top:1px solid #ffffff24;margin-top:34px;padding-top:18px;display:flex;gap:22px;flex-wrap:wrap;font:11px var(--mono);color:#b9c9b9}
.page-hero .hero-notes span{display:inline-flex;align-items:baseline;gap:6px}
.page-hero .hero-notes b{color:var(--yellow);font-size:13px}
.page-hero .hero-visual{height:460px;border-radius:24px 24px 24px 72px;background-size:cover;background-position:center;box-shadow:18px 20px 0 #ffc95d20,0 28px 80px #051b1450;position:relative;overflow:hidden;transform:rotate(1deg);transition:transform .4s ease,box-shadow .4s ease}
.page-hero .hero-visual:hover{transform:rotate(0deg) scale(1.01);box-shadow:20px 22px 0 #ffc95d28,0 32px 90px #051b1466}
.page-hero .hero-visual:before{content:'';position:absolute;inset:12px;border:1px solid #ffffff70;border-radius:16px 16px 16px 56px;pointer-events:none;z-index:1}
.page-hero .hero-stamp{position:absolute;right:6%;top:8%;width:98px;height:98px;background:var(--yellow);border-radius:50%;transform:rotate(12deg);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green);line-height:.82;box-shadow:0 10px 0 #0b382c50;z-index:2}
.page-hero .hero-stamp span{font:italic 18px var(--serif)}
.page-hero .hero-stamp strong{font-size:15px;letter-spacing:-.06em;text-transform:uppercase}
.page-hero .hero-stamp small{font:8px var(--mono);margin-top:7px;letter-spacing:.05em}
.planner-layout{align-items:start}
.planner-layout>.map-panel,.planner-layout>.itinerary-panel{align-self:start}
.page-hero .hero-caption{position:absolute;left:24px;right:24px;bottom:22px;padding-top:12px;border-top:1px solid #ffffff55;color:#fff;font:10px var(--mono);display:flex;flex-direction:column;gap:3px;z-index:2;text-shadow:0 2px 10px rgba(7,29,18,0.8)}
.page-hero .hero-caption strong{font:13px var(--sans);color:#fff}
.page-hero-note{border:1px solid #ffffff24;border-radius:18px;background:#144a39d9;backdrop-filter:blur(8px);color:var(--lime);padding:24px;box-shadow:0 14px 40px rgba(0,0,0,0.25);display:flex;flex-direction:column;gap:8px}
.page-hero-note span{font:10px var(--mono);color:#c5d9b5;text-transform:uppercase;letter-spacing:.05em}
.page-hero-note strong{color:#fff;font-size:24px;font-family:var(--sans);letter-spacing:-.03em}
.page-hero-note small{color:#cad9c8;font-size:12px;line-height:1.5}
.section-heading h2{font-size:clamp(38px,5vw,62px)}
.route-grid,.official-grid,.program-grid,.stage-grid,.activity-grid,.lodging-grid{gap:16px}
.route-card,.media-card,.home-page-card{border-radius:18px}
.route-card{min-height:350px;box-shadow:0 9px 0 #dce8d9}
.route-card:nth-child(1) .route-card-bg{background-image:url('assets/visitcostarica/destinations/central-valley-1.webp')}
.route-card:nth-child(2) .route-card-bg{background-image:url('assets/visitcostarica/destinations/northern-plains-1.webp')}
.route-card:nth-child(3) .route-card-bg{background-image:url('assets/visitcostarica/destinations/central-pacific-1.webp')}
.route-card:before{background:linear-gradient(180deg,#071d1280 0%,#061a12eb 100%)}
.official-intro,.official-program-section,.source-closure,.stage-next{background:transparent}
.official-intro{padding-top:92px}
.official-card,.stage-card,.activity-card,.lodging-card{border-radius:16px;overflow:hidden;box-shadow:0 7px 0 #dce8d9;transition:transform .2s,box-shadow .2s}
.official-card:hover,.stage-card:hover,.activity-card:hover,.lodging-card:hover{transform:translateY(-4px);box-shadow:0 12px 0 #d2e2d1,0 20px 32px #0b382c12}
.filter-button,.region-button{border-radius:999px;padding:10px 14px;background:var(--panel)}
.filter-button.active,.region-button.active{background:var(--green);color:var(--lime);border-color:var(--green)}
.trip-bar,.flight-metasearch,.stay-summary-bar{border-radius:16px;box-shadow:0 8px 0 #dce8d9}
.planner-section{background:linear-gradient(135deg,#08251f,#0e4434);padding-top:92px}
.map-panel,.itinerary-panel{border-radius:18px;overflow:hidden;background:#123f30;border-color:#4c765b}
.map-panel{box-shadow:0 12px 0 #061d16}
.itinerary-panel{box-shadow:0 12px 0 #061d16}
.map-canvas{border-radius:12px;background:linear-gradient(135deg,#a9d6c4,#f0edb6 49%,#add3c4)}
.map-topline-actions{gap:6px}
.map-mode{padding:8px 11px;border-radius:999px;background:#ffffff12}
.map-mode:hover{background:#ffffff25}
.site-footer{max-width:1280px;padding-top:48px;padding-bottom:52px}
.site-footer .brand-mark{background:var(--orange);color:#fff}
.walk-page-link{display:block;margin-top:12px;color:var(--green);font:10px var(--mono);text-decoration:underline;text-underline-offset:4px}
.fauna-open{display:inline-block;text-decoration:underline;text-underline-offset:4px}
.detail-page-hero .fauna-detail-credit{display:inline-block;margin-top:16px;color:#e3ebdf;font:10px var(--mono);text-decoration:underline;text-underline-offset:4px}
.flight-details-inline{margin-top:8px;border-top:1px solid var(--line);padding-top:8px;color:var(--green);font:10px var(--mono)}
.flight-details-inline summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.flight-details-inline p{margin:8px 0 0;color:var(--muted);font:11px var(--sans);line-height:1.45}
@media(max-width:980px){.home-hero,.page-hero{grid-template-columns:1fr;min-height:0;padding-top:58px;gap:36px}.home-hero .hero-copy,.page-hero .hero-copy{max-width:720px}.home-hero .hero-visual,.page-hero .hero-visual{height:420px}.home-start-grid{grid-template-columns:1fr 1fr}.home-start-grid .home-page-card-wide{grid-column:span 2}.home-quick-links{grid-template-columns:repeat(2,1fr)}.home-live{margin:18px 28px 0}.main-nav{gap:3px}.main-nav a{padding:8px 8px;font-size:12px}}
@media(max-width:850px){.main-nav{display:none}.site-header{justify-content:space-between}}
@media(max-width:620px){.section-shell{padding-left:18px;padding-right:18px}.site-header{height:68px;padding-left:18px;padding-right:18px}.brand-mark{width:34px;height:34px}.main-nav{display:none !important}.header-cta{padding:9px 11px;font-size:11px}.home-hero,.page-hero{padding:44px 18px 56px;display:grid;grid-template-columns:1fr;gap:28px}.home-hero .hero-visual,.page-hero .hero-visual{height:340px;border-radius:18px 18px 18px 50px}.home-hero .hero-visual:before,.page-hero .hero-visual:before{inset:10px;border-radius:12px 12px 12px 40px}.hero-actions,.page-hero .hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button,.page-hero .hero-actions .button{text-align:center}.quick-start{grid-template-columns:1fr;max-width:none}.home-live{margin:12px 18px 0;padding:19px 17px;display:block}.home-live-strip{margin-top:18px}.home-index{padding-top:70px}.home-start-grid{grid-template-columns:1fr}.home-start-grid .home-page-card-wide{grid-column:auto}.home-page-card{min-height:220px}.home-quick-links{grid-template-columns:1fr}.illustration-feature{padding-top:70px;padding-bottom:80px}.illustration-feature-media{box-shadow:10px 10px 0 var(--yellow)}.home-callout{margin-left:18px;margin-right:18px}.page-hero h1{font-size:clamp(40px,11vw,56px)}.page-hero-note{margin-top:20px}.section-heading{display:block}.section-heading>p{margin-top:16px}.site-footer{display:grid;gap:18px;padding-top:34px;padding-bottom:38px}.site-footer .footer-meta{flex-wrap:wrap}}

/* Mobile pass: every dense tool becomes a vertical, thumb-friendly flow. */
@media(max-width:850px){
  html,body{overflow-x:hidden}
  .site-header{height:68px;padding-left:18px;padding-right:18px}
  .brand{min-width:0}.brand strong{font-size:11px}.brand small{font-size:9px}
  .header-cta{padding:10px 13px;white-space:nowrap}
  .section-shell{padding-left:18px;padding-right:18px}
  .page-hero{display:grid;grid-template-columns:1fr;padding-top:46px;padding-bottom:48px;gap:32px}
  .page-hero .hero-visual{height:360px}
  .page-hero h1{font-size:clamp(44px,12vw,64px);max-width:680px}
  .page-hero-note{margin-top:22px}
  .section-block{padding-top:54px;padding-bottom:68px}
  .section-heading{display:block;margin-bottom:24px}
  .section-heading h2{font-size:clamp(34px,8vw,42px)}
  .section-heading>p{margin-top:16px}

  .trip-bar{display:grid;grid-template-columns:1fr;align-items:stretch;gap:12px;padding:16px;margin-bottom:36px}
  .trip-field{min-width:0;width:100%}
  .trip-field input,.trip-field select{width:100%;min-height:44px;font-size:16px}
  .trip-bar .button{width:100%;min-height:48px}

  .planner-section{padding:56px 18px 68px}
  .planner-section .section-heading{display:block}
  .planner-state{display:flex;flex-wrap:wrap;gap:9px;line-height:1.4;margin-top:16px}
  .planner-state .text-button{margin-left:0;padding:8px 0}
  .planner-state .text-button-gps{width:100%;text-align:left}
  .planner-layout{display:flex;flex-direction:column;gap:14px}
  .map-panel,.itinerary-panel{width:100%;min-width:0}
  .map-panel{padding:10px}
  .map-topline{display:block;padding:5px 4px 10px}
  .map-topline-actions{display:grid;grid-template-columns:1fr;gap:6px;margin-top:8px}
  .map-mode{width:100%;min-height:44px;text-align:left;padding:10px 12px}
  .map-canvas{height:min(64vh,460px);min-height:360px}
  .map-foot{display:grid;grid-template-columns:1fr;gap:7px;padding:11px 4px 2px}
  .map-foot #map-status{margin-left:0}
  .map-place{font-size:9px;gap:4px}
  .map-place i{width:11px;height:11px;flex:0 0 11px}
  .map-place span{padding:3px 5px}
  .itinerary-panel{padding:18px 14px;min-height:0}
  .panel-header h3{font-size:20px}
  .selected-place{padding:16px 0 12px}
  .itinerary-panel .day-row{grid-template-columns:28px minmax(0,1fr) auto 18px;gap:7px;padding:12px 0}
  .itinerary-panel .day-row strong{font-size:12px}
  .itinerary-panel .day-row small{font-size:9px;line-height:1.35}
  .route-timeline{margin:14px 0}
  .add-place{width:100%;min-height:52px}
  .panel-total{margin-top:20px}

  .filter-row,.region-filter-row,.wildlife-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px;scrollbar-width:none}
  .filter-row::-webkit-scrollbar,.region-filter-row::-webkit-scrollbar,.wildlife-filters::-webkit-scrollbar{display:none}
  .filter-button,.region-button,.wildlife-filter{flex:0 0 auto;min-height:44px}
  .activity-search-bar input{font-size:16px}
  .activity-trip-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
  .activity-trip-controls a{grid-column:1/-1}

  .flight-card{padding:24px 18px;gap:24px}
  .flight-copy h2{font-size:clamp(34px,9vw,44px)}
  .flight-metasearch{padding:14px;margin-top:20px}
  .flight-search-form{grid-template-columns:1fr;gap:10px}
  .flight-field select,.flight-field input{width:100%;min-height:44px;font-size:16px}
  .flight-search-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .flight-search-actions .button{width:100%;min-height:46px;text-align:center}
  .flight-results-controls{display:grid;grid-template-columns:1fr;align-items:stretch}
  .flight-results-controls select{width:100%;min-height:44px}

  .lodging-filter-controls{grid-template-columns:1fr!important;gap:10px}
  .lodging-filter-controls select,.hotel-search input,.hotel-search select{width:100%;min-height:44px;font-size:16px}
  .hotel-search{display:grid!important;grid-template-columns:1fr!important;gap:10px;width:100%}
  .hotel-search input[type=search],.hotel-search .button{grid-column:auto!important}
  .hotel-search-btns{display:grid;grid-template-columns:1fr;gap:8px}
  .hotel-search-btns .button{width:100%;min-height:46px;text-align:center}
  .lodging-status-bar{display:grid;gap:8px;align-items:start}
  .stay-summary-bar{display:grid;gap:8px}

  .weather-forecast-row{grid-template-columns:repeat(2,1fr);gap:8px}
  .booking-links{grid-template-columns:1fr}
  .budget-grid{padding-top:36px}
  .budget-lines{padding-top:18px}
}

@media(max-width:430px){
  .site-header{padding-left:14px;padding-right:14px}
  .header-cta{padding:9px 10px;font-size:11px}
  .section-shell{padding-left:14px;padding-right:14px}
  .home-hero{padding-left:14px;padding-right:14px}
  .planner-section{padding-left:14px;padding-right:14px}
  .page-hero h1{font-size:clamp(43px,14vw,56px)}
  .map-canvas{height:360px;min-height:0}
  .map-canvas.real-mode .maplibregl-ctrl-bottom-right{right:8px;bottom:8px}
  .map-marker-label{display:none}
  .maplibre-marker:focus .map-marker-label,.maplibre-marker:focus-visible .map-marker-label{position:absolute;left:36px;bottom:0;z-index:2}
  .map-marker-pin{width:28px;height:28px}
  .map-place span{font-size:8px}
  .airport-switch{grid-template-columns:1fr}
  .activity-trip-controls{grid-template-columns:1fr}
  .activity-trip-controls a{grid-column:auto}
}

/* ==========================================================================
   ENCYCLOPÉDIE FAUNE : GALERIE MULTI-PHOTOS ULTRA-HD & LIGHTBOX 4K
   ========================================================================== */

/* Carte Faune avec badge multi-photos */
.fauna-card .fauna-image {
  position: relative;
  overflow: hidden;
  transition: transform .3s ease;
}
.fauna-card:hover .fauna-image {
  filter: brightness(1.05);
}
.fauna-photo-badge {
  background: rgba(18, 39, 26, 0.88);
  color: var(--lime, #d7eea2);
  font: 700 9px var(--mono);
  padding: 4px 8px;
  border-radius: 3px;
  letter-spacing: 0.03em;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(215, 238, 162, 0.3);
}

/* En-tête de la fiche animal */
.animal-page-container {
  background: var(--paper, #fbfcf9);
  padding-bottom: 60px;
}
.animal-header {
  padding-top: 36px;
  padding-bottom: 24px;
}
.animal-back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font: 11px var(--mono);
  color: var(--green, #173c2e);
  text-decoration: none;
  margin-bottom: 16px;
  transition: color .2s;
}
.animal-back-link:hover {
  color: var(--orange, #e05a36);
}
.animal-header-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 20px;
  border-bottom: 1px solid var(--line, #dce4d8);
  padding-bottom: 24px;
}
.animal-header-content h1 {
  font: 800 clamp(32px, 5vw, 54px) var(--sans);
  color: var(--green, #173c2e);
  letter-spacing: -0.03em;
  line-height: 1.05;
  margin: 8px 0;
}
.animal-tagline {
  font-size: 15px;
  color: #556858;
  max-width: 680px;
  line-height: 1.55;
  margin: 0;
}
.animal-header-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.animal-header-badges span {
  font: 10px var(--mono);
  padding: 6px 10px;
  border-radius: 3px;
  border: 1px solid var(--line, #dce4d8);
  background: #edf3e9;
  color: var(--green, #173c2e);
}
.animal-header-badges .badge-status {
  background: #173c2e;
  color: #d7eea2;
  border-color: #173c2e;
  font-weight: 700;
}

/* Showcase Galerie */
.animal-gallery-section {
  margin-top: 24px;
  margin-bottom: 40px;
}
.animal-gallery-showcase {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.gallery-viewer {
  position: relative;
  background: #09130c;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(18, 39, 26, 0.16);
  cursor: zoom-in;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 420px;
  max-height: 640px;
}
.gallery-viewer img {
  width: 100%;
  height: 100%;
  max-height: 640px;
  object-fit: contain;
  display: block;
  transition: transform 0.3s ease, opacity 0.25s ease;
}
.gallery-viewer:hover img {
  transform: scale(1.015);
}
.gallery-top-controls {
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  z-index: 5;
  pointer-events: none;
}
.gallery-top-controls > * {
  pointer-events: auto;
}
.photo-res-pill {
  background: rgba(18, 39, 26, 0.85);
  color: #d7eea2;
  font: 700 10px var(--mono);
  padding: 6px 12px;
  border-radius: 4px;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(215, 238, 162, 0.25);
}
.gallery-zoom-pill, .gallery-source-pill {
  background: rgba(255, 255, 255, 0.92);
  color: #173c2e;
  font: 700 11px var(--sans);
  padding: 6px 14px;
  border-radius: 4px;
  border: 1px solid rgba(18, 39, 26, 0.15);
  cursor: pointer;
  text-decoration: none;
  backdrop-filter: blur(6px);
  transition: all 0.2s ease;
}
.gallery-zoom-pill:hover, .gallery-source-pill:hover {
  background: #173c2e;
  color: #d7eea2;
}
.gallery-caption-strip {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(9, 19, 12, 0.88) 35%, rgba(9, 19, 12, 0.98) 100%);
  padding: 30px 20px 16px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 12px;
  z-index: 5;
}
.gallery-caption-strip strong {
  font: 600 14px var(--sans);
  color: #f0f4ee;
  letter-spacing: -0.01em;
}
.gallery-caption-strip span {
  font: 10px var(--mono);
  color: #a4bea1;
}

/* Bandeau des miniatures */
.gallery-thumbs-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.gallery-thumb-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 2px solid var(--line, #dce4d8);
  border-radius: 6px;
  padding: 6px;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s ease;
}
.gallery-thumb-card:hover {
  border-color: #8da38a;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(18, 39, 26, 0.08);
}
.gallery-thumb-card.active {
  border-color: #173c2e;
  background: #eaf1e7;
  box-shadow: 0 0 0 2px #173c2e;
}
.gallery-thumb-card img {
  width: 64px;
  height: 52px;
  object-fit: cover;
  border-radius: 3px;
  flex-shrink: 0;
}
.thumb-meta {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.thumb-meta span {
  font: 700 11px var(--mono);
  color: var(--green, #173c2e);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.thumb-meta small {
  font-size: 10px;
  color: #6d7f6f;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  margin-top: 2px;
}

/* Lightbox Plein Écran 4K */
.fauna-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
}
.fauna-lightbox.open {
  display: flex;
}
.lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 10, 6, 0.94);
  backdrop-filter: blur(10px);
}
.lightbox-content {
  position: relative;
  z-index: 2;
  width: 96vw;
  max-width: 1400px;
  height: 94vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.lightbox-close {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  font-size: 20px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.lightbox-close:hover {
  background: #e05a36;
  border-color: #e05a36;
  transform: rotate(90deg);
}
.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  font-size: 26px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  backdrop-filter: blur(4px);
}
.lightbox-nav:hover {
  background: #d7eea2;
  color: #173c2e;
}
.lightbox-prev { left: 16px; }
.lightbox-next { right: 16px; }
.lightbox-img-wrapper {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 10px 60px;
}
.lightbox-img-wrapper img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.8);
}
.lightbox-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 24px;
  background: rgba(18, 39, 26, 0.85);
  border-radius: 6px;
  backdrop-filter: blur(8px);
  color: #fff;
  gap: 16px;
  flex-wrap: wrap;
}
.lightbox-caption strong {
  display: block;
  font-size: 14px;
  color: #f3f7f1;
}
.lightbox-caption span {
  font: 11px var(--mono);
  color: #a4bea1;
}
.lightbox-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}
.lightbox-counter {
  font: 700 12px var(--mono);
  color: #d7eea2;
}

@media (max-width: 768px) {
  .gallery-thumbs-strip {
    grid-template-columns: repeat(2, 1fr);
  }
  .gallery-viewer {
    min-height: 280px;
  }
  .gallery-top-controls {
    flex-direction: column;
    align-items: flex-start;
  }
  .lightbox-nav {
    width: 38px;
    height: 38px;
    font-size: 18px;
  }
  .lightbox-prev { left: 6px; }
  .lightbox-next { right: 6px; }
  .lightbox-img-wrapper {
    padding: 10px 20px;
  }
}

/* =======================================================================
   FINAL POLISH · contrast, hierarchy and responsive itinerary
   ======================================================================= */
:root {
  --pr-ink: #123b2e;
  --pr-muted: #52675b;
  --pr-line: #d2ddd1;
  --pr-yellow: #f5c667;
}

html { overflow-x: hidden; }
body { color: var(--pr-ink); }
main, section, article, aside, .section-shell, .page-detail-columns, .page-detail-columns > * { min-width: 0; }
h1, h2, h3, h4, h5, p, a, button, label, span, small, strong, select, option { overflow-wrap: anywhere; }

.studio-hero .hero-intro,
.studio-hero .hero-notes p,
.studio-hero .hero-notes span,
.planner-section .section-heading > p { color: #e1ebe0 !important; }
.studio-hero .hero-notes { border-color: rgba(230, 240, 226, .28); }
.page-hero-note,
.activity-hero-banner .page-hero-note,
.stage-hero-banner .page-hero-note {
  background: #f8f4e7 !important;
  border: 1px solid #e1dcc8;
  color: #123b2e !important;
  box-shadow: 0 16px 34px rgba(9, 35, 25, .2);
}
.page-hero-note span,
.page-hero-note small,
.page-hero-note strong { color: #123b2e !important; }
.page-hero-note strong { line-height: 1.12; }

.trip-bar { align-items: start; background: #f4f5ed; border: 1px solid #d7e0d3; box-shadow: 0 8px 0 #dce6d8; }
.trip-field { min-width: 0; }
.trip-field > label { color: #4f6659 !important; font: 10px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.trip-field select, .trip-field input { color: #123b2e !important; background: #fff !important; border: 1px solid #becdbd !important; min-width: 0; }
.trip-field select:focus, .trip-field input:focus { outline: 3px solid rgba(235, 129, 91, .3); outline-offset: 1px; }
.trip-field-duration { min-width: 185px; }
.trip-duration-display { border-bottom-color: #b9cbb8; }
.trip-duration-display strong { color: #123b2e; }
.trip-duration-display span { color: #617669; }
.trip-duration-hint { display: block; margin-top: 6px; color: #617669; font: 10px var(--mono); line-height: 1.35; }

.stage-card-image { display: flex; text-decoration: none; }
.stage-card-info h3 a { color: #123b2e; text-decoration: none; }
.stage-card-info h3 a:hover { color: var(--orange); }
.stage-card-meta a { color: #123b2e; font: 10px var(--mono); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.stage-card-info p, .activity-info p, .lodging-info p { color: #53675a !important; }
.stage-card:focus-within { outline: 3px solid rgba(235, 129, 91, .42); outline-offset: 2px; }

.page-detail-columns { align-items: start; }
.page-detail-aside { align-self: start; color: #123b2e; border: 1px solid #d9e2d5; box-shadow: 0 12px 26px rgba(18, 39, 26, .06); }
.page-detail-aside { position: sticky; top: 92px; }
.page-detail-card { color: #123b2e; border-radius: 12px; box-shadow: 0 5px 0 #e3e9df; }
.page-detail-card h3, .page-detail-card h3 a { color: #123b2e !important; }
.page-detail-card p { color: #53675a !important; }
.page-detail-card strong { color: #123b2e !important; }
.page-detail-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.page-detail-card-actions .button { flex: 1 1 130px; min-width: 0; text-align: center; font-size: 11px; padding: 9px 10px; }
.page-detail-card-actions .button-dark, .page-detail-aside > .button-dark { background: #123b2e !important; color: #e5f2c5 !important; }
.detail-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--pr-line); }
.detail-pagination .button-ghost { color: #123b2e !important; border-color: #aec2ae !important; background: #fff !important; }
.detail-pagination .button-ghost:hover { background: #123b2e !important; color: #e5f2c5 !important; }
.detail-video-section { margin-top: 30px; padding-top: 25px; border-top: 1px solid var(--pr-line); }
.detail-tips { margin: 0; padding-left: 21px; color: #405748; }
.detail-tips li { margin-bottom: 9px; font-size: 13px; line-height: 1.55; }
.stage-highlight-tags { margin-bottom: 14px; }
.stage-highlight-tags span { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid #cad9c7; border-radius: 999px; background: #edf3e9; color: #123b2e; font-size: 12px; font-weight: 700; }
.stage-route-note { padding: 18px; background: #f4f6ef; border: 1px solid #d6e0d2; border-radius: 12px; }
.stage-route-note p { display: grid; gap: 10px; margin: 0 0 15px; color: #405748; font-size: 13px; line-height: 1.45; }
.stage-route-note p span { display: flex; align-items: flex-start; gap: 8px; }
.stage-route-note p svg { flex: 0 0 auto; color: var(--orange); margin-top: 2px; }
.stage-route-note strong { color: #123b2e; }
.stage-route-button { display: inline-flex; align-items: center; gap: 8px; }

.stage-activity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.stage-activity-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #d5e0d3; border-radius: 14px; box-shadow: 0 6px 0 #e6ece2; }
.stage-activity-card:hover { transform: translateY(-3px); box-shadow: 0 10px 0 #dce8d9, 0 17px 24px rgba(18, 39, 26, .08); }
.stage-activity-image { display: flex; height: 132px; align-items: flex-end; justify-content: space-between; gap: 8px; padding: 12px; color: #fff; background-position: center; background-size: cover; text-decoration: none; }
.stage-activity-image span, .stage-activity-image b { max-width: 72%; padding: 5px 7px; border-radius: 4px; background: rgba(13, 42, 32, .82); color: #f0f6e8; font: 10px var(--mono); text-transform: uppercase; }
.stage-activity-image b { max-width: 45%; color: var(--pr-yellow); text-align: right; }
.stage-activity-body { display: grid; gap: 8px; padding: 15px 15px 4px; }
.stage-activity-meta { display: flex; justify-content: space-between; gap: 8px; color: #607469; font: 10px var(--mono); text-transform: uppercase; }
.stage-activity-meta strong { color: #123b2e; }
.stage-activity-body h4 { margin: 0; font-size: 17px; line-height: 1.1; }
.stage-activity-body h4 a { color: #123b2e; text-decoration: none; }
.stage-activity-body h4 a:hover { color: var(--orange); }
.stage-activity-body p { margin: 0; color: #53675a; font-size: 12px; line-height: 1.5; }
.stage-activity-actions { display: flex; align-items: center; gap: 9px; padding: 12px 15px 15px; margin-top: auto; }
.stage-activity-actions .button { flex: 1 1 auto; min-width: 0; padding: 10px 11px; font-size: 11px; text-align: center; }
.activity-open-page { flex: 0 0 auto; color: #123b2e !important; font: 10px var(--mono); text-decoration: underline; text-underline-offset: 4px; }

/* ==========================================================================
   STUDIO DE VOYAGE SUR-MESURE V2 (DYNAMIQUE & À LA CARTE)
   ========================================================================== */

/* Canevas de départ & Template chips */
.studio-presets {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
}
.studio-presets span {
  font: 11px var(--mono);
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-right: 4px;
}
.template-chip {
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--line);
  color: var(--ink);
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
}
.template-chip:hover {
  background: var(--green);
  border-color: var(--green);
  color: var(--lime);
  transform: translateY(-1px);
}
.template-chip.active {
  background: var(--green);
  border-color: var(--green);
  color: var(--lime);
  box-shadow: 0 4px 12px rgba(23, 60, 46, 0.2);
}

/* Trip Bar additions */
.trip-field-duration {
  min-width: 140px;
}
.trip-duration-display {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid #bfcab9;
}
.trip-duration-display strong {
  font-size: 16px;
  color: var(--green);
  font-weight: 700;
}
.trip-duration-display span {
  font: 11px var(--mono);
  color: var(--muted);
}
.flight-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding-bottom: 6px;
  border-bottom: 1px solid #bfcab9;
  font-size: 12px;
  color: var(--green);
  font-weight: 600;
}
.flight-checkbox-label input[type="checkbox"] {
  accent-color: var(--green);
  width: 16px;
  height: 16px;
  cursor: pointer;
}

/* Dynamic Itinerary list */
.custom-stages-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 14px;
  margin-bottom: 16px;
}

.empty-stages-box {
  background: rgba(255, 255, 255, 0.05);
  border: 1px dashed rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  padding: 30px 20px;
  text-align: center;
  color: #edf2e5;
}
.empty-icon {
  font-size: 36px;
  display: block;
  margin-bottom: 10px;
}
.empty-stages-box h4 {
  font-size: 18px;
  margin: 0 0 8px;
  color: #fff;
}
.empty-stages-box p {
  font-size: 12px;
  color: #aebda9;
  margin: 0 0 16px;
  line-height: 1.5;
}
.empty-template-btns {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Custom Stage Card */
.stage-builder-item {
  position: relative;
}
.custom-stage-card {
  background: rgba(18, 41, 30, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  padding: 14px 16px;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.custom-stage-card:hover {
  border-color: rgba(214, 238, 157, 0.35);
}
.stage-card-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.stage-index-badge {
  display: flex;
  align-items: center;
  gap: 10px;
}
.stage-index-badge > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: var(--orange);
  color: #fff;
  font: 700 12px var(--mono);
  border-radius: 4px;
}
.stage-index-badge strong {
  display: block;
  font-size: 15px;
  color: #fff;
  line-height: 1.15;
}
.stage-index-badge small {
  display: block;
  font: 10px var(--mono);
  color: #a4bea1;
  margin-top: 2px;
}

.stage-card-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.stage-arrow-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #d6ee9d;
  width: 26px;
  height: 26px;
  border-radius: 4px;
  font-size: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
}
.stage-arrow-btn:hover:not(:disabled) {
  background: rgba(214, 238, 157, 0.2);
  border-color: #d6ee9d;
}
.stage-arrow-btn:disabled {
  opacity: 0.25;
  cursor: not-allowed;
}
.stage-delete-btn {
  background: rgba(235, 129, 91, 0.15);
  border: 1px solid rgba(235, 129, 91, 0.3);
  color: #f7a084;
  width: 26px;
  height: 26px;
  border-radius: 4px;
  font-size: 16px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin-left: 4px;
  transition: all 0.15s;
}
.stage-delete-btn:hover {
  background: var(--orange);
  color: #fff;
  border-color: var(--orange);
}

.stage-card-controls {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
}
@media (max-width: 600px) {
  .stage-card-controls {
    grid-template-columns: 1fr;
  }
}
.stage-control-group label {
  display: block;
  font: 10px var(--mono);
  color: #9cb89f;
  text-transform: uppercase;
  margin-bottom: 5px;
}
.stage-stepper {
  display: inline-flex;
  align-items: center;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  overflow: hidden;
}
.step-btn {
  background: transparent;
  color: #d6ee9d;
  font-size: 16px;
  font-weight: 700;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s;
}
.step-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
}
.step-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.step-count {
  padding: 0 10px;
  font: 12px var(--mono);
  color: #f3f7f1;
  min-width: 65px;
  text-align: center;
}
.step-count b {
  color: #d6ee9d;
  font-size: 14px;
}

.stage-lodging-group {
  display: flex;
  flex-direction: column;
}
.stage-hotel-select {
  width: 100%;
  background: rgba(14, 33, 23, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #f3f7f1;
  border-radius: 4px;
  padding: 6px 8px;
  font-size: 12px;
  outline: none;
  cursor: pointer;
}
.stage-hotel-select option {
  background: #173c2e;
  color: #fff;
}
.stage-lodging-subtotal {
  font: 10px var(--mono);
  color: #a4bea1;
  margin-top: 5px;
}
.stage-lodging-subtotal strong {
  color: #d6ee9d;
}

/* Stage activities collapse */
.stage-activities-fold {
  margin-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 8px;
}
.stage-act-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font: 11px var(--mono);
  color: #d6ee9d;
  cursor: pointer;
  padding: 4px 0;
  user-select: none;
}
.stage-act-summary::-webkit-details-marker {
  display: none;
}
.summary-arrow {
  transition: transform 0.2s;
}
details[open] .summary-arrow {
  transform: rotate(180deg);
}
.stage-act-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 8px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 4px;
}
.stage-act-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px;
  border-radius: 3px;
  transition: background 0.15s;
}
.stage-act-row.act-active {
  background: rgba(214, 238, 157, 0.1);
}
.stage-act-check {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  flex: 1;
}
.stage-act-check input[type="checkbox"] {
  accent-color: var(--green);
  cursor: pointer;
}
.act-name {
  font-size: 12px;
  color: #edf2e5;
  line-height: 1.2;
}
.act-price {
  font: 11px var(--mono);
  color: #d6ee9d;
  white-space: nowrap;
}
.act-part-stepper select {
  background: #173c2e;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  border-radius: 3px;
  font: 10px var(--mono);
  padding: 2px 4px;
}

/* Stage Transit connector between cards */
.stage-transit-card {
  position: relative;
  margin: 6px 0 6px 14px;
  padding: 10px 14px 10px 24px;
  border-left: 2px dashed #eb815b;
  background: rgba(235, 129, 91, 0.06);
  border-radius: 0 6px 6px 0;
}
.transit-badge-strip {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}
.transit-tag {
  font: 9px var(--mono);
  color: #f7a084;
  text-transform: uppercase;
  background: rgba(235, 129, 91, 0.18);
  padding: 2px 6px;
  border-radius: 2px;
}
.transit-time {
  font: 700 13px var(--mono);
  color: #fff;
}
.transit-distance {
  font: 11px var(--mono);
  color: #d7eea2;
}
.transit-road-type {
  font: 10px var(--mono);
  color: #a4bea1;
}
.transit-body {
  font-size: 11px;
  color: #d2dbd1;
  line-height: 1.4;
  margin: 4px 0 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.transit-alert-text {
  color: #f0c766;
  font-weight: 600;
}
.transit-gmaps-link {
  display: inline-block;
  font: 10px var(--mono);
  color: #eb815b;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.15s;
}
.transit-gmaps-link:hover {
  color: #fff;
}

/* Quick Add Shelf underneath Map */
.quick-add-shelf {
  margin-top: 18px;
  background: rgba(14, 33, 23, 0.95);
  border: 1px solid #416450;
  border-radius: 6px;
  padding: 16px;
}
.shelf-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.shelf-title h4 {
  font-size: 18px;
  margin: 2px 0 0;
  color: #fff;
}
.shelf-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.shelf-filter-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #a4bea1;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 11px;
  cursor: pointer;
  transition: all 0.15s;
}
.shelf-filter-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}
.shelf-filter-btn.active {
  background: var(--lime);
  border-color: var(--lime);
  color: var(--green);
  font-weight: 700;
}
.shelf-dest-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 12px;
  max-height: 440px;
  overflow-y: auto;
  padding-right: 4px;
}
.shelf-dest-card {
  background: #173c2e;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 5px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s, border-color 0.2s;
}
.shelf-dest-card:hover {
  transform: translateY(-2px);
  border-color: #d6ee9d;
}
.shelf-dest-img {
  height: 90px;
  background-size: cover;
  background-position: center;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 8px;
}
.shelf-dest-img span {
  background: rgba(0, 0, 0, 0.6);
  color: #d6ee9d;
  font: 9px var(--mono);
  padding: 3px 6px;
  border-radius: 2px;
}
.in-trip-badge {
  background: var(--orange);
  color: #fff;
  font: 700 9px var(--mono);
  padding: 3px 6px;
  border-radius: 2px;
}
.shelf-dest-info {
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.shelf-dest-info h5 {
  font-size: 14px;
  margin: 0 0 4px;
  color: #fff;
}
.shelf-dest-info p {
  font-size: 11px;
  color: #a4bea1;
  margin: 0 0 10px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.shelf-add-btn {
  margin-top: auto;
  font-size: 11px;
  padding: 7px 10px;
  text-align: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s;
}
.shelf-add-btn:hover {
  background: var(--lime);
  border-color: var(--lime);
  color: var(--green);
  font-weight: 700;
}

/* Roadbook modal stylesheet */
.roadbook-sheet {
  background: #fdfdfc;
  color: var(--ink);
  padding: 30px;
  border-radius: 8px;
  max-width: 800px;
  margin: 0 auto;
}
.roadbook-header {
  border-bottom: 2px solid var(--green);
  padding-bottom: 16px;
  margin-bottom: 20px;
}
.roadbook-header h2 {
  font-size: 28px;
  color: var(--green);
  margin: 6px 0 8px;
}
.roadbook-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.roadbook-badges span {
  background: #edf3ea;
  border: 1px solid #c9d8c4;
  color: var(--green);
  font: 11px var(--mono);
  padding: 4px 8px;
  border-radius: 4px;
}
.roadbook-itinerary {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.roadbook-stage {
  border: 1px solid #e1e6de;
  border-radius: 6px;
  padding: 16px;
  background: #fff;
}
.roadbook-stage-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
  border-bottom: 1px solid #f0f3ee;
  padding-bottom: 6px;
}
.roadbook-step {
  background: var(--green);
  color: var(--lime);
  font: 700 11px var(--mono);
  padding: 3px 6px;
  border-radius: 3px;
}
.roadbook-stage-head h3 {
  margin: 0;
  font-size: 18px;
  color: var(--green);
  flex: 1;
}
.roadbook-stage-head h3 small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 400;
}
.roadbook-date {
  font: 11px var(--mono);
  color: var(--muted);
}
.roadbook-desc {
  font-size: 12px;
  color: #4a574e;
  line-height: 1.5;
  margin: 0 0 10px;
}
.roadbook-box {
  background: #f7faf5;
  border: 1px solid #e2ebd8;
  padding: 8px 12px;
  border-radius: 4px;
  font-size: 12px;
}
.roadbook-box ul {
  margin: 6px 0 0;
  padding-left: 18px;
  font-size: 11px;
}
.roadbook-transit-note {
  margin-top: 10px;
  padding: 8px 12px;
  background: #fff5f0;
  border-left: 3px solid #eb815b;
  border-radius: 0 4px 4px 0;
  font-size: 11px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.roadbook-alert {
  color: #c0392b;
  font-weight: 600;
}
.roadbook-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

/* Print styling for Roadbook */
@media print {
  body * {
    visibility: hidden;
  }
  .detail-dialog, .roadbook-sheet, .roadbook-sheet * {
    visibility: visible;
  }
  .roadbook-sheet {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
  .roadbook-actions, .detail-close, .detail-backdrop {
    display: none !important;
  }
}

/* Map places positioning for the full 14 destinations */
.place-rio-celeste { left: 40%; top: 23%; }
.place-rincon { left: 28%; top: 16%; }
.place-sarapiqui { left: 55%; top: 27%; }
.place-samara { left: 21%; top: 46%; }
.place-san-gerardo { left: 52%; top: 60%; }
.place-corcovado { left: 48%; top: 86%; }

/* ==========================================================================
   Showcases photographiques (Étapes & Activités) & Lightbox & Mosaïques
   ========================================================================== */
.stage-gallery-section,
.activity-gallery-section {
  margin-top: 24px;
  margin-bottom: 36px;
}

.stage-gallery-showcase,
.activity-gallery-showcase {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.stage-gallery-main,
.activity-gallery-main {
  position: relative;
  background: #09130c;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(18, 39, 26, 0.16);
  cursor: zoom-in;
  height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stage-gallery-main img,
.activity-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.stage-gallery-main:hover img,
.activity-gallery-main:hover img {
  transform: scale(1.02);
}

.stage-gallery-topbar,
.activity-gallery-topbar {
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 5;
  pointer-events: none;
}

.stage-gallery-topbar > *,
.activity-gallery-topbar > * {
  pointer-events: auto;
}

.stage-gallery-caption,
.activity-gallery-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(9, 19, 12, 0.82) 35%, rgba(9, 19, 12, 0.98) 100%);
  padding: 36px 20px 18px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 14px;
  z-index: 5;
  flex-wrap: wrap;
}

.stage-gallery-caption strong,
.activity-gallery-caption strong {
  font: 600 15px var(--sans);
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.stage-gallery-thumbs,
.activity-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
}

.stage-thumb-btn,
.act-thumb-btn {
  position: relative;
  border: 2px solid transparent;
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
  padding: 0;
  background: #12271a;
  aspect-ratio: 16/10;
  transition: all 0.2s ease;
}

.stage-thumb-btn img,
.act-thumb-btn img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.75;
  transition: opacity 0.2s, transform 0.2s;
}

.stage-thumb-btn:hover img,
.act-thumb-btn:hover img {
  opacity: 1;
  transform: scale(1.04);
}

.stage-thumb-btn.active,
.act-thumb-btn.active {
  border-color: #d7eea2;
  box-shadow: 0 4px 14px rgba(215, 238, 162, 0.35);
}

.stage-thumb-btn.active img,
.act-thumb-btn.active img {
  opacity: 1;
}

.stage-thumb-badge,
.act-thumb-badge {
  position: absolute;
  bottom: 6px;
  left: 6px;
  background: rgba(9, 19, 12, 0.88);
  color: #eaf5d8;
  font: 700 9px var(--mono);
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 3px;
  backdrop-filter: blur(4px);
  letter-spacing: 0.04em;
}

/* Lightbox pour les étapes et les activités */
.stage-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
}

.stage-lightbox.open {
  display: flex;
}

.stage-lightbox .lightbox-overlay {
  position: absolute;
  inset: 0;
  background: rgba(5, 12, 8, 0.94);
  backdrop-filter: blur(10px);
}

.stage-lightbox .lightbox-container {
  position: relative;
  z-index: 2;
  width: 90vw;
  max-width: 1200px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.stage-lightbox .lightbox-close-btn {
  position: absolute;
  top: -45px;
  right: 0;
  background: none;
  border: none;
  color: #fff;
  font-size: 38px;
  cursor: pointer;
  line-height: 1;
  opacity: 0.85;
  transition: opacity 0.2s;
}

.stage-lightbox .lightbox-close-btn:hover {
  opacity: 1;
  color: #d7eea2;
}

.stage-lightbox .lightbox-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  font-size: 34px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
  transition: all 0.2s;
  z-index: 10;
}

.stage-lightbox .lightbox-nav-btn:hover {
  background: #173c2e;
  color: #d7eea2;
  border-color: #d7eea2;
}

.stage-lightbox .lightbox-prev {
  left: -70px;
}

.stage-lightbox .lightbox-next {
  right: -70px;
}

.stage-lightbox .lightbox-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 100%;
}

.stage-lightbox .lightbox-body img {
  max-width: 100%;
  max-height: 75vh;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
}

.stage-lightbox .lightbox-meta {
  margin-top: 14px;
  text-align: center;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.stage-lightbox .lightbox-tag {
  background: #d7eea2;
  color: #173c2e;
  font: 700 10px var(--mono);
  padding: 3px 8px;
  border-radius: 3px;
  text-transform: uppercase;
}

.stage-lightbox .lightbox-meta strong {
  font: 600 15px var(--sans);
}

.stage-lightbox .lightbox-meta small {
  font: 12px var(--mono);
  color: #a4beac;
}

/* Mosaïque 3 photos pour les étapes dans le roadbook / itinéraire */
.tour-stage-mosaic {
  position: relative;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 6px;
  border-radius: 6px;
  overflow: hidden;
  height: 250px;
  margin-bottom: 12px;
  background: #0e1e14;
}

.tour-stage-mosaic .tour-mosaic-main {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tour-stage-mosaic .tour-mosaic-sub {
  display: flex;
  flex-direction: column;
  gap: 6px;
  height: 100%;
}

.tour-stage-mosaic .tour-mosaic-sub img {
  width: 100%;
  height: calc(50% - 3px);
  object-fit: cover;
  display: block;
}

.tour-stage-mosaic .tour-mosaic-badge {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(18, 39, 26, 0.92);
  color: #d7eea2;
  font: 700 11px var(--mono);
  padding: 6px 12px;
  border-radius: 4px;
  text-decoration: none;
  border: 1px solid rgba(215, 238, 162, 0.3);
  backdrop-filter: blur(6px);
  transition: all 0.2s ease;
  z-index: 2;
}

.tour-stage-mosaic .tour-mosaic-badge:hover {
  background: #d7eea2;
  color: #173c2e;
  border-color: #d7eea2;
}

@media (max-width: 768px) {
  .stage-gallery-main,
  .activity-gallery-main {
    height: 320px;
  }
  .stage-gallery-thumbs,
  .activity-gallery-thumbs {
    grid-template-columns: repeat(3, 1fr);
  }
  .stage-lightbox .lightbox-nav-btn {
    display: none;
  }
  .tour-stage-mosaic {
    height: 190px;
  }
}

/* End-of-file overrides keep the final visual system above legacy rules. */
.studio-hero .hero-intro,
.studio-hero .hero-notes p,
.studio-hero .hero-notes span,
.planner-section .section-heading > p { color: #e1ebe0 !important; }
.page-hero-note,
.activity-hero-banner .page-hero-note,
.stage-hero-banner .page-hero-note { background: #f8f4e7 !important; border: 1px solid #e1dcc8; color: #123b2e !important; box-shadow: 0 16px 34px rgba(9, 35, 25, .2); }
.page-hero-note span, .page-hero-note small, .page-hero-note strong { color: #123b2e !important; }
.detail-page-hero .eyebrow { color: #f5d77f !important; opacity: 1; }
.trip-bar { align-items: start; background: #f4f5ed; border: 1px solid #d7e0d3; box-shadow: 0 8px 0 #dce6d8; }
.trip-field { min-width: 0; }
.trip-field > label { color: #4f6659 !important; font: 10px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.trip-field select, .trip-field input { color: #123b2e !important; background: #fff !important; border: 1px solid #becdbd !important; min-width: 0; }
.trip-field-duration { min-width: 185px; }
.trip-duration-hint { display: block; margin-top: 6px; color: #617669; font: 10px var(--mono); line-height: 1.35; }
.stage-card-image { display: flex; text-decoration: none; }
.stage-card-info h3 a { color: #123b2e; text-decoration: none; }
.stage-card-meta a { color: #123b2e; font: 10px var(--mono); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.stage-card-info p, .activity-info p, .lodging-info p { color: #53675a !important; }
.page-detail-columns { align-items: start; }
.page-detail-aside { align-self: start; color: #123b2e; border: 1px solid #d9e2d5; box-shadow: 0 12px 26px rgba(18, 39, 26, .06); }
.page-detail-card { color: #123b2e; border-radius: 12px; box-shadow: 0 5px 0 #e3e9df; }
.page-detail-card h3, .page-detail-card h3 a { color: #123b2e !important; }
.page-detail-card p { color: #53675a !important; }
.page-detail-card strong { color: #123b2e !important; }
.page-detail-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.page-detail-card-actions .button { flex: 1 1 130px; min-width: 0; text-align: center; font-size: 11px; padding: 9px 10px; }
.detail-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 32px; padding-top: 20px; border-top: 1px solid #d2ddd1; }
.detail-pagination .button-ghost { color: #123b2e !important; border-color: #aec2ae !important; background: #fff !important; }
.detail-video-section { margin-top: 30px; padding-top: 25px; border-top: 1px solid #d2ddd1; }
.detail-tips { margin: 0; padding-left: 21px; color: #405748; }
.detail-tips li { margin-bottom: 9px; font-size: 13px; line-height: 1.55; }
.stage-highlight-tags span { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid #cad9c7; border-radius: 999px; background: #edf3e9; color: #123b2e; font-size: 12px; font-weight: 700; }
.stage-route-note { padding: 18px; background: #f4f6ef; border: 1px solid #d6e0d2; border-radius: 12px; }
.stage-route-note p { display: grid; gap: 10px; margin: 0 0 15px; color: #405748; font-size: 13px; line-height: 1.45; }
.stage-route-note p span { display: flex; align-items: flex-start; gap: 8px; }
.stage-route-note strong { color: #123b2e; }

.stage-activity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.stage-activity-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #d5e0d3; border-radius: 14px; box-shadow: 0 6px 0 #e6ece2; }
.stage-activity-card:hover { transform: translateY(-3px); box-shadow: 0 10px 0 #dce8d9, 0 17px 24px rgba(18, 39, 26, .08); }
.stage-activity-image { display: flex; height: 132px; align-items: flex-end; justify-content: space-between; gap: 8px; padding: 12px; color: #fff; background-position: center; background-size: cover; text-decoration: none; }
.stage-activity-image span, .stage-activity-image b { max-width: 72%; padding: 5px 7px; border-radius: 4px; background: rgba(13, 42, 32, .82); color: #f0f6e8; font: 10px var(--mono); text-transform: uppercase; }
.stage-activity-image b { max-width: 45%; color: #f5c667; text-align: right; }
.stage-activity-body { display: grid; gap: 8px; padding: 15px 15px 4px; }
.stage-activity-meta { display: flex; justify-content: space-between; gap: 8px; color: #607469; font: 10px var(--mono); text-transform: uppercase; }
.stage-activity-meta strong { color: #123b2e; }
.stage-activity-body h4 { margin: 0; font-size: 17px; line-height: 1.1; }
.stage-activity-body h4 a { color: #123b2e; text-decoration: none; }
.stage-activity-body p { margin: 0; color: #53675a; font-size: 12px; line-height: 1.5; }
.stage-activity-actions { display: flex; align-items: center; gap: 9px; padding: 12px 15px 15px; margin-top: auto; }
.stage-activity-actions .button { flex: 1 1 auto; min-width: 0; padding: 10px 11px; font-size: 11px; text-align: center; }
.activity-open-page { flex: 0 0 auto; color: #123b2e !important; font: 10px var(--mono); text-decoration: underline; text-underline-offset: 4px; }

.video-poster, .detail-video, .video-frame { background: #0b251b !important; border-radius: 14px !important; box-shadow: 0 12px 24px rgba(10, 35, 24, .16); }
.video-poster-shade { background: linear-gradient(180deg, rgba(7, 26, 18, .08), rgba(7, 26, 18, .82)) !important; }
.video-poster-badge { background: rgba(13, 42, 32, .9) !important; color: #edf7d2 !important; border: 1px solid rgba(235, 246, 199, .26); font: 10px var(--mono) !important; letter-spacing: .04em; }
.video-play { display: inline-flex !important; align-items: center; gap: 9px; min-height: 48px; padding: 0 18px !important; border: 0 !important; border-radius: 999px !important; background: #f5c667 !important; color: #123b2e !important; box-shadow: 0 8px 20px rgba(4, 24, 15, .32); font: 700 13px var(--sans) !important; cursor: pointer; }
.video-play:hover { background: #fff1c4 !important; transform: translate(-50%, -50%) scale(1.04); }
.video-play-icon { width: 0; height: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 10px solid #123b2e; }
.video-poster-footer { position: absolute; right: 16px; bottom: 14px; left: 16px; z-index: 2; display: flex; justify-content: space-between; gap: 12px; color: #fff; font: 11px var(--mono); }
.video-poster-footer small { color: #d5e6cf; font: 10px var(--mono); text-align: right; }
.video-caption { color: #52675b !important; font: 10px var(--mono) !important; line-height: 1.45; }

.custom-stages-list { gap: 14px; }
.custom-stage-card { background: #12382a; border: 1px solid #376650; border-radius: 14px; box-shadow: 0 6px 0 #0b2a20, 0 13px 24px rgba(6, 28, 18, .12); }
.stage-card-topbar { align-items: flex-start; }
.stage-index-badge strong { color: #fff; }
.stage-index-badge small { color: #b7cdb9; line-height: 1.35; }
.stage-builder-title { color: #fff; text-decoration: none; }
.stage-card-open-link { color: #f0c766; font: 10px var(--mono); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.stage-control-group label { color: #b9cfba !important; }
.stage-lodging-subtotal { color: #b7cdb9; }
.stage-act-list { background: #0c2a20; }
.act-name { color: #f0f5ee; }
.stage-transit-card { background: rgba(235, 129, 91, .11); border-left-width: 3px; }
.transit-body { color: #dbe7da; }
.transit-road-type { color: #b9cfba; }
.panel-total small { color: #bdd0bd; }

.floating-trip-access { position: fixed; right: 22px; bottom: 22px; z-index: 70; display: inline-flex; align-items: center; gap: 9px; min-height: 48px; padding: 0 16px; border: 1px solid #f1d27d; border-radius: 999px; background: #123b2e; color: #f5d77f; box-shadow: 0 12px 28px rgba(9, 35, 25, .24); font: 700 12px var(--sans); cursor: pointer; }
.floating-trip-access:hover { background: #1b533e; transform: translateY(-2px); }
.floating-trip-count { display: inline-grid; min-width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #f5c667; color: #123b2e; font: 700 11px var(--mono); }
.trip-drawer { position: fixed; inset: 0; z-index: 90; display: none; }
.trip-drawer.is-open { display: block; }
.trip-drawer-backdrop { position: absolute; inset: 0; background: rgba(4, 20, 13, .7); backdrop-filter: blur(7px); }
.trip-drawer-panel { position: absolute; inset: 18px; display: flex; flex-direction: column; max-width: 920px; margin-left: auto; overflow: hidden; border: 1px solid #416b54; border-radius: 22px; background: #f6f5eb; color: #123b2e; box-shadow: 0 28px 90px rgba(0, 0, 0, .35); }
.trip-drawer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 28px 32px; background: #123b2e; color: #eff7e9; }
.trip-drawer-header h2 { margin: 4px 0 0; color: #fff; font-size: clamp(26px, 4vw, 42px); line-height: 1; }
.trip-drawer-header p { margin: 8px 0 0; color: #c8dbca; font-size: 12px; }
.trip-drawer-kicker { color: #f5d77f; font: 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.trip-drawer-close { width: 40px; height: 40px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; background: transparent; color: #fff; font-size: 25px; cursor: pointer; }
.trip-drawer-body { display: grid; grid-template-columns: 1fr 280px; gap: 24px; min-height: 0; padding: 24px 32px 30px; overflow: auto; }
.trip-drawer-list { display: grid; gap: 10px; align-content: start; }
.trip-drawer-stage { display: grid; grid-template-columns: 42px 1fr auto; gap: 13px; align-items: center; width: 100%; padding: 15px; border: 1px solid #d4dfd1; border-radius: 13px; background: #fff; color: #123b2e; text-align: left; cursor: pointer; }
.trip-drawer-stage:hover { border-color: var(--orange); transform: translateX(3px); }
.trip-drawer-stage-index { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: var(--orange); color: #fff; font: 700 12px var(--mono); }
.trip-drawer-stage strong { display: block; font-size: 16px; }
.trip-drawer-stage small { display: block; margin-top: 4px; color: #62776a; font: 10px var(--mono); line-height: 1.35; }
.trip-drawer-stage-total { color: #123b2e; font: 11px var(--mono); white-space: nowrap; }
.trip-drawer-summary { align-self: start; padding: 20px; border: 1px solid #d4dfd1; border-radius: 14px; background: #e9f0e5; }
.trip-drawer-summary h3 { margin: 4px 0 16px; font-size: 22px; }
.trip-drawer-summary dl { display: grid; gap: 10px; margin: 0; }
.trip-drawer-summary dl div { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #cad8c7; padding-top: 10px; }
.trip-drawer-summary dt { color: #5d7163; font-size: 11px; }
.trip-drawer-summary dd { margin: 0; color: #123b2e; font: 700 11px var(--mono); text-align: right; }
.trip-drawer-empty { padding: 24px; border: 1px dashed #b8cbb5; border-radius: 12px; color: #5a7061; }
.trip-drawer-summary { padding-bottom: 24px; }
.trip-drawer-summary .button { display: block; width: 100%; margin-top: 18px; text-align: center; }

@media (max-width: 760px) {
  .trip-field-duration { min-width: 0; }
  .stage-activity-grid { grid-template-columns: 1fr; }
  .detail-pagination { align-items: stretch; flex-direction: column; }
  .detail-pagination .button { width: 100%; text-align: center; }
  .page-detail-card-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .page-detail-aside { position: static; }
  .stage-card-topbar { gap: 12px; }
  .stage-card-actions { flex-wrap: wrap; justify-content: flex-end; }
  .floating-trip-access { right: 14px; bottom: 78px; min-height: 44px; padding: 0 13px; }
  .trip-drawer-panel { inset: 8px; border-radius: 17px; }
  .trip-drawer-header { padding: 20px; }
  .trip-drawer-body { grid-template-columns: 1fr; padding: 16px 20px 24px; }
  .trip-drawer-summary { order: -1; }
  .trip-drawer-stage { grid-template-columns: 36px 1fr; }
  .trip-drawer-stage-total { grid-column: 2; text-align: left; }
  .video-poster-footer { display: block; }
  .video-poster-footer small { display: block; margin-top: 4px; text-align: left; }
}

@media (max-width: 430px) {
  .video-play { min-height: 44px; padding: 0 14px !important; font-size: 12px !important; }
  .stage-activity-actions { align-items: stretch; flex-direction: column; }
  .stage-activity-actions .button, .activity-open-page { width: 100%; text-align: center; }
  .page-detail-card-actions { grid-template-columns: 1fr; }
  .floating-trip-access { right: 10px; left: 10px; justify-content: center; }
}

/* Navigation globale : toutes les rubriques restent accessibles. */
.main-nav > a { display: inline-flex !important; }
.main-nav .nav-more { position: relative; }
.main-nav .nav-more summary { list-style: none; cursor: pointer; padding: 9px 11px; border-radius: 999px; color: #547066; transition: background .2s, color .2s, transform .2s; }
.main-nav .nav-more summary::-webkit-details-marker { display: none; }
.main-nav .nav-more summary::after { content: ''; display: inline-block; width: 6px; height: 6px; margin: 0 0 3px 8px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); }

.ui-glyph { display: inline-flex; align-items: center; justify-content: center; vertical-align: -0.15em; margin-inline: 0.16em; line-height: 1; }
.ui-glyph-svg { width: 0.9em; height: 0.9em; }
.main-nav .nav-more[open] summary, .main-nav .nav-more summary:hover { background: #e3eedb; color: var(--green); }
.nav-more-menu { position: absolute; top: calc(100% + 10px); right: 0; z-index: 80; display: grid; min-width: 238px; gap: 3px; padding: 8px; border: 1px solid #d4dfd1; border-radius: 14px; background: #fffdf8; box-shadow: 0 18px 38px #0b382c20; }
.nav-more-menu a { display: flex !important; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px !important; border-radius: 9px !important; color: var(--green) !important; white-space: nowrap; }
.nav-more-menu a:hover, .nav-more-menu a.active { background: #e3eedb !important; color: var(--green) !important; transform: none !important; }
.nav-more-menu a span { color: var(--orange); font: 11px var(--mono); }
.activity-fauna-bridge { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-top: 0; padding-top: 70px; padding-bottom: 70px; background: #e7efdf; border-top: 1px solid #d2dfce; border-bottom: 1px solid #d2dfce; }
.activity-fauna-bridge > div { max-width: 680px; }
.activity-fauna-bridge h2 { margin: 0 0 16px; color: var(--green); font-size: clamp(36px, 5vw, 62px); line-height: .95; letter-spacing: -.075em; }
.activity-fauna-bridge p:not(.eyebrow) { max-width: 620px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.activity-fauna-bridge .button { flex: 0 0 auto; }

@media (max-width: 980px) {
  .main-nav { gap: 2px; }
  .main-nav > a, .main-nav .nav-more summary { padding-left: 7px; padding-right: 7px; font-size: 12px; }
}

@media (max-width: 620px) {
  .activity-fauna-bridge { align-items: stretch; flex-direction: column; gap: 24px; padding-top: 54px; padding-bottom: 54px; }
  .activity-fauna-bridge .button { width: 100%; text-align: center; }
}

/* Final interaction pass: every related piece of content remains explorable. */
.live-strip { min-width: 0; }
.live-weather { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
.weather-chip { min-width: 0; white-space: nowrap; }
.weather-chip > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.weather-chip small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.live-rate { min-width: 0; }
.activity-destination-link { display: block; width: fit-content; max-width: 100%; color: #53675a !important; text-decoration: underline; text-decoration-color: #b4c7b2; text-underline-offset: 3px; }
.activity-destination-link:hover { color: #123b2e !important; text-decoration-color: var(--orange); }
.activity-card-fauna { display: grid; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #dbe4d8; }
.activity-card-fauna > span { color: #617669; font: 10px var(--mono); letter-spacing: .05em; text-transform: uppercase; }
.activity-card-fauna > a { display: inline-flex; align-items: center; gap: 7px; min-width: 0; color: #123b2e; font-size: 11px; }
.activity-card-fauna > a:hover { color: #b45f3c; }
.activity-card-fauna-thumb { flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%; background-position: center; background-size: cover; border: 1px solid #cad8c7; }
.activity-card-fauna strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.activity-fauna-links { margin-top: 18px; padding: 16px; border: 1px solid #d4dfd1; border-radius: 12px; background: #f0f5ed; }
.activity-fauna-links-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.activity-fauna-links-heading small { color: #617669; font-size: 12px; }
.activity-fauna-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.activity-fauna-card { display: grid; grid-template-columns: 64px 1fr; min-width: 0; overflow: hidden; border: 1px solid #d4dfd1; border-radius: 10px; background: #fff; color: #123b2e; }
.activity-fauna-card:hover { border-color: var(--orange); transform: translateY(-2px); }
.activity-fauna-image { min-height: 82px; background-position: center; background-size: cover; }
.activity-fauna-card-body { display: grid; align-content: center; gap: 3px; min-width: 0; padding: 8px 10px; }
.activity-fauna-card-body strong { overflow: hidden; font-size: 12px; line-height: 1.15; }
.activity-fauna-card-body small, .activity-fauna-card-body em { overflow: hidden; color: #617669; font: 10px var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.activity-fauna-card-body em { color: #b45f3c; font-style: normal; }
.shelf-dest-visual { display: block; }
.shelf-dest-visual:focus-visible, .shelf-dest-info h5 a:focus-visible, .shelf-dest-meta a:focus-visible, .activity-fauna-card:focus-visible, .activity-card-fauna a:focus-visible { outline: 3px solid #f5c667; outline-offset: 2px; }
.shelf-dest-info h5 a { color: #fff; text-decoration: none; }
.shelf-dest-info h5 a:hover { color: #d6ee9d; }
.shelf-dest-activities { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 10px; padding: 9px 10px; border: 1px solid #547765; border-radius: 8px; background: #214b3a; color: #f5ce72; font-size: 12px; font-weight: 700; text-decoration: none; }
.shelf-dest-activities:hover { border-color: #f5ce72; background: #2b5b47; color: #fff; }
.shelf-dest-activities span { color: #f28b62; font: 700 14px var(--mono); }
.shelf-dest-meta { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; margin: auto 0 9px; color: #b8cbb5; font: 10px var(--mono); }
.shelf-dest-meta a { color: #d6ee9d; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.activity-filter-context { grid-column: 1 / -1; display: grid; grid-template-columns: auto auto 1fr auto; align-items: baseline; gap: 9px 14px; padding: 13px 15px; border: 1px solid #cbdac9; border-radius: 10px; background: #e7efdf; color: #476254; }
.activity-filter-context .detail-kicker { color: #b45f3c; }
.activity-filter-context strong { color: var(--green); font-size: 17px; }
.activity-filter-context a { color: #b45f3c; font: 11px var(--mono); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.map-mode-static { display: inline-flex; align-items: center; min-height: 34px; padding: 8px 12px; border-radius: 999px; background: #ffffff12; color: var(--lime); font: 10px var(--mono); white-space: nowrap; }
@media (max-width: 900px) {
  .live-weather { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .weather-chip { white-space: normal; }
}
@media (max-width: 760px) {
  .activity-fauna-grid { grid-template-columns: 1fr; }
  .activity-fauna-links-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .activity-filter-context { grid-template-columns: 1fr; gap: 4px; }
  .map-mode-static { justify-content: center; width: 100%; }
}


/* Contraste global : les boutons clairs ne doivent jamais disparaître sur un fond crème. */
.button-ghost,
.btn-secondary {
  border: 1px solid #aebfaf !important;
  color: #123b2e !important;
  background: #fffdf8 !important;
}
.button-ghost:hover,
.button-ghost:focus-visible,
.btn-secondary:hover,
.btn-secondary:focus-visible {
  border-color: #123b2e !important;
  color: #f0f6e8 !important;
  background: #123b2e !important;
}
:where(.home-hero, .page-hero, .detail-page-hero, .stage-hero-banner, .activity-hero-banner, .studio-hero, .planner-section, .map-only-section, .video-section, .tour-pres-hero) .button-ghost,
:where(.home-hero, .page-hero, .detail-page-hero, .stage-hero-banner, .activity-hero-banner, .studio-hero, .planner-section, .map-only-section, .video-section, .tour-pres-hero) .btn-secondary {
  border-color: #ffffff80 !important;
  color: #fff !important;
  background: #ffffff12 !important;
}
:where(.home-hero, .page-hero, .detail-page-hero, .stage-hero-banner, .activity-hero-banner, .studio-hero, .planner-section, .map-only-section, .video-section, .tour-pres-hero) .button-ghost:hover,
:where(.home-hero, .page-hero, .detail-page-hero, .stage-hero-banner, .activity-hero-banner, .studio-hero, .planner-section, .map-only-section, .video-section, .tour-pres-hero) .button-ghost:focus-visible,
:where(.home-hero, .page-hero, .detail-page-hero, .stage-hero-banner, .activity-hero-banner, .studio-hero, .planner-section, .map-only-section, .video-section, .tour-pres-hero) .btn-secondary:hover,
:where(.home-hero, .page-hero, .detail-page-hero, .stage-hero-banner, .activity-hero-banner, .studio-hero, .planner-section, .map-only-section, .video-section, .tour-pres-hero) .btn-secondary:focus-visible {
  border-color: #fff !important;
  color: #fff !important;
  background: #ffffff26 !important;
}

/* Catalogue activités : galerie réelle, sans surcouche opaque ni bandeaux parasites. */
.activity-card .activity-image-gallery {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(92px, .85fr);
  gap: 4px;
  height: 248px;
  overflow: hidden;
  isolation: isolate;
  background: #173c2e;
}
.activity-card .activity-image-main,
.activity-card .activity-image-side,
.activity-card .activity-image-side a {
  min-width: 0;
  min-height: 0;
}
.activity-card .activity-image-main,
.activity-card .activity-image-side a {
  display: block;
  overflow: hidden;
  background: #244c3b;
}
.activity-card .activity-image-main img,
.activity-card .activity-image-side img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .45s ease, filter .25s ease;
}
.activity-card .activity-image-side {
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 4px;
}
.activity-card .activity-image-side:empty { display: none; }
.activity-card .activity-image-gallery:has(.activity-image-side:empty) { grid-template-columns: 1fr; }
.activity-card .activity-image-gallery:hover img { filter: saturate(1.06); }
.activity-card .activity-image-gallery a:hover img,
.activity-card .activity-image-gallery a:focus-visible img { transform: scale(1.045); }
.activity-card .activity-image-shade {
  position: absolute;
  inset: auto 0 0;
  height: 35%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(7, 28, 19, .68));
}
.activity-card .activity-image-gallery .activity-badges,
.activity-card .activity-image-gallery .activity-duration,
.activity-card .activity-image-gallery .activity-gallery-count {
  position: absolute;
  z-index: 2;
}
.activity-card .activity-image-gallery .activity-badges {
  top: 12px;
  left: 12px;
  display: flex;
  max-width: calc(100% - 106px);
  gap: 6px;
  flex-wrap: wrap;
}
.activity-card .activity-image-gallery .activity-duration {
  top: 12px;
  right: 12px;
}
.activity-card .activity-image-gallery .activity-gallery-count {
  right: 12px;
  bottom: 11px;
  color: #f2f7df;
  font: 10px var(--mono);
  text-shadow: 0 1px 8px rgba(0, 0, 0, .45);
}
.activity-card .activity-image-gallery .activity-tag,
.activity-card .activity-image-gallery .activity-region-tag,
.activity-card .activity-image-gallery .activity-duration {
  border-radius: 4px;
  backdrop-filter: blur(5px);
}
.activity-card .activity-image-gallery .activity-tag { background: rgba(247, 245, 233, .92); }
.activity-card .activity-image-gallery .activity-region-tag { background: rgba(18, 60, 46, .88); }
.activity-card .activity-image-gallery .activity-duration { background: rgba(18, 60, 46, .9); }

@media (max-width: 760px) {
  .activity-card .activity-image-gallery { height: 224px; }
}

/* Catalogue activités : largeur éditoriale dédiée et lecture mobile prioritaire. */
.activities-catalog-shell {
  width: min(100% - 48px, 1560px);
  max-width: 1560px;
  padding-left: 0;
  padding-right: 0;
}
.activities-catalog-shell .section-heading {
  padding-left: 4px;
  padding-right: 4px;
}
.activities-catalog-shell .activity-page-layout {
  grid-template-columns: minmax(0, 1fr) clamp(290px, 21vw, 340px);
  gap: 28px;
}
.activities-catalog-shell .activity-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.activities-catalog-shell .activity-card {
  min-width: 0;
}
.activities-catalog-shell .activity-card .activity-image-gallery {
  height: 276px;
}
.activities-catalog-shell .activity-info {
  padding: 22px 22px 20px;
}
.activities-catalog-shell .activity-info h3 {
  font-size: clamp(21px, 1.65vw, 26px);
}
.activities-catalog-shell .activity-trip-panel {
  top: 22px;
  padding: 24px;
}
.activities-catalog-shell .activity-trip-panel h3 {
  font-size: clamp(25px, 2.2vw, 32px);
}

@media (max-width: 1180px) and (min-width: 901px) {
  .activities-catalog-shell {
    width: min(100% - 36px, 1140px);
  }
  .activities-catalog-shell .activity-page-layout {
    grid-template-columns: minmax(0, 1fr) 282px;
    gap: 18px;
  }
  .activities-catalog-shell .activity-grid {
    gap: 16px;
  }
  .activities-catalog-shell .activity-card .activity-image-gallery {
    height: 238px;
  }
  .activities-catalog-shell .activity-info {
    padding: 18px;
  }
}

@media (max-width: 900px) {
  .activities-catalog-shell {
    width: 100%;
    max-width: none;
    padding-left: 24px;
    padding-right: 24px;
  }
  .activities-catalog-shell .activity-page-layout {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .activities-catalog-shell .activity-trip-panel {
    order: -1;
    position: static;
    padding: 20px;
  }
  .activities-catalog-shell .activity-trip-panel h3 {
    font-size: clamp(25px, 5vw, 34px);
  }
  .activities-catalog-shell .activity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .activities-catalog-shell .activity-card .activity-image-gallery {
    height: clamp(220px, 29vw, 260px);
  }
}

@media (max-width: 680px) {
  .activities-catalog-shell {
    padding-left: 14px;
    padding-right: 14px;
  }
  .activities-catalog-shell .section-heading {
    padding-left: 0;
    padding-right: 0;
  }
  .activities-catalog-shell .activity-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .activities-catalog-shell .activity-card .activity-image-gallery {
    height: clamp(200px, 58vw, 260px);
  }
  .activities-catalog-shell .activity-info {
    padding: 18px 17px 17px;
  }
  .activities-catalog-shell .activity-info h3 {
    font-size: clamp(22px, 6.5vw, 28px);
  }
  .activities-catalog-shell .activity-info p {
    font-size: 12px;
    line-height: 1.55;
  }
  .activities-catalog-shell .activity-trip-panel {
    padding: 18px;
  }
  .activities-catalog-shell .activity-trip-panel .button {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 430px) {
  .activities-catalog-shell .activity-card .activity-image-gallery {
    grid-template-columns: minmax(0, 1.65fr) minmax(76px, .72fr);
    height: 205px;
  }
  .activities-catalog-shell .activity-image-gallery .activity-badges {
    top: 9px;
    left: 9px;
    gap: 4px;
  }
  .activities-catalog-shell .activity-image-gallery .activity-duration {
    top: 9px;
    right: 9px;
  }
  .activities-catalog-shell .activity-image-gallery .activity-gallery-count {
    right: 9px;
    bottom: 9px;
  }
}

/* Tracé réellement synchronisé avec les étapes choisies dans le configurateur. */
.stylized-route-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.stylized-route-casing,
.stylized-route-line {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.stylized-route-casing { stroke: rgba(12, 42, 31, .5); stroke-width: 8; }
.stylized-route-line { stroke: #eb815b; stroke-width: 3; stroke-dasharray: 7 7; }
.stylized-route-stop { fill: #f4c968; stroke: #fff9e8; stroke-width: 1; }
.map-route-line { display: none; }

/* Roadbook premium : écran, impression et export PDF navigateur. */
#detail-modal .detail-dialog:has(.roadbook-sheet) {
  width: min(1080px, calc(100% - 30px));
  max-height: calc(100vh - 28px);
  overflow-y: auto;
  background: #f7f5ed;
}
#detail-modal .detail-dialog:has(.roadbook-sheet) #detail-content { min-width: 0; }
.roadbook-sheet {
  max-width: none;
  padding: 0;
  overflow: hidden;
  background: #f7f5ed;
  color: #173c2e;
}
.roadbook-cover {
  position: relative;
  min-height: 430px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-image: linear-gradient(110deg, rgba(7, 31, 23, .88), rgba(7, 31, 23, .22)), var(--roadbook-cover-image);
  background-size: cover;
  background-position: center;
  color: #fffdf5;
}
.roadbook-cover-overlay { position: relative; z-index: 1; max-width: 720px; padding: 52px 54px 48px; }
.roadbook-cover-kicker { color: #f4c968; font: 10px var(--mono); letter-spacing: .14em; }
.roadbook-cover h2 { margin: 18px 0 22px; font: 700 clamp(38px, 6vw, 72px) var(--sans); letter-spacing: -.08em; line-height: .94; }
.roadbook-cover h2 em { color: #d7eea2; font: 400 .9em var(--serif); letter-spacing: -.06em; }
.roadbook-cover p { margin: 0 0 8px; color: #fffdf5; font: 600 15px var(--sans); }
.roadbook-cover-date { color: #d7e2d3; font: 11px var(--mono); }
.roadbook-cover-stamp { position: absolute; top: 38px; right: 42px; z-index: 1; display: grid; place-items: center; width: 94px; height: 94px; border: 1px solid #f4c968; border-radius: 50%; color: #f4c968; font: 700 12px var(--mono); letter-spacing: .12em; line-height: 1.1; text-align: center; transform: rotate(9deg); }
.roadbook-intro,
.roadbook-map-section,
.roadbook-route-overview,
.roadbook-itinerary { padding: 42px 54px; }
.roadbook-header { margin: 0 0 24px; padding: 0 0 20px; border-bottom: 1px solid #d1dccc; }
.roadbook-header h2 { margin: 7px 0 10px; color: #173c2e; font: 700 34px var(--sans); letter-spacing: -.06em; }
.roadbook-header p { max-width: 720px; margin: 0; color: #5d7064; font-size: 13px; line-height: 1.6; }
.roadbook-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.roadbook-summary-grid > div { min-width: 0; padding: 15px; border: 1px solid #d5dfd1; background: #fffdf7; }
.roadbook-summary-grid span,
.roadbook-summary-grid small { display: block; color: #687b6e; font: 9px var(--mono); }
.roadbook-summary-grid strong { display: block; margin: 8px 0 4px; color: #173c2e; font: 700 16px var(--sans); line-height: 1.15; }
.roadbook-section-heading { margin-bottom: 20px; }
.roadbook-section-heading h3 { margin: 6px 0 8px; color: #173c2e; font: 700 30px var(--sans); letter-spacing: -.06em; }
.roadbook-section-heading p { max-width: 620px; margin: 0; color: #617467; font-size: 12px; line-height: 1.55; }
.roadbook-map-section { background: #e8efe4; }
.roadbook-route-map { position: relative; min-height: 450px; overflow: hidden; padding: 18px; border-radius: 14px; background: linear-gradient(135deg, #0d3428, #1d5641); color: #eef5df; box-shadow: 0 12px 0 #d5e0d2; }
.roadbook-route-map:before { content: ''; position: absolute; inset: 0; opacity: .17; background: repeating-linear-gradient(27deg, transparent 0 31px, #e7f1d0 32px 33px), repeating-linear-gradient(117deg, transparent 0 48px, #e7f1d0 49px 50px); transform: scale(1.25) rotate(-7deg); }
.roadbook-route-map-heading { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 12px; color: #cad9bd; font: 10px var(--mono); letter-spacing: .08em; }
.roadbook-route-map-heading b { color: #f4c968; font-weight: 500; }
.roadbook-route-map svg { position: relative; z-index: 1; display: block; width: 100%; height: 370px; margin-top: 10px; overflow: visible; }
.roadbook-map-land { fill: #2b674c; opacity: .95; }
.roadbook-map-coast { fill: none; stroke: #a8ca86; stroke-width: .45; opacity: .7; }
.roadbook-route-map-casing,
.roadbook-route-map-line { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.roadbook-route-map-casing { stroke: #08271e; stroke-width: 8; opacity: .65; }
.roadbook-route-map-line { stroke: url(#roadbook-route-gradient); stroke-width: 3.5; stroke-dasharray: 8 6; }
.roadbook-route-map-stop circle { fill: #eb815b; stroke: #fff8df; stroke-width: .7; }
.roadbook-route-map-stop text { fill: #fff; font: 700 2.1px var(--mono); text-anchor: middle; }
.roadbook-route-map-legend { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 18px; color: #b9cdb9; font: 9px var(--mono); }
.roadbook-route-map-legend i,
.roadbook-route-map-legend b { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 50%; background: #f4c968; vertical-align: -1px; }
.roadbook-route-map-legend b { width: 17px; height: 3px; border-radius: 0; background: #eb815b; vertical-align: 2px; }
.roadbook-route-map-empty { display: grid; min-height: 180px; place-items: center; color: #d7e7d0; font: 11px var(--mono); text-align: center; }
.roadbook-route-overview { background: #fffdf7; }
.roadbook-transfer-list { display: grid; gap: 9px; }
.roadbook-transfer-row { display: grid; grid-template-columns: 34px minmax(170px, .9fr) 1.3fr; gap: 16px; align-items: start; padding: 15px 0; border-top: 1px solid #dce4d8; }
.roadbook-transfer-number { color: #eb815b; font: 700 12px var(--mono); }
.roadbook-transfer-row strong { display: block; color: #173c2e; font-size: 13px; }
.roadbook-transfer-row strong span { color: #eb815b; padding: 0 4px; }
.roadbook-transfer-row small { display: block; margin-top: 5px; color: #738275; font: 10px var(--mono); line-height: 1.4; }
.roadbook-transfer-row p { margin: 0; color: #5a6f60; font-size: 11px; line-height: 1.45; }
.roadbook-transfer-row p b,
.roadbook-transfer-row p em { display: block; color: #173c2e; font: 10px var(--mono); font-style: normal; }
.roadbook-transfer-row p em { margin-top: 5px; color: #c65e3d; }
.roadbook-transfer-map { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(190px, .72fr) 1.28fr; align-items: stretch; min-height: 126px; overflow: hidden; border: 1px solid #d9e4d5; border-radius: 10px; background: #edf3e9; }
.roadbook-transfer-map-label { display: flex; flex-direction: column; justify-content: center; gap: 9px; padding: 16px 18px; background: #e3ede0; }
.roadbook-transfer-map-label span { color: #eb815b; font: 9px var(--mono); letter-spacing: .08em; }
.roadbook-transfer-map-label strong { color: #173c2e; font: 700 14px var(--sans); line-height: 1.2; }
.roadbook-transfer-map-label i { color: #eb815b; font-style: normal; padding: 0 3px; }
.roadbook-transfer-map svg { display: block; width: 100%; height: 126px; background: linear-gradient(135deg, #d8ead5, #f6f3c9); }
.roadbook-transfer-land { fill: #b2cfae; opacity: .72; }
.roadbook-transfer-path-casing,
.roadbook-transfer-path { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.roadbook-transfer-path-casing { stroke: #183c2e; stroke-width: 7; opacity: .72; }
.roadbook-transfer-path { stroke-width: 3; stroke-dasharray: 7 5; }
.roadbook-transfer-stop { fill: #eb815b; stroke: #fffdf5; stroke-width: 1; }
.roadbook-empty-note { color: #617467; font-size: 12px; }
.roadbook-itinerary { background: #eef3ea; }
.roadbook-stage { overflow: hidden; padding: 0; border: 1px solid #d6e0d2; border-radius: 14px; background: #fffdf7; box-shadow: 0 6px 0 #dce6d9; }
.roadbook-stage + .roadbook-stage { margin-top: 24px; }
.roadbook-stage-visual { position: relative; display: grid; grid-template-columns: 2fr 1fr; gap: 5px; height: 255px; background: #173c2e; }
.roadbook-stage-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.roadbook-stage-visual > div { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 5px; min-width: 0; }
.roadbook-stage-visual:after { content: ''; position: absolute; inset: auto 0 0; height: 46%; background: linear-gradient(transparent, rgba(7, 31, 23, .78)); pointer-events: none; }
.roadbook-stage-visual > span { position: absolute; z-index: 1; left: 20px; bottom: 16px; color: #fffdf5; font: 10px var(--mono); letter-spacing: .08em; }
.roadbook-stage-head { display: flex; align-items: baseline; gap: 12px; padding: 22px 24px 0; margin: 0; border: 0; }
.roadbook-step { flex: 0 0 auto; }
.roadbook-stage-head h3 { min-width: 0; margin: 0; color: #173c2e; font: 700 25px var(--sans); line-height: 1.05; }
.roadbook-stage-head h3 small { color: #718174; font-size: 12px; font-weight: 500; }
.roadbook-date { margin-left: auto; text-align: right; }
.roadbook-desc { margin: 10px 24px 0; color: #53675a; font-size: 12px; line-height: 1.55; }
.roadbook-stage-details { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 18px 24px 0; }
.roadbook-box { min-width: 0; padding: 14px; border: 1px solid #dce5d8; border-radius: 8px; background: #f4f7ef; }
.roadbook-box-kicker { display: block; margin-bottom: 7px; color: #eb815b; font: 9px var(--mono); letter-spacing: .08em; }
.roadbook-box strong { display: block; color: #173c2e; font-size: 12px; line-height: 1.35; }
.roadbook-box small { display: block; margin-top: 5px; color: #65776a; font: 10px var(--mono); line-height: 1.45; }
.roadbook-box ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.roadbook-box li { color: #173c2e; font-size: 11px; line-height: 1.35; }
.roadbook-box li small { margin-top: 2px; }
.roadbook-transit-note { margin: 18px 24px 24px; padding: 14px 16px; border-left: 3px solid #eb815b; border-radius: 0 8px 8px 0; background: #fff3eb; }
.roadbook-transit-note b { color: #173c2e; font-size: 11px; }
.roadbook-transit-note span,
.roadbook-transit-note small { display: block; margin-top: 5px; color: #617467; font: 10px var(--mono); line-height: 1.45; }
.roadbook-transit-note span strong { color: #c65e3d; }
.roadbook-transit-note small b { color: #173c2e; font: inherit; }
.roadbook-actions { margin: 0; padding: 22px 54px 30px; border-top: 1px solid #d5dfd1; background: #f7f5ed; }

@media (max-width: 720px) {
  #detail-modal .detail-dialog:has(.roadbook-sheet) { width: calc(100% - 18px); max-height: calc(100vh - 18px); }
  .roadbook-cover { min-height: 390px; }
  .roadbook-cover-overlay { padding: 38px 25px 34px; }
  .roadbook-cover-stamp { top: 20px; right: 20px; width: 70px; height: 70px; font-size: 9px; }
  .roadbook-intro,
  .roadbook-map-section,
  .roadbook-route-overview,
  .roadbook-itinerary { padding: 30px 20px; }
  .roadbook-summary-grid { grid-template-columns: 1fr 1fr; }
  .roadbook-section-heading h3 { font-size: 26px; }
  .roadbook-route-map { min-height: 360px; padding: 13px; }
  .roadbook-route-map svg { height: 285px; }
  .roadbook-transfer-row { grid-template-columns: 28px 1fr; gap: 8px 12px; }
  .roadbook-transfer-row p { grid-column: 2; }
  .roadbook-transfer-map { grid-template-columns: 1fr; }
  .roadbook-transfer-map svg { height: 118px; }
  .roadbook-stage-visual { height: 210px; }
  .roadbook-stage-head { display: grid; grid-template-columns: auto 1fr; gap: 8px; padding: 18px 16px 0; }
  .roadbook-stage-head h3 { font-size: 21px; }
  .roadbook-date { grid-column: 2; margin: 0; text-align: left; }
  .roadbook-desc { margin-left: 16px; margin-right: 16px; }
  .roadbook-stage-details { grid-template-columns: 1fr; margin-left: 16px; margin-right: 16px; }
  .roadbook-transit-note { margin-left: 16px; margin-right: 16px; }
  .roadbook-actions { display: grid; gap: 8px; padding: 18px 20px 24px; }
  .roadbook-actions .button { width: 100%; }
}

@page { size: A4; margin: 12mm; }
@media print {
  html, body { background: #fff !important; }
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body * { visibility: hidden; }
  .detail-modal.open,
  .detail-modal.open .detail-dialog,
  .detail-modal.open #detail-content,
  .detail-modal.open .roadbook-sheet,
  .detail-modal.open .roadbook-sheet * { visibility: visible; }
  .detail-modal.open { display: block !important; position: static !important; inset: auto !important; }
  .detail-modal.open .detail-backdrop,
  .detail-modal.open .detail-close,
  .roadbook-actions { display: none !important; }
  #detail-modal .detail-dialog:has(.roadbook-sheet) { position: static !important; width: auto !important; max-width: none !important; max-height: none !important; overflow: visible !important; margin: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: #fff !important; }
  #detail-modal .detail-dialog:has(.roadbook-sheet) #detail-content { overflow: visible !important; }
  .roadbook-sheet { position: static !important; left: auto !important; top: auto !important; width: 100% !important; max-width: none !important; overflow: visible !important; background: #fff !important; }
  .roadbook-cover { height: 240mm; min-height: 0; page-break-after: always; }
  .roadbook-intro { page-break-after: always; }
  .roadbook-map-section { page-break-after: always; }
  .roadbook-route-overview { page-break-after: always; }
  .roadbook-transfer-row,
  .roadbook-transfer-map { break-inside: avoid; page-break-inside: avoid; }
  .roadbook-stage { break-inside: avoid; page-break-inside: avoid; box-shadow: none; margin-bottom: 8mm; }
  .roadbook-stage + .roadbook-stage { margin-top: 0; }
  .roadbook-stage-visual { height: 55mm; }
  .roadbook-route-map,
  .roadbook-transfer-map { box-shadow: none; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Architecture de navigation : le configurateur est un brouillon isolé. */
.planner-current-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border: 1px solid #6f8e7b;
  border-radius: 999px;
  background: #173c2e;
  color: #e3f2bc;
  font: 10px var(--mono);
  white-space: nowrap;
}
.planner-current-badge[data-state="empty"] {
  border-color: #db9a72;
  background: #fff3eb;
  color: #9b4e32;
}
.planner-current-badge[data-state="saved"] {
  border-color: #b8d875;
  background: #2d5d42;
  color: #eff9c9;
}
.planner-save-button { min-height: 38px; padding: 10px 13px; }
.planner-export-note { display: block; margin-top: 10px; color: #6f8175; font: 10px var(--mono); line-height: 1.45; }
.studio-isolation-note { max-width: 640px; margin: 12px 0 0; color: #b9cbb8; font: 10px var(--mono); line-height: 1.5; }
.trip-drawer-actions { display: grid; gap: 8px; margin-top: 18px; }
.trip-drawer-actions .button { width: 100%; text-align: center; }
.trip-drawer-activities { display: grid; gap: 10px; margin-top: 18px; }
.trip-drawer-subheading { display: grid; gap: 4px; padding: 0 2px 4px; }
.trip-drawer-subheading strong { color: #173c2e; font-size: 14px; }
.trip-drawer-activity-list { display: grid; gap: 7px; }
.trip-drawer-activity { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid #d4dfd1; border-radius: 11px; background: #fff; color: #123b2e; }
.trip-drawer-activity:hover { border-color: var(--orange); transform: translateX(3px); }
.trip-drawer-activity strong, .trip-drawer-activity small { display: block; }
.trip-drawer-activity strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.trip-drawer-activity small { margin-top: 3px; color: #62776a; font: 10px var(--mono); }
.trip-drawer-activity > span:last-child { flex: 0 0 auto; color: var(--orange); font: 11px var(--mono); }
.route-unplaced-activities { margin-top: 42px; padding: 28px; border: 1px solid #d5dfd1; border-radius: 16px; background: #e8f0e5; }
.route-unplaced-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 22px; }
.route-unplaced-heading h2 { margin: 0; color: var(--green); font-size: clamp(25px, 3vw, 38px); letter-spacing: -.06em; line-height: 1; }
.route-unplaced-heading > p { max-width: 470px; margin: 0; color: #5d7163; font-size: 12px; line-height: 1.55; }
.route-unplaced-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.route-unplaced-activity { display: grid; grid-template-columns: 116px 1fr; min-width: 0; overflow: hidden; border: 1px solid #cbd9c8; border-radius: 12px; background: #fff; color: var(--green); transition: transform .2s, border-color .2s; }
.route-unplaced-activity:hover { transform: translateY(-2px); border-color: var(--orange); }
.route-unplaced-activity-image { min-height: 132px; background-position: center; background-size: cover; }
.route-unplaced-activity-copy { display: grid; align-content: center; gap: 6px; min-width: 0; padding: 14px; }
.route-unplaced-activity-copy small { color: #6a7d70; font: 9px var(--mono); text-transform: uppercase; }
.route-unplaced-activity-copy strong { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 14px; line-height: 1.12; }
.route-unplaced-activity-copy > span { color: #b15d3e; font: 10px var(--mono); line-height: 1.4; }
.tour-pres-actions { align-items: center; }

@media (max-width: 760px) {
  .planner-current-badge { width: 100%; justify-content: center; order: -1; }
  .planner-save-button { width: 100%; }
  .route-unplaced-activities { padding: 20px; }
  .route-unplaced-heading { align-items: stretch; flex-direction: column; gap: 12px; }
  .route-unplaced-grid { grid-template-columns: 1fr; }
}

@media print {
  body[data-page="route-detail"] .site-header,
  body[data-page="route-detail"] .site-footer,
  body[data-page="route-detail"] #floating-trip-access,
  body[data-page="route-detail"] .mobile-bottom-dock,
  body[data-page="route-detail"] .tour-pres-actions,
  body[data-page="route-detail"] .page-detail-aside,
  body[data-page="route-detail"] .trip-drawer { display: none !important; }
  body[data-page="route-detail"] #route-page,
  body[data-page="route-detail"] #route-page * { visibility: visible; }
  body[data-page="route-detail"] .tour-pres-hero { min-height: 210mm; }
  body[data-page="route-detail"] .tour-pres-hero,
  body[data-page="route-detail"] .tour-step-card { break-inside: avoid; page-break-inside: avoid; }
}

/* Une galerie non vérifiée reste lisible sans afficher un faux reportage. */
.activity-image-gallery--pending {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 248px;
  background:
    radial-gradient(circle at 25% 25%, rgba(236, 224, 163, .22), transparent 36%),
    linear-gradient(135deg, #123b2e, #275642);
}
.activity-media-pending,
.activity-gallery-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  text-align: center;
  color: #f4f4e8;
}
.activity-media-pending span,
.activity-gallery-empty > span {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid rgba(236, 224, 163, .55);
  border-radius: 50%;
  color: #e6da92;
}
.activity-media-pending strong,
.activity-gallery-empty strong { font: 600 14px var(--sans); }
.activity-media-pending small,
.activity-gallery-empty p {
  max-width: 300px;
  margin: 0;
  color: #c3d5c6;
  font: 10px/1.5 var(--mono);
}
.activity-gallery-empty {
  min-height: 280px;
  padding: 36px 24px;
  border: 1px solid #d6dfd2;
  border-radius: 12px;
  background: linear-gradient(135deg, #123b2e, #275642);
  box-shadow: 0 14px 30px rgba(18, 39, 26, .12);
}
.activity-hero-banner--pending {
  background:
    radial-gradient(circle at 75% 20%, rgba(230, 218, 146, .2), transparent 36%),
    linear-gradient(135deg, #123b2e, #275642) !important;
}
.activity-image-gallery img.is-broken { display: none; }

@media (max-width: 680px) {
  .activity-image-gallery--pending { min-height: clamp(200px, 58vw, 260px); }
  .activity-gallery-empty { min-height: 220px; padding: 28px 18px; }
}
