/*
Theme Name: Werkverein
Description: Projektspezifisches Hello-Elementor-Child-Theme. Gestaltung folgt über das zentrale Elementor-Kit.
Author: anner.ruhr
Template: hello-elementor
Version: 0.1.22
Text Domain: werkverein
*/

@font-face { font-family: "Fustat"; src: url("assets/fonts/fustat-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

@font-face { font-family: "Fustat"; src: url("assets/fonts/fustat-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }

@font-face { font-family: "Fustat"; src: url("assets/fonts/fustat-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

@font-face { font-family: "Fustat"; src: url("assets/fonts/fustat-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* Source article art direction: native image blocks remain editable. */
@media (min-width: 768px) { .wp-block-image.wv-image-mobile { display: none; } }
@media (max-width: 767px) { .wp-block-image.wv-image-desktop { display: none; } }
/* Legal copy includes long names and URLs; keep text readable on narrow screens. */
.elementor-element-wvlegal .elementor-widget-text-editor { min-width: 0; overflow-wrap: anywhere; }

/* Source prose links are underlined; colors remain editable in the native Kit. */
.elementor-widget-text-editor a:not(.elementor-button),
.elementor-widget-accordion .elementor-tab-content a:not(.elementor-button),
.elementor-widget-n-accordion .e-n-accordion-item > .e-con a:not(.elementor-button) { text-decoration: underline; }

/* Match the original Next.js fallback metrics for glyphs absent from Fustat. */
@font-face { font-family: "Fustat Fallback"; src: local("Arial"); ascent-override: 99.34%; descent-override: 41.72%; line-gap-override: 0%; size-adjust: 100.67%; }

/* Source Lifeworld focus colors; native Elementor normal/hover controls remain editable. */
.elementor .elementor-element.wv-lifeworld-button .elementor-button:focus:not(:hover) { background-color: var(--e-global-color-v4-wv-accent, #ff8c00); color: var(--e-global-color-v4-wv-white, #ffffff); }
.elementor .elementor-element.wv-lifeworld-button .elementor-button:focus-visible { outline: 2px solid #aaaaaa; outline-offset: 2px; }

.elementor .elementor-element.wv-lifeworld-button .elementor-button { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke; transition-duration: 200ms; transition-timing-function: cubic-bezier(0, 0, .2, 1); }

/* Native Button exposes typography/padding; source fixed height needs this shared minimum. */
.elementor .elementor-element.wv-lifeworld-button .elementor-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; white-space: normal; max-width: 100%; }
@media (max-width: 767px) { .elementor .elementor-element.wv-lifeworld-button .elementor-button { min-height: 44.4px; } }

/* Native Button has no focus-state controls; use the same native Atomic bridge roles as normal/hover controls. */
.elementor .elementor-element.elementor-widget.wv-brand-primary .elementor-button:focus:not(:hover) { background-color: var(--e-global-color-v4-wv-primary, var(--e-global-color-primary, #458fe4)); color: var(--e-global-color-v4-wv-white, #ffffff); }
.elementor .elementor-element.elementor-widget.wv-brand-secondary .elementor-button:focus:not(:hover) { background-color: var(--e-global-color-v4-wv-secondary, var(--e-global-color-secondary, #deecfb)); color: var(--e-global-color-v4-wv-primary, var(--e-global-color-primary, #458fe4)); }
.elementor .elementor-element.elementor-widget.wv-brand-button .elementor-button:focus-visible { outline: 2px solid #aaaaaa; outline-offset: 2px; }
.elementor .elementor-element.elementor-widget.wv-brand-button .elementor-button { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke; transition-duration: 200ms; transition-timing-function: cubic-bezier(0, 0, .2, 1); }

/* Shared minimum-height exception; all source typography/spacing uses native controls. */
.elementor .elementor-element.wv-brand-button .elementor-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; white-space: normal; max-width: 100%; }
@media (max-width: 767px) { .elementor .elementor-element.wv-brand-button .elementor-button { min-height: 44.4px; } }

/* Keyboard focus scrolls immediately; pointer anchor navigation keeps its native smooth behavior. */
html:has(:focus-visible) { scroll-behavior: auto !important; }

/* Long translated action labels can wrap inside their native button. */
.elementor .wv-brand-button .elementor-button-text,.elementor .wv-lifeworld-button .elementor-button-text {min-width:0;overflow-wrap:anywhere;}

/* Preserve readable translated headings when a single word exceeds its column. */
.elementor-heading-title {overflow-wrap:anywhere;hyphens:auto;}

.elementor .elementor-widget-text-editor.wv-legal-text h2 {font-family:var(--e-global-typography-wvh4-font-family),var(--wv-font-fallback,sans-serif);font-size:var(--e-global-typography-wvh4-font-size);font-weight:var(--e-global-typography-wvh4-font-weight);line-height:var(--e-global-typography-wvh4-line-height);}

.elementor .elementor-widget-text-editor.wv-legal-text h3 {font-family:var(--e-global-typography-wvh5-font-family),var(--wv-font-fallback,sans-serif);font-size:var(--e-global-typography-wvh5-font-size);font-weight:var(--e-global-typography-wvh5-font-weight);line-height:var(--e-global-typography-wvh5-line-height);}

.elementor .elementor-widget-text-editor.wv-legal-text h4 {font-family:var(--e-global-typography-wvh6-font-family),var(--wv-font-fallback,sans-serif);font-size:var(--e-global-typography-wvh6-font-size);font-weight:var(--e-global-typography-wvh6-font-weight);line-height:var(--e-global-typography-wvh6-line-height);}

.elementor .elementor-widget-text-editor.wv-legal-text h5 {font-family:var(--e-global-typography-wvh6-font-family),var(--wv-font-fallback,sans-serif);font-size:var(--e-global-typography-wvh6-font-size);font-weight:var(--e-global-typography-wvbase-font-weight);line-height:var(--e-global-typography-wvh6-line-height);}

.elementor .wv-legal-text :is(h2,h3,h4,h5) strong {font-weight:inherit;}

/* Allow long contact and application text to wrap when browser font size grows. */
.wv-contact-link,
.wv-job-body :is(p,li),
.wv-job-application .elementor-field-type-acceptance label {
    overflow-wrap:anywhere;
}

/* Keep native video controls inside the player while interacting. */
.wv-employer-media-video:hover .elementor-wrapper,
.wv-employer-media-section:focus-within .wv-employer-media-video .elementor-wrapper{transform:none!important;}

/* Shared desktop product crop; reserve the same square before image loading. */
@media(min-width:1024px){.elementor-widget-image.wv-product-image{aspect-ratio:1!important;}.elementor .wv-product-image img{aspect-ratio:1;object-fit:cover;height:auto;}}

/* Keep native paragraph and list text within its column when browser fonts grow. */
.elementor-widget-text-editor :is(p,li){overflow-wrap:anywhere;}

/* Keep native accordion keyboard focus clear of viewport edges. */
.elementor-widget-n-accordion summary { scroll-margin-block: 8px; }

/* Keep the native focus outline inside the viewport during keyboard scrolling. */
.elementor-widget-theme-post-content a[href] { scroll-margin-block: 8px; }
