/* Shared styles for service detail pages and their home-page links. */
.service-detail-link { display:inline-flex; align-items:center; gap:10px; margin-top:12px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.5); color:#f1d4c2; font-size:13px; font-weight:600; }
.service-detail-link:hover { color:white; }
.online-service-note { display:flex; justify-content:space-between; align-items:center; gap:36px; padding:38px 0 0; }
.online-service-note h3 { margin-bottom:8px; font:500 26px var(--serif); }
.online-service-note p { max-width:650px; margin:0; color:rgba(255,255,255,.76); font-size:15px; }
.online-service-note .button { flex-shrink:0; }
.service-page :focus-visible, .service-detail-link:focus-visible, .online-service-note a:focus-visible { outline:3px solid var(--terracotta); outline-offset:5px; }
.service-page p { color:#526057; font-size:16px; }
.service-hero { padding:126px 0 0; }
.breadcrumb { margin-bottom:42px; font-size:12px; color:#58645c; }
.breadcrumb ol { display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; list-style:none; }
.breadcrumb li + li::before { content:"/"; margin-right:10px; color:#8b968a; }
.breadcrumb a { text-decoration:underline; text-underline-offset:4px; }
.service-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:64px; align-items:center; padding-bottom:60px; }
.service-page .eyebrow { font-size:11px; color:#596b59; }
.service-page h1 { max-width:800px; margin-bottom:27px; font-size:clamp(44px,4.5vw,65px); line-height:1.13; }
.service-page h1 em, .service-page h2 em { color:#a95e3d; }
.service-page .service-lead { max-width:720px; font-size:17px; line-height:1.85; margin-bottom:28px; }
.button-consultation { color:white; background:var(--forest); }
.button-consultation:hover { background:var(--forest-dark); }
.button .arrow-up-right { fill:none; stroke:currentColor; }
.service-overview { background:var(--forest-dark); color:white; padding:32px; border-radius:3px 3px 48px 3px; }
.service-page .service-overview .eyebrow, .service-page .service-appointment .eyebrow { color:#e2b89c; }
.service-overview dl { margin:0; }
.service-overview dl > div { padding:18px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.service-overview dt { color:#c4cebf; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.service-overview dd { margin:7px 0 0; font-size:15px; line-height:1.6; }
.service-provider { display:flex; gap:15px; align-items:center; margin-top:28px; }
.service-provider img { width:64px; height:64px; object-fit:cover; object-position:60% 40%; border-radius:50%; }
.service-provider strong, .service-provider span, .service-provider a { display:block; }
.service-provider strong { font:500 19px var(--serif); }
.service-provider span { color:#c4cebf; font-size:12px; }
.service-provider a { width:max-content; margin-top:8px; color:#ebc7ae; font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.service-provider .arrow-up-right { vertical-align:middle; width:12px; height:12px; }
.service-jump-links { display:flex; flex-wrap:wrap; gap:16px 34px; padding:22px 0; border-top:1px solid var(--line); font-size:13px; font-weight:500; }
.service-jump-links a { padding:6px 0; text-decoration:underline; text-decoration-color:var(--sand); text-underline-offset:6px; }
.service-jump-links a:hover { text-decoration-color:var(--terracotta); }
.service-section { padding:90px 0; }
.service-paper { background:var(--paper); }
.service-page h2 { font-size:clamp(34px,3.5vw,47px); }
.service-two-columns { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.service-checklist { margin:0; padding:0; list-style:none; }
.service-checklist li { padding:20px 0 20px 30px; position:relative; border-bottom:1px solid var(--line); font-size:16px; }
.service-checklist li:first-child { border-top:1px solid var(--line); }
.service-checklist li::before { content:"↗"; position:absolute; top:19px; left:0; color:#9b573c; }
.service-content-layout { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); }
.scope-item { margin-top:30px; padding-top:27px; border-top:1px solid var(--line); }
.scope-item h3 { font:600 25px/1.3 var(--serif); margin-bottom:13px; }
.scope-item p { margin-bottom:0; }
.service-preparation { position:sticky; top:115px; background:var(--sage-soft); padding:35px; }
.preparation-mark { display:block; color:var(--forest); font-size:32px; margin-bottom:17px; }
.service-preparation h3 { font:600 28px/1.3 var(--serif); margin-bottom:14px; }
.service-preparation ul { margin:22px 0; padding-left:18px; }
.service-preparation li { margin-bottom:17px; padding-left:6px; font-size:15px; }
.clinical-note { border-left:3px solid var(--terracotta); padding:2px 0 2px 22px; margin-top:36px; }
.service-page .clinical-note p { font-size:14px; }
.service-section-heading { margin-bottom:45px; }
.service-process { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:40px 60px; margin:0; padding:0; }
.service-process li { display:grid; grid-template-columns:48px minmax(0,1fr); gap:22px; padding-top:24px; border-top:1px solid var(--line); }
.process-number { color:#a95e3d; font:italic 500 30px/1.2 var(--serif); }
.service-process h3 { font:600 24px/1.3 var(--serif); margin-bottom:12px; }
.service-process p { margin:0; }
.service-faq-layout { grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:80px; }
.service-faq { border-top:1px solid var(--line); }
.service-faq:last-child { border-bottom:1px solid var(--line); }
.service-faq summary { list-style:none; display:flex; justify-content:space-between; align-items:flex-start; gap:22px; padding:23px 0; cursor:pointer; font:500 20px/1.5 var(--serif); }
.service-faq summary::-webkit-details-marker { display:none; }
.service-faq .faq-question { flex:1; min-width:0; }
.service-faq .faq-toggle { display:inline-grid; place-items:center; width:24px; height:24px; margin-top:3px; color:#a95e3d; flex:0 0 24px; font:400 24px/1 var(--sans); }
.service-faq[open] .faq-toggle { transform:rotate(45deg); }
.service-faq p { padding-right:25px; margin:0 0 24px; line-height:1.8; }
.service-appointment { background:var(--forest); color:white; }
.service-appointment-inner { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:80px; align-items:center; }
.service-page .service-appointment p { color:#d5ddd2; max-width:650px; }
.service-appointment-actions { display:flex; flex-direction:column; gap:20px; align-items:flex-start; }
.service-phone { font-size:21px; text-decoration:underline; text-underline-offset:6px; }
.service-appointment-actions > span { color:#d5ddd2; font-size:13px; }
.service-related { padding:65px 0; }
.service-related h2 { font-size:29px; margin-bottom:30px; }
.service-related nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.service-related a { display:flex; gap:20px; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding:20px 0; font:500 20px/1.4 var(--serif); }
.service-related a:hover { color:#a95e3d; }
.service-footer-top { display:flex; justify-content:space-between; gap:60px; align-items:start; padding-bottom:35px; }
.service-footer-top nav { max-width:650px; display:flex; flex-wrap:wrap; gap:15px 25px; justify-content:flex-end; font-size:12px; }
.service-footer-top nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:4px; }
.service-page .footer-bottom p { font-size:11px; }
@media (max-width:980px) {
  .service-hero-grid { grid-template-columns:minmax(0,1fr) 290px; gap:35px; }
  .service-two-columns, .service-faq-layout { gap:45px; }
  .service-overview, .service-preparation { padding:26px; }
  .service-appointment-inner { gap:40px; }
}
@media (max-width:780px) {
  .online-service-note { flex-direction:column; align-items:flex-start; gap:22px; }
  .service-hero { padding-top:100px; }
  .breadcrumb { margin-bottom:30px; }
  .service-hero-grid, .service-two-columns, .service-appointment-inner { grid-template-columns:minmax(0,1fr); gap:35px; }
  .service-hero-grid { padding-bottom:32px; }
  .service-page h1 { font-size:clamp(38px,7vw,56px); }
  .service-page .service-lead { font-size:16px; }
  .service-overview { border-radius:3px 3px 32px 3px; }
  .service-overview dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .service-overview dd { font-size:14px; }
  .service-overview dl > div { padding-top:0; padding-bottom:20px; }
  .service-provider { margin-top:22px; }
  .service-jump-links { gap:8px 22px; font-size:12px; }
  .service-section { padding:65px 0; }
  .service-preparation { position:static; }
  .service-process { gap:30px; }
  .service-process li { grid-template-columns:34px minmax(0,1fr); gap:12px; }
  .service-related nav { grid-template-columns:minmax(0,1fr); gap:0; }
  .service-related a { font-size:22px; }
  .service-footer-top { flex-direction:column; gap:30px; }
  .service-footer-top nav { justify-content:flex-start; font-size:14px; }
}
@media (max-width:520px) {
  .service-page h1 { font-size:clamp(34px,9.3vw,44px); overflow-wrap:break-word; }
  .service-page h2 { font-size:34px; }
  .service-page .eyebrow { font-size:10px; letter-spacing:.09em; }
  .service-overview dl { grid-template-columns:minmax(0,1fr); gap:0; }
  .service-overview dl > div { padding:13px 0; }
  .service-overview dd { font-size:15px; }
  .service-process { grid-template-columns:minmax(0,1fr); }
  .service-page .button { width:100%; padding:17px 18px; text-align:center; }
  .service-appointment-actions { align-items:stretch; }
  .service-faq summary { font-size:20px; }
  .service-faq p { padding-right:0; }
  .service-jump-links { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
  .online-service-note .button { width:100%; }
}
