*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; overflow-x: clip; }
.wp-block-cover {
    position: relative;
    background-size: cover;
    background-position: 50%;
    min-height: 430px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1em;
    overflow: hidden;
    box-sizing: border-box;
}
.wp-block-cover__background,
.wp-block-cover__image-background,
.wp-block-cover__video-background {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    max-width: none;
    max-height: none;
    object-fit: cover;
}
.wp-block-cover__inner-container {
    width: 100%;
    z-index: 1;
    color: #fff;
    box-sizing: border-box;
}
.wp-block-columns {
    display: flex;
    box-sizing: border-box;
    flex-wrap: wrap;
    align-items: stretch;
}
.wp-block-column {
    flex-grow: 1;
    min-width: 0;
    word-break: break-word;
    overflow-wrap: break-word;
    box-sizing: border-box;
}
.wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75em;
    box-sizing: border-box;
}
.wp-block-button { box-sizing: border-box; }
.wp-block-button__link {
    display: inline-block;
    text-decoration: none;
    box-sizing: border-box;
    word-break: break-word;
}
.wp-block-group { box-sizing: border-box; }
.wp-block-image { box-sizing: border-box; }
.wp-block-image img { max-width: 100%; height: auto; }
.wp-block-media-text {
    display: grid;
    grid-template-columns: 50% 1fr;
    box-sizing: border-box;
}
.alignfull { width: 100%; max-width: none; }
.alignwide { max-width: 1200px; margin-left: auto; margin-right: auto; }
.has-text-align-center { text-align: center; }
.has-text-align-left { text-align: left; }
.has-text-align-right { text-align: right; }
.has-background { box-sizing: border-box; }
@media (max-width: 781px) {
    .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; width: 100%; }
    .wp-block-media-text { grid-template-columns: 1fr !important; }
}
/* WordPress core cover stacking + default overlay (wp-block-library ships these; the
   copy above does not): photo 0, overlay 1, content on top. */
.wp-block-cover__image-background, .wp-block-cover__video-background { z-index: 0; }
.wp-block-cover__background { z-index: 1; }
.wp-block-cover__inner-container { position: relative; z-index: 1; }
.wp-block-cover .has-background-dim:not([class*="-background-color"]) { background-color: #000; }
.wp-block-cover .wp-block-cover__background.has-background-dim { opacity: .5; }

/* Layout safety net: nothing on the page is ever wider than the screen. :where() keeps these
   at the wrapper's own weight, so any rule of the site stylesheet still wins. clip, unlike
   hidden, does not turn the wrapper into a scroll box, so a sticky header keeps sticking. */
.uw-ai-page { overflow-x: clip; }
.uw-ai-page :where(figure.wp-block-image) { margin: 0; }
.uw-ai-page :where(img, video, iframe, embed, object, svg, canvas, table) { max-width: 100%; }
.uw-ai-page :where(pre, .wp-block-table, .wp-block-code) { max-width: 100%; overflow-x: auto; }
.uw-ai-page :where(h1, h2, h3, h4, h5, h6, p, li, a, td, th, figcaption, blockquote, summary) { overflow-wrap: break-word; }

/* df-library: tokens (pack fresh) */
.uw-ai-page {
    --uw-primary: #7a4a2b;
    --uw-primary-contrast: #ffffff;
    --uw-primary-on-dark: #ffffff;
    --uw-primary-on-dark-text: #2a1d14;
    --uw-accent: #c9892f;
    --uw-color-primary: #7a4a2b;
    --uw-color-neutral-dark: #2a1d14;
    --uw-bg: #ffffff;
    --uw-surface: #ffffff;
    --uw-surface-alt: #f2edea;
    --uw-dark: #2a1d14;
    --uw-band: #7a4a2b;
    --uw-band-2: #593928;
    --uw-on-dark: #ffffff;
    --uw-on-dark-muted: #d4d2d0;
    --uw-ink: #2a1d14;
    --uw-heading: #2a1d14;
    --uw-muted: #594f48;
    --uw-link: #7a4a2b;
    --uw-eyebrow: #875c20;
    --uw-line: #eae8e8;
    --uw-icon: #8f6221;
    --uw-icon-bg: #f7eee2;
    --uw-field: #ffffff;
    --uw-field-text: #111827;
    --uw-border: #d0cdcb;
    --uw-radius: 20px;
    --uw-radius-lg: 28px;
    --uw-shadow: 0 2px 4px rgba(15, 23, 42, .03), 0 18px 40px -24px rgba(15, 23, 42, .22);
    --uw-shadow-lg: 0 30px 60px -32px rgba(15, 23, 42, .40);
    --uw-overlay-strong: rgba(42, 29, 20, .86);
    --uw-overlay-soft: rgba(42, 29, 20, .42);
    --uw-overlay-mid: rgba(42, 29, 20, .74);
    --uw-button-radius: 999px;
    --uw-heading-weight: 700;
    --uw-heading-tracking: -0.015em;
    --uw-section-y: clamp(64px, 8vw, 112px);
    --uw-container: 1180px;
    --uw-gap: clamp(20px, 2.4vw, 32px);
    --uw-font-heading: "Merriweather", Georgia, "Times New Roman", serif;
    --uw-font-body: "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
/* df-library: base */
.uw-ai-page {
    background-color: var(--uw-bg); color: var(--uw-ink);
    font-family: var(--uw-font-body); font-size: 17px; line-height: 1.65;
    -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
.uw-ai-page :is(.df-section, .uw-header, .uw-footer, .wp-block-cover) :where(*) { margin-block-start: 0; }
.uw-ai-page :is(h1, h2, h3, h4) {
    font-family: var(--uw-font-heading); font-weight: var(--uw-heading-weight); letter-spacing: var(--uw-heading-tracking);
    color: var(--uw-heading); line-height: 1.15; margin: 0 0 .55em;
}
.uw-ai-page h1 { font-size: clamp(2.3rem, 1.5rem + 3.4vw, 4.1rem); line-height: 1.05; }
.uw-ai-page h2 { font-size: clamp(1.8rem, 1.3rem + 1.9vw, 2.75rem); }
.uw-ai-page h3 { font-size: clamp(1.1rem, 1.03rem + .35vw, 1.28rem); line-height: 1.3; letter-spacing: -.005em; }
.uw-ai-page p { margin: 0 0 1em; }
.uw-ai-page a { color: var(--uw-link); text-underline-offset: .18em; }
.uw-ai-page .df-section { position: relative; padding: var(--uw-section-y) 20px; }
.uw-ai-page .container { width: 100%; max-width: var(--uw-container); margin-inline: auto; }
.uw-ai-page :is(.container, .df-head, .df-split__text, .df-split__aside, .df-prose, .df-statement, .df-hero__card, .df-offset__panel, .df-collage__text) > :last-child { margin-bottom: 0; }
.uw-ai-page .center { text-align: center; }
.uw-ai-page .df-eyebrow {
    font-family: var(--uw-font-body); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--uw-eyebrow); margin: 0 0 1rem;
}
.uw-ai-page .df-lead { font-size: clamp(1.06rem, 1rem + .35vw, 1.22rem); line-height: 1.6; color: var(--uw-muted); }
.uw-ai-page .df-head { max-width: 46rem; margin-bottom: clamp(36px, 4.5vw, 60px); }
.uw-ai-page .df-head.center { margin-inline: auto; }
.uw-ai-page .df-head .df-lead { margin-bottom: 0; }
.uw-ai-page .media { margin: 0; }
.uw-ai-page .media img { display: block; width: 100%; height: auto; object-fit: cover; }
.uw-ai-page .df-photo img { border-radius: var(--uw-radius-lg); }
/* Buttons */
.uw-ai-page .wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 2rem 0 0; }
.uw-ai-page .wp-block-buttons > .wp-block-button { margin: 0; }
.uw-ai-page .wp-block-button__link {
    display: inline-flex; align-items: center; justify-content: center; gap: .5em;
    font-family: var(--uw-font-body); font-size: 1rem; font-weight: 700; line-height: 1.2; text-decoration: none;
    padding: 1em 1.8em; border: 2px solid transparent; border-radius: var(--uw-button-radius); cursor: pointer;
}
.uw-ai-page .btn--primary > .wp-block-button__link { background-color: var(--uw-primary); color: var(--uw-primary-contrast); border-color: var(--uw-primary); }
.uw-ai-page .btn--secondary > .wp-block-button__link { background-color: transparent; color: var(--uw-link); border-color: currentColor; }
.uw-ai-page .btn--light > .wp-block-button__link { background-color: #ffffff; color: var(--uw-dark); border-color: #ffffff; }
.uw-ai-page .wp-block-button__link:focus-visible { outline: 3px solid var(--uw-accent); outline-offset: 3px; }
.uw-ai-page .df-after { margin-top: clamp(32px, 4vw, 52px); justify-content: center; }
.uw-ai-page .df-badges { margin: 1.6rem 0 0; }
.uw-ai-page .df-badge { color: inherit; }
/* Rows lay out their children themselves: no flow margins inside them. */
.uw-ai-page :is(.df-grid, .df-split, .df-zigzag, .df-zig, .df-numbered, .df-numbered__row, .df-checks, .df-line, .df-qa-list, .df-cta__row, .df-badges, .df-chips, .df-factlist, .df-mosaic, .df-offset, .df-collage, .df-collage__media, .df-footer__grid, .df-footer__bottom, .df-footer__compact, .df-footer__inline, .df-footer__band, .site-header__main, .site-header__bar, .df-header__bar-inner, .uw-nav) > * { margin-block: 0; }
/* df-library: header */
.uw-ai-page .uw-header.df-header { position: sticky; top: 0; z-index: 40; background-color: var(--df-header-bg, #ffffff); color: var(--uw-ink); border-bottom: 1px solid var(--uw-line); }
.uw-ai-page .df-header__bar { padding-inline: max(20px, calc((100% - var(--uw-container)) / 2)); background-color: var(--uw-dark); color: var(--uw-on-dark-muted); font-size: .86rem; }
.uw-ai-page .df-header__bar-inner { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px 28px; padding-block: 9px; }
.uw-ai-page .df-header__bar a { color: var(--uw-on-dark); text-decoration: none; }
.uw-ai-page .df-header__bar .df-contact-line[class*="icon--"]::before { background-color: currentColor; }
/* The row spans the header and lines up with the content by its padding. It is never capped: a long
   menu's tier (VakmangidsMobileNav::menuTier, layout guard) widens the row above its breakpoint, and a
   capped row left the menu no room, so the logo was squeezed letter by letter (site 149 at 1540px). */
.uw-ai-page .site-header__main.df-header__main { display: flex; align-items: center; flex-wrap: nowrap; gap: 12px 32px; max-width: none; min-height: 78px; margin: 0; padding: 14px max(20px, calc((100% - var(--uw-container)) / 2)); }
.uw-ai-page .df-header .site-logo { margin: 0; flex: 0 1 auto; font-family: var(--uw-font-heading); font-size: 1.32rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
/* The logo never gets narrower than its longest word: a long name wraps between words, never inside one.
   (The guard's min-width: 0 for uploaded logos would let a text logo collapse to one letter a line.) */
.uw-ai-page .uw-header.df-header .site-logo:not(:has(img)) { min-width: min-content; max-width: 16em; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.uw-ai-page .uw-header.df-header .site-logo a { overflow-wrap: normal; word-break: normal; }
.uw-ai-page .df-header .site-logo a { color: var(--uw-heading); text-decoration: none; }
.uw-ai-page .df-header .site-logo img { display: block; max-height: 52px; width: auto; }
.uw-ai-page .df-header .uw-nav { display: flex; align-items: center; flex-wrap: nowrap; gap: 4px clamp(18px, 2vw, 30px); margin-left: auto; }
.uw-ai-page .df-header .uw-nav p { margin: 0; }
.uw-ai-page .df-header .uw-nav a { display: inline-block; padding: 10px 0; color: var(--uw-ink); font-size: .96rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.uw-ai-page .df-header .uw-nav a:hover, .uw-ai-page .df-header .uw-nav a:focus-visible { color: var(--uw-link); }
.uw-ai-page .df-header__cta { flex: 0 0 auto; margin: 0; }
.uw-ai-page .df-header__cta .wp-block-button__link { padding: .75em 1.35em; font-size: .94rem; }
.uw-ai-page .df-header .uw-svc-menu { position: relative; }
.uw-ai-page .df-header .uw-svc-menu-trigger { margin: 0; }
.uw-ai-page .df-header .uw-svc-menu-trigger a::after {
    content: ""; display: inline-block; width: .42em; height: .42em; margin-left: .5em;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-.2em) rotate(45deg);
}
.uw-ai-page .df-header .uw-svc-menu-panel {
    position: absolute; top: 100%; left: -14px; z-index: 50; min-width: 250px; padding: 8px;
    background-color: #ffffff; border: 1px solid var(--uw-line); border-radius: var(--uw-radius);
    box-shadow: 0 22px 44px -18px rgba(15, 23, 42, .32);
    opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.uw-ai-page .df-header .uw-svc-menu:is(:hover, :focus-within) > .uw-svc-menu-panel { opacity: 1; visibility: visible; transform: none; }
.uw-ai-page .df-header .uw-svc-link { margin: 0; }
.uw-ai-page .df-header .uw-svc-link a { display: block; padding: 10px 14px; border-radius: 6px; color: #1f2937; font-weight: 500; white-space: normal; }
.uw-ai-page .df-header .uw-svc-link a:hover, .uw-ai-page .df-header .uw-svc-link a:focus-visible { background-color: var(--uw-surface-alt); color: #111827; }
/* Centred: the logo over the menu, on wide screens with room for the whole menu. */
@media (min-width: 1101px) {
    .uw-ai-page .df-header--centered:not([class*="uw-header--menu-"]) .site-header__main.df-header__main { flex-wrap: wrap; justify-content: center; row-gap: 6px; padding-block: 18px 10px; }
    .uw-ai-page .df-header--centered:not([class*="uw-header--menu-"]) .site-logo { flex: 1 0 100%; text-align: center; font-size: 1.55rem; }
    .uw-ai-page .df-header--centered:not([class*="uw-header--menu-"]) .site-logo img { margin-inline: auto; }
    .uw-ai-page .df-header--centered:not([class*="uw-header--menu-"]) .uw-nav { margin-left: 0; }
}

/* df-library: footer */
.uw-ai-page .uw-footer.df-footer { background-color: var(--uw-dark); color: var(--uw-on-dark-muted); padding: clamp(56px, 7vw, 88px) 20px 0; font-size: .95rem; }
.uw-ai-page .df-footer .site-footer__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px clamp(32px, 4vw, 64px); }
.uw-ai-page .df-footer .df-footer__grid--2 { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.uw-ai-page .df-footer .df-footer__grid--3 { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); }
.uw-ai-page .df-footer .df-footer__grid--4 { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); }
.uw-ai-page .df-footer__brand { margin: 0 0 .8rem; font-family: var(--uw-font-heading); font-size: 1.4rem; font-weight: 800; letter-spacing: -.015em; }
.uw-ai-page .df-footer__brand a { color: var(--uw-on-dark); text-decoration: none; }
.uw-ai-page .df-footer__blurb { max-width: 26rem; margin: 0 0 1.1rem; }
.uw-ai-page .df-footer__title { margin: 0 0 1rem; font-family: var(--uw-font-body); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--uw-on-dark); }
.uw-ai-page .df-footer__links p, .uw-ai-page .df-footer .df-contact-line { margin: 0 0 .6rem; }
.uw-ai-page .df-footer a { color: var(--uw-on-dark-muted); text-decoration: none; }
.uw-ai-page .df-footer a:hover, .uw-ai-page .df-footer a:focus-visible { color: var(--uw-on-dark); text-decoration: underline; }
.uw-ai-page .df-footer [class*="icon--"]::before { background-color: currentColor; }
.uw-ai-page .df-footer .df-contact-line[class*="icon--"] { display: flex; align-items: flex-start; gap: .6rem; }
.uw-ai-page .df-footer .df-contact-line[class*="icon--"]::before { flex: 0 0 auto; width: 1.05rem; height: 1.05rem; margin: .25rem 0 0; }
.uw-ai-page .df-footer .uw-social { margin-top: 1rem; }
.uw-ai-page .df-footer__map { margin-top: 40px; }
.uw-ai-page .df-footer__map .uw-map { border-radius: var(--uw-radius-lg); overflow: hidden; line-height: 0; }
.uw-ai-page .df-footer .site-footer__bottom {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px;
    margin-top: clamp(40px, 5vw, 64px); padding-block: 22px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .86rem;
}
.uw-ai-page .df-footer .site-footer__bottom p { margin: 0; }
.uw-ai-page .df-footer .site-footer__bottom a { color: var(--uw-on-dark); text-decoration: underline; }
.uw-ai-page .df-footer .uw-legal-links { text-align: left; font-size: .86rem; }
/* Compact: brand, the links on one line, the contact on another */
.uw-ai-page .df-footer__compact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.uw-ai-page .df-footer__inline { display: flex; flex-wrap: wrap; gap: 8px 26px; }
.uw-ai-page .df-footer__inline p { margin: 0; }
.uw-ai-page .df-footer--compact .df-footer__blurb { margin-bottom: 0; }
/* The closing band at the top of the footer */
.uw-ai-page .df-footer__band {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px;
    margin-bottom: clamp(48px, 6vw, 72px); padding: clamp(32px, 4.5vw, 56px);
    border-radius: var(--uw-radius-lg); color: var(--uw-on-dark);
    background-color: var(--uw-band); background-image: linear-gradient(135deg, var(--uw-band) 0%, var(--uw-band-2) 100%);
}
.uw-ai-page .df-footer__band-text { flex: 1 1 26rem; }
.uw-ai-page .df-footer__band-title { margin: 0 0 .4rem; color: var(--uw-on-dark); font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.5rem); }
.uw-ai-page .df-footer__band-lead { margin: 0; color: var(--uw-on-dark); }
.uw-ai-page .df-footer__band-cta { flex: 0 0 auto; margin: 0; }
.uw-ai-page .df-footer__band .btn--light > .wp-block-button__link { color: var(--uw-band); }
/* df-library: grids (flex, so a short last row is centred) */
.uw-ai-page .df-grid { --cols: 3; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--uw-gap); }
.uw-ai-page .df-grid > * { flex: 0 1 calc((100% - (var(--cols) - 1) * var(--uw-gap)) / var(--cols)); min-width: 0; }
.uw-ai-page .df-grid.df-grid--1 { --cols: 1; max-width: 40rem; margin-inline: auto; }
.uw-ai-page .df-grid.df-grid--2 { --cols: 2; }
.uw-ai-page .df-grid.df-grid--4 { --cols: 4; }
/* Splits */
.uw-ai-page .df-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5.5vw, 88px); align-items: center; }
.uw-ai-page .df-split.df-split--top { align-items: start; }
.uw-ai-page .df-split.df-split--narrow { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); }
.uw-ai-page .df-split.df-split--form { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.uw-ai-page .df-split.df-split--reverse > .df-split__media { order: 2; }
.uw-ai-page .df-split__media .media img { aspect-ratio: 4 / 5; box-shadow: var(--uw-shadow-lg); }
.uw-ai-page .df-split > :is(.df-qa-list, .df-numbered, .df-prose, .form-panel) { width: 100%; max-width: none; margin-inline: 0; }
.uw-ai-page .df-sticky { position: sticky; top: 120px; }
/* Hero: statement */
.uw-ai-page .df-section.df-hero { padding-block: clamp(80px, 10vw, 148px); }
.uw-ai-page .df-statement { max-width: 58rem; }
.uw-ai-page .df-statement .df-hero__title { font-size: clamp(2.6rem, 1.5rem + 4.6vw, 5rem); line-height: 1.02; }
.uw-ai-page .df-statement .df-lead { max-width: 40rem; font-size: clamp(1.12rem, 1rem + .55vw, 1.35rem); }
.uw-ai-page .df-hero--statement .df-statement::before {
    content: ""; display: block; width: 72px; height: 6px; margin-bottom: 2rem; border-radius: 999px; background-color: var(--uw-accent);
}
/* Hero: photo with a text card */
.uw-ai-page .wp-block-cover.df-hero--photo-full { min-height: clamp(560px, 82vh, 860px); padding: clamp(96px, 12vw, 160px) 20px clamp(48px, 6vw, 80px); align-items: flex-end; }
.uw-ai-page .df-cover .wp-block-cover__background.has-background-dim {
    opacity: 1; background-color: transparent; background-image: linear-gradient(0deg, var(--uw-overlay-soft) 0%, rgba(0, 0, 0, 0) 60%);
}
.uw-ai-page .df-cover .wp-block-cover__inner-container { width: 100%; max-width: none; }
.uw-ai-page .df-hero__card {
    max-width: 40rem; padding: clamp(28px, 3.6vw, 52px); background-color: var(--uw-surface); color: var(--uw-ink);
    border-radius: var(--uw-radius-lg); box-shadow: var(--uw-shadow-lg);
}
.uw-ai-page .df-hero__card .df-hero__title { font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.4rem); }
/* Hero: photo with an overlapping panel */
.uw-ai-page .df-offset { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; }
.uw-ai-page .df-offset__media { grid-column: 1 / span 8; grid-row: 1; }
.uw-ai-page .df-offset__media .media img { aspect-ratio: 7 / 5; }
.uw-ai-page .df-offset__panel {
    grid-column: 7 / span 6; grid-row: 1; position: relative; z-index: 1; padding: clamp(28px, 3.6vw, 56px);
    background-color: var(--uw-surface); color: var(--uw-ink); border-radius: var(--uw-radius-lg); box-shadow: var(--uw-shadow-lg);
}
.uw-ai-page .df-offset__panel .df-hero__title { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.3rem); }
/* Hero: collage */
.uw-ai-page .df-collage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.uw-ai-page .df-collage__media { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: auto auto; }
.uw-ai-page .df-collage__main { grid-column: 2 / span 5; grid-row: 1 / span 2; }
.uw-ai-page .df-collage__main img { aspect-ratio: 4 / 5; }
.uw-ai-page .df-collage__side { grid-column: 1 / span 3; grid-row: 2; align-self: end; position: relative; z-index: 1; margin-bottom: -8%; }
.uw-ai-page .df-collage__side img { aspect-ratio: 4 / 3; border: 6px solid var(--uw-bg); box-shadow: var(--uw-shadow-lg); }
/* Services: tiles */
.uw-ai-page .df-tile {
    position: relative; display: flex; flex-direction: column; padding: clamp(24px, 2.6vw, 34px);
    background-color: var(--uw-surface); color: var(--uw-ink); border: 1px solid var(--uw-line); border-radius: var(--uw-radius); box-shadow: var(--uw-shadow);
}
.uw-ai-page .df-tile > :last-child { margin-bottom: 0; }
.uw-ai-page .df-tile__title { margin: 0 0 .5rem; }
.uw-ai-page .df-tile__title a { color: inherit; text-decoration: none; }
.uw-ai-page .df-tile__title a::after { content: ""; position: absolute; inset: 0; }
.uw-ai-page .df-tile__text { margin: 0; color: var(--uw-muted); }
.uw-ai-page .df-tile__title[class*="icon--"]::before { width: 2rem; height: 2rem; margin: 0 0 1.2rem; background-color: var(--uw-icon); }
/* Services: zigzag */
.uw-ai-page .df-zigzag { display: grid; gap: clamp(48px, 7vw, 104px); }
.uw-ai-page .df-zig { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.uw-ai-page .df-zig:nth-child(even) { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.uw-ai-page .df-zig:nth-child(even) > .df-zig__media { order: 2; }
.uw-ai-page .df-zig__media .media img { aspect-ratio: 4 / 3; }
.uw-ai-page .df-zig__title { font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); margin-bottom: .6rem; }
.uw-ai-page .df-zig__title a { color: inherit; }
.uw-ai-page .df-zig__title[class*="icon--"]::before { width: 1.8rem; height: 1.8rem; background-color: var(--uw-icon); }
.uw-ai-page .df-zig__text > :last-child { margin-bottom: 0; }
.uw-ai-page .df-zig__body { color: var(--uw-muted); }
/* Services: numbered list */
.uw-ai-page .df-numbered { display: grid; }
.uw-ai-page .df-numbered__row { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 20px; padding: 26px 0; border-top: 1px solid var(--uw-line); }
.uw-ai-page .df-numbered__row:last-child { border-bottom: 1px solid var(--uw-line); }
.uw-ai-page .df-numbered__num { font-family: var(--uw-font-heading); font-size: 2.2rem; font-weight: var(--uw-heading-weight); line-height: 1; color: var(--uw-eyebrow); }
.uw-ai-page .df-numbered__title { margin: 0 0 .35rem; }
.uw-ai-page .df-numbered__title a { color: inherit; }
.uw-ai-page .df-numbered__text { margin: 0; color: var(--uw-muted); }
/* Story: values */
.uw-ai-page .df-value { padding: clamp(24px, 2.6vw, 34px) 0 0; border-top: 2px solid var(--uw-line); }
.uw-ai-page .df-value__mark {
    display: grid; place-items: center; width: 3.2rem; height: 3.2rem; margin: 0 0 1.2rem; border-radius: 999px;
    font-family: var(--uw-font-heading); font-size: 1.35rem; font-weight: 800; line-height: 1;
    background-color: var(--uw-icon-bg); color: var(--uw-eyebrow);
}
.uw-ai-page .df-value__title { margin: 0 0 .45rem; }
.uw-ai-page .df-value__text { margin: 0; color: var(--uw-muted); }
.uw-ai-page .df-story--text .df-prose { text-align: left; }
/* Why us: checklist and pillars */
.uw-ai-page .df-checks { display: grid; gap: 18px; margin-top: 2rem; }
.uw-ai-page .df-checks.df-checks--two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px clamp(28px, 4vw, 56px); }
.uw-ai-page .df-checks.df-checks--compact { margin-top: 1.6rem; gap: 14px; }
.uw-ai-page .df-check__title { display: flex; align-items: flex-start; gap: .7rem; margin: 0 0 .25rem; font-size: 1.08rem; }
.uw-ai-page .df-check__title[class*="icon--"]::before { flex: 0 0 auto; width: 1.35rem; height: 1.35rem; margin: .12rem 0 0; background-color: var(--uw-icon); }
.uw-ai-page .df-check__text { margin: 0; padding-left: 2.05rem; color: var(--uw-muted); }
.uw-ai-page .df-pillar { padding: clamp(24px, 2.6vw, 34px); background-color: var(--uw-surface); border: 1px solid var(--uw-line); border-top: 4px solid var(--uw-accent); border-radius: var(--uw-radius); }
.uw-ai-page .df-pillar__title { margin: 0 0 .5rem; }
.uw-ai-page .df-pillar__title[class*="icon--"]::before { width: 1.9rem; height: 1.9rem; margin: 0 0 1.1rem; background-color: var(--uw-icon); }
.uw-ai-page .df-pillar__text { margin: 0; color: var(--uw-muted); }
/* Gallery */
.uw-ai-page .df-shot { margin: 0; }
.uw-ai-page .df-shot .media img { aspect-ratio: 4 / 3; }
.uw-ai-page .df-shot__caption { margin: .75rem 0 0; font-size: .95rem; font-weight: 600; color: var(--uw-ink); }
.uw-ai-page .df-mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--uw-gap); }
.uw-ai-page .df-mosaic > .df-shot--lead { grid-column: span 2; grid-row: span 2; }
.uw-ai-page .df-mosaic > .df-shot--lead .media img { aspect-ratio: auto; height: 100%; min-height: 100%; }
.uw-ai-page .df-mosaic > .df-shot--lead .media { height: calc(100% - 2.2rem); }
/* After the lead and the two beside it: four photos end with one wide one, five with a small and a wide one. */
.uw-ai-page .df-mosaic.df-mosaic--4 > .df-shot:nth-child(4) { grid-column: 1 / -1; }
.uw-ai-page .df-mosaic.df-mosaic--4 > .df-shot:nth-child(4) .media img { aspect-ratio: 3 / 1; }
.uw-ai-page .df-mosaic.df-mosaic--5 > .df-shot:nth-child(5) { grid-column: span 2; }
/* Two columns wide and as tall as the 4:3 photo beside it. */
.uw-ai-page .df-mosaic.df-mosaic--5 > .df-shot:nth-child(5) .media img { aspect-ratio: 8 / 3; }
/* Process */
.uw-ai-page .df-step__num {
    display: grid; place-items: center; width: 3rem; height: 3rem; margin: 0 0 1.2rem; border-radius: 999px;
    font-family: var(--uw-font-heading); font-size: 1.1rem; font-weight: 800; line-height: 1;
    background-color: var(--uw-primary); color: var(--uw-primary-contrast);
}
.uw-ai-page .df-step__title { margin: 0 0 .45rem; }
.uw-ai-page .df-step__text { margin: 0; color: var(--uw-muted); }
.uw-ai-page .df-line { --n: 4; position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: var(--uw-gap); }
.uw-ai-page .df-line.df-line--3 { --n: 3; }
.uw-ai-page .df-line.df-line--5 { --n: 5; }
.uw-ai-page .df-line::before { content: ""; position: absolute; left: 1.5rem; right: 1.5rem; top: 1.5rem; height: 2px; background-color: var(--uw-line); }
.uw-ai-page .df-line .df-step { position: relative; }
.uw-ai-page .df-steps .df-step { padding: clamp(24px, 2.6vw, 32px); background-color: var(--uw-surface); border: 1px solid var(--uw-line); border-radius: var(--uw-radius); }
/* FAQ */
.uw-ai-page .df-qa-list { display: grid; gap: 12px; }
.uw-ai-page .df-qa-list.df-qa-list--columns { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 12px 18px; max-width: 72rem; margin-inline: auto; }
.uw-ai-page .df-qa { margin: 0; padding: 0; background-color: var(--uw-surface); color: var(--uw-ink); border: 1px solid var(--uw-line); border-radius: var(--uw-radius); }
.uw-ai-page .df-qa > summary {
    position: relative; padding: 20px 60px 20px 24px; cursor: pointer; list-style: none;
    font-family: var(--uw-font-heading); font-size: 1.05rem; font-weight: 700; line-height: 1.4; color: var(--uw-heading);
}
.uw-ai-page .df-qa > summary::-webkit-details-marker { display: none; }
.uw-ai-page .df-qa > summary::after {
    content: ""; position: absolute; right: 24px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%);
    background: linear-gradient(currentColor, currentColor) center / 16px 2px no-repeat, linear-gradient(currentColor, currentColor) center / 2px 16px no-repeat;
    color: var(--uw-link); transition: transform .2s ease;
}
.uw-ai-page .df-qa[open] > summary::after { background: linear-gradient(currentColor, currentColor) center / 16px 2px no-repeat; }
.uw-ai-page .df-qa > :not(summary) { margin: 0; padding: 0 24px 22px; color: var(--uw-muted); }
/* Contact */
.uw-ai-page .df-contact-card { padding: clamp(24px, 3vw, 36px); text-align: center; background-color: var(--uw-surface); border: 1px solid var(--uw-line); border-radius: var(--uw-radius); box-shadow: var(--uw-shadow); }
.uw-ai-page .df-contact-card__value { margin: 0; font-size: 1.08rem; font-weight: 600; overflow-wrap: anywhere; }
.uw-ai-page .df-contact-card__value[class*="icon--"]::before { width: 2.1rem; height: 2.1rem; margin: 0 auto 1rem; background-color: var(--uw-icon); }
.uw-ai-page .df-contact__lines { margin-top: 1.8rem; }
.uw-ai-page .df-contact__line { display: flex; align-items: center; gap: .65rem; margin: 0 0 .6rem; font-weight: 600; overflow-wrap: anywhere; }
.uw-ai-page .df-contact__line[class*="icon--"]::before { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; margin: 0; background-color: var(--uw-icon); }
.uw-ai-page .form-panel.df-form-panel {
    padding: clamp(24px, 3vw, 42px); background-color: var(--uw-surface); color: var(--uw-ink);
    border: 1px solid var(--uw-line); border-radius: var(--uw-radius-lg); box-shadow: var(--uw-shadow-lg);
}
/* Call to action */
.uw-ai-page .df-section.df-cta { padding-block: clamp(64px, 8vw, 112px); }
.uw-ai-page .df-cta__inner { max-width: 46rem; margin-inline: auto; }
.uw-ai-page .df-cta .df-title { font-size: clamp(1.9rem, 1.35rem + 2.2vw, 3rem); }
.uw-ai-page .df-cta__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 56px; }
.uw-ai-page .df-cta__text { flex: 1 1 30rem; max-width: 46rem; }
.uw-ai-page .df-cta__text > :last-child { margin-bottom: 0; }
.uw-ai-page .df-cta .df-cta__actions { flex: 0 0 auto; margin: 0; }
.uw-ai-page .wp-block-cover.df-cta--photo { min-height: clamp(420px, 60vh, 640px); padding: clamp(72px, 9vw, 120px) 20px; align-items: center; }
.uw-ai-page .df-cta--photo .wp-block-cover__background.has-background-dim { opacity: 1; background-color: transparent; background-image: linear-gradient(0deg, var(--uw-overlay-soft), var(--uw-overlay-soft)); }
.uw-ai-page .df-cta__card {
    max-width: 36rem; margin-inline: auto; padding: clamp(28px, 3.6vw, 52px); text-align: center;
    background-color: var(--uw-surface); color: var(--uw-ink); border-radius: var(--uw-radius-lg); box-shadow: var(--uw-shadow-lg);
}
.uw-ai-page .df-cta__card .wp-block-buttons { justify-content: center; }
/* Text */
.uw-ai-page .df-prose { max-width: 46rem; margin-inline: auto; }
.uw-ai-page .df-prose.df-prose--wide { max-width: none; margin: 0; }
.uw-ai-page .df-prose h3 { margin: 1.9em 0 .5em; }
.uw-ai-page .df-prose h2 + h3 { margin-top: .6em; }
.uw-ai-page .df-prose ul, .uw-ai-page .df-prose ol { margin: 0 0 1em; }
/* Areas */
.uw-ai-page .df-areas__inner { max-width: 52rem; margin-inline: auto; }
.uw-ai-page .df-areas__inner .df-head { margin-bottom: 0; }
.uw-ai-page .df-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 2rem; }
.uw-ai-page .df-chip { display: inline-flex; align-items: center; gap: .45em; margin: 0; padding: .6em 1.2em; font-size: .95rem; font-weight: 600; background-color: var(--uw-surface); color: var(--uw-ink); border: 1px solid var(--uw-line); border-radius: 999px; }
.uw-ai-page .df-chip[class*="icon--"]::before { width: 1rem; height: 1rem; margin: 0; background-color: var(--uw-icon); }
/* Facts */
.uw-ai-page .df-section.df-facts { padding-block: clamp(44px, 5.5vw, 72px); }
.uw-ai-page .df-factlist { --n: 3; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: var(--uw-gap); }
.uw-ai-page .df-factlist.df-factlist--2 { --n: 2; }
.uw-ai-page .df-factlist.df-factlist--4 { --n: 4; }
.uw-ai-page .df-fact { padding-left: 20px; border-left: 3px solid var(--uw-accent); }
.uw-ai-page .df-fact__title { display: flex; align-items: center; gap: .6rem; margin: 0 0 .3rem; font-size: 1.1rem; }
.uw-ai-page .df-fact__title[class*="icon--"]::before { flex: 0 0 auto; width: 1.4rem; height: 1.4rem; margin: 0; background-color: var(--uw-icon); }
.uw-ai-page .df-fact__text { margin: 0; font-size: .95rem; color: var(--uw-muted); }
/* Design First parts in a library page: the map before the closing band */
.uw-ai-page .lib-map .uw-map { border-radius: var(--uw-radius-lg); overflow: hidden; line-height: 0; }
/* df-library: tones */
.uw-ai-page .df-section.df-tone--alt { background-color: var(--uw-surface-alt); }
.uw-ai-page .df-section.df-tone--dark { background-color: var(--uw-dark); color: var(--uw-on-dark); }
.uw-ai-page .df-section.df-tone--brand {
    background-color: var(--uw-band); color: var(--uw-on-dark);
    background-image: radial-gradient(70% 90% at 0% 100%, rgba(255, 255, 255, .08), transparent 70%), linear-gradient(120deg, var(--uw-band) 0%, var(--uw-band-2) 100%);
}
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) :is(h1, h2, h3, h4, summary):not(:where(.form-panel, .df-qa, .df-tile, .df-pillar, .df-contact-card, .df-steps .df-step) *) { color: var(--uw-on-dark); }
.uw-ai-page .df-tone--dark :is(p, li, .df-lead):not(:where(.form-panel, .df-qa, .df-tile, .df-pillar, .df-contact-card, .df-steps .df-step) *, .df-step__num, .df-value__mark) { color: var(--uw-on-dark-muted); }
.uw-ai-page .df-tone--brand :is(p, li, .df-lead):not(:where(.form-panel, .df-qa, .df-tile, .df-pillar, .df-contact-card, .df-steps .df-step) *, .df-step__num, .df-value__mark) { color: var(--uw-on-dark); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .df-eyebrow { color: var(--uw-on-dark); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) a:not(.wp-block-button__link):not(:where(.form-panel, .df-qa, .df-tile, .df-pillar, .df-contact-card) *) { color: var(--uw-on-dark); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) :is(.df-check__title, .df-fact__title, .df-zig__title, .df-chip)[class*="icon--"]::before { background-color: currentColor; }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) :is(.df-line::before, .df-numbered__row, .df-value) { border-color: rgba(255, 255, 255, .2); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .df-line::before { background-color: rgba(255, 255, 255, .22); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .df-numbered__num { color: var(--uw-on-dark); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .df-step__num { background-color: var(--uw-primary-on-dark); color: var(--uw-primary-on-dark-text); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .df-value__mark { background-color: rgba(255, 255, 255, .12); color: var(--uw-on-dark); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .df-chip { background-color: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); color: var(--uw-on-dark); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .df-fact { border-left-color: currentColor; }
.uw-ai-page .df-tone--dark .btn--primary > .wp-block-button__link { background-color: var(--uw-primary-on-dark); color: var(--uw-primary-on-dark-text); border-color: var(--uw-primary-on-dark); }
.uw-ai-page .df-tone--brand .btn--primary > .wp-block-button__link { background-color: #ffffff; color: var(--uw-band); border-color: #ffffff; }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) .btn--secondary > .wp-block-button__link { color: var(--uw-on-dark); }
.uw-ai-page .df-tone--brand .df-hero--statement .df-statement::before, .uw-ai-page .df-tone--dark .df-statement::before { background-color: currentColor; }
/* White sheets on a band keep the page's own text colours. :where() keeps these at the band's weight,
   so a pack that draws these components without a sheet can give them the band's colours. */
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) :where(.df-tile, .df-pillar, .df-contact-card, .df-steps .df-step, .df-qa) { color: var(--uw-ink); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) :where(.df-tile, .df-pillar, .df-contact-card, .df-steps .df-step) :is(h3, .df-tile__title) { color: var(--uw-heading); }
.uw-ai-page :is(.df-tone--dark, .df-tone--brand) :where(.df-qa) > summary { color: var(--uw-heading); }
/* Over a photo, the text sits on a light card: page colours. */
.uw-ai-page .df-cover :is(.df-hero__card, .df-cta__card) :is(h1, h2, p, .df-lead) { color: var(--uw-ink); }
.uw-ai-page .df-cover :is(.df-hero__card, .df-cta__card) :is(h1, h2) { color: var(--uw-heading); }
.uw-ai-page .df-cover .df-hero__card .df-eyebrow { color: var(--uw-eyebrow); }
/* df-library: responsive */
@media (max-width: 1100px) {
    .uw-ai-page .df-grid.df-grid--4 { --cols: 2; }
    .uw-ai-page .df-footer .site-footer__grid:is(.df-footer__grid--3, .df-footer__grid--4) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .uw-ai-page .df-footer .site-footer__grid .df-footer__col--brand { grid-column: 1 / -1; }
    .uw-ai-page .df-line.df-line--5 { --n: 3; }
    .uw-ai-page .df-line.df-line--5::before { display: none; }
    .uw-ai-page .df-factlist.df-factlist--4 { --n: 2; }
}
@media (max-width: 900px) {
    .uw-ai-page .df-grid { --cols: 2; }
    .uw-ai-page .df-split,
    .uw-ai-page .df-split.df-split--narrow,
    .uw-ai-page .df-split.df-split--form,
    .uw-ai-page .df-zig,
    .uw-ai-page .df-zig:nth-child(even),
    .uw-ai-page .df-collage { grid-template-columns: minmax(0, 1fr); }
    .uw-ai-page .df-zig:nth-child(even) > .df-zig__media { order: 0; }
    .uw-ai-page .df-split.df-split--reverse > .df-split__media { order: 0; }
    .uw-ai-page .df-split__media .media img { aspect-ratio: 4 / 3; }
    .uw-ai-page .df-sticky { position: static; }
    .uw-ai-page .df-offset { grid-template-columns: minmax(0, 1fr); }
    .uw-ai-page .df-offset__media { grid-column: 1; grid-row: 1; }
    .uw-ai-page .df-offset__panel { grid-column: 1; grid-row: 2; margin: -64px clamp(12px, 4vw, 32px) 0; }
    .uw-ai-page .df-collage__media { margin-bottom: 8%; }
    .uw-ai-page .df-line,
    .uw-ai-page .df-line.df-line--3,
    .uw-ai-page .df-line.df-line--5 { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .uw-ai-page .df-line::before { left: calc(1.5rem - 1px); right: auto; top: 1.5rem; bottom: 1.5rem; width: 2px; height: auto; display: block; }
    .uw-ai-page .df-line .df-step { display: grid; grid-template-columns: 3rem minmax(0, 1fr); column-gap: 20px; padding-bottom: 28px; }
    .uw-ai-page .df-line .df-step > .df-step__num { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
    .uw-ai-page .df-line .df-step > :not(.df-step__num) { grid-column: 2; }
    .uw-ai-page .df-line .df-step > .df-step__title { padding-top: .55rem; }
    .uw-ai-page .df-qa-list.df-qa-list--columns { grid-template-columns: minmax(0, 1fr); }
    .uw-ai-page .df-checks.df-checks--two { grid-template-columns: minmax(0, 1fr); }
    .uw-ai-page .df-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .uw-ai-page .df-mosaic > .df-shot--lead { grid-column: 1 / -1; grid-row: auto; }
    .uw-ai-page .df-mosaic > .df-shot--lead .media { height: auto; }
    .uw-ai-page .df-mosaic > .df-shot--lead .media img { aspect-ratio: 16 / 10; height: auto; min-height: 0; }
    /* Two columns: after the lead the photos pair up. */
    .uw-ai-page .df-mosaic.df-mosaic--5 > .df-shot:nth-child(5) { grid-column: auto; }
    .uw-ai-page .df-mosaic.df-mosaic--5 > .df-shot:nth-child(5) .media { height: auto; }
    .uw-ai-page .df-mosaic.df-mosaic--5 > .df-shot:nth-child(5) .media img { aspect-ratio: 4 / 3; height: auto; }
    .uw-ai-page .df-footer .site-footer__grid.df-footer__grid--2 { grid-template-columns: minmax(0, 1fr); }
    .uw-ai-page .site-header__main.df-header__main { min-height: 64px; }
    .uw-ai-page .df-factlist { --n: 1; }
    .uw-ai-page .df-factlist.df-factlist--2, .uw-ai-page .df-factlist.df-factlist--4 { --n: 2; }
}
@media (max-width: 640px) {
    .uw-ai-page { font-size: 16px; }
    .uw-ai-page .df-grid,
    .uw-ai-page .df-grid.df-grid--2,
    .uw-ai-page .df-grid.df-grid--4 { --cols: 1; }
    .uw-ai-page .df-footer .site-footer__grid:is(.df-footer__grid--2, .df-footer__grid--3, .df-footer__grid--4) { grid-template-columns: minmax(0, 1fr); }
    .uw-ai-page .df-header__bar-inner { justify-content: center; }
    .uw-ai-page .df-cta .df-cta__actions, .uw-ai-page .df-footer__band-cta { width: 100%; }
    .uw-ai-page .wp-block-buttons > .wp-block-button { max-width: 100%; }
    .uw-ai-page .wp-block-button__link { white-space: normal; text-align: center; }
    .uw-ai-page .df-qa > summary { padding: 18px 52px 18px 20px; }
    .uw-ai-page .df-qa > :not(summary) { padding: 0 20px 20px; }
    .uw-ai-page .df-numbered__row { grid-template-columns: 3rem minmax(0, 1fr); gap: 14px; }
    .uw-ai-page .df-numbered__num { font-size: 1.6rem; }
    .uw-ai-page .df-mosaic { grid-template-columns: minmax(0, 1fr); }
    .uw-ai-page .df-mosaic.df-mosaic--4 > .df-shot:nth-child(4) .media img { aspect-ratio: 4 / 3; }
    .uw-ai-page .df-factlist.df-factlist--2, .uw-ai-page .df-factlist.df-factlist--4 { --n: 1; }
    .uw-ai-page .wp-block-cover.df-hero--photo-full { padding-inline: 12px; }
    .uw-ai-page .df-collage__side { margin-bottom: -4%; }
}
/* df-library: motion (only for visitors who did not ask for less) */
@media (prefers-reduced-motion: no-preference) {
    .uw-ai-page .df-hero :is(.df-statement, .df-offset__panel, .df-collage__text, .df-hero__card) { animation: uwpRise .8s cubic-bezier(.2, .7, .2, 1) backwards; }
    .uw-ai-page .df-hero :is(.df-offset__media, .df-collage__media) { animation: uwpRise .9s .12s cubic-bezier(.2, .7, .2, 1) backwards; }
    @supports (animation-timeline: view()) {
        .uw-ai-page :is(.df-split__text, .df-split__media, .df-zig, .df-numbered__row, .df-check, .df-chips, .df-prose, .df-cta__row, .df-fact):not(.df-hero *) {
            animation: uwpRise cubic-bezier(.2, .7, .2, 1) backwards; animation-timeline: view(); animation-range: entry 0% cover 30%;
        }
        .uw-ai-page .df-grid > :nth-child(2) { animation-range: entry 8% cover 34%; }
        .uw-ai-page .df-grid > :nth-child(3) { animation-range: entry 16% cover 38%; }
    }
    @media (hover: hover) {
        .uw-ai-page :is(.df-tile, .df-pillar, .df-contact-card) { transition: transform .22s ease, box-shadow .22s ease; }
        .uw-ai-page :is(.df-tile, .df-pillar, .df-contact-card):hover { transform: translateY(-3px); box-shadow: var(--uw-shadow-lg); }
    }
}

/* df pack: fresh — friendly and round: pill eyebrows, tinted tiles on white, soft depth */
.uw-ai-page { --df-header-bg: #ffffff; }
.uw-ai-page .uw-header.df-header { border-bottom-color: transparent; box-shadow: 0 10px 30px -24px rgba(15, 23, 42, .45); }
/* The pill is a light tint of the accent: its label is the heading colour, which reads on any tint. */
.uw-ai-page .df-eyebrow { display: inline-block; padding: .5em 1.05em; border-radius: 999px; background-color: var(--uw-icon-bg); color: var(--uw-heading); letter-spacing: .06em; }
.uw-ai-page .df-tone--dark .df-eyebrow { background-color: rgba(255, 255, 255, .12); color: var(--uw-on-dark); }
/* The brand band is only just dark enough for white: lightening it would sink white text below 4.5:1. */
.uw-ai-page .df-tone--brand .df-eyebrow { background-color: rgba(0, 0, 0, .22); color: var(--uw-on-dark); }
.uw-ai-page .df-cover .df-hero__card .df-eyebrow { color: var(--uw-heading); }
.uw-ai-page .df-section:not(.df-tone--alt, .df-tone--dark, .df-tone--brand) :is(.df-tile, .df-pillar, .df-contact-card) { background-color: var(--uw-surface-alt); border-color: transparent; box-shadow: none; }
.uw-ai-page .df-tile__title[class*="icon--"]::before { padding: .6rem; box-sizing: content-box; border-radius: 999px; background-color: var(--uw-icon); }
.uw-ai-page .df-pillar { border-top-width: 1px; }
.uw-ai-page .df-qa { border-color: transparent; box-shadow: var(--uw-shadow); }
.uw-ai-page .df-step__num { background-color: var(--uw-icon-bg); color: var(--uw-eyebrow); }
.uw-ai-page .df-collage__side img { border-radius: 999px 999px var(--uw-radius-lg) var(--uw-radius-lg); }
/* Native rows restored from legacy regeneration markup. */
.uw-ai-page .wp-block-columns.uw-service-grid.cols-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; align-items:start; }
.uw-ai-page .wp-block-columns.uw-process-grid.cols-3:is(.grid--3) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; align-items:start; }
.uw-ai-page :is(.uw-service-grid,.uw-process-grid) > .wp-block-column { min-width:0; max-width:100%; margin:0; }
.uw-ai-page .uw-service-grid .wp-block-image { margin:0 0 20px; }
.uw-ai-page .uw-service-grid .wp-block-image img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.uw-ai-page .uw-service-grid h3 { margin:0 0 12px; }
.uw-ai-page .uw-service-grid h3 + p { margin:0; }
.uw-ai-page .uw-process-item > p:first-child { margin:0 0 16px; }
.uw-ai-page .uw-process-item > h3 { margin:0 0 12px; }
.uw-ai-page .uw-process-item > h3 + p { margin:0; }
@media(max-width:720px) {
    .uw-ai-page .wp-block-columns.uw-service-grid.cols-2,
    .uw-ai-page .wp-block-columns.uw-process-grid.cols-3:is(.grid--3) { grid-template-columns:minmax(0,1fr); gap:32px; }
}
/* ── Layout guard: full-width bands ── */
/* Uploaded brand assets must fit the header regardless of their intrinsic dimensions. */
.uw-ai-page :is(.uw-header, .ai-site-header, .site-header) .site-logo { max-width: min(240px, 55vw); min-width: 0; }
.uw-ai-page :is(.uw-header, .ai-site-header, .site-header) .site-logo img { max-width: 100%; max-height: 72px; width: auto; height: auto; object-fit: contain; }
/* Prose lists: markers beside start-aligned text and wrapped lines. The list lines up with the
   text above it; only in a centred section is the list itself centred (site 127: a list in a
   left-aligned hero column floated to the middle). Menus are not prose: lists in the header or
   footer, and lists of links only, keep the stylesheet's own look (site 130: footer links indented). */
.uw-ai-page :is(ul.wp-block-list, ol.wp-block-list, ul.card__text, ol.card__text):not(.uw-header *, .uw-footer *, :has(> li > a:only-child)) {
    width: fit-content; max-width: 100%; box-sizing: border-box;
    margin-inline: 0; padding-inline-start: 1.4em; text-align: start;
}
/* A menu list without its own rules: no browser indent, no bullets. */
:where(.uw-ai-page :is(.uw-header, .uw-footer) :is(ul, ol), .uw-ai-page :is(ul, ol):has(> li > a:only-child)) { padding-inline-start: 0; margin-inline: 0; list-style: none; }
.uw-ai-page :is(.center, .has-text-align-center, .hero--centered, .section-head.center) :is(ul.wp-block-list, ol.wp-block-list, ul.card__text, ol.card__text) { margin-inline: auto; }
/* ── Layout guard: buttons ── */
/* Buttons in a band or a centred group follow the text around them: centred under centred copy,
   at the start under left-aligned copy. A flex row always started at the left, under centred
   text (site 127's CTA band). Inline blocks take the text alignment, whatever the site CSS chose. */
.uw-ai-page :is(.cta-band, .center, .has-text-align-center, .hero--centered, .section-head) .wp-block-buttons { display: block; }
.uw-ai-page :is(.cta-band, .center, .has-text-align-center, .hero--centered, .section-head) .wp-block-buttons > .wp-block-button {
    display: inline-block; vertical-align: middle; margin: 0 12px 12px 0;
}
.uw-ai-page :is(.cta-band, .center, .has-text-align-center, .hero--centered, .section-head) .wp-block-buttons > .wp-block-button:last-child { margin-right: 0; }
/* An outline button on a dark or coloured band draws its border in its own text colour: a border
   in the brand colour vanished on a brand-colour band, leaving the label as plain text. */
.uw-ai-page :is(.section--dark, .section--accent, .section--gradient, .cta-band, .hero, .wp-block-cover) .btn--secondary > .wp-block-button__link {
    border: 2px solid currentColor;
}
/* ── Layout guard: space after a row ── */
/* The site CSS often zeroes the margins of wp:columns rows, and whatever came next touched the row:
   a second row of cards, a form panel, a closing note (site 127). The gap matches the row's own. */
.uw-ai-page .wp-block-columns:not(.site-footer__grid) + * { margin-top: var(--uw-gap, clamp(16px, 2vw, 24px)); }
/* And before a row, panel or card that follows anything else (a panel above a row of cards). The
   container is a block, so this collapses with a margin already below the element above. */
.uw-ai-page .container > * + :is(.wp-block-columns, .form-panel, .card, .faq, .steps, .stats) { margin-top: var(--uw-gap, clamp(16px, 2vw, 24px)); }
.uw-ai-page :is(ul.wp-block-list, ol.wp-block-list, ul.card__text, ol.card__text) > li { text-align: start; }
/* Numbered steps have a generated ::before marker, followed by heading and paragraph
   siblings. Auto-placement puts the paragraph under the marker in the narrow track. */
.uw-ai-page .steps .step:has(> h3 + p)::before { grid-column: 1; grid-row: 1 / span 2; align-self: start; }
.uw-ai-page .steps .step:has(> h3 + p) > :is(h3, p) { grid-column: 2; min-width: 0; overflow-wrap: anywhere; }
/* The header, sections, cover heroes and footer are bands across the whole page; .container centres
   their content. A class meant for an inner group (".faq { max-width: 760px }") that lands on a
   whole section must not shrink the band to a strip at the left edge. */
.uw-ai-page > :is(.section, .wp-block-cover, .uw-header, .uw-footer) { max-width: none; }
/* A reset for every group (".wp-block-group { margin: 0 }", site 127) declared after ".container
   { margin-inline: auto }" has the same weight and wins: all content ran along the left edge. */
.uw-ai-page .container.container { margin-inline: auto; }
/* ── Layout guard: rows come from wp:columns ── */
/* Pages build every row with a wp:columns block (.split, .grid--N). A stylesheet that also makes the
   surrounding .container a grid ("hero--split .container { grid-template-columns: 1fr 1fr }") puts
   that whole row into its first track: half-width columns and text one word per line. */
.uw-ai-page .container:has(> .wp-block-columns) { display: block; }
/* A layout class on a wrapper AND on its child ("steps" group around a "steps" list) nests one grid
   in a single track of the other. Only the inner element lays out the row. */
.uw-ai-page :is(.steps, .stats, .faq, .split, .grid--2, .grid--3, .grid--4):has(> :is(.steps, .stats, .faq, .split, .grid--2, .grid--3, .grid--4)) { display: block; }
/* "height: 100%" gives the cards of one row equal heights. A card stacked with other content in one
   column would take that whole column's height and run over the next section. */
.uw-ai-page .card:not(.wp-block-column):not(:only-child) { height: auto; }
/* ── Layout guard: no squeezed columns ── */
/* A row of 3+ items gives every item at least ~14rem and wraps when they do not fit, instead of
   squeezing them to a few letters per line. A row nested inside a column does the same at ~12rem. */
.uw-ai-page .wp-block-columns.wp-block-columns:is(.cols-3, .cols-4, .cols-5, .cols-6) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
    flex-wrap: wrap;
}
.uw-ai-page .wp-block-column .wp-block-columns.wp-block-columns.cols-2 {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
    flex-wrap: wrap;
}
.uw-ai-page .wp-block-columns:is(.cols-3, .cols-4, .cols-5, .cols-6) > .wp-block-column { flex: 1 1 14rem; min-width: min(100%, 14rem); }
.uw-ai-page .steps:not(.wp-block-columns) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
/* A grid of items (steps, stats, a group-built grid) inside one column of a split row: it has half the
   width the stylesheet sized it for, so items keep a readable width and stack instead of squeezing. */
.uw-ai-page .wp-block-columns:has(> .wp-block-column + .wp-block-column) > .wp-block-column :is(.steps, .stats, .grid--2, .grid--3, .grid--4):not(.wp-block-columns) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); flex-wrap: wrap;
}
.uw-ai-page .wp-block-columns:has(> .wp-block-column + .wp-block-column) > .wp-block-column :is(.steps, .stats, .grid--2, .grid--3, .grid--4):not(.wp-block-columns) > * {
    flex: 1 1 15rem; min-width: min(100%, 15rem);
}
/* Four text items in a row leave ~150px of text each on a laptop or tablet: two rows of two instead. */
@media (min-width: 721px) and (max-width: 1100px) {
    .uw-ai-page :is(.steps, .grid--4):not(.wp-block-columns):has(> :nth-child(4):last-child),
    .uw-ai-page .wp-block-columns.wp-block-columns.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .uw-ai-page .wp-block-columns.cols-4 > .wp-block-column { flex: 1 1 40%; min-width: 40%; }
}
@media (max-width: 720px) {
    /* Match generated .split.wp-block-columns.cols-2 specificity so its desktop rule cannot win. */
    .uw-ai-page .wp-block-columns.wp-block-columns,
    .uw-ai-page .wp-block-columns.wp-block-columns.cols-2 { grid-template-columns: minmax(0, 1fr); }
}
/* A row with a single item (one service card in a three-column grid): one centred item of a readable
   width, not a narrow card at the left and an empty two thirds (site 130). */
.uw-ai-page .wp-block-columns.wp-block-columns:has(> .wp-block-column:only-child:is(.card, .step, .stat)) {
    display: grid; grid-template-columns: minmax(0, min(100%, 42rem)); justify-content: center;
}
.uw-ai-page .wp-block-columns:has(> .wp-block-column:only-child:is(.card, .step, .stat)) > .wp-block-column { flex: initial; width: auto; max-width: 100%; }
/* A row whose first column is only a short label ("01", a year; VakmangidsCompositionFixes): the
   label takes its own width and the text the rest, at every width — not half the row each (site 130). */
.uw-ai-page .wp-block-columns.wp-block-columns.uw-label-row {
    display: grid; grid-template-columns: minmax(2.5rem, max-content) minmax(0, 1fr);
    column-gap: clamp(16px, 2.5vw, 36px); align-items: baseline;
}
.uw-ai-page .wp-block-columns.uw-label-row > .wp-block-column { flex: initial; width: auto; min-width: 0; margin: 0; }
.uw-ai-page .wp-block-columns.uw-label-row > .wp-block-column:first-child > * { margin-block: 0; }
/* WordPress core sets word-break: break-word on columns, which lets the browser split any word
   ("Dakherst elling") and lets a column shrink below its longest word. */
.uw-ai-page .wp-block-column { word-break: normal; overflow-wrap: break-word; }
.uw-ai-page :is(h1, h2, h3, h4) { overflow-wrap: break-word; hyphens: auto; text-wrap: balance; }
.uw-ai-page :is(p, li) { hyphens: auto; text-wrap: pretty; }
.uw-ai-page .wp-block-button__link { overflow-wrap: normal; word-break: normal; }
/* ── Layout guard: one box per form ── */
/* A form panel, the builder's form wrapper, the payload's form card and Contact Form 7 itself sit
   inside each other; only the outermost draws a box. */
.uw-ai-page :is(.form-panel, .card, .uw-service-cf7, .uw-contact-form-ajax-card) :is(.form-panel, .uw-service-cf7, .uw-contact-form-ajax-card, .wpcf7) {
    border: 0; box-shadow: none; background: transparent; padding: 0; margin: 0;
}
/* Steps, FAQ items or cards inside a panel: one box only — the items lose theirs. */
.uw-ai-page :is(.form-panel, .card) :is(.step, .faq-item, .card, .stat) {
    border: 0; box-shadow: none; background: transparent; padding-inline: 0;
}
/* ── Mobile menu (builder: VakmangidsMobileNav) — a <details> disclosure, no JavaScript ── */
.uw-ai-page .uw-mobile-nav { display: none; }
@media (max-width: 900px) {
    .uw-ai-page .uw-header .uw-nav { display: none; }
    /* The row holding the menu: logo, then the menu button on the right, then the buttons. The panel
       opens under the whole row (containing block); :where() so a sticky row keeps its position. */
    :where(.uw-ai-page .uw-header :has(> .uw-mobile-nav)) { position: relative; }
    .uw-ai-page .uw-header :has(> .uw-mobile-nav) { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; }
    .uw-ai-page .uw-header :has(> .uw-mobile-nav) > :not(.uw-mobile-nav, .wp-block-buttons, .uw-nav) { order: 0; flex: 0 1 auto; min-width: 0; }
    .uw-ai-page .uw-header :has(> .uw-mobile-nav) > .wp-block-buttons { order: 2; flex: 0 0 auto; width: auto; margin: 0; }
    .uw-ai-page .uw-header .uw-mobile-nav { display: block; position: static; order: 1; margin: 0 0 0 auto; }
}
/* Long menus (VakmangidsMobileNav::menuTier): one compact row, else the menu button. */
.uw-ai-page .uw-header[class*="uw-header--menu-"] .uw-nav { flex-wrap: nowrap; column-gap: clamp(14px, 1.3vw, 22px); }
@media (min-width: 901px) and (max-width: 1099px) {
    .uw-ai-page .uw-header.uw-header--menu-1100 .uw-nav { display: none; }
    /* The row holding the menu: logo, then the menu button on the right, then the buttons. The panel
       opens under the whole row (containing block); :where() so a sticky row keeps its position. */
    :where(.uw-ai-page .uw-header.uw-header--menu-1100 :has(> .uw-mobile-nav)) { position: relative; }
    .uw-ai-page .uw-header.uw-header--menu-1100 :has(> .uw-mobile-nav) { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; }
    .uw-ai-page .uw-header.uw-header--menu-1100 :has(> .uw-mobile-nav) > :not(.uw-mobile-nav, .wp-block-buttons, .uw-nav) { order: 0; flex: 0 1 auto; min-width: 0; }
    .uw-ai-page .uw-header.uw-header--menu-1100 :has(> .uw-mobile-nav) > .wp-block-buttons { order: 2; flex: 0 0 auto; width: auto; margin: 0; }
    .uw-ai-page .uw-header.uw-header--menu-1100 .uw-mobile-nav { display: block; position: static; order: 1; margin: 0 0 0 auto; }
}
.uw-ai-page .uw-header.uw-header--menu-1100 :is(.site-header__main, .site-header__bar):not(:has(> .container)) { padding-inline: max(20px, calc((100% - 1200px) / 2)); }
.uw-ai-page .uw-header.uw-header--menu-1100 :is(.site-header__main, .site-header__bar) > .container { max-width: 1200px; }
@media (min-width: 901px) and (max-width: 1279px) {
    .uw-ai-page .uw-header.uw-header--menu-1280 .uw-nav { display: none; }
    /* The row holding the menu: logo, then the menu button on the right, then the buttons. The panel
       opens under the whole row (containing block); :where() so a sticky row keeps its position. */
    :where(.uw-ai-page .uw-header.uw-header--menu-1280 :has(> .uw-mobile-nav)) { position: relative; }
    .uw-ai-page .uw-header.uw-header--menu-1280 :has(> .uw-mobile-nav) { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; }
    .uw-ai-page .uw-header.uw-header--menu-1280 :has(> .uw-mobile-nav) > :not(.uw-mobile-nav, .wp-block-buttons, .uw-nav) { order: 0; flex: 0 1 auto; min-width: 0; }
    .uw-ai-page .uw-header.uw-header--menu-1280 :has(> .uw-mobile-nav) > .wp-block-buttons { order: 2; flex: 0 0 auto; width: auto; margin: 0; }
    .uw-ai-page .uw-header.uw-header--menu-1280 .uw-mobile-nav { display: block; position: static; order: 1; margin: 0 0 0 auto; }
}
.uw-ai-page .uw-header.uw-header--menu-1280 :is(.site-header__main, .site-header__bar):not(:has(> .container)) { padding-inline: max(20px, calc((100% - 1240px) / 2)); }
.uw-ai-page .uw-header.uw-header--menu-1280 :is(.site-header__main, .site-header__bar) > .container { max-width: 1240px; }
@media (min-width: 901px) and (max-width: 1439px) {
    .uw-ai-page .uw-header.uw-header--menu-1440 .uw-nav { display: none; }
    /* The row holding the menu: logo, then the menu button on the right, then the buttons. The panel
       opens under the whole row (containing block); :where() so a sticky row keeps its position. */
    :where(.uw-ai-page .uw-header.uw-header--menu-1440 :has(> .uw-mobile-nav)) { position: relative; }
    .uw-ai-page .uw-header.uw-header--menu-1440 :has(> .uw-mobile-nav) { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; }
    .uw-ai-page .uw-header.uw-header--menu-1440 :has(> .uw-mobile-nav) > :not(.uw-mobile-nav, .wp-block-buttons, .uw-nav) { order: 0; flex: 0 1 auto; min-width: 0; }
    .uw-ai-page .uw-header.uw-header--menu-1440 :has(> .uw-mobile-nav) > .wp-block-buttons { order: 2; flex: 0 0 auto; width: auto; margin: 0; }
    .uw-ai-page .uw-header.uw-header--menu-1440 .uw-mobile-nav { display: block; position: static; order: 1; margin: 0 0 0 auto; }
}
.uw-ai-page .uw-header.uw-header--menu-1440 :is(.site-header__main, .site-header__bar):not(:has(> .container)) { padding-inline: max(20px, calc((100% - 1400px) / 2)); }
.uw-ai-page .uw-header.uw-header--menu-1440 :is(.site-header__main, .site-header__bar) > .container { max-width: 1400px; }
@media (min-width: 901px) {
    .uw-ai-page .uw-header.uw-header--menu-always .uw-nav { display: none; }
    /* The row holding the menu: logo, then the menu button on the right, then the buttons. The panel
       opens under the whole row (containing block); :where() so a sticky row keeps its position. */
    :where(.uw-ai-page .uw-header.uw-header--menu-always :has(> .uw-mobile-nav)) { position: relative; }
    .uw-ai-page .uw-header.uw-header--menu-always :has(> .uw-mobile-nav) { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; }
    .uw-ai-page .uw-header.uw-header--menu-always :has(> .uw-mobile-nav) > :not(.uw-mobile-nav, .wp-block-buttons, .uw-nav) { order: 0; flex: 0 1 auto; min-width: 0; }
    .uw-ai-page .uw-header.uw-header--menu-always :has(> .uw-mobile-nav) > .wp-block-buttons { order: 2; flex: 0 0 auto; width: auto; margin: 0; }
    .uw-ai-page .uw-header.uw-header--menu-always .uw-mobile-nav { display: block; position: static; order: 1; margin: 0 0 0 auto; }
}

/* The menu's own look. It is only displayed where a rule above shows it. */
.uw-ai-page .uw-mobile-nav > summary {
    display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 14px;
    list-style: none; cursor: pointer; font-weight: 600; line-height: 1;
    border: 1px solid currentColor; border-radius: 6px;
}
.uw-ai-page .uw-mobile-nav > summary::-webkit-details-marker { display: none; }
.uw-ai-page .uw-mobile-nav > summary::before {
    content: ""; width: 18px; height: 2px; background: currentColor;
    box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}
.uw-ai-page .uw-mobile-nav[open] > summary::before {
    content: "×"; width: 18px; height: auto; background: none; box-shadow: none;
    font-size: 26px; line-height: 18px; text-align: center;
}
.uw-ai-page .uw-mobile-nav > summary:focus-visible { outline: 3px solid currentColor; outline-offset: 2px; }
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__panel {
    position: absolute; left: 16px; right: 16px; top: calc(100% + 4px); z-index: 50;
    width: auto; max-width: 26rem; padding: 8px 0; margin: 0 0 0 auto;
    max-height: calc(100vh - 140px); overflow-y: auto;
    background: #ffffff; color: #1f2937; border-radius: 8px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .18);
}
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__panel p { margin: 0; }
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__panel a {
    display: block; padding: 12px 20px; color: #1f2937; text-decoration: none; font-weight: 500;
}
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__panel a:hover,
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__panel a:focus-visible { background: #f1f5f9; outline: none; }
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__sub a { padding-left: 36px; font-weight: 400; }
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__cta { padding: 8px 16px 4px; }
.uw-ai-page .uw-mobile-nav .uw-mobile-nav__panel .uw-mobile-nav__cta a {
    text-align: center; font-weight: 700; border-radius: 6px;
    /* Not the brand pair: an orange with white text is often below 4.5:1. */
    background: #1f2937; color: #ffffff;
}
@media (max-width: 600px) {
    /* Logo and menu button share the row; the header's buttons are the last items of the menu. */
    .uw-ai-page .uw-header :has(> .uw-mobile-nav):has(.uw-mobile-nav__cta) > .wp-block-buttons { display: none; }
    .uw-ai-page .uw-header :has(> .uw-mobile-nav):has(.uw-mobile-nav__cta) { flex-wrap: nowrap; }
    .uw-ai-page .uw-header :has(> .uw-mobile-nav) > :not(.uw-mobile-nav, .wp-block-buttons, .uw-nav),
    .uw-ai-page .uw-header :has(> .uw-mobile-nav) > :not(.uw-mobile-nav, .wp-block-buttons, .uw-nav) * { white-space: normal; overflow-wrap: break-word; }
    .uw-ai-page .uw-header .uw-mobile-nav { flex: 0 0 auto; }
}
/* ── Layout guard: header rows ── */
.uw-ai-page :where(.site-header__main:not(:has(> .container)), .site-header__bar:not(:has(> .container))) {
    padding-inline: max(20px, calc((100% - var(--uw-container, 1200px)) / 2));
}
@media (max-width: 900px) {
    .uw-ai-page .uw-header .site-header__main,
    .uw-ai-page .uw-header .site-header__main > .container { flex-wrap: wrap; }
    .uw-ai-page .uw-header .site-header__main .uw-nav { min-width: 0; max-width: 100%; flex-wrap: wrap; }
}
/* ── Premium layer: tokens ── */
.uw-ai-page {
    --uwp-brand: var(--uw-color-primary, var(--c-primary, var(--uw-primary, #1f2937)));
    --uwp-accent: var(--uw-accent, var(--uw-color-accent, var(--uw-color-secondary, var(--c-secondary, var(--uwp-brand)))));
    --uwp-radius: var(--uw-radius, 12px);
}
/* ── Components ── */
:where(.uw-ai-page .badges) { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-block: 0 1.25rem; }
:where(.uw-ai-page .center .badges, .uw-ai-page .hero--centered .badges) { justify-content: center; }
:where(.uw-ai-page .badge) {
    display: inline-flex; align-items: center; gap: .4em; width: fit-content; margin: 0;
    padding: .38em .95em; border-radius: 999px; font-size: .82rem; font-weight: 600; line-height: 1.3; letter-spacing: .01em;
    background: color-mix(in srgb, var(--uwp-accent) 14%, transparent);
    border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}
/* A deep brand band with a soft accent glow and white text. --uwp-band/-2 are this site's brand colour
   darkened until white reads on it (premiumTokens()); without a palette, a dark mix of its tokens. */
.uw-ai-page .section--gradient {
    background-color: var(--uwp-band, color-mix(in srgb, var(--uwp-brand) 55%, #0b1220));
    background-image:
        radial-gradient(60% 80% at 100% 0%, color-mix(in srgb, var(--uwp-accent) 22%, transparent), transparent 70%),
        linear-gradient(135deg, var(--uwp-band, color-mix(in srgb, var(--uwp-brand) 55%, #0b1220)), var(--uwp-band-2, color-mix(in srgb, var(--uwp-brand) 35%, #0b1220)));
    color: #ffffff;
}
.uw-ai-page .section--gradient :is(h1, h2, h3, h4, p, li, .lead, .eyebrow):not(:where(.card, .form-panel, .faq-item, .uw-service-cf7, .uw-contact-form-ajax-card) *) { color: #ffffff; }
/* A brand-colour button on the brand band would have no visible shape: a white button, brand label. */
.uw-ai-page .section--gradient .btn--primary > .wp-block-button__link:not(:where(.card, .form-panel) *) {
    background-color: #ffffff; color: var(--uwp-band, #111827); border-color: #ffffff;
}
.uw-ai-page .section--gradient .btn--secondary > .wp-block-button__link:not(:where(.card, .form-panel) *) { color: #ffffff; }
:where(.uw-ai-page .card--feature) { border-top: 3px solid var(--uwp-accent); }
:where(.uw-ai-page .card--elevated) { border-color: transparent; box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 18px 40px -20px rgba(15, 23, 42, .30); }
/* A soft glow behind a split hero (no image): depth without clutter. */
.uw-ai-page .hero:not(.wp-block-cover) { position: relative; isolation: isolate; overflow: clip; }
.uw-ai-page .hero:not(.wp-block-cover)::before {
    content: ""; position: absolute; z-index: -1; pointer-events: none;
    width: min(720px, 70vw); aspect-ratio: 1; right: -12%; top: -30%;
    background: radial-gradient(closest-side, color-mix(in srgb, var(--uwp-accent) 30%, transparent), transparent);
}
/* ── Icons (VakmangidsIcons: the mask image per icon) ── */
.uw-ai-page [class*="icon--"]::before {
    content: ""; display: block; width: 2.25rem; height: 2.25rem; margin-bottom: .9rem;
    background-color: var(--uw-icon, var(--uwp-brand));
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center; mask-position: center;
    -webkit-mask-size: contain; mask-size: contain;
}
/* In a band the icon takes its heading's colour, which reads on whatever the card is (white or translucent). */
.uw-ai-page :is(.section--dark, .section--accent, .section--gradient, .cta-band, .hero) [class*="icon--"]::before { background-color: currentColor; }
.uw-ai-page :is(.badge, .eyebrow, p, li)[class*="icon--"]::before {
    display: inline-block; width: 1.1em; height: 1.1em; margin: 0 .45em 0 0; vertical-align: -.18em; background-color: currentColor;
}
/* ── Depth on hover ── */
.uw-ai-page :is(.card, .step, .faq-item) { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.uw-ai-page .wp-block-button__link { transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .uw-ai-page :is(.card, .card--feature, .card--elevated):not(.uw-header *, .uw-footer *):hover {
        transform: translateY(-4px); box-shadow: 0 2px 4px rgba(15, 23, 42, .05), 0 22px 44px -22px rgba(15, 23, 42, .35);
    }
    .uw-ai-page .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -14px rgba(15, 23, 42, .55); }
    .uw-ai-page .wp-block-button__link:active { transform: translateY(0); box-shadow: none; }
}
/* ── Entrance motion ── */
/* What reveals on scroll: section heads and the blocks of a section, below the hero. */
@keyframes uwpRise { from { opacity: 0; transform: translateY(44px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes uwpFade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
    /* The hero, on load: its blocks one after another (a split hero: text column, then the other). */
    .uw-ai-page .hero > .container > :not(.wp-block-columns),
    .uw-ai-page .hero > .container > .wp-block-columns > .wp-block-column,
    .uw-ai-page .hero .wp-block-cover__inner-container > * { animation: uwpRise .8s cubic-bezier(.2, .7, .2, 1) backwards; }
    .uw-ai-page .hero :is(.container, .wp-block-columns, .wp-block-cover__inner-container) > :nth-child(2) { animation-delay: .12s; }
    .uw-ai-page .hero :is(.container, .wp-block-columns, .wp-block-cover__inner-container) > :nth-child(3) { animation-delay: .24s; }
    .uw-ai-page .hero :is(.container, .wp-block-columns, .wp-block-cover__inner-container) > :nth-child(n+4) { animation-delay: .36s; }
    /* Everything below the hero rises into place as it scrolls into view, over the first third of the
       screen; the items of a row one after another. */
    @supports (animation-timeline: view()) {
        .uw-ai-page :is(.section-head, .card, .step, .faq-item, .stat, .media, .form-panel, .badges, .split > .wp-block-column, .container > :is(h2, .wp-block-image, .wp-block-buttons, .lead)):not(.hero *, .uw-header *, .uw-footer *) {
            animation: uwpRise cubic-bezier(.2, .7, .2, 1) backwards; animation-timeline: view(); animation-range: entry 0% cover 30%;
        }
        .uw-ai-page .wp-block-columns > :nth-child(2):is(.card, .step, .stat, .faq-item, .wp-block-column):not(.hero *) { animation-range: entry 10% cover 36%; }
        .uw-ai-page .wp-block-columns > :nth-child(3):is(.card, .step, .stat, .faq-item, .wp-block-column):not(.hero *) { animation-range: entry 20% cover 42%; }
        .uw-ai-page .wp-block-columns > :nth-child(n+4):is(.card, .step, .stat, .faq-item, .wp-block-column):not(.hero *) { animation-range: entry 30% cover 48%; }
    }
}
/* A visitor who asked for less motion (a common Windows setting) still sees the page build up: a fade,
   no movement. */
@media (prefers-reduced-motion: reduce) {
    @supports (animation-timeline: view()) {
        .uw-ai-page :is(.section-head, .card, .step, .faq-item, .stat, .media, .form-panel, .badges, .split > .wp-block-column, .container > :is(h2, .wp-block-image, .wp-block-buttons, .lead)):not(.hero *, .uw-header *, .uw-footer *) {
            animation: uwpFade linear backwards; animation-timeline: view(); animation-range: entry 0% cover 25%;
        }
    }
}
.uw-ai-page { --uwp-band: #7a4a2b; --uwp-band-2: #5e3c28; --uwp-accent: #c9892f; }
/* ── Forms: Contact Form 7 + the preview stand-in ── */
.uw-ai-page .wpcf7,
.uw-ai-page .uw-contact-form-ajax-card {
    --uwf-accent: var(--uw-primary, var(--primary, #1f2937));
    --uwf-on-accent: var(--uw-primary-contrast, #ffffff);
    --uwf-field-text: var(--uw-field-text, #1f2937);
    --uwf-field: var(--uw-field, #ffffff);
    --uwf-border: var(--uw-border, #cbd5e1);
    --uwf-radius: var(--uw-radius, var(--radius, 8px));
    --uwf-error: #c0262d;
    --uwf-gap: 16px;
}
/* Only Contact Form 7's own wrapper is sized here: a site may use .uw-contact-form-ajax-card for
   a plain call-to-action card too, so that class only carries the tokens. */
.uw-ai-page .wpcf7 { box-sizing: border-box; width: 100%; max-width: 100%; }
.uw-ai-page .wpcf7 form, .uw-ai-page .uw-contact-form-ajax-card form { display: flex; flex-direction: column; gap: var(--uwf-gap); margin: 0; font-style: normal; }
.uw-ai-page .wpcf7 form p, .uw-ai-page .uw-contact-form-ajax-card form p { margin: 0; }
.uw-ai-page .wpcf7 form br { display: none; }
/* Contact Form 7 puts consecutive lines of the form template into ONE <p>, fields separated by
   <br>. So inside a <p> every field takes a full line, and only the submit button keeps its width. */
.uw-ai-page .wpcf7 form p { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: var(--uwf-gap) 12px; }
.uw-ai-page .wpcf7 form p > * { flex: 1 1 100%; min-width: 0; }
.uw-ai-page .wpcf7 form p > :is(input[type="submit"], button[type="submit"], .wpcf7-submit) { flex: 0 0 auto; }
.uw-ai-page .wpcf7 form label, .uw-ai-page .uw-contact-form-ajax-card form label {
    display: block;
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: inherit;
}
.uw-ai-page .wpcf7 form .wpcf7-form-control-wrap { display: block; position: relative; margin-top: 6px; }

/* Text fields, selects, textareas */
.uw-ai-page .wpcf7 form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="search"], select, textarea),
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="search"], select, textarea) {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 12px 14px;
    font: inherit;
    font-size: 16px;
    line-height: 1.4;
    color: var(--uwf-field-text);
    background: var(--uwf-field);
    border: 1px solid var(--uwf-border);
    border-radius: var(--uwf-radius);
    box-shadow: none;
}
.uw-ai-page .wpcf7 form textarea, .uw-ai-page .uw-contact-form-ajax-card form textarea { min-height: 140px; resize: vertical; }
.uw-ai-page .wpcf7 form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="search"], select, textarea)::placeholder,
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="search"], select, textarea)::placeholder { color: color-mix(in srgb, var(--uwf-field-text) 55%, transparent); }
.uw-ai-page .wpcf7 form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="search"], select, textarea):focus,
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="search"], select, textarea):focus {
    outline: 2px solid var(--uwf-accent);
    outline-offset: 1px;
    border-color: var(--uwf-accent);
}

/* Checkboxes and radio buttons: the box at its own size, the label beside it */
.uw-ai-page .wpcf7 form :is(input[type="checkbox"], input[type="radio"]),
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="checkbox"], input[type="radio"]) {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    min-height: 0;
    margin: 0;
    padding: 0;
    accent-color: var(--uwf-accent);
}
.uw-ai-page .wpcf7 form :is(input[type="checkbox"], input[type="radio"]):focus-visible,
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="checkbox"], input[type="radio"]):focus-visible { outline: 2px solid var(--uwf-accent); outline-offset: 2px; }
.uw-ai-page .wpcf7 form :is(.wpcf7-checkbox, .wpcf7-radio, .wpcf7-acceptance) { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.uw-ai-page .wpcf7 form .wpcf7-list-item { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 400; }
.uw-ai-page .wpcf7 form .wpcf7-list-item-label { font-weight: 400; }
.uw-ai-page .wpcf7 form .wpcf7-list-item label,
.uw-ai-page .uw-contact-form-ajax-card form :is(.uw-lawn-radio, .uw-lawn-checkbox) {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: auto;
    font-weight: 400;
    cursor: pointer;
}
.uw-ai-page .uw-contact-form-ajax-card form :is(.uw-lawn-radio, .uw-lawn-checkbox) { display: flex; margin: 0 0 8px; }
.uw-ai-page .uw-contact-form-ajax-card form :is(.uw-lawn-radio, .uw-lawn-checkbox):last-child { margin-bottom: 0; }
.uw-ai-page .uw-contact-form-ajax-card form .uw-lawn-field-box {
    padding: 14px 16px;
    color: var(--uwf-field-text);
    background: var(--uwf-field);
    border: 1px solid var(--uwf-border);
    border-radius: var(--uwf-radius);
}
.uw-ai-page .uw-contact-form-ajax-card form .uw-lawn-field-box > .uw-lawn-field-label { display: block; margin-bottom: 10px; font-weight: 700; }

/* Submit button */
.uw-ai-page .wpcf7 form :is(input[type="submit"], button[type="submit"], .wpcf7-submit),
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="submit"], button[type="submit"], .wpcf7-submit) {
    display: inline-block;
    width: auto;
    min-height: 48px;
    margin: 0;
    padding: 12px 28px;
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--uwf-on-accent);
    background: var(--uwf-accent);
    border: 0;
    border-radius: var(--uw-button-radius, var(--uwf-radius));
    cursor: pointer;
}
.uw-ai-page .wpcf7 form :is(input[type="submit"], button[type="submit"], .wpcf7-submit):hover, .uw-ai-page .uw-contact-form-ajax-card form :is(input[type="submit"], button[type="submit"], .wpcf7-submit):hover { filter: brightness(1.08); }
/* Contact Form 7 disables the button until a consent box is ticked: it must look disabled. */
.uw-ai-page .wpcf7 form :is(input[type="submit"], button[type="submit"], .wpcf7-submit):disabled { opacity: .5; cursor: not-allowed; filter: none; }
.uw-ai-page .wpcf7 form :is(input[type="submit"], button[type="submit"], .wpcf7-submit):focus-visible,
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="submit"], button[type="submit"], .wpcf7-submit):focus-visible { outline: 2px solid var(--uwf-accent); outline-offset: 3px; }
/* Contact Form 7's spinner sits over the end of the button row: shown while sending, it never
   moves the button or pushes the fields below it. */
.uw-ai-page .wpcf7 form .wpcf7-spinner { position: absolute; right: 12px; bottom: 12px; flex: none; margin: 0; }
.uw-ai-page .uw-contact-form-ajax-card form { align-items: stretch; }
.uw-ai-page .uw-contact-form-ajax-card form :is(input[type="submit"], button[type="submit"], .wpcf7-submit) { align-self: flex-start; }

/* Two fields side by side: <div class="uw-form-row"> in the form template. The <p> Contact
   Form 7 puts around them steps out of the way, so the fields themselves are the columns. */
.uw-ai-page .wpcf7 form .uw-form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: var(--uwf-gap);
}
.uw-ai-page .wpcf7 form .uw-form-row > p { display: contents; }

/* Validation: messages in the flow, below their field, never on top of the next one */
.uw-ai-page .wpcf7 form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="search"], select, textarea).wpcf7-not-valid { border-color: var(--uwf-error); }
.uw-ai-page .wpcf7 .wpcf7-not-valid-tip {
    display: block;
    margin-top: 6px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--uwf-error);
}
/* Contact Form 7 6.x adds the browser-side and the server-side message for the same field;
   one per field is enough (also with CF7 loaded the standard way on a theme page). */
.uw-ai-page .wpcf7 .wpcf7-not-valid-tip ~ .wpcf7-not-valid-tip { display: none; }
.uw-ai-page .wpcf7 form .wpcf7-response-output {
    margin: 4px 0 0;
    padding: 12px 16px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--uwf-field-text);
    background: var(--uwf-field);
    border: 2px solid var(--uwf-border);
    border-radius: var(--uwf-radius);
}
.uw-ai-page .wpcf7 form.init .wpcf7-response-output,
.uw-ai-page .wpcf7 form.resetting .wpcf7-response-output,
.uw-ai-page .wpcf7 form.submitting .wpcf7-response-output,
.uw-ai-page .wpcf7 form .wpcf7-response-output:empty { display: none; }
.uw-ai-page .wpcf7 form.sent .wpcf7-response-output { border-color: #2e9e4f; }
.uw-ai-page .wpcf7 form:is(.failed, .aborted) .wpcf7-response-output { border-color: var(--uwf-error); }
.uw-ai-page .wpcf7 form.spam .wpcf7-response-output { border-color: #e8772e; }
.uw-ai-page .wpcf7 form:is(.invalid, .unaccepted, .payment-required) .wpcf7-response-output { border-color: #e0a800; }

/* What Contact Form 7's own stylesheet hides (the canvas may not load it) */
.uw-ai-page .wpcf7 .hidden-fields-container { display: none; }
.uw-ai-page .wpcf7 .screen-reader-response {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    word-wrap: normal;
}

@media (max-width: 600px) {
    .uw-ai-page .wpcf7 form :is(input[type="submit"], button[type="submit"], .wpcf7-submit), .uw-ai-page .uw-contact-form-ajax-card form :is(input[type="submit"], button[type="submit"], .wpcf7-submit) { width: 100%; }
    .uw-ai-page .uw-contact-form-ajax-card form :is(input[type="submit"], button[type="submit"], .wpcf7-submit) { align-self: stretch; }
    .uw-ai-page .wpcf7 form .uw-form-row { grid-template-columns: 1fr; }
}
/* Only repaired request sections: preserve the site's palette, type and section rhythm. */
.uw-ai-page .uw-request-cta { display: flex; justify-content: center; gap: 16px; margin: clamp(28px,4vw,48px) auto 0; }
.uw-ai-page .uw-request-cta .wp-block-button { max-width: 100%; text-align: center; }
.uw-ai-page .uw-request-section .container > .wp-block-columns + .media { margin-top: clamp(24px,3vw,40px); }
.uw-ai-page .uw-request-section .container > .media + .form-panel { margin-top: clamp(24px,3vw,40px); }
.uw-ai-page .uw-request-section .form-panel { padding: clamp(24px,4vw,48px); }
.uw-ai-page .uw-request-section .form-panel :is(.uw-service-cf7,.uw-contact-form-ajax-card) {
    width: 100%; max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; background: transparent;
}
.uw-ai-page .uw-request-section .uw-lawn-contact-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.uw-ai-page .uw-request-section .uw-lawn-contact-form > :is(input[name="phone"],.uw-lawn-field-box:last-of-type,button) { grid-column: 1 / -1; }
.uw-ai-page .uw-request-section .uw-lawn-contact-form > button { justify-self: start; }
@media (max-width: 600px) {
    .uw-ai-page .uw-request-section .uw-lawn-contact-form { grid-template-columns: 1fr; }
    .uw-ai-page .uw-request-section .uw-lawn-contact-form > button { justify-self: stretch; }
}
.uw-ai-page .icon--phone::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72%2012.84%2012.84%200%200%200%20.7%202.81%202%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45%2012.84%2012.84%200%200%200%202.81.7A2%202%200%200%201%2022%2016.92z%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72%2012.84%2012.84%200%200%200%20.7%202.81%202%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45%2012.84%2012.84%200%200%200%202.81.7A2%202%200%200%201%2022%2016.92z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-ai-page .icon--mail::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20width%3D%2220%22%20height%3D%2216%22%20x%3D%222%22%20y%3D%224%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m22%207-8.97%205.7a1.94%201.94%200%200%201-2.06%200L2%207%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20width%3D%2220%22%20height%3D%2216%22%20x%3D%222%22%20y%3D%224%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m22%207-8.97%205.7a1.94%201.94%200%200%201-2.06%200L2%207%22%2F%3E%3C%2Fsvg%3E"); }
.uw-ai-page .icon--map-pin::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%204.993-5.539%2010.193-7.399%2011.799a1%201%200%200%201-1.202%200C9.539%2020.193%204%2014.993%204%2010a8%208%200%200%201%2016%200%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%204.993-5.539%2010.193-7.399%2011.799a1%201%200%200%201-1.202%200C9.539%2020.193%204%2014.993%204%2010a8%208%200%200%201%2016%200%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E"); }
.uw-ai-page .icon--calendar::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Crect%20width%3D%2218%22%20height%3D%2218%22%20x%3D%223%22%20y%3D%224%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Crect%20width%3D%2218%22%20height%3D%2218%22%20x%3D%223%22%20y%3D%224%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3C%2Fsvg%3E"); }
.uw-ai-page .icon--circle-check::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E"); }
/* ══ SOCIAL PROFILE LINKS (SocialLinks::footerRow()) ══ */
.uw-social { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 20px 0 0; }
.uw-social > a {
    position: relative;
    display: inline-flex;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border: 1px solid currentColor;
    border-radius: 50%;
    color: inherit;
    font-size: 0;
    line-height: 0;
    text-decoration: none;
    overflow: hidden;
    opacity: .85;
    transition: opacity .2s ease, transform .2s ease;
}
.uw-social > a:hover,
.uw-social > a:focus-visible { opacity: 1; transform: translateY(-2px); }
.uw-social > a::before {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 18px;
    height: 18px;
    background-color: currentColor;
    -webkit-mask: var(--uw-social-icon) center / contain no-repeat;
    mask: var(--uw-social-icon) center / contain no-repeat;
}
.has-text-align-center .uw-social,
.uw-social:only-child { justify-content: center; }
.uw-social > a[data-platform="facebook"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M18%202h-3a5%205%200%200%200-5%205v3H7v4h3v8h4v-8h3l1-4h-4V7a1%201%200%200%201%201-1h3z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="instagram"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%2220%22%20height%3D%2220%22%20rx%3D%225%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224%22%2F%3E%3C%2Fg%3E%3Ccircle%20fill%3D%22%23000%22%20cx%3D%2217.5%22%20cy%3D%226.5%22%20r%3D%221.25%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="x"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M18.244%202.25h3.308l-7.227%208.26%208.502%2011.24H16.17l-5.214-6.817L4.99%2021.75H1.68l7.73-8.835L1.254%202.25H8.08l4.713%206.231zm-1.161%2017.52h1.833L7.084%204.126H5.117z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="linkedin"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M16%208a6%206%200%200%201%206%206v7h-4v-7a2%202%200%200%200-4%200v7h-4v-7a6%206%200%200%201%206-6z%22%2F%3E%3Crect%20fill%3D%22%23000%22%20x%3D%222%22%20y%3D%229%22%20width%3D%224%22%20height%3D%2212%22%2F%3E%3Ccircle%20fill%3D%22%23000%22%20cx%3D%224%22%20cy%3D%224%22%20r%3D%222%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="youtube"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%20d%3D%22M23%207.2a3%203%200%200%200-2.1-2.1C19%204.6%2012%204.6%2012%204.6s-7%200-8.9.5A3%203%200%200%200%201%207.2%2031%2031%200%200%200%20.5%2012a31%2031%200%200%200%20.5%204.8%203%203%200%200%200%202.1%202.1c1.9.5%208.9.5%208.9.5s7%200%208.9-.5a3%203%200%200%200%202.1-2.1%2031%2031%200%200%200%20.5-4.8%2031%2031%200%200%200-.5-4.8zM9.75%2015.02V8.98L15.5%2012z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="tiktok"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M16.6%205.82A4.28%204.28%200%200%201%2015.54%203h-3.09v12.4a2.59%202.59%200%201%201-2.59-2.6c.27%200%20.53.04.78.12V9.77a5.7%205.7%200%200%200-.78-.05%205.69%205.69%200%201%200%205.69%205.68V9.01a7.35%207.35%200%200%200%204.3%201.38V7.3a4.3%204.3%200%200%201-3.25-1.48z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="pinterest"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M12%202a10%2010%200%200%200-3.64%2019.31c-.09-.78-.17-1.98.03-2.83l1.2-5.08s-.3-.62-.3-1.53c0-1.43.83-2.5%201.87-2.5.88%200%201.3.66%201.3%201.45%200%20.88-.56%202.2-.85%203.43-.24%201.02.52%201.86%201.53%201.86%201.84%200%203.25-1.94%203.25-4.74%200-2.48-1.78-4.21-4.33-4.21-2.95%200-4.68%202.21-4.68%204.5%200%20.89.34%201.84.77%202.36a.31.31%200%200%201%20.07.3l-.29%201.18c-.04.19-.15.23-.35.14-1.3-.6-2.11-2.5-2.11-4.03%200-3.28%202.38-6.29%206.87-6.29%203.6%200%206.41%202.57%206.41%206.01%200%203.58-2.26%206.47-5.39%206.47-1.05%200-2.04-.55-2.38-1.2l-.65%202.47c-.23.9-.86%202.03-1.29%202.72A10%2010%200%201%200%2012%202z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="whatsapp"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M12.05%200C5.5%200%20.16%205.34.16%2011.89c0%202.1.55%204.14%201.59%205.95L.06%2024l6.3-1.65a11.88%2011.88%200%200%200%205.68%201.45h.01c6.55%200%2011.89-5.34%2011.89-11.89%200-3.18-1.24-6.16-3.48-8.41A11.82%2011.82%200%200%200%2012.05%200zm0%2021.79h-.01a9.87%209.87%200%200%201-5.03-1.38l-.36-.21-3.74.98%201-3.65-.24-.37a9.86%209.86%200%200%201-1.51-5.26c0-5.45%204.44-9.88%209.89-9.88%202.64%200%205.12%201.03%206.99%202.9a9.82%209.82%200%200%201%202.89%206.99c0%205.45-4.44%209.88-9.88%209.88zm5.42-7.4c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94%201.16-.17.2-.35.22-.64.07-.3-.15-1.26-.46-2.39-1.47a8.97%208.97%200%200%201-1.65-2.06c-.17-.3-.02-.46.13-.61.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.21-.24-.58-.49-.5-.67-.51h-.57c-.2%200-.52.07-.79.37-.27.3-1.04%201.02-1.04%202.48s1.07%202.88%201.21%203.07c.15.2%202.1%203.2%205.08%204.49.71.31%201.26.49%201.7.63.71.22%201.36.19%201.87.12.57-.09%201.76-.72%202-1.41.25-.7.25-1.29.17-1.41-.07-.13-.27-.2-.57-.35z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a[data-platform="telegram"] { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M21.94%204.3%2018.7%2019.6c-.24%201.08-.88%201.35-1.79.84l-4.94-3.64-2.38%202.3c-.26.26-.48.48-.99.48l.35-5.02%209.14-8.26c.4-.35-.09-.55-.62-.2L6.17%2013.2l-4.86-1.52c-1.06-.33-1.08-1.06.22-1.57l19-7.32c.88-.33%201.65.2%201.41%201.51z%22%2F%3E%3C%2Fsvg%3E"); }
.uw-social > a { --uw-social-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M2%2012h20M12%202a15.3%2015.3%200%200%201%204%2010%2015.3%2015.3%200%200%201-4%2010%2015.3%2015.3%200%200%201-4-10%2015.3%2015.3%200%200%201%204-10z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); }
/* design-first library: after the shared layers */
.uw-ai-page .lib-map .uw-map, .uw-ai-page .df-footer__map .uw-map { border-radius: var(--uw-radius-lg, 12px); overflow: hidden; line-height: 0; }
.uw-ai-page .df-footer .uw-legal-links { margin: 0; font-size: 14px; }
.uw-ai-page .df-footer .uw-legal-links a { color: inherit; }
.uw-ai-page .df-footer .uw-social { margin-top: 16px; }