/* Location Lioran — parcours de réservation et espace voyageur */
.ll-booking{--line:#dce2d8;--paper:#fffefa;--copper:#a66538;background:#f5f2eb;background-image:radial-gradient(ellipse at 95% 10%,#e9ede36b,transparent 45%)}
.ll-booking .skip-link{position:fixed;top:-70px;left:16px;z-index:1000;padding:12px 20px;background:white}.ll-booking .skip-link:focus{top:12px}
.ll-booking .header{box-shadow:0 8px 30px #1029250a}.ll-booking .booking-main{padding:54px 0 64px}.ll-booking .intro{margin-bottom:38px}.ll-booking .intro h1{font-size:clamp(38px,4.6vw,64px);letter-spacing:-.045em;line-height:1.04;margin:16px 0 22px}.ll-booking .intro p{font-size:15px;max-width:500px}.ll-booking .intro .intro__detail{font-size:13px;line-height:1.8;margin-top:24px;color:var(--muted)}
.ll-booking--booking .intro{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:56px}.ll-booking .intro__visual{position:relative;margin:0;height:310px;overflow:hidden;border-radius:120px 8px 8px 8px;box-shadow:0 20px 50px #173d3510}.ll-booking .intro__visual img{height:100%;object-fit:cover}.ll-booking .intro__visual:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#102925aa)}.ll-booking .intro__visual figcaption{position:absolute;bottom:20px;left:26px;color:white;z-index:1;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.ll-booking .card{border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 25px #173d3504;padding:30px}.ll-booking .card h2{font-size:29px;letter-spacing:-.025em}.ll-booking .card h3{font-size:23px;letter-spacing:-.02em}.ll-booking input,.ll-booking select,.ll-booking textarea{border:1px solid #cbd5ca;border-radius:7px;transition:border-color .2s,box-shadow .2s;min-width:0;background:#fffefa}.ll-booking input:focus,.ll-booking select:focus,.ll-booking textarea:focus{border-color:#527c67;box-shadow:0 0 0 3px #dce8d8;outline:0}.ll-booking .field label{font-size:11px;letter-spacing:.025em}.ll-booking button,.ll-booking .btn{border-radius:7px;transition:background .2s,transform .2s,box-shadow .2s}.ll-booking button:hover,.ll-booking .btn:hover{background:#245447;color:white;box-shadow:0 5px 16px #173d3518}.ll-booking button:disabled{opacity:.55;cursor:wait;transform:none}.ll-booking .search{padding:23px;gap:16px;box-shadow:0 12px 35px #173d3508;scroll-margin-top:25px}.ll-booking .search button{min-height:49px;white-space:nowrap}.ll-booking .search .field{margin:0}
.ll-booking .steps{list-style:none;padding:0;margin:20px 0 25px;display:flex;flex-wrap:wrap;gap:24px;align-items:center}.ll-booking .steps li{display:flex;align-items:center;gap:9px;font-size:11px;color:#7a877c}.ll-booking .steps span{padding:0;display:grid;place-items:center;width:29px;height:29px;background:transparent;border:1px solid #d4dbce;border-radius:50%;font-size:10px;color:#76856e}.ll-booking .steps .is-current{color:var(--forest);font-weight:750}.ll-booking .steps .is-current span{background:var(--forest);border-color:var(--forest);color:white}.ll-booking .steps .is-complete span{background:#e3ebdd;color:var(--forest);border-color:#e3ebdd}
.ll-booking .section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:50px 0 24px}.ll-booking .section-heading h2{font-size:clamp(29px,3vw,40px);letter-spacing:-.035em;margin:7px 0 0}.ll-booking .section-heading p{max-width:340px;font-size:13px;color:var(--muted);margin:0}.ll-booking .room-card{overflow:hidden;padding:0}.ll-booking .room-card .room-photo{margin:0;border-radius:0;height:280px}.ll-booking .room-card__body{padding:25px 28px}.ll-booking .room-card__body h2{margin:10px 0 20px;font-size:32px}.ll-booking .text-link{font-size:12px;font-weight:700;display:flex;justify-content:space-between;text-underline-offset:5px}.ll-booking .search-results .card{overflow:hidden}.ll-booking .room-photo{border-radius:8px}.ll-booking .booking-summary{padding:25px;top:24px}.ll-booking .summary-photo{width:calc(100% + 50px);max-width:none;height:190px;margin:-25px -25px 24px;border-radius:12px 12px 0 0;object-fit:cover}.ll-booking .price-details{padding:15px 0;border-top:1px solid var(--line);margin-top:22px}.ll-booking summary{cursor:pointer;font-size:12px;font-weight:700;padding:10px 0}.ll-booking .price-details .row{font-size:12px}.ll-booking .price-details .row strong{white-space:nowrap}.ll-booking .payment-choice{border:1px solid var(--line);padding:16px;border-radius:8px;background:#f8f9f3;line-height:1.7}.ll-booking .payment-choice:has(input:checked){border-color:var(--forest);box-shadow:inset 3px 0 var(--forest);background:#eef3e8}.ll-booking .check input{accent-color:var(--forest)}
.ll-booking .booking-reassurance{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;border-top:1px solid var(--line);padding:28px 0 0;margin-top:30px;color:var(--muted);font-size:11px}.ll-booking .booking-reassurance span:before{content:'✓';color:var(--forest);padding-right:9px}.ll-booking .notice{border:1px solid #ddc4a4;border-radius:8px;background:#fff6e7;font-size:13px;line-height:1.8}.ll-booking .notice.good{background:#edf4e9;border-color:#b9cdb1}.ll-booking .notice a{text-underline-offset:3px}.ll-booking .notice[role=alert]{scroll-margin-top:20px}
.ll-booking .tabs{gap:5px;border-bottom:1px solid var(--line);padding:0 0 14px;margin:0 0 28px}.ll-booking .tabs a{border:1px solid transparent;background:transparent;border-radius:7px;font-size:12px;padding:10px 17px}.ll-booking .tabs a:hover{background:#e7ecdf}.ll-booking .tabs a.active{background:var(--forest);color:white}.ll-booking .tabs .unread-count{display:inline-block;background:#c8a27b;color:#102925;border-radius:15px;min-width:18px;text-align:center;padding:0 4px;font-size:10px;margin-left:5px}
.ll-booking .hero-stay{position:relative;isolation:isolate;overflow:hidden;padding:36px;border-radius:12px;min-height:270px;display:flex;flex-direction:column;justify-content:end;background:#173d35}.ll-booking .hero-stay__image{position:absolute;inset:0;height:100%;z-index:-2;object-fit:cover}.ll-booking .hero-stay:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#092920e8,#09292070);z-index:-1}.ll-booking .hero-stay h2{font-size:44px;color:#fff;margin:12px 0}.ll-booking .hero-stay p{color:#f0f2e8;font-size:14px}.ll-booking .hero-stay .badge{align-self:start;background:#fff9;color:#102925;border:1px solid #ffffff30;backdrop-filter:blur(7px);font-weight:700}.ll-booking .next-action{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#e8eee1;border:1px solid #cbd7c2;padding:22px 25px;border-radius:10px;margin-bottom:26px}.ll-booking .next-action h2{font-size:23px;margin:4px 0 8px}.ll-booking .next-action p{font-size:12px;margin:0;max-width:650px}.ll-booking .next-action .btn{white-space:nowrap;font-size:12px}.ll-booking .stay-reference{font-size:11px;color:var(--muted);letter-spacing:.06em;margin:0 0 18px}.ll-booking .stay-checklist{list-style:none;padding:0;margin:20px 0 24px;display:grid;gap:12px}.ll-booking .stay-checklist li{display:flex;gap:12px;font-size:13px}.ll-booking .stay-checklist i{font-style:normal;color:#75846d}.ll-booking .stay-checklist .is-done i{color:#286b45}.ll-booking .empty-state{padding:35px 20px;text-align:center}.ll-booking .empty-state p{max-width:500px;margin:12px auto 24px;color:var(--muted);font-size:14px}.ll-booking .bubble{line-height:1.8;font-size:14px}.ll-booking .bubble small{font-size:11px;margin-bottom:9px}.ll-booking .message-compose{border-top:1px solid var(--line);margin-top:25px;padding-top:25px}.ll-booking .message-compose textarea{min-height:140px}.ll-booking .secure-note{font-size:11px;color:var(--muted);line-height:1.8;margin-top:15px}.ll-booking .hold-clock{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;display:block;margin-top:10px}.ll-booking .footer{margin-top:15px}
@media(max-width:1050px){.ll-booking--booking .intro{gap:30px}.ll-booking .search{grid-template-columns:1fr 1fr}.ll-booking .search button{grid-column:1/-1}.ll-booking .intro__visual{height:280px}.ll-booking .nav-left,.ll-booking .nav-right{gap:17px}}
@media(max-width:760px){.ll-booking .booking-main{padding:30px 0 44px}.ll-booking--booking .intro{grid-template-columns:1fr;gap:25px}.ll-booking .intro__visual{height:190px;border-radius:60px 8px 8px 8px}.ll-booking .intro .intro__detail{display:none}.ll-booking .intro h1{font-size:41px;max-width:500px;margin-bottom:16px}.ll-booking .intro p{font-size:14px}.ll-booking .intro{margin-bottom:25px}.ll-booking .steps{gap:12px 18px;margin-bottom:20px}.ll-booking .steps li{font-size:10px;gap:6px}.ll-booking .steps span{width:24px;height:24px;font-size:9px}.ll-booking .card{padding:22px}.ll-booking .search{padding:20px;gap:14px}.ll-booking .search input,.ll-booking .search select{padding:10px 8px;font-size:13px}.ll-booking .section-heading{display:block;margin-top:35px}.ll-booking .section-heading p{margin-top:12px}.ll-booking .room-card{padding:0}.ll-booking .room-card .room-photo{height:230px}.ll-booking .room-card__body{padding:23px}.ll-booking .booking-summary{padding:22px}.ll-booking .summary-photo{width:calc(100% + 44px);margin:-22px -22px 22px}.ll-booking .booking-reassurance{display:grid;justify-content:start;gap:12px}.ll-booking .next-action{display:block;padding:20px}.ll-booking .next-action .btn{margin-top:16px}.ll-booking .tabs{overflow-x:auto;flex-wrap:nowrap}.ll-booking .tabs a{white-space:nowrap;padding:9px 12px}.ll-booking .hero-stay{padding:27px;min-height:255px}.ll-booking .hero-stay h2{font-size:36px}.ll-booking--portal .footer{padding-bottom:110px}.ll-booking .mobile-nav{box-shadow:0 -6px 20px #1029250a;padding-bottom:calc(13px + env(safe-area-inset-bottom))}.ll-booking .mobile-nav a{padding:4px 7px;font-size:11px}.ll-booking .mobile-nav a[aria-current=page]{font-weight:800;border-bottom:2px solid var(--forest)}}
@media(prefers-reduced-motion:reduce){.ll-booking *{scroll-behavior:auto;transition:none!important}}
@media print{.ll-booking .header,.ll-booking .footer,.ll-booking .mobile-nav,.ll-booking .skip-link,.ll-booking button{display:none!important}.ll-booking .booking-main{width:100%;padding:0}.ll-booking .card{box-shadow:none;border:0}}

.ll-booking button:disabled{cursor:not-allowed}@media(max-width:760px){.ll-booking .tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:5px}.ll-booking .tabs a{text-align:center;padding:10px 7px;font-size:11px}}
