/* Shared detail pages: the same palette and typography as the approved home. */
.detail-page { background: #fcfbf7; }
.detail-page .header { position: sticky; top: 0; }
.detail-page .mobile-menu:not([hidden]) { position: fixed; max-height: calc(100dvh - 108px); overflow: auto; }
.detail-page main { scroll-margin-top: 120px; }
.page-hero { padding: 32px 7% 64px; background: var(--paper); border-bottom: 1px solid var(--line); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 46px; padding: 0; list-style: none; color: var(--muted); font-size: 10px; }
.breadcrumbs li + li::before { content: "/"; margin-right: 10px; color: #959d90; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 4px; }
.page-hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 8%; }
.page-hero .eyebrow { margin-bottom: 17px; }
.page-hero h1 { font-size: clamp(36px, 3.5vw, 50px); line-height: 1.6; letter-spacing: .08em; overflow-wrap: anywhere; }
.office-title .title-word { display: inline-block; white-space: nowrap; }
.heading-phrase { display: inline-block; white-space: nowrap; }
h1, h2, h3 { text-wrap: balance; line-break: strict; }
.page-lede { font-size: 14px; line-height: 2.1; padding-bottom: 8px; max-width: 520px; }
.page-layout { max-width: 1440px; padding: 65px 7% 80px; margin: auto; display: grid; grid-template-columns: 205px minmax(0, 1fr); gap: 7%; align-items: start; }
.page-aside { position: sticky; top: 138px; max-height: calc(100dvh - 155px); overflow-y: auto; padding-right: 8px; scrollbar-width: thin; }
.toc-label { font-size: 10px; color: var(--gold); letter-spacing: .14em; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.page-toc { display: flex; flex-direction: column; padding-top: 4px; }
.page-toc a { display: flex; align-items: baseline; gap: 13px; padding: 12px 2px; font-size: 12px; line-height: 1.8; border-bottom: 1px solid #e3e5dc; transition: color .2s; }
.page-toc a span { font-family: Georgia, serif; font-size: 10px; color: var(--gold); }
.page-toc a[aria-current="location"] { color: var(--ink); font-weight: 700; border-bottom-color: var(--gold); }
.aside-return { display: inline-flex; font-size: 11px; gap: 15px; margin-top: 26px; padding: 7px 0; }
.page-content { min-width: 0; max-width: 850px; }
.content-section { border-top: 1px solid var(--line); padding: 40px 0 0; margin-bottom: 48px; scroll-margin-top: 140px; }
.content-section:first-child { padding-top: 0; border-top: 0; }
.content-section > h2 { font-size: 27px; line-height: 1.7; margin-bottom: 25px; letter-spacing: .045em; }
.content-section h3 { font-size: 20px; line-height: 1.8; margin: 25px 0 13px; letter-spacing: .025em; }
.content-section p { font-size: 14px; line-height: 2.15; margin: 16px 0; overflow-wrap: anywhere; }
.content-section strong { color: var(--ink); font-weight: 600; }
.content-section a:not(.button):not(.text-link):not(.service-entry):not(.sp-profile-button):not(.field-link) { text-decoration: underline; text-underline-offset: 4px; }
.content-list { padding-left: 1.3em; margin: 20px 0; font-size: 14px; line-height: 2; }
.content-list li { padding-left: 4px; margin: 10px 0; }
.content-list li::marker { color: var(--gold); }
.content-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.content-panel { padding: 23px 25px; background: #f1f2eb; border-top: 1px solid #b8c1ad; }
.content-panel h3, .content-panel > strong { display: block; margin: 0 0 10px; font-size: 17px; color: var(--ink); }
.content-panel p { font-size: 13px; line-height: 2; margin: 0; }
.content-panel p + p { margin-top: 13px; }
.content-note, .content-muted, .sp-muted { color: var(--muted); }
.notice, .content-warning { padding: 20px 25px; border-left: 2px solid var(--gold); background: #f1f0e7; font-size: 13px; line-height: 2; margin: 25px 0; }
.notice p, .content-warning p { font-size: 13px; margin: 5px 0; }
.content-section .button { margin: 15px 15px 8px 0; }
.steps { list-style: none; padding: 0; margin: 25px 0; counter-reset: detail-step; }
.steps > li { position: relative; padding: 0 0 27px 61px; margin: 0 0 27px; border-bottom: 1px solid var(--line); counter-increment: detail-step; }
.steps > li::before { content: counter(detail-step, decimal-leading-zero); position: absolute; left: 0; top: 3px; font-family: Georgia, serif; color: var(--gold); font-size: 23px; line-height: 1.4; }
.steps > li > h3, .steps > li > strong { display: block; font-family: var(--serif); font-size: 20px; line-height: 1.8; font-weight: 500; margin: 0 0 11px; color: var(--ink); }
.steps p { margin: 8px 0; }
.page-faq .faq-list { border-top: 1px solid var(--line); }
.page-faq details { border-bottom: 1px solid var(--line); }
.page-faq summary { padding: 23px 0; gap: 17px; font-size: 14px; line-height: 1.9; }
.page-faq summary::before { content: "Q"; font-family: Georgia, serif; font-size: 20px; color: var(--gold); font-weight: 400; align-self: baseline; }
.page-faq summary::after { content: "+"; margin-left: auto; padding-left: 12px; color: var(--gold); font-size: 23px; font-weight: 400; }
.page-faq details[open] summary::after { content: "−"; }
.page-faq details > p { padding: 0 35px 10px; margin: 0 0 13px; font-size: 14px; }
.page-faq details > p:last-child { padding-bottom: 23px; margin-bottom: 0; }
.faq-search { margin: 5px 0 24px; padding: 22px 24px; background: #f0f2e9; }
.faq-search label { display: block; font-size: 12px; color: var(--ink); margin-bottom: 10px; }
.faq-search input { width: 100%; border: 1px solid #acb7a5; border-radius: 0; background: #fcfbf7; padding: 13px 14px; color: var(--ink); font: inherit; font-size: 13px; }
.faq-search input:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.faq-search small { display: block; font-size: 10px; color: var(--muted); margin-top: 9px; }
.page-faq .faq-empty { padding: 24px 0; font-size: 13px; }
.service-entry { display: flex; flex-direction: column; min-height: 170px; padding: 24px 26px; background: #f1f2eb; border-top: 1px solid #a8b5a2; transition: background .2s; scroll-margin-top: 140px; }
.service-entry:hover { background: #e5eadd; }
.service-entry h3 { margin: 0 0 10px; font-size: 19px; }
.service-entry p { margin: 0; font-size: 12px; line-height: 2; }
.entry-arrow { display: block; align-self: flex-end; color: var(--gold); font-size: 24px; margin-top: auto; padding-top: 8px; }
.profile-person > h2 { font-size: 35px; letter-spacing: .14em; margin-bottom: 7px; }
.content-section .person-meta { font-size: 11px; margin: 0 0 30px; color: var(--muted); }
.profile-facts { margin: 25px 0 35px; border-top: 1px solid var(--line); font-size: 13px; }
.profile-facts > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 25px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.profile-facts dt { color: var(--muted); font-size: 12px; }
.profile-facts dd { margin: 0; line-height: 2; overflow-wrap: anywhere; }
.field-links, .sp-profile-button-grid { display: flex; flex-wrap: wrap; gap: 8px 12px; margin: 20px 0; }
.field-links { padding: 0; list-style: none; }
.field-links li { margin: 0; }
.field-link, .sp-profile-button { display: inline-flex; padding: 9px 14px; border: 1px solid #c4cdba; color: var(--ink); font-size: 12px; line-height: 1.7; background: #f2f4ed; }
.field-link:hover, .sp-profile-button:hover { background: #e5eadd; }
.office-photo { width: 100%; max-height: 520px; object-fit: cover; margin: 25px 0; }
.office-figure { margin: 25px 0; }
.office-figure img { width: 100%; max-height: 520px; object-fit: cover; }
.office-figure figcaption { padding-top: 10px; color: var(--muted); font-size: 11px; }
.page-related { margin: 35px 0 0; padding: 28px 0 0; border-top: 1px solid var(--line); }
.page-related h2 { font-size: 19px; margin-bottom: 18px; }
.related-links { display: flex; gap: 10px 25px; flex-wrap: wrap; }
.related-links a { font-size: 12px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.page-booking { padding: 55px 7%; background: var(--ink); color: #e7eae2; }
.page-booking-inner { max-width: 1240px; margin: auto; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8%; }
.page-booking h2 { color: #f6f3e9; font-size: 28px; margin: 12px 0 18px; }
.page-booking .eyebrow { color: #c9b580; }
.page-booking p { font-size: 12px; line-height: 2; }
.page-booking .booking-call { display: block; font-family: Georgia, serif; font-size: 39px; letter-spacing: .04em; color: #f6f3e9; white-space: nowrap; line-height: 1.6; }
.booking-right { border-left: 1px solid #6b7b6e; padding-left: 40px; }
.page-booking .text-link { color: #f6f3e9; border-color: #aeb99f; margin-top: 14px; }
[hidden] { display: none !important; }
@media (min-width:1500px) { .page-hero, .page-booking { padding-left: max(7%, calc((100vw - 1240px)/2)); padding-right: max(7%, calc((100vw - 1240px)/2)); } }
@media (max-width:1000px) { .page-hero { padding-left: 6%; padding-right: 6%; } .page-hero-grid { gap: 6%; } .page-lede { font-size: 13px; } .page-layout { grid-template-columns: 175px minmax(0,1fr); gap: 5%; padding-left: 6%; padding-right: 6%; } .page-toc a { font-size: 11px; } .content-grid { grid-template-columns: 1fr; } .content-section > h2 { font-size: 25px; } .page-booking .booking-call { font-size: 33px; } .page-booking h2 { font-size: 25px; } }
@media (max-width:700px) {
  .detail-page .mobile-menu:not([hidden]) { top: 85px; max-height: calc(100dvh - 85px); }
  .page-hero { padding: 22px 7% 36px; }
  .breadcrumbs { font-size: 9px; gap: 8px; margin-bottom: 30px; }
  .breadcrumbs li + li::before { margin-right: 8px; }
  .page-hero-grid { display: block; }
  .page-hero h1 { font-size: 33px; line-height: 1.65; letter-spacing: .04em; }
  .office-title .title-divider { display: none; }
  .office-title .title-mobile-line { display: block; }
  .split-page-title .heading-phrase { display: block; }
  .page-hero .eyebrow { font-size: 9px; margin-bottom: 12px; }
  .page-lede { font-size: 13px; line-height: 2.05; margin-top: 22px; padding: 0; }
  .page-layout { display: block; padding: 29px 7% 55px; }
  .page-aside { position: static; max-height: none; overflow: visible; margin-bottom: 39px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
  .toc-label { padding-bottom: 9px; font-size: 9px; border-bottom: 0; }
  .page-toc { flex-direction: row; flex-wrap: wrap; gap: 6px 18px; }
  .page-toc a { font-size: 10px; gap: 6px; padding: 8px 0; border: 0; }
  .page-toc a[aria-current="location"] { border: 0; text-decoration: underline; text-underline-offset: 4px; }
  .page-toc a span { font-size: 9px; }
  .aside-return { display: none; }
  .content-section { padding-top: 30px; margin-bottom: 37px; scroll-margin-top: 107px; }
  .content-section > h2 { font-size: 23px; margin-bottom: 19px; }
  .content-section h3 { font-size: 18px; margin-top: 22px; }
  .content-section p, .content-list { font-size: 13px; line-height: 2.1; }
  .content-list { padding-left: 1.2em; }
  .content-list li { margin: 10px 0; }
  .content-grid { gap: 12px; margin: 20px 0; }
  .content-panel { padding: 20px; }
  .content-panel h3, .content-panel > strong { font-size: 17px; }
  .content-panel p { font-size: 12px; }
  .notice, .content-warning { padding: 17px 19px; font-size: 12px; }
  .steps > li { padding-left: 44px; margin-bottom: 22px; padding-bottom: 22px; }
  .steps > li::before { font-size: 20px; }
  .steps > li > h3, .steps > li > strong { font-size: 18px; }
  .page-faq summary { padding: 21px 0; gap: 11px; font-size: 13px; }
  .page-faq summary::before { font-size: 18px; }
  .page-faq details > p { font-size: 13px; padding-left: 27px; padding-right: 6px; }
  .faq-search { padding: 18px; }
  .faq-search label { font-size: 11px; }
  .faq-search input { font-size: 14px; padding: 12px; }
  .service-entry { padding: 21px; min-height: 155px; scroll-margin-top: 107px; }
  .service-entry h3 { font-size: 18px; }
  .service-entry p { font-size: 12px; }
  .profile-person > h2 { font-size: 31px; }
  .content-section .person-meta { font-size: 10px; margin-bottom: 24px; }
  .profile-facts { font-size: 12px; }
  .profile-facts > div { grid-template-columns: 68px minmax(0,1fr); gap: 17px; padding: 15px 0; }
  .profile-facts dt { font-size: 11px; }
  .field-link, .sp-profile-button { font-size: 11px; padding: 8px 11px; }
  .office-figure img, .office-photo { max-height: 360px; }
  .office-figure figcaption { font-size: 10px; }
  .page-related h2 { font-size: 19px; }
  .related-links { gap: 9px 18px; }
  .related-links a { font-size: 11px; }
  .page-booking { padding: 41px 7%; }
  .page-booking-inner { display: block; }
  .page-booking h2 { font-size: 25px; }
  .page-booking p { font-size: 11px; }
  .booking-right { border-left: 0; padding: 23px 0 0; margin-top: 23px; border-top: 1px solid #6b7b6e; }
  .page-booking .booking-call { font-size: 34px; }
  .page-booking .text-link { font-size: 11px; }
}
@media (max-width:360px) { .page-hero h1 { font-size: 29px; } .page-booking .booking-call { font-size: 29px; } .profile-facts > div { gap: 12px; grid-template-columns: 59px minmax(0,1fr); } }

/* Match the reading size of the former site, with larger main text. */
@media (max-width:700px) {
  .page-hero, .page-layout, .page-booking { padding-left:5%; padding-right:5%; }
  .breadcrumbs { font-size:14px; line-height:1.7; gap:6px; margin-bottom:24px; }
  .page-hero .eyebrow { font-size:12px; }
  .page-lede { font-size:17px; line-height:1.85; }
  .toc-label { font-size:15px; letter-spacing:.04em; }
  .page-toc { display:flex; flex-direction:column; gap:0; }
  .page-toc a { font-size:16px; line-height:1.7; min-height:44px; padding:10px 0; gap:10px; border-bottom:1px solid var(--line); }
  .page-toc a span { font-size:14px; flex:0 0 24px; }
  .page-toc a[aria-current="location"] { border-bottom:1px solid var(--line); }
  .content-section p, .content-section li, .content-list { font-size:17px; line-height:1.85; }
  .content-section h3 { font-size:20px; line-height:1.7; }
  .content-panel { padding:18px; }
  .content-panel p { font-size:17px; line-height:1.85; }
  .notice, .content-warning, .notice p, .content-warning p { font-size:16px; line-height:1.85; }
  .steps>li { padding-left:38px; }
  .steps>li>h3, .steps>li>strong { font-size:20px; line-height:1.7; }
  .page-faq summary { font-size:17px; line-height:1.8; }
  .page-faq details>p { font-size:17px; line-height:1.85; padding-left:27px; padding-right:0; }
  .faq-search { padding:18px; }
  .faq-search label { font-size:15px; }
  .faq-search input { font-size:17px; }
  .faq-search small { font-size:14px; }
  .page-faq .faq-empty { font-size:16px; }
  .service-entry { padding:18px; min-height:0; }
  .service-entry h3 { font-size:20px; line-height:1.7; }
  .service-entry p { font-size:16px; line-height:1.85; }
  .content-section .person-meta { font-size:15px; }
  .profile-facts { font-size:16px; }
  .profile-facts>div { grid-template-columns:minmax(0,1fr); gap:5px; }
  .profile-facts dt { font-size:15px; font-weight:600; }
  .profile-facts dd { font-size:16px; line-height:1.85; }
  .field-link, .sp-profile-button { font-size:16px; min-height:44px; padding:10px 13px; }
  .office-figure figcaption { font-size:14px; }
  .related-links a { font-size:16px; min-height:44px; }
  .page-booking p { font-size:15px; line-height:1.85; }
  .page-booking .text-link { font-size:16px; }
}

/* Keep detailed information comfortable to read on larger screens. */
@media (min-width:701px) {
  .breadcrumbs { font-size:14px; line-height:1.75; }
  .page-lede { font-size:18px; line-height:1.9; }
  .toc-label { font-size:15px; letter-spacing:.05em; }
  .page-toc a { font-size:16px; line-height:1.75; min-height:44px; gap:10px; }
  .page-toc a span { font-size:14px; flex:0 0 22px; }
  .aside-return { font-size:16px; line-height:1.75; gap:12px; max-width:100%; }
  .content-section p, .content-section li, .content-list { font-size:18px; line-height:1.9; }
  .content-panel p { font-size:18px; line-height:1.9; }
  .notice, .content-warning, .notice p, .content-warning p { font-size:16px; line-height:1.9; }
  .page-faq summary { font-size:18px; line-height:1.8; }
  .page-faq details>p { font-size:18px; line-height:1.9; }
  .faq-search label { font-size:16px; }
  .faq-search input { font-size:17px; }
  .faq-search small { font-size:15px; line-height:1.8; }
  .page-faq .faq-empty { font-size:17px; }
  .service-entry p { font-size:17px; line-height:1.9; }
  .content-section .person-meta { font-size:16px; }
  .profile-facts { font-size:17px; }
  .profile-facts dt { font-size:16px; }
  .profile-facts dd { font-size:17px; line-height:1.9; }
  .field-link, .sp-profile-button { font-size:16px; line-height:1.75; min-height:44px; padding:10px 14px; }
  .office-figure figcaption { font-size:14px; line-height:1.8; }
  .related-links a { font-size:17px; line-height:1.75; min-height:44px; }
  .page-booking p { font-size:16px; line-height:1.9; }
  .page-booking .text-link { font-size:17px; }
}
@media (min-width:1001px) {
  .page-layout { grid-template-columns:230px minmax(0,1fr); gap:5%; }
}
