/* Shared adjustments for the German content and the custom RKS components. */
.rks-mobile-steps { display: none; }
.nav-left,
.navbar-content-flex > *,
.hero-content-v2 > *,
.service-detail-hero-grid > *,
.contact-wrapper > *,
.field-wrapper > *,
.pricing-grid > *,
.team-grid > *,
.footer-top > * {
    min-width: 0;
}

.field-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.field-wrap,
.text-field,
.text-area,
.w-input,
.w-select {
    min-width: 0;
    max-width: 100%;
}

.contact-link,
.footer-para,
.service-summary-title {
    overflow-wrap: anywhere;
}

.hero-title,
.sub-title {
    text-wrap: balance;
    hyphens: auto;
}

.service-detail-hero-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-detail-banner,
.team-img-v1,
.contact-img {
    object-fit: cover;
}

.footer-right {
    gap: clamp(32px, 5vw, 80px);
}

.achieve-box:has(> .h4:first-child:empty) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
}

.achieve-box > .h4:empty {
    display: none;
}

@media (max-width: 991px) {
    .rks-problem-slider {
        gap: 20px;
    }
    .rks-problem-slider .service-card-loop {
        --problem-card-width: clamp(280px, 78vw, 360px);
        width: calc(var(--problem-card-width) * 4 + 60px);
        min-width: calc(var(--problem-card-width) * 4 + 60px);
        flex-shrink: 0;
    }
    .rks-problem-slider .service-lopp-list {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 20px;
    }
    .rks-problem-slider .service-card-v1 { width: 100%; min-width: 0; }
    .rks-mobile-steps {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
    }
    .rks-mobile-steps .serve-card { min-width: 0; gap: 32px; }
    .navbar-content-flex { gap: 16px; }
    .nav-menu-button-wrapper { flex-shrink: 0; }
    .menu-button-container { min-width: 44px; min-height: 44px; }
    .navbar .w-nav-overlay {
        max-height: calc(100dvh - 72px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .navbar .drop-inner-box.tablet {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 28px;
        padding: 24px;
        margin: 0 16px 20px;
    }
    .drop-inner-box.tablet .drop-menu-list { gap: 4px; }
    .drop-inner-box.tablet .nav-link,
    .footer .nav-link {
        height: auto;
        min-height: 44px;
        align-items: flex-start;
        justify-content: center;
    }
    .drop-inner-box.tablet .nav-link .nav-text,
    .footer .nav-link .nav-text {
        transform: none !important;
    }
    .drop-inner-box.tablet .nav-link .nav-text:last-child,
    .footer .nav-link .nav-text:last-child { display: none; }
    .drop-inner-box.tablet .nav-link { white-space: normal; text-align: left; }
    .drop-inner-box.tablet .nav-text { line-height: 1.5; }
    .hero-title { font-size: clamp(36px, 6vw, 64px); line-height: 1.1; }
    .hero-title._02 { font-size: clamp(32px, 5.5vw, 56px); line-height: 1.12; }
    .hero-v2-left-content { max-width: 560px; }
    .hero-button-wrapper { flex-wrap: wrap; justify-content: flex-start; }
    .contact-wrapper { flex-direction: column; gap: 36px; }
    .contact-left,
    .contact-form-wrap { width: 100%; max-width: none; }
    .contact-left { gap: 28px; }
    .contact-ledt-box { grid-template-columns: minmax(140px, .45fr) minmax(0, 1fr); }
    .contact-box-content { gap: 24px; }
    .contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .contact-info-box { padding: 24px; gap: 32px; }
    .contact-link { font-size: 18px; }
    .service-detail-hero-grid { grid-template-columns: minmax(0, 1fr); }
    .service-detail-banner { max-height: 560px; }
    .service-hero-card.service-summary-card { padding: 32px; gap: 24px; }
    .team-grid.team-grid-solo { grid-template-columns: minmax(0, 1fr); }
    .team-grid-solo .team-card-v1 {
        grid-column: 1;
        width: 100%;
        max-width: 396px;
        justify-self: end;
    }
    .footer-right {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px;
        width: 100%;
    }
    .footer-menu { gap: 4px; }
    input, select, textarea,
    .text-field, .text-area, .w-input, .w-select { font-size: 16px; }
}

@media (max-width: 767px) {
    /* Keep the tab cards below a three-line process heading. */
    .process-tab { margin-top: 48px; }
    .about-feature-block .about-layer-block {
        width: 100%;
        transform: none !important;
    }
    .about-layer-block .predict-layer { width: 100%; z-index: 3; }
    .about-layer-block .predict-layer._02 { z-index: 2; }
    .about-layer-block .predict-layer._03 { z-index: 1; }
    .about-layer-block .layer { width: clamp(130px, 44vw, 266px); }
    .about-layer-block .predict-layer._02,
    .about-layer-block .predict-layer._03 { margin-top: clamp(-80px, -14vw, -44px); }
    .about-layer-block .layer-side-row {
        right: 0;
        max-width: 56%;
        z-index: 1;
        transform: none !important;
        opacity: 1 !important;
    }
    .about-layer-block .predict-line._02 { width: clamp(12px, 4vw, 28px); min-width: 0; }
    .about-layer-block .typing-title-move { min-width: 0; padding: 8px 10px; }
    .about-layer-block .text-green { font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
    .sub-title { font-size: clamp(28px, 6vw, 40px); line-height: 1.15; }
    .hero-title-wrap,
    .hero-title-wrap.about-title { width: 100%; max-width: none; }
    .hero-v2-left-content { max-width: none; }
    .button { min-height: 44px; }
    .contact-hero-wrapper { gap: 40px; }
    .contact-grid { grid-template-columns: minmax(0, 1fr); }
    .contact-info-box { flex-direction: row; align-items: center; gap: 24px; }
    .contact-icon { width: 44px; flex-shrink: 0; }
    .contact-info-wrap { min-width: 0; flex: 1; }
    .contact-form-wrap { padding: 24px; }
    .contact-box-content { padding: 24px; }
    .service-summary-heading { align-items: flex-start; gap: 16px; }
    .service-summary-heading .service-icon { width: 40px; max-width: 40px; }
    .service-summary-title { font-size: clamp(21px, 4.5vw, 28px); line-height: 1.25; }
    .service-summary-icon-list .service-feature-iteam { align-items: flex-start; gap: 14px; }
    .service-summary-icon-list .service-feature-icon { margin-top: 2px; }
    .service-hero-card.service-summary-card { padding: 24px; }
    .service-list { grid-template-columns: minmax(0, 1fr); }
    .service-card .service-feature-iteam { gap: 14px; }
    .service-card .service-feature-icon-wrap { flex-shrink: 0; }
    .achieve-box:has(> .h4:first-child:empty) { gap: 24px; }
    .achieve-para-wrap { gap: 16px; align-items: flex-start; }
    .achieve-icon { width: 44px; flex-shrink: 0; }
    .team-grid-solo .service-para-wrap-v1 { width: 100%; }
    .footer-top { padding-top: 64px; gap: 36px; }
    .footer-bottom-content { flex-wrap: wrap; gap: 24px; }
    .social-link { min-width: 44px; min-height: 44px; }
    .cta-button-wrapper { flex-wrap: wrap; gap: 16px; }
}

@media (max-width: 600px) {
    .field-wrapper { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .field-wrap { margin-bottom: 20px; gap: 10px; }
    .contact-ledt-box { grid-template-columns: minmax(0, 1fr); }
    .contact-img { height: auto; max-height: 320px; object-position: center 25%; }
    .contact-form-wrap { padding: 24px 20px; }
    .contact-form-wrap .submit-button { width: 100%; min-height: 48px; }
}

@media (max-width: 479px) {
    .rks-mobile-steps { grid-template-columns: minmax(0, 1fr); }
    .hero-title, .hero-title._02 { font-size: clamp(32px, 8vw, 38px); }
    .brand-logo-text { font-size: 18px; white-space: nowrap; }
    .footer .brand-logo-text { font-size: 24px; }
    .navbar .drop-inner-box.tablet { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 24px; }
    .drop-inner-box.tablet .menu-colum { gap: 8px; }
    .drop-inner-box.tablet .drop-menu-list { width: 100%; }
    .drop-inner-box.tablet .nav-link { width: 100%; }
    .footer-right { gap: 24px; }
    .hero-button-wrapper, .hero-button-wrapper .button-wrap { width: 100%; }
    .hero-button-wrapper .button { width: 100%; }
    .cta-button-wrapper { width: 100%; flex-direction: column; align-items: stretch; }
    .cta-button-wrapper .button { width: 100%; }
    .service-hero-card .button { width: 100%; }
    .service-hero-card > .button-wrap { width: 100%; }
    .pricing-card .h3 { font-size: 36px; line-height: 1.2; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
