/* API Terzo Settore — tema in stile openapi (DM Sans, viola, navy brand) */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&display=swap');

:root,
[data-bs-theme=light] {
  --bs-primary: #16273E;                /* navy del brand */
  --bs-primary-rgb: 22, 39, 62;
  --brand-navy: #16273E;
  --brand-navy-2: #1f3556;
  --accent: #2563EB;                    /* blu accento */
  --accent-hover: #1d4ed8;
  --accent-tint: #EEF3FC;               /* azzurro chiaro per sfondi sezione */
  --bs-link-color: #2563EB;
  --bs-link-color-rgb: 37, 99, 235;
  --bs-link-hover-color: #16273E;
  --bs-link-hover-color-rgb: 22, 39, 62;
  --bs-body-font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-body-color: #5b6470;
  --bs-heading-color: #16273E;
  --bs-border-color: #e7e9ef;
}

/* scala tipografica uniforme su TUTTE le pagine: si scala la radice,
   così heading, lead, .small e testo del corpo crescono in proporzione */
html { font-size: 106.25%; }              /* ~17px di base */
body { font-family: var(--bs-body-font-family); color: var(--bs-body-color); }
h1, h2, h3, h4, h5, h6, .fw-bold { color: var(--bs-heading-color); letter-spacing: -0.01em; }

/* navbar: più alta */
.navbar { --bs-navbar-padding-y: 1rem; }
.navbar-brand { font-size: 1.4rem; }
.navbar-brand img { height: 34px; }
.navbar .btn { padding: .5rem 1.1rem; }
.display-1, .display-2, .display-3, .display-4 { letter-spacing: -0.02em; font-weight: 800; }

/* bottone primario = navy (brand) */
.btn-primary {
  --bs-btn-bg: #16273E; --bs-btn-border-color: #16273E;
  --bs-btn-hover-bg: #1f3556; --bs-btn-hover-border-color: #1f3556;
  --bs-btn-active-bg: #1f3556; --bs-btn-active-border-color: #1f3556;
  --bs-btn-disabled-bg: #16273E; --bs-btn-disabled-border-color: #16273E;
  font-weight: 600;
}
.btn-outline-primary {
  --bs-btn-color: #16273E; --bs-btn-border-color: #16273E;
  --bs-btn-hover-bg: #16273E; --bs-btn-hover-border-color: #16273E;
  --bs-btn-active-bg: #16273E; --bs-btn-active-border-color: #16273E; font-weight: 600;
}
/* bottone accento = viola openapi (CTA) */
.btn-accent {
  --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent);
  --bs-btn-hover-bg: var(--accent-hover); --bs-btn-hover-border-color: var(--accent-hover);
  --bs-btn-active-bg: var(--accent-hover); --bs-btn-color: #fff; --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff; font-weight: 600;
}
.text-accent { color: var(--accent) !important; }
.bg-accent-tint { background: var(--accent-tint) !important; }
.badge.text-bg-primary { background: var(--brand-navy) !important; }

/* card openapi: icona in cerchietto viola + hover morbido */
.o-card {
  background: #fff; border: 1px solid var(--bs-border-color); border-radius: 16px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; height: 100%;
}
.o-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -20px rgba(22,39,62,.28); border-color: var(--accent); }
.o-ico {
  width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center;
  background: rgba(37,99,235,.10); color: var(--accent); font-size: 1.35rem; flex: none;
}

/* code inline in blu accento (no rosa Bootstrap) */
code { color: var(--accent); }

/* scroll-reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}}
