/* ═══════════════════════════════════════════════════════════
   GOQUEER — Kontakt & Spenden Page
   Scoped under .gq-ks-host (glass-card scroll container)
   Styled to match the About (Scroll) page
   ═══════════════════════════════════════════════════════════ */

/* ═══════ PAGE SETUP ═══════ */
body.page-template-page-kontakt-spenden {
    background: #141414;
    overflow-x: hidden;
    scroll-behavior: smooth;
}

/* Glass-Card = Content Host (scrolls with page) */
.gq-ks-host {
    --black:      #141414;
    --dark:       #0a0a0a;
    --white:      #f5f5f7;
    --grey:       #86868b;
    --grey-dark:  #424245;
    --surface:    #1a1a1c;
    --surface2:   #222224;

    --green:      #61FF70;
    --purple:     #6962FE;
    --blue:       #006aff;
    --pride-pink: #FF69B4;
    --pride-cyan: #55CDFC;
    --pride-red:  #E40303;

    --pride: linear-gradient(135deg, #E40303, #FF8C00, #FFED00, #008026, #004DFF, #750787);
    --pride-h: linear-gradient(90deg, #E40303, #FF8C00, #FFED00, #008026, #004DFF, #750787);

    --f-head: var(--gq-font-heading, 'Arvo', serif);
    --f-body: var(--gq-font-body, 'Work Sans', sans-serif);

    --ease: cubic-bezier(0.25, 1, 0.5, 1);

    --section-pad: clamp(80px, 12vw, 160px);
    --container:   1100px;
    --container-sm: 620px;

    padding: 0 !important;
    position: relative;
    overflow: visible !important;
    clip-path: inset(0 round 30px);
    border: none !important;
    box-shadow: none !important;
    background: var(--black) !important;
}
.gq-ks-host::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 30px;
    border: 2px solid rgba(97, 255, 112, 0.4);
    box-shadow: 0 8px 32px rgba(0,0,0,0.3), inset 0 0 20px rgba(97, 255, 112, 0.15);
    pointer-events: none;
    z-index: 50;
}

/* ═══════ PARALLAX SECTIONS ═══════ */
.gq-ks-host .gq-ks-sec { position: relative; }
.gq-ks-host .gq-ks-sec--hero { height: 300vh; }
.gq-ks-host .gq-ks-sec--spenden { height: 300vh; }
.gq-ks-host .gq-ks-sec--kontakt { height: 300vh; }

.gq-ks-host .gq-ks-sticky {
    --nav-h: 120px;
    position: sticky;
    top: var(--nav-h);
    height: calc(100vh - var(--nav-h));
    overflow: hidden;
    background: var(--black);
    padding-top: 40px;
}

/* Hero: fullscreen, starts behind nav (content is centered) */
.gq-ks-host .gq-ks-sticky--first {
    top: 0;
    height: 100vh;
    border-radius: 30px 30px 0 0;
}
.gq-ks-host .gq-ks-sticky--last {
    border-radius: 0 0 30px 30px;
}

/* Hero fills sticky parent */
.gq-ks-host .gq-ks-sticky .hero {
    min-height: 100%;
    height: 100%;
}

/* Spenden: vertically centered in sticky */
.gq-ks-host .gq-ks-sec--spenden .gq-ks-sticky {
    display: flex;
    align-items: center;
}
.gq-ks-host .gq-ks-sticky .sec {
    width: 100%;
    padding-top: clamp(40px, 4vw, 60px);
    padding-bottom: clamp(40px, 4vw, 60px);
}

/* Kontakt: fills sticky */
.gq-ks-host .gq-ks-sec--kontakt #kontakt {
    width: 100%;
    height: 100%;
}
.gq-ks-host .gq-ks-sec--kontakt .contact-split {
    height: 100%;
    min-height: 0;
}

/* Tablet: smaller nav */
@media (max-width: 1024px) {
    .gq-ks-host .gq-ks-sticky { --nav-h: 110px; }
}

/* Mobile: disable parallax */
@media (max-width: 900px) {
    .gq-ks-host .gq-ks-sec {
        height: auto !important;
    }
    .gq-ks-host .gq-ks-sticky {
        position: relative !important;
        height: auto !important;
        overflow: visible !important;
    }
    .gq-ks-host .gq-ks-sticky .sec {
        padding-top: var(--section-pad);
        padding-bottom: var(--section-pad);
    }
}

/* Inner wrapper gets visual styles (preserves glass-card bg/border/glow) */
.gq-ks-host .gq-ks-page {
    background: var(--black);
    color: var(--white);
    font-family: var(--f-body);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Box-sizing reset inside host */
.gq-ks-host .gq-ks-page,
.gq-ks-host .gq-ks-page *,
.gq-ks-host .gq-ks-page *::before,
.gq-ks-host .gq-ks-page *::after {
    box-sizing: border-box;
}

/* ═══════ PROGRESS BAR (matching About page) ═══════ */
.gq-ks-host .gq-ks-prog {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    z-index: 100;
    background: linear-gradient(90deg,
        #E40303, #FF8C00, #FFED00,
        #008026, #004DFF, #750787);
    width: 0%;
}

.gq-ks-host h1, .gq-ks-host h2, .gq-ks-host h3 { text-transform: lowercase; }
.gq-ks-host ::selection { background: var(--pride-pink); color: var(--dark); }
.gq-ks-host :focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
.gq-ks-host a { color: inherit; text-decoration: none; }
.gq-ks-host button { cursor: pointer; font-family: var(--f-body); }

/* ═══════ ANIMATIONS ═══════ */
@keyframes gqKsWordReveal {
    from { opacity: 0; transform: translateY(100%) rotateX(-40deg); filter: blur(6px); }
    to   { opacity: 1; transform: translateY(0) rotateX(0); filter: blur(0); }
}
@keyframes gqKsFadeUp {
    from { opacity: 0; transform: translateY(40px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes gqKsScaleIn {
    from { opacity: 0; transform: scale(.85); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes gqKsProgGrow { from { transform: scaleX(0); } }
@keyframes gqKsCheckDraw { to { stroke-dashoffset: 0; } }
@keyframes gqKsSpin { to { transform: rotate(360deg); } }
@keyframes gqKsBlink { 0%,100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes gqKsPrideShimmer {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
@keyframes gqKsChevBounce {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(10px); }
}
@keyframes gqKsGlowPulse {
    0%, 100% { opacity: .08; }
    50%      { opacity: .15; }
}

/* Scroll-reveal */
.gq-ks-host .sr {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.gq-ks-host .sr.vis { opacity: 1; transform: none; }
.gq-ks-host .sr-d1 { transition-delay: .1s; }
.gq-ks-host .sr-d2 { transition-delay: .2s; }
.gq-ks-host .sr-d3 { transition-delay: .3s; }
.gq-ks-host .sr-d4 { transition-delay: .4s; }

/* ═══════ TYPOGRAPHY ═══════ */
.gq-ks-host .t-head {
    font-family: var(--f-head);
    font-weight: 700;
    text-transform: lowercase;
    letter-spacing: -2px;
    line-height: 1;
}
.gq-ks-host .t-label {
    font-family: var(--f-head);
    font-weight: 400;
    font-size: .85rem;
    letter-spacing: 6px;
    text-transform: uppercase;
    color: var(--white);
}
.gq-ks-host .t-pride {
    background: var(--pride);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gqKsPrideShimmer 5s ease infinite;
}
.gq-ks-host .t-green { color: var(--green); }
.gq-ks-host .t-body {
    color: var(--white);
    font-weight: 400;
    line-height: 1.8;
}
.gq-ks-host .t-body strong {
    color: var(--white);
    font-weight: 600;
}
.gq-ks-host .divider-purple {
    width: 48px;
    height: 2px;
    background: var(--purple);
    border: none;
    border-radius: 2px;
    margin: 2rem 0;
}

/* ═══════ HERO ═══════ */
.gq-ks-host .hero {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    overflow: hidden;
    padding: 3rem 2rem;
    border-radius: 30px 30px 0 0;
}
.gq-ks-host .hero__glow {
    position: absolute; inset: 0;
    pointer-events: none;
    opacity: 0;
    animation: gqKsFadeUp 1.5s var(--ease) .2s forwards;
}
.gq-ks-host .hero__glow::before,
.gq-ks-host .hero__glow::after,
.gq-ks-host .hero__glow span {
    content: '';
    position: absolute;
    border-radius: 50%;
    filter: blur(100px);
}
.gq-ks-host .hero__glow::before {
    width: 600px; height: 600px;
    top: 30%; left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(117,7,135, 0.14);
}
.gq-ks-host .hero__glow::after {
    width: 500px; height: 500px;
    bottom: -10%; left: 10%;
    background: rgba(228,3,3, 0.09);
    animation: gqKsGlowPulse 8s ease-in-out infinite;
}
.gq-ks-host .hero__glow span {
    width: 500px; height: 500px;
    top: -5%; right: 5%;
    background: rgba(0,77,255, 0.09);
    animation: gqKsGlowPulse 10s ease-in-out infinite 2s;
}
.gq-ks-host .hero__content {
    position: relative;
    z-index: 1;
    max-width: 1100px;
}
.gq-ks-host .hero__corner {
    position: absolute;
    top: 2rem; left: 2rem;
    font-family: var(--f-head);
    font-size: .75rem;
    font-weight: 400;
    color: var(--white);
    letter-spacing: 6px;
    text-transform: uppercase;
    animation: gqKsFadeUp .8s var(--ease) .2s both;
    z-index: 2;
}
.gq-ks-host .hero__corner::after {
    content: '█';
    animation: gqKsBlink 1s step-end infinite;
    color: var(--green);
    margin-left: .3rem;
}
.gq-ks-host .hero__side {
    position: absolute;
    right: 2rem; top: 50%;
    transform: translateY(-50%) rotate(90deg);
    font-family: var(--f-head);
    font-size: .65rem;
    font-weight: 400;
    color: var(--white);
    letter-spacing: 6px;
    text-transform: uppercase;
    white-space: nowrap;
    z-index: 2;
    animation: gqKsFadeUp .8s var(--ease) .6s both;
}
.gq-ks-host .hero__title {
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(3.2rem, 9.5vw, 8rem);
    line-height: .95;
    letter-spacing: -4px;
    text-transform: lowercase;
    margin-bottom: 2rem;
    perspective: 600px;
}
.gq-ks-host .hero__word {
    display: inline-block;
    animation: gqKsWordReveal .9s var(--ease) both;
    transform-origin: bottom;
}
.gq-ks-host .hero__word:nth-child(1) { animation-delay: .1s; }
.gq-ks-host .hero__word:nth-child(2) { animation-delay: .25s; }
.gq-ks-host .hero__word:nth-child(3) { animation-delay: .4s; }
.gq-ks-host .hero__word:nth-child(4) { animation-delay: .55s; }
.gq-ks-host .hero__word:nth-child(5) { animation-delay: .7s; }
.gq-ks-host .hero__word--accent {
    font-style: italic;
    position: relative;
}
.gq-ks-host .hero__hl {
    color: var(--green);
    font-size: .50em;
    letter-spacing: -1px;
}

.gq-ks-host .hero__word--break { display: block; margin-top: -.35em; }
.gq-ks-host .hero__desc {
    font-family: var(--f-body);
    font-size: clamp(1rem, 2vw, 1.2rem);
    color: var(--white);
    max-width: 480px;
    margin: 0 auto 3rem;
    line-height: 1.8;
    font-weight: 400;
    animation: gqKsFadeUp .8s var(--ease) .7s both;
}
.gq-ks-host .hero__desc strong {
    color: var(--white);
    font-weight: 600;
}
.gq-ks-host .hero__cta {
    display: flex;
    gap: 1.2rem;
    justify-content: center;
    flex-wrap: wrap;
    animation: gqKsFadeUp .8s var(--ease) .85s both;
}
.gq-ks-host .hero__scroll {
    position: absolute;
    bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    opacity: 0;
    animation: gqKsFadeUp 1s var(--ease) 2s forwards;
    z-index: 2;
}
.gq-ks-host .hero__scroll-text {
    font-family: var(--f-head);
    font-size: .85rem;
    letter-spacing: 6px;
    text-transform: uppercase;
    color: var(--white);
    display: block;
    margin-bottom: .5rem;
}
.gq-ks-host .hero__scroll-chev {
    display: block;
    margin: 0 auto;
    animation: gqKsChevBounce 2s ease-in-out infinite;
}
.gq-ks-host .hero__scroll-chev svg {
    width: 20px; height: 20px;
    stroke: var(--white);
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* ═══════ BUTTONS ═══════ */
.gq-ks-host .btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 52px;
    padding: 0 40px;
    border-radius: 980px;
    font-family: var(--f-body);
    font-size: .9rem;
    font-weight: 600;
    border: 1px solid rgba(255,255,255, 0.15);
    background: transparent;
    color: var(--white);
    text-decoration: none;
    transition: all .4s var(--ease);
}
.gq-ks-host .btn-ghost:hover {
    border-color: rgba(255,255,255, 0.4);
    background: rgba(255,255,255, 0.04);
    transform: scale(1.03);
}
.gq-ks-host .btn-fill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 52px;
    padding: 0 40px;
    border-radius: 980px;
    font-family: var(--f-body);
    font-size: .9rem;
    font-weight: 600;
    border: none;
    background: var(--white);
    color: var(--dark);
    text-decoration: none;
    transition: all .4s var(--ease);
}
.gq-ks-host .btn-fill:hover {
    background: var(--green);
    color: var(--dark);
    transform: scale(1.04);
    box-shadow: 0 0 30px rgba(97,255,112, 0.2);
}

/* ═══════ SPENDEN SECTION ═══════ */
.gq-ks-host .sec {
    padding: var(--section-pad) 2rem;
    max-width: var(--container);
    margin: 0 auto;
    position: relative;
}
.gq-ks-host .sec-head { margin-bottom: clamp(3rem, 6vw, 5rem); }
.gq-ks-host .sec__watermark {
    position: absolute;
    top: clamp(60px, 10vw, 140px);
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(6rem, 18vw, 16rem);
    text-transform: lowercase;
    color: rgba(97,255,112, 0.02);
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    letter-spacing: -6px;
    z-index: 0;
}
.gq-ks-host .sec-title {
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(1.65rem, 4.125vw, 3.375rem);
    text-transform: lowercase;
    letter-spacing: -3px;
    line-height: .95;
}
.gq-ks-host .sec-num {
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(1.3rem, 2.5vw, 2rem);
    line-height: 1.4;
    letter-spacing: -0.5px;
    text-transform: none;
    color: var(--green);
    display: block;
    margin-bottom: .6rem;
}
.gq-ks-host .sec-num span { color: var(--green); }
.gq-ks-host .sec-desc {
    font-family: var(--f-body);
    font-size: clamp(.95rem, 1.6vw, 1.15rem);
    color: var(--white);
    max-width: 100%;
    line-height: 1.8;
    margin-top: 1.2rem;
    font-weight: 400;
}
.gq-ks-host .sec-desc strong {
    color: var(--white);
    font-weight: 600;
}

/* ── Donate card ── */
.gq-ks-host .donate-card {
    background: var(--surface);
    border: 1px solid rgba(255,255,255, 0.06);
    border-radius: 24px;
    padding: clamp(2rem, 4vw, 3rem);
    max-width: var(--container);
    position: relative;
    overflow: visible;
    z-index: 1;
}
.gq-ks-host .donate-card::before {
    content: '';
    position: absolute;
    top: 0; left: 24px; right: 24px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--purple), transparent);
}
/* Card head row (tag + tabs inline) */
.gq-ks-host .donate-card__head {
    position: absolute;
    top: -11px;
    left: 24px; right: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.gq-ks-host .donate-card__tag {
    font-family: var(--f-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: lowercase;
    background: var(--green);
    color: var(--dark);
    padding: .2rem .75rem;
    border-radius: 2px;
}

/* Toggle */
.gq-ks-host .toggle-row {
    display: flex;
    margin-bottom: 2rem;
    border: 1px solid rgba(255,255,255, 0.08);
    border-radius: 2px;
    overflow: hidden;
    width: fit-content;
}
.gq-ks-host .toggle-opt {
    background: transparent;
    border: none;
    padding: .55rem 1.5rem;
    font-family: var(--f-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: lowercase;
    color: var(--white);
    transition: all .35s var(--ease);
    border-right: 1px solid rgba(255,255,255, 0.08);
}
.gq-ks-host .toggle-opt:last-child { border-right: none; }
.gq-ks-host .toggle-opt[aria-pressed="true"] {
    background: var(--white);
    color: var(--dark);
}

/* Stickers */
.gq-ks-host .stickers {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 1.5rem;
}
.gq-ks-host .sticker {
    --r: -1.5deg;
    background: var(--surface2);
    border: 1px solid rgba(255,255,255, 0.06);
    border-radius: 4px;
    padding: 1rem 1.1rem;
    min-width: 115px;
    text-align: center;
    cursor: pointer;
    font-family: var(--f-body);
    transition: all .4s var(--ease);
    transform: rotate(var(--r));
}
.gq-ks-host .sticker:nth-child(1) { --r: -1.5deg; }
.gq-ks-host .sticker:nth-child(2) { --r: 1deg; }
.gq-ks-host .sticker:nth-child(3) { --r: -2.5deg; }
.gq-ks-host .sticker:nth-child(4) { --r: 1.8deg; }
.gq-ks-host .sticker:nth-child(5) { --r: -1deg; }
.gq-ks-host .sticker__val {
    display: block;
    font-family: var(--f-head);
    font-size: 1.7rem;
    font-weight: 700;
    color: var(--white);
    text-transform: lowercase;
    letter-spacing: -1px;
    transition: color .3s;
}
.gq-ks-host .sticker__note {
    display: block;
    font-family: var(--f-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: lowercase;
    color: var(--white);
    margin-top: 3px;
    transition: color .3s;
}
.gq-ks-host .sticker:hover {
    border-color: var(--green);
    transform: rotate(0deg) scale(1.04);
    box-shadow: 0 0 20px rgba(97,255,112, 0.1);
}
.gq-ks-host .sticker[aria-pressed="true"] {
    background: var(--green);
    border-color: var(--green);
    transform: rotate(0deg) scale(1.06);
    box-shadow: 0 6px 24px rgba(97,255,112, 0.25);
}
.gq-ks-host .sticker[aria-pressed="true"] .sticker__val { color: var(--dark); }
.gq-ks-host .sticker[aria-pressed="true"] .sticker__note { color: rgba(10,10,10,.6); }

/* Custom amount sticker */
.gq-ks-host .sticker--custom {
    --r: 0deg;
    position: relative;
    display: flex;
    align-items: center;
    cursor: text;
}
.gq-ks-host .sticker--custom .custom-suf {
    font-family: var(--f-head); font-size: 1.3rem; font-weight: 700;
    color: var(--white);
    pointer-events: none; transition: color .3s;
    flex-shrink: 0;
    padding-right: .5rem;
}
.gq-ks-host .sticker--custom:focus-within .custom-suf { color: var(--green); }
.gq-ks-host .sticker--custom:focus-within {
    border-color: var(--green);
    transform: rotate(0deg) scale(1.04);
    box-shadow: 0 0 20px rgba(97,255,112, 0.1);
}
.gq-ks-host .custom-inp {
    width: 100%;
    padding: .5rem .3rem .5rem .8rem;
    background: transparent;
    border: none;
    font-family: var(--f-head); font-size: 1.5rem; font-weight: 700;
    color: var(--white);
    min-width: 0;
}
.gq-ks-host .custom-inp:focus {
    outline: none;
}
.gq-ks-host .custom-inp::placeholder { color: rgba(255,255,255,.4); font-weight: 400; font-family: var(--f-body); font-size: .9rem; }
/* Hide number input spinners */
.gq-ks-host .custom-inp::-webkit-outer-spin-button,
.gq-ks-host .custom-inp::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gq-ks-host .custom-inp[type=number] { -moz-appearance: textfield; }

/* Progress */
.gq-ks-host .prog { margin-bottom: 2rem; }
.gq-ks-host .prog__row {
    display: flex; justify-content: space-between;
    font-family: var(--f-head); font-size: 1rem;
    letter-spacing: 2px; margin-bottom: .4rem;
}
.gq-ks-host .prog__now { color: var(--white); font-weight: 700; }
.gq-ks-host .prog__goal { color: var(--white); font-weight: 400; letter-spacing: 3px; text-transform: lowercase; }
.gq-ks-host .prog__bar {
    height: 3px;
    background: rgba(255,255,255, 0.08);
    overflow: hidden;
}
.gq-ks-host .prog__fill {
    height: 100%; width: 58.3%;
    background: var(--pride-h);
    background-size: 200% 100%;
    animation: gqKsProgGrow 2s var(--ease) both, gqKsPrideShimmer 5s ease infinite;
    transform-origin: left;
}
.gq-ks-host .prog__cap {
    font-family: var(--f-body); font-size: 1rem;
    color: var(--white); margin-top: .4rem;
}

/* Donate CTA */
.gq-ks-host .donate-cta {
    width: 100%; height: 54px;
    border: none; border-radius: 980px;
    background: var(--green);
    color: var(--dark);
    font-size: 1rem; font-weight: 600;
    font-family: var(--f-body);
    transition: all .4s var(--ease);
    position: relative; overflow: hidden;
}
.gq-ks-host .donate-cta:hover {
    background: var(--purple);
    color: var(--white);
    transform: scale(1.02);
    box-shadow: 0 0 30px rgba(162, 89, 255, 0.3);
}
.gq-ks-host .donate-cta .txt { transition: opacity .3s; }
.gq-ks-host .donate-cta .ico {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    opacity: 0; transition: opacity .3s;
}
.gq-ks-host .donate-cta.done { background: var(--green); }
.gq-ks-host .donate-cta.done .txt { opacity: 0; }
.gq-ks-host .donate-cta.done .ico { opacity: 1; }

/* Donate CTA — loading state */
.gq-ks-host .donate-cta__spinner {
    display: none;
    width: 18px; height: 18px;
    border: 2px solid rgba(10,10,10,.2);
    border-top-color: var(--dark);
    border-radius: 50%;
    animation: gqKsSpin .6s linear infinite;
    position: absolute;
    top: 50%; left: 50%;
    margin: -9px 0 0 -9px;
}
.gq-ks-host .donate-cta.loading .txt { opacity: 0; }
.gq-ks-host .donate-cta.loading .ico { opacity: 0; }
.gq-ks-host .donate-cta.loading .donate-cta__spinner { display: block; }
.gq-ks-host .donate-cta.loading { pointer-events: none; }

/* ── Donate Tabs ── */
.gq-ks-host .donate-tabs {
    display: flex;
    gap: 0;
    border: 1px solid rgba(255,255,255, 0.08);
    border-radius: 2px;
    overflow: hidden;
}
.gq-ks-host .donate-tab {
    background: rgba(20,20,20,.9);
    border: none;
    padding: .2rem .75rem;
    font-family: var(--f-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: lowercase;
    color: var(--white);
    transition: all .35s var(--ease);
    border-right: 1px solid rgba(255,255,255, 0.08);
    cursor: pointer;
}
.gq-ks-host .donate-tab:last-child { border-right: none; }
.gq-ks-host .donate-tab[aria-selected="true"] {
    background: var(--white);
    color: var(--dark);
}

/* ── Donate Panels (same-size tabs via grid stacking) ── */
.gq-ks-host .donate-card__panels {
    display: grid;
}
.gq-ks-host .donate-panel {
    grid-column: 1;
    grid-row: 1;
    opacity: 1;
    transition: opacity .3s ease;
    z-index: 1;
}
.gq-ks-host .donate-panel[hidden] {
    display: block !important;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
}

/* ── Bank Transfer (inside panel) ── */
.gq-ks-host .bank-card__desc {
    font-family: var(--f-body);
    font-size: 1rem;
    color: var(--white);
    line-height: 1.6;
    margin-bottom: 1.5rem;
}
.gq-ks-host .bank-data {
    margin: 0;
}
.gq-ks-host .bank-data__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: .6rem 0;
    border-bottom: 1px solid rgba(255,255,255, 0.04);
}
.gq-ks-host .bank-data__row:last-child { border-bottom: none; }
.gq-ks-host .bank-data dt {
    font-family: var(--f-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: lowercase;
    color: var(--grey);
    flex-shrink: 0;
    margin-right: 1rem;
}
.gq-ks-host .bank-data dd {
    font-family: var(--f-body);
    font-size: 1rem;
    font-weight: 600;
    color: var(--white);
    margin: 0;
    text-align: right;
}
.gq-ks-host .bank-data__mono {
    font-family: 'SF Mono', 'Fira Code', monospace;
    font-size: 1rem;
    letter-spacing: 1px;
}
.gq-ks-host .bank-card__note {
    font-family: var(--f-body);
    font-size: 1rem;
    color: var(--grey);
    line-height: 1.5;
    margin-top: 1.2rem;
}

/* ── Donate Card inner layout (side-by-side) ── */
.gq-ks-host .donate-card__inner {
    display: flex;
    gap: 0;
}
.gq-ks-host .donate-card__form { flex: 1 1 0%; min-width: 0; }

/* ── Stripe Payment Element (Fullscreen Overlay) ── */
/* Variables re-declared here because stripe-wrap is moved to body via JS */
.stripe-wrap {
    --dark:       #0a0a0a;
    --white:      #f5f5f7;
    --grey:       #86868b;
    --green:      #61FF70;
    --purple:     #6962FE;
    --pride-red:  #E40303;
    --f-head: var(--gq-font-heading, 'Arvo', serif);
    --f-body: var(--gq-font-body, 'Work Sans', sans-serif);
    --ease: cubic-bezier(0.25, 1, 0.5, 1);
    --card-bg: rgba(255,255,255, .03);
    --card-border: rgba(255,255,255, .06);

    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    animation: gqKsOverlayIn .3s var(--ease);
}
.stripe-wrap__inner {
    background: rgba(18, 18, 18, 0.92);
    backdrop-filter: blur(40px);
    -webkit-backdrop-filter: blur(40px);
    border: 1px solid rgba(255,255,255, 0.06);
    padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3rem);
    width: 100%;
    height: 100%;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    animation: gqKsSlideIn .4s var(--ease);
}
@keyframes gqKsOverlayIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes gqKsSlideIn {
    from { opacity: 0; transform: translateY(30px) scale(.96); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.stripe-wrap__content {
    width: 100%;
    padding: clamp(2rem, 5vw, 3rem) clamp(1.5rem, 4vw, 2rem);
}
.stripe-wrap__close {
    position: absolute;
    top: clamp(1rem, 3vw, 2rem);
    right: clamp(1rem, 3vw, 2rem);
    background: rgba(255,255,255, 0.06);
    border: 1px solid rgba(255,255,255, 0.1);
    border-radius: 50%;
    color: var(--white);
    font-size: 1.4rem;
    cursor: pointer;
    width: 44px; height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transition: background .2s, border-color .2s;
    z-index: 1;
}
.stripe-wrap__close:hover {
    background: rgba(255,255,255, 0.12);
    border-color: rgba(255,255,255, 0.2);
}
.stripe-wrap #gq-stripe-element {
    background: var(--dark);
    border: 1px solid rgba(255,255,255, 0.08);
    border-radius: 10px;
    padding: 1rem;
    min-height: 80px;
}
.stripe-wrap .stripe-errors {
    font-family: var(--f-body);
    font-size: 1rem;
    color: var(--pride-red);
    margin-top: .5rem;
    display: none;
}
.stripe-wrap .donate-cta {
    display: inline-flex; align-items: center; justify-content: center;
    height: 54px;
    padding: 0 2.5rem;
    border: none; border-radius: 980px;
    background: var(--white);
    color: var(--dark);
    font-size: 1rem; font-weight: 600;
    font-family: var(--f-body);
    transition: all .4s var(--ease);
    position: relative; overflow: hidden;
    cursor: pointer;
}
.stripe-wrap .donate-cta__spinner {
    display: none;
    width: 18px; height: 18px;
    border: 2px solid rgba(10,10,10,.2);
    border-top-color: var(--dark);
    border-radius: 50%;
    animation: gqKsSpin .6s linear infinite;
    position: absolute;
    top: 50%; left: 50%;
    margin: -9px 0 0 -9px;
}
.stripe-wrap .donate-cta.loading .txt { opacity: 0; }
.stripe-wrap .donate-cta.loading .donate-cta__spinner { display: block; }
.stripe-wrap .donate-cta.loading { pointer-events: none; }
.stripe-wrap .donate-cta--confirm {
    margin-top: 1rem;
    background: var(--green);
    color: var(--dark);
}
.stripe-wrap .donate-cta--confirm:hover {
    background: var(--purple);
    color: var(--white);
    box-shadow: 0 0 30px rgba(162, 89, 255, 0.3);
}
.stripe-wrap .donate-cta--confirm:disabled {
    opacity: .4;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}
.stripe-wrap .donate-cta--confirm .donate-cta__spinner {
    border-color: rgba(10,10,10,.2);
    border-top-color: var(--dark);
}

/* ── Donation Success Overlay ── */
.donate-success-overlay {
    --dark:       #0a0a0a;
    --white:      #f5f5f7;
    --grey:       #86868b;
    --green:      #61FF70;
    --purple:     #6962FE;
    --f-head: var(--gq-font-heading, 'Arvo', serif);
    --f-body: var(--gq-font-body, 'Work Sans', sans-serif);
    --ease: cubic-bezier(0.25, 1, 0.5, 1);
    --card-bg: rgba(255,255,255, .03);
    --card-border: rgba(255,255,255, .06);

    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    animation: gqKsOverlayIn .3s var(--ease);
}
.donate-success-overlay__inner {
    background: rgba(18, 18, 18, 0.92);
    backdrop-filter: blur(40px);
    -webkit-backdrop-filter: blur(40px);
    border: 1px solid var(--card-border);
    width: 100%;
    height: 100%;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    animation: gqKsSlideIn .4s var(--ease);
}
.donate-success-overlay__content {
    width: 100%;
    max-width: 480px;
    padding: clamp(2rem, 5vw, 3rem) clamp(1.5rem, 4vw, 2rem);
}
.donate-success-overlay__close {
    position: absolute;
    top: clamp(1rem, 3vw, 2rem);
    right: clamp(1rem, 3vw, 2rem);
    background: rgba(255,255,255, 0.06);
    border: 1px solid rgba(255,255,255, 0.1);
    border-radius: 50%;
    color: var(--white);
    font-size: 1.4rem;
    cursor: pointer;
    width: 44px; height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transition: background .2s, border-color .2s;
    z-index: 1;
}
.donate-success-overlay__close:hover {
    background: rgba(255,255,255, 0.12);
    border-color: rgba(255,255,255, 0.2);
}

/* Hero section */
.ds-hero {
    text-align: center;
    margin-bottom: 2rem;
}
.ds-hero__tag {
    font-family: var(--f-head);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: lowercase;
    color: var(--green);
    margin-bottom: 1.5rem;
    display: block;
}
.ds-hero__ico {
    width: 72px; height: 72px;
    background: var(--green);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1.25rem;
    box-shadow: 0 0 40px rgba(97, 255, 112, 0.3), 0 0 80px rgba(97, 255, 112, 0.1);
}
.ds-hero__ico svg {
    width: 34px; height: 34px;
    stroke: var(--dark); fill: none;
    stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
    stroke-dasharray: 48; stroke-dashoffset: 48;
    animation: gqKsCheckDraw .5s ease .25s forwards;
}
.ds-hero__title {
    font-family: var(--f-head);
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    font-weight: 700;
    text-transform: lowercase;
    letter-spacing: -1px;
    margin-bottom: .4rem;
    color: var(--white);
}
.ds-hero__sub {
    font-family: var(--f-body);
    color: var(--grey);
    font-size: 1rem;
    line-height: 1.5;
}

/* Info cards */
.ds-cards {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-bottom: 1.5rem;
}
.ds-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .85rem 1rem;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 14px;
}
.ds-card__icon {
    width: 38px; height: 38px;
    background: rgba(97, 255, 112, 0.1);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    color: var(--green);
}
.ds-card__label {
    font-family: var(--f-body);
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--grey);
    margin-bottom: .1rem;
}
.ds-card__value {
    font-family: var(--f-body);
    font-size: .95rem;
    color: var(--white);
    font-weight: 500;
}

/* Actions */
.ds-actions {
    text-align: center;
    margin-bottom: 1.5rem;
}
.ds-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .7rem 1.6rem;
    border-radius: 980px;
    font-family: var(--f-body);
    font-size: .9rem;
    font-weight: 600;
    text-decoration: none;
    transition: all .3s var(--ease);
    cursor: pointer;
}
.ds-btn--primary {
    background: var(--green);
    color: var(--dark);
}
.ds-btn--primary:hover {
    background: var(--purple);
    color: var(--white);
    box-shadow: 0 0 24px rgba(162, 89, 255, 0.3);
}
.ds-btn svg { flex-shrink: 0; }

/* Footer */
.ds-footer {
    border-top: 1px solid var(--card-border);
    padding-top: 1.25rem;
}
.ds-footer__row {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    margin-bottom: .6rem;
    font-family: var(--f-body);
    font-size: .85rem;
    color: var(--grey);
    line-height: 1.5;
}
.ds-footer__row svg {
    flex-shrink: 0;
    margin-top: 1px;
    color: rgba(255,255,255, .2);
}
.ds-footer__row a {
    color: var(--green);
    text-decoration: none;
}
.ds-footer__row a:hover { text-decoration: underline; }
.ds-footer__links {
    margin-top: .8rem;
    padding-top: .8rem;
    border-top: 1px solid var(--card-border);
    font-family: var(--f-body);
    font-size: .8rem;
    color: var(--grey);
    text-align: center;
}
.ds-footer__links a {
    color: var(--grey);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.ds-footer__links a:hover { color: var(--white); }

/* ── ds- variants for stripe-wrap ── */
.ds-hero__ico--pay {
    background: var(--purple);
    box-shadow: 0 0 40px rgba(105, 98, 254, 0.3), 0 0 80px rgba(105, 98, 254, 0.1);
}
.ds-hero__ico--pay svg {
    stroke-dasharray: initial;
    stroke-dashoffset: 0;
    animation: none;
}
.ds-card--input { cursor: text; }
.ds-card--input .ds-card__body { flex: 1; min-width: 0; }
.ds-card__input {
    width: 100%;
    padding: .4rem 0;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255,255,255, .1);
    color: var(--white);
    font-family: var(--f-body);
    font-size: .9rem;
    outline: none;
    transition: border-color .2s;
}
.ds-card__input::placeholder { color: rgba(255,255,255, .3); }
.ds-card__input:focus { border-color: var(--green); }

/* Hero glow (success + payment overlays) */
.donate-success-overlay .ds-hero,
.stripe-wrap .ds-hero {
    position: relative;
}
.donate-success-overlay .ds-hero::before {
    content: '';
    position: absolute;
    width: 280px; height: 280px;
    top: 20px; left: 50%;
    transform: translateX(-50%);
    background: radial-gradient(circle, rgba(97, 255, 112, .12) 0%, rgba(105, 98, 254, .06) 40%, transparent 70%);
    filter: blur(40px);
    pointer-events: none;
    z-index: 0;
}
.stripe-wrap .ds-hero::before {
    content: '';
    position: absolute;
    width: 220px; height: 220px;
    top: 10px; left: 50%;
    transform: translateX(-50%);
    background: radial-gradient(circle, rgba(105, 98, 254, .12) 0%, transparent 70%);
    filter: blur(30px);
    pointer-events: none;
    z-index: 0;
}
.donate-success-overlay .ds-hero > *,
.stripe-wrap .ds-hero > * {
    position: relative;
    z-index: 1;
}

/* Stripe wrap spacing */
.stripe-wrap .ds-footer {
    margin-top: 1.5rem;
}

/* ── DSGVO Privacy Note ── */
/* Opt-in Checkbox */
.gq-ks-host .donate-optin {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: 1rem;
    cursor: pointer;
    user-select: none;
}
.gq-ks-host .donate-optin__cb {
    position: absolute;
    opacity: 0;
    width: 0; height: 0;
    pointer-events: none;
}
.gq-ks-host .donate-optin__check {
    flex-shrink: 0;
    width: 20px; height: 20px;
    border: 2px solid rgba(255,255,255,.2);
    border-radius: 4px;
    background: transparent;
    transition: all .2s var(--ease);
    position: relative;
    margin-top: 1px;
}
.gq-ks-host .donate-optin__check::after {
    content: '';
    position: absolute;
    top: 2px; left: 5px;
    width: 6px; height: 10px;
    border: solid var(--dark);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: transform .2s var(--ease);
}
.gq-ks-host .donate-optin__cb:checked ~ .donate-optin__check {
    background: var(--green);
    border-color: var(--green);
}
.gq-ks-host .donate-optin__cb:checked ~ .donate-optin__check::after {
    transform: rotate(45deg) scale(1);
}
.gq-ks-host .donate-optin__cb:focus-visible ~ .donate-optin__check {
    box-shadow: 0 0 0 2px var(--green);
}
.gq-ks-host .donate-optin__text {
    font-family: var(--f-body);
    font-size: 1rem;
    color: var(--grey);
    line-height: 1.6;
}
.gq-ks-host .donate-optin__text a {
    color: var(--grey);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.gq-ks-host .donate-optin__text a:hover { color: var(--white); }
.gq-ks-host .donate-cta:disabled {
    opacity: .4;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

/* ═══════ KONTAKT (last section — bottom border-radius) ═══════ */
.gq-ks-host #kontakt {
    border-radius: 0 0 30px 30px;
    overflow: hidden;
}
.gq-ks-host .contact-split {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 0;
    min-height: 600px;
}
.gq-ks-host .contact-left {
    padding: clamp(3rem, 6vw, 5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
    align-self: center;
}
.gq-ks-host .contact-left__deco {
    position: absolute;
    font-family: var(--f-head);
    font-size: 14rem;
    font-weight: 700;
    color: rgba(97,255,112, 0.06);
    top: .5rem; right: 1rem;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}
.gq-ks-host .contact-left::after {
    content: '';
    position: absolute;
    width: 300px; height: 300px;
    top: 50%; right: -100px;
    transform: translateY(-50%);
    background: radial-gradient(circle, rgba(105,98,254, 0.08) 0%, transparent 70%);
    filter: blur(40px);
    pointer-events: none;
}
.gq-ks-host .contact-left__title {
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(2rem, 4vw, 3rem);
    text-transform: lowercase;
    letter-spacing: -2px;
    line-height: 1.05;
    margin-bottom: .8rem;
    position: relative; z-index: 1;
}
.gq-ks-host .contact-left__desc {
    font-family: var(--f-body);
    color: var(--white);
    font-weight: 400;
    max-width: 340px;
    line-height: 1.7;
    margin-bottom: 2.5rem;
    position: relative; z-index: 1;
}
.gq-ks-host .c-row {
    display: flex; gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.4rem;
    position: relative; z-index: 1;
}
.gq-ks-host .c-ico {
    width: 40px; height: 40px;
    border: 1px solid rgba(255,255,255, 0.08);
    border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: all .4s var(--ease);
}
.gq-ks-host .c-row:hover .c-ico {
    background: var(--green);
    border-color: var(--green);
}
.gq-ks-host .c-ico svg {
    width: 18px; height: 18px;
    stroke: var(--grey); fill: none;
    stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
    transition: stroke .3s;
}
.gq-ks-host .c-row:hover .c-ico svg { stroke: var(--dark); }
.gq-ks-host .c-lbl {
    font-family: var(--f-body);
    font-size: 1rem; font-weight: 500;
    letter-spacing: 0; text-transform: lowercase;
    color: var(--white);
    margin-bottom: 1px;
}
.gq-ks-host .c-val { font-family: var(--f-body); font-weight: 600; font-size: .92rem; }
.gq-ks-host .c-socials {
    display: flex; gap: .5rem;
    margin-top: 2rem; padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255, 0.06);
    position: relative; z-index: 1;
}
.gq-ks-host .c-soc {
    width: 40px; height: 40px;
    border: 1px solid rgba(255,255,255, 0.08);
    border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    transition: all .4s var(--ease);
}
.gq-ks-host .c-soc:hover {
    background: var(--green);
    border-color: var(--green);
    transform: translateY(-3px);
}
.gq-ks-host .c-soc svg { width: 16px; height: 16px; fill: var(--grey); transition: fill .3s; }
.gq-ks-host .c-soc:hover svg { fill: var(--dark); }

/* ═══════ FORM ═══════ */
.gq-ks-host .contact-right {
    padding: clamp(2rem, 4vw, 3rem);
    padding-top: clamp(2.5rem, 5vw, 3.5rem);
    background: var(--surface);
    border: 1px solid rgba(255,255,255, 0.06);
    border-radius: 24px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.gq-ks-host .contact-right::before {
    content: '';
    position: absolute;
    top: 0; left: 24px; right: 24px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--purple), transparent);
}
.gq-ks-host .form-tag {
    font-family: var(--f-head);
    font-size: .65rem; font-weight: 400;
    letter-spacing: 6px; text-transform: uppercase;
    color: var(--white);
    margin-bottom: 2rem;
}
.gq-ks-host .form-tag span { color: var(--green); }
.gq-ks-host .fld { margin-bottom: 1.15rem; }
.gq-ks-host .fld label {
    display: block;
    font-family: var(--f-body);
    font-size: 1rem; font-weight: 500;
    text-transform: lowercase;
    color: var(--white);
    margin-bottom: .4rem;
}
.gq-ks-host .fld label .rq { color: var(--green); }
.gq-ks-host .fi,
.gq-ks-host .fs,
.gq-ks-host .ft {
    width: 100%; padding: .82rem 1rem;
    background: var(--dark);
    border: 1px solid rgba(255,255,255, 0.08);
    border-radius: 10px;
    font-family: var(--f-body);
    font-size: 1rem; color: var(--white);
    text-transform: lowercase;
    transition: border-color .4s var(--ease), box-shadow .4s var(--ease);
    -webkit-appearance: none;
}
.gq-ks-host .fi:focus,
.gq-ks-host .fs:focus,
.gq-ks-host .ft:focus {
    outline: none;
    border-color: var(--purple);
    box-shadow: 0 0 0 3px rgba(105,98,254, 0.15);
}
.gq-ks-host .fi.bad,
.gq-ks-host .fs.bad,
.gq-ks-host .ft.bad {
    border-color: var(--pride-red);
    box-shadow: 0 0 0 3px rgba(228,3,3, 0.1);
}
.gq-ks-host .fi::placeholder,
.gq-ks-host .ft::placeholder { color: rgba(255,255,255, 0.25); }
.gq-ks-host .fs {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23424245' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
}
.gq-ks-host .ft { resize: vertical; min-height: 100px; line-height: 1.6; }
.gq-ks-host .fld-err {
    display: none;
    font-family: var(--f-head);
    font-size: .58rem; color: var(--pride-red);
    margin-top: .3rem; letter-spacing: 2px;
}
.gq-ks-host .fld.err .fld-err { display: block; animation: gqKsFadeUp .3s var(--ease); }

/* Privacy checkbox (custom) */
.gq-ks-host .fld--privacy { margin-top: .5rem; }
.gq-ks-host .fld .privacy-label {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    cursor: pointer;
    user-select: none;
    letter-spacing: 0;
    text-transform: none;
    font-size: inherit;
    color: inherit;
    margin-bottom: 0;
}
.gq-ks-host .privacy-cb {
    position: absolute;
    opacity: 0;
    width: 0; height: 0;
    pointer-events: none;
}
.gq-ks-host .privacy-check {
    flex-shrink: 0;
    width: 20px; height: 20px;
    border: 2px solid rgba(255,255,255,.35);
    border-radius: 6px;
    background: rgba(255,255,255,.06);
    transition: all .2s var(--ease);
    position: relative;
    margin-top: 2px;
}
.gq-ks-host .privacy-check::after {
    content: '';
    position: absolute;
    top: 2px; left: 5px;
    width: 6px; height: 10px;
    border: solid var(--dark); border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: transform .2s var(--ease);
}
.gq-ks-host .privacy-cb:checked ~ .privacy-check {
    background: var(--green);
    border-color: var(--green);
}
.gq-ks-host .privacy-cb:checked ~ .privacy-check::after {
    transform: rotate(45deg) scale(1);
}
.gq-ks-host .privacy-cb:focus-visible ~ .privacy-check {
    box-shadow: 0 0 0 2px var(--green);
}
.gq-ks-host .privacy-text {
    font-family: var(--f-body);
    font-size: 1rem;
    color: var(--grey);
    line-height: 1.5;
}
.gq-ks-host .privacy-text .rq { color: var(--green); }
.gq-ks-host .privacy-text a {
    color: var(--grey);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.gq-ks-host .privacy-text a:hover { color: var(--white); }

/* Submit */
.gq-ks-host .form-sub {
    width: 100%; height: 54px;
    border: none; border-radius: 980px;
    background: var(--green);
    color: var(--dark);
    font-size: 1rem; font-weight: 600;
    font-family: var(--f-body);
    cursor: pointer;
    transition: all .4s var(--ease);
    margin-top: 1.25rem; position: relative;
}
.gq-ks-host .form-sub:hover {
    background: var(--purple);
    color: var(--white);
    transform: scale(1.02);
    box-shadow: 0 0 30px rgba(162, 89, 255, 0.3);
}
.gq-ks-host .form-sub .sl { transition: opacity .3s; }
.gq-ks-host .form-sub .ss {
    display: none; width: 18px; height: 18px;
    border: 2px solid rgba(10,10,10,.2);
    border-top-color: var(--dark);
    border-radius: 50%;
    animation: gqKsSpin .6s linear infinite;
    margin: 0 auto;
}
.gq-ks-host .form-sub.ld .sl { display: none; }
.gq-ks-host .form-sub.ld .ss { display: block; }
.gq-ks-host .form-sub.ok { background: var(--green); color: var(--dark); }

/* Success */
.gq-ks-host .form-ok {
    display: none; text-align: center; padding: 2rem;
}
.gq-ks-host .form-ok.vis { display: block; animation: gqKsScaleIn .5s var(--ease); }
.gq-ks-host .form-ok__ico {
    width: 56px; height: 56px;
    background: var(--green);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1rem;
}
.gq-ks-host .form-ok__ico svg {
    width: 28px; height: 28px;
    stroke: var(--dark); fill: none;
    stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
    stroke-dasharray: 48; stroke-dashoffset: 48;
    animation: gqKsCheckDraw .5s ease .25s forwards;
}
.gq-ks-host .form-ok h3 {
    font-family: var(--f-head);
    font-size: 1.5rem; font-weight: 700;
    text-transform: lowercase;
    letter-spacing: -1px;
    margin-bottom: .3rem;
}
.gq-ks-host .form-ok p { color: var(--white); font-size: .9rem; }

/* ═══════ RESPONSIVE ═══════ */
@media (max-width: 900px) {
    .gq-ks-host .donate-card__inner { flex-direction: column; }
    .gq-ks-host .hero__title { letter-spacing: -3px; }
    .gq-ks-host .contact-split { grid-template-columns: 1fr; gap: 2rem; }
    .gq-ks-host .hero__side { display: none; }
}

@media (max-width: 600px) {
    .gq-ks-host .hero { padding: 5rem 1.25rem; }
    .gq-ks-host .sec { padding: 4rem 1.25rem; }
    .gq-ks-host .stickers { gap: .75rem; }
    .gq-ks-host .sticker { min-width: 0; flex: 1 1 calc(50% - .75rem); }
    .gq-ks-host .contact-left,
    .gq-ks-host .contact-right { padding: 2.5rem 1.25rem; }
    .gq-ks-host .contact-left__deco { font-size: 7rem; }
    .gq-ks-host .hero__cta { flex-direction: column; align-items: center; }
    .gq-ks-host .btn-fill,
    .gq-ks-host .btn-ghost { width: 260px; }
}
