/* tk-elementor-widgets — frontend */
.tk-ew-pro-lock{
    border:1px dashed #e3417a; background:#fdf2f7; color:#9d234e;
    border-radius:10px; padding:18px 20px; text-align:center; font-size:14px; line-height:1.5;
}
.tk-ew-pro-lock span{ color:#b15c7e; font-size:13px; }

/* Listino prezzi */
.tk-ew-price-list .tk-pl-row{ display:flex; align-items:flex-end; gap:8px; padding:10px 0; border-bottom:1px solid #eee; }
.tk-ew-price-list .tk-pl-info{ display:flex; flex-direction:column; }
.tk-ew-price-list .tk-pl-title{ font-weight:700; color:#1c2230; }
.tk-ew-price-list .tk-pl-desc{ font-size:13px; color:#7a828f; }
.tk-ew-price-list .tk-pl-dots{ flex:1; border-bottom:2px dotted #cdd3dc; transform:translateY(-4px); }
.tk-ew-price-list .tk-pl-price{ font-weight:800; color:#e3417a; white-space:nowrap; }

/* Tabella prezzi */
.tk-ew-price-table{ border:1px solid #e6e9ef; border-radius:14px; padding:28px 24px; text-align:center; max-width:340px; }
.tk-ew-price-table.is-featured{ border-color:#e3417a; box-shadow:0 12px 36px rgba(227,65,122,.18); }
.tk-ew-price-table .tk-pt-plan{ font-weight:700; text-transform:uppercase; letter-spacing:1px; color:#7a828f; font-size:13px; }
.tk-ew-price-table .tk-pt-price{ margin:14px 0; }
.tk-ew-price-table .tk-pt-cur{ font-size:20px; vertical-align:top; color:#1c2230; }
.tk-ew-price-table .tk-pt-amt{ font-size:46px; font-weight:800; color:#1c2230; }
.tk-ew-price-table .tk-pt-per{ color:#7a828f; }
.tk-ew-price-table .tk-pt-features{ list-style:none; margin:18px 0; padding:0; }
.tk-ew-price-table .tk-pt-features li{ padding:8px 0; border-bottom:1px solid #f1f3f7; color:#4a5568; }
.tk-ew-price-table .tk-pt-btn{ display:inline-block; margin-top:8px; background:#e3417a; color:#fff; font-weight:700; padding:12px 28px; border-radius:50px; text-decoration:none; }
.tk-ew-price-table .tk-pt-btn:hover{ background:#c92e64; color:#fff; }

/* Griglia Prodotti: il redesign card del tema (.blog-stream.masonry) forza
   grid-template-columns:repeat(3,1fr)!important. Nel nostro widget usiamo le
   colonne scelte (specificità più alta → vince). Pura CSS, vale editor + frontend. */
.tk-ew-products .blog-stream.masonry,
.tk-ew-products .shop-grid{
    grid-template-columns:repeat(var(--tk-cols,3),minmax(0,1fr)) !important;
}
@media(max-width:1024px){
    .tk-ew-products .blog-stream.masonry,
    .tk-ew-products .shop-grid{ grid-template-columns:repeat(var(--tk-cols-t,2),minmax(0,1fr)) !important; }
}
@media(max-width:767px){
    .tk-ew-products .blog-stream.masonry,
    .tk-ew-products .shop-grid{ grid-template-columns:repeat(var(--tk-cols-m,1),minmax(0,1fr)) !important; }
}

/* Griglia Articoli (blog) */
.tk-ew-posts{ display:grid; grid-template-columns:repeat(var(--tk-cols,3),minmax(0,1fr)); gap:26px; }
@media(max-width:1024px){ .tk-ew-posts{ grid-template-columns:repeat(var(--tk-cols-t,2),minmax(0,1fr)); } }
@media(max-width:767px){ .tk-ew-posts{ grid-template-columns:repeat(var(--tk-cols-m,1),minmax(0,1fr)); } }
.tk-ew-posts .tk-post-card{ display:flex; flex-direction:column; background:#fff; border:1px solid #ececec; border-radius:14px; overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.04); transition:box-shadow .25s ease,transform .25s ease,border-color .25s ease; }
.tk-ew-posts .tk-post-card:hover{ box-shadow:0 8px 24px rgba(0,0,0,.1); transform:translateY(-2px); border-color:#d4d4d4; }
.tk-ew-posts .tk-post-thumb{ display:block; aspect-ratio:16/10; overflow:hidden; }
.tk-ew-posts .tk-post-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.tk-ew-posts .tk-post-card:hover .tk-post-thumb img{ transform:scale(1.04); }
.tk-ew-posts .tk-post-body{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.tk-ew-posts .tk-post-date{ font-size:12px; color:#8a8a8a; text-transform:uppercase; letter-spacing:.4px; }
.tk-ew-posts .tk-post-title{ margin:0; font-size:18px; line-height:1.3; }
.tk-ew-posts .tk-post-title a{ color:#1c2230; text-decoration:none; }
.tk-ew-posts .tk-post-title a:hover{ color:#961d2e; }
.tk-ew-posts .tk-post-excerpt{ margin:0; font-size:14px; color:#5b6472; line-height:1.6; }
.tk-ew-posts .tk-post-more{ margin-top:auto; padding-top:6px; font-weight:700; font-size:14px; color:#961d2e; text-decoration:none; }
.tk-ew-posts .tk-post-more:hover{ text-decoration:underline; }

/* Slider (TK Slides) */
.tk-ew-slides{position:relative;overflow:hidden;border-radius:10px}
.tk-ew-slides-track{display:flex;transition:transform var(--tk-tspeed,500ms) ease;height:var(--tk-sl-h,480px)}
.tk-ew-slide{position:relative;flex:0 0 100%;height:100%;display:flex;align-items:center;overflow:hidden}
.tk-ew-slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
/* Effetti "stacked": dissolvenza / scorrimento verticale / zoom / casuale */
.tk-ew-fx-fade .tk-ew-slides-track,.tk-ew-fx-slidev .tk-ew-slides-track,.tk-ew-fx-zoom .tk-ew-slides-track,.tk-ew-fx-random .tk-ew-slides-track{display:block;position:relative}
.tk-ew-fx-fade .tk-ew-slide,.tk-ew-fx-slidev .tk-ew-slide,.tk-ew-fx-zoom .tk-ew-slide,.tk-ew-fx-random .tk-ew-slide{position:absolute;inset:0;flex:none;opacity:0;pointer-events:none;transition:opacity var(--tk-tspeed,500ms) ease,transform var(--tk-tspeed,500ms) ease}
.tk-ew-fx-fade .tk-ew-slide.is-active,.tk-ew-fx-slidev .tk-ew-slide.is-active,.tk-ew-fx-zoom .tk-ew-slide.is-active,.tk-ew-fx-random .tk-ew-slide.is-active{opacity:1;pointer-events:auto}
/* zoom */
.tk-ew-fx-zoom .tk-ew-slide,.tk-ew-fx-random.tk-ew-rnd-zoom .tk-ew-slide{transform:scale(1.08)}
.tk-ew-fx-zoom .tk-ew-slide.is-active,.tk-ew-fx-random.tk-ew-rnd-zoom .tk-ew-slide.is-active{transform:scale(1)}
/* scorrimento verticale */
.tk-ew-fx-slidev .tk-ew-slide,.tk-ew-fx-random.tk-ew-rnd-slidev .tk-ew-slide{transform:translateY(48px)}
.tk-ew-fx-slidev .tk-ew-slide.is-active,.tk-ew-fx-random.tk-ew-rnd-slidev .tk-ew-slide.is-active{transform:translateY(0)}
/* Ken Burns (movimento immagine) */
.tk-ew-kb .tk-ew-slide-bg{animation:tk-kb-in 16s ease-out infinite alternate;will-change:transform}
.tk-ew-kb-out .tk-ew-slide-bg{animation-name:tk-kb-out}
@keyframes tk-kb-in{from{transform:scale(1)}to{transform:scale(1.14)}}
@keyframes tk-kb-out{from{transform:scale(1.14)}to{transform:scale(1)}}
.tk-ew-slide-ov{position:absolute;inset:0;z-index:1;background:rgba(15,20,32,.4)}
.tk-ew-slide-in{position:relative;z-index:2;max-width:680px;padding:0 6%;color:#fff;transform:translate(var(--tk-ox,0),var(--tk-oy,0))}
.tk-ew-align-center .tk-ew-slide{justify-content:center;text-align:center}
.tk-ew-align-center .tk-ew-slide-in{margin:0 auto}
.tk-ew-align-right .tk-ew-slide{justify-content:flex-end;text-align:right}
.tk-ew-slide-in h2{color:#fff;font-size:40px;font-weight:800;margin:0 0 14px;line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.tk-ew-slide-in p{color:rgba(255,255,255,.92);font-size:17px;margin:0 0 20px;line-height:1.5}
.tk-ew-slide-btn{display:inline-block;background:#fff;color:#1c2230;font-weight:700;padding:12px 28px;border-radius:50px;text-decoration:none}
.tk-ew-slide-btn:hover{background:#e3417a;color:#fff}
.tk-ew-slides-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.85);color:#1c2230;font-size:26px;line-height:1;cursor:pointer}
.tk-ew-slides-prev{left:16px}
.tk-ew-slides-next{right:16px}
.tk-ew-slides-arrow:hover{background:#fff}
.tk-ew-slides-dots{position:absolute;bottom:16px;left:0;right:0;z-index:3;display:flex;gap:8px;justify-content:center}
.tk-ew-slides-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.5);cursor:pointer;padding:0}
.tk-ew-slides-dot.is-active{background:#fff}
@media(max-width:782px){ .tk-ew-slide-in h2{font-size:28px} .tk-ew-slide-in p{font-size:15px} }

/* Carosello prodotti: griglia [products] in scroll orizzontale con snap */
.tk-ew-products-carousel ul.products{
    display:flex !important; flex-wrap:nowrap !important; overflow-x:auto; scroll-snap-type:x mandatory;
    gap:18px; padding-bottom:12px; margin:0; -webkit-overflow-scrolling:touch;
}
.tk-ew-products-carousel ul.products li.product{
    flex:0 0 calc((100% - (var(--tk-vis) - 1) * 18px) / var(--tk-vis)) !important;
    width:auto !important; margin:0 !important; scroll-snap-align:start;
}
@media(max-width:782px){
    .tk-ew-products-carousel ul.products li.product{ flex-basis:70% !important; }
}

/* Menu di navigazione (nav-menu) */
.tk-ew-navwrap{position:relative}
.tk-ew-nav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tk-ew-nav-vertical{flex-direction:column;align-items:stretch}
.tk-ew-nav li{position:relative}
.tk-ew-nav a{display:block;text-decoration:none;color:inherit;padding:8px 14px;line-height:1.3;transition:color .15s,background .15s}
.tk-ew-nav .sub-menu{list-style:none;margin:0;padding:6px 0;min-width:200px;border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.14)}
.tk-ew-nav .sub-menu a{padding:8px 16px}
/* dropdown desktop su hover (layout orizzontale) */
.tk-ew-navwrap:not(.tk-nav-mobile) .tk-ew-nav-horizontal .sub-menu{position:absolute;top:100%;left:0;z-index:99;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s}
.tk-ew-navwrap:not(.tk-nav-mobile) .tk-ew-nav-horizontal li:hover>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.tk-ew-navwrap:not(.tk-nav-mobile) .tk-ew-nav-horizontal .sub-menu .sub-menu{top:0;left:100%}
/* sottomenu verticale: cascata indentata */
.tk-ew-nav-vertical .sub-menu{padding-left:14px;box-shadow:none}
/* hamburger */
.tk-ew-nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:0;border:0;background:transparent;cursor:pointer}
.tk-ew-nav-toggle span{display:block;width:24px;height:2px;background:#1c2230;border-radius:2px;transition:transform .2s,opacity .2s}
.tk-ew-navwrap.is-open .tk-ew-nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.tk-ew-navwrap.is-open .tk-ew-nav-toggle span:nth-child(2){opacity:0}
.tk-ew-navwrap.is-open .tk-ew-nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* toggle sottomenu (mobile) */
.tk-ew-sub-toggle{display:none;position:absolute;top:0;right:0;width:44px;height:44px;border:0;background:transparent;cursor:pointer;color:inherit}
.tk-ew-sub-toggle span{display:block;width:9px;height:9px;margin:0 auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s}
/* MOBILE: menu a tendina sotto l'hamburger */
.tk-ew-navwrap.tk-nav-mobile .tk-ew-nav-toggle{display:flex}
.tk-ew-navwrap.tk-nav-mobile .tk-ew-nav{position:absolute;top:100%;left:0;right:0;z-index:99;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-radius:8px;box-shadow:0 12px 36px rgba(0,0,0,.16);max-height:0;overflow:hidden;transition:max-height .25s ease}
.tk-ew-navwrap.tk-nav-mobile.is-open .tk-ew-nav{max-height:80vh;overflow:auto}
.tk-ew-navwrap.tk-nav-mobile .tk-ew-nav a{padding:12px 16px;border-bottom:1px solid rgba(0,0,0,.06)}
.tk-ew-navwrap.tk-nav-mobile .sub-menu{position:static!important;opacity:1!important;visibility:visible!important;transform:none!important;box-shadow:none;display:none;padding:0 0 0 12px}
.tk-ew-navwrap.tk-nav-mobile li.is-open>.sub-menu{display:block}
.tk-ew-navwrap.tk-nav-mobile .menu-item-has-children>a{padding-right:48px}
.tk-ew-navwrap.tk-nav-mobile .tk-ew-sub-toggle{display:block}
.tk-ew-navwrap.tk-nav-mobile li.is-open>.tk-ew-sub-toggle span{transform:rotate(-135deg)}

/* Briciole di pane (breadcrumbs) */
.tk-ew-bc{font-size:14px;line-height:1.5}
.tk-ew-bc a{text-decoration:none;color:inherit}
.tk-ew-bc a:hover{text-decoration:underline}
.tk-ew-bc-sep{opacity:.5;margin:0 2px}
.tk-ew-bc-cur{opacity:.8}

/* ── TK Slider — modalità carosello su Swiper (1.2.0) ── */
/* NB: molti temi/plugin applicano regole globali a .swiper-slide (opacity:0, transform:scale())
   che farebbero sparire o deformare le nostre slide: qui vinciamo per specificità, non con !important. */
.tk-ew-carousel{position:relative;overflow:visible;border-radius:0;padding:0 0 6px}
.tk-ew-carousel .swiper-wrapper{align-items:center;height:auto}
.tk-ew-carousel .tk-ew-slide.swiper-slide{position:relative;display:block;flex:0 0 auto;height:var(--tk-sl-h,480px);
    opacity:1;transform:none;overflow:hidden;
    transition:transform var(--tk-tspeed,500ms) cubic-bezier(.4,0,.2,1),opacity var(--tk-tspeed,500ms) ease}
.tk-ew-carousel .tk-ew-slide-bg{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;background-position:center}
.tk-ew-cs-fit-contain .tk-ew-slide-bg{background-size:contain}
/* proporzioni originali: la colonna resta 1/N, l'altezza la detta l'immagine */
.tk-ew-carousel.tk-ew-cs-fit-natural .tk-ew-slide.swiper-slide{height:auto;overflow:visible}
.tk-ew-carousel.tk-ew-cs-fit-natural .tk-ew-slide-img{display:block;width:100%;height:auto;max-width:100%}
.tk-ew-carousel .tk-ew-slide-ov{background:transparent}
.tk-ew-carousel .tk-ew-slide-link{position:absolute;inset:0;z-index:3}
/* slide centrale in evidenza.
   Ad altezza fissa NON si scala (le colonne resterebbero disallineate): cresce l'altezza
   della sola slide attiva, come fa Prime Slider. In modalità "proporzioni originali"
   l'altezza la detta l'immagine, quindi lì si usa la scala. */
.tk-ew-cs-center{--tk-cs-scale:.88;--tk-cs-dim:1;--tk-cs-boost:1.25}
.tk-ew-cs-center.tk-ew-cs-fit-natural .tk-ew-slide.swiper-slide{transform:scale(var(--tk-cs-scale));opacity:var(--tk-cs-dim);transform-origin:center}
.tk-ew-cs-center.tk-ew-cs-fit-natural .tk-ew-slide.swiper-slide.swiper-slide-active{transform:scale(1);opacity:1;z-index:2}
/* Tutte le slide hanno la stessa altezza (quella "ingrandita"): le laterali vengono
   ritagliate sopra e sotto con clip-path. Così l'effetto è identico all'altezza variabile
   ma NON si rianima il layout a ogni frame -> transizione fluida invece che a scatti. */
.tk-ew-cs-center.tk-ew-cs-fit-cover .tk-ew-slide.swiper-slide,
.tk-ew-cs-center.tk-ew-cs-fit-contain .tk-ew-slide.swiper-slide{
    height:calc(var(--tk-sl-h,480px) * var(--tk-cs-boost,1.25));
    clip-path:inset(calc((1 - 1 / var(--tk-cs-boost,1.25)) / 2 * 100%) 0);
    will-change:clip-path;
    transition:clip-path var(--tk-tspeed,500ms) cubic-bezier(.4,0,.2,1),opacity var(--tk-tspeed,500ms) ease}
.tk-ew-cs-center.tk-ew-cs-fit-cover .tk-ew-slide.swiper-slide.swiper-slide-active,
.tk-ew-cs-center.tk-ew-cs-fit-contain .tk-ew-slide.swiper-slide.swiper-slide-active{
    clip-path:inset(0 0);z-index:2}
/* Scorrimento continuo: andatura lineare, altrimenti ogni ciclo "accelera e frena" */
.tk-ew-carousel.tk-ew-cs-flow .swiper-wrapper{transition-timing-function:linear}
.tk-ew-carousel.tk-ew-cs-flow .tk-ew-slides-arrow{display:none}

/* Testo: sovrapposto in basso, sfumatura scura, di norma solo sulla slide centrale */
.tk-ew-carousel .tk-ew-slide-in{position:absolute;left:0;right:0;bottom:0;z-index:2;max-width:none;
    padding:0 8% 11%;text-align:center;transition:opacity .35s ease}
.tk-ew-carousel .tk-ew-slide-in h2{font-size:38px;margin:0;text-shadow:0 2px 18px rgba(0,0,0,.45)}
.tk-ew-cs-grad .tk-ew-slide-ov{background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.28) 42%,rgba(0,0,0,0) 72%);opacity:0;transition:opacity .35s ease}
.tk-ew-cs-grad .swiper-slide-active .tk-ew-slide-ov{opacity:1}
.tk-ew-cs-text-active .tk-ew-slide-in{opacity:0;pointer-events:none}
.tk-ew-cs-text-active .swiper-slide-active .tk-ew-slide-in{opacity:1;pointer-events:auto}
@media(max-width:782px){ .tk-ew-carousel .tk-ew-slide-in h2{font-size:24px} }
.tk-ew-carousel .swiper-pagination{position:static;margin-top:18px;display:flex;gap:8px;justify-content:center}
.tk-ew-carousel .swiper-pagination-bullet{width:10px;height:10px;border-radius:50%;background:rgba(0,0,0,.22);opacity:1;margin:0}
.tk-ew-carousel .swiper-pagination-bullet-active{background:rgba(0,0,0,.7)}
.tk-ew-carousel .tk-ew-slides-arrow{top:50%}
.tk-ew-carousel .tk-ew-slides-prev{left:-6px}
.tk-ew-carousel .tk-ew-slides-next{right:-6px}
.tk-ew-no-text .tk-ew-slide-in{display:none}
@media(max-width:782px){ .tk-ew-carousel .tk-ew-slides-arrow{width:36px;height:36px;font-size:22px} .tk-ew-cs-center{--tk-cs-scale:.96} }
