:root{
    --paper: #F6F2F8;
    --paper-2: #EDE4F1;
    --ink: #2A2230;
    --ink-soft: #5C5265;
    --teal: #6551a1;
    --teal-deep: #422f89;
    --teal-tint: #EDE7F5;
    --amber: #83308f;
    --amber-tint: #F5E6F2;
    --plum: #83308f;
    --plum-tint: #F5E6F2;
    --line: #DED2E3;
    --white: #FFFDFC;
    --radius: 18px;
    --radius-sm: 12px;
    --shadow: 0 6px 24px rgba(18,52,48,0.08), 0 1px 3px rgba(18,52,48,0.08);
    --maxw: 1140px;
    --step-0: 1.05rem;
    --step-1: 1.25rem;
    --step-2: 1.6rem;
    --step-3: 2.1rem;
    --step-4: 2.8rem;
    --step-5: 3.6rem;
  }

html[data-textsize="lg"]{
    font-size:112.5%;
    --step-0: 1.2rem;
    --step-1: 1.4rem;
    --step-2: 1.75rem;
    --step-3: 2.3rem;
    --step-4: 3rem;
    --step-5: 3.8rem;
  }

html[data-textsize="xl"]{
    font-size:125%;
    --step-0: 1.35rem;
    --step-1: 1.55rem;
    --step-2: 1.9rem;
    --step-3: 2.5rem;
    --step-4: 3.2rem;
    --step-5: 4rem;
  }

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Plus Jakarta Sans', system-ui, sans-serif;
    font-size:var(--step-0);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

h1,h2,h3,h4{
    font-family:'Plus Jakarta Sans', system-ui, sans-serif;
    font-weight:560;
    color:var(--teal-deep);
    line-height:1.15;
    margin:0 0 0.5em;
    letter-spacing:-0.01em;
  }

h1{font-size:var(--step-5);}

h2{font-size:var(--step-4);}

h3{font-size:var(--step-2);}

h4{font-size:var(--step-1);}

p{margin:0 0 1em;}

a{color:var(--teal);}

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

img{max-width:100%;display:block;}

.container{max-width:var(--maxw);margin:0 auto;padding:0 28px;}

.eyebrow{
    font-family:'Plus Jakarta Sans',sans-serif;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.14em;
    font-size:0.78rem;
    color:var(--amber);
    margin-bottom:14px;
  }

/* skip link */
  .skip-link{
    position:absolute;left:-999px;top:auto;background:var(--teal-deep);color:#fff;padding:14px 22px;
    border-radius:0 0 10px 0;z-index:200;font-weight:700;
  }

.skip-link:focus{left:0;top:0;}

/* ---------- HEADER ---------- */
  section[id]{scroll-margin-top:150px;}

header.site{
    position:sticky;top:0;z-index:1000;
    background:rgba(242,240,228,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }

.header-inner{
    max-width:1500px;margin:0 auto;padding:8px 28px;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    flex-wrap:nowrap;
  }

.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;}

.logo-full{height:112px;width:auto;display:block;}

.logo-mark{display:none;height:72px;width:auto;}

nav.main-nav{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;justify-content:flex-end;}

nav.main-nav a{
    text-decoration:none;color:var(--ink);font-weight:700;font-size:0.88rem;white-space:nowrap;
    padding:8px 9px;border-radius:999px;transition:background .15s ease, color .15s ease;
  }

nav.main-nav a:hover{background:var(--teal-tint);color:var(--teal-deep);}

.nav-cta{
    background:var(--teal) !important;color:#fff !important;
    padding:10px 18px !important;
  }

.nav-cta:hover{background:var(--teal-deep) !important;}

.header-tools{display:flex;align-items:center;gap:12px;flex:none;}

.phone-pill{
    display:flex;align-items:center;gap:8px;text-decoration:none;
    background:var(--amber-tint);color:var(--teal-deep);font-weight:700;
    padding:9px 16px;border-radius:999px;font-size:0.95rem;white-space:nowrap;
  }

.textsize-group{display:flex;align-items:center;gap:2px;background:var(--paper-2);border-radius:999px;padding:3px;}

.textsize-group button{
    border:none;background:transparent;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;
    color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:6px 10px;line-height:1;
  }

.textsize-group button[aria-pressed="true"]{background:var(--teal);color:#fff;}

.textsize-group button:first-child{font-size:0.75rem;}

.textsize-group button:nth-child(2){font-size:0.95rem;}

.textsize-group button:last-child{font-size:1.15rem;}

.burger{display:none;}

@media (max-width: 1360px){
    nav.main-nav{display:none;}
    .burger{display:inline-flex;border:none;background:var(--teal-tint);border-radius:10px;padding:10px;cursor:pointer;flex:none;}
    body.nav-open{overflow:hidden;}
    body.nav-open nav.main-nav{
      display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
      position:absolute;top:100%;left:0;right:0;bottom:auto;
      max-height:calc(100vh - var(--header-h, 130px));
      background:var(--paper);
      padding:20px 28px;overflow-y:auto;-webkit-overflow-scrolling:touch;
      z-index:1001;gap:4px;
      border-bottom:1px solid var(--line);
      box-shadow:0 16px 32px rgba(18,52,48,0.14);
    }
    body.nav-open nav.main-nav a{font-size:1.15rem;padding:14px 16px;}
  }

/* Progressive compaction of the header so nothing is ever pushed off-screen */
  @media (max-width: 640px){
    .header-inner{padding:8px 16px;gap:8px;}
    .logo-full{display:none;}
    .logo-mark{display:block;}
    .header-tools{gap:8px;}
    .phone-pill{padding:9px;border-radius:50%;}
    .phone-pill .phone-text{display:none;} /* icon-only call button */
    .textsize-group button{padding:6px 8px;}
  }

/* ---------- HERO ---------- */
  .hero{
    position:relative;overflow:hidden;
    padding:72px 0 96px;
    background:
      radial-gradient(1100px 420px at 85% -10%, var(--amber-tint) 0%, transparent 60%),
      var(--paper);
  }

.hero-thread{
    position:absolute;inset:0;width:100%;height:100%;
    opacity:0.5;pointer-events:none;
  }

.hero-grid{
    position:relative;z-index:2;
    display:grid;grid-template-columns:1.15fr 0.85fr;gap:56px;align-items:center;
  }

.hero h1{max-width:14ch;}

.hero .lede{font-size:var(--step-1);color:var(--ink-soft);max-width:46ch;margin-bottom:1.6em;}

.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:1.8em;}

.btn{
    display:inline-flex;align-items:center;gap:10px;
    font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:1rem;
    padding:15px 26px;border-radius:999px;text-decoration:none;border:2px solid transparent;
    transition:transform .12s ease, box-shadow .12s ease, background .15s ease;
  }

.btn:hover{transform:translateY(-2px);}

.btn-primary{background:var(--teal);color:#fff;box-shadow:var(--shadow);}

.btn-primary:hover{background:var(--teal-deep);}

.btn-ghost{background:transparent;border-color:var(--teal);color:var(--teal-deep);}

.btn-ghost:hover{background:var(--teal-tint);}

.btn-amber{background:var(--amber);color:#fff;}

.btn-amber:hover{background:#6d1f68;}

.hero-card{
    background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:var(--shadow);padding:30px;position:relative;
  }

.hero-card .eyebrow{margin-bottom:10px;}

.hero-stat-row{display:flex;gap:22px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line);}

.hero-stat b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:1.6rem;color:var(--teal-deep);}

.hero-stat span{font-size:0.85rem;color:var(--ink-soft);}

@media (max-width: 900px){
    .hero-grid{grid-template-columns:1fr;}
    .hero h1{max-width:none;}
  }

/* ---------- SECTION GENERIC ---------- */
  section{padding:88px 0;}

.section-alt{background:var(--white);}

.section-teal{background:var(--teal-deep);color:#F1E9F6;}

.section-teal h2, .section-teal h3, .section-teal h4{color:#fff;}

.section-teal .support-card h4, .section-teal .board-card h4{color:var(--teal-deep);}

.section-teal .eyebrow{color:#F0C4E5;}

.section-teal strong{color:#fff;}

.section-teal u{color:#fff;text-decoration-color:#F0C4E5;}

.section-head{max-width:62ch;margin-bottom:48px;}

.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

/* ---------- CHI SIAMO ---------- */
  .chi-siamo-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}

.chi-siamo-fig{
    background:var(--teal-tint);border-radius:var(--radius);padding:34px;border:1px solid var(--line);
  }

.chi-siamo-fig ul{margin:0;padding-left:1.2em;}

.chi-siamo-fig li{margin-bottom:0.6em;}

@media (max-width:900px){.chi-siamo-grid{grid-template-columns:1fr;}}

/* ---------- SERVIZI ---------- */
  .cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

@media (max-width:900px){.cards-grid{grid-template-columns:1fr 1fr;}}

@media (max-width:600px){.cards-grid{grid-template-columns:1fr;}}

.service-card{
    background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
    padding:28px;transition:box-shadow .15s ease, transform .15s ease;
  }

.service-card:hover{box-shadow:var(--shadow);transform:translateY(-3px);}

.service-icon{
    width:52px;height:52px;border-radius:14px;background:var(--amber-tint);
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  }

.service-icon svg{width:26px;height:26px;stroke:var(--teal-deep);}

.service-card h4{margin-bottom:0.4em;}

.service-card p{color:var(--ink-soft);font-size:0.98rem;margin-bottom:0;}

/* ---------- SPORTELLI + FILO DELLA MEMORIA ---------- */
  .sportelli-wrap{position:relative;}

.thread-svg{position:absolute;left:36px;top:36px;bottom:36px;width:6px;z-index:0;}

.thread-svg svg{height:100%;width:100%;overflow:visible;}

.sportelli-list{list-style:none;margin:0;padding:0;position:relative;z-index:1;}

.sportello-item{
    display:grid;grid-template-columns:88px 1fr;gap:24px;padding:28px 0;
  }

.sportello-item + .sportello-item{border-top:1px dashed var(--line);}

.sportello-node{
    width:20px;height:20px;border-radius:50%;background:var(--amber);
    border:5px solid var(--paper);box-shadow:0 0 0 2px var(--amber);
    margin:6px auto 0 46px;position:relative;z-index:2;
  }

.sportello-body{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px 26px;}

.sportello-body h4{margin-bottom:0.3em;}

.sportello-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin:10px 0 14px;color:var(--ink-soft);font-size:0.95rem;}

.sportello-meta strong{color:var(--ink);}

.tag{
    display:inline-block;background:var(--plum-tint);color:var(--plum);font-weight:700;
    font-size:0.75rem;letter-spacing:0.05em;text-transform:uppercase;padding:4px 10px;border-radius:999px;
  }

@media (max-width:700px){
    .sportello-item{grid-template-columns:1fr;}
    .sportello-node{display:none;}
    .thread-svg{display:none;}
  }

/* ---------- COSA FA LO SPORTELLO ---------- */
  .split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}

@media (max-width:900px){.split{grid-template-columns:1fr;}}

.split img{border-radius:var(--radius);box-shadow:var(--shadow);}

/* ---------- NEWS ---------- */
  .news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

@media (max-width:980px){.news-grid{grid-template-columns:1fr 1fr;}}

@media (max-width:640px){.news-grid{grid-template-columns:1fr;}}

.news-card{
    background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
    padding:26px;display:flex;flex-direction:column;height:100%;
  }

.news-date{font-size:0.82rem;font-weight:700;color:var(--amber);letter-spacing:0.04em;text-transform:uppercase;margin-bottom:10px;}

.news-card h4{margin-bottom:10px;font-size:1.15rem;}

.news-card p{color:var(--ink-soft);font-size:0.95rem;flex-grow:1;}

.news-footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);}

.read-more{font-weight:700;text-decoration:none;color:var(--teal);font-size:0.92rem;}

.share-row{display:flex;gap:8px;}

.share-btn{
    width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:var(--teal-tint);color:var(--teal-deep);text-decoration:none;border:1px solid var(--line);
  }

.share-btn svg{width:16px;height:16px;}

.share-btn:hover{background:var(--amber-tint);}

.news-cta-row{text-align:center;margin-top:44px;}

/* ---------- RISORSE ---------- */
  .resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

@media (max-width:900px){.resource-grid{grid-template-columns:1fr;}}

.resource-card{
    background:var(--teal-tint);border-radius:var(--radius);padding:30px;border:1px solid var(--line);
    display:flex;flex-direction:column;height:100%;
  }

.resource-card h4{margin-bottom:8px;}

.resource-card p{color:var(--ink-soft);flex-grow:1;}

.resource-card .btn{align-self:flex-start;margin-top:10px;}

/* quote band */
  .quote-band{
    padding:80px 0;text-align:center;background:var(--teal-deep);color:#fff;
  }

.quote-band cite{display:block;margin-top:20px;font-style:normal;font-family:'Plus Jakarta Sans',sans-serif;color:#F0C4E5;font-weight:700;font-size:0.9rem;letter-spacing:0.05em;text-transform:uppercase;}

/* ---------- SOSTIENI / 5x1000 / VOLONTARI ---------- */
  .support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

@media (max-width:980px){.support-grid{grid-template-columns:1fr;}}

.support-card{
    background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
    padding:32px;display:flex;flex-direction:column;height:100%;
  }

.support-card .btn{margin-top:auto;align-self:flex-start;}

.support-card .cf-box{margin-top:auto;margin-bottom:0;}

.support-grid{align-items:stretch;}

.support-card .eyebrow{color:var(--plum);}

.cf-box{
    background:var(--teal-tint);border-radius:var(--radius-sm);padding:14px 18px;font-family:'Plus Jakarta Sans',monospace;
    font-weight:700;font-size:1.05rem;letter-spacing:0.03em;margin:14px 0;border:1.5px solid var(--teal);color:var(--teal-deep);
  }

/* ---------- FOOTER ---------- */
  footer{background:var(--teal-deep);color:#DCC9E4;padding:56px 0 28px;}

.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px;align-items:start;}

@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}

@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

footer h4{color:#F0C4E5;font-size:0.85rem;margin:0 0 16px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;}

footer a{color:#DCC9E4;text-decoration:none;}

footer a:hover{color:#fff;text-decoration:underline;}

footer ul{list-style:none;margin:0;padding:0;}

footer li{margin-bottom:9px;font-size:0.92rem;}

.footer-brand p{color:#C8B4CE;max-width:30ch;font-size:0.85rem;line-height:1.6;margin-bottom:12px;}

.footer-brand p a{color:#E8D9F0;}

.footer-logo-wrap{margin-bottom:20px !important;}

.footer-logo-wrap{display:flex;align-items:center;margin-top:0;}

.footer-brand{margin-top:0;}

.footer-social{display:flex;gap:12px;margin-top:16px;}

.footer-social a{
    width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);
    display:flex;align-items:center;justify-content:center;
  }

.footer-social a:hover{background:var(--amber);}

.footer-social svg{width:18px;height:18px;fill:#fff;}

.footer-bottom{
    border-top:1px solid rgba(255,255,255,0.12);padding-top:24px;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
    font-size:0.85rem;color:#B29CBC;
  }

@media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;}
  }

/* ---------- COOKIE BANNER ---------- */
  .cookie-banner{
    position:fixed;right:16px;bottom:16px;z-index:300;
    max-width:280px;width:calc(100% - 32px);
    background:var(--white);border:1px solid var(--line);border-radius:14px;
    box-shadow:0 8px 28px rgba(67,39,126,0.18);
    padding:16px 16px 14px;
    transform:translateY(16px);opacity:0;pointer-events:none;
    transition:transform .35s ease, opacity .35s ease;
  }

.cookie-banner.is-visible{transform:translateY(0);opacity:1;pointer-events:auto;}

.cookie-banner-icon{
    width:28px;height:28px;border-radius:50%;background:var(--teal-tint);
    display:flex;align-items:center;justify-content:center;margin-bottom:8px;
  }

.cookie-banner-icon svg{width:14px;height:14px;stroke:var(--teal-deep);}

.cookie-banner-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:0.95rem;color:var(--teal-deep);margin:0 0 6px;}

.cookie-banner p{
    font-size:0.76rem;line-height:1.45;color:var(--ink-soft);margin-bottom:10px;
  }

.cookie-banner p a{color:var(--teal);font-weight:700;text-decoration:underline;}

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

.cookie-banner-actions button{
    font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:0.76rem;
    border-radius:999px;padding:7px 13px;cursor:pointer;border:1.5px solid transparent;
    transition:background .15s ease, transform .12s ease;
  }

.cookie-banner-actions button:hover{transform:translateY(-1px);}

.cookie-btn-accept{background:var(--teal);color:#fff;}

.cookie-btn-accept:hover{background:var(--teal-deep);}

.cookie-btn-reject{background:transparent;border-color:var(--line);color:var(--ink-soft);}

.cookie-btn-reject:hover{border-color:var(--teal);color:var(--teal-deep);}

.cookie-banner-settings{
    display:block;margin-top:10px;font-size:0.8rem;color:var(--ink-soft);
    text-decoration:underline;background:none;border:none;cursor:pointer;padding:0;
    font-family:'Plus Jakarta Sans',sans-serif;
  }

@media (max-width:480px){
    .cookie-banner{right:12px;bottom:12px;left:12px;max-width:none;width:auto;}
  }

/* ---------- BACK TO TOP ---------- */
  .back-to-top{
    position:fixed;left:20px;bottom:20px;z-index:250;
    width:46px;height:46px;border-radius:50%;
    background:var(--teal);color:#fff;border:none;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 6px 20px rgba(67,39,126,0.28);
    opacity:0;pointer-events:none;transform:translateY(10px);
    transition:opacity .25s ease, transform .25s ease, background .15s ease;
  }

.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0);}

.back-to-top:hover{background:var(--teal-deep);}

@media (max-width:480px){.back-to-top{left:14px;bottom:14px;width:42px;height:42px;}}

/* ---------- FLOATING TEXT-SIZE CONTROL (sempre visibile, basso a sx) ---------- */
  .floating-textsize{
    position:fixed;left:20px;bottom:76px;z-index:250;
    display:flex;align-items:center;gap:2px;
    background:var(--white);border:1px solid var(--line);border-radius:999px;
    padding:5px;box-shadow:0 6px 20px rgba(67,39,126,0.18);
  }

.floating-textsize button{
    border:none;background:transparent;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;
    color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:7px 10px;line-height:1;
  }

.floating-textsize button[aria-pressed="true"]{background:var(--teal);color:#fff;}

.floating-textsize button:first-child{font-size:0.72rem;}

.floating-textsize button:nth-child(2){font-size:0.9rem;}

.floating-textsize button:last-child{font-size:1.05rem;}

@media (max-width:480px){.floating-textsize{left:14px;bottom:68px;}}
