/* Kahsay Shared Blocks Contract 1
 * Nur strukturelle Baseline. Aktive Kahsay-Themes dürfen Typografie, Farbe,
 * Radien, Schatten und Komposition vollständig überschreiben.
 */
:where(.shw-builder-container,.shw-section,.shw-image-text,.shw-video-hero,.shw-project-cta,.shw-service-area,.shw-social-feed,.shw-pricing,.shw-project-facts,.shw-feature-grid,.shw-stats,.shw-partners,.shw-opening-hours,.shw-testimonial,.shw-notice,.shw-timed-notice,.shw-project-wizard){box-sizing:border-box;max-width:100%}
:where(.shw-builder-container__inner,.shw-section__inner){width:min(100% - 2rem,var(--kahsay-container-max,1240px));margin-inline:auto}
.shw-builder-container--normal .shw-builder-container__inner,.shw-section--normal .shw-section__inner{max-width:840px}
.shw-builder-container--full .shw-builder-container__inner,.shw-section--full .shw-section__inner{width:100%;max-width:none}
.shw-builder-container--pad-none{padding-block:0}.shw-builder-container--pad-small{padding-block:1.5rem}.shw-builder-container--pad-normal{padding-block:3rem}.shw-builder-container--pad-large{padding-block:clamp(4rem,8vw,7rem)}
.shw-builder-flex{display:flex;min-width:0}.shw-builder-flex--row{flex-direction:row}.shw-builder-flex--column{flex-direction:column}.shw-builder-flex--wrap{flex-wrap:wrap}.shw-builder-flex--justify-start{justify-content:flex-start}.shw-builder-flex--justify-center{justify-content:center}.shw-builder-flex--justify-end{justify-content:flex-end}.shw-builder-flex--justify-between{justify-content:space-between}.shw-builder-flex--justify-around{justify-content:space-around}.shw-builder-flex--justify-evenly{justify-content:space-evenly}.shw-builder-flex--align-start{align-items:flex-start}.shw-builder-flex--align-center{align-items:center}.shw-builder-flex--align-end{align-items:flex-end}.shw-builder-flex--align-stretch{align-items:stretch}.shw-builder-flex--gap-none{gap:0}.shw-builder-flex--gap-small{gap:.75rem}.shw-builder-flex--gap-medium{gap:1.5rem}.shw-builder-flex--gap-large{gap:clamp(2rem,5vw,4rem)}
.shw-grid{display:grid;grid-template-columns:repeat(var(--shw-grid-columns,3),minmax(0,1fr));gap:var(--shw-grid-gap,1.5rem)}
.shw-card,.shw-builder-feature,.shw-builder-icon-box,.shw-image-text,.shw-testimonial,.shw-notice,.shw-price-card,.shw-project-fact{min-width:0}
.shw-card img,.shw-builder-feature img,.shw-image-text img,.shw-person img,.shw-partners img,.shw-social-card img{display:block;max-width:100%;height:auto}
.shw-image-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}.shw-image-text--image-right .shw-image-text__media{order:2}
.shw-feature-grid__items{display:grid;grid-template-columns:repeat(var(--shw-feature-cols,3),minmax(0,1fr));gap:1.25rem}.shw-stats__items{display:grid;grid-template-columns:repeat(var(--shw-stats-cols,3),minmax(0,1fr));gap:1.25rem}.shw-partners__grid{display:grid;grid-template-columns:repeat(var(--shw-partner-cols,4),minmax(0,1fr));gap:1.25rem}.shw-project-facts__grid{display:grid;grid-template-columns:repeat(var(--shw-facts-cols,2),minmax(0,1fr));gap:1.25rem}.shw-pricing__grid{display:grid;grid-template-columns:repeat(var(--shw-pricing-cols,3),minmax(0,1fr));gap:1.25rem}
.shw-builder-counter>div{display:grid;grid-template-columns:repeat(var(--shw-counter-cols,3),minmax(0,1fr));gap:1.25rem}.shw-builder-icon-list>div{display:grid;grid-template-columns:repeat(var(--shw-icon-list-cols,1),minmax(0,1fr));gap:1rem}
.shw-builder-timeline ol{list-style:none;padding:0;margin:0;display:grid;gap:1.25rem}.shw-builder-timeline li{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start}.shw-builder-timeline__marker{display:grid;place-items:center;min-width:2.5rem;min-height:2.5rem}
.shw-builder-progress__bar{overflow:hidden}.shw-builder-progress__fill{display:block;height:.6rem;width:var(--shw-progress,0%)}
.shw-builder-image-box{position:relative;min-height:var(--shw-image-height,340px);background-size:cover;background-position:center;overflow:hidden}.shw-builder-image-box::before{content:"";position:absolute;inset:0;background:rgba(0,32,70,var(--shw-image-overlay,.55))}.shw-builder-image-box__body{position:relative;z-index:1}
.shw-video-hero{position:relative;min-height:var(--shw-video-hero-height,620px);overflow:hidden;display:grid;align-items:center}.shw-video-hero__media,.shw-video-hero__overlay{position:absolute;inset:0}.shw-video-hero__video{width:100%;height:100%;object-fit:cover;object-position:var(--shw-video-focus-x,50%) var(--shw-video-focus-y,50%)}.shw-video-hero__overlay{background:var(--shw-video-overlay,#003b7f);opacity:var(--shw-video-overlay-opacity,.56)}.shw-video-hero__content{position:relative;z-index:1;width:min(100% - 2rem,var(--kahsay-container-max,1240px));margin-inline:auto}
.shw-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:1rem}.shw-gallery figure{margin:0}.shw-gallery img{width:100%;height:auto;display:block}
.shw-lightbox{max-width:min(94vw,1200px);max-height:92vh;border:0;padding:0;background:transparent}.shw-lightbox::backdrop{background:rgba(0,0,0,.82)}.shw-lightbox img{max-width:90vw;max-height:86vh;object-fit:contain}
.shw-before-after{position:relative;overflow:hidden}.shw-before-after img{display:block;width:100%;height:100%;object-fit:cover}.shw-before-after__after{position:absolute;inset:0;clip-path:inset(0 0 0 var(--shw-ba-position,50%))}
.shw-tabs [role="tablist"]{display:flex;flex-wrap:wrap;gap:.5rem}.shw-tabs [role="tabpanel"][hidden]{display:none!important}
.shw-smart-table__scroll{overflow:auto;-webkit-overflow-scrolling:touch}.shw-smart-table table{width:100%;border-collapse:collapse}
.shw-stepper__list{list-style:none;padding:0;display:flex;gap:1rem;flex-wrap:wrap}.shw-stepper__panel[hidden]{display:none!important}
.shw-document-library__items{display:grid;gap:1rem}.shw-document-library__controls{display:flex;flex-wrap:wrap;gap:.75rem}
.shw-social-feed__items{display:grid;grid-template-columns:repeat(var(--shw-social-cols,3),minmax(0,1fr));gap:1.25rem}.shw-social-card{position:relative;min-width:0}.shw-social-card__media img{width:100%;aspect-ratio:4/3;object-fit:cover}.shw-social-card__link{position:absolute;inset:0;z-index:2}
.shw-project-wizard__progress{display:flex;gap:.75rem;flex-wrap:wrap;list-style:none;padding:0}.shw-project-wizard__panel{border:0;padding:0;margin:0}.shw-project-wizard__panel:not(:first-of-type){display:none}.shw-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:.75rem}.shw-project-wizard__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
:where(.shw-project-wizard,.shw-date-picker,.shw-document-library) input,:where(.shw-project-wizard,.shw-date-picker,.shw-document-library) select,:where(.shw-project-wizard,.shw-date-picker,.shw-document-library) textarea{max-width:100%}
.shw-preset--outline{border:1px solid var(--kahsay-color-border,#d6e2ea)}.shw-shadow--soft{box-shadow:0 8px 28px rgba(0,0,0,.08)}.shw-shadow--medium{box-shadow:0 14px 38px rgba(0,0,0,.12)}.shw-shadow--strong{box-shadow:0 22px 54px rgba(0,0,0,.18)}.shw-radius--none{border-radius:0}.shw-radius--small{border-radius:var(--kahsay-radius-sm,8px)}.shw-radius--medium{border-radius:var(--kahsay-radius-md,12px)}.shw-radius--large{border-radius:var(--kahsay-radius-lg,18px)}.shw-radius--pill{border-radius:999px}.shw-sticky{position:sticky;top:1rem}.shw-hover--lift,.shw-hover--zoom,.shw-hover--glow{transition:transform .2s ease,box-shadow .2s ease}.shw-hover--lift:hover{transform:translateY(-3px)}
.kahsay-block-compat-notice{padding:1rem 1.25rem;border:1px solid var(--kahsay-color-border,#d6e2ea);border-radius:var(--kahsay-radius-md,12px);background:var(--kahsay-color-surface-muted,#f5f8fa)}
@media (min-width:1025px){.shw-hide-desktop{display:none!important}}
@media (min-width:701px) and (max-width:1024px){.shw-hide-tablet{display:none!important}.shw-grid{grid-template-columns:repeat(min(2,var(--shw-grid-columns,2)),minmax(0,1fr))}.shw-social-feed__items{grid-template-columns:repeat(min(2,var(--shw-social-cols,2)),minmax(0,1fr))}}
@media (max-width:700px){.shw-hide-mobile{display:none!important}.shw-builder-flex--row{flex-direction:column}.shw-grid,.shw-feature-grid__items,.shw-stats__items,.shw-partners__grid,.shw-project-facts__grid,.shw-pricing__grid,.shw-builder-counter>div,.shw-builder-icon-list>div,.shw-social-feed__items,.shw-project-wizard__fields{grid-template-columns:1fr}.shw-image-text{grid-template-columns:1fr}.shw-image-text--image-right .shw-image-text__media{order:0}.shw-video-hero{min-height:min(var(--shw-video-hero-height,620px),78vh)}}
@media (prefers-reduced-motion:reduce){.shw-hover--lift,.shw-hover--zoom,.shw-hover--glow{transition:none}.shw-hover--lift:hover{transform:none}}


/* Block Contract 2: gemeinsame Mediensemantik fuer alle Kahsay Themes. */
.shw-image-text__media img,.shw-person__media img{object-position:var(--kahsay-focus-x,50%) var(--kahsay-focus-y,50%)}
.shw-media-ratio--1-1 .shw-image-text__media,.shw-media-ratio--1-1 .shw-person__media{aspect-ratio:1/1}
.shw-media-ratio--4-3 .shw-image-text__media,.shw-media-ratio--4-3 .shw-person__media{aspect-ratio:4/3}
.shw-media-ratio--3-2 .shw-image-text__media,.shw-media-ratio--3-2 .shw-person__media{aspect-ratio:3/2}
.shw-media-ratio--16-9 .shw-image-text__media,.shw-media-ratio--16-9 .shw-person__media{aspect-ratio:16/9}
.shw-media-ratio--portrait .shw-image-text__media,.shw-media-ratio--portrait .shw-person__media{aspect-ratio:4/5}
.shw-media-ratio--auto .shw-image-text__media{aspect-ratio:auto}
@media(max-width:767.98px){.shw-image-text__media img,.shw-person__media img{object-position:var(--kahsay-focus-x-mobile,var(--kahsay-focus-x,50%)) var(--kahsay-focus-y-mobile,var(--kahsay-focus-y,50%))}}

/* Robust reflow contract */
[class^="shw-"],[class*=" shw-"]{overflow-wrap:anywhere}
[class^="shw-"] :where(button,a,input,select,textarea),[class*=" shw-"] :where(button,a,input,select,textarea){min-width:0;max-width:100%;white-space:normal}
.shw-before-after__label--before{left:auto;right:1rem}.shw-before-after__label--after{left:1rem;right:auto}
