/* =========================================================
   ASSOCIAZIONE EUROPEA AMICI DI SAN ROCCO — Design System
   Palette estratta dal logo (blu araldico + oro), campionata
   via analisi pixel: dominante blu #024D91, dominante oro #E8A020.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500;1,600&family=Libre+Franklin:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap');

:root{
  /* --- colore: dal logo --- */
  --blue-900:#04294d;
  --blue-800:#023d74;
  --blue-700:#024d91;   /* blu dominante del logo */
  --blue-600:#0e63ad;
  --gold-300:#f2c869;
  --gold-500:#e8a020;   /* oro dominante del logo */
  --gold-600:#c9861a;
  --gold-700:#93650f;   /* oro scuro, testo AA su chiaro */
  --parchment:#fbf3e4;
  --parchment-600:#f1e2c4;
  --ink:#14202e;
  --white:#ffffff;

  /* --- tipografia --- */
  --font-display:'Cormorant Garamond', Georgia, serif;
  --font-body:'Libre Franklin', -apple-system, Segoe UI, sans-serif;
  --font-mono:'Space Mono', 'Courier New', monospace;

  /* --- scala fluida --- */
  --step-1: clamp(0.85rem, 0.8rem + 0.2vw, 0.95rem);
  --step0:  clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --step1:  clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
  --step2:  clamp(1.6rem, 1.4rem + 0.8vw, 2.1rem);
  --step3:  clamp(2.1rem, 1.7rem + 1.6vw, 3rem);
  --step4:  clamp(2.8rem, 2.1rem + 3vw, 4.6rem);

  --space-xs: clamp(0.5rem, 0.4rem + 0.4vw, 0.75rem);
  --space-s:  clamp(1rem, 0.85rem + 0.6vw, 1.5rem);
  --space-m:  clamp(1.75rem, 1.4rem + 1.4vw, 2.75rem);
  --space-l:  clamp(2.75rem, 2.1rem + 2.6vw, 4.5rem);
  --space-xl: clamp(4rem, 3rem + 4vw, 7rem);

  --radius: 4px;
  --content-w: 1240px;
  --border-thin: 1px solid rgba(232,160,32,0.35);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}
body{ margin:0; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,p,figure{ margin:0; }
button{ font:inherit; background:none; border:none; cursor:pointer; color:inherit; }
svg{ display:block; }

body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  font-size:var(--step0);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

:focus-visible{
  outline:2.5px solid var(--gold-600);
  outline-offset:3px;
}

.container{
  width:100%;
  max-width:var(--content-w);
  margin-inline:auto;
  padding-inline:var(--space-s);
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:0.6em;
  font-family:var(--font-mono);
  font-size:var(--step-1);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold-700);
}
.eyebrow--on-dark{ color:var(--gold-300); }

.section-title{
  font-family:var(--font-display);
  font-weight:600;
  font-size:var(--step3);
  line-height:1.05;
  margin-top:0.4em;
  color:var(--blue-900);
}
.section-title--on-dark{ color:var(--white); }

.lede{
  font-size:var(--step1);
  max-width:52ch;
  color:#3a4658;
}
.lede--on-dark{ color:rgba(255,255,255,0.82); }

/* ---------- bottoni ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.6em;
  padding:0.85em 1.6em;
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-weight:600;
  font-size:var(--step-1);
  letter-spacing:0.03em;
  text-transform:uppercase;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
  border:1.5px solid transparent;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }

.btn--gold{ background:var(--gold-500); color:var(--blue-900); }
.btn--gold:hover{ background:var(--gold-300); box-shadow:0 10px 24px -8px rgba(232,160,32,0.55); }

.btn--outline{ border-color:rgba(255,255,255,0.55); color:var(--white); }
.btn--outline:hover{ border-color:var(--gold-500); color:var(--gold-300); }

.btn--ink{ border-color:var(--blue-800); color:var(--blue-800); }
.btn--ink:hover{ background:var(--blue-800); color:var(--white); }

.btn--sm{ padding:0.6em 1.1em; font-size:0.78rem; }

/* ---------- sigillo (elemento distintivo) ---------- */
.seal{ width:100%; height:100%; }
.seal-ring{ fill:none; stroke:currentColor; }
.seal-glyph{ fill:currentColor; }
.seal-text{ font-family:var(--font-mono); fill:currentColor; letter-spacing:2.6px; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:linear-gradient(170deg, var(--blue-700) 0%, var(--blue-900) 65%);
  border-bottom:2px solid var(--gold-500);
  box-shadow:0 4px 18px -6px rgba(2,10,20,0.45);
  transition:box-shadow .3s ease;
}
.site-header.is-scrolled{ box-shadow:0 16px 34px -14px rgba(2,20,40,0.65); }

.site-header__bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--space-m);
  padding-block:1.15rem;
}

.brand{ display:flex; align-items:center; color:var(--white); }
.brand__logo{ height:96px; width:auto; border-radius:10px; box-shadow:0 8px 28px -6px rgba(0,0,0,0.6), 0 0 0 2px rgba(232,160,32,0.45); transition:transform .25s ease; }
.brand:hover .brand__logo{ transform:scale(1.05); }

@media (min-width:1220px){
  .brand__logo{ height:112px; }
}

.primary-nav{ display:none; }
.primary-nav__list{ display:flex; flex-wrap:wrap; align-items:center; gap:0.15rem; }
.primary-nav__list > li{ position:relative; }
.primary-nav__list a,
.primary-nav .dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap:0.4em;
  padding:0.6em 0.85em;
  font-size:0.83rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.85);
  border-radius:var(--radius);
  transition:color .2s ease, background-color .2s ease;
  font-family:var(--font-body);
  font-weight:600;
}
.primary-nav__list a:hover,
.primary-nav .dropdown-toggle:hover{ color:var(--gold-300); background:rgba(255,255,255,0.06); }
.primary-nav__list a.is-active,
.primary-nav .dropdown-toggle.is-active{ color:var(--gold-500); }

/* ---- dropdown (desktop) ---- */
.dropdown-toggle svg{ width:9px; height:9px; transition:transform .2s ease; flex-shrink:0; }
.dropdown-toggle[aria-expanded="true"]{ color:var(--gold-300); background:rgba(255,255,255,0.06); }
.dropdown-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }

.primary-nav .dropdown-menu{
  position:absolute; top:100%; left:0; min-width:230px;
  background:var(--blue-800);
  border:1px solid rgba(232,160,32,0.3);
  border-radius:var(--radius);
  padding:0.4rem;
  margin-top:0.5rem;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
  box-shadow:0 20px 40px -18px rgba(2,10,20,0.65);
  z-index:20;
}
.primary-nav .has-dropdown.is-open .dropdown-menu{
  opacity:1; visibility:visible; transform:translateY(0);
}
@media (hover:hover){
  .primary-nav .has-dropdown:hover .dropdown-menu{ opacity:1; visibility:visible; transform:translateY(0); }
}
.primary-nav .dropdown-menu a{
  display:block; padding:0.65em 0.8em; font-size:0.85rem;
  text-transform:none; letter-spacing:0; font-weight:500;
  font-family:var(--font-body); color:rgba(255,255,255,0.85);
  border-radius:calc(var(--radius) - 1px);
}
.primary-nav .dropdown-menu a:hover{ background:rgba(232,160,32,0.14); color:var(--gold-300); }

.header-cta{ display:none; }

.nav-toggle{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; color:var(--white);
}
.nav-toggle__box{ width:22px; height:16px; position:relative; }
.nav-toggle__box span{ position:absolute; left:0; right:0; height:2px; background:currentColor; transition:transform .25s ease, opacity .25s ease; }
.nav-toggle__box span:nth-child(1){ top:0; }
.nav-toggle__box span:nth-child(2){ top:7px; }
.nav-toggle__box span:nth-child(3){ top:14px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__box span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__box span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__box span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* drawer mobile */
.nav-drawer{
  position:fixed; inset:0 0 0 auto; width:min(360px,86vw); height:100vh;
  background:var(--blue-900);
  transform:translateX(100%);
  transition:transform .35s ease;
  z-index:110;
  overflow-y:auto;
  padding:1.5rem;
  border-left:1px solid rgba(232,160,32,0.3);
}
.nav-drawer.is-open{ transform:translateX(0); }
.nav-drawer__close{ color:var(--white); margin-left:auto; display:flex; width:40px; height:40px; align-items:center; justify-content:center; }
.nav-drawer__list{ margin-top:1.5rem; display:flex; flex-direction:column; }
.nav-drawer__list > li{ border-bottom:1px solid rgba(255,255,255,0.08); }
.nav-drawer__list > li > a{
  display:block; padding:0.85em 0.2em; font-family:var(--font-display); font-size:1.3rem;
  color:var(--white);
}
.nav-drawer__list a:hover{ color:var(--gold-500); }
.nav-drawer__list > li > a.is-active,
.nav-drawer .dropdown-toggle.is-active{ color:var(--gold-500); }
.nav-drawer .btn{ margin-top:1.5rem; width:100%; justify-content:center; }

/* ---- dropdown (accordion mobile) ---- */
.nav-drawer .dropdown-toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:0.85em 0.2em; font-family:var(--font-display); font-size:1.3rem; color:var(--white);
}
.nav-drawer .dropdown-toggle svg{ width:12px; height:12px; color:var(--gold-500); transition:transform .2s ease; flex-shrink:0; }
.nav-drawer .dropdown-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }
.nav-drawer .dropdown-menu{
  max-height:0; overflow:hidden;
  transition:max-height .3s ease;
}
.nav-drawer .has-dropdown.is-open .dropdown-menu{ max-height:260px; }
.nav-drawer .dropdown-menu a{
  display:block; padding:0.65em 0.2em 0.65em 1rem; font-family:var(--font-body); font-size:1rem;
  color:rgba(255,255,255,0.75);
}

.scrim{
  position:fixed; inset:0; background:rgba(4,10,20,0.55); opacity:0; pointer-events:none;
  transition:opacity .3s ease; z-index:105;
}
.scrim.is-open{ opacity:1; pointer-events:auto; }

@media (min-width:1220px){
  .primary-nav{ display:block; }
  .header-cta{ display:inline-flex; }
  .nav-toggle{ display:none; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  background:radial-gradient(120% 140% at 15% 0%, var(--blue-700) 0%, var(--blue-900) 60%);
  color:var(--white);
  overflow:hidden;
  padding-block: var(--space-xl) calc(var(--space-xl) + 1rem);
}
.hero__halo{
  position:absolute; top:-10%; right:-8%; width:min(680px,70vw); aspect-ratio:1;
  color:var(--gold-500); opacity:0.16; pointer-events:none;
}
.hero__stars{ position:absolute; inset:0; pointer-events:none; }
.hero__stars span{
  position:absolute; width:6px; height:6px; background:var(--gold-500);
  clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
  opacity:0.55;
}
.hero__inner{ position:relative; display:grid; gap:var(--space-m); }
.hero__seal-corner{ position:absolute; top:0; right:var(--space-s); width:96px; height:96px; color:var(--gold-500); opacity:0.9; }
.hero__title{
  font-family:var(--font-display); font-weight:700; font-style:italic;
  font-size:var(--step4); line-height:0.98; margin-top:0.3em; max-width:14ch;
}
.hero__title em{ display:block; font-style:normal; font-weight:500; font-size:0.42em; letter-spacing:0.02em; color:var(--gold-300); margin-top:0.5em; }
.hero__lede{ margin-top:var(--space-s); font-size:var(--step1); max-width:46ch; color:rgba(255,255,255,0.85); }
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:var(--space-m); }

/* value strip */
.value-strip{ background:var(--blue-800); border-top:1px solid rgba(232,160,32,0.25); }
.value-strip__list{
  display:grid; gap:var(--space-s);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  padding-block:var(--space-m);
}
.value-strip__item{ display:flex; gap:0.9rem; color:var(--white); }
.value-strip__icon{ width:34px; height:34px; color:var(--gold-500); flex-shrink:0; }
.value-strip__item h3{ font-family:var(--font-display); font-size:1.15rem; font-weight:600; }
.value-strip__item p{ margin-top:0.2rem; font-size:0.9rem; color:rgba(255,255,255,0.72); }

/* =========================================================
   SEZIONI GENERICHE
   ========================================================= */
.section{ padding-block:var(--space-xl); }
.section--parchment{ background:var(--parchment); }
.section--blue{ background:var(--blue-900); color:var(--white); }
.section--white{ background:var(--white); }

.section__head{ max-width:60ch; }
.section__head-row{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:var(--space-s); }

/* --- chi siamo --- */
.about{ display:grid; gap:var(--space-l); align-items:center; }
.about__figure{
  position:relative; aspect-ratio:4/5; border-radius:var(--radius);
  background:linear-gradient(155deg,var(--blue-700),var(--blue-900));
  display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.4);
  border:1px solid rgba(232,160,32,0.3);
}
.placeholder-frame{ text-align:center; padding:2rem; font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; }
.placeholder-frame svg{ width:44px; height:44px; margin:0 auto 0.8rem; color:var(--gold-500); }
.about__body p{ margin-top:1.1rem; color:#3a4658; }
.about__body .btn{ margin-top:var(--space-s); }

@media (min-width:900px){
  .about{ grid-template-columns:0.85fr 1.15fr; }
}

/* --- fondatore --- */
.founder{ display:grid; gap:var(--space-l); align-items:center; }
.founder__figure{
  aspect-ratio:3/4; border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(155deg,var(--gold-500),var(--gold-700));
  display:flex; align-items:center; justify-content:center; color:rgba(4,41,77,0.55);
}
.founder blockquote{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:var(--step2); line-height:1.35; color:var(--white); margin-top:0.6em;
}
.founder__cite{ margin-top:1.3rem; display:flex; align-items:center; gap:0.8rem; }
.founder__cite-line{ width:34px; height:1px; background:var(--gold-500); }
.founder__cite strong{ display:block; font-family:var(--font-body); font-weight:700; }
.founder__cite span{ font-family:var(--font-mono); font-size:0.75rem; color:var(--gold-300); letter-spacing:0.05em; }

@media (min-width:900px){
  .founder{ grid-template-columns:0.8fr 1.2fr; }
}

/* --- comunicati / news --- */
.news-grid{ display:grid; gap:var(--space-m); margin-top:var(--space-l); grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.news-card{ background:var(--white); border:1px solid var(--parchment-600); border-radius:var(--radius); padding:var(--space-s); display:flex; flex-direction:column; gap:0.9rem; transition:box-shadow .25s ease, transform .25s ease; }
.news-card:hover{ box-shadow:0 22px 40px -22px rgba(4,41,77,0.35); transform:translateY(-3px); }
.news-card__stamp{ display:inline-flex; align-items:center; gap:0.5rem; align-self:flex-start; font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.08em; color:var(--gold-700); border:1px solid var(--gold-500); border-radius:100px; padding:0.3em 0.8em; text-transform:uppercase; }
.news-card h3{ font-family:var(--font-display); font-size:1.4rem; font-weight:600; color:var(--blue-900); }
.news-card p{ color:#4a5768; font-size:0.95rem; }
.news-card a{ margin-top:auto; font-family:var(--font-mono); font-size:0.78rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--blue-700); }
.news-card a:hover{ color:var(--gold-700); }

/* --- vita spirituale (feature grid a 3) --- */
.feature-grid{ display:grid; gap:1px; margin-top:var(--space-l); background:rgba(255,255,255,0.12); grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); border:1px solid rgba(255,255,255,0.12); }
.feature{ background:var(--blue-900); padding:var(--space-m); }
.feature__icon{ width:38px; height:38px; color:var(--gold-500); }
.feature h3{ font-family:var(--font-display); font-size:1.5rem; font-weight:600; margin-top:1rem; color:var(--white); }
.feature p{ margin-top:0.6rem; color:rgba(255,255,255,0.72); font-size:0.94rem; }
.feature a{ display:inline-block; margin-top:1.2rem; font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-500); }
.feature a:hover{ color:var(--gold-300); }

/* --- locandine: carosello devozionale --- */
.poster-carousel{ margin-top:var(--space-l); display:flex; flex-direction:column; align-items:center; }
.poster-carousel__viewport{
  position:relative; width:100%; max-width:400px; aspect-ratio:3/4;
  border-radius:var(--radius); overflow:hidden; background:var(--blue-900);
  box-shadow:0 24px 48px -20px rgba(4,41,77,0.35); border:1px solid rgba(232,160,32,0.35);
}
.poster-carousel__slide{
  position:absolute; inset:0; margin:0; display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .7s ease;
}
.poster-carousel__slide.is-active{ opacity:1; visibility:visible; }
.poster-carousel__slide img{ width:100%; height:100%; object-fit:contain; }
.poster-carousel__dots{ display:flex; justify-content:center; gap:0.55rem; margin-top:var(--space-s); }
.poster-carousel__dot{
  width:9px; height:9px; padding:0; border-radius:50%; border:1px solid var(--gold-600);
  background:transparent; cursor:pointer; transition:background .2s ease, transform .2s ease;
}
.poster-carousel__dot.is-active{ background:var(--gold-500); transform:scale(1.15); }
.poster-carousel__dot:hover{ background:var(--gold-300); }
@media (prefers-reduced-motion:reduce){
  .poster-carousel__slide{ transition:none; }
}

/* --- museo & progetti banners --- */
.banner-pair{ display:grid; gap:var(--space-s); margin-top:var(--space-l); grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
.banner{ position:relative; border-radius:var(--radius); padding:var(--space-m); min-height:280px; display:flex; flex-direction:column; justify-content:flex-end; color:var(--white); overflow:hidden; }
.banner--museo{ background:linear-gradient(160deg,var(--blue-700),var(--blue-900)); }
.banner--progetti{ background:linear-gradient(160deg,var(--gold-600),#8a5c10); }
.banner__icon{ position:absolute; top:var(--space-m); right:var(--space-m); width:40px; height:40px; opacity:0.6; }
.banner h3{ font-family:var(--font-display); font-size:1.8rem; font-weight:600; }
.banner p{ margin-top:0.5rem; max-width:38ch; color:rgba(255,255,255,0.85); font-size:0.95rem; }
.banner .btn{ margin-top:1.2rem; align-self:flex-start; }

/* --- sostienici cta --- */
.cta-band{ background:linear-gradient(115deg,var(--gold-500),var(--gold-600)); color:var(--blue-900); text-align:center; padding-block:var(--space-l); }
.cta-band__inner{ max-width:56ch; margin-inline:auto; }
.cta-band h2{ font-family:var(--font-display); font-size:var(--step3); font-weight:700; }
.cta-band p{ margin-top:1rem; font-size:var(--step1); }
.cta-band__actions{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; margin-top:var(--space-m); }
.cta-band .btn--outline{ border-color:rgba(4,41,77,0.4); color:var(--blue-900); }
.cta-band .btn--outline:hover{ background:var(--blue-900); color:var(--gold-500); border-color:var(--blue-900); }

.cta-band__grid{ display:grid; gap:var(--space-l); align-items:center; text-align:left; }
.cta-band__figure img{ width:100%; border-radius:var(--radius); border:3px solid var(--blue-900); box-shadow:0 20px 40px -16px rgba(4,41,77,0.4); }
.cta-band__grid .cta-band__actions{ justify-content:flex-start; }
@media (min-width:760px){
  .cta-band__grid{ grid-template-columns:0.85fr 1.15fr; }
}

/* =========================================================
   PAGINE INTERNE (page-hero + prose)
   ========================================================= */
.page-hero{
  position:relative;
  overflow:hidden;
  background:radial-gradient(120% 160% at 15% 0%, var(--blue-700) 0%, var(--blue-900) 65%);
  color:var(--white);
  padding-block:var(--space-l) calc(var(--space-l) - 0.5rem);
}
.page-hero__seal{ position:absolute; top:-18px; right:var(--space-s); width:78px; height:78px; color:var(--gold-500); opacity:0.85; }
.page-hero h1{
  font-family:var(--font-display); font-style:italic; font-weight:700;
  font-size:var(--step3); line-height:1.05; margin-top:0.3em; max-width:20ch;
}
.page-hero .lede{ margin-top:0.9rem; }

.prose{ max-width:1024px; }
.prose p{ margin-top:1.3em; color:#3a4658; }
.prose h2{ font-family:var(--font-display); font-size:var(--step2); font-weight:600; color:var(--blue-900); margin-top:2em; }
.prose h2:first-child{ margin-top:0; }
.prose strong{ color:var(--blue-900); }
.prose .lead{ font-family:var(--font-display); font-size:var(--step1); font-style:italic; color:var(--blue-900); margin-top:0; }
.prose blockquote{
  font-family:var(--font-display); font-style:italic; font-size:var(--step1);
  color:var(--blue-900); border-left:3px solid var(--gold-500); padding-left:1.2em; margin:1.6em 0;
}
.prose ul{ margin-top:1.2em; padding-left:1.3em; list-style:disc; color:#3a4658; }
.prose li{ margin-top:0.4em; }
.prose .signature{ margin-top:2em; font-family:var(--font-display); font-style:italic; font-size:var(--step1); color:var(--blue-900); }

.prose-figure{ margin:2em 0; }
.prose-figure img{ width:100%; border-radius:var(--radius); border:1px solid var(--parchment-600); display:block; }
.prose-figure figcaption{ margin-top:0.7rem; font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.05em; color:var(--gold-700); }
.prose-figure img.zoomable, .banner-pair img.zoomable{ cursor:zoom-in; transition:opacity .2s ease; }
.prose-figure img.zoomable:hover, .banner-pair img.zoomable:hover{ opacity:0.92; }

.prose-figure--sm{ max-width:480px; margin-inline:auto; }

/* --- museo: contenitore largo quanto le altre pagine, testo riportato a misura leggibile --- */
.prose--wide{ max-width:var(--content-w); }
.prose-col{ max-width:68ch; margin-inline:auto; }

.museo-row{ display:grid; gap:var(--space-l); align-items:center; margin:2.5em 0; }
.museo-row .prose-figure{ margin:0; }
.museo-row .lead{ margin-top:0; }
@media (min-width:860px){
  .museo-row{ grid-template-columns:0.9fr 1.1fr; }
  .museo-row--reverse .prose-figure{ order:2; }
}

.figure-trio{ display:grid; gap:var(--space-s); grid-template-columns:repeat(3,1fr); margin:2.5em auto; max-width:1100px; }
.figure-trio figure{ margin:0; }
.figure-trio img{ aspect-ratio:738/1600; object-fit:cover; }
.figure-trio--3-4 img{ aspect-ratio:3/4; }

.video-embed{ position:relative; aspect-ratio:16/9; border-radius:var(--radius); overflow:hidden; margin:2em 0; background:var(--blue-900); border:1px solid var(--parchment-600); }
.video-embed iframe, .video-embed video{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.contact-grid{ display:grid; gap:var(--space-s); margin-top:var(--space-m); grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.contact-grid .info-card{ margin-top:0; }

.clergy-grid{ display:grid; gap:1px; margin-top:var(--space-m); background:var(--parchment-600); border:1px solid var(--parchment-600); grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.clergy-card{ background:var(--white); padding:var(--space-s); }
.clergy-card__icon{ width:30px; height:30px; color:var(--gold-600); }
.clergy-card h3{ font-family:var(--font-display); font-size:1.25rem; font-weight:600; color:var(--blue-900); margin-top:0.8rem; }
.clergy-card span{ display:block; margin-top:0.3rem; font-family:var(--font-mono); font-size:0.75rem; color:var(--gold-700); letter-spacing:0.03em; }

.form-alert{
  margin-top:var(--space-s); padding:0.9em 1.2em; max-width:60ch;
  background:#fbeaea; border:1px solid #e3a3a3; border-radius:var(--radius);
  color:#8a2c2c; font-size:0.9rem;
}
.contact-form{ margin-top:var(--space-m); max-width:60ch; }
.form-hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.form-row{ display:grid; gap:1.2rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.form-field{ display:flex; flex-direction:column; gap:0.4rem; margin-top:1.2rem; }
.form-row .form-field{ margin-top:0; }
.form-field label{ font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-700); }
.form-field input, .form-field textarea{
  padding:0.75em 1em; border:1px solid var(--parchment-600); border-radius:var(--radius);
  font-family:var(--font-body); font-size:0.95rem; background:var(--white); color:var(--ink);
  transition:border-color .2s ease;
}
.form-field input:focus, .form-field textarea:focus{ outline:2.5px solid var(--gold-600); outline-offset:1px; border-color:var(--gold-500); }
.form-field textarea{ resize:vertical; min-height:140px; font-family:inherit; }
.form-checkbox{
  display:flex; align-items:flex-start; gap:0.65rem; margin-top:1.4rem;
  font-size:0.86rem; color:#3a4658; cursor:pointer;
}
.form-checkbox input{ margin-top:0.2rem; width:16px; height:16px; accent-color:var(--gold-600); flex-shrink:0; }
.form-checkbox a{ color:var(--blue-700); text-decoration:underline; }
.contact-form .btn{ margin-top:1.4rem; }

.info-card{
  background:var(--parchment); border:1px solid var(--parchment-600); border-radius:var(--radius);
  padding:var(--space-s); margin-top:var(--space-m);
}
.info-card h3{ font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-700); }
.info-card p{ margin-top:0.6rem; color:#3a4658; }

/* =========================================================
   MINI-GALLERIA + LIGHTBOX
   ========================================================= */
.mini-gallery{ margin:2em 0; }
.mini-gallery__grid{ display:grid; gap:var(--space-s); grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); max-width:900px; }
.mini-gallery__item{
  position:relative; display:block; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--parchment-600); cursor:zoom-in; background:var(--parchment);
}
.mini-gallery__item img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .35s ease; }
.mini-gallery__item:hover img, .mini-gallery__item:focus-visible img{ transform:scale(1.06); }
.mini-gallery__item__zoom{
  position:absolute; right:0.4rem; bottom:0.4rem; width:26px; height:26px; border-radius:50%;
  background:rgba(4,41,77,0.75); color:var(--white); display:flex; align-items:center; justify-content:center;
  pointer-events:none;
}
.mini-gallery__item__zoom svg{ width:14px; height:14px; }
.mini-gallery__hint{ margin-top:0.7rem; font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.05em; color:var(--gold-700); }
.mini-gallery__title{ font-family:var(--font-display); font-size:var(--step1); font-weight:600; color:var(--blue-900); margin-bottom:0.8rem; }

.lightbox{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:var(--space-m); background:rgba(4,10,20,0.92);
  opacity:0; visibility:hidden; transition:opacity .25s ease;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox__figure{ max-width:min(90vw,900px); max-height:90vh; text-align:center; }
.lightbox__figure img{ max-width:100%; max-height:80vh; width:auto; margin-inline:auto; border-radius:var(--radius); box-shadow:0 20px 60px rgba(0,0,0,0.5); }
.lightbox__caption{ margin-top:0.9rem; color:rgba(255,255,255,0.85); font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.05em; }
.lightbox__close{
  position:absolute; top:var(--space-s); right:var(--space-s); width:42px; height:42px; border-radius:50%;
  background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.3); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; line-height:1;
}
.lightbox__close:hover{ background:rgba(255,255,255,0.2); }

/* =========================================================
   BANNER COOKIE
   ========================================================= */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:250;
  background:var(--blue-900);
  border-top:2px solid var(--gold-500);
  box-shadow:0 -10px 30px -10px rgba(2,10,20,0.5);
  padding:1rem 1.25rem;
  transform:translateY(110%);
  transition:transform .4s ease;
}
.cookie-banner.is-visible{ transform:translateY(0); }
.cookie-banner__inner{
  max-width:1240px; margin:0 auto;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem 2rem;
}
.cookie-banner p{ margin:0; color:rgba(255,255,255,0.85); font-size:0.92rem; max-width:64ch; }
.cookie-banner a{ color:var(--gold-300); }
.cookie-banner .btn{ flex-shrink:0; }
@media (prefers-reduced-motion:reduce){
  .cookie-banner{ transition:none; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--blue-900); color:rgba(255,255,255,0.75); padding-block:var(--space-l) var(--space-m); }
.footer-grid{ display:grid; gap:var(--space-l); grid-template-columns:1.2fr repeat(4,1fr); }
.footer-brand__logo{ height:60px; width:auto; border-radius:6px; }
.footer-brand p{ margin-top:1rem; max-width:34ch; font-size:0.9rem; }
.footer-social{ display:flex; gap:0.7rem; margin-top:1.3rem; }
.footer-social a{ width:36px; height:36px; border:1px solid rgba(232,160,32,0.4); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-500); }
.footer-social a:hover{ background:var(--gold-500); color:var(--blue-900); }
.footer-col h4{ font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-300); margin-bottom:1rem; }
.footer-col ul{ display:flex; flex-direction:column; gap:0.6rem; }
.footer-col a:hover{ color:var(--gold-500); }
.footer-col address{ font-style:normal; font-size:0.9rem; line-height:1.7; }
.footer-bottom{ margin-top:var(--space-l); padding-top:var(--space-s); border-top:1px solid rgba(255,255,255,0.12); display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; font-size:0.8rem; }
.footer-bottom a:hover{ color:var(--gold-500); }

@media (min-width:1080px){
  .footer-grid{ grid-template-columns:1.3fr repeat(4,1fr); }
}
@media (min-width:640px) and (max-width:1079px){
  .footer-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-brand{ grid-column:1 / -1; }
}
@media (max-width:639px){
  .footer-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-brand{ grid-column:1 / -1; }
}

/* =========================================================
   REVEAL ON SCROLL
   ========================================================= */
[data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
[data-reveal].is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1; transform:none; }
}
