/* ==========================================================================
   BLE WEBINAR — CYPRUS NORTH
   Premium editorial design system
   ========================================================================== */

:root {
    /* Palette */
    --navy: #0a1628;
    --navy-deep: #050d1a;
    --navy-soft: #142036;
    --gold: #c1a461;
    --gold-light: #d4bd83;
    --gold-dark: #a88a47;
    --cream: #f5efe3;
    --cream-soft: #faf6ec;
    --white: #ffffff;
    --ink: #1a1a1a;
    --muted: #6b7280;
    --line: rgba(193, 164, 97, 0.25);

    /* Fonts */
    --display: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
    --body: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Sizes */
    --fs-display: clamp(2.6rem, 6vw, 5rem);
    --fs-h1: clamp(2.2rem, 4.5vw, 3.8rem);
    --fs-h2: clamp(1.8rem, 3.5vw, 2.8rem);
    --fs-h3: clamp(1.2rem, 2vw, 1.5rem);
    --fs-body: 1.05rem;
    --fs-small: 0.85rem;

    /* Spacing */
    --section-pad: clamp(4rem, 9vw, 8rem);
    --container: 1240px;

    /* Easing */
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    font-family: var(--body);
    font-size: var(--fs-body);
    line-height: 1.65;
    color: var(--ink);
    background: var(--cream-soft);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; transition: color 0.3s var(--ease); }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
input, textarea, select { font-family: inherit; font-size: inherit; }

/* Typography */
h1, h2, h3, h4 {
    font-family: var(--display);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.01em;
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
em, .italic { font-style: italic; color: var(--gold); font-weight: 400; }

.kicker {
    font-family: var(--body);
    font-size: 0.78rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 600;
    display: inline-block;
    margin-bottom: 1.2rem;
}
.kicker::before {
    content: '';
    display: inline-block;
    width: 28px;
    height: 1px;
    background: var(--gold);
    vertical-align: middle;
    margin-right: 12px;
}

.container {
    width: min(100% - 2.5rem, var(--container));
    margin-inline: auto;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 1.05rem 2.2rem;
    font-family: var(--body);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border: 1px solid transparent;
    border-radius: 0;
    transition: all 0.35s var(--ease);
    cursor: pointer;
    white-space: nowrap;
}
.btn-primary {
    background: var(--gold);
    color: var(--navy);
}
.btn-primary:hover { background: var(--gold-light); transform: translateY(-2px); box-shadow: 0 12px 32px rgba(193, 164, 97, 0.3); }
.btn-secondary {
    background: transparent;
    color: var(--gold);
    border-color: var(--gold);
}
.btn-secondary:hover { background: var(--gold); color: var(--navy); }
.btn-large { padding: 1.25rem 2.6rem; font-size: 0.88rem; }
.btn-block { width: 100%; }

/* Nav */
.nav {
    position: absolute;
    top: 0; left: 0; right: 0;
    z-index: 50;
    padding: 1.6rem 0;
}
.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.logo {
    font-family: var(--display);
    font-size: 1.3rem;
    font-style: italic;
    color: var(--cream);
    letter-spacing: 0.02em;
}
.logo span { color: var(--gold); }
.nav-back {
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cream);
    font-weight: 500;
    opacity: 0.85;
}
.nav-back:hover { color: var(--gold); opacity: 1; }
.nav-back::after { content: ' ›'; color: var(--gold); }
.nav.light .logo, .nav.light .nav-back { color: var(--navy); }

/* Hero */
.hero {
    position: relative;
    min-height: 92vh;
    background: linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 100%);
    color: var(--cream);
    padding: 9rem 0 4rem;
    overflow: hidden;
}
.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at top right, rgba(193, 164, 97, 0.12), transparent 60%),
        radial-gradient(ellipse at bottom left, rgba(193, 164, 97, 0.06), transparent 50%);
    pointer-events: none;
}
.hero-grid {
    position: relative;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 4rem;
    align-items: center;
}
.hero h1 {
    font-size: clamp(1.8rem, 3.2vw, 2.9rem);
    line-height: 1.15;
    margin-bottom: 1.5rem;
    color: var(--cream);
    letter-spacing: -0.01em;
}
.hero h1 em { color: var(--gold); }
.hero .subtitle {
    font-size: 1.15rem;
    line-height: 1.6;
    color: rgba(245, 239, 227, 0.78);
    max-width: 540px;
    margin-bottom: 2rem;
}
.trust-line {
    margin-top: 1.5rem;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    color: rgba(245, 239, 227, 0.55);
    text-transform: uppercase;
}
.trust-line span { color: var(--gold); margin: 0 0.5rem; }

/* Countdown */
.countdown {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.8rem;
    margin: 2rem 0;
    max-width: 460px;
}
.cd-box {
    text-align: center;
    padding: 1.1rem 0.4rem;
    background: rgba(193, 164, 97, 0.08);
    border: 1px solid rgba(193, 164, 97, 0.25);
    backdrop-filter: blur(8px);
}
.cd-num {
    display: block;
    font-family: var(--display);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: var(--gold);
    line-height: 1;
    font-weight: 500;
    font-feature-settings: 'tnum';
}
.cd-label {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(245, 239, 227, 0.6);
}

/* Signup form */
.signup-card {
    background: rgba(245, 239, 227, 0.04);
    border: 1px solid rgba(193, 164, 97, 0.3);
    padding: 2.4rem;
    backdrop-filter: blur(12px);
    position: relative;
}
.signup-card.light {
    background: var(--white);
    border-color: var(--line);
    box-shadow: 0 24px 60px rgba(10, 22, 40, 0.12);
}
.signup-card h3 {
    font-size: 1.4rem;
    color: var(--gold);
    margin-bottom: 0.4rem;
    font-style: italic;
}
.signup-card.light h3 { color: var(--navy); }
.signup-card .form-sub {
    font-size: 0.9rem;
    color: rgba(245, 239, 227, 0.7);
    margin-bottom: 1.6rem;
}
.signup-card.light .form-sub { color: var(--muted); }

.field {
    margin-bottom: 1rem;
}
.field label {
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 0.4rem;
    font-weight: 600;
}
.signup-card.light .field label { color: var(--navy); }
.field input[type=text],
.field input[type=email],
.field input[type=tel] {
    width: 100%;
    padding: 0.85rem 1rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(193, 164, 97, 0.3);
    color: var(--cream);
    transition: all 0.3s var(--ease);
    border-radius: 0;
}
.signup-card.light .field input { background: var(--cream-soft); border-color: var(--line); color: var(--navy); }
.field input:focus {
    outline: none;
    border-color: var(--gold);
    background: rgba(0, 0, 0, 0.3);
}
.signup-card.light .field input:focus { background: var(--white); }

.checkbox-field {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin: 1.1rem 0 1.4rem;
    font-size: 0.82rem;
    line-height: 1.5;
    color: rgba(245, 239, 227, 0.75);
}
.signup-card.light .checkbox-field { color: var(--muted); }
.checkbox-field input[type=checkbox] {
    margin-top: 3px;
    accent-color: var(--gold);
    width: 16px; height: 16px;
}

.form-message {
    margin-top: 1rem;
    font-size: 0.85rem;
    min-height: 1.2em;
}
.form-message.error { color: #f5a3a3; }
.form-message.success { color: var(--gold-light); }

/* Sections */
section { position: relative; }
.section {
    padding: var(--section-pad) 0;
}
.section.cream { background: var(--cream); }
.section.white { background: var(--white); }
.section.navy { background: var(--navy); color: var(--cream); }
.section.navy h2 { color: var(--cream); }
.section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 3.5rem;
}
.section-header h2 em { color: var(--gold); }
.section-header p {
    margin-top: 1rem;
    color: var(--muted);
    font-size: 1.05rem;
}
.section.navy .section-header p { color: rgba(245, 239, 227, 0.7); }

/* Feature grid */
.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
.feature-card {
    background: var(--white);
    padding: 2.2rem 1.8rem;
    border: 1px solid var(--line);
    transition: all 0.4s var(--ease);
    position: relative;
}
.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 50px rgba(10, 22, 40, 0.1);
    border-color: var(--gold);
}
.feature-icon {
    width: 48px; height: 48px;
    color: var(--gold);
    margin-bottom: 1.2rem;
}
.feature-card h3 {
    font-size: 1.2rem;
    margin-bottom: 0.6rem;
    color: var(--navy);
    font-style: italic;
}
.feature-card p {
    font-size: 0.95rem;
    color: var(--muted);
    line-height: 1.6;
}

/* Split hook section */
.split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
}
.split-text h2 {
    font-style: italic;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.15;
    margin-bottom: 1.5rem;
}
.split-text .lead {
    font-size: 1.1rem;
    color: rgba(245, 239, 227, 0.8);
    margin-bottom: 2rem;
}
.section.cream .split-text .lead { color: var(--muted); }
.split-image {
    aspect-ratio: 4 / 5;
    background: var(--navy-soft);
    overflow: hidden;
    position: relative;
}
.split-image img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.8s var(--ease);
}
.split-image:hover img { transform: scale(1.04); }
.split-image::after {
    content: '';
    position: absolute;
    inset: 1rem;
    border: 1px solid rgba(193, 164, 97, 0.4);
    pointer-events: none;
}

/* Stat cards */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-top: 2rem;
}
.stat-card {
    text-align: center;
    padding: 1.4rem 1rem;
    border: 1px solid rgba(193, 164, 97, 0.3);
    background: rgba(193, 164, 97, 0.04);
}
.section.cream .stat-card { background: var(--white); border-color: var(--line); }
.stat-num {
    display: block;
    font-family: var(--display);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    color: var(--gold);
    line-height: 1;
    margin-bottom: 0.5rem;
}
.stat-label {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(245, 239, 227, 0.7);
}
.section.cream .stat-label { color: var(--muted); }

/* Speakers */
.speakers-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
}
.speaker {
    text-align: center;
}
.speaker-photo {
    width: 220px;
    height: 220px;
    margin: 0 auto 1.5rem;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid var(--gold);
    padding: 4px;
    background: var(--cream);
}
.speaker-photo img {
    width: 100%; height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
.speaker h3 {
    font-size: 1.5rem;
    color: var(--navy);
    margin-bottom: 0.3rem;
}
.speaker .role {
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1rem;
}
.speaker .bio {
    font-size: 0.95rem;
    color: var(--muted);
    line-height: 1.65;
    max-width: 380px;
    margin: 0 auto;
}

/* FAQ */
.faq {
    max-width: 820px;
    margin: 0 auto;
}
.faq-item {
    border-bottom: 1px solid var(--line);
}
.faq-q {
    width: 100%;
    text-align: left;
    padding: 1.6rem 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    font-family: var(--display);
    font-size: 1.2rem;
    font-style: italic;
    color: var(--navy);
    transition: color 0.3s var(--ease);
}
.faq-q:hover { color: var(--gold-dark); }
.faq-q .plus {
    width: 24px; height: 24px;
    flex-shrink: 0;
    position: relative;
    color: var(--gold);
}
.faq-q .plus::before,
.faq-q .plus::after {
    content: '';
    position: absolute;
    background: currentColor;
    transition: transform 0.4s var(--ease);
}
.faq-q .plus::before { top: 50%; left: 0; right: 0; height: 1px; }
.faq-q .plus::after { left: 50%; top: 0; bottom: 0; width: 1px; }
.faq-item.open .faq-q .plus::after { transform: rotate(90deg); opacity: 0; }
.faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s var(--ease);
    color: var(--muted);
    line-height: 1.7;
}
.faq-item.open .faq-a { max-height: 400px; }
.faq-a > div { padding: 0 0 1.6rem; }

/* Final CTA */
.final-cta {
    text-align: center;
}
.final-cta h2 {
    font-style: italic;
    margin-bottom: 1rem;
}
.final-cta .lead {
    color: rgba(245, 239, 227, 0.78);
    margin-bottom: 2rem;
    max-width: 640px;
    margin-inline: auto;
}
.final-cta .countdown { margin: 2.5rem auto; }
.final-cta .signup-card { max-width: 520px; margin: 2rem auto 0; }
.scarcity {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 1rem;
    border: 1px solid rgba(193, 164, 97, 0.4);
    color: var(--gold);
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}
.scarcity::before {
    content: '';
    width: 8px; height: 8px;
    background: var(--gold);
    border-radius: 50%;
    animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(0.7); }
}

/* Thank-you specific */
.success-icon {
    width: 92px; height: 92px;
    margin: 0 auto 2rem;
    border-radius: 50%;
    border: 2px solid var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gold);
}
.success-icon svg { width: 50px; height: 50px; }
.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}
.step-card {
    text-align: center;
    padding: 2rem 1.4rem;
}
.step-num {
    width: 48px; height: 48px;
    margin: 0 auto 1.2rem;
    border: 1px solid var(--gold);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gold);
    font-family: var(--display);
    font-size: 1.3rem;
    font-style: italic;
}
.step-card h3 {
    font-size: 1.1rem;
    color: var(--navy);
    margin-bottom: 0.5rem;
    font-style: italic;
}
.step-card p {
    font-size: 0.95rem;
    color: var(--muted);
}

.next-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
.next-card {
    padding: 2.4rem 1.8rem;
    background: var(--white);
    border: 1px solid var(--line);
    text-align: center;
    transition: all 0.4s var(--ease);
}
.next-card:hover { border-color: var(--gold); transform: translateY(-3px); }
.next-card h3 {
    font-size: 1.15rem;
    color: var(--navy);
    margin-bottom: 0.6rem;
    font-style: italic;
}
.next-card p {
    font-size: 0.92rem;
    color: var(--muted);
    margin-bottom: 1.2rem;
    min-height: 3em;
}

/* Konsultacja */
.consult-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 3rem;
}
.consult-calendar {
    background: var(--white);
    border: 1px solid var(--line);
    padding: 1rem;
    min-height: 700px;
}
.consult-side h3 {
    font-style: italic;
    margin-bottom: 1.4rem;
    color: var(--navy);
}
.consult-side ul {
    list-style: none;
    margin-bottom: 2rem;
}
.consult-side ul li {
    padding-left: 1.8rem;
    position: relative;
    margin-bottom: 0.9rem;
    color: var(--ink);
    font-size: 0.97rem;
}
.consult-side ul li::before {
    content: '';
    position: absolute;
    left: 0; top: 0.7em;
    width: 12px; height: 1px;
    background: var(--gold);
}
.mini-card {
    padding: 1.5rem;
    background: var(--cream);
    border: 1px solid var(--line);
    display: flex;
    gap: 1rem;
    align-items: center;
}
.mini-card img {
    width: 64px; height: 64px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--gold);
}
.mini-card strong { display: block; color: var(--navy); font-size: 0.98rem; }
.mini-card span { font-size: 0.8rem; color: var(--muted); letter-spacing: 0.05em; }

.banner-cta {
    text-align: center;
    padding: 2rem;
    background: var(--cream);
    border: 1px solid var(--line);
    margin-top: 2rem;
}
.banner-cta p { color: var(--navy); font-size: 1rem; }
.banner-cta a { color: var(--gold-dark); font-weight: 600; }

/* Footer */
.footer {
    background: var(--navy-deep);
    color: rgba(245, 239, 227, 0.55);
    padding: 3rem 0 2rem;
    font-size: 0.82rem;
}
.footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
}
.footer .logo { font-size: 1.1rem; }
.footer a { color: var(--gold); }
.footer a:hover { color: var(--gold-light); }
.footer-meta {
    margin-top: 1.6rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(193, 164, 97, 0.15);
    font-size: 0.74rem;
    color: rgba(245, 239, 227, 0.4);
    line-height: 1.6;
}

/* Animations */
@media (prefers-reduced-motion: no-preference) {
    .fade-in {
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
    }
    .fade-in.visible {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive */
@media (max-width: 980px) {
    .hero-grid { grid-template-columns: 1fr; gap: 3rem; }
    .features-grid { grid-template-columns: repeat(2, 1fr); }
    .split { grid-template-columns: 1fr; gap: 3rem; }
    .split-image { aspect-ratio: 16 / 11; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .speakers-grid { grid-template-columns: 1fr; gap: 3.5rem; }
    .steps-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .next-grid { grid-template-columns: 1fr; }
    .consult-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .features-grid { grid-template-columns: 1fr; }
    .stats-grid { grid-template-columns: 1fr 1fr; }
    .countdown { gap: 0.5rem; }
    .cd-box { padding: 0.85rem 0.2rem; }
    .signup-card { padding: 1.8rem 1.4rem; }
    .hero { padding-top: 7rem; }
    .nav { padding: 1.2rem 0; }
    .footer-inner { flex-direction: column; text-align: center; }
}


/* ==========================================================================
   LOGO IMG — real BLE logo replacing text version
   ========================================================================== */
.logo-img {
    display: inline-flex;
    align-items: center;
    transition: opacity 0.3s ease;
}
.logo-img:hover { opacity: 0.85; }

.logo-img img {
    height: 42px;
    width: auto;
    display: block;
    /* On dark nav (default hero), invert to make it white-ish */
    filter: brightness(0) invert(1);
    transition: filter 0.4s ease;
}

.nav.light .logo-img img,
.nav.scrolled .logo-img img {
    filter: none;
}

.footer .logo-img img {
    height: 32px;
    filter: brightness(0) invert(1);
    opacity: 0.95;
}


/* ==========================================================================
   HERO CYPRUS — background image with navy gradient overlay
   ========================================================================== */
.hero-cyprus {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.hero-bg-img {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('https://images.unsplash.com/photo-1560860446-c821e910a0a7?w=2400&q=85') center/cover no-repeat;
    transform: scale(1.04);
    animation: heroPan 28s ease-in-out infinite alternate;
}

.hero-bg-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(ellipse at 25% 30%, rgba(193, 164, 97, 0.12), transparent 55%),
        linear-gradient(135deg, rgba(10, 22, 40, 0.92) 0%, rgba(10, 22, 40, 0.85) 50%, rgba(13, 25, 41, 0.78) 100%);
}

@keyframes heroPan {
    from { transform: scale(1.04) translate(0, 0); }
    to { transform: scale(1.12) translate(-1.5%, -1.5%); }
}


/* ==========================================================================
   SPEAKERS 4-GRID — 4 osoby na desktopie, 2x2 na tablet, 1x4 na mobile
   ========================================================================== */
.speakers-grid-4 {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px;
    max-width: 1280px;
    margin: 0 auto;
}

.speakers-grid-4 .speaker {
    padding: 0;
}

.speakers-grid-4 .speaker-photo {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 50%;
    width: 180px;
    height: 180px;
    margin: 0 auto 24px;
    border: 2px solid rgba(193, 164, 97, 0.3);
}

.speakers-grid-4 .speaker-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 22%;
    transition: transform 0.6s ease;
}

.speakers-grid-4 .speaker:hover .speaker-photo img {
    transform: scale(1.05);
}

.speakers-grid-4 .speaker:hover .speaker-photo {
    border-color: var(--gold);
}

.speakers-grid-4 .speaker h3 {
    font-family: 'Playfair Display', serif;
    font-size: 20px;
    font-weight: 700;
    text-align: center;
    color: var(--navy);
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}

.speakers-grid-4 .speaker .role {
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 14px;
}

.speakers-grid-4 .speaker .bio {
    text-align: center;
    font-size: 13px;
    line-height: 1.7;
    color: var(--text-secondary, #4a4a5a);
    margin: 0;
}

/* Local expert highlight — slightly larger badge under photo */
.speakers-grid-4 .speaker-local {
    position: relative;
}

.speakers-grid-4 .speaker-local::before {
    content: 'Lokalna ekspertka';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background: var(--gold);
    color: var(--navy);
    padding: 4px 14px;
    font-family: 'Montserrat', sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    border-radius: 50px;
    z-index: 3;
    box-shadow: 0 4px 14px rgba(193, 164, 97, 0.35);
}

.speakers-grid-4 .speaker-local .speaker-photo {
    margin-top: 18px;
}

/* Placeholder photo — used when no real headshot available */
.speaker-photo-placeholder {
    background: linear-gradient(135deg, #c1a461 0%, #8b7340 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.speaker-photo-placeholder .placeholder-initial {
    font-family: 'Playfair Display', serif;
    font-size: 78px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.92);
    line-height: 1;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
/* Removed placeholder caption per latest design */
.visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border: 0;
}

@media (max-width: 980px) {
    .speakers-grid-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 560px) {
    .speakers-grid-4 {
        grid-template-columns: 1fr !important;
        max-width: 360px;
    }
    .speakers-grid-4 .speaker-photo {
        width: 160px;
        height: 160px;
    }
}


/* ==========================================================================
   FOOTER LINKS — Polityka prywatności link
   ========================================================================== */
.footer-links {
    display: flex;
    gap: 20px;
    align-items: center;
}

.footer-links a {
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: var(--gold);
}

.logo-img-footer img {
    height: 36px !important;
}


/* ==========================================================================
   GHL FORM IFRAME — wrapper for embedded GHL widget
   ========================================================================== */
.ghl-form-wrap {
    background: transparent;
    border-radius: 12px;
    padding: 0;
    max-width: 100%;
    overflow: hidden;
    position: relative;
    isolation: isolate;
}

.ghl-form-wrap {
    background: var(--white);
    border-radius: 12px;
    box-shadow: 0 30px 80px rgba(10, 22, 40, 0.35), 0 0 0 1px rgba(193, 164, 97, 0.12);
}
.ghl-form-wrap iframe {
    display: block;
    width: 100% !important;
    min-height: 540px;
    height: 560px;
    border: none !important;
    border-radius: 12px 12px 0 0;
    background: var(--white);
}

/* (moved below — see .legal-note-inline rules after .legal-note base) */

.legal-note {
    margin: 14px auto 0;
    max-width: 480px;
    font-size: 11.5px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.55);
    text-align: center;
    letter-spacing: 0.01em;
}
.legal-note a {
    color: rgba(193, 164, 97, 0.85);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.legal-note a:hover { color: var(--gold); }

section.cream .legal-note {
    color: rgba(10, 22, 40, 0.55);
    max-width: 560px;
}
section.cream .legal-note a { color: rgba(10, 22, 40, 0.75); }
section.cream .legal-note a:hover { color: var(--navy); }

/* Legal note attached to bottom of form card (white extension)
   — placed after .legal-note so it WINS the cascade */
.legal-note-inline,
.hero .legal-note-inline,
section.cream .legal-note-inline {
    margin: 0;
    padding: 12px 22px 16px;
    font-size: 11px;
    line-height: 1.5;
    color: rgba(10, 22, 40, 0.62);
    text-align: left;
    background: var(--white);
    border-radius: 0 0 12px 12px;
    border-top: 1px solid rgba(10, 22, 40, 0.07);
    max-width: none;
    letter-spacing: 0;
}
.legal-note-inline strong { color: var(--navy); }
.legal-note-inline a {
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.legal-note-inline a:hover { color: var(--gold); }

.stat-source {
    display: block;
    margin-top: 6px;
    font-size: 10.5px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.45);
    font-style: italic;
}
.section.cream .stat-source { color: var(--muted); }

/* When inside hero — keep card centered with constrained width */
.hero-form .ghl-form-wrap {
    max-width: 480px;
    margin: 0 auto;
}

/* When in final CTA — wider */
section.cream .ghl-form-wrap,
section.section.cream .ghl-form-wrap,
.final-cta .ghl-form-wrap,
section.section.navy .final-cta .ghl-form-wrap {
    max-width: 560px;
    margin: 32px auto 0;
}

@media (max-width: 600px) {
    .ghl-form-wrap iframe {
        min-height: 640px;
        height: 660px;
    }
}


/* ==========================================================================
   PREP LIST — "Jak się przygotować" on dziekujemy.html
   ========================================================================== */
.prep-list {
    list-style: none;
    padding: 0;
    margin: 2.5rem auto 0;
    max-width: 820px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.prep-item {
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: 28px;
    align-items: start;
    padding: 26px 28px;
    background: rgba(193, 164, 97, 0.04);
    border: 1px solid rgba(193, 164, 97, 0.18);
    border-radius: 10px;
    transition: border-color 0.3s ease, background 0.3s ease;
}
.prep-item:hover {
    border-color: rgba(193, 164, 97, 0.45);
    background: rgba(193, 164, 97, 0.07);
}

.prep-num {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 44px;
    line-height: 1;
    color: var(--gold);
    letter-spacing: -0.02em;
    align-self: start;
}

.prep-text h4 {
    font-family: 'Playfair Display', serif;
    font-size: 19px;
    font-weight: 600;
    color: var(--cream);
    margin: 4px 0 8px;
    line-height: 1.35;
    letter-spacing: -0.005em;
}

.prep-text p {
    font-size: 14.5px;
    line-height: 1.7;
    color: rgba(245, 239, 227, 0.72);
    margin: 0;
}
.prep-text p strong { color: rgba(245, 239, 227, 0.92); }

@media (max-width: 640px) {
    .prep-item {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 22px 20px;
    }
    .prep-num {
        font-size: 32px;
    }
    .prep-text h4 {
        font-size: 17px;
    }
}
