/* Page composition: routes, comparisons, sequences and reference material.
   Shared brand tokens remain in styles/design; these components own their layout. */
.home-sector-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.home-sector-routes > a { display: grid; grid-template-columns: 24px minmax(0, 1fr) 20px; align-items: start; gap: 12px; padding: 22px 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.home-sector-routes b { display: block; font-size: 23px; line-height: 1.3; font-weight: 600; }
.home-sector-routes b + span { display: block; margin-top: 12px; color: var(--muted); font-size: 15px; line-height: 1.65; }
.home-sector-routes .route-number { color: var(--gold); font-size: 13px; padding-top: 5px; }
.home-sector-routes .route-arrow { color: var(--teal-deep); font-size: 24px; }
.home-sector-routes > a:hover b { color: var(--teal-deep); text-decoration: underline; text-underline-offset: 5px; }
.home-app-overview { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 60px; align-items: start; }
.home-app-visual { margin: 0; }
.home-app-visual img { display: block; width: 100%; height: auto; }
.home-app-visual figcaption { margin-top: 14px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.home-app-links { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 28px; }

/* Compact introductions let the page's actual task take the foreground. */
:is(.catalog-hero, .configuration-hero, .document-index-hero, .equipment-card-document .equipment-card-intro, .launch-route-hero) .hero-content { display: block; padding-top: 128px; padding-bottom: 42px; }
:is(.catalog-hero, .configuration-hero, .document-index-hero, .equipment-card-document .equipment-card-intro, .launch-route-hero) .page-hero-copy { max-width: 900px; }
:is(.catalog-hero, .configuration-hero, .document-index-hero, .equipment-card-document .equipment-card-intro, .launch-route-hero) h1 { max-width: 880px; }
:is(.catalog-hero, .configuration-hero, .document-index-hero, .launch-route-hero) .hero-lead { max-width: 790px; }
.package-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 34px; }
.package-overview a { display: block; padding: 20px 0 4px; border-top: 1px solid #577579; color: #fff; text-decoration: none; }
.package-overview a > span { display: block; font-size: 24px; font-weight: 600; }
.package-overview b { display: block; margin-top: 9px; color: #f1cb90; font-size: 15px; }
.package-overview small { display: block; margin-top: 9px; color: #d0dfdf; font-size: 14px; line-height: 1.6; }
.package-overview a:hover > span { text-decoration: underline; text-underline-offset: 5px; }
.configuration-comparison--visual .comparison-criterion { width: 27%; }
.configuration-comparison--visual .configuration-option { padding: 18px 22px; vertical-align: bottom; }
.configuration-option-image { display: block; width: 100%; height: 170px; object-fit: contain; }
.configuration-option-name { display: block; margin-top: 12px; font-size: 26px; line-height: 1.2; }
.configuration-controls { margin-top: 30px; padding-block: 26px; border-block: 1px solid var(--line); }
.configuration-controls h3 { margin: 0 0 12px; font-size: 24px; }
.configuration-controls p { max-width: 850px; color: var(--muted); line-height: 1.7; }
.document-index { margin: 0; padding: 0; list-style: none; counter-reset: document-item; }
.document-index li { display: grid; grid-template-columns: 26px minmax(0, .8fr) minmax(0, 1.2fr) minmax(180px, .8fr); gap: 24px; align-items: start; padding: 24px 0; border-top: 1px solid var(--line); counter-increment: document-item; }
.document-index li::before { content: counter(document-item, decimal-leading-zero); color: var(--gold); font-size: 13px; padding-top: 4px; }
.document-index h3 { margin: 0; font-size: 23px; line-height: 1.3; }
.document-index p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.document-index .text-link { align-self: center; }
.company-facts { display: flex; flex-wrap: wrap; gap: 24px 70px; margin: 0; }
.company-facts dt { color: var(--muted); font-size: 13px; }
.company-facts dd { margin: 8px 0 0; color: var(--ink); font-size: 23px; font-weight: 600; }

/* A connected visit, rather than independent cards. */
.procedure-page .procedure-sequence { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); align-items: start; gap: 36px 70px; }
.procedure-page .procedure-steps { display: block; margin: 0; padding: 0; list-style: none; counter-reset: visit; }
.procedure-page .procedure-steps > li { position: relative; display: block; padding: 0 0 28px 54px; margin: 0; border: 0; border-left: 1px solid #b7cec5; border-radius: 0; background: transparent; box-shadow: none; counter-increment: visit; }
.procedure-page .procedure-steps > li:last-child { border-left-color: transparent; padding-bottom: 0; }
.procedure-page .procedure-steps > li::before { position: absolute; left: -15px; top: 0; display: grid; place-items: center; width: 30px; height: 30px; margin: 0; color: #075b61; background: #edf3ef; content: counter(visit, decimal-leading-zero); font-size: 13px; font-weight: 600; }
.procedure-page .procedure-steps h3 { margin: 0 0 10px; font-size: 22px; }
.procedure-page .procedure-steps p { margin: 0; }
.procedure-page .procedure-sequence .patient-remote-feature { grid-column: 1 / -1; margin-top: 8px; }
.procedure-page .patient-remote-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.procedure-continuation-layout { width: min(var(--container), 100%); margin: 0 auto; padding: 44px 24px; }
.procedure-continuation-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding: 0; margin: 28px 0; list-style: none; }
.procedure-continuation-facts h3 { font-size: 21px; line-height: 1.35; }
.procedure-continuation-facts p { color: var(--muted); font-size: 15px; line-height: 1.7; }

/* Launch is the page's main sequence; the software is one part of it. */
.launch-route-nav { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 32px; }
.launch-route-nav a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: #d5e6e2; text-decoration: none; font-size: 15px; }
.launch-route-nav span { color: #efc88a; font-size: 12px; }
.launch-route-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.implementation-page .flow-business-inner { padding-block: 46px; }
.implementation-page .cooperation-grid { gap: 32px; }
.implementation-page .cooperation-grid article { padding: 20px 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; background: transparent; }
.implementation-page .cooperation-grid article p { font-size: 15px; line-height: 1.7; }
.implementation-page .preparation-layout { padding: 0; border: 0; border-radius: 0; background: transparent; }
.preparation-layout h2 { max-width: 760px; margin-top: 0; }
.preparation-layout > p { max-width: 860px; color: var(--muted); line-height: 1.7; }
.implementation-page .preparation-layout ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 44px; }
.software-role-reference { margin-top: 30px; }
.software-role-detail > summary { justify-content: flex-start; }
.software-role-detail .role-label { flex: 0 0 140px; font-size: 13px; }
.software-role-detail > summary::after { margin-left: auto; }
.software-role-detail .flow-detail-content { max-width: 850px; }
.implementation-page .software-demo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 36px; }
.software-demo .eyebrow, .software-demo h3, .software-demo > p { grid-column: 1; }
.implementation-page .software-demo .software-actions { grid-column: 2; grid-row: 1 / 4; align-self: center; max-width: 260px; margin: 0; }
.implementation-page .after-launch { margin-top: 0; padding-top: 0; border: 0; }
.implementation-page .after-launch-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Each industry uses its own relationship: contributions, care, or club roles. */
.segment-editorial .section-heading { max-width: 820px; }
.segment-role-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px; margin: 28px 0; }
.segment-role-pair > div { border-top: 2px solid #83b9ac; padding-top: 22px; }
.segment-role-pair dt, .segment-club-route dt { color: var(--ink); font-size: 26px; line-height: 1.3; font-weight: 600; }
.segment-role-pair dd, .segment-club-route dd { color: var(--muted); margin: 14px 0 0; font-size: 16px; line-height: 1.75; }
.segment-editorial-aside { max-width: 850px; margin-top: 26px; padding-left: 22px; border-left: 2px solid #83b9ac; }
.segment-editorial-aside h3 { margin-top: 0; font-size: 23px; }
.segment-editorial-aside p { color: var(--muted); line-height: 1.7; }
.segment-visit-flow { max-width: 900px; list-style: none; padding: 0; margin: 0; counter-reset: segment-step; }
.segment-visit-flow li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 8px 22px; padding: 22px 0; border-top: 1px solid var(--line); counter-increment: segment-step; }
.segment-visit-flow li::before { grid-row: 1 / 3; color: var(--gold); font-size: 14px; padding-top: 6px; content: counter(segment-step, decimal-leading-zero); }
.segment-visit-flow h3 { margin: 0; font-size: 23px; }
.segment-visit-flow p { grid-column: 2; margin: 0; color: var(--muted); line-height: 1.75; }
.segment-space-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: 60px; align-items: start; }
.segment-space-layout p { color: var(--muted); line-height: 1.75; }
.segment-space-layout h3 { margin-top: 0; }
.segment-room-conditions { background: #e1ebe5; padding: 26px; }
.segment-room-conditions h3 { font-size: 23px; }
.segment-room-conditions p { margin-bottom: 0; font-size: 15px; }
.segment-care-programme { max-width: 850px; padding-left: 28px; border-left: 2px solid #83b9ac; }
.segment-care-programme h3 { font-size: 25px; }
.segment-care-programme p { color: var(--muted); line-height: 1.75; }
.segment-care-connection { padding-block: 15px; }
.segment-club-offer { max-width: 850px; }
.segment-club-offer p { color: var(--muted); line-height: 1.75; }
.segment-club-route { margin: 0; }
.segment-club-route > div { display: grid; grid-template-columns: minmax(150px, .6fr) minmax(0, 1.4fr); gap: 36px; padding: 26px 0; border-top: 1px solid var(--line); }
.segment-club-route dd { margin-top: 0; }
.segment-offer-summary { margin: 0 0 25px; }
.segment-offer-summary > div { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); gap: 36px; padding: 22px 0; border-top: 1px solid var(--line); }
.segment-offer-summary dt { color: var(--ink); font-size: 21px; line-height: 1.4; font-weight: 600; }
.segment-offer-summary dd { margin: 0; color: var(--muted); line-height: 1.75; }
.segment-supporting-positions > summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 56px; cursor: pointer; list-style: none; }
.segment-supporting-positions > summary::-webkit-details-marker { display: none; }
.segment-supporting-positions > summary::after { content: '+'; font-size: 28px; color: #075b61; }
.segment-supporting-positions[open] > summary::after { content: '−'; }
.segment-supporting-positions h2 { margin: 0; font-size: 25px; }
.segment-supporting-positions > p { color: var(--muted); line-height: 1.7; }
.segment-supporting-positions .segment-positions-grid { margin-top: 26px; }

/* Help stays next to the related task and remains available without JavaScript. */
.plan-inline-help { clear: both; margin-top: 22px; border-block: 1px solid var(--line); }
.plan-inline-help > summary, .plan-guest-resource > summary { min-height: 48px; padding-block: 16px; color: #075b61; font-size: 19px; line-height: 1.4; font-weight: 600; cursor: pointer; }
.plan-inline-help > .section-heading { margin-top: 20px; }
.plan-inline-help .placement-layout { gap: 28px; }
.plan-inline-help .placement-questions dt { font-size: 18px; }
.plan-inline-help > .text-link { margin-block: 16px; }
.plan-guest-resource > summary { font-size: 25px; }
.plan-guest-resource > .section-heading { margin-top: 24px; }
.anatomy-control-group { border-block: 1px solid var(--anatomy-line); }
.anatomy-control-group > summary { padding-block: 14px; color: var(--anatomy-cyan); font-size: 15px; font-weight: 600; line-height: 1.4; cursor: pointer; }
.anatomy-control-group[open] > :not(summary) { margin-top: 16px; }
.anatomy-control-group .anatomy-layer-list { margin-bottom: 16px; }
.anatomy-page .anatomy-reference { display: block; width: 100%; max-width: none; margin: 0; padding: 24px max(var(--section-gutter), calc((100% - var(--container)) / 2 + var(--section-gutter))); background: transparent; }
.anatomy-reference > summary { grid-column: 1 / -1; color: var(--anatomy-cyan); font-size: 22px; font-weight: 600; cursor: pointer; }
.anatomy-page .anatomy-reference[open] { display: grid; }
.anatomy-reference[open] > article { padding-top: 18px; }
.legal-return { display: flex; flex-wrap: wrap; gap: 12px 30px; margin: 0 auto 44px; max-width: 1160px; padding-inline: 24px; }
.legal-return a { display: inline-flex; align-items: center; min-height: 44px; color: #075b61; }
.legal-page .header-action { background: transparent; color: #d7e5e1; border: 1px solid #547074; box-shadow: none; }

@media (max-width: 1000px) {
  .home-app-overview { grid-template-columns: 190px minmax(0, 1fr); gap: 32px; }
  .document-index li { grid-template-columns: 24px minmax(0, 1fr) minmax(0, 1fr); gap: 14px 22px; }
  .document-index .text-link { grid-column: 2 / -1; }
}
@media (max-width: 780px) {
  :is(.catalog-hero, .configuration-hero, .document-index-hero, .equipment-card-document .equipment-card-intro, .launch-route-hero) .hero-content { padding: 100px 22px 32px; }
  .home-sector-routes { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .home-sector-routes > a { padding-block: 20px; }
  .home-sector-routes b { font-size: 22px; }
  .home-sector-routes b + span { margin-top: 8px; }
  .home-app-overview { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .home-app-visual { max-width: 160px; margin-inline: auto; }
  .home-app-visual figcaption { text-align: center; }
  .package-overview { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 24px; }
  .package-overview a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; padding: 16px 0; }
  .package-overview a > span { font-size: 21px; }
  .package-overview b { margin-top: 3px; font-size: 14px; }
  .package-overview small { grid-column: 1 / -1; margin-top: 0; }
  .configuration-comparison--visual .configuration-option { padding: 14px 10px; }
  .configuration-option-image { height: 100px; }
  .configuration-option-name { font-size: 21px; }
  .procedure-page .procedure-sequence { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .procedure-page .procedure-steps { margin-left: 14px; }
  .procedure-page .procedure-steps > li { padding-left: 35px; }
  .procedure-page .procedure-steps h3 { font-size: 21px; }
  .procedure-continuation-facts { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .procedure-continuation-layout { padding: 40px 22px; }
  .implementation-page .preparation-layout ol, .implementation-page .after-launch-steps { grid-template-columns: minmax(0, 1fr); }
  .implementation-page .software-demo { display: block; }
  .implementation-page .software-demo .software-actions { margin-top: 22px; max-width: none; }
  .software-role-detail .role-label { flex-basis: 110px; }
  .segment-role-pair, .segment-space-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .segment-role-pair dt, .segment-club-route dt { font-size: 23px; }
  .segment-club-route > div, .segment-offer-summary > div { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .segment-visit-flow li { gap: 8px 15px; }
  .segment-supporting-positions h2 { font-size: 23px; }
  .segment-room-conditions { padding: 22px; }
  .segment-care-programme { padding-left: 20px; }
  .anatomy-reference[open] { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .document-index li { grid-template-columns: 24px minmax(0, 1fr); gap: 10px 14px; }
  .document-index p, .document-index .text-link { grid-column: 2; }
  .software-role-detail > summary { flex-wrap: wrap; gap: 6px 12px; position: relative; padding-right: 30px; }
  .software-role-detail .role-label { flex-basis: 100%; }
  .software-role-detail > summary::after { position: absolute; right: 0; top: 24px; }
  .configuration-option-image { height: 76px; }
  .configuration-option-name { font-size: 17px; }
  .configuration-comparison--visual .comparison-criterion { width: 28%; }
  .configuration-comparison--visual th, .configuration-comparison--visual td { padding: 13px 9px; font-size: 13px; }
  .configuration-comparison--visual tbody th { font-size: 12px; }
}
@media screen {
  .implementation-page .software-section { width: 100%; max-width: none; background: #edf3ef; padding-inline: max(var(--section-gutter), calc((100% - var(--container)) / 2 + var(--section-gutter))); }
  .documents-page main > .section { padding-block: 40px; }
  .equipment-card-document .equipment-card-intro .hero-content { padding-bottom: 30px; }
  .equipment-card-document .equipment-card-intro h1 { font-size: clamp(32px, 3.5vw, 44px); }
  .equipment-card-document .equipment-card-intro .small-note { margin-block: 12px; padding: 0; border: 0; background: transparent; color: #d0dfdc; box-shadow: none; }
  .equipment-sheet { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 50px; max-width: var(--container); margin-inline: auto; padding: 15px 24px 36px; }
  .equipment-card-document .equipment-sheet > .section { width: 100%; margin: 0; padding: 30px 0; min-width: 0; }
  .equipment-card-document .equipment-sheet > :is([aria-labelledby="cardSpecificationsHeading"], [aria-labelledby="cardRoomHeading"], .equipment-card-contacts) { grid-column: 1 / -1; }
  .equipment-card-document .equipment-card-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .equipment-card-document .equipment-card-item { padding: 16px 20px; }
  .equipment-card-document .equipment-sheet > .equipment-card-contacts { padding: 26px; }
  .equipment-card-document .equipment-sheet h2 { font-size: 29px; line-height: 1.25; }
  .equipment-card-document .section-heading { margin-bottom: 22px; }
  .segment-positions:has(.segment-supporting-positions) { padding-block: 28px; }
  .anatomy-page main > .demo-section { width: 100%; max-width: none; margin: 0; border: 0; border-radius: 0; padding: 42px max(var(--section-gutter), calc((100% - var(--container)) / 2 + var(--section-gutter))); }
}
@media screen and (max-width: 780px) {
  .equipment-sheet { grid-template-columns: minmax(0, 1fr); padding-inline: 22px; }
  .equipment-card-document .equipment-sheet > .section { padding-block: 26px; }
  .equipment-card-document .equipment-sheet h2 { font-size: 26px; }
}
@media print {
  .legal-return, .plan-inline-help, .plan-guest-resource { display: none !important; }
  .equipment-card-document .equipment-card-intro .hero-content { padding: 0 0 4mm; }
}
