/* ═══════════════════════════════════════════════════
   Ambros Events — public.css
   Couleurs pilotées par les variables :root
   injectées depuis Apparence > admin
═══════════════════════════════════════════════════ */
:root {
    --ae-accent:       #1a1a2e;
    --ae-accent-light: #e8e0f0;
    --ae-text:         #222222;
    --ae-bg:           #ffffff;
    --ae-border:       #dddddd;
    --ae-radius:       8px;
    --ae-thumb:        54px;
}

/* ── Barre contrôles ──────────────────────────── */
.ae-controls {
    display:flex; flex-direction:column; gap:.6em;
    padding:.85em 1em; margin-bottom:1.4em;
    background:#f7f7f9; border:1px solid var(--ae-border);
    border-radius:var(--ae-radius); box-sizing:border-box;
}
.ae-controls__row1 { display:flex; align-items:center; gap:.6em; flex-wrap:nowrap; }
.ae-search-wrap    { flex:1; min-width:0; }
.ae-search-input {
    width:100%; padding:.5em .85em; box-sizing:border-box;
    border:1px solid var(--ae-border); border-radius:var(--ae-radius);
    font-size:.95em; font-family:inherit;
}
.ae-controls__row2 { display:flex; flex-wrap:wrap; align-items:center; gap:.55em; }
.ae-select {
    padding:.42em .65em; border:1px solid var(--ae-border);
    border-radius:var(--ae-radius); font-size:.88em; font-family:inherit;
    background:#fff; cursor:pointer; box-sizing:border-box;
}
.ae-toggle-upcoming {
    display:flex; align-items:center; gap:.35em;
    font-size:.88em; color:#666; cursor:pointer; line-height:1.3;
}
.ae-toggle-upcoming input { flex-shrink:0; accent-color:var(--ae-accent); cursor:pointer; }

/* Sélecteur vue */
.ae-view-toggle {
    display:flex; flex-shrink:0;
    border:1px solid var(--ae-border); border-radius:var(--ae-radius); overflow:hidden;
}
.ae-view-btn {
    display:flex; align-items:center; gap:.35em;
    padding:.42em .8em; background:#fff; border:none;
    border-right:1px solid var(--ae-border); font-size:.88em; font-family:inherit;
    cursor:pointer; color:#666; transition:.15s; white-space:nowrap;
}
.ae-view-btn:last-child { border-right:none; }
.ae-view-btn--active    { background:var(--ae-accent); color:#fff; }
.ae-view-btn:not(.ae-view-btn--active):hover { background:var(--ae-accent-light); }

/* ── Liste ────────────────────────────────────── */
.ae-liste    { display:flex; flex-direction:column; gap:.8em; }
.ae-no-events{ color:#888; font-style:italic; padding:1em 0; }

.ae-card-wrap {
    border:1px solid var(--ae-border); border-radius:var(--ae-radius);
    overflow:hidden; background:var(--ae-bg);
    box-shadow:0 1px 4px rgba(0,0,0,.06); transition:box-shadow .2s;
}
.ae-card-wrap:hover { box-shadow:0 3px 12px rgba(0,0,0,.1); }

.ae-card {
    display:flex; align-items:flex-start; gap:.8em;
    padding:.85em .9em; cursor:pointer;
    transition:background .15s; box-sizing:border-box; min-width:0;
}
.ae-card:hover  { background:#f5f5f8; }
.ae-card--open  { background:#f5f5f8; border-bottom:1px solid var(--ae-border); }

.ae-card__thumb {
    flex-shrink:0; width:var(--ae-thumb); height:var(--ae-thumb);
    border-radius:6px; overflow:hidden; background:#eee;
}
.ae-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.ae-card__thumb--empty { display:flex; align-items:center; justify-content:center; }
.ae-card__thumb-icon   { font-size:1.4em; color:#ccc; }

.ae-card__summary { flex:1; min-width:0; }
.ae-card__meta    { display:flex; flex-wrap:wrap; gap:.3em; margin-bottom:.2em; align-items:baseline; }
.ae-date-label    { font-weight:700; color:var(--ae-accent); font-size:.87em; word-break:break-word; }
.ae-time-label    { font-size:.82em; color:#888; }
.ae-card__title   { margin:0 0 .15em; font-size:1em; color:var(--ae-text); word-break:break-word; overflow-wrap:break-word; }
.ae-card__lieu-short { margin:0 0 .2em; font-size:.82em; color:#888; word-break:break-word; }
.ae-card__excerpt {
    margin:.2em 0 0; font-size:.82em; color:#666; line-height:1.45;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    word-break:break-word;
}

.ae-card__chevron { flex-shrink:0; color:#bbb; font-size:.8em; transition:transform .25s; align-self:center; margin-left:.3em; }
.ae-card--open .ae-card__chevron { transform:rotate(180deg); }

/* Détail accordéon */
.ae-card__detail { display:none; box-sizing:border-box; }
.ae-card__detail--open { display:block; }

.ae-detail__layout {
    display:grid; grid-template-columns:160px 1fr;
    gap:1.1em; padding:1em; align-items:start;
}
.ae-detail__poster { text-align:center; }
.ae-detail__poster-img {
    width:100%; border-radius:var(--ae-radius);
    cursor:zoom-in; transition:opacity .2s; display:block;
}
.ae-detail__poster-img:hover { opacity:.82; }
.ae-detail__poster-hint { font-size:.7em; color:#bbb; margin:.3em 0 0; }

.ae-detail__info { min-width:0; display:flex; flex-direction:column; gap:.65em; }
.ae-detail__info-block p { margin:0 0 .3em; font-size:.88em; line-height:1.5; word-break:break-word; }
.ae-detail__date    { font-weight:600; color:var(--ae-accent); }
.ae-detail__lieu    { color:var(--ae-text); }
.ae-detail__adresse { color:#888; font-size:.83em !important; }
.ae-detail__info-block a { color:var(--ae-accent); text-decoration:none; }
.ae-detail__info-block a:hover { text-decoration:underline; }

.ae-detail__desc {
    font-size:.88em; color:var(--ae-text); line-height:1.7;
    word-break:break-word; overflow-wrap:break-word;
    white-space:normal;  /* retours à la ligne autorisés */
}
.ae-detail__desc p   { margin:.35em 0; }
.ae-detail__desc br  { display:block; }
.ae-detail__desc ul, .ae-detail__desc ol { padding-left:1.4em; margin:.35em 0; }

.ae-detail__footer { display:flex; flex-wrap:wrap; gap:.5em; margin-top:.2em; }
.ae-detail__map    { padding:0 1em 1em; }
.ae-detail__map iframe { border-radius:var(--ae-radius); display:block; }

/* ── Boutons ──────────────────────────────────── */
.ae-btn {
    display:inline-flex; align-items:center; gap:.3em;
    padding:.48em 1em; border-radius:var(--ae-radius);
    font-size:.86em; font-family:inherit; text-decoration:none;
    cursor:pointer; border:none; transition:.18s; white-space:nowrap; box-sizing:border-box;
}
.ae-btn--primary         { background:var(--ae-accent); color:#fff; }
.ae-btn--primary:hover   { filter:brightness(1.15); }
.ae-btn--secondary       { background:var(--ae-accent-light); color:var(--ae-accent); }
.ae-btn--secondary:hover { filter:brightness(.92); }
.ae-btn--outline {
    background:transparent; color:var(--ae-accent);
    border:1px solid var(--ae-accent);
}
.ae-btn--outline:hover   { background:var(--ae-accent-light); }

/* Liens navigation (Maps / Waze) */
.ae-map-links { display:flex; flex-wrap:wrap; gap:.45em; margin-top:.6em; }
.ae-map-link  {
    display:inline-flex; align-items:center;
    padding:.35em .8em; border-radius:4px;
    font-size:.8em; text-decoration:none; font-weight:600; transition:opacity .2s;
}
.ae-map-link:hover     { opacity:.8; }
.ae-map-link--gm   { background:#4285F4; color:#fff; }
.ae-map-link--plan { background:#555; color:#fff; }
.ae-map-link--waze { background:#05c8f7; color:#1a1a2e; }

/* ── Calendrier ───────────────────────────────── */
.ae-cal-wrap   { position:relative; }
.ae-cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:.9em; }
.ae-cal-month-title { margin:0; font-size:1.15em; color:var(--ae-accent); }
.ae-cal-nav {
    background:none; border:1px solid var(--ae-border);
    border-radius:var(--ae-radius); width:34px; height:34px; flex-shrink:0;
    cursor:pointer; font-size:1em; display:flex; align-items:center; justify-content:center; transition:.2s;
}
.ae-cal-nav:hover { background:var(--ae-accent-light); }
.ae-cal-grid-head {
    display:grid; grid-template-columns:repeat(7,1fr); text-align:center;
    font-size:.75em; font-weight:700; color:#888; margin-bottom:.3em;
}
.ae-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.ae-cal-day {
    min-height:50px; padding:.3em .2em .2em;
    border:1px solid var(--ae-border); border-radius:4px;
    font-size:.8em; background:var(--ae-bg); transition:.15s; box-sizing:border-box;
}
.ae-cal-day--empty     { background:#fafafa; border-color:#f0f0f0; }
.ae-cal-day--today     { border-color:var(--ae-accent); border-width:2px; }
.ae-cal-day--past      { opacity:.45; }
.ae-cal-day--has-event { cursor:pointer; }
.ae-cal-day--has-event:hover { background:var(--ae-accent-light); }
.ae-cal-day__num { display:block; font-weight:600; color:var(--ae-text); }
.ae-cal-day--empty .ae-cal-day__num { color:#ccc; }
.ae-cal-day__dots { display:flex; gap:2px; flex-wrap:wrap; margin-top:.2em; }
.ae-cal-dot { width:5px; height:5px; border-radius:50%; background:var(--ae-accent); }

/* Popup calendrier */
.ae-cal-popup {
    position:absolute; top:0; right:0;
    width:min(340px,95vw); max-height:calc(100% + 2em);
    overflow-y:auto;
    background:var(--ae-bg); border:1px solid var(--ae-border);
    border-radius:var(--ae-radius); box-shadow:0 6px 28px rgba(0,0,0,.14);
    z-index:100; box-sizing:border-box;
}
.ae-cal-popup__header {
    display:flex; align-items:center; justify-content:space-between;
    padding:.75em 1em .5em; border-bottom:1px solid var(--ae-border);
    position:sticky; top:0; background:var(--ae-bg); z-index:1;
}
.ae-cal-popup__day-title { font-weight:700; font-size:.92em; color:var(--ae-accent); }
.ae-cal-popup__close     { background:none; border:none; font-size:1em; cursor:pointer; color:#888; padding:0; }
.ae-cal-popup__inner     { padding:.6em .85em .9em; display:flex; flex-direction:column; gap:.8em; }

/* Événement dans le popup */
.ae-popup-event { padding-bottom:.8em; border-bottom:1px solid var(--ae-border); }
.ae-popup-event:last-child { border-bottom:none; padding-bottom:0; }

.ae-popup-event__header {
    display:flex; gap:.7em; align-items:flex-start; margin-bottom:.4em;
}
.ae-popup-thumb {
    width:52px; height:52px; flex-shrink:0;
    border-radius:6px; object-fit:cover; display:block;
}
.ae-popup-event__meta { flex:1; min-width:0; }
.ae-popup-event__title { margin:0 0 .2em; font-size:.93em; color:var(--ae-accent); word-break:break-word; }
.ae-popup-event__meta p { margin:0 0 .2em; font-size:.8em; color:#888; word-break:break-word; }
.ae-popup-event__desc  { font-size:.82em; color:#666; line-height:1.45; margin:.35em 0 .5em; }
.ae-popup-btns { display:flex; flex-wrap:wrap; gap:.4em; margin-top:.4em; }

/* ── Modale fiche complète ─────────────────────── */
.ae-modal {
    position:fixed; inset:0; z-index:9998;
    display:flex; align-items:center; justify-content:center;
    padding:1em; box-sizing:border-box;
}
.ae-modal__backdrop {
    position:absolute; inset:0; background:rgba(0,0,0,.7); cursor:pointer;
}
.ae-modal__box {
    position:relative; background:var(--ae-bg);
    border-radius:var(--ae-radius); box-shadow:0 12px 48px rgba(0,0,0,.3);
    max-width:720px; width:100%; max-height:90vh;
    overflow-y:auto; box-sizing:border-box;
}
.ae-modal__close {
    position:sticky; top:.5em; float:right; margin:.5em .5em 0 0;
    width:2em; height:2em; border-radius:50%;
    background:#fff; border:1px solid var(--ae-border);
    cursor:pointer; font-size:1em; z-index:1;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 6px rgba(0,0,0,.15);
}
.ae-modal__content { padding:1.4em; clear:both; }

/* Fiche complète dans la modale */
.ae-fiche__title {
    margin:0 0 1em; font-size:1.3em; color:var(--ae-accent);
    word-break:break-word; padding-bottom:.6em; border-bottom:1px solid var(--ae-border);
}
.ae-fiche__layout {
    display:grid; grid-template-columns:180px 1fr; gap:1.2em;
    align-items:start; margin-bottom:1.2em;
}
.ae-fiche__poster { text-align:center; }
.ae-fiche__poster img {
    width:100%; border-radius:var(--ae-radius);
    cursor:zoom-in; transition:opacity .2s; display:block;
}
.ae-fiche__poster img:hover { opacity:.82; }
.ae-fiche__poster-hint { font-size:.7em; color:#bbb; margin:.3em 0 0; }

.ae-fiche__info   { display:flex; flex-direction:column; gap:.5em; }
.ae-fiche__info p { margin:0; font-size:.9em; line-height:1.55; word-break:break-word; }
.ae-fiche__date   { font-weight:600; color:var(--ae-accent); }
.ae-fiche__lieu   { color:var(--ae-text); }
.ae-fiche__adresse{ color:#888; font-size:.84em !important; }
.ae-fiche__info a { color:var(--ae-accent); text-decoration:none; }
.ae-fiche__info a:hover { text-decoration:underline; }
.ae-fiche__desc {
    font-size:.9em; line-height:1.7; color:var(--ae-text);
    word-break:break-word; overflow-wrap:break-word;
    white-space:normal; margin:.5em 0;
}
.ae-fiche__desc p  { margin:.35em 0; }
.ae-fiche__desc br { display:block; }
.ae-fiche__footer { display:flex; flex-wrap:wrap; gap:.5em; margin-top:.75em; }
.ae-fiche__map    { margin-top:.5em; }
.ae-fiche__map iframe { border-radius:var(--ae-radius); display:block; }

/* ── Lightbox ─────────────────────────────────── */
.ae-lightbox {
    position:fixed; inset:0; z-index:9999;
    display:flex; align-items:center; justify-content:center;
}
.ae-lightbox__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.88); cursor:pointer; }
.ae-lightbox__inner    { position:relative; max-width:92vw; max-height:92vh; }
.ae-lightbox__inner img {
    max-width:100%; max-height:92vh; border-radius:var(--ae-radius);
    display:block; box-shadow:0 8px 40px rgba(0,0,0,.6);
}
.ae-lightbox__close {
    position:absolute; top:-.7em; right:-.7em;
    width:2em; height:2em; border-radius:50%;
    background:#fff; border:none; cursor:pointer; font-size:1em;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,.3);
}

/* ═══════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════ */
@media (max-width:480px) {
    :root { --ae-thumb:48px; }

    .ae-controls { padding:.7em .75em; }
    .ae-controls__row1  { flex-wrap:wrap; }
    .ae-search-wrap     { width:100%; flex:none; }
    .ae-view-toggle     { width:100%; }
    .ae-view-btn        { flex:1; justify-content:center; }
    .ae-controls__row2  { flex-direction:column; align-items:flex-start; }
    .ae-select          { width:100%; }

    /* Détail en colonne sur mobile */
    .ae-detail__layout  { grid-template-columns:1fr; padding:.8em .75em; }
    .ae-detail__poster  { display:flex; flex-direction:column; align-items:center; }
    .ae-detail__poster-img { max-width:160px; }
    .ae-detail__map     { padding:0 .75em .8em; }
    .ae-detail__footer  { flex-direction:column; }
    .ae-btn             { width:100%; justify-content:center; }

    /* Fiche modale en colonne */
    .ae-fiche__layout   { grid-template-columns:1fr; }
    .ae-fiche__poster img { max-width:160px; margin:0 auto; }
    .ae-modal           { padding:.4em; align-items:flex-end; }
    .ae-modal__box      { max-height:95vh; border-radius:var(--ae-radius) var(--ae-radius) 0 0; }

    /* Popup calendrier */
    .ae-cal-popup {
        position:fixed; top:auto; bottom:0; right:0; left:0;
        width:100%; max-height:65vh;
        border-radius:var(--ae-radius) var(--ae-radius) 0 0;
        box-shadow:0 -4px 24px rgba(0,0,0,.15);
    }
    .ae-cal-day { min-height:34px; font-size:.66em; padding:.18em .12em; }
    .ae-cal-day__dots { display:none; }
    .ae-cal-day--has-event .ae-cal-day__num {
        text-decoration:underline; text-decoration-color:var(--ae-accent); text-underline-offset:2px;
    }
    .ae-cal-grid-head   { font-size:.67em; }
    .ae-popup-thumb     { width:40px; height:40px; }
}

@media (min-width:481px) and (max-width:768px) {
    :root { --ae-thumb:50px; }
    .ae-detail__layout  { grid-template-columns:130px 1fr; }
    .ae-fiche__layout   { grid-template-columns:140px 1fr; }
    .ae-select          { flex:1; min-width:130px; }
    .ae-cal-day         { min-height:42px; font-size:.73em; }
    .ae-cal-popup       { width:min(300px,95vw); }
}
