/* Manifestazioni: palette originali, composizione condivisa con il sito Pro Loco. */
.slx-festival { --fe-chrome:#242720; }
.slx-festival--christmas { --fe-chrome:#133c2e; }
.slx-festival--arena { --fe-chrome:#172232; }
.slx-festival--halloween { --fe-chrome:#25202f; }
.slx-festival--market { --fe-chrome:#294234; }
.slx-festival :is(.slx-navbar,.slx-footer) { --ink:#fff9ed; --muted:#ced4c9; --surface:var(--fe-chrome); --border:#738070; --brand-blue:#ecd09f; --brand-blue-dark:#fff0cd; --brand-blue-soft:#ecd09f1c; --brand-yellow:#edcf9c; }
.slx-festival .slx-navbar { --bs-navbar-toggler-border-color:#aab3a3; --bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23fff9ed' stroke-linecap='round' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); border-bottom-color:#ffffff25; }
.slx-festival .slx-navbar .btn-outline-primary { --bs-btn-color:#ecd09f; --bs-btn-border-color:#a59370; --bs-btn-hover-bg:#ecd09f; --bs-btn-hover-border-color:#ecd09f; --bs-btn-hover-color:#172b21; }
.slx-festival .dropdown-menu { --bs-dropdown-bg:var(--fe-chrome); --bs-dropdown-color:#fff9ed; --bs-dropdown-link-color:#fff9ed; --bs-dropdown-link-hover-bg:#ffffff15; --bs-dropdown-link-hover-color:#ecd09f; --bs-dropdown-link-active-bg:#ecd09f; --bs-dropdown-link-active-color:#172b21; --bs-dropdown-header-color:#ced4c9; }
.slx-festival .slx-footer .slx-footer-bottom { background:#101e18; }
.slx-festival .slx-footer { margin-top:0!important; }
.festival { --fest-bg:#f6f3ec; --fest-ink:#302e28; --fest-muted:#66665d; --fest-accent:#9c422b; --fest-line:#d8d2c5; --fest-panel:#ede8de; --fest-field:#fffdf8; --fest-button-ink:#fffaf2; --fest-deep:#282b24; color:var(--fest-ink); background:var(--fest-bg); font-family:var(--bs-body-font-family); }
.festival--christmas { --fest-bg:#f7f3e9; --fest-ink:#253c30; --fest-muted:#626b5e; --fest-accent:#285d45; --fest-line:#d4cebd; --fest-panel:#ece8da; --fest-deep:#123a2c; }
.festival--market { --fest-bg:#f7f3e9; --fest-ink:#304235; --fest-muted:#626b5e; --fest-accent:#315f4b; --fest-line:#d4d3c2; --fest-panel:#eeeadf; --fest-deep:#2b4334; }
.festival--halloween { --fest-bg:#1c1a22; --fest-ink:#f2eada; --fest-muted:#c4bacb; --fest-accent:#d4b6ef; --fest-line:#514657; --fest-panel:#26212c; --fest-field:#28232e; --fest-button-ink:#241b2b; --fest-deep:#292133; }
.festival--arena { --fest-bg:#19222e; --fest-ink:#f5f0e6; --fest-muted:#bec9d1; --fest-accent:#e5cc93; --fest-line:#4a5867; --fest-panel:#212d3b; --fest-field:#243140; --fest-button-ink:#1b2732; --fest-deep:#101d2d; }
.fe-breadcrumb { padding-block:17px; }
.fe-breadcrumb ol { display:flex; flex-wrap:wrap; gap:7px 11px; list-style:none; padding:0; margin:0; font-size:.75rem; line-height:1.6; }
.fe-breadcrumb li { color:var(--fest-muted); }
.fe-breadcrumb li+li::before { content:'/'; display:inline-block; padding-right:11px; opacity:.65; }
.fe-breadcrumb a { color:var(--fest-accent); }
.fe-section-nav .fe-section-join { margin-left:auto; color:var(--fest-accent); font-weight:700; }
.festival *, .festival *::before, .festival *::after { box-sizing:border-box; }
.festival [hidden] { display:none!important; }
.festival a { color:inherit; text-underline-offset:.25em; }
.festival :focus-visible { outline:3px solid var(--fest-accent); outline-offset:4px; }
.festival :is(section,[id]) { scroll-margin-top:140px; }
.festival h2 { margin:0; font-size:clamp(2.1rem,3.5vw,3.5rem); font-weight:650; line-height:1.16; letter-spacing:-.045em; text-wrap:balance; }
.festival h2 em { display:block; color:var(--fest-accent); font-family:inherit; font-style:normal; font-weight:650; }
.festival h3 { font-size:1.2rem; line-height:1.35; font-weight:650; letter-spacing:-.025em; }
.festival p { line-height:1.8; }
.fe-container { width:min(1280px,calc(100% - 96px)); margin-inline:auto; }
.fe-eyebrow { margin:0 0 16px; color:var(--fest-accent); font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; line-height:1.7; }
.fe-preview { padding:9px 0; background:#e6d8b9; color:#4a3d29; font-size:.74rem; }
.fe-preview .fe-container { display:flex; justify-content:space-between; gap:16px; }
.fe-hero { position:relative; isolation:isolate; overflow:hidden; min-height:min(680px,calc(100svh - 64px)); display:flex; align-items:center; background:#1b241d; color:#fff8ec; }
.fe-hero::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#101914ef,#101914b0 42%,#10191415 80%); }
.fe-hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:60% 50%; animation:fe-image-enter 1.1s ease-out both; }
.fe-hero-copy { padding-block:66px 72px; animation:fe-enter .7s .08s ease-out both; }
.fe-hero .fe-eyebrow { color:#edcf9b; }
.fe-hero h1 { max-width:760px; margin:0 0 18px; font-size:clamp(3.2rem,5.8vw,5.6rem); line-height:1.02; font-weight:600; letter-spacing:-.055em; text-wrap:balance; }
.fe-hero .fe-title-long { font-size:clamp(2.75rem,4.5vw,4.8rem); }
.fe-hero-tagline { margin:0 0 19px; color:#edcf9b; font-size:1rem; font-weight:500; }
.fe-hero-intro { max-width:495px; margin:0 0 28px; font-size:1rem; color:#f2eadd; }
.fe-hero-edition { max-width:600px; margin:24px 0 0; font-size:.72rem; color:#e9e2d2; }
.fe-hero-edition span { padding-inline:7px; }
.fe-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.fe-button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:13px 24px; border:1px solid var(--fest-accent); border-radius:5px; color:var(--fest-button-ink)!important; background:var(--fest-accent); font:inherit; font-weight:650; font-size:.84rem; line-height:1.5; text-align:center; text-decoration:none; cursor:pointer; transition:transform .2s,filter .2s,box-shadow .2s; }
.fe-button:hover { color:var(--fest-button-ink); filter:brightness(1.08); transform:translateY(-2px); box-shadow:0 4px 18px #00000018; }
.fe-button:disabled { opacity:.65; cursor:default; transform:none; }
.fe-hero .fe-button { color:#20382b!important; background:#edcf9e; border-color:#edcf9e; }
.fe-closing .fe-button { color:#20382b!important; background:#edcf9e; border-color:#edcf9e; }
.fe-hero .fe-button--outline { color:#fff8ec!important; background:#14201b33; border-color:#e5d5b5a8; }
.fe-hero :focus-visible { outline-color:#f3d8a6; }
.fe-image-note { position:absolute; bottom:18px; right:30px; color:#eee3d0; font-size:.61rem; letter-spacing:.04em; text-shadow:0 1px 7px #000; }
.fe-section-nav { position:sticky; top:62px; z-index:20; background:var(--fest-bg); border-bottom:1px solid var(--fest-line); }
.fe-section-nav .fe-container { display:flex; gap:36px; min-height:64px; align-items:center; overflow:auto; }
.fe-section-nav a { padding:20px 0; font-size:.79rem; text-decoration:none; white-space:nowrap; }
.fe-section-nav a:hover { color:var(--fest-accent); text-decoration:underline; }
.fe-section { padding-block:clamp(58px,6.5vw,92px); }
.fe-heading { display:grid; grid-template-columns:1.15fr 1fr; gap:70px; align-items:end; margin-bottom:45px; }
.fe-heading>p { max-width:480px; margin:0; color:var(--fest-muted); font-size:.94rem; }
.fe-experiences { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; }
.fe-experiences article { border-top:1px solid var(--fest-line); padding-top:24px; }
.fe-number { display:block; margin-bottom:24px; color:var(--fest-accent); font-size:.74rem; font-family:Georgia,serif; }
.fe-experiences h3 { margin-bottom:12px; }
.fe-experiences p { color:var(--fest-muted); font-size:.86rem; margin:0; }
.fe-participate { background:var(--fest-panel); }
.fe-roles { border-top:1px solid var(--fest-line); }
.fe-role { display:flex; justify-content:space-between; align-items:center; gap:40px; border-bottom:1px solid var(--fest-line); padding:27px 0; }
.fe-role h3 { margin:0 0 8px; }
.fe-role p { max-width:700px; color:var(--fest-muted); font-size:.86rem; margin:0; }
.fe-role-link { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-height:44px; padding:10px 20px; color:var(--fest-accent)!important; border:1px solid var(--fest-accent); border-radius:4px; font-size:.78rem; font-weight:650; text-decoration:none; transition:background .2s,transform .2s; }
.fe-role-link:hover { background:var(--fest-bg); transform:translateY(-2px); }
.fe-role-closed { flex:0 0 auto; font-size:.75rem; color:var(--fest-muted); }
.fe-steps { list-style:none; padding:35px 0 0; margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:45px; }
.fe-steps li>span { display:block; color:var(--fest-accent); font-size:.7rem; margin-bottom:12px; }
.fe-steps strong { font-size:.87rem; font-weight:650; }
.fe-steps p { color:var(--fest-muted); font-size:.8rem; margin:10px 0 0; }
.fe-program { list-style:none; padding:0; margin:0; }
.fe-program li { display:grid; grid-template-columns:160px 1fr; gap:30px; border-top:1px solid var(--fest-line); padding:26px 0; }
.fe-program-time { color:var(--fest-accent); font-size:.85rem; font-weight:650; }
.fe-program h3 { margin:0 0 10px; }
.fe-program p { color:var(--fest-muted); margin:0 0 10px; font-size:.9rem; }
.fe-program small { color:var(--fest-muted); }
.fe-program-pending { padding:32px 0; border-block:1px solid var(--fest-line); }
.fe-program-pending p:last-child { color:var(--fest-muted); max-width:650px; margin:14px 0 0; font-size:.9rem; }
.fe-info { border-top:1px solid var(--fest-line); background:var(--fest-panel); }
.fe-info-layout { display:grid; grid-template-columns:1fr 1fr; gap:90px; }
.fe-facts { margin:30px 0 0; }
.fe-facts>div { display:grid; grid-template-columns:105px 1fr; gap:20px; padding:17px 0; border-bottom:1px solid var(--fest-line); font-size:.85rem; }
.fe-facts dt { color:var(--fest-muted); font-weight:400; }
.fe-facts dd { margin:0; font-weight:500; }
.fe-faq { padding-top:35px; }
.fe-faq details { border-bottom:1px solid var(--fest-line); }
.fe-faq details:first-child { border-top:1px solid var(--fest-line); }
.fe-faq summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 0; cursor:pointer; list-style:none; font-size:.9rem; font-weight:600; }
.fe-faq summary::-webkit-details-marker { display:none; }
.fe-faq summary span { font-size:1.3rem; color:var(--fest-accent); transition:transform .2s; }
.fe-faq details[open] summary span { transform:rotate(45deg); }
.fe-faq details p { color:var(--fest-muted); margin:0 0 23px; font-size:.85rem; }
.fe-text-link { display:inline-block; margin-top:24px; font-size:.85rem; }
.fe-closing { padding:72px 0; background:var(--fest-deep); color:#fff7e8; text-align:center; }
.fe-closing .fe-eyebrow { color:#e6c999; }
.fe-closing h2 { max-width:850px; margin:0 auto 30px; }
.fe-other { display:block; width:fit-content; margin:26px auto 0; color:#ead8b9!important; font-size:.8rem; }
.fe-pending { opacity:0; transform:translateY(20px); }
.fe-reveal { transition:opacity .65s,transform .65s; }
.fe-join { padding:24px 0 90px; }
.fe-back { display:inline-block; padding:10px 0; margin-bottom:32px; color:var(--fest-muted)!important; font-size:.8rem; }
.fe-join-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; align-items:start; }
.fe-join-intro { position:sticky; top:110px; }
.fe-join-intro h1 { margin:0 0 22px; font-size:clamp(2.3rem,3.2vw,3.6rem); font-weight:500; line-height:1.1; letter-spacing:-.045em; text-wrap:balance; }
.fe-join-intro>p:not(.fe-eyebrow) { color:var(--fest-muted); font-size:.9rem; }
.fe-join-intro figure { margin:28px 0 24px; }
.fe-join-intro img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; border-radius:4px; }
.fe-join-intro figcaption { margin-top:11px; color:var(--fest-muted); font-size:.75rem; }
.fe-join-content { border-top:1px solid var(--fest-line); padding-top:25px; }
.fe-join-content h2 { margin-bottom:20px; }
.fe-join-content>p { font-size:.9rem; color:var(--fest-muted); }
.fe-join-content form { margin-top:30px; }
.fe-fields { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.fe-field--wide { grid-column:1/-1; }
.fe-field { min-width:0; }
.fe-field label { display:block; margin-bottom:8px; color:var(--fest-ink); font-size:.82rem; font-weight:650; }
.fe-field label>span { color:var(--fest-muted); font-weight:400; font-size:.75rem; }
.fe-field :is(input,select,textarea) { display:block; width:100%; min-height:48px; padding:11px 13px; border:1px solid #a49b8c; border-radius:4px; background:var(--fest-field); color:var(--fest-ink); font:inherit; font-size:.9rem; line-height:1.6; }
.fe-field textarea { resize:vertical; }
.fe-field :is(input,textarea)::placeholder { color:var(--fest-muted); opacity:1; font-size:.8rem; }
.fe-fieldset { border:0; border-block:1px solid var(--fest-line); padding:26px 0; margin:28px 0; min-width:0; }
.fe-fieldset legend { float:none; width:auto; margin:0 0 13px; padding:0; font-size:1.05rem; font-weight:650; }
.fe-help { color:var(--fest-muted); font-size:.78rem!important; line-height:1.8; }
.fe-privacy { display:flex; align-items:start; gap:12px; margin:27px 0; font-size:.8rem; line-height:1.8; cursor:pointer; }
.fe-privacy input { flex:0 0 auto; width:18px; height:18px; margin-top:4px; accent-color:var(--fest-accent); }
.fe-submit-note { margin:22px 0 0; }
.fe-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.fe-error,.fe-success,.fe-notice { margin:24px 0; padding:18px 22px; border-left:3px solid; font-size:.88rem; line-height:1.8; }
.fe-error { background:#f6e6df; color:#8c3021; }
.fe-success { background:#e2ebdc; color:#264b31; }
.fe-notice { background:var(--fest-bg); color:var(--fest-ink); border-color:var(--fest-accent); }
.fe-admin-fields { padding:28px; border-radius:6px; }
@keyframes fe-image-enter { from{transform:scale(1.045)} to{transform:scale(1)} }
@keyframes fe-enter { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
@media(max-width:991.98px) { .fe-heading{gap:40px}.fe-info-layout{gap:45px}.fe-join-layout{gap:40px}.fe-roles .fe-role{gap:25px} }
@media(max-width:767.98px) {
 .fe-container{width:calc(100% - 40px)} .fe-hero{min-height:620px}.fe-hero-copy{padding-block:46px 54px}.fe-hero::after{background:linear-gradient(90deg,#101914ed,#101914c7 58%,#10191465)}.fe-hero-image{object-position:64% 50%}.fe-hero h1{font-size:clamp(2.9rem,11vw,4rem);max-width:520px}.fe-hero-intro{font-size:.94rem;max-width:400px}.fe-hero-tagline{font-size:.88rem}.fe-hero-edition{font-size:.68rem}.fe-image-note{right:20px;bottom:13px}.fe-button{min-height:46px;padding:12px 18px;font-size:.78rem}.fe-section-nav .fe-container{gap:26px;min-height:57px}.fe-section-nav a{font-size:.72rem;padding:18px 0}.fe-heading{grid-template-columns:1fr;gap:22px;margin-bottom:32px}.fe-heading>p{font-size:.9rem}.fe-experiences{grid-template-columns:1fr;gap:26px}.fe-experiences article{padding-top:20px}.fe-number{margin-bottom:15px}.fe-role{align-items:start;flex-direction:column;gap:18px;padding:24px 0}.fe-role-link{font-size:.76rem}.fe-steps{grid-template-columns:1fr;gap:24px}.fe-steps li{display:grid;grid-template-columns:28px 1fr;gap:6px 12px}.fe-steps li>span{grid-row:span 2;margin:2px 0 0}.fe-steps p{margin:0}.fe-info-layout{grid-template-columns:1fr;gap:24px}.fe-faq{padding-top:12px}.fe-facts>div{grid-template-columns:90px 1fr;gap:15px}.fe-program li{grid-template-columns:1fr;gap:12px}.fe-closing{padding-block:55px}.fe-join{padding-top:16px;padding-bottom:55px}.fe-join-layout{grid-template-columns:1fr;gap:28px}.fe-join-intro{position:static}.fe-join-intro figure{display:none}.fe-join-intro h1{font-size:2.5rem}.fe-join-intro>p.fe-help{display:none}.fe-back{margin-bottom:24px}.fe-fields{grid-template-columns:1fr;gap:20px}.fe-field--wide{grid-column:auto}.fe-join-content form>.fe-button{width:100%}.fe-admin-fields{padding:20px}
}
@media(max-width:374px) { .fe-container{width:calc(100% - 32px)}.fe-hero h1{font-size:2.75rem}.fe-hero-tagline{display:none}.fe-hero-copy{padding-block:35px 42px}.fe-hero-intro{font-size:.88rem}.fe-hero .fe-actions{gap:10px}.fe-hero .fe-button{padding-inline:14px;font-size:.73rem}.fe-hero-edition{margin-top:20px}.fe-section-nav .fe-container{gap:21px} }
@media(max-width:767.98px) { .fe-field :is(input,select,textarea) { font-size:1rem; } }
@media(prefers-reduced-motion:reduce) { .fe-hero-image,.fe-hero-copy{animation:none}.fe-reveal,.fe-button,.fe-role-link{transition:none}.fe-pending{opacity:1;transform:none}.fe-button:hover,.fe-role-link:hover{transform:none} }
.fe-admin .table-responsive { position:relative; }
.fe-admin .btn-outline-danger { --bs-btn-color:#a52d37; }
.fe-admin .text-danger { color:#a52d37!important; }

.fe-admin .festival--arena .btn-outline-danger, .fe-admin .festival--halloween .btn-outline-danger { --bs-btn-color:#ffb6b6; --bs-btn-border-color:#ffb6b6; }
.fe-admin .festival--arena .btn-outline-secondary, .fe-admin .festival--halloween .btn-outline-secondary { --bs-btn-color:#d7e0e7; --bs-btn-border-color:#a5b4c0; }
