/* Application plein écran : accueil fixe, défilement limité au contenu des étapes. */
html,body{height:100%;height:100dvh;overflow:hidden;margin:0}body{background:#f7faf9;color:#12333e}body::before,body::after{display:none}.app-nav{position:fixed;inset:0 0 auto;height:84px;box-sizing:border-box;padding:16px 4vw;z-index:20;background:rgba(247,250,249,.96);border:0}.app-nav .brand{border:0;background:none;padding:0;cursor:pointer}.app-nav .brand img{width:125px;height:auto}.app-nav .ghost{padding:12px 19px}.app-shell{position:fixed;inset:84px 0 0;max-width:none;margin:0;padding:0}.welcome-screen{height:100%;padding:18px 4vw 36px;box-sizing:border-box;position:relative}.welcome-frame{height:100%;width:100%;border-radius:32px;overflow:hidden;position:relative;background:radial-gradient(ellipse at 75% 70%,#15454b 0,transparent 60%),#071c24;box-shadow:0 0 0 7px #18363e,0 0 0 8px #48656a,0 25px 70px #193e432c;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:28px 38px;box-sizing:border-box}.welcome-copy{position:relative;text-align:center;z-index:2}.welcome-copy h1{font-size:clamp(54px,9vw,132px);line-height:.96;letter-spacing:-.065em;margin:10px 0 20px;color:white;font-weight:800}.welcome-copy h1 em{color:#54dbd3;font-style:normal}.welcome-copy p{color:#b1ccce;font-size:clamp(15px,1.5vw,21px);margin:0 0 30px}.welcome-cta{padding:20px 32px;font-size:18px;gap:35px;display:inline-flex;background:#ff6939;box-shadow:0 10px 40px #ff693933}.signal-label{font-size:10px;letter-spacing:.2em;display:flex;gap:9px;align-items:center;z-index:2;color:#a8cccd}.signal-label i{height:7px;width:7px;border-radius:50%;background:#5ce2ce;box-shadow:0 0 15px #5ce2ce}.screen-signature{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.19em;color:#6d9297;z-index:2}.welcome-grid{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(#58d9da 1px,transparent 1px),linear-gradient(90deg,#58d9da 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(transparent,#000);transform:perspective(650px) rotateX(25deg) scale(1.5);transform-origin:bottom}.welcome-scan{position:absolute;inset:-15% 0 auto;height:18%;background:linear-gradient(transparent,#5ddddb15,transparent);border-bottom:1px solid #6eead52b;animation:screenSweep 9s linear infinite;pointer-events:none}.screen-aura{position:absolute;inset:20% 12%;background:#6cf3dd;filter:blur(120px);opacity:.15;pointer-events:none}@keyframes screenSweep{to{transform:translateY(700%)}}
.booking-app{height:100%;display:flex;flex-direction:column;max-width:1600px;margin:auto;padding:0 4vw;box-sizing:border-box}.flow-top{flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;border-bottom:1px solid #dce7e7;min-height:62px}.flow-exit{position:absolute;left:0;border:0;background:none;color:#43616b;font-size:28px;cursor:pointer}.flow-steps{display:flex;gap:24px}.flow-steps button{border:0;background:none;color:#82989e;font:inherit;font-size:12px;padding:16px 5px;border-bottom:2px solid transparent;cursor:pointer}.flow-steps button span{margin-left:5px}.flow-steps button.current{color:#076e78;border-bottom-color:#0f959b;font-weight:700}#campaignForm{display:flex;flex-direction:column;min-height:0;flex:1;margin:0}.flow-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:28px 2px}.flow-pane{max-width:1280px;margin:0 auto;padding:0}.pane-title{margin:0 0 25px}.pane-title>span{font-size:10px;color:#108c94;letter-spacing:.17em;font-weight:700}.pane-title h2{font-size:clamp(28px,3vw,42px);letter-spacing:-.04em;margin:6px 0 8px;outline:none}.pane-title p{margin:0;color:#6a8086;font-size:14px}.date-layout{display:grid;grid-template-columns:minmax(210px,.65fr) minmax(370px,1fr);gap:50px;max-width:960px;margin:auto}.date-mode label{display:grid;gap:8px;font-size:13px;margin-bottom:20px}.date-mode input,.date-mode select{width:100%;box-sizing:border-box}.duration-hint{margin-top:24px;padding:24px;border-radius:20px;background:#eaf3f0}.duration-hint b{font-size:21px;line-height:1.25}.duration-hint p{font-size:13px;color:#657b80;line-height:1.6}.text-button{padding:0;border:0;background:none;color:#087e86;font:inherit;font-size:13px;cursor:pointer}.date-picker .day-booking{padding:18px;margin:0;max-width:none}.day-booking>p{font-size:12px;line-height:1.5;color:#627980}.calendar-day span{min-height:48px}.calendar-day small{font-size:10px}.calendar-week{margin-top:12px}.calendar-head h3{margin:4px}.calendar-footer{margin-top:12px;font-size:12px}.calendar-footer button{padding:7px 10px;font-size:11px}.range-options{margin-top:14px;font-size:12px}.range-options summary{cursor:pointer}.range-options .date-range-controls{margin-top:12px}.booking-notice{font-size:12px;line-height:1.6;padding:14px}.flow-bottom{flex-shrink:0;border-top:1px solid #dce7e7;background:#f7faf9;padding:10px 0 16px;z-index:3}.flow-bottom-row{display:flex;align-items:center;gap:18px}.flow-total{margin-left:auto;display:grid;gap:2px;text-align:right}.flow-total small{font-size:10px;color:#70878c}.flow-total b{font-size:23px}.flow-bottom button{padding:14px 22px}.flow-notices:has(:not(:empty)){padding-bottom:6px}.flow-notices p,.flow-notices .form-message{margin:0;font-size:12px}.flow-notices p{color:#b54429}.flow-notices .form-message:empty{display:none}
.spot-layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(340px,1fr);gap:26px;align-items:start}.spot-map{position:sticky;top:0}.spot-map .map-shell{display:flex;flex-direction:column;height:560px;min-height:0;border-radius:22px;border:1px solid #dce7e7;opacity:1;transform:none;filter:none}.spot-map .map-view{position:relative;flex:1;min-height:0}.spot-map iframe{height:100%;width:100%;border:0}.spot-map .map-panel{padding:12px 16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.spot-map .map-panel .step{grid-column:1/-1;font-size:10px}.spot-map .place{padding:10px 0;grid-template-columns:12px 1fr 15px;gap:6px}.spot-map .place b{font-size:14px}.spot-map .place small{font-size:11px}.spot-map .map-boot{display:none}#screenGrid .screen-group{padding:15px}#screenGrid .venue-screen-cards{grid-template-columns:1fr;gap:12px;margin-top:12px}#screenGrid .screen-group h3{font-size:18px}#screenGrid .screen-bundle{font-size:12px}#screenGrid .screen-photo-card .screen-choice{display:grid;grid-template-columns:140px 22px 1fr;padding:0;gap:8px 10px;align-items:center;min-height:96px;opacity:1;transform:none;filter:none}#screenGrid .screen-photo-card .screen-location-photo{grid-column:1;grid-row:1/4;width:140px;height:96px;aspect-ratio:auto;object-fit:cover;margin:0}#screenGrid .screen-photo-card .screen-choice input{grid-column:2;grid-row:1/4}#screenGrid .screen-photo-card .screen-choice strong{grid-column:3;margin-top:15px;font-size:14px}#screenGrid .screen-photo-card .screen-choice small{grid-column:3;margin-bottom:15px;font-size:11px}.photo-open{padding:8px 12px;font-size:11px}.network-choice{padding:15px!important;font-size:14px}.network-choice small{font-size:11px}.video-pane,.checkout-pane{max-width:900px}.video-pane .form-grid{margin-bottom:24px}.video-pane .video-row{gap:24px}.video-pane .drop{min-height:250px}.video-pane fieldset{padding:0}.checkout-pane .summary{display:grid;grid-template-columns:1fr auto;padding:24px;border-radius:20px;background:white;border:1px solid #dce7e7;gap:26px}.checkout-pane #submitCampaign{grid-column:1/-1;width:100%;justify-content:center}.checkout-pane .summary small{max-height:150px}.checkout-pane .legal{font-size:11px;line-height:1.7}.checkout-pane .price-breakdown{max-width:none}#ratesDialog{max-width:1100px;width:94vw;max-height:90dvh;padding:50px 28px 24px;overflow:auto}#ratesDialog .offers{padding:0;margin:0}#ratesDialog .section-title h2{font-size:28px}#ratesDialog .offer-grid{gap:14px}#ratesDialog .offer-grid article{padding:22px}.no-script{position:fixed;inset:auto 0 0;background:white;padding:12px;text-align:center;z-index:100}
@media(max-width:760px){.app-nav{height:68px;padding:12px 18px}.app-nav .brand img{width:92px}.app-nav .ghost{font-size:11px;padding:9px 12px}.app-nav .nav-actions{gap:7px}.app-shell{top:68px}.welcome-screen{padding:12px 18px 24px}.welcome-frame{padding:22px 20px;border-radius:23px}.welcome-copy h1{font-size:clamp(56px,16vw,95px)}.welcome-copy p{font-size:14px;margin-bottom:26px}.welcome-cta{font-size:14px;padding:18px 20px;gap:15px}.signal-label{font-size:8px;letter-spacing:.12em}.screen-signature{font-size:7px;line-height:1.8}.booking-app{padding:0 16px}.flow-top{min-height:54px}.flow-steps{gap:10px}.flow-steps button{font-size:10px}.flow-exit{font-size:22px}.flow-scroll{padding:20px 0}.pane-title{margin-bottom:18px}.pane-title p{font-size:12px}.date-layout,.spot-layout{grid-template-columns:1fr;gap:18px}.date-mode .duration-hint{display:none}.date-mode label{margin-bottom:10px}.date-mode .booking-notice{margin:0;font-size:11px;padding:10px}.date-picker .day-booking{padding:12px}.flow-bottom-row{gap:8px}.flow-bottom button{padding:12px 14px;font-size:12px}.flow-total b{font-size:18px}.flow-total small{font-size:8px}.spot-map{position:relative;grid-row:1}.spot-map .map-shell{height:290px}.spot-map .map-panel{padding:8px 12px;gap:4px}.spot-map .map-panel .step{display:none}.spot-map .place{padding:4px}.video-pane .form-grid{grid-template-columns:1fr}.video-pane .video-row{grid-template-columns:1fr}.video-pane .drop{min-height:180px}.checkout-pane .summary{grid-template-columns:1fr;padding:18px;gap:18px}.checkout-pane .summary .price{text-align:left}.checkout-pane .summary small{max-height:100px}#ratesDialog .offer-grid{grid-template-columns:1fr}#ratesDialog{padding:45px 18px 20px}}
@media(max-height:560px){.welcome-frame{padding:15px 30px}.welcome-copy h1{font-size:44px;margin:8px 0}.welcome-copy p{margin-bottom:12px;font-size:12px}.welcome-cta{padding:10px 20px;font-size:13px}.screen-signature{display:none}.welcome-screen{padding-bottom:20px}.flow-scroll{padding:15px 0}}
@media(prefers-reduced-motion:reduce){.welcome-scan{animation:none}.welcome-grid{transform:none}}
.video-pane .form-grid{grid-template-columns:1fr 1fr}
#screenGrid .screen-photo-card .screen-location-photo{object-fit:contain;background:#10262b}
.app-nav .brand{height:auto}.spot-map .map-panel{flex-shrink:0}.spot-map .place:first-of-type{margin-top:0}
@media(max-width:760px){.video-pane .form-grid{grid-template-columns:1fr}}

/* v16 : accueil centré sur le logo et action principale. */
.cinema-home .app-nav .brand{visibility:hidden}
.welcome-frame{justify-content:center;background:radial-gradient(ellipse at 50% 45%,#fff 0%,#edfafa 60%,#d9f1ef 100%);box-shadow:0 0 0 7px #173942,0 0 0 8px #537b80,0 25px 70px #193e432c}
.welcome-copy{width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(20px,4vh,44px)}
.welcome-copy h1{margin:0;width:min(760px,76%);line-height:1}
.welcome-logo{width:100%;max-height:42dvh;object-fit:contain;display:block;filter:drop-shadow(0 12px 30px #087d9312)}
.welcome-cta{font-size:clamp(22px,2.6vw,36px);min-height:88px;padding:26px 48px;width:min(680px,94%);gap:30px;line-height:1.2;border-radius:24px}
.welcome-grid{opacity:.07}.welcome-scan{background:linear-gradient(transparent,#2fc5c51c,transparent);border-bottom-color:#2fc5c538}
.video-pane .form-grid{gap:24px;margin:0 0 30px}
.video-pane .form-grid label{font-size:16px;line-height:1.5}
.video-pane .form-grid input,.video-pane .form-grid select{min-height:76px;padding:22px 24px;font-size:19px;border-radius:16px;margin-top:12px;border-color:#c8ddde;background:#fff}
.flow-total small{font-size:12px;color:#087f80;font-weight:650}
@media(max-width:760px){.welcome-copy h1{width:95%}.welcome-logo{max-height:38dvh}.welcome-cta{width:100%;font-size:22px;min-height:80px;padding:23px 20px;gap:15px}.video-pane .form-grid input,.video-pane .form-grid select{min-height:68px;padding:18px 16px;font-size:17px}.video-pane .form-grid label{font-size:15px}.flow-total small{font-size:10px;max-width:160px}}
@media(max-height:560px){.welcome-copy{gap:16px}.welcome-copy h1{width:min(500px,64%)}.welcome-logo{max-height:32dvh}.welcome-cta{min-height:58px;padding:14px 24px;font-size:22px;width:min(520px,90%)}}
/* v21 — lieux compacts et période directement accessible */
.venue-fold{border:1px solid #bad5d7;border-radius:18px;background:#f4f8f8;margin-bottom:12px;overflow:hidden}
.venue-fold>summary{list-style:none;display:flex;align-items:center;gap:16px;padding:20px;cursor:pointer}.venue-fold>summary::-webkit-details-marker{display:none}.venue-fold>summary>span:last-child{margin-left:auto}.venue-fold summary strong{font-size:21px}.venue-fold summary small{display:block;font-size:12px;color:#53727b;margin-top:5px}.venue-placeholder{width:62px;height:48px;display:grid;place-items:center;background:#d3efed;border:2px solid #25a5ad;border-radius:8px;color:#108e98;font-size:32px;box-shadow:0 3px 10px #16acaa20}.venue-fold .venue-screen-cards,.venue-fold .screen-bundle{margin:14px}.venue-fold[open]>summary{border-bottom:1px solid #d1e1e2}
.range-options{margin-top:20px;padding:18px;background:#e4f0ef;border-radius:14px}.range-options h3{font-size:19px;margin:0 0 14px}.range-options .date-range-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px}.range-options label{font-size:19px;font-weight:650}.range-options input{width:100%;box-sizing:border-box;min-height:58px;font-size:18px;padding:12px;margin-top:8px}.range-options button{grid-column:1/-1;min-height:50px;font-size:16px}
#durationFallback input{display:block;padding:15px;margin:10px 0;font-size:18px}#previewVideo{object-fit:contain}
@media(max-width:420px){.range-options .date-range-controls{grid-template-columns:1fr}.venue-fold>summary{padding:15px}.range-options input{font-size:16px}}

/* Forfaits : même calendrier, période continue visible en lecture seule. */
.plan-day{cursor:default}.plan-day>span{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #dce7e7;border-radius:10px;color:#8a9b9e;background:#f5f8f7;min-height:48px}.plan-day.is-included>span{background:#087e86;color:#fff;border-color:#087e86;font-weight:700}.plan-day.is-included small{color:#fff}.calendar-footer #selectedDaysLabel{line-height:1.6}.day-booking .range-options[hidden],.day-booking #clearDays[hidden]{display:none!important}
