/*
Theme Name: Save A Life
Theme URI: https://www.savealifeaps.it
Author: Save A Life APS – ETS
Description: Tema del sito di Save A Life APS – ETS (Putignano): corsi BLSD, calendario, team, materiali e Area istruttori. Colori e caratteri della Collana Save A Life.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: savealife
*/

/* ---------- base ---------- */
body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.wp-block-post-content > .alignfull { margin-block-start: 0; }

/* ---------- sezioni ---------- */
.sal-section { padding: 72px 24px; box-sizing: border-box; }
.sal-section-tight { padding-top: 40px; padding-bottom: 40px; }
.sal-bg-beige { background: #F5F2EA; }
.sal-bg-salvia { background: #E4EAE4; }
.sal-bg-verde { background: #2E4034; color: #FFFFFF; }
.sal-bg-verde :where(h1, h2, h3, h4) { color: #FFFFFF; }
.sal-bg-verde a:not(.wp-element-button) { color: #FFFFFF; }
.sal-bg-verde .sal-muted { color: #C9D3CB; }
.sal-bg-rosso { background: #D1001C; color: #FFFFFF; }
.sal-bg-rosso :where(h1, h2, h3) { color: #FFFFFF; }

.sal-kicker { font-weight: 700 !important; font-size: 13px !important; letter-spacing: .16em; text-transform: uppercase; color: #D1001C; margin-bottom: 4px !important; }
.sal-bg-verde .sal-kicker { color: #FFB3BD; }
.sal-lead { font-size: 20px; color: #33403A; }
.sal-bg-verde .sal-lead { color: #E4EAE4; }
.sal-muted { color: #4A554E; }
.sal-small { font-size: 15px; }
.sal-note { font-size: 13px; color: #5A635D; }

/* ---------- titolo hero ---------- */
.sal-hero h1 { font-size: clamp(40px, 5.4vw, 68px); line-height: 1.02; }
.sal-hero-img { position: relative; }
.sal-hero-img img { border-radius: 50%; background: #FFFFFF; aspect-ratio: 1 / 1; object-fit: contain; padding: 6%; box-shadow: 0 0 0 10px #D1001C, 0 0 0 22px #FFFFFF, 0 0 0 24px #E4B3BA; box-sizing: border-box; }
.sal-ecg { display: block; width: 100%; height: 48px; }

.sal-checks { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-weight: 600; font-size: 15px; }
.sal-checks li::before { content: "✓"; color: #D1001C; font-weight: 800; margin-right: 8px; }

/* ---------- numeri ---------- */
.sal-stat { border-top: 4px solid #2E4034; padding-top: 14px; }
.sal-stat.is-red { border-color: #D1001C; }
.sal-stat .sal-num { font-family: Archivo, Arial, sans-serif; font-weight: 900; font-size: 44px; line-height: 1.1; color: #2E4034; margin: 0; }
.sal-stat.is-red .sal-num { color: #D1001C; }
.sal-stat p { margin: 0; }

/* ---------- card ---------- */
.sal-card { background: #FFFFFF; border: 1px solid #DCE2DC; border-radius: 18px; padding: 24px; box-sizing: border-box; color: #1F2A23; }
.sal-card h3 { margin-top: 4px; }
.sal-card .sal-kicker { font-size: 12px !important; }
.sal-card.is-rosso { border-top: 6px solid #D1001C; }
.sal-card.is-blu { border-top: 6px solid #1E5A96; }
.sal-card.is-blu .sal-kicker { color: #1E5A96; }
.sal-card.is-prugna { border-top: 6px solid #8E2F6E; }
.sal-card.is-prugna .sal-kicker { color: #8E2F6E; }
.sal-card.is-arancio { border-top: 6px solid #A84E00; }
.sal-card.is-arancio .sal-kicker { color: #A84E00; }
.sal-card.is-verde { border-top: 6px solid #2E4034; }
.sal-card.is-beige { background: #F5F2EA; border-color: #E8E1CF; }
.sal-card .wp-block-buttons { margin-top: auto; }

.sal-facts { display: grid; grid-template-columns: 120px 1fr; gap: 4px 12px; font-size: 15px; margin: 0; }
.sal-facts strong { color: #5A635D; }

/* ---------- persone ---------- */
.sal-portrait img { border-radius: 22px; aspect-ratio: 4 / 5; object-fit: cover; background: #F5F2EA; width: 100%; }
.sal-avatar img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; border: 4px solid #FFFFFF; }
.sal-avatar-sm img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.sal-person { display: flex; gap: 16px; align-items: flex-start; }
.sal-person > figure { flex: none; margin: 0; }
.sal-person h4 { margin: 0; font-size: 19px; }
.sal-role { font-size: 12px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #B30018; margin: 2px 0 !important; }
.sal-motto { font-style: italic; color: #2E4034; }
.sal-quote-box { background: #2E4034; color: #FFFFFF; border-radius: 16px; padding: 20px 24px; font-size: 22px; font-style: italic; border: 0; margin: 0; }
.sal-quote-box p { color: #FFFFFF; }
.sal-quote-box cite { display: block; margin-top: 8px; font-size: 15px; font-style: normal; font-weight: 700; color: #C9D3CB; }

/* ---------- copertine e app ---------- */
.sal-cover img { border-radius: 8px; box-shadow: 0 6px 18px rgba(30, 40, 34, .18); }
.sal-cover figcaption { font-size: 14px; font-weight: 600; color: #2E4034; text-align: left; }
.sal-phone img { border-radius: 22px; border: 6px solid #1A261F; }
.sal-video video { width: 100%; max-width: 340px; aspect-ratio: 9 / 16; border-radius: 22px; border: 6px solid #1A261F; background: #000000; display: block; margin: 0 auto; }
.sal-video figcaption { color: #C9D3CB; font-size: 14px; }

/* ---------- elenco materiale ---------- */
.sal-material { list-style: none; padding: 0; border-top: 2px solid #2E4034; columns: 2 320px; column-gap: 32px; }
.sal-material li { break-inside: avoid; padding: 12px 0; border-bottom: 1px solid #DCE2DC; }
.sal-material li em { display: block; font-style: normal; font-size: 15px; color: #4A554E; }

/* ---------- timeline ---------- */
.sal-timeline { list-style: none; padding: 0 0 0 28px; border-left: 3px solid #E4EAE4; margin-left: 10px; }
.sal-timeline li { position: relative; padding-bottom: 24px; }
.sal-timeline li::before { content: ""; position: absolute; left: -38px; top: 6px; width: 15px; height: 15px; border-radius: 50%; background: #2E4034; border: 3px solid #FFFFFF; box-shadow: 0 0 0 2px #2E4034; }
.sal-timeline li.is-red::before { background: #D1001C; box-shadow: 0 0 0 2px #D1001C; }
.sal-timeline strong { display: block; color: #2E4034; font-size: 20px; }
.sal-timeline .sal-date { display: block; font-weight: 800; font-size: 15px; color: #B30018; }

/* ---------- FAQ ---------- */
.wp-block-details { border-bottom: 1px solid #DCE2DC; padding: 14px 0; }
.wp-block-details summary { cursor: pointer; font-weight: 700; font-size: 19px; color: #2E4034; }

/* ---------- pulsanti ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; border: 2px solid currentColor; color: #2E4034; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #2E4034; color: #FFFFFF; }
.sal-bg-verde .wp-block-button.is-style-outline > .wp-block-button__link,
.sal-bg-rosso .wp-block-button.is-style-outline > .wp-block-button__link { color: #FFFFFF; }
.sal-bg-rosso .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: #FFFFFF; color: #A80016; }

/* ---------- intestazione e piè di pagina ---------- */
.sal-topbar { background: #2E4034; color: #E4EAE4; font-size: 14px; padding: 8px 24px; }
.sal-topbar a { color: #FFFFFF; text-decoration: none; }
.sal-header { border-bottom: 1px solid #E4EAE4; padding: 12px 24px; background: #FFFFFF; }
.sal-header .wp-block-site-title a { color: #2E4034; text-decoration: none; font-family: Archivo, Arial, sans-serif; font-weight: 900; }
.sal-header .wp-block-navigation a { color: #2E4034; font-weight: 600; text-decoration: none; }
.sal-header .wp-block-navigation a:hover { color: #D1001C; }
.sal-header .sal-nav-cta a { background: #D1001C; color: #FFFFFF !important; border-radius: 999px; padding: 10px 18px; }
.sal-footer { background: #1F2C24; color: #E4EAE4; font-size: 15px; padding: 48px 24px 24px; }
.sal-footer :where(h2, h3, h4) { color: #FFFFFF; font-family: "Source Sans 3", Arial, sans-serif; font-size: 16px; font-weight: 700; letter-spacing: 0; }
.sal-footer a { color: #E4EAE4; text-decoration: none; }
.sal-footer a:hover { color: #FFFFFF; text-decoration: underline; }
.sal-legal { border-top: 1px solid #3A4A40; padding-top: 16px; font-size: 13px; color: #B9C4BC; }

/* ---------- pagine normali (privacy, eventi) ---------- */
.sal-page { padding: 56px 24px 72px; }
.sal-page .wp-block-table table { border-collapse: collapse; width: 100%; font-size: 16px; }
.sal-page .wp-block-table th, .sal-page .wp-block-table td { border: 1px solid #DCE2DC; padding: 10px 12px; text-align: left; vertical-align: top; }
.sal-page .wp-block-table th { background: #E4EAE4; }

/* ---------- Area istruttori e moduli del plugin ---------- */
.sal-form { display: grid; gap: 14px; max-width: 720px; }
.sal-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 15px; color: #2E4034; }
.sal-form input[type=text], .sal-form input[type=email], .sal-form input[type=tel], .sal-form input[type=number], .sal-form select, .sal-form textarea { min-height: 44px; border: 1px solid #B9C4BC; border-radius: 10px; padding: 8px 12px; font: inherit; font-weight: 400; }
.sal-form .sal-check { flex-direction: row; align-items: flex-start; font-weight: 400; }
.sal-form .sal-hp { position: absolute; left: -9999px; }
.sal-form button { justify-self: start; min-height: 48px; padding: 0 24px; border: 0; border-radius: 999px; background: #D1001C; color: #FFFFFF; font: inherit; font-weight: 700; cursor: pointer; }
.sal-alert { padding: 14px 18px; border-radius: 12px; background: #DDF0E3; color: #1F6B3A; font-weight: 600; }
.sal-alert.is-error { background: #FDE2E5; color: #9A0015; }
.sal-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.sal-tiles a { display: block; padding: 22px; border-radius: 16px; border: 1px solid #DCE2DC; text-decoration: none; color: #2E4034; background: #FFFFFF; }
.sal-tiles a:hover { border-color: #D1001C; }
.sal-tiles strong { display: block; font-size: 19px; }
.sal-tiles span { font-size: 15px; color: #4A554E; }

@media (max-width: 781px) {
	.sal-section { padding: 48px 18px; }
	.sal-facts { grid-template-columns: 1fr; }
}

/* numeri generici nelle card */
.sal-num { font-family: Archivo, Arial, sans-serif; font-weight: 900; font-size: 40px; line-height: 1.1; color: #2E4034; margin: 0; }
.sal-card .sal-num { color: #00804A; }
.sal-lead { max-width: none !important; padding-right: max(0px, calc(100% - 760px)); box-sizing: border-box; }
.sal-card.sal-bg-rosso { background: #D1001C; color: #FFFFFF; border: 0; padding: 40px; }
.sal-card.sal-bg-verde { background: #2E4034; color: #FFFFFF; border: 0; padding: 32px; }
.sal-card.sal-bg-verde .wp-block-button.is-style-outline > .wp-block-button__link { color: #FFFFFF; }
.sal-person > .sal-portrait { flex: 0 0 170px; width: 170px; max-width: 40%; }
.sal-person > .wp-block-group { flex: 1 1 220px; min-width: 0; }
.sal-person { align-items: flex-start !important; }

/* campi aggiunti al modulo di iscrizione ai corsi */
.sal-booking-fields { margin-top: 12px; }
.sal-booking-fields label { display: block; font-size: 16px; }
.sal-booking-fields input[type=text], .sal-booking-fields input[type=date], .sal-booking-fields select { width: 100%; max-width: 460px; min-height: 44px; border: 1px solid #B9C4BC; border-radius: 10px; padding: 6px 12px; font: inherit; margin-top: 4px; box-sizing: border-box; }
.sal-booking-fields input[type=checkbox] { width: 20px; height: 20px; vertical-align: -4px; margin-right: 6px; }
