/* Shared interaction states. Page styles own layout and illustration only. */
/* Shared design tokens: navy for structure, blue for links and accents, the light tint only for
   selected or personalised content, and one content width and gutter for every template. */
:root { --ksl-navy: #102d43;--ksl-blue: #2464a0;--ksl-text: #344653;--ksl-muted: #60717d;--ksl-tint: #eef4fa;--ksl-line: #dce3e8;--ksl-max: 1280px;--ksl-gutter: clamp(20px, 4vw, 48px);--ksl-radius-sm: 6px;--ksl-radius-lg: 10px;--ksl-section: 104px;--ksl-control-h: 52px; }
@media (max-width: 768px) { :root { --ksl-section: 64px; } }
:root { --ksl-anchor-offset: 104px;--ksl-state-ink: #102d43;--ksl-state-accent: #2464a0;--ksl-state-error: #a13329;--ksl-state-success: #236344;--ksl-state-line: #ccdceb;--ksl-state-selected: var(--ksl-tint); }
/* Entrance durations are separate from the controls that drive the page. */
:root { --ksl-motion-hero: 600ms;--ksl-motion-section: 420ms;--ksl-motion-panel: 220ms;--ksl-motion-question: 220ms;--ksl-motion-accordion: 260ms;--ksl-motion-progress: 280ms; }
body[class] [hidden] { display: none !important; }
body[class] main[id], body[class] main [id] { scroll-margin-top: var(--ksl-anchor-offset);scroll-margin-bottom: calc(var(--ksl-fixed-bottom-h, 0px) + 24px); }
body[class] :is(main,.site-header,.site-footer,.fixed-cta-bar,.desktop-consult-bar) :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid #78adf4;outline-offset: 4px; }
body[class] main [data-ui-disclosure-panel]:not([hidden]) { display: block !important;max-height: none !important;opacity: 1 !important; }
body[class] [data-ui-tabs] [data-ui-selected=true] { border-color: var(--ksl-state-accent); }
body[class] [data-ui-tabs=navigation] [data-ui-selected=true] { background: var(--ksl-state-selected);color: var(--ksl-state-ink);font-weight: 700; }
body[class] main [aria-invalid=true] { border-color: var(--ksl-state-error) !important; }
body[class] :is(.ksl-field-error,.dg-field-error,.selfcheck-error) { margin: 6px 0 0;color: var(--ksl-state-error);font-size: 14px;line-height: 1.6; }
/* State colors take precedence over the older, more specific page palettes. */
body[class] .ksl-status[data-ui-state=error] { color: var(--ksl-state-error) !important;border-color: #d9aaa4 !important;background: #fff4f2 !important; }
body[class] .ksl-status[data-ui-state=success] { color: var(--ksl-state-success) !important;border-color: #b8d8c7 !important;background: #f2faf5 !important; }
body[class] .ksl-status[data-ui-state=loading] { display: flex;align-items: center;gap: 10px;color: var(--ksl-state-ink) !important;border-color: var(--ksl-state-line) !important;background: var(--ksl-state-selected) !important; }
body[class] .ksl-status[data-ui-state=loading]::before { content: "";flex: none;width: 16px;height: 16px;border: 2px solid currentColor;border-right-color: transparent;border-radius: 50%;animation: kslStatusSpin 800ms linear infinite; }
@keyframes kslStatusSpin { to { transform: rotate(1turn); } }
body[class] .ksl-status:is([data-ui-state=error],[data-ui-state=success],[data-ui-state=loading]) { padding: 12px 14px;border-width: 1px;border-style: solid;border-radius: 4px;overflow-wrap: anywhere;white-space: pre-line; }
body[class] [data-ui-form][aria-busy=true] [type=submit] { cursor: wait;opacity: .7; }
body[class] [data-ui-privacy] { flex-wrap: wrap; }
body[class] [data-ui-privacy] > .ksl-field-error { flex-basis: 100%;grid-column: 1 / -1; }
body[class] [data-ui-selected=true] input[type=checkbox], body[class] [data-ui-form] :is(input[type=checkbox],input[type=radio]) { accent-color: var(--ksl-state-accent); }
body[class] main :is(.sr-option,.rr-quick-options label,.dg-options label,.dg-doc-groups label,.select-card,.cr-category) { transition: background-color var(--ksl-motion,150ms) ease, border-color var(--ksl-motion,150ms) ease, color var(--ksl-motion,150ms) ease; }
body[class] main :is(#questionProgressBar,[data-rr-question-fill],[data-doc-progress-fill],.dg-budget-bar i) { transition: width var(--ksl-motion-progress) ease-out; }
@media (prefers-reduced-motion: reduce) {
  [data-ui-tabs] *, [data-ui-disclosure-panel], .ksl-status, .ksl-status::before { animation: none !important;transition: none !important; }
}
/* The same independent-guide list is rendered by all three service templates. */
.ksl-service-guides ul { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.ksl-service-guides li { padding: 1.25rem 0; border-top: 1px solid var(--line, #dce2e6); }
.ksl-service-guides h3 { margin: 0 0 .5rem; font-size: 1.125rem; }
.ksl-service-guides p { margin: 0; line-height: 1.7; }

/* A linked FAQ remains separate from the visitor's own message. */
body[class] .ksl-faq-context { display: grid;gap: 8px;padding: 16px;border: 1px solid #b9c6d1;border-left: 3px solid #2464a0;border-radius: 4px;background: #f7f7f5; }
body[class] .ksl-faq-context p { margin: 0;font-size: 13px;color: #60717d; }
body[class] .ksl-faq-context strong { font-size: 15px;line-height: 1.7;overflow-wrap: anywhere; }
body[class] .ksl-faq-context button { width: fit-content;min-height: 44px;padding: 8px 0;border: 0;background: transparent;color: #2464a0;font-size: 14px;text-decoration: underline;text-underline-offset: 4px; }

/* Title scale: the home page title and every inner page title use one size each, whatever the template. */
body[class] main h1 { font-size: clamp(30px, 3.2vw, 42px) !important;line-height: 1.36 !important; }
body.ksl-page-index main h1 { font-size: clamp(40px, 4vw, 54px) !important; }
@media (max-width: 768px) {
  body[class] main h1 { font-size: 30px !important; }
  body.ksl-page-index main h1 { font-size: 32px !important; }
}
@media (max-width: 360px) {
  body[class]:not(.ksl-page-index) main h1 { font-size: 28px !important; }
}

/* Practice pages: PC reads one left sidebar (practice areas + this page's sections); mobile reads one
   horizontal contents row. The two never show together. */
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-layout { grid-template-columns: 200px minmax(0, 1fr);gap: 48px; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-sidebar { max-height: calc(100dvh - var(--header-h) - 40px);overflow-y: auto;overscroll-behavior: contain;scrollbar-width: thin; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-sidebar .rr-section-nav { margin-top: 26px;padding-top: 4px; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-section-nav p { margin: 0 0 6px;color: var(--ksl-muted);font-size: 13px;font-weight: 700;letter-spacing: .02em; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-sidebar .rr-section-nav a { position: relative;min-height: 40px;padding: 9px 0 9px 14px;border-bottom: 0;color: var(--ksl-text);font-size: 15px;line-height: 1.45; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-sidebar .rr-section-nav a::before { content: "";position: absolute;left: 0;top: 8px;bottom: 8px;width: 2px;border-radius: 2px;background: var(--ksl-line); }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-sidebar .rr-section-nav a:hover { color: var(--ksl-blue); }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-sidebar .rr-section-nav a[aria-current=location] { color: var(--ksl-navy);font-weight: 700; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-sidebar .rr-section-nav a[aria-current=location]::before { background: var(--ksl-blue); }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > .sv-jump { display: none; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > section:not(.rr-hero):not(#sec-hero) { padding-block: 88px; }
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > section:not(.rr-hero):not(#sec-hero) + section { border-top: 1px solid var(--ksl-line); }
@media (max-width: 992px) {
  body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > .sv-jump { position: sticky;top: calc(var(--header-h) + var(--ksl-admin-offset, 0px));z-index: 5;display: flex;flex-wrap: nowrap;gap: 4px;margin: 0 calc(-1 * var(--ksl-gutter)) 8px;padding: 6px var(--ksl-gutter);overflow-x: auto;border-block: 1px solid var(--ksl-line);background: #fff;scrollbar-width: none; }
  body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > .sv-jump::-webkit-scrollbar { display: none; }
  body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > .sv-jump a { flex: none;display: inline-flex;align-items: center;min-height: 44px;padding: 0 12px;border-radius: 6px;color: var(--ksl-text);font-size: 15px;white-space: nowrap; }
  body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > .sv-jump a[aria-current=location] { background: var(--ksl-tint);color: var(--ksl-navy);font-weight: 700; }
  body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-content > section:not(.rr-hero):not(#sec-hero) { padding-block: 56px; }
}
body:is(.ksl-page-rehab,.ksl-page-pasan,.ksl-page-corp) main.rr-page .rr-actions .rr-hero-booking { margin-top: 0;padding-inline: 4px;font-size: 15px; }

/* Explanatory flow figure in practice-page introductions (ksl_render_flow_graphic). */
body:is(.ksl-page-rehab,.ksl-page-pasan) main.rr-page .rr-hero:has(.ksl-flow-graphic) { grid-template-columns: minmax(0, 1.15fr) minmax(280px, 1fr);align-items: center;gap: 48px; }
body[class] main .ksl-flow-graphic { margin: 0;padding: 28px 28px 24px;border: 1px solid var(--ksl-line);border-radius: var(--ksl-radius-lg);background: #fff; }
body[class] main .ksl-flow-graphic figcaption { margin-bottom: 18px;color: var(--ksl-blue);font-size: 14px;font-weight: 700; }
body[class] main .ksl-flow-graphic ol { position: relative;display: grid;gap: 22px;margin: 0;padding: 0;list-style: none; }
body[class] main .ksl-flow-graphic ol::before { content: "";position: absolute;left: 17px;top: 18px;bottom: 18px;width: 2px;background: var(--ksl-line); }
body[class] main .ksl-flow-graphic li { position: relative;display: grid;grid-template-columns: 36px minmax(0, 1fr);gap: 16px;align-items: start; }
body[class] main .ksl-flow-graphic .ksl-flow-number { display: grid;place-items: center;width: 36px;height: 36px;border: 2px solid var(--ksl-navy);border-radius: 50%;background: #fff;color: var(--ksl-navy);font-size: 15px;font-weight: 800; }
body[class] main .ksl-flow-graphic li:last-child .ksl-flow-number { background: var(--ksl-navy);color: #fff; }
body[class] main .ksl-flow-graphic strong { display: block;color: var(--ksl-navy);font-size: 17px;line-height: 1.5; }
body[class] main .ksl-flow-graphic p { margin: 4px 0 0;color: var(--ksl-muted);font-size: 15px;line-height: 1.65; }
@media (max-width: 1199px) {
  body:is(.ksl-page-rehab,.ksl-page-pasan) main.rr-page .rr-hero:has(.ksl-flow-graphic) { grid-template-columns: minmax(0, 1fr);gap: 28px; }
}
@media (max-width: 768px) {
  body[class] main .ksl-flow-graphic { padding: 20px 18px; }
  body[class] main .ksl-flow-graphic ol { gap: 16px; }
}

/* Titles wrap into balanced lines; on phones the desktop line breaks are dropped so no single syllable hangs alone. */
body[class] main h1 { text-wrap: balance; }
@media (max-width: 768px) {
  body:not(.ksl-page-index) main h1 br { display: none; }
}
