/* ═══════════════════════════════════════════
   css/contact.css — algo-freedom society
   Stili specifici di contact.php — Contatti
   ═══════════════════════════════════════════ */

    .contact-hero{
      position:relative;
      min-height:300px;
      background:
        linear-gradient(108deg,rgba(8,22,44,.94) 0%,rgba(10,26,52,.66) 48%,rgba(14,32,58,.20) 100%),
        linear-gradient(135deg,#030b17 0%,#071829 35%,#0f2a46 65%,#1a3f60 100%);
      overflow:hidden;
      display:flex;
      align-items:center;
    }
    .contact-hero canvas{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.45; }
    /* dot grid */
    .contact-hero::before{
      content:"";
      position:absolute; inset:0;
      background-image:
        radial-gradient(circle,rgba(105,168,232,.18) 1px,transparent 1px);
      background-size:40px 40px;
      pointer-events:none;
    }
    .contact-hero::after{
      content:"";
      position:absolute; inset:0;
      background:
        radial-gradient(700px 280px at 8% 24%,rgba(105,168,232,.14),transparent 60%),
        radial-gradient(500px 240px at 82% 65%,rgba(63,121,183,.10),transparent 58%);
      pointer-events:none; mix-blend-mode:screen;
    }
    .contact-hero-inner{
      position:relative; z-index:2;
      padding:68px 0 62px;
      color:#fff;
      display:flex; align-items:flex-end; justify-content:space-between; gap:40px;
    }
    .contact-hero-left{ flex:1; }
    .contact-hero-badge{
      display:inline-flex; align-items:center; gap:10px;
      background:rgba(105,168,232,.14); border:1px solid rgba(105,168,232,.26);
      border-radius:999px; padding:6px 16px;
      font-size:12.5px; font-weight:700; letter-spacing:.6px; text-transform:uppercase;
      color:rgba(105,168,232,.95); margin-bottom:18px;
      animation:fadeSlide .7s ease both;
    }
    .contact-hero-badge .dot{ width:7px; height:7px; border-radius:50%; background:var(--accent); animation:pulse 2s ease infinite; }
    @keyframes pulse{ 0%,100%{opacity:1;transform:scale(1);}50%{opacity:.45;transform:scale(1.35);} }
    @keyframes fadeSlide{ from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);} }
    .contact-hero-title{ margin:0; font-size:60px; line-height:1.04; letter-spacing:-.6px; font-weight:800; text-shadow:0 14px 38px rgba(0,0,0,.38); animation:fadeSlide .7s .1s ease both; }
    .contact-hero-title .thin{ font-weight:100; opacity:.9; }
    .contact-hero-sub{ margin:14px 0 0; font-size:18px; color:rgba(255,255,255,.82); font-weight:500; max-width:560px; line-height:1.58; animation:fadeSlide .7s .2s ease both; }
    /* quick-links pills row */
    .hero-quicklinks{
      display:flex; gap:10px; flex-wrap:wrap;
      flex:0 0 auto;
      animation:fadeSlide .7s .3s ease both;
    }
    .qlink{
      display:inline-flex; align-items:center; gap:8px;
      background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16);
      border-radius:var(--radius); padding:12px 18px;
      font-size:13px; font-weight:700; color:rgba(255,255,255,.92);
      cursor:pointer; transition:background .14s,transform .12s;
      text-decoration:none;
    }
    .qlink:hover{ background:rgba(255,255,255,.17); transform:translateY(-2px); }
    .qlink svg{ width:16px; height:16px; fill:none; stroke:var(--accent); stroke-width:2.1; flex:0 0 auto; }

    /* ── Section commons ─────────────────────── */
    main{ padding:0; }
    .section-title{ margin:18px 0 4px; font-size:30px; font-weight:900; color:#1b2a44; letter-spacing:-.2px; display:flex; align-items:center; gap:20px; }
    .title-divider{ flex:1; height:1px; background:rgba(15,23,42,.12); }
    .section-sub{ margin:0 0 28px; color:var(--muted); font-weight:600; font-size:15px; }
    .panel{ padding:42px 0 32px; }
    .panel+.panel{ border-top:1px solid rgba(15,23,42,.08); }

    /* ── Main contact layout ─────────────────── */
    .contact-layout{
      display:grid;
      grid-template-columns:1fr 420px;
      gap:32px;
      align-items:start;
    }

    /* ── Form ────────────────────────────────── */
    .contact-form-wrap{
      background:var(--card);
      border:1px solid var(--border);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden;
    }
    .form-header{
      padding:24px 28px 20px;
      background:
        radial-gradient(500px 200px at 12% 10%,rgba(105,168,232,.12),transparent 60%),
        linear-gradient(180deg,#fff,rgba(245,248,253,.96));
      border-bottom:1px solid rgba(15,23,42,.08);
      display:flex; align-items:center; gap:14px;
    }
    .form-header-ico{
      width:46px; height:46px; border-radius:12px;
      background:linear-gradient(135deg,var(--nav-1),var(--nav-3));
      display:grid; place-items:center; flex:0 0 auto;
    }
    .form-header-ico svg{ width:24px; height:24px; fill:none; stroke:#fff; stroke-width:1.9; }
    .form-header h2{ margin:0 0 3px; font-size:19px; font-weight:900; color:#1b2a44; }
    .form-header p{ margin:0; font-size:13px; color:var(--muted); font-weight:600; }

    /* Tab switcher inside form */
    .form-tabs{ display:flex; border-bottom:1px solid rgba(15,23,42,.08); background:#fafcff; }
    .form-tab{
      flex:1; padding:13px 10px; border:none; background:none;
      font-size:13px; font-weight:700; color:var(--muted);
      cursor:pointer; border-bottom:3px solid transparent;
      position:relative; top:1px; transition:color .14s,border-color .14s;
    }
    .form-tab:hover{ color:var(--nav-2); }
    .form-tab.active{ color:var(--nav-2); border-bottom-color:var(--accent); }

    .form-body{ padding:26px 28px 28px; }
    .form-body.hidden{ display:none; }

    .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
    .field{ display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
    .field:last-child{ margin-bottom:0; }
    .field label{ font-size:13px; font-weight:800; color:#1b2a44; }
    .field label .req{ color:var(--accent-2); margin-left:2px; }
    .field input,
    .field select,
    .field textarea{
      border:1px solid rgba(15,23,42,.14);
      border-radius:9px;
      padding:11px 14px;
      font-size:13.5px;
      font-family:inherit;
      color:var(--text);
      background:#fff;
      outline:none;
      transition:border-color .15s,box-shadow .15s;
    }
    .field input:focus,
    .field select:focus,
    .field textarea:focus{
      border-color:var(--accent);
      box-shadow:0 0 0 3px rgba(105,168,232,.15);
    }
    .field input::placeholder,
    .field textarea::placeholder{ color:#b0bac7; }
    .field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235b6678' stroke-width='2.2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:36px; }
    .field textarea{ resize:vertical; min-height:110px; }
    .field-hint{ font-size:11.5px; color:var(--muted); font-weight:600; margin-top:4px; }

    .privacy-check{ display:flex; align-items:flex-start; gap:10px; margin-bottom:20px; }
    .privacy-check input[type="checkbox"]{ width:17px; height:17px; margin-top:1px; accent-color:var(--accent-2); flex:0 0 auto; cursor:pointer; }
    .privacy-check label{ font-size:12.5px; color:var(--muted); font-weight:600; line-height:1.55; cursor:pointer; }
    .privacy-check label a{ color:var(--accent-2); text-decoration:underline; text-underline-offset:2px; }

    .btn-submit{
      width:100%; padding:14px;
      background:linear-gradient(180deg,var(--accent-2),#2d6cac);
      border:none; border-radius:10px;
      color:#fff; font-size:15px; font-weight:800;
      cursor:pointer;
      box-shadow:0 10px 24px rgba(31,53,80,.22);
      transition:transform .12s,box-shadow .12s,background .14s;
      display:flex; align-items:center; justify-content:center; gap:10px;
    }
    .btn-submit:hover{ transform:translateY(-1px); box-shadow:0 14px 30px rgba(31,53,80,.28); background:linear-gradient(180deg,#4a8fd1,#2a62a0); }
    .btn-submit svg{ width:18px; height:18px; fill:none; stroke:#fff; stroke-width:2.2; }

    /* Success state */
    .form-success{
      display:none;
      flex-direction:column; align-items:center; justify-content:center;
      text-align:center;
      padding:48px 28px;
      gap:16px;
    }
    .form-success.show{ display:flex; }
    .success-ico{
      width:64px; height:64px; border-radius:50%;
      background:rgba(76,175,130,.12); border:2px solid rgba(76,175,130,.3);
      display:grid; place-items:center;
    }
    .success-ico svg{ width:32px; height:32px; fill:none; stroke:#3a9166; stroke-width:2; }
    .form-success h3{ margin:0; font-size:20px; font-weight:900; color:#1b2a44; }
    .form-success p{ margin:0; font-size:13.5px; color:var(--muted); line-height:1.6; max-width:320px; }

    /* ── Sidebar ─────────────────────────────── */
    .contact-sidebar{ display:flex; flex-direction:column; gap:20px; }

    /* Info card */
    .info-card{
      background:var(--card);
      border:1px solid var(--border);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden;
    }
    .info-card-header{
      padding:18px 20px 16px;
      background:
        radial-gradient(400px 160px at 15% 10%,rgba(105,168,232,.10),transparent 58%),
        linear-gradient(180deg,#fff,rgba(245,248,253,.97));
      border-bottom:1px solid rgba(15,23,42,.08);
    }
    .info-card-header h3{ margin:0; font-size:16px; font-weight:900; color:#1b2a44; }
    .info-rows{ padding:6px 0; }
    .info-row{
      display:flex; align-items:flex-start; gap:14px;
      padding:14px 20px;
      border-bottom:1px solid rgba(15,23,42,.06);
      transition:background .12s;
    }
    .info-row:last-child{ border-bottom:none; }
    .info-row:hover{ background:rgba(105,168,232,.04); }
    .info-ico{
      width:36px; height:36px; border-radius:10px;
      background:rgba(105,168,232,.10); border:1px solid rgba(105,168,232,.18);
      display:grid; place-items:center; flex:0 0 auto; margin-top:1px;
    }
    .info-ico svg{ width:18px; height:18px; fill:none; stroke:var(--accent-2); stroke-width:2.1; }
    .info-row-text .info-label{ font-size:11px; font-weight:800; color:var(--muted); letter-spacing:.4px; text-transform:uppercase; margin-bottom:3px; }
    .info-row-text .info-value{ font-size:13.5px; font-weight:700; color:#1b2a44; line-height:1.45; }
    .info-row-text .info-value a{ color:var(--accent-2); }
    .info-row-text .info-value a:hover{ text-decoration:underline; text-underline-offset:2px; }

    /* Map placeholder */
    .map-card{
      background:var(--card);
      border:1px solid var(--border);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden;
    }
    .map-placeholder{
      height:200px;
      background:
        linear-gradient(135deg,rgba(31,53,80,.06) 0%,rgba(105,168,232,.08) 100%);
      display:flex; align-items:center; justify-content:center;
      position:relative;
      overflow:hidden;
    }
    /* SVG stylised campus map */
    .map-placeholder svg.campus-map{ position:absolute; inset:0; width:100%; height:100%; }
    .map-pin{
      position:absolute; top:50%; left:50%; transform:translate(-50%,-100%);
      display:flex; flex-direction:column; align-items:center; gap:0;
      animation:pinBounce 2.2s ease infinite;
      z-index:2;
    }
    .map-pin-circle{
      width:32px; height:32px; border-radius:50% 50% 50% 0;
      transform:rotate(-45deg);
      background:linear-gradient(135deg,var(--accent-2),var(--nav-1));
      border:3px solid #fff;
      box-shadow:0 4px 16px rgba(31,53,80,.35);
      display:grid; place-items:center;
    }
    .map-pin-circle svg{ transform:rotate(45deg); width:14px; height:14px; fill:none; stroke:#fff; stroke-width:2.5; }
    .map-pin-shadow{ width:14px; height:5px; border-radius:50%; background:rgba(0,0,0,.2); margin-top:3px; }
    @keyframes pinBounce{ 0%,100%{transform:translate(-50%,-100%);}50%{transform:translate(-50%,-112%);} }
    .map-card-footer{ padding:14px 16px; border-top:1px solid rgba(15,23,42,.07); display:flex; align-items:center; justify-content:space-between; }
    .map-card-footer p{ margin:0; font-size:12.5px; font-weight:700; color:#1b2a44; line-height:1.45; }
    .map-card-footer p span{ display:block; font-weight:600; color:var(--muted); font-size:12px; }
    .btn-map{
      display:inline-flex; align-items:center; gap:7px;
      background:rgba(63,121,183,.10); border:1px solid rgba(63,121,183,.2);
      border-radius:8px; padding:8px 14px;
      font-size:12.5px; font-weight:800; color:var(--accent-2);
      cursor:pointer; transition:background .13s,transform .12s;
    }
    .btn-map:hover{ background:rgba(63,121,183,.16); transform:translateY(-1px); }
    .btn-map svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2.3; }

    /* Social card */
    .social-card{
      background:linear-gradient(135deg,var(--nav-1),var(--nav-3));
      border-radius:var(--radius);
      padding:22px 20px;
      color:#fff;
      border:1px solid rgba(255,255,255,.08);
    }
    .social-card h3{ margin:0 0 6px; font-size:16px; font-weight:900; }
    .social-card p{ margin:0 0 18px; font-size:13px; color:rgba(255,255,255,.75); font-weight:600; line-height:1.5; }
    .social-links{ display:grid; gap:10px; }
    .social-link{
      display:flex; align-items:center; gap:12px;
      background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16);
      border-radius:9px; padding:11px 14px;
      cursor:pointer; transition:background .13s,transform .12s;
      text-decoration:none; color:#fff;
    }
    .social-link:hover{ background:rgba(255,255,255,.17); transform:translateX(3px); }
    .social-link-ico{ width:34px; height:34px; border-radius:8px; background:rgba(255,255,255,.15); display:grid; place-items:center; flex:0 0 auto; }
    .social-link-ico svg{ width:18px; height:18px; fill:#fff; }
    .social-link-text .s-name{ font-size:13.5px; font-weight:800; }
    .social-link-text .s-handle{ font-size:12px; color:rgba(255,255,255,.65); font-weight:600; }

    /* ── Referents grid ──────────────────────── */
    .referents-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:20px;
      margin-bottom:14px;
    }
    .referent-card{
      background:var(--card);
      border:1px solid var(--border);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden;
      transition:transform .14s,box-shadow .14s;
    }
    .referent-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
    .referent-top{
      padding:20px 20px 16px;
      background:
        radial-gradient(350px 130px at 15% 10%,rgba(105,168,232,.12),transparent 58%),
        linear-gradient(180deg,#fff,rgba(245,248,253,.97));
      border-bottom:1px solid rgba(15,23,42,.08);
      display:flex; align-items:center; gap:14px;
    }
    .referent-avatar{
      width:52px; height:52px; border-radius:50%;
      background:linear-gradient(135deg,#c8ddf0,#b0cce6);
      border:3px solid rgba(255,255,255,.8);
      box-shadow:0 4px 14px rgba(15,23,42,.10);
      display:grid; place-items:center;
      flex:0 0 auto; overflow:hidden;
    }
    .referent-avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
    .referent-avatar svg{ width:26px; height:26px; fill:none; stroke:var(--nav-2); stroke-width:1.7; }
    .referent-info h4{ margin:0 0 3px; font-size:15px; font-weight:900; color:#1b2a44; }
    .referent-info .ref-role{ font-size:12px; font-weight:700; color:var(--accent-2); letter-spacing:.2px; }
    .referent-body{ padding:16px 20px; }
    .referent-body .ref-area{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--muted); font-weight:600; margin-bottom:10px; }
    .referent-body .ref-area svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2; flex:0 0 auto; }
    .ref-contact-links{ display:flex; gap:8px; }
    .ref-link{
      display:inline-flex; align-items:center; gap:6px;
      border-radius:7px; padding:6px 12px;
      font-size:12px; font-weight:800;
      cursor:pointer; transition:background .13s;
    }
    .ref-link.email{ background:rgba(63,121,183,.10); color:var(--accent-2); border:1px solid rgba(63,121,183,.18); }
    .ref-link.email:hover{ background:rgba(63,121,183,.16); }
    .ref-link.profile{ background:rgba(15,23,42,.06); color:var(--muted); border:1px solid rgba(15,23,42,.12); }
    .ref-link.profile.active{ background:rgba(63,121,183,.10); color:var(--accent-2); border:1px solid rgba(63,121,183,.18); }
    .ref-link.profile:hover{ background:rgba(15,23,42,.10); }
    .ref-link svg{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:2.3; }

    /* ── FAQ ─────────────────────────────────── */
    .faq-list{ display:grid; gap:10px; margin-bottom:14px; }
    .faq-item{
      background:var(--card);
      border:1px solid var(--border);
      border-radius:var(--radius-sm);
      box-shadow:0 4px 12px rgba(15,23,42,.06);
      overflow:hidden;
    }
    .faq-q{
      width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px;
      padding:16px 20px; background:none; border:none;
      font-size:14.5px; font-weight:800; color:#1b2a44;
      cursor:pointer; text-align:left;
      transition:background .13s;
    }
    .faq-q:hover{ background:rgba(105,168,232,.05); }
    .faq-q.open{ color:var(--accent-2); }
    .faq-q .faq-icon{ width:26px; height:26px; border-radius:7px; background:rgba(105,168,232,.10); border:1px solid rgba(105,168,232,.18); display:grid; place-items:center; flex:0 0 auto; transition:transform .2s,background .15s; }
    .faq-q .faq-icon svg{ width:14px; height:14px; fill:none; stroke:var(--accent-2); stroke-width:2.5; transition:transform .2s; }
    .faq-q.open .faq-icon{ background:var(--accent-2); border-color:var(--accent-2); }
    .faq-q.open .faq-icon svg{ stroke:#fff; transform:rotate(45deg); }
    .faq-a{
      max-height:0; overflow:hidden;
      transition:max-height .28s ease, padding .22s ease;
      padding:0 20px;
      font-size:13.5px; color:var(--muted); line-height:1.7;
    }
    .faq-a.open{ max-height:300px; padding:0 20px 18px; }

    /* ── Newsletter band ─────────────────────── */
    .newsletter-band{
      background:
        radial-gradient(800px 260px at 12% 15%,rgba(105,168,232,.14),transparent 58%),
        linear-gradient(90deg,var(--nav-1),var(--nav-3));
      border-radius:var(--radius);
      padding:30px 36px;
      color:#fff;
      display:flex; align-items:center; justify-content:space-between; gap:28px;
      border:1px solid rgba(255,255,255,.08);
      margin-bottom:14px;
    }
    .newsletter-left h3{ margin:0 0 5px; font-size:20px; font-weight:900; }
    .newsletter-left p{ margin:0; font-size:13.5px; color:rgba(255,255,255,.78); font-weight:600; line-height:1.55; max-width:520px; }
    .newsletter-form{ display:flex; gap:10px; flex:0 0 auto; align-items:center; }
    .newsletter-input{
      border:1px solid rgba(255,255,255,.22);
      background:rgba(255,255,255,.10);
      border-radius:9px;
      padding:11px 16px;
      font-size:13.5px;
      font-family:inherit;
      color:#fff;
      outline:none;
      width:240px;
      transition:border-color .15s,box-shadow .15s;
    }
    .newsletter-input::placeholder{ color:rgba(255,255,255,.5); }
    .newsletter-input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(105,168,232,.2); }
    .btn-nl{
      padding:11px 22px; border:none;
      background:linear-gradient(180deg,rgba(105,168,232,.85),rgba(63,121,183,.85));
      border-radius:9px; color:#fff; font-weight:800; font-size:13.5px;
      cursor:pointer; box-shadow:0 8px 20px rgba(0,0,0,.2);
      transition:transform .12s,box-shadow .12s; white-space:nowrap;
    }
    .btn-nl:hover{ transform:translateY(-1px); box-shadow:0 12px 26px rgba(0,0,0,.26); }

    /* ── Footer ──────────────────────────────── */
    footer{ background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0)),linear-gradient(90deg,var(--nav-1),var(--nav-2)); color:#fff; border-top:1px solid rgba(255,255,255,.10); }
    .footer-inner{ padding:34px 0 18px; display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:26px; }
    .footer-title{ margin:0 0 10px; font-weight:900; letter-spacing:.2px; }
    .footer-text{ margin:0; color:rgba(255,255,255,.84); line-height:1.55; font-weight:600; font-size:13.5px; }
    .footer-links{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
    .footer-links a{ color:rgba(255,255,255,.86); font-weight:700; font-size:13.5px; }
    .footer-links a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
    .footer-bottom{ border-top:1px solid rgba(255,255,255,.10); padding:14px 0 18px; display:flex; align-items:center; justify-content:space-between; gap:14px; color:rgba(255,255,255,.78); font-weight:600; font-size:12.5px; }

    /* ── Responsive ──────────────────────────── */

    /* ─── Hamburger button ───────────────────────────── */
    .hamburger{
      display:none;
      flex-direction:column;
      justify-content:center;
      align-items:center;
      gap:5px;
      width:42px; height:42px;
      background:none;
      border:1px solid rgba(255,255,255,.22);
      border-radius:8px;
      cursor:pointer;
      padding:0;
      flex-shrink:0;
    }
    .hamburger span{
      display:block;
      width:22px; height:2px;
      background:#fff;
      border-radius:999px;
      transition:transform .25s ease, opacity .25s ease;
    }
    .hamburger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2){ opacity:0; }
    .hamburger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

    /* ─── Side drawer ────────────────────────────────── */
    .nav-overlay{
      display:none;
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.55);
      z-index:99;
      opacity:0;
      transition:opacity .25s ease;
    }
    .nav-overlay.visible{ opacity:1; }
    .side-drawer{
      position:fixed;
      top:0; right:0;
      width:min(320px, 85vw);
      height:100%;
      background:linear-gradient(160deg,#0f2235,#1a3a5c);
      z-index:100;
      transform:translateX(100%);
      transition:transform .28s cubic-bezier(.4,0,.2,1);
      display:flex;
      flex-direction:column;
      box-shadow:-6px 0 30px rgba(0,0,0,.35);
    }
    .side-drawer.open{ transform:translateX(0); }
    .drawer-header{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:20px 22px;
      border-bottom:1px solid rgba(255,255,255,.10);
    }
    .drawer-brand{
      font-size:15px;
      font-weight:700;
      color:#fff;
      letter-spacing:.2px;
    }
    .drawer-close{
      background:none;
      border:none;
      cursor:pointer;
      color:rgba(255,255,255,.7);
      font-size:24px;
      line-height:1;
      padding:4px 8px;
    }
    .drawer-close:hover{ color:#fff; }
    .drawer-menu{
      list-style:none;
      margin:0; padding:18px 0;
      flex:1;
      overflow-y:auto;
    }
    .drawer-menu li a{
      display:flex;
      align-items:center;
      gap:12px;
      padding:15px 24px;
      color:rgba(255,255,255,.88);
      font-weight:600;
      font-size:16px;
      border-left:3px solid transparent;
      transition:background .15s ease, border-color .15s ease, color .15s ease;
    }
    .drawer-menu li a:hover,
    .drawer-menu li a.active{
      background:rgba(105,168,232,.12);
      border-left-color:var(--accent);
      color:#fff;
    }
    .drawer-footer{
      padding:20px 22px;
      border-top:1px solid rgba(255,255,255,.10);
    }
    .drawer-footer .btn-join{
      width:100%;
      text-align:center;
      display:block;
    }

    @media(max-width:1060px){
      .contact-layout{ grid-template-columns:1fr 360px; }
      .referents-grid{ grid-template-columns:repeat(2,1fr); }
    }
    @media(max-width:1111px){
      .hamburger{ display:flex; }
      .nav{ height:auto; padding:14px 0; }
      nav[aria-label="Primary"]{ display:none; }
      .nav-cta{ display:none; }

      .contact-hero-title{ font-size:44px; }
      .contact-hero-inner{ flex-direction:column; align-items:flex-start; gap:22px; }
      .hero-quicklinks{ flex-direction:row; flex-wrap:wrap; }
      .contact-layout{ grid-template-columns:1fr; }
      .contact-sidebar{ order:-1; display:grid; grid-template-columns:1fr 1fr; }
      .map-card{ grid-column:1/-1; }
      .newsletter-band{ flex-direction:column; gap:18px; }
      .newsletter-form{ flex-direction:column; align-items:stretch; width:100%; }
      .newsletter-input{ width:100%; }
      .footer-inner{ grid-template-columns:1fr; }
    }
      @media(max-width:640px){
      /* Hero centering mobile */
      .contact-hero-inner { flex-direction:column; align-items:center; text-align:center; }
      .contact-hero-left { width:100%; }
      .contact-hero-badge { margin-left:auto; margin-right:auto; }
      .contact-hero-sub { margin-left:auto; margin-right:auto; max-width:100%; }
      .contact-cta-row { justify-content:center; }
      /* Sidebar a colonna singola: la griglia 2-col lasciava una colonna vuota a destra di info-card e social-card */
      .contact-sidebar{ grid-template-columns:1fr; }
      /* Form a colonna singola: i campi affiancati su mobile vengono troppo stretti per ospitare i contenuti */
      .field-row{ grid-template-columns:1fr; }
    }
  