/* HotelPilot — système UI public unifié */
.public-body{--public-ink:#0b1830;--public-muted:#667085;--public-line:#e4e9f1;--public-soft:#f5f7fb;--public-radius:22px;--public-shadow:0 22px 65px rgba(16,38,79,.12);background:#fff;color:var(--public-ink);overflow-x:hidden}
.public-body a{text-decoration:none}.public-body .container{width:min(100% - 32px,1320px);max-width:1320px}.public-body .btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border-radius:12px;padding:.7rem 1.15rem;font-weight:750;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.public-body .btn:hover{transform:translateY(-2px)}.public-body .btn:focus-visible,.public-body a:focus-visible,.public-body button:focus-visible,.public-body input:focus-visible,.public-body select:focus-visible{outline:3px solid color-mix(in srgb,var(--brand-accent,#f47b20) 45%,transparent);outline-offset:3px}.public-body .btn-accent{border-color:var(--brand-accent,#f47b20);background:var(--brand-accent,#f47b20);color:#fff;box-shadow:0 10px 24px color-mix(in srgb,var(--brand-accent,#f47b20) 28%,transparent)}.public-body .btn-accent:hover,.public-body .btn-accent:focus{border-color:color-mix(in srgb,var(--brand-accent,#f47b20) 82%,#000);background:color-mix(in srgb,var(--brand-accent,#f47b20) 90%,#000);color:#fff}.public-body .btn-outline-primary{border-color:color-mix(in srgb,var(--brand-primary,#10264f) 30%,#fff);color:var(--brand-primary,#10264f)}.public-body .btn-outline-primary:hover{border-color:var(--brand-primary,#10264f);background:var(--brand-primary,#10264f);color:#fff}

/* Navigation */
.public-skip-link{position:fixed;z-index:4000;top:10px;left:10px;padding:10px 16px;border-radius:9px;background:#fff;color:#10264f;box-shadow:0 8px 25px #0003;transform:translateY(-160%)}.public-skip-link:focus{transform:none}.premium-nav{position:sticky;z-index:1100;top:0;padding:14px 0;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(228,233,241,.92);backdrop-filter:blur(16px);transition:padding .2s ease,box-shadow .2s ease}.premium-nav.is-scrolled{padding:9px 0;box-shadow:0 10px 30px rgba(16,38,79,.09)}.public-nav-inner{display:flex;align-items:center;gap:30px;min-height:58px}.premium-brand{display:flex;flex:0 1 auto;align-items:center;gap:11px;min-width:0;color:var(--brand-primary,#10264f);font-size:1.08rem;font-weight:850}.premium-brand img{display:block;width:auto;max-width:210px;height:54px;object-fit:contain}.premium-brand>span{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:13px;background:var(--brand-accent,#f47b20);color:#fff;font-size:1.35rem}.premium-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-nav-cluster{display:flex;align-items:center;gap:28px;margin-left:auto}.premium-links{display:flex;align-items:center;gap:28px}.premium-links a{position:relative;padding:13px 0;color:#344054;font-size:.94rem;font-weight:700}.premium-links a::after{content:"";position:absolute;right:50%;bottom:4px;left:50%;height:2px;border-radius:2px;background:var(--brand-accent,#f47b20);transition:left .2s,right .2s}.premium-links a:hover,.premium-links a.active{color:var(--brand-primary,#10264f)}.premium-links a:hover::after,.premium-links a.active::after{right:0;left:0}.public-nav-actions{display:flex;align-items:center;gap:9px}.public-nav-actions .admin-link{border:1px solid var(--public-line);background:#fff;color:#344054}.public-nav-actions .admin-link:hover{border-color:#bfc8d6;background:#f8fafc}.public-menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--public-line);border-radius:12px;background:#fff}.public-menu-toggle span{display:block;width:20px;height:2px;margin:4px auto;border-radius:2px;background:#10264f;transition:.2s}.public-menu-overlay{position:fixed;z-index:1050;inset:0;background:rgba(2,8,23,.52);backdrop-filter:blur(2px)}body.public-menu-open{overflow:hidden}

/* Hero d’accueil */
.premium-hero{position:relative;isolation:isolate;display:flex;min-height:620px;align-items:center;overflow:hidden;background:linear-gradient(118deg,#06162f,#0b2855 58%,#23385f);color:#fff}.premium-hero-background{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.premium-hero.has-custom-image::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(100deg,rgba(4,19,42,.96) 0%,rgba(7,28,58,.87) 47%,rgba(16,38,79,.38) 100%)}.premium-hero::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(2,11,27,.28)),radial-gradient(circle at 82% 18%,rgba(244,123,32,.2),transparent 28%);pointer-events:none}.premium-hero-content{padding-top:75px;padding-bottom:80px}.premium-kicker,.eyebrow{display:block;color:var(--brand-accent,#f47b20);font-size:.77rem;font-weight:850;letter-spacing:.15em}.premium-hero h1{max-width:930px;margin:22px 0 0;font-size:clamp(3.5rem,5.6vw,6rem);font-weight:870;line-height:.96;letter-spacing:-.055em;text-wrap:balance}.premium-hero p{max-width:680px;margin:27px 0 0;color:#e0e8f4;font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.7}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:32px}.hero-contact{display:flex;flex-direction:column;padding:5px 0;color:#fff;border-bottom:1px solid rgba(255,255,255,.42)}.hero-contact span{color:#bdcadc;font-size:.72rem}.hero-contact strong{font-size:.95rem}.hero-trust{display:flex;align-items:center;gap:11px;width:max-content;max-width:100%;margin-top:32px;padding:10px 14px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px)}.hero-trust>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;color:#16824b;font-weight:900}.hero-trust div{display:grid}.hero-trust strong{font-size:.84rem}.hero-trust small{color:#d8e2ef;font-size:.72rem}.hero-note{display:none!important}

/* Recherche de disponibilité */
.availability-wrap{position:relative;z-index:4;margin:0;padding:30px 0;background:#fff}.premium-booking-bar{display:grid;grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(180px,.85fr) auto;gap:0;align-items:center;padding:11px;border:1px solid var(--public-line);border-radius:18px;background:#fff;box-shadow:var(--public-shadow)}.premium-booking-bar>div{min-width:0;padding:7px 20px;border-right:1px solid var(--public-line)}.premium-booking-bar label,.premium-booking-bar small{display:block;margin:0 0 3px;color:var(--public-muted);font-size:.7rem;font-weight:650}.premium-booking-bar input{width:100%;min-height:30px;padding:0;border:0;background:transparent;color:var(--public-ink);font-weight:800;outline:0}.booking-promise strong{display:block;color:var(--public-ink);font-size:.94rem}.premium-booking-bar .btn{min-height:58px;margin-left:10px;padding:14px 24px;white-space:nowrap}

/* Sections et chambres */
.premium-section{padding:88px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:38px}.section-heading h2,.experience-section h2,.review-section h2{max-width:760px;margin:.22em 0 0;color:var(--public-ink);font-size:clamp(2.2rem,4vw,3.8rem);font-weight:860;line-height:1.04;letter-spacing:-.045em;text-wrap:balance}.section-heading>p{max-width:480px;margin:0;color:var(--public-muted);line-height:1.7}.premium-room-card{display:flex;height:100%;flex-direction:column;overflow:hidden;border:1px solid var(--public-line);border-radius:var(--public-radius);background:#fff;box-shadow:0 14px 42px rgba(16,38,79,.09);transition:transform .25s ease,box-shadow .25s ease}.premium-room-card:hover{transform:translateY(-6px);box-shadow:0 24px 65px rgba(16,38,79,.16)}.premium-room-media{position:relative;display:block;height:265px;overflow:hidden;background:linear-gradient(135deg,#10264f,#244f91)}.premium-room-media::after{content:"";position:absolute;inset:auto 0 0;height:38%;background:linear-gradient(transparent,rgba(3,15,36,.4));pointer-events:none}.premium-room-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.premium-room-card:hover .premium-room-media img{transform:scale(1.045)}.premium-room-media em{position:absolute;z-index:2;top:15px;right:15px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.94);color:#137245;font-size:.73rem;font-weight:800;font-style:normal;box-shadow:0 5px 18px #10264f1c}.premium-room-body{display:flex;flex:1;flex-direction:column;padding:24px}.premium-room-body>small{color:var(--brand-accent,#f47b20);font-size:.72rem;font-weight:850;letter-spacing:.12em}.premium-room-body h2,.premium-room-body h3{margin:7px 0 11px;color:var(--public-ink);font-size:1.5rem;font-weight:820}.premium-room-body p{height:auto;min-height:50px;margin-bottom:17px;color:var(--public-muted);line-height:1.55}.premium-room-meta{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:auto;padding:16px 0;border-top:1px solid var(--public-line)}.premium-room-meta span,.premium-room-meta strong small{color:var(--public-muted);font-size:.76rem}.premium-room-meta strong{color:var(--brand-primary,#10264f);text-align:right}.premium-room-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.stay-total{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-3px 0 16px;padding:10px 12px;border-radius:10px;background:var(--public-soft);font-size:.8rem}.stay-total strong{color:var(--brand-primary,#10264f)}.premium-empty,.public-empty-state{padding:55px 25px;border:1px dashed #cdd5e1;border-radius:20px;background:var(--public-soft);color:var(--public-muted);text-align:center}

/* Expérience, avis et appel final */
.experience-section{padding:95px 0;background:linear-gradient(135deg,#06152d,#102d5d);color:#fff}.experience-section h2{color:#fff}.experience-section p{color:#c8d5e6;line-height:1.7}.experience-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.experience-list article{display:grid;grid-template-columns:46px 1fr;gap:18px;padding:21px 0;border-bottom:1px solid rgba(255,255,255,.13)}.experience-list b{color:#ff9b50}.experience-list h3{margin:0 0 5px;font-size:1.08rem}.experience-list p{margin:0}.review-section{background:var(--public-soft)}.review-card{height:100%;margin:0;padding:28px;border:1px solid var(--public-line);border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(16,38,79,.06)}.review-stars{color:#f3a51c}.review-card p{margin:16px 0;font-size:1.02rem;line-height:1.7}.review-card footer{padding:0;background:none;color:var(--public-muted)}.premium-cta{padding:58px 0;background:linear-gradient(105deg,#fff1e6,#fff8f2)}.premium-cta .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.premium-cta span{color:#a94908;font-size:.73rem;font-weight:850;letter-spacing:.14em}.premium-cta h2{margin:.25em 0 0;color:var(--brand-primary,#10264f);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:850}

/* Héros des pages internes */
.page-hero{position:relative;isolation:isolate;min-height:400px;display:flex;align-items:center;overflow:hidden;padding:78px 0;background:linear-gradient(135deg,#06162f,#123467);color:#fff}.page-hero-background{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover}.page-hero.has-custom-image::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(100deg,rgba(4,19,42,.96),rgba(10,36,73,.76) 58%,rgba(16,38,79,.42))}.page-hero::after{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 85% 18%,rgba(244,123,32,.22),transparent 28%)}.page-hero h1{max-width:920px;margin:.25em 0 0;color:#fff;font-size:clamp(2.8rem,5vw,5rem);font-weight:860;line-height:1;letter-spacing:-.05em;text-wrap:balance}.page-hero p{max-width:720px;margin:18px 0 0;color:#dce5f1;font-size:1.08rem;line-height:1.7}.standalone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.standalone-card{position:relative;padding:29px;border:1px solid var(--public-line);border-radius:18px;background:#fff;box-shadow:0 12px 36px rgba(16,38,79,.07);transition:transform .2s,box-shadow .2s}.standalone-card:hover{transform:translateY(-4px);box-shadow:0 20px 45px rgba(16,38,79,.12)}.standalone-card>span{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:#fff0e5;color:#df5d05;font-weight:900}.standalone-card h2{margin:18px 0 9px;font-size:1.22rem;font-weight:800}.standalone-card p{margin:0;color:var(--public-muted);line-height:1.65}.standalone-cta{margin-top:45px;padding:42px;border-radius:22px;background:linear-gradient(135deg,#f3f6fb,#eef3fa);text-align:center}.standalone-cta h2{font-size:2rem;font-weight:850}.standalone-cta p{max-width:650px;margin:10px auto 20px;color:var(--public-muted)}.experience-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.experience-values article{padding:31px;border:1px solid var(--public-line);border-top:4px solid var(--brand-accent,#f47b20);border-radius:0 0 18px 18px;background:var(--public-soft)}.experience-values b{color:var(--brand-accent,#f47b20)}.experience-values h2{margin:14px 0 7px;font-size:1.35rem}.experience-values p{margin:0;color:var(--public-muted);line-height:1.65}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px}.contact-panel,.contact-action{padding:clamp(27px,4vw,44px);border:1px solid var(--public-line);border-radius:22px;background:#fff;box-shadow:0 18px 50px rgba(16,38,79,.09)}.contact-panel small{display:block;margin-top:25px;color:var(--public-muted)}.contact-panel small:first-child{margin-top:0}.contact-panel>a{display:block;margin-top:5px;color:var(--brand-primary,#10264f);font-size:clamp(1.05rem,2vw,1.35rem);font-weight:820;overflow-wrap:anywhere}.contact-panel address{margin-top:7px;color:#475467;font-style:normal;line-height:1.7}.contact-action{background:linear-gradient(145deg,#071831,#123a78);color:#fff}.contact-action h2{margin-top:10px;color:#fff;font-size:clamp(1.8rem,3.2vw,2.5rem);font-weight:850}.contact-action p{color:#d7e1ef;line-height:1.7}.contact-action .btn{width:100%;margin-top:11px}

/* Résultats de disponibilité */
.availability-page{background:var(--public-soft)}.results-hero{padding:62px 0 35px;background:#fff}.results-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.results-heading h1{margin:.2em 0 0;font-size:clamp(2.4rem,4.5vw,4.4rem);font-weight:860;letter-spacing:-.045em}.results-heading p{margin:8px 0 0;color:var(--public-muted)}.results-count{padding:8px 13px;border-radius:999px;background:#edf7f1;color:#147245;font-size:.8rem;font-weight:800}.availability-refine{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:28px;padding:16px;border:1px solid var(--public-line);border-radius:17px;background:#fff;box-shadow:0 14px 40px rgba(16,38,79,.08)}.availability-refine label{display:block;margin-bottom:5px;color:var(--public-muted);font-size:.75rem;font-weight:700}.availability-refine input{width:100%;min-height:48px;padding:8px 12px;border:1px solid #dce2eb;border-radius:10px;background:#fff;color:var(--public-ink)}.availability-refine .btn{min-height:48px}.results-section{padding-top:45px}.public-empty-state{max-width:720px;margin:0 auto}.public-empty-state>span{display:grid;width:60px;height:60px;margin:0 auto 16px;place-items:center;border-radius:50%;background:#fff;color:var(--brand-primary,#10264f);font-size:2rem}.public-empty-state h2{color:var(--public-ink)}.public-empty-state p{margin-bottom:20px}.public-empty-state>div{display:flex;justify-content:center;gap:10px}

/* Fiche chambre */
.room-detail{padding:32px 0 85px;background:var(--public-soft)}.room-breadcrumb{margin-bottom:21px}.room-gallery{border-radius:20px;box-shadow:0 15px 45px rgba(16,38,79,.1)}.room-detail-layout{gap:46px;margin-top:38px}.room-copy h1{font-size:clamp(2.6rem,4.5vw,4.4rem)}.room-detail-features span{border-color:var(--public-line);border-radius:10px;box-shadow:0 5px 16px rgba(16,38,79,.04)}.room-booking-card{top:102px;padding:27px;border-radius:19px;box-shadow:0 20px 55px rgba(16,38,79,.13)}.room-booking-card .btn{min-height:56px}.room-direct-benefits span{border:1px solid #dcefe3}.room-mobile-cta{z-index:1090}

/* Checkout */
.booking-page,.payment-page{min-height:70vh;padding:52px 0 85px;background:radial-gradient(circle at 100% 0,rgba(244,123,32,.1),transparent 28%),var(--public-soft)}.checkout-breadcrumb{display:flex;gap:8px;align-items:center;margin-bottom:28px;color:var(--public-muted);font-size:.9rem}.checkout-breadcrumb a{color:var(--brand-primary,#10264f)}.checkout-heading{max-width:820px;margin-bottom:30px}.checkout-heading h1{margin:.18em 0 0;font-size:clamp(2.5rem,4.5vw,4.3rem);font-weight:860;letter-spacing:-.05em}.checkout-heading p{margin:10px 0 0;color:var(--public-muted);font-size:1.04rem}.booking-form-card,.booking-summary,.payment-shell{border:1px solid var(--public-line);border-radius:22px;background:#fff;box-shadow:0 18px 55px rgba(16,38,79,.1)}.booking-form-card{padding:clamp(20px,3vw,32px)}.checkout-section{padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid var(--public-line)}.checkout-section-title{display:flex;align-items:flex-start;gap:13px;margin-bottom:19px}.checkout-section-title>span{display:grid;flex:0 0 34px;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--brand-primary,#10264f);color:#fff;font-weight:850}.checkout-section-title h2{margin:1px 0 3px;font-size:1.17rem;font-weight:830}.checkout-section-title p{margin:0;color:var(--public-muted);font-size:.84rem}.booking-form-card .form-label{font-size:.85rem;font-weight:720}.booking-form-card .form-control{min-height:50px;border-color:#d8e0ea;border-radius:10px}.booking-form-card .form-control:focus{border-color:var(--brand-accent,#f47b20);box-shadow:0 0 0 3px rgba(244,123,32,.12)}.optional-label{color:var(--public-muted);font-size:.73rem;font-weight:500}.payment-choice{margin:0}.payment-option{border-radius:13px;padding:16px}.checkout-submit{min-height:58px}.checkout-privacy{margin:13px 0 0;color:var(--public-muted);font-size:.76rem;text-align:center}.booking-summary{position:sticky;top:105px;padding:30px}.booking-summary .summary-label{color:var(--brand-accent,#f47b20);font-size:.72rem;font-weight:850;letter-spacing:.13em}.booking-summary h2{margin:8px 0 3px;font-size:1.55rem;font-weight:850}.booking-summary>p{margin:0;color:var(--public-muted)}.summary-total{margin-top:24px;padding:20px;border-radius:15px;background:var(--brand-primary,#10264f);color:#fff}.summary-total small,.summary-total strong{display:block}.summary-total small{color:#cbd7e7}.summary-total strong{margin-top:5px;font-size:2rem}.summary-dates{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 0;border-bottom:1px solid var(--public-line);color:var(--public-muted);font-size:.85rem}.summary-dates strong{color:var(--public-ink)}.booking-summary ul{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}.booking-summary li{color:#475467;font-size:.88rem}.booking-summary li::before{content:"✓";margin-right:8px;color:#16824b;font-weight:900}

/* Paiement et confirmations */
.payment-shell{max-width:780px;margin:auto;padding:clamp(24px,5vw,50px)}.payment-heading{padding-bottom:25px;border-bottom:1px solid var(--public-line);text-align:center}.payment-heading h1{margin:13px 0 5px;font-size:clamp(2.6rem,5vw,4.4rem);font-weight:870;letter-spacing:-.045em}.payment-heading p{margin:0;color:var(--public-muted)}.payment-steps{margin:28px 0;padding:0;list-style:none}.payment-steps li{display:grid;grid-template-columns:40px 1fr;gap:15px;padding:22px 0;border-bottom:1px solid var(--public-line)}.payment-steps li>b{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:#fff0e6;color:#d95800}.payment-steps li>div>strong,.payment-steps li>div>span{display:block}.payment-steps li>div>span{margin:5px 0 13px;color:var(--public-muted);line-height:1.55}.proof-form{padding:19px;border:1px solid var(--public-line);background:var(--public-soft)}.upload-help{display:block;margin:-2px 0 10px!important;font-size:.76rem}.payment-security{display:flex;align-items:center;justify-content:center;padding:14px;text-align:center}.status-panel{display:flex;gap:14px;margin:28px 0;padding:18px;border-radius:14px}.status-panel>span{display:grid;flex:0 0 35px;width:35px;height:35px;place-items:center;border-radius:50%;font-size:1.3rem;font-weight:900}.status-panel h2{margin:0 0 5px;font-size:1.15rem}.status-panel p{margin:0;line-height:1.55}.status-panel-danger{background:#fff0f0;color:#842029}.status-panel-danger>span{background:#fff;color:#c72f3a}.public-status-page{min-height:70vh;display:grid;place-items:center;padding:70px 0 90px;background:radial-gradient(circle at 100% 0,rgba(244,123,32,.1),transparent 30%),var(--public-soft)}.public-status-card{max-width:780px;margin:auto;padding:clamp(27px,5vw,52px);border:1px solid var(--public-line);border-radius:24px;background:#fff;box-shadow:var(--public-shadow);text-align:center}.status-icon{display:grid;width:72px;height:72px;margin:0 auto 22px;place-items:center;border-radius:50%;background:#dcfce7;color:#15803d;font-size:2rem;font-weight:900}.status-icon-wait{background:#fff3d8;color:#a46400}.public-status-card h1{margin:.22em auto;font-size:clamp(2rem,4vw,3.5rem);font-weight:860;letter-spacing:-.04em;text-wrap:balance}.status-lead{color:var(--public-muted);font-size:1.05rem}.status-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:27px 0;padding:18px;border-radius:15px;background:var(--public-soft)}.status-summary div{padding:4px 12px;border-right:1px solid #dfe5ed}.status-summary div:last-child{border-right:0}.status-summary dt{color:var(--public-muted);font-size:.72rem}.status-summary dd{margin:5px 0 0;color:var(--public-ink);font-weight:800}.status-notice{display:grid;gap:4px;margin:24px 0;padding:16px;border-radius:13px;background:#fff8e8;color:#714b00}.status-notice span{font-size:.87rem;line-height:1.5}.status-notice-success{background:#edf9f2;color:#17613d}.status-actions{display:flex;justify-content:center;gap:10px}

/* Pied de page */
.premium-footer{padding:65px 0 0;background:#06152c;color:#cbd6e6}.footer-grid{display:grid;grid-template-columns:1.25fr .8fr 1fr;gap:70px}.premium-footer .premium-brand{display:flex;color:#fff}.premium-footer .premium-brand img{height:58px;max-width:210px;padding:5px;border-radius:8px;background:#fff;filter:none!important}.footer-brand-column p{max-width:380px;margin:18px 0 12px;line-height:1.65}.footer-brand-column address{max-width:390px;color:#8fa0b7;font-size:.86rem;font-style:normal;line-height:1.6}.premium-footer h2{margin:0 0 17px;color:#fff;font-size:.78rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.premium-footer a{display:block;width:max-content;max-width:100%;margin:8px 0;color:#e5ebf4}.premium-footer a:hover{color:#fff}.footer-booking>a:not(.btn){overflow-wrap:anywhere}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:48px;padding:20px 0;border-top:1px solid rgba(255,255,255,.11);color:#8293aa;font-size:.78rem}

/* WhatsApp */
.whatsapp-float{right:22px;bottom:22px;width:58px;height:58px;border:3px solid #fff;box-shadow:0 14px 38px rgba(7,24,49,.3)}.whatsapp-float svg{width:39px;height:39px}

@media(max-width:1199.98px){.premium-links{gap:20px}.public-nav-cluster{gap:20px}.premium-hero h1{max-width:820px}.experience-grid{gap:55px}.premium-booking-bar>div{padding-inline:15px}}
@media(max-width:991.98px){.public-nav-inner{min-height:52px}.premium-brand img{height:48px;max-width:180px}.public-menu-toggle{display:block;margin-left:auto}.public-nav-cluster{position:absolute;z-index:1110;top:calc(100% + 8px);right:16px;left:16px;display:none;max-height:calc(100dvh - 95px);overflow-y:auto;margin:0;padding:14px;border:1px solid var(--public-line);border-radius:17px;background:#fff;box-shadow:0 24px 70px rgba(2,8,23,.25)}.premium-nav.menu-open .public-nav-cluster{display:block}.premium-nav.menu-open .public-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}.premium-nav.menu-open .public-menu-toggle span:nth-child(2){opacity:0}.premium-nav.menu-open .public-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.premium-links{display:grid;gap:2px}.premium-links a{padding:13px 12px;border-radius:9px}.premium-links a::after{display:none}.premium-links a:hover,.premium-links a.active{background:var(--public-soft)}.public-nav-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px;padding-top:12px;border-top:1px solid var(--public-line)}.public-nav-actions .btn{width:100%}.premium-hero{min-height:560px}.premium-hero-content{padding-block:65px}.premium-hero h1{max-width:760px;font-size:clamp(3.2rem,8vw,5rem)}.premium-booking-bar{grid-template-columns:1fr 1fr}.premium-booking-bar .booking-promise{border-right:0}.premium-booking-bar .btn{margin:8px 0 0;min-height:52px}.section-heading{display:block}.section-heading>p{margin-top:16px}.experience-grid{grid-template-columns:1fr;gap:38px}.standalone-grid{grid-template-columns:repeat(2,1fr)}.experience-values{grid-template-columns:1fr}.contact-layout{grid-template-columns:1fr}.booking-summary{position:static}.footer-grid{grid-template-columns:1.2fr 1fr;gap:45px}.footer-booking{grid-column:1/-1}.room-detail-layout{gap:30px}.results-hero{padding-top:45px}}
@media(max-width:767.98px){.public-body .container{width:min(100% - 24px,1320px)}.premium-hero{min-height:auto}.premium-hero-content{padding-block:58px}.premium-hero h1{font-size:clamp(2.8rem,12vw,4.2rem);line-height:.98}.premium-hero p{line-height:1.6}.hero-actions{align-items:flex-start;flex-direction:column;gap:15px}.hero-actions .btn{width:100%}.hero-contact{width:100%}.hero-trust{margin-top:24px}.availability-wrap{padding:20px 0}.premium-booking-bar{grid-template-columns:1fr}.premium-booking-bar>div{padding:10px 12px;border-right:0;border-bottom:1px solid var(--public-line)}.premium-booking-bar .booking-promise{border-bottom:0}.premium-booking-bar .btn{width:100%;margin:6px 0 0}.premium-section{padding:65px 0}.section-heading h2,.experience-section h2,.review-section h2{font-size:clamp(2.1rem,9vw,3rem)}.premium-room-media{height:245px}.experience-section{padding:68px 0}.premium-cta .container{align-items:flex-start;flex-direction:column}.premium-cta .btn{width:100%}.page-hero{min-height:330px;padding:58px 0}.page-hero h1{font-size:clamp(2.5rem,11vw,3.6rem)}.standalone-grid{grid-template-columns:1fr}.standalone-cta{padding:30px 20px}.availability-refine{grid-template-columns:1fr}.results-heading{align-items:flex-start;flex-direction:column}.results-count{order:-1}.booking-page,.payment-page{padding:35px 0 65px}.checkout-heading h1{font-size:clamp(2.35rem,10vw,3.3rem)}.summary-total strong{font-size:1.8rem}.status-summary{grid-template-columns:1fr}.status-summary div{padding:10px;border-right:0;border-bottom:1px solid #dfe5ed}.status-summary div:last-child{border-bottom:0}.status-actions{flex-direction:column}.status-actions .btn{width:100%}.payment-steps li{grid-template-columns:34px 1fr;gap:11px}.payment-steps li>b{width:32px;height:32px}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-booking{grid-column:auto}.footer-bottom{align-items:flex-start;flex-direction:column;margin-top:35px}.whatsapp-float{right:14px;bottom:14px;width:56px;height:56px}.room-detail-page .whatsapp-float{bottom:92px}.public-empty-state>div{flex-direction:column}.public-empty-state .btn{width:100%}}
@media(max-width:575.98px){.premium-nav{padding:8px 0}.premium-brand img{height:44px;max-width:155px}.premium-brand>span{flex-basis:40px;width:40px;height:40px}.public-menu-toggle{width:43px;height:43px}.public-nav-actions{grid-template-columns:1fr}.premium-hero-content{padding-top:50px;padding-bottom:54px}.premium-hero h1{font-size:clamp(2.65rem,13vw,3.55rem)}.premium-kicker{font-size:.7rem}.hero-trust{width:100%}.premium-room-actions{grid-template-columns:1fr}.contact-panel,.contact-action{padding:25px 21px}.room-copy h1{font-size:2.45rem}.room-mobile-cta{padding-inline:12px}.booking-form-card{padding:20px 16px}.checkout-section-title>span{flex-basis:31px;width:31px;height:31px}.payment-shell{padding:24px 17px}.payment-heading h1{font-size:2.7rem}.wave-button{font-size:.94rem}.public-status-page{padding:38px 0 60px}.public-status-card{padding:28px 18px}.footer-bottom{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.public-body *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.premium-room-card:hover,.public-body .btn:hover,.whatsapp-float:hover{transform:none}}

/* Compatibilité avec les règles historiques chargées avant cette feuille. */
.premium-footer>.footer-grid{display:grid;grid-template-columns:1.25fr .8fr 1fr;gap:70px}
@media(max-width:991.98px){.premium-nav .public-nav-actions .btn,.room-detail-page .premium-nav .public-nav-actions .admin-link,.room-detail-page .premium-nav .public-nav-actions .reserve-link{display:inline-flex!important;width:100%}.premium-footer>.footer-grid{grid-template-columns:1.2fr 1fr;gap:45px}}
@media(max-width:767.98px){.premium-footer>.footer-grid{grid-template-columns:1fr;gap:32px}}
.rooms-section-footer{display:flex;justify-content:center;margin-top:38px}.rooms-section-footer .btn{min-width:min(100%,260px)}

/* Disponibilités visibles et suivi public */
.room-period-note{display:grid;gap:2px;margin:0 0 15px;padding:10px 12px;border:1px solid #fee0bd;border-radius:11px;background:#fff8ed;color:#82430c}.room-period-note span{font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.room-period-note strong{font-size:.82rem}.room-period-note.is-clear{border-color:#d4ecdf;background:#f0faf4;color:#17613d}.room-unavailability{margin:17px 0;padding:15px;border:1px solid var(--public-line);border-radius:13px;background:var(--public-soft)}.room-unavailability h3{margin:0 0 10px;font-size:.9rem;font-weight:800}.room-unavailability ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.room-unavailability li{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;padding:7px 9px;border-radius:8px;background:#fff;color:#344054;font-size:.8rem;text-align:center}.room-unavailability>small{display:block;margin-top:9px;color:var(--public-muted);font-size:.7rem;line-height:1.4}.room-calendar-clear{margin:0!important;color:#17613d!important;font-size:.8rem}.room-date-summary.is-conflict{display:block;padding:9px 10px;border-radius:8px;background:#fff0f0;color:#a32832;font-weight:700}.room-booking-card button:disabled,.checkout-submit:disabled{cursor:not-allowed;filter:grayscale(.25);opacity:.55;transform:none!important}.checkout-availability-message{padding:11px 13px;border-radius:10px;background:#edf9f2;color:#17613d;font-size:.86rem;font-weight:700}.checkout-availability-message.is-conflict{background:#fff0f0;color:#9b2932}.checkout-unavailable-periods{margin-top:10px;padding:9px 12px;border:1px solid var(--public-line);border-radius:10px}.checkout-unavailable-periods summary{cursor:pointer;color:#344054;font-size:.82rem;font-weight:750}.checkout-unavailable-periods ul{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}.checkout-unavailable-periods li{padding:6px 8px;border-radius:7px;background:var(--public-soft);font-size:.75rem}.tracking-save-note{display:block;margin-top:18px;color:var(--public-muted);line-height:1.5}
.booking-conflict-page{background:var(--public-soft)}.conflict-hero{padding:75px 0;background:radial-gradient(circle at 85% 15%,rgba(244,123,32,.16),transparent 30%),#fff;text-align:center}.conflict-icon{display:grid;width:70px;height:70px;margin:0 auto 20px;place-items:center;border-radius:50%;background:#fff0e6;color:#d95800;font-size:2rem;font-weight:900}.conflict-hero h1{max-width:900px;margin:.25em auto;color:var(--public-ink);font-size:clamp(2.5rem,5vw,4.8rem);font-weight:870;line-height:1;letter-spacing:-.05em}.conflict-hero p{max-width:760px;margin:22px auto;color:var(--public-muted);font-size:1.05rem;line-height:1.7}.conflict-actions{display:flex;justify-content:center;gap:10px;margin-top:27px}.conflict-alternatives{background:var(--public-soft)}.conflict-calendar{padding:0 0 85px;background:var(--public-soft)}.conflict-calendar .container{display:grid;grid-template-columns:1fr 1.2fr;gap:45px;padding:32px;border:1px solid var(--public-line);border-radius:20px;background:#fff}.conflict-calendar h2{font-size:1.6rem;font-weight:830}.conflict-calendar p{color:var(--public-muted);line-height:1.6}.conflict-calendar ul{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:0;list-style:none}.conflict-calendar li{display:grid;gap:2px;padding:12px;border-radius:11px;background:#fff7ec}.conflict-calendar li span{color:#a8540d;font-size:.67rem;font-weight:750;text-transform:uppercase}.conflict-calendar li strong{font-size:.85rem}
.reservation-lookup-page,.reservation-status-page{min-height:72vh;padding:70px 0 90px;background:radial-gradient(circle at 100% 0,rgba(244,123,32,.12),transparent 32%),var(--public-soft)}.reservation-lookup-card{display:grid;grid-template-columns:1.1fr .9fr;gap:55px;max-width:1050px;margin:auto;padding:clamp(25px,5vw,55px);border:1px solid var(--public-line);border-radius:25px;background:#fff;box-shadow:var(--public-shadow)}.lookup-copy h1{margin:.3em 0;font-size:clamp(2.5rem,5vw,4.2rem);font-weight:870;line-height:1;letter-spacing:-.05em}.lookup-copy p{color:var(--public-muted);line-height:1.7}.lookup-copy ul{display:grid;gap:10px;margin:25px 0 0;padding:0;list-style:none}.lookup-copy li::before{content:'✓';margin-right:9px;color:#16824b;font-weight:900}.lookup-form{align-self:center;padding:26px;border-radius:18px;background:var(--public-soft)}.lookup-form .form-control{min-height:52px;margin-bottom:17px}.lookup-form small{display:block;margin-top:13px;color:var(--public-muted);font-size:.72rem;line-height:1.5;text-align:center}.reservation-status-card{max-width:980px;margin:auto;padding:clamp(24px,5vw,50px);border:1px solid var(--public-line);border-radius:25px;background:#fff;box-shadow:var(--public-shadow)}.reservation-status-card>header{display:flex;align-items:center;gap:20px}.reservation-status-card h1{margin:.2em 0 0;font-size:clamp(2.3rem,5vw,4rem);font-weight:870;letter-spacing:-.045em}.reservation-status-card header p{margin:7px 0 0;color:var(--public-muted)}.reservation-status-icon{display:grid;flex:0 0 72px;width:72px;height:72px;place-items:center;border-radius:50%;background:#fff3d8;color:#9a5c00;font-size:2rem;font-weight:900}.status-visual-confirmee,.status-visual-checkin,.status-visual-checkout{background:#dcfce7;color:#15803d}.status-visual-annulee,.status-visual-noshow{background:#fee2e2;color:#b4232f}.reservation-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:35px 0 28px}.reservation-progress span{padding:14px 8px;border-radius:8px;background:#eef1f5;color:#7a8798;font-size:.74rem;font-weight:750;text-align:center}.reservation-progress span.is-done{background:#e6f7ed;color:#17613d}.reservation-progress[data-status="annulee"] span,.reservation-progress[data-status="noshow"] span{background:#f4f5f7;color:#8a94a3}.reservation-progress[data-status="annulee"] span:first-child,.reservation-progress[data-status="noshow"] span:first-child{background:#feeaea;color:#9b2932}.status-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);margin:0;padding:18px;border:1px solid var(--public-line);border-radius:15px}.status-detail-grid div{padding:4px 14px;border-right:1px solid var(--public-line)}.status-detail-grid div:last-child{border:0}.status-detail-grid dt{color:var(--public-muted);font-size:.7rem}.status-detail-grid dd{margin:5px 0 0;font-weight:800}.status-explanation{display:grid;gap:4px;margin:25px 0;padding:17px;border-radius:13px}.status-explanation span{font-size:.85rem}.status-explanation.is-pending{background:#fff8e8;color:#714b00}.status-explanation.is-success{background:#edf9f2;color:#17613d}.status-explanation.is-cancelled{background:#fff0f0;color:#842029}.status-updated{margin:22px 0 0;color:var(--public-muted);font-size:.72rem;text-align:center}
@media(max-width:767.98px){.conflict-actions{flex-direction:column}.conflict-actions .btn{width:100%}.conflict-calendar .container,.reservation-lookup-card{grid-template-columns:1fr}.conflict-calendar ul{grid-template-columns:1fr}.reservation-status-card>header{align-items:flex-start;flex-direction:column}.reservation-progress{grid-template-columns:1fr 1fr}.status-detail-grid{grid-template-columns:1fr 1fr}.status-detail-grid div{padding:12px;border-right:0;border-bottom:1px solid var(--public-line)}.status-detail-grid div:nth-last-child(-n+2){border-bottom:0}.reservation-lookup-page,.reservation-status-page{padding:35px 0 60px}}
@media(max-width:480px){.status-detail-grid{grid-template-columns:1fr}.status-detail-grid div,.status-detail-grid div:nth-last-child(-n+2){border-bottom:1px solid var(--public-line)}.status-detail-grid div:last-child{border-bottom:0}.reservation-progress{grid-template-columns:1fr}.conflict-calendar .container{padding:22px 17px}.lookup-form{padding:20px 16px}}
