/* ==========================================================================
   Ayur Jivana Alaya — aya.vendiamotempo.com
   Sistema visivo derivato dal segno identitario del progetto:
   ottagono aperto · cerchio · quadrato · rombo · quattro spirali · centro vuoto.
   Palette: paesaggio verde della Valdera + le 7 qualità del mandala.
   ========================================================================== */

:root{
  /* carta e inchiostro */
  --paper:#f6f3ea;
  --paper-2:#efeadd;
  --panel:#fdfbf4;
  --ink:#1d2418;
  --muted:#5c6553;
  --line:#e2dcc9;

  /* i verdi del paesaggio */
  --forest:#28472c;
  --forest-deep:#1b3320;
  --moss:#3f6b3e;
  --sage:#7e9a6d;
  --olive:#a9b98a;

  /* accenti */
  --terra:#9c5223;
  --gold:#c2951f;

  /* le 7 qualità del mandala */
  --q-quiete:#3e6ca8;
  --q-vitalita:#ac3a28;
  --q-crescita:#27754a;
  --q-condivisione:#b05e15;
  --q-cooperazione:#3d4d9e;
  --q-lieto:#96731a;
  --q-fioritura:#7b5ea7;

  /* cielo dell'alba (hero) */
  --sky-1:#dcebd9;
  --sky-2:#f2ecd4;
  --sky-3:#f7e9c5;
  --sun:#c2951f;
  --hill-1:#8fae7c;
  --hill-2:#6b8f5d;
  --hill-3:#4a7245;
  --hill-4:#2f5433;
  --wood:#24462b;
  --field:#a9bd88;

  --radius:14px;
  --shadow:0 18px 50px -18px rgb(29 36 24 / .18);
  --wrap:1120px;
  --header-height:4rem;
  color-scheme:light dark;
}

@media (prefers-color-scheme:dark){
  :root{
    --paper:#11150e;
    --paper-2:#161b12;
    --panel:#1a2015;
    --ink:#eae5d4;
    --muted:#a4a892;
    --line:#2b3324;

    --forest:#9dc18f;
    --forest-deep:#c5d9b6;
    --moss:#8bb479;
    --sage:#75906a;
    --olive:#5e6f4a;

    --terra:#d08553;
    --gold:#d9b04a;

    --q-quiete:#7ea7dd;
    --q-vitalita:#d97b66;
    --q-crescita:#63b184;
    --q-condivisione:#e39a55;
    --q-cooperazione:#8a97d8;
    --q-lieto:#d9b04a;
    --q-fioritura:#a68cc9;

    /* crepuscolo */
    --sky-1:#1d2b33;
    --sky-2:#273330;
    --sky-3:#3a4234;
    --sun:#d9b04a;
    --hill-1:#3d5741;
    --hill-2:#31482f;
    --hill-3:#263a27;
    --hill-4:#1c2d1e;
    --wood:#182818;
    --field:#33452c;

    --shadow:0 18px 50px -18px rgb(0 0 0 / .5);
  }
}
:root[data-theme="light"]{
  --paper:#f6f3ea; --paper-2:#efeadd; --panel:#fdfbf4; --ink:#1d2418; --muted:#5c6553; --line:#e2dcc9;
  --forest:#28472c; --forest-deep:#1b3320; --moss:#3f6b3e; --sage:#7e9a6d; --olive:#a9b98a;
  --terra:#9c5223; --gold:#c2951f;
  --q-quiete:#3e6ca8; --q-vitalita:#ac3a28; --q-crescita:#27754a; --q-condivisione:#b05e15;
  --q-cooperazione:#3d4d9e; --q-lieto:#96731a; --q-fioritura:#7b5ea7;
  --sky-1:#dcebd9; --sky-2:#f2ecd4; --sky-3:#f7e9c5; --sun:#c2951f;
  --hill-1:#8fae7c; --hill-2:#6b8f5d; --hill-3:#4a7245; --hill-4:#2f5433; --wood:#24462b; --field:#a9bd88;
  --shadow:0 18px 50px -18px rgb(29 36 24 / .18);
}
:root[data-theme="dark"]{
  --paper:#11150e; --paper-2:#161b12; --panel:#1a2015; --ink:#eae5d4; --muted:#a4a892; --line:#2b3324;
  --forest:#9dc18f; --forest-deep:#c5d9b6; --moss:#8bb479; --sage:#75906a; --olive:#5e6f4a;
  --terra:#d08553; --gold:#d9b04a;
  --q-quiete:#7ea7dd; --q-vitalita:#d97b66; --q-crescita:#63b184; --q-condivisione:#e39a55;
  --q-cooperazione:#8a97d8; --q-lieto:#d9b04a; --q-fioritura:#a68cc9;
  --sky-1:#1d2b33; --sky-2:#273330; --sky-3:#3a4234; --sun:#d9b04a;
  --hill-1:#3d5741; --hill-2:#31482f; --hill-3:#263a27; --hill-4:#1c2d1e; --wood:#182818; --field:#33452c;
  --shadow:0 18px 50px -18px rgb(0 0 0 / .5);
}

/* ── utility: le 7 qualità come classi (CSP: zero inline style) ───────── */
.q-quiete{--q:var(--q-quiete);--tint:var(--q-quiete)}
.q-vitalita{--q:var(--q-vitalita);--tint:var(--q-vitalita)}
.q-crescita{--q:var(--q-crescita);--tint:var(--q-crescita)}
.q-condivisione{--q:var(--q-condivisione);--tint:var(--q-condivisione)}
.q-cooperazione{--q:var(--q-cooperazione);--tint:var(--q-cooperazione)}
.q-lieto{--q:var(--q-lieto);--tint:var(--q-lieto)}
.q-fioritura{--q:var(--q-fioritura);--tint:var(--q-fioritura)}
.tint-terra{--tint:var(--terra)}
.tint-gold{--tint:var(--gold)}
/* colori ufficiali SDG (solo come tinta di sfondo, testo scurito per contrasto) */
.sdg-3{--tint:#4C9F38}.sdg-4{--tint:#C5192D}.sdg-7{--tint:#B7860B}
.sdg-11{--tint:#c76a00}.sdg-12{--tint:#8a651e}.sdg-13{--tint:#3F7E44}.sdg-15{--tint:#3d8a1f}

/* ── base ─────────────────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem);
  -webkit-text-size-adjust:100%;
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 17.5px/1.7 "Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{max-width:100%;height:auto}
a{color:var(--forest);text-decoration-color:color-mix(in srgb,var(--forest) 40%,transparent);text-underline-offset:3px}
a:hover{text-decoration-color:var(--forest)}
button{font:inherit}
:where(a,button,summary,[tabindex]):focus-visible{
  outline:3px solid var(--gold);outline-offset:4px;
}
::selection{background:color-mix(in srgb,var(--gold) 30%,transparent)}

h1,h2,h3,h4,blockquote{
  font-family:"Fraunces",Georgia,"Times New Roman",serif;
  font-weight:520;line-height:1.16;margin:0 0 .5em;
  letter-spacing:-.012em;text-wrap:balance;
}
h2{font-size:clamp(1.9rem,4vw,2.9rem)}
h3{font-size:clamp(1.25rem,2.4vw,1.55rem)}
p{margin:0 0 1em}
.small{font-size:.86rem;color:var(--muted)}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.2rem,4vw,2.2rem)}
.wrap-narrow{max-width:780px;margin:0 auto;padding:0 clamp(1.2rem,4vw,2.2rem)}

section{padding:clamp(3.6rem,9vw,7.5rem) 0;position:relative}
main [id]{scroll-margin-top:calc(var(--header-height) + 1rem)}
.section-alt{background:var(--paper-2)}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--terra);margin:0 0 1.2rem;
}
.eyebrow::before{
  content:"";width:26px;height:1.5px;background:var(--terra);border-radius:2px;flex:none;
}
.lede{font-size:clamp(1.06rem,1.8vw,1.24rem);color:var(--muted);max-width:46em}

/* ── reveal (progressive enhancement: senza JS tutto è visibile) ──────── */
html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
html.js .reveal.is-in{opacity:1;transform:none}
html.js .reveal-2{transition-delay:.12s}
html.js .reveal-3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  html.js .reveal{opacity:1;transform:none;transition:none}
}

/* ── header ───────────────────────────────────────────────────────────── */
.site-head{
  position:fixed;inset:0 0 auto 0;z-index:50;
  background:color-mix(in srgb,var(--paper) 82%,transparent);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}
.site-head .bar{
  max-width:var(--wrap);margin:0 auto;padding:.65rem clamp(1.2rem,4vw,2.2rem);
  display:flex;align-items:center;gap:1rem;justify-content:space-between;position:relative;
}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--ink)}
.brand svg{width:34px;height:34px;flex:none}
.brand b{font-family:"Fraunces",serif;font-weight:560;font-size:1.02rem;letter-spacing:.01em;white-space:nowrap}
.brand span{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:-2px}
.site-nav{display:flex;gap:1.15rem;flex-wrap:wrap;justify-content:flex-end}
.site-nav a{
  font-size:.86rem;font-weight:600;color:var(--ink);text-decoration:none;
  padding:.25rem 0;border-bottom:2px solid transparent;
}
.site-nav a:hover{border-bottom-color:var(--gold)}
.nav-toggle{
  display:none;align-items:center;gap:.65rem;border:1px solid var(--line);border-radius:999px;
  padding:.55rem .8rem;background:var(--panel);color:var(--ink);font-size:.82rem;font-weight:700;
  cursor:pointer;box-shadow:0 8px 22px -18px rgb(0 0 0 / .5);
}
.nav-toggle-icon{display:grid;gap:3px;width:17px}
.nav-toggle-icon span{
  display:block;width:17px;height:1.5px;border-radius:2px;background:currentColor;
  transition:transform .22s ease,opacity .22s ease;
}
.site-head.is-menu-open .nav-toggle-icon span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.site-head.is-menu-open .nav-toggle-icon span:nth-child(2){opacity:0}
.site-head.is-menu-open .nav-toggle-icon span:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}
@media (max-width:900px){
  .site-head .bar{padding:.7rem clamp(1.2rem,4vw,2.2rem);flex-wrap:wrap}
  .site-nav{
    flex:1 0 100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;
    padding:.25rem 0 .15rem;scrollbar-width:thin;
  }
  .site-nav a{white-space:nowrap}
  html.js .site-head .bar{flex-wrap:nowrap}
  html.js .nav-toggle{display:inline-flex}
  html.js .site-nav{
    position:absolute;top:calc(100% + .35rem);left:clamp(1.2rem,4vw,2.2rem);right:clamp(1.2rem,4vw,2.2rem);
    display:grid;gap:.1rem;max-height:calc(100svh - var(--header-height) - 1.5rem);overflow:auto;
    padding:.55rem;background:color-mix(in srgb,var(--panel) 94%,transparent);
    border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);
    opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-.5rem);
    transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s;
  }
  html.js .site-nav a{padding:.72rem .8rem;border:0;border-radius:9px}
  html.js .site-nav a:hover{background:color-mix(in srgb,var(--forest) 9%,transparent)}
  html.js .site-head.is-menu-open .site-nav{
    opacity:1;visibility:visible;pointer-events:auto;transform:none;
    transition-delay:0s,0s,0s;
  }
  /* Senza JavaScript la nav resta interamente disponibile e prende spazio
     nel flusso: l'header non deve coprire il sole con la sua altezza reale. */
  html:not(.js){scroll-padding-top:1rem}
  html:not(.js) .site-head{position:relative}
  html:not(.js) main [id]{scroll-margin-top:1rem}
  html:not(.js) .hero{--hero-sun-top:clamp(1rem,3svh,2rem)}
}
@media (max-width:430px){
  /* schermi molto stretti: il brand deve potersi comprimere,
     mai spingere il bottone Menu fuori dal viewport */
  .site-head .bar{gap:.6rem}
  .brand{min-width:0}
  .brand-words{min-width:0}
  .brand-words > span{display:none}
  .brand b{font-size:.92rem;letter-spacing:0;white-space:normal}
  .brand svg{width:28px;height:28px}
  .nav-toggle{padding:.5rem .65rem;flex:none}
}

/* ── hero: il paesaggio ───────────────────────────────────────────────── */
.hero{
  --hero-sun-size:clamp(11.5rem,16vw,19rem);
  --hero-sun-top:calc(var(--header-height) + clamp(1rem,3svh,2rem));
  min-height:100svh;display:grid;align-items:end;
  padding:0;position:relative;overflow:clip;isolation:isolate;
}
.hero-scene{position:absolute;inset:0;z-index:-1}
.hero-scene > .hero-landscape{width:100%;height:100%;display:block}
.hero-sun-wrap{
  position:absolute;z-index:2;top:var(--hero-sun-top);left:50%;
  width:var(--hero-sun-size);height:var(--hero-sun-size);transform:translateX(-50%);
}
.hero-sun,.hero-sun svg{display:block;width:100%;height:100%}
.hero-copy{
  width:100%;max-width:var(--wrap);margin:0 auto;
  padding:calc(var(--hero-sun-top) + var(--hero-sun-size) + clamp(1.5rem,4svh,3.5rem))
    clamp(1.2rem,4vw,2.2rem) clamp(6.5rem,17vh,11rem);
  text-align:center;
}
.hero-kicker{
  font-size:.78rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;
  color:var(--forest-deep);margin:0 0 1.4rem;
}
.hero h1{
  font-size:clamp(2.7rem,8.5vw,5.6rem);font-weight:480;color:var(--forest-deep);
  margin:0 0 .35em;
}
.hero .subtitle{
  font-family:"Fraunces",serif;font-style:italic;font-weight:420;
  font-size:clamp(1.25rem,3vw,1.9rem);color:var(--forest);margin:0 0 1.1em;
}
.hero .lede{margin:0 auto 2.2rem;max-width:38em;color:var(--forest-deep);opacity:.85}
.hero-ctas{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}

.btn{
  display:inline-block;padding:.85rem 1.6rem;border-radius:999px;
  font-weight:700;font-size:.95rem;text-decoration:none;
  transition:transform .25s ease,box-shadow .25s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--forest);color:#f6f3ea;box-shadow:0 12px 30px -12px color-mix(in srgb,var(--forest) 70%,transparent)}
@media (prefers-color-scheme:dark){ .btn-primary{color:#11150e} }
:root[data-theme="dark"] .btn-primary{color:#11150e}
:root[data-theme="light"] .btn-primary{color:#f6f3ea}
.btn-ghost{
  border:1.5px solid color-mix(in srgb,var(--forest) 50%,transparent);color:var(--forest-deep);
  background:color-mix(in srgb,var(--paper) 92%,transparent);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 10px 28px -22px rgb(0 0 0 / .55);
}
.btn-ghost:hover{border-color:var(--forest);background:var(--panel)}

.scroll-hint{
  position:absolute;left:50%;bottom:1.1rem;transform:translateX(-50%);
  color:var(--forest-deep);opacity:.6;font-size:1.4rem;line-height:1;
  animation:hint 2.6s ease-in-out infinite;
}
@keyframes hint{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
@media (prefers-reduced-motion:reduce){ .scroll-hint{animation:none} }

/* strati del paesaggio (parallasse leggera via JS, solo transform) */
.layer{will-change:transform}

/* il mandala-sole che si disegna */
.mandala-stroke{
  fill:none;stroke:var(--sun);stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round;
}
html.js .hero .mandala-stroke{
  stroke-dasharray:1200;stroke-dashoffset:1200;
  animation:draw 5.5s ease-out .4s forwards;
}
@keyframes draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){
  html.js .hero .mandala-stroke{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
  .nav-toggle-icon span,html.js .site-nav{transition:none}
}
.sun-halo{opacity:.35}

/* ── striscia dati ────────────────────────────────────────────────────── */
.data-strip{
  background:var(--forest-deep);color:#f0eddc;padding:2.1rem 0;
}
:root[data-theme="dark"] .data-strip{background:#0d120a}
@media (prefers-color-scheme:dark){ .data-strip{background:#0d120a} }
:root[data-theme="light"] .data-strip{background:#1b3320}
.data-strip .wrap{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:1.4rem;text-align:center;
}
.datum b{
  display:block;font-family:"Fraunces",serif;font-weight:480;
  font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.1;color:#e9d9a8;
}
.datum span{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;opacity:.85}

/* ── il nome ──────────────────────────────────────────────────────────── */
.name-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;margin-top:2.6rem}
.name-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.9rem 1.7rem;box-shadow:var(--shadow);
}
.name-card .sanskrit{
  font-family:"Fraunces",serif;font-size:2rem;font-weight:480;color:var(--forest);
  display:block;margin-bottom:.15em;
}
.name-card .gloss{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);font-weight:700}
.name-card p{margin:.6rem 0 0;color:var(--muted)}
.name-sum{
  margin-top:2.4rem;font-family:"Fraunces",serif;font-style:italic;
  font-size:clamp(1.3rem,2.6vw,1.8rem);color:var(--forest);text-align:center;
}

/* ── manifesto ────────────────────────────────────────────────────────── */
.manifesto{background:var(--paper-2)}
.manifesto-lines{margin:2.5rem 0 0;padding:0;list-style:none}
.manifesto-lines li{
  font-family:"Fraunces",serif;font-weight:460;
  font-size:clamp(1.25rem,2.6vw,1.75rem);line-height:1.45;
  padding:1.05rem 0;border-bottom:1px solid var(--line);
}
.manifesto-lines li:last-child{border-bottom:none}
.manifesto-lines em{font-style:italic;color:var(--terra)}
.manifesto-close{
  margin-top:2.8rem;text-align:center;
}
.manifesto-close p{
  font-family:"Fraunces",serif;font-size:clamp(1.5rem,3.4vw,2.3rem);
  font-weight:520;color:var(--forest);margin:0;
}

/* ── segno + principi ─────────────────────────────────────────────────── */
.sign-grid{display:grid;grid-template-columns:minmax(280px,5fr) 7fr;gap:clamp(2rem,5vw,4.5rem);align-items:start;margin-top:2.5rem}
@media (max-width:900px){ .sign-grid{grid-template-columns:1fr} }
.sign-figure{position:sticky;top:90px}
@media (max-width:900px){ .sign-figure{position:static;max-width:420px;margin:0 auto} }
.sign-figure figcaption{margin-top:1.1rem;text-align:center;font-size:.88rem;color:var(--muted)}
.mandala-large .mandala-stroke{stroke:var(--forest);stroke-width:1.6}
html.js .mandala-large.is-in .mandala-stroke{
  stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 4.5s ease-out forwards;
}
@media (prefers-reduced-motion:reduce){
  html.js .mandala-large.is-in .mandala-stroke{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
}
.qword{font:600 13px "Hanken Grotesk",sans-serif;letter-spacing:.06em}

.sign-meaning{margin:0 0 2rem;padding:0;list-style:none;display:grid;gap:.45rem}
.sign-meaning li{display:flex;gap:.7em;align-items:baseline;color:var(--muted);font-size:.95rem}
.sign-meaning b{color:var(--ink);font-weight:650}
.sign-meaning .glyph{color:var(--terra);flex:none;font-family:"Fraunces",serif}

.principles{display:grid;gap:.7rem;margin-top:1.6rem}
.principle{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  overflow:hidden;
}
.principle summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;gap:1rem;
  padding:1.05rem 1.3rem;font-weight:650;font-size:1.02rem;
}
.principle summary::-webkit-details-marker{display:none}
.principle summary::after{
  content:"+";margin-left:auto;font-family:"Fraunces",serif;font-size:1.3rem;
  color:var(--terra);transition:transform .3s ease;flex:none;
}
.principle[open] summary::after{transform:rotate(45deg)}
.principle .num{
  font-family:"Fraunces",serif;font-weight:480;
  color:var(--q,var(--terra));font-size:1.15rem;min-width:1.6em;flex:none;
}
.principle .body{padding:0 1.3rem 1.2rem 1.3rem;color:var(--muted)}
.principle .body p{margin:0}

/* ── ecosistema umano ─────────────────────────────────────────────────── */
.ages{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.2rem;margin-top:2.6rem}
.age-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:2rem 1.7rem;box-shadow:var(--shadow);border-top:4px solid var(--tint,var(--sage));
}
.age-card .range{
  font-family:"Fraunces",serif;font-size:2.1rem;font-weight:480;color:var(--tint,var(--forest));
  display:block;line-height:1;
}
.age-card .label{font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-weight:700;display:block;margin:.5rem 0 1rem}
.age-card p{color:var(--muted);margin:0}
.eco-quote{
  margin:3rem auto 0;max-width:44em;text-align:center;
  font-family:"Fraunces",serif;font-style:italic;
  font-size:clamp(1.15rem,2.4vw,1.55rem);color:var(--forest);
}

/* ── il luogo ─────────────────────────────────────────────────────────── */
.place{background:var(--paper-2)}
.place-grid{display:grid;grid-template-columns:6fr 6fr;gap:clamp(2rem,5vw,4rem);align-items:center;margin-top:2.4rem}
@media (max-width:900px){ .place-grid{grid-template-columns:1fr} }
.place-map{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);background:var(--panel)}
.place-map svg{display:block;width:100%;height:auto}
.place-facts{margin:1.6rem 0 0;padding:0;list-style:none;display:grid;gap:.85rem}
.place-facts li{display:flex;gap:.85em;align-items:baseline}
.place-facts .glyph{color:var(--terra);font-family:"Fraunces",serif;flex:none}
.place-facts b{font-weight:650}

/* ── poli ─────────────────────────────────────────────────────────────── */
.poles{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:1.2rem;margin-top:2.6rem}
.pole{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.9rem 1.6rem;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:.4rem;
}
.pole .pict{width:52px;height:52px;color:var(--tint,var(--forest));margin-bottom:.6rem}
.pole h3{margin:0}
.pole .who{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tint,var(--terra));font-weight:700}
.pole p{color:var(--muted);margin:.4rem 0 0;font-size:.97rem}

/* ── dimora / edifici ─────────────────────────────────────────────────── */
.nuclei{margin-top:2.6rem;display:grid;gap:.7rem}
.nucleo{
  display:grid;grid-template-columns:minmax(72px,auto) 1fr auto;gap:1.2rem;align-items:center;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:1.1rem 1.4rem;
}
.nucleo .mq{
  font-family:"Fraunces",serif;font-size:1.5rem;font-weight:480;color:var(--forest);
  text-align:right;white-space:nowrap;
}
.nucleo .mq small{font-size:.7rem;letter-spacing:.1em;color:var(--muted);display:block;font-family:"Hanken Grotesk",sans-serif}
.nucleo b{font-weight:650}
.nucleo span{display:block;color:var(--muted);font-size:.92rem}
.nucleo .tag{
  font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--tint,var(--terra));
}
.nucleo.tint-gold .tag{color:color-mix(in srgb,var(--gold) 50%,var(--ink))}
@media (max-width:640px){
  .nucleo{grid-template-columns:1fr auto}
  .nucleo .tag{grid-column:1 / -1;order:-1}
}

/* ── living lab ───────────────────────────────────────────────────────── */
.lab{
  background:var(--forest-deep);color:#ece9d6;
}
:root[data-theme="light"] .lab{background:#1b3320}
@media (prefers-color-scheme:dark){ .lab{background:#0d120a} }
:root[data-theme="dark"] .lab{background:#0d120a}
.lab .eyebrow{color:var(--gold)}
.lab .eyebrow::before{background:var(--gold)}
.lab h2,.lab h3{color:#f3efdd}
.lab .lede{color:#c9c6ae}
.lab-quote{
  margin:2.6rem 0;padding:0;border:none;
  font-family:"Fraunces",serif;font-style:italic;font-weight:440;
  font-size:clamp(1.35rem,3vw,2rem);line-height:1.5;color:#e9d9a8;
  max-width:30em;
}
.lab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:1.1rem;margin-top:2.4rem}
.lab-card{
  background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .12);
  border-radius:12px;padding:1.5rem 1.4rem;
}
.lab-card h3{font-size:1.12rem;margin:0 0 .35rem;display:flex;align-items:center;gap:.6rem}
.lab-card h3 svg{width:22px;height:22px;color:var(--gold);flex:none}
.lab-card p{color:#c9c6ae;font-size:.94rem;margin:0}
.lab-note{margin-top:2.4rem;font-size:.88rem;color:#a8a68d;max-width:56em}

/* ── acqua ────────────────────────────────────────────────────────────── */
.water-flow{margin-top:2.6rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.2rem,3vw,2.4rem);overflow-x:auto}
.water-flow svg{display:block;min-width:640px;width:100%;height:auto}
.flow-line{fill:none;stroke-width:2.4;stroke-linecap:round}
html.js .flow-line{stroke-dasharray:8 7}
html.js .water-flow.is-in .flow-line{animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-15}}
@media (prefers-reduced-motion:reduce){ html.js .water-flow.is-in .flow-line{animation:none} }
.water-caption{margin-top:1.2rem;color:var(--muted);font-size:.92rem;max-width:56em}

/* ── agricoltura sociale ──────────────────────────────────────────────── */
.social-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,5vw,4rem);margin-top:2.4rem;align-items:start}
@media (max-width:900px){ .social-grid{grid-template-columns:1fr} }
.check-list{margin:1.4rem 0 0;padding:0;list-style:none;display:grid;gap:.7rem}
.check-list li{display:flex;gap:.75em;align-items:baseline;color:var(--muted)}
.check-list .glyph{color:var(--q-crescita);flex:none;font-weight:700}
.sdg-panel{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.8rem 1.6rem;box-shadow:var(--shadow);
}
.sdg-panel h3{font-size:1.05rem}
.sdgs{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 0}
.sdg{
  display:inline-flex;align-items:center;gap:.5em;
  border:1.5px solid var(--line);border-radius:999px;
  padding:.4rem .95rem .4rem .5rem;font-size:.82rem;font-weight:650;
}
.sdg i{
  font-style:normal;display:inline-grid;place-items:center;
  width:26px;height:26px;border-radius:50%;
  background:color-mix(in srgb,var(--tint,var(--sage)) 24%,transparent);
  color:color-mix(in srgb,var(--tint,var(--sage)) 60%,var(--ink));
  font-size:.78rem;font-weight:800;
}
.vas-note{margin-top:1.5rem;padding-top:1.3rem;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.vas-note b{color:var(--q-crescita)}

/* ── percorsi ─────────────────────────────────────────────────────────── */
.paths{background:var(--paper-2)}
.path-axes{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem;margin-top:2.4rem}
.axis{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.5rem 1.4rem;
}
.axis .n{font-family:"Fraunces",serif;color:var(--terra);font-size:1.3rem;display:block;margin-bottom:.3rem}
.axis h3{font-size:1.08rem;margin-bottom:.35rem}
.axis p{color:var(--muted);font-size:.94rem;margin:0}
.path-meta{display:flex;gap:2.4rem;flex-wrap:wrap;margin-top:2.2rem}
.path-meta div b{font-family:"Fraunces",serif;font-size:1.6rem;font-weight:480;color:var(--forest);display:block;line-height:1.15}
.path-meta div span{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}

/* ── roadmap ──────────────────────────────────────────────────────────── */
.road{position:relative;margin-top:3rem;padding-left:2.2rem;display:grid;gap:2rem}
.road::before{
  content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(var(--sage),var(--forest));border-radius:2px;
}
.milestone{position:relative}
.milestone::before{
  content:"";position:absolute;left:-2.2rem;top:.35rem;width:18px;height:18px;
  border-radius:50%;background:var(--paper);border:3px solid var(--forest);
  transform:translateX(0);
}
.milestone .when{
  font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);
}
.milestone h3{margin:.25rem 0 .3rem}
.milestone p{color:var(--muted);margin:0;max-width:52em}
.road-quote{
  margin:3.2rem 0 0;text-align:center;font-family:"Fraunces",serif;font-style:italic;
  font-size:clamp(1.3rem,2.8vw,1.8rem);color:var(--forest);
}

/* ── team ─────────────────────────────────────────────────────────────── */
.team{background:var(--paper-2)}
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:1.1rem;margin-top:2.4rem}
.role{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:1.5rem 1.4rem;
}
.role h3{font-size:1.06rem;margin-bottom:.3rem}
.role p{color:var(--muted);font-size:.93rem;margin:0}
.circles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;margin-top:2.6rem}
.circle-card{
  border:1.5px dashed color-mix(in srgb,var(--forest) 40%,transparent);
  border-radius:var(--radius);padding:1.4rem 1.3rem;
}
.circle-card b{font-family:"Fraunces",serif;font-weight:520;color:var(--forest);font-size:1.05rem}
.circle-card p{color:var(--muted);font-size:.92rem;margin:.35rem 0 0}
.team-quote{
  margin:3rem auto 0;text-align:center;max-width:30em;
  font-family:"Fraunces",serif;font-size:clamp(1.4rem,3vw,2rem);font-weight:500;color:var(--forest);
}

/* ── invito / contatti ────────────────────────────────────────────────── */
.invite{text-align:center}
.invite h2{font-size:clamp(2.1rem,4.8vw,3.4rem)}
.invite .lede{margin:0 auto 2.4rem}
.invite-mark{width:120px;height:120px;margin:0 auto 2rem;color:var(--forest)}
.contact-line{margin-top:2.2rem;font-size:1.05rem}
.contact-line a{font-weight:700}

/* ── footer ───────────────────────────────────────────────────────────── */
.site-foot{
  border-top:1px solid var(--line);padding:2.6rem 0 3rem;background:var(--paper-2);
}
.site-foot .wrap{display:grid;gap:1.6rem;grid-template-columns:1fr auto;align-items:start}
@media (max-width:720px){ .site-foot .wrap{grid-template-columns:1fr} }
.site-foot .who p{margin:.3rem 0 0;color:var(--muted);font-size:.9rem;max-width:40em}
.foot-links{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.9rem}
.foot-note{grid-column:1 / -1;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}

/* ── classi estratte dagli (ex) stili inline ──────────────────────────── */
.place-quote{
  margin:1.8rem 0 0;padding-left:1.2rem;border-left:3px solid var(--gold);
  font-size:1.15rem;font-style:italic;color:var(--forest);
}
.principle-note{margin-top:1.4rem}
.skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--forest);color:var(--paper);padding:.7rem 1.2rem;
  border-radius:0 0 10px 0;font-weight:700;text-decoration:none;
}
.skip:focus{left:0}

/* ── pagine documento (privacy / ai) ──────────────────────────────────── */
.doc-page{max-width:700px;margin:0 auto;padding:7rem clamp(1.2rem,4vw,2.2rem) 4.5rem}
.doc-page h1{font-size:clamp(1.9rem,4.4vw,2.7rem);color:var(--forest-deep)}
.doc-page h2{font-size:1.25rem;margin-top:2.2rem}
.doc-page p,.doc-page li{color:var(--muted)}
.doc-page .back{display:inline-block;margin-bottom:2rem;font-size:.9rem;font-weight:650}
