/* =========================================================================
   Studio Legale Avv. Valerio Migliorini
   Restyle editoriale — sobrio, elegante, non promozionale
   ========================================================================= */

:root {
  /* Palette — ink di mare + oro caldo + carta avorio */
  --ink-900: #0a1722;
  --ink-800: #0d1b2a;
  --ink-700: #14283c;
  --ink-600: #1d3650;

  --gold-600: #9c7a3c;
  --gold-500: #b8924f;
  --gold-400: #c9a86a;
  --gold-100: #ece0c8;

  --paper: #f7f3ec;
  --paper-200: #efe8db;
  --paper-300: #e5dccb;
  --white: #ffffff;

  --ink: #1f2630;
  --ink-soft: #41494f;
  --muted: #6a7280;
  --muted-light: #9aa1ab;

  --line: #e0d8c8;
  --line-dark: rgba(255,255,255,0.12);

  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --read: "Spectral", Georgia, serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --container: 1180px;
  --measure: 720px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section-y: clamp(4.5rem, 10vw, 9rem);
  --radius: 3px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --tr: 0.4s var(--ease);
  --shadow: 0 18px 50px rgba(10,20,38,0.18);
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body {
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
ul { list-style: none; padding: 0; }
button { font: inherit; cursor: pointer; }

.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.narrow { max-width: var(--measure); }

.sr-only{ position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.skip-link{ position:fixed; top:-100px; left:1rem; z-index:2000; background:var(--gold-500); color:var(--ink-900); padding:.7rem 1.1rem; border-radius:var(--radius); font-weight:600; transition:top .2s var(--ease); }
.skip-link:focus{ top:1rem; }
:focus-visible{ outline:2px solid var(--gold-500); outline-offset:3px; }

/* ---------- Tipografia condivisa ---------- */
.eyebrow{
  display:inline-block; font-family:var(--sans); font-size:.74rem; font-weight:600;
  letter-spacing:.28em; text-transform:uppercase; color:var(--gold-600);
}
.eyebrow--light{ color:var(--gold-400); }

.h-display{
  font-family:var(--serif); font-weight:600; line-height:1.06; letter-spacing:-.01em;
  font-size:clamp(2.1rem, 4.6vw, 3.6rem); color:var(--ink-800);
}
.rule{ width:54px; height:2px; background:var(--gold-500); border:0; margin:1.6rem 0; }
.rule--center{ margin-inline:auto; }

.section{ padding-block:var(--section-y); }
.section-head{ max-width:60ch; }
.section-head.center{ text-align:center; margin-inline:auto; }
.section-head .rule.center, .section-head.center .rule{ margin-inline:auto; }

/* ---------- Link sobri ---------- */
.link-gold{ color:var(--gold-600); text-decoration:none; border-bottom:1px solid var(--gold-400); padding-bottom:1px; transition:color var(--tr), border-color var(--tr); }
.link-gold:hover{ color:var(--gold-500); border-color:var(--gold-500); }

.arrow-link{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--sans); font-size:.82rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-700); text-decoration:none; transition:gap var(--tr), color var(--tr);
}
.arrow-link svg{ transition:transform var(--tr); }
.arrow-link:hover{ color:var(--gold-600); gap:.85rem; }
.arrow-link:hover svg{ transform:translateX(3px); }

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header{ position:fixed; inset:0 0 auto 0; z-index:1000; padding-block:1.4rem; transition:background var(--tr), padding var(--tr), box-shadow var(--tr); }
.site-header.is-scrolled{ background:rgba(10,23,34,.93); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); padding-block:.8rem; box-shadow:0 1px 0 var(--line-dark); }
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }

.brand{ display:inline-flex; align-items:center; gap:.8rem; text-decoration:none; color:var(--white); }
.brand__mark{ color:var(--gold-500); flex-shrink:0; line-height:0; }
.brand__text{ display:flex; flex-direction:column; line-height:1.05; }
.brand__name{ font-family:var(--serif); font-weight:600; font-size:1.28rem; letter-spacing:.01em; }
.brand__sub{ font-family:var(--sans); font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-400); font-weight:500; margin-top:.22rem; }
/* header su pagine chiare */
.doc-header .brand, .header--solid .brand{ color:var(--white); }

.nav__list{ display:flex; align-items:center; gap:2.2rem; }
.nav__list a{ font-family:var(--sans); text-decoration:none; color:rgba(255,255,255,.82); font-size:.82rem; font-weight:500; letter-spacing:.13em; text-transform:uppercase; position:relative; transition:color var(--tr); }
.nav__list a::after{ content:""; position:absolute; left:0; bottom:-7px; width:0; height:1.5px; background:var(--gold-500); transition:width var(--tr); }
.nav__list a:hover{ color:var(--white); }
.nav__list a:hover::after{ width:100%; }

.nav__toggle{ display:none; width:44px; height:44px; background:transparent; border:1px solid var(--line-dark); border-radius:var(--radius); position:relative; z-index:1100; }
.nav__toggle-bar, .nav__toggle-bar::before, .nav__toggle-bar::after{ content:""; position:absolute; left:50%; top:50%; width:20px; height:1.6px; background:var(--white); transform:translate(-50%,-50%); transition:transform .3s var(--ease), opacity .2s; }
.nav__toggle-bar::before{ transform:translate(-50%,-7px); }
.nav__toggle-bar::after{ transform:translate(-50%,5px); }
.nav__toggle[aria-expanded="true"] .nav__toggle-bar{ background:transparent; }
.nav__toggle[aria-expanded="true"] .nav__toggle-bar::before{ transform:translate(-50%,-50%) rotate(45deg); }
.nav__toggle[aria-expanded="true"] .nav__toggle-bar::after{ transform:translate(-50%,-50%) rotate(-45deg); }

/* =========================================================================
   HERO
   ========================================================================= */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; color:var(--white); overflow:hidden; }
.hero__img{ position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center 38%; transform:scale(1.03); }
.hero__overlay{ position:absolute; inset:0; z-index:-1;
  background:
   linear-gradient(180deg, rgba(8,18,28,.72) 0%, rgba(8,18,28,.45) 38%, rgba(8,18,28,.62) 78%, rgba(8,18,28,.86) 100%),
   radial-gradient(120% 80% at 50% 30%, rgba(8,18,28,.10), rgba(8,18,28,.55));
}
.hero__inner{ width:100%; text-align:center; padding-top:5rem; }
.hero__eyebrow{ color:var(--gold-400); }
.hero__title{ font-family:var(--serif); font-weight:600; line-height:1.04; letter-spacing:-.01em; font-size:clamp(2.7rem, 7vw, 5.4rem); margin:1.1rem 0; text-shadow:0 2px 30px rgba(0,0,0,.3); }
.hero__sub{ font-family:var(--sans); font-size:clamp(.8rem,1.6vw,.95rem); letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.8); font-weight:400; }
.hero__sep{ color:var(--gold-400); margin-inline:.6rem; }
.hero__rule{ width:60px; height:2px; background:var(--gold-500); border:0; margin:2rem auto 0; }
.hero__scroll{ position:absolute; bottom:1.8rem; left:50%; transform:translateX(-50%); width:26px; height:42px; border:1.5px solid rgba(255,255,255,.4); border-radius:20px; display:grid; place-items:start center; padding-top:8px; }
.hero__scroll span{ width:4px; height:8px; background:var(--gold-400); border-radius:2px; animation:scrolldot 1.9s var(--ease) infinite; }
@keyframes scrolldot{ 0%{opacity:0;transform:translateY(-3px);} 40%{opacity:1;} 80%,100%{opacity:0;transform:translateY(10px);} }

/* =========================================================================
   PRESENTAZIONE
   ========================================================================= */
.intro{ background:var(--paper); }
.intro__grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2.5rem,6vw,5.5rem); align-items:start; }
.intro__lead{ font-family:var(--read); font-size:clamp(1.3rem,2.4vw,1.7rem); line-height:1.5; color:var(--ink-800); font-weight:400; }
.intro__lead em{ color:var(--gold-600); font-style:italic; }
.intro__body p{ font-family:var(--read); font-size:1.08rem; color:var(--ink-soft); margin-bottom:1.1rem; }
.intro__facts{ margin-top:1.8rem; border-top:1px solid var(--line); }
.intro__facts div{ display:flex; gap:1.4rem; padding:.85rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.intro__facts dt{ flex:0 0 38%; font-family:var(--sans); text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; font-weight:600; color:var(--muted); padding-top:.15rem; }
.intro__facts dd{ font-family:var(--read); color:var(--ink-800); }

/* Ambiti — derivati dai temi dei suoi scritti (fattuali) */
.ambiti{ background:var(--ink-800); color:var(--white); }
.ambiti__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); margin-top:clamp(2rem,4vw,3rem); }
.ambito{ background:var(--ink-800); padding:clamp(1.8rem,3vw,2.6rem); }
.ambito__n{ font-family:var(--serif); font-size:1.1rem; color:var(--gold-400); letter-spacing:.1em; }
.ambito h3{ font-family:var(--serif); font-weight:600; font-size:1.6rem; margin:.7rem 0 .5rem; line-height:1.15; }
.ambito p{ font-family:var(--read); font-size:.98rem; color:rgba(255,255,255,.66); }
.ambito__count{ display:inline-block; margin-top:1.1rem; font-family:var(--sans); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-400); }

/* =========================================================================
   ARTICOLI (lista editoriale)
   ========================================================================= */
.scritti{ background:var(--paper); }
.articoli-list{ margin-top:clamp(2rem,4vw,3.5rem); border-top:1px solid var(--line); }
.art-row{
  display:grid; grid-template-columns:170px 1fr auto; gap:clamp(1.5rem,3vw,3rem); align-items:start;
  padding:clamp(1.8rem,3vw,2.6rem) 0; border-bottom:1px solid var(--line);
  text-decoration:none; color:inherit; transition:background var(--tr);
}
.art-row:hover{ background:rgba(184,146,79,.05); }
.art-row__meta{ font-family:var(--sans); }
.art-row__cat{ display:inline-block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:var(--gold-600); }
.art-row__date{ display:block; margin-top:.5rem; font-size:.82rem; color:var(--muted); }
.art-row__main{ min-width:0; }
.art-row__title{ font-family:var(--serif); font-weight:600; font-size:clamp(1.4rem,2.4vw,1.9rem); line-height:1.18; color:var(--ink-800); transition:color var(--tr); }
.art-row:hover .art-row__title{ color:var(--gold-600); }
.art-row__excerpt{ font-family:var(--read); color:var(--ink-soft); margin-top:.6rem; font-size:1.02rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.art-row__press{ margin-top:.9rem; display:inline-flex; align-items:center; gap:.5rem; font-family:var(--sans); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-600); font-weight:600; }
.art-row__thumb{ width:170px; height:120px; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line); background:var(--paper-200); }
.art-row__go{ align-self:center; color:var(--muted); transition:transform var(--tr), color var(--tr); }
.art-row:hover .art-row__go{ color:var(--gold-600); transform:translateX(4px); }

/* =========================================================================
   CONTATTI
   ========================================================================= */
.contatti{ background:var(--ink-800); color:var(--white); }
.contatti__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; }
.contatti__lead{ font-family:var(--read); font-size:clamp(1.15rem,2vw,1.4rem); color:rgba(255,255,255,.85); margin-top:1.2rem; }
.contatti__list{ margin-top:2rem; display:grid; gap:1.4rem; }
.contatti__list a, .contatti__list span{ color:var(--white); }
.contatti__item{ display:flex; gap:1rem; align-items:flex-start; }
.contatti__ic{ flex-shrink:0; width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(201,168,106,.4); border-radius:50%; color:var(--gold-400); }
.contatti__k{ display:block; font-family:var(--sans); font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-400); margin-bottom:.2rem; }
.contatti__v{ font-family:var(--read); font-size:1.05rem; }
.contatti__v a{ text-decoration:none; border-bottom:1px solid rgba(201,168,106,.4); transition:border-color var(--tr); }
.contatti__v a:hover{ border-color:var(--gold-400); }

/* Form sobrio */
.form{ background:rgba(255,255,255,.03); border:1px solid var(--line-dark); border-radius:var(--radius); padding:clamp(1.6rem,3vw,2.4rem); }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.form__field{ display:block; margin-bottom:1.1rem; }
.form__label{ display:block; font-family:var(--sans); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.7); margin-bottom:.45rem; }
.form input, .form textarea{ width:100%; font-family:var(--read); font-size:1rem; color:var(--white); background:rgba(255,255,255,.04); border:1px solid var(--line-dark); border-radius:var(--radius); padding:.8rem .95rem; transition:border-color var(--tr), box-shadow var(--tr); }
.form input::placeholder, .form textarea::placeholder{ color:rgba(255,255,255,.4); }
.form input:focus, .form textarea:focus{ outline:none; border-color:var(--gold-400); box-shadow:0 0 0 3px rgba(184,146,79,.18); }
.form textarea{ resize:vertical; min-height:120px; }
.form__consent{ display:flex; gap:.7rem; align-items:flex-start; font-family:var(--sans); font-size:.82rem; color:rgba(255,255,255,.7); line-height:1.5; margin:.2rem 0 1.3rem; }
.form__consent input{ width:17px; height:17px; margin-top:.2rem; accent-color:var(--gold-500); flex-shrink:0; }
.form__consent a{ color:var(--gold-400); }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6rem; font-family:var(--sans); font-weight:600; letter-spacing:.04em; font-size:.92rem; padding:.95rem 1.9rem; border:1px solid transparent; border-radius:var(--radius); text-decoration:none; transition:transform var(--tr), background var(--tr), color var(--tr); }
.btn--gold{ background:var(--gold-500); color:var(--ink-900); }
.btn--gold:hover{ background:var(--gold-400); transform:translateY(-2px); }
.btn--block{ width:100%; }
.form__status{ margin-top:1rem; font-family:var(--sans); font-size:.9rem; min-height:1.2em; }
.form__status.is-success{ color:#8fd0a6; }
.form__status.is-error{ color:#e0a07f; }
.form__note{ margin-top:1rem; font-family:var(--sans); font-size:.76rem; color:rgba(255,255,255,.5); line-height:1.5; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{ background:var(--ink-900); color:rgba(255,255,255,.66); }
.footer__top{ display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:2.5rem; padding-block:clamp(3rem,6vw,4.5rem) clamp(2rem,4vw,3rem); }
.footer__brand .brand{ margin-bottom:1.1rem; }
.footer__tagline{ font-family:var(--read); font-size:.96rem; max-width:36ch; line-height:1.6; }
.footer h4{ font-family:var(--sans); font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:var(--gold-400); margin-bottom:1.1rem; }
.footer__nav ul{ display:grid; gap:.6rem; }
.footer__nav a{ font-family:var(--sans); text-decoration:none; font-size:.9rem; color:rgba(255,255,255,.66); transition:color var(--tr); }
.footer__nav a:hover{ color:var(--gold-400); }
.footer address{ font-style:normal; font-family:var(--read); font-size:.96rem; line-height:1.8; }
.footer address a{ color:rgba(255,255,255,.66); text-decoration:none; }
.footer address a:hover{ color:var(--gold-400); }
.footer__bar{ border-top:1px solid var(--line-dark); }
.footer__bar-inner{ display:flex; justify-content:space-between; gap:1rem 2rem; flex-wrap:wrap; padding-block:1.5rem; font-family:var(--sans); font-size:.78rem; color:var(--muted-light); }
.footer__bar-inner a{ color:var(--muted-light); text-decoration:none; }
.footer__bar-inner a:hover{ color:var(--gold-400); }

/* =========================================================================
   PAGINA ARTICOLO (lettura)
   ========================================================================= */
.article-hero{ background:linear-gradient(170deg,var(--ink-900),var(--ink-800)); color:var(--white); padding-block:clamp(7rem,12vw,10rem) clamp(2.5rem,5vw,3.5rem); }
.article-hero .container{ max-width:var(--measure); }
.article-hero__cat{ color:var(--gold-400); }
.article-hero h1{ font-family:var(--serif); font-weight:600; line-height:1.1; letter-spacing:-.01em; font-size:clamp(2rem,4.4vw,3.2rem); margin:1rem 0 1.2rem; }
.article-hero__meta{ display:flex; gap:1.2rem; align-items:center; flex-wrap:wrap; font-family:var(--sans); font-size:.85rem; color:rgba(255,255,255,.6); }
.article-hero__meta .dot{ width:4px; height:4px; border-radius:50%; background:var(--gold-400); }

.article-body{ background:var(--paper); padding-block:clamp(3rem,6vw,5rem); }
.article-body .container{ max-width:var(--measure); }
.article-figure{ margin:0 0 clamp(2rem,4vw,3rem); }
.article-figure img{ width:100%; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.article-figure figcaption{ font-family:var(--sans); font-size:.78rem; color:var(--muted); text-align:center; margin-top:.8rem; letter-spacing:.04em; }

.prose{ font-family:var(--read); font-size:1.16rem; line-height:1.78; color:var(--ink-800); }
.prose p{ margin-bottom:1.3rem; }
.prose p:first-of-type::first-letter{ font-family:var(--serif); font-size:3.6em; line-height:.82; float:left; padding:.05em .12em 0 0; color:var(--gold-600); font-weight:600; }
.prose a{ color:var(--gold-600); text-decoration:none; border-bottom:1px solid var(--gold-400); word-break:break-word; transition:color var(--tr), border-color var(--tr); }
.prose a:hover{ color:var(--gold-500); border-color:var(--gold-500); }
.prose strong, .prose b{ color:var(--ink-900); font-weight:600; }
.prose em, .prose i{ font-style:italic; }
.prose h3{ font-family:var(--serif); font-weight:600; font-size:1.5rem; color:var(--ink-800); margin:2rem 0 .8rem; }
.prose blockquote{ margin:1.6rem 0; padding:.4rem 0 .4rem 1.6rem; border-left:2px solid var(--gold-500); font-style:italic; color:var(--ink-soft); }
.prose ul, .prose ol{ margin:0 0 1.3rem 1.4rem; }
.prose li{ margin-bottom:.5rem; }
.article-foot{ max-width:var(--measure); margin:clamp(2.5rem,5vw,4rem) auto 0; padding:1.6rem var(--gutter) 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }

/* =========================================================================
   PAGINE LEGALI / DOC
   ========================================================================= */
.doc-header{ background:var(--ink-900); position:sticky; top:0; z-index:1000; border-bottom:1px solid var(--line-dark); }
.doc-header .header__inner{ padding-block:1rem; }
.doc-back{ display:inline-flex; align-items:center; gap:.5rem; color:rgba(255,255,255,.78); text-decoration:none; font-family:var(--sans); font-size:.82rem; letter-spacing:.06em; transition:color var(--tr); }
.doc-back:hover{ color:var(--gold-400); }
.doc-hero{ background:linear-gradient(170deg,var(--ink-900),var(--ink-800)); color:var(--white); padding-block:clamp(3.5rem,8vw,6rem) clamp(2.5rem,5vw,3.5rem); text-align:center; }
.doc-hero h1{ font-family:var(--serif); font-weight:600; font-size:clamp(2rem,5vw,3.2rem); line-height:1.1; }
.doc-hero p{ font-family:var(--read); color:rgba(255,255,255,.7); margin-top:.7rem; }
.doc{ max-width:800px; margin-inline:auto; padding:clamp(2.5rem,6vw,4.5rem) var(--gutter) clamp(3rem,7vw,5.5rem); }
.doc h2{ font-family:var(--serif); font-size:clamp(1.4rem,3vw,1.9rem); font-weight:600; color:var(--ink-800); margin:2.4rem 0 .8rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.doc h2:first-of-type{ border-top:0; padding-top:0; margin-top:0; }
.doc p, .doc li{ font-family:var(--read); color:var(--ink-soft); line-height:1.75; }
.doc p{ margin-bottom:1rem; }
.doc ul{ margin:0 0 1.2rem; }
.doc ul li{ position:relative; padding-left:1.2rem; margin-bottom:.5rem; }
.doc ul li::before{ content:""; position:absolute; left:0; top:.7em; width:6px; height:6px; background:var(--gold-500); border-radius:50%; }
.doc a{ color:var(--gold-600); }
.doc strong{ color:var(--ink-900); }
.doc__updated{ display:inline-block; font-family:var(--sans); font-size:.8rem; color:var(--muted); background:var(--paper-200); border-radius:var(--radius); padding:.4rem .9rem; margin-bottom:2rem; }

/* =========================================================================
   REVEAL / UTIL
   ========================================================================= */
.to-top{ position:fixed; right:1.4rem; bottom:1.4rem; z-index:900; width:46px; height:46px; display:grid; place-items:center; background:var(--ink-800); color:var(--gold-400); border:1px solid var(--line-dark); border-radius:50%; box-shadow:var(--shadow); opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity var(--tr), transform var(--tr), background var(--tr); }
.to-top.is-visible{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ background:var(--ink-700); }

.cookie{ position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:1500; background:var(--ink-800); color:var(--white); border:1px solid var(--line-dark); border-radius:var(--radius); box-shadow:var(--shadow); max-width:620px; margin-inline:auto; animation:cookieIn .5s var(--ease) both; }
@keyframes cookieIn{ from{opacity:0; transform:translateY(20px);} }
.cookie__inner{ display:flex; align-items:center; gap:1.4rem; padding:1.05rem 1.35rem; flex-wrap:wrap; }
.cookie__text{ font-family:var(--sans); font-size:.84rem; line-height:1.5; color:rgba(255,255,255,.82); flex:1 1 260px; }
.cookie__text a{ color:var(--gold-400); }
.btn--sm{ padding:.6rem 1.2rem; font-size:.82rem; }

.js .reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.is-visible{ opacity:1; transform:none; }
.articoli-list .art-row.reveal:nth-child(2){ transition-delay:.05s; }
.articoli-list .art-row.reveal:nth-child(3){ transition-delay:.1s; }
.ambiti__grid .reveal:nth-child(2){ transition-delay:.08s; }
.ambiti__grid .reveal:nth-child(3){ transition-delay:.16s; }
@media (prefers-reduced-motion: reduce){ .js .reveal{ opacity:1; transform:none; transition:none; } .hero__scroll span{ animation:none; } }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 980px){
  .intro__grid{ grid-template-columns:1fr; }
  .ambiti__grid{ grid-template-columns:1fr; }
  .contatti__grid{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 820px){
  .nav__toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .nav__list{ position:fixed; inset:0 0 0 auto; width:min(80vw,340px); flex-direction:column; align-items:flex-start; justify-content:center; gap:1.8rem; padding:2rem 2.2rem; background:var(--ink-900); box-shadow:var(--shadow); transform:translateX(100%); transition:transform .4s var(--ease); }
  .nav__list.is-open{ transform:translateX(0); }
  .nav__list a{ font-size:1rem; }
  body.nav-open{ overflow:hidden; }
}
@media (max-width: 640px){
  .art-row{ grid-template-columns:1fr; gap:.8rem; }
  .art-row__thumb{ width:100%; height:200px; order:-1; }
  .art-row__go{ display:none; }
  .art-row__meta{ display:flex; gap:1rem; align-items:baseline; }
  .art-row__date{ margin-top:0; }
  .form__row{ grid-template-columns:1fr; gap:0; }
  .footer__top{ grid-template-columns:1fr; gap:2rem; }
  .footer__bar-inner{ flex-direction:column; }
  .prose{ font-size:1.08rem; }
  .prose p:first-of-type::first-letter{ font-size:3em; }
}
