/* ================================ Variables & bases ================================ */
:root{--orange:#DD7E16;--orange-hover:#e6953d;--text:#333;--border:#d7d7d7;--border-light:#cfcfcf;--search-border-gray:#ced4da;--overlay-black:rgba(0,0,0,.6);--focus-orange:rgba(221,126,22,.25);}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;}
.events-calendar.container-fluid{padding-left:0!important;padding-right:0!important;}
.btn:focus:not(:focus-visible),button:focus:not(:focus-visible){box-shadow:none!important;outline:none!important;}
:where(a,button,[role="tab"]):focus-visible{outline:3px solid var(--focus-orange);outline-offset:2px;border-radius:.25rem;}
input.form-control:focus{border-color:var(--orange)!important;box-shadow:0 0 0 .25rem var(--focus-orange)!important;}

/* ================================ 1) HEADER (année + mois) ================================ */
.calendar-year{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem;margin-bottom:1rem;padding:.6rem 1rem;border:1px solid var(--border);border-radius:.75rem;font-weight:600;color:var(--text);}
.calendar-year .year-label{flex:1;text-align:center;font-size:1.25rem;}
.calendar-year .year-nav{color:var(--text);text-decoration:none;padding:.25rem .6rem;}
.calendar-year .year-nav:hover,.calendar-year .year-nav:focus-visible{color:var(--orange);text-decoration:none;}
.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem .75rem;margin-bottom:1rem;}
.month-pill{display:block;text-align:center;padding:.45rem .65rem;border:1px solid var(--border);border-radius:9999px;text-decoration:none;background:#fff;color:var(--text);transition:background-color .2s,border-color .2s,color .2s;}
.month-pill:hover{background:#f0f0f0;border-color:var(--border-light);}
.month-pill.is-active{background:var(--orange);border-color:var(--orange);color:#fff;}
.month-pill.is-active:hover{background:var(--orange-hover);border-color:var(--orange-hover);}
.month-pill.is-current{border-color:var(--orange);color:var(--orange);font-weight:600;}
.month-pill.is-current.is-active{color:#fff;}
.month-pill:focus-within{box-shadow:0 0 0 3px var(--focus-orange);}

/* ================================ 2) TABS sous le titre ================================ */
.tabs-under-title{padding:0 0 20px;}
h2.tabs-nav.custom-heading{padding-bottom:0!important;}
.tabs-nav{position:relative;display:flex;align-items:flex-end;text-align:center;gap:0;margin:0;padding:0;}
.tabs-nav::after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:#000;z-index:0;}
.tabs-nav .tab-link{flex:1 1 0;position:relative;display:inline-block;padding-bottom:10px;text-decoration:none;color:var(--text);font-weight:600;line-height:1.2;text-align:center;}
.tabs-nav .tab-link::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left center;transition:transform .2s ease;z-index:1;}
.tabs-nav .tab-link.active{color:var(--orange);}
.tabs-nav .tab-link.active::after{transform:scaleX(1);}
.tabs-nav .tab-link:not(.active):hover{opacity:.85;}
.tabs-nav .tab-link:focus-visible{outline-offset:6px;}

/* ================================ 3) RECHERCHE & FILTRES ================================ */
.search{width:40%;padding:1.5vw 0 4vw;}
#clearSearch{color:var(--orange);}
#clearSearch:hover,#clearSearch:focus-visible{color:darkorange;}
a.btn.btn-outline-secondary{color:var(--orange);border-color:var(--orange);}
a.btn.btn-outline-secondary:hover,a.btn.btn-outline-secondary:focus-visible{background:var(--orange);color:#fff;border-color:var(--orange);text-decoration:none;}
button.btn.btn-outline-dark{color:var(--text);border-color:var(--search-border-gray);}
button.btn.btn-outline-dark:hover,button.btn.btn-outline-dark:focus-visible{background:var(--orange);color:#fff;border-color:var(--orange);}
.btn-orange-active{background:var(--orange);color:#fff;border-color:var(--orange);}
.btn-orange-active:hover,.btn-orange-active:focus-visible{background:var(--orange-hover);border-color:var(--orange-hover);color:#fff;}
.badge{padding:.5rem .75rem;color:var(--text);font-size:.85rem;font-weight:400;border-radius:1.5rem;}
.badge a:focus-visible{outline:2px solid var(--focus-orange);outline-offset:2px;border-radius:1rem;}
.filter-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(6px);z-index:9999;display:none;align-items:center;justify-content:center;}
.filter-modal{position:relative;background:#fff;width:90%;border-radius:12px;padding:2rem;box-shadow:0 10px 30px rgba(0,0,0,.2);overflow-y:auto;max-height:90vh;}
.filter-modal .form-select,.filter-modal .btn{margin-bottom:1rem;}
.filter-modal .btn-close{position:absolute;top:1rem;right:1rem;font-size:1.2rem;}
.filter-modal .btn-close:hover,.filter-modal .btn-close:focus-visible{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23DD7E16'%3E%3Cpath d='M2.146 2.146a.5.5 0 0 1 .708 0L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854a.5.5 0 1 1 0-.708z'/%3E%3C/svg%3E");}
.filter-group{padding-bottom:20px;margin-bottom:30px;border-bottom:1px solid #e0e0e0;}
.filter-group:last-of-type{border-bottom:none;}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;}
.filter-option{position:relative;display:inline-block;line-height:1;}
.filter-option>input{position:absolute;inset:0;opacity:0;pointer-events:none;}
.filter-option .chip{display:inline-block;padding:6px 14px;border:1px solid var(--border);border-radius:20px;background:#fff;color:var(--text);cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s;}
.filter-option .chip:hover{background:#f0f0f0;border-color:var(--border-light);}
.filter-option>input:checked+.chip{background:var(--orange);border-color:var(--orange);color:#fff;}
.filter-option>input:checked+.chip:hover{background:var(--orange-hover);border-color:var(--orange-hover);}
.filter-option>input:focus+.chip,.filter-option .chip:focus-visible{box-shadow:0 0 0 3px var(--focus-orange);outline:0;}
#country-map svg{width:100%;height:auto;}
#country-map [data-country]{fill:#ccc;cursor:pointer;transition:fill .2s ease;}
#country-map .is-selected{fill:var(--orange)!important;stroke:#fff;stroke-width:1px;cursor:pointer;}
.filter-btn{display:block;margin:60px auto 20px;padding:12px 30px;width:80%;max-width:300px;background:var(--orange);color:#fff;font-size:1.1rem;font-weight:700;border:0;border-radius:6px;cursor:pointer;transition:background-color .3s ease,transform .05s ease;}
.filter-btn:hover,.filter-btn:focus-visible{background:var(--orange-hover);color:#fff;}
.filter-btn:active{transform:scale(.98);}

/* ================================ 4) CARTES & GRILLE ================================ */
.event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5vw;width:100%;}
.event-item{width:100%;}
.event-card{position:relative;aspect-ratio:1/1;border-radius:.5rem;background-size:cover;background-position:center;display:flex;align-items:flex-end;overflow:hidden;transition:box-shadow .3s ease,transform .3s ease;}
.event-card:hover{transform:scale(1.02);box-shadow:0 0 25px rgba(221,126,22,.35);}
.event-card.is-disabled:hover,.event-card.closed:hover{transform:none;}
.event-card.is-disabled,.event-card.closed{cursor:default;}
.event-card.is-disabled .overlay a,.event-card.closed .overlay a{pointer-events:none;}
.event-card .overlay{width:100%;padding:1rem;background:linear-gradient(to top,var(--overlay-black),transparent);color:#fff;}
.event-card p{margin:0;font-size:.9rem;}
.event-card button{margin-top:.5rem;font-size:.8rem;padding:.3rem .6rem;background:#fff;color:var(--text);border:0;border-radius:.2rem;cursor:pointer;transition:all .2s ease;}
.event-card button:hover,.event-card button:focus-visible{background:var(--orange);color:#fff;outline:2px solid var(--focus-orange);outline-offset:2px;}
.coming-soon,.closed-label{margin-top:.5rem;font-weight:700;color:var(--orange);}
.benefit-star{position:absolute;top:8px;right:8px;font-size:24px;line-height:1;color:#FFD700;text-shadow:0 1px 2px rgba(0,0,0,.35);z-index:2;pointer-events:none;}

/* ================================ 5) RESPONSIVE ================================ */
@media (max-width:360px){
  .month-pill{font-size:.66rem;padding:.28rem .2rem;}
}
@media (max-width:576px){
  html,body{overflow-x:hidden;max-width:100%;}
  .event-card .overlay{padding:.6rem;}
  .event-card p{font-size:.8rem;}
  .event-card button{font-size:.7rem;padding:.2rem .5rem;}
  .calendar-year{padding:.4rem .6rem;gap:.5rem;}
  .calendar-year .year-label{font-size:1rem;}
  .calendar-year .year-nav{padding:.15rem .35rem;}
  .month-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem .35rem;}
  .month-pill{padding:.30rem .25rem;font-size:.72rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .month-pill.is-active{background:var(--orange);border-color:var(--orange);color:#fff;}
  .month-pill.is-current{border-color:var(--orange);color:var(--orange);}
  .month-pill.is-current.is-active{color:#fff;}
}
@media (max-width:768px){
  .event-grid{grid-template-columns:repeat(2,1fr);}
  .search{width:80%;margin-top:6vw;padding-bottom:6vw;}
}
@media (max-width:1024px){
  .event-grid{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:1200px){
  .events-calendar.container-fluid{max-width:1240px;margin-left:auto!important;margin-right:auto!important;padding-left:24px!important;padding-right:24px!important;}
}
@media (min-width:1600px){
  .events-calendar.container-fluid{max-width:1400px;margin-left:auto!important;margin-right:auto!important;padding-left:24px!important;padding-right:24px!important;}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}.event-card:hover{transform:none!important;}}
