.kc-welcome {
    color: #102940;
    background: #f8f4ec;
    border-bottom: 1px solid #e5e1d8;
}
.kc-welcome .crumb {
    margin: 0;
    padding-top: clamp(19px, 2.4vw, 34px);
    color: #526477;
}
.kc-welcome .crumb a { text-decoration: none; }
.kc-welcome .crumb a:hover { text-decoration: underline; }
.kc-opening {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    align-items: center;
    gap: clamp(35px, 5.2vw, 86px);
    padding-block: clamp(35px, 3.6vw, 62px) clamp(55px, 5.4vw, 92px);
}
.kc-eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: clamp(16px, 1.8vw, 26px);
    color: #315974;
    font: 750 12px/1.4 Inter, Arial, sans-serif;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.kc-eyebrow::before { content: ""; width: 30px; height: 2px; background: #bf9242; }
.kc-intro h1 {
    max-width: 14ch;
    font-size: clamp(47px, 5.4vw, 86px);
    font-weight: 730;
    letter-spacing: -.065em;
    line-height: 1.02;
    text-wrap: balance;
    overflow-wrap: break-word;
}
.kc-lead {
    max-width: 49ch;
    margin-top: clamp(17px, 1.9vw, 27px);
    color: #405768;
    font-size: clamp(17px, 1.32vw, 21px);
    line-height: 1.65;
}
.kc-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 13px 26px; margin-top: 28px; }
.kc-actions .kc-primary {
    min-height: 50px;
    gap: 20px;
    padding-inline: 23px;
    background: #f2ce7a;
    color: #112941;
    border: 1px solid #e7bb5b;
    border-radius: 3px;
}
.kc-actions .kc-primary:hover { background: #f8d98b; border-color: #c79e4c; }
.kc-call {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-block: 11px;
    font-size: 15px;
    font-weight: 740;
    color: #244961;
}
.kc-call span { text-decoration: underline; text-decoration-color: #98a8ad; text-underline-offset: 5px; }
.kc-call:hover span { text-decoration-color: currentColor; }
.kc-scene { position: relative; isolation: isolate; margin-right: 10px; }
.kc-scene::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 12px -10px -10px 16px;
    border: 1px solid #c3a05a;
    border-radius: 4px;
}
.kc-scene img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
    object-position: 59% center;
    border-radius: 4px;
}
.kc-directory {
    display: grid;
    grid-template-columns: minmax(0, .86fr) minmax(0, 1fr);
    gap: clamp(40px, 8vw, 145px);
    align-items: start;
    padding-block: clamp(54px, 5.4vw, 92px) clamp(65px, 6.5vw, 108px);
}
.kc-directory h2 {
    color: #102940;
    font-size: clamp(32px, 3.1vw, 49px);
    line-height: 1.08;
    letter-spacing: -.055em;
}
.kc-people > h2 { margin-bottom: clamp(22px, 2.3vw, 34px); }
.kc-person {
    display: grid;
    grid-template-columns: clamp(72px, 6.3vw, 95px) minmax(0, 1fr);
    align-items: start;
    gap: clamp(17px, 1.8vw, 27px);
    padding: clamp(21px, 2.2vw, 32px) 0;
    border-top: 1px solid #d9dfdf;
}
.kc-person img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; object-position: center 26%; border-radius: 3px; }
.kc-person h3, .kc-office h3 { margin: 0; color: #112b43; font-size: clamp(21px, 1.9vw, 30px); line-height: 1.2; letter-spacing: -.04em; }
.kc-role { margin-top: 4px; color: #4a6070; font-size: 15px; line-height: 1.5; }
.kc-links { display: flex; align-items: start; flex-direction: column; gap: 2px; margin-top: 10px; }
.kc-links a, .kc-office a { color: #264e6b; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #b9c6cb; overflow-wrap: anywhere; }
.kc-links a:hover, .kc-office a:hover { text-decoration-color: currentColor; }
.kc-links .kc-tel { color: #132e48; font: 700 clamp(19px, 1.55vw, 24px)/1.5 Inter, Arial, sans-serif; text-decoration: none; letter-spacing: -.035em; }
.kc-links .kc-tel:hover { text-decoration: underline; }
.kc-links a:not(.kc-tel), .kc-office-links a { font-size: 15px; }
.kc-office { padding: clamp(22px, 2.2vw, 32px) 0 0; border-top: 1px solid #d9dfdf; }
.kc-office h3 { font-size: 22px; }
.kc-office address { margin-block: 10px; color: #4a6070; font-size: 15px; font-style: normal; line-height: 1.7; }
.kc-office-links { display: flex; flex-wrap: wrap; gap: 4px 19px; }
.kc-office { scroll-margin-top: 7rem; }
.kc-company-data { margin: 1rem 0; font-size: .95rem; }
.kc-company-data > div { display: grid; grid-template-columns: minmax(7.8em, 32%) 1fr; gap: .75em; padding: .5em 0; border-block-start: 1px solid var(--line, #d9dfdf); }
.kc-company-data dt { color: var(--muted, #4a6070); }
.kc-company-data dd { margin: 0; overflow-wrap: anywhere; }
.kc-legal-links { margin-top: .8rem; }
.kc-form { min-width: 0; }
.kc-form .kfo {
    margin: 0;
    max-width: none;
    padding: clamp(24px, 3.4vw, 50px);
    scroll-margin-top: calc(var(--kf-header-h, 84px) + var(--kf-admin-h, 0px) + 12px);
    color: #18324a;
    background: #fff;
    border: 1px solid #d4dbdc;
    border-top: 4px solid #e6bb61;
    border-radius: 0 0 4px 4px;
}
.kc-form .kfo h2 { margin: 0 0 13px; font-size: clamp(29px, 2.5vw, 41px); }
.kc-form .kfo h2 + p { color: #4a6070; }
.kc-form .kfo label { color: #142e45; font-size: 15px; }
.kc-form .kfo .kfo-help { color: #526574; font-size: 14px; }
.kc-form .kfo input:not([type="hidden"]), .kc-form .kfo textarea, .kc-form .kfo select {
    min-width: 0;
    min-height: 47px;
    border: 1px solid #9cacb5;
    color: #152e44;
    border-radius: 4px;
    background-color: white;
}
.kc-form .kfo [aria-invalid="true"] { border-color: #96352b; }
.kc-form .kfo-form button[type="submit"] { min-height: 50px; color: #112941; background: #f2ce7a; border: 1px solid #e6bd62; border-radius: 3px; }
.kc-form .kfo-form button[type="submit"]:hover { background: #f8d98b; border-color: #c79e4c; }
.kc-supplement { padding-bottom: 50px; }
@media (max-width: 800px) {
    .kc-opening, .kc-directory { grid-template-columns: minmax(0, 1fr); }
    .kc-opening { gap: 30px; padding-block: 28px 44px; }
    .kc-intro h1 { max-width: 15ch; }
    .kc-directory { gap: 39px; }
}
@media (max-width: 480px) {
    .kc-intro h1 { font-size: clamp(41px, 11.8vw, 53px); }
    .kc-eyebrow { margin-bottom: 13px; }
    .kc-actions { gap: 6px 16px; margin-top: 20px; }
    .kc-actions .kc-primary { min-height: 46px; padding: 12px 16px; gap: 10px; }
    .kc-call { font-size: 14px; }
    .kc-scene { margin-right: 7px; }
    .kc-scene::before { inset: 9px -7px -7px 10px; }
    .kc-directory { padding-block: 39px 55px; }
    .kc-form .kfo { padding: 23px 17px; }
    .kc-person { grid-template-columns: 65px minmax(0, 1fr); gap: 15px; }
    .kc-links a:not(.kc-tel) { font-size: 14px; }
}
