/* Sections use only the shared dealership tokens. Editor chrome is out of scope. */
.fk-section { width: 100%; color: var(--fk-color-text); font-family: var(--fk-font-body); background: var(--fk-color-page); }
.fk-section__inner { max-width: var(--fk-container-width); margin-inline: auto; padding: var(--fk-space-2xl) var(--fk-space-lg); }
.fk-section__copy { min-width: 0; max-width: var(--fk-reading-width, 65ch); }
.fk-section__title { margin: 0 0 var(--fk-space-lg); color: var(--fk-color-heading); font-family: var(--fk-font-heading); font-weight: var(--fk-font-weight-heading); font-size: var(--fk-text-3xl); line-height: 1.15; overflow-wrap: anywhere; }
.fk-section h1.fk-section__title { font-size: var(--fk-text-4xl); }
.fk-section__body { font-size: var(--fk-text-base); line-height: 1.7; }
.fk-section__body > :first-child { margin-top: 0; }
.fk-section__body > :last-child { margin-bottom: 0; }
.fk-section__actions { margin-top: var(--fk-space-xl); display: flex; flex-wrap: wrap; gap: var(--fk-space-md); }
.fk-section__media-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: var(--fk-space-3xl); }
.fk-section__media { margin: 0; min-width: 0; overflow: hidden; border-radius: var(--fk-radius-media); }
.fk-section__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.fk-section--image-left .fk-section__media { order: -1; }
.fk-section--wide .fk-section__media-layout, .fk-section--no-image .fk-section__media-layout { grid-template-columns: minmax(0, 1fr); }
.fk-section--wide .fk-section__media { order: initial; }
.fk-section--wide .fk-section__media img { aspect-ratio: 16 / 7; }
.fk-section--wide .fk-section__copy { max-width: min(100%, 52rem); }
.fk-section__intro { margin-bottom: var(--fk-space-2xl); }
.fk-section__contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: var(--fk-space-3xl); align-items: start; }
.fk-section--stacked .fk-section__contact, .fk-section--no-form .fk-section__contact { grid-template-columns: minmax(0, 1fr); }
.fk-section__details { display: grid; gap: var(--fk-space-xl); }
.fk-section__details :is(h2,h3,h4) { margin: 0 0 var(--fk-space-sm); font-size: var(--fk-text-lg); color: var(--fk-color-heading); font-family: var(--fk-font-heading); }
.fk-section__details address { font-style: normal; line-height: 1.7; }
.fk-section__details a { overflow-wrap: anywhere; }
.fk-section__details a:not(.fk-button) { color: var(--fk-color-heading); text-decoration: underline; text-decoration-color: var(--fk-color-accent); text-underline-offset: .2em; }
.fk-section__details dl { margin: 0; }
.fk-section__details dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--fk-space-sm); padding-block: var(--fk-space-xs); border-bottom: 1px solid var(--fk-color-border); }
.fk-section__details dd { margin: 0; }
.fk-section__hours-group + .fk-section__hours-group { margin-top: var(--fk-space-md); }
.fk-section__details p { margin: 0; }
.fk-section__details .fk-button { width: fit-content; }
.fk-contact-form__status:empty { display: none; }
.fk-section__services { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--fk-space-lg); }
.fk-section__services .fkp-service-card__body :is(h2,h3,h4) { margin: 0; font-family: var(--fk-font-heading); font-size: var(--fk-text-xl); line-height: 1.3; }
.fk-section__services .fkp-service-card__body :is(h2,h3,h4) a { color: var(--fk-color-heading); text-decoration: none; }
.fk-contact-form { display: grid; gap: var(--fk-space-lg); margin: 0; }
.fk-contact-form__fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--fk-space-lg); }
.fk-contact-form label { display: grid; gap: var(--fk-space-xs); font-size: var(--fk-text-sm); }
.fk-contact-form input:not([type=checkbox]), .fk-contact-form select { width: 100%; border: 1px solid var(--fk-color-border-strong); border-radius: var(--fk-radius-control); background: var(--fk-color-surface); color: var(--fk-color-text); font: inherit; padding: var(--fk-space-md); }
.fk-contact-form textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--fk-color-border-strong); border-radius: var(--fk-radius-control); background: var(--fk-color-surface); color: var(--fk-color-text); font: inherit; padding: var(--fk-space-md); min-width: 0; }
.fk-contact-form textarea { resize: vertical; min-height: 9rem; }
.fk-contact-form :is(input,textarea,select):focus-visible, .fk-section a:focus-visible { outline: 2px solid var(--fk-color-accent); outline-offset: 3px; }
.fk-contact-form .fk-check { display: flex; align-items: start; }
.fk-contact-form .fk-check input { margin-top: .3em; accent-color: var(--fk-color-accent); }
.fk-contact-form [type=submit] { justify-self: start; }
.fk-contact-form__status { margin: 0; font-size: var(--fk-text-sm); }
.fk-contact-form__trap { display: none !important; }
@media (max-width: 767px) {
 .fk-section__inner { padding: var(--fk-space-2xl) var(--fk-space-md); }
 .fk-section__media-layout, .fk-section__contact, .fk-section__services { grid-template-columns: minmax(0,1fr); gap: var(--fk-space-xl); }
 .fk-section--image-left .fk-section__media { order: initial; }
 .fk-section--wide .fk-section__media img { aspect-ratio: 4 / 3; }
 .fk-contact-form__fields { grid-template-columns: minmax(0,1fr); }
 .fk-section__title { font-size: var(--fk-text-2xl); }
 .fk-section h1.fk-section__title { font-size: var(--fk-text-3xl); }
}

.fk-section__services .fkp-service-card__category { color: var(--fk-color-muted-surface, var(--fk-color-muted)); }
.fk-section__services .fkp-service-card__link { color: var(--fk-color-heading); }

/* Optional compositions inherit the same semantic card as the rest of the site. */
.fk-section--card-copy .fk-section__copy { padding: var(--fk-space-xl); }
.fk-section--card-whole > .fk-section__inner { width: calc(100% - 2 * var(--fk-space-lg)); }
.fk-section--ratio-square .fk-section__media img { aspect-ratio: 1; }
.fk-section--ratio-portrait .fk-section__media img { aspect-ratio: 4 / 5; }
.fk-section--ratio-landscape .fk-section__media img { aspect-ratio: 16 / 9; }
.fk-section--general .fk-section__contact { grid-template-columns: minmax(0,1fr); max-width: 52rem; }
.fk-section__actions .fkp-service-appointment-action, .fk-hero__actions .fkp-service-appointment-action { margin: 0; }
.fk-section__services .fkp-service-appointment-action { margin-top: var(--fk-space-lg); }
/* Photo contrast is local to copy and overlay; form tokens never change. */
.fk-hero--background.fk-hero--has-image.fk-hero--contrast-dark { --fk-hero-overlay-color: #141a23; --fk-hero-copy-color: #f8fafc; }
.fk-hero--background.fk-hero--has-image.fk-hero--contrast-light { --fk-hero-overlay-color: #f8fafc; --fk-hero-copy-color: #141a23; }
.fk-hero__copy .fk-section__title { color: var(--fk-hero-text-custom,var(--fk-hero-copy-color,var(--fk-color-heading))); }
.fk-hero__copy .fk-section__body, .fk-hero__copy .fk-section__body a { color: var(--fk-hero-text-custom,var(--fk-hero-copy-color,var(--fk-color-text))); }
.fk-hero__copy .fk-section__body { font-size: calc(var(--fk-text-base) * var(--fk-hero-body-scale,1)); }
.fk-hero__copy .fk-section__body a { text-decoration: underline; }
@media (max-width:767px) {
 .fk-hero--background.fk-hero--has-image.fk-hero--mobile-below { --fk-hero-copy-color: initial; }
}
/* Hero media is a section layer; content and finder share one container. */
.fk-section--hero { position: relative; isolation: isolate; }
.fk-section--hero > .fk-section__inner { position: relative; z-index: 1; padding-block: var(--fk-space-xl); }
.fk-hero__stage { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: center; gap: var(--fk-space-3xl); min-height: 26rem; min-width: 0; }
.fk-hero--compact .fk-hero__stage { min-height: 20rem; }
.fk-hero--large .fk-hero__stage { min-height: 32rem; }
.fk-hero--custom .fk-hero__stage { min-height: var(--fk-hero-height); }
.fk-hero--viewport > .fk-section__inner { display: flex; flex-direction: column; box-sizing: border-box; min-height: calc(100svh - var(--fkt-hero-header-height,0px)); min-height: calc(100dvh - var(--fkt-hero-header-height,0px)); }
.fk-hero--viewport .fk-hero__stage { flex: 1; }
.fk-hero__copy { grid-column: 1; grid-row: 1; padding-block: var(--fk-space-xl); width: 100%; }
.fk-section--hero .fk-hero__copy .fk-section__title { font-size: clamp(calc(var(--fk-text-2xl) * var(--fk-hero-heading-scale,1)), calc(3.8vw * var(--fk-hero-heading-scale,1)), calc(var(--fk-text-4xl) * var(--fk-hero-heading-scale,1))); line-height: 1.12; text-wrap: var(--fk-hero-heading-wrap,balance); }
.fk-hero__image { grid-column: 2; grid-row: 1; margin: 0; min-width: 0; height: 100%; overflow: hidden; border-radius: var(--fk-radius-media); }
.fk-hero__image img { display: block; width: 100%; height: 100%; min-height: 20rem; object-fit: var(--fk-hero-fit,cover); object-position: var(--fk-hero-x,50%) var(--fk-hero-y,50%); }
.fk-hero--right .fk-hero__image { grid-column: 1; }
.fk-hero--right .fk-hero__copy { grid-column: 2; }
.fk-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--fk-space-md); margin-top: var(--fk-space-xl); }
.fk-hero__actions:empty { display: none; }
.fk-hero__actions .fk-section__actions { margin: 0; }
.fk-hero--background > .fk-hero__image { position: absolute; inset: 0; border-radius: 0; }
.fk-hero--background.fk-hero--has-image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: color-mix(in srgb,var(--fk-hero-overlay-color,var(--fk-color-page)) var(--fk-hero-overlay),transparent); }
.fk-hero--background.fk-hero--overlay-gradient::after { background: linear-gradient(90deg,color-mix(in srgb,var(--fk-hero-overlay-color,var(--fk-color-page)) var(--fk-hero-overlay),transparent) 0%,color-mix(in srgb,var(--fk-hero-overlay-color,var(--fk-color-page)) var(--fk-hero-overlay),transparent) 25%,transparent 100%); }
.fk-hero--background.fk-hero--overlay-gradient.fk-hero--right::after { transform: scaleX(-1); }
.fk-hero--background.fk-hero--center.fk-hero--overlay-gradient::after { background: color-mix(in srgb,var(--fk-hero-overlay-color,var(--fk-color-page)) var(--fk-hero-overlay),transparent); }
.fk-hero--background.fk-hero--overlay-none::after { display: none; }
.fk-hero--background .fk-hero__stage { display: flex; }
.fk-hero--background .fk-hero__copy { max-width: 38rem; }
.fk-hero--background.fk-hero--width-narrow .fk-hero__copy { max-width: 28rem; }
.fk-hero--background.fk-hero--width-wide .fk-hero__copy { max-width: 48rem; }
.fk-hero--background.fk-hero--width-full .fk-hero__copy { max-width: 100%; }
.fk-hero--background.fk-hero--width-custom .fk-hero__copy { max-width: min(100%,var(--fk-hero-copy-width,60rem)); }
.fk-hero--background.fk-hero--right .fk-hero__stage { justify-content: flex-end; }
.fk-hero--center .fk-hero__copy { text-align: center; }
.fk-hero--center .fk-hero__actions { justify-content: center; }
.fk-hero--background.fk-hero--center .fk-hero__stage { justify-content: center; }
.fk-hero--vertical-start .fk-hero__stage { align-items: start; }
.fk-hero--vertical-end .fk-hero__stage { align-items: end; }
.fk-hero__search { margin-top: var(--fk-space-lg); padding: var(--fk-space-xl); min-width: 0; }
.fk-hero__search .fk-shortcode-shell { padding: 0; background: transparent; border: 0; box-shadow: none; }
.fk-section--hero .fk-hero__search .fk-quick-search { padding: 0; border: 0; box-shadow: none; background: transparent; }
.fk-hero__search .fk-quick-search__form { padding: 0; border: 0; background: transparent; }
.fk-hero--finder-aside .fk-hero__search [data-fk-hero-panel] { min-height: 11rem; }
.fk-hero__search .fk-quick-search__heading { display: none; }
.fk-hero__search .fk-quick-search__fields { grid-template-columns: repeat(auto-fit,minmax(min(100%,8rem),1fr)); }
.fk-hero__tabs { display: flex; gap: var(--fk-space-xl); border-bottom: 1px solid var(--fk-color-border); margin-bottom: var(--fk-space-lg); }
.fk-hero__tabs button { border: 0; border-radius: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--fk-color-muted-surface, var(--fk-color-muted)); padding: 0 0 var(--fk-space-md); font: inherit; font-weight: var(--fk-font-weight-heading); cursor: pointer; min-height: 44px; }
.fk-hero__tabs button[aria-selected="true"] { color: var(--fk-color-heading); border-bottom-color: var(--fk-color-accent); }
.fk-hero__search :is(button,select,[role="tabpanel"]):focus-visible { outline: 2px solid var(--fk-color-accent); outline-offset: 3px; }
.fk-hero__search [hidden] { display: none !important; }
.fk-hero__service-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap: var(--fk-space-lg); }
.fk-hero__service label { display: grid; gap: var(--fk-space-xs); font-size: var(--fk-text-sm); min-width: 0; }
.fk-hero__service select { width: 100%; min-width: 0; border: 1px solid var(--fk-color-border-strong); border-radius: var(--fk-radius-control); background: var(--fk-color-surface); color: var(--fk-color-text); font: inherit; min-height: var(--fk-button-height); padding: 0 var(--fk-space-sm); }
.fk-hero__service-footer { display: flex; justify-content: space-between; align-items: center; gap: var(--fk-space-lg); margin-top: var(--fk-space-lg); }
.fk-hero__service-footer p { margin: 0; color: var(--fk-color-muted-surface, var(--fk-color-muted)); font-size: var(--fk-text-sm); max-width: 45ch; }
.fk-hero__service-footer .fkp-service-appointment-action { margin: 0; flex-shrink: 0; }
.fk-hero__service-footer .fk-button:disabled { opacity: .55; cursor: not-allowed; }
.fk-section .fkp-service-appointment-action { padding: 0; border: 0; }
@media (min-width: 768px) {
 .fk-hero--finder-bottom .fk-hero__service { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: var(--fk-space-md) var(--fk-space-lg); }
 .fk-hero--finder-bottom .fk-hero__service-fields { grid-column: 1; grid-row: 1; }
 .fk-hero--finder-bottom .fk-hero__service-footer { display: contents; }
 .fk-hero--finder-bottom .fk-hero__service-footer .fkp-service-appointment-action { grid-column: 2; grid-row: 1; }
 .fk-hero--finder-bottom .fk-hero__service-footer p { grid-column: 1 / -1; grid-row: 2; max-width: none; }
}
@media (min-width: 1024px) {
 .fk-hero--background.fk-hero--finder-aside > .fk-section__inner:has(.fk-hero__search) { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: var(--fk-space-3xl); align-items: center; }
 .fk-hero--background.fk-hero--finder-aside.fk-hero--right .fk-hero__stage { order: 2; }
 .fk-hero--background.fk-hero--finder-aside .fk-hero__search { margin-top: 0; }
 .fk-hero--finder-aside .fk-hero__service-footer { flex-wrap: wrap; }
}
@media (max-width: 767px) {
 .fk-hero__stage { grid-template-columns: minmax(0,1fr); min-height: 0; gap: var(--fk-space-lg); }
 .fk-hero--compact .fk-hero__stage, .fk-hero--large .fk-hero__stage { min-height: 0; }
 .fk-hero--custom .fk-hero__stage { min-height: var(--fk-hero-mobile-height); }
 .fk-hero__copy, .fk-hero--right .fk-hero__copy { grid-column: 1; grid-row: 1; padding-block: var(--fk-space-lg); }
 .fk-hero__image, .fk-hero--right .fk-hero__image { grid-column: 1; grid-row: 2; height: auto; }
 .fk-hero__image img { min-height: 0; height: auto; aspect-ratio: 16 / 9; object-position: var(--fk-hero-mobile-x,50%) var(--fk-hero-mobile-y,50%); }
 .fk-hero--background > .fk-hero__image { height: 100%; }
 .fk-hero--background > .fk-hero__image img { height: 100%; aspect-ratio: auto; }
 .fk-hero--background.fk-hero--overlay-gradient::after { background: color-mix(in srgb,var(--fk-hero-overlay-color,var(--fk-color-page)) var(--fk-hero-overlay),transparent); }
 .fk-hero--background.fk-hero--mobile-below { display: flex; flex-direction: column; }
 .fk-hero--background.fk-hero--mobile-below > .fk-hero__image { position: static; order: 1; }
 .fk-hero--background.fk-hero--mobile-below > .fk-hero__image img { height: auto; aspect-ratio: 16 / 9; }
 .fk-hero--background.fk-hero--mobile-below::after { display: none; }
 .fk-section--hero > .fk-section__inner { padding-block: var(--fk-space-lg); }
 .fk-hero__copy, .fk-hero--right .fk-hero__copy { padding-block: var(--fk-space-sm); }
 .fk-hero__search { padding: var(--fk-space-lg); }
 .fk-hero__search [data-fk-hero-panel] { min-height: 0; }
 .fk-hero__search .fk-quick-search__fields > label:last-child:nth-child(odd) { grid-column: 1 / -1; }
 .fk-hero__tabs { gap: var(--fk-space-lg); }
 .fk-hero__tabs button { font-size: var(--fk-text-sm); }
 .fk-hero__service-footer { align-items: stretch; flex-direction: column; }
 .fk-hero__service-footer .fk-button { width: 100%; }
 .fk-hero__actions { gap: var(--fk-space-sm); }
 .fk-section--card-whole > .fk-section__inner { width: calc(100% - 2 * var(--fk-space-md)); }
}

/* Hero actions keep website shape/type tokens, with explicit photo-safe finishes.
   Scope excludes search buttons and service dialogs nested in action templates. */
.fk-section--hero.fk-hero--button-brand .fk-hero__actions .fk-button--primary,
.fk-section--hero.fk-hero--secondary-brand .fk-hero__actions .fk-button--secondary {
 --fk-hero-action-bg: var(--fk-color-accent); --fk-hero-action-text: var(--fk-color-on-accent); --fk-hero-action-border: var(--fk-color-accent);
}
.fk-section--hero.fk-hero--button-surface .fk-hero__actions .fk-button--primary,
.fk-section--hero.fk-hero--secondary-surface .fk-hero__actions .fk-button--secondary {
 --fk-hero-action-bg: var(--fk-color-surface); --fk-hero-action-text: var(--fk-color-heading); --fk-hero-action-border: var(--fk-color-border-strong);
}
.fk-section--hero.fk-hero--button-outline .fk-hero__actions .fk-button--primary,
.fk-section--hero.fk-hero--secondary-outline .fk-hero__actions .fk-button--secondary {
 --fk-hero-action-bg: transparent; --fk-hero-action-text: var(--fk-hero-text-custom,var(--fk-hero-copy-color,var(--fk-color-heading))); --fk-hero-action-border: var(--fk-hero-action-text);
}
.fk-section--hero .fk-hero__copy .fk-hero__actions .fk-button:not(dialog .fk-button) {
 background: var(--fk-hero-action-bg); color: var(--fk-hero-action-text); border-color: var(--fk-hero-action-border); border-width: max(1px,var(--fk-button-border-width));
}
.fk-section--hero .fk-hero__copy .fk-hero__actions .fk-button:not(dialog .fk-button):is(:hover,:focus-visible) {
 background: var(--fk-hero-action-bg); color: var(--fk-hero-action-text); border-color: var(--fk-hero-action-border); box-shadow: var(--fk-button-hover-shadow);
}
.fk-section--hero .fk-hero__copy .fk-hero__actions .fk-button:not(dialog .fk-button):focus-visible {
 outline: 2px solid var(--fk-hero-action-text); outline-offset: 4px;
}

/* Contact compositions use the existing card and form tokens, not a second theme. */
.fk-section--contact { --fk-contact-gap: var(--fk-space-xl); --fk-contact-padding: var(--fk-space-xl); }
.fk-contact--spacing-compact { --fk-contact-gap: var(--fk-space-lg); --fk-contact-padding: var(--fk-space-lg); }
.fk-contact--spacing-airy { --fk-contact-gap: var(--fk-space-2xl); --fk-contact-padding: var(--fk-space-2xl); }
.fk-contact--tone-soft { background: var(--fk-color-surface-soft); }
.fk-contact--width-narrow > .fk-section__inner { max-width: 68rem; }
.fk-contact__composition { min-width: 0; }
.fk-contact__composition.fk-card { padding: var(--fk-contact-padding); }
.fk-contact__layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: var(--fk-space-3xl); align-items: start; }
.fk-contact--form-first .fk-contact__layout { grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); }
.fk-contact--stacked .fk-contact__layout, .fk-contact--single .fk-contact__layout { grid-template-columns: minmax(0,1fr); }
.fk-contact--stacked .fk-contact__composition, .fk-contact--single .fk-contact__composition { max-width: 52rem; margin-inline: auto; }
.fk-contact__info { display: grid; gap: var(--fk-contact-gap); min-width: 0; }
.fk-contact__info > .fk-section__copy { max-width: none; }
.fk-contact__info .fk-section__title { font-size: var(--fk-text-3xl); margin-bottom: var(--fk-space-md); }
.fk-contact__form { min-width: 0; }
.fk-contact__form.fk-card { padding: var(--fk-contact-padding); }
.fk-section--contact .fk-contact__form-title { margin: 0 0 var(--fk-contact-gap); font-family: var(--fk-font-heading); font-size: var(--fk-text-xl); color: var(--fk-color-heading); }
.fk-contact__form-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--fk-space-md); margin-bottom: var(--fk-contact-gap); }
.fk-section--contact .fk-contact__form-header .fk-contact__form-title { margin: 0; }
.fk-contact__form-header .fk-contact__routes { margin-left: auto; }
.fk-section--contact .fk-contact-form { gap: var(--fk-space-md); }
.fk-section--contact .fk-contact-form__fields { gap: var(--fk-space-md); }
.fk-section--contact .fk-contact-form label:not(.fk-check) > span { font-weight: var(--fk-font-weight-medium,600); }
.fk-section--contact .fk-contact-form :is(input:not([type=checkbox]),textarea,select) { box-sizing: border-box; min-width: 0; }
.fk-section--contact .fk-contact-form textarea { min-height: 8rem; }
.fk-section--contact .fk-section__details { gap: var(--fk-contact-gap); }
.fk-section--contact .fk-section__details dl > div { border: 0; }
.fk-section--contact .fk-section__details dl > div + div { margin-top: var(--fk-space-xs); }
.fk-section--contact .fk-section__details p + p { margin-top: var(--fk-space-xs); }
.fk-contact__image { margin: 0; overflow: hidden; border-radius: var(--fk-radius-media); }
.fk-contact__image img { width: 100%; height: auto; display: block; aspect-ratio: 16 / 9; object-fit: cover; object-position: var(--fk-contact-image-x,50%) var(--fk-contact-image-y,50%); }
.fk-contact__routes--rows { display: grid; }
.fk-contact__routes--rows .fk-contact__route { display: grid; grid-template-columns: auto minmax(0,1fr); gap: var(--fk-space-md); padding-block: var(--fk-space-lg); border-top: 1px solid var(--fk-color-border); }
.fk-contact__route-icon { color: var(--fk-color-accent); padding-top: var(--fk-space-xs); }
.fk-contact__route-icon svg { width: 1.4rem; height: 1.4rem; }
.fk-contact__route-content { min-width: 0; }
.fk-contact__route-content p { margin: var(--fk-space-xs) 0 0; font-size: var(--fk-text-sm); color: var(--fk-color-muted-surface, var(--fk-color-muted)); line-height: 1.6; }
.fk-contact__routes .fkp-service-appointment-action { margin: 0; }
.fk-contact__routes--rows .fk-contact__route:not(.fk-contact__route--service) .fk-contact__route-content .fk-button:not(dialog .fk-button) { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: var(--fk-space-xs) 0; min-height: var(--fk-button-height,44px); color: var(--fk-color-heading); font-size: var(--fk-text-base); font-weight: var(--fk-font-weight-bold,700); text-align: left; justify-content: start; white-space: normal; }
.fk-contact__routes--rows .fk-contact__route:not(.fk-contact__route--service) .fk-contact__route-content .fk-button:not(dialog .fk-button):hover { color: var(--fk-color-heading); text-decoration: underline; text-decoration-color: var(--fk-color-accent); text-underline-offset: .2em; }
.fk-contact__routes .fk-button:not(dialog .fk-button):focus-visible { outline: 2px solid var(--fk-color-accent); outline-offset: 4px; }
.fk-contact__routes--buttons { display: flex; flex-wrap: wrap; gap: var(--fk-space-md); }
.fk-contact__footer { margin-top: var(--fk-contact-gap); }
.fk-contact__footer .fk-contact__routes--rows { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--fk-space-xl); }
.fk-contact__footer .fk-contact__routes--buttons { padding-top: var(--fk-space-lg); border-top: 1px solid var(--fk-color-border); }
.fk-contact__info > .fk-section__actions { margin-top: 0; }
@media (max-width: 767px) {
 .fk-contact__layout, .fk-contact--form-first .fk-contact__layout { grid-template-columns: minmax(0,1fr); gap: var(--fk-contact-gap); }
 .fk-contact__footer .fk-contact__routes--rows { grid-template-columns: minmax(0,1fr); gap: 0; }
 .fk-contact__info .fk-section__title { font-size: var(--fk-text-2xl); }
 .fk-contact__composition.fk-card, .fk-contact__form.fk-card { padding: min(var(--fk-contact-padding),var(--fk-space-lg)); }
 .fk-contact__routes--buttons .fk-button { max-width: 100%; white-space: normal; }
 .fk-contact__form-header .fk-contact__routes { width: 100%; margin-left: 0; }
 .fk-contact__form-header .fk-contact__route, .fk-contact__form-header .fkp-service-appointment-action > .fk-button { width: 100%; }
}

/* Optional identity is part of the hero copy, never a separate page row. */
.fk-hero__logo { margin-bottom: var(--fk-space-lg); }
.fk-hero__logo img { display: block; width: auto; height: var(--fk-hero-logo-height,64px); max-width: min(100%,12rem); object-fit: contain; }
.fk-hero__logo--light img { filter: brightness(0) invert(1); }
.fk-hero__logo--dark img { filter: brightness(0); }
