/* Lo Spiritismo — vitrine dos posts.
   Paleta e formas da capa do Facebook: lilás com brilho, pílula ameixa, chips com contorno.
   Layout: capa em faixa larga → arquivo em grade com filtro fixo por tema → símbolo → seguir. */
:root{
  --paper:#EFDDFF; --paper-2:#E6C6FF; --surface:#FFFBFF; --ink:#2E0757; --muted:#6E4F8E;
  --grape:#8E3BF2; --plum:#3B006E; --leaf:#5FB000; --stem:#E8761A; --rule:#D7B6F5;
  --display:"Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --body:"Inter", "Segoe UI", system-ui, sans-serif;
  --step-0:1.0625rem; --step-1:1.3rem; --step-2:1.75rem; --step-3:2.6rem; --step-4:clamp(2.8rem, 7vw, 5.2rem);
  --gutter-l:max(16px, env(safe-area-inset-left, 0px)); --gutter-r:max(16px, env(safe-area-inset-right, 0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-padding-top:90px}
body{margin:0;background:radial-gradient(1100px 760px at 100% 0%, rgba(178,123,255,.42), transparent 62%),radial-gradient(900px 700px at 0% 100%, rgba(255,255,255,.6), transparent 60%) var(--paper);
  color:var(--ink);font-family:var(--body);font-size:var(--step-0);line-height:1.62;padding-left:var(--gutter-l);padding-right:var(--gutter-r);padding-block:0 48px}
img{max-width:100%}
a{color:var(--grape)}
a:focus-visible,button:focus-visible{outline:3px solid var(--grape);outline-offset:3px;border-radius:8px}
.col{max-width:880px;margin-inline:auto}
.wide{max-width:1180px;margin-inline:auto}
.eyebrow{display:inline-block;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--surface);background:var(--plum);border-radius:999px;padding:8px 16px}
.eyebrow.soft{background:none;color:var(--muted);border:2px solid var(--rule)}
.h2{font-family:var(--display);font-weight:700;font-size:var(--step-4);line-height:.95;letter-spacing:-.015em;margin:.25em 0 0;color:var(--plum);text-wrap:balance}
.h2 em{font-style:italic;font-weight:600;color:var(--grape)}
.lede{font-size:var(--step-1);line-height:1.5;color:var(--muted);margin:18px 0 0;max-width:46ch}

/* Capa */
.cover{position:relative;overflow:hidden;margin-left:calc(-1 * var(--gutter-l));margin-right:calc(-1 * var(--gutter-r));
  padding:clamp(40px,7vw,84px) var(--gutter-r) clamp(48px,7vw,88px) var(--gutter-l);
  background:radial-gradient(60% 90% at 92% 30%, rgba(178,123,255,.45), transparent 65%),radial-gradient(50% 90% at 4% 100%, rgba(255,255,255,.6), transparent 60%);
  border-bottom:1px solid var(--rule)}
.cover .ghost{position:absolute;left:-4%;top:-12%;height:78%;opacity:.13;transform:rotate(18deg);filter:grayscale(1) sepia(1) hue-rotate(220deg) saturate(3);pointer-events:none}
.cover .grape{position:absolute;right:max(3%, 16px);top:50%;height:min(30vw, 440px);transform:translateY(-50%) rotate(-6deg);pointer-events:none}
.cover .inner{position:relative;max-width:1040px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.kicker{display:inline-block;font-weight:700;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--surface);background:var(--plum);border-radius:999px;padding:9px 20px}
.cover h1{font-family:var(--display);font-weight:700;font-size:clamp(2.5rem,6.2vw,5rem);line-height:1.04;letter-spacing:-.01em;color:var(--plum);margin:6px 0 0;text-wrap:balance}
.cover h1 em{font-style:italic;font-weight:600;color:var(--grape)}
.cover .csub{font-size:clamp(1rem,1.8vw,1.3rem);font-weight:500;color:var(--muted);margin:0}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:8px 0 0;padding:0;list-style:none}
.chips a{display:block;font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plum);text-decoration:none;
  border:2px solid var(--rule);background:rgba(255,251,255,.7);border-radius:999px;padding:7px 16px;transition:background .2s, border-color .2s}
.chips a:hover{background:var(--surface);border-color:var(--grape)}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;padding-block:16px;border-bottom:1px solid var(--rule)}
.handle{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:1.45rem;color:var(--plum);text-decoration:none}
.handle img{width:28px;height:auto}
.menu{display:flex;gap:6px;flex-wrap:wrap}
.menu a{font-weight:600;font-size:.95rem;color:var(--plum);text-decoration:none;padding:7px 14px;border-radius:999px;border:2px solid transparent}
.menu a:hover{border-color:var(--rule)}
.menu a[aria-current="page"]{background:var(--plum);color:var(--surface)}
.social{display:flex;gap:16px}
.social a{font-weight:600;font-size:.9rem;color:var(--muted);text-decoration:none}
.social a:hover{color:var(--grape)}

/* Arquivo */
.archivio{padding-block:clamp(36px,6vw,64px) 0}
.archivio-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.archivio-head .stat{color:var(--muted);font-size:.95rem;margin:0}
.archivio-head .stat b{color:var(--plum)}

.filtri{position:sticky;top:env(safe-area-inset-top, 0px);z-index:5;margin:28px calc(-1 * var(--gutter-r)) 0 calc(-1 * var(--gutter-l));
  padding:12px var(--gutter-r) 12px var(--gutter-l);background:rgba(239,221,255,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-block:1px solid var(--rule)}
.filtri ul{list-style:none;margin:0 auto;padding:0;max-width:1180px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.filtri ul::-webkit-scrollbar{display:none}
.filtri a{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--plum);border:2px solid var(--rule);background:rgba(255,251,255,.75);border-radius:999px;padding:7px 14px;transition:background .2s, color .2s, border-color .2s}
.filtri a i{width:9px;height:9px;border-radius:50%;background:var(--dot, var(--plum))}
.filtri a small{font-size:.72rem;letter-spacing:.04em;color:var(--muted);font-weight:600}
.filtri a:hover{border-color:var(--grape)}
.filtri a[aria-current="page"]{background:var(--plum);border-color:var(--plum);color:var(--surface)}
.filtri a[aria-current="page"] small{color:var(--paper-2)}
.filtri a[aria-current="page"] i{box-shadow:0 0 0 2px var(--surface)}
.filtri a.vuoto{opacity:.5}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top, 0px);z-index:10;background:var(--paper)}

.tema-intro{margin:26px 0 0;color:var(--muted)}
.tema-intro b{color:var(--plum)}

/* Destaque: o post mais recente */
.ultimo{margin-top:28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:center;
  background:rgba(255,251,255,.8);border:1px solid var(--rule);border-radius:26px;padding:clamp(16px,3vw,28px)}
.ultimo .apri{border:0;padding:0;background:none;cursor:zoom-in;border-radius:16px;overflow:hidden;display:block;width:100%}
.ultimo img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:16px}
.ultimo .eyebrow{margin-bottom:6px}
.ultimo h3{font-family:var(--display);font-weight:700;font-size:var(--step-3);line-height:1.02;color:var(--plum);margin:12px 0 0;text-wrap:balance}
.ultimo .ref{color:var(--muted);font-size:.95rem;margin:10px 0 0}
.ultimo .estratto{margin:18px 0 0;color:var(--ink);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.ultimo .azioni{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}

.griglia{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:clamp(16px,2.4vw,26px)}
.card{min-width:0}
.card button{all:unset;display:block;width:100%;cursor:zoom-in;border-radius:18px}
.card .img{position:relative;border-radius:18px;overflow:hidden;background:var(--paper-2);box-shadow:0 22px 40px -30px rgba(59,0,110,.6);aspect-ratio:1/1}
.card .img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.card button:hover .img img{transform:scale(1.035)}
.card .multi{position:absolute;top:10px;right:10px;background:rgba(46,7,87,.78);color:var(--surface);font-size:.72rem;font-weight:700;border-radius:999px;padding:4px 9px}
.card .meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.card .meta span{display:inline-flex;align-items:center;gap:7px}
.card .meta i{width:8px;height:8px;border-radius:50%;background:var(--dot)}
.card .meta time{letter-spacing:.06em;font-weight:600;font-variant-numeric:tabular-nums}
.card h3{font-family:var(--display);font-weight:700;font-size:1.55rem;line-height:1.08;color:var(--plum);margin:6px 0 0;text-wrap:balance}
.card .ref{font-size:.86rem;color:var(--muted);margin:6px 0 0}

.vuoto-box{margin-top:28px;padding:40px 24px;text-align:center;border:2px dashed var(--rule);border-radius:22px;color:var(--muted)}
.vuoto-box b{display:block;font-family:var(--display);font-size:var(--step-2);color:var(--plum);margin-bottom:6px}

.pagine{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:36px;font-size:.92rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pagine a{color:var(--plum);font-weight:700;text-decoration:none;border:2px solid var(--rule);border-radius:999px;padding:8px 16px;background:rgba(255,251,255,.75)}
.pagine a:hover{border-color:var(--grape)}
.pagine span.off{opacity:.4;border:2px solid var(--rule);border-radius:999px;padding:8px 16px}

.cta{display:inline-flex;align-items:center;gap:10px;background:var(--plum);color:var(--paper);text-decoration:none;font-weight:700;padding:13px 20px;border-radius:999px;white-space:nowrap;border:0;font:inherit;font-weight:700;cursor:pointer}
.cta:hover{background:var(--grape)}
.cta.alt{background:none;color:var(--plum);border:2px solid var(--rule)}
.cta.alt:hover{border-color:var(--grape);background:var(--surface)}

/* Seguir */
.follow{margin-top:clamp(56px,9vw,96px);background:rgba(255,251,255,.8);border:1px solid var(--rule);border-radius:22px;padding:clamp(24px,5vw,40px);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end}
.follow h2{font-family:var(--display);font-weight:700;font-size:var(--step-3);line-height:1.02;color:var(--plum);margin:0;text-wrap:balance}
.follow p{color:var(--muted);margin:12px 0 0;max-width:46ch}
.follow .azioni{display:flex;flex-direction:column;gap:10px}
.days{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.days a{display:flex;gap:8px;align-items:baseline;border:2px solid var(--rule);background:rgba(255,251,255,.75);border-radius:999px;padding:7px 14px;text-decoration:none}
.days a:hover{border-color:var(--grape)}
.days span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.days b{color:var(--plum);font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
footer{margin-top:36px;font-size:.85rem;color:var(--muted);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer a{color:var(--muted)}

/* Visualizador */
dialog.lb{border:0;padding:0;width:min(1120px, calc(100vw - 32px));height:min(760px, calc(100dvh - 32px));max-height:calc(100dvh - 32px);border-radius:26px;background:var(--surface);color:var(--ink);
  box-shadow:0 40px 90px -30px rgba(46,7,87,.6);overflow:hidden}
dialog.lb::backdrop{background:rgba(46,7,87,.62);backdrop-filter:blur(4px)}
.lb-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100%}
.lb-media{position:relative;background:var(--paper-2);min-height:0;overflow:hidden}
.lb-media::before{content:"";position:absolute;inset:-40px;background:var(--sfondo, none) center/cover;filter:blur(30px) saturate(1.15);opacity:.6}
.lb-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center}
.lb-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:6px}
.lb-dots i{width:7px;height:7px;border-radius:50%;background:rgba(59,0,110,.3)}
.lb-dots i.on{background:var(--plum)}
.lb-slide{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,251,255,.9);color:var(--plum);font-size:1.2rem;cursor:pointer;box-shadow:0 4px 14px rgba(42,10,74,.2)}
.lb-slide.prev{left:12px}.lb-slide.next{right:12px}
.lb-text{padding:clamp(22px,3vw,36px) clamp(22px,3vw,36px) 0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;min-height:0;height:100%}
.lb-legenda{flex:none}
html.lb-aperto,html.lb-aperto body{overflow:hidden}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lb-tema{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.lb-tema i{width:9px;height:9px;border-radius:50%;background:var(--dot)}
.lb-close{border:2px solid var(--rule);background:none;color:var(--plum);width:40px;height:40px;border-radius:50%;font-size:1.3rem;cursor:pointer;flex:none}
.lb-close:hover{border-color:var(--grape)}
.lb-text h2{font-family:var(--display);font-weight:700;font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.04;color:var(--plum);margin:0;text-wrap:balance}
.lb-ref{color:var(--muted);font-size:.92rem;margin:0}
.lb-legenda{white-space:pre-line;margin:6px 0 0;line-height:1.6}
.lb-azioni{position:sticky;bottom:0;z-index:1;background:var(--surface);padding-bottom:clamp(18px,2.6vw,30px);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:16px;border-top:1px solid var(--rule)}
.lb-nav{display:flex;gap:8px}
.lb-nav button{border:2px solid var(--rule);background:none;color:var(--plum);font:700 .85rem var(--body);border-radius:999px;padding:9px 14px;cursor:pointer}
.lb-nav button:hover{border-color:var(--grape)}
.lb-nav button:disabled{opacity:.35;cursor:default}

@media (min-width:761px){.cover{padding-right:calc(min(30vw, 440px) * .94 + 4%)}.cover .inner{max-width:900px}}
@media (max-width:760px){
  .cover .inner{max-width:none;margin:0}
  .cover .grape{display:none}
  .cover .ghost{opacity:.08;height:60%}
  .ultimo,.follow,.progetto,.teaser,.tp-grid{grid-template-columns:1fr}
  .teaser img{max-width:200px}
  .tp-grid .vine{max-width:300px}
  .principi ul{grid-template-columns:1fr}
  .linea li{grid-template-columns:64px minmax(0,1fr)}
  .social{display:none}
  .cover.compatta{padding-block:32px 36px}
  .griglia{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .card h3{font-size:1.2rem}
  .card .ref{display:none}
  .card .meta{font-size:.62rem;letter-spacing:.1em}
  dialog.lb{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}
  .lb-grid{grid-template-columns:1fr;grid-template-rows:min(52dvh, 100vw) minmax(0,1fr);height:100%}
  .lb-azioni{padding-bottom:max(18px, env(safe-area-inset-bottom, 0px))}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Capa compacta (páginas internas) */
.cover.compatta{padding-top:clamp(32px,4.5vw,52px);padding-bottom:clamp(36px,5vw,56px)}
.cover.compatta h1{font-size:clamp(2.3rem,5vw,4rem)}
.cover.compatta .grape{height:min(20vw, 260px)}
@media (min-width:761px){.cover.compatta{padding-right:calc(min(20vw, 260px) * .94 + 4%)}}

/* Títulos de seção */
.sez{font-family:var(--display);font-weight:700;font-size:var(--step-3);line-height:1.04;color:var(--plum);margin:0;text-wrap:balance}
.sez-lede{color:var(--muted);margin:10px 0 0;max-width:60ch}
.sez-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap}
main > section + section{margin-top:clamp(64px,9vw,104px)}
.testo{max-width:60ch;margin:18px 0 0}

/* Página principal */
.progetto{padding-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:end}
.in-breve{margin:0;display:grid;gap:0;border-top:2px solid var(--plum)}
.in-breve div{padding:14px 0;border-bottom:1px solid var(--rule)}
.in-breve dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.in-breve dd{margin:4px 0 0;font-family:var(--display);font-size:1.4rem;line-height:1.2;color:var(--plum);font-weight:700}

.principi ul{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,28px)}
.principi li{padding-top:18px;border-top:2px solid var(--rule)}
.principi h3{font-family:var(--display);font-weight:700;font-size:1.7rem;line-height:1.1;color:var(--plum);margin:0}
.principi p{color:var(--muted);margin:10px 0 0}

.linea{list-style:none;margin:28px 0 0;padding:0;position:relative}
.linea::before{content:"";position:absolute;left:84px;top:12px;bottom:12px;width:2px;background:linear-gradient(var(--stem),var(--grape) 60%,var(--rule))}
.linea li{position:relative;display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;padding:16px 0}
.linea li::after{content:"";position:absolute;left:79px;top:28px;width:12px;height:12px;border-radius:50%;background:var(--dot);box-shadow:0 0 0 4px var(--paper)}
.linea .anno{font-family:var(--display);font-weight:700;font-size:1.6rem;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.4}
.linea h3{font-family:var(--display);font-weight:700;font-size:1.75rem;line-height:1.1;color:var(--plum);margin:0}
.linea p{color:var(--muted);margin:6px 0 0;max-width:62ch}
.linea a{display:inline-block;margin-top:8px;font-weight:700;font-size:.85rem;text-decoration:none}

.quadri ul{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.quadri a{display:flex;flex-direction:column;gap:6px;height:100%;padding:20px 22px;border:2px solid var(--rule);border-radius:20px;background:rgba(255,251,255,.7);text-decoration:none;color:var(--ink);transition:border-color .2s, transform .2s}
.quadri a:hover{border-color:var(--dot);transform:translateY(-2px)}
.q-nome{display:flex;align-items:center;gap:10px;font-weight:700;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--plum)}
.q-nome i{width:11px;height:11px;border-radius:50%;background:var(--dot)}
.q-desc{color:var(--muted)}
.q-conta{margin-top:auto;padding-top:6px;font-weight:700;font-size:.85rem;color:var(--grape)}

.recenti .griglia{grid-template-columns:repeat(4,minmax(0,1fr))}
.card > a{display:block;text-decoration:none;color:inherit;border-radius:18px}
.card > a:hover .img img{transform:scale(1.035)}

.teaser{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(24px,5vw,56px);align-items:center}
.teaser img{width:100%;height:auto;max-width:300px;justify-self:center;filter:drop-shadow(0 26px 30px rgba(59,0,110,.18))}
.teaser p{color:var(--muted);margin:16px 0 22px;max-width:52ch}

/* Página do símbolo */
.origine{padding-top:clamp(40px,6vw,72px)}
.testo-vite{margin:30px 0 0;padding:clamp(24px,4vw,40px) 0 0 clamp(24px,5vw,48px);position:relative}
.testo-vite::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px;background:linear-gradient(var(--stem),var(--grape) 55%,transparent)}
.passage{margin:0;font-family:var(--display);font-size:clamp(1.45rem,3.2vw,1.95rem);line-height:1.38;font-weight:500;max-width:40ch;color:var(--ink)}
.passage mark{background:none;color:var(--grape);font-style:italic;font-weight:600}
.testo-vite figcaption{margin-top:22px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.toggle{display:inline-flex;gap:6px;padding:4px;border:1px solid var(--rule);border-radius:999px;background:var(--surface)}
.toggle button{border:0;background:none;color:var(--muted);font:600 .85rem var(--body);padding:7px 14px;border-radius:999px;cursor:pointer}
.toggle button[aria-pressed="true"]{background:var(--plum);color:var(--paper)}
.cite{font-size:.92rem;color:var(--muted)}
.cite b{color:var(--plum);font-weight:600}

.tp-head .hint{color:var(--muted);margin:12px 0 0}
.tp-grid{margin-top:28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,56px);align-items:center}
.vine{position:relative;width:100%;max-width:440px;justify-self:center;aspect-ratio:601/640}
.vine img{width:100%;height:100%;display:block;filter:drop-shadow(0 26px 30px rgba(59,0,110,.18))}
.spot{position:absolute;transform:translate(-50%,-50%);border:0;cursor:pointer;background:var(--surface);color:var(--plum);
  font:600 .85rem/1 var(--body);letter-spacing:.04em;padding:9px 13px 9px 27px;border-radius:999px;
  box-shadow:0 4px 14px rgba(42,10,74,.18);transition:transform .2s ease, background .2s ease, color .2s ease;white-space:nowrap}
.spot::before{content:"";position:absolute;left:10px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:var(--dot)}
.spot:hover{transform:translate(-50%,-50%) scale(1.06)}
.spot[aria-pressed="true"]{background:var(--plum);color:var(--paper)}
.spot[data-k="ceppo"]{--dot:var(--stem);left:70%;top:31%}
.spot[data-k="acino"]{--dot:var(--grape);left:16%;top:44%}
.spot[data-k="liquore"]{--dot:var(--leaf);left:40%;top:78%}
.parts{display:grid;gap:12px}
.part{padding:20px 22px;border:2px solid var(--rule);border-radius:20px;background:rgba(255,251,255,.5);transition:background .25s, border-color .25s}
.part.on{background:var(--surface);border-color:var(--dot)}
.part .sym{display:flex;align-items:center;gap:10px;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.part .sym i{width:10px;height:10px;border-radius:50%;background:var(--dot)}
.part h3{font-family:var(--display);font-weight:700;font-size:1.9rem;line-height:1.05;margin:8px 0 0;color:var(--plum)}
.part h3 em{font-style:italic;font-weight:600;color:var(--grape)}
.part p{margin:8px 0 0;color:var(--muted)}

.pull blockquote{margin:16px 0 0;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.2rem,6.4vw,4rem);line-height:1.02;color:var(--plum);text-wrap:balance;max-width:16ch}
.pull blockquote b{font-weight:600;color:var(--grape)}
.pull p{max-width:60ch;color:var(--muted);margin:22px 0 0}
.perche p{max-width:60ch;margin:14px 0 0}
.perche .azioni{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
@media (max-width:1000px) and (min-width:761px){.recenti .griglia{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.recenti .griglia{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Celular: precisa vir depois das regras das páginas */
@media (max-width:760px){
  .progetto,.teaser,.tp-grid{grid-template-columns:1fr}
  .principi ul{grid-template-columns:1fr}
  .linea::before{left:52px}
  .linea li{grid-template-columns:64px minmax(0,1fr);gap:18px}
  .linea li::after{left:47px}
  .linea .anno{font-size:1.25rem}
  .teaser img{max-width:200px}
  .tp-grid .vine{max-width:300px}
  .menu{width:100%;justify-content:space-between}
  .menu a{padding:7px 10px;font-size:.9rem}
}

/* Calendario */
.in-breve dd a{color:inherit;text-decoration-color:var(--rule);text-underline-offset:4px}
.in-breve dd a:hover{text-decoration-color:var(--grape)}
.oggi{padding-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(24px,5vw,56px);align-items:center}
.oggi-quadro{margin:16px 0 0;display:flex;align-items:center;gap:10px;font-weight:700;font-size:.9rem;letter-spacing:.16em;text-transform:uppercase;color:var(--plum)}
.oggi-quadro i{width:12px;height:12px;border-radius:50%;background:var(--dot)}
.oggi-quadro span{letter-spacing:.02em;text-transform:none;font-weight:500;color:var(--muted)}
.oggi .lede{margin-bottom:22px}
.oggi .lede b{color:var(--plum)}
.oggi-img{display:block;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px -36px rgba(59,0,110,.6);max-width:380px;justify-self:end}
.oggi-img img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;transition:transform .35s ease}
.oggi-img:hover img{transform:scale(1.03)}

.giorni{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.giorno{display:flex;flex-direction:column;gap:8px;padding:16px 14px 18px;border:2px solid var(--rule);border-radius:18px;background:rgba(255,251,255,.6);min-width:0;border-top:6px solid var(--dot)}
.giorno.oggi-on{background:var(--surface);border-color:var(--dot);box-shadow:0 22px 40px -30px rgba(59,0,110,.6)}
.g-testa{display:flex;justify-content:space-between;align-items:center;gap:6px}
.g-nome{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.g-oggi{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--surface);background:var(--plum);border-radius:999px;padding:3px 8px}
.g-quadro{display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:1.6rem;line-height:1;color:var(--plum);text-decoration:none}
.g-quadro i{width:10px;height:10px;border-radius:50%;background:var(--dot);flex:none}
.g-quadro:hover{color:var(--grape)}
.g-fonte{margin:0;font-size:.82rem;line-height:1.4;color:var(--muted)}
.g-ultimo{margin-top:auto;padding-top:10px;border-top:1px dashed var(--rule);font-size:.82rem;line-height:1.35;color:var(--ink);text-decoration:none}
.g-ultimo span{display:block;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:3px}
.g-ultimo:hover{color:var(--grape)}

.tabella{margin-top:20px;overflow-x:auto;border:1px solid var(--rule);border-radius:18px;background:rgba(255,251,255,.7)}
.tabella table{width:100%;border-collapse:collapse;font-size:.95rem}
.tabella th{text-align:left;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:14px 18px;border-bottom:1px solid var(--rule)}
.tabella td{padding:11px 18px;border-bottom:1px solid var(--rule);white-space:nowrap}
.tabella tr:last-child td{border-bottom:0}
.tabella tr.r-lunedi td{border-top:2px solid var(--rule)}
.tabella tr.r-oggi{background:var(--surface)}
.tabella td b{color:var(--plum);font-weight:700}
.tabella td a{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--plum);text-decoration:none}
.tabella td a i{width:9px;height:9px;border-radius:50%;background:var(--dot)}
.tabella td a:hover{color:var(--grape)}
.tabella .num{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right}
.tabella th:last-child{text-align:right}
.pill{display:inline-block;margin-left:6px;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--surface);background:var(--plum);border-radius:999px;padding:2px 8px;vertical-align:2px}
.pill.soft{background:none;color:var(--muted);border:1.5px solid var(--rule)}

.regole ul{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--rule)}
.regole li{padding:14px 0 14px 22px;border-bottom:1px solid var(--rule);color:var(--muted);position:relative}
.regole li::before{content:"";position:absolute;left:2px;top:23px;width:9px;height:9px;border-radius:50%;background:var(--dot, var(--grape))}
.regole b{color:var(--plum)}

@media (max-width:1000px){.giorni{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){
  .oggi{grid-template-columns:1fr}
  .oggi-img{justify-self:start;max-width:280px}
  .giorni{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-quadro{font-size:1.35rem}
  .tabella td,.tabella th{padding:10px 12px}
  .tabella td{white-space:normal}
  .menu{justify-content:flex-start}
}
