/* ==========================================================================
   SilvestroFisio - CSS extra (oltre a theme.json)
   ========================================================================== */

/* ==========================================================================
   Fix bug WP block: borderColor su un blocco applica anche color: al testo
   (la classe .has-border-color ha "color: var(--border)" inline negli style WP).
   Serve !important perché WP block-supports-inline-css è caricato dopo i nostri css.
   ========================================================================== */
.has-border-color:not(.has-text-color) {
  color: var(--wp--preset--color--fg) !important;
}
/* I link dentro questi box restano colorati */
.has-border-color:not(.has-text-color) a:not(.sf-cta) {
  color: var(--wp--preset--color--primary-dark) !important;
}

/* Forza esplicitamente il color sui contenuti dei box di bio/credenziali */
.sf-author-bio--photo,
.sf-author-bio--photo p,
.sf-author-bio--photo h4,
.sf-vincenzo-credentials,
.sf-vincenzo-credentials p {
  color: var(--wp--preset--color--fg);
}
.sf-author-bio--photo p strong,
.sf-vincenzo-credentials strong { color: var(--wp--preset--color--fg); }

/* ==========================================================================
   Typography overrides — forzo gerarchia anche dove WP-FSE perde specificity
   ========================================================================== */
.wp-block-post-content > h1.wp-block-heading,
main h1.wp-block-heading,
.entry-content > h1.wp-block-heading {
  font-family: var(--wp--preset--font-family--serif);
  font-size: clamp(2.25rem, 4.5vw, 3.5rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--wp--preset--color--fg);
  margin: 0.25em 0 0.6em;
}

.wp-block-post-content h2.wp-block-heading,
.entry-content h2.wp-block-heading {
  font-family: var(--wp--preset--font-family--serif);
  font-size: clamp(1.5rem, 2.5vw, 1.875rem);
  line-height: 1.25;
  letter-spacing: -0.015em;
  font-weight: 600;
  color: var(--wp--preset--color--fg);
  margin-top: 2.25rem;
  margin-bottom: 0.75rem;
}

.wp-block-post-content h3.wp-block-heading,
.entry-content h3.wp-block-heading {
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.375rem;
  line-height: 1.3;
  font-weight: 600;
  color: var(--wp--preset--color--fg);
  margin-top: 1.75rem;
  margin-bottom: 0.5rem;
}

.wp-block-post-content h4.wp-block-heading,
.entry-content h4.wp-block-heading {
  font-family: var(--wp--preset--font-family--sans);
  font-size: 1.125rem;
  line-height: 1.4;
  font-weight: 600;
}

.wp-block-post-content h6.wp-block-heading,
.entry-content h6.wp-block-heading,
main h6.wp-block-heading,
.sf-kicker {
  font-size: 0.8125rem !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--wp--preset--color--accent);
  margin: 0 0 0.4rem;
  line-height: 1.3;
}
.sf-kicker {
  display: block;
  font-family: var(--wp--preset--font-family--sans);
}
/* Variante white per kicker su sfondo scuro */
.sf-kicker--light { color: #FFFFFF; }

.wp-block-post-content > h1.wp-block-heading + p,
.entry-content > h1.wp-block-heading + p,
.entry-content > .wp-block-heading + p.has-fg-muted-color {
  font-size: 1.1875rem !important;
  line-height: 1.6 !important;
}

/* Lead paragraph forzato a non scendere sotto 1.125rem */
.wp-block-post-content p[style*="font-size:1.1875rem"],
.entry-content p[style*="font-size:1.1875rem"] {
  font-size: 1.1875rem !important;
  line-height: 1.6 !important;
}

/* Liste con respiro */
.wp-block-post-content ul.wp-block-list,
.wp-block-post-content ul:not(.sf-footer-nav):not(.sf-nav),
.entry-content ul:not(.sf-footer-nav):not(.sf-nav) {
  margin: 1rem 0 1.5rem;
  padding-left: 1.5rem;
}
.wp-block-post-content ul li,
.entry-content ul li { margin-bottom: 0.5rem; line-height: 1.6; }

.wp-block-post-content ol li,
.entry-content ol li { margin-bottom: 0.5rem; line-height: 1.6; }

/* ==========================================================================
   Single article — title, meta, badge
   ========================================================================== */
.wp-block-post-title.sf-article-title,
main h1.wp-block-post-title {
  font-family: var(--wp--preset--font-family--serif);
  font-size: clamp(2rem, 4.5vw, 3rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--wp--preset--color--fg);
}
main h2.wp-block-post-title {
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.05rem;
  line-height: 1.35;
  font-weight: 600;
}

.sf-article-meta-top {
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.sf-cat-badge,
.sf-cat-badge a,
.wp-block-post-terms.sf-cat-badge a {
  display: inline-block;
  padding: 0.3rem 0.85rem;
  background: var(--wp--preset--color--accent-soft);
  color: var(--wp--preset--color--accent-dark) !important;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none !important;
  transition: background .15s ease;
}
.wp-block-post-terms.sf-cat-badge a:hover { background: var(--wp--preset--color--accent); color: #fff !important; }

.sf-article-meta {
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--wp--preset--color--fg-muted);
  flex-wrap: wrap;
}
.sf-article-meta p { margin: 0 !important; font-size: inherit !important; }
.sf-article-meta .wp-block-post-date,
.sf-article-meta .wp-block-post-author,
.sf-article-meta .wp-block-post-author > * {
  color: var(--wp--preset--color--fg-muted);
  font-size: 0.875rem;
}
.sf-article-meta .wp-block-post-author {
  display: inline-flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  gap: 0.3rem !important;
  margin: 0 !important;
}
.sf-article-meta .wp-block-post-author__byline,
.sf-article-meta .wp-block-post-author__name {
  display: inline !important;
  margin: 0 !important;
}
.sf-article-meta .wp-block-post-author__byline { margin-right: 0.35em !important; }
.sf-meta-sep { color: var(--wp--preset--color--fg-subtle) !important; }

/* Smooth scroll + selection */
html { scroll-behavior: smooth; }
::selection { background: var(--wp--preset--color--primary-soft); color: var(--wp--preset--color--fg); }

/* Body riff editoriale */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Focus visibile coerente */
:focus-visible {
  outline: 2px solid var(--wp--preset--color--primary);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ==========================================================================
   CTA shortcode behealth
   ========================================================================== */
.sf-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none !important;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: var(--wp--preset--shadow--sm);
}
.sf-cta--primary { background: var(--wp--preset--color--primary); color: #fff !important; }
.sf-cta--primary:hover { background: var(--wp--preset--color--primary-dark); transform: translateY(-1px); box-shadow: var(--wp--preset--shadow--md); }
.sf-cta--accent { background: var(--wp--preset--color--accent); color: #fff !important; }
.sf-cta--accent:hover { background: var(--wp--preset--color--accent-dark); transform: translateY(-1px); box-shadow: var(--wp--preset--shadow--md); }
.sf-cta--ghost { background: transparent; color: var(--wp--preset--color--primary-dark) !important; border: 1px solid var(--wp--preset--color--primary); }
.sf-cta--ghost:hover { background: var(--wp--preset--color--primary-soft); }
.sf-cta--white { background: #fff; color: var(--wp--preset--color--primary-dark) !important; }
.sf-cta--white:hover { background: var(--wp--preset--color--primary-soft); transform: translateY(-1px); }
.sf-cta--ghost-light { background: transparent; color: #fff !important; border: 1px solid rgba(255, 255, 255, 0.7); }
.sf-cta--ghost-light:hover { background: rgba(255, 255, 255, 0.12); border-color: #fff; }

/* ==========================================================================
   BeHealth CTA pattern (3 bottoni)
   ========================================================================== */
.sf-behealth-cta {
  margin: 2.5rem 0;
  padding: 2.25rem 2rem;
  background: linear-gradient(135deg, var(--wp--preset--color--accent) 0%, var(--wp--preset--color--accent-dark) 100%);
  border-radius: 16px;
  color: #fff;
}
.sf-behealth-cta__kicker {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--wp--preset--color--accent-soft);
}
.sf-behealth-cta__title {
  margin: 0 0 0.75rem;
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.4rem;
  line-height: 1.3;
  font-weight: 600;
  color: #fff;
}
.sf-behealth-cta__lead {
  margin: 0 0 1.5rem;
  font-size: 1rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.92);
}
.sf-behealth-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
}
.sf-behealth-cta__disclosure {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.5;
  color: rgba(224, 231, 255, 0.85);
}
.sf-behealth-cta__disclosure strong { color: #fff; }

/* ==========================================================================
   Diventa BeHealther — invite pattern + sezione finale pagina dedicata
   ========================================================================== */
.sf-bh-invite {
  display: flex;
  gap: 1.75rem;
  align-items: center;
  margin: 3rem 0;
  padding: 2rem;
  background: linear-gradient(135deg, var(--wp--preset--color--accent-soft) 0%, var(--wp--preset--color--primary-soft) 100%);
  border-radius: 16px;
  border: 1px solid var(--wp--preset--color--border);
}
.sf-bh-invite__photo {
  flex-shrink: 0;
  width: 130px;
  height: 130px;
  border-radius: 999px;
  object-fit: cover;
  border: 4px solid #fff;
  box-shadow: var(--wp--preset--shadow--md);
  background: #fff;
}
.sf-bh-invite__body { flex: 1; min-width: 0; }
.sf-bh-invite__kicker {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--wp--preset--color--accent);
}
.sf-bh-invite__title {
  margin: 0 0 0.6rem;
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.375rem;
  line-height: 1.3;
  font-weight: 600;
  color: var(--wp--preset--color--fg);
}
.sf-bh-invite__text {
  margin: 0 0 1rem;
  font-size: 0.975rem;
  line-height: 1.55;
  color: var(--wp--preset--color--fg-muted);
}
.sf-bh-invite__actions { margin: 0; }

@media (max-width: 720px) {
  .sf-bh-invite { flex-direction: column; gap: 1rem; padding: 1.5rem; text-align: center; }
  .sf-bh-invite__photo { width: 100px; height: 100px; }
}

/* Sezione finale CTA della pagina /diventa-behealther/ */
.sf-bh-final-cta {
  margin: 3rem 0 1rem;
  padding: 2.5rem 2rem;
  background: var(--wp--preset--color--fg);
  color: #fff;
  border-radius: 16px;
  text-align: center;
}
.sf-bh-final-cta h3 {
  margin: 0 0 0.75rem;
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.875rem;
  color: #fff;
}
.sf-bh-final-cta p { color: rgba(255, 255, 255, 0.85); margin: 0 0 1rem; }
.sf-bh-final-cta__buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin: 1.5rem 0 !important;
}
.sf-bh-final-cta__buttons .sf-cta--ghost {
  background: transparent;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.6);
}
.sf-bh-final-cta__buttons .sf-cta--ghost:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #fff;
}
.sf-bh-final-cta__note {
  font-size: 0.825rem !important;
  font-style: italic;
  color: rgba(255, 255, 255, 0.7) !important;
}

/* Box credenziali Vincenzo nella pagina diventa-behealther */
.sf-vincenzo-credentials {
  margin-top: 1rem;
  padding: 1rem 1.25rem;
  background: #fff;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 12px;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--wp--preset--color--fg-muted);
}
.sf-vincenzo-credentials strong { color: var(--wp--preset--color--fg); }

/* Foto profilo Vincenzo varianti */
.sf-vincenzo-photo--bh {
  border-radius: 16px;
  border: 3px solid #fff;
  box-shadow: var(--wp--preset--shadow--md);
}

/* Author bio sotto articoli single con foto */
.sf-author-bio--photo {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  flex-wrap: wrap;
}
.sf-author-bio--photo > img {
  flex-shrink: 0;
  width: 88px;
  height: 88px;
  border-radius: 999px;
  object-fit: cover;
  border: 3px solid var(--wp--preset--color--primary-soft);
  background: #fff;
}
.sf-author-bio--photo > div { flex: 1; min-width: 240px; }

/* ==========================================================================
   Foto Vincenzo
   ========================================================================== */
.sf-vincenzo-photo {
  display: block;
  width: 100%;
  height: auto;
  max-width: 420px;
  border-radius: 16px;
  box-shadow: var(--wp--preset--shadow--md);
  background: var(--wp--preset--color--surface-alt);
  object-fit: cover;
  aspect-ratio: 1 / 1;
}
.sf-vincenzo-photo--round {
  border-radius: 999px;
  max-width: 220px;
}
.sf-vincenzo-photo--bio {
  width: 88px;
  height: 88px;
  border-radius: 999px;
  margin: 0 0 0.75rem;
  border: 3px solid var(--wp--preset--color--primary-soft);
}
.sf-bio-with-photo {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  flex-wrap: wrap;
}
.sf-bio-with-photo > div { flex: 1 1 280px; }

/* ==========================================================================
   Header sticky + boxshadow on scroll (visivo)
   ========================================================================== */
.wp-block-template-part.site-header {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--wp--preset--color--border);
}

/* ==========================================================================
   Disclaimer articoli
   ========================================================================== */
.sf-disclaimer {
  margin: 2.5rem 0;
  padding: 1.25rem 1.5rem;
  background: var(--wp--preset--color--surface-alt);
  border-left: 4px solid var(--wp--preset--color--accent);
  border-radius: 6px;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--wp--preset--color--fg-muted);
}
.sf-disclaimer p { margin: 0 0 0.5rem 0; }
.sf-disclaimer p:last-child { margin: 0; }
.sf-disclaimer strong { color: var(--wp--preset--color--fg); }

/* ==========================================================================
   Box studi scientifici
   ========================================================================== */
.sf-studi {
  margin: 2rem 0;
  padding: 1.25rem 1.5rem;
  background: var(--wp--preset--color--primary-soft);
  border-radius: 8px;
  font-size: 0.9375rem;
}
.sf-studi h4 {
  margin: 0 0 0.75rem 0;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--wp--preset--color--primary-dark);
}
.sf-studi ul { margin: 0; padding-left: 1.25rem; }
.sf-studi li { margin-bottom: 0.4rem; line-height: 1.5; color: var(--wp--preset--color--fg); }
/* Link nei riferimenti scientifici: forza primary-dark per contrasto AA su primary-soft (6.14:1 vs 3.95) */
.sf-studi a {
  color: var(--wp--preset--color--primary-dark) !important;
  text-decoration: underline;
  text-decoration-color: rgba(185, 28, 28, 0.4);
}
.sf-studi a:hover {
  text-decoration-color: var(--wp--preset--color--primary-dark);
}

/* ==========================================================================
   Card servizio (homepage + indice servizi)
   ========================================================================== */
.sf-service-card {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 12px;
  box-shadow: var(--wp--preset--shadow--card);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  height: 100%;
}
.sf-service-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--wp--preset--shadow--md);
  border-color: var(--wp--preset--color--primary);
}
.sf-service-card .sf-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--wp--preset--color--primary-soft);
  color: var(--wp--preset--color--primary-dark);
  border-radius: 12px;
  margin-bottom: 1.25rem;
  font-size: 1.5rem;
}

/* ==========================================================================
   Hero
   ========================================================================== */
.sf-hero {
  position: relative;
  padding: 5rem 0 4rem;
  background: linear-gradient(135deg, var(--wp--preset--color--accent-soft) 0%, #FFFFFF 55%, var(--wp--preset--color--primary-soft) 100%);
  overflow: hidden;
}
.sf-hero::before {
  content: '';
  position: absolute;
  inset: auto -240px -320px auto;
  width: 640px; height: 640px;
  background: radial-gradient(circle, var(--wp--preset--color--accent) 0%, transparent 65%);
  opacity: .10;
  pointer-events: none;
}
.sf-hero::after {
  content: '';
  position: absolute;
  inset: -200px auto auto -180px;
  width: 480px; height: 480px;
  background: radial-gradient(circle, var(--wp--preset--color--primary) 0%, transparent 70%);
  opacity: .07;
  pointer-events: none;
}
.sf-hero h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); margin-bottom: 1rem; }
.sf-hero .lead { font-size: 1.25rem; color: var(--wp--preset--color--fg-muted); max-width: 640px; }
.sf-hero .actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }
.sf-hero .wp-block-columns { position: relative; z-index: 2; }

/* Foto hero (Vincenzo al lavoro) */
.sf-hero-photo {
  position: relative;
  display: block;
}
.sf-hero-photo img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 480px;
  margin-left: auto;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(30, 42, 90, 0.18), 0 4px 16px rgba(30, 42, 90, 0.08);
  border: 6px solid #fff;
  background: #fff;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.sf-hero-photo::before {
  content: '';
  position: absolute;
  inset: 12px -12px -12px 12px;
  border: 2px solid var(--wp--preset--color--primary);
  border-radius: 20px;
  z-index: -1;
  opacity: 0.4;
  pointer-events: none;
}
@media (max-width: 781px) {
  .sf-hero-photo { margin-top: 2rem; }
  .sf-hero-photo img { max-width: 100%; aspect-ratio: 16 / 12; }
  .sf-hero-photo::before { display: none; }
}

/* ==========================================================================
   Header / nav
   ========================================================================== */
.wp-block-template-part.site-header {
  background: var(--wp--preset--color--surface);
  border-bottom: 1px solid var(--wp--preset--color--border);
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: saturate(180%) blur(8px);
  background: rgba(255,255,255,0.92);
}

.sf-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  line-height: 0;
}
.sf-logo img {
  display: block;
  height: 56px;
  width: auto;
  max-width: 280px;
  transition: opacity .15s ease;
}
.sf-logo:hover img { opacity: 0.85; }
@media (max-width: 720px) {
  .sf-logo img { height: 44px; max-width: 220px; }
}

/* Header nav */
.sf-nav {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  font-size: 0.95rem;
  font-weight: 500;
}
.sf-nav a {
  color: var(--wp--preset--color--fg) !important;
  text-decoration: none !important;
  transition: color .15s ease;
  white-space: nowrap;
}
.sf-nav a:hover { color: var(--wp--preset--color--primary-dark) !important; }
.sf-nav a.sf-nav-cta {
  padding: 0.5rem 1.25rem;
  background: var(--wp--preset--color--primary);
  color: #fff !important;
  border-radius: 999px;
  font-weight: 600;
}
.sf-nav a.sf-nav-cta:hover { background: var(--wp--preset--color--primary-dark); }

@media (max-width: 860px) {
  .sf-nav { gap: 0.875rem; font-size: 0.875rem; flex-wrap: wrap; justify-content: flex-end; }
  .sf-nav a.sf-nav-cta { padding: 0.4rem 0.9rem; }
}
@media (max-width: 560px) {
  .sf-nav { display: none; }
  .sf-nav a.sf-nav-cta { display: inline-flex; }
  .sf-nav { display: flex; gap: 0.5rem; }
  .sf-nav > a:not(.sf-nav-cta) { display: none; }
}

/* Footer nav list */
.sf-footer-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.9rem;
  line-height: 2;
}
.sf-footer-nav a { color: #FFFFFF !important; text-decoration: none !important; }
.sf-footer-nav a:hover { color: #FFFFFF !important; text-decoration: underline !important; text-decoration-color: rgba(255,255,255,0.6) !important; }

/* ==========================================================================
   Footer
   ========================================================================== */
.wp-block-template-part.site-footer {
  background: var(--wp--preset--color--accent-dark) !important;
  color: #FFFFFF;
  padding: 3rem 0 2rem;
  margin-top: 4rem;
  /* Override locale variabili: WP-FSE genera link color da elements.link in theme.json
     che vincerebbe per specificity. Rimappo le var di colore link a bianco solo nel footer. */
  --wp--preset--color--primary-dark: #FFFFFF;
  --wp--preset--color--primary: #FFFFFF;
}
.wp-block-template-part.site-footer,
.wp-block-template-part.site-footer p,
.wp-block-template-part.site-footer li,
.wp-block-template-part.site-footer span { color: #FFFFFF !important; }
/* Selettore rinforzato con :link/:visited per battere theme.json elements.link */
.wp-block-template-part.site-footer a,
.wp-block-template-part.site-footer a:link,
.wp-block-template-part.site-footer a:visited,
.wp-block-template-part.site-footer p a,
.wp-block-template-part.site-footer li a,
footer.site-footer a,
footer.site-footer a:link,
footer.site-footer a:visited {
  color: #FFFFFF !important;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.5);
  text-underline-offset: 3px;
}
.wp-block-template-part.site-footer a:hover,
.wp-block-template-part.site-footer a:focus,
footer.site-footer a:hover,
footer.site-footer a:focus {
  color: #FFFFFF !important;
  text-decoration-color: #FFFFFF;
}
.wp-block-template-part.site-footer h2,
.wp-block-template-part.site-footer h3,
.wp-block-template-part.site-footer h4 { color: #fff; }

/* ==========================================================================
   Blog post layout
   ========================================================================== */
article.post .entry-content { font-size: 1.0625rem; line-height: 1.75; }
article.post .entry-content > * + * { margin-top: 1.25em; }
article.post .entry-content h2 { margin-top: 2.5rem; }
article.post .entry-content h3 { margin-top: 2rem; }
article.post .entry-content blockquote { font-style: italic; }

/* Lead paragraph in articolo */
article.post .entry-content > p:first-of-type {
  font-size: 1.1875rem;
  line-height: 1.6;
  color: var(--wp--preset--color--fg-muted);
}

/* ==========================================================================
   Searchbox blog (wp:search block + chip categorie)
   ========================================================================== */
.sf-search.wp-block-search {
  margin: 1.5rem 0 1rem;
  max-width: 640px;
}
.sf-search.wp-block-search .wp-block-search__inside-wrapper {
  border: 1px solid var(--wp--preset--color--border) !important;
  border-radius: 999px !important;
  background: var(--wp--preset--color--surface);
  padding: 0.25rem 0.4rem 0.25rem 1.25rem;
  transition: border-color .15s ease, box-shadow .15s ease;
  overflow: hidden;
}
.sf-search.wp-block-search .wp-block-search__inside-wrapper:focus-within {
  border-color: var(--wp--preset--color--primary) !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.18);
}
.sf-search.wp-block-search input.wp-block-search__input {
  border: 0 !important;
  background: transparent !important;
  padding: 0.7rem 0.25rem !important;
  font-size: 1rem !important;
  font-family: var(--wp--preset--font-family--sans) !important;
  color: var(--wp--preset--color--fg) !important;
  min-width: 0;
  flex: 1;
}
.sf-search.wp-block-search input.wp-block-search__input:focus {
  outline: none !important;
  box-shadow: none !important;
}
.sf-search.wp-block-search input.wp-block-search__input::placeholder {
  color: var(--wp--preset--color--fg-subtle);
}
.sf-search.wp-block-search button.wp-block-search__button {
  border: 0 !important;
  background: var(--wp--preset--color--primary) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 0.55rem 1rem !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s ease;
}
.sf-search.wp-block-search button.wp-block-search__button:hover {
  background: var(--wp--preset--color--primary-dark) !important;
}
.sf-search.wp-block-search button.wp-block-search__button svg {
  fill: currentColor;
  width: 18px;
  height: 18px;
}

/* Chip categorie sotto la searchbox */
.sf-cat-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.sf-chip {
  display: inline-block;
  padding: 0.4rem 0.95rem;
  background: var(--wp--preset--color--surface-alt);
  color: var(--wp--preset--color--fg) !important;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 999px;
  font-size: 0.825rem;
  font-weight: 500;
  text-decoration: none !important;
  transition: background .15s ease, border-color .15s ease, transform .1s ease;
  white-space: nowrap;
}
.sf-chip:hover {
  background: var(--wp--preset--color--accent-soft);
  border-color: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--accent-dark) !important;
  transform: translateY(-1px);
}

/* ==========================================================================
   Categoria badge
   ========================================================================== */
.sf-cat-badge {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  background: var(--wp--preset--color--accent-soft);
  color: var(--wp--preset--color--accent-dark);
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: none !important;
}

/* ==========================================================================
   Mobile
   ========================================================================== */
@media (max-width: 720px) {
  .sf-hero { padding: 3rem 0 2.5rem; }
  .sf-service-card { padding: 1.5rem; }
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

/* ==========================================================================
   Dark mode (prefers-color-scheme: dark)
   ========================================================================== */
@media (prefers-color-scheme: dark) {
  /* Override token colore principali — sovrascrive le var WP-FSE */
  :root {
    --wp--preset--color--bg:           #0F172A;  /* slate-900 */
    --wp--preset--color--surface:      #1E293B;  /* slate-800 */
    --wp--preset--color--surface-alt:  #0F172A;  /* slate-900 */
    --wp--preset--color--fg:           #F1F5F9;  /* slate-100 */
    --wp--preset--color--fg-muted:     #94A3B8;  /* slate-400 */
    --wp--preset--color--fg-subtle:    #64748B;  /* slate-500 */
    --wp--preset--color--border:       #334155;  /* slate-700 */

    /* Brand: rosso schiarito per leggibilità su dark, blu navy → indigo chiaro */
    --wp--preset--color--primary:       #EF4444;  /* red-500 (più chiaro di DC2626) */
    --wp--preset--color--primary-dark:  #DC2626;  /* dark hover */
    --wp--preset--color--primary-soft:  #7F1D1D;  /* red-900 per soft bg */
    --wp--preset--color--accent:        #818CF8;  /* indigo-400 chiaro per leggibilità */
    --wp--preset--color--accent-dark:   #6366F1;  /* indigo-500 */
    --wp--preset--color--accent-soft:   #312E81;  /* indigo-900 per soft bg */

    /* Semantici: leggermente più chiari */
    --wp--preset--color--success:       #22C55E;
    --wp--preset--color--warning:       #F59E0B;
    --wp--preset--color--danger:        #F87171;

    /* Shadows più scure ma visibili su dark */
    --wp--preset--shadow--sm:    0 1px 2px rgba(0, 0, 0, 0.4);
    --wp--preset--shadow--md:    0 4px 16px rgba(0, 0, 0, 0.5);
    --wp--preset--shadow--lg:    0 12px 32px rgba(0, 0, 0, 0.6);
    --wp--preset--shadow--card:  0 2px 8px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);
  }

  /* Body + sfondo principale */
  body {
    background: var(--wp--preset--color--bg);
    color: var(--wp--preset--color--fg);
    color-scheme: dark;
  }

  /* Header sticky */
  .wp-block-template-part.site-header {
    background: rgba(15, 23, 42, 0.94) !important; /* slate-900 con alpha */
    border-bottom-color: var(--wp--preset--color--border);
  }
  .sf-nav a { color: var(--wp--preset--color--fg) !important; }
  .sf-nav a:hover { color: var(--wp--preset--color--primary) !important; }
  .sf-nav a.sf-nav-cta {
    background: var(--wp--preset--color--primary);
    color: #fff !important;
  }
  .sf-nav a.sf-nav-cta:hover { background: var(--wp--preset--color--primary-dark); }

  /* Logo: rimane su sfondo bianco (la croce nel cerchio richiede contrasto) */
  .sf-logo img {
    background: #FFFFFF;
    border-radius: 8px;
    padding: 6px 10px;
  }

  /* Hero: gradiente più scuro, mantiene la decorazione cromatica */
  .sf-hero {
    background: linear-gradient(135deg, #1E293B 0%, #0F172A 50%, #1E1B4B 100%);
  }
  .sf-hero::before { opacity: .15; }
  .sf-hero::after  { opacity: .10; }

  /* Hero photo: cornice bianca sostituita con border slate */
  .sf-hero-photo img {
    background: var(--wp--preset--color--surface);
    border-color: var(--wp--preset--color--surface);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 4px 16px rgba(0, 0, 0, 0.3);
  }

  /* Service cards */
  .sf-service-card {
    background: var(--wp--preset--color--surface);
    border-color: var(--wp--preset--color--border);
  }
  .sf-service-card:hover { border-color: var(--wp--preset--color--primary); }
  .sf-service-card .sf-icon {
    background: var(--wp--preset--color--primary-soft);
    color: var(--wp--preset--color--primary);
  }

  /* Studio stripe: sand-soft → surface-alt scuro */
  .has-sand-soft-background-color { background-color: var(--wp--preset--color--surface-alt) !important; }
  .has-sand-soft-color { color: var(--wp--preset--color--fg) !important; }

  /* Search box */
  .sf-search.wp-block-search .wp-block-search__inside-wrapper {
    background: var(--wp--preset--color--surface);
    border-color: var(--wp--preset--color--border) !important;
  }
  .sf-search.wp-block-search input.wp-block-search__input {
    color: var(--wp--preset--color--fg) !important;
    background: transparent !important;
  }
  .sf-search.wp-block-search input.wp-block-search__input::placeholder {
    color: var(--wp--preset--color--fg-muted);
  }
  .sf-search.wp-block-search .wp-block-search__inside-wrapper:focus-within {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.25);
  }

  /* Chip categorie */
  .sf-chip {
    background: var(--wp--preset--color--surface);
    border-color: var(--wp--preset--color--border);
    color: var(--wp--preset--color--fg) !important;
  }
  .sf-chip:hover {
    background: var(--wp--preset--color--accent-soft);
    border-color: var(--wp--preset--color--accent);
    color: var(--wp--preset--color--fg) !important;
  }

  /* Cat badge */
  .sf-cat-badge,
  .sf-cat-badge a,
  .wp-block-post-terms.sf-cat-badge a {
    background: var(--wp--preset--color--accent-soft);
    color: #C7D2FE !important; /* indigo-200 per contrasto su accent-soft scuro */
  }

  /* Disclaimer + studi box */
  .sf-disclaimer {
    background: var(--wp--preset--color--surface);
    color: var(--wp--preset--color--fg-muted);
    border-left-color: var(--wp--preset--color--accent);
  }
  .sf-disclaimer strong { color: var(--wp--preset--color--fg); }
  .sf-studi {
    background: var(--wp--preset--color--primary-soft);
    color: var(--wp--preset--color--fg);
  }
  .sf-studi h4 { color: #FCA5A5; } /* red-300 visibile su red-900 */
  .sf-studi li { color: #FECACA; } /* red-200 */
  .sf-studi a { color: #FCA5A5 !important; }

  /* CTA BeHealth (gradient navy) */
  .sf-behealth-cta {
    background: linear-gradient(135deg, #312E81 0%, #1E1B4B 100%);
  }

  /* Diventa BeHealther invite */
  .sf-bh-invite {
    background: linear-gradient(135deg, #312E81 0%, #7F1D1D 100%);
    border-color: var(--wp--preset--color--border);
  }
  .sf-bh-invite__title { color: var(--wp--preset--color--fg); }
  .sf-bh-invite__text  { color: var(--wp--preset--color--fg-muted); }
  .sf-bh-invite__kicker { color: #A5B4FC; } /* indigo-300 */

  /* BH final CTA: era fg-bg, ora rendo navy */
  .sf-bh-final-cta { background: #0B1226; }

  /* Author bio sotto articoli */
  .sf-author-bio--photo > img {
    background: var(--wp--preset--color--surface);
    border-color: var(--wp--preset--color--surface);
  }
  .sf-author-bio--photo h4,
  .sf-author-bio--photo p { color: var(--wp--preset--color--fg) !important; }

  /* Foto Vincenzo */
  .sf-vincenzo-photo {
    background: var(--wp--preset--color--surface);
  }
  .sf-vincenzo-photo--bio,
  .sf-bh-invite__photo {
    background: var(--wp--preset--color--surface);
    border-color: var(--wp--preset--color--surface);
  }

  /* Footer rimane navy scuro (era già) ma rendiamo i link più readable */
  .wp-block-template-part.site-footer {
    background: #0B1226 !important;
    border-top: 1px solid var(--wp--preset--color--border);
  }

  /* Surface boxes (es. orari studio nella homepage) */
  .has-surface-background-color {
    background-color: var(--wp--preset--color--surface) !important;
  }
  .has-border-color { border-color: var(--wp--preset--color--border) !important; }

  /* Code blocks */
  .wp-block-code,
  pre, code {
    background: var(--wp--preset--color--surface);
    color: var(--wp--preset--color--fg);
  }

  /* Selection */
  ::selection { background: var(--wp--preset--color--primary); color: #fff; }

  /* Heading colors override (forza fg su elementi con WP color hardcoded) */
  h1.wp-block-heading,
  h2.wp-block-heading,
  h3.wp-block-heading,
  h4.wp-block-heading {
    color: var(--wp--preset--color--fg) !important;
  }

  /* Link nel body */
  .wp-block-post-content a:not(.sf-cta):not(.sf-chip):not(.sf-cat-badge),
  .entry-content a:not(.sf-cta):not(.sf-chip):not(.sf-cat-badge) {
    color: var(--wp--preset--color--primary) !important;
  }
  .wp-block-post-content a:not(.sf-cta):not(.sf-chip):not(.sf-cat-badge):hover,
  .entry-content a:not(.sf-cta):not(.sf-chip):not(.sf-cat-badge):hover {
    color: #FCA5A5 !important;
  }

  /* Tabelle (orari studio) */
  table { color: var(--wp--preset--color--fg); }
  table tr td { border-color: var(--wp--preset--color--border) !important; }

  /* Forza background del body block group (homepage hero, sezioni) */
  .wp-block-group:not(.has-background) { background: transparent; }
}

