/* Shared reading scale and photography treatment, 2026-10-22. */
:root {
  --ink: #203e36;
  --muted: #40564c;
  --body-size: 18px;
  --detail-size: 16px;
}
body {font-size: var(--body-size); line-height: 1.95; letter-spacing: .025em;}
h1, h2, h3 {color: var(--ink);}
h1, h2 {font-weight: 500;}
main p, main .prose {font-size: var(--body-size); line-height: 2.05;}
.section-heading>p, .approach-text>p, .page-hero>p, .coach-copy>p, .contact-choice p {font-size: var(--body-size); line-height: 2.05;}
main .hero-intro {font-size: 20px; line-height: 2; color: var(--ink); letter-spacing: .045em;}
main h1 {font-weight: 500;}
.hero h1 {font-size: clamp(44px, 4.7vw, 64px); line-height: 1.55;}
.hero {padding-top: 54px; padding-bottom: 60px; gap: 45px;}
.hero-copy {padding-top: 0;}
.hero-visual {padding: 0 12px 20px 0;}
.photo-frame {height: 570px; border-radius: 46% 46% 3px 3px;}
.photo-frame img {object-position: 61% center;}
h2, .approach-title h2, .coach-copy>h2 {font-size: 36px; line-height: 1.7;}
.section-heading {align-items: flex-start; gap: 48px;}
.section-heading>p {max-width: 430px; padding-right: 0; padding-top: 8px;}
.concern h3 {font-size: 23px; font-weight: 500; line-height: 1.8;}
.concern p {font-size: 17px;}
.concern {padding-right: 28px; padding-bottom: 65px;}
.concern-no, .service-num, .flow span, .session-flow li:before {color: #506b57;}
.approach-image {height: clamp(320px, 35vw, 480px);}
.approach-image img {object-position: center 56%;}
.approach-image:after {display: none;}
.approach-inner {gap: 60px;}
.approach-text {padding-top: 22px;}
.approach-text>p {margin-bottom: 27px;}
.approach-steps h3 {font-size: 27px; font-weight: 500;}
.approach-steps p {font-size: var(--detail-size);}
.button {font-size: 16px; font-weight: 500; line-height: 1.7; min-height: 58px; letter-spacing: .02em;}
.text-link, .prose .text-link {font-size: 16px; font-weight: 500; line-height: 1.8;}
.service-cards {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px;}
.service-card {min-width: 0; display: flex; flex-direction: column;}
.service-card-image {display: block; overflow: hidden; background: var(--sage);}
.service-card-image img {width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; transition: transform .35s;}
.service-card-image:hover img {transform: scale(1.035);}
.service-card-body {display: flex; flex-direction: column; flex: 1; padding: 27px 0 0;}
.service-card h3 {font-family: var(--serif); font-size: 24px; font-weight: 500; line-height: 1.8; margin: 0 0 17px; letter-spacing: 0;}
.service-card p {font-size: 17px; color: var(--muted); margin-bottom: 24px;}
.service-card .text-link {margin-top: auto; align-self: flex-start; gap: 20px; font-size: 15px;}
.service-detail-photo {width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; margin-top: 30px;}
.service-format {font-size: 17px;}
.service-jump a {font-size: 16px; font-weight: 500;}
.coach-inner {grid-template-columns: 240px minmax(0, 1fr); gap: 80px; max-width: 1000px;}
.coach-picture {width: 240px; padding: 0; align-self: center;}
.coach-picture img {height: auto; aspect-ratio: 1; filter: none;}
.coach-copy>h2 {margin-top: 0;}
.coach-name h3 {font-size: 24px;}
.coach-copy>p {line-height: 2.05;}
.credentials {font-size: 15px; color: var(--muted);}
.profile-hero {grid-template-columns: minmax(0, 1fr) 260px; gap: 80px;}
.profile-hero img {width: 260px; height: auto; max-width: 100%;}
.profile-hero h1 {font-size: 44px;}
.profile-hero h2 {font-size: 28px;}
.profile-hero p {font-size: 18px;}
.flow h3, .session-flow h3 {font-size: 20px; font-weight: 500;}
.flow span {font-size: 13px;}
.flow p, .session-flow p {font-size: 17px;}
.faq summary, .page-faq summary {font-size: 18px; font-weight: 500;}
.faq details>p, .page-faq details>p {font-size: 17px;}
.page-hero h1 {font-size: 46px; line-height: 1.7;}
.process-list h3, .topic-grid h3 {font-weight: 500; font-size: 27px;}
.process-list p, .topic-grid p {font-size: 17px;}
.detail-list>div {font-size: 17px;}
.detail-list dt {color: var(--ink); font-weight: 500;}
.detail-list dd {font-size: 17px;}
.plain-list {font-size: 18px;}
.session-price h2 {font-size: 30px;}
.session-price span {font-size: 18px;}
.session-duration {font-size: 20px;}
.contact-choice h2 {font-size: 28px;}
.contact-layout {gap: 45px; grid-template-columns: 1.1fr 1fr;}
.legal-table>div, .legal-prose {font-size: 17px;}
.legal-prose p {font-size: 17px;}
.legal-prose h2 {font-size: 22px;}
.closing h2 {color: var(--cream); font-size: 40px; font-weight: 500;}
.closing-inner>p {color: #f0f3e9; font-size: 18px;}
.desktop-nav {font-size: 13px; font-weight: 500; gap: 22px;}
.footer-links {font-size: 14px;}
.footer-bottom, .footer-bottom small {font-size: 12px;}
@media(max-width:1100px) {
  .hero {gap: 30px;}
  .hero h1 {font-size: 48px;}
  .photo-frame {height: 520px;}
  .service-cards {gap: 24px;}
  .service-card h3 {font-size: 22px;}
  .service-jump a {font-size: 14px; padding-inline: 16px;}
  .coach-inner {gap: 50px;}
}
@media(max-width:1050px) {
  .header {height: 82px;}
  .desktop-nav {display: none;}
  .menu-toggle {display: flex; flex-direction: column; justify-content: center; gap: 7px; border: 0; background: none; width: 44px; height: 44px; cursor: pointer; z-index: 2; padding: 10px;}
  .menu-toggle>span {width: 24px; height: 1px; background: var(--green); transition: transform .2s;}
  .menu-toggle[aria-expanded="true"]>span:first-child {transform: translateY(4px) rotate(45deg);}
  .menu-toggle[aria-expanded="true"]>span:last-child {transform: translateY(-4px) rotate(-45deg);}
  .mobile-nav:not([hidden]) {display: flex; flex-direction: column; position: absolute; top: 81px; left: 0; right: 0; background: var(--cream); padding: 18px 24px 28px; box-shadow: 0 15px 20px #244b4312; border-bottom: 1px solid var(--line);}
  .mobile-nav>a {padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 17px;}
}
@media(max-width:760px) {
  :root {--body-size: 17px; --detail-size: 15px;}
  .hero {padding-top: 30px; padding-bottom: 36px; gap: 16px;}
  .hero h1 {font-size: clamp(34px, 10vw, 45px); line-height: 1.65; margin-top: 12px;}
  main .hero-intro {font-size: 17px; line-height: 2;}
  .hero-visual {padding: 0 20px 12px; margin-bottom: 10px;}
  .photo-frame {height: 370px;}
  h2, .approach-title h2, .coach-copy>h2 {font-size: 29px; line-height: 1.75;}
  .section-heading>p {padding-top: 0;}
  .concern h3 {font-size: 21px;}
  .concern p {font-size: 16px;}
  .concern, .concern+.concern {padding-right: 15px; padding-bottom: 56px;}
  .concern p br {display: none;}
  .round-arrow {bottom: 16px;}
  .approach-image {height: 290px;}
  .approach-text>p br {display: none;}
  .approach-steps>div {grid-template-columns: 100px 1fr;}
  .approach-steps h3 {font-size: 23px;}
  .approach-steps p {font-size: 15px; line-height: 1.8;}
  .button {font-size: 15px; padding-inline: 20px; min-width: 0; max-width: 100%; gap: 20px;}
  .text-link, .prose .text-link {font-size: 16px; gap: 22px;}
  .service-cards {grid-template-columns: 1fr; gap: 44px;}
  .service-card-body {padding-top: 22px;}
  .service-card h3 {font-size: 24px; margin-bottom: 14px;}
  .service-card p {font-size: 17px; margin-bottom: 17px;}
  .service-card .text-link {font-size: 16px;}
  .service-jump a, .service-jump a:first-child {font-size: 16px; padding-inline: 0;}
  .service-detail-photo {margin-top: 24px;}
  .coach-inner {display: flex; flex-direction: column-reverse; gap: 30px; align-items: flex-start;}
  .coach-picture {width: 160px; max-width: 160px; padding: 0; align-self: flex-start;}
  .coach-copy>h2 {margin-top: 0;}
  .coach-name h3 {font-size: 23px;}
  .credentials {font-size: 14px;}
  .profile-hero {gap: 28px;}
  .profile-hero h1 {font-size: 32px;}
  .profile-hero h2 {font-size: 25px;}
  .profile-hero p {font-size: 17px;}
  .profile-hero img {width: 180px; align-self: flex-start;}
  .flow>div {grid-template-columns: 62px 1fr;}
  .flow span {font-size: 11px;}
  .flow h3, .session-flow h3 {font-size: 19px;}
  .flow p, .session-flow p {font-size: 16px;}
  .faq summary, .page-faq summary {font-size: 17px;}
  .faq details>p, .page-faq details>p {font-size: 16px;}
  .page-hero h1 {font-size: 32px;}
  .page-hero>p br {display: none;}
  .process-list h3, .topic-grid h3 {font-size: 25px;}
  .detail-list>div {font-size: 16px; grid-template-columns: 90px 1fr; gap: 15px;}
  .detail-list dd {font-size: 16px;}
  .plain-list {font-size: 17px;}
  .contact-choice h2 {font-size: 25px;}
  .contact-choice p br {display: none;}
  .legal-table>div, .legal-prose, .legal-prose p {font-size: 16px;}
  .legal-prose h2 {font-size: 21px;}
  .closing h2 {font-size: 30px;}
  .closing-inner>p {font-size: 17px;}
  .button-light {font-size: 15px; max-width: 360px;}
  .footer-links {font-size: 14px;}
  .footer .text-link {font-size: 13px;}
  .footer-bottom, .footer-bottom small {font-size: 12px;}
}
