/* Gotrip Planner — styles publics limités aux widgets Gotrip. */
.gt-icon{width:1.15em;height:1.15em;display:inline-block;vertical-align:middle;flex-shrink:0}
.gt-custom-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.gt-custom-icon svg{width:1em;height:1em;fill:currentColor}
.gt-programme{display:grid;gap:28px}
.gt-stage{display:flex;gap:24px;align-items:center}
.gt-stage-copy{flex:1;min-width:0}
.gt-stage-title{font-size:18px;font-weight:700;margin:0 0 10px}
.gt-stage-meta{--gt-meta-icon-size:16px;--gt-separator-size:12px;--gt-separator-color:currentColor;display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 10px;font-size:14px;line-height:1.5}
.gt-stage-meta>span{display:inline-flex;align-items:center;gap:6px;position:relative}
.gt-stage-meta .gt-icon,.gt-stage-meta .gt-custom-icon{width:var(--gt-meta-icon-size);height:var(--gt-meta-icon-size);font-size:var(--gt-meta-icon-size)}
.gt-stage-meta .gt-custom-icon svg{width:100%;height:100%}
.gt-programme:not(.gt-meta-sep-none) .gt-stage-meta>span+span::before{display:inline-block;color:var(--gt-separator-color);font-size:var(--gt-separator-size);margin-right:4px;flex-shrink:0}
.gt-meta-sep-dot .gt-stage-meta>span+span::before{content:'•'}
.gt-meta-sep-line .gt-stage-meta>span+span::before{content:'|'}
.gt-meta-sep-slash .gt-stage-meta>span+span::before{content:'/'}
.gt-stage-description{font-size:15px;line-height:1.65}
.gt-stage-description p{margin:0 0 12px}
.gt-stage-description p:last-child{margin-bottom:0}
.gt-stage-photo{--gt-photo-width:31%;position:relative;flex:0 0 var(--gt-photo-width);width:var(--gt-photo-width);min-width:120px;align-self:stretch;min-height:150px;border-radius:20px;overflow:hidden;box-shadow:0 3px 12px #151a1b0a}
.elementor-widget-gotrip-programme .gt-stage-photo img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.gt-stage-date{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;padding:14px;color:#fff;background:linear-gradient(transparent 45%,#0007);font-size:18px;line-height:1.3;font-weight:500}
.gt-stage-date span{overflow-wrap:anywhere}
.gt-stage-date-plain{font-size:12px;color:#6b7371}
.gt-vehicles{display:grid;row-gap:6px;margin:0;padding-left:1.2em}
.gt-vehicles li{margin:0}
.gt-booking.elementor-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:100px;padding:11px 22px;background-color:#151a1b;color:#fff;transition:background-color .3s,color .3s,border-color .3s}
.gt-booking .elementor-button-content-wrapper{display:flex;align-items:center;justify-content:center;gap:9px}
.gt-booking .elementor-button-icon{display:inline-flex;align-items:center}
.gt-booking .elementor-button-text{flex-grow:1}
.gt-booking .elementor-button-icon svg{width:1.15em;height:1.15em}
.gt-booking[aria-disabled=true]{cursor:default}
.gt-booking:focus-visible{outline:3px solid #d20a10;outline-offset:3px}
.gt-countdown{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:7px 12px;background:#f1f1f1;color:#151a1b;border-radius:20px;font-size:13px;line-height:1.3;vertical-align:middle}
.gt-countdown-text{display:block;white-space:nowrap}
.gt-countdown-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:17px;width:1em;height:1em}
.gt-countdown-icon .gt-icon{width:1em;height:1em}
.gt-countdown-spinner{box-sizing:border-box;border:2px solid #151a1b26;border-color:color-mix(in srgb,currentColor 18%,transparent);border-top-color:currentColor;border-radius:50%;animation:gt-spinner .85s linear infinite}
.gt-hourglass{animation:gt-hourglass 1.1s ease-in-out 2}
.gt-countdown:hover .gt-hourglass{animation:gt-hourglass 1.1s ease-in-out 1}
@keyframes gt-spinner{to{transform:rotate(360deg)}}
@keyframes gt-hourglass{0%,12%{transform:rotate(0)}88%,100%{transform:rotate(360deg)}}
.gt-elevation-image{width:100%;height:auto}
.gt-profile svg{width:100%;height:180px;display:block;touch-action:pan-y;overflow:hidden}
.gt-profile-area{opacity:.85}.gt-profile-area:not(.gt-profile-area-gradient){fill:currentColor}
.gt-profile-line{fill:none;stroke:currentColor;stroke-width:1.2;vector-effect:non-scaling-stroke}
.gt-profile-cursor{stroke:#d20a10;stroke-width:2;vector-effect:non-scaling-stroke}
.gt-cursor-dashed .gt-profile-cursor{stroke-dasharray:8 5}
.gt-cursor-dotted .gt-profile-cursor{stroke-dasharray:1 5;stroke-linecap:round}
.gt-profile-scale{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-weight:500;margin-top:8px}
.gt-profile-output{display:block;font-size:12px;margin-top:10px;min-height:20px;color:#59625c}
.gt-gallery{--gt-slide-width:75%;--gt-nav-offset:12px;position:relative}
.gt-gallery-track{display:grid;gap:14px}
.gt-gallery-track>a{display:block;min-width:0}
.gt-gallery-grid .gt-gallery-track{grid-template-columns:repeat(3,minmax(0,1fr))}
.gt-gallery img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:20px}
.gt-gallery-carousel .gt-gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}
.gt-gallery-carousel .gt-gallery-track::-webkit-scrollbar{display:none;width:0;height:0}
.gt-gallery-carousel .gt-gallery-track>a{flex:0 0 var(--gt-slide-width);scroll-snap-align:start}
.gt-gallery-controls{display:flex;justify-content:flex-end;gap:8px;margin-top:var(--gt-nav-offset)}
.gt-gallery-controls button{background:#151a1b;color:#fff;border:0;border-radius:99px;padding:8px 16px;font:inherit;font-size:18px;line-height:1;cursor:pointer;transition:background-color .3s,color .3s}
.gt-gallery-controls button:hover{background:#d20a10}
.gt-gallery-controls button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.gt-gallery-nav-overlay .gt-gallery-controls{position:absolute;left:var(--gt-nav-offset);right:var(--gt-nav-offset);bottom:var(--gt-nav-offset);margin:0;pointer-events:none}
.gt-gallery-nav-overlay .gt-gallery-controls button{pointer-events:auto}
.gt-fill{--gt-fill-color:#151a1b;--gt-fill-label-gap:8px}
.gt-fill-title{margin:0 0 12px;font-weight:600;font-size:14px}
.gt-fill-track{position:relative;box-sizing:border-box;width:100%;height:20px;border-radius:100px;background:#f1f1f1;overflow:hidden}
.gt-fill-bar{height:100%;width:var(--gt-fill-percent);background:var(--gt-fill-color);border-radius:inherit}
.gt-fill-value{position:absolute;left:calc(var(--gt-fill-percent) + var(--gt-fill-label-gap));top:50%;transform:translateY(-50%);font-size:11px;line-height:1;font-weight:600;white-space:nowrap;color:var(--gt-fill-color)}
.gt-fill-value.is-inside{left:calc(var(--gt-fill-percent) - var(--gt-fill-label-gap));transform:translate(-100%,-50%);color:#fff}
/* La mise en page de la barre reste gérée dans Elementor. */
body .elementor .elementor-element.gotrip-scroll-cta{position:fixed;z-index:9999;left:50%;bottom:calc(var(--gt-bar-bottom,18px) + env(safe-area-inset-bottom,0px));width:min(92vw,var(--gt-bar-max-width,1250px));transform:translate(-50%,var(--gt-bar-distance,32px));opacity:0;visibility:hidden;pointer-events:none;transition:transform var(--gt-bar-duration,.65s) cubic-bezier(.22,1,.36,1),opacity var(--gt-bar-duration,.65s) ease,visibility 0s linear var(--gt-bar-duration,.65s)}
body .elementor .elementor-element.gotrip-scroll-cta.is-visible{transform:translate(-50%,0);opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
@media(max-width:767px){.gt-stage{flex-direction:column;align-items:stretch;gap:12px}.gt-stage-photo{--gt-photo-width:100%;width:var(--gt-photo-width);flex-basis:auto;min-height:180px}.gt-stage-title{font-size:17px}.gt-gallery-grid .gt-gallery-track{grid-template-columns:repeat(2,minmax(0,1fr))}.gt-gallery-carousel{--gt-slide-width:90%}.gt-profile svg{height:140px}body .elementor .elementor-element.gotrip-scroll-cta{width:calc(100vw - 24px);bottom:calc(var(--gt-bar-bottom,12px) + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.gt-countdown-spinner,.gt-hourglass,.gt-countdown:hover .gt-hourglass{animation:none}.gt-booking.elementor-button,.gt-gallery-controls button,body .elementor .elementor-element.gotrip-scroll-cta{transition:none}}

/* V3 : états et programme, avec réglages exposés dans Elementor. */
.gt-status{--gt-status-color:#df9331;--gt-dot-size:7px;display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:100px;background:#fbf2e7;color:#86551b;font-size:11px;line-height:1.3}
.gt-status[data-gotrip-state="open"]{--gt-status-color:#468465;background:#ecf5ef;color:#35684b}
.gt-status[data-gotrip-state="cancelled"]{--gt-status-color:#d20a10;background:#fceced;color:#a51920}
.gt-status[data-gotrip-state="closed"],.gt-status[data-gotrip-state="full"]{--gt-status-color:#687073;background:#f1f1f1;color:#535b5e}
.gt-status-dot{display:block;flex:none;width:var(--gt-dot-size);height:var(--gt-dot-size);border-radius:50%;background:var(--gt-status-color)}
.gt-status[data-gotrip-state="pre"] .gt-status-dot{animation:gt-status-pulse 2.4s ease-out infinite}
@keyframes gt-status-pulse{0%,100%{box-shadow:0 0 0 0 transparent}35%{box-shadow:0 0 0 5px color-mix(in srgb,var(--gt-status-color) 18%,transparent)}70%{box-shadow:0 0 0 9px transparent}}
.gt-programme-accordion{gap:14px}
.gt-stage-accordion{display:block;border:1px solid #e7e9e8;border-radius:20px;background:white;overflow:clip}
.gt-stage-summary{display:flex;align-items:center;gap:18px;list-style:none;cursor:pointer;padding:22px 24px;user-select:none}
.gt-stage-summary::-webkit-details-marker{display:none}
.gt-stage-summary:focus-visible{outline:2px solid #d20a10;outline-offset:-3px}
.gt-day-number{display:grid;place-items:center;min-width:46px;height:46px;padding:8px;background:#f5f4f2;border-radius:12px;font-size:13px;font-weight:600;flex:none}
.gt-summary-copy{min-width:0;flex:1}
.gt-stage-summary .gt-stage-title{display:block;font-size:17px;margin:0 0 5px;line-height:1.4}
.gt-summary-date{display:block;font-size:12px;color:#747a7a}
.gt-stage-toggle{font-size:21px;width:1em;height:1em;position:relative;flex:none;color:#151a1b}
.gt-stage-toggle:before,.gt-stage-toggle:after{content:'';width:12px;height:1.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:currentColor}
.gt-stage-toggle:after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s}
.gt-stage-accordion[open] .gt-stage-toggle:after{transform:translate(-50%,-50%) rotate(0)}
.gt-stage-body{padding:0 24px 24px}
.gt-stage-body .gt-stage-description{margin-bottom:18px}
.gt-stage-body .gt-stage-meta{margin-bottom:20px}
.gt-stage-body .gt-stage-photo{--gt-photo-width:100%;width:var(--gt-photo-width);min-width:0;aspect-ratio:16/9;min-height:0}
.gt-profile-grid{stroke:#e8eae9;stroke-width:1}
.gt-profile-grid line{vector-effect:non-scaling-stroke}
.gt-profile-marker{fill:#d20a10;stroke:white;stroke-width:1;vector-effect:non-scaling-stroke}
.gt-profile svg:focus-visible{outline:2px solid #d20a10;outline-offset:3px}
.gotrip-v3-section{scroll-margin-top:130px}
.gotrip-v3-root{padding-bottom:130px}
.gotrip-v3-root .elementor-heading-title{overflow-wrap:anywhere}
.gotrip-v3-root .elementor-widget-text-editor p:last-child{margin-bottom:0}
.gotrip-v3-root .gotrip-v3-hero{position:relative;overflow:hidden}
.gotrip-v3-root .gotrip-v3-hero-image{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gotrip-v3-root .gotrip-v3-hero-image .elementor-widget-container,.gotrip-v3-root .gotrip-v3-hero-image img{height:100%;width:100%;object-fit:cover}
.gotrip-v3-root .gotrip-v3-hero-shade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gotrip-v3-root .gotrip-v3-hero-copy{position:relative;z-index:1}
.gotrip-v3-root .gotrip-v3-nav .elementor-button{white-space:nowrap}
.gotrip-v3-root .gotrip-v3-nav{overflow-x:auto;scrollbar-width:none}
.gotrip-v3-root .gotrip-v3-nav::-webkit-scrollbar{display:none}
.gotrip-v3-root .gt-booking{max-width:100%}
@media(max-width:767px){.gt-stage-summary{padding:18px 16px;gap:12px}.gt-stage-body{padding:0 16px 18px}.gt-day-number{min-width:40px;height:40px}.gt-stage-summary .gt-stage-title{font-size:16px}.gt-stage-body .gt-stage-photo{min-height:0}.gotrip-v3-root .gotrip-v3-bar-trip{display:none}.gotrip-v3-root{padding-bottom:110px}}
@media(prefers-reduced-motion:reduce){.gt-status[data-gotrip-state="pre"] .gt-status-dot{animation:none}.gt-stage-toggle:after{transition:none}}
.gotrip-v3-hero h1{ text-wrap:balance }

/* Option du widget Galerie : navigation au-dessus des images. */
.gt-gallery-nav-above{display:flex;flex-direction:column}
.gt-gallery-nav-above .gt-gallery-controls{order:-1;margin-top:0;margin-bottom:var(--gt-nav-offset)}
