/* Modern glass surfaces, with readable opaque fallbacks. */
:root{--glass-border:rgba(255,255,255,.19);--glass-shadow:inset 0 1px 0 #ffffff26,0 12px 35px #00000018}
body{background:radial-gradient(ellipse at 95% 45%,#293326 0,transparent 42%),var(--bg)}
html{scroll-padding-top:116px;scroll-padding-bottom:100px}
.header{position:fixed;top:16px;left:24px;right:24px;max-width:1360px;margin:auto;height:80px;padding:0 26px;border:1px solid var(--glass-border);border-radius:26px;background:rgba(23,29,24,.82);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);box-shadow:var(--glass-shadow);gap:20px}
.header nav a{padding:10px 0}
.phone-header,.menu-toggle{border-radius:999px;background:linear-gradient(145deg,#ffffff12,#ffffff04);border:1px solid #ffffff29;box-shadow:inset 0 1px 0 #ffffff16;min-height:44px}
.hero{min-height:760px}
.hero-content{padding-top:155px;padding-bottom:48px}
.hero-bottom{margin-top:55px}
.hero-call{display:none!important}
.actions{gap:14px}
.button{border-radius:999px;min-height:52px;padding:15px 24px;gap:22px;position:relative;border:1px solid #ffffff3b;box-shadow:var(--glass-shadow);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s,background .25s}
.button.gold{background:linear-gradient(150deg,#ffe5a1ed,#e8c472ed 58%,#d8b15fef);border-color:#fff0bf8a;color:#191f17;box-shadow:inset 0 1px 1px #fff9deaa,0 7px 24px #b7974426}
.button.dark{background:linear-gradient(140deg,#35432ff5,#202a1ff5);border-color:#ffffff35;box-shadow:inset 0 1px 0 #ffffff29,0 6px 18px #21301b1c}
.glass-secondary{background:linear-gradient(145deg,#ffffff20,#ffffff09);color:#fff}
.button svg{flex-shrink:0}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-3px);border-color:#fff8;box-shadow:inset 0 1px 1px #ffffff55,0 12px 28px #0003}.service:hover{border-color:#e8c47266;background-color:#ffffff08}.phone-header:hover{background:#ffffff1c}}
.button:active{transform:translateY(0) scale(.98)}
.booking-section,.rates-section{background:radial-gradient(ellipse at 85% 5%,#e6ddc763,transparent 60%),var(--paper)}
.booking-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr)}
.booking-card{border-radius:28px;background:linear-gradient(145deg,#fffffffa,#ffffffd9);border:1px solid #fff;box-shadow:inset 0 1px 0 #fff,0 18px 55px #27301e0d;overflow:visible}
.booking-intro,.booking-card,.calendar,.weekdays,#booking-app,.field,.slots{min-width:0}
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:24px 20px 18px;gap:4px}
.steps li{min-width:0}
.booking-card #booking-app{padding:26px 24px}
.form-heading{overflow-wrap:anywhere}
.calendar-header{gap:8px}
.calendar-header strong{min-width:0;font-size:15px;text-align:center}
.calendar-header button{width:44px;height:44px;flex:0 0 44px;background:linear-gradient(#fff,#f5f6f1)}
.weekdays,.calendar{width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.calendar>*,.weekdays>*{min-width:0}
.day{width:100%;min-width:0;padding:0;height:44px;min-height:44px;aspect-ratio:auto;border-radius:12px;font-size:13px}
.day:disabled{color:#8d9685}
.day.today{box-shadow:inset 0 0 0 1px #a98130}
.day.selected,.slot.selected,.trip-option.selected{background:linear-gradient(135deg,#43563a,#263321)}
.day:not(:disabled):hover{box-shadow:inset 0 0 0 1px #a98130}
.slots{grid-template-columns:repeat(4,minmax(0,1fr));overscroll-behavior:contain}
.slot{border-radius:12px;min-width:0;min-height:44px;padding:6px 2px}
.trip-option{border-radius:16px;min-width:0;background:linear-gradient(130deg,#fff,#f8faf5)}
.field input,.field textarea{min-width:0;border-radius:14px;background:#f7f9f4;font-size:16px}
.suggestions{border-radius:14px;overflow-wrap:anywhere}
.consent{font-size:12px}.consent span{min-width:0}
.form-actions{flex-wrap:wrap;gap:10px}
.form-actions .button{min-width:0;min-height:48px;padding:12px 18px;gap:12px}
.form-actions .back{min-height:44px}
.booking-foot{border-radius:0 0 28px 28px;overflow-wrap:anywhere}
.preview-notice,.legal-warning{border-radius:0 16px 16px 0}
.service{border:1px solid #ffffff19!important;border-radius:22px;margin-bottom:12px;background:linear-gradient(145deg,#ffffff09,#ffffff02);transition:background .3s,border-color .3s}
.service summary{padding:23px 22px;gap:15px}
.service-copy{padding:0 24px 26px 47px}
.service-visual,.about-image{border-radius:28px}
.service-visual{background:radial-gradient(circle at 60% 20%,#3b4a2b77,transparent 70%),#20271f;box-shadow:inset 0 1px 0 #ffffff15}
.rates{gap:18px;border:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.rates article,.rates article+article{border:1px solid #fff;padding:27px 24px;border-radius:24px;background:linear-gradient(140deg,#ffffffd9,#ffffff73);box-shadow:inset 0 1px 0 #fff,0 10px 28px #333b2808;min-width:0;overflow:hidden}
.rates article::before{left:24px;right:24px;top:0;border-radius:4px}
.rates .price{font-size:clamp(32px,3.1vw,44px);letter-spacing:-1.5px;white-space:nowrap}
.price-content{max-width:100%}
.rates .price small{font-size:13px}
.last-call{margin:0 16px;border-radius:32px;background:radial-gradient(ellipse at top,#ffe9af,transparent 75%),linear-gradient(120deg,#e8c472,#dcb462);box-shadow:inset 0 1px 0 #fff8}
.footer{margin:24px auto;width:calc(100% - 32px);border-radius:30px;border:1px solid var(--glass-border);background:linear-gradient(135deg,#ffffff0c,#ffffff03);box-shadow:inset 0 1px 0 #ffffff0c;padding-top:50px;padding-bottom:24px}
.footer-grid>*{min-width:0}
.footer a:not(.brand){overflow-wrap:anywhere}
.legal-hero{padding-top:155px}
.legal-content{min-width:0;overflow-wrap:anywhere}
.legal-content ul{padding-left:22px}
.reveal{transition-duration:.75s;transition-delay:var(--reveal-delay,0ms)}
.js-motion .reveal:not(.seen){transform:translateY(24px)}
@supports not (backdrop-filter:blur(1px)){.header,.header nav,.mobile-bar{background:#20271f}.glass-secondary{background:#394033}}
@media(max-width:1100px){.header{left:16px;right:16px;padding:0 20px}.header .brand{font-size:20px}.header nav{gap:18px}.rates{gap:12px}.rates article,.rates article+article{padding:24px 18px}.rates .price{font-size:34px}.rates .price small{font-size:12px}}
@media(max-width:850px){.header{height:72px;top:12px;border-radius:24px}.header nav{top:calc(100% + 10px);border:1px solid #ffffff30;border-radius:22px;background:rgba(23,29,24,.97);box-shadow:0 20px 35px #0004;gap:0}.header nav a{padding:12px}.menu-toggle{width:44px;padding:0;flex:0 0 44px}.hero-content{padding-top:135px}.booking-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:22px}.booking-card #booking-app{padding:22px 14px}.service summary{padding:21px 16px;gap:10px}.service-copy{padding:0 18px 24px}.rates{grid-template-columns:1fr}.rates article,.rates article+article{padding:24px}.rates .price{font-size:42px}.rates .price small{font-size:14px}.legal-hero{padding-top:135px}}
@media(max-width:650px){
 html{scroll-padding-top:94px}
 .wrap{padding-left:20px;padding-right:20px}
 .header{top:8px;left:10px;right:10px;height:66px;padding:0 13px;gap:10px;border-radius:22px}
 .header .brand{font-size:19px}.brand small{font-size:6px}.brand-mark{width:36px;height:36px}.brand-mark img{width:48px;height:48px;margin:-6px}
 .hero{min-height:690px}.hero-content{padding-top:125px;padding-bottom:36px}
 .hero h1{font-size:clamp(38px,10.8vw,56px)}
 .hero-services{display:none!important}.hero-call{display:inline-flex!important}
 .actions{align-items:stretch;max-width:340px;gap:12px}
 .actions .button{min-height:54px;padding:15px 20px}
 .hero-call{justify-content:center;gap:13px;font-size:15px}.hero-call>span{margin-left:auto}
 .hero-bottom{margin-top:34px}
 .booking-layout{display:flex;gap:26px}
 .booking-card{border-radius:24px}
 .booking-card #booking-app{padding:22px 14px}
 .steps{padding:20px 12px 16px}
 .day{height:44px}
 .service summary{padding:22px 18px}.service h3{font-size:20px}
 .service-copy{padding:0 20px 25px}
 .rates article,.rates article+article{padding:25px 24px}
 .service-visual,.about-image{border-radius:24px}
 .last-call{margin:0 10px;border-radius:26px}
 .footer{width:calc(100% - 20px);margin:16px auto 100px;border-radius:26px;padding:36px 22px 24px}
 .mobile-bar{left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));padding:8px;gap:8px;border:1px solid #ffffff29;border-radius:24px;background:rgba(23,29,24,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 28px #0005,inset 0 1px 0 #ffffff18}
 .mobile-bar a{min-width:0;min-height:46px;border-radius:999px;border-color:#ffffff26;background:linear-gradient(145deg,#ffffff15,#ffffff03);font-size:10px}
 .mobile-bar a:last-child{background:linear-gradient(140deg,#ffe2a0,#e8c472);border-color:#ffebba}
 .legal-hero{padding-top:117px}.legal-nav{gap:8px 15px}
}
@media(max-width:360px){.wrap{padding-left:16px;padding-right:16px}.booking-card #booking-app{padding:20px 10px}.weekdays,.calendar{gap:3px}.steps{padding-left:9px;padding-right:9px}.form-actions .button{padding:12px 14px;font-size:11px}.service h3{font-size:19px}.values{grid-template-columns:1fr}.footer{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js-motion .reveal:not(.seen){opacity:1;transform:none}.reveal{transition:none}.button:hover{transform:none}}

.day.selected:hover{background:linear-gradient(135deg,#43563a,#263321)}

/* Every home section enters on scroll, including on a return visit. */
.scroll-section{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js-motion .scroll-section:not(.section-visible){opacity:0;transform:translate3d(0,36px,0)}
.js-motion .scroll-section.section-visible,.js-motion .scroll-section:focus-within{opacity:1;transform:translate3d(0,0,0)}
.button{justify-content:center;gap:0}
.calendar-header button{font-size:10px;width:48px;flex-basis:48px}
@media(prefers-reduced-motion:reduce){.scroll-section,.js-motion .scroll-section:not(.section-visible){opacity:1;transform:none;transition:none}}
@media print{.js-motion .scroll-section:not(.section-visible){opacity:1;transform:none}}
/* Booking connection, availability and confirmation */
.slot.booked{position:relative;opacity:1;color:#746f65;background:#eeece5;border:1px dashed #aca798;cursor:help;min-height:58px;line-height:1.2}
.slot.booked span{display:block;font-size:.6rem;margin-top:5px;font-weight:500}
.slot.booked:hover,.slot.booked:focus-visible{background:#e4ddcc;border-color:#8e6a2b;box-shadow:0 0 0 3px #b38c3030}
.booking-submit{width:100%;white-space:normal;min-height:54px}
.booking-success{padding:22px;border:1px solid #96b593;border-radius:20px;background:#e9f2e6;margin-bottom:24px;color:#243b22}
.booking-success p{font-size:.9rem;line-height:1.65;margin:10px 0 0}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#booking-feedback:empty{display:none}
.cancel-layout{max-width:680px;margin:0 auto;padding:100px 22px 70px}
.cancel-card{padding:clamp(22px,5vw,42px);border:1px solid #ffffff75;border-radius:28px;background:#faf9f3;box-shadow:0 24px 70px #0002;color:#222c20}
.cancel-card h1{font-size:clamp(2rem,7vw,3rem);line-height:1.1;margin:15px 0 24px}
.cancel-card dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;font-size:.9rem;line-height:1.5;margin:24px 0}
.cancel-card dd{margin:0;overflow-wrap:anywhere}.cancel-card dt{color:#69715f}
.cancel-card .button{width:100%;margin-top:18px;white-space:normal}.cancel-card p{line-height:1.65}
.slot.booked::after{content:"Horaire déjà réservé. Contactez le taxi si nécessaire.";position:absolute;z-index:10;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:160px;padding:11px 13px;border-radius:14px;background:#263121;color:#fff;font-size:11px;font-weight:400;line-height:1.5;box-shadow:0 8px 22px #0002;pointer-events:none;opacity:0;transition:opacity .18s}
.slot.booked:hover::after,.slot.booked:focus-visible::after{opacity:1}
@media(prefers-reduced-motion:reduce){.slot.booked::after{transition:none}}

/* Tariff details remain readable without a wide table on phones. */
.legal-content{min-width:0;overflow-wrap:anywhere}
.legal-rates{margin:22px 0 32px;border-top:1px solid #d1d4ca}
.legal-rates>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:18px 0;border-bottom:1px solid #d1d4ca;align-items:baseline}
.legal-rates dt{font-weight:500;line-height:1.6}.legal-rates dd{margin:0;font-weight:600;color:var(--gold);white-space:nowrap}
@media(max-width:480px){.legal-rates>div{grid-template-columns:minmax(0,1fr);gap:8px}.legal-rates dd{font-size:1.1rem}}
