.availability{position:relative}
.availability:before{content:"";position:absolute;inset:38px 20px auto;height:360px;background:radial-gradient(circle at 50% 0,rgba(207,49,47,.05),transparent 68%);pointer-events:none;z-index:-1}
.availability__head{margin-bottom:38px}
.availability__head h2 em{color:#7d7770}
.availability__head p:last-child{color:#6f6861}

.availability__grid{gap:22px}
.availability__year{padding:30px 30px 26px;border-color:rgba(20,20,20,.10);background:#fff;box-shadow:0 18px 55px rgba(42,34,28,.07)}
.availability__year-head{padding-bottom:20px;margin-bottom:8px;border-bottom-color:rgba(20,20,20,.10)}
.availability__year-number{font-size:46px;color:#171717}
.availability__year-title{color:#8a8179;font-size:10px}

.availability__month{position:relative;grid-template-columns:34px 1fr auto;gap:12px;min-height:54px;padding:9px 12px;margin:4px 0;border:1px solid transparent;border-radius:12px;transition:.2s}
.availability__month:hover{transform:translateX(3px)}
.availability__icon{width:27px;height:27px;font-size:12px;background:rgba(255,255,255,.72)}
.availability__month-name{font-size:14px!important;color:#231f1b!important;font-weight:700!important}
.availability__status{font-size:9px;font-weight:800;letter-spacing:.09em;padding:7px 10px;border-radius:999px;white-space:nowrap}

.availability__month--open{color:#5f7d45;background:#f4f8ef;border-color:#cfddc3}
.availability__month--open .availability__icon{color:#5f7d45;background:#edf5e7;box-shadow:0 0 0 4px rgba(95,125,69,.04)}
.availability__month--open .availability__status{color:#4f7135;background:#eef6e7;border:1px solid #bfd1ae}

.availability__month--limited{color:#b57b1e;background:#fff8eb;border-color:#edd6aa}
.availability__month--limited .availability__icon{color:#ad741a;background:#fff2d8;box-shadow:0 0 0 4px rgba(181,123,30,.04)}
.availability__month--limited .availability__status{color:#9c6818;background:#fff3da;border:1px solid #e6c783}

.availability__month--closed{color:#ba5752;background:#fff0ef;border-color:#efc1be}
.availability__month--closed .availability__icon{color:#ad4d48;background:#ffe5e3;box-shadow:0 0 0 4px rgba(186,87,82,.04)}
.availability__month--closed .availability__status{color:#a74440;background:#ffe8e6;border:1px solid #e9aaa6}

.availability__legend{margin-top:26px;gap:10px;padding:10px 12px;width:max-content;max-width:100%;border:1px solid rgba(20,20,20,.10);border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(42,34,28,.05)}
.availability__legend span{padding:9px 12px;border:1px solid rgba(20,20,20,.08);border-radius:999px;background:#faf8f5;color:#3b3732;font-size:9px;font-weight:700}
.availability__legend i{width:8px;height:8px}
.availability__legend .open i{background:#7fa35f}
.availability__legend .limited i{background:#d49a38}
.availability__legend .closed i{background:#ce6b66}
.availability__foot{margin-top:28px;padding:26px;border:1px solid rgba(20,20,20,.10);border-radius:18px;background:#fff;box-shadow:0 14px 36px rgba(42,34,28,.05)}
.availability__foot strong{font-size:24px;color:#171717}
.availability__foot p{font-size:11px;color:#746c65}

/* Ordre commercial : avis clients avant les disponibilités */
main{display:flex;flex-direction:column}
.hero-modern{order:1}
.section--reviews{order:2}
.availability{order:3}
.section--reviews h2 em{color:#c93431!important}

@media(max-width:620px){
  .availability__year{padding:20px 16px}
  .availability__month{grid-template-columns:32px 1fr;padding:10px;margin:5px 0}
  .availability__status{grid-column:2;text-align:left;width:max-content;margin:2px 0 0;padding:6px 9px}
  .availability__month-name{font-size:13px!important}
  .availability__legend{width:100%}
  .availability__legend span{width:100%;justify-content:flex-start}
  .availability__foot{padding:20px}
}
