:root {
    --kk-ink: #252a2e;
    --kk-muted: #667078;
    --kk-green: #008f73;
    --kk-green-dark: #006e59;
    --kk-paper: #fff;
    --kk-soft: #f4f6f5;
    --kk-line: #dfe5e2;
    --kk-serif: Georgia, "Times New Roman", serif;
    --kk-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

body.kk-site-core {
    color: var(--kk-ink);
    font-family: var(--kk-sans);
    font-size: 16px;
    line-height: 1.7;
}

body.kk-site-core .cmsmasters-header,
body.kk-site-core .cmsmasters_header,
body.kk-site-core .cmsmasters-heading,
body.kk-site-core .cmsmasters_heading,
body.kk-site-core .cmsmasters-footer,
body.kk-site-core .cmsmasters_footer,
body.kk-site-core .cmsmasters-footer-widgets,
body.kk-site-core .cmsmasters_footer_widgets,
body.kk-site-core .cmsmasters-sidebar,
body.kk-site-core .cmsmasters_sidebar {
    display: none !important;
}

body.kk-site-core .cmsmasters-content,
body.kk-site-core .cmsmasters_content {
    float: none !important;
    width: 100% !important;
}

body.kk-site-core a { color: var(--kk-green-dark); }

.kk-shell {
    box-sizing: border-box;
    margin-inline: auto;
    max-width: 1180px;
    padding-inline: 24px;
    width: 100%;
}

.kk-site-header {
    background: var(--kk-paper);
    border-bottom: 1px solid var(--kk-line);
    position: relative;
    z-index: 1000;
}

.kk-contact-bar {
    background: var(--kk-green);
    color: #f7f8f8;
    font-size: 12px;
}

.kk-contact-bar .kk-shell { max-width: 1400px; }

.kk-contact-bar__inner,
.kk-contact-links,
.kk-navigation {
    align-items: center;
    display: flex;
}

.kk-contact-bar__inner {
    justify-content: center;
    min-height: 38px;
}

.kk-contact-links {
    flex-wrap: wrap;
    gap: 6px 18px;
    justify-content: space-between;
    width: 100%;
}

.kk-contact-bar a {
    color: #fff !important;
    text-decoration: none;
}

.kk-contact-bar a:hover { text-decoration: underline; }

.kk-contact-item {
    align-items: center;
    display: inline-flex;
    gap: 7px;
    min-height: 24px;
    white-space: nowrap;
}

.kk-contact-icon {
    color: #d8f1ea;
    display: inline-flex;
    flex: 0 0 17px;
    height: 17px;
    width: 17px;
}

.kk-contact-icon svg { display: block; height: 100%; width: 100%; }
.kk-contact-icon--mail { flex-basis: 16px; height: 16px; width: 16px; }
.kk-google-rating { gap: 4px; }
.kk-google-score { margin-right: 1px; }
.kk-google-stars { color: #ffd34e; font-size: 12px; letter-spacing: -1px; line-height: 1; }

.kk-navigation {
    gap: 40px;
    justify-content: space-between;
    min-height: 96px;
}

.kk-sr-only {
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.kk-menu-toggle {
    align-items: center;
    appearance: none;
    background: #f4f8f6 !important;
    border: 1px solid #b9d5ca !important;
    border-radius: 3px;
    color: var(--kk-green-dark) !important;
    cursor: pointer;
    display: none;
    height: 44px;
    justify-content: center;
    padding: 0;
    width: 44px;
}

.kk-menu-toggle:hover,
.kk-menu-toggle:focus-visible {
    background: #eaf4f0 !important;
    border-color: var(--kk-green) !important;
    color: var(--kk-green-dark) !important;
    outline: 0;
}

body.kk-site-core .kk-site-header button.kk-menu-toggle,
body.kk-site-core .kk-site-header button.kk-menu-toggle:hover,
body.kk-site-core .kk-site-header button.kk-menu-toggle:focus,
body.kk-site-core .kk-site-header button.kk-menu-toggle:focus-visible,
body.kk-site-core .kk-site-header button.kk-menu-toggle:active {
    -webkit-tap-highlight-color: transparent;
    background-color: #f4f8f6 !important;
    background-image: none !important;
    border-color: #b9d5ca !important;
    box-shadow: none !important;
    color: var(--kk-green-dark) !important;
    outline: 0 !important;
}

body.kk-site-core .kk-site-header button.kk-menu-toggle::before,
body.kk-site-core .kk-site-header button.kk-menu-toggle::after {
    content: none !important;
    display: none !important;
}

.kk-menu-toggle__lines {
    display: grid;
    gap: 5px;
    width: 20px;
}

.kk-menu-toggle__lines i {
    background: currentColor;
    display: block;
    height: 2px;
    transition: transform .18s ease, opacity .18s ease;
    width: 100%;
}

.kk-site-header.is-menu-open .kk-menu-toggle__lines i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.kk-site-header.is-menu-open .kk-menu-toggle__lines i:nth-child(2) { opacity: 0; }
.kk-site-header.is-menu-open .kk-menu-toggle__lines i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.kk-brand {
    color: var(--kk-ink) !important;
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap;
}

.kk-brand__name {
    font-family: var(--kk-serif);
    font-size: clamp(22px, 2.5vw, 31px);
}

.kk-brand__role {
    color: var(--kk-green-dark);
    font-size: 14px;
    letter-spacing: .16em;
    margin-top: 7px;
    text-transform: uppercase;
}

.kk-menu,
.kk-menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.kk-menu {
    align-items: center;
    display: flex;
    gap: 28px;
}

.kk-menu > li { position: relative; }

.kk-menu a {
    color: var(--kk-ink) !important;
    display: block;
    font-size: 14px;
    font-weight: 650;
    letter-spacing: .035em;
    padding: 12px 0;
    text-decoration: none;
}

.kk-menu a:hover,
.kk-menu .current-menu-item > a,
.kk-menu .current-menu-ancestor > a {
    color: var(--kk-green) !important;
}

.kk-menu .sub-menu {
    background: var(--kk-paper);
    border: 1px solid var(--kk-line);
    box-shadow: 0 14px 35px rgba(26, 38, 34, .12);
    display: none;
    left: -18px;
    min-width: 205px;
    padding: 10px 18px;
    position: absolute;
    top: calc(100% - 4px);
}

.kk-menu li:hover > .sub-menu,
.kk-menu li:focus-within > .sub-menu { display: block; }

.kk-main {
    background: var(--kk-paper);
    min-height: 45vh;
}

.kk-hero {
    background: #e8edeb;
    overflow: hidden;
}

.kk-hero .ls-container,
.kk-hero .ls-wp-container { max-width: 100% !important; }

.kk-home-hero {
    background: linear-gradient(135deg, #edf4f1 0%, #f8faf9 58%, #dfeae5 100%);
    border-bottom: 1px solid var(--kk-line);
    overflow: hidden;
}
.kk-home-hero__grid { align-items: stretch; display: grid; gap: 70px; grid-template-columns: 1.08fr .92fr; }
.kk-home-hero__copy { align-self: center; padding: 76px 0 82px; }
.kk-home-hero__copy h1 { color: var(--kk-ink); font-family: var(--kk-serif); font-size: clamp(48px, 5.5vw, 76px); font-weight: 500; letter-spacing: -.025em; line-height: 1.05; margin: 0 0 25px; max-width: 760px; }
.kk-home-hero__copy > p:not(.kk-eyebrow) { color: #4f5c56; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.65; margin: 0; max-width: 680px; }
.kk-home-hero__facts { display: flex; flex-wrap: wrap; gap: 9px 26px; list-style: none; margin: 34px 0 0; padding: 0; }
.kk-home-hero__facts li { border-bottom: 1px solid #a9bcb4; color: #4f5b56; font-size: 12px; font-weight: 750; letter-spacing: .09em; padding-bottom: 5px; text-transform: uppercase; }
.kk-home-hero__photo { margin: 0; min-height: 570px; overflow: hidden; position: relative; }
.kk-home-hero__photo img { height: 100%; inset: 0; object-fit: cover; object-position: center top; position: absolute; width: 100%; }

.kk-builder {
    display: grid;
    gap: 28px 32px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    padding-bottom: 80px;
    padding-top: 64px;
}

.kk-builder > .one_third { grid-column: span 2; }
.kk-builder > .one_half { grid-column: span 3; }
.kk-builder > .one_first { grid-column: 1 / -1; }
.kk-builder > .one_sixth { grid-column: span 1; }
.kk-builder > [data-folder="divider"][data-type="clear"] { display: none; }

.kk-builder h3,
.kk-prose h1,
.kk-prose h2,
.kk-prose h3 {
    color: var(--kk-ink);
    font-family: var(--kk-serif);
    font-weight: 500;
    line-height: 1.25;
}

.kk-builder h3 {
    align-items: center;
    display: flex;
    font-size: 25px;
    gap: 12px;
    margin: 0 0 18px;
}

.kk-builder .title_icon {
    align-items: center;
    color: var(--kk-green);
    display: inline-flex;
    font-size: 32px;
}

.kk-builder ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.kk-builder li {
    border-bottom: 1px solid var(--kk-line);
    padding: 8px 0;
}

.kk-builder li a {
    color: var(--kk-ink) !important;
    text-decoration: none;
}

.kk-builder li a:hover { color: var(--kk-green) !important; }

.kk-callout {
    align-items: center;
    background: var(--kk-green-dark);
    color: #fff;
    display: flex;
    gap: 30px;
    justify-content: space-between;
    padding: 32px 38px;
}

.kk-callout__content {
    font-family: var(--kk-serif);
    line-height: 1.5;
}

.kk-button {
    background: #fff;
    border-radius: 2px;
    color: var(--kk-green-dark) !important;
    display: inline-block;
    flex: 0 0 auto;
    font-weight: 700;
    padding: 12px 22px;
    text-decoration: none;
}

.kk-testimonial {
    background: var(--kk-soft);
    border-left: 4px solid var(--kk-green);
    margin: 0;
    padding: 26px 28px;
}

.kk-testimonial blockquote,
.kk-standalone-testimonial {
    border: 0;
    font-family: var(--kk-serif);
    font-size: 19px;
    margin: 0;
    padding: 0;
}

.kk-testimonial figcaption { margin-top: 18px; }

.kk-testimonial figcaption span {
    color: var(--kk-muted);
    display: block;
    font-size: 14px;
}

.kk-google-reviews { min-width: 0; position: relative; }
.kk-review { border: 0; margin: 0 0 24px; padding: 0; }
.kk-review-meta { align-items: center; display: flex; gap: 12px; margin-bottom: 14px; }
.kk-avatar {
    background: #e5f4f0;
    border-radius: 50%;
    color: var(--kk-green-dark);
    display: grid;
    flex: 0 0 42px;
    font-weight: 700;
    height: 42px;
    place-items: center;
    width: 42px;
}
.kk-review-meta strong { font-size: 14px; }
.kk-review-meta time { color: var(--kk-muted); display: block; font-size: 11px; line-height: 1.45; }
.kk-review-card {
    background: #fff;
    border: 1px solid var(--kk-line);
    border-radius: 4px;
    padding: 19px 20px 20px;
    position: relative;
}
.kk-review-card::before,
.kk-review-card::after {
    border-left: 9px solid transparent;
    border-right: 9px solid transparent;
    content: "";
    left: 18px;
    position: absolute;
    width: 0;
}
.kk-review-card::before { border-bottom: 10px solid var(--kk-line); top: -10px; }
.kk-review-card::after { border-bottom: 9px solid #fff; top: -8px; }
.kk-review-card__head { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 10px; }
.kk-stars { color: #fbbc04; font-size: 18px; letter-spacing: -1px; line-height: 1; }
.kk-google-mark { color: #4285f4; font: 700 18px/1 Arial, sans-serif; }
.kk-review-card p { color: #30353b; font-size: 14px; line-height: 1.55; margin: 0; }
.kk-review-summary { font-size: 14px; line-height: 1.55; margin: 26px 0 7px; text-align: center; }
.kk-archive-note { color: var(--kk-muted); font-size: 11px; line-height: 1.5; margin: 0; text-align: center; }
.kk-review-fallback { background: var(--kk-soft); border-left: 4px solid var(--kk-green); padding: 20px; }
.kk-review[hidden],
.kk-carousel-controls[hidden] { display: none !important; }
.kk-carousel-controls { align-items: center; display: flex; gap: 3px; position: absolute; right: 0; top: -51px; }
.kk-carousel-controls button {
    background: transparent;
    border: 0;
    color: var(--kk-green-dark);
    cursor: pointer;
    display: grid;
    font: 400 22px/1 Arial, sans-serif;
    height: 30px;
    padding: 0;
    place-items: center;
    width: 30px;
}
.kk-carousel-controls span {
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
}
[data-kk-carousel][data-kk-direction="next"] .kk-slide-enter { animation: kk-card-next .28s ease both; }
[data-kk-carousel][data-kk-direction="prev"] .kk-slide-enter { animation: kk-card-prev .28s ease both; }
@keyframes kk-card-next { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: translateX(0); } }
@keyframes kk-card-prev { from { opacity: 0; transform: translateX(-22px); } to { opacity: 1; transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .kk-slide-enter { animation: none !important; } }

.kk-clients {
    border-top: 1px solid var(--kk-line);
    padding-top: 36px;
}

.kk-client-logos {
    align-items: center;
    display: grid;
    gap: 28px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.kk-client-logo-wrap {
    align-items: center;
    display: flex;
    filter: grayscale(1);
    justify-content: center;
    min-height: 100px;
    opacity: .72;
}

.kk-client-logo {
    height: auto !important;
    max-height: 90px;
    max-width: 100%;
    object-fit: contain;
    width: auto !important;
}

.kk-content-page { padding: 56px 0 80px; }
.kk-prose { max-width: 920px; }

.kk-breadcrumbs {
    color: var(--kk-muted);
    display: flex;
    font-size: 13px;
    gap: 9px;
    margin-bottom: 24px;
}

.kk-prose h1 {
    font-size: clamp(36px, 5vw, 58px);
    margin: 0 0 32px;
}

.kk-prose h2 { font-size: clamp(28px, 4vw, 38px); }
.kk-prose h3 { font-size: 25px; }

.kk-entry-content img {
    height: auto;
    max-width: 100%;
}

.kk-entry-content input:not([type="checkbox"]):not([type="radio"]),
.kk-entry-content select,
.kk-entry-content textarea {
    border: 1px solid #cbd4d0;
    border-radius: 2px;
    box-sizing: border-box;
    font: inherit;
    max-width: 100%;
    padding: 11px 12px;
}

.kk-entry-content input[type="submit"],
.kk-entry-content button {
    background: var(--kk-green-dark);
    border: 0;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    padding: 12px 22px;
}

.kk-site-footer {
    background: #242b2f;
    color: #dce2df;
    padding: 54px 0 24px;
}

.kk-site-footer a { color: #fff !important; }

.kk-footer-grid {
    display: grid;
    gap: 44px;
    grid-template-columns: 2fr 1fr 1fr;
}

.kk-footer-title {
    color: #fff;
    font-family: var(--kk-serif);
    font-size: 20px;
    margin-top: 0;
}

.kk-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .14);
    display: flex;
    font-size: 13px;
    justify-content: space-between;
    margin-top: 38px;
    padding-top: 20px;
}

/* Shared page and form presentation. */
.kk-page-hero {
    background: linear-gradient(135deg, #edf4f1 0%, #f8faf9 58%, #e4eeea 100%);
    border-bottom: 1px solid var(--kk-line);
    padding: 62px 0 66px;
}

.kk-breadcrumbs {
    align-items: center;
    color: var(--kk-muted);
    display: flex;
    font-size: 13px;
    gap: 9px;
    margin-bottom: 28px;
}

.kk-breadcrumbs a { color: var(--kk-muted) !important; text-decoration: none; }
.kk-eyebrow {
    color: var(--kk-green-dark);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .15em;
    margin: 0 0 10px;
    text-transform: uppercase;
}

.kk-page-hero h1,
.kk-section-heading h2,
.kk-form-card h2,
.kk-publication h2 {
    color: var(--kk-ink);
    font-family: var(--kk-serif);
    font-weight: 500;
    line-height: 1.15;
}

.kk-page-hero h1 { font-size: clamp(42px, 6vw, 68px); margin: 0 0 18px; }
.kk-page-lead { color: #4f5c56; font-size: clamp(18px, 2.1vw, 22px); line-height: 1.6; margin: 0; max-width: 760px; }
.kk-section-heading { margin-bottom: 26px; }
.kk-section-heading h2,
.kk-form-card h2,
.kk-publication h2 { font-size: clamp(28px, 3.2vw, 40px); margin: 0; }

.kk-button {
    border: 1px solid transparent;
    box-sizing: border-box;
    display: inline-flex;
    font-size: 14px;
    font-weight: 720;
    justify-content: center;
    line-height: 1.25;
    padding: 14px 22px;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.kk-button:hover { transform: translateY(-1px); }
.kk-button--green { background: var(--kk-green-dark); color: #fff !important; }
.kk-button--green:hover { background: #005746; }
.kk-button--outline { border-color: #9db2aa; color: var(--kk-ink) !important; }
.kk-button--outline:hover { border-color: var(--kk-green-dark); color: var(--kk-green-dark) !important; }
.kk-text-link { font-weight: 700; text-decoration: none; }

/* Contact page. */
.kk-contact-layout {
    display: grid;
    gap: 52px;
    grid-template-columns: minmax(0, 1.65fr) minmax(310px, .75fr);
    padding-bottom: 88px;
    padding-top: 70px;
}
.kk-office-grid { display: grid; gap: 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kk-office-card {
    border: 1px solid var(--kk-line);
    box-shadow: 0 15px 38px rgba(32, 52, 45, .06);
    display: flex;
    flex-direction: column;
    min-height: 400px;
    padding: 30px;
}
.kk-office-card__head { border-bottom: 1px solid var(--kk-line); display: flex; flex-direction: column; margin-bottom: 22px; padding-bottom: 18px; }
.kk-office-card__head span { color: var(--kk-muted); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.kk-office-card__head strong { font-family: var(--kk-serif); font-size: 31px; font-weight: 500; }
.kk-office-card address { font-size: 17px; font-style: normal; line-height: 1.6; }
.kk-office-note { color: var(--kk-muted); font-size: 13px; margin: 8px 0 4px; }
.kk-office-card .kk-text-link { margin-bottom: 20px; }
.kk-hours { border-top: 1px solid var(--kk-line); margin: auto 0 22px; padding-top: 16px; }
.kk-hours div { display: flex; font-size: 13px; gap: 20px; justify-content: space-between; }
.kk-hours dt,
.kk-hours dd { font-family: var(--kk-sans); font-size: 13px; line-height: 1.65; }
.kk-hours dt { color: var(--kk-muted); font-weight: 400; }
.kk-hours dd { font-weight: 700; margin: 0; text-align: right; }
.kk-direct-contact { border-top: 1px solid var(--kk-line); margin-top: 58px; padding-top: 45px; }
.kk-contact-methods { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.kk-contact-methods div { background: var(--kk-soft); border-left: 3px solid var(--kk-green); padding: 18px 20px; }
.kk-contact-methods dt { color: var(--kk-muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.kk-contact-methods dd { font-size: 16px; font-weight: 700; margin: 2px 0 0; overflow-wrap: anywhere; }

.kk-form-card {
    align-self: start;
    background: #f7f9f8;
    border: 1px solid var(--kk-line);
    box-shadow: 0 16px 42px rgba(32, 52, 45, .07);
    padding: 32px;
}
.kk-contact-layout > .kk-form-card { position: sticky; top: 24px; }
.kk-form-card > p:not(.kk-eyebrow) { color: var(--kk-muted); font-size: 14px; margin: 14px 0 24px; }

/* Lawyer profile. */
.kk-lawyer-hero { padding-bottom: 0; }
.kk-lawyer-hero__grid { align-items: end; display: grid; gap: 64px; grid-template-columns: 1.08fr .92fr; }
.kk-lawyer-hero__copy { padding-bottom: 66px; }
.kk-lawyer-role { color: var(--kk-green-dark); font-family: var(--kk-serif); font-size: 25px; margin: -10px 0 20px; }
.kk-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.kk-lawyer-photo { align-self: stretch; margin: 0; min-height: 540px; overflow: hidden; position: relative; }
.kk-lawyer-photo img { height: 100%; inset: 0; object-fit: cover; object-position: center top; position: absolute; width: 100%; }
.kk-lawyer-content { display: grid; gap: 70px; grid-template-columns: 1.5fr .65fr; padding-bottom: 78px; padding-top: 76px; }
.kk-lawyer-story p { color: #4e5853; font-size: 17px; }
.kk-profile-facts { border-left: 1px solid var(--kk-line); padding-left: 35px; }
.kk-profile-facts div { border-bottom: 1px solid var(--kk-line); padding: 16px 0 22px; }
.kk-profile-facts span { color: var(--kk-green-dark); font-family: var(--kk-serif); font-size: 31px; }
.kk-profile-facts p { color: var(--kk-muted); font-size: 13px; line-height: 1.5; margin: 4px 0 0; }
.kk-expertise-section { background: #eff4f2; padding: 72px 0 78px; }
.kk-expertise-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kk-expertise-grid article { background: #fff; border-top: 3px solid var(--kk-green); min-height: 220px; padding: 26px 24px; }
.kk-expertise-grid article > span { color: var(--kk-green); font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.kk-expertise-grid h3 { font-family: var(--kk-serif); font-size: 22px; font-weight: 500; line-height: 1.25; margin: 18px 0 12px; }
.kk-expertise-grid p { color: var(--kk-muted); font-size: 14px; line-height: 1.6; margin: 0; }
.kk-lawyer-bottom { display: grid; gap: 70px; grid-template-columns: minmax(0, 1.2fr) minmax(310px, .8fr); padding-bottom: 88px; padding-top: 72px; }
.kk-publication { align-self: center; }
.kk-publication > p:not(.kk-eyebrow) { color: var(--kk-muted); font-size: 16px; max-width: 620px; }
.kk-lawyer-contact-section { background: #fff; padding: 72px 0 88px; }
.kk-lawyer-form-card {
    background: #f7f9f8;
    box-sizing: border-box;
    margin-inline: auto;
    max-width: 920px;
    padding: 42px 46px 44px;
    width: 100%;
}
.kk-lawyer-form-card__intro { border-bottom: 1px solid var(--kk-line); margin-bottom: 30px; padding-bottom: 25px; }
.kk-lawyer-form-card__intro > p:not(.kk-eyebrow) { color: var(--kk-muted); font-size: 15px; margin: 14px 0 0; max-width: 660px; }
.kk-lawyer-form-card .wpcf7 { max-width: none; }
.kk-lawyer-form-card .wpcf7-form:has(> .contact_left) { gap: 0 28px; }
.kk-lawyer-form-card .contact_left,
.kk-lawyer-form-card .contact_right { min-width: 0; }
.kk-lawyer-form-card .contact_left > label { margin-bottom: 15px; }
.kk-lawyer-form-card .contact_right textarea { min-height: 214px; }
.kk-lawyer-form-card .contact_center { border-top: 1px solid var(--kk-line); margin-top: 10px; padding-top: 22px; }
.kk-lawyer-form-card .contact_center > p:last-child { color: var(--kk-muted); font-size: 12px; line-height: 1.55; margin: 8px 0 0; max-width: 660px; }

/* Dynamic legal-services catalogue. */
.kk-services-intro {
    align-items: start;
    display: grid;
    gap: 70px;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    padding-bottom: 56px;
    padding-top: 68px;
}
.kk-services-intro h2,
.kk-services-catalog__head h2,
.kk-services-contact__copy h2 {
    color: var(--kk-ink);
    font-family: var(--kk-serif);
    font-weight: 500;
    line-height: 1.2;
}
.kk-services-intro h2 { font-size: clamp(30px, 3.5vw, 43px); margin: 0; }
.kk-services-intro > p { color: #525e58; font-size: 17px; margin: 7px 0 0; }
.kk-services-catalog { padding-bottom: 82px; }
.kk-services-catalog__head { align-items: baseline; border-bottom: 1px solid var(--kk-line); display: flex; justify-content: space-between; margin-bottom: 28px; padding-bottom: 15px; }
.kk-services-catalog__head h2 { font-size: 30px; margin: 0; }
.kk-services-catalog__head > span { color: var(--kk-muted); font-size: 13px; }
.kk-services-grid { display: grid; gap: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kk-service-card { margin: 0; min-width: 0; }
.kk-service-card > a { color: #fff !important; display: block; text-decoration: none; }
.kk-service-card figure { aspect-ratio: 470 / 303; background: #dfe9e5; margin: 0; overflow: hidden; position: relative; }
.kk-service-card__image { display: block; height: 100% !important; object-fit: cover; transition: transform .28s ease; width: 100% !important; }
.kk-service-card__fallback { align-items: center; background: linear-gradient(135deg, #dfeae5, #f4f7f5); color: var(--kk-green-dark); display: flex; font-family: var(--kk-serif); font-size: 62px; height: 100%; justify-content: center; }
.kk-service-card figcaption { align-items: center; background: rgba(0, 91, 73, .9); bottom: 0; box-sizing: border-box; display: flex; gap: 12px; justify-content: space-between; left: 0; min-height: 62px; padding: 10px 15px; position: absolute; right: 0; transition: background .2s ease; }
.kk-service-card figcaption,
.kk-service-card figcaption > span,
.kk-service-card figcaption small { color: #fff !important; }
.kk-service-card figcaption > span { font-size: 14px; font-weight: 700; line-height: 1.35; }
.kk-service-card figcaption small { flex: 0 0 auto; font-size: 20px; transition: transform .2s ease; }
.kk-service-card a:hover .kk-service-card__image,
.kk-service-card a:focus-visible .kk-service-card__image { transform: scale(1.04); }
.kk-service-card a:hover figcaption,
.kk-service-card a:focus-visible figcaption { background: rgba(0, 70, 56, .96); }
.kk-service-card a:hover figcaption small,
.kk-service-card a:focus-visible figcaption small { transform: translateX(3px); }
.kk-service-card a:focus-visible { outline: 3px solid rgba(0, 143, 115, .28); outline-offset: 3px; }
.kk-services-contact-section { background: #eff4f2; padding: 72px 0 82px; }
.kk-services-contact { align-items: start; display: grid; gap: 70px; grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr); }
.kk-services-contact__copy { padding-top: 18px; }
.kk-services-contact__copy h2 { font-size: clamp(31px, 3.5vw, 43px); margin: 0 0 18px; }
.kk-services-contact__copy > p:not(.kk-eyebrow) { color: var(--kk-muted); font-size: 16px; margin-bottom: 28px; }
.kk-services-contact .kk-form-card { background: #fff; }

/* Contact Form 7: shared styles for short and long forms. */
.kk-site-core .wpcf7 { max-width: 900px; }
.kk-site-core .wpcf7-form p { margin: 0 0 15px; }
.kk-site-core .wpcf7-form label { color: #424c47; display: block; font-size: 13px; font-weight: 650; line-height: 1.45; }
.kk-site-core .wpcf7-form-control-wrap { display: block; }
.kk-site-core .wpcf7 input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]),
.kk-site-core .wpcf7 select,
.kk-site-core .wpcf7 textarea {
    background: #fff;
    border: 1px solid #cbd6d1;
    border-radius: 2px;
    box-shadow: none;
    box-sizing: border-box;
    color: var(--kk-ink);
    font: 400 14px/1.45 var(--kk-sans);
    margin-top: 5px;
    max-width: none;
    padding: 11px 12px;
    transition: border-color .16s ease, box-shadow .16s ease;
    width: 100%;
}
.kk-site-core .wpcf7 textarea { min-height: 125px; resize: vertical; }
.kk-site-core .wpcf7 input:focus,
.kk-site-core .wpcf7 select:focus,
.kk-site-core .wpcf7 textarea:focus { border-color: var(--kk-green) !important; box-shadow: 0 0 0 3px rgba(0, 143, 115, .12) !important; outline: 0; }
.kk-site-core .wpcf7 input[type=checkbox],
.kk-site-core .wpcf7 input[type=radio] { accent-color: var(--kk-green-dark); }
.kk-site-core .wpcf7 input[type=file] { border: 1px dashed #b9c9c2; box-sizing: border-box; max-width: 100%; padding: 9px; width: 100%; }
.kk-site-core .wpcf7-submit,
.kk-site-core .cpp_form .cp_subbtn,
.kk-site-core .cpp_form button.pbSubmit {
    background: var(--kk-green-dark) !important;
    border: 0 !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    color: #fff !important;
    cursor: pointer;
    font: 700 14px/1.3 var(--kk-sans) !important;
    min-height: 45px;
    padding: 12px 22px !important;
}
.kk-site-core .wpcf7-submit:hover,
.kk-site-core .cpp_form .cp_subbtn:hover,
.kk-site-core .cpp_form button.pbSubmit:hover { background: #005746 !important; }
.kk-site-core .wpcf7-not-valid-tip { color: #9c3030; font-size: 12px; margin-top: 5px; }
.kk-site-core .wpcf7-response-output { margin: 16px 0 0 !important; padding: 12px 14px !important; }
.kk-site-core .wpcf7-form:has(> .contact_left) { display: grid; gap: 0 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kk-site-core .wpcf7-form > .contact_left,
.kk-site-core .wpcf7-form > .contact_right { float: none; margin: 0; width: auto; }
.kk-site-core .wpcf7-form > .contact_center,
.kk-site-core .wpcf7-form > .wpcf7-response-output { grid-column: 1 / -1; }

/* Structured questionnaires transferred from the audited judrkazda.cz forms. */
.kk-site-core .big-custom-form { max-width: 900px; }
.kk-site-core .big-custom-form .form-row > p,
.kk-site-core .big-custom-form > p:has(> label:nth-of-type(2)) { display: grid; gap: 14px 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kk-site-core .big-custom-form .form-row > p > br,
.kk-site-core .big-custom-form > p:has(> label:nth-of-type(2)) > br { display: none; }

.kk-site-core .jk-gift-form {
    --jk-form-accent: var(--kk-green-dark);
    --jk-form-border: #d9e3de;
    --jk-form-soft: #f5f8f6;
    color: #333c38;
    font: 400 15px/1.6 var(--kk-sans);
    max-width: 900px;
}
.kk-site-core .jk-gift-form * { box-sizing: border-box; }
.kk-site-core .jk-gift-form .form-notice { background: #eff6f3; border: 1px solid #d5e5de; border-left: 4px solid var(--jk-form-accent); display: flex; flex-direction: column; gap: 3px; margin: 0 0 22px; padding: 17px 20px; }
.kk-site-core .jk-gift-form .form-notice strong { color: var(--kk-ink); font-size: 16px; }
.kk-site-core .jk-gift-form .jk-form-section { background: #fff; border: 1px solid var(--jk-form-border); box-shadow: 0 5px 18px rgba(29, 49, 40, .045); margin: 0 0 20px; padding: 27px 28px 29px; }
.kk-site-core .jk-gift-form .jk-form-section-head { align-items: flex-start; border-bottom: 1px solid #e5ebe8; display: flex; gap: 14px; margin: 0 0 22px; padding: 0 0 18px; }
.kk-site-core .jk-gift-form .jk-form-section-head > span,
.kk-site-core .jk-gift-form .jk-form-section-head > p:first-child { background: var(--jk-form-accent); border-radius: 50%; color: #fff; display: grid; flex: 0 0 34px; font-size: 14px; font-weight: 700; height: 34px; margin: 1px 0 0 !important; place-items: center; width: 34px; }
.kk-site-core .jk-gift-form .jk-form-section-head > p:first-child > span { color: inherit; font: inherit; }
.kk-site-core .jk-gift-form .jk-form-section-head h3 { color: var(--kk-ink); font-family: var(--kk-serif); font-size: 24px !important; font-weight: 500; line-height: 1.25 !important; margin: 0 0 3px !important; }
.kk-site-core .jk-gift-form .jk-form-section-head p { color: var(--kk-muted); font-size: 13px; margin: 0 !important; }
.kk-site-core .jk-gift-form .jk-form-grid,
.kk-site-core .jk-gift-form .jk-person-grid { display: grid; gap: 17px 20px; }
.kk-site-core .jk-gift-form .jk-form-grid-two,
.kk-site-core .jk-gift-form .jk-person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kk-site-core .jk-gift-form .jk-form-grid > p { display: contents; }
.kk-site-core .jk-gift-form .jk-form-grid > p > br { display: none; }
.kk-site-core .jk-gift-form .jk-form-field { color: #37413c; display: block; font-size: 13px; font-weight: 650; margin: 0 0 17px; min-width: 0; }
.kk-site-core .jk-gift-form .jk-form-grid > .jk-form-field { margin-bottom: 0; }
.kk-site-core .jk-gift-form .jk-form-field > span:first-child { display: block; margin-bottom: 7px; }
.kk-site-core .jk-gift-form .jk-form-field em { background: #e8f2ee; border-radius: 8px; color: var(--kk-green-dark); display: inline-block; font-size: 9px; font-style: normal; font-weight: 750; margin-left: 5px; padding: 2px 6px; text-transform: uppercase; }
.kk-site-core .jk-gift-form .jk-form-field small,
.kk-site-core .jk-gift-form .jk-form-help { color: #737e78; display: block; font-size: 11.5px; font-weight: 400; margin: -3px 0 7px; }
.kk-site-core .jk-gift-form .jk-person-card { background: var(--jk-form-soft); border: 1px solid #e0e7e3; padding: 18px 19px 3px; }
.kk-site-core .jk-gift-form .jk-person-card h4 { color: var(--kk-ink); font-size: 14px !important; margin: 0 0 12px !important; }
.kk-site-core .jk-gift-form .jk-form-optional { background: #fff; border: 1px solid var(--jk-form-border); margin-top: 15px; }
.kk-site-core .jk-gift-form .jk-form-optional summary { color: var(--kk-green-dark); cursor: pointer; font-size: 13px; font-weight: 700; list-style: none; padding: 13px 44px 13px 16px; position: relative; }
.kk-site-core .jk-gift-form .jk-form-optional summary::-webkit-details-marker { display: none; }
.kk-site-core .jk-gift-form .jk-form-optional summary::after { content: "+"; font-size: 22px; font-weight: 400; position: absolute; right: 17px; top: 50%; transform: translateY(-53%); }
.kk-site-core .jk-gift-form .jk-form-optional[open] summary::after { content: "−"; }
.kk-site-core .jk-gift-form .jk-form-optional[open] summary { border-bottom: 1px solid var(--jk-form-border); }
.kk-site-core .jk-gift-form .jk-form-optional > .jk-person-grid,
.kk-site-core .jk-gift-form .jk-form-optional > .jk-form-grid { padding: 17px; }
.kk-site-core .jk-gift-form .jk-choice-block,
.kk-site-core .jk-gift-form .jk-check-field { background: var(--jk-form-soft); border: 1px solid #dfe7e3; margin: 0 0 17px; padding: 14px 16px; }
.kk-site-core .jk-gift-form .jk-choice-block > p { font-size: 13px; font-weight: 700; margin: 0 0 8px; }
.kk-site-core .jk-gift-form .jk-choice-group .wpcf7-radio,
.kk-site-core .jk-gift-form .jk-check-field .wpcf7-checkbox { align-items: center; display: flex; flex-wrap: wrap; gap: 10px 18px; }
.kk-site-core .jk-gift-form .wpcf7-list-item { margin: 0 !important; }
.kk-site-core .jk-gift-form .wpcf7-list-item label { align-items: center; cursor: pointer; display: inline-flex; gap: 8px; font-weight: 500; }
.kk-site-core .jk-gift-form .jk-burden-fields { border-top: 1px solid #e1e8e4; margin-top: 18px; padding-top: 20px; }
.kk-site-core .jk-gift-form .jk-burden-fields[hidden],
.kk-site-core .jk-divorce-form .jk-choice-followup[hidden] { display: none !important; }
.kk-site-core .jk-gift-form .jk-form-submit { align-items: center; display: flex; gap: 20px; padding-top: 7px; }
.kk-site-core .jk-gift-form .jk-form-submit p { color: #747e79; font-size: 11.5px; margin: 0 !important; max-width: 570px; }
.kk-site-core .jk-divorce-form .jk-choice-followup { background: #fff; border-left: 3px solid var(--jk-form-accent); color: var(--kk-muted); display: flex; flex-direction: column; font-size: 12px; margin-top: 13px; padding: 11px 13px; }
.kk-site-core .jk-children-form .jk-care-grid,
.kk-site-core .jk-children-form .jk-parent-grid,
.kk-site-core .jk-batch-form .jk-party-grid,
.kk-site-core .jk-batch-form .jk-option-grid,
.kk-site-core .jk-batch-form .jk-service-explanations { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kk-site-core .jk-children-form .jk-form-optional > .jk-children-stack { display: grid; gap: 17px; padding: 17px; }
.kk-site-core .jk-batch-form .jk-form-optional > .jk-people-stack { display: grid; gap: 17px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 17px; }
.kk-site-core .jk-batch-form .jk-service-explanations { margin-top: 16px; }
.kk-site-core .jk-batch-form .jk-service-explanations > div { background: #fff; border: 1px solid #d9e2dd; display: flex; flex-direction: column; gap: 4px; padding: 14px 15px; }
.kk-site-core .jk-batch-form .jk-choice-group-stacked .wpcf7-radio { align-items: flex-start; flex-direction: column; }
.kk-site-core .jk-batch-form .jk-option-stack { display: grid; gap: 14px; }

/* Appointment Hour Booking. */
.kk-site-core .cpp_form { box-sizing: border-box; margin: 0 !important; max-width: 900px !important; padding-top: 20px !important; }
.kk-site-core .cpp_form .fieldCalendar,
.kk-site-core .cpp_form .ui-datepicker { box-sizing: border-box; max-width: 100% !important; width: 100% !important; }
.kk-site-core .cpp_form .ui-datepicker { border: 1px solid var(--kk-line); }
.kk-site-core .cpp_form .ui-datepicker table { display: table !important; margin: 0 !important; table-layout: fixed; width: 100% !important; }
.kk-site-core .cpp_form .ui-datepicker th,
.kk-site-core .cpp_form .ui-datepicker td { padding: 0 !important; text-align: center; }
.kk-site-core .cpp_form .ui-datepicker td a,
.kk-site-core .cpp_form .ui-datepicker td span { align-items: center; box-sizing: border-box; display: flex !important; justify-content: center; min-height: 40px; }
.kk-site-core .cpp_form .ui-datepicker-header { background: #eaf3ef !important; border: 0 !important; color: var(--kk-ink) !important; }
.kk-site-core .cpp_form .ui-state-active { background: var(--kk-green-dark) !important; border-color: var(--kk-green-dark) !important; color: #fff !important; }
.kk-site-core .cpp_form .pbSubmit { margin-top: 18px; }
.kk-site-core .cpp_form button.pbSubmit::before,
.kk-site-core .cpp_form button.pbSubmit::after { content: none !important; display: none !important; }

/* Booking pages: replace the booking plugin's legacy float layout. */
.kk-booking-page .cmsmasters-headline { display: none !important; }
.kk-booking-page .cmsmasters-main__outer { padding: 0 !important; }
.kk-booking-page .cmsmasters-main__inner { box-sizing: border-box; margin-inline: auto; max-width: 1180px; padding: 64px 24px 88px !important; width: 100%; }
.kk-booking-page .cmsmasters-content > h2 { color: var(--kk-ink); font-family: var(--kk-serif); font-size: clamp(34px, 4vw, 48px); font-weight: 500; line-height: 1.2; margin: 0 0 18px; }
.kk-booking-page .cmsmasters-content > h2 + div { color: var(--kk-muted); font-size: 16px; line-height: 1.7; max-width: 900px; }
.kk-booking-page .cpp_form { background: #f7f9f8; border: 1px solid var(--kk-line); box-shadow: 0 16px 42px rgba(32, 52, 45, .07); margin-top: 38px !important; max-width: none !important; padding: 36px 38px 40px !important; }
.kk-booking-page #fbuilder { color: var(--kk-ink); font-family: var(--kk-sans); }
.kk-booking-page #fbuilder .fform { border-bottom: 1px solid var(--kk-line); margin-bottom: 28px; padding: 0 0 22px; }
.kk-booking-page #fbuilder .fform h1 { color: var(--kk-ink); font-family: var(--kk-serif); font-size: clamp(30px, 3.4vw, 42px); font-weight: 500; line-height: 1.2; margin: 0; }
.kk-booking-page #fbuilder .pbreak.pb0 { align-items: start; display: grid !important; gap: 13px 44px; grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr); }
.kk-booking-page #fbuilder .pbreak > .fields:first-child { background: #fff; border: 1px solid var(--kk-line); grid-column: 1; grid-row: 1 / span 9; min-width: 0; padding: 24px !important; }
.kk-booking-page #fbuilder .pbreak > .fields:not(:first-child),
.kk-booking-page #fbuilder .pbreak > .captcha,
.kk-booking-page #fbuilder .pbreak > .pbSubmit { grid-column: 2; }
.kk-booking-page #fbuilder .pbreak > .fields { box-sizing: border-box; float: none !important; min-width: 0; padding: 0 !important; width: 100% !important; }
.kk-booking-page #fbuilder .left_aligned .fields > label,
.kk-booking-page #fbuilder .left_aligned .fields > .dfield { float: none !important; width: 100% !important; }
.kk-booking-page #fbuilder .pbreak > .fields:first-child > label { display: none; }
.kk-booking-page #fbuilder .fields > label { color: #3f4944; display: block; font-size: 13px; font-weight: 700; line-height: 1.4; margin-bottom: 6px; }
.kk-booking-page #fbuilder .r { color: var(--kk-green-dark); }
.kk-booking-page #fbuilder input[type="text"],
.kk-booking-page #fbuilder input[type="email"],
.kk-booking-page #fbuilder select,
.kk-booking-page #fbuilder textarea { background: #fff !important; border: 1px solid #cbd6d1 !important; border-radius: 2px !important; box-shadow: none !important; box-sizing: border-box; color: var(--kk-ink) !important; font: 400 14px/1.45 var(--kk-sans) !important; min-height: 46px; padding: 11px 12px !important; width: 100% !important; }
.kk-booking-page #fbuilder input:focus,
.kk-booking-page #fbuilder select:focus,
.kk-booking-page #fbuilder textarea:focus { border-color: var(--kk-green) !important; box-shadow: 0 0 0 3px rgba(0, 143, 115, .12) !important; outline: 0; }
.kk-booking-page #fbuilder .fieldCalendarService { margin-bottom: 20px; }
.kk-booking-page #fbuilder .dfield.fapp { display: block !important; width: 100% !important; }
.kk-booking-page #fbuilder .fieldCalendar,
.kk-booking-page #fbuilder .slotsCalendar { display: block !important; flex: none !important; width: 100% !important; }
.kk-booking-page #fbuilder .ui-datepicker-inline { max-width: none !important; min-width: 0 !important; width: 100% !important; }
.kk-booking-page #fbuilder .ui-datepicker { background: #fff; border: 1px solid var(--kk-line); }
.kk-booking-page #fbuilder .ui-datepicker-header { background: #e7f1ed !important; color: var(--kk-ink) !important; font-size: 19px !important; line-height: 1.2 !important; min-height: 52px; padding: 0 52px !important; }
.kk-booking-page #fbuilder .ui-datepicker-title { line-height: 52px !important; padding: 0 !important; }
.kk-booking-page #fbuilder .ui-datepicker th { background: #f1f4f3 !important; color: #55615c !important; font: 700 12px/36px var(--kk-sans) !important; }
.kk-booking-page #fbuilder .ui-datepicker td a,
.kk-booking-page #fbuilder .ui-datepicker td span { align-items: center; display: flex !important; height: 38px !important; justify-content: center; margin: 2px auto !important; max-height: 38px !important; max-width: 38px !important; min-height: 38px !important; padding: 0 !important; width: 38px !important; }
.kk-booking-page #fbuilder .ui-datepicker td a.ui-state-active { background: var(--kk-green-dark) !important; color: #fff !important; }
.kk-booking-page #fbuilder .ui-datepicker .ui-datepicker-prev,
.kk-booking-page #fbuilder .ui-datepicker .ui-datepicker-next { height: 16px !important; margin: 17px 19px !important; width: 16px !important; }
.kk-booking-page #fbuilder .slots { align-items: center; display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-start; padding: 22px 0 0 !important; text-align: left; }
.kk-booking-page #fbuilder .slots > span { display: block; font-size: 14px; font-weight: 700; width: 100%; }
.kk-booking-page #fbuilder .slots > br { display: none; }
.kk-booking-page #fbuilder .slots > div { margin: 0 !important; }
.kk-booking-page #fbuilder .slots div a { border-color: var(--kk-green) !important; color: var(--kk-green-dark) !important; display: block; font-size: 13px; padding: 8px 12px !important; }
.kk-booking-page #fbuilder .slots div:not(.htmlUsed) a:hover,
.kk-booking-page #fbuilder .slots div.currentSelection a { background: var(--kk-green-dark) !important; color: #fff !important; }
.kk-booking-page #fbuilder .cff-checkbox-field { margin-top: 3px; }
.kk-booking-page #fbuilder .cff-checkbox-field .dfield { float: none !important; width: 100% !important; }
.kk-booking-page #fbuilder .cff-checkbox-field label { align-items: flex-start; display: flex; gap: 9px; width: 100% !important; }
.kk-booking-page #fbuilder .cff-checkbox-field input { accent-color: var(--kk-green-dark); flex: 0 0 auto; margin-top: 5px; }
.kk-booking-page #fbuilder .cff-checkbox-field a { color: var(--kk-green-dark) !important; text-decoration: none; }
.kk-booking-page #fbuilder .left_aligned .captcha { background: #fff; border: 1px solid var(--kk-line); box-sizing: border-box; font-size: 13px; line-height: 1.55; margin: 5px 0 0 !important; padding: 16px; width: 100%; }
.kk-booking-page #fbuilder .captcha img { height: auto; margin: 7px 0; max-width: 180px; width: 100%; }
.kk-booking-page #fbuilder .captcha .dfield { float: none !important; margin-top: 6px; width: 100% !important; }
.kk-booking-page #fbuilder .pbreak.pb0 .pbSubmit { justify-self: start; margin: 5px 0 0 !important; min-width: 150px; }

@media (max-width: 800px) {
    .kk-booking-page .cmsmasters-main__inner { padding: 46px 18px 64px !important; }
    .kk-booking-page .cpp_form { padding: 25px 20px 28px !important; }
    .kk-booking-page #fbuilder .pbreak.pb0 { display: block !important; }
    .kk-booking-page #fbuilder .pbreak > .fields:first-child { margin-bottom: 24px; padding: 16px; }
    .kk-booking-page #fbuilder .pbreak > .fields:not(:first-child) { margin-bottom: 14px; }
    .kk-booking-page #fbuilder .left_aligned .captcha { margin-top: 17px !important; }
    .kk-booking-page #fbuilder .pbreak.pb0 .pbSubmit { margin-top: 17px !important; width: 100%; }
}

@media (max-width: 900px) {
    .kk-navigation {
        align-items: center;
        display: grid;
        gap: 0 18px;
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 78px;
        padding-bottom: 13px;
        padding-top: 13px;
        position: relative;
    }
    .kk-brand { min-width: 0; }
    .kk-brand__name { font-size: clamp(21px, 4.2vw, 28px); overflow: hidden; text-overflow: ellipsis; }
    .kk-brand__role { font-size: 12px; margin-top: 5px; }
    .kk-menu-toggle { display: inline-flex; }
    .kk-primary-nav {
        background: #fff;
        border: 1px solid var(--kk-line);
        box-shadow: 0 8px 24px rgb(20 44 36 / 14%);
        margin: 0;
        max-height: calc(100dvh - 150px);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 10px;
        position: absolute;
        right: 24px;
        top: 100%;
        width: min(340px, calc(100vw - 48px));
        z-index: 1010;
    }
    .kk-js .kk-site-header:not(.is-menu-open) .kk-primary-nav { display: none; }
    .kk-menu { align-items: stretch; flex-direction: column; gap: 0; width: 100%; }
    .kk-menu > li { border-bottom: 1px solid var(--kk-line); width: 100%; }
    .kk-menu a { padding: 12px 2px; }
    .kk-primary-nav .kk-menu a { color: var(--kk-ink) !important; }
    .kk-primary-nav .kk-menu a:hover,
    .kk-primary-nav .kk-menu .current-menu-item > a { color: var(--kk-green-dark) !important; }
    .kk-menu .sub-menu {
        border: 0;
        box-shadow: none;
        display: block;
        left: 0;
        padding: 0 0 8px 18px;
        position: static;
    }
    .kk-menu .sub-menu li { border-top: 1px solid #edf1ef; }
    .kk-menu .sub-menu a { font-size: 13px; padding: 9px 2px; }
    .kk-builder > .one_third { grid-column: span 3; }
    .kk-client-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kk-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kk-footer-grid > :first-child { grid-column: 1 / -1; }
    .kk-footer-grid a { overflow-wrap: anywhere; }
    .kk-contact-layout,
    .kk-lawyer-content,
    .kk-lawyer-bottom { gap: 42px; grid-template-columns: 1fr; }
    .kk-contact-layout > .kk-form-card { position: static; }
    .kk-lawyer-hero__grid { gap: 36px; grid-template-columns: 1fr 1fr; }
    .kk-expertise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kk-home-hero__grid { gap: 36px; grid-template-columns: 1fr 1fr; }
    .kk-home-hero__copy { padding: 58px 0 64px; }
    .kk-home-hero__photo { min-height: 520px; }
    .kk-services-intro,
    .kk-services-contact { gap: 40px; grid-template-columns: 1fr; }
    .kk-services-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kk-services-contact__copy { padding-top: 0; }
}

@media (max-width: 640px) {
    .kk-shell { padding-inline: 18px; }
    .kk-contact-bar__inner {
        min-height: 0;
        padding-bottom: 9px;
        padding-top: 9px;
    }
    .kk-contact-links { align-items: center; display: flex; flex-wrap: nowrap; gap: 8px; justify-content: flex-start; }
    .kk-contact-item { font-size: 11px; min-height: 21px; white-space: nowrap; }
    .kk-contact-item.kk-address,
    .kk-contact-links > a:nth-child(2) { display: none; }
    .kk-call-prefix { display: none; }
    .kk-google-rating { margin-left: auto; }
    .kk-google-rating > span:last-child { display: none; }
    .kk-contact-icon { flex-basis: 14px; height: 14px; width: 14px; }
    .kk-contact-icon--mail { flex-basis: 14px; height: 14px; width: 14px; }
    .kk-navigation { min-height: 72px; }
    .kk-brand__name { font-size: clamp(20px, 6vw, 25px); }
    .kk-menu-toggle { height: 42px; width: 42px; }
    .kk-primary-nav { right: 18px; width: min(340px, calc(100vw - 36px)); }
    .kk-builder { display: block; padding-bottom: 54px; padding-top: 40px; }
    .kk-builder > div { margin-bottom: 34px; }
    .kk-callout { align-items: flex-start; flex-direction: column; padding: 26px 24px; }
    .kk-client-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kk-footer-grid { grid-template-columns: 1fr; }
    .kk-footer-grid > :first-child { grid-column: auto; }
    .kk-page-hero { padding: 42px 0 46px; }
    .kk-home-hero__grid { display: block; }
    .kk-home-hero__copy { padding: 48px 0 44px; }
    .kk-home-hero__copy h1 { font-size: clamp(43px, 13vw, 58px); }
    .kk-home-hero__photo { min-height: 470px; }
    .kk-office-grid,
    .kk-contact-methods,
    .kk-lawyer-hero__grid,
    .kk-expertise-grid,
    .kk-site-core .wpcf7-form:has(> .contact_left),
    .kk-site-core .big-custom-form .form-row > p,
    .kk-site-core .big-custom-form > p:has(> label:nth-of-type(2)),
    .kk-site-core .jk-gift-form .jk-form-grid-two,
    .kk-site-core .jk-gift-form .jk-person-grid,
    .kk-site-core .jk-children-form .jk-care-grid,
    .kk-site-core .jk-children-form .jk-parent-grid,
    .kk-site-core .jk-batch-form .jk-party-grid,
    .kk-site-core .jk-batch-form .jk-option-grid,
    .kk-site-core .jk-batch-form .jk-service-explanations,
    .kk-site-core .jk-batch-form .jk-form-optional > .jk-people-stack { grid-template-columns: 1fr; }
    .kk-services-intro { gap: 22px; padding-bottom: 42px; padding-top: 48px; }
    .kk-services-grid { gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kk-service-card figcaption { min-height: 58px; padding: 9px 11px; }
    .kk-service-card figcaption > span { font-size: 13px; }
    .kk-services-contact-section { padding: 52px 0 60px; }
    .kk-office-card { min-height: 0; padding: 24px; }
    .kk-lawyer-hero__copy { padding-bottom: 16px; }
    .kk-lawyer-photo { min-height: 440px; }
    .kk-lawyer-content { padding-bottom: 55px; padding-top: 50px; }
    .kk-profile-facts { border-left: 0; border-top: 1px solid var(--kk-line); padding-left: 0; }
    .kk-form-card { padding: 25px 20px; }
    .kk-lawyer-contact-section { padding: 52px 0 60px; }
    .kk-lawyer-form-card__intro { margin-bottom: 23px; padding-bottom: 20px; }
    .kk-lawyer-form-card .contact_right textarea { min-height: 170px; }
    .kk-site-core .jk-gift-form .jk-form-section { padding: 21px 16px 23px; }
    .kk-site-core .jk-gift-form .jk-form-submit { align-items: stretch; flex-direction: column; }
    .kk-site-core .jk-gift-form .jk-form-submit .wpcf7-submit { width: 100%; }
}

@media (max-width: 420px) {
    .kk-services-grid { grid-template-columns: 1fr; }
    .kk-service-card figcaption > span { font-size: 14px; }
}
