
:root{
  --bg:#f6f5f2;
  --paper:#ffffff;
  --paper-soft:#f0efec;
  --ink:#252a2f;
  --ink-2:#343a40;
  --muted:#737a81;
  --line:#deded9;
  --orange:#ff5f20;
  --orange-2:#ff7846;
  --shadow:0 18px 45px rgba(28,32,36,.07);
  --radius:24px;
  --radius-sm:16px;
  --wrap:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Manrope",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
h1,h2,h3,p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}

.wrap{
  width:min(var(--wrap),calc(100% - 38px));
  margin-inline:auto;
}

/* HEADER */
.header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(246,245,242,.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(37,42,47,.06);
}
.nav{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
}
.logo-symbol{
  width:34px;
  height:27px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
}
.logo-symbol i{
  display:block;
  width:3px;
  border-radius:999px;
  background:var(--orange);
}
.logo-symbol i:nth-child(1),.logo-symbol i:nth-child(5){height:7px}
.logo-symbol i:nth-child(2),.logo-symbol i:nth-child(4){height:16px}
.logo-symbol i:nth-child(3){height:26px}

.logo-text{
  display:flex;
  flex-direction:column;
  line-height:.92;
}
.logo-text strong{
  font-family:"Anton",sans-serif;
  font-size:1.25rem;
  font-weight:400;
}
.logo-text strong span{color:var(--orange)}
.logo-text small{
  margin-top:6px;
  font-size:.46rem;
  letter-spacing:.18em;
  color:#646b72;
  font-weight:800;
}
.nav-links{
  display:none;
  gap:28px;
}
.nav-links a{
  position:relative;
  font-size:.72rem;
  font-weight:700;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-12px;
  width:0;
  height:2px;
  background:var(--orange);
  transition:.25s;
}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}

.header-right{
  display:flex;
  align-items:center;
  gap:12px;
}
.calendar-icon{
  width:46px;
  height:46px;
  display:none;
  place-items:center;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--paper);
}
.header-cta{
  min-height:48px;
  padding:0 20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:var(--ink-2);
  color:white;
  font-size:.68rem;
  font-weight:800;
  box-shadow:0 8px 25px rgba(37,42,47,.10);
  transition:.25s;
}
.header-cta:hover{transform:translateY(-2px);background:#1f2429}

.menu-toggle{
  width:42px;height:42px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--paper);
  display:grid;
  place-items:center;
  gap:4px;
  padding:11px;
}
.menu-toggle span{
  width:100%;
  height:1px;
  background:var(--ink);
}
.mobile-menu{
  position:absolute;
  top:76px;
  left:19px;
  right:19px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--paper);
  box-shadow:var(--shadow);
  display:grid;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:.22s;
}
.mobile-menu.open{
  opacity:1;
  visibility:visible;
  transform:none;
}
.mobile-menu a{
  padding:14px 12px;
  border-bottom:1px solid #ecebe7;
  font-size:.72rem;
  font-weight:700;
}
.mobile-menu a:last-child{border-bottom:0}

/* BUTTONS */
.btn{
  min-height:52px;
  padding:0 23px;
  border-radius:16px;
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-size:.73rem;
  font-weight:800;
  transition:.25s;
}
.btn:hover{transform:translateY(-2px)}
.btn-orange{
  background:linear-gradient(90deg,var(--orange),var(--orange-2));
  color:#fff;
  box-shadow:0 10px 28px rgba(255,95,32,.18);
}
.btn-dark{
  background:var(--ink-2);
  color:#fff;
}
.btn-outline{
  border-color:#cfcfca;
  background:var(--paper);
}
.btn-full{width:100%}
.btn:disabled{
  opacity:.35;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

/* HERO */
.hero{
  padding:72px 0 32px;
}
.hero-grid{
  display:grid;
  gap:38px;
  align-items:center;
}
.eyebrow{
  color:#6c737a;
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.24em;
}
.hero h1{
  margin-top:15px;
  font-family:"Anton",sans-serif;
  font-size:clamp(4rem,15vw,7.2rem);
  font-weight:400;
  line-height:.92;
  letter-spacing:.005em;
}
.hero h1 span{color:var(--orange)}
.hero-sub{
  margin-top:22px;
  max-width:620px;
  color:#5f666d;
  font-size:1rem;
  line-height:1.65;
}
.hero-points{
  margin-top:28px;
  display:grid;
  gap:14px;
}
.hero-point{
  display:flex;
  align-items:center;
  gap:12px;
}
.hero-point-icon{
  width:36px;height:36px;
  display:grid;place-items:center;
  border-radius:12px;
  color:var(--ink);
  background:var(--paper);
  border:1px solid #e4e3df;
}
.hero-point strong{font-size:.69rem}
.hero-point small{
  display:block;
  margin-top:2px;
  color:#777e84;
  font-size:.55rem;
}
.hero-photo{
  min-height:360px;
  border-radius:32px;
  overflow:hidden;
  position:relative;
  background:
    linear-gradient(180deg,rgba(18,20,22,.08),rgba(18,20,22,.34)),
    url("https://images.unsplash.com/photo-1501386761578-eac5c94b800a?auto=format&fit=crop&w=1400&q=90") center/cover no-repeat;
  box-shadow:var(--shadow);
}
.hero-photo-note{
  position:absolute;
  right:22px;
  bottom:22px;
  max-width:250px;
  padding:18px 20px;
  border-radius:20px;
  background:rgba(43,47,51,.68);
  backdrop-filter:blur(10px);
  color:#fff;
}
.hero-photo-note span{
  display:block;
  font-size:.52rem;
  letter-spacing:.16em;
  font-weight:800;
  line-height:1.7;
}
.hero-photo-note i{
  display:block;
  margin-top:12px;
  width:38px;
  height:2px;
  background:var(--orange);
}

/* BOOKING CARD */
.booking-shell{
  padding:22px 0 30px;
}
.booking-card{
  padding:22px;
  border:1px solid #e1e0dc;
  border-radius:28px;
  background:var(--paper);
  box-shadow:var(--shadow);
}
.booking-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.step-label{
  display:flex;
  align-items:center;
  gap:12px;
}
.step-dot{
  width:36px;height:36px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--orange);
  color:white;
  font-weight:800;
  font-size:.72rem;
}
.step-label h2{
  font-size:1.45rem;
}
.booking-title-row>p{
  display:none;
  color:#777e84;
  font-size:.65rem;
}
.booking-grid{
  display:grid;
  gap:20px;
}
.calendar-panel{
  padding:18px;
  border:1px solid #ecebe7;
  border-radius:20px;
  background:#fbfaf8;
}
.calendar-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:14px;
}
.calendar-top button{
  width:34px;height:34px;
  border:0;
  border-radius:11px;
  background:transparent;
  font-size:1.2rem;
}
.calendar-top strong{
  font-size:.8rem;
  text-transform:capitalize;
}
.weekdays,.calendar{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:6px;
}
.weekdays{
  margin-bottom:5px;
  color:#899097;
  font-size:.5rem;
  text-align:center;
}
.day{
  aspect-ratio:1;
  border:0;
  border-radius:12px;
  background:#f3f2ef;
  color:var(--ink);
  font-size:.62rem;
  font-weight:700;
  transition:.2s;
}
.day:not(:disabled):hover{
  transform:translateY(-2px);
  background:#ebeae6;
}
.day.empty{background:transparent}
.day.past{opacity:.28}
.day.booked-day{
  color:#aaa;
  text-decoration:line-through;
}
.day.selected-day{
  background:var(--orange);
  color:white;
  box-shadow:0 7px 18px rgba(255,95,32,.18);
}

.date-panel{
  padding:18px;
  border-radius:20px;
  background:#faf9f7;
  border:1px solid #ecebe7;
  display:grid;
  align-content:center;
  gap:16px;
}
.date-panel-head{
  display:flex;
  align-items:center;
  gap:10px;
}
.date-panel-head strong{font-size:.82rem}
.selected-date-box{
  min-height:68px;
  padding:0 15px;
  border-radius:15px;
  border:1px solid #e6e5e1;
  background:var(--paper);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.selected-date-box strong{
  font-size:.75rem;
  text-transform:capitalize;
}
.selected-date-box button{
  border:1px solid #d8d7d2;
  background:#f8f7f4;
  border-radius:12px;
  padding:9px 13px;
  font-size:.58rem;
}
.date-hold{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  color:#747b82;
  font-size:.53rem;
}

/* QUICK INFO */
.quick-info{
  padding:18px 0 8px;
}
.quick-info-grid{
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.quick-info article{
  min-height:92px;
  padding:18px 0;
  display:flex;
  align-items:center;
  gap:13px;
  border-bottom:1px solid var(--line);
}
.quick-info article:last-child{border-bottom:0}
.quick-icon{
  width:44px;height:44px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border:1px solid #e0dfdb;
  border-radius:14px;
  background:var(--paper);
  font-size:1.05rem;
}
.quick-info strong{font-size:.68rem}
.quick-info small{
  display:block;
  margin-top:4px;
  color:#777e84;
  font-size:.54rem;
}
.quick-price{
  margin-left:auto;
  color:var(--orange);
  font-family:"Anton";
  font-size:1.5rem;
  font-weight:400;
}

/* PASS */
.pass-section{
  padding:54px 0 72px;
}
.pass-title{
  text-align:center;
  max-width:850px;
  margin:0 auto 28px;
}
.pass-title span{
  color:var(--orange);
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.18em;
}
.pass-title h2{
  margin-top:9px;
  font-size:clamp(2rem,7vw,3.2rem);
}
.pass-grid{
  display:grid;
  gap:14px;
}
.pass-card{
  padding:22px;
  border-radius:20px;
  border:1px solid #e0dfda;
  background:var(--paper);
  box-shadow:0 10px 30px rgba(28,32,36,.04);
  display:flex;
  flex-direction:column;
}
.pass-card.featured{
  border-color:var(--orange);
  background:#fff9f5;
}
.pass-kicker{
  display:flex;
  align-items:center;
  gap:10px;
}
.pass-kicker i{
  width:32px;height:32px;
  display:grid;place-items:center;
  border-radius:11px;
  background:#fff0e8;
  color:var(--orange);
  font-style:normal;
}
.pass-kicker strong{font-size:.72rem}
.pass-price{
  margin-top:18px;
  font-family:"Anton";
  font-size:2rem;
  font-weight:400;
}
.pass-price small{
  font-family:"Manrope";
  font-size:.55rem;
  color:#737a81;
}
.pass-card ul{
  margin:20px 0;
  display:grid;
  gap:9px;
  color:#5f666d;
  font-size:.62rem;
}
.pass-card li{
  position:relative;
  padding-left:17px;
}
.pass-card li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--orange);
  font-weight:800;
}
.pass-card button{
  margin-top:auto;
  min-height:44px;
  border-radius:14px;
  border:1px solid var(--orange);
  background:transparent;
  font-size:.62rem;
  font-weight:800;
}

/* CTA STRIP */
.cta-strip{
  padding:0 0 60px;
}
.cta-box{
  padding:28px;
  border-radius:24px;
  background:#f0eee9;
  border:1px solid #dfded9;
  display:grid;
  gap:20px;
}
.cta-box span{
  color:#737a81;
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.16em;
}
.cta-box h2{
  margin-top:7px;
  font-size:clamp(1.8rem,6vw,3rem);
}
.cta-box h2 b{color:var(--orange)}
.cta-wave{
  display:flex;
  align-items:flex-end;
  gap:5px;
  height:52px;
}
.cta-wave i{
  width:8px;
  border-radius:8px 8px 0 0;
  background:#ffd5c1;
}
.cta-wave i:nth-child(1){height:14px}
.cta-wave i:nth-child(2){height:25px}
.cta-wave i:nth-child(3){height:39px}
.cta-wave i:nth-child(4){height:50px}
.cta-wave i:nth-child(5){height:34px}
.cta-wave i:nth-child(6){height:22px}

/* FOOTER */
.footer{
  padding:28px 0 34px;
  border-top:1px solid #e0dfda;
}
.footer-grid{
  display:grid;
  gap:20px;
}
.footer nav{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.footer nav a{
  color:#656c73;
  font-size:.57rem;
}

/* FLOW PAGES */
.flow-body{
  background:var(--bg);
}
.flow-header{
  border-bottom:1px solid #e0dfda;
  background:var(--bg);
}
.flow-nav{
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.flow-back{
  color:#6f767d;
  font-size:.62rem;
  font-weight:700;
}
.flow-main{
  padding:52px 0 90px;
}
.flow-progress{
  display:flex;
  align-items:center;
  margin-bottom:35px;
  max-width:700px;
}
.flow-progress span{
  font-size:.5rem;
  font-weight:800;
  color:#9a9fa4;
  white-space:nowrap;
}
.flow-progress span.active{color:var(--orange)}
.flow-progress span.done{color:var(--ink)}
.flow-progress i{
  flex:1;
  height:1px;
  margin:0 8px;
  background:#dddcd7;
}
.flow-head{
  max-width:830px;
}
.flow-head h1{
  margin-top:12px;
  font-family:"Anton";
  font-size:clamp(3rem,10vw,5.4rem);
  font-weight:400;
  line-height:.94;
}
.flow-head h1 span{color:var(--orange)}
.flow-head>p:last-child{
  margin-top:15px;
  color:#737a81;
  font-size:.7rem;
  line-height:1.65;
}
.hold-pill{
  margin-top:22px;
  display:inline-flex;
  gap:10px;
  align-items:center;
  padding:10px 14px;
  border-radius:14px;
  background:#eceae5;
  color:#626970;
  font-size:.56rem;
}
.hold-pill strong{color:var(--orange)}

.mode-grid{
  margin-top:30px;
  display:grid;
  gap:14px;
}
.mode-card{
  padding:22px;
  border:1px solid #e1e0dc;
  border-radius:20px;
  background:var(--paper);
  text-align:left;
  transition:.25s;
}
.mode-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.mode-card.featured{border-color:var(--orange)}
.mode-card span{
  color:#777e84;
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.14em;
}
.mode-card strong{
  display:block;
  margin-top:15px;
  font-family:"Anton";
  font-size:2.3rem;
  font-weight:400;
}
.mode-card strong small{
  font-family:"Manrope";
  font-size:.52rem;
  color:#777e84;
}
.mode-card p{
  margin-top:8px;
  color:#737a81;
  font-size:.61rem;
  line-height:1.55;
}
.mode-card ul{
  margin-top:20px;
  display:grid;
  gap:8px;
  color:#5f666d;
  font-size:.6rem;
}
.mode-card li::before{
  content:"✓";
  color:var(--orange);
  margin-right:8px;
}
.mode-card em{
  display:flex;
  justify-content:space-between;
  margin-top:22px;
  padding-top:15px;
  border-top:1px solid #ebeae6;
  font-style:normal;
  font-size:.62rem;
  font-weight:800;
}

.flow-panel{
  margin-top:24px;
  padding:22px;
  border-radius:22px;
  border:1px solid #e0dfda;
  background:var(--paper);
  box-shadow:var(--shadow);
}
.flow-panel-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:20px;
}
.flow-panel-title span{
  color:var(--orange);
  font-size:.54rem;
  font-weight:800;
  letter-spacing:.15em;
}
.change-mode{
  border:0;
  background:none;
  color:#727980;
  font-size:.58rem;
  text-decoration:underline;
}

.flow-layout{
  display:grid;
  gap:18px;
}
.flow-form{
  display:grid;
  gap:13px;
}
.form-grid-2{
  display:grid;
  gap:13px;
}
.flow-form label,
.member-form label{
  display:grid;
  gap:7px;
  color:#6c737a;
  font-size:.58rem;
  font-weight:700;
}
.flow-form input,
.flow-form select,
.member-form input,
.member-form select{
  width:100%;
  min-height:48px;
  padding:0 12px;
  border:1px solid #d9d8d4;
  border-radius:14px;
  background:#faf9f7;
  color:var(--ink);
  outline:none;
}
.flow-form input:focus,.flow-form select:focus,.member-form input:focus,.member-form select:focus{
  border-color:var(--orange);
}
.option-card{
  min-height:74px;
  padding:13px;
  border:1px solid #deddd8;
  border-radius:16px;
  background:#fbfaf8;
  display:grid!important;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px!important;
}
.option-card input{
  width:17px!important;
  min-height:0!important;
}
.option-card span{display:grid;gap:3px}
.option-card strong{color:var(--ink);font-size:.66rem}
.option-card small{color:#7c8389;font-size:.52rem}
.option-card b{color:var(--orange);font-size:.7rem}

.order-card{
  padding:20px;
  border-radius:18px;
  background:#f1efeb;
  border:1px solid #deddd8;
  height:max-content;
}
.order-card>span{
  color:#737a81;
  font-size:.49rem;
  font-weight:800;
  letter-spacing:.14em;
}
.order-card>strong{
  display:block;
  margin-top:8px;
  font-size:.82rem;
}
.order-lines{
  margin-top:18px;
  border-top:1px solid #d9d7d2;
}
.order-lines div{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #d9d7d2;
  font-size:.57rem;
}
.order-total{
  padding-top:18px;
  display:flex;
  align-items:end;
  justify-content:space-between;
}
.order-total span{font-size:.57rem;color:#727980}
.order-total strong{
  font-family:"Anton";
  font-size:2rem;
  font-weight:400;
}
.prototype-note{
  display:block;
  margin-top:8px;
  color:#8a9095;
  font-size:.49rem;
  line-height:1.5;
}

.member-box{
  max-width:720px;
}
.member-box h3{
  margin-top:10px;
  font-size:1.6rem;
}
.member-box p{
  margin-top:8px;
  color:#737a81;
  font-size:.63rem;
}
.member-form{
  margin-top:18px;
  display:grid;
  gap:12px;
}
.pass-status{
  padding:18px;
  border-radius:18px;
  background:#eff7f0;
  border:1px solid #d7ead9;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.pass-status i{
  padding:5px 8px;
  border-radius:999px;
  background:#57b96d;
  color:white;
  font-size:.45rem;
  font-style:normal;
  font-weight:800;
}
.eligibility{
  margin-top:14px;
  display:grid;
  gap:10px;
}
.eligibility article{
  padding:14px;
  border-radius:15px;
  background:#faf9f7;
  border:1px solid #e2e1dd;
}
.eligibility span{font-size:.48rem;color:#7b8288}
.eligibility strong{display:block;margin-top:5px;font-size:.64rem}
.eligibility strong.ok{color:#3d9e54}

/* CONFIRMATION */
.confirmation-wrap{max-width:760px}
.confirmation-icon{
  width:58px;height:58px;
  border-radius:50%;
  display:grid;place-items:center;
  background:var(--orange);
  color:white;
  font-size:1.4rem;
  font-weight:800;
  margin-bottom:20px;
}
.confirmation-card{
  margin-top:28px;
  border:1px solid #deddd8;
  border-radius:20px;
  overflow:hidden;
  background:var(--paper);
}
.confirmation-card div{
  min-height:58px;
  padding:0 17px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #ebeae6;
}
.confirmation-card div:last-child{border-bottom:0}
.confirmation-card span{font-size:.52rem;color:#757c82}
.confirmation-card strong{font-size:.64rem;text-align:right}
.confirmation-actions{
  margin-top:20px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* RESPONSIVE */
@media(min-width:760px){
  .wrap{width:min(var(--wrap),calc(100% - 72px))}
  .nav-links{display:flex}
  .calendar-icon{display:grid}
  .menu-toggle,.mobile-menu{display:none}
  .hero-grid{grid-template-columns:1.1fr .9fr}
  .hero-photo{min-height:470px}
  .hero-points{grid-template-columns:repeat(3,1fr)}
  .booking-card{padding:26px}
  .booking-grid{grid-template-columns:1fr 1fr}
  .booking-title-row>p{display:block}
  .quick-info-grid{grid-template-columns:repeat(3,1fr)}
  .quick-info article{
    border-bottom:0;
    border-right:1px solid var(--line);
    padding:20px 18px;
  }
  .quick-info article:first-child{padding-left:0}
  .quick-info article:last-child{border-right:0}
  .pass-grid{grid-template-columns:repeat(3,1fr)}
  .cta-box{grid-template-columns:1fr auto;align-items:center}
  .footer-grid{grid-template-columns:1.2fr 1fr;align-items:end}
  .mode-grid{grid-template-columns:repeat(3,1fr)}
  .flow-layout{grid-template-columns:1.2fr .8fr}
  .form-grid-2{grid-template-columns:1fr 1fr}
  .eligibility{grid-template-columns:repeat(2,1fr)}
  .confirmation-actions{flex-direction:row}
}

@media(min-width:1050px){
  .hero{padding-top:84px}
  .hero h1{font-size:7.2rem}
}

@media(max-width:759px){
  .header-cta{display:none}
  .hero{padding-top:48px}
  .hero-photo{min-height:310px}
  .booking-shell{padding-top:12px}
  .step-label h2{font-size:1.18rem}
  .date-panel{min-height:220px}
}


/* V12 — état abonnement */
.pass-error{
  display:block;
  margin-top:10px;
  color:#c85446;
  font-size:.54rem;
}

.pass-blocked{
  margin-top:14px;
  padding:13px 15px;
  border:1px solid #efd0ca;
  border-radius:14px;
  background:#fff2ef;
  color:#a84f43;
  font-size:.58rem;
  line-height:1.5;
}

#memberReserveButton:disabled{
  opacity:.4;
  cursor:not-allowed;
}


/* =====================================================
   V13 — GESTION ANNULATION / DÉPLACEMENT
===================================================== */

.manage-wrap{
  max-width:980px;
}

.manage-loading{
  margin-top:28px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--paper);
  color:var(--muted);
  font-size:.65rem;
}

.manage-summary{
  margin-top:28px;
  display:grid;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.manage-summary>div{
  min-height:72px;
  padding:15px 18px;
  border-bottom:1px solid #ebeae6;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}

.manage-summary>div:last-child{
  border-bottom:0;
}

.manage-summary span{
  color:#8a9095;
  font-size:.47rem;
  font-weight:800;
  letter-spacing:.12em;
}

.manage-summary strong{
  font-size:.67rem;
}

.manage-actions-grid{
  margin-top:18px;
  display:grid;
  gap:18px;
}

.manage-action-card{
  padding:22px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.manage-step{
  color:var(--orange);
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.14em;
}

.manage-action-card h2{
  margin-top:9px;
  font-size:1.5rem;
}

.manage-action-card>p{
  margin-top:8px;
  color:var(--muted);
  font-size:.61rem;
  line-height:1.6;
}

.manage-calendar{
  margin-top:20px;
}

.manage-new-date{
  margin:15px 0;
  min-height:66px;
  padding:12px 14px;
  border:1px solid #e5e4e0;
  border-radius:15px;
  background:#faf9f7;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
}

.manage-new-date span{
  color:#888f95;
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.13em;
}

.manage-new-date strong{
  font-size:.65rem;
  text-transform:capitalize;
}

.current-booking-day{
  background:#343a40!important;
  color:#fff!important;
  opacity:1!important;
  text-decoration:none!important;
}

.danger-card{
  border-color:#ead9d5;
}

.cancel-warning{
  margin:20px 0;
  padding:15px;
  border-radius:16px;
  border:1px solid #efd8d2;
  background:#fff4f1;
}

.cancel-warning strong{
  font-size:.63rem;
  color:#9b4f42;
}

.cancel-warning p{
  margin-top:5px;
  color:#9c6f67;
  font-size:.55rem;
  line-height:1.55;
}

.btn-danger{
  background:#b85647;
  color:#fff;
}

.btn-danger:hover{
  background:#a54c3f;
}

.manage-result{
  margin-top:30px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.manage-result h2{
  font-size:1.7rem;
}

.manage-result p{
  margin:9px 0 20px;
  color:var(--muted);
  font-size:.64rem;
  line-height:1.6;
}

@media(min-width:760px){
  .manage-summary{
    grid-template-columns:repeat(4,1fr);
  }

  .manage-summary>div{
    border-bottom:0;
    border-right:1px solid #ebeae6;
  }

  .manage-summary>div:last-child{
    border-right:0;
  }

  .manage-actions-grid{
    grid-template-columns:1.35fr .65fr;
    align-items:start;
  }
}


/* =====================================================
   V14 — STRIPE PAYMENT RETURN
===================================================== */

.payment-return-main{
  min-height:calc(100vh - 78px);
  display:flex;
  align-items:center;
}

.payment-return-wrap{
  max-width:760px;
}

.payment-state{
  padding:34px;
  border:1px solid var(--line);
  border-radius:26px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.payment-state h1{
  margin-top:12px;
  font-family:"Anton";
  font-size:clamp(3.8rem,11vw,6.2rem);
  font-weight:400;
  line-height:.92;
}

.payment-state h1 span{
  color:var(--orange);
}

.payment-state>p:not(.eyebrow){
  margin-top:17px;
  max-width:590px;
  color:var(--muted);
  font-size:.67rem;
  line-height:1.7;
}

.payment-spinner{
  width:46px;
  height:46px;
  margin-bottom:22px;
  display:block;
  border:4px solid #eceae5;
  border-top-color:var(--orange);
  border-radius:50%;
  animation:sonoSpin .85s linear infinite;
}

@keyframes sonoSpin{
  to{transform:rotate(360deg)}
}


/* =====================================================
   V15 — SECTIONS DISTINCTES + ÉTUDIANTS
===================================================== */

.section-mini-head,
.section-head-left{
  margin-bottom:24px;
}

.section-mini-head span,
.section-head-left span,
.contact-box>div>span{
  color:var(--orange);
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.16em;
}

.section-mini-head h2,
.section-head-left h2{
  margin-top:8px;
  font-size:clamp(2rem,6vw,3.2rem);
}

.section-head-left p{
  margin-top:8px;
  color:var(--muted);
  font-size:.68rem;
}

.quick-info{
  padding:52px 0 20px;
}

.pricing-section{
  padding:62px 0 30px;
}

.pricing-grid{
  display:grid;
  gap:16px;
}

.price-card{
  position:relative;
  padding:24px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.price-card.student-card{
  border-color:#f0c6b3;
  background:#fff9f5;
}

.price-tag{
  color:#7d8388;
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.15em;
}

.student-badge{
  position:absolute;
  top:18px;
  right:18px;
  padding:6px 9px;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.1em;
}

.big-price{
  display:block;
  margin-top:15px;
  font-family:"Anton";
  font-size:3.1rem;
  font-weight:400;
}

.price-card>p{
  margin-top:8px;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.6;
}

.price-card ul{
  margin:18px 0 22px;
  display:grid;
  gap:9px;
  color:#5f666d;
  font-size:.6rem;
}

.price-card li::before{
  content:"✓";
  margin-right:8px;
  color:var(--orange);
  font-weight:800;
}

.student-pass-card,
.student-mode-card{
  border-color:#f0c6b3!important;
  background:#fff9f5!important;
}

.faq-section{
  padding:60px 0;
}

.faq-grid{
  display:grid;
  gap:12px;
}

.faq-grid article{
  padding:20px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--paper);
}

.faq-grid strong{
  font-size:.68rem;
}

.faq-grid p{
  margin-top:8px;
  color:var(--muted);
  font-size:.58rem;
  line-height:1.6;
}

.contact-section{
  padding:0 0 56px;
}

.contact-box{
  padding:28px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--paper);
  display:grid;
  gap:20px;
  box-shadow:var(--shadow);
}

.contact-box h2{
  margin-top:8px;
  font-size:clamp(1.8rem,5vw,2.8rem);
}

.contact-box p{
  margin-top:8px;
  max-width:650px;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.6;
}

@media(min-width:760px){
  .pricing-grid{
    grid-template-columns:1fr 1fr;
  }

  .pass-grid{
    grid-template-columns:repeat(4,1fr);
  }

  .faq-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .contact-box{
    grid-template-columns:1fr auto;
    align-items:center;
  }

  .mode-grid{
    grid-template-columns:repeat(4,1fr);
  }
}


/* =====================================================
   V16 — ÉTUDIANTS / ADMIN
===================================================== */

.student-verification-notice{
  padding:15px;
  border:1px solid #e4e2dd;
  border-radius:16px;
  background:#faf9f7;
}

.student-verification-notice span{
  color:var(--orange);
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.14em;
}

.student-verification-notice strong{
  display:block;
  margin-top:6px;
  font-size:.66rem;
}

.student-verification-notice p{
  margin-top:5px;
  color:var(--muted);
  font-size:.54rem;
  line-height:1.55;
}

.student-pending-wrap{
  max-width:760px;
}

.student-pending-card{
  margin-top:26px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.student-pending-card span{
  color:var(--orange);
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.14em;
}

.student-pending-card strong{
  display:block;
  margin-top:7px;
  font-size:1.1rem;
}

.student-pending-card p{
  margin-top:8px;
  color:var(--muted);
  font-size:.61rem;
  line-height:1.65;
}

.admin-private-label{
  color:#8a9095;
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.14em;
}

.admin-wrap{
  max-width:1050px;
}

.admin-login-card{
  max-width:540px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.admin-login-card h1,
.admin-head h1{
  margin-top:10px;
  font-family:"Anton";
  font-size:clamp(3.5rem,10vw,5.5rem);
  font-weight:400;
  line-height:.92;
}

.admin-login-card h1 span,
.admin-head h1 span{
  color:var(--orange);
}

.admin-login-card>p:not(.eyebrow){
  margin-top:13px;
  color:var(--muted);
  font-size:.62rem;
}

.admin-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
}

.admin-stats{
  margin-top:26px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}

.admin-stats article{
  padding:17px;
  border:1px solid var(--line);
  border-radius:17px;
  background:var(--paper);
}

.admin-stats span{
  color:#8a9095;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.12em;
}

.admin-stats strong{
  display:block;
  margin-top:5px;
  font-family:"Anton";
  font-size:1.8rem;
  font-weight:400;
}

.admin-list{
  margin-top:18px;
  display:grid;
  gap:12px;
}

.admin-verification-card{
  padding:20px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--paper);
  box-shadow:0 8px 24px rgba(28,32,36,.04);
}

.admin-card-top strong{
  display:block;
  margin-top:9px;
  font-size:.76rem;
}

.admin-card-top small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.52rem;
}

.admin-status{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  font-size:.43rem;
  font-weight:800;
  letter-spacing:.08em;
}

.admin-status.pending{
  background:#fff1e7;
  color:#c16a36;
}

.admin-status.approved{
  background:#eaf7ed;
  color:#3e9451;
}

.admin-status.rejected{
  background:#fae9e6;
  color:#a84e42;
}

.admin-card-actions{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #ebeae6;
  display:grid;
  gap:10px;
}

.admin-card-actions label{
  display:grid;
  gap:5px;
  color:#757c82;
  font-size:.5rem;
}

.admin-card-actions input{
  min-height:44px;
  padding:0 11px;
  border:1px solid #dad9d5;
  border-radius:12px;
  background:#faf9f7;
}

.admin-empty{
  padding:24px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--paper);
  color:var(--muted);
  font-size:.62rem;
}

@media(min-width:760px){
  .admin-card-actions{
    grid-template-columns:auto 1fr auto auto;
    align-items:end;
  }
}


/* =====================================================
   V17 — TABLEAU DE BORD ADMIN COMPLET
===================================================== */

.admin-tabs{
  margin-top:28px;
  padding:6px;
  display:flex;
  gap:5px;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:17px;
  background:var(--paper);
}

.admin-tab{
  min-height:42px;
  padding:0 15px;
  flex:0 0 auto;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#727980;
  font-size:.57rem;
  font-weight:800;
}

.admin-tab.active{
  background:var(--ink-2);
  color:#fff;
}

.admin-tab-panel{
  margin-top:20px;
}

.dashboard-stats{
  grid-template-columns:repeat(2,1fr);
}

.admin-overview-grid{
  margin-top:16px;
  display:grid;
  gap:16px;
}

.admin-block{
  padding:20px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.admin-block-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.admin-block-head>div>span{
  color:var(--orange);
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.14em;
}

.admin-block-head h2{
  margin-top:5px;
  font-size:1.25rem;
}

.admin-inline-link{
  border:0;
  background:none;
  color:#71787e;
  font-size:.54rem;
  font-weight:800;
}

.admin-mini-list{
  display:grid;
  gap:8px;
}

.admin-mini-booking{
  min-height:66px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:9px 0;
  border-bottom:1px solid #ebeae6;
}

.admin-mini-booking:last-child{
  border-bottom:0;
}

.admin-date-chip{
  width:52px;
  min-height:46px;
  display:grid;
  place-items:center;
  padding:5px;
  border-radius:13px;
  background:#f1efeb;
  text-align:center;
}

.admin-date-chip strong{
  font-size:.56rem;
}

.admin-mini-booking-main{
  min-width:0;
}

.admin-mini-booking-main strong{
  display:block;
  font-size:.64rem;
}

.admin-mini-booking-main small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.5rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.admin-mini-booking>b{
  color:var(--orange);
  font-size:.66rem;
}

.admin-manual-form{
  display:grid;
  gap:11px;
}

.admin-manual-form label{
  display:grid;
  gap:6px;
  color:#71787e;
  font-size:.53rem;
  font-weight:700;
}

.admin-manual-form input,
.admin-manual-form select{
  min-height:46px;
  padding:0 11px;
  border:1px solid #dad9d5;
  border-radius:13px;
  background:#faf9f7;
  color:var(--ink);
}

.admin-filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.admin-filter-row select,
.admin-filter-row input{
  min-height:42px;
  padding:0 10px;
  border:1px solid #dddcd7;
  border-radius:12px;
  background:#faf9f7;
  font-size:.55rem;
}

.admin-bookings-list{
  display:grid;
  gap:9px;
}

.admin-booking-row{
  padding:14px;
  display:grid;
  gap:12px;
  border:1px solid #e5e4e0;
  border-radius:17px;
  background:#fbfaf8;
}

.admin-booking-row.is-cancelled{
  opacity:.55;
}

.admin-booking-date span,
.admin-booking-customer strong,
.admin-booking-info strong,
.admin-booking-price strong{
  display:block;
  font-size:.62rem;
}

.admin-booking-date small,
.admin-booking-customer small,
.admin-booking-info small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.49rem;
}

.admin-booking-price{
  display:flex;
  align-items:center;
  gap:8px;
}

.admin-booking-actions{
  display:flex;
  gap:7px;
}

.admin-action-btn{
  min-height:36px;
  padding:0 11px;
  border:1px solid #d9d8d3;
  border-radius:10px;
  background:#fff;
  font-size:.5rem;
  font-weight:800;
}

.admin-action-btn.danger{
  border-color:#ecd0ca;
  color:#aa5144;
}

.admin-action-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.admin-clients-list{
  display:grid;
  gap:9px;
}

.admin-client-row{
  padding:14px;
  display:grid;
  gap:12px;
  border:1px solid #e5e4e0;
  border-radius:17px;
  background:#fbfaf8;
}

.admin-client-row>div:first-child strong{
  display:block;
  font-size:.66rem;
}

.admin-client-row small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.5rem;
}

.admin-client-row>div:not(:first-child) span{
  display:block;
  color:#8a9095;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.08em;
}

.admin-client-row>div:not(:first-child) strong{
  display:block;
  margin-top:4px;
  font-size:.58rem;
}

.admin-modal{
  position:fixed;
  inset:0;
  z-index:200;
  padding:20px;
  display:grid;
  place-items:center;
  background:rgba(28,32,36,.45);
  backdrop-filter:blur(8px);
}

.admin-modal-card{
  position:relative;
  width:min(480px,100%);
  max-height:calc(100dvh - 40px);
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:25px;
  border-radius:23px;
  background:var(--paper);
  box-shadow:0 26px 80px rgba(20,24,28,.20);
}

.admin-modal-card>span{
  color:var(--orange);
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.14em;
}

.admin-modal-card h2{
  margin-top:7px;
  font-size:1.5rem;
}

.admin-modal-card p{
  margin-top:7px;
  color:var(--muted);
  font-size:.58rem;
}

.admin-modal-card label{
  margin:18px 0 13px;
  display:grid;
  gap:6px;
  color:#727980;
  font-size:.53rem;
}

.admin-modal-card input{
  min-height:47px;
  padding:0 11px;
  border:1px solid #dad9d5;
  border-radius:13px;
  background:#faf9f7;
}

.admin-modal-close{
  position:absolute;
  top:13px;
  right:13px;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#f0efeb;
  font-size:1.2rem;
}

@media(min-width:760px){
  .dashboard-stats{
    grid-template-columns:repeat(4,1fr);
  }

  .admin-overview-grid{
    grid-template-columns:1.15fr .85fr;
  }

  .admin-booking-row{
    grid-template-columns:
      .75fr
      1.2fr
      1.35fr
      .75fr
      auto;
    align-items:center;
  }

  .admin-client-row{
    grid-template-columns:
      1.5fr
      1fr
      .7fr
      1fr;
    align-items:center;
  }
}


/* =====================================================
   V18 — HISTORIQUE E-MAILS ADMIN
===================================================== */

.admin-email-log{
  display:grid;
  gap:9px;
}

.admin-email-row{
  padding:14px;
  display:grid;
  gap:11px;
  border:1px solid #e5e4e0;
  border-radius:16px;
  background:#fbfaf8;
}

.admin-email-row>div:first-child strong{
  display:block;
  font-size:.62rem;
}

.admin-email-row>div:first-child small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.49rem;
}

.admin-email-row>div:not(:first-child)>span:not(.admin-status){
  display:block;
  color:#8a9095;
  font-size:.44rem;
  font-weight:800;
}

.admin-email-row>div:not(:first-child)>strong{
  display:block;
  margin-top:4px;
  font-size:.54rem;
}

@media(min-width:760px){
  .admin-email-row{
    grid-template-columns:1.7fr .7fr 1.3fr .5fr;
    align-items:center;
  }
}


/* =====================================================
   V19 — MON PASS
===================================================== */

.mon-pass-callout{
  padding:0 0 56px;
}

.mon-pass-callout-box{
  padding:26px;
  border:1px solid var(--line);
  border-radius:24px;
  background:#f0eee9;
  display:grid;
  gap:20px;
}

.mon-pass-callout-box>div>span{
  color:var(--orange);
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.14em;
}

.mon-pass-callout-box h2{
  margin-top:7px;
  font-size:clamp(1.8rem,5vw,2.7rem);
}

.mon-pass-callout-box p{
  margin-top:8px;
  max-width:700px;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.65;
}

.member-pass-shortcut{
  display:inline-block;
  margin-top:12px;
  color:var(--orange);
  font-size:.56rem;
  font-weight:800;
}

.mon-pass-wrap{
  max-width:1000px;
}

.pass-login-card{
  max-width:560px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.pass-login-card h1,
.mon-pass-head h1{
  margin-top:10px;
  font-family:"Anton";
  font-size:clamp(4rem,11vw,6rem);
  font-weight:400;
  line-height:.92;
}

.pass-login-card h1 span,
.mon-pass-head h1 span{
  color:var(--orange);
}

.pass-login-card>p:not(.eyebrow){
  margin-top:13px;
  color:var(--muted);
  font-size:.64rem;
  line-height:1.65;
}

.mon-pass-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
}

.pass-main-badge{
  padding:8px 11px;
  border-radius:999px;
  background:#e8f7ec;
  color:#3d9451;
  font-size:.49rem;
  font-weight:800;
  letter-spacing:.1em;
}

.pass-main-badge.inactive{
  background:#fae9e6;
  color:#a84e42;
}

.pass-dashboard-grid{
  margin-top:24px;
  display:grid;
  gap:16px;
}

.pass-main-card,
.pass-eligibility-card,
.pass-upcoming-card,
.pass-period-card,
.pass-history-card{
  padding:22px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.pass-main-card>span,
.pass-eligibility-card>span,
.pass-upcoming-head>div>span,
.pass-period-card span{
  color:#8a9095;
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.12em;
}

.pass-main-card>strong{
  display:block;
  margin-top:7px;
  font-size:1.2rem;
}

.pass-main-price{
  margin-top:16px;
  display:flex;
  align-items:end;
  gap:7px;
}

.pass-main-price span{
  font-family:"Anton";
  font-size:2.7rem;
  font-weight:400;
}

.pass-main-price small{
  margin-bottom:7px;
  color:var(--muted);
  font-size:.55rem;
}

.pass-feature-list{
  margin-top:18px;
  border-top:1px solid #ebeae6;
}

.pass-feature-list div{
  min-height:46px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid #ebeae6;
}

.pass-feature-list span{
  color:var(--muted);
  font-size:.54rem;
}

.pass-feature-list strong{
  font-size:.58rem;
}

.pass-eligibility-card>strong{
  display:block;
  margin-top:10px;
  font-family:"Anton";
  font-size:2rem;
  font-weight:400;
}

.pass-eligibility-card>p{
  margin:8px 0 18px;
  color:var(--muted);
  font-size:.6rem;
  line-height:1.6;
}

.disabled-link{
  opacity:.4;
  pointer-events:none;
}

.pass-upcoming-card{
  margin-top:16px;
}

.pass-upcoming-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
}

.pass-upcoming-head h2{
  margin-top:6px;
  font-size:1.35rem;
}

.pass-upcoming-content{
  margin:18px 0;
  display:grid;
  gap:10px;
}

.pass-upcoming-content>div{
  padding:12px;
  border:1px solid #e7e5e1;
  border-radius:14px;
  background:#faf9f7;
}

.pass-upcoming-content span{
  display:block;
  color:#8a9095;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.08em;
}

.pass-upcoming-content strong{
  display:block;
  margin-top:4px;
  font-size:.58rem;
}

.pass-period-card{
  margin-top:16px;
  display:grid;
  gap:0;
}

.pass-period-card>div{
  padding:13px 0;
  border-bottom:1px solid #ebeae6;
}

.pass-period-card>div:last-child{
  border-bottom:0;
}

.pass-period-card strong{
  display:block;
  margin-top:5px;
  font-size:.62rem;
}

.pass-history-card{
  margin-top:16px;
}

.pass-history-list{
  display:grid;
  gap:8px;
}

.pass-history-row{
  padding:13px;
  display:grid;
  gap:10px;
  border:1px solid #e6e4e0;
  border-radius:15px;
  background:#fbfaf8;
}

.pass-history-row>div:first-child strong{
  display:block;
  font-size:.61rem;
}

.pass-history-row>div:first-child small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.48rem;
}

.pass-history-row>div:not(:first-child) span{
  display:block;
  color:#8a9095;
  font-size:.43rem;
  font-weight:800;
}

.pass-history-row>div:not(:first-child) strong{
  display:block;
  margin-top:4px;
  font-size:.55rem;
}

.pass-history-row>a{
  align-self:center;
  color:var(--orange);
  font-size:.52rem;
  font-weight:800;
}

@media(min-width:760px){
  .mon-pass-callout-box{
    grid-template-columns:1fr auto;
    align-items:center;
  }

  .pass-dashboard-grid{
    grid-template-columns:1fr 1fr;
  }

  .pass-upcoming-content{
    grid-template-columns:repeat(3,1fr);
  }

  .pass-period-card{
    grid-template-columns:repeat(3,1fr);
  }

  .pass-period-card>div{
    padding:0 16px;
    border-bottom:0;
    border-right:1px solid #ebeae6;
  }

  .pass-period-card>div:first-child{
    padding-left:0;
  }

  .pass-period-card>div:last-child{
    padding-right:0;
    border-right:0;
  }

  .pass-history-row{
    grid-template-columns:1.1fr 1.2fr .8fr auto;
    align-items:center;
  }
}


/* =====================================================
   V20 — CONDITIONS / CAUTION / CYCLE DE LOCATION
===================================================== */

.rental-conditions-box{
  padding:15px;
  border:1px solid #e3e1dc;
  border-radius:16px;
  background:#faf9f7;
}

.rental-conditions-box>span{
  color:var(--orange);
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.13em;
}

.rental-conditions-box>strong{
  display:block;
  margin-top:6px;
  font-size:.66rem;
}

.rental-conditions-box ul{
  margin-top:10px;
  display:grid;
  gap:6px;
  color:#666d73;
  font-size:.54rem;
  line-height:1.45;
}

.rental-conditions-box li{
  position:relative;
  padding-left:14px;
}

.rental-conditions-box li::before{
  content:"•";
  position:absolute;
  left:0;
  color:var(--orange);
}

.rental-acceptance{
  background:#fffaf7;
}

.rental-state-line{
  display:block;
  width:100%;
  margin-top:5px;
  color:#7f858b;
  font-size:.45rem;
  line-height:1.35;
}

.rental-state-actions{
  margin-top:18px;
  display:grid;
  gap:9px;
}

#rentalNotesWrap{
  margin-top:14px;
  display:grid;
  gap:6px;
  color:#727980;
  font-size:.53rem;
}

#rentalNotesWrap textarea{
  padding:11px;
  border:1px solid #dad9d5;
  border-radius:13px;
  background:#faf9f7;
  resize:vertical;
  font:inherit;
}

.pass-upcoming-content{
  grid-template-columns:1fr;
}

@media(min-width:760px){
  .rental-state-actions{
    grid-template-columns:1fr 1fr;
  }

  .pass-upcoming-content{
    grid-template-columns:repeat(5,1fr);
  }
}


/* =====================================================
   V21 — FIX MODALES ADMIN
   Les modales doivent réellement rester cachées tant
   que JavaScript ne retire pas l'attribut hidden.
===================================================== */
.admin-modal[hidden],
[hidden]{
  display:none !important;
}


/* =====================================================
   V22 — CLIENT MOYEN / ANALYTICS
===================================================== */

.customer-average-section{
  margin-top:16px;
}

.customer-average-grid{
  display:grid;
  gap:14px;
}

.customer-average-card{
  padding:22px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.pass-average-card{
  border-color:#efcbb9;
  background:#fffaf6;
}

.customer-average-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}

.customer-average-title>span{
  color:var(--orange);
  font-size:.47rem;
  font-weight:800;
  letter-spacing:.14em;
}

.customer-average-title>strong{
  color:#747b81;
  font-size:.55rem;
}

.customer-average-metrics{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid #ebeae6;
}

.customer-average-metrics>div{
  padding:14px 8px 14px 0;
  border-bottom:1px solid #ebeae6;
}

.customer-average-metrics>div:nth-child(even){
  padding-left:12px;
  border-left:1px solid #ebeae6;
}

.customer-average-metrics span{
  display:block;
  color:#888f95;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.06em;
}

.customer-average-metrics strong{
  display:block;
  margin-top:5px;
  font-family:"Anton";
  font-size:1.3rem;
  font-weight:400;
}

.customer-profile-sentence{
  margin-top:18px;
  padding:14px;
  border-radius:14px;
  background:#f4f2ee;
  color:#646b71;
  font-size:.57rem;
  line-height:1.65;
}

.pass-average-card .customer-profile-sentence{
  background:#fff0e8;
}

@media(min-width:760px){
  .customer-average-grid{
    grid-template-columns:1fr 1fr;
  }

  .customer-average-metrics{
    grid-template-columns:repeat(3,1fr);
  }

  .customer-average-metrics>div:nth-child(even){
    padding-left:8px;
    border-left:0;
  }

  .customer-average-metrics>div:not(:nth-child(3n+1)){
    padding-left:14px;
    border-left:1px solid #ebeae6;
  }
}


/* =====================================================
   V23 — MATÉRIEL / CALENDRIER INTERNE
===================================================== */

.inventory-admin-grid{
  display:grid;
  gap:16px;
}

.inventory-list{
  display:grid;
  gap:9px;
}

.inventory-row{
  padding:13px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  border:1px solid #e5e4e0;
  border-radius:16px;
  background:#fbfaf8;
}

.inventory-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--ink-2);
  color:#fff;
  font-family:"Anton";
  font-size:1rem;
}

.inventory-main strong{
  display:block;
  font-size:.62rem;
}

.inventory-main small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.48rem;
}

.inventory-qty{
  text-align:right;
}

.inventory-qty span{
  display:block;
  color:#8a9095;
  font-size:.42rem;
  font-weight:800;
}

.inventory-qty strong{
  display:block;
  margin-top:4px;
  font-size:.54rem;
}

.inventory-row>.admin-status{
  grid-column:2 / -1;
  justify-self:start;
}

.inventory-blocks-card{
  margin-top:16px;
}

.availability-blocks-list{
  display:grid;
  gap:9px;
}

.availability-block-row{
  padding:13px;
  display:grid;
  gap:11px;
  border:1px solid #e6e4e0;
  border-radius:16px;
  background:#fbfaf8;
}

.availability-block-row>div span{
  display:block;
  color:#8a9095;
  font-size:.43rem;
  font-weight:800;
  letter-spacing:.08em;
}

.availability-block-row>div strong{
  display:block;
  margin-top:4px;
  font-size:.57rem;
}

@media(min-width:760px){
  .inventory-admin-grid{
    grid-template-columns:1.1fr .9fr;
  }

  .inventory-row{
    grid-template-columns:auto 1fr 1fr auto;
  }

  .inventory-row>.admin-status{
    grid-column:auto;
    justify-self:end;
  }

  .availability-block-row{
    grid-template-columns:1fr 1fr auto;
    align-items:center;
  }
}


/* =====================================================
   V28 — MOBILE FIRST PASS
   Téléphones : accueil, réservation, Pass et admin
===================================================== */

html,
body{
  max-width:100%;
  overflow-x:hidden;
}

button,
a,
input,
select,
textarea{
  -webkit-tap-highlight-color:transparent;
}

section[id]{
  scroll-margin-top:82px;
}

.mobile-sticky-booking{
  display:none;
}

@media(max-width:759px){

  :root{
    --radius:20px;
    --radius-sm:14px;
  }

  body{
    font-size:16px;
  }

  .wrap{
    width:calc(100% - 28px);
  }

  /* ----- Navigation ----- */
  .header{
    padding-top:env(safe-area-inset-top);
  }

  .nav{
    min-height:66px;
    gap:10px;
  }

  .logo{
    gap:7px;
  }

  .logo-text strong{
    font-size:1.08rem;
  }

  .logo-text small{
    margin-top:4px;
    font-size:.42rem;
  }

  .logo-symbol{
    width:29px;
    height:24px;
  }

  .logo-symbol i:nth-child(3){
    height:22px;
  }

  .header-right{
    gap:8px;
  }

  .menu-toggle{
    width:44px;
    height:44px;
    padding:12px;
    border-radius:13px;
  }

  .menu-toggle span{
    transition:transform .2s, opacity .2s;
    transform-origin:center;
  }

  .menu-toggle.open span:first-child{
    transform:translateY(2.5px) rotate(45deg);
  }

  .menu-toggle.open span:last-child{
    transform:translateY(-2.5px) rotate(-45deg);
  }

  .mobile-menu{
    position:fixed;
    top:calc(72px + env(safe-area-inset-top));
    left:14px;
    right:14px;
    max-height:calc(100dvh - 96px);
    overflow:auto;
    padding:8px;
    border-radius:20px;
    box-shadow:0 24px 70px rgba(28,32,36,.18);
  }

  .mobile-menu a{
    min-height:48px;
    padding:0 14px;
    display:flex;
    align-items:center;
    font-size:.78rem;
  }

  /* ----- Hero ----- */
  .hero{
    padding:34px 0 22px;
  }

  .hero-grid{
    gap:26px;
  }

  .eyebrow{
    font-size:.54rem;
    line-height:1.5;
    letter-spacing:.18em;
  }

  .hero h1{
    margin-top:11px;
    font-size:clamp(3.7rem,18.6vw,5.15rem);
    line-height:.89;
    letter-spacing:-.01em;
  }

  .hero-sub{
    margin-top:17px;
    font-size:.88rem;
    line-height:1.55;
  }

  .hero-points{
    margin-top:21px;
    gap:8px;
  }

  .hero-point{
    min-height:54px;
    padding:7px 10px;
    border:1px solid #e7e5e1;
    border-radius:15px;
    background:rgba(255,255,255,.55);
  }

  .hero-point-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
  }

  .hero-point strong{
    font-size:.72rem;
  }

  .hero-point small{
    font-size:.58rem;
  }

  .hero-photo{
    min-height:0;
    aspect-ratio:1.12 / 1;
    border-radius:24px;
    background-position:center;
  }

  .hero-photo-note{
    right:13px;
    bottom:13px;
    max-width:170px;
    padding:13px 14px;
    border-radius:16px;
  }

  .hero-photo-note span{
    font-size:.46rem;
  }

  /* ----- Booking calendar ----- */
  .booking-shell{
    padding:10px 0 24px;
  }

  .booking-card{
    padding:14px;
    border-radius:22px;
  }

  .booking-title-row{
    margin-bottom:14px;
  }

  .step-label{
    gap:10px;
  }

  .step-dot{
    width:32px;
    height:32px;
    font-size:.68rem;
  }

  .step-label h2{
    font-size:1.12rem;
    line-height:1.15;
  }

  .booking-grid{
    gap:12px;
  }

  .calendar-panel{
    padding:12px;
    border-radius:17px;
  }

  .calendar-top{
    margin-bottom:11px;
  }

  .calendar-top button{
    width:42px;
    height:42px;
    border-radius:12px;
    background:#f1efeb;
  }

  .calendar-top strong{
    font-size:.78rem;
  }

  .weekdays,
  .calendar{
    gap:4px;
  }

  .weekdays{
    margin:2px 0 6px;
    font-size:.47rem;
  }

  .day{
    min-width:0;
    min-height:40px;
    aspect-ratio:1;
    border-radius:10px;
    font-size:.7rem;
  }

  .date-panel{
    min-height:0;
    padding:14px;
    gap:12px;
    border-radius:17px;
  }

  .selected-date-box{
    min-height:62px;
    padding:10px 12px;
    align-items:flex-start;
    flex-direction:column;
  }

  .selected-date-box strong{
    font-size:.73rem;
    line-height:1.45;
  }

  .selected-date-box button{
    min-height:36px;
    padding:0 12px;
  }

  .date-hold{
    text-align:center;
    font-size:.52rem;
    line-height:1.5;
  }

  /* ----- Main sections ----- */
  .quick-info,
  .pricing-section,
  .pass-section,
  .faq-section{
    padding-top:44px;
  }

  .pass-section{
    padding-bottom:50px;
  }

  .section-mini-head,
  .section-head-left{
    margin-bottom:18px;
  }

  .section-mini-head h2,
  .section-head-left h2,
  .pass-title h2{
    font-size:2rem;
    line-height:1.05;
  }

  .section-head-left p{
    font-size:.67rem;
    line-height:1.55;
  }

  .quick-info-grid{
    border:0;
    gap:9px;
  }

  .quick-info article{
    min-height:76px;
    padding:13px;
    border:1px solid var(--line)!important;
    border-radius:17px;
    background:var(--paper);
  }

  .quick-icon{
    width:42px;
    height:42px;
  }

  .quick-info strong{
    font-size:.7rem;
  }

  .quick-info small{
    font-size:.55rem;
  }

  .quick-price{
    font-size:1.35rem;
  }

  .pricing-grid,
  .pass-grid,
  .faq-grid{
    gap:11px;
  }

  .price-card,
  .pass-card{
    padding:19px;
    border-radius:19px;
  }

  .big-price{
    font-size:2.8rem;
  }

  .price-card>p,
  .pass-card ul{
    font-size:.64rem;
  }

  .price-card .btn,
  .pass-card button{
    min-height:48px;
  }

  .pass-title{
    margin-bottom:21px;
    text-align:left;
  }

  .pass-title h2{
    margin-top:7px;
  }

  .faq-grid article{
    padding:17px;
    border-radius:16px;
  }

  .faq-grid strong{
    font-size:.72rem;
    line-height:1.35;
  }

  .faq-grid p{
    font-size:.61rem;
  }

  .contact-section{
    padding-bottom:40px;
  }

  .contact-box{
    padding:20px;
    border-radius:20px;
  }

  .contact-box h2{
    font-size:2rem;
  }

  .contact-box p{
    font-size:.64rem;
  }

  .contact-box .btn{
    width:100%;
  }

  .cta-box{
    padding:21px;
  }

  .cta-box h2{
    font-size:2rem;
  }

  .footer{
    padding-bottom:105px;
  }

  .footer-grid{
    gap:16px;
  }

  .footer nav{
    gap:10px 16px;
  }

  .footer nav a{
    font-size:.59rem;
  }

  /* ----- Sticky booking button ----- */
  .home-body{
    padding-bottom:calc(78px + env(safe-area-inset-bottom));
  }

  .home-body .mobile-sticky-booking{
    position:fixed;
    z-index:120;
    left:12px;
    right:12px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    min-height:64px;
    padding:9px 10px 9px 15px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:19px;
    background:rgba(37,42,47,.96);
    color:#fff;
    box-shadow:0 18px 45px rgba(20,24,28,.24);
    backdrop-filter:blur(14px);
  }

  .mobile-sticky-booking span{
    display:grid;
    gap:1px;
  }

  .mobile-sticky-booking small{
    color:#c8ccd0;
    font-size:.48rem;
    font-weight:700;
  }

  .mobile-sticky-booking strong{
    font-family:"Anton";
    font-size:1.25rem;
    font-weight:400;
  }

  .mobile-sticky-booking b{
    min-height:44px;
    padding:0 15px;
    display:flex;
    align-items:center;
    border-radius:13px;
    background:var(--orange);
    font-size:.67rem;
    white-space:nowrap;
  }

  /* ----- Reservation / flow pages ----- */
  .flow-nav{
    min-height:66px;
  }

  .flow-main{
    padding:30px 0 60px;
  }

  .flow-back{
    min-height:44px;
    display:flex;
    align-items:center;
  }

  .flow-progress{
    width:100%;
    margin-bottom:25px;
    overflow-x:auto;
    padding-bottom:4px;
    scrollbar-width:none;
  }

  .flow-progress::-webkit-scrollbar{
    display:none;
  }

  .flow-progress span{
    font-size:.48rem;
  }

  .flow-progress i{
    min-width:22px;
  }

  .flow-head h1{
    font-size:clamp(2.9rem,14vw,4rem);
  }

  .flow-head>p:last-child{
    font-size:.68rem;
  }

  .hold-pill{
    width:100%;
    justify-content:center;
    text-align:center;
    line-height:1.45;
  }

  .mode-grid{
    margin-top:22px;
    gap:10px;
  }

  .mode-card,
  .flow-panel,
  .order-card,
  .manage-action-card,
  .manage-result,
  .student-pending-card{
    padding:18px;
    border-radius:19px;
  }

  .mode-card strong{
    font-size:2rem;
  }

  .flow-layout{
    gap:13px;
  }

  .flow-form,
  .member-form{
    gap:13px;
  }

  .flow-form input,
  .flow-form select,
  .member-form input,
  .member-form select,
  .admin-manual-form input,
  .admin-manual-form select,
  .admin-filter-row input,
  .admin-filter-row select,
  #rentalNotesWrap textarea{
    min-height:50px;
    font-size:16px;
  }

  .option-card{
    min-height:78px;
  }

  .order-card{
    position:static;
  }

  .confirmation-card div{
    min-height:64px;
    padding:11px 14px;
    gap:12px;
  }

  .confirmation-card span{
    font-size:.55rem;
  }

  .confirmation-card strong{
    max-width:62%;
    font-size:.62rem;
    line-height:1.4;
  }

  .confirmation-actions .btn{
    width:100%;
  }

  /* ----- Manage reservation ----- */
  .manage-summary>div{
    min-height:64px;
  }

  .manage-actions-grid{
    gap:12px;
  }

  .manage-action-card .btn,
  .manage-result .btn{
    width:100%;
  }

  /* ----- Mon Pass ----- */
  .mon-pass-callout{
    padding-bottom:40px;
  }

  .mon-pass-callout-box,
  .pass-eligibility-card,
  .pass-upcoming-card,
  .pass-period-card,
  .pass-history-card{
    border-radius:19px;
  }

  .pass-dashboard-grid{
    gap:12px;
  }

  .pass-upcoming-head{
    flex-direction:column;
  }

  .pass-upcoming-head .btn{
    width:100%;
  }

  .pass-history-row{
    gap:12px;
  }

  .pass-history-row>a{
    min-height:42px;
    display:flex;
    align-items:center;
  }

  /* ----- Admin ----- */
  .admin-wrap{
    width:calc(100% - 22px);
  }

  .admin-login-card{
    padding:20px;
    border-radius:20px;
  }

  .admin-login-card h1,
  .admin-head h1{
    font-size:3.25rem;
  }

  .admin-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .admin-head .btn,
  .admin-head button{
    width:100%;
  }

  .admin-stats{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .admin-stats article{
    padding:14px;
    border-radius:15px;
  }

  .admin-stats strong{
    font-size:1.55rem;
  }

  .admin-tabs{
    position:sticky;
    top:calc(66px + env(safe-area-inset-top));
    z-index:20;
    margin-inline:-11px;
    padding:6px 11px;
    border-left:0;
    border-right:0;
    border-radius:0;
  }

  .admin-tab{
    min-height:44px;
    padding:0 13px;
    font-size:.59rem;
  }

  .admin-block{
    padding:16px;
    border-radius:18px;
  }

  .admin-block-head{
    margin-bottom:14px;
    flex-direction:column;
    gap:8px;
  }

  .admin-inline-link{
    min-height:40px;
    padding:0;
  }

  .admin-filter-row{
    display:grid;
    grid-template-columns:1fr;
  }

  .admin-filter-row input,
  .admin-filter-row select{
    width:100%;
  }

  .admin-mini-booking{
    grid-template-columns:auto minmax(0,1fr);
  }

  .admin-mini-booking>b{
    grid-column:2;
  }

  .admin-booking-row,
  .admin-client-row,
  .admin-email-row,
  .availability-block-row{
    padding:13px;
    gap:10px;
  }

  .admin-booking-price{
    justify-content:space-between;
  }

  .admin-booking-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .admin-action-btn{
    min-height:42px;
  }

  .admin-card-actions{
    grid-template-columns:1fr;
  }

  .admin-card-actions .btn,
  .admin-card-actions button{
    width:100%;
  }

  .admin-modal{
    padding:0;
    place-items:end center;
  }

  .admin-modal-card{
    width:100%;
    max-height:88dvh;
    overflow:auto;
    padding:24px 18px calc(18px + env(safe-area-inset-bottom));
    border-radius:24px 24px 0 0;
  }

  .inventory-row{
    grid-template-columns:auto minmax(0,1fr) auto;
  }

  .inventory-row>.admin-status{
    grid-column:2 / -1;
  }

  .customer-average-card{
    padding:17px;
    border-radius:18px;
  }

  .customer-average-title{
    flex-direction:column;
    gap:5px;
  }

  /* ----- Diagnostic ----- */
  #diagDetails .admin-stats{
    grid-template-columns:1fr 1fr;
  }

  /* ----- General touch targets ----- */
  .btn{
    min-height:50px;
  }

  button{
    touch-action:manipulation;
  }
}

@media(max-width:390px){

  .wrap{
    width:calc(100% - 22px);
  }

  .hero h1{
    font-size:3.55rem;
  }

  .hero-sub{
    font-size:.82rem;
  }

  .calendar-panel{
    padding:10px 8px;
  }

  .weekdays,
  .calendar{
    gap:3px;
  }

  .day{
    min-height:37px;
    font-size:.66rem;
  }

  .mobile-sticky-booking{
    left:8px!important;
    right:8px!important;
  }

  .mobile-sticky-booking b{
    padding-inline:12px;
    font-size:.62rem;
  }

  .admin-stats{
    grid-template-columns:1fr;
  }

  #diagDetails .admin-stats{
    grid-template-columns:1fr;
  }
}

@media(hover:none){
  .btn:hover,
  .mode-card:hover,
  .day:not(:disabled):hover{
    transform:none;
  }
}


/* =====================================================
   V30 — TITRES PLUS NATURELS / MOINS "LANDING PAGE IA"
   Le reste du design V29 est conservé.
===================================================== */

.hero h1,
.flow-head h1,
.payment-state h1,
.admin-login-card h1,
.admin-head h1,
.pass-login-card h1,
.mon-pass-head h1{
  font-family:"Inter Tight","Manrope",sans-serif;
  font-weight:800;
  line-height:.94;
  letter-spacing:-.045em;
}

.hero h1{
  font-size:clamp(3.6rem,13vw,6.35rem);
  line-height:.92;
}

.flow-head h1{
  font-size:clamp(2.8rem,8vw,4.75rem);
}

.payment-state h1{
  font-size:clamp(3.1rem,9vw,5.25rem);
}

.admin-login-card h1,
.admin-head h1{
  font-size:clamp(3rem,8vw,4.75rem);
}

.pass-login-card h1,
.mon-pass-head h1{
  font-size:clamp(3.2rem,9vw,5rem);
}

/* Gros titres de sections : même famille, moins "template" */
.section-mini-head h2,
.section-head-left h2,
.pass-title h2,
.cta-box h2,
.contact-box h2,
.mon-pass-callout-box h2{
  font-family:"Inter Tight","Manrope",sans-serif;
  font-weight:700;
  letter-spacing:-.035em;
  line-height:1.04;
}

@media(max-width:759px){
  .hero h1{
    font-size:clamp(3.1rem,15vw,4.25rem);
    line-height:.94;
  }

  .flow-head h1{
    font-size:clamp(2.5rem,11vw,3.45rem);
  }

  .admin-login-card h1,
  .admin-head h1{
    font-size:2.8rem;
  }

  .pass-login-card h1,
  .mon-pass-head h1{
    font-size:3rem;
  }
}


/* =====================================================
   V34 — MODES DE RÈGLEMENT
===================================================== */

.payment-choice{
  margin:0;
  padding:0;
  border:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.payment-choice legend{
  grid-column:1 / -1;
  margin-bottom:2px;
  font-size:.66rem;
  font-weight:800;
  color:var(--ink);
}

.payment-option{
  min-height:76px;
  padding:13px 14px;
  display:flex;
  align-items:center;
  gap:11px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  cursor:pointer;
}

.payment-option:has(input:checked){
  border-color:var(--orange);
  box-shadow:0 0 0 2px rgba(255,86,36,.08);
}

.payment-option input{
  width:18px;
  height:18px;
  accent-color:var(--orange);
  flex:0 0 auto;
}

.payment-option span{
  display:grid;
  gap:3px;
}

.payment-option strong{
  font-size:.72rem;
}

.payment-option small{
  font-size:.56rem;
  line-height:1.4;
  color:var(--muted);
}

@media(max-width:759px){
  .payment-choice{
    grid-template-columns:1fr;
  }

  .payment-option{
    min-height:72px;
  }

  .payment-choice legend{
    font-size:.7rem;
  }
}


/* =====================================================
   V35 — RETROUVER / GÉRER UNE RÉSERVATION
===================================================== */

.booking-retrieve-wrap{
  max-width:780px;
}

.booking-retrieve-head{
  margin-bottom:24px;
}

.booking-retrieve-head h1{
  font-family:"Inter Tight","Manrope",sans-serif;
  font-weight:800;
  letter-spacing:-.045em;
  line-height:.94;
}

.booking-retrieve-head h1 span{
  color:var(--orange);
}

.saved-booking-card,
.booking-lookup-card{
  margin-top:16px;
}

.saved-booking-card h2,
.booking-lookup-card h2{
  margin:6px 0 8px;
  font-size:1.35rem;
}

.saved-booking-summary{
  margin:18px 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);
  border-radius:15px;
  overflow:hidden;
}

.saved-booking-summary>div{
  min-height:76px;
  padding:14px;
  display:grid;
  align-content:center;
  gap:5px;
  background:#fff;
  border-right:1px solid var(--line);
}

.saved-booking-summary>div:last-child{
  border-right:0;
}

.saved-booking-summary span{
  color:var(--muted);
  font-size:.55rem;
}

.saved-booking-summary strong{
  font-size:.68rem;
  line-height:1.35;
}

.booking-lookup-copy{
  color:var(--muted);
  font-size:.67rem;
  line-height:1.55;
}

.booking-lookup-card .flow-form{
  margin-top:18px;
}

.booking-lookup-error{
  margin:0;
  padding:12px 14px;
  border-radius:12px;
  background:#fff0ec;
  color:#a63116;
  font-size:.62rem;
  font-weight:700;
}

.booking-lookup-help{
  margin:16px 4px 0;
  color:var(--muted);
  font-size:.58rem;
  line-height:1.5;
}

@media(max-width:759px){
  .booking-retrieve-wrap{
    width:calc(100% - 28px);
  }

  .saved-booking-summary{
    grid-template-columns:1fr;
  }

  .saved-booking-summary>div{
    min-height:62px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .saved-booking-summary>div:last-child{
    border-bottom:0;
  }
}


/* =====================================================
   V38 — ADMIN FINAL
===================================================== */

.admin-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.admin-attention-bar{
  margin-top:10px;
  padding:13px 16px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid #efd8b6;
  border-radius:14px;
  background:#fff8ec;
  color:#6c4b1f;
}

.admin-attention-bar>strong{
  flex:0 0 auto;
  font-size:.52rem;
  letter-spacing:.12em;
}

.admin-attention-bar>span{
  font-size:.62rem;
  line-height:1.45;
}

.admin-attention-bar.is-clear{
  border-color:#d9e8dc;
  background:#f3faf4;
  color:#406047;
}

.admin-status.neutral{
  background:#efefed;
  color:#686d70;
}

.admin-payments-list{
  display:grid;
  gap:9px;
}

.admin-payment-row{
  padding:14px;
  display:grid;
  grid-template-columns:minmax(220px,2fr) 1fr 1.5fr auto;
  align-items:center;
  gap:14px;
  border:1px solid #e5e4e0;
  border-radius:17px;
  background:#fbfaf8;
}

.admin-payment-main{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.admin-payment-main>span{
  min-width:54px;
  min-height:48px;
  padding:0 8px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#f0efeb;
  font-size:.56rem;
  font-weight:800;
  text-align:center;
}

.admin-payment-main>div{
  min-width:0;
}

.admin-payment-main strong,
.admin-payment-row>div>strong{
  display:block;
  font-size:.62rem;
}

.admin-payment-main small,
.admin-payment-row>div>span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.49rem;
}

.text-success{
  color:#39734a!important;
}

.text-warning{
  color:#a7671a!important;
}

.admin-client-phone{
  margin-top:5px;
  display:inline-block;
  color:var(--orange);
  font-size:.54rem;
  font-weight:700;
}

.payment-modal-actions,
.booking-detail-actions{
  margin-top:15px;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}

.admin-detail-modal-card{
  width:min(720px,calc(100% - 28px));
}

.booking-detail-body{
  margin-top:14px;
}

.booking-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}

.booking-detail-grid>div{
  min-height:66px;
  padding:12px 14px;
  display:grid;
  align-content:center;
  gap:4px;
  background:#fbfaf8;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.booking-detail-grid>div:nth-child(2n){
  border-right:0;
}

.booking-detail-grid>div:nth-last-child(-n+2){
  border-bottom:0;
}

.booking-detail-grid span{
  color:var(--muted);
  font-size:.48rem;
  font-weight:700;
}

.booking-detail-grid strong{
  font-size:.62rem;
  line-height:1.4;
  overflow-wrap:anywhere;
}

.booking-detail-note{
  margin-top:12px;
  padding:13px 14px;
  border-radius:13px;
  background:#fff0ec;
}

.booking-detail-note span{
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.1em;
  color:#a34d38;
}

.booking-detail-note p{
  margin:5px 0 0;
  font-size:.6rem;
  line-height:1.5;
}

.booking-detail-actions .is-disabled{
  pointer-events:none;
  opacity:.4;
}

.admin-email-error{
  grid-column:1 / -1;
  padding-top:8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-top:1px solid var(--line);
}

.admin-email-error small{
  color:#a94c3e;
  font-size:.52rem;
  line-height:1.4;
  overflow-wrap:anywhere;
}

.admin-filter-row{
  flex-wrap:wrap;
}

.admin-filter-row select,
.admin-filter-row input{
  min-width:150px;
}

.admin-booking-actions{
  flex-wrap:wrap;
}

.admin-booking-actions .admin-action-btn{
  flex:0 0 auto;
}

@media(max-width:980px){
  .admin-payment-row{
    grid-template-columns:1.5fr 1fr 1fr;
  }

  .admin-payment-row>button{
    grid-column:1 / -1;
    width:100%;
  }
}

@media(max-width:759px){
  .admin-head-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .admin-head-actions .btn,
  .admin-head-actions button{
    width:100%;
  }

  .admin-head-actions #logoutAdmin{
    grid-column:1 / -1;
  }

  .admin-attention-bar{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }

  .admin-payment-row{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .admin-payment-main{
    grid-column:1 / -1;
  }

  .admin-payment-row>button{
    grid-column:1 / -1;
  }

  .booking-detail-grid{
    grid-template-columns:1fr;
  }

  .booking-detail-grid>div{
    border-right:0;
  }

  .booking-detail-grid>div:nth-last-child(-n+2){
    border-bottom:1px solid var(--line);
  }

  .booking-detail-grid>div:last-child{
    border-bottom:0;
  }

  .admin-email-error{
    align-items:stretch;
    flex-direction:column;
  }

  .admin-email-error .admin-action-btn{
    width:100%;
  }
}


/* =====================================================
   V41 — POLISH VISUEL / ICÔNES FIABLES / HEADER NETTOYÉ
===================================================== */

.ui-icon{
  width:19px;
  height:19px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Header : moins chargé, plus éditorial */
.nav{
  gap:18px;
}

.nav-links{
  gap:20px;
}

.nav-links a{
  font-size:.68rem;
}

.header-right{
  gap:9px;
}

.header-pass-link{
  min-height:42px;
  padding:0 13px;
  display:none;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  color:#5f666d;
  font-size:.64rem;
  font-weight:800;
  transition:.2s;
}

.header-pass-link:hover{
  color:var(--ink);
  background:rgba(255,255,255,.65);
}

.calendar-icon{
  display:none!important;
}

.header-cta{
  min-height:44px;
  padding-inline:17px;
  border-radius:13px;
}

.mobile-menu-cta{
  margin-top:6px;
  border:0!important;
  border-radius:13px;
  background:var(--ink-2);
  color:#fff!important;
  justify-content:center;
}

/* Hero : mêmes codes V30, mais meilleure hiérarchie */
.hero{
  padding-top:74px;
}

.hero-sub{
  max-width:570px;
  color:#666d74;
  font-size:.94rem;
  line-height:1.62;
}

.hero-points{
  gap:10px;
}

.hero-point{
  min-width:0;
}

.hero-point-icon{
  color:var(--orange);
}

.hero-point-icon .ui-icon{
  width:17px;
  height:17px;
}

.hero-point strong{
  font-size:.7rem;
  letter-spacing:-.01em;
}

.hero-point small{
  margin-top:3px;
}

.hero-photo-note{
  right:18px;
  bottom:18px;
  max-width:205px;
  padding:17px 18px;
  background:rgba(39,43,47,.78);
}

.hero-photo-note span{
  font-size:.58rem;
  letter-spacing:.11em;
  line-height:1.65;
}

/* Réservation : rassurer sans texte perdu à droite */
.booking-title-row{
  margin-bottom:13px;
}

.booking-title-row>p{
  display:none!important;
}

.step-label{
  align-items:flex-start;
}

.step-label>div{
  display:grid;
  gap:5px;
}

.booking-reassurance{
  max-width:610px;
  color:#777e84;
  font-size:.59rem;
  line-height:1.5;
}

.booking-progress{
  margin:0 0 18px 48px;
  max-width:620px;
  display:flex;
  align-items:center;
  gap:8px;
}

.booking-progress span{
  display:flex;
  align-items:center;
  gap:6px;
  color:#92979c;
  font-size:.5rem;
  font-weight:800;
  white-space:nowrap;
}

.booking-progress span b{
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border:1px solid #dddcd7;
  border-radius:50%;
  background:#f8f7f4;
  font-size:.46rem;
}

.booking-progress span.active{
  color:var(--ink);
}

.booking-progress span.active b{
  border-color:var(--orange);
  background:#fff0e9;
  color:var(--orange);
}

.booking-progress i{
  width:30px;
  height:1px;
  background:#deddd8;
}

.date-hold{
  line-height:1.45;
}

.date-hold .ui-icon{
  width:15px;
  height:15px;
  flex:0 0 auto;
  color:#7a8187;
}

/* Icônes : plus de caractères système / emojis */
.quick-icon{
  color:var(--orange);
}

.quick-icon .ui-icon{
  width:21px;
  height:21px;
}

.pass-kicker i .ui-icon{
  width:18px;
  height:18px;
}

/* Un peu plus de présence aux 3 garanties du hero */
@media(min-width:760px){
  .header-pass-link{
    display:inline-flex;
  }

  .hero-points{
    max-width:620px;
  }

  .hero-point{
    padding-right:8px;
  }

  .booking-title-row{
    display:block;
  }
}

@media(min-width:1050px){
  .nav-links{
    gap:22px;
  }
}

/* Évite que le header se tasse sur écrans intermédiaires */
@media(min-width:760px) and (max-width:1120px){
  .nav-links{
    gap:13px;
  }

  .nav-links a{
    font-size:.62rem;
  }

  .header-pass-link{
    display:none;
  }

  .header-cta{
    padding-inline:14px;
    font-size:.62rem;
  }
}

@media(max-width:759px){
  .hero{
    padding-top:31px;
  }

  .hero-sub{
    font-size:.87rem;
  }

  .hero-photo-note{
    right:14px;
    bottom:14px;
    max-width:180px;
    padding:14px 15px;
  }

  .hero-photo-note span{
    font-size:.53rem;
  }

  .booking-card{
    padding:18px;
  }

  .booking-reassurance{
    font-size:.57rem;
  }

  .booking-progress{
    margin:0 0 16px 0;
    overflow-x:auto;
    padding-bottom:3px;
    scrollbar-width:none;
  }

  .booking-progress::-webkit-scrollbar{
    display:none;
  }

  .booking-progress i{
    width:18px;
    flex:0 0 18px;
  }

  .booking-progress span{
    font-size:.48rem;
  }

  .date-hold{
    justify-content:flex-start;
    text-align:left;
  }
}


/* =====================================================
   V42 — PREMIUM SERVICE / INSTALLATION OBLIGATOIRE
===================================================== */

:root{
  --premium-ivory:#f5f2ec;
  --premium-paper:#fbfaf7;
  --premium-ink:#23272b;
  --premium-muted:#73777b;
  --premium-line:rgba(35,39,43,.12);
}

/* More confident overall scale */
.wrap{
  width:min(1240px,calc(100% - 48px));
}

.home-body{
  background:
    radial-gradient(circle at 20% 0%,rgba(255,255,255,.95),transparent 34%),
    var(--premium-ivory);
}

.header{
  background:rgba(248,246,241,.92);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom-color:rgba(35,39,43,.08);
}

.logo{
  transform:scale(1.03);
  transform-origin:left center;
}

.hero{
  padding-top:78px;
  padding-bottom:28px;
}

.hero-grid{
  gap:82px;
}

.hero h1{
  letter-spacing:-.065em;
  line-height:.92;
}

.hero-sub{
  max-width:610px;
  font-size:1rem;
  color:#60666b;
}

.hero-photo{
  border-radius:30px;
  box-shadow:
    0 30px 70px rgba(34,38,42,.13),
    0 2px 0 rgba(255,255,255,.8) inset;
}

.hero-photo-note{
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 18px 35px rgba(0,0,0,.18);
}

/* Four-step premium service band */
.premium-service-band{
  padding:24px 0 14px;
}

.premium-service-grid{
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  overflow:hidden;
  border:1px solid var(--premium-line);
  border-radius:22px;
  background:rgba(251,250,247,.78);
  box-shadow:0 18px 50px rgba(42,46,49,.05);
}

.premium-service-grid>div{
  min-height:132px;
  padding:23px 24px;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid var(--premium-line);
}

.premium-service-grid>div:last-child{
  border-right:0;
}

.premium-service-grid span{
  position:absolute;
  top:18px;
  right:18px;
  color:rgba(255,95,32,.44);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.12em;
}

.premium-service-grid strong{
  font-size:.9rem;
  letter-spacing:-.02em;
}

.premium-service-grid small{
  margin-top:7px;
  max-width:230px;
  color:var(--premium-muted);
  font-size:.59rem;
  line-height:1.55;
}

/* Booking elevated and more restrained */
.booking-shell{
  padding-top:30px;
}

.booking-card{
  border-color:rgba(35,39,43,.10);
  border-radius:28px;
  background:rgba(255,255,255,.84);
  box-shadow:0 26px 70px rgba(42,46,49,.08);
}

.calendar-panel,
.date-panel{
  border-color:rgba(35,39,43,.09);
  background:#fbfaf7;
  border-radius:20px;
}

.step-dot{
  box-shadow:0 5px 14px rgba(255,95,32,.18);
}

/* Sections: tighter, clearer */
.quick-info,
.pricing-section,
.pass-section,
.faq-section{
  padding-top:74px;
  padding-bottom:20px;
}

.section-mini-head h2,
.section-head-left h2,
.pass-title h2,
.faq-title h2{
  letter-spacing:-.05em;
}

/* Material strip */
.quick-info-grid{
  border-radius:20px;
  overflow:hidden;
  background:rgba(255,255,255,.55);
  border:1px solid var(--premium-line);
}

.quick-info-grid article{
  min-height:112px;
  padding:22px 24px;
  border-color:var(--premium-line);
}

.quick-info-grid article:last-child{
  background:var(--premium-ink);
  color:#fff;
}

.quick-info-grid article:last-child small{
  color:rgba(255,255,255,.62);
}

.quick-info-grid article:last-child .quick-icon{
  color:var(--orange);
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
}

/* Price cards */
.pricing-grid{
  gap:18px;
}

.price-card{
  min-height:350px;
  padding:30px;
  border-radius:24px;
  background:rgba(255,255,255,.84);
  border-color:rgba(35,39,43,.10);
  box-shadow:0 22px 55px rgba(42,46,49,.06);
}

.student-card{
  background:#fff8f4;
}

.big-price{
  margin-top:22px;
}

.price-card ul{
  margin-top:18px;
  line-height:1.75;
}

/* Dark premium Pass section */
.pass-section{
  margin-top:72px;
  padding:78px 0 82px;
  background:var(--premium-ink);
  color:#fff;
}

.pass-title span{
  color:#ff7b49;
}

.pass-title h2{
  max-width:760px;
  color:#fff;
}

.pass-grid{
  gap:14px;
}

.pass-card{
  min-height:390px;
  padding:24px 22px 20px;
  background:#f8f5ef;
  color:var(--premium-ink);
  border:1px solid rgba(255,255,255,.08);
  border-radius:21px;
  box-shadow:none;
}

.pass-card.featured{
  background:#fff4ed;
  transform:translateY(-7px);
  box-shadow:0 22px 50px rgba(0,0,0,.15);
}

.pass-card li{
  line-height:1.55;
}

.pass-card .btn{
  margin-top:auto;
}

.pass-kicker i{
  background:#fff;
}

.pass-dashboard-cta{
  margin-top:24px;
  border:1px solid rgba(255,255,255,.12);
  background:#2d3237;
  color:#fff;
}

.pass-dashboard-cta p,
.pass-dashboard-cta small{
  color:rgba(255,255,255,.62);
}

.pass-dashboard-cta h2,
.pass-dashboard-cta strong{
  color:#fff;
}

/* FAQ gets air but larger text */
.faq-section{
  padding-top:82px;
}

.faq-grid article{
  min-height:96px;
  padding:22px 24px;
  border-radius:18px;
  border-color:var(--premium-line);
  background:rgba(255,255,255,.75);
}

.faq-grid strong{
  font-size:.68rem;
}

.faq-grid p{
  font-size:.59rem;
  line-height:1.55;
}

/* Premium CTA */
.final-cta{
  border-radius:24px;
  background:#ece8df;
  border-color:rgba(35,39,43,.09);
}

.final-cta h2{
  letter-spacing:-.055em;
}

/* Booking page: mandatory service block */
.fixed-service-field{
  min-height:74px;
  padding:14px 15px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f7f5f0;
}

.fixed-service-field strong{
  font-size:.66rem;
}

.fixed-service-field small{
  color:var(--muted);
  font-size:.53rem;
  line-height:1.45;
}

.flow-service-note{
  margin-top:18px;
  padding:15px 17px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid #e1d9cd;
  border-radius:15px;
  background:#f5f1e9;
}

.flow-service-note strong{
  flex:0 0 auto;
  font-size:.62rem;
}

.flow-service-note span{
  color:#73777b;
  font-size:.56rem;
  line-height:1.45;
}

/* Footer stronger */
.footer{
  margin-top:78px;
  padding-top:38px;
  padding-bottom:38px;
  background:#202428;
  color:#fff;
  border-top:0;
}

.footer .logo strong,
.footer .logo small,
.footer a{
  color:#fff;
}

.footer a{
  opacity:.66;
}

.footer a:hover{
  opacity:1;
}

@media(max-width:980px){
  .premium-service-grid{
    grid-template-columns:1fr 1fr;
  }

  .premium-service-grid>div:nth-child(2){
    border-right:0;
  }

  .premium-service-grid>div:nth-child(-n+2){
    border-bottom:1px solid var(--premium-line);
  }

  .pass-card.featured{
    transform:none;
  }
}

@media(max-width:759px){
  .wrap{
    width:min(100% - 28px,1240px);
  }

  .hero{
    padding-top:34px;
  }

  .hero-grid{
    gap:26px;
  }

  .premium-service-band{
    padding-top:10px;
  }

  .premium-service-grid{
    grid-template-columns:1fr;
  }

  .premium-service-grid>div{
    min-height:104px;
    border-right:0;
    border-bottom:1px solid var(--premium-line);
  }

  .premium-service-grid>div:last-child{
    border-bottom:0;
  }

  .quick-info,
  .pricing-section,
  .pass-section,
  .faq-section{
    padding-top:54px;
  }

  .pass-section{
    margin-top:52px;
    padding-bottom:58px;
  }

  .flow-service-note{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
}


/* =====================================================
   V43 — DERNIER POLISH PREMIUM
===================================================== */

/* Hero assurances */
.hero-points{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  max-width:680px;
}

.hero-point{
  min-width:0;
}

.hero-point-icon{
  flex:0 0 auto;
}

.hero-point strong{
  display:block;
  font-size:.68rem;
}

.hero-point small{
  line-height:1.35;
}

/* Make date panel useful rather than empty */
.date-panel{
  display:flex;
  flex-direction:column;
}

.date-service-card{
  margin-top:22px;
  padding:18px;
  border-top:1px solid rgba(35,39,43,.09);
}

.date-service-card>span{
  display:block;
  margin-bottom:13px;
  color:#8b8f93;
  font-size:.47rem;
  font-weight:800;
  letter-spacing:.12em;
}

.date-service-card>div{
  display:grid;
  grid-template-columns:28px 1fr;
  align-items:center;
  gap:9px;
  padding:8px 0;
}

.date-service-card b{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f0ede7;
  color:#8d8178;
  font-size:.45rem;
}

.date-service-card p{
  margin:0;
}

.date-service-card strong{
  display:block;
  font-size:.58rem;
}

.date-service-card small{
  display:block;
  margin-top:2px;
  color:#7a8085;
  font-size:.49rem;
  line-height:1.4;
}

/* Footer */
.footer{
  margin-top:88px;
  padding:52px 0 20px;
  background:#202428;
}

.footer-premium-grid{
  grid-template-columns:1.3fr .8fr 1fr;
  align-items:start;
  gap:70px;
}

.footer-brand p{
  margin:16px 0 0;
  max-width:340px;
  color:rgba(255,255,255,.56);
  font-size:.58rem;
  line-height:1.65;
}

.footer-logo .logo-text strong{
  color:#fff!important;
}

.footer-logo .logo-text strong span{
  color:var(--orange)!important;
}

.footer-logo .logo-text small{
  color:rgba(255,255,255,.7)!important;
}

.footer-logo .logo-symbol i{
  background:var(--orange)!important;
}

.footer-links-block>strong,
.footer-contact-block>strong{
  display:block;
  margin-bottom:14px;
  color:#fff;
  font-size:.52rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.footer-links-block nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 18px;
}

.footer-links-block nav a,
.footer-contact-block a{
  color:rgba(255,255,255,.72)!important;
  opacity:1!important;
  font-size:.58rem;
}

.footer-contact-block{
  display:grid;
  gap:8px;
}

.footer-contact-block small{
  max-width:300px;
  color:rgba(255,255,255,.45);
  font-size:.52rem;
  line-height:1.55;
}

.footer-bottom{
  margin-top:40px;
  padding-top:18px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.35);
  font-size:.48rem;
}

/* Keep the large dark Pass section from feeling detached */
.pass-section + .pass-dashboard-cta,
.pass-dashboard-cta{
  box-shadow:0 18px 40px rgba(30,34,37,.06);
}

@media(max-width:980px){
  .hero-points{
    grid-template-columns:1fr;
    max-width:430px;
  }

  .footer-premium-grid{
    grid-template-columns:1fr 1fr;
    gap:36px;
  }

  .footer-brand{
    grid-column:1 / -1;
  }
}

@media(max-width:759px){
  .hero-points{
    grid-template-columns:1fr;
    gap:10px;
  }

  .date-service-card{
    margin-top:14px;
    padding:14px 0 0;
  }

  .footer{
    padding-top:38px;
  }

  .footer-premium-grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .footer-brand{
    grid-column:auto;
  }

  .footer-links-block nav{
    grid-template-columns:1fr 1fr;
  }

  .footer-bottom{
    flex-direction:column;
    gap:6px;
  }
}


/* =====================================================
   V44 — HOME FINAL POLISH + PREMIUM ANIMATIONS
===================================================== */

/* ---------- Rhythm / spacing ---------- */

/* The large gap before FAQ was too loose. */
.mon-pass-callout{
  padding-bottom:18px!important;
}

.faq-section{
  padding-top:52px!important;
}

@media(min-width:760px){
  .mon-pass-callout + .faq-section{
    margin-top:0!important;
  }
}

/* Slightly stronger secondary copy on desktop. */
.booking-reassurance{
  font-size:.62rem!important;
  line-height:1.55!important;
}

.date-hold{
  font-size:.53rem!important;
}

.date-service-card>span{
  font-size:.5rem!important;
}

.date-service-card strong{
  font-size:.61rem!important;
}

.date-service-card small{
  font-size:.52rem!important;
  line-height:1.48!important;
}

.quick-info-grid article small,
.price-card p,
.price-card li,
.pass-card li,
.mon-pass-callout-box p,
.faq-grid p,
.contact-box p{
  font-size:max(.56rem,10px);
}

/* More consistent premium borders/shadows. */
.booking-card,
.price-card,
.mon-pass-callout-box,
.faq-grid article,
.contact-box,
.cta-box{
  border-color:rgba(35,39,43,.10)!important;
}

.price-card,
.mon-pass-callout-box,
.contact-box{
  box-shadow:
    0 22px 60px rgba(34,38,42,.055);
}

/* ---------- Premium micro interactions ---------- */

.btn,
.header-cta,
.header-pass-link,
.pass-card button,
.price-card,
.faq-grid article,
.quick-info-grid article,
.mon-pass-callout-box,
.contact-box{
  transition:
    transform .28s cubic-bezier(.22,.8,.22,1),
    box-shadow .28s ease,
    border-color .28s ease,
    background-color .28s ease,
    color .28s ease,
    opacity .28s ease;
}

@media(hover:hover){
  .btn:hover,
  .header-cta:hover{
    transform:translateY(-2px);
  }

  .price-card:hover{
    transform:translateY(-5px);
    box-shadow:
      0 30px 72px rgba(34,38,42,.095);
  }

  .pass-card:hover{
    transform:translateY(-5px);
  }

  .pass-card.featured:hover{
    transform:translateY(-10px);
  }

  .faq-grid article:hover{
    transform:translateY(-3px);
    border-color:rgba(255,95,32,.24)!important;
    box-shadow:
      0 14px 36px rgba(34,38,42,.055);
  }

  .quick-info-grid article:hover{
    transform:translateY(-2px);
  }

  .mon-pass-callout-box:hover,
  .contact-box:hover{
    box-shadow:
      0 28px 70px rgba(34,38,42,.085);
  }
}

/* CTA arrow gets a tiny premium slide. */
.header-cta span,
.mobile-menu-cta,
.cta-box .btn,
.mon-pass-callout-box .btn{
  transition:
    transform .25s cubic-bezier(.22,.8,.22,1);
}

@media(hover:hover){
  .header-cta:hover span{
    display:inline-block;
    transform:translateX(3px);
  }
}

/* Calendar selected date: subtle confirmation pulse. */
.day.selected-day{
  animation:
    premiumDateSelect .42s
    cubic-bezier(.2,.8,.2,1);
}

@keyframes premiumDateSelect{
  0%{
    transform:scale(.94);
    box-shadow:
      0 0 0 0
      rgba(255,95,32,.28);
  }
  65%{
    transform:scale(1.025);
    box-shadow:
      0 0 0 8px
      rgba(255,95,32,0);
  }
  100%{
    transform:scale(1);
  }
}

/* CTA equalizer: living but extremely subtle. */
.cta-wave i,
.logo-symbol i{
  transform-origin:center bottom;
}

.cta-box:hover .cta-wave i{
  animation:
    premiumWave .72s
    ease-in-out infinite alternate;
}

.cta-box:hover .cta-wave i:nth-child(2){
  animation-delay:.09s;
}

.cta-box:hover .cta-wave i:nth-child(3){
  animation-delay:.18s;
}

.cta-box:hover .cta-wave i:nth-child(4){
  animation-delay:.27s;
}

.cta-box:hover .cta-wave i:nth-child(5){
  animation-delay:.36s;
}

.cta-box:hover .cta-wave i:nth-child(6){
  animation-delay:.45s;
}

@keyframes premiumWave{
  from{
    transform:scaleY(.78);
    opacity:.72;
  }
  to{
    transform:scaleY(1.08);
    opacity:1;
  }
}

/* ---------- Header scroll state ---------- */

.header{
  transition:
    background-color .32s ease,
    box-shadow .32s ease,
    border-color .32s ease;
}

.header .nav{
  transition:
    min-height .32s
    cubic-bezier(.22,.8,.22,1);
}

.header.is-scrolled{
  background:
    rgba(248,246,241,.97);
  border-bottom-color:
    rgba(35,39,43,.10);
  box-shadow:
    0 12px 34px
    rgba(34,38,42,.055);
}

@media(min-width:760px){
  .header.is-scrolled .nav{
    min-height:66px;
  }
}

/* ---------- Hero entrance ---------- */

.motion-ready .hero .eyebrow,
.motion-ready .hero h1,
.motion-ready .hero-sub,
.motion-ready .hero-points,
.motion-ready .hero-photo{
  opacity:0;
}

.motion-ready .hero .eyebrow,
.motion-ready .hero h1,
.motion-ready .hero-sub,
.motion-ready .hero-points{
  transform:
    translateY(16px);
}

.motion-ready .hero-photo{
  transform:
    translateY(14px)
    scale(.985);
}

.motion-ready.page-entered .hero .eyebrow{
  animation:
    premiumHeroIn .65s
    .06s both
    cubic-bezier(.22,.8,.22,1);
}

.motion-ready.page-entered .hero h1{
  animation:
    premiumHeroIn .75s
    .14s both
    cubic-bezier(.22,.8,.22,1);
}

.motion-ready.page-entered .hero-sub{
  animation:
    premiumHeroIn .7s
    .25s both
    cubic-bezier(.22,.8,.22,1);
}

.motion-ready.page-entered .hero-points{
  animation:
    premiumHeroIn .7s
    .34s both
    cubic-bezier(.22,.8,.22,1);
}

.motion-ready.page-entered .hero-photo{
  animation:
    premiumPhotoIn .9s
    .18s both
    cubic-bezier(.16,.84,.24,1);
}

@keyframes premiumHeroIn{
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes premiumPhotoIn{
  to{
    opacity:1;
    transform:
      translateY(0)
      scale(1);
  }
}

/* Hero photo follows the pointer by only a few pixels. */
.hero-photo{
  --photo-x:0px;
  --photo-y:0px;
}

.motion-ready.page-entered .hero-photo{
  translate:
    var(--photo-x)
    var(--photo-y);
  transition:
    translate .24s ease-out;
}

/* ---------- Scroll reveals ---------- */

.motion-ready [data-reveal-section]:not(.hero){
  opacity:0;
  transform:
    translateY(28px);
  filter:blur(2px);
}

.motion-ready [data-reveal-section].is-revealed:not(.hero){
  animation:
    premiumReveal .78s
    cubic-bezier(.22,.8,.22,1)
    both;
}

@keyframes premiumReveal{
  from{
    opacity:0;
    transform:
      translateY(28px);
    filter:blur(2px);
  }
  to{
    opacity:1;
    transform:
      translateY(0);
    filter:blur(0);
  }
}

/* Stagger repeated cards/items once their section is revealed. */
.motion-ready [data-stagger-group] > *{
  opacity:0;
  transform:
    translateY(15px);
}

.motion-ready
[data-reveal-section].is-revealed
[data-stagger-group] > *,

.motion-ready.page-entered
.hero
[data-stagger-group] > *{
  animation:
    premiumStagger .56s
    calc(
      .14s +
      var(--stagger-index,0) * .075s
    )
    cubic-bezier(.22,.8,.22,1)
    both;
}

@keyframes premiumStagger{
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* The service band reads like a sequence. */
.motion-ready
.premium-service-grid>div::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:2px;
  background:var(--orange);
  opacity:.7;
}

.motion-ready
.premium-service-band.is-revealed
.premium-service-grid>div::after{
  animation:
    premiumLine 1s
    calc(
      .22s +
      var(--stagger-index,0) * .09s
    )
    cubic-bezier(.22,.8,.22,1)
    both;
}

@keyframes premiumLine{
  to{
    width:100%;
  }
}

/* ---------- Accessibility / mobile ---------- */

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }

  .motion-ready [data-reveal-section],
  .motion-ready [data-stagger-group] > *,
  .motion-ready .hero .eyebrow,
  .motion-ready .hero h1,
  .motion-ready .hero-sub,
  .motion-ready .hero-points,
  .motion-ready .hero-photo{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
  }
}

@media(max-width:759px){
  .faq-section{
    padding-top:38px!important;
  }

  .booking-reassurance{
    font-size:.59rem!important;
  }

  .motion-ready [data-reveal-section]:not(.hero){
    transform:
      translateY(18px);
    filter:none;
  }

  @media(hover:hover){
    .price-card:hover,
    .pass-card:hover,
    .pass-card.featured:hover,
    .faq-grid article:hover{
      transform:none;
    }
  }
}


/* =====================================================
   V45 — MICRO POLISH FINAL HOME
===================================================== */

/* Remove the animated orange underline under the 4 service steps.
   It was visually stronger than the rest of the premium direction. */
.motion-ready
.premium-service-grid>div::after{
  display:none!important;
}

/* Slightly improve legibility of secondary copy without changing scale. */
.premium-service-grid small{
  font-size:.62rem!important;
  line-height:1.6!important;
}

.faq-grid p{
  font-size:.61rem!important;
  line-height:1.6!important;
}

.hero-point small{
  font-size:.54rem!important;
  line-height:1.42!important;
}

/* Keep Pass hover refined and restrained. */
@media(hover:hover){
  .pass-card:hover{
    transform:translateY(-3px)!important;
  }

  .pass-card.featured:hover{
    transform:translateY(-6px)!important;
  }

  .pass-card:hover,
  .pass-card.featured:hover{
    box-shadow:
      0 16px 38px rgba(0,0,0,.10)!important;
  }
}

/* Softer micro-interactions on cards. */
.pass-card{
  transition:
    transform .28s cubic-bezier(.22,.8,.22,1),
    box-shadow .28s ease,
    border-color .28s ease,
    background-color .28s ease!important;
}

/* Slightly tighter visual rhythm below Pass area. */
.mon-pass-callout{
  margin-top:0!important;
}

.faq-section{
  padding-top:46px!important;
}

@media(max-width:759px){
  .premium-service-grid small{
    font-size:.59rem!important;
  }

  .faq-grid p{
    font-size:.59rem!important;
  }

  .faq-section{
    padding-top:34px!important;
  }
}


/* =====================================================
   V46 — DESKTOP FINAL + MOBILE FINAL HOME
===================================================== */

/* -----------------------------------------------------
   DESKTOP — CALENDAR
----------------------------------------------------- */
@media(min-width:760px){
  .booking-card{
    padding:28px 30px;
  }

  .booking-grid{
    grid-template-columns:1.04fr .96fr!important;
    gap:18px!important;
  }

  .calendar-panel,
  .date-panel{
    min-height:430px;
  }

  .calendar-panel{
    padding:20px 22px;
  }

  .date-panel{
    padding:22px 24px;
    align-content:start;
  }

  .date-panel-head{
    margin-top:2px;
  }

  .selected-date-box{
    min-height:76px;
    padding:0 17px;
  }

  .selected-date-box strong{
    font-size:.79rem;
  }

  .date-service-card{
    margin-top:12px;
  }

  .date-service-card>div{
    padding:7px 0;
  }

  .date-service-card strong{
    font-size:.62rem!important;
  }

  .date-service-card small{
    font-size:.53rem!important;
  }

  .booking-progress{
    max-width:680px;
  }
}

/* -----------------------------------------------------
   DESKTOP — PASS CARDS LESS TALL
----------------------------------------------------- */
@media(min-width:981px){
  .pass-section{
    padding-top:72px!important;
    padding-bottom:72px!important;
  }

  .pass-card{
    min-height:338px!important;
    padding:22px 20px 18px!important;
  }

  .pass-price{
    margin-top:15px!important;
  }

  .pass-card ul{
    margin:16px 0 18px!important;
    gap:7px!important;
  }

  .pass-card button{
    min-height:42px!important;
  }

  .pass-card.featured{
    transform:translateY(-5px)!important;
  }
}

/* -----------------------------------------------------
   FAQ — ACCORDION
----------------------------------------------------- */
.faq-accordion{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px!important;
}

.faq-item{
  overflow:hidden;
  border:1px solid rgba(35,39,43,.10);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  transition:
    border-color .25s ease,
    background-color .25s ease,
    box-shadow .25s ease,
    transform .25s ease;
}

.faq-item summary{
  min-height:74px;
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  cursor:pointer;
  list-style:none;
  font-size:.68rem;
  font-weight:800;
}

.faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item summary i{
  width:28px;
  height:28px;
  flex:0 0 28px;
  position:relative;
  border:1px solid #dedbd5;
  border-radius:50%;
  background:#f7f4ee;
}

.faq-item summary i::before,
.faq-item summary i::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:10px;
  height:1.5px;
  border-radius:2px;
  background:var(--ink);
  transform:translate(-50%,-50%);
  transition:transform .22s ease;
}

.faq-item summary i::after{
  transform:
    translate(-50%,-50%)
    rotate(90deg);
}

.faq-item[open] summary i::after{
  transform:
    translate(-50%,-50%)
    rotate(0deg);
}

.faq-item p{
  margin:0;
  padding:0 20px 18px;
  color:#747a80;
  font-size:.61rem!important;
  line-height:1.65!important;
}

.faq-item[open]{
  border-color:rgba(255,95,32,.24);
  background:#fff;
  box-shadow:0 16px 40px rgba(34,38,42,.055);
}

@media(hover:hover){
  .faq-item:hover{
    transform:translateY(-2px);
    border-color:rgba(255,95,32,.20);
  }
}

/* -----------------------------------------------------
   CTA FINAL — LESS MASSIVE ON DESKTOP
----------------------------------------------------- */
@media(min-width:760px){
  .cta-box{
    grid-template-columns:minmax(0,1fr) auto auto!important;
    align-items:center;
    gap:24px!important;
    padding:26px 28px!important;
  }

  .cta-box .btn{
    width:auto!important;
    min-width:190px;
    justify-self:end;
    white-space:nowrap;
  }

  .cta-wave{
    height:46px;
  }
}

/* -----------------------------------------------------
   MOBILE — TRUE PHONE LAYOUT
----------------------------------------------------- */
@media(max-width:759px){

  html{
    scroll-padding-top:72px;
  }

  .wrap{
    width:calc(100% - 24px)!important;
  }

  /* Header */
  .header{
    position:sticky;
    top:0;
    z-index:150;
  }

  .nav{
    min-height:64px!important;
  }

  .nav-links,
  .header-pass-link,
  .header-cta{
    display:none!important;
  }

  .menu-toggle{
    display:grid!important;
    place-items:center;
    width:44px!important;
    height:44px!important;
    margin-left:auto;
  }

  .mobile-menu{
    display:block!important;
    visibility:hidden;
    opacity:0;
    transform:translateY(-8px) scale(.985);
    pointer-events:none;
    transition:
      opacity .2s ease,
      transform .2s ease,
      visibility .2s ease;
  }

  .mobile-menu.open{
    visibility:visible;
    opacity:1;
    transform:translateY(0) scale(1);
    pointer-events:auto;
  }

  .mobile-menu a{
    font-size:.76rem!important;
    border-radius:11px;
  }

  .mobile-menu a:hover,
  .mobile-menu a:focus-visible{
    background:#f4f1eb;
  }

  .mobile-menu-cta{
    margin-top:8px!important;
    background:var(--ink-2)!important;
    color:#fff!important;
  }

  /* Hero */
  .hero{
    padding-top:28px!important;
    padding-bottom:16px!important;
  }

  .hero-grid{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }

  .hero h1{
    font-size:clamp(3.05rem,15vw,4.35rem)!important;
    line-height:.91!important;
    letter-spacing:-.045em!important;
  }

  .hero-sub{
    max-width:34rem;
    margin-top:15px!important;
    font-size:.86rem!important;
  }

  .hero-points{
    grid-template-columns:1fr!important;
    gap:8px!important;
    max-width:none!important;
  }

  .hero-point{
    min-height:58px!important;
    padding:9px 11px!important;
  }

  .hero-point strong{
    font-size:.7rem!important;
  }

  .hero-point small{
    font-size:.57rem!important;
  }

  .hero-photo{
    aspect-ratio:4 / 3!important;
    min-height:0!important;
    border-radius:22px!important;
  }

  .hero-photo-note{
    max-width:150px!important;
  }

  /* Service steps: compact 2 x 2 */
  .premium-service-band{
    padding-top:8px!important;
  }

  .premium-service-grid{
    grid-template-columns:1fr 1fr!important;
    border-radius:18px!important;
  }

  .premium-service-grid>div{
    min-height:112px!important;
    padding:18px 16px!important;
    border-right:1px solid var(--premium-line)!important;
    border-bottom:1px solid var(--premium-line)!important;
  }

  .premium-service-grid>div:nth-child(2n){
    border-right:0!important;
  }

  .premium-service-grid>div:nth-last-child(-n+2){
    border-bottom:0!important;
  }

  .premium-service-grid strong{
    font-size:.76rem!important;
  }

  .premium-service-grid small{
    font-size:.56rem!important;
    line-height:1.5!important;
  }

  .premium-service-grid span{
    top:12px!important;
    right:12px!important;
    font-size:.48rem!important;
  }

  /* Booking */
  .booking-shell{
    padding-top:18px!important;
  }

  .booking-card{
    padding:15px!important;
    border-radius:21px!important;
  }

  .step-label h2{
    font-size:1.2rem!important;
  }

  .booking-progress{
    width:100%;
    margin:0 0 15px 0!important;
    padding-bottom:4px;
    overflow-x:auto;
    gap:6px!important;
    scrollbar-width:none;
  }

  .booking-progress::-webkit-scrollbar{
    display:none;
  }

  .booking-progress span{
    font-size:.47rem!important;
  }

  .booking-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .calendar-panel,
  .date-panel{
    min-height:0!important;
  }

  .calendar-panel{
    padding:12px!important;
  }

  .calendar-top strong{
    font-size:.8rem!important;
  }

  .calendar-top button{
    width:40px!important;
    height:40px!important;
  }

  .weekdays,
  .calendar{
    gap:4px!important;
  }

  .day{
    min-height:39px!important;
    border-radius:10px!important;
    font-size:.67rem!important;
  }

  .date-panel{
    padding:15px!important;
  }

  .selected-date-box{
    min-height:62px!important;
    padding:10px 12px!important;
    flex-direction:row!important;
    align-items:center!important;
  }

  .selected-date-box strong{
    font-size:.7rem!important;
  }

  .date-service-card{
    margin-top:8px!important;
    padding:14px 0 0!important;
  }

  .date-service-card>div{
    padding:6px 0!important;
  }

  .date-service-card strong{
    font-size:.59rem!important;
  }

  .date-service-card small{
    font-size:.51rem!important;
  }

  /* Main section headings */
  .quick-info,
  .pricing-section,
  .faq-section{
    padding-top:48px!important;
  }

  .section-mini-head h2,
  .section-head-left h2,
  .pass-title h2{
    font-size:2rem!important;
    line-height:1.03!important;
  }

  /* Material */
  .quick-info-grid{
    grid-template-columns:1fr!important;
    gap:8px!important;
    border:0!important;
    background:transparent!important;
  }

  .quick-info-grid article{
    min-height:76px!important;
    padding:13px 14px!important;
    border:1px solid var(--premium-line)!important;
    border-radius:16px!important;
  }

  .quick-info-grid article:last-child{
    background:var(--premium-ink)!important;
  }

  .quick-price{
    font-size:1.35rem!important;
  }

  /* Pricing */
  .pricing-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .price-card{
    min-height:0!important;
    padding:22px 20px!important;
    border-radius:20px!important;
  }

  .big-price{
    margin-top:15px!important;
    font-size:2.75rem!important;
  }

  .price-card ul{
    margin-top:14px!important;
  }

  /* Pass: horizontal swipe */
  .pass-section{
    margin-top:52px!important;
    padding:56px 0 58px!important;
  }

  .pass-title{
    text-align:left!important;
    margin-bottom:20px!important;
  }

  .pass-grid{
    display:flex!important;
    gap:12px!important;
    width:calc(100% + 12px);
    margin-right:-12px;
    padding-right:12px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }

  .pass-grid::-webkit-scrollbar{
    display:none;
  }

  .pass-card{
    flex:0 0 min(84vw,330px);
    min-height:340px!important;
    padding:21px 19px 18px!important;
    scroll-snap-align:start;
    transform:none!important;
  }

  .pass-card.featured{
    transform:none!important;
  }

  .pass-card ul{
    margin:16px 0!important;
    gap:7px!important;
  }

  .pass-card button{
    min-height:45px!important;
  }

  /* Mon Pass */
  .mon-pass-callout{
    padding-top:18px!important;
  }

  .mon-pass-callout-box{
    padding:20px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
  }

  .mon-pass-callout-box h2{
    font-size:1.75rem!important;
    line-height:1.04!important;
  }

  .mon-pass-callout-box .btn{
    width:100%!important;
  }

  /* FAQ accordion */
  .faq-accordion{
    grid-template-columns:1fr!important;
    gap:9px!important;
  }

  .faq-item{
    border-radius:16px!important;
  }

  .faq-item summary{
    min-height:62px!important;
    padding:14px 15px!important;
    font-size:.69rem!important;
  }

  .faq-item p{
    padding:0 15px 15px!important;
    font-size:.59rem!important;
  }

  /* CTA */
  .cta-strip{
    padding-bottom:40px!important;
  }

  .cta-box{
    padding:20px!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
  }

  .cta-box h2{
    font-size:1.85rem!important;
    line-height:1.05!important;
  }

  .cta-wave{
    display:none!important;
  }

  .cta-box .btn{
    width:100%!important;
  }

  /* Contact */
  .contact-section{
    padding-bottom:32px!important;
  }

  .contact-box{
    padding:20px!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
  }

  .contact-box h2{
    font-size:1.9rem!important;
    line-height:1.05!important;
  }

  .contact-box .btn{
    width:100%!important;
  }

  /* Footer */
  .footer{
    margin-top:50px!important;
    padding-top:38px!important;
    padding-bottom:105px!important;
  }

  .footer-premium-grid{
    grid-template-columns:1fr!important;
    gap:26px!important;
  }

  .footer-links-block nav{
    grid-template-columns:1fr 1fr!important;
  }

  .footer-bottom{
    margin-top:28px!important;
    padding-top:15px!important;
    flex-direction:column!important;
    gap:6px!important;
  }

  /* Sticky mobile CTA */
  .home-body .mobile-sticky-booking{
    min-height:60px!important;
    left:8px!important;
    right:8px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    border-radius:17px!important;
  }

  .mobile-sticky-booking strong{
    font-size:1.15rem!important;
  }

  .mobile-sticky-booking b{
    min-height:42px!important;
    padding:0 12px!important;
    font-size:.61rem!important;
  }
}

/* Tiny phones */
@media(max-width:380px){
  .hero h1{
    font-size:2.95rem!important;
  }

  .premium-service-grid{
    grid-template-columns:1fr!important;
  }

  .premium-service-grid>div{
    min-height:92px!important;
    border-right:0!important;
    border-bottom:1px solid var(--premium-line)!important;
  }

  .premium-service-grid>div:last-child{
    border-bottom:0!important;
  }

  .pass-card{
    flex-basis:88vw!important;
  }
}


/* =====================================================
   V47 — MOBILE POLISH / STICKY CTA COMPACT
===================================================== */

@media(max-width:759px){

  /* ---------------------------------------------
     Sticky booking bar: much more compact
  --------------------------------------------- */
  .home-body .mobile-sticky-booking{
    left:12px!important;
    right:12px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    min-height:52px!important;
    padding:6px 7px 6px 14px!important;
    border-radius:16px!important;
    gap:10px!important;
    box-shadow:
      0 10px 24px rgba(24,28,31,.18)!important;
    transition:
      opacity .2s ease,
      transform .2s ease,
      visibility .2s ease!important;
  }

  .mobile-sticky-booking>div{
    min-width:0!important;
  }

  .mobile-sticky-booking span{
    font-size:.48rem!important;
    line-height:1.1!important;
    opacity:.7;
  }

  .mobile-sticky-booking strong{
    margin-top:1px!important;
    font-size:1.08rem!important;
    line-height:1!important;
  }

  .mobile-sticky-booking b{
    min-height:40px!important;
    padding:0 13px!important;
    border-radius:12px!important;
    font-size:.61rem!important;
    white-space:nowrap!important;
  }

  .mobile-sticky-booking.is-hidden-by-menu{
    opacity:0!important;
    transform:translateY(14px)!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  /* Keep content clear of sticky bar but without huge wasted space */
  .footer{
    padding-bottom:82px!important;
  }

  /* ---------------------------------------------
     Mobile menu slightly shorter and tighter
  --------------------------------------------- */
  .mobile-menu{
    top:72px!important;
    left:12px!important;
    right:12px!important;
    padding:10px!important;
    border-radius:20px!important;
    max-height:calc(100dvh - 92px)!important;
    overflow-y:auto!important;
  }

  .mobile-menu a{
    min-height:48px!important;
    padding:0 14px!important;
    font-size:.71rem!important;
  }

  .mobile-menu-cta{
    min-height:50px!important;
  }

  /* ---------------------------------------------
     Calendar slightly more compact vertically
  --------------------------------------------- */
  .booking-card{
    padding:13px!important;
  }

  .booking-grid{
    gap:10px!important;
  }

  .calendar-panel{
    padding:10px!important;
  }

  .calendar-top{
    margin-bottom:9px!important;
  }

  .calendar-top button{
    width:36px!important;
    height:36px!important;
  }

  .weekdays{
    margin-bottom:5px!important;
  }

  .day{
    min-height:35px!important;
    border-radius:9px!important;
    font-size:.64rem!important;
  }

  .selected-date-box{
    min-height:58px!important;
  }

  .date-service-card{
    margin-top:6px!important;
  }

  .date-service-card>div{
    padding:5px 0!important;
  }

  /* ---------------------------------------------
     Classic/student cards: less empty height
  --------------------------------------------- */
  .price-card{
    padding:19px 18px!important;
  }

  .price-card .big-price{
    margin-top:12px!important;
    margin-bottom:10px!important;
  }

  .price-card p{
    margin-top:0!important;
    margin-bottom:10px!important;
  }

  .price-card ul{
    margin:10px 0 14px!important;
    gap:7px!important;
  }

  .price-card .btn{
    margin-top:6px!important;
    min-height:46px!important;
  }

  /* ---------------------------------------------
     Pass cards: same swipe, less vertical waste
  --------------------------------------------- */
  .pass-card{
    min-height:300px!important;
    padding:18px 17px 15px!important;
  }

  .pass-kicker{
    margin-bottom:8px!important;
  }

  .pass-price{
    margin-top:10px!important;
    margin-bottom:8px!important;
  }

  .pass-card ul{
    margin:10px 0 14px!important;
    gap:6px!important;
  }

  .pass-card button{
    min-height:44px!important;
    margin-top:auto!important;
  }

  /* ---------------------------------------------
     Mobile section spacing slightly tighter
  --------------------------------------------- */
  .pricing-section{
    padding-top:42px!important;
  }

  .pass-section{
    margin-top:44px!important;
    padding-top:48px!important;
    padding-bottom:52px!important;
  }

  .mon-pass-callout{
    padding-top:14px!important;
  }

  .faq-section{
    padding-top:30px!important;
  }

  /* ---------------------------------------------
     Hero sticky overlap guard
  --------------------------------------------- */
  .hero-photo{
    margin-bottom:4px!important;
  }
}

/* Extra-tight for smaller iPhones */
@media(max-width:390px){
  .home-body .mobile-sticky-booking{
    left:8px!important;
    right:8px!important;
    padding-left:12px!important;
  }

  .mobile-sticky-booking b{
    padding:0 11px!important;
    font-size:.58rem!important;
  }

  .pass-card{
    flex-basis:86vw!important;
  }
}


/* =====================================================
   V48 — BOOKING PAGE PREMIUM POLISH
===================================================== */

/* Booking header */
.flow-body{
  background:
    radial-gradient(circle at 50% -10%, rgba(255,255,255,.95), transparent 38%),
    #f5f2ec;
}

.flow-header{
  position:sticky;
  top:0;
  z-index:120;
  background:rgba(248,246,241,.94);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom-color:rgba(35,39,43,.09);
}

.flow-main{
  padding-top:42px;
}

.flow-progress{
  padding:10px 12px;
  max-width:720px;
  border:1px solid rgba(35,39,43,.08);
  border-radius:999px;
  background:rgba(255,255,255,.58);
}

.flow-progress span{
  font-size:.53rem;
}

.flow-progress span.active{
  color:var(--orange);
}

.flow-head{
  max-width:900px;
}

.flow-head h1{
  margin-top:10px;
  font-family:"Inter Tight","Manrope",sans-serif;
  font-size:clamp(2.8rem,6vw,4.8rem);
  font-weight:800;
  letter-spacing:-.055em;
  line-height:.96;
}

.flow-head>p:last-of-type{
  max-width:720px;
  font-size:.72rem;
}

.hold-pill{
  border:1px solid rgba(35,39,43,.08);
  background:#ece9e2;
}

.booking-service-strip{
  margin-top:20px;
  max-width:760px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  overflow:hidden;
  border:1px solid rgba(35,39,43,.10);
  border-radius:18px;
  background:rgba(255,255,255,.64);
}

.booking-service-strip>div{
  min-height:76px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:11px;
  border-right:1px solid rgba(35,39,43,.08);
}

.booking-service-strip>div:last-child{
  border-right:0;
}

.booking-service-strip b{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff0e9;
  color:var(--orange);
  font-size:.47rem;
}

.booking-service-strip span{
  display:grid;
  gap:2px;
}

.booking-service-strip strong{
  font-size:.63rem;
}

.booking-service-strip small{
  color:#7b8186;
  font-size:.51rem;
}

/* Formula cards */
.mode-grid{
  margin-top:28px;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}

.mode-card{
  min-height:270px;
  padding:24px;
  position:relative;
  display:flex;
  flex-direction:column;
  border-radius:22px;
  background:rgba(255,255,255,.82);
  border-color:rgba(35,39,43,.10);
  box-shadow:0 16px 40px rgba(34,38,42,.04);
}

.mode-card.featured{
  border-color:rgba(255,95,32,.65);
  background:#fff8f4;
  box-shadow:0 20px 48px rgba(255,95,32,.08);
}

.mode-card strong{
  margin-top:18px;
  font-size:2.65rem;
}

.mode-card p{
  max-width:420px;
  font-size:.64rem;
}

.mode-card ul{
  margin-top:16px;
  gap:7px;
}

.mode-card em{
  margin-top:auto;
}

.mode-badge{
  position:absolute;
  top:18px;
  right:18px;
  padding:6px 8px;
  border-radius:999px;
  background:#fff0e9;
  color:var(--orange);
  font-size:.43rem;
  font-weight:800;
  font-style:normal;
  letter-spacing:.08em;
}

.mode-badge.neutral{
  background:#efede8;
  color:#767c81;
}

.mode-badge.student{
  background:#fff0e9;
  color:var(--orange);
}

/* Opened panel */
.flow-panel{
  margin-top:26px;
  padding:28px;
  border-radius:26px;
  border-color:rgba(35,39,43,.10);
  background:rgba(255,255,255,.84);
  box-shadow:0 26px 70px rgba(34,38,42,.075);
}

.flow-panel-title{
  padding-bottom:16px;
  border-bottom:1px solid rgba(35,39,43,.08);
}

.change-mode{
  min-height:36px;
  padding:0 12px;
  border:1px solid #dcd9d3;
  border-radius:10px;
  background:#f7f4ee;
  text-decoration:none;
}

/* Form */
.flow-layout{
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr)!important;
  gap:22px!important;
  align-items:start;
}

.flow-form{
  gap:15px;
}

.flow-form label,
.member-form label{
  font-size:.61rem;
}

.flow-form input,
.flow-form select,
.member-form input,
.member-form select{
  min-height:52px;
  border-radius:13px;
  background:#fff;
}

.fixed-service-field{
  min-height:82px;
  background:#f4f1eb;
}

.option-card{
  background:#fff;
}

.payment-choice legend{
  margin-bottom:6px;
}

.payment-option{
  background:#fff;
}

/* Conditions are important but shouldn't feel alarming */
.rental-conditions-box{
  border-color:#e4ded5!important;
  background:#f7f3ec!important;
  border-radius:17px!important;
}

.rental-conditions-box>span{
  color:#a06f5d!important;
}

.rental-acceptance{
  border-color:#ddd8cf!important;
}

.booking-payment-note{
  display:block;
  margin-top:2px;
  color:#858b90;
  font-size:.51rem;
  line-height:1.5;
}

/* Summary */
.order-card{
  position:sticky;
  top:104px;
  padding:22px;
  border-radius:20px;
  background:#24292d;
  border-color:#24292d;
  color:#fff;
  box-shadow:0 18px 45px rgba(34,38,42,.14);
}

.order-card>span{
  color:rgba(255,255,255,.52);
}

.order-card .order-kicker{
  display:block;
  margin-top:10px;
  color:#ff8050;
  font-size:.52rem;
  font-weight:700;
}

.order-card>strong{
  margin-top:5px;
  color:#fff;
  font-size:.88rem;
}

.order-lines{
  border-top-color:rgba(255,255,255,.12);
}

.order-lines div{
  border-bottom-color:rgba(255,255,255,.12);
}

.order-lines span,
.order-total span{
  color:rgba(255,255,255,.62);
}

.order-lines b{
  color:#fff;
}

.order-total strong{
  color:#fff;
  font-size:2.25rem;
}

/* Member panel */
.member-box h3{
  font-size:1.15rem;
  letter-spacing:-.025em;
}

.member-box p{
  color:#767d83;
  font-size:.64rem;
  line-height:1.6;
}

.member-pass-shortcut{
  display:inline-flex;
  margin-top:16px;
  color:#6e757b;
  font-size:.58rem;
  font-weight:700;
}

/* Premium hover */
@media(hover:hover){
  .mode-card:hover{
    transform:translateY(-4px);
    box-shadow:0 24px 56px rgba(34,38,42,.08);
  }

  .mode-card.featured:hover{
    box-shadow:0 26px 60px rgba(255,95,32,.12);
  }

  .change-mode:hover{
    border-color:#cfcac2;
    background:#fff;
  }
}

/* =====================================================
   V48 — MOBILE BOOKING
===================================================== */
@media(max-width:759px){

  .flow-nav{
    min-height:64px!important;
  }

  .flow-back{
    font-size:.58rem!important;
  }

  .flow-main{
    padding:22px 0 46px!important;
  }

  .flow-progress{
    margin-bottom:20px!important;
    padding:8px 10px!important;
    border-radius:16px!important;
  }

  .flow-head h1{
    font-size:clamp(2.25rem,10.5vw,3.25rem)!important;
    line-height:.98!important;
  }

  .flow-head>p:last-of-type{
    font-size:.66rem!important;
  }

  .hold-pill{
    margin-top:14px!important;
    padding:10px 12px!important;
    font-size:.54rem!important;
  }

  .booking-service-strip{
    grid-template-columns:1fr!important;
    margin-top:14px!important;
  }

  .booking-service-strip>div{
    min-height:58px!important;
    padding:10px 12px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(35,39,43,.08)!important;
  }

  .booking-service-strip>div:last-child{
    border-bottom:0!important;
  }

  .booking-service-strip strong{
    font-size:.62rem!important;
  }

  .booking-service-strip small{
    font-size:.52rem!important;
  }

  /* formula cards compact */
  .mode-grid{
    grid-template-columns:1fr!important;
    margin-top:18px!important;
    gap:9px!important;
  }

  .mode-card{
    min-height:0!important;
    padding:17px!important;
    border-radius:18px!important;
  }

  .mode-card strong{
    margin-top:12px!important;
    font-size:2.05rem!important;
  }

  .mode-card p{
    margin-top:5px!important;
    font-size:.61rem!important;
  }

  .mode-card ul{
    margin-top:12px!important;
    gap:5px!important;
    font-size:.58rem!important;
  }

  .mode-card em{
    margin-top:14px!important;
    padding-top:12px!important;
  }

  .mode-badge{
    top:14px!important;
    right:14px!important;
  }

  /* panel */
  .flow-panel{
    padding:14px!important;
    border-radius:20px!important;
  }

  .flow-panel-title{
    margin-bottom:14px!important;
    padding-bottom:12px!important;
  }

  .flow-layout{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  /* summary before form on mobile */
  .order-card{
    order:-1;
    position:static!important;
    padding:16px!important;
    border-radius:17px!important;
  }

  .order-card>strong{
    font-size:.75rem!important;
  }

  .order-lines{
    margin-top:12px!important;
  }

  .order-lines div{
    min-height:38px!important;
    font-size:.56rem!important;
  }

  .order-total{
    padding-top:12px!important;
  }

  .order-total strong{
    font-size:1.85rem!important;
  }

  .form-grid-2{
    grid-template-columns:1fr!important;
  }

  .flow-form{
    gap:11px!important;
  }

  .flow-form label,
  .member-form label{
    font-size:.62rem!important;
  }

  .flow-form input,
  .flow-form select,
  .member-form input,
  .member-form select{
    min-height:49px!important;
  }

  .fixed-service-field{
    min-height:72px!important;
  }

  .option-card{
    min-height:68px!important;
    padding:11px!important;
  }

  .payment-option{
    min-height:66px!important;
  }

  .rental-conditions-box{
    padding:14px!important;
  }

  .rental-conditions-box ul{
    gap:7px!important;
  }

  .btn-full{
    min-height:50px!important;
  }

  /* subscription pass cards in the booking flow */
  #subscribePanel .mode-grid{
    display:flex!important;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:9px!important;
    padding-bottom:4px;
    scrollbar-width:none;
  }

  #subscribePanel .mode-grid::-webkit-scrollbar{
    display:none;
  }

  #subscribePanel .pass-choice{
    flex:0 0 82vw;
    scroll-snap-align:start;
  }

  .flow-service-note{
    padding:12px!important;
    border-radius:14px!important;
  }

  .member-box h3{
    font-size:1rem!important;
  }
}


/* =====================================================
   V49 — MA RÉSERVATION / GESTION PREMIUM
===================================================== */

/* Shared */
.booking-retrieve-wrap,
.manage-wrap{
  max-width:1040px!important;
}

.booking-retrieve-head,
.manage-wrap>.flow-head{
  max-width:800px;
}

.booking-retrieve-head h1,
.manage-wrap>.flow-head h1{
  font-family:"Inter Tight","Manrope",sans-serif!important;
  font-size:clamp(2.9rem,6.4vw,5.1rem)!important;
  font-weight:800!important;
  letter-spacing:-.055em!important;
  line-height:.94!important;
}

.booking-retrieve-head>p:last-child,
.manage-wrap>.flow-head>p:last-child{
  max-width:700px;
  color:#6f767b;
  font-size:.7rem;
  line-height:1.7;
}

/* ---------- Retrieve page ---------- */

.retrieve-service-strip,
.manage-reassurance-strip{
  margin-top:22px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  overflow:hidden;
  border:1px solid rgba(35,39,43,.10);
  border-radius:19px;
  background:rgba(255,255,255,.66);
}

.retrieve-service-strip>div,
.manage-reassurance-strip>div{
  min-height:78px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:11px;
  border-right:1px solid rgba(35,39,43,.08);
}

.retrieve-service-strip>div:last-child,
.manage-reassurance-strip>div:last-child{
  border-right:0;
}

.retrieve-service-strip b,
.manage-reassurance-strip b{
  width:29px;
  height:29px;
  flex:0 0 29px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff0e9;
  color:var(--orange);
  font-size:.47rem;
}

.retrieve-service-strip span,
.manage-reassurance-strip span{
  display:grid;
  gap:2px;
}

.retrieve-service-strip strong,
.manage-reassurance-strip strong{
  font-size:.62rem;
}

.retrieve-service-strip small,
.manage-reassurance-strip small{
  color:#7d8388;
  font-size:.51rem;
  line-height:1.4;
}

.saved-booking-card,
.booking-lookup-card{
  margin-top:18px!important;
  padding:25px!important;
  border-radius:23px!important;
  border-color:rgba(35,39,43,.10)!important;
  background:rgba(255,255,255,.84)!important;
  box-shadow:0 22px 55px rgba(34,38,42,.055)!important;
}

.saved-booking-card{
  background:#24292d!important;
  color:#fff;
}

.saved-booking-card .eyebrow{
  color:#ff8151!important;
}

.saved-booking-card h2{
  color:#fff!important;
  font-size:1.65rem!important;
  letter-spacing:-.035em;
}

.saved-booking-summary{
  margin:17px 0 20px!important;
  border-color:rgba(255,255,255,.12)!important;
}

.saved-booking-summary>div{
  min-height:78px!important;
  background:rgba(255,255,255,.035)!important;
  border-color:rgba(255,255,255,.12)!important;
}

.saved-booking-summary span{
  color:rgba(255,255,255,.50)!important;
}

.saved-booking-summary strong{
  color:#fff!important;
  font-size:.7rem!important;
}

.saved-booking-card .btn{
  min-height:50px;
}

.lookup-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}

.secure-lookup-badge{
  padding:7px 9px;
  border-radius:999px;
  background:#efede8;
  color:#7a8084;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.08em;
  white-space:nowrap;
}

.booking-lookup-card h2{
  font-size:1.65rem!important;
  letter-spacing:-.035em;
}

.booking-lookup-copy{
  max-width:620px;
  font-size:.66rem!important;
  line-height:1.65!important;
}

.booking-lookup-card .flow-form{
  margin-top:20px!important;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
}

.booking-lookup-card .flow-form label{
  font-size:.61rem;
}

.booking-lookup-card .flow-form input{
  min-height:52px;
  border-radius:13px;
}

.booking-lookup-card .flow-form .btn,
.booking-lookup-card .booking-lookup-error{
  grid-column:1 / -1;
}

.booking-lookup-help{
  margin-top:14px!important;
  padding:12px 14px;
  border-radius:13px;
  background:#ece9e2;
  color:#777d82!important;
  font-size:.55rem!important;
}

/* ---------- Manage page ---------- */

.manage-loading{
  margin-top:20px!important;
  min-height:84px;
  display:flex;
  align-items:center;
  border-radius:18px!important;
  background:#f3f0e9!important;
}

.manage-summary-label{
  margin-top:24px;
  color:#9a7a6c;
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.14em;
}

.manage-summary{
  margin-top:8px!important;
  grid-template-columns:repeat(4,1fr)!important;
  border-radius:20px!important;
  background:#24292d!important;
  border-color:#24292d!important;
  box-shadow:0 20px 50px rgba(34,38,42,.13)!important;
}

.manage-summary>div{
  min-height:86px!important;
  border-color:rgba(255,255,255,.12)!important;
}

.manage-summary span{
  color:rgba(255,255,255,.48)!important;
}

.manage-summary strong{
  color:#fff!important;
  font-size:.69rem!important;
  line-height:1.35;
}

#manageStatus{
  width:max-content;
  padding:6px 9px;
  border-radius:999px;
  font-size:.57rem!important;
}

#manageStatus.status-confirmed{
  background:#244733;
  color:#bff3d0!important;
}

#manageStatus.status-cancelled{
  background:#6a3028;
  color:#ffd3ca!important;
}

.manage-actions-grid{
  margin-top:18px!important;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr)!important;
  gap:16px!important;
}

.manage-action-card{
  padding:24px!important;
  border-radius:22px!important;
  border-color:rgba(35,39,43,.10)!important;
  background:rgba(255,255,255,.84)!important;
  box-shadow:0 20px 50px rgba(34,38,42,.055)!important;
}

.manage-action-card h2{
  font-size:1.65rem!important;
  letter-spacing:-.035em;
}

.manage-action-card>p{
  max-width:660px;
  font-size:.63rem!important;
}

.manage-calendar{
  margin-top:18px!important;
  padding:18px!important;
  border-radius:18px!important;
}

.manage-calendar .day{
  min-height:42px;
}

.manage-calendar-legend{
  margin-top:12px;
  display:flex;
  gap:15px;
  flex-wrap:wrap;
  color:#7a8186;
  font-size:.49rem;
}

.manage-calendar-legend span{
  display:flex;
  align-items:center;
  gap:5px;
}

.manage-calendar-legend i{
  width:9px;
  height:9px;
  display:block;
  border-radius:50%;
}

.legend-available{
  background:#f5f3ee;
  border:1px solid #dfdcd5;
}

.legend-current{
  background:#343a40;
}

.legend-unavailable{
  background:#d9d7d2;
}

.manage-new-date{
  min-height:72px!important;
  background:#f5f2ec!important;
  border-color:#dedad2!important;
}

.danger-card{
  border-color:#eadbd6!important;
  background:#fffaf8!important;
}

.cancel-warning{
  background:#fff2ee!important;
  border-color:#edd7d0!important;
}

.btn-danger{
  min-height:48px;
  border-radius:12px;
}

.manage-result{
  padding:30px!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 24px 60px rgba(34,38,42,.07)!important;
}

/* Desktop balance */
@media(min-width:760px){
  .manage-wrap{
    padding-bottom:48px;
  }
}

/* =====================================================
   V49 — MOBILE
===================================================== */
@media(max-width:759px){

  .booking-retrieve-wrap,
  .manage-wrap{
    width:calc(100% - 24px)!important;
  }

  .booking-retrieve-head h1,
  .manage-wrap>.flow-head h1{
    font-size:clamp(2.45rem,12vw,3.5rem)!important;
  }

  .booking-retrieve-head>p:last-child,
  .manage-wrap>.flow-head>p:last-child{
    font-size:.64rem!important;
  }

  .retrieve-service-strip,
  .manage-reassurance-strip{
    grid-template-columns:1fr!important;
    margin-top:16px!important;
  }

  .retrieve-service-strip>div,
  .manage-reassurance-strip>div{
    min-height:58px!important;
    padding:10px 12px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(35,39,43,.08)!important;
  }

  .retrieve-service-strip>div:last-child,
  .manage-reassurance-strip>div:last-child{
    border-bottom:0!important;
  }

  .saved-booking-card,
  .booking-lookup-card{
    padding:16px!important;
    border-radius:19px!important;
  }

  .saved-booking-card h2,
  .booking-lookup-card h2{
    font-size:1.35rem!important;
  }

  .saved-booking-summary{
    grid-template-columns:1fr!important;
  }

  .saved-booking-summary>div{
    min-height:58px!important;
  }

  .lookup-card-head{
    display:grid;
    gap:10px;
  }

  .secure-lookup-badge{
    width:max-content;
  }

  .booking-lookup-card .flow-form{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  .booking-lookup-card .flow-form .btn,
  .booking-lookup-card .booking-lookup-error{
    grid-column:auto!important;
  }

  .booking-lookup-help{
    padding:10px 11px!important;
    font-size:.53rem!important;
  }

  /* manage */
  .manage-summary{
    grid-template-columns:1fr 1fr!important;
  }

  .manage-summary>div{
    min-height:68px!important;
    padding:12px!important;
    border-right:1px solid rgba(255,255,255,.12)!important;
    border-bottom:1px solid rgba(255,255,255,.12)!important;
  }

  .manage-summary>div:nth-child(2n){
    border-right:0!important;
  }

  .manage-summary>div:nth-last-child(-n+2){
    border-bottom:0!important;
  }

  .manage-actions-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .manage-action-card{
    padding:16px!important;
    border-radius:19px!important;
  }

  .manage-action-card h2{
    font-size:1.4rem!important;
  }

  .manage-calendar{
    padding:10px!important;
  }

  .manage-calendar .calendar-top button{
    width:36px!important;
    height:36px!important;
  }

  .manage-calendar .day{
    min-height:35px!important;
    font-size:.63rem!important;
  }

  .manage-calendar-legend{
    gap:10px!important;
    font-size:.47rem!important;
  }

  .manage-new-date{
    min-height:62px!important;
  }

  .danger-card{
    order:2;
  }

  .cancel-warning{
    margin:14px 0!important;
    padding:12px!important;
  }

  .manage-result{
    padding:20px!important;
  }
}


/* =====================================================
   V50 — FIN DE PARCOURS PREMIUM
===================================================== */

.confirmation-wrap,
.payment-return-wrap,
.student-pending-wrap{
  max-width:860px!important;
}

.confirmation-wrap,
.student-pending-wrap{
  padding-bottom:48px;
}

.confirmation-wrap .flow-head,
.student-pending-wrap .flow-head{
  max-width:720px;
}

.confirmation-wrap .flow-head h1,
.student-pending-wrap .flow-head h1,
.payment-state h1{
  font-family:"Inter Tight","Manrope",sans-serif!important;
  font-weight:800!important;
  letter-spacing:-.06em!important;
  line-height:.94!important;
}

.confirmation-wrap .flow-head h1,
.student-pending-wrap .flow-head h1{
  font-size:clamp(3.2rem,7vw,5.6rem)!important;
}

.confirmation-wrap .flow-head p,
.student-pending-wrap .flow-head p,
.payment-state>p:not(.eyebrow){
  color:#6f767b!important;
  font-size:.69rem!important;
  line-height:1.72!important;
}

.confirmation-icon{
  width:56px!important;
  height:56px!important;
  margin-bottom:18px!important;
  box-shadow:0 12px 28px rgba(255,95,32,.22);
}

.confirmation-next-steps,
.student-validation-steps{
  margin-top:24px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  overflow:hidden;
  border:1px solid rgba(35,39,43,.10);
  border-radius:19px;
  background:rgba(255,255,255,.68);
}

.confirmation-next-steps>div,
.student-validation-steps>div{
  min-height:78px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:11px;
  border-right:1px solid rgba(35,39,43,.08);
}

.confirmation-next-steps>div:last-child,
.student-validation-steps>div:last-child{
  border-right:0;
}

.confirmation-next-steps b,
.student-validation-steps b{
  width:29px;
  height:29px;
  flex:0 0 29px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff0e9;
  color:var(--orange);
  font-size:.47rem;
}

.confirmation-next-steps span,
.student-validation-steps span{
  display:grid;
  gap:2px;
}

.confirmation-next-steps strong,
.student-validation-steps strong{
  font-size:.62rem;
}

.confirmation-next-steps small,
.student-validation-steps small{
  color:#7c8287;
  font-size:.51rem;
  line-height:1.42;
}

.confirmation-card-label{
  margin:24px 0 8px;
  color:#9d7a6a;
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.14em;
}

.confirmation-card{
  margin-top:0!important;
  border-color:#24292d!important;
  background:#24292d!important;
  box-shadow:0 22px 56px rgba(34,38,42,.14)!important;
}

.confirmation-card div{
  min-height:62px!important;
  border-bottom-color:rgba(255,255,255,.12)!important;
}

.confirmation-card span{
  color:rgba(255,255,255,.48)!important;
}

.confirmation-card strong{
  color:#fff!important;
  font-size:.66rem!important;
}

.confirmation-service-note,
.student-pending-note,
.payment-secure-note{
  margin-top:14px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid #dfdbd3;
  border-radius:14px;
  background:#f4f1eb;
}

.confirmation-service-note strong,
.student-pending-note strong{
  flex:0 0 auto;
  font-size:.59rem;
}

.confirmation-service-note span,
.student-pending-note span{
  color:#767d82;
  font-size:.54rem;
  line-height:1.45;
}

.confirmation-actions{
  margin-top:18px!important;
  gap:8px!important;
  flex-wrap:wrap;
}

.confirmation-actions .btn{
  min-height:46px;
}

/* PAYMENT RETURN */
.payment-return-main{
  background:
    radial-gradient(circle at 50% -15%,rgba(255,255,255,.98),transparent 42%),
    #f5f2ec;
}

.payment-state{
  padding:34px!important;
  border-radius:26px!important;
  border-color:rgba(35,39,43,.10)!important;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 28px 70px rgba(34,38,42,.08)!important;
}

.payment-state h1{
  font-size:clamp(3rem,7vw,5.5rem)!important;
}

.payment-spinner{
  width:50px!important;
  height:50px!important;
  border-width:3px!important;
}

.payment-secure-note{
  max-width:520px;
}

.payment-secure-note>span{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#244733;
  color:#c8f4d6;
  font-size:.7rem;
  font-weight:800;
}

.payment-secure-note p{
  margin:0;
  display:grid;
  gap:2px;
}

.payment-secure-note strong{
  font-size:.59rem;
}

.payment-secure-note small{
  color:#777e83;
  font-size:.52rem;
}

#paymentError{
  border-color:#eadcd7!important;
  background:#fffaf8!important;
}

/* STUDENT */
.student-pending-card{
  margin-top:18px!important;
  padding:24px!important;
  border-radius:22px!important;
  border-color:rgba(35,39,43,.10)!important;
  background:#24292d!important;
  color:#fff;
  box-shadow:0 22px 55px rgba(34,38,42,.13)!important;
}

.student-status-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.student-status-head span{
  color:#ff8151!important;
}

.student-status-head i{
  padding:6px 8px;
  border-radius:999px;
  background:#4e463c;
  color:#ffd6c3;
  font-size:.43rem;
  font-weight:800;
  font-style:normal;
  letter-spacing:.08em;
}

.student-pending-card strong{
  color:#fff!important;
  font-size:1.25rem!important;
}

.student-pending-card p{
  color:rgba(255,255,255,.60)!important;
  font-size:.62rem!important;
}

/* MOBILE */
@media(max-width:759px){
  .confirmation-wrap,
  .payment-return-wrap,
  .student-pending-wrap{
    width:calc(100% - 24px)!important;
  }

  .confirmation-wrap .flow-head h1,
  .student-pending-wrap .flow-head h1,
  .payment-state h1{
    font-size:clamp(2.6rem,12vw,3.7rem)!important;
  }

  .confirmation-next-steps,
  .student-validation-steps{
    grid-template-columns:1fr!important;
    margin-top:16px!important;
  }

  .confirmation-next-steps>div,
  .student-validation-steps>div{
    min-height:58px!important;
    padding:10px 12px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(35,39,43,.08)!important;
  }

  .confirmation-next-steps>div:last-child,
  .student-validation-steps>div:last-child{
    border-bottom:0!important;
  }

  .confirmation-card-label{
    margin-top:18px!important;
  }

  .confirmation-card div{
    min-height:56px!important;
    padding:10px 12px!important;
  }

  .confirmation-card strong{
    max-width:60%!important;
    font-size:.61rem!important;
  }

  .confirmation-service-note,
  .student-pending-note{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:4px!important;
    padding:12px!important;
  }

  .confirmation-actions{
    flex-direction:column!important;
  }

  .confirmation-actions .btn{
    width:100%!important;
  }

  .payment-return-main{
    align-items:flex-start!important;
    padding-top:20px!important;
  }

  .payment-state{
    padding:20px!important;
    border-radius:20px!important;
  }

  .payment-secure-note{
    padding:12px!important;
  }

  .student-pending-card{
    padding:18px!important;
    border-radius:19px!important;
  }
}


/* =====================================================
   V51 — MON PASS PREMIUM
===================================================== */

.mon-pass-wrap{
  max-width:1040px!important;
  padding-bottom:52px;
}

/* ---------- LOGIN ---------- */
.pass-login-card{
  max-width:760px!important;
  margin:0 auto;
  padding:32px!important;
  border-radius:28px!important;
  border-color:rgba(35,39,43,.10)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.92),rgba(255,255,255,.72))!important;
  box-shadow:0 30px 80px rgba(34,38,42,.08)!important;
}

.pass-login-card h1,
.mon-pass-head h1{
  font-family:"Inter Tight","Manrope",sans-serif!important;
  font-weight:800!important;
  letter-spacing:-.06em!important;
  line-height:.92!important;
}

.pass-login-card h1{
  font-size:clamp(3.8rem,8vw,6rem)!important;
}

.pass-login-card>p:not(.eyebrow){
  max-width:600px;
  font-size:.69rem!important;
  line-height:1.72!important;
}

.pass-login-card .member-form{
  margin-top:22px;
  max-width:530px;
}

.pass-login-card .member-form label{
  font-size:.61rem;
}

.pass-login-card .member-form input{
  min-height:52px;
  border-radius:13px;
  background:#fff;
}

.pass-login-card .member-form .btn{
  min-height:50px;
  margin-top:4px;
}

.pass-login-note{
  display:block;
  margin-top:12px;
  color:#777e83;
  font-size:.53rem;
}

.pass-login-reassurance{
  margin-top:24px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  overflow:hidden;
  border:1px solid rgba(35,39,43,.09);
  border-radius:18px;
  background:#f4f1eb;
}

.pass-login-reassurance>div{
  min-height:74px;
  padding:13px 14px;
  display:flex;
  align-items:center;
  gap:10px;
  border-right:1px solid rgba(35,39,43,.08);
}

.pass-login-reassurance>div:last-child{
  border-right:0;
}

.pass-login-reassurance b{
  width:27px;
  height:27px;
  flex:0 0 27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff0e9;
  color:var(--orange);
  font-size:.45rem;
}

.pass-login-reassurance span{
  display:grid;
  gap:2px;
}

.pass-login-reassurance strong{
  font-size:.58rem;
}

.pass-login-reassurance small{
  color:#7e8489;
  font-size:.49rem;
  line-height:1.4;
}

/* ---------- DASHBOARD HEADER ---------- */
.mon-pass-head{
  align-items:center!important;
  padding-bottom:20px;
  border-bottom:1px solid rgba(35,39,43,.09);
}

.mon-pass-head h1{
  font-size:clamp(3.6rem,7vw,5.6rem)!important;
}

.mon-pass-head-actions{
  display:flex;
  align-items:center;
  gap:9px;
}

.pass-main-badge{
  padding:9px 11px!important;
  background:#e6f4ea!important;
  color:#337f47!important;
}

.pass-main-badge.inactive{
  background:#f8e8e5!important;
  color:#9c4b41!important;
}

.pass-logout-button{
  min-height:36px;
  padding:0 11px;
  border:1px solid #dcd9d3;
  border-radius:10px;
  background:#f5f2ec;
  color:#737a7f;
  font:inherit;
  font-size:.51rem;
  font-weight:700;
  cursor:pointer;
}

/* ---------- TOP GRID ---------- */
.pass-dashboard-grid{
  margin-top:20px!important;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;
  gap:14px!important;
}

.pass-main-card,
.pass-eligibility-card,
.pass-upcoming-card,
.pass-period-card,
.pass-history-card{
  border-color:rgba(35,39,43,.10)!important;
  box-shadow:0 20px 52px rgba(34,38,42,.055)!important;
}

.pass-main-card{
  padding:25px!important;
  background:#24292d!important;
  border-color:#24292d!important;
  color:#fff;
  box-shadow:0 24px 60px rgba(34,38,42,.16)!important;
}

.pass-main-card>span{
  color:#ff8151!important;
}

.pass-main-card>strong{
  color:#fff!important;
  font-size:1.45rem!important;
}

.pass-main-price{
  margin-top:13px!important;
}

.pass-main-price span{
  font-family:"Inter Tight","Manrope",sans-serif!important;
  color:#fff;
  font-size:3rem!important;
  font-weight:800!important;
  letter-spacing:-.05em;
}

.pass-main-price small{
  color:rgba(255,255,255,.48)!important;
}

.pass-feature-list{
  margin-top:16px!important;
  border-top-color:rgba(255,255,255,.12)!important;
}

.pass-feature-list div{
  min-height:42px!important;
  border-bottom-color:rgba(255,255,255,.12)!important;
}

.pass-feature-list span{
  color:rgba(255,255,255,.48)!important;
}

.pass-feature-list strong{
  color:#fff!important;
}

.pass-policy-mini{
  margin-top:16px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.pass-policy-mini span{
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.68);
  font-size:.46rem;
  font-weight:700;
}

/* Eligibility */
.pass-eligibility-card{
  padding:25px!important;
  background:rgba(255,255,255,.86)!important;
}

.pass-eligibility-card>strong{
  margin-top:12px!important;
  font-family:"Inter Tight","Manrope",sans-serif!important;
  font-size:2.35rem!important;
  font-weight:800!important;
  letter-spacing:-.045em;
  line-height:1;
}

.pass-eligibility-card>p{
  font-size:.62rem!important;
}

.pass-eligibility-note{
  margin:0 0 15px;
  padding:11px 12px;
  display:flex;
  align-items:flex-start;
  gap:8px;
  border-radius:12px;
  background:#f3f0ea;
}

.pass-eligibility-note>span{
  width:20px;
  height:20px;
  flex:0 0 20px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e4f2e8;
  color:#347c48;
  font-size:.52rem;
  font-weight:800;
}

.pass-eligibility-note small{
  color:#737a7f;
  font-size:.49rem;
  line-height:1.45;
}

.pass-eligibility-card .btn{
  min-height:48px;
}

/* ---------- UPCOMING ---------- */
.pass-upcoming-card{
  margin-top:14px!important;
  padding:24px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.86)!important;
}

.pass-upcoming-head h2{
  font-size:1.7rem!important;
  letter-spacing:-.035em;
}

.pass-upcoming-content{
  grid-template-columns:repeat(5,1fr)!important;
  gap:8px!important;
}

.pass-upcoming-content>div{
  min-height:82px;
  padding:12px!important;
  background:#f5f2ec!important;
  border-color:#e5e1da!important;
}

.pass-upcoming-content strong{
  font-size:.57rem!important;
  line-height:1.4;
}

.pass-upcoming-card .btn{
  min-height:44px;
}

/* ---------- PERIOD ---------- */
.pass-dashboard-section-label{
  margin:21px 0 8px;
  color:#9a7869;
  font-size:.47rem;
  font-weight:800;
  letter-spacing:.14em;
}

.pass-period-card{
  margin-top:0!important;
  padding:20px 22px!important;
  border-radius:19px!important;
  background:#f3f0e9!important;
  box-shadow:none!important;
}

.pass-period-card>div{
  min-height:54px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.pass-period-card strong{
  font-size:.64rem!important;
}

/* ---------- HISTORY ---------- */
.pass-history-card{
  margin-top:14px!important;
  padding:24px!important;
  background:rgba(255,255,255,.86)!important;
}

.pass-history-card h2{
  font-size:1.45rem!important;
  letter-spacing:-.03em;
}

.pass-history-list{
  margin-top:10px;
}

.pass-history-row{
  min-height:70px;
  padding:12px 14px!important;
  border-color:#e4e1db!important;
  background:#f8f6f2!important;
}

.pass-history-status{
  width:max-content;
  padding:5px 7px;
  border-radius:999px;
  font-size:.49rem!important;
}

.pass-history-status.is-confirmed{
  background:#e4f2e8;
  color:#347c48;
}

.pass-history-status.is-cancelled{
  background:#f6e8e5;
  color:#9e4e43;
}

.pass-history-row>a{
  padding:8px 10px;
  border-radius:9px;
  background:#fff0e9;
  text-decoration:none;
}

/* Not found */
#passNotFound{
  max-width:680px;
  margin:0 auto;
  padding:28px!important;
  border-radius:24px!important;
}

#passNotFound h2{
  font-size:1.7rem;
  letter-spacing:-.035em;
}

/* Hover */
@media(hover:hover){
  .pass-logout-button:hover{
    border-color:#cbc7bf;
    background:#fff;
  }

  .pass-history-row>a:hover{
    background:#ffe6db;
  }
}

/* =====================================================
   V51 — MOBILE MON PASS
===================================================== */
@media(max-width:759px){

  .mon-pass-wrap{
    width:calc(100% - 24px)!important;
    padding-bottom:36px!important;
  }

  .pass-login-card{
    padding:20px!important;
    border-radius:21px!important;
  }

  .pass-login-card h1{
    font-size:clamp(3.2rem,15vw,4.35rem)!important;
  }

  .pass-login-card>p:not(.eyebrow){
    font-size:.64rem!important;
  }

  .pass-login-reassurance{
    grid-template-columns:1fr!important;
    margin-top:18px!important;
  }

  .pass-login-reassurance>div{
    min-height:56px!important;
    padding:9px 11px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(35,39,43,.08)!important;
  }

  .pass-login-reassurance>div:last-child{
    border-bottom:0!important;
  }

  .mon-pass-head{
    align-items:flex-start!important;
    gap:14px!important;
  }

  .mon-pass-head h1{
    font-size:3.5rem!important;
  }

  .mon-pass-head-actions{
    align-items:flex-end;
    flex-direction:column;
  }

  .pass-logout-button{
    min-height:32px!important;
    font-size:.48rem!important;
  }

  .pass-dashboard-grid{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  .pass-main-card,
  .pass-eligibility-card{
    padding:18px!important;
    border-radius:19px!important;
  }

  .pass-main-card>strong{
    font-size:1.25rem!important;
  }

  .pass-main-price span{
    font-size:2.55rem!important;
  }

  .pass-policy-mini{
    display:grid;
    grid-template-columns:1fr;
  }

  .pass-policy-mini span{
    width:max-content;
    max-width:100%;
  }

  .pass-eligibility-card>strong{
    font-size:2rem!important;
  }

  .pass-upcoming-card{
    padding:17px!important;
    border-radius:19px!important;
  }

  .pass-upcoming-head{
    flex-direction:row!important;
    align-items:flex-start!important;
  }

  .pass-upcoming-head h2{
    font-size:1.35rem!important;
  }

  .pass-upcoming-content{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }

  .pass-upcoming-content>div{
    min-height:66px!important;
  }

  .pass-upcoming-content>div:last-child{
    grid-column:1 / -1;
  }

  .pass-upcoming-card .btn{
    width:100%!important;
  }

  .pass-period-card{
    grid-template-columns:1fr!important;
    padding:6px 16px!important;
  }

  .pass-period-card>div{
    min-height:58px!important;
    padding:10px 0!important;
    border-right:0!important;
    border-bottom:1px solid #ddd9d2!important;
  }

  .pass-period-card>div:first-child{
    padding-left:0!important;
  }

  .pass-period-card>div:last-child{
    padding-right:0!important;
    border-bottom:0!important;
  }

  .pass-history-card{
    padding:17px!important;
    border-radius:19px!important;
  }

  .pass-history-row{
    grid-template-columns:1fr!important;
    gap:9px!important;
  }

  .pass-history-row>a{
    min-height:38px!important;
    width:100%;
    justify-content:center;
  }

  #passNotFound{
    padding:20px!important;
    border-radius:20px!important;
  }
}


/* =====================================================
   V52 — ADMIN OPS POLISH
===================================================== */

.admin-wrap{
  max-width:1320px!important;
  padding-bottom:54px;
}

/* LOGIN */
.admin-login-card{
  max-width:680px!important;
  margin:0 auto;
  padding:32px!important;
  border-radius:28px!important;
  border-color:rgba(35,39,43,.10)!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 30px 80px rgba(34,38,42,.08)!important;
}

.admin-login-card h1{
  font-family:"Inter Tight","Manrope",sans-serif!important;
  font-size:clamp(3.8rem,8vw,5.8rem)!important;
  font-weight:800!important;
  letter-spacing:-.06em!important;
  line-height:.92!important;
}

.admin-login-card>p:not(.eyebrow){
  max-width:520px;
  font-size:.68rem!important;
  line-height:1.7!important;
}

.admin-login-card .member-form{
  margin-top:22px;
  max-width:500px;
}

.admin-login-card input{
  min-height:52px!important;
  border-radius:13px!important;
}

.admin-login-card .btn{
  min-height:49px;
}

.admin-login-note{
  display:block;
  margin-top:12px;
  color:#7b8186;
  font-size:.52rem;
}

.admin-login-reassurance{
  margin-top:22px;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.admin-login-reassurance span{
  padding:7px 9px;
  border:1px solid #e0ddd7;
  border-radius:999px;
  background:#f4f1eb;
  color:#71787d;
  font-size:.48rem;
  font-weight:700;
}

/* HEADER */
.admin-head{
  align-items:flex-end!important;
  padding-bottom:20px;
  border-bottom:1px solid rgba(35,39,43,.09);
}

.admin-head h1{
  font-family:"Inter Tight","Manrope",sans-serif!important;
  font-size:clamp(3.6rem,7vw,5.5rem)!important;
  font-weight:800!important;
  letter-spacing:-.06em!important;
  line-height:.92!important;
}

.admin-head-sub{
  margin-top:10px;
  max-width:560px;
  color:#757c81;
  font-size:.62rem;
  line-height:1.55;
}

.admin-head-actions{
  gap:7px!important;
}

.admin-head-actions .btn{
  min-height:42px;
  padding-inline:14px;
}

/* TABS */
.admin-tabs{
  position:sticky;
  top:73px;
  z-index:95;
  margin-top:16px!important;
  padding:5px!important;
  overflow-x:auto;
  flex-wrap:nowrap!important;
  border:1px solid rgba(35,39,43,.09)!important;
  border-radius:15px!important;
  background:rgba(248,246,241,.94)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  scrollbar-width:none;
}

.admin-tabs::-webkit-scrollbar{
  display:none;
}

.admin-tab{
  min-height:38px;
  flex:0 0 auto;
  border-radius:10px!important;
  white-space:nowrap;
  font-size:.52rem!important;
}

.admin-tab.active{
  background:#24292d!important;
  color:#fff!important;
}

/* STATS */
.admin-stats{
  margin-top:18px!important;
  grid-template-columns:repeat(6,1fr)!important;
  gap:8px!important;
}

.admin-stats article{
  min-height:106px!important;
  padding:15px!important;
  border-radius:17px!important;
  border-color:rgba(35,39,43,.09)!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:0 14px 32px rgba(34,38,42,.035);
}

.admin-stats span{
  font-size:.46rem!important;
  line-height:1.35;
}

.admin-stats strong{
  margin-top:11px!important;
  font-family:"Inter Tight","Manrope",sans-serif!important;
  font-size:1.8rem!important;
  letter-spacing:-.04em;
}

.admin-attention-bar{
  margin-top:9px!important;
  min-height:52px;
  padding:10px 14px!important;
  border-radius:14px!important;
  border-color:#ead8cf!important;
  background:#fff3ed!important;
}

.admin-attention-bar strong{
  color:#c4562d;
}

/* COMMON BLOCKS */
.admin-block,
.customer-average-card{
  border-radius:20px!important;
  border-color:rgba(35,39,43,.09)!important;
  background:rgba(255,255,255,.84)!important;
  box-shadow:0 18px 45px rgba(34,38,42,.04)!important;
}

.admin-block{
  padding:20px!important;
}

.admin-block-head{
  margin-bottom:16px!important;
  gap:14px;
}

.admin-block-head h2{
  font-size:1.35rem!important;
  letter-spacing:-.03em;
}

.admin-inline-link{
  min-height:34px;
  padding:0 9px;
  border-radius:9px;
  background:#f4f1eb;
}

/* CUSTOMER AVG */
.customer-average-section{
  margin-top:22px!important;
}

.customer-average-grid{
  gap:10px!important;
}

.customer-average-card{
  padding:19px!important;
}

.customer-average-metrics{
  gap:7px!important;
}

.customer-average-metrics>div{
  min-height:72px!important;
  padding:10px!important;
  border-radius:12px!important;
  background:#f5f2ec!important;
}

.customer-profile-sentence{
  padding:12px!important;
  border-radius:12px;
  background:#f0ede7;
}

/* OVERVIEW */
.admin-overview-grid{
  gap:12px!important;
}

.admin-mini-booking{
  min-height:66px!important;
  padding:10px!important;
  border-radius:12px!important;
}

.admin-date-chip{
  width:50px!important;
  min-width:50px!important;
}

/* MANUAL FORM */
.admin-manual-form{
  gap:11px!important;
}

.admin-manual-form label{
  font-size:.57rem!important;
}

.admin-manual-form input,
.admin-manual-form select{
  min-height:46px!important;
  border-radius:11px!important;
}

.admin-manual-note{
  padding:10px 12px;
  border-radius:11px;
  background:#f3f0ea;
  color:#767d82;
  font-size:.51rem;
  line-height:1.5;
}

/* FILTERS */
.admin-filter-row{
  padding:5px;
  border:1px solid #e4e0d9;
  border-radius:12px;
  background:#f5f2ec;
}

.admin-filter-row input,
.admin-filter-row select,
#paymentListFilter{
  min-height:40px!important;
  border-radius:9px!important;
  background:#fff!important;
}

/* BOOKING ROWS */
.admin-booking-row,
.admin-client-row,
.admin-email-row,
.admin-payment-row{
  border-radius:13px!important;
  border-color:#e5e1da!important;
  background:#faf8f4!important;
}

.admin-booking-row{
  min-height:72px!important;
}

.admin-booking-row.is-cancelled{
  opacity:.64;
}

.admin-action-btn{
  min-height:34px;
  border-radius:9px!important;
}

/* PAYMENT STATS */
.payment-admin-stats{
  grid-template-columns:repeat(3,1fr)!important;
}

/* INVENTORY */
.inventory-admin-grid{
  gap:12px!important;
}

.inventory-row,
.availability-block-row{
  border-radius:13px!important;
  background:#faf8f4!important;
}

/* EMAIL */
.admin-email-log{
  border-radius:14px;
  overflow:hidden;
}

/* MODALS */
.admin-modal{
  padding:18px!important;
  background:rgba(25,28,31,.52)!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.admin-modal-card{
  max-width:540px!important;
  padding:24px!important;
  border-radius:22px!important;
  box-shadow:0 30px 90px rgba(20,22,24,.22)!important;
}

.admin-modal-card h2{
  font-size:1.55rem!important;
  letter-spacing:-.035em;
}

.admin-modal-card input,
.admin-modal-card select,
.admin-modal-card textarea{
  border-radius:11px!important;
}

.admin-rental-flow{
  margin:16px 0;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
  border-radius:12px;
  background:#f2efe9;
}

.admin-rental-flow span{
  color:#656c71;
  font-size:.47rem;
  font-weight:700;
}

.admin-rental-flow i{
  color:#bbb6ae;
  font-size:.58rem;
  font-style:normal;
}

.rental-state-actions{
  gap:7px!important;
}

.rental-state-actions .btn{
  min-height:42px;
}

/* =====================================================
   V52 — TABLET
===================================================== */
@media(max-width:1100px) and (min-width:760px){
  .admin-stats{
    grid-template-columns:repeat(3,1fr)!important;
  }

  .admin-overview-grid{
    grid-template-columns:1fr!important;
  }
}

/* =====================================================
   V52 — MOBILE ADMIN
===================================================== */
@media(max-width:759px){

  .admin-wrap{
    width:calc(100% - 20px)!important;
  }

  .admin-login-card{
    padding:19px!important;
    border-radius:20px!important;
  }

  .admin-login-card h1{
    font-size:3.5rem!important;
  }

  .admin-head{
    align-items:flex-start!important;
    gap:14px!important;
  }

  .admin-head h1{
    font-size:3.35rem!important;
  }

  .admin-head-sub{
    font-size:.58rem!important;
  }

  .admin-head-actions{
    width:100%;
    display:grid!important;
    grid-template-columns:1fr 1fr 1fr;
  }

  .admin-head-actions .btn{
    min-width:0!important;
    padding-inline:7px!important;
    font-size:.48rem!important;
  }

  .admin-tabs{
    top:64px!important;
    margin-left:-2px;
    margin-right:-2px;
  }

  .admin-stats,
  .payment-admin-stats{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }

  .admin-stats article{
    min-height:88px!important;
    padding:12px!important;
  }

  .admin-stats strong{
    font-size:1.55rem!important;
  }

  .admin-attention-bar{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:4px!important;
  }

  .customer-average-grid{
    grid-template-columns:1fr!important;
  }

  .customer-average-metrics{
    grid-template-columns:1fr 1fr!important;
  }

  .admin-overview-grid,
  .inventory-admin-grid{
    grid-template-columns:1fr!important;
  }

  .admin-block{
    padding:14px!important;
    border-radius:17px!important;
  }

  .admin-block-head{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:8px!important;
  }

  .admin-block-head h2{
    font-size:1.18rem!important;
  }

  .admin-filter-row{
    width:100%;
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .admin-filter-row input,
  .admin-filter-row select{
    width:100%!important;
  }

  .admin-booking-row,
  .admin-client-row,
  .admin-email-row,
  .admin-payment-row{
    padding:12px!important;
  }

  .admin-manual-form .form-grid-2{
    grid-template-columns:1fr!important;
  }

  .admin-modal{
    align-items:flex-end!important;
    padding:8px!important;
  }

  .admin-modal-card{
    width:100%!important;
    max-width:none!important;
    max-height:88dvh;
    overflow-y:auto;
    padding:18px!important;
    border-radius:20px 20px 12px 12px!important;
  }

  .admin-rental-flow{
    justify-content:flex-start;
  }

  .rental-state-actions{
    grid-template-columns:1fr!important;
  }

  .rental-state-actions .btn{
    width:100%;
  }
}


/* =====================================================
   V54 — ADRESSE / DÉPLACEMENT AUTOMATIQUE
===================================================== */

.address-help{
  display:block;
  margin-top:5px;
  color:#868c90;
  font-size:.49rem;
  font-weight:500;
  line-height:1.45;
}

.travel-quote-box{
  min-height:78px;
  padding:14px 15px;
  display:grid;
  gap:4px;
  border:1px solid #dfdcd5;
  border-radius:15px;
  background:#f4f1eb;
  transition:
    border-color .2s ease,
    background-color .2s ease;
}

.travel-quote-box>span{
  color:#9a796a;
  font-size:.45rem;
  font-weight:800;
  letter-spacing:.12em;
}

.travel-quote-box>strong{
  font-size:.69rem;
}

.travel-quote-box>small{
  color:#777e83;
  font-size:.52rem;
  line-height:1.45;
}

.travel-quote-box[data-state="loading"]{
  border-color:#ead6cc;
  background:#fff7f2;
}

.travel-quote-box[data-state="ready"]{
  border-color:#d5dfd7;
  background:#f2f7f3;
}

.travel-quote-box[data-state="error"]{
  border-color:#ecd5cf;
  background:#fff3ef;
}

.booking-detail-actions{
  flex-wrap:wrap!important;
}

@media(max-width:759px){
  .travel-quote-box{
    min-height:70px!important;
    padding:12px!important;
  }

  .travel-quote-box>strong{
    font-size:.65rem!important;
  }

  .admin-booking-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }

  .admin-booking-actions .admin-action-btn{
    width:100%!important;
  }
}


/* =====================================================
   V55 — RENTABILITÉ DES PASS
===================================================== */

.pass-profitability-section{
  margin-top:22px;
  padding:22px;
  border:1px solid rgba(35,39,43,.10);
  border-radius:22px;
  background:#24292d;
  color:#fff;
  box-shadow:0 24px 60px rgba(34,38,42,.13);
}

.pass-profitability-section .admin-block-head{
  margin-bottom:15px!important;
}

.pass-profitability-section .admin-block-head span{
  color:#ff8a5c;
}

.pass-profitability-section .admin-block-head h2{
  color:#fff;
}

.pass-health-badge{
  width:max-content;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  font-size:.46rem;
  font-weight:800;
  letter-spacing:.08em;
}

.pass-health-badge.is-learning{
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.72);
}

.pass-health-badge.is-good{
  background:rgba(86,188,116,.16);
  border-color:rgba(107,210,137,.22);
  color:#9ce3ae;
}

.pass-health-badge.is-watch{
  background:rgba(241,171,71,.15);
  border-color:rgba(241,171,71,.22);
  color:#f7ca85;
}

.pass-health-badge.is-alert{
  background:rgba(220,95,77,.16);
  border-color:rgba(220,95,77,.24);
  color:#f2aa9f;
}

.pass-profitability-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}

.pass-profitability-grid>article{
  min-height:112px;
  padding:15px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:7px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:16px;
  background:rgba(255,255,255,.055);
}

.pass-profitability-grid>article>span{
  color:rgba(255,255,255,.48);
  font-size:.45rem;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.35;
}

.pass-profitability-grid>article>strong{
  font-family:"Inter Tight","Manrope",sans-serif;
  color:#fff;
  font-size:1.65rem;
  font-weight:800;
  letter-spacing:-.045em;
  line-height:1;
}

.pass-profitability-grid>article>small{
  color:rgba(255,255,255,.48);
  font-size:.48rem;
  line-height:1.4;
}

.pass-profitability-grid .pass-profitability-wide{
  grid-column:span 1;
  background:rgba(255,126,75,.10);
  border-color:rgba(255,126,75,.17);
}

.pass-profitability-grid .pass-profitability-wide>strong{
  font-family:"Manrope",sans-serif;
  font-size:.67rem;
  line-height:1.45;
  letter-spacing:0;
}

.pass-profitability-scale{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.pass-profitability-scale span{
  padding:6px 8px;
  border-radius:999px;
  font-size:.43rem;
  font-weight:700;
}

.pass-profitability-scale .is-good{
  background:rgba(86,188,116,.12);
  color:#9ce3ae;
}

.pass-profitability-scale .is-watch{
  background:rgba(241,171,71,.12);
  color:#f7ca85;
}

.pass-profitability-scale .is-alert{
  background:rgba(220,95,77,.12);
  color:#f2aa9f;
}

@media(max-width:1100px) and (min-width:760px){
  .pass-profitability-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:759px){
  .pass-profitability-section{
    padding:15px!important;
    border-radius:18px!important;
  }

  .pass-profitability-section .admin-block-head{
    align-items:flex-start!important;
    flex-direction:column!important;
  }

  .pass-profitability-grid{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }

  .pass-profitability-grid>article{
    min-height:100px!important;
    padding:12px!important;
    border-radius:13px!important;
  }

  .pass-profitability-grid>article>strong{
    font-size:1.4rem!important;
  }

  .pass-profitability-grid .pass-profitability-wide{
    grid-column:1 / -1!important;
  }

  .pass-profitability-grid .pass-profitability-wide>strong{
    font-size:.61rem!important;
  }

  .pass-profitability-scale{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .pass-profitability-scale span{
    width:max-content;
    max-width:100%;
  }
}


/* =====================================================
   V56 — PAGES LÉGALES / CGV
===================================================== */
.legal-body{
  margin:0;
  background:#f3f0ea;
  color:#24292d;
}
.legal-site-header{
  width:min(1180px,calc(100% - 32px));
  margin:16px auto 0;
  padding:10px 12px 10px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid rgba(35,39,43,.09);
  border-radius:16px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.legal-brand{
  color:#24292d;
  text-decoration:none;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.08em;
}
.legal-site-header nav{
  display:flex;
  align-items:center;
  gap:5px;
}
.legal-site-header nav a{
  padding:8px 9px;
  border-radius:9px;
  color:#62696e;
  text-decoration:none;
  font-size:.5rem;
  font-weight:700;
}
.legal-site-header nav .legal-booking-link{
  background:#24292d;
  color:#fff;
}
.legal-main{
  width:min(960px,calc(100% - 32px));
  margin:0 auto;
  padding:58px 0 70px;
}
.legal-hero{
  padding:26px 0 34px;
}
.legal-hero h1{
  margin:8px 0 14px;
  font-family:"Inter Tight","Manrope",sans-serif;
  font-size:clamp(3.8rem,8vw,6.5rem);
  line-height:.88;
  letter-spacing:-.065em;
}
.legal-hero h1 span{color:var(--orange,#ff6f32)}
.legal-hero>p:not(.eyebrow){
  max-width:620px;
  color:#747b80;
  font-size:.67rem;
  line-height:1.65;
}
.legal-hero-small{padding-bottom:24px}
.legal-print{margin-top:14px}
.legal-alert{
  margin:0 0 16px;
  padding:14px 16px;
  border:1px solid #e9c3ae;
  border-radius:15px;
  background:#fff0e8;
  color:#7b4935;
  font-size:.57rem;
  line-height:1.55;
}
.legal-alert strong{display:block;margin-bottom:4px;color:#b9512d}
.legal-alert code{font-size:.5rem}
.legal-card{
  margin-top:12px;
  padding:28px;
  border:1px solid rgba(35,39,43,.10);
  border-radius:24px;
  background:rgba(255,255,255,.86);
  box-shadow:0 20px 55px rgba(34,38,42,.045);
}
.legal-toc{background:#24292d;color:#fff}
.legal-toc>strong{
  display:block;
  margin-bottom:13px;
  color:#ff8a5c;
  font-size:.51rem;
  letter-spacing:.11em;
}
.legal-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.legal-summary-grid span{
  min-height:82px;
  padding:13px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid rgba(255,255,255,.10);
  border-radius:13px;
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.57);
  font-size:.49rem;
  line-height:1.4;
}
.legal-summary-grid b{color:#fff;font-size:.72rem}
.legal-copy h2{
  margin:36px 0 10px;
  font-size:1.2rem;
  letter-spacing:-.035em;
}
.legal-copy h2:first-child{margin-top:0}
.legal-copy p,.legal-copy li{
  color:#5e666b;
  font-size:.62rem;
  line-height:1.72;
}
.legal-copy strong{color:#24292d}
.legal-copy a{color:#c8582d;font-weight:700}
.legal-table-wrap{overflow-x:auto;margin:14px 0 20px}
.legal-table{
  width:100%;
  min-width:700px;
  border-collapse:collapse;
  font-size:.56rem;
}
.legal-table th,.legal-table td{
  padding:11px 12px;
  text-align:left;
  border-bottom:1px solid #e3dfd8;
}
.legal-table th{background:#f3f0ea;color:#555d62}
.legal-table td{color:#656d72}
.legal-footer{
  width:min(960px,calc(100% - 32px));
  margin:0 auto 24px;
  padding:15px 17px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border-radius:15px;
  background:#24292d;
  color:rgba(255,255,255,.55);
  font-size:.48rem;
}
.legal-footer div{display:flex;gap:12px}
.legal-footer a{color:rgba(255,255,255,.72);text-decoration:none}
.legal-mini-footer{
  width:min(1180px,calc(100% - 28px));
  margin:30px auto 18px;
  padding:13px 15px;
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  border-top:1px solid rgba(35,39,43,.10);
}
.legal-mini-footer a,.footer-legal-links a{
  color:#777e83;
  font-size:.48rem;
  text-decoration:none;
}
.footer-legal-links{
  width:100%;
  padding-top:14px;
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:13px;
  border-top:1px solid rgba(255,255,255,.10);
}
.withdrawal-lines{
  margin:18px 0;
  display:grid;
  gap:18px;
  padding:20px;
  border:1px dashed #cbc6be;
  border-radius:14px;
  color:#50585d;
  font-size:.62rem;
}
.legal-muted{color:#8a9094!important;font-size:.54rem!important}
.rental-acceptance a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:759px){
  .legal-site-header{align-items:flex-start;flex-direction:column}
  .legal-site-header nav{width:100%;overflow-x:auto;white-space:nowrap}
  .legal-main{width:calc(100% - 24px);padding-top:34px}
  .legal-hero h1{font-size:3.8rem}
  .legal-card{padding:18px;border-radius:19px}
  .legal-summary-grid{grid-template-columns:1fr 1fr}
  .legal-footer{width:calc(100% - 24px);align-items:flex-start;flex-direction:column}
  .legal-footer div{flex-wrap:wrap}
}
@media print{
  .legal-site-header,.legal-footer,.legal-print,.legal-alert{display:none!important}
  .legal-body{background:#fff}
  .legal-main{width:100%;padding:0}
  .legal-card{box-shadow:none;border:0;padding:0}
  .legal-toc{display:none}
}


/* =====================================================
   V58 — CONTRÔLE IDENTITÉ / SOUS-LOCATION
===================================================== */

.rental-identity-card{
  margin:15px 0;
  padding:14px;
  border:1px solid #dfdcd5;
  border-radius:14px;
  background:#f5f2ec;
}

.rental-identity-head{
  margin-bottom:12px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.rental-identity-head>div{
  display:grid;
  gap:3px;
}

.rental-identity-head>div>span{
  color:#9a796a;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.1em;
}

.rental-identity-head>div>strong{
  font-size:.68rem;
}

.identity-badge{
  padding:6px 8px;
  border-radius:999px;
  font-size:.43rem;
  font-weight:800;
  letter-spacing:.07em;
}

.identity-badge.pending{
  background:#fff0e8;
  color:#b55f39;
}

.identity-badge.approved{
  background:#e5f3e8;
  color:#347c48;
}

.rental-identity-card label{
  display:grid;
  gap:5px;
  font-size:.54rem;
}

.rental-identity-card input{
  min-height:42px;
  border:1px solid #dedad2;
  border-radius:10px;
  background:#fff;
}

.rental-identity-actions{
  margin-top:10px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}

.rental-identity-actions .btn{
  min-height:40px;
}

.rental-identity-card>small{
  display:block;
  margin-top:9px;
  color:#7a8085;
  font-size:.47rem;
  line-height:1.45;
}

#sublettingNotesWrap{
  margin-top:12px;
  padding:12px;
  border:1px solid #efd0ca;
  border-radius:12px;
  background:#fff1ee;
}

.booking-detail-note.is-danger{
  border-color:#efd0ca!important;
  background:#fff1ee!important;
}

.booking-detail-note.is-danger span{
  color:#a94e40!important;
}

@media(max-width:759px){
  .rental-identity-head{
    align-items:flex-start!important;
  }

  .rental-identity-actions{
    grid-template-columns:1fr!important;
  }
}


/* =====================================================
   V59 — CONTRAT DE LOCATION
===================================================== */

#bookingDetailModal .booking-detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

#bookingDetailModal .booking-detail-actions .btn{
  flex:1 1 150px;
}

@media(max-width:759px){
  #bookingDetailModal .booking-detail-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  #bookingDetailModal .booking-detail-actions .btn{
    width:100%!important;
  }
}


/* =====================================================
   V61 — MODE TERRAIN
===================================================== */

.field-mode-section{
  margin-top:22px;
  padding:20px;
  border:1px solid rgba(35,39,43,.10);
  border-radius:20px;
  background:rgba(255,255,255,.86);
  box-shadow:0 18px 45px rgba(34,38,42,.04);
}

.field-mode-hint{
  color:#7a8085;
  font-size:.49rem;
}

.field-mode-card{
  padding:18px;
  border-radius:17px;
  background:#24292d;
  color:#fff;
}

.field-mode-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}

.field-mode-top>div{
  display:grid;
  gap:4px;
}

.field-mode-top span,
.field-mode-address span{
  color:#ff8a5c;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.1em;
}

.field-mode-top strong{
  font-family:"Inter Tight","Manrope",sans-serif;
  font-size:1.7rem;
  letter-spacing:-.04em;
}

.field-mode-top>b{
  font-size:1.15rem;
}

.field-mode-customer{
  margin-top:15px;
  display:grid;
  gap:3px;
}

.field-mode-customer>strong{
  font-size:.78rem;
}

.field-mode-customer>small{
  color:rgba(255,255,255,.5);
  font-size:.51rem;
}

.field-mode-address{
  margin-top:14px;
  padding:12px;
  display:grid;
  gap:4px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(255,255,255,.055);
}

.field-mode-address strong{
  font-size:.64rem;
  line-height:1.45;
}

.field-mode-address small{
  color:rgba(255,255,255,.50);
  font-size:.49rem;
}

.field-mode-statuses{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.field-mode-statuses span{
  padding:6px 8px;
  border-radius:999px;
  font-size:.43rem;
  font-weight:700;
}

.field-mode-statuses .is-good{
  background:rgba(86,188,116,.14);
  color:#a4e6b4;
}

.field-mode-statuses .is-watch{
  background:rgba(241,171,71,.14);
  color:#f7ca85;
}

.field-mode-actions{
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.field-mode-actions .btn{
  min-height:39px;
  flex:1 1 120px;
}

@media(max-width:759px){
  .field-mode-section{
    padding:14px!important;
    border-radius:17px!important;
  }

  .field-mode-section .admin-block-head{
    align-items:flex-start!important;
    flex-direction:column!important;
  }

  .field-mode-card{
    padding:15px!important;
    border-radius:15px!important;
  }

  .field-mode-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }

  .field-mode-actions .btn{
    width:100%!important;
    min-width:0!important;
  }

  .field-mode-actions .btn:last-child{
    grid-column:1 / -1;
  }
}


/* =====================================================
   V63 — HORAIRES
===================================================== */

.booking-time-card{
  margin:14px 0;
  padding:15px;
  border:1px solid #ddd9d1;
  border-radius:14px;
  background:#f7f5f1;
}

.booking-time-card>span{
  display:block;
  margin-bottom:10px;
  color:#a05b3f;
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.1em;
}

.booking-time-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:10px;
}

.booking-time-grid label{
  display:grid;
  gap:6px;
}

.booking-time-grid input,
.booking-time-grid select{
  width:100%;
  min-height:45px;
  border:1px solid #d8d5ce;
  border-radius:10px;
  background:#fff;
}

.booking-time-card>small{
  display:block;
  margin-top:9px;
  color:#747a80;
  font-size:.49rem;
  line-height:1.5;
}

.field-mode-schedule{
  margin-top:8px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}

.field-mode-schedule>div{
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:11px;
  background:rgba(255,255,255,.055);
}

.field-mode-schedule span{
  display:block;
  margin-bottom:3px;
  color:#ff8a5c;
  font-size:.42rem;
  font-weight:800;
  letter-spacing:.09em;
}

.field-mode-schedule strong{
  font-size:.60rem;
}

@media(max-width:759px){
  .booking-time-grid{
    grid-template-columns:1fr!important;
  }

  .field-mode-schedule{
    grid-template-columns:1fr!important;
  }
}


/* =====================================================
   V64 — AJOUT MANUEL ADMIN
===================================================== */

.admin-manual-schedule{
  margin:12px 0;
  padding:13px;
  border:1px solid #dedad2;
  border-radius:13px;
  background:#f7f5f1;
}

.admin-manual-schedule>span{
  display:block;
  margin-bottom:9px;
  color:#a05b3f;
  font-size:.45rem;
  font-weight:800;
  letter-spacing:.09em;
}

.admin-manual-schedule>small{
  display:block;
  margin-top:8px;
  color:#777d82;
  font-size:.47rem;
  line-height:1.45;
}

.admin-checkbox-row{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  cursor:pointer;
}

.admin-checkbox-row input{
  width:18px!important;
  height:18px;
  margin:1px 0 0;
  flex:0 0 auto;
}


/* =====================================================
   V65 — ÉTAT DU MATÉRIEL
===================================================== */

.condition-photo-card{
  margin:15px 0;
  padding:14px;
  border:1px solid #dfdcd5;
  border-radius:14px;
  background:#faf8f4;
}

.condition-photo-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:12px;
}

.condition-photo-head>div{
  display:grid;
  gap:3px;
}

.condition-photo-head>div>span{
  color:#9a796a;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.1em;
}

.condition-photo-head>div>strong{
  font-size:.68rem;
}

.condition-photo-head>small{
  color:#7c8287;
  font-size:.45rem;
  text-align:right;
}

.condition-photo-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.condition-photo-panel{
  padding:11px;
  border:1px solid #e1ded7;
  border-radius:12px;
  background:#fff;
}

.condition-photo-panel>span{
  display:block;
  margin-bottom:8px;
  color:#9a796a;
  font-size:.44rem;
  font-weight:800;
  letter-spacing:.09em;
}

.condition-photo-upload{
  display:grid;
  gap:6px;
  margin-bottom:8px;
  font-size:.52rem;
  font-weight:700;
}

.condition-photo-upload input{
  width:100%;
  min-height:42px;
  padding:7px;
  border:1px dashed #d6d1c8;
  border-radius:10px;
  background:#f8f6f1;
}

.condition-photo-panel textarea{
  width:100%;
  margin-bottom:8px;
}

.condition-gallery{
  margin-top:9px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}

.condition-thumb{
  position:relative;
  display:block;
  aspect-ratio:1;
  overflow:hidden;
  border-radius:9px;
  background:#eee;
}

.condition-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.condition-thumb span{
  position:absolute;
  left:5px;
  bottom:5px;
  padding:3px 5px;
  border-radius:999px;
  background:rgba(25,28,31,.82);
  color:#fff;
  font-size:.38rem;
  font-weight:700;
}

.condition-empty{
  grid-column:1/-1;
  color:#858b90;
  font-size:.45rem;
}

.condition-photo-help{
  margin:10px 0 0;
  color:#777d82;
  font-size:.46rem;
  line-height:1.45;
}

@media(max-width:759px){
  .condition-photo-head{
    flex-direction:column!important;
  }

  .condition-photo-head>small{
    text-align:left!important;
  }

  .condition-photo-grid{
    grid-template-columns:1fr!important;
  }
}


/* =====================================================
   V66 — DISPONIBILITÉ EXPLIQUÉE + CONTACT
===================================================== */

.day.booked-day{
  cursor:pointer!important;
}

.day.booked-day small{
  display:block;
  margin-top:3px;
  font-size:.38rem;
  font-weight:700;
  line-height:1;
  opacity:.62;
}

.availability-reason-box{
  margin:11px 0 13px;
  padding:13px 14px;
  border:1px solid #ead7cf;
  border-radius:13px;
  background:#fff6f1;
}

.availability-reason-box>span{
  display:block;
  margin-bottom:4px;
  color:#d55e30;
  font-size:.43rem;
  font-weight:800;
  letter-spacing:.1em;
}

.availability-reason-box>strong{
  display:block;
  font-size:.62rem;
  line-height:1.4;
}

.availability-reason-box>p{
  margin:5px 0 8px;
  color:#70767b;
  font-size:.51rem;
  line-height:1.5;
}

.availability-whatsapp{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 10px;
  border-radius:999px;
  background:#252a2e;
  color:#fff;
  font-size:.47rem;
  font-weight:700;
  text-decoration:none;
}

.contact-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}

.contact-actions .btn{
  min-width:120px;
}

.contact-phone{
  color:#252a2e;
  font-size:.58rem;
  font-weight:750;
  text-decoration:none;
}

.footer-contact-block{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
}

.footer-contact-block a{
  width:max-content;
}

.booking-help-card{
  max-width:1080px;
  margin:28px auto 0;
  padding:22px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  border:1px solid #ddd9d1;
  border-radius:18px;
  background:#f8f6f1;
}

.booking-help-card>div:first-child{
  max-width:620px;
}

.booking-help-card>div:first-child>span{
  color:#d75d2d;
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.1em;
}

.booking-help-card h2{
  margin:5px 0 6px;
  font-size:1.35rem;
}

.booking-help-card p{
  margin:0;
  color:#747a80;
  font-size:.58rem;
  line-height:1.55;
}

.booking-help-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
}

.booking-help-phone{
  width:100%;
  color:#252a2e;
  font-size:.57rem;
  font-weight:750;
  text-align:right;
  text-decoration:none;
}

.travel-contact-actions{
  display:flex;
  gap:7px;
  margin-top:9px;
}

.travel-contact-actions a{
  display:inline-flex;
  align-items:center;
  min-height:31px;
  padding:0 10px;
  border:1px solid #d7d3cb;
  border-radius:999px;
  background:#fff;
  color:#252a2e;
  font-size:.46rem;
  font-weight:750;
  text-decoration:none;
}

.legal-mini-footer{
  gap:16px;
  flex-wrap:wrap;
}

.legal-mini-links,
.legal-mini-contact{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px;
}

.legal-mini-contact{
  padding-left:12px;
  border-left:1px solid rgba(80,80,80,.16);
}

@media(max-width:759px){
  .booking-help-card{
    margin:22px 14px 0!important;
    padding:17px!important;
    flex-direction:column!important;
    align-items:stretch!important;
  }

  .booking-help-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }

  .booking-help-actions .btn{
    width:100%!important;
  }

  .booking-help-phone{
    grid-column:1 / -1;
    text-align:center!important;
  }

  .contact-actions{
    width:100%;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }

  .contact-actions .btn{
    width:100%!important;
  }

  .contact-phone{
    grid-column:1 / -1;
    text-align:center;
  }

  .legal-mini-contact{
    padding-left:0!important;
    border-left:0!important;
  }
}


/* =====================================================
   V67 — ADRESSE STRUCTURÉE / CONTACT / ADMIN MOBILE
===================================================== */
.structured-address-card,
.admin-address-card{
  margin:13px 0;
  padding:14px;
  border:1px solid #dedad2;
  border-radius:14px;
  background:#f8f6f1;
}
.structured-address-card>span,
.admin-address-card>span{
  display:block;
  margin-bottom:9px;
  color:#9a796a;
  font-size:.45rem;
  font-weight:800;
  letter-spacing:.1em;
}
.structured-address-grid{
  display:grid;
  grid-template-columns:minmax(130px,.7fr) 1.3fr;
  gap:10px;
  margin-top:9px;
}
.structured-address-card label,
.admin-address-card label{display:grid;gap:6px}
.phone-contact-note{
  display:block;
  margin-top:5px;
  color:#7c8287;
  font-size:.47rem;
  font-weight:500;
  line-height:1.4;
}
.flow-nav-actions{display:flex;align-items:center;gap:12px}
.flow-help-link{
  color:#252a2e;
  font-size:.53rem;
  font-weight:750;
  text-decoration:none;
}
.contact-section,.booking-help-card{scroll-margin-top:100px}

/* ADMIN MOBILE RENFORCÉ */
@media(max-width:759px){
  body.admin-body{overflow-x:hidden!important}
  .admin-wrap{width:calc(100% - 16px)!important;max-width:none!important}
  .admin-head-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  .admin-head-actions .btn,
  .admin-head-actions button{
    min-height:42px!important;
    font-size:.52rem!important;
  }
  .admin-tabs{
    width:100%!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
  }
  .admin-tab{flex:0 0 auto!important;min-height:40px!important;padding-inline:13px!important}
  .admin-booking-row,
  .admin-client-row,
  .admin-email-row,
  .admin-payment-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    min-width:0!important;
  }
  .admin-booking-row>*,
  .admin-client-row>*,
  .admin-email-row>*,
  .admin-payment-row>*{min-width:0!important}
  .admin-booking-price{justify-content:flex-start!important;flex-wrap:wrap!important}
  .admin-booking-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  .admin-booking-actions .admin-action-btn{
    min-height:42px!important;
    width:100%!important;
    padding-inline:6px!important;
    white-space:normal!important;
    line-height:1.2!important;
  }
  .admin-filter-row{
    position:static!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .admin-filter-row select,
  .admin-filter-row input,
  #paymentListFilter{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
  }
  .admin-manual-form .form-grid-2,
  .admin-address-card .form-grid-2,
  .structured-address-grid{grid-template-columns:1fr!important}
  .admin-manual-form input,
  .admin-manual-form select,
  .admin-manual-form textarea{
    min-height:44px!important;
    font-size:16px!important;
  }
  .admin-modal{padding:0!important;align-items:flex-end!important}
  .admin-modal-card{
    width:100%!important;
    max-width:none!important;
    max-height:92dvh!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
    margin:0!important;
    padding:18px 14px calc(18px + env(safe-area-inset-bottom))!important;
    border-radius:22px 22px 0 0!important;
  }
  .admin-rental-flow{
    overflow-x:auto!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    padding-bottom:11px!important;
  }
  .admin-rental-flow span,.admin-rental-flow i{flex:0 0 auto!important}
  .rental-state-actions,.rental-identity-actions{grid-template-columns:1fr!important}
  .condition-photo-grid,.booking-detail-grid{grid-template-columns:1fr!important}
  .structured-address-card,.admin-address-card{padding:12px!important}
}
@media(max-width:430px){
  .admin-booking-actions,.field-mode-actions{grid-template-columns:1fr!important}
  .admin-stats,.payment-admin-stats{grid-template-columns:1fr!important}
  .flow-nav-actions{
    flex-direction:column-reverse!important;
    align-items:flex-end!important;
    gap:3px!important;
  }
}


/* =====================================================
   V68 — LOGO PNG
===================================================== */

.brand-logo-link{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  transform:none!important;
}

.brand-logo-img{
  display:block;
  width:152px;
  height:auto;
  max-height:58px;
  object-fit:contain;
}

.footer .brand-logo-link{
  opacity:1;
}

.footer .brand-logo-img{
  width:176px;
  max-height:68px;
}

@media(max-width:759px){
  .brand-logo-img{
    width:124px;
    max-height:48px;
  }

  .footer .brand-logo-img{
    width:150px;
    max-height:58px;
  }
}


/* =====================================================
   V68 — PASS ADMIN
===================================================== */

.admin-pass-grid{
  display:grid;
  grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);
  gap:14px;
}

.admin-pass-form{
  display:grid;
  gap:12px;
}

.admin-pass-note{
  margin:0;
  padding:10px 11px;
  border-radius:11px;
  background:#f7f4ee;
  color:#747a80;
  font-size:.49rem;
  line-height:1.5;
}

.admin-pass-list{
  display:grid;
  gap:9px;
}

.admin-pass-row{
  padding:13px;
  border:1px solid #e0ddd6;
  border-radius:14px;
  background:#fbfaf7;
}

.admin-pass-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.admin-pass-main>div{
  min-width:0;
  display:grid;
  gap:2px;
}

.admin-pass-main strong{
  font-size:.62rem;
}

.admin-pass-main small{
  color:#7b8186;
  font-size:.45rem;
  overflow-wrap:anywhere;
}

.admin-pass-status{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:0 8px;
  border-radius:999px;
  font-size:.39rem;
  font-weight:850;
  letter-spacing:.05em;
}

.admin-pass-status.is-active{
  background:#edf7ee;
  color:#2f7440;
}

.admin-pass-status.is-paused{
  background:#fff5df;
  color:#9a6a19;
}

.admin-pass-status.is-cancelled,
.admin-pass-status.is-expired{
  background:#fff0ed;
  color:#a64e3e;
}

.admin-pass-meta{
  margin-top:10px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.admin-pass-meta>div{
  padding:9px 10px;
  border:1px solid #e7e3dc;
  border-radius:10px;
  background:#fff;
  display:grid;
  gap:2px;
}

.admin-pass-meta span{
  color:#9a796a;
  font-size:.38rem;
  font-weight:850;
  letter-spacing:.08em;
}

.admin-pass-meta strong{
  font-size:.52rem;
}

.admin-pass-meta small{
  color:#7c8287;
  font-size:.42rem;
}

.admin-pass-row-note{
  margin:9px 0 0;
  color:#70767b;
  font-size:.46rem;
  line-height:1.45;
}

.admin-pass-actions{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.admin-pass-actions .danger{
  color:#a64e3e;
  border-color:#edd0ca;
  background:#fff8f6;
}

.admin-empty-state{
  padding:18px;
  border:1px dashed #d9d5ce;
  border-radius:12px;
  color:#7b8186;
  font-size:.52rem;
  text-align:center;
}

@media(max-width:980px){
  .admin-pass-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:759px){
  .admin-pass-meta{
    grid-template-columns:1fr!important;
  }

  .admin-pass-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .admin-pass-actions button{
    width:100%!important;
    min-height:42px!important;
  }
}

/* =====================================================
   V70 — STRIPE + FIABILITÉ MOBILE RÉSERVATION
===================================================== */
.payment-option-stripe{
  position:relative;
  border-color:rgba(99,91,255,.24)!important;
  background:linear-gradient(180deg,#fff 0%,#faf9ff 100%)!important;
}

.payment-badge{
  margin-left:auto;
  padding:5px 7px;
  border-radius:999px;
  background:#635bff;
  color:#fff;
  font-size:.48rem;
  letter-spacing:.08em;
  line-height:1;
}

.stripe-subscription-note{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:13px 14px;
  border:1px solid rgba(99,91,255,.18);
  border-radius:15px;
  background:#faf9ff;
}

.stripe-subscription-note .stripe-lock{
  display:grid;
  place-items:center;
  flex:0 0 24px;
  width:24px;
  height:24px;
  border-radius:999px;
  background:#635bff;
  color:#fff;
  font-size:.7rem;
  font-weight:800;
}

.stripe-subscription-note strong,
.stripe-subscription-note small{
  display:block;
}

.stripe-subscription-note strong{
  color:#282b30;
  font-size:.65rem;
}

.stripe-subscription-note small{
  margin-top:4px;
  color:#737980;
  font-size:.54rem;
  line-height:1.5;
}

.flow-form :is(input,select,button),
.member-form :is(input,select,button),
.btn-full,
.payment-option,
.option-card{
  touch-action:manipulation;
}

.mobile-invalid-field{
  outline:2px solid rgba(255,95,32,.45)!important;
  outline-offset:2px;
}

@media(max-width:759px){
  .flow-form input,
  .flow-form select,
  .member-form input,
  .member-form select{
    /* 16px évite le zoom automatique d'iOS sur les champs. */
    font-size:16px!important;
  }

  .payment-option{
    gap:10px!important;
  }

  .payment-badge{
    flex:0 0 auto;
  }

  .stripe-subscription-note{
    padding:12px!important;
  }

  .btn-full{
    position:relative;
    z-index:2;
    -webkit-tap-highlight-color:transparent;
  }
}


/* V79 — état réseau + confort mobile */
.network-status-banner{
  position:fixed;
  left:max(12px,env(safe-area-inset-left));
  right:max(12px,env(safe-area-inset-right));
  bottom:max(12px,env(safe-area-inset-bottom));
  z-index:99999;
  padding:12px 14px;
  border-radius:14px;
  background:#1d1d1f;
  color:#fff;
  font-size:14px;
  line-height:1.35;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.network-status-banner[hidden]{display:none!important;}
@media (max-width:720px){
  .flow-form input,.flow-form select,.flow-form textarea{font-size:16px;}
  .flow-form button[type=submit]{min-height:48px;}
}


/* V84 — disponibilité création manuelle admin */
.manual-date-availability{
  margin-top:.55rem;
  padding:.65rem .75rem;
  border-radius:12px;
  font-size:.78rem;
  line-height:1.35;
  border:1px solid rgba(36,41,45,.12);
  background:#f6f4ef;
  color:#596066;
}
.manual-date-availability.is-loading{background:#f5f3ee;color:#67645f;}
.manual-date-availability.is-available{background:#edf8ef;border-color:#b9dfc1;color:#1f6a32;font-weight:700;}
.manual-date-availability.is-unavailable{background:#fff0ed;border-color:#f0b8ae;color:#a33a2b;font-weight:700;}
.manual-date-availability.is-error{background:#fff7e7;border-color:#ead39c;color:#7d5a16;font-weight:700;}
#manualBookingSubmit:disabled{opacity:.55;cursor:not-allowed;}

/* V94 — CTA Pass booking */
.booking-pass-hero-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 30px;padding:20px 24px;border-radius:22px;background:linear-gradient(135deg,#ff5b24,#ff7a4d);color:#fff;text-decoration:none;box-shadow:0 14px 34px rgba(255,91,36,.22);transition:.18s ease}.booking-pass-hero-cta:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(255,91,36,.3)}.booking-pass-hero-cta span{display:grid;gap:3px}.booking-pass-hero-cta b{font-size:11px;letter-spacing:.14em}.booking-pass-hero-cta strong{font-size:21px}.booking-pass-hero-cta small{font-size:13px;opacity:.9}.booking-pass-hero-cta em{font-style:normal;font-weight:900;white-space:nowrap;background:#242a2e;padding:12px 15px;border-radius:13px}@media(max-width:640px){.booking-pass-hero-cta{align-items:flex-start;flex-direction:column}.booking-pass-hero-cta em{width:100%;box-sizing:border-box;text-align:center}}


/* V97 — calendrier disponibilités admin */
.admin-availability-calendar{margin:0 0 18px;padding:16px;border:1px solid #e1ddd5;border-radius:18px;background:#faf9f6}
.admin-availability-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.admin-availability-calendar-head span{display:block;font-size:10px;font-weight:800;letter-spacing:.12em;color:#ff5f20;margin-bottom:4px}
.admin-availability-calendar-head strong{text-transform:capitalize;font-size:18px}
.admin-availability-calendar-actions{display:flex;gap:6px;flex-wrap:wrap}
.admin-calendar-nav{border:1px solid #d8d4cc;background:#fff;border-radius:10px;padding:8px 10px;font-weight:700;cursor:pointer}
.admin-availability-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#666;margin-bottom:10px}
.admin-availability-legend span{display:flex;align-items:center;gap:6px}
.admin-availability-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.admin-availability-legend .is-free{background:#42a65a}.admin-availability-legend .is-partial{background:#e9a12f}.admin-availability-legend .is-full{background:#d85b4a}
.admin-calendar-weekdays,.admin-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.admin-calendar-weekdays{font-size:10px;font-weight:800;color:#888;text-align:center;margin-bottom:6px}
.admin-calendar-day{min-height:66px;border:1px solid transparent;border-radius:12px;padding:8px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;background:#fff}
.admin-calendar-day:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.08)}
.admin-calendar-day-number{font-size:15px;font-weight:900}
.admin-calendar-day small{font-size:9px;line-height:1.2;color:inherit;opacity:.8}
.admin-calendar-day.is-free{background:#edf8ef;border-color:#b9dfc1;color:#1f6a32}
.admin-calendar-day.is-partial{background:#fff7e7;border-color:#ead39c;color:#7d5a16}
.admin-calendar-day.is-full{background:#fff0ed;border-color:#f0b8ae;color:#a33a2b}
.admin-calendar-day.is-outside{opacity:.42}.admin-calendar-day.is-past{background:#f1f1ef;border-color:#e2e1dd;color:#aaa;cursor:not-allowed}
.admin-calendar-loading{grid-column:1/-1;padding:20px;text-align:center;color:#777}.admin-calendar-loading.is-error{color:#a33a2b}
.admin-calendar-note{font-size:11px;color:#777;margin-top:10px}
@media(max-width:700px){.admin-availability-calendar-head{align-items:flex-start;flex-direction:column}.admin-calendar-day{min-height:56px;padding:6px}.admin-calendar-day small{display:none}.admin-calendar-weekdays,.admin-calendar-grid{gap:4px}}


/* =====================================================
   V100 — PHOTO RÉELLE / MOBILE SANS POPUP / CHAMPS OPTIONNELS
===================================================== */
.hero-photo{
  background:
    linear-gradient(180deg,rgba(18,20,22,.04),rgba(18,20,22,.22)),
    url("assets/installation-anniversaire-reelle.webp") center 46%/cover no-repeat!important;
}

.optional-field-label{
  display:inline!important;
  color:#8a8f94!important;
  font:inherit!important;
  font-weight:600!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

@media(max-width:759px){
  /* La barre fixe de réservation a été supprimée pour ne plus masquer
     ni intercepter les clics sur le calendrier. */
  .home-body{
    padding-bottom:0!important;
  }

  .home-body .footer{
    padding-bottom:calc(30px + env(safe-area-inset-bottom))!important;
  }
}

/* =====================================================
   V102 — IDENTITÉ VISUELLE / LOGOS FOURNIS
===================================================== */
.brand-logo-header .brand-logo-img{
  width:auto;
  height:64px;
  max-width:118px;
  max-height:64px;
  object-fit:contain;
}

.footer .brand-logo-footer .brand-logo-img{
  width:160px;
  height:auto;
  max-height:none;
  object-fit:contain;
}

@media(max-width:759px){
  .brand-logo-header .brand-logo-img{
    height:54px;
    max-width:100px;
    max-height:54px;
  }
  .footer .brand-logo-footer .brand-logo-img{
    width:145px;
    max-height:none;
  }
}


/* =====================================================
   V103 — HOME: SCROLL FLUIDE PC + MOBILE
   Le contenu ne dépend plus d'animations d'entrée.
===================================================== */
html {
  scroll-behavior: auto !important;
}

body.home-body .header {
  background: #f8f6f1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.home-body .header,
body.home-body .header .nav {
  transition: none !important;
}

body.home-body.motion-ready [data-reveal-section],
body.home-body.motion-ready [data-reveal-section]:not(.hero),
body.home-body.motion-ready [data-stagger-group] > *,
body.home-body.motion-ready .hero .eyebrow,
body.home-body.motion-ready .hero h1,
body.home-body.motion-ready .hero-sub,
body.home-body.motion-ready .hero-points,
body.home-body.motion-ready .hero-photo,
body.home-body.motion-reduced [data-reveal-section],
body.home-body.motion-reduced [data-stagger-group] > *,
body.home-body.motion-reduced .hero .eyebrow,
body.home-body.motion-reduced .hero h1,
body.home-body.motion-reduced .hero-sub,
body.home-body.motion-reduced .hero-points,
body.home-body.motion-reduced .hero-photo {
  opacity: 1 !important;
  transform: none !important;
  translate: none !important;
  filter: none !important;
  animation: none !important;
  transition: none !important;
}

/* =====================================================
   V104.2 — PENSE-BÊTE D'APPEL + NOTE INTERNE
===================================================== */
.admin-overview-grid{
  grid-template-columns:1fr!important;
}

.admin-phone-booking-layout{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.45fr);
  gap:18px;
  align-items:start;
}

.admin-call-checklist{
  position:sticky;
  top:88px;
  padding:18px;
  border-radius:18px;
  background:#202428;
  color:#fff;
  box-shadow:0 14px 34px rgba(20,23,25,.16);
}

.admin-call-checklist>span{
  color:#ff8a5c;
  font-size:.5rem;
  font-weight:800;
  letter-spacing:.12em;
}

.admin-call-checklist h3{
  margin:6px 0 7px;
  color:#fff;
  font-size:.84rem;
  line-height:1.25;
}

.admin-call-checklist>p{
  margin:0 0 14px;
  color:#c9ced1;
  font-size:.56rem;
  line-height:1.5;
}

.admin-call-checklist-items{
  display:grid;
  gap:7px;
}

.admin-call-checklist-items label{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:8px 9px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:rgba(255,255,255,.045);
  color:#f7f7f7;
  font-size:.56rem;
  font-weight:650;
  line-height:1.4;
  cursor:pointer;
}

.admin-call-checklist-items input{
  width:17px;
  height:17px;
  margin:1px 0 0;
  flex:0 0 auto;
  accent-color:#ff7043;
}

.admin-call-script{
  margin-top:14px;
  padding:12px;
  border-radius:12px;
  background:#fff;
  color:#202428;
}

.admin-call-script strong{
  color:#a34d38;
  font-size:.51rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.admin-call-script p{
  margin:7px 0 0;
  font-size:.55rem;
  line-height:1.5;
}

.admin-manual-form textarea,
.admin-modal-card textarea{
  width:100%;
  min-height:96px;
  padding:12px 13px;
  border:1px solid #dedad2;
  border-radius:11px;
  background:#fff;
  color:var(--ink-2);
  font:inherit;
  line-height:1.5;
  resize:vertical;
}

.admin-manual-form label>small,
.admin-modal-card label>small{
  display:block;
  margin-top:5px;
  color:#777d82;
  font-size:.48rem;
  font-weight:500;
  line-height:1.4;
  letter-spacing:0;
  text-transform:none;
}

.booking-detail-note.is-internal{
  background:#fff7df;
  border:1px solid #ead79b;
}

.booking-detail-note.is-internal span{
  color:#795b00;
}

@media(max-width:900px){
  .admin-phone-booking-layout{
    grid-template-columns:1fr;
  }

  .admin-call-checklist{
    position:static;
  }
}


/* =====================================================
   V106 — HOME CONVERSION LOCALE / ASSOCIATIONS / MATÉRIEL
===================================================== */
.hero-actions-v106{
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.hero-actions-v106 .btn{
  min-width:170px;
}

.material-specs-v106{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  background:var(--paper);
  box-shadow:0 12px 32px rgba(28,32,36,.045);
}
.material-specs-v106>div{
  min-height:94px;
  padding:18px 16px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  border-right:1px solid var(--line);
}
.material-specs-v106>div:last-child{border-right:0}
.material-specs-v106 strong{
  color:var(--ink-2);
  font-size:.84rem;
  line-height:1.2;
}
.material-specs-v106 span{
  color:var(--muted);
  font-size:.6rem;
  line-height:1.4;
}

.association-section-v106{
  padding:18px 0 72px;
}
.association-shell-v106{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
  gap:34px;
  align-items:center;
  padding:38px;
  border-radius:28px;
  background:#20252a;
  color:#fff;
  overflow:hidden;
  box-shadow:0 20px 55px rgba(25,29,33,.10);
}
.association-shell-v106::after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  right:-110px;
  top:-120px;
  border-radius:50%;
  border:52px solid rgba(255,95,32,.10);
  pointer-events:none;
}
.association-copy-v106{
  position:relative;
  z-index:1;
}
.association-copy-v106>span{
  display:block;
  margin-bottom:10px;
  color:#ff8b5c;
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.17em;
}
.association-copy-v106 h2{
  max-width:650px;
  font-family:"Inter Tight",sans-serif;
  font-size:clamp(2rem,4vw,3.35rem);
  line-height:1.02;
  letter-spacing:-.035em;
}
.association-copy-v106 p{
  max-width:650px;
  margin-top:16px;
  color:#c8cdd1;
  font-size:.86rem;
  line-height:1.7;
}
.association-actions-v106{
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.association-section-v106 .btn-dark{
  background:#ff6528;
}
.association-section-v106 .btn-dark:hover{
  background:#ff7540;
}
.association-section-v106 .btn-outline{
  border-color:rgba(255,255,255,.24);
  background:rgba(255,255,255,.05);
  color:#fff;
}
.association-points-v106{
  position:relative;
  z-index:1;
  display:grid;
  gap:10px;
}
.association-points-v106 article{
  display:flex;
  align-items:flex-start;
  gap:13px;
  padding:15px 16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.055);
}
.association-points-v106 b{
  color:#ff7d49;
  font-size:.61rem;
  letter-spacing:.08em;
  line-height:1.5;
}
.association-points-v106 div{
  display:grid;
  gap:3px;
}
.association-points-v106 strong{
  font-size:.74rem;
  line-height:1.35;
}
.association-points-v106 small{
  color:#bfc5c9;
  font-size:.58rem;
  line-height:1.45;
}

.contact-actions{
  flex-wrap:wrap;
}

@media(max-width:980px){
  .material-specs-v106{grid-template-columns:repeat(2,minmax(0,1fr))}
  .material-specs-v106>div:nth-child(2){border-right:0}
  .material-specs-v106>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .association-shell-v106{grid-template-columns:1fr;gap:24px}
}

@media(max-width:759px){
  .hero-actions-v106{
    margin-top:20px;
    display:grid;
    grid-template-columns:1fr;
  }
  .hero-actions-v106 .btn{width:100%;min-width:0}

  .material-specs-v106{
    margin-top:14px;
    grid-template-columns:1fr 1fr;
    border-radius:16px;
  }
  .material-specs-v106>div{
    min-height:82px;
    padding:14px 12px;
  }
  .material-specs-v106 strong{font-size:.72rem}
  .material-specs-v106 span{font-size:.54rem}

  .association-section-v106{padding:12px 0 48px}
  .association-shell-v106{
    gap:20px;
    padding:23px 18px;
    border-radius:22px;
  }
  .association-copy-v106 h2{font-size:clamp(2rem,11vw,2.75rem)}
  .association-copy-v106 p{font-size:.78rem;line-height:1.62}
  .association-actions-v106{display:grid;grid-template-columns:1fr}
  .association-actions-v106 .btn{width:100%}
  .association-points-v106 article{padding:13px 14px}
}


/* =====================================================
   V107 — SEO LOCAL / NAV / SOCIAL / ADMIN RÉSERVATIONS
   ===================================================== */

.local-seo-section-v107{
  padding:14px 0 72px;
}
.local-seo-shell-v107{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
  gap:34px;
  align-items:center;
  padding:36px;
  border:1px solid #e4ded7;
  border-radius:28px;
  background:#f8f5f1;
}
.local-seo-copy-v107>span{
  display:block;
  margin-bottom:10px;
  color:var(--orange);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.14em;
}
.local-seo-copy-v107 h2{
  margin:0 0 15px;
  max-width:660px;
  font-family:Anton,sans-serif;
  font-size:clamp(2.35rem,4.2vw,4.15rem);
  line-height:.98;
  font-weight:400;
  color:#24292d;
}
.local-seo-copy-v107 p{
  margin:0;
  max-width:720px;
  color:#68625d;
  line-height:1.7;
}
.local-seo-copy-v107 .local-seo-note-v107{
  margin-top:12px;
  color:#2b3034;
  font-size:.82rem;
  font-weight:800;
}
.local-city-list-v107{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  align-content:center;
}
.local-city-list-v107 span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:8px 12px;
  border:1px solid #ded7cf;
  border-radius:999px;
  background:#fff;
  color:#383d41;
  font-size:.76rem;
  font-weight:800;
}

.footer-premium-grid{
  grid-template-columns:minmax(260px,1.25fr) repeat(3,minmax(150px,.75fr));
}
.footer-social-block{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.footer-social-block>strong{
  color:#fff;
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.footer-social-block a{
  color:rgba(255,255,255,.76);
  text-decoration:none;
  font-size:.78rem;
}
.footer-social-block a:hover{color:#fff}
.footer-social-block small{
  margin-top:5px;
  max-width:220px;
  color:rgba(255,255,255,.48);
  font-size:.67rem;
  line-height:1.5;
}

.admin-bookings-default-note{
  margin:0 0 14px;
  color:#7b746d;
  font-size:.76rem;
  line-height:1.55;
}

@media(max-width:1050px){
  .local-seo-shell-v107{grid-template-columns:1fr}
  .footer-premium-grid{grid-template-columns:1.2fr 1fr 1fr}
  .footer-social-block{grid-column:2 / -1}
}

@media(max-width:720px){
  .local-seo-section-v107{padding:8px 0 44px}
  .local-seo-shell-v107{padding:24px 18px;border-radius:22px;gap:22px}
  .local-seo-copy-v107 h2{font-size:clamp(2rem,11vw,2.8rem)}
  .local-seo-copy-v107 p{font-size:.8rem}
  .local-city-list-v107{gap:7px}
  .local-city-list-v107 span{font-size:.7rem;min-height:34px;padding:7px 10px}
  .footer-premium-grid{grid-template-columns:1fr}
  .footer-social-block{grid-column:auto}
}


/* =====================================================
   V108 — LOGO FINAL + RÉSEAUX
===================================================== */
.brand-logo-header .brand-logo-img{
  width:148px;
  height:auto;
  max-width:148px;
  max-height:48px;
  object-fit:contain;
}
.footer .brand-logo-footer .brand-logo-img{
  width:184px;
  height:auto;
  max-height:none;
}
@media(max-width:759px){
  .brand-logo-header .brand-logo-img{
    width:116px;
    height:auto;
    max-width:116px;
    max-height:42px;
  }
  .footer .brand-logo-footer .brand-logo-img{
    width:158px;
  }
}


/* V109 — intégration plus discrète du public associatif */
.audience-strip-v109{
  padding: 8px 0 34px;
}
.audience-strip-inner-v109{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 24px;
  border:1px solid rgba(17,17,17,.09);
  border-radius:18px;
  background:rgba(255,255,255,.68);
}
.audience-strip-inner-v109 > div{
  display:grid;
  gap:4px;
}
.audience-strip-inner-v109 span{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.11em;
  color:var(--orange,#ff6a00);
}
.audience-strip-inner-v109 strong{
  font-size:1rem;
  line-height:1.35;
  color:#151515;
}
.audience-strip-inner-v109 small{
  color:#737373;
  font-size:.86rem;
}
.audience-link-v109{
  flex:0 0 auto;
  color:#171717;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
}
.audience-link-v109:hover{color:var(--orange,#ff6a00)}
@media (max-width:720px){
  .audience-strip-v109{padding:4px 0 26px}
  .audience-strip-inner-v109{align-items:flex-start;flex-direction:column;gap:12px;padding:17px 18px}
}


/* =====================================================
   V110 — HIÉRARCHIE / CONVERSION / PASS COMPACT
===================================================== */
.pass-teaser-v110{
  padding:18px 0 58px;
}
.pass-teaser-shell-v110{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr) auto;
  gap:28px;
  align-items:center;
  padding:28px 30px;
  border:1px solid #e2ddd7;
  border-radius:24px;
  background:#f7f3ee;
}
.pass-teaser-copy-v110>span{
  display:block;
  margin-bottom:7px;
  color:var(--orange);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.13em;
}
.pass-teaser-copy-v110 h2{
  margin:0;
  max-width:650px;
  color:#252a2e;
  font-size:clamp(1.2rem,2.1vw,1.72rem);
  line-height:1.22;
  letter-spacing:-.025em;
}
.pass-teaser-copy-v110 p{
  margin:8px 0 0;
  color:#716b64;
  font-size:.82rem;
  line-height:1.55;
}
.pass-teaser-points-v110{
  display:grid;
  gap:8px;
}
.pass-teaser-points-v110>div{
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.pass-teaser-points-v110 b{
  color:#ff6a00;
  font-size:.62rem;
  letter-spacing:.08em;
  padding-top:2px;
}
.pass-teaser-points-v110 span{
  display:grid;
  gap:1px;
}
.pass-teaser-points-v110 strong{
  color:#292e32;
  font-size:.78rem;
}
.pass-teaser-points-v110 small{
  color:#7a746d;
  font-size:.68rem;
}
.pass-teaser-cta-v110{
  white-space:nowrap;
}

@media(max-width:980px){
  .pass-teaser-shell-v110{
    grid-template-columns:1fr 1fr;
  }
  .pass-teaser-cta-v110{
    grid-column:1/-1;
    justify-self:start;
  }
}
@media(max-width:720px){
  .pass-teaser-v110{padding:8px 0 42px}
  .pass-teaser-shell-v110{
    grid-template-columns:1fr;
    gap:20px;
    padding:22px 18px;
    border-radius:20px;
  }
  .pass-teaser-cta-v110{
    grid-column:auto;
    width:100%;
    justify-content:center;
  }
}


/* =====================================================
   V111 — NAVIGATION DE SECTION & MICRO-ANIMATIONS
===================================================== */
/* La V103 désactivait le smooth-scroll pour éviter les anciens reveals.
   Le déplacement est maintenant géré proprement en JS ; cette règle sert
   de fallback si le JS n'est pas disponible. */
html{
  scroll-behavior:smooth!important;
}

#materiel,
#tarifs,
#evenements,
#pass,
#faq,
#contact,
#reservation{
  scroll-margin-top:110px;
}

@keyframes anchorArrivalV111{
  0%{transform:translateY(5px);filter:brightness(1)}
  45%{transform:translateY(0);filter:brightness(1.025)}
  100%{transform:translateY(0);filter:brightness(1)}
}

.anchor-arrived-v111{
  animation:anchorArrivalV111 .75s cubic-bezier(.22,.7,.25,1) both;
}

/* L'ouverture d'une réponse FAQ reste sobre mais n'apparaît plus brutalement. */
.faq-item[open] > p{
  animation:faqAnswerInV111 .28s ease-out both;
}

@keyframes faqAnswerInV111{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .anchor-arrived-v111,
  .faq-item[open] > p{animation:none!important}
}

/* =====================================================
   V112 — ESPACEMENTS PREMIUM / HIÉRARCHIE DE CONVERSION
   Objectif : plus d'air, moins d'effet "blocs empilés",
   et une lecture plus évidente jusqu'à la réservation.
===================================================== */

/* ---------- Desktop / tablet large ---------- */
@media(min-width:981px){
  /* Hero : davantage d'air autour du message principal. */
  .home-body .hero{
    padding-top:96px!important;
    padding-bottom:46px!important;
  }

  .home-body .hero-grid{
    gap:96px!important;
    align-items:center;
  }

  .home-body .hero-grid>article{
    padding:10px 0 18px;
  }

  .home-body .hero-sub{
    margin-top:22px!important;
    max-width:590px;
    line-height:1.72!important;
  }

  .home-body .hero-actions-v106{
    margin-top:30px!important;
    gap:12px!important;
  }

  .home-body .hero-actions-v106 .btn{
    min-height:50px;
    padding-inline:22px;
  }

  .home-body .hero-actions-v106 .btn-orange{
    box-shadow:0 13px 30px rgba(255,95,32,.16);
  }

  .home-body .hero-points{
    margin-top:30px!important;
    gap:20px!important;
  }

  .home-body .hero-photo{
    min-height:500px;
  }

  /* Le parcours 01–04 reste lié au hero mais respire davantage. */
  .home-body .premium-service-band{
    padding:18px 0 0!important;
  }

  .home-body .premium-service-grid{
    border-radius:24px!important;
  }

  .home-body .premium-service-grid>div{
    min-height:142px!important;
    padding:28px 26px!important;
  }

  /* Réservation = principal point de conversion : plus isolée et plus premium. */
  .home-body .booking-shell{
    padding-top:74px!important;
  }

  .home-body .booking-card{
    padding:36px 38px!important;
    border-radius:32px!important;
    box-shadow:
      0 34px 90px rgba(34,38,42,.095),
      0 1px 0 rgba(255,255,255,.9) inset!important;
  }

  .home-body .booking-title-row{
    margin-bottom:18px!important;
  }

  .home-body .booking-progress{
    margin-bottom:24px!important;
  }

  /* Matériel : commence une vraie nouvelle séquence visuelle. */
  .home-body .quick-info{
    padding-top:104px!important;
    padding-bottom:0!important;
  }

  .home-body .section-mini-head,
  .home-body .section-head-left{
    margin-bottom:30px!important;
  }

  .home-body .section-mini-head h2,
  .home-body .section-head-left h2{
    margin-top:10px!important;
    max-width:760px;
  }

  .home-body .section-head-left p{
    max-width:620px;
    margin-top:12px!important;
    line-height:1.65!important;
  }

  .home-body .quick-info-grid article{
    min-height:122px!important;
    padding:26px 26px!important;
  }

  .home-body .material-specs-v106{
    margin-top:24px!important;
    border-radius:22px!important;
  }

  .home-body .material-specs-v106>div{
    min-height:104px!important;
    padding:20px 18px!important;
  }

  /* Événements : respiration entre matériel et offre, sans devenir un gros bloc. */
  .home-body .audience-strip-v109{
    padding:52px 0 8px!important;
  }

  .home-body .audience-strip-inner-v109{
    padding:24px 28px!important;
    border-radius:20px!important;
  }

  /* Tarifs : séparation nette après le bandeau événementiel. */
  .home-body .pricing-section{
    padding-top:90px!important;
    padding-bottom:28px!important;
  }

  .home-body .pricing-grid{
    gap:22px!important;
  }

  .home-body .price-card{
    padding:34px!important;
    border-radius:26px!important;
  }

  .home-body .big-price{
    margin-top:24px!important;
  }

  /* Pass : utile, mais visuellement secondaire par rapport à la location classique. */
  .home-body .pass-teaser-v110{
    padding:54px 0 18px!important;
  }

  .home-body .pass-teaser-shell-v110{
    padding:32px 34px!important;
    gap:34px!important;
    border-radius:26px!important;
  }

  .home-body .mon-pass-callout{
    padding-top:34px!important;
    padding-bottom:0!important;
  }

  .home-body .mon-pass-callout-box{
    padding:30px 32px!important;
    border-radius:24px!important;
  }

  /* FAQ : vraie pause avant les objections. */
  .home-body .faq-section{
    padding-top:90px!important;
    padding-bottom:18px!important;
  }

  .home-body .faq-accordion{
    gap:14px!important;
  }

  .home-body .faq-item summary{
    min-height:80px!important;
    padding:20px 22px!important;
  }

  .home-body .faq-item p{
    padding:0 22px 22px!important;
  }

  /* CTA final : assez éloigné pour paraître volontaire, pas collé à la FAQ. */
  .home-body .cta-strip{
    padding-top:58px!important;
    padding-bottom:28px!important;
  }

  .home-body .cta-box{
    padding:30px 32px!important;
    border-radius:24px!important;
  }

  .home-body + .contact-section,
  .contact-section{
    padding-top:38px!important;
    padding-bottom:34px!important;
  }

  .home-body ~ .contact-section .contact-box,
  .contact-section .contact-box{
    padding:30px 32px!important;
    border-radius:24px!important;
  }

  .home-body ~ .footer,
  .footer{
    margin-top:64px!important;
  }
}

/* ---------- Desktop intermédiaire ---------- */
@media(min-width:760px) and (max-width:980px){
  .home-body .hero{
    padding-top:70px!important;
    padding-bottom:34px!important;
  }

  .home-body .hero-grid{
    gap:48px!important;
  }

  .home-body .hero-actions-v106{
    margin-top:26px!important;
  }

  .home-body .booking-shell{
    padding-top:58px!important;
  }

  .home-body .quick-info,
  .home-body .pricing-section,
  .home-body .faq-section{
    padding-top:72px!important;
  }

  .home-body .audience-strip-v109{
    padding-top:42px!important;
  }

  .home-body .pass-teaser-v110{
    padding-top:44px!important;
  }
}

/* ---------- Mobile : premium = respiration, pas grands vides ---------- */
@media(max-width:759px){
  .home-body .hero{
    padding-top:34px!important;
    padding-bottom:20px!important;
  }

  .home-body .hero-sub{
    margin-top:17px!important;
    line-height:1.62!important;
  }

  .home-body .hero-actions-v106{
    margin-top:22px!important;
    gap:9px!important;
  }

  .home-body .hero-actions-v106 .btn{
    min-height:48px!important;
  }

  .home-body .hero-points{
    margin-top:20px!important;
  }

  .home-body .premium-service-band{
    padding-top:14px!important;
  }

  .home-body .booking-shell{
    padding-top:34px!important;
  }

  .home-body .quick-info{
    padding-top:58px!important;
  }

  .home-body .section-mini-head,
  .home-body .section-head-left{
    margin-bottom:20px!important;
  }

  .home-body .material-specs-v106{
    margin-top:16px!important;
  }

  .home-body .audience-strip-v109{
    padding:34px 0 4px!important;
  }

  .home-body .audience-strip-inner-v109{
    gap:14px!important;
    padding:20px 18px!important;
  }

  .home-body .pricing-section{
    padding-top:60px!important;
    padding-bottom:20px!important;
  }

  .home-body .pass-teaser-v110{
    padding:38px 0 18px!important;
  }

  .home-body .mon-pass-callout{
    padding-top:24px!important;
  }

  .home-body .faq-section{
    padding-top:58px!important;
  }

  .home-body .cta-strip{
    padding-top:38px!important;
    padding-bottom:24px!important;
  }

  .contact-section{
    padding-top:22px!important;
  }

  .footer{
    margin-top:38px!important;
  }
}

/* =====================================================
   V113 — HIÉRARCHIE VISUELLE / CONVERSION PREMIUM
   Plus lisible, plus contrasté, moins "petits textes".
===================================================== */

/* Palette et profondeur un peu plus premium, sans changer l'identité. */
body.home-body{
  --v113-ink:#1e2226;
  --v113-muted:#666d73;
  --v113-line:rgba(30,34,38,.105);
  --v113-soft:#f9f8f5;
  color:var(--v113-ink);
}

/* Navigation : plus nette, sans l'alourdir. */
@media(min-width:981px){
  .home-body .nav-links{gap:32px!important}
  .home-body .nav-links a{
    font-size:.76rem!important;
    font-weight:750!important;
    letter-spacing:-.01em;
  }
  .home-body .header-cta{
    min-height:50px!important;
    padding-inline:22px!important;
    font-size:.72rem!important;
    border-radius:15px!important;
  }
}

/* Titres : même famille et même langage partout. */
.home-body .section-mini-head h2,
.home-body .section-head-left h2,
.home-body .pass-teaser-copy-v110 h2,
.home-body .mon-pass-callout-box h2,
.home-body .cta-box h2,
.home-body .contact-box h2{
  font-family:"Inter Tight",sans-serif!important;
  font-weight:800!important;
  letter-spacing:-.045em!important;
  color:var(--v113-ink)!important;
}

.home-body .section-mini-head h2,
.home-body .section-head-left h2{
  font-size:clamp(2.35rem,4.4vw,3.7rem)!important;
  line-height:.98!important;
  max-width:760px;
}

.home-body .section-mini-head>span,
.home-body .section-head-left>span,
.home-body .contact-box>div>span{
  font-size:.58rem!important;
  letter-spacing:.19em!important;
}

.home-body .section-head-left p{
  margin-top:13px!important;
  max-width:650px;
  color:var(--v113-muted)!important;
  font-size:.86rem!important;
  line-height:1.65!important;
}

/* Hero : priorité au bénéfice, puis aux preuves. */
.home-body .eyebrow{
  color:#747a7f!important;
  font-size:.6rem!important;
  letter-spacing:.21em!important;
}

.home-body .hero h1{
  color:var(--v113-ink)!important;
  text-wrap:balance;
}

.home-body .hero-sub{
  color:#5e656b!important;
  font-size:1.03rem!important;
  line-height:1.7!important;
  max-width:600px!important;
}

.home-body .hero-point strong{
  color:var(--v113-ink)!important;
  font-size:.76rem!important;
  letter-spacing:-.01em;
}

.home-body .hero-point small{
  color:#747a80!important;
  font-size:.61rem!important;
  line-height:1.45!important;
}

.home-body .hero-point-icon{
  width:40px!important;
  height:40px!important;
  border-radius:13px!important;
  border-color:var(--v113-line)!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 7px 20px rgba(30,34,38,.045);
}

/* Les 4 étapes ressemblent davantage à une preuve de service qu'à 4 cartes. */
.home-body .premium-service-grid{
  border-color:var(--v113-line)!important;
  box-shadow:0 18px 48px rgba(30,34,38,.045)!important;
  background:rgba(255,255,255,.62)!important;
}

.home-body .premium-service-grid strong{
  color:var(--v113-ink)!important;
  font-size:.96rem!important;
}

.home-body .premium-service-grid small{
  color:#6d7479!important;
  font-size:.64rem!important;
  line-height:1.55!important;
}

/* Réservation : c'est le bloc conversion principal. */
.home-body .booking-card{
  position:relative;
  overflow:hidden;
  border-color:rgba(30,34,38,.095)!important;
  background:#fff!important;
  box-shadow:0 32px 78px rgba(30,34,38,.085)!important;
}
.home-body .booking-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,var(--orange),rgba(255,95,32,.16) 52%,transparent 82%);
  pointer-events:none;
}
.home-body .booking-title-row h2{
  font-family:"Inter Tight",sans-serif!important;
  font-size:clamp(1.65rem,2.6vw,2.3rem)!important;
  letter-spacing:-.035em!important;
  color:var(--v113-ink)!important;
}
.home-body .booking-reassurance{
  color:#73797f!important;
  font-size:.67rem!important;
  line-height:1.55!important;
}

/* Matériel : les trois cartes deviennent plus faciles à scanner. */
.home-body .quick-info-grid{
  background:#fff!important;
  border-color:var(--v113-line)!important;
  box-shadow:0 18px 45px rgba(30,34,38,.045)!important;
}
.home-body .quick-info-grid article{
  min-height:124px!important;
  padding:25px 26px!important;
}
.home-body .quick-info-grid strong{
  font-size:.82rem!important;
  color:var(--v113-ink);
}
.home-body .quick-info-grid small{
  margin-top:4px!important;
  font-size:.62rem!important;
  line-height:1.5!important;
}
.home-body .quick-price{
  font-family:"Inter Tight",sans-serif;
  font-size:1rem!important;
  font-weight:800!important;
  color:var(--orange)!important;
}
.home-body .quick-info-grid article:last-child strong{color:#fff!important}

.home-body .material-specs-v106{
  border-color:var(--v113-line)!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:none!important;
}
.home-body .material-specs-v106 strong{
  font-family:"Inter Tight",sans-serif;
  font-size:.94rem!important;
  letter-spacing:-.02em;
}
.home-body .material-specs-v106 span{
  font-size:.63rem!important;
  line-height:1.45!important;
}

/* Événements : discret, mais pas secondaire au point de disparaître. */
.home-body .audience-strip-inner-v109{
  border:1px solid var(--v113-line)!important;
  background:rgba(255,255,255,.66)!important;
  box-shadow:0 15px 40px rgba(30,34,38,.04)!important;
}
.home-body .audience-strip-inner-v109>div>span{
  font-size:.55rem!important;
  letter-spacing:.16em!important;
}
.home-body .audience-strip-inner-v109 strong{
  font-family:"Inter Tight",sans-serif;
  font-size:1.22rem!important;
  line-height:1.25!important;
  letter-spacing:-.025em;
}
.home-body .audience-strip-inner-v109 small{
  font-size:.65rem!important;
  line-height:1.5!important;
}
.home-body .audience-link-v109{
  font-size:.7rem!important;
  font-weight:800!important;
}

/* Tarifs : 65 € est visuellement l'offre de référence ; étudiant reste clairement alternatif. */
@media(min-width:760px){
  .home-body .pricing-grid{
    transform:none!important;
    grid-template-columns:1.06fr .94fr!important;
    align-items:stretch!important;
  }
}
.home-body .price-card{
  min-height:370px!important;
  display:flex!important;
  flex-direction:column!important;
  border-color:var(--v113-line)!important;
  background:#fff!important;
  box-shadow:0 22px 58px rgba(30,34,38,.055)!important;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.home-body .price-card:first-child{
  border-color:rgba(255,95,32,.36)!important;
  box-shadow:0 28px 68px rgba(30,34,38,.07),0 0 0 1px rgba(255,95,32,.05)!important;
}
.home-body .price-card.student-card{
  background:#fbfaf7!important;
  border-color:rgba(30,34,38,.105)!important;
}
.home-body .price-card:hover{
  transform:translateY(-3px);
  box-shadow:0 30px 70px rgba(30,34,38,.075)!important;
}
.home-body .price-tag{
  font-size:.55rem!important;
  letter-spacing:.16em!important;
}
.home-body .big-price{
  color:var(--v113-ink)!important;
  font-family:"Inter Tight",sans-serif!important;
  font-size:3.7rem!important;
  font-weight:800!important;
  letter-spacing:-.065em!important;
  line-height:.95!important;
}
.home-body .price-card>p{
  color:#676e74!important;
  font-size:.73rem!important;
  line-height:1.6!important;
}
.home-body .price-card ul{
  flex:1;
  color:#565d63!important;
  font-size:.69rem!important;
  line-height:1.7!important;
  gap:10px!important;
}
.home-body .student-badge{
  background:#ece9e4!important;
  color:#5c6267!important;
  font-size:.49rem!important;
}

/* Pass / FAQ : hiérarchie plus calme après l'offre principale. */
.home-body .pass-teaser-copy-v110 h2{
  font-size:clamp(1.65rem,2.8vw,2.45rem)!important;
  line-height:1.08!important;
}
.home-body .pass-teaser-copy-v110 p,
.home-body .mon-pass-callout-box p{
  font-size:.75rem!important;
  line-height:1.65!important;
}
.home-body .pass-teaser-points-v110 strong{
  font-size:.72rem!important;
}
.home-body .pass-teaser-points-v110 small{
  font-size:.59rem!important;
}

.home-body .faq-item{
  border-color:var(--v113-line)!important;
  background:rgba(255,255,255,.76)!important;
  box-shadow:0 10px 30px rgba(30,34,38,.025);
}
.home-body .faq-item summary{
  font-size:.82rem!important;
  font-weight:750!important;
  color:var(--v113-ink)!important;
}
.home-body .faq-item p{
  max-width:900px;
  color:#697076!important;
  font-size:.71rem!important;
  line-height:1.7!important;
}
.home-body .faq-item[open]{
  background:#fff!important;
  border-color:rgba(255,95,32,.24)!important;
}

/* CTA final et contact : plus clairs, moins "carte générique". */
.home-body .cta-box h2{
  font-size:clamp(1.8rem,3.2vw,2.65rem)!important;
  line-height:1.04!important;
}
.home-body .contact-box h2{
  font-size:clamp(1.8rem,3.4vw,2.8rem)!important;
  line-height:1.04!important;
}
.home-body .contact-box p{
  color:#697076!important;
  font-size:.75rem!important;
  line-height:1.65!important;
}

/* Boutons : une sensation plus tactile sans sur-animation. */
.home-body .btn{
  font-size:.71rem!important;
  font-weight:800!important;
  letter-spacing:-.005em;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease!important;
}
.home-body .btn-orange{
  box-shadow:0 10px 24px rgba(255,95,32,.18);
}
.home-body .btn:hover{
  transform:translateY(-2px);
}

/* Mobile : on garde la lisibilité sans gonfler inutilement les sections. */
@media(max-width:759px){
  .home-body .section-mini-head h2,
  .home-body .section-head-left h2{
    font-size:clamp(2.05rem,10vw,2.75rem)!important;
    line-height:1!important;
  }
  .home-body .section-head-left p{font-size:.78rem!important}
  .home-body .hero-sub{font-size:.92rem!important;line-height:1.65!important}
  .home-body .hero-point strong{font-size:.72rem!important}
  .home-body .hero-point small{font-size:.58rem!important}
  .home-body .premium-service-grid strong{font-size:.83rem!important}
  .home-body .premium-service-grid small{font-size:.6rem!important}
  .home-body .quick-info-grid article{min-height:106px!important;padding:20px 18px!important}
  .home-body .quick-info-grid strong{font-size:.76rem!important}
  .home-body .quick-info-grid small{font-size:.59rem!important}
  .home-body .material-specs-v106 strong{font-size:.8rem!important}
  .home-body .material-specs-v106 span{font-size:.57rem!important}
  .home-body .audience-strip-inner-v109 strong{font-size:1.05rem!important}
  .home-body .price-card{min-height:0!important;padding:27px 22px!important}
  .home-body .big-price{font-size:3.2rem!important}
  .home-body .price-card>p{font-size:.69rem!important}
  .home-body .price-card ul{font-size:.66rem!important}
  .home-body .faq-item summary{font-size:.76rem!important}
  .home-body .faq-item p{font-size:.66rem!important}
}

@media(prefers-reduced-motion:reduce){
  .home-body .price-card,
  .home-body .btn{transition:none!important}
  .home-body .price-card:hover,
  .home-body .btn:hover{transform:none!important}
}

/* =====================================================
   V114 — POLISH PREMIUM : PHOTO / FONDS / HEADER / FOOTER
   Objectif : gagner en profondeur et en finition sans surcharger.
===================================================== */

/* Fond général : chaud et très légèrement nuancé, sans effet "template". */
body.home-body{
  background:
    radial-gradient(circle at 86% 5%, rgba(255,95,32,.055), transparent 27rem),
    linear-gradient(180deg,#f8f7f4 0%,#f5f3ef 48%,#f8f7f4 100%)!important;
}

/* HEADER — plus fin sur desktop, avec état scroll réellement perceptible. */
@media(min-width:760px){
  body.home-body .header{
    background:rgba(248,247,244,.86)!important;
    backdrop-filter:blur(18px) saturate(1.15)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.15)!important;
    border-bottom-color:rgba(30,34,38,.055)!important;
    transition:background-color .24s ease,box-shadow .24s ease,border-color .24s ease!important;
  }
  body.home-body .header .nav{
    min-height:80px;
    transition:min-height .24s cubic-bezier(.22,.8,.22,1)!important;
  }
  body.home-body .header.is-scrolled{
    background:rgba(248,247,244,.96)!important;
    border-bottom-color:rgba(30,34,38,.085)!important;
    box-shadow:0 10px 34px rgba(30,34,38,.055)!important;
  }
  body.home-body .header.is-scrolled .nav{min-height:70px!important}

  .home-body .brand-logo-header .brand-logo-img{
    width:144px!important;
    max-width:144px!important;
  }
  .home-body .header-pass-link{
    position:relative;
    margin-left:4px;
    padding-left:18px;
  }
  .home-body .header-pass-link::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:1px;
    height:20px;
    transform:translateY(-50%);
    background:rgba(30,34,38,.11);
  }
  .home-body .nav-links a{
    color:#3f454a!important;
    transition:color .18s ease!important;
  }
  .home-body .nav-links a:hover,
  .home-body .nav-links a.active{color:#15191c!important}
  .home-body .nav-links a::after{
    bottom:-10px!important;
    height:2px!important;
    border-radius:999px;
  }
}

/* HERO — vraie photo assumée comme preuve, avec cadre discret. */
.home-body .hero-photo{
  isolation:isolate;
  min-height:510px!important;
  border:1px solid rgba(30,34,38,.11)!important;
  border-radius:30px!important;
  background:
    linear-gradient(180deg,rgba(17,19,21,.01) 0%,rgba(17,19,21,.04) 52%,rgba(17,19,21,.24) 100%),
    url("assets/installation-anniversaire-reelle.webp") center 43%/cover no-repeat!important;
  box-shadow:
    0 34px 90px rgba(30,34,38,.13),
    0 1px 0 rgba(255,255,255,.75) inset!important;
}
.home-body .hero-photo::after{
  content:"";
  position:absolute;
  inset:10px;
  z-index:-1;
  border:1px solid rgba(255,255,255,.38);
  border-radius:22px;
  pointer-events:none;
}
.home-body .hero-photo-note{
  right:auto!important;
  left:22px!important;
  bottom:22px!important;
  max-width:290px!important;
  padding:14px 16px!important;
  border:1px solid rgba(255,255,255,.2);
  border-radius:16px!important;
  background:rgba(20,22,24,.74)!important;
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.15);
}
.home-body .hero-photo-note span{
  color:#ff8a5a;
  font-size:.48rem!important;
  line-height:1.2!important;
  letter-spacing:.16em!important;
}
.home-body .hero-photo-note strong{
  display:block;
  margin-top:5px;
  color:#fff;
  font-size:.68rem;
  line-height:1.35;
  font-weight:750;
  letter-spacing:-.01em;
}
.home-body .hero-photo-note i{
  margin-top:10px!important;
  width:28px!important;
  height:2px!important;
  border-radius:999px;
}

/* Respiration par fonds : très subtil, uniquement pour structurer la lecture. */
.home-body .quick-info{
  position:relative;
  isolation:isolate;
}
.home-body .quick-info::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:42px 0 -74px;
  background:linear-gradient(180deg,rgba(236,232,225,.58),rgba(241,238,232,.24));
  border-top:1px solid rgba(30,34,38,.045);
  border-bottom:1px solid rgba(30,34,38,.035);
}
.home-body .faq-section{
  position:relative;
  isolation:isolate;
}
.home-body .faq-section::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:38px 0 -34px;
  background:rgba(238,235,229,.42);
  border-top:1px solid rgba(30,34,38,.04);
  border-bottom:1px solid rgba(30,34,38,.04);
}

/* Les grandes cartes gagnent un bord plus fin et cohérent. */
.home-body .booking-card,
.home-body .quick-info-grid,
.home-body .price-card,
.home-body .pass-teaser-shell-v110,
.home-body .mon-pass-callout-box,
.home-body .faq-item,
.home-body .cta-box,
.home-body .contact-box{
  border-color:rgba(30,34,38,.09)!important;
}

/* Footer — plus éditorial, plus net, moins bloc noir générique. */
.home-body .footer{
  position:relative;
  overflow:hidden;
  margin-top:72px!important;
  padding-top:60px!important;
  background:
    radial-gradient(circle at 13% 0%,rgba(255,95,32,.08),transparent 24rem),
    #181b1e!important;
  border-top:1px solid rgba(255,255,255,.04);
}
.home-body .footer::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  width:min(1180px,calc(100% - 38px));
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,var(--orange),rgba(255,95,32,.08) 34%,transparent 78%);
}
.home-body .footer-premium-grid{
  gap:54px!important;
}
.home-body .footer-brand p{
  max-width:370px!important;
  font-size:.65rem!important;
  line-height:1.7!important;
  color:rgba(255,255,255,.58)!important;
}
.home-body .footer-links-block>strong,
.home-body .footer-contact-block>strong,
.home-body .footer-social-block>strong{
  margin-bottom:15px!important;
  color:rgba(255,255,255,.94)!important;
  font-size:.54rem!important;
  letter-spacing:.16em!important;
}
.home-body .footer-links-block nav a,
.home-body .footer-contact-block a,
.home-body .footer-social-block a{
  color:rgba(255,255,255,.68)!important;
  font-size:.62rem!important;
  transition:color .18s ease,transform .18s ease!important;
}
.home-body .footer-links-block nav a:hover,
.home-body .footer-contact-block a:hover,
.home-body .footer-social-block a:hover{
  color:#fff!important;
  transform:translateX(2px);
}
.home-body .footer-bottom{
  margin-top:46px!important;
  padding-top:20px!important;
  color:rgba(255,255,255,.38)!important;
  font-size:.52rem!important;
  letter-spacing:.02em;
}
.home-body .footer-legal-links{
  width:min(var(--wrap),calc(100% - 38px));
  margin:12px auto 0!important;
  padding-top:13px;
  border-top:1px solid rgba(255,255,255,.055);
}
.home-body .footer-legal-links a{
  color:rgba(255,255,255,.38)!important;
  font-size:.5rem!important;
  transition:color .18s ease!important;
}
.home-body .footer-legal-links a:hover{color:rgba(255,255,255,.78)!important}

/* Mobile : garder la photo forte sans prendre tout l'écran. */
@media(max-width:759px){
  .home-body .hero-photo{
    min-height:360px!important;
    border-radius:24px!important;
    background-position:center 42%!important;
    box-shadow:0 24px 58px rgba(30,34,38,.11)!important;
  }
  .home-body .hero-photo::after{inset:8px;border-radius:18px}
  .home-body .hero-photo-note{
    left:14px!important;
    right:14px!important;
    bottom:14px!important;
    max-width:none!important;
    padding:12px 13px!important;
  }
  .home-body .quick-info::before{inset:28px 0 -44px}
  .home-body .faq-section::before{inset:24px 0 -24px}
  .home-body .footer{padding-top:44px!important;margin-top:48px!important}
  .home-body .footer-premium-grid{gap:30px!important}
  .home-body .footer-bottom{margin-top:30px!important}
}

@media(prefers-reduced-motion:reduce){
  .home-body .footer-links-block nav a,
  .home-body .footer-contact-block a,
  .home-body .footer-social-block a{transition:none!important}
  .home-body .footer-links-block nav a:hover,
  .home-body .footer-contact-block a:hover,
  .home-body .footer-social-block a:hover{transform:none!important}
}


/* =====================================================
   V115 — FOND IDENTITAIRE TRANSPARENT (C + ONDE)
===================================================== */
body.home-body{
  position:relative;
  isolation:isolate;
  overflow-x:hidden;
}

body.home-body > *{
  position:relative;
  z-index:1;
}

body.home-body::before,
body.home-body::after{
  content:"";
  position:fixed;
  pointer-events:none;
  z-index:0;
}

body.home-body::before{
  inset:0;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,95,32,.07), transparent 0 24%),
    radial-gradient(circle at 82% 72%, rgba(255,95,32,.055), transparent 0 22%),
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0));
}

body.home-body::after{
  width:min(58vw, 760px);
  aspect-ratio:1 / 1;
  left:-110px;
  top:118px;
  background:url("assets/logo-compact.png") no-repeat center / contain;
  opacity:.048;
  filter:grayscale(.08) saturate(.92);
  transform:rotate(-10deg);
}

.hero,
.premium-service-band,
.booking-shell,
.footer{
  position:relative;
  overflow:hidden;
}

.hero::before{
  content:"";
  position:absolute;
  right:-150px;
  bottom:-130px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,95,32,.10) 0%, rgba(255,95,32,.045) 28%, rgba(255,95,32,0) 68%);
  pointer-events:none;
  z-index:0;
}

.hero > *,
.premium-service-band > *,
.booking-shell > *,
.footer > *{
  position:relative;
  z-index:1;
}

@media (max-width: 759px){
  body.home-body::after{
    width:78vw;
    left:-95px;
    top:138px;
    opacity:.042;
  }

  .hero::before{
    width:280px;
    height:280px;
    right:-90px;
    bottom:-70px;
  }
}


/* =====================================================
   V116 — CONVERSION / CONFIANCE / 5 PREMIÈRES SECONDES
===================================================== */
.hero-points-v116 .hero-point{min-width:0}
.hero-points-v116 .hero-point strong{letter-spacing:-.015em}
.booking-trust-v116{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 18px;
}
.booking-trust-v116 span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 11px;
  border:1px solid rgba(37,42,47,.09);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#555c62;
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.01em;
}
.booking-shell{margin-top:0!important}
.booking-shell + .premium-service-band{margin-top:0}
@media(max-width:759px){
  .booking-trust-v116{gap:6px;margin-bottom:14px}
  .booking-trust-v116 span{min-height:28px;padding:0 9px;font-size:.53rem}
}


/* =====================================================
   V117 — FINITION DESIGN / MICRO-INTERACTIONS / QA UI
   Aucun nouveau bloc : uniquement cohérence, boutons et micro-graphiques.
===================================================== */

/* Tous les éléments cliquables ont un état clavier/tactile clair. */
.home-body .btn,
.home-body .header-cta,
.home-body .header-pass-link,
.home-body .audience-link-v109,
.home-body .availability-whatsapp,
.home-body .calendar-top button,
.home-body .selected-date-box button,
.home-body .menu-toggle,
.home-body .day,
.home-body .faq-item summary{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

.home-body .btn:focus-visible,
.home-body .header-cta:focus-visible,
.home-body .header-pass-link:focus-visible,
.home-body .audience-link-v109:focus-visible,
.home-body .availability-whatsapp:focus-visible,
.home-body .calendar-top button:focus-visible,
.home-body .selected-date-box button:focus-visible,
.home-body .menu-toggle:focus-visible,
.home-body .day:focus-visible,
.home-body .faq-item summary:focus-visible,
.home-body .footer a:focus-visible,
.home-body + .contact-section a:focus-visible{
  outline:3px solid rgba(255,95,32,.28)!important;
  outline-offset:3px!important;
}

@media(hover:hover){
  .home-body .btn:not(:disabled):active,
  .home-body .header-cta:active,
  .home-body .audience-link-v109:active{
    transform:translateY(0) scale(.985)!important;
  }
}

.home-body .btn:disabled,
.home-body button:disabled{
  cursor:not-allowed;
}

/* CTA : même langage visuel partout. */
.home-body .btn,
.home-body .header-cta{
  border-radius:14px!important;
}
.home-body .btn-orange{
  background:linear-gradient(100deg,#ff5f20 0%,#ff7444 100%)!important;
  border-color:rgba(255,95,32,.22)!important;
  box-shadow:0 12px 28px rgba(255,95,32,.18)!important;
}
@media(hover:hover){
  .home-body .btn-orange:hover{
    box-shadow:0 16px 34px rgba(255,95,32,.23)!important;
  }
  .home-body .btn-dark:hover{
    box-shadow:0 12px 28px rgba(30,34,38,.15)!important;
  }
  .home-body .btn-outline:hover{
    background:#fff!important;
    border-color:rgba(30,34,38,.22)!important;
    box-shadow:0 10px 25px rgba(30,34,38,.055)!important;
  }
}

/* Progression réservation : petit graphique plus net et plus premium. */
.home-body .booking-progress{
  max-width:700px!important;
  gap:10px!important;
}
.home-body .booking-progress span{
  gap:7px!important;
  color:#858c91!important;
  font-size:.53rem!important;
  letter-spacing:.01em;
}
.home-body .booking-progress span b{
  width:24px!important;
  height:24px!important;
  border-color:rgba(30,34,38,.13)!important;
  background:#fbfaf7!important;
  color:#777e83;
  font-size:.48rem!important;
  box-shadow:0 2px 8px rgba(30,34,38,.03);
}
.home-body .booking-progress span.active{
  color:#262b2f!important;
}
.home-body .booking-progress span.active b{
  border-color:rgba(255,95,32,.48)!important;
  background:#fff4ef!important;
  color:var(--orange)!important;
  box-shadow:0 0 0 4px rgba(255,95,32,.07)!important;
}
.home-body .booking-progress i{
  min-width:28px;
  height:1px!important;
  background:linear-gradient(90deg,rgba(30,34,38,.16),rgba(30,34,38,.07))!important;
}

/* Calendrier : contrôles visuellement fiables et état désactivé évident. */
.home-body .calendar-top button{
  width:40px!important;
  height:40px!important;
  border-radius:12px!important;
  border:1px solid rgba(30,34,38,.1)!important;
  background:#fff!important;
  color:#34393d!important;
  font-size:1.15rem!important;
  transition:transform .16s ease,border-color .16s ease,background-color .16s ease,opacity .16s ease!important;
}
@media(hover:hover){
  .home-body .calendar-top button:not(:disabled):hover{
    transform:translateY(-1px);
    border-color:rgba(255,95,32,.3)!important;
    background:#fff8f4!important;
  }
}
.home-body .calendar-top button:disabled{
  opacity:.28!important;
  background:#f4f2ee!important;
}
.home-body .selected-date-box button[hidden]{display:none!important}
.home-body .selected-date-box button{
  color:#4f565b!important;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease!important;
}
@media(hover:hover){
  .home-body .selected-date-box button:hover{
    color:var(--orange)!important;
    border-color:rgba(255,95,32,.25)!important;
    background:#fff7f2!important;
  }
}
.home-body #confirmDate:disabled{
  opacity:.42!important;
  filter:saturate(.55);
  box-shadow:none!important;
  transform:none!important;
}

/* Icônes : trait et contenant identiques, sans effet emoji/clipart. */
.home-body .hero-point-icon,
.home-body .quick-icon{
  border-color:rgba(30,34,38,.09)!important;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 7px 18px rgba(30,34,38,.035)!important;
}
.home-body .ui-icon{
  stroke-width:1.75!important;
}
.home-body .hero-point-icon .ui-icon,
.home-body .quick-icon .ui-icon{
  color:#ef5f27!important;
}
.home-body .quick-info-grid article:last-child .quick-icon{
  background:rgba(255,255,255,.055)!important;
  border-color:rgba(255,255,255,.12)!important;
}

/* Mini-parcours du jour J : plus graphique, moins liste brute. */
.home-body .date-service-card{
  border-top:1px solid rgba(30,34,38,.075);
  padding-top:16px!important;
}
.home-body .date-service-card>div{
  position:relative;
}
.home-body .date-service-card>div:not(:last-child)::after{
  content:"";
  position:absolute;
  left:12px;
  top:31px;
  width:1px;
  height:14px;
  background:linear-gradient(rgba(255,95,32,.24),rgba(30,34,38,.06));
}
.home-body .date-service-card b{
  background:#fff4ef!important;
  color:#e85b26!important;
  border:1px solid rgba(255,95,32,.16);
}

/* Onde du CTA : reprend la signature du logo, sans animation gadget. */
.home-body .cta-wave{
  gap:4px!important;
  height:58px!important;
  align-items:center!important;
  padding:0 8px;
}
.home-body .cta-wave i{
  width:5px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#ff7b45,#ff5f20)!important;
  opacity:.78;
  transform:none!important;
  animation:none!important;
}
.home-body .cta-wave i:nth-child(1){height:12px!important}
.home-body .cta-wave i:nth-child(2){height:21px!important}
.home-body .cta-wave i:nth-child(3){height:34px!important}
.home-body .cta-wave i:nth-child(4){height:49px!important}
.home-body .cta-wave i:nth-child(5){height:58px!important;opacity:1}
.home-body .cta-wave i:nth-child(6){height:43px!important}
.home-body .cta-wave i:nth-child(7){height:31px!important}
.home-body .cta-wave i:nth-child(8){height:19px!important}
.home-body .cta-wave i:nth-child(9){height:11px!important}
.home-body .cta-box:hover .cta-wave i{animation:none!important}

/* FAQ : le petit + / − est plus précis. */
.home-body .faq-item summary i{
  width:28px!important;
  height:28px!important;
  flex:0 0 28px;
  border:1px solid rgba(30,34,38,.09);
  border-radius:50%;
  background:rgba(255,255,255,.72);
}
.home-body .faq-item summary i::before,
.home-body .faq-item summary i::after{
  width:10px!important;
  height:1.5px!important;
  background:#697076!important;
}
.home-body .faq-item[open] summary i{
  border-color:rgba(255,95,32,.18);
  background:#fff5f0;
}
.home-body .faq-item[open] summary i::before,
.home-body .faq-item[open] summary i::after{
  background:var(--orange)!important;
}

/* Ancres : sécurité si JS indisponible. */
.home-body #reservation,
.home-body #materiel,
.home-body #tarifs,
.home-body #evenements,
.home-body #pass,
.home-body #faq,
#contact{
  scroll-margin-top:92px;
}

@media(max-width:759px){
  .home-body .booking-progress{
    margin-left:0!important;
    max-width:none!important;
    gap:5px!important;
    overflow:visible!important;
  }
  .home-body .booking-progress span{
    gap:4px!important;
    font-size:.46rem!important;
  }
  .home-body .booking-progress span b{
    width:21px!important;
    height:21px!important;
    font-size:.43rem!important;
  }
  .home-body .booking-progress i{
    min-width:8px!important;
    width:100%!important;
  }
  .home-body .cta-wave{
    height:45px!important;
    gap:3px!important;
    padding-inline:2px;
  }
  .home-body .cta-wave i{width:4px!important}
  .home-body .cta-wave i:nth-child(1){height:9px!important}
  .home-body .cta-wave i:nth-child(2){height:16px!important}
  .home-body .cta-wave i:nth-child(3){height:26px!important}
  .home-body .cta-wave i:nth-child(4){height:37px!important}
  .home-body .cta-wave i:nth-child(5){height:44px!important}
  .home-body .cta-wave i:nth-child(6){height:33px!important}
  .home-body .cta-wave i:nth-child(7){height:24px!important}
  .home-body .cta-wave i:nth-child(8){height:14px!important}
  .home-body .cta-wave i:nth-child(9){height:8px!important}
}

@media(prefers-reduced-motion:reduce){
  .home-body .calendar-top button,
  .home-body .selected-date-box button{
    transition:none!important;
  }
}


/* =====================================================
   V118 — FINITION UI PIXEL-PAR-PIXEL
   Aucun nouveau bloc. Le watermark/logo de fond V115 reste strictement inchangé.
===================================================== */

/* 1) Progression réservation : lisible au premier coup d'œil. */
.home-body .booking-progress{
  max-width:760px!important;
  gap:12px!important;
  margin-top:2px;
}
.home-body .booking-progress span{
  gap:8px!important;
  color:#697076!important;
  font-size:.59rem!important;
  font-weight:750!important;
  white-space:nowrap;
}
.home-body .booking-progress span b{
  width:27px!important;
  height:27px!important;
  flex:0 0 27px;
  font-size:.52rem!important;
  font-weight:850!important;
  border:1px solid rgba(30,34,38,.15)!important;
  background:#fff!important;
  color:#666d72!important;
}
.home-body .booking-progress span.active{
  color:#202529!important;
}
.home-body .booking-progress span.active b{
  border-color:rgba(255,95,32,.55)!important;
  background:#fff3ed!important;
  color:#ea5c25!important;
}
.home-body .booking-progress i{
  min-width:34px!important;
  height:1px!important;
  background:#d9d7d2!important;
}

/* 2) Bouton indisponible : vrai état neutre, pas un orange délavé. */
.home-body #confirmDate:disabled{
  opacity:1!important;
  filter:none!important;
  background:#e5e3df!important;
  border-color:#e5e3df!important;
  color:#959a9e!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
}
.home-body #confirmDate:not(:disabled){
  color:#fff!important;
}

/* 3) Flèches calendrier : centrage optique + zone de clic régulière. */
.home-body .calendar-top button{
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  line-height:1!important;
  font-family:Arial,sans-serif!important;
  font-size:1.3rem!important;
  font-weight:400!important;
}
.home-body .calendar-top button::first-line{line-height:1!important}

/* 4) Langage de boutons cohérent. */
.home-body .btn{
  min-height:50px!important;
  padding-inline:21px!important;
  border-radius:14px!important;
}
.home-body .price-card .btn{
  min-height:50px!important;
}
.home-body .pass-teaser-cta-v110,
.home-body .mon-pass-callout-box .btn{
  min-width:150px;
  min-height:48px!important;
  padding-inline:20px!important;
}
.home-body .header-cta{
  min-height:48px!important;
  border-radius:14px!important;
}

/* 5) Matériel : le service d'installation reste visible sans dominer la sono. */
.home-body .quick-info-grid article:last-child{
  background:#efede8!important;
  color:#252a2e!important;
  border-left-color:rgba(30,34,38,.08)!important;
}
.home-body .quick-info-grid article:last-child strong{
  color:#252a2e!important;
}
.home-body .quick-info-grid article:last-child small{
  color:#6c7378!important;
}
.home-body .quick-info-grid article:last-child .quick-icon{
  color:#ee6028!important;
  background:#fff!important;
  border-color:rgba(30,34,38,.09)!important;
  box-shadow:0 7px 18px rgba(30,34,38,.035)!important;
}

/* 6) Événements : le CTA est clairement un bouton, sans devenir dominant. */
.home-body .audience-link-v109{
  min-height:42px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(30,34,38,.13);
  border-radius:12px;
  background:#fff;
  color:#292e32!important;
  box-shadow:0 6px 18px rgba(30,34,38,.035);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease!important;
}
@media(hover:hover){
  .home-body .audience-link-v109:hover{
    color:#e95c26!important;
    border-color:rgba(255,95,32,.25);
    box-shadow:0 10px 24px rgba(30,34,38,.055);
    transform:translateY(-1px);
  }
}

/* 7) Pass : boutons mieux proportionnés au contenu. */
.home-body .pass-teaser-shell-v110{
  align-items:center!important;
}
.home-body .pass-teaser-cta-v110{
  justify-self:end;
  white-space:nowrap;
}
.home-body .mon-pass-callout-box .btn{
  white-space:nowrap;
}

/* 8) FAQ : symbole parfaitement centré et plus net. */
.home-body .faq-item summary i{
  display:grid!important;
  place-items:center!important;
}
.home-body .faq-item summary i::before,
.home-body .faq-item summary i::after{
  top:50%!important;
  left:50%!important;
  margin:0!important;
  transform-origin:center!important;
}
.home-body .faq-item summary i::before{
  transform:translate(-50%,-50%)!important;
}
.home-body .faq-item summary i::after{
  transform:translate(-50%,-50%) rotate(90deg)!important;
}
.home-body .faq-item[open] summary i::after{
  transform:translate(-50%,-50%) rotate(0deg)!important;
}

/* 9) CTA final : onde organique proche de la signature visuelle de la marque. */
.home-body .cta-wave-v118{
  width:92px!important;
  height:50px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.home-body .cta-wave-v118 svg{
  display:block;
  width:88px;
  height:42px;
  overflow:visible;
}
.home-body .cta-wave-v118 path{
  fill:#ff642a;
}

/* 10) Footer : lisibilité PC sans perdre le rendu éditorial. */
.home-body .footer-brand p{
  font-size:.7rem!important;
  line-height:1.75!important;
  color:rgba(255,255,255,.64)!important;
}
.home-body .footer-links-block>strong,
.home-body .footer-contact-block>strong,
.home-body .footer-social-block>strong{
  font-size:.58rem!important;
  color:rgba(255,255,255,.96)!important;
}
.home-body .footer-links-block nav a,
.home-body .footer-contact-block a,
.home-body .footer-social-block a{
  font-size:.68rem!important;
  line-height:1.45!important;
  color:rgba(255,255,255,.72)!important;
}
.home-body .footer-contact-block small,
.home-body .footer-social-block small{
  font-size:.61rem!important;
  line-height:1.55!important;
  color:rgba(255,255,255,.5)!important;
}
.home-body .footer-bottom{
  font-size:.56rem!important;
  color:rgba(255,255,255,.43)!important;
}
.home-body .footer-legal-links a{
  font-size:.54rem!important;
  color:rgba(255,255,255,.45)!important;
}

@media(max-width:759px){
  .home-body .booking-progress{
    gap:4px!important;
    margin-top:0;
  }
  .home-body .booking-progress span{
    gap:4px!important;
    font-size:.47rem!important;
  }
  .home-body .booking-progress span b{
    width:22px!important;
    height:22px!important;
    flex-basis:22px;
    font-size:.44rem!important;
  }
  .home-body .booking-progress i{
    min-width:7px!important;
  }
  .home-body .audience-link-v109{
    min-height:40px;
    padding-inline:14px;
  }
  .home-body .pass-teaser-cta-v110,
  .home-body .mon-pass-callout-box .btn{
    width:100%;
    min-width:0;
    justify-self:stretch;
  }
  .home-body .cta-wave-v118{
    width:72px!important;
    height:42px!important;
  }
  .home-body .cta-wave-v118 svg{
    width:70px;
    height:34px;
  }
  .home-body .footer-brand p{font-size:.67rem!important}
  .home-body .footer-links-block nav a,
  .home-body .footer-contact-block a,
  .home-body .footer-social-block a{font-size:.66rem!important}
}

@media(prefers-reduced-motion:reduce){
  .home-body .audience-link-v109{transition:none!important}
  .home-body .audience-link-v109:hover{transform:none!important}
}


/* =====================================================
   V119 — DERNIÈRE PASSE DESIGN / IDENTITÉ DE MARQUE
   Aucun nouveau bloc. Le watermark V115 et ses assets restent inchangés.
   Couleurs officielles : #191B1D / #FB4602 / #FFFFFF
   Typo de marque annoncée : Nexa Heavy / Nexa Black (fallback web conservé).
===================================================== */
body.home-body{
  --brand-black:#191B1D;
  --brand-orange:#FB4602;
  --brand-white:#FFFFFF;
  --ink:#191B1D;
  --ink-2:#191B1D;
  --orange:#FB4602;
  --orange-2:#FB4602;
  --v113-ink:#191B1D;
}

/* La police exacte Nexa n'est chargée que si elle est disponible côté navigateur.
   Inter Tight reste le fallback web pour ne pas casser l'affichage. */
.home-body h1,
.home-body h2,
.home-body .big-price,
.home-body .booking-title-row h2,
.home-body .pass-teaser-copy-v110 h2,
.home-body .mon-pass-callout-box h2,
.home-body .cta-box h2,
.home-body .contact-box h2{
  font-family:"Nexa Heavy","Nexa Black","Inter Tight",sans-serif!important;
}

/* Couleurs visibles : alignées sur le guide du graphiste. */
.home-body .hero h1 span,
.home-body .section-mini-head>span,
.home-body .section-head-left>span,
.home-body .pass-teaser-copy-v110>span,
.home-body .mon-pass-callout-box>div>span,
.home-body .contact-box>div>span,
.home-body .quick-price,
.home-body .price-card li::before,
.home-body .booking-progress span.active,
.home-body .booking-progress span.active b,
.home-body .audience-strip-inner-v109>div>span{
  color:var(--brand-orange)!important;
}
.home-body .btn-orange,
.home-body .header-cta{
  background:var(--brand-orange)!important;
  color:var(--brand-white)!important;
  border-color:var(--brand-orange)!important;
  box-shadow:0 12px 28px rgba(251,70,2,.17)!important;
}
@media(hover:hover){
  .home-body .btn-orange:hover,
  .home-body .header-cta:hover{
    background:#e93f00!important;
    border-color:#e93f00!important;
  }
}
.home-body .btn-dark,
.home-body .pass-teaser-cta-v110,
.home-body .mon-pass-callout-box .btn{
  background:var(--brand-black)!important;
  color:var(--brand-white)!important;
}
.home-body .cta-wave-v118 path{fill:var(--brand-orange)!important}

/* 1) Date sélectionnée : ce n'est pas l'étape 2 du tunnel. */
.home-body .date-panel-head{
  display:flex;
  align-items:center;
  gap:10px;
}
.home-body .date-panel-icon-v119{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(251,70,2,.09);
  border:1px solid rgba(251,70,2,.22);
  color:var(--brand-orange);
}
.home-body .date-panel-icon-v119 .ui-icon{
  width:16px;
  height:16px;
  stroke-width:1.8;
}

/* 2) Les 4 étapes de service restent présentes mais ne répètent plus visuellement
      la timeline du panneau de réservation. */
.home-body .premium-service-band{
  padding-top:10px!important;
}
.home-body .premium-service-grid{
  border-radius:20px!important;
  box-shadow:0 12px 32px rgba(25,27,29,.035)!important;
}
.home-body .premium-service-grid>div{
  min-height:96px!important;
  padding:18px 22px!important;
}
.home-body .premium-service-grid>div>span{
  font-size:.5rem!important;
  color:rgba(251,70,2,.7)!important;
}
.home-body .premium-service-grid strong{
  font-size:.82rem!important;
  line-height:1.2!important;
}
.home-body .premium-service-grid small{
  margin-top:5px!important;
  font-size:.57rem!important;
  line-height:1.45!important;
  color:#7a7f83!important;
}

/* 3) Progression de réservation : taille mobile lisible sans casser la ligne. */
@media(max-width:759px){
  .home-body .booking-progress{
    gap:3px!important;
    width:100%;
  }
  .home-body .booking-progress span{
    gap:4px!important;
    font-size:.625rem!important; /* 10 px */
    line-height:1.15;
  }
  .home-body .booking-progress span b{
    width:24px!important;
    height:24px!important;
    flex-basis:24px!important;
    font-size:.54rem!important;
  }
  .home-body .booking-progress i{
    min-width:5px!important;
    flex:1 1 7px;
  }
}
@media(max-width:430px){
  .home-body .booking-progress span{
    font-size:.59rem!important;
  }
  .home-body .booking-progress span:nth-of-type(3){
    letter-spacing:-.02em;
  }
}

/* 4) Footer : les mentions utiles ne sont plus traitées comme du micro-texte. */
.home-body .footer-bottom{
  font-size:.61rem!important;
  color:rgba(255,255,255,.50)!important;
}
.home-body .footer-legal-links{
  gap:17px!important;
}
.home-body .footer-legal-links a{
  font-size:.62rem!important;
  line-height:1.4!important;
  color:rgba(255,255,255,.56)!important;
}
.home-body .footer-legal-links a:hover{
  color:var(--brand-white)!important;
}

/* 5) CTA : même intention partout. Le texte HTML est maintenant « Vérifier une date ». */
.home-body .header-cta,
.home-body .mobile-menu-cta,
.home-body .hero-actions-v106 .btn:first-child,
.home-body .price-card .btn,
.home-body .cta-box .btn{
  letter-spacing:-.005em;
}

/* 6) Accès Mon Pass : visible pour les abonnés sans créer un second gros bloc commercial. */
.home-body .mon-pass-callout{
  padding-top:18px!important;
}
.home-body .mon-pass-callout-box{
  min-height:0!important;
  padding:18px 22px!important;
  border-radius:18px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:22px!important;
  align-items:center!important;
  box-shadow:0 10px 28px rgba(25,27,29,.025)!important;
}
.home-body .mon-pass-callout-box>div>span{
  font-size:.5rem!important;
}
.home-body .mon-pass-callout-box h2{
  margin-top:4px!important;
  font-size:clamp(1.15rem,2vw,1.55rem)!important;
  line-height:1.05!important;
  letter-spacing:-.035em!important;
}
.home-body .mon-pass-callout-box p{
  margin-top:5px!important;
  max-width:720px;
  font-size:.62rem!important;
  line-height:1.5!important;
}
.home-body .mon-pass-callout-box .btn{
  min-height:42px!important;
  min-width:132px!important;
  padding-inline:16px!important;
  font-size:.62rem!important;
}

@media(max-width:759px){
  .home-body .premium-service-grid>div{
    min-height:82px!important;
    padding:15px 14px!important;
  }
  .home-body .premium-service-grid small{
    font-size:.56rem!important;
  }
  .home-body .mon-pass-callout-box{
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:17px 16px!important;
  }
  .home-body .mon-pass-callout-box p{
    font-size:.64rem!important;
  }
  .home-body .mon-pass-callout-box .btn{
    width:100%!important;
  }
  .home-body .footer-legal-links a{
    font-size:.65rem!important;
  }
}


/* =====================================================
   V120 — TYPOGRAPHIE OFFICIELLE NEXA HEAVY
   La police de texte reste Manrope pour conserver une bonne lisibilité.
===================================================== */
@font-face{
  font-family:"Nexa Heavy";
  src:local("Nexa Heavy"),
      local("Nexa-Heavy");
  font-style:normal;
  font-weight:800;
  font-display:swap;
}

/* Titres et chiffres d'impact : identité de marque. */
.home-body h1,
.home-body h2,
.home-body .big-price,
.home-body .booking-title-row h2,
.home-body .pass-teaser-copy-v110 h2,
.home-body .mon-pass-callout-box h2,
.home-body .cta-box h2,
.home-body .contact-box h2,
.flow-body h1,
.flow-body h2,
.legal-body h1,
.legal-body h2{
  font-family:"Nexa Heavy","Inter Tight",sans-serif!important;
  font-weight:800!important;
}


/* =====================================================
   V121 — CORRECTION ARTEFACTS VISUELS
   Ne touche pas au watermark/logo de fond V115.
===================================================== */

/* 1) Bloc Matériel : supprime la couture claire à l'extrémité droite.
      Le contour est porté par l'ombre de la carte, pas par une bordure
      qui peut créer un trait vertical selon le rendu navigateur. */
.home-body .quick-info-grid{
  border:0!important;
  box-shadow:0 18px 45px rgba(30,34,38,.045)!important;
}
.home-body .quick-info-grid article:last-child{
  border-right:0!important;
  box-shadow:none!important;
}

/* 2) Fonds décoratifs : garder les nuances de fond sans traits horizontaux
      sur toute la largeur de la page. */
.home-body .quick-info::before,
.home-body .faq-section::before{
  border-top:0!important;
  border-bottom:0!important;
}

/* 3) Footer : suppression du filet orange qui dépassait au-dessus du footer. */
.home-body .footer::before{
  display:none!important;
  content:none!important;
}


/* =====================================================
   V123 — TYPOGRAPHIE OFFICIELLE NEXA BLACK + NEXA HEAVY
   Nexa Black : très gros titres / chiffres d'impact.
   Nexa Heavy : titres secondaires. Manrope : texte courant.
===================================================== */
@font-face{
  font-family:"Nexa Black";
  src:local("Nexa Black"),
      local("Nexa-Black");
  font-style:normal;
  font-weight:900;
  font-display:swap;
}

/* Niveau 1 — identité forte */
.home-body .hero h1,
.home-body .booking-title-row h2,
.home-body .section-mini-head h2,
.home-body .section-head-left h2,
.home-body .pass-teaser-copy-v110 h2,
.home-body .cta-box h2,
.home-body .contact-box h2,
.home-body .big-price,
.flow-body h1,
.legal-body h1{
  font-family:"Nexa Black","Nexa Heavy","Inter Tight",sans-serif!important;
  font-weight:900!important;
}

/* Niveau 2 — titres importants mais moins dominants */
.home-body .mon-pass-callout-box h2,
.home-body .price-card h3,
.home-body .equipment-card h3,
.home-body .faq-item summary strong,
.flow-body h2,
.legal-body h2{
  font-family:"Nexa Heavy","Inter Tight",sans-serif!important;
  font-weight:800!important;
}
