/*
Theme Name: Attivamente
Theme URI: https://attivamenteodv.it
Author: Carlo Cucuzza
Description: Tema su misura per Attivamente ODV, Pedara (CT). Design identico all anteprima approvata: nessun page builder, HTML e CSS scritti a mano, custom post type per progetti e storie.
Version: 1.7.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: attivamente
Tags: nonprofit, custom-colors, custom-menu, translation-ready
*/

/* ══════════════════════════════════════════════════════════
   Attivamente ODV — foglio di stile condiviso
   Design system invariato rispetto all'anteprima approvata.
   ══════════════════════════════════════════════════════════ */

:root{
  --cream:        #fbf6ea;
  --cream-2:      #f4ecd8;
  --ink:          #0f2e3d;     /* blu Ionio profondo */
  --ink-soft:     #3d5564;
  --ink-fade:     #7a8c97;
  --coral:        #e85a2c;     /* Etna sunset */
  --coral-deep:   #c64317;
  --sun:          #f5c84e;     /* giallo limone */
  --sage:         #cfd9c4;     /* verde salvia */
  --sage-deep:    #9bb097;
  --rose:         #f0d4c0;     /* rosa pesca pallido */
  --rule:         rgba(15,46,61,.14);
  --rule-soft:    rgba(15,46,61,.08);

  --display: "Bricolage Grotesque", system-ui, sans-serif;
  --body:    "Hanken Grotesk", system-ui, -apple-system, sans-serif;

  --max:    1440px;
  --gutter: clamp(20px, 4vw, 56px);
  --r:      18px;
  --r-sm:   12px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.55;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
::selection{ background:var(--coral); color:var(--cream); }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
button{ font:inherit; }

:where(a,button,input,summary):focus-visible{
  outline:3px solid var(--coral);
  outline-offset:3px;
  border-radius:4px;
}

.display{
  font-family:var(--display);
  font-weight:600;
  letter-spacing:-.02em;
  line-height:.98;
  font-variation-settings:"wdth" 100, "opsz" 96;
}
.display.tight{ font-weight:700; }
.eyebrow{
  font-family:var(--body);
  font-size:13px; font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--coral);
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before{
  content:""; width:18px; height:2px; background:var(--coral); display:inline-block;
}

.container{
  max-width:var(--max);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

/* ─── Buttons ─── */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:14px 22px; border-radius:999px;
  font-family:var(--body); font-weight:600; font-size:15px;
  letter-spacing:.01em;
  border:2px solid transparent;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  cursor:pointer; white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.98); }
.btn-primary{ background:var(--coral); color:var(--cream); }
.btn-primary:hover{ background:var(--coral-deep); }
.btn-yellow{ background:var(--sun); color:var(--ink); }
.btn-yellow:hover{ background:#ffd664; }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:var(--cream); }
.btn-light{ background:var(--cream); color:var(--ink); }
.btn .arr{
  width:22px; height:22px; border-radius:50%; background:currentColor;
  display:grid; place-items:center;
  flex:0 0 22px;
}
.btn .arr svg{ width:11px; height:11px; }
.btn-primary .arr svg path{ stroke:var(--coral); }
.btn-yellow .arr svg path{ stroke:var(--sun); }
.btn-ghost .arr svg path{ stroke:var(--cream); }
.btn-ghost:hover .arr{ background:var(--cream); }

/* ─── Top bar (donate strip) ─── */
.topbar{
  background:var(--ink); color:var(--cream);
  font-size:13px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.topbar .row{
  display:flex; justify-content:space-between; align-items:center;
  height:40px; gap:18px;
}
.topbar a{ color:var(--cream); }
.topbar .left{ display:flex; gap:24px; align-items:center; opacity:.85; }
.topbar .right{ display:flex; gap:18px; align-items:center; }
.topbar .live{ display:inline-flex; align-items:center; gap:8px; }
.topbar .live::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--coral);
  box-shadow:0 0 0 0 rgba(232,90,44,.6);
  animation:pulse 2.4s ease-out infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(232,90,44,.55);}
  70%{ box-shadow:0 0 0 10px rgba(232,90,44,0);}
  100%{ box-shadow:0 0 0 0 rgba(232,90,44,0);}
}
@media (max-width:900px){ .topbar .left .hide-s{ display:none; } }

/* ─── Header ─── */
.site-head{
  position:sticky; top:0; z-index:50;
  background:color-mix(in oklab, var(--cream) 92%, transparent);
  backdrop-filter:saturate(1.1) blur(10px);
  -webkit-backdrop-filter:saturate(1.1) blur(10px);
  border-bottom:1px solid var(--rule-soft);
}
.site-head .row{
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:24px; height:80px;
}
.brand{ display:flex; align-items:center; gap:14px; min-width:0; }
.brand .logo{
  height:44px; width:auto; display:block; flex:0 0 auto;
  object-fit:contain;
}
.brand .sub{
  font-family:var(--body); font-size:11px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--ink-fade);
  line-height:1; padding-left:14px;
  border-left:1px solid var(--rule);
  white-space:nowrap;
}
@media (max-width:680px){
  .brand .sub{ display:none; }
}
nav.primary ul{
  display:flex; gap:32px; justify-content:center;
  list-style:none; padding:0; margin:0;
  font-size:15px; font-weight:500;
}
nav.primary a{ color:var(--ink); padding:6px 0; position:relative; }
nav.primary a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px;
  height:2px; background:var(--coral); transition:right .35s ease;
}
nav.primary a:hover::after{ right:0; }
nav.primary a[aria-current="page"]{ font-weight:600; }
nav.primary a[aria-current="page"]::after{ right:0; }
.head-actions{ display:flex; gap:10px; align-items:center; }
@media (max-width:1100px){ nav.primary{ display:none; } }
@media (max-width:600px){ .head-actions .btn-ghost{ display:none; } }

/* ─── Menu mobile ─── */
.nav-toggle{
  display:none;
  width:46px; height:46px; border-radius:50%;
  border:2px solid var(--ink); background:transparent; color:var(--ink);
  cursor:pointer;
  place-items:center;
  transition:background .25s ease, color .25s ease, transform .25s ease;
}
.nav-toggle:active{ transform:scale(.94); }
.nav-toggle svg{ width:20px; height:20px; }
.nav-toggle .ico-close{ display:none; }
.nav-toggle[aria-expanded="true"]{ background:var(--ink); color:var(--cream); }
.nav-toggle[aria-expanded="true"] .ico-open{ display:none; }
.nav-toggle[aria-expanded="true"] .ico-close{ display:block; }
@media (max-width:1100px){ .nav-toggle{ display:grid; } }

.mobile-nav{
  display:none;
  border-top:1px solid var(--rule-soft);
  background:var(--cream);
}
.mobile-nav.open{ display:block; }
.mobile-nav ul{
  list-style:none; margin:0; padding:16px 0 28px;
  display:grid; gap:2px;
}
.mobile-nav a{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 2px;
  font-family:var(--display); font-weight:600;
  font-size:28px; letter-spacing:-.02em;
  border-bottom:1px solid var(--rule-soft);
  opacity:0; transform:translateY(10px);
  animation:navIn .45s cubic-bezier(.2,.7,.2,1) forwards;
  animation-delay:calc(var(--i) * 45ms);
}
.mobile-nav a[aria-current="page"]{ color:var(--coral); }
.mobile-nav a::after{ content:"→"; color:var(--coral); font-size:20px; }
.mobile-nav .cta{
  margin-top:20px; display:flex; gap:10px; flex-wrap:wrap;
}
@keyframes navIn{ to{ opacity:1; transform:none; } }

/* ─── Hero (home) ─── */
.hero{
  padding-top:clamp(40px, 6vh, 72px);
  padding-bottom:clamp(56px, 9vh, 112px);
  position:relative;
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:clamp(32px, 4vw, 64px);
  align-items:center;
}
.hero-copy h1{
  font-family:var(--display);
  font-size:clamp(48px, 6.6vw, 104px);
  font-weight:700;
  line-height:.98;
  letter-spacing:-.025em;
  margin:18px 0 28px;
}
.hero-copy h1 .squiggle{
  display:inline-block; position:relative;
  color:var(--coral);
}
.hero-copy h1 .squiggle::after{
  content:""; position:absolute; left:-2%; right:-2%; bottom:-6%;
  height:14px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'><path d='M2 9 Q 25 -2, 50 7 T 100 7 T 150 7 T 198 7' stroke='%23f5c84e' stroke-width='4' fill='none' stroke-linecap='round'/></svg>") center/100% 100% no-repeat;
}
.hero-lede{
  font-size:19px; line-height:1.55; max-width:46ch;
  color:var(--ink-soft); margin:0 0 32px;
}
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }

.hero-art{
  position:relative; aspect-ratio:5/6; max-height:660px;
  width:100%;
}
.hero-photo{
  position:absolute; inset:0;
  border-radius:28px;
  overflow:hidden;
  background:var(--sage);
  transform:rotate(-1.5deg);
}
.hero-photo-2{
  position:absolute;
  width:46%; aspect-ratio:4/5;
  top:-3%; right:-6%;
  border-radius:24px; overflow:hidden;
  background:var(--rose);
  transform:rotate(4deg);
  z-index:2;
  box-shadow:0 30px 60px rgba(15,46,61,.18);
}
.hero-sticker{
  position:absolute;
  bottom:-3%; left:-4%;
  width:30%; aspect-ratio:1;
  border-radius:50%;
  background:var(--sun);
  display:grid; place-items:center;
  text-align:center;
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(13px, 1.3vw, 16px);
  line-height:1.15;
  color:var(--ink);
  padding:10%;
  z-index:3;
  transform:rotate(-8deg);
  animation:wobble 8s ease-in-out infinite;
}
@keyframes wobble{
  0%,100%{ transform:rotate(-8deg) translateY(0); }
  50%{ transform:rotate(-4deg) translateY(-6px); }
}

/* placeholder striato + label (per blocchi senza foto reale) */
.ph{
  position:relative;
  width:100%; height:100%;
  background-image:repeating-linear-gradient(45deg, rgba(15,46,61,.06) 0 14px, transparent 14px 28px);
  overflow:hidden;
}
.ph .ph-label{
  position:absolute; bottom:14px; left:14px;
  font-family:ui-monospace, "SF Mono", monospace;
  font-size:11px;
  background:rgba(15,46,61,.85);
  color:var(--cream);
  padding:5px 9px; border-radius:6px;
  letter-spacing:.04em;
  z-index:2;
}
.ph img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.ph.has-photo{ background-image:none; }
.ph.has-photo .ph-label{ display:none; }

@media (max-width:1100px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ aspect-ratio:5/4; max-height:520px; }
}

/* ─── Hero pagine interne ─── */
.page-hero{
  background:var(--cream-2);
  border-bottom:1px solid var(--rule-soft);
  padding-block:clamp(36px, 5vh, 64px) clamp(48px, 7vh, 88px);
  position:relative; overflow:hidden;
}
.page-hero-grid{
  display:grid; grid-template-columns:1.15fr .85fr;
  gap:clamp(32px, 5vw, 72px);
  align-items:center;
}
.page-hero h1{
  font-family:var(--display); font-weight:700;
  font-size:clamp(42px, 5.6vw, 88px);
  line-height:.98; letter-spacing:-.025em;
  margin:16px 0 24px;
}
.page-hero h1 em{ font-style:italic; font-weight:500; color:var(--coral); }
.page-hero .lede{
  font-size:19px; line-height:1.55; max-width:52ch;
  color:var(--ink-soft); margin:0;
}
.page-hero .hero-side{
  border-radius:24px; overflow:hidden;
  aspect-ratio:4/3; background:var(--sage);
  transform:rotate(1.5deg);
  box-shadow:0 30px 60px rgba(15,46,61,.12);
}
@media (max-width:1000px){
  .page-hero-grid{ grid-template-columns:1fr; }
  .page-hero .hero-side{ aspect-ratio:16/9; transform:none; }
}

.crumbs{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
  font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-fade); margin:0;
}
.crumbs a:hover{ color:var(--coral); }
.crumbs .sep{ opacity:.5; }
.crumbs [aria-current]{ color:var(--ink); font-weight:600; }

/* ─── Quick links band ─── */
.quick-band{
  background:var(--ink); color:var(--cream);
  padding:20px 0;
}
.quick-band .row{
  display:flex; gap:32px; align-items:center; justify-content:center;
  flex-wrap:wrap;
  font-size:14px; font-weight:500;
}
.quick-band a{ color:var(--cream); display:inline-flex; gap:10px; align-items:center; }
.quick-band a::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--sun);
}
.quick-band a:hover{ color:var(--sun); }

/* ─── Section base ─── */
.section{
  padding-block:clamp(72px, 10vh, 128px);
}
.section-tight{ padding-block:clamp(56px, 8vh, 96px); }
.section-head{
  display:grid; grid-template-columns:auto 1fr auto;
  gap:24px; align-items:end;
  margin-bottom:clamp(40px, 6vh, 64px);
}
.section-head .lead{ display:flex; flex-direction:column; gap:18px; max-width:760px; }
.section-head h2{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(40px, 5.4vw, 84px);
  line-height:.98;
  letter-spacing:-.025em;
  margin:0;
}
.section-head .extra{ align-self:end; padding-bottom:8px; }
@media (max-width:900px){
  .section-head{ grid-template-columns:1fr; }
  .section-head .extra{ padding-bottom:0; }
}

/* ─── Chi siamo ─── */
.about{
  background:var(--cream-2);
  border-top:1px solid var(--rule-soft);
  border-bottom:1px solid var(--rule-soft);
}
.about-intro{
  font-family:var(--display); font-weight:500;
  font-size:clamp(26px, 2.6vw, 40px);
  line-height:1.2;
  letter-spacing:-.015em;
  max-width:24ch;
  margin:0 0 56px;
  color:var(--ink);
}
.values{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.value-card{
  border-radius:var(--r);
  padding:36px 32px 32px;
  display:flex; flex-direction:column; gap:18px;
  min-height:340px;
  position:relative; overflow:hidden;
}
.value-card.v1{ background:var(--coral); color:var(--cream); }
.value-card.v2{ background:var(--sun); color:var(--ink); }
.value-card.v3{ background:var(--sage); color:var(--ink); }
.value-card .num{
  font-family:var(--display); font-weight:700;
  font-size:18px; letter-spacing:.02em;
  opacity:.7;
}
.value-card h3{
  font-family:var(--display); font-weight:700;
  font-size:clamp(36px, 4vw, 56px);
  line-height:.95;
  letter-spacing:-.02em;
  margin:0;
}
.value-card p{
  font-size:15px; line-height:1.55; margin:0;
  opacity:.92;
}
.value-card .deco{
  position:absolute; right:-30px; bottom:-30px;
  width:140px; height:140px;
  opacity:.16;
}
@media (max-width:900px){ .values{ grid-template-columns:1fr; } }

.about-prose{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(28px,4vw,56px);
  margin-top:clamp(48px,7vh,80px);
  padding-top:clamp(40px,6vh,56px);
  border-top:1px solid var(--rule-soft);
}
.about-prose h3{
  font-family:var(--display); font-weight:700;
  font-size:24px; letter-spacing:-.015em; margin:0 0 14px;
}
.about-prose p{
  font-size:16px; line-height:1.6; color:var(--ink-soft); margin:0;
}
.about-prose em{ font-style:italic; color:var(--coral); }
@media (max-width:900px){ .about-prose{ grid-template-columns:1fr; } }

/* ─── Project tiles (home) ─── */
.projects-grid{
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:20px;
}
.project-tile{
  border-radius:var(--r);
  overflow:hidden;
  position:relative;
  display:block;
  background:var(--sage);
  transition:transform .35s ease;
  min-height:340px;
}
.project-tile:hover{ transform:translateY(-4px); }
.project-tile .ph{ height:240px; }
.project-tile .body{
  padding:22px 22px 24px;
  background:var(--cream);
  border-top:1px solid var(--rule-soft);
}
.project-tile .label{
  display:inline-block;
  background:var(--ink); color:var(--cream);
  font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  padding:5px 10px; border-radius:999px; margin-bottom:14px;
  font-weight:600;
}
.project-tile h3{
  font-family:var(--display); font-weight:600;
  font-size:24px; line-height:1.05;
  letter-spacing:-.015em;
  margin:0 0 10px;
}
.project-tile p{
  font-size:14px; line-height:1.55;
  color:var(--ink-soft); margin:0 0 14px;
}
.project-tile .more{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; color:var(--coral);
}
.project-tile .more::after{
  content:"→"; transition:transform .25s ease;
}
.project-tile:hover .more::after{ transform:translateX(4px); }

.project-tile.feature{ grid-column:span 6; }
.project-tile.tile  { grid-column:span 4; }
.project-tile.feature .ph{ height:380px; }
.project-tile.tile .ph{ height:210px; }
@media (max-width:1100px){
  .project-tile.feature{ grid-column:span 6; }
  .project-tile.tile{ grid-column:span 6; }
}
@media (max-width:700px){
  .project-tile.feature, .project-tile.tile{ grid-column:span 12; }
}

/* ─── Project rows (pagina progetti) ─── */
.project-rows{
  display:grid; gap:clamp(48px, 7vh, 88px);
}
.project-row{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(28px, 4vw, 64px);
  align-items:center;
}
.project-row:nth-child(even) .project-row-media{ order:2; }
.project-row-media{
  border-radius:24px; overflow:hidden;
  aspect-ratio:4/3;
  background:var(--sage);
  position:relative;
}
.project-row:nth-child(odd)  .project-row-media{ transform:rotate(-1.2deg); }
.project-row:nth-child(even) .project-row-media{ transform:rotate(1.2deg); }
.project-row h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(30px, 3.4vw, 48px);
  line-height:1.02; letter-spacing:-.02em;
  margin:14px 0 16px;
}
.project-row p{
  font-size:17px; line-height:1.6; color:var(--ink-soft);
  margin:0 0 18px; max-width:52ch;
}
.project-index{
  font-family:var(--display); font-weight:700;
  font-size:13px; letter-spacing:.16em;
  color:var(--ink-fade);
}
.project-facts{
  display:grid; gap:0;
  border-top:1px solid var(--rule);
  margin-top:22px;
}
.project-facts div{
  display:grid; grid-template-columns:130px 1fr;
  gap:16px; padding:12px 0;
  border-bottom:1px solid var(--rule-soft);
  font-size:15px;
}
.project-facts dt{
  font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-fade);
  align-self:center;
}
.project-facts dd{ margin:0; color:var(--ink); }
@media (max-width:900px){
  .project-row{ grid-template-columns:1fr; }
  .project-row:nth-child(even) .project-row-media{ order:0; }
  .project-row-media{ transform:none !important; }
  .project-facts div{ grid-template-columns:1fr; gap:2px; }
}

/* ─── Story spotlight ─── */
.spotlight{
  background:var(--ink); color:var(--cream);
  padding-block:clamp(72px, 10vh, 120px);
  border-radius:32px;
  margin-block:clamp(40px,6vh,80px);
  margin-inline:var(--gutter);
}
.spotlight .container{ padding:0 clamp(24px,4vw,72px); max-width:none; }
.spotlight-grid{
  display:grid; grid-template-columns:1fr 1.1fr;
  gap:clamp(32px, 4vw, 64px);
  align-items:center;
}
.spotlight-photo{
  border-radius:24px; overflow:hidden;
  aspect-ratio:4/5;
  background:var(--rose);
  position:relative;
}
.spotlight blockquote{
  font-family:var(--display); font-weight:500;
  font-size:clamp(28px, 3vw, 44px);
  line-height:1.15;
  letter-spacing:-.015em;
  margin:0 0 28px;
  text-wrap:pretty;
}
.spotlight blockquote .accent{ color:var(--sun); }
.spotlight cite{
  font-style:normal;
  font-size:14px; letter-spacing:.04em;
  color:#d6c9b0;
  display:flex; align-items:center; gap:14px;
}
.spotlight cite::before{
  content:""; width:36px; height:1px; background:var(--sun); display:inline-block;
}
.spotlight .meta{
  display:flex; gap:24px; margin-top:36px; flex-wrap:wrap;
  padding-top:28px; border-top:1px solid rgba(255,255,255,.16);
}
.spotlight .meta div .k{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--sun); margin-bottom:6px;
}
.spotlight .meta div .v{
  font-family:var(--display); font-weight:600; font-size:22px;
}
@media (max-width:1100px){
  .spotlight-grid{ grid-template-columns:1fr; }
  .spotlight{ margin-inline:0; border-radius:0; }
}

/* ─── Numeri band ─── */
.numbers-band{
  background:var(--coral); color:var(--cream);
  padding-block:clamp(64px, 9vh, 104px);
  position:relative; overflow:hidden;
}
.numbers-band::before{
  content:""; position:absolute; right:-80px; top:-80px;
  width:280px; height:280px; border-radius:50%;
  background:var(--sun); opacity:.85;
}
.numbers-band::after{
  content:""; position:absolute; left:-60px; bottom:-100px;
  width:220px; height:220px; border-radius:50%;
  background:var(--coral-deep);
}
.numbers-band .container{ position:relative; z-index:2; }
.numbers-band .lead{
  font-family:var(--display); font-weight:600;
  font-size:clamp(28px, 3vw, 44px); line-height:1.05;
  margin:0 0 48px; max-width:18ch;
  letter-spacing:-.015em;
}
.numbers{
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:24px;
}
.num-cell{
  border-top:2px solid rgba(255,255,255,.5);
  padding-top:24px;
}
.num-cell .big{
  font-family:var(--display); font-weight:700;
  font-size:clamp(56px, 8vw, 120px);
  line-height:.9;
  letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
  display:block;
}
.num-cell .lab{
  font-size:14px; line-height:1.45;
  margin-top:14px; max-width:22ch;
  opacity:.92;
}
@media (max-width:900px){
  .numbers{ grid-template-columns:repeat(2,1fr); }
}

/* ─── Motti ─── */
.motto-band{
  background:var(--cream-2);
  padding-block:clamp(64px, 9vh, 112px);
}
.motto-grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:24px;
}
.motto-card{
  background:var(--cream);
  border-radius:var(--r);
  padding:clamp(28px,4vw,48px);
  display:flex; flex-direction:column; gap:20px;
  position:relative; overflow:hidden;
}
.motto-card .qmark{
  font-family:var(--display); font-weight:700;
  font-size:120px; line-height:.6;
  color:var(--coral);
}
.motto-card.alt .qmark{ color:var(--sage-deep); }
.motto-card p{
  font-family:var(--display); font-weight:500;
  font-size:clamp(22px, 2.4vw, 32px);
  line-height:1.15; letter-spacing:-.015em;
  margin:0; text-wrap:pretty;
}
.motto-card .who{
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-fade); margin-top:auto;
}
@media (max-width:900px){ .motto-grid{ grid-template-columns:1fr; } }

/* ─── News ─── */
.news-grid{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.news-card{
  display:flex; flex-direction:column;
  background:var(--cream); border-radius:var(--r);
  overflow:hidden;
  border:1px solid var(--rule-soft);
  transition:transform .25s ease, box-shadow .25s ease;
}
.news-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(15,46,61,.08);
}
.news-card .ph{ height:220px; background-color:var(--sage); }
.news-card.c2 .ph{ background-color:var(--rose); }
.news-card.c3 .ph{ background-color:var(--sun); }
.news-card .body{ padding:22px 22px 26px; display:flex; flex-direction:column; gap:12px; flex:1; }
.news-card .meta{ display:flex; gap:10px; font-size:12px; letter-spacing:.04em; color:var(--ink-fade); }
.news-card .meta .tag{
  background:var(--ink); color:var(--cream);
  padding:3px 9px; border-radius:999px;
  font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:11px;
}
.news-card h3{
  font-family:var(--display); font-weight:600;
  font-size:22px; line-height:1.1; letter-spacing:-.015em; margin:0;
}
.news-card p{ font-size:15px; color:var(--ink-soft); margin:0; }
.news-card .more{
  font-size:13px; font-weight:600; color:var(--coral);
  display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:8px;
}
.news-card .more::after{ content:"→"; transition:transform .25s ease; }
.news-card:hover .more::after{ transform:translateX(4px); }
@media (max-width:1100px){ .news-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:700px){ .news-grid{ grid-template-columns:1fr; } }

/* stato vuoto elegante — quando non ci sono ancora contenuti */
.empty-note{
  border:1px dashed var(--rule);
  border-radius:var(--r);
  padding:clamp(28px,4vw,44px);
  display:grid; gap:12px;
  background:var(--cream-2);
  max-width:60ch;
}
.empty-note h3{
  font-family:var(--display); font-weight:600;
  font-size:24px; letter-spacing:-.015em; margin:0;
}
.empty-note p{ margin:0; color:var(--ink-soft); font-size:16px; }

/* ─── Donate band ─── */
.donate-band{
  background:var(--sun);
  border-radius:32px;
  margin-inline:var(--gutter);
  margin-block:clamp(48px,7vh,80px);
  padding:clamp(48px,7vw,96px) clamp(28px,4vw,72px);
  position:relative; overflow:hidden;
}
.donate-band::before{
  content:""; position:absolute;
  width:340px; height:340px; border-radius:50%;
  background:var(--coral);
  right:-100px; top:-120px;
}
.donate-band .container{ padding:0; max-width:none; position:relative; z-index:2; }
.donate-grid{
  display:grid; grid-template-columns:1.2fr 1fr;
  gap:48px; align-items:start;
}
.donate-grid h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(48px, 6vw, 96px);
  line-height:.95; letter-spacing:-.025em;
  margin:0 0 24px;
}
.donate-grid h2 em{ font-style:italic; font-weight:500; }
.donate-grid > div:first-child > p{
  font-size:18px; line-height:1.55; max-width:42ch; margin:0 0 28px; color:var(--ink);
}
.donate-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.donate-info{
  background:var(--cream); border-radius:var(--r);
  padding:28px;
  display:flex; flex-direction:column; gap:16px;
  color:var(--ink);          /* non ereditare il colore chiaro dai blocchi scuri */
}
.donate-info .row{
  display:grid; grid-template-columns:80px 1fr auto;
  gap:14px; align-items:center;
  border-bottom:1px solid var(--rule-soft);
  padding-bottom:14px;
}
.donate-info .row:last-child{ border-bottom:0; padding-bottom:0; }
.donate-info .k{
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-fade);
}
.donate-info .v{
  font-family:ui-monospace, "SF Mono", monospace;
  font-size:14px; letter-spacing:.02em;
  overflow-x:auto; white-space:nowrap;
}
.donate-info button{
  background:var(--ink); color:var(--cream);
  border:0; padding:8px 14px; border-radius:999px;
  font-size:12px; font-weight:600; letter-spacing:.06em;
  cursor:pointer; transition:background .2s ease, transform .2s ease;
}
.donate-info button:hover{ background:var(--coral); }
.donate-info button:active{ transform:scale(.95); }
.donate-info button.copied{ background:var(--coral); }
@media (max-width:1100px){
  .donate-grid{ grid-template-columns:1fr; }
  .donate-band{ margin-inline:0; border-radius:0; }
}

/* ─── Modi per sostenere (pagina sostieni) ─── */
.ways{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:20px;
}
.way{
  border-radius:var(--r);
  padding:clamp(28px,3.4vw,44px);
  display:flex; flex-direction:column; gap:16px;
  border:1px solid var(--rule-soft);
  background:var(--cream);
  position:relative; overflow:hidden;
}
.way.wide{ grid-column:1 / -1; }
.way.ink{ background:var(--ink); color:var(--cream); border-color:transparent; }
.way.sage{ background:var(--sage); border-color:transparent; }
.way .tagline{
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--coral);
}
.way.ink .tagline{ color:var(--sun); }
.way h3{
  font-family:var(--display); font-weight:700;
  font-size:clamp(28px,3vw,40px); line-height:1.02;
  letter-spacing:-.02em; margin:0;
}
.way p{ margin:0; font-size:16px; line-height:1.6; color:var(--ink-soft); max-width:56ch; }
.way.ink p{ color:#cfd9c4; }
.way .way-cta{ margin-top:auto; padding-top:12px; }
.way-steps{
  list-style:none; margin:0; padding:0;
  display:grid; gap:12px; counter-reset:step;
}
.way-steps li{
  display:grid; grid-template-columns:28px 1fr; gap:14px;
  align-items:start; font-size:16px; line-height:1.5;
  counter-increment:step;
}
.way-steps li::before{
  content:counter(step);
  width:28px; height:28px; border-radius:50%;
  background:var(--ink); color:var(--cream);
  display:grid; place-items:center;
  font-size:13px; font-weight:700;
}
.way.ink .way-steps li::before{ background:var(--sun); color:var(--ink); }
@media (max-width:900px){ .ways{ grid-template-columns:1fr; } }

/* ─── Contatti ─── */
.contact-grid{
  display:grid; grid-template-columns:.9fr 1.1fr;
  gap:clamp(32px,5vw,72px);
  align-items:start;
}
.contact-block{
  display:grid; gap:0;
  border-top:1px solid var(--rule);
}
.contact-block .item{
  padding:22px 0;
  border-bottom:1px solid var(--rule-soft);
  display:grid; gap:6px;
}
.contact-block .k{
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-fade);
}
.contact-block .v{
  font-family:var(--display); font-weight:600;
  font-size:clamp(20px,2.1vw,26px); letter-spacing:-.015em;
  line-height:1.2; margin:0;
}
.contact-block .v a:hover{ color:var(--coral); }
.contact-block .note{ font-size:14px; color:var(--ink-soft); margin:0; }

.form-card{
  background:var(--cream-2);
  border:1px solid var(--rule-soft);
  border-radius:24px;
  padding:clamp(28px,4vw,48px);
}
.form-card h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(28px,3vw,40px); line-height:1.02;
  letter-spacing:-.02em; margin:0 0 8px;
}
.form-card > p{ margin:0 0 28px; color:var(--ink-soft); font-size:16px; }
.field{ display:grid; gap:8px; margin-bottom:20px; }
.field label{
  font-size:13px; font-weight:600; letter-spacing:.04em;
  color:var(--ink);
}
.field .hint{ font-size:13px; color:var(--ink-fade); }
.field input,
.field textarea,
.field select{
  font:inherit; font-size:16px;
  padding:14px 16px;
  border:1px solid var(--rule);
  border-radius:var(--r-sm);
  background:var(--cream);
  color:var(--ink);
  width:100%;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field textarea{ min-height:140px; resize:vertical; }
.field input:focus,
.field textarea:focus,
.field select:focus{
  outline:none;
  border-color:var(--coral);
  box-shadow:inset 0 0 0 1px var(--coral);
}
.field .err{
  font-size:13px; color:var(--coral-deep); font-weight:600;
  display:none;
}
.field.invalid input,
.field.invalid textarea{ border-color:var(--coral-deep); }
.field.invalid .err{ display:block; }
.form-foot{
  display:flex; gap:16px; align-items:center; flex-wrap:wrap;
  margin-top:8px;
}
.form-status{
  font-size:14px; font-weight:600; color:var(--ink-soft);
}
.form-status.ok{ color:#1f6b3c; }
.form-status.ko{ color:var(--coral-deep); }
.privacy-line{ font-size:13px; color:var(--ink-fade); margin:18px 0 0; }
.privacy-line a{ text-decoration:underline; }

.map-card{
  border-radius:24px; overflow:hidden;
  border:1px solid var(--rule-soft);
  background:var(--cream-2);
  display:grid; grid-template-columns:1fr auto;
  gap:20px; align-items:center;
  padding:24px clamp(24px,3vw,36px);
  margin-top:32px;
}
.map-card .where{ display:grid; gap:4px; }
.map-card .where .k{
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-fade);
}
.map-card .where p{ margin:0; font-size:17px; }
@media (max-width:1000px){
  .contact-grid{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .map-card{ grid-template-columns:1fr; }
}

/* ─── Partners ─── */
.partners{
  padding-block:clamp(48px, 7vh, 80px);
  border-top:1px solid var(--rule-soft);
}
.partners h2, .partners h3{
  font-family:var(--body); font-weight:600;
  font-size:13px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-fade);
  margin:0 0 28px;
  text-align:center;
}
.partners-row{
  display:grid; grid-template-columns:repeat(5, 1fr);
  gap:24px;
  align-items:center;
}
@media (max-width:1100px){ .partners-row{ grid-template-columns:repeat(3,1fr) !important; } }
.partner{
  text-align:center;
  padding:24px 16px;
  border-left:1px solid var(--rule-soft);
}
.partner:first-child{ border-left:0; }
.partner .name{
  font-family:var(--display); font-weight:600;
  font-size:clamp(22px,2.2vw,30px); line-height:1.05;
  letter-spacing:-.01em; margin:0 0 4px;
}
.partner .role{
  font-size:12px; letter-spacing:.06em;
  color:var(--ink-fade);
}
@media (max-width:700px){
  .partners-row{ grid-template-columns:1fr; }
  .partner{ border-left:0; border-top:1px solid var(--rule-soft); padding:16px; }
  .partner:first-child{ border-top:0; }
}

/* ─── CTA di chiusura pagina ─── */
.end-cta{
  background:var(--ink); color:var(--cream);
  padding-block:clamp(56px,8vh,96px);
}
.end-cta .row{
  display:grid; grid-template-columns:1.4fr auto;
  gap:32px; align-items:center;
}
.end-cta h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(34px,4.2vw,62px);
  line-height:1; letter-spacing:-.025em; margin:0;
}
.end-cta h2 em{ font-style:italic; font-weight:500; color:var(--sun); }
.end-cta .actions{ display:flex; gap:12px; flex-wrap:wrap; }
.end-cta .btn-ghost{ color:var(--cream); border-color:rgba(255,255,255,.4); }
.end-cta .btn-ghost:hover{ background:var(--cream); color:var(--ink); }
.end-cta .btn-ghost .arr svg path{ stroke:var(--ink); }
@media (max-width:900px){ .end-cta .row{ grid-template-columns:1fr; } }

/* ─── Footer ─── */
footer{
  background:var(--ink); color:var(--cream);
  padding-top:clamp(72px, 10vh, 128px);
  padding-bottom:32px;
}
.foot-top{
  display:grid; grid-template-columns:1.4fr 1fr;
  gap:48px; align-items:end;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.foot-mark{
  font-family:var(--display); font-weight:700;
  font-size:clamp(48px, 7vw, 112px);
  line-height:.92;
  letter-spacing:-.03em;
  margin:0;
}
.foot-mark em{ font-style:italic; font-weight:500; color:var(--sun); }
.foot-social{ display:flex; align-items:center; gap:12px; margin-top:28px; }
.foot-social .lbl{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--sun); font-weight:600; }
.foot-social a{
  width:42px; height:42px; border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  display:grid; place-items:center; color:var(--cream);
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}
.foot-social a:hover{ background:var(--coral); border-color:var(--coral); transform:translateY(-2px); }
.foot-social svg{ width:20px; height:20px; }
.foot-news{
  background:rgba(255,255,255,.06);
  border-radius:var(--r);
  padding:24px; max-width:420px;
  justify-self:end;
}
.foot-news h2{
  font-family:var(--display); font-weight:600;
  font-size:20px; margin:0 0 8px;
}
.foot-news p{ font-size:14px; color:#cfd9c4; margin:0 0 14px; }
.foot-news form{
  display:grid; grid-template-columns:1fr auto; gap:8px;
  background:var(--cream); border-radius:999px; padding:4px;
}
.foot-news input{
  border:0; background:transparent; padding:10px 16px;
  font:inherit; color:var(--ink); outline:none;
}
.foot-news button{
  background:var(--coral); color:var(--cream);
  border:0; border-radius:999px; padding:10px 18px;
  font-weight:600; font-size:13px; cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.foot-news button:hover{ background:var(--coral-deep); }
.foot-news button:active{ transform:scale(.96); }

.foot-grid{
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:32px;
  padding:48px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.foot-tag{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--sun); margin:0 0 14px;
  font-weight:600;
}
.foot-list{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:6px;
  font-size:14px; color:#cfd9c4;
}
.foot-list a:hover{ color:var(--sun); }
.foot-list .strong{ color:var(--cream); font-weight:600; }
.foot-bottom{
  display:flex; justify-content:space-between; align-items:baseline;
  padding-top:24px; flex-wrap:wrap; gap:12px;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:#7a8c97;
}
@media (max-width:1100px){
  .foot-top{ grid-template-columns:1fr; }
  .foot-news{ justify-self:stretch; max-width:none; }
  .foot-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){ .foot-grid{ grid-template-columns:1fr; } }

/* ─── Reveal ─── */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
  .mobile-nav a{ opacity:1; transform:none; }
}

/* skip link */
.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:1rem; top:1rem; background:var(--ink); color:var(--cream); padding:8px 12px; z-index:100; border-radius:8px; }

/* badge anteprima — da rimuovere al lancio */
.preview-badge{
  position:fixed; right:16px; bottom:16px; z-index:80;
  background:var(--ink); color:var(--cream);
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:9px 14px; border-radius:999px;
  box-shadow:0 12px 30px rgba(15,46,61,.28);
  pointer-events:none;
}


/* ══════════════════════════════════════════════════════════
   Integrazione WordPress
   ══════════════════════════════════════════════════════════ */

/* voce di menu attiva generata da wp_nav_menu */
nav.primary .current-menu-item > a,
nav.primary .current_page_item > a,
nav.primary .current-menu-ancestor > a{ font-weight:600; }
nav.primary .current-menu-item > a::after,
nav.primary .current_page_item > a::after,
nav.primary .current-menu-ancestor > a::after{ right:0; }
.mobile-nav .current-menu-item > a,
.mobile-nav .current_page_item > a{ color:var(--coral); }

/* accessibilità WP */
.screen-reader-text{
  border:0; clip-path:inset(50%); height:1px; width:1px;
  margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal;
}
.screen-reader-text:focus{
  clip-path:none; height:auto; width:auto; padding:12px 18px;
  background:var(--ink); color:var(--cream); border-radius:8px;
  left:1rem; top:1rem; z-index:100;
}

/* contenuto editoriale (single progetto / single storia / pagine generiche) */
.entry{ padding-block:clamp(48px,7vh,88px); }
.entry-body{
  max-width:70ch;
  font-size:18px; line-height:1.65; color:var(--ink-soft);
}
.entry-body > * + *{ margin-top:1.1em; }
.entry-body h2{
  font-family:var(--display); font-weight:700; color:var(--ink);
  font-size:clamp(28px,3vw,40px); line-height:1.05; letter-spacing:-.02em;
  margin-top:1.6em;
}
.entry-body h3{
  font-family:var(--display); font-weight:600; color:var(--ink);
  font-size:24px; letter-spacing:-.015em; margin-top:1.5em;
}
.entry-body a{ color:var(--coral); text-decoration:underline; text-underline-offset:3px; }
.entry-body ul, .entry-body ol{ padding-left:1.3em; }
.entry-body li + li{ margin-top:.4em; }
.entry-body blockquote{
  margin:1.6em 0; padding-left:24px; border-left:3px solid var(--coral);
  font-family:var(--display); font-weight:500; font-size:24px;
  line-height:1.25; color:var(--ink); letter-spacing:-.015em;
}
.entry-body img,
.entry-body .wp-block-image img{ border-radius:var(--r); }
.entry-body figcaption{ font-size:13px; color:var(--ink-fade); margin-top:8px; }
.entry-media{
  border-radius:24px; overflow:hidden; aspect-ratio:16/9;
  background:var(--sage); margin-bottom:clamp(32px,5vh,56px);
  position:relative;
}
.entry-meta{
  display:flex; gap:14px; align-items:center; flex-wrap:wrap;
  font-size:12px; letter-spacing:.06em; color:var(--ink-fade);
  margin-bottom:18px;
}
.entry-meta .tag{
  background:var(--ink); color:var(--cream);
  padding:4px 11px; border-radius:999px;
  font-weight:600; letter-spacing:.08em; text-transform:uppercase; font-size:11px;
}

/* navigazione fra articoli */
.post-nav{
  display:grid; grid-template-columns:1fr 1fr; gap:20px;
  border-top:1px solid var(--rule); padding-top:32px; margin-top:clamp(48px,7vh,72px);
}
.post-nav a{ display:grid; gap:6px; }
.post-nav .k{
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-fade);
}
.post-nav .t{
  font-family:var(--display); font-weight:600; font-size:20px;
  letter-spacing:-.015em; line-height:1.15;
}
.post-nav a:hover .t{ color:var(--coral); }
.post-nav .next{ text-align:right; }
@media (max-width:700px){ .post-nav{ grid-template-columns:1fr; } .post-nav .next{ text-align:left; } }

/* paginazione archivi */
.pagination{
  display:flex; gap:8px; flex-wrap:wrap; justify-content:center;
  margin-top:clamp(40px,6vh,64px);
}
.pagination .page-numbers{
  min-width:44px; height:44px; padding:0 14px;
  display:grid; place-items:center;
  border:1px solid var(--rule); border-radius:999px;
  font-weight:600; font-size:15px;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.pagination .page-numbers:hover{ border-color:var(--ink); }
.pagination .page-numbers.current{ background:var(--ink); color:var(--cream); border-color:var(--ink); }

/* pagina 404 */
.err-404{
  min-height:60vh; display:grid; place-items:center; text-align:center;
  padding-block:clamp(64px,10vh,120px);
}
.err-404 .code{
  font-family:var(--display); font-weight:700;
  font-size:clamp(80px,16vw,200px); line-height:.85;
  letter-spacing:-.04em; color:var(--coral); margin:0;
}
.err-404 h1{
  font-family:var(--display); font-weight:700;
  font-size:clamp(30px,4vw,52px); line-height:1.02;
  letter-spacing:-.025em; margin:20px 0 14px;
}
.err-404 p{ color:var(--ink-soft); max-width:46ch; margin:0 auto 28px; }
.err-404 .actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* barra admin: non far coprire l'header sticky */
body.admin-bar .site-head{ top:32px; }
@media (max-width:782px){ body.admin-bar .site-head{ top:46px; } }

/* ritardo a cascata delle voci del menu mobile (i menu WP non passano --i) */
.mobile-nav li:nth-child(1) a{ animation-delay:0ms; }
.mobile-nav li:nth-child(2) a{ animation-delay:45ms; }
.mobile-nav li:nth-child(3) a{ animation-delay:90ms; }
.mobile-nav li:nth-child(4) a{ animation-delay:135ms; }
.mobile-nav li:nth-child(5) a{ animation-delay:180ms; }
.mobile-nav li:nth-child(6) a{ animation-delay:225ms; }
.mobile-nav li:nth-child(7) a{ animation-delay:270ms; }
.mobile-nav li:nth-child(8) a{ animation-delay:315ms; }
