/* Sacra Famiglia, foglio di stile del tema. Colori, misure e animazioni vengono dal design approvato. */

/* ---------- Colori ---------- */
.sf,:root{--bg:#F8F6F9;--surface:#FFFFFF;--ink:#222023;--ink-fixed:#222023;--muted:#5B5560;--line:rgba(34,32,35,.12);--accent:#522A6F;--accent-hover:#643786;--on-accent:#FFFFFF;--soft:#F7CFDC;--soft2:#EBDCFA;--deep:#222023;--on-deep:#F8F6F9;--hl:#DDAAFF;--rose:#DDAAFF;--rose-fg:#222023;--ft-bg:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(242,156,183,.42),transparent 70%),linear-gradient(180deg,#522A6F 0%,#2A1B33 100%);--ev-all-bg:linear-gradient(180deg,#522A6F 0%,#8A4E8C 55%,#F29CB7 100%);--ev-all-fg:#FAEADD}
:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-io:cubic-bezier(0.77,0,0.175,1);--spring:cubic-bezier(0.34,1.56,0.64,1);--r-lg:28px;--r-md:20px;--display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;--body:"Geist",ui-sans-serif,system-ui,sans-serif}
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
.sf,.editor-styles-wrapper{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;min-width:0}
.sf *,.editor-styles-wrapper [class*="wp-block-sf-"] *{box-sizing:border-box}
.sf h1,.sf h2,.sf h3,.sf p,.editor-styles-wrapper [class*="wp-block-sf-"] :is(h1,h2,h3,p){margin:0}
:where(.sf a,.editor-styles-wrapper [class*="wp-block-sf-"] a){color:inherit}
:where(.sf button){font:inherit;color:inherit}
.wrap{width:100%;max-width:1320px;margin-inline:auto;padding-inline:20px}
@media (min-width:768px){.wrap{padding-inline:40px}}
.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:12px}
/* ---------- Foto ---------- */
.photo{position:absolute;inset:0;background-size:cover;background-position:center}
.photo::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(0,0,0,.28))}
/* ---------- Bottoni (pill) ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 22px 0 24px;border-radius:999px;font-weight:600;font-size:16px;text-decoration:none;white-space:nowrap;border:1.5px solid transparent;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;transition:transform 120ms var(--ease-out),background-color 200ms ease,border-color 200ms ease,color 200ms ease}
.btn:active{transform:scale(.97)}
.btn .ic{transition:transform 260ms var(--ease-out)}
.btn-acc{background:var(--accent);color:var(--on-accent)}
.btn-glass{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.55);color:#fff;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.btn-ink{background:var(--ink);color:var(--bg)}
.btn-line{border-color:var(--ink);color:var(--ink)}
@media (hover:hover) and (pointer:fine){.btn:hover .ic{transform:translate(3px,-3px)}
.btn-acc:hover{background:var(--accent-hover)}
.btn-glass:hover{background:rgba(255,255,255,.26);border-color:#fff}
.btn-ink:hover{opacity:.88}
.btn-line:hover{background:var(--ink);color:var(--bg)}}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;min-height:44px;border-bottom:2px solid currentColor;line-height:1.1;padding-top:2px}
.more .ic{transition:transform 260ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.more:hover .ic{transform:translateX(4px)}}
/* ---------- Wordmark ---------- */
.wm{display:inline-flex;flex-direction:column;text-decoration:none;color:var(--ink);line-height:1;user-select:none;-webkit-user-select:none}
.wm-main{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.045em;display:inline-flex;align-items:center;gap:.08em;font-variation-settings:"opsz" 48}
.wm-plus{position:relative;display:inline-block;width:.24em;height:1px;flex-shrink:0}
/* ---------- Header ---------- */
.hdr{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 74%,transparent);backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);border-bottom:1px solid var(--line)}
@media (prefers-reduced-transparency: reduce){.hdr{background:var(--bg);backdrop-filter:none}}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:68px}
.nav{display:none;align-items:center;gap:4px}
.nav a.nl{text-decoration:none;font-weight:500;font-size:15px;padding:10px 14px;border-radius:999px;transition:background-color 180ms ease}
@media (hover:hover) and (pointer:fine){.nav a.nl:hover{background:var(--line)}}
.nav .btn{min-height:44px;margin-left:10px;padding:0 18px 0 20px;font-size:15px}
/* ---------- Header integrato nella hero scura, poi si stacca allo scroll ---------- */
.sf,.editor-styles-wrapper{position:relative;--hdr-h:68px;--inset:10px}
@media (min-width:768px){.sf,.editor-styles-wrapper{--inset:16px}}
@media (min-width:1000px){.sf,.editor-styles-wrapper{--hdr-h:76px}}
.hdr{transition:background-color 350ms ease,border-color 350ms ease,backdrop-filter 350ms ease,-webkit-backdrop-filter 350ms ease}
.hdr-in{transition:transform 450ms var(--ease-out)}
.hdr .wm,.nav a.nl{transition:color 300ms ease,background-color 180ms ease}
.hdr.is-top{background:transparent;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.hdr.is-top .hdr-in{transform:translateY(var(--inset))}
.hdr.is-top .wm,.hdr.is-top .nav a.nl{color:#FFFFFF}
.hdr.is-top .nav .btn-ink{background:#FFFFFF;color:#18151A}
@media (hover:hover) and (pointer:fine){.hdr.is-top .nav a.nl:hover{background:rgba(255,255,255,.14)}}
.sf.ov .heroA{margin-top:calc(-1 * var(--hdr-h))}
.ov .ha-frame{padding-top:var(--hdr-h)}
@media (prefers-reduced-motion: reduce){.hdr,.hdr-in{transition:none}}
@media (min-width:1000px){.nav{display:flex}
.hdr-in{height:76px}}
/* In home, su telefono e tablet niente barra: la pagina parte direttamente dalla foto */
@media (max-width:999px){.ov .hdr{display:none}
.sf.ov .heroA{margin-top:0}
.ov .ha-frame{padding-top:0}}
/* ---------- Titolo ---------- */
.name{font-family:var(--display);font-weight:780;line-height:.88;letter-spacing:-.05em;font-variation-settings:"opsz" 96}
.name .pre{display:block;font-size:.3em;letter-spacing:-.02em;font-weight:650;margin-bottom:.12em}
.name .main{display:block}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.wi{display:inline-block;animation:wordUp 1100ms var(--ease-out) both;animation-delay:calc(var(--i) * 80ms + 150ms)}
@keyframes wordUp{from{transform:translateY(105%)}to{transform:translateY(0)}}
.ctas{display:flex;flex-wrap:wrap;gap:12px;animation:fadeUp 900ms var(--ease-out) both 680ms}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}}
/* ---------- Slideshow ---------- */
.slide{position:absolute;inset:0;overflow:hidden;z-index:0}
.slide .photo{transform-origin:60% 40%}
img.photo{object-position:center 35%}
.slide.is-prev{z-index:1}
.slide.is-active{z-index:2}
/* A: dissolvenza + Ken Burns */
.fade .slide{opacity:0}
.fade .slide.is-prev{opacity:1}
.fade .slide.is-active{opacity:1;transition:opacity 1400ms var(--ease-out)}
.fade .slide.is-active .photo{animation:kb 7600ms var(--ease-out) both}
@keyframes kb{from{transform:scale(1.14) translate(1.5%,1%)}to{transform:scale(1.02) translate(0,0)}}
/* ---------- Hero A: foto a tutto schermo ---------- */
.heroA{padding:10px 10px 0}
@media (min-width:768px){.heroA{padding:16px 16px 0}}
.ha-frame{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--r-lg);color:#fff;background:#1a1a1a;min-height:min(calc(100svh - 84px),760px);display:flex;flex-direction:column;justify-content:space-between}
@media (min-width:768px){.ha-frame{min-height:min(calc(100svh - 100px),900px)}}
.ha-scrim{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 40%,rgba(0,0,0,.72) 100%)}
.ha-top{position:relative;z-index:5;display:flex;align-items:center;gap:12px;padding:18px 18px 0}
@media (min-width:768px){.ha-top{padding:28px 40px 0}}
.bars{display:flex;gap:6px;flex:1;min-width:0}
.bar{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;background:none;border:0;padding:10px 0;cursor:pointer;text-align:left;color:#fff;touch-action:manipulation}
.bar span{display:block;height:3px;border-radius:3px;background:rgba(255,255,255,.35);overflow:hidden}
.bar i{display:block;height:100%;background:#fff;transform:scaleX(0);transform-origin:left}
.bar.is-done i{transform:scaleX(1)}
.bar.is-active i{animation:fill 6000ms linear both}
@keyframes fill{to{transform:scaleX(1)}}
.ha-content{position:relative;z-index:5;padding:0 20px 26px;display:flex;flex-direction:column;gap:20px}
@media (min-width:768px){.ha-content{padding:0 40px 44px;gap:24px}}
.heroA .name{font-size:clamp(3.4rem,13.4vw,12.5rem)}
/* Telefono: "Parrocchia" piccolo e leggero, "Sacra" e "Famiglia" su due righe grandi; pulsanti a tutta larghezza */
@media (max-width:767px){.heroA .ha-content{container-type:inline-size}.heroA .name{font-weight:800;line-height:.86;letter-spacing:-.045em;max-width:100%}.heroA .name .pre{font-size:11cqw;font-weight:400;letter-spacing:-.02em;margin-bottom:.1em;line-height:1}.heroA .name .main{font-size:28cqw}.heroA .name .main .w{display:block;max-width:100%}.heroA .ha-row,.heroA .ctas{width:100%}.heroA .ctas{flex-direction:column;gap:10px}.heroA .ctas .btn{width:100%;justify-content:center}}
.ha-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px}
/* ---------- Stelline ---------- */
.spk{position:absolute;fill:#FFFFFF;filter:drop-shadow(0 0 6px rgba(255,255,255,.7));pointer-events:none}
.spk.s1{width:26%;max-width:34px;top:12%;right:12%}
.spk.s2{width:14%;max-width:18px;bottom:16%;left:14%;opacity:.85}
.spk.s3{width:9%;max-width:12px;top:24%;left:22%;opacity:.7}
@media (prefers-reduced-motion: no-preference){.spk{animation:twinkle 2.8s ease-in-out infinite}
.spk.s2{animation-delay:.9s}
.spk.s3{animation-delay:1.7s}}
@keyframes twinkle{0%,100%{transform:scale(1) rotate(0deg);opacity:.95}50%{transform:scale(.55) rotate(25deg);opacity:.45}}
/* ---------- Sezioni ---------- */
.sec{padding:76px 0}
@media (min-width:768px){.sec{padding:120px 0}}
.sf .sec-ev{padding-bottom:40px}
.sf .sec-ct{padding-top:0}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:36px}
@media (min-width:768px){.sec-head{margin-bottom:52px}}
.h2{font-family:var(--display);font-weight:720;font-size:clamp(2.4rem,7.4vw,5.6rem);line-height:.95;letter-spacing:-.04em;font-variation-settings:"opsz" 96;max-width:14ch}
.hl{background:linear-gradient(var(--hl,var(--accent)),var(--hl,var(--accent))) 0 88%/100% .22em no-repeat;padding:0 .04em}
/* Entrata degli elementi allo scroll (IntersectionObserver: funziona su tutti i browser) */
@media (prefers-reduced-motion: no-preference){.js .reveal{opacity:0;transform:translateY(44px);transition:opacity 800ms var(--ease-out),transform 1100ms var(--ease-out);transition-delay:var(--rd,0ms)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal .hl{background-size:0% .22em;transition:background-size 1000ms var(--ease-io) 350ms}
.js .reveal.in .hl{background-size:100% .22em}}
.t-soft{background-color:var(--soft);color:var(--ink-fixed)}
.t-soft2{background-color:var(--soft2);color:var(--ink-fixed)}
.t-deep{background-color:var(--deep);color:var(--on-deep)}
/* Su fondo scuro: icone, testi e pulsanti sempre chiari */
.t-deep,.t-deep .ic{color:var(--on-deep)}
.av-pdf > .ic{color:var(--hl) !important}
.t-deep .btn-acc{background:var(--on-deep);color:var(--deep)}
.t-deep .btn-acc .ic{color:var(--deep)}
@media (hover:hover) and (pointer:fine){.t-deep .btn-acc:hover{background:#FFFFFF}}
.t-white{background-color:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
/* ---------- Orari ---------- */
.tt-live{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:13px;font-weight:600;padding:5px 12px 5px 10px;border-radius:999px;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.live-dot{width:8px;height:8px;border-radius:50%;background:#FF3B30;flex-shrink:0}
@media (prefers-reduced-motion: no-preference){.live-dot{animation:blink 1.4s ease-in-out infinite}}
@keyframes blink{50%{opacity:.25}}
/* Prossima Messa in evidenza + elenco come un tabellone dei treni */
.tt{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:900px){.tt{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:stretch}}
.tt-next{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--r-lg);padding:26px 22px 28px;display:flex;flex-direction:column;gap:18px;color:#FFFFFF;
  background:radial-gradient(circle at 90% 8%,rgba(221,170,255,.6) 0,transparent 50%),radial-gradient(circle at 0% 100%,rgba(242,156,183,.42) 0,transparent 55%),linear-gradient(155deg,#5B2F7C 0%,#221828 100%)}
@media (min-width:768px){.tt-next{padding:36px}}
.tt-next .spk{z-index:-1}
/* Sfumatura che si muove piano dentro il riquadro */
.tt-next::before,.tt-next::after{content:"";position:absolute;z-index:-2;pointer-events:none;border-radius:50%;filter:blur(30px)}
.tt-next::before{width:75%;aspect-ratio:1;top:-30%;right:-25%;background:radial-gradient(circle,rgba(221,170,255,.75) 0%,rgba(221,170,255,0) 68%);animation:ttDriftA 9s ease-in-out infinite alternate}
.tt-next::after{width:70%;aspect-ratio:1;bottom:-35%;left:-25%;background:radial-gradient(circle,rgba(242,156,183,.6) 0%,rgba(242,156,183,0) 68%);animation:ttDriftB 11s ease-in-out infinite alternate}
@keyframes ttDriftA{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-18%,22%) scale(1.15)}100%{transform:translate(-34%,6%) scale(.95)}}
@keyframes ttDriftB{0%{transform:translate(0,0) scale(1)}50%{transform:translate(24%,-16%) scale(1.12)}100%{transform:translate(10%,-30%) scale(1)}}
@media (prefers-reduced-motion: reduce){.tt-next::before,.tt-next::after{animation:none}}
.tt-next .spk.s1{top:12%;right:10%;width:40px;max-width:none}
.tt-next .spk.s2{top:34%;right:28%;left:auto;bottom:auto;width:16px;max-width:none}
.tt-kicker{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:rgba(255,255,255,.85)}
.tt-when{display:flex;flex-direction:column;gap:6px;margin-top:auto}
.tt-day,.tt-time{display:block}
.tt-day{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,3.2vw,2.6rem);letter-spacing:-.03em;line-height:1;color:#FFFFFF}
.tt-time{font-family:var(--display);font-weight:780;font-size:clamp(5rem,12vw,9rem);line-height:.82;letter-spacing:-.055em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 96}
.tt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tt-row{flex:1;display:flex;align-items:center;gap:16px;padding:20px 4px;border-top:1.5px solid var(--ink)}
.tt-row:last-child{border-bottom:1.5px solid var(--ink)}
.tt-l{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0}
.tt-name{font-family:var(--display);font-weight:700;font-size:clamp(1.3rem,2.4vw,1.9rem);letter-spacing:-.025em;line-height:1.05}
.tt-kind{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:var(--rose);color:var(--ink-fixed)}
.tt-today{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:var(--accent);color:#FFFFFF}
.tt-lead{flex:1;min-width:24px;align-self:center;border-bottom:2px dotted rgba(34,32,35,.25);transform:translateY(6px)}
.tt-h{font-family:var(--display);font-weight:750;font-size:clamp(2rem,4vw,3.4rem);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.tt-row.r-off .tt-name,.tt-row.r-off .tt-h{color:var(--muted)}
.tt-row.r-off .tt-h{font-family:var(--body);font-size:16px;font-weight:600;letter-spacing:0}
.tt-row.is-today .tt-name{background:linear-gradient(var(--hl),var(--hl)) 0 88%/100% .22em no-repeat}
@media (max-width:600px){.tt-lead{display:none}
.tt-row{justify-content:space-between}}
/* ---------- Avvisi ---------- */
.mq{position:relative;background:var(--accent);color:var(--on-accent);rotate:-1.6deg;margin:0 -2%;width:104%;display:flex;align-items:center}
.mq-view{overflow:hidden;flex:1;min-width:0;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.mq-track{display:flex;width:max-content;animation:mq var(--dur,40s) linear infinite}
.mq-list{display:flex;align-items:center;flex-shrink:0}
.mq-item{display:inline-flex;align-items:baseline;gap:12px;padding:18px 0;text-decoration:none;font-family:var(--display);font-weight:700;font-size:clamp(1.4rem,3.6vw,2.4rem);letter-spacing:-.025em;white-space:nowrap}
.mq-item small{font-family:var(--body);font-size:14px;font-weight:600;letter-spacing:0;opacity:.8}
@media (hover:hover) and (pointer:fine){.mq-item:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}}
.mq-sep{display:inline-block;width:12px;height:12px;margin:0 28px;position:relative;flex-shrink:0;border-radius:50%;background:currentColor;opacity:.7}
.mq-sep::before,.mq-sep::after{content:none;position:absolute;left:50%;top:50%;translate:-50% -50%;background:currentColor;border-radius:2px}
.mq-sep::before{width:100%;height:5px}
.mq-sep::after{width:5px;height:100%}
@keyframes mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.mq{rotate:0deg}
.mq-view{overflow-x:auto;mask-image:none}
.mq-track{animation:none}
.mq-dup{display:none}}
.av-wrap{padding-top:72px}
@media (min-width:768px){.av-wrap{padding-top:112px}}
.av-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:640px){.av-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.av-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.av-card{position:relative;border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;gap:12px;min-height:260px;transition:transform 300ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.av-card:hover{transform:translateY(-4px)}
.av-card:hover .more .ic{transform:translateX(4px)}}
.av-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:600}
.av-top time{display:inline-flex;gap:6px;align-items:center}
.badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--accent);color:var(--on-accent);white-space:nowrap;flex-shrink:0}
.av-title{font-family:var(--display);font-weight:700;font-size:24px;line-height:1.08;letter-spacing:-.02em;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.av-text{font-size:15.5px;line-height:1.5;opacity:.86;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.av-card .more{margin-top:auto;align-self:flex-start;font-size:15px}
.av-card .more::after{content:"";position:absolute;inset:0;border-radius:var(--r-lg)}
.av-pdf{border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;gap:14px;min-height:260px}
.av-pdf .big{font-family:var(--display);font-weight:700;font-size:30px;line-height:1;letter-spacing:-.025em}
.av-pdf .meta{font-size:15px;opacity:.8}
.av-pdf .btn{margin-top:auto;align-self:flex-start}
.empty{border-radius:var(--r-lg);padding:32px 26px;display:flex;flex-direction:column;gap:14px;align-items:flex-start;border:2px dashed var(--line)}
.empty .big{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.02;letter-spacing:-.03em;max-width:18ch}
.empty p{color:var(--muted);max-width:44ch}
.empty-art{width:64px;height:64px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:var(--on-accent)}
.empty-art .ic{width:30px;height:30px}
@media (min-width:1100px){.av-grid .empty{grid-column:span 3}}
/* ---------- Eventi: card foto ---------- */
.ev-ctrl{display:flex;gap:10px;align-items:center}
.ev-ctrl-bot{display:none}
@media (max-width:767px){.sec-head .ev-ctrl{display:none}.ev-ctrl-bot{display:flex;justify-content:center;gap:12px;margin-top:4px}}
.circ{width:52px;height:52px;border-radius:50%;border:1.5px solid currentColor;background:transparent;display:grid;place-items:center;cursor:pointer;touch-action:manipulation;transition:transform 120ms var(--ease-out),background-color 200ms ease,color 200ms ease}
.circ:active{transform:scale(.92)}
@media (hover:hover) and (pointer:fine){.circ:hover{background:var(--ink);color:var(--bg)}}
.ev-track{display:grid;grid-auto-flow:column;grid-auto-columns:min(80%,340px);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:20px;padding:6px 20px 24px;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab;user-select:none;-webkit-user-select:none}
.ev-track::-webkit-scrollbar{display:none}
@media (min-width:768px){.ev-track{grid-auto-columns:360px;gap:18px;scroll-padding-inline:max(40px,calc((100% - 1240px)/2));padding-inline:max(40px,calc((100% - 1240px)/2))}}
.ev-track.is-drag{scroll-snap-type:none;cursor:grabbing}
.ev-track.is-drag a{pointer-events:none}
.ev-card{scroll-snap-align:start;position:relative;aspect-ratio:4/5.3;border-radius:var(--r-lg);overflow:hidden;color:#fff;background:#222;display:flex;flex-direction:column;justify-content:flex-end;transition:transform 380ms var(--ease-out)}
.ev-card .photo{transition:transform 900ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.ev-card:hover{transform:translateY(-6px)}
.ev-card:hover .photo{transform:scale(1.06)}}
.ev-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 26%,rgba(0,0,0,.2) 46%,rgba(0,0,0,.82) 100%)}
.ev-date{position:absolute;z-index:3;left:16px;top:16px;width:76px;height:82px;background:#FFFFFF;color:#18181B;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;line-height:1;box-shadow:0 10px 24px -10px rgba(0,0,0,.45)}
.ev-date b{display:block;font-family:var(--display);font-weight:800;font-size:54px;line-height:.78;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.ev-date span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);padding-left:.14em}
.ev-card.no-img{color:#FFFFFF}
.ev-grad{background:radial-gradient(circle at 82% 14%,rgba(221,170,255,.7) 0,transparent 52%),radial-gradient(circle at 12% 70%,rgba(242,156,183,.55) 0,transparent 50%),linear-gradient(160deg,#6E3C93 0%,#2A1B33 100%)}
.ev-card.no-img .spk{z-index:1}
.ev-card.no-img .spk.s1{top:16%;right:14%;width:40px;max-width:none}
.ev-card.no-img .spk.s2{top:34%;left:auto;right:36%;bottom:auto;width:20px;max-width:none}
.ev-card.no-img .spk.s3{top:10%;left:44%;width:12px;max-width:none}
.ev-body{position:relative;z-index:2;padding:20px;display:flex;flex-direction:column;gap:8px}
.ev-title{font-family:var(--display);font-weight:700;font-size:25px;line-height:1.06;letter-spacing:-.02em;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ev-title a{text-decoration:none}
.ev-title a::after{content:"";position:absolute;inset:0;z-index:5}
.ev-desc{font-size:14.5px;opacity:.88;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ev-meta{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:500;padding-top:6px;border-top:1px solid currentColor;border-color:rgba(255,255,255,.3)}
.ev-meta div{display:flex;gap:8px;align-items:flex-start;min-width:0}
.ev-meta span{min-width:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev-meta .ic{margin-top:2px}
.ev-read{font-size:14px;font-weight:700;display:inline-flex;gap:6px;align-items:center;margin-top:2px}
.ev-all{scroll-snap-align:start;aspect-ratio:4/5.3;border-radius:var(--r-lg);background:var(--ev-all-bg,var(--accent));color:var(--ev-all-fg,var(--on-accent));padding:26px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none}
.ev-all .big{font-family:var(--display);font-weight:700;font-size:44px;line-height:.98;letter-spacing:-.035em}
.ev-all .arr{width:72px;height:72px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;transition:transform 400ms var(--spring)}
@media (hover:hover) and (pointer:fine){.ev-all:hover .arr{transform:rotate(-45deg) scale(1.06)}}
.empty-txt{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
@media (min-width:768px){.ev-empty{flex-direction:row;align-items:center;gap:28px}}
/* ---------- Dove siamo ---------- */
.dove-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (max-width:767px){.sf #dove{padding-top:12px}}
@media (min-width:900px){.dove-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px}}
.map{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:360px;background-color:#E4E2DA;
  background-image:linear-gradient(90deg,transparent 0 47%,rgba(255,255,255,.95) 47% 49%,transparent 49%),linear-gradient(0deg,transparent 0 58%,rgba(255,255,255,.95) 58% 60.5%,transparent 60.5%),linear-gradient(120deg,transparent 0 30%,rgba(255,255,255,.8) 30% 31.2%,transparent 31.2%),repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0 1px,transparent 1px 64px),repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 1px,transparent 1px 64px)}
@media (min-width:900px){.map{min-height:100%}}
.pin{position:absolute;left:48%;top:59%;translate:-50% -100%;display:flex;flex-direction:column;align-items:center}
.pin-dot{width:64px;height:64px;border-radius:50%;background:var(--deep);display:grid;place-items:center;box-shadow:0 14px 30px -10px rgba(0,0,0,.5);position:relative}
.pin-in{width:18px;height:18px;border-radius:50%;background:var(--hl,var(--accent))}
.pin-dot::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid var(--deep);opacity:0;animation:ring 2.8s var(--ease-out) infinite}
@keyframes ring{0%{opacity:.5;scale:.8}100%{opacity:0;scale:1.6}}
.pin-tail{width:3px;height:16px;background:var(--deep);border-radius:2px}
.dove-side{display:flex;flex-direction:column;gap:14px}
.facade{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3}
/* Foto della chiesa solo su computer: su telefono e tablet non c'è */
@media (max-width:1023px){.facade{display:none}}
.addr{border-radius:var(--r-lg);padding:26px;display:flex;flex-direction:column;gap:16px;flex:1}
.addr .big{font-family:var(--display);font-weight:700;font-size:30px;line-height:1.05;letter-spacing:-.025em}
.addr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:15px;opacity:.86}
.addr li{display:flex;gap:10px;align-items:flex-start}
.addr li .ic{margin-top:3px}
.addr .btn{align-self:flex-start;margin-top:auto}
.addr li span{min-width:0}
/* ---------- Contatti ---------- */
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:1000px){.ct-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:18px}}
.ct-links{display:flex;flex-direction:column}
.ct-side{display:flex;flex-direction:column;gap:14px}
.ct-row{display:flex;flex-direction:column;gap:6px;padding:22px 0;border-top:1.5px solid var(--ink);text-decoration:none;min-width:0}
.ct-row:last-child{border-bottom:1.5px solid var(--ink)}
/* Su computer i link occupano tutta l'altezza dei riquadri a destra */
@media (min-width:1000px){.ct-links{height:100%}
.ct-row{flex:1;justify-content:center}}
.ct-row .k{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--muted)}
.ct-row .v{font-family:var(--display);font-weight:700;font-size:clamp(1.35rem,3.6vw,2.6rem);line-height:1;letter-spacing:-.035em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;transition:transform 380ms var(--ease-out)}
/* Telefono, email e WhatsApp: stessa grandezza */
.ct-row .k .ic{width:28px;height:28px;padding:5px;border-radius:50%;background:var(--accent);color:var(--on-accent);transition:transform 380ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.ct-row:hover .v{transform:translateX(10px)}
.ct-row:hover .k .ic{transform:rotate(45deg)}}
.seg-tile{border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;gap:18px}
.seg-tile h3{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:-.02em;line-height:1.05}
.seg-tile dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 20px;font-size:16px}
.seg-tile dt{font-weight:600}
.seg-tile dd{margin:0;font-variant-numeric:tabular-nums}
.social{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border-radius:999px;background:var(--deep);color:var(--on-deep);text-decoration:none;font-weight:600;font-size:15px;transition:transform 120ms var(--ease-out),opacity 200ms ease}
.chip:active{transform:scale(.96)}
@media (hover:hover) and (pointer:fine){.chip:hover{opacity:.86}}
/* ---------- Footer ---------- */
.ft{margin:0 10px 10px;border-radius:var(--r-lg);background:var(--ft-bg,var(--deep));color:var(--on-deep);padding:56px 0 28px;overflow:hidden}
@media (min-width:768px){.ft{margin:0 16px 16px;padding:80px 0 32px}}
.ft-mark{font-family:var(--display);font-weight:800;font-size:clamp(3rem,13vw,12.5rem);letter-spacing:-.06em;line-height:.85;display:flex;align-items:center;justify-content:center;gap:.06em;white-space:nowrap;font-variation-settings:"opsz" 96}
.ft-mark .wm-plus{width:.24em;height:1px}
/* Footer: la luce colorata nello sfondo segue il mouse; a riposo fluttua piano */
.ft{position:relative;isolation:isolate;--mx:28%;--my:30%}
.ft::before,.ft::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}
.ft::before{background:radial-gradient(circle 460px at var(--mx) var(--my),rgba(242,156,183,.5) 0%,rgba(242,156,183,.18) 40%,transparent 70%),radial-gradient(circle 340px at calc(var(--mx) + 14%) calc(var(--my) + 22%),rgba(221,170,255,.42) 0%,transparent 70%)}
.ft::after{background:radial-gradient(circle 380px at 82% 12%,rgba(221,170,255,.28) 0%,transparent 70%),radial-gradient(circle 320px at 12% 92%,rgba(242,156,183,.22) 0%,transparent 70%);animation:ftDrift 16s ease-in-out infinite alternate}
@keyframes ftDrift{from{transform:translate(0,0) scale(1)}to{transform:translate(-6%,8%) scale(1.12)}}
@media (prefers-reduced-motion: reduce){.ft::after{animation:none}}
.ft-mark{color:#F8F6F9;padding-bottom:.2em;margin-bottom:-.12em;cursor:default;user-select:none;-webkit-user-select:none}
.ft-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 32px;margin-top:40px;padding-top:24px;border-top:1px solid color-mix(in srgb,var(--on-deep) 22%,transparent);font-size:14.5px;opacity:.85}
.ft-row nav{display:flex;flex-wrap:wrap;gap:4px 22px}
.ft-row a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
@media (hover:hover) and (pointer:fine){.ft-row a:hover{text-decoration:underline}}
@media (max-width:767px){.ft{padding:40px 0 18px}.ft-mark{margin-bottom:-.2em}.ft-row{flex-direction:column;gap:12px;margin-top:14px;padding-top:16px}.ft-row nav{flex-direction:column;align-items:flex-start;gap:0}.ft-row a,.ft-row .ft-cookie{min-height:36px}}
@media (prefers-reduced-motion: reduce){.wi,.ctas,.av-card,.ev-card,.slide,.slide .photo{animation:none !important;transition:none !important}
.fade .slide.is-active{transition:opacity 300ms ease !important;clip-path:none}
.bar i{animation:none !important}
.bar.is-active i{transform:scaleX(1)}
.pin-dot::after{animation:none}}

/* =====================================================================
   WordPress
   ===================================================================== */
.wp-site-blocks{padding:0;overflow-x:clip}
.editor-styles-wrapper{overflow-x:clip}
.wp-site-blocks > *,.sf-main > *{margin-block-start:0;margin-block-end:0}
.sf [hidden]{display:none !important}
img.photo{width:100%;height:100%;object-fit:cover;display:block}
.ic.ic-lg{width:34px;height:34px}
.ev-all .ic.ic-lg{width:28px;height:28px}
.admin-bar .hdr{top:32px}
@media (max-width:782px){.admin-bar .hdr{top:46px}}
@media (max-width:600px){.admin-bar .hdr{top:0}}
.skip-link.screen-reader-text:focus{z-index:100000}

/* ---------- Pagine interne: archivi, singoli, pagine ---------- */
.sf-inner{padding-block:52px 96px}
@media (min-width:768px){.sf-inner{padding-block:80px 140px}}
.page-h1{font-family:var(--display);font-weight:720;font-size:clamp(2.4rem,7vw,5rem);line-height:.98;letter-spacing:-.04em;font-variation-settings:"opsz" 96;overflow-wrap:anywhere;margin:0}
.page-kicker{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--muted);margin:0 0 16px}
.page-kicker a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;min-height:44px}
.page-kicker a:hover{text-decoration:underline}
.sf-prose,.pop-text{font-size:17px;line-height:1.65;overflow-wrap:anywhere}
.sf-prose{font-size:18px;max-width:760px}
.sf .sf-prose > *,.sf .pop-text > *{margin-block:0}
.sf .sf-prose > * + *,.sf .pop-text > * + *{margin-block-start:1.1em}
.sf .sf-prose :is(h2,h3,h4),.sf .pop-text :is(h2,h3,h4){font-family:var(--display);letter-spacing:-.025em;line-height:1.1;margin-block-start:1.6em}
.sf-prose h2{font-size:clamp(1.8rem,4vw,2.4rem)}
.sf-prose h3{font-size:clamp(1.4rem,3vw,1.75rem)}
.sf-prose a,.pop-text a{color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}
.sf-prose img,.pop-text img{max-width:100%;height:auto;border-radius:var(--r-md)}
.sf-prose figure,.pop-text figure{margin-inline:0}
.sf-prose blockquote{margin-inline:0;padding:4px 0 4px 20px;border-left:4px solid var(--hl)}
.sf-prose .wp-block-button__link{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:14px 24px;text-decoration:none;font-weight:600}
.sf-feat{margin:36px 0;border-radius:var(--r-lg);overflow:hidden}
.sf-feat img{display:block;width:100%;height:auto;max-height:560px;object-fit:cover}

/* Scheda evento (pagina singola) */
.evm{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:26px}
.evm .ev-date{position:static;box-shadow:none;background:var(--accent);color:#FFFFFF}
.evm .ev-date span{color:var(--hl)}
.evm-list{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:17px}
.evm-list div{display:flex;gap:10px;align-items:flex-start}
.evm-list .ic{margin-top:3px;color:var(--accent)}
.evm-past{display:inline-flex;font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;background:var(--soft2);color:var(--ink-fixed)}

/* Archivio eventi: griglia invece del carosello */
.ev-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:640px){.ev-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.ev-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
.ev-grid .ev-card{aspect-ratio:4/5}

/* Elenco articoli (blog, ricerca) */
.post-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:900px){.post-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
.post-list > li{margin:0}
.post-list .av-card{min-height:0;height:100%}
.post-list .av-title a{text-decoration:none}
@media (hover:hover) and (pointer:fine){.post-list .av-title a:hover{text-decoration:underline}}
.post-list .wp-block-post-excerpt__excerpt{margin:0}
.post-list .wp-block-post-excerpt__more-text{display:none}

/* Paginazione */
.sf-pag{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}
.sf-pag .page-numbers,.wp-block-query-pagination.sf-pag a{display:inline-grid;place-items:center;min-width:48px;min-height:48px;padding:0 14px;border-radius:999px;text-decoration:none;font-weight:600;box-shadow:inset 0 0 0 1.5px var(--line)}
.sf-pag .page-numbers.current{background:var(--ink);color:var(--bg);box-shadow:none}
@media (hover:hover) and (pointer:fine){.sf-pag a:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}}

/* Ricerca e 404 */
.sf-search-block{max-width:560px}
.sf-search-block .wp-block-search__input{min-height:52px;padding:0 20px;border-radius:999px;border:1.5px solid var(--ink);background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
.sf-search-block .wp-block-search__button{min-height:52px;padding:0 24px;margin-left:8px;border-radius:999px;border:0;background:var(--accent);color:var(--on-accent);font-weight:600;cursor:pointer}
.sf-lead-404{font-size:clamp(1.05rem,2.2vw,1.25rem);color:var(--muted);max-width:44ch}

/* Editor */
.editor-styles-wrapper .hdr{position:relative}
.sf-ssr{pointer-events:none}

/* ---------- Mappa: si carica solo con il consenso ---------- */
.map-card{position:absolute;z-index:2;left:16px;right:16px;bottom:16px;max-width:380px;border-radius:20px;background:#FFFFFF;color:#222023;padding:18px;display:flex;flex-direction:column;gap:10px;box-shadow:0 14px 30px -14px rgba(0,0,0,.4)}
.map-card b{font-size:16px}
.map-card p{margin:0;font-size:13.5px;color:#5B5560;line-height:1.45}
.map-card p a{color:var(--accent)}
.map-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;background:var(--accent);color:#FFFFFF;font-weight:600;font-size:15px;text-decoration:none;cursor:pointer;transition:transform 120ms var(--ease-out)}
.map-btn:active{transform:scale(.96)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map.is-live .pin,.map.is-live .map-card{display:none}

/* ---------- Finestre (popup di avvisi, eventi, video e preferenze cookie) ---------- */
.sf-dlg{position:fixed;width:min(640px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:var(--r-lg);background:var(--surface);color:var(--ink);box-shadow:0 30px 70px -20px rgba(0,0,0,.5);overflow:auto;overscroll-behavior:contain}
.sf-dlg[open]{animation:avPop 420ms var(--ease-out) both}
.sf-dlg::backdrop{background:rgba(14,12,16,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@keyframes avPop{from{opacity:0;transform:translateY(24px) scale(.97)}}
.dlg-x{position:absolute;top:16px;right:16px;z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:var(--ink);color:#FFFFFF;display:grid;place-items:center;cursor:pointer;transition:transform 120ms var(--ease-out)}
.dlg-x .ic{width:18px;height:18px;stroke-width:2}
.dlg-x:active{transform:scale(.92)}
.dlg-title{font-family:var(--display);font-weight:720;font-size:clamp(1.8rem,4.6vw,2.6rem);line-height:1.02;letter-spacing:-.03em;overflow-wrap:anywhere}
.sf-pop-body{padding:28px 24px 32px;display:flex;flex-direction:column;gap:14px}
@media (min-width:768px){.sf-pop-body{padding:40px 44px 44px}}
.sf-pop .av-top{padding-right:56px}
.sf-pop .dlg-title{padding-right:48px}
.sf-pop.is-media .sf-pop-body{padding:0;gap:0}
.sf-pop.is-media .dlg-x{background:rgba(14,12,16,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sf-pop.is-media .dlg-title{padding-right:0}
.ev-m-media{position:relative;aspect-ratio:16/8;flex-shrink:0;overflow:hidden;background:#222}
.ev-m-media .ev-date{left:20px;top:auto;bottom:20px}
.ev-m-body{padding:24px 24px 32px;display:flex;flex-direction:column;gap:14px}
@media (min-width:768px){.ev-m-body{padding:32px 44px 44px}}
.ev-m-meta{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ev-m-meta div{display:flex;gap:10px;align-items:flex-start}
.ev-m-meta .ic{margin-top:3px;color:var(--accent)}
.pop-video{position:relative;aspect-ratio:16/9;background:#000}
.pop-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pop-consent{padding:72px 24px 28px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.pop-consent p{color:var(--muted)}
.pop-consent .ck-btns{width:100%}
@media (prefers-reduced-motion: reduce){.sf-dlg[open]{animation:none}}

/* ---------- Banner dei cookie ---------- */
.ck{position:fixed;z-index:60;left:10px;right:10px;bottom:10px;color:#FFFFFF;border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:12px;
  background:radial-gradient(circle at 100% 0%,rgba(221,170,255,.32) 0,transparent 55%),radial-gradient(circle at 0% 100%,rgba(242,156,183,.2) 0,transparent 55%),linear-gradient(160deg,#3A1E52 0%,#18121C 100%);
  box-shadow:0 24px 60px -20px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.14)}
.ck.is-in{animation:ckIn 700ms var(--ease-out) both}
@keyframes ckIn{from{opacity:0;transform:translateY(28px)}}
.ck-title{font-family:var(--display);font-weight:720;font-size:20px;letter-spacing:-.025em;line-height:1.1}
.ck p{font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.86)}
.ck p a{color:var(--hl);text-decoration:underline;text-underline-offset:3px}
.ck-btns{display:flex;flex-wrap:wrap;gap:8px}
.ck-btn{flex:1 1 0;min-width:0;min-height:48px;padding:0 18px;border-radius:999px;font-weight:600;font-size:15px;cursor:pointer;white-space:nowrap;border:1.5px solid rgba(255,255,255,.6);background:transparent;color:#FFFFFF;transition:transform 120ms var(--ease-out)}
.ck-btn:active{transform:scale(.97)}
.ck-btn.pri{background:#FFFFFF;color:#18151A;border-color:#FFFFFF}
a.ck-btn{display:inline-grid;place-items:center;text-decoration:none}
.ck-link{order:3;align-self:flex-start;background:none;border:0;padding:0;color:#FFFFFF;font-weight:600;font-size:14px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;min-height:44px}
.ck .ck-btns{order:2}
@media (min-width:900px){
  .ck{left:20px;right:20px;bottom:20px;flex-direction:row;align-items:center;gap:20px;padding:16px 18px 16px 24px;border-radius:22px}
  .ck-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .ck-title{font-size:18px}
  .ck p{font-size:14px;line-height:1.45}
  .ck-link{order:0;align-self:center;flex-shrink:0}
  .ck .ck-btns{order:0;flex-wrap:nowrap;flex-shrink:0}
  .ck .ck-btn{flex:0 0 auto;min-width:120px}
}
.ck-panel{padding:30px 24px 26px}
.ck-panel[open]{display:flex;flex-direction:column;gap:16px}
@media (min-width:768px){.ck-panel{width:min(540px,calc(100% - 32px));padding:30px}}
.ck-panel .dlg-title{font-size:26px;padding-right:50px}
.ck-note{color:var(--muted);font-size:15px;line-height:1.5}
.ck-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.ck-row:last-child{border-bottom:1px solid var(--line)}
.ck-row b{display:block;font-size:16px}
.ck-row span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.sw{position:relative;flex-shrink:0;width:52px;height:30px}
.sw input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.sw i{position:absolute;inset:0;border-radius:999px;background:#D9D4DD;transition:background-color 200ms ease}
.sw i::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#FFFFFF;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform 220ms var(--ease-out)}
.sw input:checked + i{background:var(--accent)}
.sw input:checked + i::after{transform:translateX(22px)}
.sw input:disabled + i{opacity:.5}
.sw input:focus-visible + i{outline:3px solid var(--accent);outline-offset:3px}
.ck-panel .ck-btn,.pop-consent .ck-btn{border-color:var(--ink);color:var(--ink)}
.ck-panel .ck-btn.pri,.pop-consent .ck-btn.pri{background:var(--ink);color:#FFFFFF}
.ft-cookie{display:none;align-items:center;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.js .ft-cookie{display:inline-flex}
@media (hover:hover) and (pointer:fine){.ft-cookie:hover{text-decoration:underline}}

/* ---------- Messa in diretta ---------- */
.tt-live{display:inline-flex;align-items:center;gap:8px;align-self:flex-start}
.live{position:fixed;z-index:55;left:10px;right:10px;bottom:10px;color:#FFFFFF;border-radius:30px;padding:14px 14px 16px;
  background:radial-gradient(circle at 100% 0%,rgba(221,170,255,.35) 0,transparent 55%),radial-gradient(circle at 0% 100%,rgba(242,156,183,.22) 0,transparent 55%),linear-gradient(160deg,#3A1E52 0%,#18121C 100%);
  box-shadow:0 24px 60px -20px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.14);animation:ckIn 600ms var(--ease-out) both}
@media (min-width:768px){.live{left:auto;right:22px;bottom:22px;width:340px;border-radius:26px;padding:12px 12px 14px}}
.live-media{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#000;border:0;padding:0;cursor:pointer;color:#FFFFFF}
.live-media img.photo{position:absolute;inset:0}
.live-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.05) 40%,rgba(0,0,0,.45))}
.live-badge{position:absolute;z-index:2;left:12px;top:12px;display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 9px;border-radius:999px;background:#FF3B30;color:#FFFFFF;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.live-badge .live-dot,.live-pill .live-dot{background:#FFFFFF}
.live-play{position:absolute;z-index:2;left:50%;top:50%;translate:-50% -50%;width:58px;height:58px;border-radius:50%;background:#FFFFFF;color:#18151A;display:grid;place-items:center;box-shadow:0 10px 24px -8px rgba(0,0,0,.6)}
.live-play .ic{width:22px;height:22px;margin-left:3px}
.live-row{display:flex;align-items:flex-start;gap:12px;margin-top:14px;padding:0 4px}
.live-txt{flex:1;min-width:0}
.live-kick{font-size:13px;font-weight:600;color:var(--hl);display:flex;align-items:center;gap:8px}
.live-ring{position:relative;width:10px;height:10px;border-radius:50%;background:#FF3B30}
.live-title{margin-top:4px;font-family:var(--display);font-weight:720;font-size:22px;letter-spacing:-.025em;line-height:1.05}
.live .live-x{position:static;flex-shrink:0;width:40px;height:40px;background:rgba(255,255,255,.14)}
.live-btns{display:flex;gap:8px;margin-top:14px;padding:0 4px}
.live-btns .btn{min-height:48px;font-size:15px;justify-content:center;padding:0 16px}
.live-watch{flex:1;background:#FFFFFF;color:#18151A}
.live-watch .ic{width:16px;height:16px}
.live-yt{flex:0 0 auto;border-color:rgba(255,255,255,.5);color:#FFFFFF}
.live-pill{position:fixed;z-index:55;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px 0 12px;border-radius:999px;border:0;background:#FF3B30;color:#FFFFFF;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:0 12px 28px -10px rgba(0,0,0,.5)}
@media (prefers-reduced-motion: no-preference){.live-ring::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #FF3B30;animation:ring 1.8s var(--ease-out) infinite}}
@media (prefers-reduced-motion: reduce){.ck.is-in,.live{animation:none}}
.pop-consent .ck-btn{flex:1 1 150px;white-space:normal;padding:10px 18px;line-height:1.2}
.sf-embed{position:relative;aspect-ratio:16/9;border-radius:var(--r-md);background:var(--soft2);color:var(--ink-fixed);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;overflow:hidden}
.sf-embed p{margin:0;font-size:15px}
.sf-embed.is-live{padding:0;background:#000}
.sf-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- Apertura "mazzo di foto" (solo home, prima visita della sessione) ---------- */
.sf-intro-ov{display:none}
.sf-intro-run .heroA{position:relative;z-index:61}
.sf-intro-run .sf-intro-ov{display:block;position:absolute;left:0;right:0;top:0;height:100vh;height:100svh;z-index:0;background:#17121B;pointer-events:none;animation:sfOvOut 800ms ease 1000ms forwards}
.sf-intro-box{position:absolute;top:10px;left:10px;right:10px;height:min(calc(100svh - 84px),760px)}
.sf-intro-card{position:absolute;left:50%;top:50%;width:200px;height:260px;margin:-130px 0 0 -100px;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px -18px rgba(0,0,0,.6);opacity:0;animation:sfCard 380ms var(--ease-out) both,sfFade 300ms ease 1500ms forwards;animation-delay:calc(var(--i) * 130ms),1500ms}
.sf-intro-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sf-intro-run .ha-frame{z-index:1;clip-path:inset(calc(50% - 130px) calc(50% - 100px) round 18px);opacity:0;animation:sfFrameIn 380ms var(--ease-out) 520ms forwards,sfGrow 900ms var(--ease-io) 950ms forwards}
@media (min-width:768px){
  .sf-intro-box{top:16px;left:16px;right:16px;height:min(calc(100svh - 100px),900px)}
  .sf-intro-card{width:280px;height:364px;margin:-182px 0 0 -140px;border-radius:20px}
  .sf-intro-run .ha-frame{clip-path:inset(calc(50% - 182px) calc(50% - 140px) round 20px)}
}
.sf-intro .ha-scrim,.sf-intro .ha-top{animation:sfFadeIn 600ms ease 1700ms both}
.sf-intro .heroA .wi{animation-delay:calc(var(--i) * 80ms + 1800ms)}
.sf-intro .heroA .ctas{animation-delay:2300ms}
.sf-intro .hdr{animation:sfFadeIn 500ms ease 1900ms both}
@keyframes sfCard{from{opacity:0;transform:translateY(60px) rotate(calc(var(--r) * 2)) scale(.85)}to{opacity:1;transform:rotate(var(--r))}}
@keyframes sfFrameIn{from{opacity:0;transform:translateY(60px) scale(.85)}to{opacity:1;transform:none}}
@keyframes sfGrow{to{clip-path:inset(0 0 0 0 round var(--r-lg))}}
@keyframes sfOvOut{to{opacity:0;visibility:hidden}}
@keyframes sfFade{to{opacity:0}}
@keyframes sfFadeIn{from{opacity:0}}
