/* Specialist and booking: a continuous illustrated reading sheet. */
body.about-page, body.booking-page, body.education-page { min-width: 0; }
.about-intro__copy { grid-column: 2; grid-row: 1; }
.about-intro > .about-portrait { grid-column: 1; grid-row: 1; }
.about-intro .about-lead { margin-top: 24px; }
.about-intro__action { margin-top: 26px; }
.about-content { width: min(100%, 900px); }
.about-requests { list-style: none; padding: 0; gap: 18px 36px; }
.about-requests li { display: grid; grid-template-columns: 62px minmax(0,1fr); gap: 14px; align-items: center; padding: 8px 0; }
.request-sketch { width: 62px; height: 62px; overflow: visible; pointer-events: none; color: var(--accent-dark); }
.request-sketch path { fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; animation: request-draw 11s ease-in-out infinite; animation-delay: calc(var(--sketch-delay) + var(--stroke-delay)); }
@keyframes request-draw { 0% { stroke-dashoffset: 1; opacity: 0; } 4% { opacity: 1; } 22%,88% { stroke-dashoffset: 0; opacity: 1; } 96%,100% { stroke-dashoffset: 0; opacity: 0; } }
.about-topics-note { margin-top: 20px !important; color: var(--muted); font-size: 14px; }
.method-part { position: relative; margin-top: 30px; padding-left: 28px; }
.method-part::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 0; width: 1px; background: linear-gradient(var(--accent-dark), var(--line), transparent); transform: rotate(.3deg); opacity: .65; }
.method-part h3 { margin: 0 0 13px; font: 400 clamp(21px,2vw,25px)/1.25 var(--font-serif); color: var(--ink); }
.education-entry { position: relative; padding-left: 28px; margin-bottom: 26px; }
.education-entry::before { content: ""; position: absolute; left: 2px; top: 9px; width: 10px; height: 10px; border: 1px solid var(--accent-dark); border-radius: 48% 55% 43% 51%; }
.education-entry::after { content: ""; position: absolute; left: 7px; top: 25px; bottom: -16px; width: 1px; background: var(--line); }
.education-link { display: inline-flex; gap: 12px; align-items: center; margin-top: 20px; min-height: 44px; color: var(--accent-dark); text-underline-offset: 5px; }
.education-link:focus-visible,.document-sheet a:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 5px; }
.about-contact .booking-form { margin-top: 22px; }
.booking-form small { font-size: 13px; color: var(--muted); font-weight: 400; }
.booking-form .booking-form__note { margin: -3px 0 4px; }
.booking-form__contact { min-width: 0; }
.booking-form select { width: 100%; min-height: 48px; padding: 10px 12px; color: var(--ink); border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.45); font: inherit; }
.field-error { color: var(--danger); font-size: 13px; line-height: 1.45; }
.field-error[hidden] { display: none; }
.booking-form [aria-invalid="true"] { border-color: var(--danger); }
.submission-dialog .booking-summary { display: grid; gap: 16px; margin: 24px 0; }
.booking-summary > div { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.booking-summary dt { color: var(--muted); font-size: 13px; margin-bottom: 5px; }
.booking-summary dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); font-size: 16px; line-height: 1.6; }
.submission-dialog__consent[hidden],.submission-dialog [hidden] { display: none !important; }
.submission-dialog .submission-dialog__actions { flex-direction: row-reverse; justify-content: flex-end; }
.education-shell .page-head { max-width: 820px; }
.education-shell h1 { font-size: clamp(34px,4.5vw,52px); }
.document-note { color: var(--muted); font-size: 14px; }
.document-sheet { padding: 30px 0; border-top: 1px solid var(--line); margin-top: 30px; }
.document-sheet h2 { font: 400 clamp(24px,3vw,32px)/1.2 var(--font-serif); margin: 0 0 12px; }
.document-sheet p { font-size: 14px; color: var(--muted); }
.document-image-link { display: block; margin-top: 20px; }
.document-image-link img { display: block; width: 100%; height: auto; border: 1px solid var(--line); }
.home-actions a.home-action-button[href="/booking/"] { color: #2b3f36; background: #eadbc5; border-color: #eadbc5; }
.home-actions a.home-action-button[href="/booking/"]:hover,.home-actions a.home-action-button[href="/booking/"]:focus-visible { background: #f3e6d3; border-color: #f3e6d3; color: #1f322a; }
@media (max-width: 820px) { .about-contact .booking-form__contact { grid-template-columns: 1fr; } }
@media (max-width: 720px) {
  .main-nav.is-open { gap: 2px; padding: 8px; }
  .main-nav a { min-height: 44px; padding: 8px 12px; }
  .main-nav a.nav-booking { margin-top: 4px; min-height: 44px; }
  .about-shell { padding-top: 32px; }
  .about-intro { gap: 28px; }
  .about-intro > .about-intro__copy { order: 0; }
  .about-intro > .about-portrait { order: 1; width: min(100%,360px); margin-inline: auto; }
  .about-intro h1 { font-size: clamp(34px,8.4vw,42px); max-width: 15ch; }
  .about-intro .about-lead { margin-top: 20px; font-size: 17px; line-height: 1.6; }
  .about-intro__action { margin-top: 22px; }
  .about-requests { grid-template-columns: 1fr; gap: 8px; }
  .about-requests li { grid-template-columns: 48px minmax(0,1fr); gap: 14px; }
  .request-sketch { width: 48px; height: 48px; }
  .method-part,.education-entry { padding-left: 22px; }
  .submission-dialog .submission-dialog__actions { flex-direction: column; }
  .submission-dialog__actions .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .request-sketch path { animation: none !important; stroke-dasharray: none; stroke-dashoffset: 0; opacity: 1; } }

/* Source order puts the action before the longer introduction on small screens. */
.about-intro__copy { display:flex; flex-direction:column; }
.about-intro__copy > .eyebrow { order:0; }
.about-intro__copy > h1 { order:1; }
.about-intro__copy > .about-lead { order:2; }
.about-intro__format { order:3; margin:22px 0 0; font-size:16px; line-height:1.5; }
.about-intro__meeting { order:4; margin:14px 0 0; font-size:17px; line-height:1.6; }
.about-intro__action { order:5; }
@media(max-width:720px) {
  .about-shell { padding-top:24px; }
  .about-intro__copy > .eyebrow { margin-bottom:10px; }
  .about-intro__copy > .about-intro__format { order:2; margin-top:14px; }
  .about-intro__copy > .about-intro__meeting { order:3; margin-top:12px; font-size:16px; line-height:1.5; }
  .about-intro__copy > .about-intro__action { order:4; margin-top:18px; padding-top:0; border-top:0; }
  .about-intro__action .button { min-height:48px; width:100%; font-size:16px; }
  .about-intro__copy > .about-lead { order:5; margin-top:30px; }
}
.submission-dialog input[type="tel"],.submission-dialog select { box-sizing:border-box; width:100%; min-height:48px; padding:11px 14px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:#fffcf7; font:16px/1.4 var(--font-sans); }
