/* Folio Core – stili dei widget. Usa le variabili del tema Folio, con valori di riserva per altri temi. */

.folio-grid,.folio-carousel,.folio-quotes,.folio-timeline,.folio-hero,.folio-contact,.folio-gallery{
	--_accent:var(--folio-accent,#3a2fe0);
	--_ink:var(--folio-accent-ink,#fff);
	--_text:var(--folio-text,#0f1722);
	--_bg:var(--folio-bg,#f1f3f6);
	--_surface:var(--folio-surface,#fff);
	--_muted:color-mix(in srgb,var(--_text) 62%,var(--_bg));
	--_line:color-mix(in srgb,var(--_text) 16%,var(--_bg));
	--_radius:var(--folio-radius,6px);
	--_heading:var(--folio-font-heading,inherit);
}

/* ---------- pulsanti ---------- */
.folio-btn{display:inline-block;padding:.8em 1.5em;border:2px solid var(--folio-accent,#3a2fe0);border-radius:var(--folio-radius,6px);background:var(--folio-accent,#3a2fe0);color:var(--folio-accent-ink,#fff);font:inherit;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s}
.folio-btn:hover,.folio-btn:focus-visible{background:transparent;color:var(--folio-accent,#3a2fe0)}
.folio-btn--ghost{background:transparent;color:var(--folio-accent,#3a2fe0)}
.folio-btn--ghost:hover,.folio-btn--ghost:focus-visible{background:var(--folio-accent,#3a2fe0);color:var(--folio-accent-ink,#fff)}

/* ---------- intro ---------- */
.folio-hero{max-width:62rem}
.folio-hero__title{margin:0 0 .4em;font-family:var(--_heading);font-size:clamp(2.6rem,7.5vw,6.2rem);font-weight:700;line-height:1;letter-spacing:-.035em;color:var(--_text)}
.folio-hero__title em{font-style:normal;color:var(--_accent)}
.folio-hero__text{max-width:36rem;margin:0 0 1.6em;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.55;color:var(--_muted)}
.folio-hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:0}

/* ---------- filtro ---------- */
.folio-filter{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.6rem;padding:0;list-style:none}
.folio-filter button{padding:.45em 1em;border:1px solid var(--_line);border-radius:999px;background:transparent;color:var(--_text);font:inherit;font-size:.95rem;cursor:pointer;transition:background-color .15s,border-color .15s}
.folio-filter button:hover{border-color:var(--_text)}
.folio-filter button.is-active{background:var(--_text);border-color:var(--_text);color:var(--_bg)}
.folio-filter button:focus-visible{outline:2px solid var(--_accent);outline-offset:2px}

/* ---------- griglia e schede ---------- */
.folio-grid{display:grid;gap:2.2rem 1.6rem;grid-template-columns:repeat(var(--folio-cols,3),minmax(0,1fr))}
.folio-cols-1{--folio-cols:1}.folio-cols-2{--folio-cols:2}.folio-cols-3{--folio-cols:3}.folio-cols-4{--folio-cols:4}
@media (max-width:1024px){.folio-cols-3,.folio-cols-4{--folio-cols:2}}
@media (max-width:600px){.folio-grid{--folio-cols:1}}
.folio-card[hidden]{display:none}
.folio-card__link{display:block;color:inherit;text-decoration:none}
.folio-card__media{position:relative;overflow:hidden;aspect-ratio:var(--folio-ratio,4/3);border-radius:var(--folio-radius,6px);background:color-mix(in srgb,var(--folio-accent,#3a2fe0) 14%,var(--folio-surface,#fff))}
.folio-card__media img{display:block;width:100%;height:100%;object-fit:cover;scale:var(--fm-s,1);transition:scale .7s cubic-bezier(.2,.7,.2,1)}
.folio-card__link:hover .folio-card__media img{--fm-s:1.06}
.folio-card__ph{display:grid;place-items:center;width:100%;height:100%;font-family:var(--folio-font-heading,inherit);font-size:clamp(4rem,12vw,8rem);font-weight:700;color:color-mix(in srgb,var(--folio-accent,#3a2fe0) 55%,transparent)}
.folio-card__body{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.2rem 1rem;padding-top:.8rem}
.folio-card__title{margin:0;font-family:var(--folio-font-heading,inherit);font-size:1.25rem;font-weight:600;line-height:1.25;letter-spacing:-.01em}
.folio-card__link:hover .folio-card__title,.folio-card__link:focus-visible .folio-card__title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em;text-decoration-color:var(--folio-accent,#3a2fe0)}
.folio-card__meta{display:flex;gap:.9rem;margin:0;font-size:.9rem;color:color-mix(in srgb,var(--folio-text,#0f1722) 62%,var(--folio-bg,#f1f3f6))}
.folio-empty{color:color-mix(in srgb,var(--folio-text,#0f1722) 62%,var(--folio-bg,#f1f3f6))}

/* ---------- carosello ---------- */
.folio-carousel__bar{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:1rem}
.folio-carousel__bar button{width:2.6rem;height:2.6rem;border:1px solid var(--_line);border-radius:50%;background:transparent;color:var(--_text);font-size:1.1rem;cursor:pointer}
.folio-carousel__bar button:hover{background:var(--_text);color:var(--_bg)}
.folio-carousel__bar button:focus-visible,.folio-track:focus-visible{outline:2px solid var(--_accent);outline-offset:2px}
.folio-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--folio-slides,3) - 1) * 1.6rem) / var(--folio-slides,3));gap:1.6rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.folio-track::-webkit-scrollbar{display:none}
.folio-track .folio-card{scroll-snap-align:start}
@media (max-width:1024px){.folio-track{grid-auto-columns:calc((100% - 1.6rem) / 2)}}
@media (max-width:600px){.folio-track{grid-auto-columns:86%}}

/* ---------- testimonianze ---------- */
.folio-quotes--grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.folio-quotes--slider{display:grid;grid-auto-flow:column;grid-auto-columns:min(32rem,86%);gap:2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.5rem}
.folio-quote{margin:0;padding:1.6rem 0 0;border-top:2px solid var(--_text);scroll-snap-align:start}
.folio-quote blockquote{margin:0 0 1rem;padding:0;border:0;font-family:var(--_heading);font-size:1.2rem;line-height:1.5}
.folio-quote blockquote p{margin:0 0 .6em}
.folio-quote figcaption{display:flex;flex-direction:column;font-size:.95rem}
.folio-quote figcaption span{color:var(--_muted)}

/* ---------- esperienze ---------- */
.folio-timeline{margin:0;padding:0;list-style:none;border-top:1px solid var(--_line)}
.folio-timeline__item{display:grid;grid-template-columns:11rem 1fr;gap:1rem 2rem;padding:1.4rem 0;border-bottom:1px solid var(--_line)}
.folio-timeline__period{color:var(--_muted);font-variant-numeric:tabular-nums}
.folio-timeline__body h3{margin:0 0 .2rem;font-family:var(--_heading);font-size:1.25rem}
.folio-timeline__body p{margin:.3rem 0 0;max-width:40rem}
.folio-timeline__body .folio-timeline__sub{margin-top:0;color:var(--_muted)}
@media (max-width:600px){.folio-timeline__item{grid-template-columns:1fr}}

/* ---------- form contatti ---------- */
.folio-contact{max-width:40rem}
.folio-form p{margin:0 0 1.1rem}
.folio-form label{display:block;margin-bottom:.35rem;font-weight:600}
.folio-form input[type=text],.folio-form input[type=email],.folio-form input[type=tel],.folio-form textarea{width:100%;padding:.75em .9em;border:1px solid var(--_line);border-radius:var(--_radius);background:var(--_surface);color:var(--_text);font:inherit}
.folio-form input:focus-visible,.folio-form textarea:focus-visible{outline:2px solid var(--_accent);outline-offset:1px;border-color:var(--_accent)}
.folio-consent label{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;font-size:.92rem}
.folio-consent input{margin-top:.25rem}
.folio-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.folio-notice{margin:0 0 1.2rem;padding:.9em 1.1em;border-left:4px solid var(--_accent);background:var(--_surface)}
.folio-notice--err{border-left-color:#c0332b}

/* ---------- galleria e lightbox ---------- */
.folio-gallery{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));margin:2rem 0;padding:0;list-style:none}
.folio-gallery img{display:block;width:100%;height:auto;border-radius:var(--_radius)}
.folio-gallery a{display:block;cursor:zoom-in}
.folio-lightbox{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:2rem;background:rgba(8,10,14,.92)}
.folio-lightbox img{max-width:100%;max-height:100%;border-radius:4px}
.folio-lightbox button{position:absolute;width:3rem;height:3rem;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.4rem;cursor:pointer}
.folio-lightbox button:hover,.folio-lightbox button:focus-visible{background:rgba(255,255,255,.3)}
.folio-lightbox [data-lb=close]{top:1rem;right:1rem}
.folio-lightbox [data-lb=prev]{left:1rem}
.folio-lightbox [data-lb=next]{right:1rem}
@media (prefers-reduced-motion:reduce){.folio-card__media img,.folio-btn{transition:none}[data-parallax-img]{scale:1;translate:none}.folio-track{scroll-behavior:auto}}
