/* About and contact only. Loaded after the existing site styles. */
.jtf-page-shell {
    width: min(1280px, calc(100% - 80px));
    margin-inline: auto;
}

.jtf-page-kicker {
    margin: 0 0 18px;
    color: #bd2433;
    font-family: 'Manrope', Arial, sans-serif;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.4;
    text-transform: uppercase;
}

.jtf-page-lead {
    max-width: 560px;
    font-size: 17px;
    line-height: 1.7;
}

.jtf-page-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 30px;
    padding: 12px 19px;
    border: 1px solid #bb2635;
    border-radius: 3px;
    background: #bb2635;
    color: #fff;
    cursor: pointer;
    font-family: 'Manrope', Arial, sans-serif;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.jtf-page-button:hover { background: #9e1c2a; border-color: #9e1c2a; color: #fff; transform: translateY(-2px); }
.jtf-page-button:focus-visible, .jtf-page-text-link:focus-visible { outline: 3px solid #d73544; outline-offset: 4px; }
.jtf-page-button--light { background: #fff; border-color: #fff; color: #171d20; }
.jtf-page-button--light:hover { background: #e7ecec; border-color: #e7ecec; color: #171d20; }
.jtf-page-button span, .jtf-page-text-link span { font-size: 18px; line-height: 1; }
.jtf-page-text-link {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    padding-bottom: 8px;
    border-bottom: 1px solid currentColor;
    color: #171d20;
    font-family: 'Manrope', Arial, sans-serif;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}
.jtf-page-text-link:hover { color: #bd2433; }

body.route-about .jtf-about-hero {
    padding: 74px 0 88px;
    background: #fff;
    color: #171d20;
}
body.route-about .jtf-about-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: clamp(48px, 6vw, 100px);
}
body.route-about .jtf-about-hero__copy { padding-block: 20px; }
body.route-about .jtf-about-hero h1,
body.route-contact .jtf-contact-intro h1 {
    max-width: 620px;
    margin: 0 0 26px;
    color: inherit;
    font-family: 'Manrope', Arial, sans-serif;
    font-size: clamp(42px, 4.5vw, 66px);
    font-weight: 750;
    line-height: 1.07;
    text-transform: none;
}
body.route-about .jtf-about-hero .jtf-page-lead { margin: 0 0 31px; color: #526065; }
body.route-about .jtf-about-hero__image { position: relative; margin: 0; }
body.route-about .jtf-about-hero__image img {
    display: block;
    width: 100%;
    height: 590px;
    object-fit: cover;
    object-position: 50% 45%;
}
body.route-about .jtf-about-hero__image figcaption {
    position: absolute;
    right: 0;
    bottom: 0;
    padding: 11px 17px;
    background: #fff;
    color: #454e52;
    font-size: 11px;
    font-weight: 700;
}

body.route-about .jtf-about-conversation {
    padding: 104px 0;
    background: #171d20;
    color: #fff;
}
body.route-about .jtf-about-conversation .jtf-page-kicker,
body.route-about .jtf-about-end .jtf-page-kicker,
body.route-contact .jtf-contact-intro .jtf-page-kicker { color: #f16b77; }
body.route-about .jtf-about-conversation__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .94fr);
    align-items: center;
    gap: clamp(56px, 7vw, 110px);
}
body.route-about .jtf-about-conversation__image { margin: 0; }
body.route-about .jtf-about-conversation__image img {
    display: block;
    width: 100%;
    height: 630px;
    object-fit: cover;
    object-position: 48% center;
}
body.route-about .jtf-about-conversation h2,
body.route-about .jtf-about-visit h2,
body.route-about .jtf-about-services h2,
body.route-about .jtf-about-faq h2,
body.route-about .jtf-about-end h2,
body.route-contact .jtf-contact-main h2,
body.route-contact .jtf-contact-map-section h2 {
    max-width: 620px;
    margin: 0;
    color: inherit;
    font-family: 'Manrope', Arial, sans-serif;
    font-size: clamp(33px, 3.2vw, 47px);
    font-weight: 750;
    line-height: 1.13;
    text-transform: none;
}
body.route-about .jtf-about-conversation__copy > p:not(.jtf-page-kicker) {
    max-width: 500px;
    margin: 23px 0 28px;
    color: #c2cbcc;
    font-size: 16px;
    line-height: 1.75;
}
body.route-about .jtf-about-principles { margin: 0; border-top: 1px solid #424a4d; }
body.route-about .jtf-about-principles > div {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 16px;
    padding: 17px 0;
    border-bottom: 1px solid #424a4d;
}
body.route-about .jtf-about-principles dt { color: #e03848; font-size: 13px; font-weight: 800; }
body.route-about .jtf-about-principles dd { margin: 0; }
body.route-about .jtf-about-principles strong { display: block; color: #fff; font-size: 14px; }
body.route-about .jtf-about-principles span { display: block; margin-top: 5px; color: #aebabc; font-size: 13px; line-height: 1.55; }

body.route-about .jtf-about-visit {
    padding: 105px 0;
    background: #fff;
    color: #171d20;
}
body.route-about .jtf-about-visit__layout {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
    align-items: center;
    gap: clamp(50px, 7vw, 110px);
}
body.route-about .jtf-about-visit__copy { max-width: 500px; }
body.route-about .jtf-about-visit__copy > p:not(.jtf-page-kicker),
body.route-about .jtf-about-services__layout > div > p:not(.jtf-page-kicker) {
    max-width: 500px;
    margin: 22px 0 30px;
    color: #526065;
    font-size: 16px;
    line-height: 1.72;
}
body.route-about .jtf-about-visit__image { margin: 0; }
body.route-about .jtf-about-visit__image img {
    display: block;
    width: 100%;
    height: 465px;
    object-fit: cover;
}

body.route-about .jtf-about-services {
    padding: 95px 0;
    background: #eff2f1;
    color: #171d20;
}
body.route-about .jtf-about-services__layout {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(60px, 8vw, 130px);
}
body.route-about .jtf-about-services__list { margin: 0; border-top: 1px solid #cbd2d0; }
body.route-about .jtf-about-services__list > div {
    display: grid;
    grid-template-columns: minmax(120px, .45fr) 1fr;
    gap: 20px;
    padding: 25px 0;
    border-bottom: 1px solid #cbd2d0;
}
body.route-about .jtf-about-services__list dt { font-size: 15px; font-weight: 800; }
body.route-about .jtf-about-services__list dd { margin: 0; color: #526065; font-size: 14px; line-height: 1.65; }

body.route-about .jtf-about-faq { padding: 100px 0; background: #fff; color: #171d20; }
body.route-about .jtf-about-faq__layout {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(60px, 8vw, 130px);
}
body.route-about .jtf-about-faq__list { border-top: 1px solid #d6ddda; }
body.route-about .jtf-about-faq__list details { padding: 21px 0; border-bottom: 1px solid #d6ddda; }
body.route-about .jtf-about-faq__list summary { color: #171d20; cursor: pointer; font-size: 16px; font-weight: 750; line-height: 1.55; }
body.route-about .jtf-about-faq__list p { max-width: 650px; margin: 13px 0 0; color: #526065; font-size: 14px; line-height: 1.7; }
body.route-about .jtf-about-end { padding: 68px 0; background: #171d20; color: #fff; }
body.route-about .jtf-about-end__layout { display: flex; align-items: end; justify-content: space-between; gap: 32px; }
body.route-about .jtf-about-end h2 { font-size: clamp(34px, 3.5vw, 50px); }

body.route-contact .jtf-contact-intro {
    overflow: hidden;
    background: #171d20;
    color: #fff;
}
body.route-contact .jtf-contact-intro__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .92fr);
    align-items: center;
    gap: clamp(40px, 6vw, 100px);
    min-height: 580px;
}
body.route-contact .jtf-contact-intro__copy { padding: 70px 0; }
body.route-contact .jtf-contact-intro h1 { max-width: 700px; }
body.route-contact .jtf-contact-intro .jtf-page-lead { margin: 0 0 32px; color: #c4ccce; }
body.route-contact .jtf-contact-intro__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 25px; }
body.route-contact .jtf-contact-intro__secondary { display: inline-flex; gap: 12px; align-items: center; color: #fff; font-size: 13px; font-weight: 750; text-decoration: underline; text-underline-offset: 6px; }
body.route-contact .jtf-contact-intro__image { align-self: stretch; margin: 0; }
body.route-contact .jtf-contact-intro__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 580px;
    object-fit: cover;
    object-position: 45% center;
}

body.route-contact .jtf-contact-main { padding: 100px 0; background: #fff; color: #171d20; }
body.route-contact .jtf-contact-main__layout {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
    align-items: start;
    gap: clamp(65px, 8vw, 135px);
}
body.route-contact .jtf-contact-channels__heading { margin-bottom: 35px; }
body.route-contact .jtf-contact-main h2 { font-size: clamp(30px, 2.7vw, 40px); }
body.route-contact .jtf-contact-channel { display: grid; gap: 7px; padding: 20px 0; border-top: 1px solid #d6ddda; }
body.route-contact .jtf-contact-channel > span { color: #667276; font-size: 11px; font-weight: 800; text-transform: uppercase; }
body.route-contact .jtf-contact-channel a,
body.route-contact .jtf-contact-channel strong { color: #171d20; font-size: 17px; font-weight: 750; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
body.route-contact .jtf-contact-channel a:hover { color: #bd2433; }
body.route-contact .jtf-contact-channel small { display: block; color: #526065; font-size: 14px; font-weight: 500; }
body.route-contact .jtf-contact-form { padding: 0; scroll-margin-top: 105px; }
body.route-contact .jtf-contact-form__intro { max-width: 520px; margin: 16px 0 30px; color: #526065; font-size: 15px; line-height: 1.7; }
body.route-contact .jtf-contact-form .contact-form { display: grid; gap: 19px; }
body.route-contact .jtf-contact-form .field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
body.route-contact .jtf-contact-form .field { min-width: 0; }
body.route-contact .jtf-contact-form .field label { display: block; margin-bottom: 8px; color: #303a3d; font-size: 12px; font-weight: 800; }
body.route-contact .jtf-contact-form .field input,
body.route-contact .jtf-contact-form .field select,
body.route-contact .jtf-contact-form .field textarea {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #cbd3d1;
    border-radius: 3px;
    background: #fff;
    color: #171d20;
    font-family: 'Manrope', Arial, sans-serif;
    font-size: 14px;
}
body.route-contact .jtf-contact-form .field textarea { min-height: 145px; resize: vertical; }
body.route-contact .jtf-contact-form .field input:focus,
body.route-contact .jtf-contact-form .field select:focus,
body.route-contact .jtf-contact-form .field textarea:focus { outline: 2px solid #bd2433; outline-offset: 1px; border-color: #bd2433; }
body.route-contact .jtf-contact-form .form-note { margin: 0; color: #687477; font-size: 12px; line-height: 1.7; }
body.route-contact .jtf-contact-form .form-note a { color: #171d20; text-decoration: underline; }
body.route-contact .jtf-contact-form .jtf-page-button { justify-self: start; }
body.route-contact .jtf-contact-form .honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; }

body.route-contact .jtf-contact-map-section { padding: 80px 0 100px; background: #eff2f1; color: #171d20; }
body.route-contact .jtf-contact-map-section__heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
body.route-contact .jtf-contact-map { position: relative; min-height: 310px; background: #dce2df; }
body.route-contact .jtf-contact-map iframe,
body.route-contact .jtf-contact-map .map-placeholder { width: 100%; min-height: 310px; }
body.route-contact .jtf-contact-map .map-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; }
body.route-contact .jtf-contact-map .map-placeholder p { max-width: 500px; color: #384448; font-size: 15px; line-height: 1.6; }

html[data-theme="dark"] body.route-about .jtf-about-hero,
html[data-theme="dark"] body.route-about .jtf-about-visit,
html[data-theme="dark"] body.route-about .jtf-about-faq,
html[data-theme="dark"] body.route-contact .jtf-contact-main { background: #20282a; color: #f4f6f6; }
html[data-theme="dark"] body.route-about .jtf-about-services,
html[data-theme="dark"] body.route-contact .jtf-contact-map-section { background: #171d20; color: #f4f6f6; }
html[data-theme="dark"] body.route-about .jtf-about-hero .jtf-page-lead,
html[data-theme="dark"] body.route-about .jtf-about-visit__copy > p:not(.jtf-page-kicker),
html[data-theme="dark"] body.route-about .jtf-about-services__layout > div > p:not(.jtf-page-kicker),
html[data-theme="dark"] body.route-about .jtf-about-services__list dd,
html[data-theme="dark"] body.route-about .jtf-about-faq__list p,
html[data-theme="dark"] body.route-contact .jtf-contact-form__intro { color: #bac5c7; }
html[data-theme="dark"] body.route-about .jtf-about-faq__list summary,
html[data-theme="dark"] body.route-about .jtf-page-text-link,
html[data-theme="dark"] body.route-contact .jtf-page-text-link,
html[data-theme="dark"] body.route-contact .jtf-contact-channel a,
html[data-theme="dark"] body.route-contact .jtf-contact-channel strong,
html[data-theme="dark"] body.route-contact .jtf-contact-form .field label { color: #f4f6f6; }
html[data-theme="dark"] body.route-contact .jtf-contact-form .form-note { color: #aebabc; }
html[data-theme="dark"] body.route-contact .jtf-contact-form .form-note a { color: #fff; }
html[data-theme="dark"] body.route-contact .jtf-contact-map .map-placeholder { background: #283235; }
html[data-theme="dark"] body.route-contact .jtf-contact-map .map-placeholder p { color: #e5ebeb; }
html[data-theme="dark"] body.route-about .jtf-about-services .jtf-page-kicker,
html[data-theme="dark"] body.route-about .jtf-about-faq .jtf-page-kicker,
html[data-theme="dark"] body.route-about .jtf-about-hero .jtf-page-kicker,
html[data-theme="dark"] body.route-about .jtf-about-visit .jtf-page-kicker,
html[data-theme="dark"] body.route-contact .jtf-contact-main .jtf-page-kicker,
html[data-theme="dark"] body.route-contact .jtf-contact-map-section .jtf-page-kicker { color: #f16b77; }

@media (max-width: 980px) {
    body.route-about .jtf-about-hero__layout,
    body.route-about .jtf-about-conversation__layout,
    body.route-about .jtf-about-visit__layout,
    body.route-about .jtf-about-services__layout,
    body.route-about .jtf-about-faq__layout,
    body.route-contact .jtf-contact-main__layout { grid-template-columns: 1fr; gap: 45px; }
    body.route-about .jtf-about-hero__image img { height: min(64vw, 620px); }
    body.route-about .jtf-about-conversation__image img { height: min(60vw, 560px); }
    body.route-about .jtf-about-conversation__copy { max-width: 650px; }
    body.route-about .jtf-about-visit__image img { height: min(55vw, 460px); }
    body.route-contact .jtf-contact-intro__layout { gap: 30px; }
    body.route-contact .jtf-contact-intro__image img { min-height: 510px; }
    body.route-contact .jtf-contact-channels { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
    body.route-contact .jtf-contact-channels__heading { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
    .jtf-page-shell { width: min(100% - 36px, 1280px); }
    .jtf-page-kicker { margin-bottom: 13px; }
    body.route-about .jtf-about-hero { padding: 54px 0 62px; }
    body.route-about .jtf-about-hero__layout { gap: 30px; }
    body.route-about .jtf-about-hero__copy { padding: 0; }
    body.route-about .jtf-about-hero h1,
    body.route-contact .jtf-contact-intro h1 { font-size: 38px; line-height: 1.1; }
    .jtf-page-lead { font-size: 15px; }
    body.route-about .jtf-about-hero__image img { height: auto; aspect-ratio: 4 / 3; }
    body.route-about .jtf-about-conversation,
    body.route-about .jtf-about-visit,
    body.route-about .jtf-about-services,
    body.route-about .jtf-about-faq { padding: 66px 0; }
    body.route-about .jtf-about-conversation__image img { height: auto; aspect-ratio: 4 / 3; }
    body.route-about .jtf-about-conversation h2,
    body.route-about .jtf-about-visit h2,
    body.route-about .jtf-about-services h2,
    body.route-about .jtf-about-faq h2,
    body.route-contact .jtf-contact-main h2,
    body.route-contact .jtf-contact-map-section h2 { font-size: 32px; }
    body.route-about .jtf-about-visit__image img { height: auto; aspect-ratio: 4 / 3; }
    body.route-about .jtf-about-services__list > div { grid-template-columns: 1fr; gap: 7px; }
    body.route-about .jtf-about-end { padding: 52px 0; }
    body.route-about .jtf-about-end__layout { display: grid; gap: 26px; }
    body.route-about .jtf-about-end .jtf-page-button { justify-self: start; }
    body.route-contact .jtf-contact-intro__layout { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
    body.route-contact .jtf-contact-intro__copy { padding: 60px 0 42px; }
    body.route-contact .jtf-contact-intro__image img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
    body.route-contact .jtf-contact-main { padding: 66px 0; }
    body.route-contact .jtf-contact-channels { display: block; }
    body.route-contact .jtf-contact-form .field-grid { grid-template-columns: 1fr; gap: 18px; }
    body.route-contact .jtf-contact-map-section { padding: 66px 0; }
    body.route-contact .jtf-contact-map-section__heading { display: grid; }
}
@media (prefers-reduced-motion: reduce) {
    .jtf-page-button { transition: none; }
}
