/* ULM Enhanced — identité "ciel/aviation", sobre, contraste fort pour lisibilité en extérieur */
:root{
  --sky:        #1C3D5A;   /* bleu ciel profond */
  --sky-light:  #EAF2F8;   /* bleu très clair, fond */
  --sun:        #E8A33D;   /* jaune/orange soleil levant, accent rare */
  --ink:        #1A1D1F;
  --ink-soft:   #555B61;
  --white:      #FFFFFF;
  --rule:       rgba(26,29,31,0.14);

  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px;
  --max-w: 1180px;
  --radius-sm:4px; --radius-md:8px; --radius-lg:16px;
}

*{box-sizing:border-box;}
body{margin:0;font-family:'Public Sans', -apple-system, sans-serif;background:var(--white);color:var(--ink);line-height:1.5;}
a{color:inherit;}
.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--s3);}
.accent{color:var(--sun);}

.site-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:var(--s2) var(--s3);background:var(--sky);color:var(--white);
}
.site-header .logo{font-weight:700;font-size:18px;text-decoration:none;color:var(--white);}
.site-header nav a{color:var(--white);text-decoration:none;margin-left:var(--s3);font-size:14px;text-transform:uppercase;letter-spacing:0.04em;}
.site-header nav a:hover{text-decoration:underline;}

.hero{
  background:linear-gradient(180deg, var(--sky) 0%, #2C5A82 100%);
  color:var(--white);padding:var(--s6) var(--s3);text-align:center;
}
.hero h1{font-size:clamp(2rem,5vw,3.2rem);margin:0 0 var(--s2);}
.hero .lede{max-width:560px;margin:0 auto var(--s4);font-size:18px;color:rgba(255,255,255,0.85);}

.page-hero{background:var(--sky);color:var(--white);padding:var(--s5) var(--s3);min-height:30vh;display:flex;flex-direction:column;justify-content:center;}
.page-hero .label{font-size:13px;text-transform:uppercase;letter-spacing:0.06em;color:var(--sun);display:block;margin-bottom:var(--s1);}
.page-hero h1{margin:0;font-size:clamp(1.8rem,4vw,2.6rem);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:var(--s1) var(--s3);min-height:48px;border-radius:var(--radius-md);
  border:1px solid var(--sky);background:var(--white);color:var(--sky);
  text-decoration:none;font-weight:600;cursor:pointer;font-size:15px;
}
.btn-dark{background:var(--sky);color:var(--white);border-color:var(--sky);}

.offer-list{display:grid;grid-template-columns:1fr;gap:var(--s3);margin:var(--s4) 0;}
@media (min-width:720px){ .offer-list{grid-template-columns:repeat(2,1fr);} }
@media (min-width:1024px){ .offer-list{grid-template-columns:repeat(3,1fr);} }
.offer-card{
  display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:var(--radius-md);
  overflow:hidden;text-decoration:none;color:var(--ink);transition:box-shadow 0.15s;
}
.offer-card:hover{box-shadow:0 4px 16px rgba(0,0,0,0.08);}
.offer-thumb{aspect-ratio:4/3;background:var(--sky-light);overflow:hidden;}
.offer-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.offer-info{padding:var(--s2);display:flex;flex-direction:column;gap:var(--s1);flex:1;}
.offer-type{font-size:11px;text-transform:uppercase;letter-spacing:0.06em;color:var(--sky);font-weight:700;}
.offer-info h3{margin:0;font-size:17px;}
.offer-info p{margin:0;font-size:14px;color:var(--ink-soft);flex:1;}
.offer-meta-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);margin-top:var(--s1);}
.offer-duration{font-size:12px;color:var(--ink-soft);white-space:nowrap;}
.offer-price{font-weight:700;color:var(--sky);white-space:nowrap;}

.offer-detail-grid{display:grid;grid-template-columns:1fr;gap:var(--s4);padding:var(--s4) 0;}
@media (min-width:860px){ .offer-detail-grid{grid-template-columns:2fr 1fr;} }
.offer-detail-img{width:100%;border-radius:var(--radius-md);margin-bottom:var(--s3);}
.fact-table{border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--s2);margin-bottom:var(--s3);}
.fact-table .row{display:flex;justify-content:space-between;padding:var(--s1) 0;border-bottom:1px solid var(--rule);}
.fact-table .row:last-child{border-bottom:none;}
.fact-table .k{color:var(--ink-soft);font-size:14px;}
.fact-table .v{font-weight:600;}
.hint-box{background:var(--sky-light);border-radius:var(--radius-sm);padding:var(--s2);font-size:13px;color:var(--ink-soft);max-width:420px;}

.site-footer{background:var(--ink);color:rgba(255,255,255,0.7);padding:var(--s4) 0;margin-top:var(--s5);font-size:13px;}
.site-footer p{margin:var(--s1) 0;}

/* Modale de réservation */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--s3);}
.modal-box{background:var(--white);border-radius:var(--radius-md);padding:var(--s4);max-width:480px;width:100%;max-height:90vh;overflow-y:auto;position:relative;}
.modal-close{position:absolute;top:var(--s2);right:var(--s2);background:none;border:none;font-size:24px;cursor:pointer;min-height:44px;min-width:44px;}
.bm-sub{color:var(--ink-soft);margin-bottom:var(--s3);}
.bm-row2{display:grid;grid-template-columns:1fr;gap:var(--s2);margin-bottom:var(--s2);}
@media (min-width:480px){ .bm-row2{grid-template-columns:1fr 1fr;} }
.bm-label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-soft);margin-bottom:var(--s1);}
.bm-input{width:100%;min-height:44px;padding:var(--s1) var(--s2);border:1px solid var(--rule);border-radius:var(--radius-sm);font-size:16px;font-family:inherit;margin-bottom:var(--s2);}
#bmSlotSelect{margin:var(--s2) 0;}
