/* Shared reading hierarchy. Client artwork inside the portfolio keeps its own identity. */
:root {
  --type-display: clamp(2.25rem, 4.4vw, 4rem);
  --type-section: clamp(1.85rem, 3vw, 2.75rem);
  --type-card: clamp(1.3rem, 1.8vw, 1.6rem);
}
body { font-family: var(--font-body); }
main h1, main h2, main h3 { font-weight: 600; }
.hero.hero h1, .sv-main .sv-hero h1, .seo-hero h1 {
  font-size: var(--type-display) !important; line-height: 1.12 !important;
  letter-spacing: -.025em !important; text-wrap: balance;
}
.hero h1 em, .sv-hero h1 em, .sv-closing em { font-weight: 600; }
.portfolio-detail.portfolio-detail-compact h1, .cecilia-profile h1 {
  font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1.15; letter-spacing: -.02em;
}
.section-heading h2, .about-copy h2, #terapeutas .therapist-copy h2,
.faq-heading h2, .contact-copy h2, .sv-main h2, .seo-main h2 {
  font-size: var(--type-section) !important; line-height: 1.2 !important;
  letter-spacing: -.015em; font-weight: 600; text-wrap: balance;
}
.sv-main .sv-entry h2, .sv-main .sv-group-heading h2 { font-size: clamp(1.5rem, 2.3vw, 2rem) !important; }
.sv-main h3, .therapist-steps h3, #trabajos .work-meta h3, .portfolio-detail h2 {
  font-size: var(--type-card) !important; line-height: 1.25 !important; font-weight: 600;
}
.about-copy > p:not(.eyebrow), .therapist-copy > p:not(.eyebrow),
.portfolio-detail.portfolio-detail-compact > .section-lead,
.portfolio-detail-compact > .section-lead + p, .cecilia-profile p,
.sv-main .sv-detail-body, .sv-main .sv-detail-body p, .sv-main .sv-result,
.sv-main .sv-group-heading p, .sv-main .sv-related {
  font-size: 1rem; line-height: 1.65; font-weight: 400;
}
.cecilia-profile .cecilia-subtitle { font-family: var(--font-body); font-size: 1.125rem; line-height: 1.55; }
.eyebrow, .sv-main .sv-eyebrow { font: 700 .75rem/1.5 var(--font-body); letter-spacing: .1em; }
.sv-main .sv-group-heading .sv-number { font: 600 1.5rem/1.3 var(--font-body); }
.sv-paths-heading > p:last-child { font-family: var(--font-body); font-style: normal; font-size: 1rem; }
.button, .sv-main .button, .sv-main .sv-consult, .sv-main .sv-text-link {
  font-family: var(--font-body); font-size: .9375rem !important; font-weight: 600 !important;
  line-height: 1.4; letter-spacing: 0; min-height: 44px;
  white-space: normal; text-align: center;
}
.sv-main .sv-price { font-size: 1rem !important; font-weight: 700; line-height: 1.5; font-variant-numeric: tabular-nums; }
.sv-main .sv-group .sv-detail-body, .sv-main .sv-group .sv-detail-body p,
.sv-main .sv-result { font-size: 1rem !important; line-height: 1.65; }
.sv-main .sv-group .sv-consult { min-height: 44px; }
.sv-main summary, .faq-list summary { font-size: 1rem !important; line-height: 1.5; font-weight: 600; min-height: 48px; }
.portfolio-header nav a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 600px) {
  .sv-main { padding-inline: 20px; }
  .sv-main .sv-group { padding: 20px 16px; }
  .sv-main .sv-group .sv-offers > .sv-offer { padding: 20px 16px; }
  .sv-main .sv-group .sv-offer > div:first-child { min-height: 0; }
  .sv-main .sv-entry { padding: 24px 20px; }
  .sv-main .sv-entry-foot, .sv-main .sv-offer-bottom { gap: 12px; }
  .sv-main .sv-entry .sv-options, .sv-main .sv-detail-body, .sv-main .sv-detail-body p,
  .sv-main .sv-related, .therapist-steps p { font-size: 1rem; line-height: 1.65; }
  .sv-main .sv-closing { padding: 28px 22px; }
  .portfolio-detail { padding-inline: 20px; }
  .portfolio-header { padding: 20px; gap: 16px; }
  .portfolio-header nav { column-gap: 16px; row-gap: 0; }
  .svc-page .portfolio-header nav a { font-size: 14px; min-height: 44px; }
  input, select, textarea { font-size: 16px !important; }
}
