﻿:root {
      --red: #b5121b;
      --red-bright: #b5121b;
      --red-dark: #b5121b;
      --paper: #ffffff;
      --warm: #fff7f2;
      --gold: #d6a84f;
      --ink: #2b2b2b;
      --muted: #5f5f5f;
      --line: #ead8cf;
      --soft: #f5f5f5;
      --shadow: 0 18px 48px rgba(181, 18, 27, .12);
      --radius: 8px;
      --max: 1180px;
      --font: Montserrat, Arial, Helvetica, sans-serif;
      --title: Montserrat, Arial, Helvetica, sans-serif;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: var(--font);
      color: var(--ink);
      background: var(--paper);
      line-height: 1.55;
    }
    img { max-width: 100%; display: block; }
    a { color: inherit; }
    :focus-visible {
      outline: 3px solid var(--gold);
      outline-offset: 3px;
    }

    .skip-link {
      position: absolute;
      left: 12px;
      top: -60px;
      z-index: 20;
      background: var(--red-dark);
      color: #fff;
      padding: 10px 14px;
      border-radius: var(--radius);
    }
    .skip-link:focus { top: 12px; }
    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 46px;
      padding: 12px 20px;
      border-radius: var(--radius);
      border: 2px solid transparent;
      background: var(--red);
      color: #fff;
      text-decoration: none;
      font-weight: 800;
      line-height: 1.1;
      box-shadow: 0 12px 28px rgba(181, 18, 27, .22);
    }
    .btn:hover { background: var(--red-dark); }
    .btn.secondary {
      background: #fff;
      color: var(--red-dark);
      border-color: rgba(181,18,27,.24);
      box-shadow: none;
    }
    .btn.secondary:hover { border-color: var(--red); background: var(--warm); }
    .btn.light {
      background: #fff;
      color: var(--red-dark);
      box-shadow: none;
    }

    .section {
      padding: 76px 22px;
    }
    .is-hidden {
      display: none !important;
    }
    .section.tight { padding: 44px 22px; }
    .wrap {
      max-width: var(--max);
      margin: 0 auto;
    }
    .eyebrow {
      color: var(--red);
      font-size: 13px;
      font-weight: 900;
      text-transform: uppercase;
      letter-spacing: .12em;
      margin: 0 0 12px;
    }
    h1, h2, h3 {
      margin: 0;
      font-family: var(--title);
      line-height: 1.08;
      letter-spacing: 0;
      color: var(--red-dark);
    }
    h1 {
      max-width: 760px;
      font-size: clamp(42px, 5.8vw, 70px);
      font-weight: 900;
    }
    h2 {
      max-width: 790px;
      font-size: clamp(30px, 4vw, 48px);
      font-weight: 900;
    }
    h3 { font-size: 22px; font-weight: 800; }
    p { margin: 0; color: var(--muted); }

    .hero {
      position: relative;
      overflow: hidden;
      background:
        linear-gradient(90deg, rgba(255,247,242,.94) 0 38%, rgba(255,247,242,.62) 52%, rgba(255,247,242,.18) 100%),
        url("../images/natale/bg-hero-natale-26.png") center / cover no-repeat;
      color: var(--ink);
      min-height: 660px;
      display: grid;
      align-items: center;
      padding: 76px 22px 112px;
    }
    .hero::after {
      content: "";
      position: absolute;
      left: -6%;
      right: -6%;
      bottom: -86px;
      height: 178px;
      background: linear-gradient(180deg, rgba(80, 28, 20, 0), rgba(80, 28, 20, .18) 55%, rgba(80, 28, 20, .28));
      filter: blur(18px);
      pointer-events: none;
    }
    .hero::before {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 86px;
      background: linear-gradient(180deg, rgba(255,255,255,0), rgba(181,18,27,.08));
      pointer-events: none;
    }
    .hero .wrap {
      width: 100%;
      position: relative;
      z-index: 1;
      display: block;
    }
    .hero-copy {
      max-width: 760px;
      position: relative;
      z-index: 2;
    }
    .hero-visual {
      margin: 0;
      background: transparent;
      border: 0;
      border-radius: var(--radius);
      padding: 0;
      box-shadow: none;
      position: relative;
      z-index: 1;
      transform: translateX(18px);
      min-height: 360px;
      display: grid;
      align-items: center;
    }
    .hero-kids {
      width: 100%;
      border-radius: 6px;
      object-fit: contain;
      background: transparent;
      position: relative;
      z-index: 2;
    }
    .hero-visual figcaption { display: none; }
    .hero-card {
      max-width: 390px;
      margin-left: auto;
      background: rgba(255,255,255,.94);
      color: var(--ink);
      border-radius: var(--radius);
      padding: 26px;
      box-shadow: var(--shadow);
    }
    .hero-card strong {
      display: block;
      color: var(--red-dark);
      font-size: 20px;
      margin-bottom: 8px;
    }
    .hero h1 {
      color: var(--red-dark);
      font-size: clamp(26px, 3vw, 38px);
      line-height: 1.08;
    }
    .hero p, .hero .eyebrow { color: var(--red-dark); }
    .hero p {
      max-width: 560px;
      margin-top: 22px;
      font-size: clamp(17px, 1.8vw, 21px);
      color: #4f4a47;
    }
    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      margin-top: 32px;
    }
    .hero .steps {
      margin-top: 22px;
      max-width: 980px;
      gap: 0;
      position: relative;
      align-items: start;
      padding: 4px 6px 0;
      background: transparent;
    }
    .hero .steps::before {
      content: "";
      position: absolute;
      top: 20px;
      left: 12%;
      right: 12%;
      height: 3px;
      background: linear-gradient(90deg, rgba(181,18,27,.72), rgba(181,18,27,.20));
      border-radius: 999px;
    }
    .hero .step {
      position: relative;
      display: grid;
      justify-items: center;
      align-content: start;
      min-height: 0;
      padding: 0 12px;
      background: transparent;
      border: 0;
      box-shadow: none;
      overflow: visible;
      text-align: center;
    }
    .hero .step::after { display: none; }
    .step-visual {
      position: relative;
      z-index: 1;
      width: 38px;
      height: 38px;
      border-radius: 999px;
      border: 3px solid rgba(181,18,27,.22);
      background: #fff;
      display: grid;
      place-items: center;
      color: var(--red);
      box-shadow: 0 0 0 8px rgba(255,247,242,.90), 0 8px 18px rgba(181,18,27,.12);
      margin: 0 0 12px;
      font-size: 15px;
      font-weight: 900;
      line-height: 1;
    }
    .hero .step:first-child .step-visual {
      background: #f1d9dc;
      border-color: rgba(181,18,27,.28);
    }
    .hero .step:last-child .step-visual {
      color: rgba(181,18,27,.66);
      border-color: rgba(181,18,27,.18);
    }
    .step-number {
      display: inline-block;
      margin-bottom: 5px;
      color: var(--red);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .08em;
    }
    .step-title {
      display: block;
      color: var(--ink);
      font-size: 15px;
      line-height: 1.18;
      font-weight: 900;
    }
    .step-note {
      display: block;
      max-width: 170px;
      margin: 6px auto 0;
      color: #5a5552;
      font-size: 12px;
      line-height: 1.34;
      font-weight: 700;
    }
    .trust-row {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 28px;
    }
    .trust-row span {
      background: rgba(255,255,255,.78);
      border: 1px solid var(--line);
      color: var(--red-dark);
      border-radius: 999px;
      padding: 8px 12px;
      font-weight: 800;
      font-size: 13px;
    }
    .red-shape {
      position: absolute;
      border-radius: 999px;
      background: var(--red-bright);
      opacity: .38;
      pointer-events: none;
      z-index: 0;
      animation: float-shape 6s ease-in-out infinite;
    }
    .red-shape.one {
      width: 28px;
      height: 28px;
      left: 52%;
      bottom: 148px;
    }
    .red-shape.two {
      width: 14px;
      height: 14px;
      right: 20%;
      bottom: 188px;
      border-radius: 4px;
      transform: rotate(45deg);
      animation-delay: 1.2s;
    }
    @keyframes float-shape {
      0%, 100% { transform: translateY(0) rotate(45deg); }
      50% { transform: translateY(-14px) rotate(45deg); }
    }

    .split-choice {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 22px;
      margin-top: -34px;
      position: relative;
      z-index: 2;
    }

    .azienda-carousel {
      background: #fff;
      padding-top: 46px;
      padding-bottom: 38px;
    }
    .carousel-track {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: minmax(230px, 1fr);
      gap: 18px;
      overflow-x: auto;
      padding: 8px 2px 18px;
      scroll-snap-type: x mandatory;
    }
    .carousel-card {
      scroll-snap-align: start;
      min-height: 100%;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
    }
    .carousel-card img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      background: var(--soft);
    }
    .carousel-card div {
      padding: 18px;
    }
    .carousel-card h3 {
      color: var(--red);
      font-size: 22px;
      margin-bottom: 8px;
    }

    .layout-rows {
      background: var(--warm);
      padding-top: 38px;
    }
    .layout-row {
      display: grid;
      grid-template-columns: 1fr;
      gap: 24px;
      align-items: start;
      padding: 28px;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      margin-top: 18px;
    }
    .row-label {
      color: var(--red);
      font-weight: 900;
      text-transform: uppercase;
      letter-spacing: .08em;
    }
    .row-content {
      display: grid;
      gap: 18px;
    }
    .row-content h3 {
      color: var(--red);
      font-size: clamp(24px, 2.4vw, 34px);
    }
    .mini-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
    }
    .mini-card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 16px;
      background: #fff;
    }
    .mini-card strong {
      display: block;
      color: var(--red);
      margin-bottom: 6px;
    }
    .media-row {
      display: grid;
      grid-template-columns: 1.1fr .9fr;
      gap: 20px;
      align-items: center;
    }
    .media-row img {
      width: 100%;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      background: #fff;
    }
    .steps {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
    }
    .step {
      background: var(--warm);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 16px;
      font-weight: 800;
    }

    .modal {
      position: fixed;
      inset: 0;
      z-index: 1000000;
      display: none;
      padding: 0;
      background: #fff;
      color: var(--ink);
      overflow-y: auto;
      overflow-x: hidden;
    }
    .modal.is-open {
      display: block;
    }
    .modal-dialog {
      position: relative;
      width: 100%;
      min-height: 100%;
      max-height: none;
      overflow: visible;
      background: #fff;
      border-radius: 0;
      box-shadow: none;
    }
    .modal-head {
      max-width: var(--max);
      margin: 0 auto;
      padding: clamp(36px, 5vw, 72px) 28px 18px;
      border-bottom: 1px solid var(--line);
    }
    .modal-head h2 {
      color: var(--red);
      font-size: clamp(34px, 4.4vw, 60px);
    }
    .modal-head p {
      margin-top: 10px;
    }
    .modal-close {
      position: fixed;
      top: 28px;
      right: 28px;
      z-index: 1000010;
      width: 54px;
      height: 54px;
      border: 0;
      border-radius: 50%;
      background: rgba(181,18,27,.08);
      color: var(--red);
      font: inherit;
      font-size: 30px;
      font-weight: 800;
      line-height: 1;
      cursor: pointer;
    }
    .modal-close:hover,
    .modal-close:focus-visible {
      background: rgba(181,18,27,.14);
    }
    .gravity-form-placeholder {
      max-width: var(--max);
      margin: 0 auto;
      padding: 24px 28px clamp(34px, 5vw, 70px);
    }
    .gravity-form-placeholder .gform_confirmation_wrapper,
    .gravity-form-placeholder .gform_confirmation_message {
      margin: 0;
    }
    .gravity-form-placeholder .gform_confirmation_message {
      max-width: 760px;
      padding: 28px 32px;
      border: 1px solid rgba(181,18,27,.18);
      border-left: 6px solid var(--red);
      border-radius: var(--radius);
      background: #fff7f2;
      color: var(--ink);
      font-family: var(--font);
      font-size: clamp(22px, 2.2vw, 32px);
      font-weight: 800;
      line-height: 1.25;
      box-shadow: 0 18px 42px rgba(181,18,27,.12);
    }
    .gravity-form-placeholder .gform_confirmation_message::before {
      content: "Richiesta inviata";
      display: block;
      margin-bottom: 10px;
      color: var(--red);
      font-size: 14px;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .gravity-form-placeholder .aibi-gf-project-preview {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      margin: 0 0 22px;
    }
    .gravity-form-placeholder .aibi-gf-project-preview article {
      position: relative;
      min-width: 0;
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      box-shadow: 0 14px 34px rgba(181,18,27,.07);
      cursor: pointer;
      transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
    }
    .gravity-form-placeholder .aibi-gf-project-preview article:hover,
    .gravity-form-placeholder .aibi-gf-project-preview article:focus-visible {
      border-color: rgba(181,18,27,.45);
      transform: translateY(-2px);
    }
    .gravity-form-placeholder .aibi-gf-project-preview article.is-selected {
      border-color: var(--red);
      box-shadow: 0 18px 42px rgba(181,18,27,.16);
    }
    .gravity-form-placeholder .aibi-gf-project-preview img {
      width: 100%;
      aspect-ratio: 221 / 300;
      object-fit: contain;
      margin-bottom: 12px;
      border-radius: calc(var(--radius) - 2px);
      background: var(--soft);
    }
    .gravity-form-placeholder .aibi-gf-project-thumb {
      min-height: 210px;
      margin-bottom: 12px;
      border-radius: calc(var(--radius) - 2px);
      background-color: var(--soft);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
    }
    .gravity-form-placeholder .aibi-gf-project-thumb-01,
    .gravity-form-placeholder .aibi-gf-project-thumb-02,
    .gravity-form-placeholder .aibi-gf-project-thumb-03 {
      background-image: url("../images/natale/attestati.jpg");
    }
    .gravity-form-placeholder .aibi-gf-project-preview strong,
    .gravity-form-placeholder .aibi-gf-project-preview span {
      display: block;
      text-align: center;
      line-height: 1.25;
    }
    .gravity-form-placeholder .aibi-gf-project-preview strong {
      color: var(--red);
      font-size: 15px;
      font-weight: 900;
    }
    .gravity-form-placeholder .aibi-gf-project-preview span {
      margin-top: 5px;
      color: var(--muted);
      font-size: 13px;
      font-weight: 800;
    }
    .gravity-form-placeholder .aibi-gf-project-radio-field {
      position: absolute !important;
      width: 1px !important;
      height: 1px !important;
      padding: 0 !important;
      margin: -1px !important;
      overflow: hidden !important;
      clip: rect(0, 0, 0, 0) !important;
      white-space: nowrap !important;
      border: 0 !important;
    }
    .image-modal .modal-dialog {
      width: 100%;
      background: #fff;
    }
    .image-modal {
      z-index: 1000000;
    }
    .image-modal .modal-head {
      padding-bottom: 14px;
    }
    .gravity-shortcode-note {
      margin-bottom: 18px;
      padding: 14px 16px;
      background: var(--warm);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      color: var(--red);
      font-weight: 800;
    }
    .project-choice-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
    }
    .project-option {
      display: grid;
      gap: 10px;
      cursor: pointer;
    }
    .project-option input {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }
    .project-card {
      position: relative;
      height: 100%;
      border: 2px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      overflow: hidden;
      transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
    }
    .project-card img {
      width: 100%;
      aspect-ratio: 3 / 4;
      object-fit: contain;
      background: var(--soft);
    }
    .project-card div {
      padding: 14px;
      text-align: center;
    }
    .project-card strong {
      display: block;
      color: var(--red);
      line-height: 1.2;
      margin-bottom: 6px;
      text-align: center;
    }
    .project-card span {
      display: block;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.35;
      text-align: center;
    }
    .project-detail-trigger {
      position: absolute;
      top: 8px;
      left: 50%;
      right: auto;
      z-index: 2;
      transform: translateX(-50%);
      display: inline-flex;
      align-items: center;
      gap: 7px;
      border: 0;
      border-radius: 999px;
      padding: 8px 11px;
      background: rgba(255,255,255,.94);
      color: var(--red);
      box-shadow: 0 8px 22px rgba(43,43,43,.18);
      font: inherit;
      font-size: 12px;
      font-weight: 900;
      line-height: 1;
      cursor: pointer;
      white-space: nowrap;
    }
    .project-detail-icon {
      width: 18px;
      height: 18px;
      display: inline-grid;
      place-items: center;
      border-radius: 50%;
      background: transparent;
      border: 1px solid currentColor;
      color: currentColor;
      font-size: 12px;
      font-weight: 900;
      font-style: normal;
    }
    .project-detail-trigger:hover,
    .project-detail-trigger:focus-visible {
      background: #fff;
      box-shadow: 0 10px 28px rgba(181,18,27,.24);
    }
    .project-detail-preview {
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      gap: 24px;
      align-items: start;
      max-width: var(--max);
      margin: 0 auto;
      padding: 20px 28px clamp(30px, 4vw, 54px);
    }
    .project-detail-preview img {
      width: 100%;
      max-height: 62vh;
      object-fit: contain;
      background: var(--soft);
      border-radius: var(--radius);
    }
    .project-detail-body {
      padding: 0;
    }
    .project-detail-body p {
      margin-top: 0;
    }
    .project-detail-body p + p {
      margin-top: 14px;
    }
    .project-option input:checked + .project-card,
    .project-option input:focus-visible + .project-card {
      border-color: var(--red);
      box-shadow: 0 14px 34px rgba(181,18,27,.16);
      transform: translateY(-2px);
    }
    .choice-card,
    .proposal-card,
    .info-card,
    .doc-card,
    .faq details,
    .form-shell {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }
    .choice-card {
      padding: 30px;
      display: grid;
      gap: 18px;
    }
    .choice-card p { max-width: 520px; }
    .choice-card.business {
      background: var(--red-dark);
      border-color: var(--red-dark);
    }
    .choice-card.business h2,
    .choice-card.business p { color: #fff; }

    .section-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 28px;
      margin-bottom: 30px;
    }
    .section-head p { max-width: 520px; }

    .proposal-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 18px;
    }
    .proposal-card {
      overflow: hidden;
      display: flex;
      flex-direction: column;
      min-height: 100%;
    }
    .proposal-card img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      background: var(--soft);
    }
    .proposal-card .body {
      padding: 18px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex: 1;
    }
    .tag {
      display: inline-flex;
      width: fit-content;
      background: var(--warm);
      color: var(--red-dark);
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 5px 9px;
      font-size: 12px;
      font-weight: 800;
    }
    .text-link {
      margin-top: auto;
      color: var(--red);
      font-weight: 900;
      text-decoration: none;
    }
    .text-link:hover { text-decoration: underline; }

    .impact {
      background: var(--warm);
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
    }
    .impact-layout {
      display: grid;
      grid-template-columns: 1fr;
      gap: 30px;
      max-width: 920px;
    }
    .benefits {
      display: grid;
      gap: 14px;
      margin-top: 28px;
    }
    .benefit {
      display: grid;
      grid-template-columns: 46px 1fr;
      gap: 14px;
      align-items: start;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 18px;
    }
    .icon {
      width: 46px;
      height: 46px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: var(--red);
      color: #fff;
      font-size: 22px;
      font-weight: 900;
    }
    .benefit h3 { margin-bottom: 4px; }

    .business-band {
      background:
        radial-gradient(circle at 32% 22%, rgba(181,18,27,.68), rgba(181,18,27,.88) 46%, rgba(181,18,27,.94) 100%),
        url("../images/natale/bg23-nat.jpg") center / cover no-repeat;
      color: #fff;
    }
    .business-band h2,
    .business-band p,
    .business-band .eyebrow { color: #fff; }
    .partners-band {
      background:
        radial-gradient(circle at 32% 22%, rgba(181,18,27,.68), rgba(181,18,27,.88) 46%, rgba(181,18,27,.94) 100%),
        url("../images/natale/bg23-nat.jpg") center / cover no-repeat;
      color: #fff;
      text-align: center;
    }
    .partners-band h2 {
      color: #fff;
      margin-bottom: 34px;
    }
    .partners-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 22px;
      max-width: 700px;
      margin: 0 auto;
      text-align: left;
    }
    .partner-card {
      display: grid;
      gap: 20px;
      color: #fff;
    }
    .partner-logo {
      display: grid;
      place-items: center;
      min-height: 210px;
      background: #fff;
      border-radius: 0;
      padding: 28px;
      border: 0;
      cursor: pointer;
      overflow: hidden;
      font: inherit;
    }
    .partner-logo img {
      max-height: 130px;
      width: auto;
      object-fit: contain;
      transition: transform .22s ease;
    }
    .partner-logo:hover img,
    .partner-logo:focus-visible img {
      transform: scale(1.08);
    }
    .partner-card h3 {
      color: #fff;
      font-size: 26px;
    }
    .partner-card p {
      color: rgba(255,255,255,.82);
      margin: 0;
    }
    .partner-card .text-link {
      color: #fff;
      width: fit-content;
      font-size: 28px;
      line-height: 1;
    }
    .partner-toggle {
      color: #fff;
      width: fit-content;
      border: 0;
      background: transparent;
      padding: 0;
      font: inherit;
      font-size: 30px;
      line-height: 1;
      cursor: pointer;
    }
    .partner-toggle:hover,
    .partner-toggle:focus-visible {
      transform: translateX(4px);
    }
    .brand-panel {
      position: fixed;
      inset: 0;
      z-index: 1000000;
      display: none;
      grid-template-columns: minmax(320px, .95fr) minmax(360px, 1.05fr);
      background: #fff;
      color: var(--ink);
      overflow-y: auto;
      overflow-x: hidden;
    }
    .brand-panel.is-open {
      display: grid;
    }
    .brand-panel-copy {
      display: grid;
      align-content: center;
      padding: clamp(34px, 5vw, 76px);
      background: #f3f3f3;
    }
    .brand-panel-copy h2 {
      color: var(--ink);
      font-size: clamp(34px, 4.4vw, 60px);
      margin-bottom: 28px;
    }
    .brand-panel-copy .eyebrow {
      color: var(--muted);
      margin-bottom: 16px;
    }
    .brand-panel-copy p {
      max-width: 620px;
      color: var(--muted);
      font-size: 18px;
      line-height: 1.65;
    }
    .brand-panel-copy p + p {
      margin-top: 16px;
    }
    .brand-panel-visual {
      display: grid;
      place-items: center;
      padding: clamp(34px, 5vw, 76px);
      background: #fff;
    }
    .brand-panel-visual img {
      width: min(560px, 86%);
      max-height: 58vh;
      object-fit: contain;
    }
    .brand-panel-close {
      position: fixed;
      top: 28px;
      right: 28px;
      z-index: 1000010;
      width: 74px;
      height: 74px;
      display: none;
      place-items: center;
      border: 2px solid rgba(43,43,43,.82);
      border-radius: 50%;
      background: rgba(255,255,255,.86);
      color: var(--ink);
      font: inherit;
      font-size: 34px;
      line-height: 1;
      cursor: pointer;
      transition: background .16s ease, border-color .16s ease;
    }
    .brand-panel.is-open + .brand-panel-close {
      display: grid;
    }
    .brand-panel-close:hover,
    .brand-panel-close:focus-visible {
      background: #fff;
      border-color: var(--red);
      color: var(--red);
    }
    body.admin-bar .modal-close,
    body.admin-bar .brand-panel-close {
      top: 60px;
    }
    .business-list {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 16px;
      margin: 30px 0;
    }
    .business-list div {
      border: 1px solid rgba(255,255,255,.24);
      border-radius: var(--radius);
      padding: 20px;
      background: rgba(255,255,255,.08);
      font-weight: 800;
    }

    .faq {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      margin-top: 30px;
    }
    .faq details {
      padding: 18px 20px;
      box-shadow: none;
    }
    .faq summary {
      cursor: pointer;
      font-weight: 900;
      color: var(--red-dark);
    }
    .faq p { margin-top: 12px; }

    .form-shell {
      display: grid;
      grid-template-columns: .72fr 1fr;
      overflow: hidden;
    }
    .form-intro {
      background: var(--red);
      color: #fff;
      padding: 34px;
    }
    .form-intro h2,
    .form-intro p { color: #fff; }
    .form-note {
      margin-top: 18px;
      padding: 14px;
      border: 1px solid rgba(255,255,255,.28);
      border-radius: var(--radius);
      font-size: 14px;
    }
    .form-grid {
      padding: 24px;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }
    .field { display: grid; gap: 7px; }
    .field.full { grid-column: 1 / -1; }
    label,
    .field-label {
      color: var(--ink);
      font-size: 14px;
      font-weight: 900;
    }
    input, select, textarea {
      width: 100%;
      min-height: 46px;
      border: 1px solid #cfc7c2;
      border-radius: var(--radius);
      padding: 11px 12px;
      font: inherit;
      background: #fff;
      color: var(--ink);
    }
    textarea { min-height: 116px; resize: vertical; }
    .modal .form-grid {
      padding: 0;
    }
    .modal textarea {
      min-height: 92px;
    }

    .aibi-product-choice-field .gfield_checkbox {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
    }
    .aibi-product-choice-field .gchoice {
      position: relative;
      min-width: 0;
    }
    .aibi-product-choice-field .gchoice input {
      position: absolute;
      top: 14px;
      left: 14px;
      z-index: 2;
      width: 22px;
      height: 22px;
      min-height: 22px;
      margin: 0;
      accent-color: var(--red);
    }
    .aibi-product-choice-field .gchoice label {
      display: grid !important;
      align-content: start;
      min-height: 214px;
      padding: 0 14px 16px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      color: var(--red);
      font-size: 15px;
      font-weight: 900;
      line-height: 1.2;
      overflow: hidden;
      cursor: pointer;
      box-shadow: 0 14px 34px rgba(181,18,27,.07);
      transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
    }
    .aibi-product-choice-field .gchoice label::before {
      content: "";
      display: block;
      width: calc(100% + 28px);
      height: 118px;
      margin: 0 -14px 14px;
      background-color: var(--soft);
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }
    .aibi-product-choice-field .gchoice:nth-child(1) label::before {
      background-image: url("../images/natale/biglietti.jpg");
    }
    .aibi-product-choice-field .gchoice:nth-child(2) label::before {
      background-image: url("../images/natale/gadget.jpg");
      background-size: contain;
    }
    .aibi-product-choice-field .gchoice:nth-child(3) label::before {
      background-image: url("../images/natale/alessi.jpg");
    }
    .aibi-product-choice-field .gchoice:nth-child(4) label::before {
      background-image: url("../images/natale/longo2025.jpg");
      background-size: contain;
    }
    .aibi-product-choice-field .gchoice:nth-child(5) label::before {
      background-image: url("../images/natale/attestati.jpg");
      background-size: contain;
    }
    .aibi-product-choice-field .gchoice:nth-child(6) label::before {
      background-image: url("../images/natale/bg23-nat.jpg");
    }
    .aibi-product-choice-field .gchoice input:checked + label {
      border-color: var(--red);
      box-shadow: 0 18px 42px rgba(181,18,27,.16);
    }
    .aibi-product-choice-field .gchoice input:focus-visible + label {
      outline: 3px solid rgba(181,18,27,.24);
      outline-offset: 3px;
    }
    .aibi-product-choice-field .gchoice label:hover {
      transform: translateY(-2px);
      border-color: rgba(181,18,27,.45);
    }

    .doc {
      background: #f8f8f8;
      border-top: 1px solid #e4e4e4;
    }
    .doc-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      margin-top: 28px;
    }
    .doc-card {
      box-shadow: none;
      padding: 24px;
    }
    .doc-card h3 { margin-bottom: 12px; }
    .doc-card ul,
    .doc-card ol {
      margin: 0;
      padding-left: 20px;
      color: var(--muted);
    }
    .doc-card li + li { margin-top: 7px; }
    .palette {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }
    .swatch {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      overflow: hidden;
      background: #fff;
      font-size: 13px;
      font-weight: 800;
    }
    .swatch span {
      display: block;
      height: 46px;
    }
    .swatch b { display: block; padding: 8px; }

    .footer {
      background: #fff7f2;
      color: var(--red);
      padding: 46px 22px 42px;
      text-align: center;
      box-shadow: 0 -12px 28px rgba(181,18,27,.08);
    }
    .footer .wrap {
      display: grid;
      gap: 24px;
      justify-items: center;
    }
    .footer-links {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 34px;
    }
    .footer a {
      color: var(--red);
      text-decoration: none;
    }
    .footer a:hover,
    .footer a:focus-visible {
      text-decoration: underline;
    }
    .footer p {
      margin: 0;
      color: var(--red);
    }
    .footer-legal {
      display: grid;
      gap: 8px;
    }

    @media (max-width: 1040px) {
      .proposal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .business-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .aibi-product-choice-field .gfield_checkbox { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .hero .wrap,
      .impact-layout,
      .form-shell { grid-template-columns: 1fr; }
      .hero-card { margin-left: 0; }
      .hero-visual { display: none; }
    }
    @media (max-width: 900px) {
      .hero-copy { max-width: 680px; }
      .hero .steps {
        max-width: 620px;
      }
      .hero .step {
        min-height: 0;
        align-items: center;
      }
      .hero .step::after { display: none; }
    }
    @media (max-width: 760px) {
      .hero {
        min-height: 0;
        padding: 54px 20px 116px;
      }
      .hero::after { height: 110px; bottom: -60px; }
      .hero::before { height: 46px; bottom: 10px; }
      .hero-actions,
      .footer .wrap { display: grid; grid-template-columns: 1fr; }
      .split-choice,
      .proposal-grid,
      .business-list,
      .faq,
      .mini-grid,
      .steps,
      .partners-grid,
      .project-choice-grid,
      .aibi-product-choice-field .gfield_checkbox,
      .gravity-form-placeholder .aibi-gf-project-preview,
      .doc-grid,
      .form-grid,
      .palette { grid-template-columns: 1fr; }
      .layout-row,
      .media-row,
      .project-detail-preview { grid-template-columns: 1fr; }
      .brand-panel { grid-template-columns: 1fr; overflow: auto; }
      .brand-panel-copy,
      .brand-panel-visual { padding: 42px 22px; }
      .brand-panel-close {
        top: 18px;
        right: 18px;
      }
      .modal-close {
        top: 18px;
        right: 18px;
      }
      body.admin-bar .brand-panel-close,
      body.admin-bar .modal-close {
        top: 60px;
      }
      .section { padding: 54px 20px; }
      .split-choice { margin-top: -30px; }
      .choice-card,
      .form-intro,
      .form-grid { padding: 22px; }
      .hero .steps {
        gap: 16px;
        grid-template-columns: 1fr;
        max-width: 420px;
      }
      .hero .steps::before { display: none; }
      .hero .step {
        min-height: 0;
        grid-template-columns: 46px 1fr;
        justify-items: start;
        column-gap: 14px;
        align-items: center;
        padding: 0;
        text-align: left;
      }
      .hero .step::after { display: none; }
      .step-visual {
        width: 38px;
        height: 38px;
        margin: 0;
      }
      .step-title { font-size: 17px; }
      .step-note {
        max-width: none;
        margin-left: 0;
        margin-right: 0;
      }
    }


/* Splash page Natale */
:root {
  --aibi-natale-red: #b5121b;
  --aibi-natale-red-dark: #7a0c12;
  --aibi-natale-warm: #fff7f2;
  --aibi-natale-ink: #2b2b2b;
  --aibi-natale-muted: #4f4a47;
  --aibi-natale-gold: #d6a84f;
  --aibi-natale-shadow: 0 18px 48px rgba(181, 18, 27, .16);
  --aibi-natale-radius: 8px;
  --aibi-natale-max: 1180px;
  --aibi-natale-font: Montserrat, Arial, Helvetica, sans-serif;
}

.aibi-natale-hero {
  position: relative;
  overflow: hidden;
  min-height: 660px;
  display: grid;
  align-items: start;
  padding: clamp(150px, 11vw, 190px) 22px 112px;
  background: #fff7f2;
  color: var(--aibi-natale-ink);
  font-family: var(--aibi-natale-font);
}

.aibi-natale-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}

.aibi-natale-hero::after {
  content: "";
  position: absolute;
  left: -6%;
  right: -6%;
  bottom: -86px;
  height: 178px;
  background: linear-gradient(180deg, rgba(80, 28, 20, 0), rgba(80, 28, 20, .18) 55%, rgba(80, 28, 20, .28));
  filter: blur(18px);
  pointer-events: none;
  z-index: 1;
}

.aibi-natale-hero::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background:
    linear-gradient(90deg, rgba(255,247,242,.94) 0 38%, rgba(255,247,242,.62) 52%, rgba(255,247,242,.18) 100%),
    linear-gradient(180deg, rgba(255,255,255,0) 78%, rgba(181,18,27,.08) 100%);
  pointer-events: none;
  z-index: 1;
}

.aibi-natale-wrap {
  width: 100%;
  max-width: var(--aibi-natale-max);
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.aibi-natale-hero-copy {
  max-width: 570px;
  position: relative;
  z-index: 2;
}

.aibi-natale-eyebrow {
  margin: 0 0 12px;
  color: var(--aibi-natale-red);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
}

.aibi-natale-hero h1 {
  max-width: 760px;
  margin: 0;
  color: var(--aibi-natale-red);
  font-family: var(--aibi-natale-font);
  font-size: clamp(32px, 4.2vw, 58px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: 0;
}

.aibi-natale-hero-copy > p:not(.aibi-natale-eyebrow) {
  max-width: 560px;
  margin: 22px 0 0;
  color: var(--aibi-natale-muted);
  font-size: clamp(17px, 1.8vw, 21px);
  line-height: 1.55;
}

.aibi-natale-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 32px;
}

.aibi-natale-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 20px;
  border-radius: var(--aibi-natale-radius);
  border: 2px solid transparent;
  background: var(--aibi-natale-red);
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  line-height: 1.1;
  box-shadow: var(--aibi-natale-shadow);
}

.aibi-natale-btn:hover,
.aibi-natale-btn:focus {
  background: var(--aibi-natale-red-dark);
  color: #fff;
}

.aibi-natale-btn-secondary {
  background: #fff;
  color: var(--aibi-natale-red);
  border-color: rgba(181,18,27,.24);
  box-shadow: none;
}

.aibi-natale-btn-secondary:hover,
.aibi-natale-btn-secondary:focus {
  background: var(--aibi-natale-warm);
  color: var(--aibi-natale-red);
  border-color: var(--aibi-natale-red);
}

.aibi-natale-scroll-decor,
.aibi-natale-decor,
[class*="aibi-natale-decor-"] {
  display: none !important;
}

.aibi-natale-shape {
  display: none !important;
}

.aibi-natale-shape svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 4px 8px rgba(122, 76, 16, .10));
}

.aibi-natale-shape path {
  fill: none;
  stroke: currentColor;
  stroke-width: 4.2;
  stroke-linejoin: round;
}

.aibi-natale-shape-one {
  --aibi-star-rotate: -18deg;
  --aibi-star-x: -4px;
  --aibi-star-y: -14px;
  --aibi-star-spin: 9deg;
  --aibi-star-duration: 7.4s;
  --aibi-star-delay: -.6s;
  width: 56px;
  height: 56px;
  left: 44%;
  top: 158px;
  transform: rotate(var(--aibi-star-rotate));
}

.aibi-natale-shape-two {
  --aibi-star-rotate: 11deg;
  --aibi-star-x: 8px;
  --aibi-star-y: -9px;
  --aibi-star-spin: -13deg;
  --aibi-star-duration: 5.8s;
  --aibi-star-delay: -1.4s;
  width: 42px;
  height: 42px;
  right: 28%;
  top: 102px;
  opacity: .38;
  transform: rotate(var(--aibi-star-rotate));
}

.aibi-natale-shape-three {
  --aibi-star-rotate: 24deg;
  --aibi-star-x: -7px;
  --aibi-star-y: -6px;
  --aibi-star-spin: 16deg;
  --aibi-star-duration: 8.6s;
  --aibi-star-delay: -2.1s;
  width: 26px;
  height: 26px;
  right: 36%;
  top: 188px;
  opacity: .28;
  transform: rotate(var(--aibi-star-rotate));
}

.aibi-natale-shape-four {
  --aibi-star-rotate: -32deg;
  --aibi-star-x: 5px;
  --aibi-star-y: -12px;
  --aibi-star-spin: 10deg;
  --aibi-star-duration: 6.5s;
  --aibi-star-delay: -3.2s;
  width: 18px;
  height: 18px;
  right: 18%;
  top: 72px;
  opacity: .24;
  transform: rotate(var(--aibi-star-rotate));
}

.aibi-natale-shape-five {
  --aibi-star-rotate: 7deg;
  --aibi-star-x: 10px;
  --aibi-star-y: -16px;
  --aibi-star-spin: -8deg;
  --aibi-star-duration: 9.2s;
  --aibi-star-delay: -1s;
  width: 34px;
  height: 34px;
  left: 58%;
  top: 74px;
  opacity: .22;
  transform: rotate(var(--aibi-star-rotate));
}

.aibi-natale-shape-six {
  --aibi-star-rotate: 36deg;
  --aibi-star-x: -5px;
  --aibi-star-y: -8px;
  --aibi-star-spin: -18deg;
  --aibi-star-duration: 5.2s;
  --aibi-star-delay: -2.7s;
  width: 14px;
  height: 14px;
  right: 9%;
  top: 144px;
  opacity: .22;
  transform: rotate(var(--aibi-star-rotate));
}

.aibi-natale-shape-seven {
  --aibi-star-rotate: -9deg;
  --aibi-star-x: 6px;
  --aibi-star-y: -11px;
  --aibi-star-spin: 15deg;
  --aibi-star-duration: 7.9s;
  --aibi-star-delay: -4s;
  width: 48px;
  height: 48px;
  left: 63%;
  top: 252px;
  opacity: .20;
  transform: rotate(var(--aibi-star-rotate));
}

@supports (animation-timeline: scroll()) {
  .aibi-natale-shape-one {
    animation: aibi-natale-star-scroll-one linear both;
    animation-timeline: scroll(root block);
    animation-range: 0 620px;
  }

  .aibi-natale-shape-two {
    animation: aibi-natale-star-scroll-two linear both;
    animation-timeline: scroll(root block);
    animation-range: 0 620px;
  }

  .aibi-natale-shape-three,
  .aibi-natale-shape-five,
  .aibi-natale-shape-seven {
    animation: aibi-natale-star-scroll-soft-left linear both;
    animation-timeline: scroll(root block);
    animation-range: 0 620px;
  }

  .aibi-natale-shape-four,
  .aibi-natale-shape-six {
    animation: aibi-natale-star-scroll-soft-right linear both;
    animation-timeline: scroll(root block);
    animation-range: 0 620px;
  }
}

.aibi-natale-content {
  position: relative;
  z-index: 1;
}

.aibi-natale-content-wrap {
  clear: both;
  position: relative;
  z-index: 2;
}

.aibi-natale-content-wrap .main-content {
  padding-top: 0;
}

@keyframes aibi-natale-star-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(var(--aibi-star-rotate, -10deg)); opacity: .44; }
  50% { transform: translate3d(var(--aibi-star-x, 0), var(--aibi-star-y, -10px), 0) rotate(calc(var(--aibi-star-rotate, -10deg) + var(--aibi-star-spin, 12deg))); opacity: .58; }
}

@keyframes aibi-natale-star-scroll-one {
  from { transform: translate3d(0, 0, 0) rotate(-18deg); opacity: .48; }
  to { transform: translate3d(-14px, 34px, 0) rotate(8deg); opacity: .30; }
}

@keyframes aibi-natale-star-scroll-two {
  from { transform: translate3d(0, 0, 0) rotate(11deg); opacity: .38; }
  to { transform: translate3d(16px, 28px, 0) rotate(-14deg); opacity: .22; }
}

@keyframes aibi-natale-star-scroll-soft-left {
  from { transform: translate3d(0, 0, 0) rotate(var(--aibi-star-rotate, -8deg)); }
  to { transform: translate3d(-10px, 24px, 0) rotate(calc(var(--aibi-star-rotate, -8deg) + 14deg)); }
}

@keyframes aibi-natale-star-scroll-soft-right {
  from { transform: translate3d(0, 0, 0) rotate(var(--aibi-star-rotate, 10deg)); }
  to { transform: translate3d(12px, 20px, 0) rotate(calc(var(--aibi-star-rotate, 10deg) - 14deg)); }
}

@media (max-width: 760px) {
  .aibi-natale-hero {
    min-height: 0;
    padding: 120px 20px 116px;
  }

  .aibi-natale-hero::after {
    height: 110px;
    bottom: -60px;
  }

  .aibi-natale-hero::before {
    height: 46px;
    bottom: 10px;
  }

  .aibi-natale-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .aibi-natale-shape-one {
    left: auto;
    right: 18%;
    bottom: 96px;
    top: auto;
    width: 30px;
    height: 30px;
  }

  .aibi-natale-shape-two,
  .aibi-natale-shape-three,
  .aibi-natale-shape-four,
  .aibi-natale-shape-five,
  .aibi-natale-shape-six,
  .aibi-natale-shape-seven {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aibi-natale-shape {
    animation: none !important;
    transform: none !important;
  }
}

