/* u-template.css — utility e dettagli dei template del Theme Builder (header, footer, singoli, archivio, 404, ricerca),
   dei Loop Item e della fascia contatti. Lo stile dei blocchi è nelle opzioni dei widget e nel Kit: qui solo ciò che il pannello
   non sa esprimere (forme, contatori, :has(), contenitori che si adattano al contenuto). */

/* tono chiaro: il testo ereditato è nero (sezioni avorio o gialle); i widget con colore proprio non cambiano */
body.bee .bee-tone-light,body.bee .bee-tone-light .elementor-widget-text-editor,body.bee .bee-tone-light .elementor-widget-heading .elementor-heading-title{color:var(--bee-ink)}

/* piccoli esagoni, forme e celle */
body.bee .bee-dot{width:16px;height:18px;min-height:0;flex:none;background-color:currentColor;clip-path:var(--bee-hexp);transition:transform .4s var(--bee-ease)}
body.bee .bee-row:hover .bee-dot,body.bee .bee-row:focus-within .bee-dot{transform:rotate(30deg) scale(1.3)}
body.bee .bee-hexbox{aspect-ratio:100/114;width:100%}
body.bee .bee-hexbox>.e-con-inner{height:100%}
body.bee .bee-cq{container-type:inline-size}
body.bee .bee-hex-cell{width:100%}
body.bee .elementor-widget-image:not(:has(img)){display:none}
body.bee .elementor-widget-heading:has(.elementor-heading-title:empty){display:none}

/* numero progressivo delle righe di un Loop Grid (blog): 01, 02, … */
body.bee .elementor-loop-container{counter-reset:bee-n}
body.bee .e-loop-item{counter-increment:bee-n}
body.bee .bee-num{flex:none;width:clamp(90px,17%,230px);min-width:90px}
body.bee .bee-num::before{content:counter(bee-n,decimal-leading-zero);display:block;position:static;inset:auto;width:auto;height:auto;opacity:1;background:none;transform:none;font:800 clamp(70px,11vw,160px)/.8 var(--bee-f-d);letter-spacing:-.05em;color:inherit;-webkit-text-fill-color:transparent;-webkit-text-stroke:max(2px,.014em) currentColor;transition:-webkit-text-fill-color .4s}
body.bee .bee-row:hover .bee-num::before,body.bee .bee-row:focus-within .bee-num::before{-webkit-text-fill-color:var(--bee-yel);-webkit-text-stroke-color:var(--bee-ink)}
@media (max-width:700px){body.bee .bee-num::before{font-size:74px}body.bee .bee-num{width:auto}}

/* elenchi del Loop Grid con larghezza naturale degli elementi */
body.bee .bee-auto-grid .elementor-loop-container{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
body.bee .bee-flex-grid .elementor-loop-container{display:flex;flex-wrap:wrap}
body.bee .bee-flex-grid .e-loop-item{height:auto;width:auto}
body.bee .e-con.bee-fondo-scuro{background-color:var(--bee-grey)}
body.bee .bee-hover-yel:hover *,body.bee .bee-hover-yel:focus-within *{color:var(--bee-yel)}
body.bee .bee-menu-link .elementor-heading-title{transition:color .2s,padding .3s var(--bee-ease)}
body.bee .bee-menu-link:hover .elementor-heading-title,body.bee .bee-menu-link:focus-within .elementor-heading-title{color:var(--bee-yel);padding-left:.45rem}
body.bee .bee-card-link{transition:transform .35s var(--bee-ease)}
body.bee .bee-card-link:hover{transform:translateY(-4px)}
body.bee .bee-ulink a,body.bee .bee-ulink .elementor-heading-title a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.25em}

/* sezioni che spariscono se il dato manca */
body.bee .bee-need:has(.bee-field .elementor-text-editor:empty),body.bee .bee-need:has(.bee-field .elementor-heading-title:empty){display:none}

/* testi lunghi tratti da campi con elenco */
body.bee .bee-bigq ul,body.bee .bee-bigq ol{list-style:none;margin:0;padding:0}
body.bee .bee-bigq li,body.bee .bee-bigq p{margin:0 0 .8em;max-width:28ch}
body.bee .bee-fnlist ul,body.bee .bee-fnlist ol{list-style:none;margin:0;padding:0;counter-reset:fn;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,26px)}
body.bee .bee-fnlist li{counter-increment:fn;border-top:2px solid currentColor;padding-top:1rem;font-size:1.1rem;line-height:1.4}
body.bee .bee-fnlist li::before{content:counter(fn,decimal-leading-zero);display:block;margin-bottom:.6rem;font:500 .74rem var(--bee-f-m);letter-spacing:.08em;opacity:.7}
@media (max-width:700px){body.bee .bee-fnlist ul,body.bee .bee-fnlist ol{grid-template-columns:1fr}}
body.bee .bee-needlist ul,body.bee .bee-needlist ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:clamp(14px,2vw,26px)}
body.bee .bee-needlist li{padding:1.6rem 1.2rem 1.2rem;border:2px solid currentColor;font:700 clamp(1.1rem,1.5vw,1.3rem)/1.25 var(--bee-f-d);letter-spacing:-.015em}
body.bee .bee-needlist li::before{content:"";display:block;width:16px;height:18px;margin-bottom:1rem;background:var(--bee-ink);clip-path:var(--bee-hexp)}

/* paginazione dei risultati */
body.bee .elementor-pagination{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem;font:700 1rem var(--bee-f-d)}
body.bee .elementor-pagination .page-numbers{padding:.5rem .9rem;border:2px solid var(--bee-ink);text-decoration:none;color:var(--bee-ink)}
body.bee .elementor-pagination .page-numbers.current,body.bee .elementor-pagination a.page-numbers:hover{background:var(--bee-ink);color:var(--bee-ivory)}

/* modulo di contatto: dettagli che il widget Form non esprime */
body.bee .bee-form .elementor-field-group{margin-bottom:0}
body.bee .bee-form .elementor-field-textual{padding:.6rem .8rem;line-height:1.3;transition:box-shadow .25s,transform .25s var(--bee-ease)}
body.bee .bee-form .elementor-field-textual:focus{box-shadow:5px 5px 0 var(--bee-yel);transform:translate(-2px,-2px);outline:0}
body.bee .bee-form .elementor-field-textual:focus-visible{outline:3px solid var(--bee-ink);outline-offset:2px}
body.bee .bee-form textarea.elementor-field-textual{min-height:4.4rem;height:4.4rem;resize:vertical}
body.bee .bee-form .elementor-field-label{font-size:.7rem}
body.bee .bee-form .elementor-select-wrapper select{padding-right:2.2rem;cursor:pointer}
body.bee .bee-form .elementor-field-type-acceptance{align-self:center}
body.bee .bee-form .elementor-field-type-acceptance > .elementor-field-label{display:none}
body.bee .bee-form .elementor-field-group.elementor-field-type-submit{margin-top:0;align-self:end}
body.bee .bee-form .elementor-field-type-submit .elementor-button{width:100%;padding:.8rem 1rem}
body.bee .bee-form .elementor-field-label{display:block}
body.bee .bee-form .elementor-button{transition:background-color .3s}
body.bee .bee-form .elementor-button-content-wrapper{gap:.7rem}
body.bee .bee-form .elementor-message{font:700 .95rem/1.35 var(--bee-f-b)}
body.bee .bee-form .elementor-message-success{font:600 clamp(1.2rem,2vw,1.7rem)/1.25 var(--bee-f-d);letter-spacing:-.02em}
body.bee .bee-form .elementor-field-group.elementor-field-type-submit{margin-top:.8rem}
/* consenso: esagono al posto della casella */
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-subgroup{display:block}
body.bee .bee-form a{color:inherit}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option{position:relative;display:flex;align-items:flex-start;gap:1rem}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option input{position:absolute;opacity:0;width:30px;height:34px;margin:0;left:0;top:0;cursor:pointer}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option label{position:relative;padding-left:46px;cursor:pointer;font:400 1rem/1.45 var(--bee-f-b);letter-spacing:0}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option label::before{content:"";position:absolute;left:0;top:2px;width:30px;height:34px;background:var(--bee-ink);clip-path:var(--bee-hexp);transition:transform .3s cubic-bezier(.3,1.8,.5,1)}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option label::after{content:"";position:absolute;left:3px;top:5px;width:24px;height:28px;background:#fff;clip-path:var(--bee-hexp);transition:background-color .25s}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option input:checked+label::after{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.6 4.6L19 7.6' fill='none' stroke='%2312110F' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px 15px no-repeat,var(--bee-yel)}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option input:checked+label{background:none;color:inherit}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option:hover label::before{transform:rotate(14deg)}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option:has(input:focus-visible){outline:3px solid var(--bee-ink);outline-offset:6px}
body.bee .bee-form .elementor-field-type-acceptance .elementor-field-option a{font-weight:700}

/* header: voci del Mega Menu e pannelli */
body.bee .bee-header{box-sizing:border-box}
body.bee .bee-mega .e-n-menu-content>.e-con{max-height:calc(100vh - 64px);overflow:auto}
@media (max-width:900px){
  body.bee .bee-mega .e-n-menu-wrapper{background:var(--bee-ink)}
  body.bee .bee-mega .e-n-menu-title{border-bottom:1px solid rgba(246,240,225,.14)}
}
body.bee .bee-search .e-search-input{box-sizing:border-box}
body.bee .bee-search .e-search-input:focus-visible,body.bee .bee-search button:focus-visible{outline:3px solid var(--bee-yel);outline-offset:3px}
body.bee .bee-tone-light .bee-search .e-search-input:focus-visible{outline-color:var(--bee-ink)}
body.bee .bee-footnav .elementor-item{padding-left:0!important;padding-right:0!important}

/* larghezza massima del testo in ch (del carattere del testo, non del contenitore) */
body.bee .bee-ch14 .elementor-heading-title,body.bee .bee-ch14.elementor-widget-text-editor{max-width:14ch!important}body.bee .bee-ch14 .elementor-text-editor{max-width:14ch}
body.bee .bee-ch18 .elementor-heading-title,body.bee .bee-ch18.elementor-widget-text-editor{max-width:18ch!important}body.bee .bee-ch18 .elementor-text-editor{max-width:18ch}
body.bee .bee-ch24 .elementor-heading-title,body.bee .bee-ch24.elementor-widget-text-editor{max-width:24ch!important}body.bee .bee-ch24 .elementor-text-editor{max-width:24ch}
body.bee .bee-ch28 .elementor-heading-title,body.bee .bee-ch28.elementor-widget-text-editor{max-width:28ch!important}body.bee .bee-ch28 .elementor-text-editor{max-width:28ch}
body.bee .bee-ch30 .elementor-heading-title,body.bee .bee-ch30.elementor-widget-text-editor{max-width:30ch!important}body.bee .bee-ch30 .elementor-text-editor{max-width:30ch}
body.bee .bee-ch34 .elementor-heading-title,body.bee .bee-ch34.elementor-widget-text-editor{max-width:34ch!important}body.bee .bee-ch34 .elementor-text-editor{max-width:34ch}
body.bee .bee-ch44 .elementor-heading-title,body.bee .bee-ch44.elementor-widget-text-editor{max-width:44ch!important}body.bee .bee-ch44 .elementor-text-editor{max-width:44ch}
body.bee .bee-ch46 .elementor-heading-title,body.bee .bee-ch46.elementor-widget-text-editor{max-width:46ch!important}body.bee .bee-ch46 .elementor-text-editor{max-width:46ch}
body.bee .bee-ch56 .elementor-heading-title,body.bee .bee-ch56.elementor-widget-text-editor{max-width:56ch!important}body.bee .bee-ch56 .elementor-text-editor{max-width:56ch}
body.bee .bee-ch60 .elementor-heading-title,body.bee .bee-ch60.elementor-widget-text-editor{max-width:60ch!important}body.bee .bee-ch60 .elementor-text-editor{max-width:60ch}

/* link (.lnk del prototipo): filo sempre visibile al 30% che al passaggio del mouse si riempie */
body.bee .bee-link .elementor-button{background-image:linear-gradient(currentColor,currentColor),linear-gradient(color-mix(in srgb,currentColor 30%,transparent),color-mix(in srgb,currentColor 30%,transparent));background-size:0% 2px,100% 2px;background-position:0 100%,0 100%;padding-bottom:3px}
body.bee .bee-link .elementor-button:hover{background-size:100% 2px,100% 2px}

/* contenitori cliccabili (Loop Item con link): niente sottolineatura né colore del link */
body.bee a.e-con{text-decoration:none;color:inherit}
body.bee a.e-con:focus-visible{outline:3px solid var(--bee-yel);outline-offset:-3px}
body.bee .bee-tone-light a.e-con:focus-visible{outline-color:var(--bee-ink)}

/* Menu: «Settori» e «Azienda» hanno una sola colonna, quindi sono tendine classiche sotto la voce (non mega menu a tutta larghezza).
   Sopra i 900 px (menu orizzontale, hover) il contenitore si ancora alla voce; su tablet e telefono resta il pannello dentro il menu a scomparsa. */
@media (min-width:901px){
  body.bee .e-n-menu-item:has(> .e-n-menu-content > .bee-dd){position:relative}
  body.bee .e-n-menu-content:has(> .bee-dd){position:absolute!important;top:100%!important;left:0!important;right:auto!important;width:max-content!important;min-width:100%;max-width:92vw;transform:none!important;margin:0!important}
  body.bee .e-n-menu-content > .bee-dd{width:100%!important}
}

/* Menu su tablet e telefono (≤900 px): popup centrato a schermo intero con le sole voci principali, senza sottovoci né pannelli.
   Ogni voce porta alla sua pagina contenitore (Servizi, Prodotti, Settori, Azienda), da lì si naviga. Il pulsante del menu resta sopra e fa da chiusura. */
@media (max-width:900px){
  body.bee .e-n-menu .e-n-menu-content,
  body.bee .e-n-menu .e-n-menu-dropdown-icon{display:none!important}
  body.bee .e-n-menu-toggle[aria-expanded="true"]{position:relative;z-index:10001}
  body.bee .e-n-menu-toggle[aria-expanded="true"] ~ .e-n-menu-wrapper{
    position:fixed;inset:0;z-index:10000;display:flex!important;align-items:center;justify-content:center;
    width:100vw;height:100dvh;max-height:none;margin:0;padding:84px 24px 40px;overflow-y:auto;box-sizing:border-box;
    background:rgba(18,17,15,.97);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='104' viewBox='0 0 120 104'%3E%3Cpath d='M30 0l30 17v34L30 68 0 51V17zM90 52l30 17v34l-30 17-30-17V69z' fill='none' stroke='%23EEC041' stroke-opacity='.07' stroke-width='1.5'/%3E%3C/svg%3E");
    background-size:120px 104px}
  body.bee .e-n-menu-wrapper .e-n-menu-heading{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;max-width:420px;margin:0 auto;padding:0}
  body.bee .e-n-menu-wrapper .e-n-menu-item{width:100%;max-width:100%;min-width:0;text-align:center}
  body.bee .e-n-menu-wrapper .e-n-menu-title{justify-content:center;width:100%;max-width:100%;min-width:0;padding:0!important;border:0}
  body.bee .e-n-menu-wrapper .e-n-menu-title-container{justify-content:center;width:100%;max-width:100%;min-width:0;padding:10px 0}
  body.bee .e-n-menu-wrapper .e-n-menu-title-text{font-size:clamp(30px,9vw,44px)!important;line-height:1.15!important;font-family:var(--bee-f-d);font-weight:800;letter-spacing:-.02em}
}
