:root{
  --paper:#f2eee5;
  --paper-soft:#e9e3d8;
  --ink:#1e2322;
  --muted:#686a65;
  --violet:#575bb3;
  --orange:#e3a051;
  --green:#4f8f68;
  --line:rgba(30,35,34,.20);
  --max:1440px;
  --header-h:86px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
.skip-link{position:fixed;top:-100px;left:10px;z-index:9999;background:#fff;padding:10px}
.skip-link:focus{top:10px}

.site-header{
  height:var(--header-h);position:sticky;top:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 max(4vw,calc((100vw - var(--max))/2));
  background:rgba(242,238,229,.97);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line)
}
.brand{display:flex;flex-direction:column;line-height:.82;min-width:150px}
.brand-name{font-size:34px;font-weight:800;letter-spacing:-.055em}
.brand-sub{margin-top:8px;font-size:9px;letter-spacing:.1em;text-transform:uppercase}
.main-nav{display:flex;align-items:stretch;height:100%}
.nav-item{position:relative;display:flex;align-items:center}
.nav-main{
  height:100%;display:flex;align-items:center;padding:0 18px;
  font-size:13px;font-weight:700;letter-spacing:.08em;
  border-left:1px solid transparent;border-right:1px solid transparent
}
.nav-item:hover>.nav-main,.nav-item:focus-within>.nav-main{background:var(--paper-soft);border-color:var(--line)}
.dropdown-toggle{
  border:0;background:transparent;padding:0 5px 0 0;cursor:pointer;
  font-size:15px;line-height:1
}
.dropdown-menu{
  display:none;position:absolute;top:100%;left:0;min-width:230px;
  background:var(--ink);color:#fff;border-top:3px solid var(--orange);
  box-shadow:0 16px 28px rgba(0,0,0,.15)
}
.dropdown-menu a{
  display:block;padding:17px 20px;border-bottom:1px solid rgba(255,255,255,.16);
  font-size:11px;font-weight:700;letter-spacing:.08em
}
.dropdown-menu a:hover{background:rgba(255,255,255,.08)}
.has-dropdown.open > .dropdown-menu{
  display:block;
}
.menu-toggle{display:none;border:1px solid var(--ink);background:transparent;padding:8px 11px;font-size:11px;letter-spacing:.08em}

.home-main{max-width:var(--max);margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.home-intro{
  min-height:calc(100vh - var(--header-h));
  display:grid;grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--line)
}
.intro-copy{
  padding:clamp(55px,7vw,110px) clamp(30px,5vw,78px);
  display:flex;flex-direction:column;justify-content:center
}
.eyebrow{margin:0 0 20px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:700}
h1,h2,h3,p{margin-top:0}
.home-intro h1{
  font-size:clamp(62px,8vw,122px);line-height:.86;letter-spacing:-.07em;
  margin-bottom:32px
}
.lead{
  font-size:clamp(21px,2vw,30px);line-height:1.2;max-width:32ch;
  margin-bottom:30px
}
.intro-actions{display:flex;flex-wrap:wrap;gap:10px}
.button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:12px 19px;border:1px solid var(--ink);
  font-size:11px;font-weight:700;letter-spacing:.09em
}
.button-dark{background:var(--ink);color:#fff}
.button-outline{background:transparent}
.intro-image{min-height:620px;overflow:hidden}
.intro-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.03)}

.home-instagram{
  min-height:calc(100vh - var(--header-h));
  padding:70px clamp(24px,6vw,95px);
  display:grid;grid-template-columns:280px minmax(0,1fr);
  gap:5vw;align-items:center;background:#fff
}
.instagram-heading{align-self:start;padding-top:45px}
.instagram-heading h2{
  font-size:clamp(56px,6vw,92px);line-height:.9;letter-spacing:-.06em;margin-bottom:20px
}
.instagram-heading>a{font-size:12px;text-decoration:underline;text-underline-offset:4px}
.instagram-stage{
  min-height:650px;display:flex;align-items:center;justify-content:center;
  padding:24px;background:var(--paper-soft);border:1px solid var(--line)
}
.instagram-media{
  background:#fff!important;border:0!important;box-shadow:none!important;
  min-width:0!important;width:100%!important;max-width:680px!important;margin:0 auto!important
}
.instagram-fallback{padding:30px;background:#fff;border:1px solid var(--line)}
.site-footer{
  display:flex;justify-content:space-between;align-items:end;
  padding:32px max(4vw,calc((100vw - var(--max))/2));
  border-top:1px solid var(--line);background:var(--paper)
}
.site-footer>div{display:flex;flex-direction:column}
.site-footer strong{font-size:28px;letter-spacing:-.04em}
.site-footer span,.site-footer a{font-size:11px;letter-spacing:.06em}

/* Internal pages */
.internal-page{max-width:var(--max);margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.page-hero{padding:90px clamp(28px,7vw,110px);border-bottom:1px solid var(--line);min-height:430px}
.page-hero h1{font-size:clamp(60px,8vw,118px);line-height:.86;letter-spacing:-.07em;margin-bottom:30px;max-width:12ch}
.page-lead{font-size:20px;max-width:62ch;color:var(--muted)}
.page-content{display:grid;grid-template-columns:repeat(2,1fr)}
.content-block{padding:55px clamp(28px,5vw,70px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:280px}
.content-block:nth-child(even){border-right:0}
.content-block h2{font-size:38px;line-height:1;letter-spacing:-.045em;margin-bottom:20px}
.content-block p:last-child{max-width:55ch;}

@media(max-width:1050px){
  .nav-main{padding:0 10px;font-size:10px}
  .home-instagram{grid-template-columns:220px 1fr}
}
@media(max-width:840px){
  :root{--header-h:72px}
  .site-header{padding:0 5vw}
  .brand-name{font-size:28px}
  .menu-toggle{display:block}
  .main-nav{
    display:none;position:absolute;top:100%;left:0;right:0;height:auto;
    flex-direction:column;align-items:stretch;background:var(--paper);
    border-bottom:1px solid var(--line)
  }
  .main-nav.open{display:flex}
  .nav-item{display:grid;grid-template-columns:1fr auto;border-bottom:1px solid var(--line)}
  .nav-main{height:auto;padding:18px 5vw;font-size:11px}
  .dropdown-toggle{padding:0 5vw;width:58px}
  .dropdown-menu{
    position:static;grid-column:1/-1;min-width:0;box-shadow:none;border-top:1px solid var(--line);
    background:var(--ink)
  }
  .has-dropdown:hover>.dropdown-menu{display:none}
  .has-dropdown.open>.dropdown-menu{display:block}
  .home-intro{grid-template-columns:1fr;min-height:0}
  .intro-copy{min-height:calc(82vh - var(--header-h));padding:65px 6vw}
  .intro-image{min-height:54vh}
  .home-instagram{
    grid-template-columns:1fr;min-height:auto;padding:65px 5vw;gap:25px
  }
  .instagram-heading{padding-top:0}
  .instagram-stage{min-height:610px;padding:12px}
  .page-content{grid-template-columns:1fr}
  .content-block,.content-block:nth-child(even){border-right:0}
}
@media(max-width:520px){
  .home-intro h1{font-size:60px}
  .lead{font-size:21px}
  .intro-actions{flex-direction:column}
  .button{width:100%}
  .intro-image{min-height:44vh}
  .home-instagram{padding:55px 4vw}
  .instagram-heading h2{font-size:56px}
  .instagram-stage{min-height:550px}
  .site-footer{flex-direction:column;align-items:flex-start;gap:18px}
}.home-contacts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--ink);
  color: #fff;
  border-top: 1px solid rgba(255,255,255,.2);
}

.home-contact-item {
  min-height: 100px;
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid rgba(255,255,255,.2);
}

.home-contact-item:last-child {
  border-right: 0;
}

.home-contact-item span {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  opacity: .65;
}

.home-contact-item strong,
.home-contact-item a {
  font-size: 18px;
  font-weight: 700;
}

.home-contact-item a:hover {
  text-decoration: underline;
}
@media(max-width:840px) {
  .home-contacts {
    grid-template-columns: repeat(2, 1fr);
  }
  .home-contact-item {
    border-bottom: 1px solid rgba(255,255,255,.2);
  }
}

@media(max-width:520px) {
  .home-contacts {
    grid-template-columns: 1fr;
  }
  .home-contact-item {
    min-height: 120px;
    border-right: 0;
  }
}

/* ===== V11 - HOME E NAVIGAZIONE ===== */
.home-concrete,
.home-support-karama{
  padding:95px clamp(28px,6vw,95px);
  border-bottom:1px solid var(--line);
}
.home-concrete{background:var(--paper)}
.home-support-karama{background:var(--orange)}

.home-section-heading{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:6vw;
  align-items:end;
  margin-bottom:48px;
}
.home-section-heading .eyebrow{
  grid-column:1/-1;
  margin-bottom:0;
}
.home-section-heading h2{
  font-size:clamp(48px,6vw,88px);
  line-height:.92;
  letter-spacing:-.06em;
  margin-bottom:0;
  max-width:12ch;
}
.home-section-heading>p:last-child{
  font-size:18px;
  max-width:55ch;
  color:var(--muted);
  margin-bottom:5px;
}
.support-heading-home>p:last-child{color:rgba(30,35,34,.78)}

.concrete-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.concrete-grid article{
  min-height:300px;
  padding:26px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex;
  flex-direction:column;
}
.concrete-grid article>span{
  font-size:11px;
  letter-spacing:.12em;
  color:var(--muted);
  margin-bottom:auto;
}
.concrete-grid h3{
  font-size:30px;
  line-height:1;
  letter-spacing:-.045em;
  margin:38px 0 14px;
}
.concrete-grid p{color:var(--muted);margin-bottom:0}

.home-section-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}

.support-home-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--ink);
  border-left:1px solid var(--ink);
}
.support-home-grid article{
  min-height:360px;
  padding:34px;
  border-right:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.support-home-grid h3{
  font-size:clamp(34px,4vw,56px);
  line-height:.95;
  letter-spacing:-.05em;
  max-width:11ch;
  margin-bottom:20px;
}
.support-home-grid article>p:not(.eyebrow){
  max-width:50ch;
  margin-bottom:28px;
}
.support-home-grid .button{margin-top:auto}
.support-home-grid small{
  display:block;
  margin-top:18px;
  font-size:12px;
  font-weight:700;
}
.instagram-copy{
  max-width:32ch;
  color:var(--muted);
  margin-bottom:22px;
}

/* Evidenzia la voce di supporto */
.nav-main[href="supporto.html"]{
  color:#1e2322;
  font-weight:900;
}

@media(max-width:1180px){
  .nav-main{padding:0 9px;font-size:11px}
  .dropdown-toggle{padding-right:2px}
}
@media(max-width:900px){
  .concrete-grid{grid-template-columns:repeat(2,1fr)}
  .home-section-heading{grid-template-columns:1fr;gap:20px}
  .support-home-grid{grid-template-columns:1fr}
}
@media(max-width:840px){
  .home-concrete,.home-support-karama{padding:70px 5vw}
}
@media(max-width:520px){
  .concrete-grid{grid-template-columns:1fr}
  .home-section-heading h2{font-size:46px}
  .support-home-grid article{min-height:320px}
}
/* MENU MOBILE — override finale */
@media(max-width:840px){
  .nav-main{
    font-size:14px;
    padding:17px 20px;
  }
}
.event-link-text{
  color:var(--ink) !important;
}
.event-link-text a{
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}
/* MANIFESTO HOME */

.home-manifesto {
  margin: 10px 0 32px;
  border-top: 1px solid var(--line);
}

.home-manifesto p {
  margin: 0;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
  line-height: 1.45;
  color: var(--muted);
}

.home-manifesto strong {
  color: var(--ink);
  font-weight: 800;
  margin-right: 5px;
}

@media(max-width:840px) {
  .home-manifesto p {
    font-size: 15px;
    line-height: 1.5;
  }
}
/* =========================
   GUIDA ASILO POLITICO
   ========================= */

.asilo-guide {
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 5vw 100px;
}

.asilo-alert,
.asilo-free,
.asilo-important {
  padding: 30px;
  margin-bottom: 24px;
}

.asilo-alert {
  background: #b42318;
  color: #fff;
}

.asilo-alert .eyebrow {
  color: #fff;
}

.asilo-free {
  border: 2px solid var(--ink);
  background: var(--paper);
}

.asilo-free h2 {
  font-size: 36px;
  letter-spacing: -.04em;
  margin-bottom: 15px;
}

.asilo-section {
  padding: 55px 0;
  border-bottom: 1px solid var(--line);
}

.asilo-section h2 {
  font-size: clamp(36px,5vw,60px);
  line-height: .95;
  letter-spacing: -.05em;
  max-width: 14ch;
  margin-bottom: 30px;
}

.asilo-section > p {
  max-width: 70ch;
  font-size: 17px;
  line-height: 1.6;
}

.asilo-list {
  max-width: 70ch;
  padding-left: 22px;
}

.asilo-list li {
  margin-bottom: 12px;
  line-height: 1.5;
}

.asilo-procedure,
.asilo-result {
  max-width: 800px;
  padding: 28px 0;
  border-top: 1px solid var(--line);
}

.asilo-procedure h3,
.asilo-result h3 {
  font-size: 28px;
  letter-spacing: -.035em;
  margin-bottom: 15px;
}

.text-link {
  display: inline-block;
  margin-top: 10px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.asilo-important {
  margin-top: 55px;
  background: var(--ink);
  color: #fff;
}

.asilo-important h2 {
  max-width: 18ch;
  font-size: clamp(32px,4vw,52px);
  line-height: 1;
  letter-spacing: -.04em;
}

.facsimile-document {
  background: #fff;
  border: 1px solid var(--line);
  padding: clamp(25px,5vw,60px);
  max-width: 800px;
}

.facsimile-document h3 {
  margin: 40px 0;
  text-align: center;
  letter-spacing: .12em;
}

.facsimile-document p {
  line-height: 1.7;
}

.signature {
  margin-top: 45px;
}

@media(max-width:600px) {
  .asilo-guide {
    padding: 45px 5vw 70px;
  }
  .asilo-alert,
  .asilo-free,
  .asilo-important {
    padding: 22px;
  }
  .asilo-section {
    padding: 42px 0;
  }
  .asilo-section h2 {
    font-size: 38px;
  }
}
/* =========================
   GUIDA RESIDENZA
   ========================= */

.residenza-guide {
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 5vw 100px;
}

.residenza-intro {
  margin-bottom: 55px;
}

.residenza-intro h1 {
  max-width: 16ch;
  font-size: clamp(48px, 7vw, 86px);
  line-height: .92;
  letter-spacing: -.055em;
  margin-bottom: 28px;
}

.residenza-intro > p:last-child {
  max-width: 65ch;
  font-size: 19px;
  line-height: 1.55;
}

/* ATTENZIONE */

.residenza-alert {
  background: #b42318;
  color: #fff;
  padding: 30px;
  margin-bottom: 25px;
}

.residenza-alert .eyebrow {
  color: #fff;
}

.residenza-alert p {
  max-width: 70ch;
}

/* SEZIONI */

.residenza-section {
  padding: 60px 0;
  border-bottom: 1px solid var(--line);
}

.residenza-section > h2 {
  max-width: 15ch;
  font-size: clamp(38px, 5vw, 64px);
  line-height: .95;
  letter-spacing: -.05em;
  margin-bottom: 25px;
}

.section-intro {
  max-width: 68ch;
  font-size: 18px;
  line-height: 1.6;
  margin-bottom: 45px;
}

/* SINGOLI PASSAGGI */

.residenza-step {
  display: grid;
  grid-template-columns: 65px minmax(0, 720px);
  gap: 25px;
  padding: 32px 0;
  border-top: 1px solid var(--line);
}

.step-number {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
}

.residenza-step h3 {
  margin: 0 0 14px;
  font-size: 27px;
  letter-spacing: -.035em;
}

.residenza-step p {
  max-width: 68ch;
  line-height: 1.6;
}

.residenza-list {
  padding-left: 20px;
  max-width: 68ch;
}

.residenza-list li {
  margin-bottom: 12px;
  line-height: 1.5;
}

/* PROCEDURA GRATUITA */

.residenza-free {
  padding: 35px;
  border: 2px solid var(--ink);
  margin: 25px 0;
}

.residenza-free h2 {
  margin: 0;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: -.04em;
}

/* CIE */

.cie-info {
  max-width: 785px;
  padding: 25px 0;
  border-top: 1px solid var(--line);
}

.cie-info h3 {
  font-size: 25px;
  margin-bottom: 12px;
}

/* LINK COMUNE */

.official-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 30px 0;
}

.official-links a {
  border: 1px solid var(--ink);
  padding: 15px 18px;
  font-weight: 800;
}

.contact-box {
  max-width: 600px;
  padding: 25px;
  background: var(--paper-soft);
}

.contact-box p {
  margin: 8px 0;
}

/* RESIDENZA FITTIZIA */

.residenza-fittizia-title {
  margin: 35px 0 10px;
}

.residenza-fittizia-title span {
  display: inline-block;
  background: var(--ink);
  color: #fff;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .09em;
}

/* PASSAGGIO SUCCESSIVO */

.residenza-next {
  background: var(--ink);
  color: #fff;
  padding: 35px;
  margin-top: 55px;
}

.residenza-next .eyebrow {
  color: #fff;
}

.residenza-next h2 {
  max-width: 18ch;
  font-size: clamp(32px, 4vw, 50px);
  line-height: 1;
  letter-spacing: -.04em;
}

.residenza-next .text-link {
  color: #fff;
}

/* MODULI */

.document-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 25px;
}

/* MOBILE */

@media(max-width:600px) {
  .residenza-guide {
    padding: 45px 5vw 70px;
  }
  .residenza-intro h1 {
    font-size: 46px;
  }
  .residenza-alert,
  .residenza-free,
  .residenza-next {
    padding: 22px;
  }
  .residenza-section {
    padding: 45px 0;
  }
  .residenza-step {
    grid-template-columns: 36px 1fr;
    gap: 12px;
    padding: 25px 0;
  }
  .residenza-step h3 {
    font-size: 23px;
  }
  .official-links,
  .document-buttons {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* =========================================
   FIX LAYOUT PAGINA RESIDENZA
   allineato alla pagina RICHIESTA ASILO
   ========================================= */

.residenza-content {
  display: block;
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 5vw 100px;
}

/* BOX ATTENZIONE */

.residenza-content > .residenza-alert {
  width: 100%;
  margin: 0 0 24px;
  padding: 30px;
}

/* SEZIONI PRINCIPALI */

.residenza-content > .content-block.residenza-section {
  width: 100%;
  min-height: 0;
  padding: 55px 0;
  border-right: 0;
  border-bottom: 1px solid var(--line);
}

/* TITOLI */

.residenza-content .residenza-section > h2 {
  max-width: 14ch;
  font-size: clamp(36px, 5vw, 60px);
  line-height: .95;
  letter-spacing: -.05em;
  margin-bottom: 30px;
}

/* TESTO INTRODUTTIVO */

.residenza-content .residenza-section > p:not(.eyebrow) {
  max-width: 70ch;
  font-size: 17px;
  line-height: 1.6;
  margin-bottom: 30px;
}

/* PASSAGGI NUMERATI */

.residenza-content .residenza-step {
  max-width: 800px;
  display: grid;
  grid-template-columns: 65px minmax(0, 1fr);
  gap: 25px;
  padding: 28px 0;
  border-top: 1px solid var(--line);
}

/* BOX GRATUITO */

.residenza-content .residenza-free {
  max-width: 800px;
  padding: 30px;
  margin: 30px 0 0;
  border: 2px solid var(--ink);
}

.residenza-content .residenza-free h3 {
  margin: 0;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1;
  letter-spacing: -.04em;
}

/* INFO CIE */

.residenza-content .cie-info {
  max-width: 800px;
}

/* RESIDENZA FITTIZIA */

.residenza-content .residenza-fittizia-title {
  max-width: 800px;
}

/* PASSAGGIO SUCCESSIVO */

.residenza-content .residenza-next {
  max-width: 800px;
  padding: 30px;
  margin-top: 40px;
  background: var(--ink);
  color: #fff;
}

.residenza-content .residenza-next h3 {
  max-width: 18ch;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1;
  letter-spacing: -.04em;
}

/* LINK E CONTATTI */

.residenza-content .official-links,
.residenza-content .contact-box {
  max-width: 800px;
}

/* =========================
   MOBILE
   ========================= */

@media(max-width:600px) {
  .residenza-content {
    padding: 45px 5vw 70px;
  }
  .residenza-content > .residenza-alert {
    padding: 22px;
  }
  .residenza-content > .content-block.residenza-section {
    padding: 42px 0;
  }
  .residenza-content .residenza-section > h2 {
    font-size: 38px;
  }
  .residenza-content .residenza-section > p:not(.eyebrow) {
    font-size: 16px;
  }
  .residenza-content .residenza-step {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    padding: 25px 0;
  }
  .residenza-content .residenza-free,
  .residenza-content .residenza-next {
    padding: 22px;
  }
}
/* =========================================================
   INFO UTILI — HUB + PAGINE SERVIZI
   ========================================================= */

/* HUB */
.useful-hub,
.useful-guide{
  max-width:1100px;
  margin:0 auto;
  padding:70px 5vw 100px;
}

.useful-update{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  align-items:baseline;
  padding:16px 0 20px;
  margin-bottom:28px;
  border-bottom:1px solid var(--line);
  font-size:13px;
  color:var(--muted);
}

.useful-update strong{color:var(--ink)}

.useful-hub-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.useful-hub-card{
  min-height:330px;
  padding:30px;
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transition:background .18s ease,color .18s ease;
}

.useful-hub-card:hover,
.useful-hub-card:focus-visible{
  background:var(--ink);
  color:#fff;
}

.useful-card-number{
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--muted);
}

.useful-hub-card:hover .useful-card-number,
.useful-hub-card:focus-visible .useful-card-number{color:rgba(255,255,255,.62)}

.useful-hub-card h2{
  margin:44px 0 18px;
  max-width:12ch;
  font-size:clamp(34px,4vw,52px);
  line-height:.95;
  letter-spacing:-.05em;
}

.useful-hub-card p{
  max-width:48ch;
  margin-bottom:26px;
  color:var(--muted);
}

.useful-hub-card:hover p,
.useful-hub-card:focus-visible p{color:rgba(255,255,255,.76)}

.useful-card-link{
  margin-top:auto;
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
}

/* PAGINE DETTAGLIO */
.useful-back{
  display:inline-block;
  margin-bottom:22px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-decoration:underline;
  text-underline-offset:4px;
}

.useful-section{
  padding:55px 0;
  border-bottom:1px solid var(--line);
}

.useful-section>h2{
  max-width:14ch;
  margin-bottom:28px;
  font-size:clamp(38px,5vw,60px);
  line-height:.95;
  letter-spacing:-.05em;
}

.useful-section>p:not(.eyebrow){
  max-width:70ch;
  font-size:17px;
  line-height:1.6;
}

.useful-action{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:11px 15px;
  margin-top:10px;
  border:1px solid var(--ink);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}

.useful-action:hover,
.useful-action:focus-visible{background:var(--ink);color:#fff}

.useful-text-link,
.useful-inline-link{
  display:inline-block;
  margin-top:12px;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:4px;
}

/* PERCORSI / SPIEGAZIONI */
.useful-path-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:900px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.useful-path-card{
  padding:28px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.useful-path-card h3{
  margin-bottom:14px;
  font-size:28px;
  line-height:1;
  letter-spacing:-.04em;
}

.useful-path-card p{max-width:52ch;line-height:1.6}

/* AVVISI */
.useful-alert{
  max-width:900px;
  margin:45px 0 0;
  padding:32px;
}

.useful-alert-dark{
  background:var(--ink);
  color:#fff;
}

.useful-alert h2{
  max-width:17ch;
  margin-bottom:18px;
  font-size:clamp(30px,4vw,48px);
  line-height:1;
  letter-spacing:-.04em;
}

.useful-alert p:not(.eyebrow){max-width:65ch}
.useful-alert .useful-inline-link{color:#fff}

/* SCHEDE SERVIZI */
.service-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:1000px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.service-card{
  min-width:0;
  padding:28px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.service-card h3{
  margin-bottom:12px;
  font-size:30px;
  line-height:1;
  letter-spacing:-.04em;
}

.service-card p{max-width:55ch;line-height:1.55}
.service-card a:not(.useful-action){text-decoration:underline;text-underline-offset:3px}

.service-address{
  margin-bottom:18px;
  font-weight:800;
}

.service-note{
  color:var(--muted);
  font-size:13px;
}

.service-times{
  margin:20px 0;
  border-top:1px solid var(--line);
}

.service-times>div{
  display:grid;
  grid-template-columns:minmax(110px,.75fr) minmax(0,1.25fr);
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}

.service-times dt{font-size:12px;font-weight:800;letter-spacing:.03em}
.service-times dd{margin:0}

.service-badge{
  display:inline-block;
  margin:4px 0 18px;
  padding:8px 10px;
  background:var(--ink);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}

.service-badge-light{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--ink);
}

.info-pending{
  padding:12px 14px;
  border-left:3px solid var(--orange);
  background:var(--paper-soft);
  font-size:13px;
  font-weight:700;
}

/* LIVELLI ESAMI */
.useful-levels{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:800px;
  margin:24px 0 38px;
  border-top:1px solid var(--ink);
  border-left:1px solid var(--ink);
}

.useful-levels>div{
  padding:24px;
  border-right:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
}

.useful-levels strong{
  display:block;
  font-size:42px;
  line-height:1;
  letter-spacing:-.05em;
  margin-bottom:10px;
}

.useful-levels span{font-size:14px;font-weight:700}

/* MOBILE */
@media(max-width:760px){
  .useful-hub,
  .useful-guide{padding:45px 5vw 70px}
  .useful-hub-grid,
  .useful-path-grid,
  .service-grid,
  .useful-levels{grid-template-columns:1fr}
  .useful-hub-card{min-height:270px;padding:24px}
  .useful-hub-card h2{font-size:40px;margin-top:32px}
  .useful-section{padding:42px 0}
  .useful-section>h2{font-size:38px}
  .useful-section>p:not(.eyebrow){font-size:16px}
  .useful-alert{padding:22px}
  .service-card{padding:22px}
  .service-card h3{font-size:26px}
  .service-times>div{
    grid-template-columns:1fr;
    gap:3px;
  }
}
/* PAGINA SUPPORTO - INFO UTILI */

.support-info-block {
  grid-column: 1 / -1;
  border-right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.support-info-block > p:not(.eyebrow) {
  max-width: 65ch;
}

.support-info-block .button {
  margin-top: 10px;
}
/* =========================================
   PAGINA DONA
   ========================================= */

.dona-content {
  display: block;
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 5vw 100px;
}

/* SEZIONI */

.dona-content > .content-block.dona-section {
  width: 100%;
  min-height: 0;
  padding: 55px 0;
  border-right: 0;
  border-bottom: 1px solid var(--line);
}

.dona-section > h2 {
  max-width: 15ch;
  font-size: clamp(40px, 5vw, 64px);
  line-height: .95;
  letter-spacing: -.05em;
  margin-bottom: 28px;
}

.dona-section > p {
  max-width: 70ch;
  font-size: 17px;
  line-height: 1.6;
}

/* TESTO INTRODUTTIVO */

.dona-section .dona-intro {
  max-width: 65ch;
  font-size: 20px;
  line-height: 1.45;
  margin-bottom: 28px;
}

/* PUNTO RACCOLTA */

.dona-location {
  max-width: 850px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 40px 0;
  border: 1px solid var(--ink);
}

.dona-location > div {
  padding: 28px;
}

.dona-location > div:first-child {
  border-right: 1px solid var(--ink);
}

.dona-location h3 {
  margin: 0;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1;
  letter-spacing: -.04em;
}

/* COSA SERVE */

.dona-subsection {
  max-width: 850px;
  padding: 35px 0;
  margin-top: 20px;
  border-top: 1px solid var(--line);
}

.dona-material-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 45px;
  padding-left: 20px;
  margin: 0;
}

.dona-material-list li {
  padding: 10px 0;
  line-height: 1.45;
  border-bottom: 1px solid var(--line);
}

/* AVVISO MATERIALI */

.dona-important {
  max-width: 850px;
  padding: 24px 28px;
  margin: 10px 0 30px;
  background: var(--ink);
  color: #fff;
}

.dona-important p {
  margin: 0;
  font-size: 17px;
  line-height: 1.5;
}

/* BOTTONI */

.dona-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 30px;
}

/* EVIDENZA DONAZIONI */

.dona-highlight {
  max-width: 850px;
  padding: 28px;
  margin: 30px 0;
  border: 2px solid var(--ink);
}

.dona-highlight p {
  margin: 0;
  font-size: clamp(20px, 2.5vw, 27px);
  line-height: 1.3;
}

/* MODALITÀ DONAZIONE */

.donation-methods {
  max-width: 850px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 40px;
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
}

.donation-method {
  min-height: 240px;
  padding: 28px;
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.donation-method h3 {
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1;
  letter-spacing: -.04em;
}

.donation-label {
  margin-bottom: 5px;
  font-size: 13px;
  font-weight: 700;
}

.iban {
  overflow-wrap: anywhere;
  font-size: clamp(18px, 2.2vw, 25px);
  font-weight: 800;
  letter-spacing: .02em;
}

/* LABORATORIO */

.sewing-visit {
  max-width: 600px;
  padding: 28px;
  margin: 35px 0;
  background: var(--paper-soft);
}

.sewing-visit h3 {
  margin-bottom: 8px;
  font-size: clamp(27px, 3vw, 40px);
  line-height: 1;
  letter-spacing: -.04em;
}

.sewing-visit p:last-child {
  margin-bottom: 0;
}

/* =========================
   MOBILE
   ========================= */

@media(max-width:600px) {
  .dona-content {
    padding: 45px 5vw 70px;
  }
  .dona-content > .content-block.dona-section {
    padding: 42px 0;
  }
  .dona-section > h2 {
    font-size: 38px;
  }
  .dona-section > p {
    font-size: 16px;
  }
  .dona-section .dona-intro {
    font-size: 18px;
  }
  .dona-location {
    grid-template-columns: 1fr;
  }
  .dona-location > div:first-child {
    border-right: 0;
    border-bottom: 1px solid var(--ink);
  }
  .dona-material-list {
    grid-template-columns: 1fr;
  }
  .donation-methods {
    grid-template-columns: 1fr;
  }
  .dona-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .dona-actions .button {
    width: 100%;
  }
}
/* =========================================
   PAGINA DIVENTA VOLONTARIO
   ========================================= */

.volunteer-content {
  display: block;
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 5vw 100px;
}

/* SEZIONI */

.volunteer-content > .content-block.volunteer-section {
  width: 100%;
  min-height: 0;
  padding: 55px 0;
  border-right: 0;
  border-bottom: 1px solid var(--line);
}

.volunteer-section > h2 {
  max-width: 15ch;
  font-size: clamp(40px, 5vw, 64px);
  line-height: .95;
  letter-spacing: -.05em;
  margin-bottom: 28px;
}

.volunteer-section > p {
  max-width: 70ch;
  font-size: 17px;
  line-height: 1.6;
}

.volunteer-section .volunteer-intro {
  max-width: 65ch;
  font-size: 20px;
  line-height: 1.45;
  margin-bottom: 30px;
}

/* FRASE IN EVIDENZA */

.volunteer-highlight {
  max-width: 850px;
  padding: 28px;
  margin: 30px 0;
  border: 2px solid var(--ink);
}

.volunteer-highlight p {
  margin: 0;
  font-size: clamp(20px, 2.5vw, 27px);
  line-height: 1.3;
}

/* ATTIVITÀ */

.volunteer-activities {
  max-width: 900px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 45px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.volunteer-activity {
  min-height: 230px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.volunteer-activity > span {
  margin-bottom: auto;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--muted);
}

.volunteer-activity h3 {
  margin: 35px 0 12px;
  font-size: 27px;
  line-height: 1;
  letter-spacing: -.04em;
}

.volunteer-activity p {
  margin-bottom: 0;
  line-height: 1.5;
  color: var(--muted);
}

/* ultima attività a tutta larghezza */

.volunteer-activity:last-child {
  grid-column: 1 / -1;
  min-height: 200px;
}

/* WHATSAPP */

.whatsapp-box {
  max-width: 850px;
  padding: 35px;
  margin: 35px 0;
  background: var(--paper-soft);
  border: 1px solid var(--line);
}

.whatsapp-box h3 {
  max-width: 16ch;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1;
  letter-spacing: -.04em;
  margin-bottom: 20px;
}

.whatsapp-box > p:not(.eyebrow) {
  max-width: 60ch;
  line-height: 1.6;
  margin-bottom: 25px;
}

/* ALTRI CONTATTI */

.volunteer-other-contacts {
  max-width: 850px;
  padding-top: 30px;
  border-top: 1px solid var(--line);
}

.volunteer-other-contacts > p {
  max-width: 65ch;
}

.volunteer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 25px;
}

/* SEZIONE INCLUSIVITÀ */

.inclusive-statement {
  max-width: 850px;
  padding: 35px;
  margin: 35px 0;
  background: var(--ink);
  color: #fff;
}

.inclusive-statement .eyebrow {
  color: #fff;
}

.inclusive-statement h3 {
  max-width: 18ch;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1;
  letter-spacing: -.045em;
  margin-bottom: 25px;
}

.inclusive-statement > p:last-child {
  max-width: 65ch;
  margin-bottom: 0;
  line-height: 1.6;
}

/* RISPETTO E DISCREZIONE */

.volunteer-respect {
  max-width: 850px;
  padding: 30px;
  margin-top: 25px;
  border: 2px solid var(--ink);
}

.volunteer-respect h3 {
  font-size: clamp(27px, 3vw, 38px);
  line-height: 1;
  letter-spacing: -.04em;
  margin-bottom: 18px;
}

.volunteer-respect p:last-child {
  max-width: 65ch;
  margin-bottom: 0;
  line-height: 1.6;
}

/* =========================
   MOBILE
   ========================= */

@media(max-width:600px) {
  .volunteer-content {
    padding: 45px 5vw 70px;
  }
  .volunteer-content > .content-block.volunteer-section {
    padding: 42px 0;
  }
  .volunteer-section > h2 {
    font-size: 38px;
  }
  .volunteer-section > p {
    font-size: 16px;
  }
  .volunteer-section .volunteer-intro {
    font-size: 18px;
  }
  .volunteer-activities {
    grid-template-columns: 1fr;
  }
  .volunteer-activity:last-child {
    grid-column: auto;
  }
  .volunteer-activity {
    min-height: 200px;
  }
  .volunteer-highlight,
  .whatsapp-box,
  .inclusive-statement,
  .volunteer-respect {
    padding: 22px;
  }
  .volunteer-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .volunteer-actions .button {
    width: 100%;
  }
}
/* =========================================
   PAGINA PORTA MATERIALE
   ========================================= */

.material-content {
  display: block;
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 5vw 100px;
}

/* SEZIONI */

.material-content > .content-block.material-section {
  width: 100%;
  min-height: 0;
  padding: 55px 0;
  border-right: 0;
  border-bottom: 1px solid var(--line);
}

.material-section > h2 {
  max-width: 15ch;
  font-size: clamp(40px, 5vw, 64px);
  line-height: .95;
  letter-spacing: -.05em;
  margin-bottom: 30px;
}

/* LISTA MATERIALI */

.material-list {
  max-width: 800px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 0;
  margin: 35px 0 0;
  list-style: none;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.material-list li {
  padding: 20px 22px;
  font-size: 17px;
  font-weight: 700;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

/* PUNTO DI RACCOLTA */

.material-location {
  max-width: 800px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 35px;
  border: 1px solid var(--ink);
}

.material-location > div {
  padding: 28px;
}

.material-location > div:first-child {
  border-right: 1px solid var(--ink);
}

.material-location h3 {
  margin-bottom: 12px;
  font-size: clamp(27px, 3vw, 38px);
  line-height: 1;
  letter-spacing: -.04em;
}

.material-location p:last-child {
  margin-bottom: 0;
}

/* MOBILE */

@media(max-width:600px) {
  .material-content {
    padding: 45px 5vw 70px;
  }
  .material-content > .content-block.material-section {
    padding: 42px 0;
  }
  .material-section > h2 {
    font-size: 38px;
  }
  .material-list {
    grid-template-columns: 1fr;
  }
  .material-location {
    grid-template-columns: 1fr;
  }
  .material-location > div:first-child {
    border-right: 0;
    border-bottom: 1px solid var(--ink);
  }
}
/* =========================================
   LANDING PARTECIPA
   ========================================= */

.participate-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--line);
}

.participate-card {
  min-height: 460px;
  padding: 55px clamp(28px, 4vw, 60px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-right: 1px solid var(--line);
}

.participate-card:last-child {
  border-right: 0;
}

.participate-card h2 {
  max-width: 10ch;
  font-size: clamp(38px, 4vw, 56px);
  line-height: .95;
  letter-spacing: -.05em;
  margin-bottom: 25px;
}

.participate-card > p:not(.eyebrow) {
  max-width: 42ch;
  font-size: 17px;
  line-height: 1.55;
  color: var(--muted);
}

.participate-card .button {
  margin-top: auto;
}

/* TABLET */

@media(max-width:1000px) {
  .participate-grid {
    grid-template-columns: 1fr 1fr;
  }
  .participate-card {
    border-bottom: 1px solid var(--line);
  }
  .participate-card:nth-child(2) {
    border-right: 0;
  }
  .participate-card:last-child {
    grid-column: 1 / -1;
    min-height: 350px;
    border-right: 0;
  }
}

/* MOBILE */

@media(max-width:600px) {
  .participate-grid {
    grid-template-columns: 1fr;
  }
  .participate-card,
  .participate-card:last-child {
    grid-column: auto;
    min-height: 380px;
    padding: 42px 5vw;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .participate-card h2 {
    font-size: 38px;
  }
  .participate-card > p:not(.eyebrow) {
    font-size: 16px;
  }
}
/* =========================================
   LANDING COSA FACCIAMO
   ========================================= */

.what-we-do-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;

  border-bottom: 1px solid var(--line);
}


.what-we-do-card {
  min-height: 620px;

  padding: 65px clamp(30px, 5vw, 75px);

  display: flex;
  flex-direction: column;
  align-items: flex-start;

  border-right: 1px solid var(--line);
}


.what-we-do-card:last-child {
  border-right: 0;
}


.what-we-do-card h2 {
  max-width: 10ch;

  font-size: clamp(50px, 6vw, 78px);
  line-height: .9;
  letter-spacing: -.06em;

  margin-bottom: 28px;
}


.what-we-do-intro {
  max-width: 48ch;

  font-size: 18px;
  line-height: 1.55;

  color: var(--muted);

  margin-bottom: 35px;
}


/* LISTA ATTIVITÀ */

.what-we-do-list {
  width: 100%;
  max-width: 520px;

  padding: 0;
  margin: 0 0 40px;

  list-style: none;

  border-top: 1px solid var(--line);
}


.what-we-do-list li {
  padding: 14px 0;

  font-size: 15px;
  font-weight: 700;

  border-bottom: 1px solid var(--line);
}


.what-we-do-card .button {
  margin-top: auto;
}


/* MOBILE */

@media(max-width:760px) {

  .what-we-do-grid {
    grid-template-columns: 1fr;
  }


  .what-we-do-card {
    min-height: 560px;

    padding: 50px 5vw;

    border-right: 0;
    border-bottom: 1px solid var(--line);
  }


  .what-we-do-card h2 {
    font-size: 50px;
  }


  .what-we-do-intro {
    font-size: 17px;
  }

}
/* =========================================
   HOME - ATTIVITÀ E PARTECIPA AGGIORNATI
   ========================================= */


/* COSA FACCIAMO: DUE GRANDI AREE */

.home-activities-grid {
  grid-template-columns: repeat(2, 1fr);
}


.home-activities-grid article {
  min-height: 380px;
}


.home-activities-grid article .button {
  margin-top: auto;
}


/* PARTECIPA: TRE POSSIBILITÀ */

.support-home-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}


.support-home-grid-3 article {
  min-height: 430px;
}


/* TABLET */

@media(max-width:900px) {

  .home-activities-grid {
    grid-template-columns: 1fr;
  }

  .support-home-grid-3 {
    grid-template-columns: 1fr;
  }

}


/* MOBILE */

@media(max-width:520px) {

  .home-activities-grid article,
  .support-home-grid-3 article {
    min-height: 0;
  }

}
/* =========================================
   CAROSELLO HOME
   ========================================= */

.intro-carousel {
  position: relative;
  overflow: hidden;
}


.carousel-slide {
  position: absolute;
  inset: 0;

  opacity: 0;

  transition: opacity .8s ease;
}


.carousel-slide.active {
  opacity: 1;
  z-index: 1;
}


.carousel-slide img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  filter: saturate(.78) contrast(1.03);
}


/* FRECCE */

.carousel-arrow {
  position: absolute;
  bottom: 28px;

  z-index: 5;

  width: 48px;
  height: 48px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(255,255,255,.75);

  background: rgba(30,35,34,.65);
  color: #fff;

  font-size: 20px;

  cursor: pointer;

  backdrop-filter: blur(5px);
}


.carousel-prev {
  right: 86px;
}


.carousel-next {
  right: 28px;
}


.carousel-arrow:hover {
  background: var(--ink);
}


/* PALLINI */

.carousel-dots {
  position: absolute;

  left: 28px;
  bottom: 42px;

  z-index: 5;

  display: flex;
  gap: 8px;
}


.carousel-dot {
  width: 8px;
  height: 8px;

  padding: 0;

  border: 1px solid #fff;
  border-radius: 50%;

  background: transparent;

  cursor: pointer;
}


.carousel-dot.active {
  background: #fff;
}


/* MOBILE */

@media(max-width:840px) {

  .carousel-arrow {
    bottom: 20px;

    width: 42px;
    height: 42px;
  }


  .carousel-prev {
    right: 72px;
  }


  .carousel-next {
    right: 20px;
  }


  .carousel-dots {
    left: 20px;
    bottom: 35px;
  }

}
/* =========================================
   CARD ATTIVITÀ CON IMMAGINE
   ========================================= */

.activity-card {
  display: flex;
  flex-direction: column;
}

.activity-image {
  width: 100%;
  height: 220px;

  overflow: hidden;

  margin-bottom: 28px;

  border: 1px solid var(--line);
}

.activity-image img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}


/* MOBILE */

@media(max-width:840px) {

  .activity-image {
    height: 200px;
    margin-bottom: 24px;
  }

}
/* =========================================
   PAGINA COS'È LA ROTTA BALCANICA
   ========================================= */

.route-hero {
  text-align: center;

  display: flex;
  flex-direction: column;
  align-items: center;
}


.route-hero h1 {
  max-width: 14ch;
  margin-left: auto;
  margin-right: auto;
}


.route-hero-image {
  width: min(900px, 100%);
  height: 420px;

  margin: 10px auto 40px;

  overflow: hidden;

  border: 1px solid var(--line);
}


.route-hero-image img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}


.route-hero .page-lead {
  max-width: 70ch;

  margin-left: auto;
  margin-right: auto;

  text-align: center;
}


/* MOBILE */

@media(max-width:840px) {

  .route-hero-image {
    height: 260px;
    margin-bottom: 30px;
  }

}
.aiuto-documenti {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;

  text-align: center;

  display: flex;
  flex-direction: column;
  align-items: center;
}

.aiuto-documenti p {
  margin-left: auto;
  margin-right: auto;
}

.aiuto-documenti .button {
  margin-top: 10px;
}
.insieme-courses {
  margin-top: 28px;
}

.insieme-courses .eyebrow {
  margin-bottom: 12px;
}

.insieme-online-title {
  margin-top: 30px;
}
@media(min-width:841px){

  .nav-item.has-dropdown{
    display:grid;
    grid-template-columns:auto 42px;
    align-items:stretch;
  }

  .nav-item.has-dropdown > .nav-main{
    display:flex;
    align-items:center;
    border-right:0;
  }

  .nav-item.has-dropdown > .dropdown-toggle{
    width:42px;
    height:100%;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:0;

    border:0;
    border-right:1px solid var(--line);

    background:transparent;

    cursor:pointer;
    font-size:18px;
  }

  .nav-item.has-dropdown:hover > .nav-main,
  .nav-item.has-dropdown:focus-within > .nav-main{
    border-right:0;
  }

  .nav-item.has-dropdown > .dropdown-toggle:hover,
  .nav-item.has-dropdown > .dropdown-toggle:focus-visible{
    background:var(--paper-soft);
  }

}.nav-item.has-dropdown:hover > .nav-main,
.nav-item.has-dropdown:focus-within > .nav-main{
  border-right:0;
}
@media(min-width:841px){

  .nav-item.has-dropdown:has(> .dropdown-toggle:hover) > .dropdown-menu {
    display:block;
  }

  .nav-item.has-dropdown:has(> .dropdown-toggle:focus-visible) > .dropdown-menu {
    display:block;
  }

}
/* =========================================
   DROPDOWN DESKTOP ALLINEATO AL PULSANTE
   ========================================= */

@media(min-width:841px){

  .nav-item.has-dropdown > .dropdown-menu{
    left:0;
    width:100%;
    min-width:100%;
    box-sizing:border-box;
  }

}
/* =========================================
   TESTO PAGINA ROTTA BALCANICA
   ========================================= */

.route-text {
  max-width: 760px;
  margin: 0 auto;

  text-align: left;
}

.route-text p {
  margin: 0 0 24px;

  font-size: 18px;
  line-height: 1.7;
}

.route-text p:last-child {
  margin-bottom: 0;
}

.route-text strong {
  font-weight: 800;
}

.route-text em {
  font-style: italic;
  font-weight: 700;
}


/* MOBILE */

@media(max-width:840px) {

  .route-text {
    max-width: 100%;
  }

  .route-text p {
    font-size: 16px;
    line-height: 1.65;
  }

}
/* =========================================================
   COOKIE / PRIVACY
   ========================================================= */

.cookie-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;

  z-index:99999;

  padding:18px;

  background:rgba(30,35,34,.45);
  backdrop-filter:blur(6px);
}


.cookie-banner-inner{
  position:relative;

  max-width:1200px;
  margin:0 auto;

  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:40px;
  align-items:end;

  padding:30px 34px;

  background:var(--paper);
  border:1px solid var(--ink);

  box-shadow:0 -10px 35px rgba(0,0,0,.16);
}


.cookie-copy{
  max-width:720px;
}


.cookie-copy h2,
.cookie-settings-panel h2{
  margin:0 0 15px;

  font-size:clamp(30px,4vw,48px);
  line-height:1;
  letter-spacing:-.045em;
}


.cookie-copy p:not(.eyebrow){
  max-width:65ch;

  margin-bottom:15px;

  font-size:15px;
  line-height:1.55;
}


.cookie-copy a,
.cookie-settings-info a{
  font-size:13px;
  font-weight:800;

  text-decoration:underline;
  text-underline-offset:3px;
}


.cookie-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;

  justify-content:flex-end;
}


.cookie-button{
  min-height:46px;

  padding:11px 17px;

  border:1px solid var(--ink);

  cursor:pointer;

  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}


.cookie-button-dark{
  background:var(--ink);
  color:#fff;
}


.cookie-button-outline{
  background:var(--paper);
  color:var(--ink);
}


.cookie-button:hover,
.cookie-button:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:2px;
}


.cookie-close{
  position:absolute;

  top:12px;
  right:16px;

  width:38px;
  height:38px;

  border:0;
  background:transparent;

  cursor:pointer;

  font-size:27px;
  line-height:1;
}


/* =========================================================
   IMPOSTAZIONI
   ========================================================= */

.cookie-settings{
  display:none;

  position:fixed;
  inset:0;

  z-index:100000;

  align-items:center;
  justify-content:center;

  padding:25px;

  background:rgba(30,35,34,.72);
}


.cookie-settings.open{
  display:flex;
}


.cookie-settings-panel{
  position:relative;

  width:min(680px,100%);
  max-height:90vh;

  overflow:auto;

  padding:40px;

  background:var(--paper);
  border:1px solid var(--ink);
}


.cookie-category{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:25px;
  align-items:center;

  padding:24px 0;

  border-top:1px solid var(--line);
}


.cookie-category:last-of-type{
  border-bottom:1px solid var(--line);
}


.cookie-category strong{
  display:block;

  margin-bottom:7px;

  font-size:18px;
}


.cookie-category p{
  max-width:55ch;

  margin:0;

  color:var(--muted);

  font-size:14px;
}


.cookie-always{
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}


/* SWITCH */

.cookie-switch{
  position:relative;

  display:inline-block;

  width:52px;
  height:28px;
}


.cookie-switch input{
  position:absolute;

  width:1px;
  height:1px;

  opacity:0;
}


.cookie-slider{
  position:absolute;
  inset:0;

  cursor:pointer;

  background:var(--paper-soft);
  border:1px solid var(--ink);
}


.cookie-slider::before{
  content:"";

  position:absolute;

  width:20px;
  height:20px;

  left:3px;
  top:3px;

  background:var(--ink);

  transition:.2s;
}


.cookie-switch input:checked + .cookie-slider{
  background:var(--orange);
}


.cookie-switch input:checked + .cookie-slider::before{
  transform:translateX(24px);
}


.cookie-settings-info{
  margin:25px 0;

  font-size:13px;
  line-height:1.55;
}


/* =========================================================
   INSTAGRAM BLOCCATO
   ========================================================= */

.instagram-consent-placeholder{
  width:min(620px,100%);

  padding:40px;

  background:var(--paper);

  border:1px solid var(--line);

  text-align:left;
}


.instagram-consent-placeholder h3{
  margin-bottom:15px;

  font-size:clamp(30px,4vw,48px);
  line-height:1;
  letter-spacing:-.045em;
}


.instagram-consent-placeholder > p:not(.eyebrow){
  max-width:50ch;

  margin-bottom:25px;

  color:var(--muted);
}


.instagram-direct-link{
  display:block;

  margin-top:18px;

  font-size:12px;
  font-weight:800;

  text-decoration:underline;
  text-underline-offset:3px;
}


/* =========================================================
   RIAPRI PREFERENZE
   ========================================================= */

.manage-cookies{
  position:fixed;

  left:14px;
  bottom:14px;

  z-index:9000;

  padding:8px 11px;

  border:1px solid var(--ink);

  background:var(--paper);
  color:var(--ink);

  cursor:pointer;

  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;

  box-shadow:0 4px 16px rgba(0,0,0,.10);
}


/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:760px){

  .cookie-banner{
    padding:10px;
  }

  .cookie-banner-inner{
    grid-template-columns:1fr;

    gap:22px;

    padding:28px 22px 22px;
  }

  .cookie-copy{
    padding-right:22px;
  }

  .cookie-actions{
    display:grid;
    grid-template-columns:1fr;

    width:100%;
  }

  .cookie-button{
    width:100%;
  }

  .cookie-settings{
    padding:12px;
  }

  .cookie-settings-panel{
    padding:32px 22px 24px;
  }

  .cookie-category{
    grid-template-columns:1fr auto;
    gap:15px;
  }

  .instagram-consent-placeholder{
    padding:25px;
  }

}
/* =========================================================
   PRIVACY E COOKIE POLICY
   ========================================================= */

.privacy-guide{
  max-width:1100px;
  margin:0 auto;
  padding:70px 5vw 100px;
}

.privacy-update{
  padding:16px 0 20px;
  margin-bottom:28px;
  border-bottom:1px solid var(--line);
  font-size:13px;
  color:var(--muted);
}

.privacy-update strong{
  color:var(--ink);
}

.privacy-section{
  padding:55px 0;
  border-bottom:1px solid var(--line);
}

.privacy-section h2{
  max-width:16ch;
  margin-bottom:28px;
  font-size:clamp(38px,5vw,60px);
  line-height:.95;
  letter-spacing:-.05em;
}

.privacy-section > p:not(.eyebrow){
  max-width:72ch;
  font-size:17px;
  line-height:1.65;
}

.privacy-section a{
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

.privacy-contact{
  max-width:760px;
  margin-top:30px;
  padding:28px;
  border:1px solid var(--line);
  background:var(--paper-soft);
}

.privacy-contact p{
  margin:0 0 10px;
}

.privacy-contact p:last-child{
  margin-bottom:0;
}

.privacy-table-wrap{
  max-width:900px;
  margin:30px 0;
  overflow-x:auto;
}

.privacy-table{
  width:100%;
  border-collapse:collapse;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.privacy-table th,
.privacy-table td{
  padding:16px;
  vertical-align:top;
  text-align:left;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.privacy-table th{
  font-size:12px;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.privacy-table td{
  font-size:14px;
  line-height:1.5;
}

.privacy-external-link{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  margin-top:15px;
  padding:11px 15px;
  border:1px solid var(--ink);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-decoration:none !important;
}

.privacy-external-link:hover,
.privacy-external-link:focus-visible{
  background:var(--ink);
  color:#fff;
}

.footer-legal{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap;
  gap:18px;
  align-items:center;
}

@media(max-width:760px){

  .privacy-guide{
    padding:45px 5vw 70px;
  }

  .privacy-section{
    padding:42px 0;
  }

  .privacy-section h2{
    font-size:38px;
  }

  .privacy-section > p:not(.eyebrow){
    font-size:16px;
  }

  .privacy-contact{
    padding:22px;
  }

  .privacy-table th,
  .privacy-table td{
    padding:13px;
  }

  .footer-legal{
    flex-direction:column !important;
    align-items:flex-start;
    gap:10px;
  }

}