/*
 * Design System pubblico
 * Tema: Caritas Custom
 * Scopo: componenti grafici comuni riutilizzabili
 * NON inserire qui regole specifiche di una singola pagina.
 */

/* ==========================================================================
   1. Variabili base
   ========================================================================== */

:root {
  /* Token colore canonici */
  --caritas-color-primary: #7b0500;
  --caritas-color-primary-hover: #520300;
  --caritas-color-primary-pressed: #340200;

  --caritas-color-success: #00747c;
  --caritas-color-success-hover: #004e53;
  --caritas-color-success-tint: #b0e1e5;

  --caritas-color-warning: #d89a1d;
  --caritas-color-warning-text: #906713;

  --caritas-color-danger: #c0392b;
  --caritas-color-danger-hover: #962d22;

  --caritas-color-info: #2b6ca3;
  --caritas-color-info-hover: #20517b;

  --caritas-color-text: #1f1c1b;
  --caritas-color-muted: #635a55;

  --caritas-color-surface: #ffffff;
  --caritas-color-surface-soft: #f7f5f3;
  --caritas-color-border: #ddd7d2;

  /* Alias semantici canonici per i componenti globali */
  --caritas-color-soft: var(--caritas-color-surface-soft);
  --caritas-color-text-muted: var(--caritas-color-muted);

  /* Token ombre canonici */
  --caritas-shadow-1: 0 1px 2px rgba(15, 23, 42, .06);
  --caritas-shadow-2: 0 8px 24px rgba(15, 23, 42, .08);
  --caritas-shadow-3: 0 16px 40px rgba(15, 23, 42, .10);
  --caritas-shadow-4: 0 24px 70px rgba(15, 23, 42, .14);

  /* Alias dimensionali canonici per i componenti globali */
  --caritas-shadow-xs: var(--caritas-shadow-1);
  --caritas-shadow-sm: var(--caritas-shadow-2);
  --caritas-shadow-md: var(--caritas-shadow-3);

  /* Token raggi e layout */
  --caritas-radius-xs: 4px;
  --caritas-radius-sm: 8px;
  --caritas-radius-md: 16px;
  --caritas-radius-lg: 28px;
  --caritas-radius-pill: 999px;

  --caritas-container-sm: 760px;
  --caritas-container-md: 980px;
  --caritas-container-lg: 1180px;
  --caritas-container-xl: 1320px;

  --caritas-space-1: 4px;
  --caritas-space-2: 8px;
  --caritas-space-3: 12px;
  --caritas-space-4: 16px;
  --caritas-space-5: 24px;
  --caritas-space-6: 32px;
  --caritas-space-7: 48px;
  --caritas-space-8: 64px;

  /* Alias legacy temporanei */
  --caritas-red: var(--caritas-color-primary);
  --caritas-red-dark: var(--caritas-color-primary-hover);
  --caritas-red-soft: var(--caritas-color-surface-soft);

  --caritas-gold: var(--caritas-color-warning);
  --caritas-gold-soft: rgba(216, 154, 29, 0.13);

  --caritas-teal: var(--caritas-color-success);
  --caritas-teal-soft: var(--caritas-color-success-tint);

  --caritas-text: var(--caritas-color-text);
  --caritas-muted: var(--caritas-color-muted);
  --caritas-border: var(--caritas-color-border);

  --caritas-bg: var(--caritas-color-surface);
  --caritas-bg-soft: var(--caritas-color-surface-soft);
  --caritas-bg-warm: var(--caritas-color-surface-soft);

  --caritas-shadow-soft: var(--caritas-shadow-2);
  --caritas-shadow-card: var(--caritas-shadow-3);

  --caritas-container: var(--caritas-container-lg);
  --caritas-section-space: 72px;
}

/* ==========================================================================
   2. Struttura comune
   ========================================================================== */

.caritas-container {
  width: min(var(--caritas-container), calc(100% - 40px));
  margin-inline: auto;
}

.caritas-section-heading {
  max-width: 760px;
  margin-bottom: 32px;
}

.caritas-section-heading__title {
  margin: 0;
  color: var(--caritas-text);
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
  font-weight: 800;
}

.caritas-section-heading__text {
  margin: 14px 0 0;
  color: var(--caritas-muted);
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.6;
}

/* ==========================================================================
   2.1 Intestazioni di sezione riutilizzabili
   ========================================================================== */

.caritas-section-header {
  max-width: 860px;
  margin: 0 auto 2.7rem;
  padding: 0 1rem;
  text-align: center;
}

.caritas-section-header__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: var(--caritas-gold-soft);
  color: var(--caritas-red);
  border: 1px solid rgba(123, 5, 0, 0.12);
  font-size: 0.82rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.caritas-section-header__title {
  margin: 0;
  color: var(--caritas-text);
  font-size: clamp(2.3rem, 4vw, 4rem);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -0.045em;
}

.caritas-section-header__title::after {
  content: "";
  display: block;
  width: 88px;
  height: 4px;
  margin: 1rem auto 0;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    var(--caritas-red) 0%,
    var(--caritas-gold) 100%
  );
}

.caritas-section-header__subtitle {
  max-width: 720px;
  margin: 1rem auto 0;
  color: var(--caritas-muted);
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  line-height: 1.7;
  font-weight: 500;
}

/* ==========================================================================
   3. Card comuni
   ========================================================================== */

.caritas-card {
  background: var(--caritas-bg);
  border: 1px solid var(--caritas-border);
  border-radius: var(--caritas-radius-md);
  box-shadow: var(--caritas-shadow-soft);
  overflow: hidden;
}

.caritas-card__body {
  padding: 28px;
}

.caritas-card__title {
  margin: 0;
  color: var(--caritas-text);
  font-size: 1.35rem;
  line-height: 1.2;
  font-weight: 800;
}

.caritas-card__text {
  margin: 12px 0 0;
  color: var(--caritas-muted);
  font-size: 1rem;
  line-height: 1.55;
}

/* ==========================================================================
   4. Bottoni comuni
   ========================================================================== */

.caritas-button,
.caritas-button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border-radius: 999px;
  background: var(--caritas-red);
  color: #ffffff;
  font-weight: 800;
  text-decoration: none;
  line-height: 1;
  box-shadow: 0 12px 24px rgba(123, 5, 0, 0.22);
  transition:
    transform 160ms ease,
    box-shadow 160ms ease,
    background-color 160ms ease;
}

.caritas-button:hover,
.caritas-button:focus {
  background: var(--caritas-red-dark);
  color: #ffffff;
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: 0 16px 28px rgba(123, 5, 0, 0.28);
}

.caritas-button--light,
.caritas-button--light:visited {
  background: #ffffff;
  color: var(--caritas-red);
  box-shadow: 0 10px 24px rgba(17, 24, 39, 0.12);
}

.caritas-button--light:hover,
.caritas-button--light:focus {
  background: var(--caritas-red-soft);
  color: var(--caritas-red-dark);
}

/* ==========================================================================
   5. Link comuni
   ========================================================================== */

.caritas-link,
.caritas-link:visited {
  color: var(--caritas-red);
  font-weight: 800;
  text-decoration: none;
}

.caritas-link:hover,
.caritas-link:focus {
  color: var(--caritas-red-dark);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* ==========================================================================
   6. Responsive base
   ========================================================================== */

@media (max-width: 768px) {
  .caritas-container {
    width: min(100% - 28px, var(--caritas-container));
  }

  .caritas-section-heading {
    margin-bottom: 24px;
  }

  .caritas-section-header {
    margin-bottom: 2.1rem;
  }

  .caritas-section-header__eyebrow {
    font-size: 0.76rem;
    padding: 0.45rem 0.85rem;
  }

  .caritas-section-header__title {
    font-size: clamp(2rem, 9vw, 2.7rem);
  }

  .caritas-section-header__subtitle {
    font-size: 1rem;
  }

  .caritas-card__body {
    padding: 22px;
  }
}
/* ============================================================
   V22 — Watermark globale unico Caritas
   Regola definitiva:
   - un solo watermark su tutto il sito;
   - sopra contenuti, card e testi;
   - non blocca click, pulsanti, menu o form;
   - header/menu restano sopra.
============================================================ */

html,
body {
  min-height: 100% !important;
}

body {
  position: relative !important;
}

/* Spegne vecchi watermark eventualmente ancora generati da wrapper/main/footer */
html body .caritas-public-wrapper::before,
html body .caritas-front-page::before,
html body .caritas-public-main::before,
html body .caritas-public-main::after,
html body .caritas-front-main::before,
html body .caritas-front-main::after,
html body .caritas-site-footer::before,
html body .caritas-public-footer::before {
  content: none !important;
  display: none !important;
  background-image: none !important;
}

/* Watermark globale unico */
html body::after {
  content: "" !important;
  position: fixed !important;

  right: -90px !important;
  top: 60vh !important;

  width: 460px !important;
  height: 460px !important;

  background-image: url("../images/caritas-watermark.webp") !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: contain !important;

  opacity: 0.1 !important;
  pointer-events: none !important;
  z-index: 2147483000 !important;
}

/* Header e menu sopra il watermark, senza modificare sticky/posizionamento esistente */
html body .caritas-site-header,
html body .caritas-header,
html body .caritas-main-header,
html body .caritas-menu-panel,
html body .caritas-mobile-panel,
html body .caritas-mobile-nav,
html body .caritas-primary-menu,
html body .caritas-nav {
  z-index: 2147483001 !important;
}

@media (max-width: 760px) {
  html body::after {
    right: -135px !important;
    top: 60vh !important;
    width: 360px !important;
    height: 360px !important;
    opacity: 0.1 !important;
  }
}
/* =========================================================
   Correzione globale sillabazione e parole spezzate
   Evita titoli/link/bottoni spezzati con trattino automatico
   ========================================================= */

.caritas-public-wrapper h1,
.caritas-public-wrapper h2,
.caritas-public-wrapper h3,
.caritas-public-wrapper h4,
.caritas-public-wrapper h5,
.caritas-public-wrapper h6,
.caritas-public-wrapper a,
.caritas-public-wrapper button,
.caritas-public-wrapper .button,
.caritas-public-wrapper .caritas-button,
.caritas-public-wrapper .caritas-admin-button,
.caritas-public-wrapper .caritas-dashboard-button,
.caritas-public-wrapper .caritas-dashboard-card h2,
.caritas-public-wrapper .caritas-dashboard-card h3,
.caritas-public-wrapper .caritas-card h2,
.caritas-public-wrapper .caritas-card h3 {
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}
