@font-face {
    font-family: Oswald;
    src: url("/cms-assets/woerner/woerner-oswald.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
}

body[data-brand="woerner"] {
    --woerner-ink: #0f172a;
    --woerner-red: #b91232;
    --woerner-warm: #ffede6;
    --woerner-paper: #fff9f6;
    --woerner-line: #ecdcd7;
    --woerner-heading: Oswald, "Arial Narrow", sans-serif;
    --woerner-gutter: max(1.5rem, calc((100% - 70rem) / 2));
    color: var(--woerner-ink);
    background: white;
}
[data-brand="woerner"] .site-header {
    padding-inline: var(--woerner-gutter);
    border-color: var(--woerner-line);
    background: white;
}
[data-brand="woerner"] .site-brand img {
    width: clamp(9.5rem, 17vw, 12.5rem);
    height: auto;
}
[data-brand="woerner"] .site-header nav {
    column-gap: clamp(.75rem, 1.5vw, 1.4rem);
    font-family: var(--woerner-heading);
}
[data-brand="woerner"] .site-header nav a:hover,
[data-brand="woerner"] .site-header nav a[aria-current="page"] {
    color: var(--woerner-red);
}
[data-brand="woerner"] .site-header-cta,
[data-brand="woerner"] .cms-action,
[data-brand="woerner"] .cms-inquiry button {
    background: var(--woerner-red);
    color: white;
    border-radius: .35rem;
}
[data-brand="woerner"] .cms-block {
    padding: clamp(1.8rem, 3.7vw, 3.4rem) var(--woerner-gutter);
    scroll-margin-top: 7rem;
}
[data-brand="woerner"] .cms-block h1,
[data-brand="woerner"] .cms-block h2,
[data-brand="woerner"] .cms-block h3 {
    font-family: var(--woerner-heading);
    font-weight: 600;
    letter-spacing: normal;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
[data-brand="woerner"] .cms-block h1 { font-size: clamp(2rem, 4.1vw, 3.2rem); }
[data-brand="woerner"] .cms-block h2 { font-size: clamp(1.65rem, 3.1vw, 2.35rem); }
[data-brand="woerner"] .cms-block p { line-height: 1.62; }
[data-brand="woerner"] .woerner-copy {
    max-width: 43rem;
    min-width: 0;
    line-height: 1.65;
    overflow-wrap: anywhere;
}
[data-brand="woerner"] .woerner-copy > :first-child { margin-top: 0; }
[data-brand="woerner"] .woerner-copy > :last-child { margin-bottom: 0; }
[data-brand="woerner"] .woerner-copy li + li { margin-top: .5rem; }
[data-brand="woerner"] .woerner-copy blockquote {
    margin-inline: 0;
    padding: .6rem 1rem;
    border-inline-start: .2rem solid var(--woerner-red);
    background: white;
    font-style: italic;
}
[data-brand="woerner"] .woerner-copy + .cms-action { margin-top: 1.1rem; }
[data-brand="woerner"] .cms-light { background: var(--woerner-warm); }
[data-brand="woerner"] .cms-dark { background: #261319; color: white; }
[data-brand="woerner"] .cms-dark .cms-action { color: #641528; background: white; }

[data-brand="woerner"][data-page="home"] .cms-hero {
    display: grid;
    gap: .8rem;
    min-height: 0;
    background: white;
}
[data-brand="woerner"][data-page="home"] .cms-hero h1 { margin-bottom: 0; }
[data-brand="woerner"][data-page="home"] .cms-hero img,
[data-brand="woerner"] .cms-textImage img {
    margin: 0;
    border-radius: .55rem;
}
[data-brand="woerner"][data-page="home"] .cms-hero img {
    aspect-ratio: 5 / 4;
    object-position: center 36%;
}
.woerner-hero-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
[data-brand="woerner"] .woerner-outline-action {
    background: white;
    color: var(--woerner-red);
    box-shadow: inset 0 0 0 1px var(--woerner-red);
}
[data-brand="woerner"][data-page="home"] .cms-hero + .cms-text {
    padding-block: 1.25rem;
    border-block: 1px solid var(--woerner-line);
    background: var(--woerner-paper);
}
[data-brand="woerner"][data-page="home"] .cms-hero + .cms-text h2 {
    font-size: clamp(1.45rem, 2.7vw, 1.9rem);
    margin-bottom: .55rem;
}

[data-brand="woerner"] #leistungen { background: white; }
[data-brand="woerner"] #leistungen .cms-feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
    margin-top: 1.15rem;
}
[data-brand="woerner"] .cms-feature-card {
    min-width: 0;
    color: var(--woerner-ink);
    background: white;
    border: 1px solid var(--woerner-line);
    border-radius: .55rem;
}
[data-brand="woerner"] #leistungen .cms-feature-card img {
    aspect-ratio: 4 / 3;
    max-height: 7.5rem;
    object-fit: contain;
    object-position: left center;
}
[data-brand="woerner"] #about { border-top: 1px solid var(--woerner-line); }
[data-brand="woerner"] #about img { aspect-ratio: 4 / 5; object-position: center 38%; }
[data-brand="woerner"] #about .woerner-copy { grid-column: 2; }
[data-brand="woerner"] #about.cms-imageRight .woerner-copy { grid-column: 1; }

.woerner-workshop {
    padding: clamp(1.8rem, 3.7vw, 3.4rem) var(--woerner-gutter);
}
.woerner-workshop {
    background: var(--woerner-paper);
    border-block: 1px solid var(--woerner-line);
}
[data-brand="woerner"] .woerner-workshop > .cms-block {
    display: block;
    min-width: 0;
    padding: 0;
}
[data-brand="woerner"] .woerner-workshop > .cms-block + .cms-block { margin-top: 1.35rem; }
[data-brand="woerner"] .woerner-workshop #werkstatt > img { margin-top: 1rem; }
.woerner-workshop-repeated-cover #werkstatt > img { display: none; }
[data-brand="woerner"] .woerner-workshop .cms-text h2 { font-size: clamp(1.4rem, 2.7vw, 1.8rem); }
[data-brand="woerner"] .woerner-workshop .cms-featureGrid h2 { font-size: 1.45rem; }
[data-brand="woerner"] .woerner-workshop .cms-feature-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: .7rem;
    margin-top: .55rem;
}
[data-brand="woerner"] .woerner-workshop .cms-feature-card {
    display: grid;
    gap: .3rem;
    padding: .6rem;
}
[data-brand="woerner"] .woerner-workshop .cms-feature-card img {
    aspect-ratio: 2 / 1;
    max-height: 11rem;
    margin: 0;
    border-radius: .25rem;
}
[data-brand="woerner"] .woerner-workshop .cms-feature-card h3,
[data-brand="woerner"] .woerner-workshop .cms-feature-card p { margin: 0; }

[data-brand="woerner"] .woerner-contact > p { margin: 0; }
[data-brand="woerner"] .woerner-contact label.cms-contact-consent {
    display: flex;
    align-items: start;
    gap: .5rem;
    font-size: .875rem;
    line-height: 1.35;
}
[data-brand="woerner"] .woerner-contact input[type="checkbox"] {
    width: 1.25rem;
    height: 1.25rem;
    min-height: 0;
    flex: 0 0 1.25rem;
    accent-color: var(--woerner-red);
}
[data-brand="woerner"] .woerner-contact .cms-form-status:empty { display: none; }
[data-brand="woerner"]:not([data-page="home"]) .cms-text { padding-block: 1rem; }

.woerner-footer {
    padding-inline: var(--woerner-gutter);
    border-top: 1px solid var(--woerner-line);
    color: #681a29;
    background: white;
    font-size: .91rem;
}
.woerner-footer-inner,
.woerner-footer nav,
.woerner-footer p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.woerner-footer-inner { justify-content: space-between; gap: .1rem 1rem; padding-block: .6rem; }
.woerner-footer nav,
.woerner-footer p { gap: 0 .85rem; margin: 0; }
.woerner-footer a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: .2em; }

.woerner-quick {
    display: grid;
    gap: .4rem;
    position: fixed;
    z-index: 30;
    inset-inline-end: env(safe-area-inset-right);
    top: 50%;
    transform: translateY(-50%);
}
.woerner-quick-link {
    position: relative;
    display: grid;
    width: 3.15rem;
    height: 3rem;
    place-items: center;
    color: white;
    background: var(--woerner-red);
    border-radius: 999px 0 0 999px;
    box-shadow: 0 3px 12px #26070f30;
    text-decoration: none;
}
.woerner-quick-link span {
    position: absolute;
    inset-inline-end: calc(100% + .35rem);
    padding: .4rem .65rem;
    white-space: nowrap;
    background: #261319;
    border-radius: .35rem;
    opacity: 0;
    pointer-events: none;
}
.woerner-quick-link:hover span,
.woerner-quick-link:focus-visible span { opacity: 1; }
[data-brand="woerner"] :focus-visible { outline: 3px solid #005e85; outline-offset: 3px; }

@media (min-width: 800px) {
    .woerner-workshop {
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
        align-items: start;
        column-gap: clamp(1.6rem, 4vw, 3.25rem);
    }
    .woerner-workshop { grid-template-rows: auto 1fr; row-gap: 1.35rem; }
    .woerner-workshop > #werkstatt { grid-area: 1 / 1; }
    .woerner-workshop > .cms-text { grid-area: 2 / 1; }
    .woerner-workshop > .cms-featureGrid { grid-area: 1 / 2 / 3; }
    [data-brand="woerner"] .woerner-workshop > .cms-block + .cms-block { margin-top: 0; }
}
@media (min-width: 930px) {
    [data-brand="woerner"][data-page="home"] .cms-hero {
        grid-template-columns: minmax(0, 1.13fr) minmax(0, .87fr);
        grid-template-rows: auto auto 1fr;
        align-items: start;
        column-gap: clamp(1.6rem, 4vw, 4rem);
    }
    [data-brand="woerner"][data-page="home"] .cms-hero img {
        grid-area: 1 / 2 / 4;
        align-self: center;
        aspect-ratio: 4 / 4.3;
        max-height: 30rem;
    }
    [data-brand="woerner"][data-page="home"] .cms-hero .woerner-copy,
    [data-brand="woerner"][data-page="home"] .woerner-hero-actions { grid-column: 1; }
}
@media (max-width: 1240px) {
    body[data-brand="woerner"] { --woerner-gutter: 1.25rem; }
    [data-brand="woerner"] .cms-block,
    .woerner-workshop { padding-inline-end: 4rem; }
}
@media (max-width: 929px) {
    [data-brand="woerner"][data-page="home"] .cms-hero img { grid-row: 2; object-position: center 13%; }
}
@media (max-width: 799px) {
    [data-brand="woerner"] #leistungen .cms-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .woerner-footer-inner, .woerner-footer p, .woerner-footer nav { justify-content: center; }
    .woerner-footer-inner { flex-direction: column; text-align: center; }
}
@media (max-width: 530px) {
    [data-brand="woerner"] .cms-block,
    .woerner-workshop { padding-inline-end: 3.5rem; }
    [data-brand="woerner"] #leistungen .cms-feature-grid { grid-template-columns: minmax(0, 1fr); }
    [data-brand="woerner"][data-page="home"] .cms-hero img { max-height: 18rem; }
    .woerner-quick-link { width: 2.75rem; height: 2.75rem; }
}

[data-brand="woerner"] {
    --woerner-appointment-red: #cf2332;
}
.woerner-appointment {
    display: grid;
    gap: 0;
    padding: clamp(1rem, 2vw, 1.75rem) var(--woerner-gutter);
    background: var(--woerner-appointment-red);
}
[data-brand="woerner"] .woerner-appointment > .cms-block {
    padding: clamp(1rem, 3vw, 2.75rem);
    min-width: 0;
}
[data-brand="woerner"] .woerner-appointment > #termin {
    align-self: center;
    color: white;
    background: transparent;
}
[data-brand="woerner"] #termin h2 { color: white; font-size: clamp(2rem, 4vw, 3.25rem); }
.woerner-appointment-phone {
    display: grid;
    gap: .25rem;
    margin: 1.5rem 0 .85rem;
    font-family: var(--woerner-heading);
    font-size: 1.5rem;
}
.woerner-appointment-phone span { font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; }
.woerner-appointment-phone a { font-weight: 600; text-underline-offset: .18em; }
[data-brand="woerner"] .woerner-appointment > #terminanfrage {
    align-self: center;
    padding: clamp(.9rem, 1.6vw, 1.4rem);
    color: var(--woerner-ink);
    background: var(--woerner-warm);
    border-radius: .5rem;
}
[data-brand="woerner"] :is(#terminanfrage, .woerner-visit > #anfrage) h2 {
    margin: 0 0 .65rem;
    font-size: clamp(1.4rem, 2.7vw, 1.85rem);
}
[data-brand="woerner"][data-page="home"] #werkstatt {
    padding-block: clamp(1.35rem, 2.75vw, 2.25rem);
    background: var(--woerner-paper);
}
[data-brand="woerner"][data-page="home"] #werkstatt h2 { margin-bottom: .6rem; }

.woerner-visit {
    display: grid;
    gap: 0;
    margin: clamp(1rem, 2.5vw, 2rem) var(--woerner-gutter);
    border: 1px solid var(--woerner-line);
    border-radius: .65rem;
    background: white;
    box-shadow: 0 .4rem 1.8rem #26070f0b;
}
.woerner-visit-info {
    display: grid;
    gap: .65rem;
    padding: clamp(.85rem, 1.7vw, 1.3rem);
    border-radius: .6rem .6rem 0 0;
    color: white;
    background: var(--woerner-appointment-red);
    scroll-margin-top: 7rem;
}
.woerner-visit-item {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .8rem;
    font-family: var(--woerner-heading);
}
.woerner-visit-item > span:last-child {
    display: grid;
    min-width: 0;
    gap: .2rem;
    overflow-wrap: anywhere;
}
.woerner-visit-item strong { font-size: clamp(1.15rem, 2.1vw, 1.5rem); }
.woerner-visit-item a { text-underline-offset: .18em; }
.woerner-visit-icon {
    display: grid;
    flex: 0 0 clamp(2.25rem, 3.5vw, 2.85rem);
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: #ffffff24;
}
[data-brand="woerner"] .woerner-visit > #anfrage {
    min-width: 0;
    padding: clamp(.9rem, 1.6vw, 1.4rem);
    border: 0;
    border-radius: 0 0 0 .6rem;
    background: white;
}
[data-brand="woerner"] :is(#terminanfrage, #anfrage) {
    container: woerner-form / inline-size;
}

[data-brand="woerner"] .woerner-contact {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .5rem .7rem;
    max-width: none;
}
[data-brand="woerner"] .woerner-contact > :not(.cms-trap) {
    min-width: 0;
    grid-column: 1 / -1;
}
[data-brand="woerner"] .woerner-contact > label:not(.cms-contact-consent) {
    gap: .2rem;
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.3;
}
[data-brand="woerner"] .woerner-contact label b { color: var(--woerner-red); }
[data-brand="woerner"] .woerner-contact input:is([type="email"], [type="tel"], [name="name"]),
[data-brand="woerner"] .woerner-contact textarea {
    min-height: 2.5rem;
    border: 1px solid #c5bab6;
    border-radius: .35rem;
    padding: .4rem .6rem;
    background: #f9f7f6;
    font-size: 1rem;
}
[data-brand="woerner"] .woerner-contact textarea {
    min-height: 3.4rem;
    height: 3.4rem;
    resize: vertical;
}
[data-brand="woerner"] .woerner-contact .cms-captcha {
    align-items: center;
    gap: 0 .3rem;
    max-width: none;
    margin: 0;
    border: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    font-size: .84rem;
}
[data-brand="woerner"] .woerner-contact .cms-captcha label {
    display: flex !important;
    align-items: center;
    flex-wrap: wrap;
    gap: .2rem .4rem;
    min-width: 0;
}
[data-brand="woerner"] .woerner-contact .cms-captcha input[type="number"] {
    width: 2.75rem !important;
    min-height: 2.35rem;
    padding: .3rem .35rem;
    font-size: 1rem;
}
[data-brand="woerner"] .woerner-contact .cms-captcha button[type="button"] {
    border: 0;
    padding-inline: .15rem;
    background: transparent;
    color: var(--woerner-red);
    font-size: .8rem;
    text-decoration: underline;
    text-underline-offset: .16em;
    white-space: nowrap;
}
[data-brand="woerner"] .woerner-contact > button[type="submit"] {
    min-height: 2.75rem;
    padding: .5rem .85rem;
    font-size: .9rem;
}
[data-brand="woerner"] .woerner-contact .woerner-form-note {
    color: #57494a;
    font-size: .84rem;
}

.woerner-map {
    display: grid;
    min-height: 15rem;
    min-width: 0;
    place-items: center;
    background: radial-gradient(circle at 66% 38%, #fff9f5, transparent 47%), #f0ebe7;
}
.woerner-map-card {
    width: min(22rem, 100% - 2rem);
    padding: 1.3rem;
    border: 1px solid var(--woerner-line);
    border-radius: .55rem;
    background: white;
    text-align: center;
}
.woerner-map-card svg { color: var(--woerner-red); }
.woerner-map-card h3 { margin: .25rem 0; font: 600 1.65rem var(--woerner-heading); }
.woerner-map-card p { margin: .45rem 0 .7rem; }
.woerner-map-card button { border: 0; font: inherit; font-weight: 700; cursor: pointer; }
.woerner-map-card > a { display: block; margin-top: .65rem; }
.woerner-map iframe { display: block; width: 100%; height: 100%; min-height: 15rem; border: 0; }

@media (min-width: 800px) {
    .woerner-appointment { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .woerner-visit { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .woerner-visit-info { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .woerner-visit > .woerner-map-local {
        min-height: 18rem;
        contain: size;
    }
}
@container woerner-form (min-width: 22rem) {
    [data-brand="woerner"] .woerner-contact > label:has(> input:is([name="name"], [name="email"], [name="phone"])) {
        grid-column: span 3;
    }
}
@container woerner-form (min-width: 29rem) {
    [data-brand="woerner"] .woerner-contact > label:has(> input:is([name="name"], [name="email"], [name="phone"])) {
        grid-column: span 2;
    }
    [data-brand="woerner"] .woerner-contact > .cms-captcha { grid-column: span 4; }
    [data-brand="woerner"] .woerner-contact > button[type="submit"] {
        grid-column: span 2;
        align-self: center;
        justify-self: end;
    }
}
@media (max-width: 1240px) {
    .woerner-appointment { padding-inline-end: 4rem; }
    .woerner-visit { margin-inline-end: 4rem; }
}
@media (max-width: 530px) {
    .woerner-appointment { padding-inline-end: 3.5rem; }
    .woerner-visit { margin-inline-end: 3.5rem; }
}

.woerner-map:has(iframe) { grid-template-rows: minmax(0, 1fr) auto; }
.woerner-map-route { justify-self: stretch; padding: .6rem 1rem; background: white; text-align: center; }
.woerner-map-local { grid-template-rows: minmax(0, 1fr) auto; }
.woerner-map-local > img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 15rem;
    object-fit: cover;
}
.woerner-map-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .25rem .75rem;
    padding-inline: .75rem;
    background: white;
}
.woerner-map-links > a:first-child { font-size: .8rem; }
.woerner-public-contact { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; }
