/* A quiet accent follows section headings without adding another label. */
.intro-title h2::after, .section-heading h2::after,
.instagram-copy h2::after, .about-copy h2::after,
.message h2::after, .consultation-flow-heading h2::after,
.contact-intro h2::after {
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  margin-top: 15px;
  background: linear-gradient(90deg, #4273b1, #d7a36b);
}
.message h2::after, .consultation-flow-heading h2::after { margin-inline: auto; }
.contact-intro h2::after { background: #ffcf91; }

/* Bring the face forward in the original portrait; no facial retouching. */
.about-portrait { object-position: 50% 80%; transform: scale(1.6); transform-origin: 50% 68%; }

/* Body copy is legible at a normal reading distance on desktop too. */
body { font-size: 17px; }
.hero-desc, .intro-text, .instagram-description,
.about-copy > p:not(.eyebrow), .message > p:not(.eyebrow) { font-size: 17px; }
.heading-side, .service-image figcaption,
.service-list article p:not(.service-label),
.journey-flow li p, .consultation-flow-heading > p:last-child,
.consultation-flow-list p, .contact-intro-copy > p:not(.eyebrow) { font-size: 16px; }
.service-label, .meeting-photo figcaption, .journey-flow .journey-note,
.instagram-stat > span, .instagram-handle { font-size: 15px; }
.service-list article .scope { font-size: 13px !important; }
.service-image small, .flow-step, .instagram-stat small,
.instagram-profile figcaption, .about-caption span { font-size: 12px; }
.button, .consultation-form .category-chip span, .footer-nav,
.footer-privacy { font-size: 14px; }
.form-step label:not(.category-chip), .form-step legend,
.consent-label { font-size: 16px; }
.form-step small, .field-hint, .privacy-note,
.form-status, .form-error, footer p, footer > small { font-size: 13px !important; }

/* Mobile text sizes: preserve the main display copy and headings. */
@media (max-width: 700px) {
  body { font-size: 17px; }
  nav .nav-contact { font-size: 12px; }
  .hero-desc, .intro-text, .instagram-description,
  .about-copy > p:not(.eyebrow), .message > p:not(.eyebrow) { font-size: 17px; }
  .visual-label, .service-image small, .flow-step,
  .instagram-stat small, .instagram-profile figcaption,
  .about-caption span { font-size: 12px; }
  .heading-side, .service-image figcaption,
  .service-list article p:not(.service-label),
  .journey-flow li p, .journey-flow .journey-note,
  .consultation-flow-heading > p:last-child,
  .consultation-flow-list p, .contact-intro-copy > p:not(.eyebrow) { font-size: 16px; }
  .service-label, .instagram-stat > span, .instagram-handle { font-size: 15px; }
  .phone-bottom { font-size: 14px; }
  .service-list article .scope { font-size: 13px !important; }
  .button, .movie-toggle, .consultation-form .category-chip span,
  .footer-nav, .footer-privacy { font-size: 14px; }
  .form-step label:not(.category-chip), .form-step legend,
  .consent-label, .contact-note p { font-size: 15px; }
  .form-step small, .field-hint, .privacy-note,
  .form-status, .form-error, .contact-note small,
  .instagram-profile figcaption, footer p, footer > small { font-size: 12px !important; }
  .form-step input:not([type=checkbox]), .form-step textarea { font-size: 16px; }
  .policy section p, .policy li { font-size: 16px; }
  .policy-date { font-size: 13px; }
  .about-portrait { object-position: 50% 80%; transform: scale(1.85); transform-origin: 50% 68%; }
  .contact-intro h2 { margin-top: 0; }
  .contact-intro-copy > p:not(.eyebrow), .contact-portrait { grid-row: 2; }
}
