/* ==========================================================================
   F3C — Design System / Components
   Componenti globali condivisi dal modulo F3C.
   ========================================================================== */

/* ==========================================================================
   Buttons
   ========================================================================== */

.c-vo-btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 18px;
  border-radius: var(--vo-radius-pill, 999px);
  font-size: .9rem;
  font-weight: 850;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  border: 1px solid transparent;
}

.c-vo-btn--primary {
  background: var(--vo-red, #7b0500);
  border-color: var(--vo-red, #7b0500);
  color: #ffffff !important;
  box-shadow: 0 10px 22px rgba(123, 5, 0, .18);
}

.c-vo-btn--primary:hover,
.c-vo-btn--primary:focus-visible {
  background: var(--vo-red-dark, #5f0400);
  border-color: var(--vo-red-dark, #5f0400);
}

.c-vo-btn--secondary {
  background: #ffffff;
  border-color: var(--vo-red, #7b0500);
  color: var(--vo-red, #7b0500) !important;
}

.c-vo-btn--secondary:hover,
.c-vo-btn--secondary:focus-visible {
  background: #fff7ed;
}

.c-vo-btn--danger {
  background: var(--vo-danger, #c0392b);
  border-color: var(--vo-danger, #c0392b);
  color: #ffffff !important;
}

.c-vo-btn--danger:hover,
.c-vo-btn--danger:focus-visible {
  background: var(--vo-danger-hover, #962d22);
  border-color: var(--vo-danger-hover, #962d22);
}

.c-vo-btn--tertiary {
  background: var(--vo-soft, #f8fafc);
  border-color: var(--vo-border, #e2e8f0);
  color: var(--vo-text, #0f172a) !important;
}

.c-vo-btn--block {
  width: 100%;
}

/* ==========================================================================
   Icon Button
   ========================================================================== */

.c-vo-icon-btn {
  min-width: 44px;
  min-height: 44px;

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

  border: 1px solid rgba(123, 5, 0, .48);
  border-radius: var(--vo-radius-pill, 999px);

  background: #ffffff;
  color: var(--vo-red, #7b0500) !important;

  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  text-decoration: none !important;
}

.c-vo-icon-btn:hover,
.c-vo-icon-btn:focus-visible {
  background: var(--vo-red, #7b0500);
  color: #ffffff !important;
  border-color: var(--vo-red, #7b0500);
}

/* ==========================================================================
   Badge / Status
   ========================================================================== */

.c-vo-badge {
  min-height: 32px;
  width: fit-content;
  max-width: 100%;

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

  padding: 6px 12px;
  border-radius: var(--vo-radius-pill, 999px);

  font-size: .75rem;
  font-weight: 750;
  line-height: 1.1;
  white-space: nowrap;
}

.c-vo-badge--info {
  color: #ffffff;
  background: var(--vo-info, #0369a1);
  border: 1px solid var(--vo-info-dark, #075985);
}

.c-vo-badge--success {
  color: #ffffff;
  background: var(--vo-success, #047857);
  border: 1px solid var(--vo-success-dark, #065f46);
}

.c-vo-badge--warning {
  color: #111827;
  background: var(--vo-warning, #f59e0b);
  border: 1px solid #d97706;
}

.c-vo-badge--danger {
  color: #ffffff;
  background: var(--vo-danger, #c0392b);
  border: 1px solid var(--vo-danger-hover, #962d22);
}

.c-vo-badge--neutral {
  color: #334155;
  background: #e2e8f0;
  border: 1px solid var(--vo-border-strong, #cbd5e1);
}

/* Mobile touch refinement */
@media (max-width: 767px) {
  .c-vo-badge {
    min-height: 34px;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
  }

  .c-vo-icon-btn {
    min-width: 48px;
    min-height: 48px;
  }
}
/* ==========================================================================
   Metrics / KPI
   ========================================================================== */

.c-vo-metrics {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 18px 0 0;
}

.c-vo-metric {
  min-width: 0;
  padding: 13px 15px;
  border-radius: var(--vo-radius-md, 16px);
  background: var(--vo-soft, #f8fafc);
  border: 1px solid var(--vo-border, #e2e8f0);
}

.c-vo-hero__stats .c-vo-metric {
  border-left: 5px solid var(--vo-red, #7b0500);
  background: linear-gradient(180deg, #ffffff 0%, var(--vo-soft, #f8fafc) 100%);
  box-shadow: var(--vo-shadow-sm, 0 8px 18px rgba(15, 23, 42, .055));
}

.c-vo-metric span {
  display: block;
  color: var(--vo-muted, #64748b);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
}

.c-vo-metric strong {
  display: block;
  margin-top: 5px;
  color: var(--vo-text, #0f172a);
  font-size: 1.08rem;
  font-weight: 850;
  line-height: 1.15;
}

.c-vo-metric--ok {
  background: #ecfdf5;
  border-color: #a7f3d0;
}

.c-vo-metric--alert {
  background: #fff7ed;
  border-color: #fed7aa;
}

/* ==========================================================================
   Card / Panel
   ========================================================================== */

.c-vo-card,
.c-vo-panel,
.c-vo-side-card {
  background: var(--vo-panel, #ffffff);
  border: 1px solid var(--vo-border, #e2e8f0);
  border-radius: var(--vo-radius-lg, 22px);
  box-shadow: var(--vo-shadow-sm, 0 8px 18px rgba(15, 23, 42, .055));
}

.c-vo-card,
.c-vo-panel {
  padding: clamp(18px, 2.4vw, 26px);
}

.c-vo-side-card {
  padding: 18px;
}

.c-vo-card--primary,
.c-vo-panel--primary {
  border-top: 5px solid var(--vo-red, #7b0500);
}

.c-vo-card--soft {
  background: var(--vo-soft, #f8fafc);
}

.c-vo-card__head,
.c-vo-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.c-vo-card__title,
.c-vo-panel__title,
.c-vo-side-card__title {
  margin: 0;
  color: var(--vo-text, #0f172a);
  font-weight: 850;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.c-vo-card__title,
.c-vo-panel__title {
  font-size: clamp(1.4rem, 2.4vw, 2rem);
}

.c-vo-side-card__title {
  font-size: 1.12rem;
}

.c-vo-card__text,
.c-vo-panel__text {
  margin: 8px 0 0;
  color: var(--vo-text-soft, #334155);
  font-size: .96rem;
  line-height: 1.6;
}

.c-vo-card__body {
  min-width: 0;
}

.c-vo-card__footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

@media (max-width: 767px) {
  .c-vo-card,
  .c-vo-panel,
  .c-vo-side-card {
    border-radius: 18px;
  }

  .c-vo-card,
  .c-vo-panel {
    padding: 16px;
  }

  .c-vo-card__title,
  .c-vo-panel__title {
    font-size: 1.32rem;
  }

  .c-vo-card__text,
  .c-vo-panel__text {
    font-size: .92rem;
  }
}

/* ==========================================================================
   Informative Lists / Date Cards / Definition Lists
   ========================================================================== */

.c-vo-date-list,
.c-vo-link-list,
.c-vo-definition-list {
  display: grid;
  gap: 10px;
}

.c-vo-date-list,
.c-vo-link-list {
  margin-top: 16px;
}

.c-vo-date-card {
  display: grid;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  padding: 12px 14px;
  border-radius: var(--vo-radius-md, 16px);
  background: var(--vo-soft, #f8fafc);
  border: 1px solid var(--vo-border, #e2e8f0);
}

.c-vo-date-card strong {
  color: var(--vo-text, #0f172a);
  font-weight: 850;
}

.c-vo-date-card span {
  color: var(--vo-muted, #64748b);
  font-size: .9rem;
}

.c-vo-definition-list {
  margin: 16px 0 0;
}

.c-vo-definition-list div {
  padding-top: 10px;
  border-top: 1px solid #eef2f7;
}

.c-vo-definition-list div:first-child {
  padding-top: 0;
  border-top: 0;
}

.c-vo-definition-list dt {
  color: var(--vo-red, #7b0500);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.c-vo-definition-list dd {
  margin: 4px 0 0;
  color: var(--vo-text, #0f172a);
  font-weight: 750;
  overflow-wrap: anywhere;
}

/* ==========================================================================
   Accordion
   ========================================================================== */

.c-vo-accordion {
  overflow: hidden;
}

.c-vo-accordion__summary {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}

.c-vo-accordion__summary::-webkit-details-marker {
  display: none;
}

.c-vo-accordion__summary::after {
  content: "Apri";
  color: var(--vo-red, #7b0500);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.c-vo-accordion[open] .c-vo-accordion__summary::after {
  content: "Chiudi";
}

@media (max-width: 767px) {
  .c-vo-accordion__summary {
    min-height: 54px;
  }
}

/* ==========================================================================
   Participant Card
   Card verticale stabile: Header → Body → Footer.
   ========================================================================== */

.c-vo-table {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.c-vo-table__head {
  display: none;
}

.c-vo-row {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;

  width: 100%;
  max-width: 100%;
  min-width: 0;

  padding: 20px;
  padding-right: 180px;

  border: 1px solid var(--vo-border, #e2e8f0);
  border-radius: var(--vo-radius-lg, 22px);
  background: #ffffff;
  box-shadow: var(--vo-shadow-sm, 0 8px 18px rgba(15, 23, 42, .055));
  overflow: hidden;
}

.c-vo-row:nth-of-type(even) {
  background: var(--vo-soft, #f8fafc);
}

.c-vo-row:hover {
  border-color: rgba(123, 5, 0, .26);
  box-shadow: var(--vo-shadow-md, 0 14px 34px rgba(15, 23, 42, .075));
}

.c-vo-row > div::before {
  display: none;
  content: none;
}

.c-vo-row > div,
.c-vo-row strong,
.c-vo-row span,
.c-vo-row a,
.c-vo-row summary {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Header card — identità */
.c-vo-row__person {
  order: 1;
  min-width: 0;
}

.c-vo-row__person strong {
  display: block;
  color: var(--vo-text, #0f172a);
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.015em;
}

.c-vo-row__person span {
  display: block;
  margin-top: 5px;
  color: var(--vo-muted, #64748b);
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.25;
}

/* Header card — stato */
.c-vo-row__status {
  position: absolute;
  top: 20px;
  right: 20px;

  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;

  max-width: 150px;
  min-width: 0;
}

/* Body card — telefono */
.c-vo-row__phone {
  order: 2;

  display: inline-flex;
  align-items: center;
  gap: 8px;

  width: fit-content;
  max-width: 100%;
  min-height: 30px;

  margin: 2px 0 0;
  padding: 0;
  border: 0;
  background: transparent;

  color: var(--vo-text-soft, #334155);
  font-size: .92rem;
  font-weight: 750;
  line-height: 1.25;
}

.c-vo-row__phone::before {
  content: "☎";
  flex: 0 0 22px;

  width: 22px;
  height: 22px;

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

  border-radius: var(--vo-radius-pill, 999px);
  background: var(--vo-soft-2, #f1f5f9);
  color: var(--vo-red, #7b0500);

  font-size: .72rem;
  font-weight: 900;
  line-height: 1;
}

/* Body card — data e dettagli */
.c-vo-row__date {
  order: 3;

  display: grid;
  gap: 8px;

  width: 100%;
  max-width: 100%;
  min-width: 0;

  padding: 13px 14px;
  border: 1px solid var(--vo-border, #e2e8f0);
  border-radius: var(--vo-radius-md, 16px);
  background: var(--vo-soft, #f8fafc);
}

.c-vo-row__date strong {
  display: block;
  color: var(--vo-text, #0f172a);
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.25;
}

.c-vo-row__date details {
  margin: 0;
}

.c-vo-row__date summary {
  width: fit-content;
  min-height: 34px;

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

  padding: 6px 11px;
  border: 1px solid rgba(123, 5, 0, .35);
  border-radius: var(--vo-radius-pill, 999px);

  background: #ffffff;
  color: var(--vo-red, #7b0500);

  cursor: pointer;
  font-size: .76rem;
  font-weight: 800;
  line-height: 1.1;
  text-decoration: none;
}

.c-vo-row__date summary:hover,
.c-vo-row__date summary:focus-visible {
  background: var(--vo-red, #7b0500);
  color: #ffffff;
}

.c-vo-row__date-list {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.c-vo-row__date-item {
  padding: 9px 10px;
  border: 1px solid var(--vo-border, #e2e8f0);
  border-radius: var(--vo-radius-sm, 12px);
  background: #ffffff;
}

.c-vo-row__date-item span {
  display: block;
  margin-top: 3px;
  color: var(--vo-muted, #64748b);
  font-size: .86rem;
}

.c-vo-row__date-item a {
  width: fit-content;
  min-height: 32px;

  display: inline-flex;
  align-items: center;

  margin-top: 7px;
  padding: 5px 10px;

  border: 1px solid rgba(123, 5, 0, .30);
  border-radius: var(--vo-radius-pill, 999px);

  background: #ffffff;
  color: var(--vo-red, #7b0500);

  font-size: .75rem;
  font-weight: 800;
  text-decoration: none;
}

/* Footer card — azione */
.c-vo-row__actions {
  order: 4;

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

  min-width: 0;
  margin-top: 2px;
}

.c-vo-row__actions::before {
  display: none;
  content: none;
}

/* Empty state */
.c-vo-row--empty,
.c-vo-row__empty {
  padding: 18px;
  border: 1px dashed var(--vo-border-strong, #cbd5e1);
  border-radius: var(--vo-radius-md, 16px);
  background: var(--vo-soft, #f8fafc);
  color: var(--vo-muted, #64748b);
  font-weight: 700;
}

@media (min-width: 1180px) {
  .c-vo-row:hover {
    transform: translateY(-1px);
  }
}

@media (max-width: 767px) {
  .c-vo-table {
    gap: 16px;
  }

  .c-vo-row {
    padding: 18px;
    padding-right: 18px;
    border-left: 5px solid var(--vo-red, #7b0500);
    border-radius: 18px;
  }

  .c-vo-row__status {
    position: static;
    order: 2;

    max-width: 100%;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .c-vo-row__phone {
    order: 3;
  }

  .c-vo-row__date {
    order: 4;
    padding: 12px;
  }

  .c-vo-row__actions {
    order: 5;
  }

  .c-vo-row__person strong {
    font-size: 1.05rem;
  }
}

/* ==========================================================================
   Form Components / Base
   Base condivisa per form pubblici e gestionali F3C.
   Non include managed_file o upload documenti.
   ========================================================================== */

.caritas-vo-public-request-form,
.caritas-vo-participant-form,
.caritas-vo-adult-form {
  color: var(--vo-text, #0f172a);
}

.caritas-vo-public-request-form .form-item,
.caritas-vo-participant-form .form-item,
.caritas-vo-adult-form .form-item {
  margin-block: 0 16px;
}

.caritas-vo-public-request-form label,
.caritas-vo-public-request-form .form-item__label,
.caritas-vo-participant-form .form-item__label,
.caritas-vo-participant-form .fieldset__label,
.caritas-vo-adult-form label,
.caritas-vo-adult-form .form-item__label {
  color: var(--vo-text, #0f172a);
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.25;
}

.caritas-vo-public-request-form .description,
.caritas-vo-public-request-form .form-item__description,
.caritas-vo-public-request-form .fieldset__description,
.caritas-vo-participant-form .description,
.caritas-vo-participant-form .form-item__description,
.caritas-vo-participant-form .fieldset__description,
.caritas-vo-adult-form .description,
.caritas-vo-adult-form .form-item__description,
.caritas-vo-adult-form .fieldset__description {
  margin-top: 6px;
  color: var(--vo-muted, #64748b);
  font-size: .86rem;
  line-height: 1.45;
}

.caritas-vo-public-request-form input[type="text"],
.caritas-vo-public-request-form input[type="email"],
.caritas-vo-public-request-form input[type="tel"],
.caritas-vo-public-request-form input[type="number"],
.caritas-vo-public-request-form input[type="date"],
.caritas-vo-public-request-form input[type="time"],
.caritas-vo-public-request-form select,
.caritas-vo-public-request-form textarea,
.caritas-vo-participant-form .form-element,
.caritas-vo-participant-form input[type="text"],
.caritas-vo-participant-form input[type="email"],
.caritas-vo-participant-form input[type="tel"],
.caritas-vo-participant-form input[type="number"],
.caritas-vo-participant-form input[type="date"],
.caritas-vo-participant-form select,
.caritas-vo-participant-form textarea,
.caritas-vo-adult-form input,
.caritas-vo-adult-form select,
.caritas-vo-adult-form textarea {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid var(--vo-border, #e2e8f0);
  border-radius: var(--vo-radius-sm, 12px);
  background: #ffffff;
  color: var(--vo-text, #0f172a);
  font-size: .95rem;
  line-height: 1.35;
  box-shadow: none;
}

.caritas-vo-public-request-form textarea,
.caritas-vo-participant-form textarea,
.caritas-vo-adult-form textarea {
  min-height: 120px;
  resize: vertical;
}

.caritas-vo-public-request-form input:focus,
.caritas-vo-public-request-form select:focus,
.caritas-vo-public-request-form textarea:focus,
.caritas-vo-participant-form input:focus,
.caritas-vo-participant-form select:focus,
.caritas-vo-participant-form textarea:focus,
.caritas-vo-adult-form input:focus,
.caritas-vo-adult-form select:focus,
.caritas-vo-adult-form textarea:focus {
  outline: none;
  border-color: var(--vo-red, #7b0500);
  box-shadow: 0 0 0 3px rgba(123, 5, 0, .12);
}

/* Fieldset / Details base */

.caritas-vo-public-request-form fieldset,
.caritas-vo-participant-form .fieldset,
.caritas-vo-participant-form details.olivero-details,
.caritas-vo-adult-form__section {
  border: 1px solid var(--vo-border, #e2e8f0);
  border-left: 5px solid var(--vo-red, #7b0500);
  border-radius: var(--vo-radius-md, 16px);
  background: #ffffff;
  box-shadow: var(--vo-shadow-sm, 0 8px 18px rgba(15, 23, 42, .055));
}

.caritas-vo-public-request-form fieldset legend,
.caritas-vo-participant-form .fieldset__legend,
.caritas-vo-participant-form .fieldset__label,
.caritas-vo-participant-form details.olivero-details > summary,
.caritas-vo-adult-form__section > summary {
  color: var(--vo-red, #7b0500);
  font-weight: 850;
}

/* Checkbox / Radio base touch-friendly */

.caritas-vo-public-request-form .form-type--checkbox,
.caritas-vo-public-request-form .js-form-type-checkbox,
.caritas-vo-participant-form .form-type-boolean,
.caritas-vo-participant-form .form-type-checkbox,
.caritas-vo-adult-form .form-type-boolean,
.caritas-vo-adult-form .form-type-checkbox {
  min-width: 0;
}

.caritas-vo-public-request-form input[type="checkbox"],
.caritas-vo-participant-form input[type="checkbox"],
.caritas-vo-adult-form input[type="checkbox"] {
  accent-color: var(--vo-red, #7b0500);
}

.caritas-vo-public-request-form .form-actions,
.caritas-vo-participant-form .form-actions,
.caritas-vo-adult-form .form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

/* Submit base coerente con Buttons */

.caritas-vo-public-request-form .form-submit,
.caritas-vo-participant-form .form-submit,
.caritas-vo-adult-form .form-submit {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 20px;
  border: 1px solid var(--vo-red, #7b0500);
  border-radius: var(--vo-radius-pill, 999px);
  background: var(--vo-red, #7b0500);
  color: #ffffff;
  font-size: .92rem;
  font-weight: 850;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
}

.caritas-vo-public-request-form .form-submit:hover,
.caritas-vo-public-request-form .form-submit:focus-visible,
.caritas-vo-participant-form .form-submit:hover,
.caritas-vo-participant-form .form-submit:focus-visible,
.caritas-vo-adult-form .form-submit:hover,
.caritas-vo-adult-form .form-submit:focus-visible {
  background: var(--vo-red-dark, #5f0400);
  border-color: var(--vo-red-dark, #5f0400);
}

@media (max-width: 767px) {
  .caritas-vo-public-request-form .form-submit,
  .caritas-vo-participant-form .form-submit,
  .caritas-vo-adult-form .form-submit {
    width: 100%;
  }

  .caritas-vo-public-request-form fieldset,
  .caritas-vo-participant-form .fieldset,
  .caritas-vo-participant-form details.olivero-details,
  .caritas-vo-adult-form__section {
    border-radius: 14px;
  }
}

/* ==========================================================================
   Public Section Card
   Card introduttive/conferma/sezioni della richiesta pubblica F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-public-request-intro,
body:not(.path-admin) .caritas-vo-public-request-confirmation,
body:not(.path-admin) .caritas-vo-public-section {
  margin: 0 0 24px;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid #e5e7eb;
  border-left: 6px solid #7b0500;
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .06);
}

body:not(.path-admin) .caritas-vo-public-request-intro p,
body:not(.path-admin) .caritas-vo-public-request-confirmation p {
  margin: 0;
  color: #1f2937;
  font-size: clamp(1rem, 1.5vw, 1.08rem);
  line-height: 1.7;
}

body:not(.path-admin) .caritas-vo-public-section__header {
  margin: 0 0 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e7eb;
}

body:not(.path-admin) .caritas-vo-public-section__eyebrow,
body:not(.path-admin) .caritas-vo-public-request-confirmation__eyebrow {
  margin: 0 0 6px;
  color: #7b0500;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body:not(.path-admin) .caritas-vo-public-section__header h2,
body:not(.path-admin) .caritas-vo-public-request-confirmation__title {
  margin: 0;
  color: #111827;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.18;
}

body:not(.path-admin) .caritas-vo-public-section__header p {
  max-width: 720px;
  margin: 10px 0 0;
  color: #475569;
  line-height: 1.6;
}

/* ==========================================================================
   Public Services Checkbox Group
   Gruppo servizi richiesta pubblica F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-public-services {
  max-width: 720px;
  margin: 18px 0 24px;
  overflow: hidden;
  border: 1px solid #dbe3ea;
  border-radius: 20px;
  background: #ffffff;
}

body:not(.path-admin) .caritas-vo-public-services__label {
  padding: 16px 18px;
  border-bottom: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #7b0500;
  font-weight: 950;
}

body:not(.path-admin) .caritas-vo-public-services__label span {
  color: #0077aa;
}

body:not(.path-admin) .caritas-vo-public-services__items {
  display: grid;
  gap: 2px;
  padding: 12px 18px 8px;
}

body:not(.path-admin) .caritas-vo-public-services .form-item {
  max-width: none;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 8px 0;
}

body:not(.path-admin) .caritas-vo-public-services input[type="checkbox"] {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  margin: 0;
  accent-color: #7b0500;
}

body:not(.path-admin) .caritas-vo-public-services label {
  margin: 0;
  color: #111827;
  font-weight: 850;
  line-height: 1.35;
}

body:not(.path-admin) .caritas-vo-public-services__description {
  padding: 0 18px 18px;
  color: #475569;
  font-size: .95rem;
  line-height: 1.55;
}

/* ==========================================================================
   Public Schedule Rows
   Righe data/orario e bottone aggiungi data della richiesta pubblica F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-public-schedule-row {
  max-width: 820px;
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(130px, .7fr) minmax(130px, .7fr) auto;
  gap: 14px;
  align-items: end;
  margin: 0 0 16px;
  padding: 18px;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  background: #ffffff;
}

body:not(.path-admin) .caritas-vo-public-request-form .caritas-vo-public-schedule-add {
  max-width: 100%;
  min-height: 48px;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 1rem;
  line-height: 1.2;
  white-space: nowrap;
  box-sizing: border-box;
}

@media (max-width: 767px) {
  body:not(.path-admin) .caritas-vo-public-request-form .caritas-vo-public-schedule-add {
  width: 100%;
  font-size: .98rem;
  }
}

@media (max-width: 767px) {
  body:not(.path-admin) .caritas-vo-public-schedule-row {
  grid-template-columns: 1fr;
  padding: 16px;
  }
}

/* ==========================================================================
   Public Confirmation Checkbox
   Checkbox finale conferma/privacy della richiesta pubblica F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

/* F3C public request - checkbox conferma/privacy mobile */
body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm,
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm {
  max-width: 720px;
  width: 100%;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  margin: 20px 0 0;
  padding: 16px 18px;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  background: #ffffff;
}

body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm input[type="checkbox"],
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm input[type="checkbox"] {
  width: 24px;
  height: 24px;
  margin: 2px 0 0;
}

body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm label,
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm label {
  min-width: 0;
  margin: 0;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm,
  body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm {
    max-width: none;
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 16px;
    border-radius: 16px;
  }
}


/* ==========================================================================
   Public Confirmation Checkbox — square mobile fix
   Correzione mirata: checkbox finale sempre quadrata e touch-friendly.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm input[type="checkbox"],
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;

  inline-size: 24px;
  block-size: 24px;
  min-inline-size: 24px;
  min-block-size: 24px;
  max-inline-size: 24px;
  max-block-size: 24px;
  aspect-ratio: 1 / 1;

  flex: 0 0 24px;
  display: inline-grid;
  place-content: center;

  margin: 2px 0 0;
  padding: 0;
  box-sizing: border-box;

  border: 2px solid #94a3b8;
  border-radius: 5px;
  background: #ffffff;
  cursor: pointer;
}

body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm input[type="checkbox"]::before,
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm input[type="checkbox"]::before {
  content: "";
  inline-size: 12px;
  block-size: 12px;
  transform: scale(0);
  transform-origin: center;
  background: #ffffff;
  clip-path: polygon(14% 44%, 0 65%, 48% 100%, 100% 16%, 82% 0, 43% 62%);
}

body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm input[type="checkbox"]:checked,
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm input[type="checkbox"]:checked {
  border-color: var(--vo-red, #7b0500);
  background: var(--vo-red, #7b0500);
}

body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm input[type="checkbox"]:checked::before,
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm input[type="checkbox"]:checked::before {
  transform: scale(1);
}

body:not(.path-admin) .caritas-vo-public-request-form .form-item-referent-confirm input[type="checkbox"]:focus-visible,
body:not(.path-admin) .caritas-vo-public-request-form .js-form-item-referent-confirm input[type="checkbox"]:focus-visible {
  outline: 3px solid rgba(123, 5, 0, .18);
  outline-offset: 3px;
}

/* ==========================================================================
   Public Request Form Shell / Fieldset
   Residuo specifico della richiesta pubblica gruppo F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

/* ==========================================================================
   F3C - Richiesta pubblica volontariato occasionale per gruppi
   ========================================================================== */

body:not(.path-admin) .caritas-vo-public-request-form {
  width: min(100% - 32px, 980px);
  margin: 0 auto 72px;
}

body:not(.path-admin) .caritas-vo-public-request-form fieldset {
  max-width: 720px;
  margin: 18px 0;
  border: 1px solid #dbe3ea;
  border-radius: 18px;
  background: #ffffff;
  overflow: hidden;
}

body:not(.path-admin) .caritas-vo-public-request-form fieldset legend {
  width: 100%;
  padding: 14px 18px;
  background: #f8fafc;
  border-bottom: 1px solid #e5e7eb;
  color: #7b0500;
  font-weight: 950;
}

body:not(.path-admin) .caritas-vo-public-request-form .fieldset__wrapper {
  padding: 16px 18px 18px;
}

body:not(.path-admin) .caritas-vo-public-request-form .form-type--checkbox,
body:not(.path-admin) .caritas-vo-public-request-form .js-form-type-checkbox {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
}

body:not(.path-admin) .caritas-vo-public-request-form input[type="checkbox"] {
  width: 22px;
  height: 22px;
  accent-color: #7b0500;
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-public-request-form {
    width: calc(100% - 24px);
    margin-bottom: 48px;
  }

  body:not(.path-admin) .caritas-vo-public-request-intro,
  body:not(.path-admin) .caritas-vo-public-request-confirmation,
  body:not(.path-admin) .caritas-vo-public-section {
    padding: 18px 16px;
    border-radius: 18px;
  }
}

/* F3C public request - servizi puliti e bottoni calendario */

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-public-services {
    max-width: none;
    border-radius: 18px;
  }

}

/* ==========================================================================
   Participant Page Intro / Policy / Hero Card
   Blocchi introduttivi della registrazione partecipante F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

.caritas-vo-participant-page-intro,
.caritas-vo-participant-form {
  width: min(100%, 980px);
  margin-inline: auto;
  padding-inline: clamp(14px, 4vw, 24px);
}

.caritas-vo-participant-page-intro {
  padding-block: 24px 8px;
}

.caritas-vo-participant-hero,
.caritas-vo-policy-card,
.caritas-vo-form-intro {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-left: 5px solid #7b0500;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .07);
  padding: clamp(18px, 4vw, 24px);
  margin-bottom: 18px;
}

.caritas-vo-eyebrow {
  color: #7b0500;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.caritas-vo-participant-hero h1,
.caritas-vo-policy-card h2,
.caritas-vo-form-intro h2 {
  color: #7b0500;
  margin: 0 0 10px;
  line-height: 1.15;
}

.caritas-vo-participant-hero p,
.caritas-vo-policy-card p,
.caritas-vo-form-intro p {
  color: #334155;
  margin: 0;
  line-height: 1.65;
}

/* ==========================================================================
   Participant Details / Olivero Details
   Blocchi details generati dal tema Olivero nella registrazione partecipante.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

.caritas-vo-participant-form details.olivero-details {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-left: 5px solid #7b0500;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
  margin: 0 0 18px;
  overflow: hidden;
}

.caritas-vo-participant-form details.olivero-details > summary {
  min-height: 54px;
  padding: 16px 18px;
  color: #7b0500;
  font-size: clamp(1.05rem, 2.4vw, 1.22rem);
  font-weight: 900;
  cursor: pointer;
  touch-action: manipulation;
}

.caritas-vo-participant-form details.olivero-details[open] > summary {
  border-bottom: 1px solid #eef2f7;
}

.caritas-vo-participant-form .olivero-details__description {
  color: #475569;
  background: #f8fafc;
  border-bottom: 1px solid #eef2f7;
  padding: 12px 18px;
  line-height: 1.55;
}

/* ==========================================================================
   Participant Section Card
   Card strutturali interne della registrazione partecipante F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

.caritas-vo-participant-form .caritas-vo-section-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-left: 5px solid #7b0500;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
  margin: 0 0 18px;
  padding: clamp(16px, 4vw, 24px);
  overflow: hidden;
}

.caritas-vo-participant-form .caritas-vo-section-heading {
  margin: calc(clamp(16px, 4vw, 24px) * -1);
  margin-bottom: 18px;
  padding: 16px 18px;
  background: #ffffff;
  border-bottom: 1px solid #eef2f7;
}

.caritas-vo-participant-form .caritas-vo-section-heading h2 {
  color: #7b0500;
  font-size: clamp(1.18rem, 3vw, 1.45rem);
  line-height: 1.15;
  margin: 0;
  font-weight: 950;
}

.caritas-vo-participant-form .caritas-vo-section-heading p {
  color: #475569;
  margin: 8px 0 0;
  line-height: 1.55;
}

.caritas-vo-participant-form .fieldset {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 14px;
}

.caritas-vo-participant-form .fieldset__legend,
.caritas-vo-participant-form .fieldset__label {
  background: transparent;
  color: #111827;
  font-weight: 900;
}

.caritas-vo-participant-form .fieldset__wrapper {
  margin-top: 10px;
}

.caritas-vo-participant-form .form-checkboxes .form-type-boolean {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.caritas-vo-participant-form .form-checkboxes input[type="checkbox"],
.caritas-vo-participant-form .form-type-checkbox input[type="checkbox"] {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
}

@media (max-width: 640px) {
  .caritas-vo-participant-page-intro,
  .caritas-vo-participant-form {
    padding-inline: 12px;
  }

  .caritas-vo-participant-form .caritas-vo-section-card {
    border-radius: 14px;
    padding: 16px;
  }

  .caritas-vo-participant-form .caritas-vo-section-heading {
    margin: -16px -16px 16px;
    padding: 15px 16px;
  }
}

/* ==========================================================================
   Participant Dates Base
   Pulizia base area date della registrazione partecipante F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

/* F3C partecipante - pulizia area date */
.caritas-vo-section-dates .fieldset,
.caritas-vo-section-dates fieldset {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  margin: 0;
}

.caritas-vo-section-dates .fieldset__legend,
.caritas-vo-section-dates legend {
  margin: 0 0 14px;
  padding: 0;
  color: #111827;
  font-size: 1.08rem;
  font-weight: 900;
}

.caritas-vo-section-dates .fieldset__wrapper {
  margin-top: 0;
}

.caritas-vo-section-dates .form-checkboxes {
  display: grid;
  gap: 12px;
}

.caritas-vo-section-dates .form-checkboxes .form-item,
.caritas-vo-section-dates .form-checkboxes .form-type-checkbox {
  margin: 0;
  background: #ffffff;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  padding: 14px 16px;
}

/* ==========================================================================
   Participant Dates Advanced
   Regole specifiche per #edit-selected-dates nella registrazione partecipante F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

.caritas-vo-section-dates #edit-selected-dates--wrapper,
.caritas-vo-section-dates fieldset#edit-selected-dates--wrapper,
.caritas-vo-section-dates .fieldset,
.caritas-vo-section-dates .fieldset__wrapper,
.caritas-vo-section-dates .form-checkboxes {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.caritas-vo-section-dates .fieldset__legend {
  margin: 0 0 14px !important;
  padding: 0 !important;
}

.caritas-vo-section-dates .fieldset__label {
  color: #111827 !important;
  font-size: 1.08rem;
  font-weight: 950;
}

.caritas-vo-section-dates #edit-selected-dates {
  display: grid;
  gap: 12px;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.caritas-vo-section-dates #edit-selected-dates .form-type-checkbox,
.caritas-vo-section-dates #edit-selected-dates .form-type-boolean {
  min-height: 54px;
  margin: 0 !important;
  padding: 14px 16px !important;
  background: #ffffff !important;
  border: 1px solid #dbe4ee !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .04);
}

.caritas-vo-section-dates #edit-selected-dates label {
  font-weight: 750;
  color: #111827;
}

/* ==========================================================================
   Adult / Minor Public Form Shell
   Struttura pubblica condivisa per iscrizione maggiorenne e autorizzazione genitore/tutore F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

/* F3C - nuovo modulo maggiorenni privacy-by-design. */
.caritas-vo-adult-page {
  width: min(100%, 760px);
  margin: clamp(22px, 4vw, 38px) auto 0;
}

.caritas-vo-adult-page-intro,
.caritas-vo-adult-form {
  background: #fff;
  border: 1px solid #ead7d5;
  border-left: 5px solid #7b0500;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
}

.caritas-vo-adult-page-intro {
  padding: clamp(17px, 3vw, 22px);
  margin-bottom: 14px;
}

.caritas-vo-adult-page-intro--warning {
  background: #fff7ed;
  border-color: #fed7aa;
}

.caritas-vo-adult-page-intro__eyebrow {
  color: #7b0500;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.caritas-vo-adult-page-intro__title {
  margin: 5px 0 9px;
  color: #111827;
  font-size: clamp(1.35rem, 2.2vw, 1.72rem);
  line-height: 1.14;
  font-weight: 950;
}

.caritas-vo-adult-page-intro__text {
  margin: 0;
  color: #334155;
  font-size: .96rem;
  line-height: 1.55;
}

.caritas-vo-adult-form {
  padding: clamp(16px, 3vw, 22px);
}

.caritas-vo-adult-form__notice {
  display: grid;
  gap: 4px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid #e5e7eb;
  border-radius: 13px;
  background: #f8fafc;
  color: #334155;
  font-size: .92rem;
  line-height: 1.45;
}

.caritas-vo-adult-form__notice strong {
  color: #7b0500;
}

.caritas-vo-adult-form__section {
  margin: 0 0 14px;
  border: 1px solid #eef2f7;
  border-radius: 14px;
  background: #fcfcfd;
  overflow: hidden;
}

.caritas-vo-adult-form__section > summary {
  min-height: 48px;
  padding: 13px 15px;
  color: #7b0500;
  font-weight: 950;
  cursor: pointer;
}

.caritas-vo-adult-form__section .details-wrapper,
.caritas-vo-adult-form__section .fieldset-wrapper {
  padding: 0 15px 15px;
}



@media (max-width: 719px) {
  .caritas-vo-adult-page {
    width: 100%;
    margin-top: 18px;
  }

  .caritas-vo-adult-page-intro,
  .caritas-vo-adult-form {
    border-left-width: 4px;
    border-radius: 15px;
  }

  .caritas-vo-adult-form .form-submit {
    width: 100%;
  }
}

/* ==========================================================================
   Guardian Section Base
   Evidenziazione sezione genitore/tutore e minorenne nella registrazione F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

.caritas-vo-section-guardian {
  border-left-color: #d89a1d !important;
  background: linear-gradient(180deg, #fffaf0 0%, #ffffff 150px);
}

.caritas-vo-section-guardian .caritas-vo-section-heading {
  background: #fff7e8;
  border-bottom: 1px solid #f2ddb0;
}

.caritas-vo-section-heading--guardian h2 {
  color: #7b0500;
}

.caritas-vo-guardian-kicker {
  display: inline-flex;
  align-items: center;
  margin-bottom: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #efd08a;
  background: #fff3cd;
  color: #7a4b00;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.caritas-vo-guardian-highlight {
  margin: 0 0 18px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid #efd08a;
  border-left: 5px solid #d89a1d;
  background: #fff8e6;
  color: #7a4b00;
  line-height: 1.6;
}

/* ==========================================================================
   Participant Upload / Residual CSS
   Residuo upload, managed_file, azioni e boolean della registrazione partecipante F3C.
   Spostato dal CSS pagina senza riscrittura manuale.
   ========================================================================== */

.caritas-vo-participant-form .form-item,
.caritas-vo-participant-form .fieldset,


.caritas-vo-participant-form .form-element,
.caritas-vo-participant-form input[type="file"] {
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  border-radius: 12px;
}

.caritas-vo-participant-form .form-managed-file {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
}

.caritas-vo-participant-form .form-managed-file input[type="file"] {
  background: #ffffff;
  padding: 10px;
}

.caritas-vo-participant-form .button,
.caritas-vo-participant-form .form-submit {
  min-height: 48px;
  border-radius: 999px;
  font-weight: 850;
  touch-action: manipulation;
}

.caritas-vo-participant-form .button--primary,
.caritas-vo-participant-form #edit-submit {
  background: #7b0500;
  border-color: #7b0500;
  color: #ffffff;
  padding-inline: 24px;
}

.caritas-vo-participant-form .caritas-vo-add-second-file {
  margin: 8px 0 16px;
  background: #ffffff;
  color: #7b0500;
  border: 1px solid #7b0500;
}

.caritas-vo-participant-form [data-caritas-optional-file][hidden] {
  display: none !important;
}

.caritas-vo-participant-form .form-boolean-group {
  display: grid;
  gap: 10px;
}

.caritas-vo-participant-form .form-type-boolean {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 12px 14px;
}

.caritas-vo-participant-form .form-type-boolean label {
  line-height: 1.55;
}

.caritas-vo-participant-form .form-actions {
  display: flex;
  justify-content: flex-start;
  padding-block: 8px 24px;
}

@media (min-width: 760px) {
  .caritas-vo-participant-form .form-managed-file input[type="file"] {
    flex: 1 1 360px;
  }

  .caritas-vo-participant-form .form-managed-file .button {
    flex: 0 0 auto;
  }

  .caritas-vo-participant-form .form-actions {
    justify-content: flex-end;
  }
}

/* F3C partecipante - card strutturali pulite */

/* F3C partecipante - sezione minorenne evidenziata */

.caritas-vo-section-guardian .form-managed-file,
.caritas-vo-section-guardian .js-form-managed-file {
  background: #ffffff;
  border: 1px solid #ead8b2;
  border-radius: 14px;
  padding: 12px;
}

/* F3C partecipante - rimozione finale riquadro Drupal nelle date */

/* ==========================================================================
   F3C_DESIGN_SYSTEM_17I_A_ADULT_MINOR_SHELL_REFINEMENT
   Rifinitura shell pagine iscrizione maggiorenne / autorizzazione genitore.
   Solo layout esterno e card principali; nessuna modifica a campi/upload.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-adult-page {
  width: min(100% - 32px, 900px);
  margin: clamp(28px, 5vw, 54px) auto clamp(44px, 7vw, 76px);
}

body:not(.path-admin) .caritas-vo-adult-page-intro,
body:not(.path-admin) .caritas-vo-adult-form {
  border-color: #e6d8d6;
  border-left-color: #7b0500;
  border-left-width: 6px;
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .07);
}

body:not(.path-admin) .caritas-vo-adult-page-intro {
  padding: clamp(20px, 3vw, 28px);
  margin-bottom: 16px;
}

body:not(.path-admin) .caritas-vo-adult-page-intro__eyebrow {
  color: #7b0500;
  font-size: .74rem;
  letter-spacing: .1em;
}

body:not(.path-admin) .caritas-vo-adult-page-intro__title {
  font-size: clamp(1.45rem, 2.4vw, 1.95rem);
  line-height: 1.12;
  margin-top: 7px;
}

body:not(.path-admin) .caritas-vo-adult-page-intro__text {
  max-width: 68ch;
  font-size: 1rem;
}

body:not(.path-admin) .caritas-vo-adult-form {
  padding: clamp(18px, 3vw, 30px);
}

body:not(.path-admin) .caritas-vo-adult-form__notice {
  margin-bottom: 20px;
  padding: 14px 16px;
  border-radius: 15px;
  background: #fbfcfd;
}

body:not(.path-admin) .caritas-vo-adult-form__section {
  margin-bottom: 18px;
  border-radius: 16px;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary {
  min-height: 52px;
  padding: 15px 18px;
}

body:not(.path-admin) .caritas-vo-adult-form__section .details-wrapper,
body:not(.path-admin) .caritas-vo-adult-form__section .fieldset-wrapper {
  padding: 0 18px 18px;
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-adult-page {
    width: calc(100% - 24px);
    margin-top: 22px;
    margin-bottom: 48px;
  }

  body:not(.path-admin) .caritas-vo-adult-page-intro,
  body:not(.path-admin) .caritas-vo-adult-form {
    border-left-width: 5px;
    border-radius: 16px;
  }

  body:not(.path-admin) .caritas-vo-adult-form {
    padding: 16px;
  }

  body:not(.path-admin) .caritas-vo-adult-form__section > summary {
    padding: 14px 15px;
  }

  body:not(.path-admin) .caritas-vo-adult-form__section .details-wrapper,
  body:not(.path-admin) .caritas-vo-adult-form__section .fieldset-wrapper {
    padding: 0 15px 15px;
  }
}


/* ==========================================================================
   F3C_DESIGN_SYSTEM_17I_B_FIELDS_HEADINGS
   Rifinitura leggibilità campi, intestazioni interne, radio/checkbox e date.
   Nessuna modifica a managed_file/upload.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-adult-form__section {
  border-color: #e5e7eb;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .045);
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f8fafc;
  border-bottom: 1px solid #e8edf3;
  color: #7b0500;
  font-size: clamp(.98rem, 1.8vw, 1.08rem);
  line-height: 1.25;
  letter-spacing: -.01em;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary::marker {
  color: #7b0500;
}

body:not(.path-admin) .caritas-vo-adult-form label,
body:not(.path-admin) .caritas-vo-adult-form .form-item__label,
body:not(.path-admin) .caritas-vo-adult-form .fieldset__label {
  color: #111827;
  font-size: .94rem;
  font-weight: 850;
  line-height: 1.3;
}

body:not(.path-admin) .caritas-vo-adult-form .description,
body:not(.path-admin) .caritas-vo-adult-form .form-item__description,
body:not(.path-admin) .caritas-vo-adult-form .fieldset__description {
  margin-top: 6px;
  color: #64748b;
  font-size: .9rem;
  line-height: 1.55;
}

body:not(.path-admin) .caritas-vo-adult-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body:not(.path-admin) .caritas-vo-adult-form select,
body:not(.path-admin) .caritas-vo-adult-form textarea {
  min-height: 48px;
  border: 1px solid #dbe3ea;
  border-radius: 13px;
  background: #ffffff;
  color: #111827;
  box-shadow: 0 1px 0 rgba(15, 23, 42, .02);
}

body:not(.path-admin) .caritas-vo-adult-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
body:not(.path-admin) .caritas-vo-adult-form select:focus,
body:not(.path-admin) .caritas-vo-adult-form textarea:focus {
  border-color: #7b0500;
  box-shadow: 0 0 0 3px rgba(123, 5, 0, .12);
  outline: 0;
}

body:not(.path-admin) .caritas-vo-adult-form .form-type-boolean,
body:not(.path-admin) .caritas-vo-adult-form .form-type-checkbox,
body:not(.path-admin) .caritas-vo-adult-form .form-type-radio {
  min-height: 48px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border-color: #e5e7eb;
  border-radius: 14px;
  background: #ffffff;
}

body:not(.path-admin) .caritas-vo-adult-form input[type="checkbox"],
body:not(.path-admin) .caritas-vo-adult-form input[type="radio"] {
  inline-size: 24px;
  block-size: 24px;
  min-inline-size: 24px;
  min-block-size: 24px;
  margin-top: 2px;
  accent-color: #7b0500;
}

body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-checkbox,
body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-boolean {
  border-color: #dbe3ea !important;
  border-radius: 15px !important;
  background: #ffffff !important;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .05);
}

body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates label {
  font-size: .95rem;
  line-height: 1.45;
}

body:not(.path-admin) .caritas-vo-adult-form .form-actions {
  padding-top: 18px;
}

body:not(.path-admin) .caritas-vo-adult-form .form-submit {
  min-height: 50px;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: -.01em;
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-adult-form__section > summary {
    min-height: 50px;
    font-size: 1rem;
  }

  body:not(.path-admin) .caritas-vo-adult-form label,
  body:not(.path-admin) .caritas-vo-adult-form .form-item__label,
  body:not(.path-admin) .caritas-vo-adult-form .fieldset__label {
    font-size: .93rem;
  }

  body:not(.path-admin) .caritas-vo-adult-form .form-submit {
    width: 100%;
  }
}

/* ==========================================================================
   F3C_DESIGN_SYSTEM_17I_C_INNER_SECTIONS_REFINEMENT
   Rifinitura istituzionale sezioni interne adulto/minorenne.
   Nessuna modifica a upload, managed_file o logica form.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-adult-form__section {
  border: 1px solid #edf0f3;
  border-left: 4px solid rgba(123, 5, 0, .92);
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary {
  position: relative;
  background:
    linear-gradient(90deg, rgba(123, 5, 0, .045), rgba(255, 255, 255, 0) 62%),
    #fbfcfd;
  color: #7b0500;
  border-bottom: 1px solid #edf0f3;
  font-weight: 950;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary::before {
  content: "";
  inline-size: 8px;
  block-size: 8px;
  border-radius: 999px;
  background: #d89a1d;
  flex: 0 0 8px;
  margin-inline-end: 2px;
}

body:not(.path-admin) .caritas-vo-adult-form__section[open] > summary {
  border-bottom-color: #e5e7eb;
}

body:not(.path-admin) .caritas-vo-adult-form__section .details-wrapper,
body:not(.path-admin) .caritas-vo-adult-form__section .fieldset-wrapper {
  background: #ffffff;
}

body:not(.path-admin) .caritas-vo-adult-form .form-item {
  margin-bottom: 15px;
}

body:not(.path-admin) .caritas-vo-adult-form label,
body:not(.path-admin) .caritas-vo-adult-form .form-item__label,
body:not(.path-admin) .caritas-vo-adult-form .fieldset__label {
  margin-bottom: 7px;
}

body:not(.path-admin) .caritas-vo-adult-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body:not(.path-admin) .caritas-vo-adult-form select,
body:not(.path-admin) .caritas-vo-adult-form textarea {
  padding-inline: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #fffefe 100%);
}

body:not(.path-admin) .caritas-vo-adult-form .form-type-radio,
body:not(.path-admin) .caritas-vo-adult-form .form-type-checkbox,
body:not(.path-admin) .caritas-vo-adult-form .form-type-boolean {
  padding: 12px 14px;
}

body:not(.path-admin) .caritas-vo-adult-form input[type="radio"] {
  border-radius: 999px;
}

body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates {
  gap: 14px;
}

body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-checkbox,
body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-boolean {
  align-items: center;
  min-height: 58px;
  border-left: 4px solid rgba(123, 5, 0, .18) !important;
}

body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-checkbox:hover,
body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-boolean:hover {
  border-left-color: rgba(123, 5, 0, .55) !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section:last-of-type {
  margin-bottom: 10px;
}

body:not(.path-admin) .caritas-vo-adult-form .form-actions {
  justify-content: center;
}

body:not(.path-admin) .caritas-vo-adult-form .form-submit {
  min-width: min(100%, 360px);
  box-shadow: 0 10px 22px rgba(123, 5, 0, .18);
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-adult-form__section {
    border-left-width: 4px;
    border-radius: 15px;
  }

  body:not(.path-admin) .caritas-vo-adult-form .form-item {
    margin-bottom: 14px;
  }

  body:not(.path-admin) .caritas-vo-adult-form .form-submit {
    min-width: 0;
  }
}

/* ==========================================================================
   F3C_DESIGN_SYSTEM_17I_D_FLATTEN_INNER_SECTIONS
   Correzione UX: elimina effetto card dentro card nelle pagine partecipante.
   Mantiene una sola card principale e sezioni interne pulite.
   Nessuna modifica a upload, managed_file o logica form.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-adult-form__section {
  margin: 0;
  padding: 0;
  border: 0;
  border-top: 1px solid #edf0f3;
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

body:not(.path-admin) .caritas-vo-adult-form__section:first-of-type {
  border-top: 0;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary {
  min-height: auto;
  padding: 22px 0 14px;
  background: transparent;
  border-bottom: 0;
  color: #7b0500;
  font-size: clamp(1rem, 1.8vw, 1.12rem);
  font-weight: 950;
  line-height: 1.25;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary::before {
  inline-size: 4px;
  block-size: 22px;
  border-radius: 999px;
  background: #7b0500;
  margin-inline-end: 8px;
}

body:not(.path-admin) .caritas-vo-adult-form__section .details-wrapper,
body:not(.path-admin) .caritas-vo-adult-form__section .fieldset-wrapper {
  padding: 0 0 22px;
  background: transparent;
}

body:not(.path-admin) .caritas-vo-adult-form__section .form-item:last-child {
  margin-bottom: 0;
}

body:not(.path-admin) .caritas-vo-adult-form .form-type-radio,
body:not(.path-admin) .caritas-vo-adult-form .form-type-checkbox,
body:not(.path-admin) .caritas-vo-adult-form .form-type-boolean {
  border-radius: 12px;
  box-shadow: none;
}

body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-checkbox,
body:not(.path-admin) .caritas-vo-section-dates #edit-selected-dates .form-type-boolean {
  border-left: 0 !important;
  box-shadow: none;
}

body:not(.path-admin) .caritas-vo-adult-form .form-actions {
  margin-top: 8px;
  border-top: 1px solid #edf0f3;
  padding-top: 22px;
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-adult-form__section > summary {
    padding-top: 20px;
    padding-bottom: 12px;
  }

  body:not(.path-admin) .caritas-vo-adult-form__section .details-wrapper,
  body:not(.path-admin) .caritas-vo-adult-form__section .fieldset-wrapper {
    padding-bottom: 20px;
  }
}

/* ==========================================================================
   F3C_DESIGN_SYSTEM_17I_E2_CLEAN_FORM_CLASSES
   Stile pubblico pulito per sesso, date e privacy con classi dedicate.
   Nessuna modifica a upload, managed_file o logica form.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-choice-group {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0;
}

body:not(.path-admin) .caritas-vo-choice-group > legend,
body:not(.path-admin) .caritas-vo-choice-group .fieldset__legend,
body:not(.path-admin) .caritas-vo-choice-group .fieldset__label {
  display: block;
  width: 100%;
  margin: 0 0 12px !important;
  padding: 0 !important;
  background: transparent !important;
  color: #7b0500 !important;
  font-size: .96rem;
  font-weight: 950;
  line-height: 1.3;
}

body:not(.path-admin) .caritas-vo-choice-group .fieldset__wrapper,
body:not(.path-admin) .caritas-vo-choice-group .form-radios,
body:not(.path-admin) .caritas-vo-choice-group .form-checkboxes {
  display: grid;
  gap: 10px;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

body:not(.path-admin) .caritas-vo-choice-group .form-type-radio,
body:not(.path-admin) .caritas-vo-choice-group .form-type-checkbox,
body:not(.path-admin) .caritas-vo-choice-group .form-type-boolean {
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #e1e7ee;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: none;
}

body:not(.path-admin) .caritas-vo-choice-group--dates .form-type-checkbox,
body:not(.path-admin) .caritas-vo-choice-group--dates .form-type-boolean {
  border-left: 4px solid rgba(123, 5, 0, .34);
}

body:not(.path-admin) .caritas-vo-consent-item {
  min-height: 52px;
  margin: 0 0 12px;
  padding: 14px 15px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid #e1e7ee;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: none;
}

body:not(.path-admin) .caritas-vo-consent-item label {
  margin: 0;
  color: #111827;
  font-weight: 750;
  line-height: 1.55;
}

body:not(.path-admin) .caritas-vo-adult-form__section--consents .details-wrapper,
body:not(.path-admin) .caritas-vo-adult-form__section--consents .fieldset-wrapper {
  display: grid;
  gap: 0;
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-consent-item,
  body:not(.path-admin) .caritas-vo-choice-group .form-type-radio,
  body:not(.path-admin) .caritas-vo-choice-group .form-type-checkbox,
  body:not(.path-admin) .caritas-vo-choice-group .form-type-boolean {
    padding: 13px 12px;
  }
}

/* ==========================================================================
   F3C_DESIGN_SYSTEM_17I_F_NO_ACCORDION_SECTIONS
   Sezioni form adulto/minorenne sempre aperte, senza frecce accordion.
   Rosso istituzionale pieno #7b0500.
   Nessuna modifica a upload, managed_file o logica form.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-adult-form,
body:not(.path-admin) .caritas-vo-adult-page-intro {
  border-left-color: #7b0500 !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section {
  border-left: 0 !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary {
  list-style: none !important;
  cursor: default !important;
  pointer-events: none;
  color: #7b0500 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary::marker {
  content: "" !important;
  display: none !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary::-webkit-details-marker {
  display: none !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary::before,
body:not(.path-admin) .caritas-vo-adult-form__section > summary::after {
  content: none !important;
  display: none !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary {
  padding-left: 0 !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section > summary::first-letter {
  color: #7b0500;
}

body:not(.path-admin) .caritas-vo-adult-form__section .details-wrapper,
body:not(.path-admin) .caritas-vo-adult-form__section .fieldset-wrapper {
  display: block !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section:not([open]) .details-wrapper,
body:not(.path-admin) .caritas-vo-adult-form__section:not([open]) .fieldset-wrapper {
  display: block !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section--dates > summary,
body:not(.path-admin) .caritas-vo-adult-form__section--consents > summary {
  color: #7b0500 !important;
}

body:not(.path-admin) .caritas-vo-choice-group--dates .form-type-checkbox,
body:not(.path-admin) .caritas-vo-choice-group--dates .form-type-boolean {
  border-left-color: #7b0500 !important;
}


/* ==========================================================================
   F3C_DESIGN_SYSTEM_17I_F_FIX_NATIVE_CHOICES
   Ripristina radio/checkbox visibili e naturali dentro sesso, date e privacy.
   Le sezioni restano aperte e non richiudibili dal titolo.
   Nessuna modifica a upload, managed_file o logica form.
   ========================================================================== */

body:not(.path-admin) .caritas-vo-choice-group .form-type-radio,
body:not(.path-admin) .caritas-vo-choice-group .form-type-checkbox,
body:not(.path-admin) .caritas-vo-choice-group .form-type-boolean,
body:not(.path-admin) .caritas-vo-consent-item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 48px;
  padding: 11px 14px !important;
  border: 1px solid #dbe3ea !important;
  border-radius: 13px !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

body:not(.path-admin) .caritas-vo-choice-group input[type="radio"],
body:not(.path-admin) .caritas-vo-choice-group input[type="checkbox"],
body:not(.path-admin) .caritas-vo-consent-item input[type="checkbox"],
body:not(.path-admin) .caritas-vo-consent-item input[type="radio"] {
  appearance: auto !important;
  -webkit-appearance: auto !important;
  opacity: 1 !important;
  position: static !important;
  display: inline-block !important;

  inline-size: 22px !important;
  block-size: 22px !important;
  min-inline-size: 22px !important;
  min-block-size: 22px !important;
  flex: 0 0 22px !important;

  margin: 0 !important;
  padding: 0 !important;
  accent-color: #7b0500;
}

body:not(.path-admin) .caritas-vo-choice-group label,
body:not(.path-admin) .caritas-vo-consent-item label {
  display: inline-block !important;
  margin: 0 !important;
  color: #111827;
  font-weight: 750;
  line-height: 1.5;
  cursor: pointer;
}

body:not(.path-admin) .caritas-vo-choice-group--sex .form-radios {
  display: grid;
  gap: 10px;
}

@media (min-width: 720px) {
  body:not(.path-admin) .caritas-vo-choice-group--sex .form-radios {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

body:not(.path-admin) .caritas-vo-choice-group--dates .form-checkboxes {
  display: grid;
  gap: 10px;
}

body:not(.path-admin) .caritas-vo-choice-group--dates .form-type-checkbox,
body:not(.path-admin) .caritas-vo-choice-group--dates .form-type-boolean {
  border-left: 4px solid #7b0500 !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section--consents .caritas-vo-consent-item {
  align-items: flex-start !important;
}

body:not(.path-admin) .caritas-vo-adult-form__section--consents .caritas-vo-consent-item input[type="checkbox"] {
  margin-top: 2px !important;
}

@media (max-width: 719px) {
  body:not(.path-admin) .caritas-vo-choice-group .form-type-radio,
  body:not(.path-admin) .caritas-vo-choice-group .form-type-checkbox,
  body:not(.path-admin) .caritas-vo-choice-group .form-type-boolean,
  body:not(.path-admin) .caritas-vo-consent-item {
    padding: 12px !important;
  }
}

