/* Layout inspired by the supplied reference: compact hero, values strip, and three-part approach. */
.hero { min-height: 570px; padding-top: 54px; padding-bottom: 42px; }
.section-label { font-size: 15px; line-height: 1.4; }
.section-anchor { display: block; position: relative; top: -80px; visibility: hidden; }
.hero-copy { padding: 42px 0; }
.hero h1 { font-size: clamp(56px, 6.4vw, 92px); max-width: 610px; }
.hero-divider { display: block; width: 42px; height: 1px; margin: -7px 0 28px; background: var(--clay); }
.hero-portrait { min-height: 480px; }
.portrait-frame { min-height: 480px; width: min(100%, 510px); }
.values { background: var(--cream); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.values-inner { display: grid; grid-template-columns: repeat(4, 1fr); padding-top: 35px; padding-bottom: 35px; }
.values article { display: flex; gap: 15px; padding: 0 21px; border-left: 1px solid var(--line); }
.values article:first-child { border-left: 0; padding-left: 0; }
.value-icon { flex: 0 0 42px; color: var(--clay); }
.value-icon svg { display: block; width: 38px; height: 38px; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.values h3 { margin: 0 0 7px; font: 21px/1.1 "DM Serif Display", Georgia, serif; letter-spacing: -.02em; }
.values p { margin: 0; color: #714d3c; font-size: 12px; line-height: 1.55; }
.intro { padding-top: 118px; padding-bottom: 118px; }
.intro-content { grid-template-columns: .88fr 1.12fr; gap: 9%; align-items: center; }
.intro-photo { min-height: 390px; position: relative; overflow: hidden; background: #f0dfd5; }
.intro-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; visibility: hidden; z-index: 1; }
.intro-photo img.loaded { visibility: visible; }
.intro-photo-placeholder { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(135deg, #f0d8cb, #f8ece5); color: #b98671; font: italic 33px/1.05 "DM Serif Display", Georgia, serif; text-align: center; }
.intro h2 { font-size: clamp(45px, 4.7vw, 65px); margin-bottom: 0; }
.intro-divider { display: block; width: 42px; height: 1px; margin: 25px 0 28px; background: var(--clay); }
.approach { padding: 106px 0 98px; }
.section-heading { display: block; text-align: center; max-width: 850px; margin: 0 auto; }
.section-heading .section-label { margin-bottom: 19px; }
.section-heading h2 { font-size: clamp(42px, 4.5vw, 61px); }
.section-heading p { margin: 18px auto 0; max-width: 660px; }
.approach-cards { grid-template-columns: repeat(3, 1fr); margin-top: 53px; }
.approach-card { min-height: 248px; text-align: center; padding: 28px 25px; }
.approach-card h3 { font-size: 27px; }
.approach-card p { margin-left: auto; margin-right: auto; }
.approach-footnote { display: none; }
.services { padding-top: 118px; padding-bottom: 118px; }
.services-heading { margin-top: 38px; max-width: 760px; }
.services-heading h2 { font-size: clamp(44px, 5vw, 68px); }
.services-content { display: grid; grid-template-columns: minmax(0, 1fr) 335px; gap: 105px; align-items: center; margin-top: 50px; }
.services-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.services-list li { position: relative; padding: 17px 20px 17px 30px; border-bottom: 1px solid var(--line); color: var(--ink); font: 22px/1.35 "DM Serif Display", Georgia, serif; letter-spacing: -.015em; }
.services-list li::before { content: ""; position: absolute; left: 3px; top: 27px; width: 7px; height: 7px; border-radius: 50%; background: var(--clay); }
.services-image { width: 320px; margin: 0 0 0 auto; padding: 10px; border: 1px solid rgba(181, 114, 94, .48); background: var(--paper); transform: translateX(48px); }
.services-image img { display: block; width: 100%; height: auto; object-fit: contain; }
.contact-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.button-outline { border: 1px solid rgba(255, 250, 248, .78); color: #fffaf8; }
.button-outline:hover { background: rgba(255, 250, 248, .12); }
.contact-details { display: flex; justify-content: center; gap: 22px; flex-wrap: wrap; margin-top: 22px; font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.contact-details a { border-bottom: 1px solid currentColor; }
.bio-summary p { color: #714d3c; font-size: 14px; line-height: 1.72; margin-bottom: 15px; }
.bio-summary p:last-child { margin-bottom: 0; }
@media (max-width: 760px) {
  .hero { padding-top: 27px; }
  .values-inner { grid-template-columns: 1fr 1fr; padding-top: 8px; padding-bottom: 8px; }
  .values article, .values article:first-child { padding: 20px 12px; border-bottom: 1px solid var(--line); }
  .values article:nth-child(odd) { border-left: 0; }
  .values article:nth-last-child(-n+2) { border-bottom: 0; }
  .value-icon { flex-basis: 34px; }
  .value-icon svg { width: 31px; height: 31px; }
  .values h3 { font-size: 17px; }
  .values p { font-size: 11px; }
  .intro { padding-top: 80px; padding-bottom: 80px; }
  .intro-photo { min-height: 320px; margin-bottom: 34px; }
  .approach { padding: 78px 0; }
  .approach-cards { grid-template-columns: 1fr; }
  .services { padding-top: 80px; padding-bottom: 80px; }
  .services-content { grid-template-columns: 1fr; gap: 48px; margin-top: 36px; }
  .services-list li { font-size: 19px; padding-top: 15px; padding-bottom: 15px; }
  .services-list li::before { top: 24px; }
  .services-image { width: min(250px, 78vw); margin: 0 auto; transform: none; }
}
