/* Widget custom Bee Alveare e Bee Volo — vedi inc/widgets/class-bee-alveare.php e class-bee-volo.php.
   I colori e gli spessori arrivano dai controlli del pannello come variabili CSS (--bee-al-*, --bee-volo-*); i valori qui sono solo di riserva. */

/* ============ Bee Alveare ============ */
.bee-alveare{position:relative;width:100%}
.bee-alveare__field{width:100%}
.bee-alveare__field svg{display:block;width:100%;height:auto;overflow:visible}
.bee-alveare-empty{margin:0;padding:1rem;border:1px dashed currentColor;font-size:.9rem}

.bee-alveare .hx .base{fill:transparent}
.bee-alveare .hx .edge{fill:none;stroke:transparent;stroke-width:1.5}
.bee-alveare .hx .fill{fill:var(--bee-al-free-fill,#EEC041);transform:translateY(101%);transform-box:fill-box;transition:transform .55s var(--bee-ease,cubic-bezier(.2,.8,.2,1))}
.bee-alveare .hx .ring{fill:none;stroke:var(--bee-al-ring,#F6F0E1);stroke-width:4;opacity:0;transition:opacity .2s}
.bee-alveare .hx text{font-family:var(--bee-f-d,"Bricolage Grotesque","Arial Black",Arial,sans-serif);font-weight:800;text-anchor:middle;fill:var(--ct,#12110F);pointer-events:none;transition:fill .3s}
.bee-alveare .hx-empty .edge{stroke:var(--bee-al-empty,#F6F0E1);stroke-opacity:var(--bee-al-empty-o,.18);stroke-width:1.5}
.bee-alveare .hx-client .base{fill:var(--bee-al-fill-l,#fff)}
.bee-alveare .hx-client.dk .base{fill:var(--bee-al-fill-d,#3D3D3D)}
.bee-alveare .hx-client .edge{stroke:var(--bee-al-edge,#EEC041);stroke-width:var(--bee-al-edge-w,3)}
.bee-alveare .hx-client text{fill:#12110F}
.bee-alveare .hx-client.dk text{fill:#F6F0E1}
.bee-alveare .hx-free{--ct:var(--bee-al-free,#EEC041)}
.bee-alveare .hx-free .edge{stroke:var(--bee-al-free,#EEC041);stroke-dasharray:5 5;stroke-opacity:.95;stroke-width:var(--bee-al-free-w,2.5)}
.bee-alveare .hx-link{cursor:pointer;outline:none}
.bee-alveare .hx-link:hover .hx-free,.bee-alveare .hx-link:focus-visible .hx-free{--ct:var(--bee-al-free-hover,#12110F)}
.bee-alveare .hx-link:hover .fill,.bee-alveare .hx-link:focus-visible .fill{transform:none}
.bee-alveare .hx-link:focus-visible .ring{opacity:1}

/* entrata (solo se il JS la attiva: senza JS o con «riduci movimento» le celle sono subito visibili) */
.bee-alveare.is-anim .hx{opacity:0;transition:opacity .6s ease var(--d,0s)}
.bee-alveare.is-anim.in .hx{opacity:1}

/* lista di riserva: visibile finché il JS non ha costruito l'alveare */
.bee-alveare__list{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}
.bee-alveare__list li{background:#fff;color:#12110F;display:flex;align-items:center;justify-content:center;height:96px;padding:0 22px;font-family:var(--bee-f-d,sans-serif);font-weight:800}
.bee-alveare__list li.dk{background:var(--bee-al-fill-d,#3D3D3D);color:#F6F0E1}
.bee-alveare__list li.free{background:transparent;border:2.5px dashed var(--bee-al-free,#EEC041)}
.bee-alveare__list li.free a{color:var(--bee-al-free,#EEC041);text-decoration:none}
.bee-alveare__list li.free a:focus-visible{outline:3px solid var(--bee-al-ring,#F6F0E1);outline-offset:4px}
.bee-alveare__list img{display:block;height:auto;width:auto;max-height:52px;max-width:170px}
.bee-alveare.is-ready .bee-alveare__list{display:none}

@media (prefers-reduced-motion:reduce){
	.bee-alveare .hx .fill,.bee-alveare .hx .ring,.bee-alveare .hx text{transition:none}
	.bee-alveare.is-anim .hx{opacity:1;transition:none}
}

/* ============ Bee Volo ============ */
/* il widget non occupa spazio: si stende su tutto il contenitore che lo contiene (i contenitori Elementor sono già position:relative) */
.elementor .elementor-widget-bee-volo{position:absolute!important;inset:0;width:100%!important;max-width:none!important;height:100%;margin:0!important;pointer-events:none;z-index:20}
.elementor .elementor-widget-bee-volo>.elementor-widget-container{position:absolute;inset:0;margin:0;padding:0}
.bee-volo{position:absolute;inset:0;pointer-events:none;overflow-x:clip;overflow-y:visible;--bee-volo-w:3.5px}
.bee-volo__svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;display:block}
.bee-volo__svg path{fill:none;stroke-linecap:round}
.bee-volo .t-base{stroke:var(--bee-volo-base,#8B8577);stroke-opacity:.5;stroke-width:2;stroke-dasharray:2 9}
.bee-volo .t-ink{stroke:var(--bee-volo-ink,#12110F);stroke-opacity:.95;stroke-width:calc(var(--bee-volo-w,3.5px) + 4.5px)}
.bee-volo .t-yel{stroke:var(--bee-volo-line,#EEC041);stroke-width:var(--bee-volo-w,3.5px)}
.bee-volo .nd{fill:var(--bee-volo-ink,#12110F);stroke:var(--bee-volo-line,#EEC041);stroke-width:2.5;stroke-linejoin:round;transition:fill .4s}
.bee-volo .nd.on{fill:var(--bee-volo-line,#EEC041);stroke:var(--bee-volo-ink,#12110F)}

.bee-volo__bee{display:none;position:absolute;left:0;top:0;width:var(--bee-volo-bw,44px);height:calc(var(--bee-volo-bw,44px) * 50 / 44);margin:calc(var(--bee-volo-bw,44px) * 25 / -44) 0 0 calc(var(--bee-volo-bw,44px) / -2);opacity:0;transition:opacity .5s ease;will-change:transform}
.bee-volo.has-bee .bee-volo__bee{display:block}
.bee-volo.bee-ready .bee-volo__bee{opacity:1}
.bee-volo__bee svg{display:block;width:100%;height:100%;overflow:visible}
.bee-volo .bv-body{fill:var(--bee-volo-body,#EEC041);stroke:var(--bee-volo-outline,#12110F);stroke-width:1.3;stroke-linejoin:round}
.bee-volo .bv-wing{fill:var(--bee-volo-wing,#F6F0E1);stroke:var(--bee-volo-outline,#12110F);stroke-width:1.2;stroke-linejoin:round}
.bee-volo .bv-ant{fill:none;stroke:var(--bee-volo-body,#EEC041);stroke-width:2;stroke-linecap:round}
.bee-volo .wing{transform-box:fill-box}
.bee-volo .wl{transform-origin:100% 50%}
.bee-volo .wr{transform-origin:0% 50%}
.bee-volo.is-anim .wing{animation:bee-volo-flap .12s ease-in-out infinite alternate}
@keyframes bee-volo-flap{to{transform:scaleX(.45)}}
@media (prefers-reduced-motion:reduce){
	.bee-volo .nd,.bee-volo__bee{transition:none}
	.bee-volo.is-anim .wing{animation:none}
}

/* solo nell'editor: etichetta cliccabile per selezionare il widget, che di per sé è trasparente */
.bee-volo__badge{position:absolute;left:8px;top:8px;pointer-events:auto;background:#EEC041;color:#12110F;font:600 11px/1.2 sans-serif;padding:3px 8px;border-radius:2px;z-index:5}
