/* Virtuaworld Agenda — public calendar v1.1.0. Scoped to the shortcode root. */
.vwa-calendar{--vwa-ink:#173148;--vwa-muted:#64778b;--vwa-primary:#126b83;--vwa-primary-strong:#0d526b;--vwa-line:#e5edf2;--vwa-paper:#fff;--vwa-wash:#f5f8fb;--vwa-shadow:0 18px 55px rgba(25,56,80,.075);font-family:inherit;color:var(--vwa-ink);width:100%;max-width:1380px;margin:0 auto;padding:0 0 26px;line-height:1.45;isolation:isolate}
.vwa-calendar *{box-sizing:border-box}
.vwa-calendar .vwa-icon{width:18px;height:18px;flex:none}
.vwa-calendar button,.vwa-calendar input{font:inherit}
.vwa-calendar button:focus-visible,.vwa-calendar input:focus-visible{outline:3px solid rgba(25,139,172,.35);outline-offset:3px}
.vwa-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden;min-height:192px;margin-bottom:24px;border:1px solid #dce8eb;border-radius:24px;padding:32px clamp(23px,4vw,48px);background:radial-gradient(circle at 88% 5%,rgba(173,226,215,.55),transparent 25%),radial-gradient(circle at 63% 112%,rgba(193,222,237,.70),transparent 45%),linear-gradient(112deg,#f5fbfa 0%,#f4f8fe 100%)}
.vwa-hero::before{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(98,157,169,.14);border-radius:50%;right:30px;top:-225px;pointer-events:none}
.vwa-hero::after{content:"";position:absolute;width:230px;height:230px;border:1px solid rgba(98,157,169,.16);border-radius:50%;right:-120px;bottom:-170px;pointer-events:none}
.vwa-hero-copy{position:relative;z-index:1;max-width:650px}
.vwa-eyebrow{display:flex;align-items:center;gap:9px;color:#207889;letter-spacing:.13em;font-size:11px;font-weight:800;margin-bottom:12px}
.vwa-eyebrow .vwa-icon{width:15px;height:15px}
.vwa-calendar .vwa-hero-title{font-size:clamp(27px,3.5vw,43px)!important;letter-spacing:-.04em;line-height:1.13;font-weight:760;color:#173448;margin:0 0 11px!important}
.vwa-calendar .vwa-hero-subtitle{margin:0!important;font-size:14px;line-height:1.65;color:#526d7e}
.vwa-hero-accent{position:relative;z-index:1;width:104px;height:104px;flex:none;border-radius:29px;display:grid;place-items:center;background:rgba(255,255,255,.54);border:1px solid rgba(255,255,255,.75);box-shadow:0 18px 46px rgba(35,120,136,.11);transform:rotate(-8deg);backdrop-filter:blur(10px)}
.vwa-hero-accent .vwa-icon{width:52px;height:52px;color:#3f94a3;stroke-width:1.2}
.vwa-shell{background:#fff;border:1px solid var(--vwa-line);border-radius:24px;box-shadow:var(--vwa-shadow);padding:clamp(14px,2.5vw,28px)}
.vwa-toolbar{display:grid;gap:22px}
.vwa-toolbar-top,.vwa-toolbar-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}
.vwa-month-caption{font-size:10px;font-weight:800;letter-spacing:.15em;color:#8597a5;margin:0 0 5px!important}
.vwa-calendar .vwa-month-title{font-size:clamp(24px,2.8vw,33px)!important;font-weight:760;line-height:1.2;letter-spacing:-.035em;text-transform:capitalize;margin:0!important;color:var(--vwa-ink)}
.vwa-navigation,.vwa-switcher{display:inline-flex;gap:6px;align-items:center}
.vwa-calendar .vwa-action{display:inline-flex;gap:9px;align-items:center;justify-content:center;white-space:nowrap;cursor:pointer;border:1px solid #dce6ed;background:#fff;color:#36536a;border-radius:12px;min-height:43px;padding:10px 15px;font-size:13px;font-weight:700;line-height:1.2;box-shadow:none;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}
.vwa-calendar .vwa-action:hover{background:#f5fafb;border-color:#b4d2da;transform:translateY(-1px);box-shadow:0 5px 14px rgba(31,90,109,.09)}
.vwa-calendar .vwa-icon-button{width:43px;padding:0}
.vwa-icon-button span{position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}
.vwa-calendar .vwa-today{color:#116d84;background:#f4fbfc;border-color:#cee9ed}
.vwa-search-box{display:flex;align-items:center;gap:11px;flex:1;max-width:510px;min-width:0;background:#f7fafc;border:1px solid #e4ecf2;border-radius:13px;padding:0 15px;color:#8595a5;transition:background .2s,border-color .2s,box-shadow .2s}
.vwa-search-box:focus-within{background:#fff;border-color:#8fbcc8;box-shadow:0 0 0 3px rgba(33,133,160,.1)}
.vwa-calendar .vwa-search{min-width:0;width:100%;height:45px;border:0!important;box-shadow:none!important;outline:0!important;background:transparent!important;color:#183449!important;padding:0!important;font-size:13px!important}
.vwa-calendar .vwa-search::placeholder{color:#8a9ba9;opacity:1}
.vwa-switcher{padding:4px;border:1px solid #e2eaf0;border-radius:14px;background:#f5f8fa}
.vwa-calendar .vwa-switcher .vwa-view{min-height:37px;border:0;box-shadow:none;border-radius:10px;padding:8px 16px;background:transparent;color:#6c7e90}
.vwa-calendar .vwa-switcher .vwa-selected,.vwa-calendar .vwa-switcher .vwa-selected:hover{background:#fff;color:#116b84;box-shadow:0 4px 13px rgba(29,65,86,.11);transform:none}
.vwa-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:21px 0 15px}
.vwa-meta-count,.vwa-meta-hint{display:flex;align-items:center;gap:7px;font-size:12px;color:#658095}
.vwa-meta-count{font-weight:750;color:#33536b}
.vwa-meta-count .vwa-icon{color:#29879d}
.vwa-meta-hint .vwa-icon{width:15px;height:15px}
.vwa-status:empty{display:none}
.vwa-status{font-size:13px;color:var(--vwa-muted);margin:0 0 12px!important}
.vwa-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid #e6eef3;border-radius:17px;background:#fff}
.vwa-weekday{font-size:10px;font-weight:850;letter-spacing:.09em;text-align:center;color:#8194a5;padding:14px 4px;border-bottom:1px solid #e6edf2;background:#f7fafc}
.vwa-day{min-width:0;min-height:143px;padding:9px 8px;border-right:1px solid #e9eff4;border-bottom:1px solid #e9eff4;transition:background .15s}
.vwa-day:nth-child(7n){border-right:0}
.vwa-day:hover{background:#f8fbfd}
.vwa-outside{background:#fafcfd}
.vwa-outside .vwa-day-number{color:#bac8d1}
.vwa-current{background:linear-gradient(180deg,#eef8fa,#fff 52%)}
.vwa-day-top{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-bottom:9px}
.vwa-day-number{display:inline-grid;place-items:center;min-width:27px;height:27px;border-radius:9px;font-size:12px;font-weight:800;color:#526c7d}
.vwa-current .vwa-day-number{background:#13758b;color:#fff;box-shadow:0 4px 12px rgba(20,117,139,.22)}
.vwa-today-label{font-size:8px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#35849a}
.vwa-day-events{display:grid;gap:4px}
.vwa-calendar .vwa-event{font:inherit;cursor:pointer;display:flex;width:100%;text-align:left;min-width:0;margin:0;border-radius:8px;transition:filter .15s,transform .15s,box-shadow .15s}
.vwa-calendar .vwa-event:hover{filter:saturate(1.07) brightness(.985);transform:translateY(-1px);box-shadow:0 4px 13px rgba(21,53,81,.09)}
.vwa-calendar .vwa-event-compact{gap:4px;align-items:flex-start;flex-wrap:wrap;padding:6px 7px;border:1px solid transparent;border-left:3px solid;line-height:1.3;font-size:10px}
.vwa-event-clock{font-size:10px;flex:none;font-weight:850;white-space:nowrap;line-height:1.34}
.vwa-event-name{font-size:inherit;font-weight:650;line-height:1.36;min-width:0;overflow-wrap:anywhere}
.vwa-event-compact .vwa-event-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1 1 65px}
.vwa-c0{--vwa-tint:#eef0fb;--vwa-accent:#7b8ac6;--vwa-tone:#435884}
.vwa-c1{--vwa-tint:#e9f6f2;--vwa-accent:#48a48d;--vwa-tone:#266957}
.vwa-c2{--vwa-tint:#fff1e8;--vwa-accent:#d68e65;--vwa-tone:#925935}
.vwa-c3{--vwa-tint:#f7effb;--vwa-accent:#a886c7;--vwa-tone:#75528d}
.vwa-c4{--vwa-tint:#eaf4fb;--vwa-accent:#76a3ca;--vwa-tone:#345e87}
.vwa-event-compact.vwa-c0,.vwa-event-compact.vwa-c1,.vwa-event-compact.vwa-c2,.vwa-event-compact.vwa-c3,.vwa-event-compact.vwa-c4{background:var(--vwa-tint);border-left-color:var(--vwa-accent);color:var(--vwa-tone)}
.vwa-calendar .vwa-more{display:block;text-align:left;border:0;background:transparent;color:#28788e;font-size:10px;font-weight:800;padding:4px 5px;cursor:pointer}
.vwa-list{display:grid;gap:15px;padding:3px 0 4px}
.vwa-list-group{display:grid;grid-template-columns:84px minmax(0,1fr);gap:20px;border:1px solid #e6edf2;border-radius:17px;padding:19px 21px;background:linear-gradient(135deg,#fff,#fcfdfe);box-shadow:0 7px 24px rgba(20,66,89,.035)}
.vwa-date-tile{align-self:start;display:grid;justify-items:center;padding:13px 10px;border:1px solid #d8eaf0;background:#f2f9fb;border-radius:14px;color:#116b82}
.vwa-date-tile-today{background:#17738b;color:#fff;border-color:#17738b}
.vwa-date-tile-day{font-size:29px;font-weight:800;letter-spacing:-.06em;line-height:1.1}
.vwa-date-tile-month{font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.08em}
.vwa-group-body{min-width:0}
.vwa-calendar .vwa-list-date{text-transform:capitalize;font-size:14px;color:#415c70;font-weight:750;margin:3px 0 12px!important}
.vwa-list-items{display:grid;gap:9px}
.vwa-calendar .vwa-event-row{align-items:center;gap:14px;padding:16px 17px;background:#fff;border:1px solid #e7eef3;color:#183a52;border-radius:12px}
.vwa-event-accent{width:4px;border-radius:6px;background:var(--vwa-accent,#68a4bc);align-self:stretch;min-height:30px}
.vwa-list-card-copy{display:grid;gap:9px;min-width:0;flex:1}
.vwa-event-row .vwa-event-name{font-size:15px;font-weight:750}
.vwa-list-card-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;color:#62788a;min-width:0}
.vwa-list-card-meta .vwa-icon{width:14px;height:14px;color:#47899b}
.vwa-list-place{display:inline-flex;align-items:center;gap:5px;min-width:0}
.vwa-list-place span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:460px}
.vwa-card-arrow{color:#8ba6b4;width:19px;height:19px}
.vwa-empty{display:grid;justify-items:center;text-align:center;padding:60px 20px;border:1px dashed #d1e2ea;background:#f9fcfd;border-radius:18px}
.vwa-empty-icon{width:60px;height:60px;border-radius:18px;background:#e9f5f8;display:grid;place-items:center;color:#378da0;margin-bottom:13px}
.vwa-empty-icon .vwa-icon{width:30px;height:30px}
.vwa-calendar .vwa-empty h4{font-size:19px;margin:0 0 5px;color:#204359}
.vwa-calendar .vwa-empty p{font-size:13px;color:#718697;margin:0}
.vwa-skeleton{height:450px;border-radius:16px;background:linear-gradient(105deg,#f4f8fa 15%,#e8eff3 32%,#f4f8fa 55%);background-size:240% 100%;animation:vwa-shimmer 1.35s infinite linear}
@keyframes vwa-shimmer{from{background-position:150% 0}to{background-position:-120% 0}}
.vwa-error{display:flex;align-items:center;gap:12px;padding:18px 22px;background:#fff6f4;border:1px solid #f3d1cc;border-radius:14px;color:#97483f;font-size:14px}
.vwa-dialog{border:0;border-radius:23px;padding:0;width:min(590px,calc(100vw - 28px));max-height:min(85vh,820px);overflow:auto;box-shadow:0 32px 110px rgba(15,40,56,.32);color:#1c3a50;background:#fff;outline:none}
.vwa-dialog::backdrop{background:rgba(14,35,50,.63);backdrop-filter:blur(4px)}
.vwa-dialog-top{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;padding:13px 14px;background:linear-gradient(90deg,#f6fbfc,#fff);border-bottom:1px solid #ebf0f3}
.vwa-calendar .vwa-dialog-close{min-height:35px;width:35px;padding:0;border-radius:11px;background:#f1f6f8;border-color:#e1ebf0}
.vwa-dialog-close span{position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}
.vwa-dialog-body{padding:28px clamp(22px,5vw,37px) 36px}
.vwa-calendar .vwa-dialog-title{font-size:clamp(23px,3vw,32px)!important;line-height:1.2;letter-spacing:-.02em;color:#1b3c50;margin:14px 0 25px!important}
.vwa-category{display:inline-flex;align-items:center;letter-spacing:.1em;font-size:10px;font-weight:850;border-radius:20px;padding:8px 12px;background:var(--vwa-tint);color:var(--vwa-tone)}
.vwa-detail-grid{display:grid;gap:17px;padding:20px;border:1px solid #e4eef1;background:#f8fbfc;border-radius:17px}
.vwa-detail-row{display:flex;gap:13px;align-items:flex-start}
.vwa-detail-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:11px;background:#e7f4f6;color:#247f94}
.vwa-detail-icon .vwa-icon{width:18px;height:18px}
.vwa-detail-copy{display:grid;gap:5px;min-width:0}
.vwa-detail-label{font-size:10px;font-weight:850;letter-spacing:.1em;color:#7c92a0}
.vwa-detail-value{font-size:14px;font-weight:680;color:#24465b;white-space:pre-wrap;overflow-wrap:anywhere}
.vwa-description{margin-top:25px;border-top:1px solid #edf1f4;padding-top:23px}
.vwa-calendar .vwa-description h4{font-size:15px;color:#24465b;margin:0 0 9px}
.vwa-calendar .vwa-description p{font-size:14px;line-height:1.7;color:#5c7283;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:970px){.vwa-day{min-height:125px;padding:7px 5px}.vwa-event-compact{font-size:9px!important}.vwa-event-clock{font-size:9px}.vwa-today-label{display:none}}
@media(max-width:680px){.vwa-hero{min-height:0;padding:28px 24px;margin-bottom:16px;border-radius:19px}.vwa-hero-accent{width:66px;height:66px;border-radius:20px}.vwa-hero-accent .vwa-icon{width:34px;height:34px}.vwa-hero-title{font-size:28px!important}.vwa-shell{border-radius:19px;padding:18px}.vwa-toolbar-top{flex-wrap:wrap;gap:15px}.vwa-toolbar-bottom{flex-wrap:wrap;gap:13px}.vwa-search-box{max-width:none;flex-basis:100%}.vwa-meta-hint{display:none}.vwa-list-group{gap:12px;grid-template-columns:63px minmax(0,1fr);padding:14px}.vwa-date-tile{padding:12px 5px}.vwa-date-tile-day{font-size:23px}.vwa-event-row .vwa-event-name{font-size:13px}.vwa-calendar .vwa-event-row{padding:13px 11px}.vwa-board{border-radius:12px}.vwa-day{min-height:108px;padding:5px 4px}.vwa-day-events{gap:3px}.vwa-weekday{font-size:9px;padding:9px 1px}.vwa-day-number{font-size:10px;min-width:22px;height:22px}.vwa-event-compact{display:grid;align-content:start;justify-items:start;height:auto;min-height:0;padding:4px 5px!important;border-width:0 0 0 3px!important;border-radius:6px;font-size:9px!important;line-height:1.2}.vwa-event-compact .vwa-event-clock{display:block!important;font-size:9px!important;line-height:1.1}.vwa-event-compact .vwa-event-name{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:9px!important;line-height:1.2;white-space:normal}.vwa-more{font-size:9px!important;padding:2px 3px!important}}
@media(max-width:440px){.vwa-hero{padding:23px 20px}.vwa-hero-accent{display:none}.vwa-calendar .vwa-hero-title{font-size:27px!important}.vwa-hero-subtitle{font-size:13px!important}.vwa-navigation{gap:5px}.vwa-calendar .vwa-icon-button{width:39px;min-height:39px}.vwa-calendar .vwa-today{min-height:39px;padding:8px 11px}.vwa-calendar .vwa-view{padding:7px 12px}.vwa-list-group{grid-template-columns:50px minmax(0,1fr);gap:10px;padding:11px}.vwa-date-tile{padding:9px 3px;border-radius:9px}.vwa-date-tile-day{font-size:20px}.vwa-date-tile-month{font-size:9px}.vwa-list-card-meta{font-size:11px}.vwa-list-place span{max-width:175px}.vwa-card-arrow{display:none}.vwa-list-date{font-size:12px!important}.vwa-day{min-height:92px;padding:4px 3px}.vwa-event-compact{padding:3px 4px!important;font-size:8px!important;border-radius:5px}.vwa-event-compact .vwa-event-clock{font-size:8px!important}.vwa-event-compact .vwa-event-name{font-size:8px!important;-webkit-line-clamp:2}}
@media(prefers-reduced-motion:reduce){.vwa-calendar *, .vwa-calendar *::before, .vwa-calendar *::after{animation:none!important;transition:none!important}}

/* v1.1.1 — Contrastes explicites contre les styles globaux des thèmes WordPress. */
.vwa-calendar .vwa-event.vwa-event-row:hover,
.vwa-calendar .vwa-event.vwa-event-row:focus-visible {
  background:#f0f8fa!important;
  background-image:none!important;
  border-color:#abd0db!important;
  color:#193c52!important;
  filter:none!important;
  box-shadow:0 7px 23px rgba(26,75,102,.10)!important;
  transform:translateY(-1px);
}
.vwa-calendar .vwa-event.vwa-event-row:hover .vwa-event-name,
.vwa-calendar .vwa-event.vwa-event-row:focus-visible .vwa-event-name {
  color:#193c52!important;
}
.vwa-calendar .vwa-event.vwa-event-row:hover .vwa-list-card-meta,
.vwa-calendar .vwa-event.vwa-event-row:hover .vwa-list-card-meta span,
.vwa-calendar .vwa-event.vwa-event-row:focus-visible .vwa-list-card-meta,
.vwa-calendar .vwa-event.vwa-event-row:focus-visible .vwa-list-card-meta span {
  color:#4b697a!important;
}
.vwa-calendar .vwa-event.vwa-event-row:hover .vwa-icon,
.vwa-calendar .vwa-event.vwa-event-row:focus-visible .vwa-icon {color:#357c90!important;}
.vwa-calendar .vwa-event.vwa-event-row:focus-visible {outline:2px solid #579caf!important;outline-offset:3px;}
/* Bouton fermer : neutralisé face aux :hover/:focus des thèmes et à Elementor. */
.vwa-calendar .vwa-dialog .vwa-dialog-close,
.vwa-calendar .vwa-dialog .vwa-dialog-close:hover,
.vwa-calendar .vwa-dialog .vwa-dialog-close:focus {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  padding:0!important;
  border:1px solid #dce8ed!important;
  border-radius:12px!important;
  background:#f0f6f8!important;
  background-image:none!important;
  color:#31596c!important;
  text-decoration:none!important;
  box-shadow:none!important;
  filter:none!important;
  transform:none!important;
}
.vwa-calendar .vwa-dialog .vwa-dialog-close:hover {
  border-color:#bbd4de!important;
  background:#e3f0f4!important;
  color:#173f55!important;
}
.vwa-calendar .vwa-dialog .vwa-dialog-close .vwa-icon {width:18px;height:18px;color:inherit!important;stroke:currentColor!important;}
.vwa-calendar .vwa-dialog .vwa-dialog-close:focus-visible {
  outline:2px solid #3f8da3!important;
  outline-offset:3px;
  box-shadow:0 0 0 4px rgba(51,136,159,.12)!important;
}
.vwa-calendar .vwa-dialog .vwa-dialog-title:focus {outline:none!important;}

/* v1.1.2 — Le <dialog> rend le focus au bouton source à sa fermeture.
   Le thème Elementor/WordPress ne doit jamais le recolorer en bleu vif. */
.vwa-calendar button.vwa-event.vwa-event-row:focus,
.vwa-calendar button.vwa-event.vwa-event-row:active {
  background:#f0f8fa!important;
  background-image:none!important;
  border-color:#abd0db!important;
  color:#193c52!important;
  filter:none!important;
  box-shadow:0 7px 23px rgba(26,75,102,.10)!important;
}
.vwa-calendar button.vwa-event.vwa-event-row:focus .vwa-event-name,
.vwa-calendar button.vwa-event.vwa-event-row:active .vwa-event-name {
  color:#193c52!important;
}
.vwa-calendar button.vwa-event.vwa-event-row:focus .vwa-list-card-meta,
.vwa-calendar button.vwa-event.vwa-event-row:active .vwa-list-card-meta,
.vwa-calendar button.vwa-event.vwa-event-row:focus .vwa-list-card-meta span,
.vwa-calendar button.vwa-event.vwa-event-row:active .vwa-list-card-meta span {
  color:#4b697a!important;
}
.vwa-calendar button.vwa-event.vwa-event-row:focus .vwa-icon,
.vwa-calendar button.vwa-event.vwa-event-row:active .vwa-icon {
  color:#357c90!important;
}
.vwa-calendar button.vwa-event.vwa-event-row:focus:not(:focus-visible) {
  outline:none!important;
}
/* Les pastilles de la vue mensuelle doivent aussi résister aux états :focus/:active du thème. */
.vwa-calendar button.vwa-event.vwa-event-compact:focus,
.vwa-calendar button.vwa-event.vwa-event-compact:active {
  background:var(--vwa-tint)!important;
  background-image:none!important;
  color:var(--vwa-tone)!important;
  border-left-color:var(--vwa-accent)!important;
  filter:none!important;
}
.vwa-calendar button.vwa-event.vwa-event-compact:focus:not(:focus-visible) {
  outline:none!important;
}


/* v1.1.3 — Vue mensuelle : hover/focus/active explicites et responsive plus lisible. */
.vwa-calendar button.vwa-event.vwa-event-compact:hover,
.vwa-calendar button.vwa-event.vwa-event-compact:focus-visible,
.vwa-calendar button.vwa-event.vwa-event-compact:focus,
.vwa-calendar button.vwa-event.vwa-event-compact:active {
  background:color-mix(in srgb, var(--vwa-tint) 88%, #ffffff 12%)!important;
  background-image:none!important;
  color:var(--vwa-tone)!important;
  border-color:transparent!important;
  border-left-color:var(--vwa-accent)!important;
  filter:none!important;
  transform:translateY(-1px)!important;
  box-shadow:0 6px 14px rgba(26,75,102,.10)!important;
}
.vwa-calendar button.vwa-event.vwa-event-compact:hover .vwa-event-clock,
.vwa-calendar button.vwa-event.vwa-event-compact:hover .vwa-event-name,
.vwa-calendar button.vwa-event.vwa-event-compact:focus-visible .vwa-event-clock,
.vwa-calendar button.vwa-event.vwa-event-compact:focus-visible .vwa-event-name,
.vwa-calendar button.vwa-event.vwa-event-compact:focus .vwa-event-clock,
.vwa-calendar button.vwa-event.vwa-event-compact:focus .vwa-event-name,
.vwa-calendar button.vwa-event.vwa-event-compact:active .vwa-event-clock,
.vwa-calendar button.vwa-event.vwa-event-compact:active .vwa-event-name {
  color:var(--vwa-tone)!important;
}
.vwa-calendar button.vwa-event.vwa-event-compact:focus-visible {
  outline:2px solid rgba(55,126,146,.55)!important;
  outline-offset:2px!important;
}
@media (hover:none) {
  .vwa-calendar .vwa-event:hover {transform:none!important;box-shadow:none!important;}
}


/* v1.1.4 — Boutons de navigation du bandeau : plus visibles et protégés des styles du thème. */
.vwa-navigation{
  gap:10px;
  padding:8px;
  border:1px solid #dbe7ed;
  border-radius:18px;
  background:linear-gradient(180deg,#fbfdfe,#f4f8fb);
  box-shadow:0 10px 28px rgba(20,66,89,.06);
}
.vwa-calendar .vwa-navigation .vwa-action{
  min-height:46px;
  border-radius:14px;
}
.vwa-calendar .vwa-navigation .vwa-icon-button{
  width:46px;
  min-width:46px;
  background:#ffffff;
  border-color:#cfe0e7;
  color:#2f566b;
  box-shadow:0 2px 0 rgba(255,255,255,.7) inset;
}
.vwa-calendar .vwa-navigation .vwa-today{
  background:#eef8fa;
  border-color:#c6dde6;
  color:#0f6d84;
  padding:10px 16px;
  font-weight:800;
}
.vwa-calendar .vwa-navigation .vwa-action:hover,
.vwa-calendar .vwa-navigation .vwa-action:focus-visible,
.vwa-calendar .vwa-navigation .vwa-action:focus,
.vwa-calendar .vwa-navigation .vwa-action:active{
  background:#e8f4f7!important;
  background-image:none!important;
  border-color:#8fb9c7!important;
  color:#154a61!important;
  text-decoration:none!important;
  box-shadow:0 8px 20px rgba(31,90,109,.12)!important;
  filter:none!important;
  transform:translateY(-1px)!important;
}
.vwa-calendar .vwa-navigation .vwa-icon-button:hover,
.vwa-calendar .vwa-navigation .vwa-icon-button:focus-visible,
.vwa-calendar .vwa-navigation .vwa-icon-button:focus,
.vwa-calendar .vwa-navigation .vwa-icon-button:active{
  background:#d9eef4!important;
  color:#0f6178!important;
}
.vwa-calendar .vwa-navigation .vwa-today:hover,
.vwa-calendar .vwa-navigation .vwa-today:focus-visible,
.vwa-calendar .vwa-navigation .vwa-today:focus,
.vwa-calendar .vwa-navigation .vwa-today:active{
  background:#dff1f5!important;
  color:#0d5f75!important;
}
.vwa-calendar .vwa-navigation .vwa-action:focus-visible{
  outline:2px solid rgba(57,136,159,.45)!important;
  outline-offset:2px!important;
}
.vwa-calendar .vwa-navigation .vwa-action:focus:not(:focus-visible){
  outline:none!important;
}
@media(max-width:680px){
  .vwa-navigation{width:100%;justify-content:space-between;gap:8px;padding:7px;border-radius:16px}
  .vwa-calendar .vwa-navigation .vwa-icon-button{width:44px;min-width:44px}
  .vwa-calendar .vwa-navigation .vwa-today{flex:1;justify-content:center;padding:9px 12px}
}
@media(max-width:440px){
  .vwa-navigation{gap:6px;padding:6px}
  .vwa-calendar .vwa-navigation .vwa-action{min-height:42px;border-radius:12px}
  .vwa-calendar .vwa-navigation .vwa-icon-button{width:42px;min-width:42px}
  .vwa-calendar .vwa-navigation .vwa-today{font-size:12px;padding:8px 10px}
}


/* v1.1.5 — Typographie accessible du calendrier (sans modifier le thème WordPress).
   Confort activé par défaut ; text_size="standard" restitue les tailles précédentes.
   text_size="large" augmente légèrement le confort sur toutes les vues. */
.vwa-calendar.vwa-type-comfortable,
.vwa-calendar.vwa-type-large { --vwa-font-scale:1; }
.vwa-calendar.vwa-type-large { --vwa-font-scale:1.12; }
.vwa-calendar:not(.vwa-type-standard) .vwa-eyebrow {font-size:calc(12px * var(--vwa-font-scale))!important;line-height:1.45}
.vwa-calendar:not(.vwa-type-standard) .vwa-hero-subtitle {font-size:calc(16px * var(--vwa-font-scale))!important;line-height:1.65}
.vwa-calendar:not(.vwa-type-standard) .vwa-month-caption {font-size:calc(12px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-month-title {font-size:clamp(27px,3.3vw,36px)!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-navigation .vwa-action,
.vwa-calendar:not(.vwa-type-standard) .vwa-switcher .vwa-view {font-size:calc(14px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-search {font-size:calc(15px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-meta-count,
.vwa-calendar:not(.vwa-type-standard) .vwa-meta-hint,
.vwa-calendar:not(.vwa-type-standard) .vwa-status {font-size:calc(13px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-weekday {font-size:calc(12px * var(--vwa-font-scale))!important;letter-spacing:.05em}
.vwa-calendar:not(.vwa-type-standard) .vwa-day-number {font-size:calc(13px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-event-compact {font-size:calc(12px * var(--vwa-font-scale))!important;line-height:1.3;padding:7px 8px}
.vwa-calendar:not(.vwa-type-standard) .vwa-event-compact .vwa-event-clock,
.vwa-calendar:not(.vwa-type-standard) .vwa-event-compact .vwa-event-name {font-size:inherit!important;line-height:1.3}
.vwa-calendar:not(.vwa-type-standard) .vwa-more {font-size:calc(12px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-list-date {font-size:calc(16px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-event-row .vwa-event-name {font-size:calc(17px * var(--vwa-font-scale))!important;line-height:1.4}
.vwa-calendar:not(.vwa-type-standard) .vwa-list-card-meta {font-size:calc(14px * var(--vwa-font-scale))!important;line-height:1.5}
.vwa-calendar:not(.vwa-type-standard) .vwa-date-tile-month {font-size:calc(12px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-dialog-title {font-size:clamp(24px,3vw,34px)!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-category {font-size:calc(11px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-detail-label {font-size:calc(12px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-detail-value {font-size:calc(16px * var(--vwa-font-scale))!important;line-height:1.55}
.vwa-calendar:not(.vwa-type-standard) .vwa-description h4 {font-size:calc(17px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-description p {font-size:calc(16px * var(--vwa-font-scale))!important;line-height:1.7}
.vwa-calendar:not(.vwa-type-standard) .vwa-empty h4 {font-size:calc(19px * var(--vwa-font-scale))!important}
.vwa-calendar:not(.vwa-type-standard) .vwa-empty p {font-size:calc(14px * var(--vwa-font-scale))!important}

/* Garder la grille au format accessible sur téléphone : défilement limité à la grille,
   sans débordement horizontal sur l'ensemble de la page Elementor. */
.vwa-month-wrapper {width:100%;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:17px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#9dc1cb #f0f5f8}
.vwa-month-wrapper:focus-visible {outline:2px solid #4593a7;outline-offset:2px}
.vwa-month-swipe-hint {display:none;align-items:center;gap:5px;font-size:12px!important;color:#4a7082!important;margin:4px 0 9px!important}
.vwa-month-swipe-hint .vwa-icon {width:13px;height:13px}
@media(max-width:970px) and (min-width:621px) {
  .vwa-calendar:not(.vwa-type-standard) .vwa-event-compact {font-size:calc(11px * var(--vwa-font-scale))!important;padding:6px 6px}
  .vwa-calendar:not(.vwa-type-standard) .vwa-event-compact .vwa-event-clock,
  .vwa-calendar:not(.vwa-type-standard) .vwa-event-compact .vwa-event-name {font-size:inherit!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-weekday {font-size:11px!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-day {min-height:142px}
}
@media(max-width:620px) {
  .vwa-month-swipe-hint {display:flex!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-board {min-width:750px;overflow:hidden}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-day {min-height:148px;padding:7px 6px}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-weekday {font-size:12px!important;padding:12px 5px}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-day-number {font-size:13px!important;min-width:25px;height:25px}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-event-compact {display:flex!important;flex-wrap:wrap;height:auto!important;min-height:0!important;padding:6px 7px!important;border-width:0 0 0 3px!important;font-size:calc(11px * var(--vwa-font-scale))!important;line-height:1.25!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-event-compact .vwa-event-clock {display:block!important;font-size:inherit!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-event-compact .vwa-event-name {display:-webkit-box!important;font-size:inherit!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0;line-height:1.25!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-month-wrapper .vwa-more {font-size:11px!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-hero-subtitle {font-size:calc(15px * var(--vwa-font-scale))!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-list-card-meta {font-size:calc(13px * var(--vwa-font-scale))!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-event-row .vwa-event-name {font-size:calc(15px * var(--vwa-font-scale))!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-detail-value {font-size:calc(15px * var(--vwa-font-scale))!important}
  .vwa-calendar:not(.vwa-type-standard) .vwa-description p {font-size:calc(15px * var(--vwa-font-scale))!important}
}

/* v1.2.0 — Catégories automatiques et lisibles (une même règle = une même couleur). */
.vwa-calendar .vwa-event.vwa-has-category,
.vwa-calendar .vwa-category.vwa-has-category {
  --vwa-accent:var(--vwa-custom-accent, #8d9aa8);
  --vwa-tint:color-mix(in srgb, var(--vwa-accent) 19%, #ffffff 81%);
  --vwa-tone:#25465a;
}
.vwa-calendar button.vwa-event.vwa-event-compact.vwa-has-category {
  background:#f4f8fa!important;
  background:var(--vwa-tint)!important;
  background-image:none!important;
  border:1px solid transparent!important;
  border-left:4px solid var(--vwa-accent)!important;
  color:#25465a!important;
  filter:none!important;
}
.vwa-calendar button.vwa-event.vwa-event-compact.vwa-has-category:is(:hover,:focus,:focus-visible,:active) {
  background:var(--vwa-tint)!important;
  background-image:none!important;
  color:#183c52!important;
  border-color:transparent!important;
  border-left-color:var(--vwa-accent)!important;
  filter:none!important;
  box-shadow:0 5px 16px rgba(24,63,83,.10)!important;
}
.vwa-calendar button.vwa-event.vwa-event-compact.vwa-has-category:is(:hover,:focus,:focus-visible,:active) :is(.vwa-event-name,.vwa-event-clock) {
  color:#183c52!important;
}
.vwa-calendar button.vwa-event.vwa-event-row.vwa-has-category:is(:hover,:focus,:focus-visible,:active) {
  background:color-mix(in srgb, var(--vwa-accent) 7%, white 93%)!important;
  background-image:none!important;
  color:#173c52!important;
  border-color:color-mix(in srgb, var(--vwa-accent) 33%, white 67%)!important;
  box-shadow:0 6px 20px rgba(25,66,87,.10)!important;
  filter:none!important;
}
.vwa-calendar .vwa-event-headline {display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.vwa-calendar .vwa-event-type-name {color:#526c7d!important;font-size:12px!important;font-weight:680;white-space:nowrap}
.vwa-calendar .vwa-category.vwa-has-category {display:inline-flex;align-items:center;gap:7px;border-left:4px solid var(--vwa-accent)!important;background:var(--vwa-tint)!important;color:#25465a!important}
.vwa-calendar .vwa-type-legend {display:grid;gap:10px;margin:1px 0 18px}
.vwa-calendar .vwa-type-legend[hidden] {display:none!important}
.vwa-calendar .vwa-type-legend-label {font-size:12px;font-weight:800;color:#496578;letter-spacing:.02em}
.vwa-calendar .vwa-type-legend-chips {display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.vwa-calendar .vwa-type-filter {display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:35px;padding:7px 11px!important;border:1px solid #dfe8ed!important;border-radius:999px!important;background:#fff!important;background-image:none!important;color:#37576b!important;font-size:12px!important;font-weight:720!important;line-height:1.3!important;box-shadow:none!important;text-transform:none!important;transform:none!important;cursor:pointer}
.vwa-calendar .vwa-type-filter .vwa-type-dot {width:11px;height:11px;flex:none;border-radius:50%;box-shadow:0 0 0 2px rgba(20,40,50,.045)}
.vwa-calendar .vwa-type-filter small {font-size:11px!important;color:#7a8d9b!important;font-weight:720}
.vwa-calendar .vwa-type-filter:is(:hover,:focus,:active) {background:#f2f8fa!important;color:#21485d!important;border-color:#bdcfda!important;box-shadow:none!important}
.vwa-calendar .vwa-type-filter.is-selected,
.vwa-calendar .vwa-type-filter.is-selected:is(:hover,:focus,:active) {background:#e8f3f6!important;color:#15576e!important;border-color:#91bdca!important;box-shadow:0 0 0 1px rgba(39,110,130,.06)!important}
.vwa-calendar .vwa-type-filter:focus-visible {outline:2px solid #438fa2!important;outline-offset:2px}
.vwa-calendar .vwa-type-filter:focus:not(:focus-visible) {outline:0!important}
@media(max-width:680px) {
  .vwa-calendar .vwa-type-legend {margin:2px 0 13px}
  .vwa-calendar .vwa-type-legend-chips {flex-wrap:nowrap;max-width:100%;overflow-x:auto;padding:3px 2px 9px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .vwa-calendar .vwa-type-filter {white-space:nowrap;flex:none;min-height:39px;font-size:12px!important}
  .vwa-calendar .vwa-event-headline {gap:4px}
  .vwa-calendar .vwa-event-type-name {font-size:11px!important}
}
