/* ===================================================
   mobile.css — phone / tablet polish
   Desktop layouts stay untouched. These rules only
   tighten gutters, stacking, overflow, and tap targets.
   =================================================== */

:root {
    --kp-mobile-gutter: 20px;
    --kp-mobile-gutter-tight: 16px;
    --kp-tap: 44px;
}

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

@supports (overflow: clip) {
    html,
    body {
        overflow-x: clip;
    }
}

img,
svg,
video {
    max-width: 100%;
}

/* ── Tablet + phone: kill page-level horizontal scroll ── */
@media (max-width: 900px) {
    html,
    body,
    #main,
    main,
    #main main,
    #kp-hero-wrapper,
    #about,
    #speakers,
    #speakers.kp-speakers,
    #program,
    #partners,
    #partners.kp-partners,
    #registration,
    #cta,
    #kp-footer {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    #about,
    #speakers,
    #program,
    #partners,
    #registration,
    #faq,
    #organizatorzy,
    #cta {
        scroll-margin-top: 80px !important;
    }

    #about,
    #main main > section#about,
    section#about,
    #about [data-framer-name="Container"],
    #about [data-framer-name="Themes"],
    #about [data-framer-name="Themes"].kp-about-topics-host {
        overflow-x: hidden !important;
    }

    /* Headings / intros must never inherit the 80px nav chrome */
    #speakers .kp-speakers-intro,
    #speakers .kp-speakers-title,
    #speakers .kp-speakers-lead,
    #partners.kp-partners .kp-partners__hero,
    #partners.kp-partners header.kp-partners__hero,
    #registration .kp-registration__head,
    #registration .kp-registration__title,
    #faq.kp-registration__faq,
    .kp-program__header,
    .kp-about-intro,
    #about #kp-about-intro.kp-about-intro {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }

    h1, h2, h3,
    .kp-hero-title,
    .kp-speakers-title,
    .kp-speaker-split__name,
    .kp-program__title,
    .kp-program__heading,
    .kp-registration__title,
    .kp-partners__hero h2,
    .kp-cta-title,
    .kp-about-intro__title {
        overflow-wrap: anywhere;
        word-break: break-word;
        hyphens: manual;
    }
}

/* ════════════════════════════════════════════
   HEADER + OPEN MENU (mobile / tablet)
   Desktop header is unchanged above 1280px.
   ════════════════════════════════════════════ */
@media (max-width: 1279.98px) {
    .framer-kihvfi-container:not(.kp-nav-open) {
        background: rgba(17, 42, 85, 0.62) !important;
        background-color: rgba(17, 42, 85, 0.62) !important;
        backdrop-filter: blur(24px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
        border-bottom: 1px solid rgba(254, 255, 245, 0.1) !important;
        box-shadow: inset 0 1px 0 rgba(254, 255, 245, 0.1), 0 10px 28px rgba(5, 13, 31, 0.16) !important;
    }

    header.framer-ZWenL.framer-v-jzc0ll[data-border="true"]::after,
    header.framer-ZWenL.framer-v-jzc0ll [data-border="true"]::after,
    header.framer-ZWenL.framer-v-jzc0ll [data-framer-name="Top"]::after {
        display: none !important;
    }

    header.framer-ZWenL:not(.framer-v-jzc0ll),
    header.framer-ZWenL:not(.framer-v-jzc0ll) [data-framer-name="Top"],
    header.framer-ZWenL:not(.framer-v-jzc0ll) .framer-1pu0vq8 {
        background: transparent !important;
        background-color: transparent !important;
        border: none !important;
    }

    header.framer-ZWenL [data-framer-name="Top"],
    header.framer-ZWenL .framer-1pu0vq8 {
        justify-content: space-between !important;
    }

    .kp-mobile-wordmark {
        display: none !important;
    }

    header.framer-ZWenL a[data-framer-name="Logo"],
    header.framer-ZWenL .framer-emgz8g,
    header.framer-ZWenL .kp-header-home {
        display: inline-flex !important;
        align-items: center !important;
        width: auto !important;
        max-width: 128px !important;
        height: auto !important;
        overflow: visible !important;
        pointer-events: auto !important;
        margin: 0 auto 0 0 !important;
    }

    header.framer-ZWenL img.kp-header-logo {
        height: 26px !important;
        max-height: 26px !important;
        max-width: 160px !important;
        width: auto !important;
        object-fit: contain !important;
        filter: brightness(0) invert(1) !important;
        opacity: 0.8 !important;
    }

    header.framer-ZWenL .framer-gWtvy,
    header.framer-ZWenL .framer-1roo5wa-container,
    header.framer-ZWenL [data-framer-name="Menu"] {
        min-width: var(--kp-tap) !important;
        min-height: var(--kp-tap) !important;
    }

    header.framer-ZWenL .framer-gWtvy {
        width: var(--kp-tap) !important;
        height: var(--kp-tap) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: visible !important;
        background: transparent !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    header.framer-ZWenL .framer-gWtvy:has(.kp-burger) [data-framer-name="Line"] {
        display: none !important;
    }

    .kp-burger {
        display: block !important;
    }

    header.framer-ZWenL.framer-v-jzc0ll nav a:not([href*="#registration"]):not(.kp-header-reg-btn),
    header.framer-ZWenL.framer-v-jzc0ll .framer-cb5fy9 a:not([href*="#registration"]):not(.kp-header-reg-btn),
    header.framer-ZWenL.framer-v-jzc0ll nav a.framer-G7BGa:not([href*="#registration"]) {
        min-height: 80px !important;
        padding: 22px 0 22px 56px !important;
        border: none !important;
        border-bottom: none !important;
        background: transparent !important;
        background-color: transparent !important;
        box-shadow: none !important;
        outline: none !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    header.framer-ZWenL.framer-v-jzc0ll nav a:not([href*="#registration"]):not(.kp-header-reg-btn) p,
    header.framer-ZWenL.framer-v-jzc0ll nav a:not([href*="#registration"]):not(.kp-header-reg-btn) span,
    header.framer-ZWenL.framer-v-jzc0ll .framer-cb5fy9 a:not([href*="#registration"]):not(.kp-header-reg-btn) p {
        font-family: "Outfit", "Sora", "Manrope", sans-serif !important;
        font-size: clamp(30px, 8.4vw, 38px) !important;
        font-weight: 400 !important;
        letter-spacing: -0.03em !important;
        text-transform: none !important;
        background: transparent !important;
        color: rgba(254, 255, 245, 0.94) !important;
        -webkit-text-fill-color: rgba(254, 255, 245, 0.94) !important;
    }

    header.framer-ZWenL.framer-v-jzc0ll a[href*="#registration"],
    header.framer-ZWenL.framer-v-jzc0ll a.framer-Vp8bt,
    header.framer-ZWenL.framer-v-jzc0ll .kp-header-reg-btn {
        width: 100% !important;
        min-height: 52px !important;
        height: 52px !important;
        border-radius: 0 !important;
        box-sizing: border-box !important;
        transform: none !important;
    }
}

/* ════════════════════════════════════════════
   HERO
   ════════════════════════════════════════════ */
@media (max-width: 880px) {
    #kp-hero-content {
        width: min(calc(100% - 40px), 1320px) !important;
        padding: 108px 0 68px !important;
        justify-content: flex-end !important;
    }

    #kp-hero-wrapper h1,
    #kp-hero-wrapper .kp-hero-title,
    .kp-hero-title {
        font-size: clamp(32px, 9vw, 48px) !important;
        line-height: 1.19 !important;
        margin-bottom: 20px !important;
        max-width: 100% !important;
    }

    #kp-hero-wrapper p.kp-hero-lead,
    .kp-hero-lead {
        max-width: min(320px, calc(100% - 40px)) !important;
        margin-bottom: 28px !important;
        font-size: 15px !important;
    }

    .kp-hero-dbar-inner {
        width: calc(100% - 40px) !important;
    }

    .kp-dbar-patrons-logos {
        flex-wrap: wrap !important;
        gap: 20px 28px !important;
    }

    .kp-dbar-patron,
    .kp-dbar-patron--mrit {
        max-width: min(220px, 100%) !important;
        height: 48px !important;
    }

    .kp-dbar-patron img,
    .kp-dbar-patron--mrit img,
    .kp-dbar-patron--ko img {
        height: 44px !important;
        max-height: 44px !important;
        max-width: 100% !important;
        object-fit: contain !important;
    }

    #kp-hero-scroll-cue {
        display: none !important;
    }
}

@media (max-width: 540px) {
    #kp-hero-content {
        width: calc(100% - 32px) !important;
        padding: 96px 0 60px !important;
        justify-content: flex-end !important;
    }

    #kp-hero-wrapper .kp-hero-badge,
    .kp-hero-badge {
        margin-bottom: 22px !important;
    }

    #kp-hero-wrapper h1,
    #kp-hero-wrapper .kp-hero-title,
    .kp-hero-title {
        font-size: clamp(30px, 8.4vw, 36px) !important;
        letter-spacing: -0.008em !important;
        line-height: 1.19 !important;
    }

    .kp-hero-actions {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 20px !important;
        width: 100% !important;
    }

    #kp-hero-wrapper .kp-hero-btn-about,
    .kp-hero-btn-about,
    #kp-hero-wrapper .kp-hero-btn-program,
    .kp-hero-btn-program {
        width: 100% !important;
        min-height: var(--kp-tap) !important;
        height: 48px !important;
        justify-content: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .kp-hero-dbar-inner {
        grid-template-columns: 1fr !important;
        width: calc(100% - 32px) !important;
    }

    .kp-dbar-item,
    .kp-dbar-item:nth-child(odd),
    .kp-dbar-item:nth-child(even),
    .kp-dbar-item:first-child,
    .kp-dbar-item:nth-child(2) {
        padding: 16px 0 !important;
        min-height: 0 !important;
        border-left: none !important;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .kp-dbar-item:first-child {
        border-top: none !important;
    }

    .kp-dbar-item--patrons {
        grid-column: 1 / -1 !important;
        padding: 18px 0 20px !important;
    }

    .kp-dbar-value,
    .kp-dbar-label {
        white-space: normal !important;
    }

    .kp-dbar-patrons-logos {
        width: 100% !important;
        justify-content: flex-start !important;
        gap: 16px 20px !important;
    }

    .kp-dbar-patrons-sep {
        display: none !important;
    }

    .kp-dbar-patron,
    .kp-dbar-patron--mrit {
        max-width: min(160px, 46%) !important;
        height: 40px !important;
    }

    .kp-dbar-patron img,
    .kp-dbar-patron--mrit img,
    .kp-dbar-patron--ko img {
        height: 38px !important;
        max-height: 38px !important;
    }
}

/* ════════════════════════════════════════════
   ABOUT — intro + swipeable carousel
   ════════════════════════════════════════════ */
@media (max-width: 809.98px) {
    #about {
        --kp-about-gutter: var(--kp-mobile-gutter);
        --kp-about-align: var(--kp-mobile-gutter);
    }

    #about #kp-about-intro.kp-about-intro {
        width: 100% !important;
        max-width: 100% !important;
        padding: 88px var(--kp-mobile-gutter) 28px !important;
    }

    #about #kp-about-intro .kp-about-intro__title {
        max-width: 14ch !important;
        font-size: clamp(32px, 9vw, 42px) !important;
        line-height: 1.16 !important;
        overflow: visible !important;
    }

    #about #kp-about-intro .kp-about-intro__grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    #about #kp-about-intro .kp-about-intro__lead,
    #about #kp-about-intro .kp-about-intro__grid p {
        font-size: 15px !important;
        line-height: 1.65 !important;
    }

    .kp-about-topics {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        --kp-about-card-h: clamp(220px, 58vw, 320px);
        padding-bottom: 48px !important;
        overflow: hidden !important;
    }

    .kp-about-topics__track {
        padding: 8px var(--kp-mobile-gutter) 24px !important;
        scroll-padding-inline: var(--kp-mobile-gutter) !important;
        gap: 12px !important;
    }

    .kp-about-topics__card {
        flex-basis: min(78vw, 300px) !important;
        border-radius: 12px !important;
    }

    .kp-about-topics__nav {
        padding: 0 8px !important;
        pointer-events: none;
    }

    #about #kp-about-topics .kp-about-topics__arrow {
        width: var(--kp-tap) !important;
        height: var(--kp-tap) !important;
        min-width: var(--kp-tap) !important;
        min-height: var(--kp-tap) !important;
        flex-basis: var(--kp-tap) !important;
        pointer-events: auto !important;
    }

    #about #kp-about-topics .kp-about-topics__title {
        max-width: 16ch !important;
        font-size: clamp(20px, 5.6vw, 26px) !important;
    }

    #about #kp-about-topics .kp-about-topics__line {
        font-size: 13px !important;
        line-height: 1.45 !important;
    }

    .kp-about-topics__copy {
        max-width: min(34ch, 92%) !important;
    }

    .kp-about-topics__band {
        padding: 28px 18px 18px !important;
    }
}

/* ════════════════════════════════════════════
   SPEAKERS — stack split rows, no squeezed columns
   ════════════════════════════════════════════ */
@media (max-width: 900px) {
    #speakers,
    #speakers.kp-speakers {
        --kp-gutter: 40px !important;
        height: auto !important;
        min-height: 0 !important;
        overflow-x: hidden !important;
        overflow-y: visible !important;
    }

    #speakers .kp-speakers-intro {
        width: min(calc(100% - var(--kp-gutter)), 1240px) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        padding: 64px 0 28px !important;
    }

    #speakers .kp-speakers-title {
        font-size: clamp(30px, 8vw, 40px) !important;
        max-width: 14ch !important;
        height: auto !important;
        line-height: 1.08 !important;
    }

    #speakers .kp-speakers-lead {
        max-width: 42ch !important;
        font-size: 15px !important;
    }

    #speakers a.kp-speaker-split,
    #speakers a.kp-speaker-split--even,
    #speakers a.kp-speaker-split--odd {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas: "media" "copy" !important;
        min-height: 0 !important;
        height: auto !important;
        width: 100% !important;
    }

    #speakers .kp-speaker-split__media {
        min-height: 280px !important;
        aspect-ratio: 4 / 5 !important;
        width: 100% !important;
    }

    #speakers .kp-speaker-split__media img {
        object-fit: cover !important;
        object-position: center 12% !important;
    }

    #speakers .kp-speaker-split__copy,
    #speakers a.kp-speaker-split--even .kp-speaker-split__copy {
        padding: 28px var(--kp-align, 20px) 36px !important;
        min-width: 0 !important;
    }

    #speakers .kp-speaker-split__name {
        max-width: none !important;
        font-size: clamp(28px, 8vw, 34px) !important;
        line-height: 1.08 !important;
    }

    #speakers .kp-speaker-split__title,
    #speakers .kp-speaker-split__org,
    #speakers .kp-speaker-split__topic {
        max-width: 100% !important;
    }
}

@media (max-width: 540px) {
    #speakers,
    #speakers.kp-speakers {
        --kp-gutter: 32px !important;
    }

    #speakers .kp-speakers-intro {
        padding: 56px 0 24px !important;
    }

    #speakers .kp-speaker-split__copy,
    #speakers a.kp-speaker-split--even .kp-speaker-split__copy {
        padding: 24px var(--kp-align, 16px) 32px !important;
    }

    #speakers .kp-speaker-split__media {
        min-height: 240px !important;
    }

    #speakers .kp-speaker-split__name {
        font-size: 28px !important;
    }

    #speakers .kp-speaker-split__title {
        font-size: 15px !important;
    }

    #speakers .kp-speaker-split__org,
    #speakers .kp-speaker-split__topic {
        font-size: 14px !important;
    }
}

/* ════════════════════════════════════════════
   PROGRAM — full-width cards, dots stay on the line
   ════════════════════════════════════════════ */
@media (max-width: 809px) {
    .kp-program__inner {
        width: min(calc(100% - 40px), 680px) !important;
        padding: 80px 0 72px !important;
    }

    .kp-program__header {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
        align-items: start !important;
    }

    .kp-program__title {
        font-size: clamp(32px, 10vw, 48px) !important;
        max-width: 12ch;
    }

    .kp-program__intro {
        font-size: 15px !important;
        max-width: 100% !important;
    }

    .kp-program__list::before {
        left: calc(var(--kp-program-axis) / 2) !important;
    }

    .kp-program__item,
    .kp-program__item--block,
    .kp-program__item--break {
        grid-template-columns: var(--kp-program-axis) minmax(0, 1fr) !important;
    }

    .kp-program__content {
        min-width: 0 !important;
        padding-left: 16px !important;
    }

    .kp-program__time-col {
        padding-left: 16px !important;
    }

    .kp-program__heading {
        font-size: clamp(16px, 4.4vw, 20px) !important;
    }

    .kp-program__description,
    .kp-program__speaker {
        font-size: 14px !important;
    }
}

@media (max-width: 479px) {
    .kp-program__inner {
        width: calc(100% - 32px) !important;
        padding: 68px 0 60px !important;
    }

    .kp-program__title {
        font-size: clamp(30px, 9vw, 40px) !important;
    }

    .kp-program__item {
        padding: 20px 0 24px !important;
    }

    .kp-program__item--block {
        padding: 28px 0 36px !important;
    }
}

/* ════════════════════════════════════════════
   PARTNERS
   ════════════════════════════════════════════ */
@media (max-width: 768px) {
    #partners.kp-partners {
        --partners-gutter: 40px !important;
    }

    #partners.kp-partners .kp-partners__inner {
        width: min(calc(100% - var(--partners-gutter)), var(--partners-max)) !important;
    }

    #partners.kp-partners .kp-partners__hero,
    #partners.kp-partners header.kp-partners__hero {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
    }

    #partners.kp-partners .kp-partners__logo-grid,
    #partners.kp-partners .kp-partners__logo-grid--people {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #partners.kp-partners .kp-partners__institutions,
    #partners.kp-partners .kp-partners__mp-list,
    #partners.kp-partners .kp-partners__mp-track,
    #partners.kp-partners .kp-partners__mp-marquee--static .kp-partners__mp-track {
        grid-template-columns: 1fr !important;
    }

    #partners.kp-partners .kp-partners__logo-image {
        max-width: 100% !important;
        object-fit: contain !important;
    }

    #partners.kp-partners .kp-partners__patronage-card {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 620px) {
    #partners.kp-partners {
        --partners-gutter: 32px !important;
    }

    #partners.kp-partners .kp-partners__hero h2 {
        font-size: clamp(28px, 8vw, 34px) !important;
    }

    #partners.kp-partners .kp-partners__mp-card {
        grid-template-columns: 104px minmax(0, 1fr) !important;
        min-height: 148px !important;
    }

    #partners.kp-partners .kp-partners__mp-photo {
        min-height: 148px !important;
    }

    #partners.kp-partners .kp-partners__mp-photo img {
        object-fit: cover !important;
        object-position: center 8% !important;
    }

    #partners.kp-partners .kp-partners__organizer-visual--logo img,
    #partners.kp-partners .kp-partners__institution--mrit .kp-partners__organizer-visual--logo img {
        max-width: min(200px, 100%) !important;
        max-height: 52px !important;
        object-fit: contain !important;
    }

    #partners.kp-partners .kp-partners__logo-tile {
        min-height: 80px !important;
        padding: 16px 12px !important;
    }
}

@media (max-width: 479px) {
    #partners.kp-partners .kp-partners__mp-card {
        grid-template-columns: 112px minmax(0, 1fr) !important;
        min-height: 156px !important;
    }

    #partners.kp-partners .kp-partners__mp-photo {
        min-height: 156px !important;
        aspect-ratio: auto;
    }

    #partners.kp-partners .kp-partners__mp-caption {
        padding: 18px 18px 20px !important;
    }
}

/* ════════════════════════════════════════════
   REGISTRATION + FAQ
   ════════════════════════════════════════════ */
@media (max-width: 839px) {
    .kp-registration {
        --kp-gutter: 40px;
    }

    .kp-registration__layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .kp-registration__faq {
        position: static !important;
    }
}

@media (max-width: 620px) {
    .kp-registration {
        --kp-gutter: 32px;
    }

    .kp-registration__fields {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .kp-registration__field,
    .kp-registration__field--pesel,
    .kp-registration__control,
    #registration.kp-registration .kp-registration__input,
    .kp-registration__input {
        width: 100% !important;
        max-width: 100% !important;
    }

    #registration.kp-registration .kp-registration__input,
    .kp-registration__input {
        min-height: 48px !important;
    }

    .kp-registration__submit {
        width: 100% !important;
        min-height: 48px !important;
    }

    .kp-registration__consent {
        align-items: flex-start !important;
    }

    .kp-registration__consent-text {
        font-size: 13px !important;
        line-height: 1.65 !important;
    }

    .kp-faq__q {
        min-height: var(--kp-tap);
        align-items: center !important;
    }
}

@media (max-width: 479px) {
    .kp-registration {
        --kp-gutter: 32px;
    }

    .kp-registration__inner {
        width: min(calc(100% - 32px), var(--kp-max)) !important;
        padding: 36px 0 40px !important;
    }

    .kp-registration__title {
        font-size: clamp(28px, 8vw, 34px) !important;
    }

    .kp-registration__form {
        padding: 22px 18px 24px !important;
    }

    .kp-registration__faq,
    #faq.kp-registration__faq {
        padding: 20px 16px 16px !important;
    }

    .kp-faq__q {
        padding: 14px 40px 14px 12px !important;
        font-size: 14px !important;
        line-height: 1.45 !important;
    }
}

/* ════════════════════════════════════════════
   CTA
   ════════════════════════════════════════════ */
@media (max-width: 768px) {
    #cta,
    .kp-cta-wrapper {
        min-height: 0 !important;
    }

    .kp-cta-content {
        width: calc(100% - 40px) !important;
        padding: 72px 0 !important;
        gap: 22px !important;
    }

    .kp-cta-title {
        font-size: clamp(28px, 8vw, 40px) !important;
        max-width: 16ch;
    }

    .kp-cta-lead {
        font-size: 15px !important;
        max-width: 40ch;
    }

    .kp-cta-button {
        width: 100% !important;
        max-width: 360px;
        min-height: 48px !important;
        height: 48px !important;
    }
}

@media (max-width: 479px) {
    .kp-cta-content {
        width: calc(100% - 32px) !important;
        padding: 64px 0 !important;
    }
}

/* ════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════ */
@media (max-width: 720px) {
    #kp-footer .kp-footer__top {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    #kp-footer .kp-footer__nav a,
    #kp-footer .kp-footer__legal a,
    #kp-footer .kp-footer__maps {
        min-height: var(--kp-tap);
        display: inline-flex !important;
        align-items: center !important;
    }

    #kp-footer .kp-footer__nav {
        gap: 4px !important;
    }
}

@media (max-width: 560px) {
    #kp-footer .kp-footer__inner,
    #kp-footer .kp-footer__strip {
        width: calc(100% - 32px) !important;
    }

    #kp-footer .kp-footer__bottom {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 16px 16px 24px !important;
        gap: 8px !important;
    }

    #kp-footer .kp-footer__logos {
        flex-wrap: wrap !important;
        gap: 16px 24px !important;
        width: 100% !important;
    }

    #kp-footer .kp-footer__org-logo {
        height: 32px !important;
        max-width: min(160px, 70vw) !important;
        object-fit: contain !important;
    }

    #kp-footer .kp-footer__date {
        font-size: clamp(26px, 8vw, 34px) !important;
    }

    #kp-footer .kp-footer__legal {
        gap: 0 16px !important;
    }
}

/* ════════════════════════════════════════════
   COOKIE
   ════════════════════════════════════════════ */
@media (max-width: 540px) {
    #kp-cookie {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        width: auto !important;
        max-width: none !important;
    }

    .kp-cookie__body {
        padding: 16px 16px 12px !important;
    }

    .kp-cookie__text {
        font-size: 12px !important;
        line-height: 1.55 !important;
    }

    .kp-cookie__icon {
        margin-bottom: 8px !important;
    }

    .kp-cookie__btn {
        min-height: var(--kp-tap);
        height: var(--kp-tap) !important;
    }
}

/* ════════════════════════════════════════════
   TOUCH — comfortable hit areas
   ════════════════════════════════════════════ */
@media (max-width: 900px) {
    #kp-hero-wrapper .kp-hero-btn-about,
    #kp-hero-wrapper .kp-hero-btn-program,
    .kp-cta-button,
    .kp-registration__submit,
    header.framer-ZWenL.framer-v-jzc0ll a[href*="#registration"] {
        min-height: 52px;
    }

    a, button, summary, label {
        touch-action: manipulation;
    }
}
