/* Gewinnspiel campaign — isolated stylesheet.
   Self-contained: relies only on CSS custom properties and classes that
   already exist in the CURRENT PRODUCTION assets/css/style.css
   (--theme-color, --title-color, --body-color, --smoke-color, --title-font,
   .global-btn / .style5 / .style-border4, .form-control.style-border,
   .form-select.style-border, .ov-section-head, .sec-title, .sub-title).
   Does not require any relaunch-only class (.svc-*, .header-cta-*, .mobile-menu-cta). */

html, body { max-width: 100%; overflow-x: hidden; }

.gs-lang-switch {
    display: flex;
    justify-content: center;
    gap: 10px;
    padding: 10px 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
}
.gs-lang-switch a,
.gs-lang-switch span {
    padding: 2px 6px;
}
.gs-lang-switch a { color: var(--body-color); text-decoration: none; }
.gs-lang-switch a:hover { color: var(--theme-color); }
.gs-lang-switch span.is-current { color: var(--title-color); border-bottom: 2px solid var(--theme-color); }

.gs-hero {
    background: var(--smoke-color);
    padding: 60px 0 50px;
    text-align: center;
}
.gs-hero__title {
    font-size: 40px;
    line-height: 1.15;
    margin-bottom: 14px;
    color: var(--title-color);
    font-family: var(--title-font);
    font-weight: 700;
}
.gs-hero__subtitle {
    font-size: 20px;
    color: var(--title-color);
    margin-bottom: 8px;
}
.gs-hero__period {
    font-size: 15px;
    color: var(--body-color);
    font-weight: 600;
    letter-spacing: .02em;
    margin-bottom: 26px;
}
.gs-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
    margin-bottom: 18px;
}
.gs-hero__ctas .global-btn { min-width: 220px; }
.gs-hero__secondary {
    display: inline-block;
    margin-top: 6px;
    font-weight: 600;
    color: var(--theme-color);
    text-decoration: underline;
}
@media (max-width: 575px) {
    .gs-hero { padding: 40px 0 34px; }
    .gs-hero__title { font-size: 28px; }
    .gs-hero__subtitle { font-size: 17px; }
    .gs-hero__ctas { flex-direction: column; align-items: stretch; }
    .gs-hero__ctas .global-btn { width: 100%; min-width: 0; }
}

.gs-steps { padding: 50px 0; }
.gs-steps__list {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.gs-steps__item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    padding: 18px 20px;
}
.gs-steps__num {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--theme-color);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-family: var(--title-font);
}
.gs-steps__text { padding-top: 4px; }
.gs-steps__optional {
    display: inline-block;
    margin-left: 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--body-color);
    background: var(--smoke-color);
    border-radius: 20px;
    padding: 2px 10px;
    vertical-align: middle;
}

.gs-form-section { padding: 20px 0 60px; scroll-margin-top: 90px; }
.gs-form-wrap {
    max-width: 760px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 16px;
    padding: 32px;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.06);
}
@media (max-width: 575px) {
    .gs-form-wrap { padding: 20px 16px; border-radius: 12px; }
}
.gs-form-wrap .form-group { margin-bottom: 18px; }
.gs-form-wrap label {
    display: block;
    font-weight: 600;
    font-size: 14px;
    color: var(--title-color);
    margin-bottom: 6px;
}
.gs-form-wrap .form-control,
.gs-form-wrap .form-select {
    width: 100%;
    min-height: 48px;
}
.gs-check-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.gs-check-row input[type="checkbox"] {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: var(--theme-color);
}
.gs-check-row label {
    font-weight: 400;
    font-size: 14px;
    line-height: 1.6;
    color: var(--body-color);
    margin-bottom: 0;
}
.gs-check-row label a { color: var(--theme-color); text-decoration: underline; }
.gs-honeypot { position: absolute; left: -9999px; top: -9999px; }
#gsFormMessage {
    margin-top: 16px;
    padding: 14px 16px;
    border-radius: 10px;
    font-weight: 600;
}
#gsFormMessage.is-success { background: #e6f6ec; color: #1e7a3d; }
#gsFormMessage.is-error { background: #fdeaea; color: #b42318; }
.gs-form-wrap button[type="submit"] {
    width: 100%;
    min-height: 52px;
}
.gs-form-wrap :focus-visible {
    outline: 2px solid var(--theme-color);
    outline-offset: 2px;
}

.ov-section-head.text-center { margin-left: auto; margin-right: auto; }

.gs-terms { padding: 10px 0 60px; }
.gs-terms__wrap { max-width: 760px; margin: 0 auto; }
.gs-terms__toggle {
    width: 100%;
    text-align: center;
    background: var(--smoke-color);
    border: none;
    border-radius: 10px;
    padding: 16px 50px;
    font-weight: 700;
    font-size: 17px;
    position: relative;
    cursor: pointer;
    color: var(--title-color);
}
.gs-terms__toggle i {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}
.gs-terms__panel {
    display: none;
    padding: 20px 4px 4px;
}
.gs-terms__panel.is-open { display: block; }
.gs-terms__panel ol {
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.gs-terms__panel li { color: var(--body-color); line-height: 1.7; font-size: 15px; }

/* Minimal campaign-page nav additions not present in original production style.css.
   Kept intentionally small — no relaunch header-cta-*/mobile-menu-cta classes used. */
.gs-footer-links a {
    color: #fff;
    text-decoration: none;
    transition: color 0.3s ease;
}
.gs-footer-links a:hover { color: #ccc; }
