/*
 Theme Name:   Astra Child
 Template:     astra
 Description:  Child theme for Astra — WohnArt Studio
 Version:      4.2
*/

/* =============================================
   CUSTOM VARIABLES
   ============================================= */
:root {
    --wa-primary: #71979c;
    --wa-primary-dark: #4f8389;
    --wa-navy: #1f273a;
    --wa-text: #212930;
    --wa-text-sec: #404e5c;
    --wa-bg: #f5f7fa;
    --wa-card: #ffffff;
    --wa-border: #e5e7eb;
    --wa-border-light: #f0f1f3;
    --wa-radius: 12px;
}

/* =============================================
   Remove dotted focus outline on mouse click (keep for keyboard nav)
   ============================================= */
:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

/* =============================================
   EXISTING: Dynamic city background
   ============================================= */
.dynamic-city-bg {
    position: relative;
    background-image: url('/wp-content/uploads/2025/05/IMG_9861-1-1536x1152.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15) !important;
}
.dynamic-city-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--ast-global-color-7);
    opacity: 0.6;
    z-index: 1;
    pointer-events: none;
}
.dynamic-city-bg > * { position: relative; z-index: 2; }

/* =============================================
   EXISTING: Lists baseline
   ============================================= */
.wp-block-list { padding-left: 20px; }

/* =============================================
   EXISTING: Bare blocks in entry-content
   ============================================= */
.entry-content[data-ast-blocks-layout] > *:not(.alignfull):not(.wp-block-uagb-container):not(#servicegebiete-block):not(script) {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 40px;
    padding-right: 40px;
    box-sizing: border-box;
}
.entry-content[data-ast-blocks-layout] > p { line-height: 1.75; }
.entry-content[data-ast-blocks-layout] > .alignfull + *:not(.alignfull):not(.wp-block-uagb-container):not(#servicegebiete-block):not(script),
.entry-content[data-ast-blocks-layout] > .wp-block-uagb-container + *:not(.alignfull):not(.wp-block-uagb-container):not(#servicegebiete-block):not(script) {
    margin-top: 2.5em;
}
.entry-content[data-ast-blocks-layout] > *:not(.alignfull):not(.wp-block-uagb-container):not(#servicegebiete-block):not(script):last-child {
    margin-bottom: 2.5em;
}

/* =============================================
   EXISTING: Servicegebiete full-width
   ============================================= */
#servicegebiete-block {
    max-width: none !important;
    padding: 55px 30px !important;
    box-sizing: border-box !important;
}
#servicegebiete-block h2,
#servicegebiete-block p {
    text-align: center !important;
    max-width: none !important;
}

/* =============================================
   EXISTING: wp-block-group internals
   ============================================= */
.entry-content .wp-block-group h3.wp-block-heading { margin-top: 1.6em; margin-bottom: 0.5em; font-size: 1.25rem; }
.entry-content .wp-block-group h3.wp-block-heading:first-of-type { margin-top: 0.8em; }
.entry-content .wp-block-group > p { line-height: 1.75; margin-bottom: 1em; }
.entry-content .wp-block-group .wp-block-list { padding-left: 24px; margin-bottom: 1.2em; }
.entry-content .wp-block-group .wp-block-list li { margin-bottom: 0.5em; line-height: 1.65; padding-left: 4px; }

/* =============================================
   BLOG: White background & layout
   ============================================= */
body.blog,
body.single-post,
body.archive,
body.category {
    background: var(--wa-bg) !important;
}

/* Fix footer: make .site-content transparent so body bg shows through */
.blog .site-content,
.single-post .site-content,
.archive .site-content,
.category .site-content {
    background: transparent !important;
    background-color: transparent !important;
}

.blog #content > .ast-container,
.single-post #content > .ast-container,
.archive #content > .ast-container,
.category #content > .ast-container {
    background: transparent !important;
    max-width: 1340px;
}

/* 2-column layout: content + sidebar */
.blog #content > .ast-container,
.archive #content > .ast-container,
.category #content > .ast-container {
    display: grid !important;
    grid-template-columns: 1fr 320px;
    gap: 36px;
    padding: 40px 40px 80px;
    align-items: start;
}

/* =============================================
   BLOG ARCHIVE: Card Grid
   ============================================= */
.blog #primary,
.archive #primary,
.category #primary {
    width: 100% !important;
    float: none !important;
    order: 1;
}

.blog .ast-row,
.archive .ast-row,
.category .ast-row {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

/* =============================================
   BLOG ARCHIVE: Card Styles
   ============================================= */
.blog .ast-article-post,
.archive .ast-article-post,
.category .ast-article-post {
    background: var(--wa-card) !important;
    border: 1px solid var(--wa-border) !important;
    border-radius: var(--wa-radius) !important;
    overflow: hidden;
    padding: 0 !important;
    margin: 0 !important;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    display: flex;
    flex-direction: column;
}
.blog .ast-article-post:hover,
.archive .ast-article-post:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.08);
    border-color: var(--wa-primary) !important;
}

.blog .ast-article-inner,
.archive .ast-article-inner {
    padding: 0 !important;
    margin: 0 !important;
}
.blog .post-content,
.archive .post-content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Card image */
.blog .ast-blog-featured-section,
.archive .ast-blog-featured-section {
    margin: 0 !important;
    padding: 0 !important;
}
.blog .post-thumb-img-content,
.archive .post-thumb-img-content {
    aspect-ratio: 16/9;
    overflow: hidden;
    display: block;
    background: #e8eaed;
}
.blog .post-thumb-img-content img,
.archive .post-thumb-img-content img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}
.blog .ast-article-post:hover .post-thumb-img-content img {
    transform: scale(1.05);
}

/* Card body: title, category, excerpt, read more */
.blog .ast-article-post .entry-title,
.archive .ast-article-post .entry-title {
    font-size: 1.2rem !important;
    font-weight: 700;
    line-height: 1.35;
    margin: 0 !important;
    padding: 20px 24px 0 !important;
}
.blog .ast-article-post .entry-title a,
.archive .ast-article-post .entry-title a {
    color: var(--wa-navy);
    text-decoration: none;
    transition: color 0.2s;
}
.blog .ast-article-post:hover .entry-title a {
    color: var(--wa-primary);
}

/* Category badge */
.blog .ast-article-post .cat-links,
.archive .ast-article-post .cat-links {
    padding: 12px 24px 0 !important;
    margin: 0 !important;
    display: block;
}
.blog .ast-article-post .cat-links a,
.archive .ast-article-post .cat-links a {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 3px 12px;
    border-radius: 20px;
    border: 1px solid var(--wa-primary);
    color: var(--wa-primary);
    text-decoration: none;
    display: inline-block;
    transition: background 0.2s, color 0.2s;
}
.blog .ast-article-post:hover .cat-links a {
    background: var(--wa-primary);
    color: #fff;
}

/* Excerpt */
.blog .ast-excerpt-container,
.archive .ast-excerpt-container {
    padding: 12px 24px 0 !important;
    margin: 0 !important;
    flex: 1;
}
.blog .ast-excerpt-container p,
.archive .ast-excerpt-container p {
    font-size: 0.92rem;
    color: var(--wa-text-sec);
    line-height: 1.6;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Read more */
.blog .read-more,
.archive .read-more {
    padding: 16px 24px 24px !important;
    margin: 0 !important;
}
.blog .read-more a,
.archive .read-more a {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--wa-primary-dark);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: gap 0.2s;
}
.blog .read-more a::after {
    content: "\2192";
    transition: transform 0.2s;
}
.blog .read-more a:hover::after {
    transform: translateX(4px);
}

/* =============================================
   BLOG: Sidebar
   ============================================= */
.blog #secondary,
.archive #secondary,
.category #secondary,
.single-post #secondary {
    width: 100% !important;
    float: none !important;
    order: 2;
    position: sticky;
    top: 100px;
    align-self: start;
}
.blog .sidebar-main,
.archive .sidebar-main,
.category .sidebar-main,
.single-post .sidebar-main {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Sidebar widgets (scoped to #secondary to avoid affecting footer) */
.blog #secondary .widget,
.archive #secondary .widget,
.category #secondary .widget,
.single-post #secondary .widget {
    background: var(--wa-card) !important;
    border: 1px solid var(--wa-border);
    border-radius: var(--wa-radius);
    padding: 24px !important;
    margin: 0 !important;
}

/* Widget titles */
.blog #secondary .widget h2,
.blog #secondary .widget-title,
.archive #secondary .widget h2,
.single-post #secondary .widget h2,
.single-post #secondary .widget-title {
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--wa-text-sec) !important;
    margin-bottom: 16px !important;
    padding: 0 !important;
}

/* Sidebar search */
.blog #secondary .widget_search .search-form,
.single-post #secondary .widget_search .search-form {
    display: flex;
}
.blog #secondary .widget_search .search-form label,
.single-post #secondary .widget_search .search-form label {
    display: flex;
    flex: 1;
}
.blog #secondary .widget_search .search-field,
.single-post #secondary .widget_search .search-field {
    flex: 1;
    min-width: 0;
    background: var(--wa-bg);
    border: 1px solid var(--wa-border);
    border-radius: 10px 0 0 10px;
    padding: 12px 14px;
    font-size: 15px;
    color: var(--wa-text);
    outline: none;
    transition: border-color 0.2s;
}
.blog #secondary .widget_search .search-field:focus,
.single-post #secondary .widget_search .search-field:focus {
    border-color: var(--wa-primary);
}
/* Astra icon button inside label — use this as the styled button */
.blog #secondary .widget_search .ast-search-submit,
.single-post #secondary .widget_search .ast-search-submit {
    background: var(--wa-primary) !important;
    border: 1px solid var(--wa-primary) !important;
    border-radius: 0 10px 10px 0 !important;
    color: #fff !important;
    padding: 12px 16px;
    cursor: pointer;
    display: flex !important;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    position: static !important;
    right: auto !important;
    top: auto !important;
}
.blog #secondary .widget_search .ast-search-submit:hover,
.single-post #secondary .widget_search .ast-search-submit:hover {
    background: var(--wa-primary-dark) !important;
}
.blog #secondary .widget_search .ast-search-submit svg,
.single-post #secondary .widget_search .ast-search-submit svg {
    width: 18px;
    height: 18px;
    fill: #fff;
}
/* Hide the outer <input type="submit"> — only keep Astra's SVG button */
.blog #secondary .widget_search .search-form > .search-submit,
.single-post #secondary .widget_search .search-form > .search-submit {
    display: none !important;
}

/* Sidebar categories */
.blog #secondary .wp-block-categories-list,
.single-post #secondary .wp-block-categories-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.blog #secondary .wp-block-categories-list li,
.single-post #secondary .wp-block-categories-list li {
    border-bottom: 1px solid var(--wa-border-light);
}
.blog #secondary .wp-block-categories-list li:last-child,
.single-post #secondary .wp-block-categories-list li:last-child {
    border-bottom: none;
}
.blog #secondary .wp-block-categories-list a,
.single-post #secondary .wp-block-categories-list a {
    display: block;
    padding: 10px 0;
    font-size: 15px;
    color: var(--wa-text-sec);
    text-decoration: none;
    transition: color 0.2s;
}
.blog #secondary .wp-block-categories-list a:hover,
.single-post #secondary .wp-block-categories-list a:hover {
    color: var(--wa-primary);
}
.blog #secondary .widget .wp-block-group,
.single-post #secondary .widget .wp-block-group {
    padding: 0 !important;
    margin: 0 !important;
}

/* =============================================
   BLOG: Pagination
   ============================================= */
.blog .ast-pagination,
.archive .ast-pagination {
    margin-top: 40px;
    display: flex;
    justify-content: center;
    gap: 6px;
}
.blog .ast-pagination .page-numbers,
.archive .ast-pagination .page-numbers {
    min-width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--wa-radius);
    font-size: 15px;
    font-weight: 600;
    background: var(--wa-card);
    border: 1px solid var(--wa-border);
    color: var(--wa-text-sec);
    text-decoration: none;
    transition: all 0.2s;
}
.blog .ast-pagination .page-numbers.current {
    background: var(--wa-primary);
    border-color: var(--wa-primary);
    color: #fff;
}
.blog .ast-pagination .page-numbers:hover:not(.current) {
    border-color: var(--wa-primary);
    color: var(--wa-primary);
}

/* =============================================
   SINGLE POST: Layout
   ============================================= */
.single-post #content > .ast-container {
    display: grid !important;
    grid-template-columns: 1fr 320px;
    gap: 36px;
    padding: 40px 40px 80px;
    max-width: 1340px;
    align-items: start;
}

.blog-toc-left {
    display: none;
}

.single-post #primary {
    width: 100% !important;
    float: none !important;
    order: 1;
}

/* =============================================
   SINGLE POST: Hero (Image + Title)
   ============================================= */
.single-post .ast-article-single {
    background: var(--wa-card) !important;
    border-radius: var(--wa-radius);
    border: 1px solid var(--wa-border);
    overflow: hidden;
    padding: 0 !important;
    max-width: 100%;
    box-sizing: border-box;
}

.single-post .entry-header {
    padding: 0 !important;
    margin: 0 !important;
}

.single-post .entry-header .post-thumb-img-content {
    margin: 0 !important;
    overflow: hidden;
    background: #e8eaed;
}
.single-post .entry-header .post-thumb-img-content img {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    object-fit: cover;
    display: block !important;
    border-radius: 0;
}

.single-post h1.entry-title {
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    color: var(--wa-navy) !important;
    padding: 32px 40px 0 !important;
    margin: 0 !important;
}

.single-post .ast-breadcrumbs-wrapper {
    padding: 16px 40px 28px !important;
    margin: 0 !important;
}
.single-post .breadcrumb-trail {
    font-size: 14px;
    color: var(--wa-text-sec);
}
.single-post .breadcrumb-trail a {
    color: var(--wa-primary);
    text-decoration: none;
}
.single-post .breadcrumb-trail a:hover {
    text-decoration: underline;
}

/* =============================================
   SINGLE POST: Content Typography
   ============================================= */
.single-post .entry-content {
    padding: 0 40px 48px !important;
}

/* Override bare-blocks padding on single posts (already handled by entry-content padding) */
.single-post .entry-content[data-ast-blocks-layout] > *:not(ul):not(ol):not(.wp-block-group) {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.single-post .entry-content[data-ast-blocks-layout] > ul,
.single-post .entry-content[data-ast-blocks-layout] > ol {
    padding-left: 40px !important;
    padding-right: 0 !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.single-post .entry-content p {
    font-size: 1.05rem;
    color: var(--wa-text-sec);
    line-height: 1.8;
    margin-bottom: 1.25em;
}

.single-post .entry-content h2 {
    font-size: 1.65rem;
    font-weight: 700;
    color: var(--wa-navy);
    margin: 2.5em 0 0.8em;
    scroll-margin-top: 100px;
    line-height: 1.3;
}
.single-post .entry-content h2:first-child {
    margin-top: 0.5em;
}

.single-post .entry-content h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--wa-text);
    margin: 2em 0 0.6em;
    scroll-margin-top: 100px;
}

.single-post .entry-content h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--wa-text);
    margin: 1.5em 0 0.5em;
}

.single-post .entry-content a {
    color: var(--wa-primary-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.2s;
}
.single-post .entry-content a:hover {
    color: var(--wa-navy);
}

.single-post .entry-content ul,
.single-post .entry-content ol {
    font-size: 1.05rem;
    color: var(--wa-text-sec);
    line-height: 1.8;
    margin-bottom: 1.25em;
    padding-left: 40px !important;
}
.single-post .entry-content li {
    margin-bottom: 0.5em;
}

.single-post .entry-content blockquote {
    border-left: 3px solid var(--wa-primary);
    padding: 16px 24px;
    margin: 2em 0;
    background: rgba(113, 151, 156, 0.06);
    border-radius: 0 8px 8px 0;
    font-style: italic;
}

.single-post .entry-content img {
    border-radius: 8px;
    max-width: 100%;
    height: auto;
}

.single-post .entry-content hr {
    border: none;
    border-top: 1px solid var(--wa-border);
    margin: 2.5em 0;
}

/* Tables: horizontal scroll on mobile instead of page overflow */
.single-post .entry-content .wp-block-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
}
.single-post .entry-content .wp-block-table table {
    min-width: 480px;
}

/* wp-block-group: prevent overflow from inline padding/border */
.single-post .entry-content .wp-block-group {
    max-width: 100%;
    box-sizing: border-box;
}

.single-post .entry-content .wp-block-button__link {
    background: var(--wa-primary) !important;
    color: #fff !important;
    border-radius: 8px;
    padding: 14px 28px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}
.single-post .entry-content .wp-block-button__link:hover {
    background: var(--wa-primary-dark) !important;
    text-decoration: none;
}

/* =============================================
   TOC: Left sidebar (single posts)
   ============================================= */
.blog-toc-left-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--wa-text-sec);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--wa-border);
}

.toc-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.toc-list li {
    margin-bottom: 2px;
}
.toc-list li a {
    font-size: 13px;
    color: var(--wa-text-sec);
    text-decoration: none;
    padding: 6px 0 6px 14px;
    display: block;
    border-left: 2px solid transparent;
    transition: color 0.2s, border-color 0.2s;
    line-height: 1.4;
}
.toc-list li a:hover {
    color: var(--wa-text);
}
.toc-list li.toc-active a {
    color: var(--wa-navy);
    font-weight: 600;
    border-left-color: var(--wa-primary);
}

/* =============================================
   3-COLUMN LAYOUT (1440px+)
   ============================================= */
@media (min-width: 1440px) {
    .single-post #content > .ast-container {
        grid-template-columns: 200px minmax(0, 1fr) 320px !important;
        gap: 36px;
        max-width: 1500px;
    }
    .blog-toc-left {
        display: block !important;
        order: 0;
        position: sticky;
        top: 100px;
        align-self: start;
        max-height: calc(100vh - 120px);
        overflow-y: auto;
    }
    .single-post #primary { order: 1; }
    .single-post #secondary { order: 2; }
}

/* =============================================
   RESPONSIVE: Tablet (<=1024px)
   ============================================= */
@media (max-width: 1024px) {
    .blog #content > .ast-container,
    .archive #content > .ast-container,
    .category #content > .ast-container {
        grid-template-columns: 1fr !important;
        padding: 24px 20px 60px;
    }
    .blog .ast-row,
    .archive .ast-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
    .blog #secondary,
    .archive #secondary,
    .single-post #secondary {
        position: static;
        order: 3;
    }

    .single-post #content > .ast-container {
        grid-template-columns: 1fr !important;
        padding: 24px 20px 0;
    }
    .single-post h1.entry-title {
        font-size: 1.8rem !important;
        padding: 24px 28px 0 !important;
    }
    .single-post .ast-breadcrumbs-wrapper {
        padding: 12px 28px 20px !important;
    }
    .single-post .entry-content {
        padding: 0 28px 36px !important;
    }
}

/* =============================================
   RESPONSIVE: Mobile (<=640px)
   ============================================= */
@media (max-width: 640px) {
    .blog .ast-row,
    .archive .ast-row {
        grid-template-columns: 1fr !important;
        gap: 20px;
    }
    .blog .ast-article-post .entry-title {
        font-size: 1.1rem !important;
    }
    .single-post h1.entry-title {
        font-size: 1.5rem !important;
        padding: 20px 20px 0 !important;
    }
    .single-post .ast-breadcrumbs-wrapper {
        padding: 10px 20px 16px !important;
    }
    .single-post .entry-content {
        padding: 0 20px 28px !important;
    }
    .single-post .entry-content h2 {
        font-size: 1.4rem;
    }
    .single-post .entry-content p,
    .single-post .entry-content ul,
    .single-post .entry-content ol {
        font-size: 1rem;
    }
    .single-post .entry-content ul,
    .single-post .entry-content ol {
        padding-left: 24px !important;
    }
    .single-post .entry-content[data-ast-blocks-layout] > ul,
    .single-post .entry-content[data-ast-blocks-layout] > ol {
        padding-left: 24px !important;
    }
}

/* =============================================
   MOBILE OVERFLOW FIX: Prevent horizontal scroll
   ============================================= */
body.single-post,
body.blog,
body.archive,
body.category {
    overflow-x: hidden;
}

/* Constrain entry-content children */
.single-post .entry-content {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Tables: proper containment on narrow screens */
.single-post .entry-content .wp-block-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
}
.single-post .entry-content .wp-block-table table {
    min-width: 0;
    width: 100%;
}

@media (max-width: 640px) {
    .single-post .entry-content .wp-block-table table {
        font-size: 0.85rem;
    }
    .single-post .entry-content .wp-block-table th,
    .single-post .entry-content .wp-block-table td {
        padding: 8px 10px;
        word-break: break-word;
    }
}

/* Images, iframes, embeds: never exceed container */
.single-post .entry-content img,
.single-post .entry-content iframe,
.single-post .entry-content video,
.single-post .entry-content embed {
    max-width: 100% !important;
    height: auto;
}

/* wp-block figures: contain overflow */
.single-post .entry-content figure {
    max-width: 100%;
    overflow: hidden;
}

/* Pre/code blocks: scroll instead of overflow */
.single-post .entry-content pre {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* =============================================
   EXISTING RESPONSIVE: Bare blocks
   ============================================= */
@media (max-width: 921px) {
    .entry-content[data-ast-blocks-layout] > *:not(.alignfull):not(.wp-block-uagb-container):not(#servicegebiete-block):not(script) {
        padding-left: 30px;
        padding-right: 30px;
    }
}
@media (max-width: 544px) {
    .entry-content[data-ast-blocks-layout] > *:not(.alignfull):not(.wp-block-uagb-container):not(#servicegebiete-block):not(script) {
        padding-left: 20px;
        padding-right: 20px;
    }
    .entry-content[data-ast-blocks-layout] > p {
        font-size: 0.95rem;
    }
    .entry-content .wp-block-group h3.wp-block-heading {
        font-size: 1.15rem;
    }
}

/* =============================================
   CF7 acceptance text — white only on /kontakt/ (green form)
   ============================================= */
.page-id-180 .wpcf7-list-item-label {
    color: #fff !important;
}
.page-id-180 .wpcf7-list-item-label a {
    color: #fff !important;
    text-decoration: underline;
}
.page-id-180 .wpcf7-list-item-label a:hover {
    opacity: 0.8;
}
.wp-block-uagb-container .wpcf7-list-item-label a {
    text-decoration: underline;
}
.wp-block-uagb-container .wpcf7-list-item-label a:hover {
    opacity: 0.8;
}

/* =============================================
   Instagram social link: center on mobile
   ============================================= */
@media (max-width: 640px) {
    .wp-block-social-links {
        justify-content: center !important;
    }
}

/* =============================================
   Footer widget fix: prevent white bg on blog/single pages
   ============================================= */
.site-footer .widget,
.site-footer section.widget {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* =============================================
   Developer credit bar
   ============================================= */
.developer-credit {
    background: var(--ast-global-color-0);
    color: #fff;
    text-align: center;
    font-size: 12px;
    padding: 14px 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    width: 100%;
    display: block;
    box-sizing: border-box;
}
.developer-credit a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.developer-credit a:hover {
    opacity: 0.8;
}

/* =============================================
   HERO BLOCK: Force white headings on darkened bg
   Reason: Spectra (UAGB) re-generates inline CSS for
   advanced-heading blocks using global-color-5 (dark),
   making hero titles unreadable over the dark overlay.
   This override forces the hero (first full-width root
   UAGB container in .entry-content) to render its
   headings/desc in white regardless of block settings.
   ============================================= */
.entry-content[data-ast-blocks-layout] > .wp-block-uagb-container.alignfull.uagb-is-root-container:first-child .uagb-heading-text,
.entry-content[data-ast-blocks-layout] > .wp-block-uagb-container.alignfull.uagb-is-root-container:first-child .uagb-heading-text strong,
.entry-content[data-ast-blocks-layout] > .wp-block-uagb-container.alignfull.uagb-is-root-container:first-child .uagb-heading-text a,
.entry-content[data-ast-blocks-layout] > .wp-block-uagb-container.alignfull.uagb-is-root-container:first-child .uagb-desc-text {
    color: #ffffff !important;
}
/* cache-bust: 1778715190 */

/* =============================================
   HOMEPAGE: SEO text section ce2a2cbf
   Reason: Block was created with backgroundType=image
   but zero padding on every breakpoint, so the two
   SEO paragraphs touched the screen edges (especially
   on mobile). Add responsive padding and constrain
   inner content width to keep line-length readable.
   ============================================= */
.wp-block-uagb-container.uagb-block-ce2a2cbf {
    padding: 50px 20px !important;
}
.wp-block-uagb-container.uagb-block-ce2a2cbf > .uagb-container-inner-blocks-wrap {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 768px) {
    .wp-block-uagb-container.uagb-block-ce2a2cbf {
        padding: 60px 32px !important;
    }
}
@media (min-width: 1025px) {
    .wp-block-uagb-container.uagb-block-ce2a2cbf {
        padding: 80px 40px !important;
    }
}

/* Ensure constrained core groups directly inside .entry-content keep
   side gutters on mobile when the theme contentSize falls back to default */
.entry-content > .wp-block-group.is-layout-constrained {
    padding-left: 20px;
    padding-right: 20px;
}
@media (min-width: 768px) {
    .entry-content > .wp-block-group.is-layout-constrained {
        padding-left: 32px;
        padding-right: 32px;
    }
}
@media (min-width: 1025px) {
    .entry-content > .wp-block-group.is-layout-constrained {
        padding-left: 0;
        padding-right: 0;
    }
}
/* =============================================
   MOEBELMONTAGE: hero request form spacing
   ============================================= */
body.page-id-1411 .entry-content[data-ast-blocks-layout] > .wp-block-uagb-container.alignfull.uagb-is-root-container:first-child .uagb-block-e8cda74a .uagb-heading-text {
    color: var(--wa-text-sec, #404e5c) !important;
}
body.page-id-1411 .uagb-block-e8cda74a {
    padding-top: 35px !important;
}
@media (max-width: 921px) {
    body.page-id-1411 .uagb-block-e8cda74a {
        margin-top: 24px !important;
        padding-top: 30px !important;
    }
}
@media (max-width: 544px) {
    body.page-id-1411 .uagb-block-e8cda74a {
        margin-top: 24px !important;
        padding-top: 28px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* =============================================
   HOMEPAGE: keep hero form title readable
   ============================================= */
.entry-content[data-ast-blocks-layout] > .wp-block-uagb-container.alignfull.uagb-is-root-container:first-child .uagb-block-e8cda74a .uagb-heading-text {
    color: var(--wa-text-sec, #404e5c) !important;
}

/* Homepage hero form title: override broad white hero text rule */
body.home .uagb-block-e8cda74a h5.uagb-heading-text,
body.home .uagb-block-e8cda74a .uagb-heading-text,
body.page-id-597 .uagb-block-e8cda74a h5.uagb-heading-text,
body.page-id-597 .uagb-block-e8cda74a .uagb-heading-text {
    color: #404e5c !important;
}

/* FORM CARDS: readable request title on white form cards across service/location pages */
.uagb-block-e8cda74a h5.uagb-heading-text,
.uagb-block-e8cda74a .uagb-heading-text {
    color: #404e5c !important;
    -webkit-text-fill-color: #404e5c !important;
    text-shadow: none !important;
}

/* Seonix: fix oversized contact phone/email on /kontakt (were enlarged when info-box title tag normalized to h2) */
.uagb-block-4732dc27 .uagb-ifb-title, .uagb-block-4732dc27 .uagb-ifb-title a,
.uagb-block-1f44e9f8 .uagb-ifb-title, .uagb-block-1f44e9f8 .uagb-ifb-title a {
  font-size: 22px !important; line-height: 1.4 !important; word-break: break-word;
}

/* Seonix contact size fix v2 - higher specificity */
.wp-block-uagb-container.uagb-block-4732dc27 .uagb-ifb-title, .wp-block-uagb-container.uagb-block-4732dc27 .uagb-ifb-title a, .wp-block-uagb-container.uagb-block-1f44e9f8 .uagb-ifb-title, .wp-block-uagb-container.uagb-block-1f44e9f8 .uagb-ifb-title a { font-size: 22px !important; line-height: 1.4 !important; }
