:root{color-scheme:light;--cream:#f8f6ef;--paper:#fffdf8;--ink:#213b32;--muted:#58665c;--green:#234438;--line:#e3dfd4;--peach:#f2ac7d;--serif:Georgia,"Times New Roman",serif;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink)}
[hidden]{display:none!important}
a{color:inherit}
button,input,select{font:inherit}
button,select{cursor:pointer}
button:disabled{opacity:.65;cursor:wait}
:focus-visible{outline:2px solid #b6522f;outline-offset:3px}
svg.icon{width:18px;height:18px;display:inline-block;flex:none;vertical-align:middle;stroke-width:1.75}
.wrap{width:min(1160px,calc(100% - 68px));margin-inline:auto}
.top{border-bottom:1px solid var(--line)}
.top-inner{height:72px;display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 23px/.92 var(--serif);letter-spacing:-.035em}
.brand small{display:block;margin-top:7px;font:750 8px/1 system-ui,sans-serif;letter-spacing:.15em;color:var(--muted)}
.accent{color:#a95337}
.saved,.outline{background:transparent;border:1px solid #dcd9cd;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--ink);padding:9px 14px;font-weight:650;font-size:.88rem}
.saved[aria-pressed="true"],.saved:hover,.outline:hover{background:#e9eee4;border-color:#b7c5b7}
.hero{position:relative;background:#203c33;border-radius:22px;margin-top:29px;color:#fff8e9;isolation:isolate}

.hero-art{
  position:absolute;
  inset:0 0 0 31%;
  border-radius:inherit;
  background:linear-gradient(90deg,#203c33,transparent 32%),
    url("images/accueil-soiree.webp") right center / cover no-repeat;
}
.hero-body{position:relative;width:49%;padding:38px 0 36px clamp(24px,4vw,48px)}
.hero .eyebrow{justify-content:flex-start}
.hero h1{text-align:left;white-space:normal;font-size:clamp(3.25rem,6.5vw,6rem)}
.hero h1 em{display:block}
.eyebrow,.section-label{font-weight:800;font-size:.71rem;letter-spacing:.15em}
.eyebrow{color:#f9c39b;display:flex;align-items:center;justify-content:center;gap:8px}
.eyebrow span{width:7px;height:7px;border-radius:50%;background:#f2ac7d}
h1,h2,h3,p{margin:0}
h1{font:700 clamp(3.4rem,6.3vw,6.25rem)/1 var(--serif);letter-spacing:-.075em;margin:12px 0 14px;white-space:nowrap;text-align:center}
h1 em{color:#f4b488;font-weight:400}
.hero p{max-width:390px;color:#f3eee0;font-size:1.03rem;line-height:1.55}
#search-form{margin-top:22px}
.search-row{display:flex;gap:6px;background:var(--paper);border:1px solid #ffffff94;box-shadow:0 8px 20px #132e2470;border-radius:11px;padding:6px;align-items:stretch;color:var(--ink)}
.city-field{display:flex;align-items:center;flex:1;min-width:0;position:relative;padding-left:12px;gap:9px;color:#546d59}
.city-field input{flex:1;min-width:0;border:none;color:var(--ink);background:transparent;padding:10px 3px;outline:none}
.city-field:focus-within{outline:2px solid #55856a;outline-offset:-2px;border-radius:6px}
.city-field input::placeholder{color:#636f63}
#search-button,.announce-button{border:0;background:#f3ae81;border-radius:7px;padding:10px 16px;color:#302d23;font-weight:800;white-space:nowrap}
#search-button:hover,.announce-button:hover{background:#ffbf96}
#search-button span{padding-left:9px}
#suggestions{position:absolute;z-index:5;list-style:none;margin:0;padding:5px;top:calc(100% + 9px);left:-7px;width:max(100%,235px);background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 26px #132e2433;border-radius:9px;color:var(--ink)}
#suggestions li{cursor:pointer;padding:8px;border-radius:5px}
#suggestions li:hover,#suggestions li[aria-selected="true"]{background:#e8eee6}
#suggestions small{display:block;color:var(--muted)}
.search-message:not(:empty){margin-top:8px;color:#ffcfb1;font-size:.83rem}
.quick-cities{display:flex;gap:7px;align-items:center;margin-top:13px;color:#e5e7dc;font-size:.79rem}
.quick-cities button{border:1px solid #ffffff45;color:#fff9ef;background:#ffffff0a;border-radius:40px;padding:4px 10px;font-size:.78rem}
.quick-cities button:hover{background:#ffffff24}
.agenda{margin-top:37px;scroll-margin-top:20px}
.results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:17px}
.section-label{color:#985136}
h2{font:700 clamp(2.1rem,4.6vw,3.4rem)/1.05 var(--serif);letter-spacing:-.055em;margin:5px 0}
#results-status{color:var(--muted);font-size:.94rem;min-height:1.5em}
.radius{background:#eaf0e5;border:1px solid #d8e1d2;border-radius:99px;padding:7px 12px;color:#355a45;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:700;font-size:.79rem;margin-top:27px}
.radius .icon{width:15px;height:15px}
.filter-box{background:#fffdf8;border:1px solid var(--line);border-radius:13px;padding:12px 13px;margin-bottom:17px}
.filter-categories,.filter-options{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.filter-categories button{display:inline-flex;align-items:center;gap:6px;background:var(--cream);border:1px solid #e5e3d9;border-radius:7px;color:#33493e;padding:7px 9px;font-size:.78rem;font-weight:675}
.filter-categories button:hover{background:#e9eee4}
.filter-categories button[aria-pressed="true"]{color:#fffdf5;background:var(--green);border-color:var(--green)}
.filter-categories .icon{width:15px;height:15px}
.filter-options{padding-top:9px;margin-top:10px;border-top:1px solid #ebe7dc;gap:12px;color:#48594e;font-size:.79rem}
.filter-options label{display:inline-flex;gap:7px;align-items:center}
.filter-options select{background:var(--cream);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:5px;max-width:100%}
.filter-options .sort-label{margin-left:auto}
.free-filter input{accent-color:var(--green);height:15px;width:15px;margin:0}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:13px;overflow:hidden;min-width:0;display:flex;flex-direction:column}
.card-visual{height:162px;position:relative;overflow:hidden;background:#e4eae3;color:#355a45;display:grid;place-items:center}
.card-visual::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 90% 90%,transparent 0 13px,currentColor 14px 15px,transparent 16px 27px);opacity:.13}
.card-visual>.icon{width:60px;height:60px;opacity:.75;stroke-width:1.15}
.card-visual img{position:absolute;width:100%;height:100%;inset:0;object-fit:cover}
.date-badge,.heart-button{position:absolute;top:12px;background:#fffdf5;border:1px solid #e5e1d3;color:#264739;border-radius:8px;min-width:40px;min-height:39px;display:grid;place-content:center;text-align:center}
.date-badge{left:12px;padding:4px 7px;font-size:.66rem;font-weight:750;text-transform:uppercase;line-height:1.13}
.date-badge strong{font-size:1.07rem}
.heart-button{right:12px}
.heart-button[aria-pressed="true"]{color:#aa4f33}
.heart-button[aria-pressed="true"] svg{fill:#efb096}
.card-content{padding:13px;display:flex;flex-direction:column;flex:1;gap:7px}
.tag{align-self:flex-start;display:inline-flex;gap:5px;align-items:center;border-radius:5px;background:var(--card-bg,#e5eadf);color:var(--card-ink,#315541);font-size:.72rem;font-weight:780;padding:3px 7px}
.tag .icon{width:13px;height:13px}
.card h3{font:700 1.26rem/1.15 var(--serif);letter-spacing:-.023em;overflow-wrap:anywhere}
.card-place{display:flex;align-items:center;gap:5px;color:#57685c;font-size:.8rem}
.card-place .icon{width:15px;height:15px}
.card-info{align-self:flex-start;background:transparent;border:0;color:#355f48;font-size:.78rem;font-weight:800;padding:2px 0;margin-top:auto;text-align:left}
.card-info:hover{text-decoration:underline}
.notice{background:#f3eadb;border:1px solid #e6d9c6;border-radius:8px;color:#594633;padding:9px 12px;margin-bottom:15px;font-size:.83rem}
.empty{grid-column:1/-1;background:var(--paper);border:1px dashed #d8d5c8;border-radius:10px;text-align:center;padding:30px 14px;color:var(--muted)}
.empty strong{display:block;color:var(--ink);font-size:1.08rem;margin-bottom:4px}
.empty button{margin-top:12px}
.more-row{text-align:center;margin-top:16px}
.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:40px;border-top:1px solid var(--line);padding:19px 0 25px;color:var(--muted);font-size:.8rem}
.footer strong{font:700 1rem var(--serif);color:var(--ink)}
.footer a{white-space:nowrap}
dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:16px;width:min(540px,calc(100% - 28px));padding:23px;max-height:calc(100% - 30px);overflow:auto}
dialog::backdrop{background:#172c22ab}
dialog h2{font-size:2rem;padding-right:21px;margin:9px 0 13px;overflow-wrap:anywhere}
dialog p{margin:9px 0;white-space:pre-line}
dialog .close{position:absolute;right:10px;top:10px;border:0;border-radius:7px;background:#e9eee4;color:var(--ink);width:32px;height:32px;font-size:1.4rem;line-height:1}
.source{display:block;color:var(--muted);font-size:.78rem;margin-top:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:930px){.wrap{width:calc(100% - 40px)}}
@media(max-width:670px){.wrap{width:calc(100% - 28px)}.hero{margin-top:15px}h1{font-size:clamp(2.65rem,10vw,4.35rem)}.hero p{font-size:.95rem}#search-form{margin-top:17px}.search-row{gap:3px}.city-field{gap:4px;padding-left:5px}#search-button{padding:9px;font-size:.79rem}#search-button span{display:none}.agenda{margin-top:25px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.card-visual{height:126px}.card-content{padding:10px}.card h3{font-size:1.06rem}}
@media(max-width:365px){.results-head{align-items:flex-start;flex-direction:column;gap:3px}.cards{grid-template-columns:1fr}.footer{align-items:flex-start;flex-direction:column;gap:4px}.filter-options .sort-label{margin-left:0}}
.quick-cities{flex-wrap:wrap}
@media(max-width:490px){.filter-options .sort-label{margin-left:0}}
#search-button span{font-family:Arial,sans-serif}
.announce-row{display:flex;justify-content:flex-end;margin-top:14px}
.announce-row + .agenda{margin-top:17px}
h1{font-size:clamp(3.15rem,5.65vw,5.55rem)}
.programs{margin-top:17px;background:#fffdf8;border:1px solid var(--line);border-radius:9px;padding:12px 14px;font-size:.85rem}
.programs strong{display:block;margin-bottom:6px}
.programs ul{display:flex;flex-wrap:wrap;gap:7px 14px;list-style:none;padding:0;margin:0}
.programs a{color:#355f48;font-weight:650}
.card-source{color:var(--muted);font-size:.73rem;overflow-wrap:anywhere}
#announcement-fields{border:0;padding:0;margin:0;display:grid;gap:8px}
#announcement-fields label{display:grid;gap:3px;font-size:.84rem;font-weight:660}
#announcement-fields input:not([type="checkbox"]),#announcement-fields select,#announcement-fields textarea{width:100%;background:var(--cream);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px}
#announcement-fields textarea{resize:vertical;font:inherit}
#announcement-fields .free-filter{display:flex;align-items:center;gap:7px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.form-status:not(:empty){background:#f3eadb;padding:7px 9px;border-radius:6px}
.footer{flex-wrap:wrap}
.footer>div{margin-right:auto}
@media(max-width:670px){
  h1{font-size:clamp(2.3rem,8.6vw,3.8rem);white-space:normal}
  .top-inner{height:auto;min-height:65px;gap:7px;padding-block:8px}
  .brand{font-size:19px}.brand img{width:30px;height:30px}
}
.moderation{width:min(720px,calc(100% - 28px));padding:30px 0}
.moderation h1{text-align:left;white-space:normal;font-size:clamp(2.35rem,5vw,4rem);margin:16px 0 22px}
.moderation h2{font-size:1.75rem;margin:22px 0 12px}
.moderation-login{display:flex;flex-wrap:wrap;align-items:end;gap:10px}
.moderation-login label{display:grid;gap:4px}
.moderation-login input{border:1px solid var(--line);border-radius:7px;background:var(--paper);padding:8px}
.moderation-card{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);margin-bottom:10px}
.moderation-card p{margin:6px 0;overflow-wrap:anywhere}
.moderation-card form{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.moderation-description{white-space:pre-wrap}

.illustration-note{position:absolute;bottom:6px;right:6px;padding:2px 5px;background:#203c33e8;color:white;border-radius:4px;font-size:.63rem;font-weight:650}
.radius select{font:inherit;color:inherit;border:0;background:transparent;border-radius:4px}
.programs{margin:0 0 16px}
.programs p{margin:7px 0 0}
.programs button{margin:4px 0 0 4px;padding:5px 8px}
.card-venue{font-size:.8rem;color:#355a45}

@media(max-width:760px){
  .hero{padding-bottom:clamp(172px,56vw,310px)}
  .hero-art{
    inset:auto 0 0;
    height:clamp(172px,56vw,310px);
    background:linear-gradient(180deg,#203c33,transparent 25%),
      url("images/accueil-soiree.webp") right 58% / cover no-repeat;
  }
  .hero-body{width:min(100%,550px);margin-inline:auto;padding:26px 17px 20px}
  .hero .eyebrow{justify-content:center}
  .hero h1{text-align:center;font-size:clamp(2.3rem,8.6vw,4.5rem)}
  .hero h1 em{display:inline}
  .hero p{margin-inline:auto;text-align:center}
}

.legal{width:min(720px,calc(100% - 28px));padding-top:30px}
.legal h1{font-size:clamp(2.35rem,5.6vw,4rem);text-align:left;white-space:normal;margin:0 0 16px}
.legal h2{font:700 1.6rem/1.2 var(--serif);margin:26px 0 8px}
.legal p + p,.legal address + p{margin-top:8px}
.legal address{font-style:normal}
.legal a,.announcement-privacy a{overflow-wrap:anywhere;text-underline-offset:2px}
.announcement-privacy{font-size:.86rem;color:var(--muted)}

/* Formulaire de proposition de sortie */
#announcement-fields .captcha-row{display:grid;gap:5px;font-size:.85rem;font-weight:650}
#announcement-fields .captcha-controls{display:flex;gap:10px;align-items:center}
#announcement-fields .captcha-controls input{max-width:110px}
#announcement-fields .captcha-reload{width:auto;padding:7px 10px;font-size:.82rem;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:7px;cursor:pointer}
#announcement-fields .consent-line{display:flex;align-items:flex-start;gap:8px;font-size:.88rem}
#announcement-fields .consent-line input{margin-top:3px;flex-shrink:0}
#announcement-fields .consent-line a{color:#245c4b;text-decoration:underline}
.email-link{padding:0;border:0;background:none;color:#245c4b;text-decoration:underline;font:inherit;cursor:pointer}

#announcement-fields .captcha-row{display:block;min-height:78px}

/* Lien vers la page de soutien */
.top-actions{display:flex;align-items:center;gap:12px}

/* Navigation de découverte accessible aux visiteurs et moteurs de recherche */
.seo-links{margin:46px 0 30px;padding:28px;background:#f5f7f2;border-radius:18px}
.seo-links h2{font-size:1.3rem;margin:12px 0}.seo-links p{margin:8px 0 14px}
.seo-link-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:14px 0 24px}
.seo-link-list a{display:inline-block;background:#fff;border:1px solid #d9e3d8;border-radius:999px;padding:9px 13px;color:#244d3f;text-decoration:none}
.seo-link-list a:hover,.seo-link-list a:focus{text-decoration:underline}
.seo-page{max-width:900px;margin:45px auto 80px}.seo-page h1{font-size:clamp(2rem,4vw,3rem)}
.seo-page .seo-lead{font-size:1.2rem;line-height:1.65}.seo-page p{line-height:1.65}
.seo-page .seo-cta{display:inline-block;border-radius:12px;background:#203c33;color:#fff;padding:13px 18px;text-decoration:none;font-weight:700}
.seo-page .seo-cta:hover{text-decoration:underline}.seo-page aside{padding:15px 20px;border-left:4px solid #698970;background:#f5f7f2;margin:22px 0}

/* Toute la fiche de sortie est ouvrable, sauf ses commandes indépendantes. */
.card[data-card-uid]{cursor:pointer}
.card[data-card-uid]:focus-visible{outline:3px solid #355f48;outline-offset:3px}
.card[data-card-uid]:hover{border-color:#769b84}
.heart-button,.card-info{cursor:pointer}

/* Statut d'envoi du formulaire : visible pendant l'envoi et après la réponse. */
#announcement-status:not(:empty) {
  color: #b42318;
  font-weight: 800;
  background: #fff1ef;
  border: 1px solid #f4b9b3;
  padding: 10px 12px;
  border-radius: 7px;
}

/* Sélecteur de date homogène : samedi et dimanche en noir, comme les autres jours. */
#announcement-date{cursor:pointer}
.sorties-calendar[hidden]{display:none!important}
.sorties-calendar{position:relative;z-index:10;width:min(320px,100%);padding:12px;background:#fffdf8;border:1px solid #c8c8c0;border-radius:9px;box-shadow:0 6px 20px #0002;color:#111}
.sorties-cal-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:#111}
.sorties-cal-header button{background:#f8f6ef;color:#111;border:1px solid #ddd;border-radius:5px;padding:2px 12px;cursor:pointer}
.sorties-cal-header button:disabled{opacity:.35;cursor:default}
.sorties-cal-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.sorties-cal-days span{padding:5px 0;color:#111;font-weight:600;font-size:.8rem}
.sorties-cal-days button{border:0;border-radius:5px;padding:7px 0;background:transparent;color:#111!important;cursor:pointer;font:inherit}
.sorties-cal-days button:hover:not(:disabled),.sorties-cal-days button[aria-selected="true"]{background:#e2eadf;color:#111!important}
.sorties-cal-days button:disabled{color:#999!important;cursor:default}

/* Choix des heures : fenêtre accessible, sans agrandir les champs du formulaire. */
#announcement-time{cursor:pointer}
.sorties-time-picker[hidden]{display:none!important}
.sorties-time-picker{grid-column:2;position:relative;z-index:10;width:min(260px,100%);padding:12px;background:#fffdf8;border:1px solid #c8c8c0;border-radius:9px;box-shadow:0 6px 20px #0002;color:#111}
.sorties-time-controls{display:flex;align-items:center;gap:8px;margin:10px 0}
#announcement-fields .sorties-time-controls select{width:75px;min-width:0;max-width:40%;background:white;color:#111;border:1px solid #bbb;border-radius:6px;padding:6px;cursor:pointer}
.sorties-time-controls span{font-weight:800}
.sorties-time-picker>button{border:0;border-radius:6px;background:#e2eadf;color:#111;padding:7px 15px;cursor:pointer;font-weight:700}

/* Message des favoris vides : lisible et visible sur téléphone. */
.empty-favorites, .empty-favorites strong, .empty-favorites span{color:#b42318;font-weight:800}
.empty-favorites{scroll-margin-block:18px}


/* Cases à cocher des filtres : meilleur contraste sans changer leur position. */
.filter-options .free-filter {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #213b32;
  font-weight: 800;
  cursor: pointer;
}
.filter-options .free-filter input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: none;
  width: 21px;
  height: 21px;
  margin: 0;
  border: 2px solid #234438;
  border-radius: 5px;
  background: #ffffff;
  display: inline-grid;
  place-content: center;
  cursor: pointer;
}
.filter-options .free-filter input[type="checkbox"]:checked {
  background: #234438;
  border-color: #234438;
}
.filter-options .free-filter input[type="checkbox"]:checked::after {
  content: "";
  width: 10px;
  height: 6px;
  border-left: 3px solid #ffffff;
  border-bottom: 3px solid #ffffff;
  transform: rotate(-45deg) translateY(-1px);
}
.filter-options .free-filter input[type="checkbox"]:focus-visible {
  outline: 3px solid #b6522f;
  outline-offset: 3px;
}
