/* A quieter reading layer. Original artwork, colours and routes are preserved. */
body { font-size:1.125rem; line-height:1.65; }
h1 { font-size:clamp(3rem,5.7vw,5rem); line-height:1.1; letter-spacing:-.025em; }
h2 { font-size:clamp(2rem,3.2vw,3rem); line-height:1.2; letter-spacing:-.015em; }
h3 { font-size:1.65rem; line-height:1.3; letter-spacing:-.01em; }
p { max-width:62ch; }
p+p { margin-top:1.15em; }
small, label, input, select, .button, .text-link, .sample-note, .note, .status,
.resource p, .fee-row p, .footer p, .footer a, .footer h3 { font-size:1rem; }
.eyebrow { font-size:.875rem; letter-spacing:.09em; margin-bottom:1.4rem; }
.lead { font-size:clamp(1.2rem,1.65vw,1.35rem); line-height:1.6; }
.wrap { width:min(1280px,calc(100% - 112px)); }
.wrap>* { min-width:0; }
.announcement { padding:5px 20px; font-size:.875rem; }
.masthead { min-height:77px; }
nav { font-size:1rem; gap:22px; }
nav a { white-space:normal; }
nav .button { padding:10px 16px; }
.button { min-height:48px; padding:12px 22px; }
.text-link { text-decoration:underline; border:0; text-underline-offset:6px; min-height:44px; }
.actions { gap:18px; }
.hero { grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr); gap:6%; padding-block:72px 84px; align-items:center; }
.hero-copy h1 { max-width:12ch; }
.hero .lead { margin-top:28px; max-width:35ch; }
.hero .actions { margin-top:18px; }
.service-area h2 { font-size:1.9rem; margin-bottom:24px; }
.hero-art { padding:0; gap:18px; align-items:stretch; }
.service-block { height:auto; min-height:0; padding:28px 24px; border:0; justify-content:flex-start; gap:20px; transition:none; }
.service-block:hover { transform:none; }
.service-block:hover .block-action { text-decoration-thickness:2px; }
.service-block:last-child { margin-top:0; }
.service-block .block-label { font-size:1rem; line-height:1.45; min-height:4.35em; }
.service-block .block-word { font-size:clamp(2.3rem,3.3vw,3.2rem); line-height:1.15; letter-spacing:-.025em; }
.block-copy { font-size:1.125rem; line-height:1.65; }
.block-action { font-size:1rem; text-decoration:underline; text-underline-offset:5px; padding-top:4px; margin-top:auto; }
.block-status { font-size:1rem; line-height:1.5; padding-top:14px; border-top:1px solid var(--line); }
.section { padding-block:72px; }
.section+.section { border-top:0; padding-top:30px; }
.home-approach { background:transparent; border-block:1px solid var(--line); }
.split { gap:9%; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:start; }
.split p.lead { margin-top:0; }
.split .text-link { margin-top:20px; }
.section-top { margin-bottom:30px; align-items:start; }
.page-hero { border-bottom:0; padding-block:60px 20px; }
.page-hero h1 { max-width:22ch; font-size:clamp(2.8rem,5vw,4.3rem); }
.page-hero .lead { max-width:52ch; margin-top:22px; }
.page-grid { padding-block:52px 60px; gap:9%; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
.page-grid h2 { max-width:17ch; margin-bottom:22px; }
.support-list li { padding:0 0 28px; border:0; }
.support-list li+li { padding-top:8px; }
.support-list h3 { font-size:1.5rem; margin-bottom:12px; }
.status { border:0; padding:0; line-height:1.6; margin-top:20px; display:block; }
.note { border-left:2px solid var(--rose); background:transparent; padding:12px 0 12px 24px; max-width:72ch; }
.note p+p { margin-top:1em; }
.note strong+p { margin-top:8px; }
.service-row { grid-template-columns:42px minmax(0,1fr) minmax(0,1.35fr); gap:28px; padding-block:34px; }
.service-row h3 { max-width:20ch; }
.index { font-size:1.15rem; }
.prose { max-width:760px; padding-block:36px 70px; }
.prose h2 { font-size:1.85rem; margin:40px 0 18px; }
.resource-grid { gap:40px; }
.resource { border:0; padding:0; }
.resource .eyebrow { text-transform:none; letter-spacing:0; font-size:1rem; }
.resource h3 { font-size:1.65rem; }
.resource .status { margin-top:16px; }
.resource-grid.section { padding-block:40px; }
summary { font-size:1.125rem; padding-block:22px; }
details>p { font-size:1.125rem; line-height:1.65; max-width:65ch; }
.faq { max-width:900px; }
.faq+.note { margin-top:34px; }
.cta-strip { padding-block:40px; }
.cta-strip h2 { font-size:2.1rem; }
.footer-brand { font-size:2.3rem; letter-spacing:-.02em; }
.footer-bottom { font-size:.875rem; }
.booking-head { max-width:860px; padding-block:44px 22px; }
.booking-head h1 { font-size:clamp(2.5rem,4vw,3.6rem); }
.booking-head .lead { font-size:1.2rem; }
.booking-head .eyebrow { margin-bottom:14px; }
.booking-notice { font-size:1rem; max-width:70ch; margin-bottom:28px; }
.booking-layout { display:block; max-width:800px; padding-block:0 72px; scroll-margin-top:105px; }
.booking-panel { min-width:0; }
.booking-panel h2 { font-size:2rem; line-height:1.25; margin-bottom:14px; }
.booking-panel>p { margin-bottom:24px; }
.step-list { gap:20px; font-size:1rem; margin-bottom:30px; }
.step-list li { white-space:normal; padding-bottom:16px; }
.step-list span { font-family:var(--sans); font-size:1rem; margin-right:7px; }
.choice-grid { gap:20px; }
.choice { min-height:165px; gap:18px; padding:24px; border-color:var(--ink); }
.choice[aria-pressed=true] { padding:23px; }
.choice strong { font-size:1.65rem; line-height:1.25; }
.choice span { font-size:1rem; line-height:1.5; }
.booking-summary { border-block:1px solid var(--line); margin:28px 0 30px; }
.booking-summary summary { font-size:1rem; }
.booking-summary dl { margin:0 0 18px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 28px; }
.booking-summary dt { font-size:1rem; }
.booking-summary dd { margin:4px 0 0; font-size:1.125rem; overflow-wrap:anywhere; }
.booking-summary>p { font-size:1rem; }
.flow-actions { margin-top:30px; }
.cal-top h3 { font-size:1.7rem; }
.icon-button { width:48px; height:48px; border-color:var(--ink); }
.calendar { gap:8px; }
.weekday { font-size:1rem; }
.day { min-height:48px; aspect-ratio:auto; font-size:1.125rem; border-color:color-mix(in srgb,var(--ink) 55%,var(--paper)); padding:10px 3px; }
.date-view { display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.view-button { min-height:44px; font-size:1rem; padding:8px 16px; border:1px solid var(--ink); background:transparent; }
.view-button[aria-pressed=true] { background:var(--ink); color:var(--paper); }
.date-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:24px; }
.date-option { min-height:48px; background:transparent; border:1px solid var(--ink); padding:12px 14px; text-align:left; font-size:1rem; }
.date-option[aria-pressed=true] { background:var(--ink); color:var(--paper); }
.slot-group { margin-top:22px; }
.slot-group h3 { font:500 1rem/1.5 var(--sans); margin-bottom:12px; }
.slots { margin-top:0; gap:10px; }
.slot { min-height:48px; padding:10px 16px; font-size:1rem; }
.time-selection { margin-top:28px; }
.field-grid { gap:24px; }
input,select { font-size:1.125rem; }
input,select,[tabindex="-1"] { scroll-margin-top:110px; }
.field-help { font-size:1rem; margin-top:8px; }
.field-error { font-size:1rem; font-weight:600; display:block; margin-top:8px; }
.field-error:empty { display:none; }
[aria-invalid=true] { border-width:2px; }
.review-line { grid-template-columns:130px minmax(0,1fr); padding-block:17px; }
.review-line dt { font-size:1rem; }
.review-line dd { overflow-wrap:anywhere; }
.completion { padding:32px; border:0; }
.completion .button { margin-top:28px; }
.completion h2 { font-size:2.2rem; }
.detail-body { padding:0 0 26px; max-width:68ch; }
.detail-body p { font-size:1.125rem; line-height:1.65; }
.reading-list { padding-left:1.35em; max-width:65ch; margin-block:20px; }
.reading-list li { margin-bottom:16px; padding-left:6px; }
.source-links { font-size:1rem; margin-top:24px; }
.source-links .text-link { display:inline; font-size:inherit; line-height:1.8; }
.resource h2,.process-title { font-size:1.65rem; line-height:1.3; }
.resource h2 { margin-bottom:16px; }
.fee-row h2 { font-size:1.5rem; margin:0 0 12px; }
.fee-row .amount { font-size:1.35rem; white-space:normal; }
.faq { scroll-margin-top:100px; }
.answer { margin-block:18px 32px; }
.answer h3 { font-size:1.3rem; margin-bottom:12px; }
.answer:last-child { margin-bottom:0; }
@media print {
  .header,.footer,.skip,.cta-strip,.flow-actions { display:none; }
  .wrap { width:100%; }
  .page-hero,.section,.prose { padding-block:16px; }
}
@media(max-width:1150px) {
  .wrap { width:calc(100% - 64px); }
  .hero { gap:4%; grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr); }
  .service-block { padding:24px 20px; }
  nav { gap:16px; font-size:.9375rem; }
  nav .button { font-size:.9375rem; }
}
@media(max-width:1000px) {
  .menu-toggle { display:block; border:1px solid var(--ink); background:transparent; padding:9px 15px; font-size:1rem; min-height:44px; }
  nav { display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper); padding:20px 32px; border-bottom:1px solid var(--ink); align-items:stretch; gap:4px; font-size:1rem; max-height:calc(100dvh - 80px); overflow-y:auto; }
  nav[data-open=true] { display:flex; flex-direction:column; }
  nav a { padding:12px; }
  nav .button { font-size:1rem; }
  .hero { grid-template-columns:1fr; gap:44px; padding-block:48px 64px; }
  .hero-copy h1 { max-width:17ch; }
  .hero .lead { max-width:48ch; }
  .service-area { max-width:800px; }
  .service-block .block-label { min-height:0; }
  .service-block .block-word { font-size:2.7rem; }
}
@media(max-width:650px) {
  .wrap { width:calc(100% - 40px); }
  h1 { font-size:clamp(2.75rem,9.5vw,3.5rem); }
  h2 { font-size:2.1rem; }
  .hero { padding-block:36px 48px; gap:34px; }
  .hero-art { grid-template-columns:1fr; gap:18px; }
  .service-block { padding:26px; gap:18px; }
  .service-block:last-child { margin-top:0; }
  .service-area h2 { font-size:1.8rem; }
  .service-block .block-word { font-size:2.5rem; }
  .block-status { padding-top:12px; }
  .split,.page-grid { grid-template-columns:1fr; gap:30px; }
  .section { padding-block:46px; }
  .section+.section { padding-top:20px; }
  .page-hero { padding-block:36px 12px; }
  .page-hero h1 { font-size:clamp(2.4rem,8.3vw,3.1rem); overflow-wrap:break-word; }
  .page-grid { padding-block:34px 40px; }
  .page-grid h2 { max-width:22ch; }
  .service-row { grid-template-columns:24px minmax(0,1fr); gap:12px; }
  .service-row>p:last-child { grid-column:2; }
  .cta-strip .wrap { display:block; }
  .cta-strip h2 { font-size:1.9rem; }
  .resource-grid { gap:30px; }
  .prose { padding-block:28px 48px; }
  .booking-head { padding-block:32px 18px; }
  .booking-head h1 { font-size:2.5rem; }
  .booking-layout { padding-bottom:48px; }
  .booking-panel h2 { font-size:1.9rem; }
  .booking-summary dl { grid-template-columns:1fr; }
  .choice-grid { grid-template-columns:1fr; gap:14px; }
  .choice { min-height:130px; padding:22px; }
  .choice[aria-pressed=true] { padding:21px; }
  .step-list { gap:10px; font-size:.9375rem; }
  .step-list span { display:block; font-size:.9375rem; }
  .calendar { gap:4px; }
  .day { min-height:44px; padding:10px 0; font-size:1rem; }
  .weekday { padding-inline:0; font-size:.875rem; }
  .date-list { grid-template-columns:1fr; }
  .field-grid { grid-template-columns:1fr; }
  .review-line { grid-template-columns:90px minmax(0,1fr); gap:12px; }
  .note { padding:8px 0 8px 18px; }
  .footer-top { gap:28px 20px; }
  .completion { padding:26px; }
}

/* Contact information stays readable at narrow widths and high zoom. */
.contact-email { overflow-wrap:anywhere; }
address { font-style:normal; }
