/* CSS Tokens */
:root {
    /* typography */
    --font-display: "Fraunces", serif;
    --font-ui: "Manrope", system-ui, sans-serif;

    /* colors */
    --bg: #ffffff;
    --ink: #0a0a0a;
    --muted: #6b7280;
    --brand: #f25a7f;

    /* spacing */
    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 32px;
    --space-6: 48px;
    --space-8: 64px;

    /* layout */
    --container: 1200px;
    --gutter: 24px;
}

/* Base Reset */
* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-ui);
    line-height: 1.4;
}

/* Inline italics utility for bios and elsewhere */
.italic {
    font-family: var(--font-display);
    font-style: italic;
}

/* Layout Helpers */
.container {
    width: min(100% - 2 * var(--gutter), var(--container));
    margin-inline: auto;
}

/* =================================
   NEW INTRO SECTION
   ================================= */
.new-intro-sections {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: center;
    gap: 140px;
    background: #fff;
}

.new-intro-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    background: #101e2d;
    overflow: hidden;
    height: 75vh;
    min-height: 450px;
    position: relative;
}

.new-intro-illustration-frame {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: auto; /* allow image to define width */
    overflow: visible; /* never clip on desktop/tablet */
    z-index: 0;
    pointer-events: none;
}

.new-intro-portal-image {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    height: 100%;
    width: auto; /* lock aspect ratio */
    max-width: none; /* allow width to exceed */
    object-fit: contain; /* never clip */
    object-position: left center; /* pin to left */
}

/* Mobile: revert to intrinsic image height/aspect */
@media (max-width: 768px) {
    /* Mobile hero: full viewport height */
    .new-intro-hero {
        height: 100svh;
        min-height: 0;
        flex-direction: column;
        justify-content: space-between;
        position: relative;
    }

    /* Content up top */
    .new-intro-content-block {
        order: 1;
        width: 100%;
        padding: 24px 20px;
        height: 100%;
        position: relative;
        z-index: 2; /* above portal image */
    }
    /* Right-align date/city on mobile */
    .new-intro-date-location {
        width: 100%;
        text-align: right;
        position: absolute;
        right: 20px;
        left: auto;
        bottom: 20px;
        z-index: 3;
    }

    /* Portal block pinned bottom-left; ~60% of screen area */
    .new-intro-illustration-frame {
        position: absolute;
        left: 0;
        top: auto;
        bottom: 0;
        width: 80%; /* wider footprint */
        height: 75svh; /* taller footprint */
        overflow: hidden;
        z-index: 1; /* behind content */
        pointer-events: none;
    }
    .new-intro-portal-image {
        position: absolute;
        left: 0;
        top: auto;
        bottom: 0;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: contain; /* no clipping or stretching */
        object-position: left bottom; /* bottom-left anchor */
    }
}

/* Make the wordmark scale down only on narrower screens (<600px) */
@media (max-width: 600px) {
    .new-intro-wordmark {
        max-width: 80vw;
    }
}

.new-intro-content-block {
    display: flex;
    padding: 80px 60px;
    flex-direction: column;
    align-items: center;
    gap: 80px;
    position: relative;
    z-index: 1;
}

/* Desktop/tablet: content in right 60% region, centered within that region */
@media (min-width: 769px) {
    .new-intro-content-block {
        flex: 0 0 auto;
        width: min(60vw, 690px);
        margin-left: calc(40vw + max((60vw - 690px) / 2, 0px));
        margin-right: auto;
    }
}

.new-intro-logo-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 34px;
}

/* Wordmark image (simplified PNG approach) */
.new-intro-wordmark {
    width: 100%;
    max-width: 977px;
    height: auto;
    display: block;
}

/* */

/* Crisp text subhead under wordmark */
.new-intro-subhead {
    color: #a6e9f6;
    text-align: center;
    font-family: var(--font-ui);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.5em;
    text-transform: uppercase;
    margin-top: -26px;
}

/* Restored icon sizing */
.new-intro-icon {
    width: 180px;
    height: 180px;
    max-width: 180px;
    max-height: 180px;
    aspect-ratio: 1/1;
}

.new-intro-date-location {
    color: #fff;
    text-align: center;
    font-family: var(--font-display);
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 25px;
    letter-spacing: 0.8px;
}

/* Ensure mobile left alignment wins over base rule */
@media (max-width: 768px) {
    .new-intro-hero .new-intro-date-location {
        text-align: right;
        right: 20px;
        left: auto;
    }
}

.new-intro-headline {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 1400px;
    text-align: center;
    padding: 0 40px;
}

.new-intro-main-title,
.new-intro-excited-title,
.new-intro-gather-title {
    color: #000;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(60px, 8vw, 120px);
    font-style: normal;
    font-weight: 300;
    letter-spacing: -2px;
    line-height: 1.1;
    margin: 0;
    margin-top: -10px;
}

/* Gradient underline for key words in the gather title */
.new-intro-gather-title .gradient-underline {
    /*background-image: linear-gradient(90deg, #7fd1e1 0%, #f25a7f 100%);*/
    background-repeat: no-repeat;
    background-size: 100% 6px; /* thickness */
    background-position: 0 calc(100% - 10px);
    padding-bottom: 4px; /* spacing so underline is visible */
}

.new-intro-connector-and,
.new-intro-connector-to {
    color: #101e2d;
    text-align: center;
    font-family: var(--font-ui);
    font-size: clamp(14px, 2vw, 16px);
    font-style: normal;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    margin: 0;
}

.new-intro-gather-container {
    width: 100%;
    margin-top: -30px;
}

.new-intro-info {
    width: 100%;
    max-width: none;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 100px;
    position: relative;
    background: #f6efe7;
    padding: 80px 100px;
}

/* Center divider line for the info section */
.new-intro-divider {
    position: absolute;
    left: 50%;
    top: 60px;
    bottom: 60px;
    width: 1px;
    background: #000;
    pointer-events: none;
}

.new-intro-left-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    flex: 1;
    padding-right: 30px;
}

.new-intro-right-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    flex: 1;
    padding-left: 30px;
}

.new-intro-column-title {
    color: #101e2d;
    text-align: center;
    font-family: var(--font-ui);
    font-size: clamp(20px, 2.5vw, 26px);
    font-style: normal;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.new-intro-column-text {
    color: #000;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(12px, 1.8vw, 15px);
    font-style: normal;
    font-weight: 300;
    line-height: 1.6;
    letter-spacing: 0.5px;
    max-width: 40ch;
    margin: 0 auto;
}

/* =================================
   SPEAKERS SECTION
   ================================= */
.speakers-section {
    display: flex;
    padding: 80px 40px;
    flex-direction: column;
    align-items: center;
    gap: 90px;
    background: #fff;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.speakers-header {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.speakers-title-mask {
    width: 100%;
}

.speakers-title {
    color: #000;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(60px, 10vw, 90px);
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    letter-spacing: -5px;
    text-transform: uppercase;
    margin: 0;
}

.speakers-subtitle {
    width: 100%;
    max-width: 500px;
    color: #000;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(12px, 2vw, 15px);
    font-style: normal;
    font-weight: 300;
    line-height: 1.5;
    letter-spacing: 0.5px;
    margin-top: -6px;
}

.speakers-grid {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 60px;
    row-gap: 80px;
    align-items: start; /* top-align items in each row */
}

.speakers-column-left,
.speakers-column-right {
    display: contents; /* flatten wrappers so cards auto-flow across grid */
}

/* (No explicit grid ordering; DOM order defines columns) */

.speaker-card {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    width: 100%;
}

.speaker-image {
    width: 200px;
    height: 200px;
    aspect-ratio: 1/1;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
}

.speaker-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    flex: 1;
}

.speaker-name {
    color: #101e2d;
    font-family: var(--font-display);
    font-size: clamp(32px, 5vw, 42px);
    font-style: normal;
    font-weight: 300;
    line-height: 1.2;
    letter-spacing: -1px;
    margin: 0;
}

.speaker-role {
    color: #101e2d;
    font-family: var(--font-ui);
    font-size: clamp(14px, 1.5vw, 15px);
    font-style: normal;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.speaker-bio {
    color: #000;
    font-family: var(--font-display);
    font-size: clamp(14px, 1.5vw, 15px);
    font-style: normal;
    font-weight: 300;
    line-height: 1.5;
    margin: 0;
}

.underlined-text {
    text-decoration: underline;
}

.speakers-more {
    color: #101e2d;
    text-align: center;
    font-family: var(--font-ui);
    font-size: clamp(18px, 2.5vw, 20px);
    font-style: normal;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* =================================
   PRICING FOOTER SECTION
   ================================= */
.pricing-footer-section {
    width: 100%;
    max-width: 100vw;
    background: #fff;
    overflow-x: hidden;
}

/* Pricing Section */
.pricing-section {
    width: 100%;
    background: #101e2d;
    padding: 80px 20px 60px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 90px;
}

/* Wrapper for JOIN US title + subtitle with adjustable spacing */
.join-us-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    width: 100%;
}

.join-us-title-container {
    width: 100%;
    text-align: center;
}

.join-us-title {
    color: #fff;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(40px, 8vw, 90px);
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    letter-spacing: -3px;
    text-transform: uppercase;
    margin: 0;
}

.pricing-subtitle {
    width: 100%;
    max-width: 500px;
    color: #fff;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(12px, 2vw, 15px);
    font-style: normal;
    font-weight: 300;
    line-height: 1.5;
    letter-spacing: 0.5px;
    margin-top: -6px;
}

.pricing-cards {
    display: flex;
    justify-content: center;
    gap: 40px;
    width: 100%;
    max-width: 1200px;
    flex-wrap: wrap;
    align-items: stretch; /* make cards equal height so buttons align */
}

.pricing-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 30px 20px;
    flex: 0 0 calc(50% - 20px); /* 50/50 split accounting for 40px gap */
}

/* Push the register button to the bottom within each card */
.pricing-card .register-button {
    margin-top: auto;
}

.regular-ticket {
    padding-right: 40px;
    margin-right: 20px;
}

.ticket-type {
    text-align: center;
    font-family: var(--font-ui);
    font-size: clamp(18px, 2.5vw, 24px);
    font-style: normal;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 32px;
}

.regular-ticket .ticket-type {
    color: #96d8ce;
}

.vip-ticket .ticket-type {
    color: #ffbb10;
}

.price-section {
    position: relative;
    width: 100%;
    display: flex;
    align-items: baseline; /* align numbers on their text baselines */
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap; /* allow the label to sit below on its own line */
    height: auto;
    margin-bottom: 60px;
}

.early-bird-price {
    color: #f6efe7;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(60px, 10vw, 120px);
    font-style: normal;
    font-weight: 300;
    line-height: 1;
    letter-spacing: -3px;
    text-transform: uppercase;
    background: linear-gradient(135deg, #8b7355 0%, #d4c4a8 50%, #f6efe7 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    padding: 0;
    margin: 0;
    z-index: 2;
}

.regular-ticket .early-bird-price {
    background: linear-gradient(135deg, #4a9b8e 0%, #7fd1e1 50%, #b8e8f0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.vip-ticket .early-bird-price {
    background: linear-gradient(135deg, #b8730e 0%, #e9a13c 50%, #f4c573 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.regular-price {
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--font-display);
    font-size: clamp(24px, 4vw, 44px);
    font-style: normal;
    font-weight: 300;
    line-height: 1;
    letter-spacing: -1px;
    position: relative; /* scope pseudo-element */
    display: inline-block;
    text-decoration: none;
}
.regular-price::after {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    top: 50%;
    height: 2px;
    background: #ff0404;
    transform: translateY(-50%) rotate(-25deg);
    transform-origin: center;
}

.price-label {
    display: none;
}

.early-bird-label {
    color: #ff0404;
    text-align: center;
    font-family: var(--font-ui);
    font-size: clamp(11px, 1.5vw, 15px);
    font-style: normal;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    margin: 0;
    width: 100%;
    background: transparent;
    padding: 0;
    border-radius: 0;
    border: none;
    flex: 0 0 100%; /* sit on its own row, spanning both numbers */
}

.ticket-description {
    color: #fff;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(12px, 1.5vw, 14.5px);
    font-style: italic;
    font-weight: 300;
    line-height: 1.4;
    letter-spacing: 0.3px;
    width: 100%;
    max-width: 425px;
    margin-bottom: 30px;
    opacity: 0.9;
}

/* =============================
   Reworked price-section layout
   ============================= */
.price-section {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: center;
    column-gap: 12px;
    row-gap: 12px;
    height: auto;
    margin-bottom: 60px;
}

.early-bird-price {
    grid-row: 1;
    grid-column: 1;
    line-height: 1;
    padding: 0;
    margin: 0;
}

.regular-price {
    grid-row: 1;
    grid-column: 2;
    position: relative; /* scope pseudo-element to this box */
    display: inline-block;
    align-self: center; /* ensure vertical centering vs big price */
    text-decoration: none;
    line-height: 1;
    color: rgba(255, 255, 255, 0.55);
}
.regular-price::after {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    top: 50%;
    height: 2px;
    background: #ff0404;
    transform: translateY(-50%) rotate(-25deg);
    transform-origin: center;
}

/* Superscript currency glyph on prices (uses OpenType 'sups' if available) */
.early-bird-price::first-letter,
.regular-price::first-letter {
    font-variant-position: super; /* preferred, maps to 'sups' */
    font-feature-settings: "sups" 1; /* explicit OpenType feature */
    vertical-align: super; /* fallback for non-supporting UAs */
    font-size: 0.6em; /* fallback size reduction */
    line-height: 1;
    margin-right: 0.05em;
}

.price-label {
    display: none !important;
}

.early-bird-label {
    grid-row: 2;
    grid-column: 1 / span 2;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    line-height: 1.4;
}

.register-button {
    width: 280px;
    height: 50px;
    margin-top: 20px;
    border: none;
    border-radius: 25px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #000;
    text-align: center;
    leading-trim: both;
    text-edge: cap;
    font-family: Manrope, system-ui, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    transition: opacity 0.2s ease;
}

.register-button:hover {
    opacity: 0.9;
    text-decoration: none;
}

.register-button:active {
    transform: translateY(1px);
}

.regular-button {
    background: #7fd1e1;
    color: #000;
}

.vip-button {
    background: #e9a13c;
    color: #fff;
}

.team-student-info {
    width: 100%;
    max-width: 800px;
    color: rgba(255, 255, 255, 1);
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(14px, 1.8vw, 16px);
    font-style: italic;
    font-weight: 300;
    line-height: 1.4;
    letter-spacing: 0.5px;
}

.underlined-link {
    text-decoration: underline;
    color: rgba(255, 255, 255, 1);
}

/* =================================
   NEWSLETTER SIGNUP SECTION
   ================================= */
.newsletter-signup {
    width: 100%;
    background: #f6efe7;
    padding: 80px 0 0 0; /* let cream go edge-to-edge; internal container handles side padding */
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
}

.newsletter-container {
    display: flex;
    width: 100%;
    max-width: 1200px;
    flex-direction: column;
    align-items: center;
    gap: 40px; /* normalize spacing with other sections */
    padding: 0 40px; /* side padding inside full-bleed strip */
}

.newsletter-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    width: 100%;
}

.newsletter-headline {
    color: #101e2d;
    text-align: center;
    font-family: var(--font-ui);
    font-size: clamp(18px, 2.5vw, 24px);
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin: 0;
}

.newsletter-subhead {
    color: #101e2d;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(12px, 2vw, 15px);
    font-style: normal;
    font-weight: 300;
    line-height: 34px;
    letter-spacing: 0.8px;
    margin: 0;
    margin-top: -6px;
}

.newsletter-form-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    width: 100%;
}

/* Ensure the form spans full available width */
.newsletter-form {
    width: 100%;
}

.newsletter-input-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0px;
    width: 100%;
}

.newsletter-email-input {
    width: 100%;
    max-width: 1080px;
    color: rgba(16, 30, 45, 0.5);
    text-align: center;
    font-family: var(--font-display);
    font-size: 46px;
    font-style: normal;
    font-weight: 300;
    line-height: 1.2; /* prevent descender clipping */
    letter-spacing: -0.46px;
    background: transparent;
    border: none;
    outline: none;
    padding: 8px 0 10px; /* provide vertical breathing room */
    overflow: visible;
}

.newsletter-email-input::placeholder {
    color: rgba(16, 30, 45, 0.5);
}

.newsletter-email-input:focus {
    color: #101e2d;
}

.newsletter-underline {
    width: 100%;
    max-width: 700px;
    height: 1px;
    background: #101e2d;
}

.newsletter-submit-button {
    /* Match .register-button exactly */
    width: 280px;
    height: 50px;
    margin-top: 20px;
    border: none;
    border-radius: 25px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #fff;
    text-align: center;
    leading-trim: both;
    text-edge: cap;
    font-family: Manrope, system-ui, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    transition: opacity 0.2s ease;
    /* Restore original intended color palette */
    background: #101e2d;
}

.newsletter-submit-button:hover {
    opacity: 0.9;
}

.newsletter-submit-button:active {
    transform: translateY(1px);
}

.newsletter-button-bg {
    display: none;
}

.newsletter-button-label {
    position: static;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}

.newsletter-status {
    text-align: center;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 300;
    margin-bottom: 20px;
    min-height: 24px;
}

.newsletter-status.success {
    color: #059669;
}

.newsletter-status.error {
    color: #dc2626;
}

.newsletter-status.loading {
    color: #101e2d;
}

/* Footer Section */
.footer-section {
    width: 100%;
    background: #fff;
    padding: 80px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 60px; /* Reduced gap since newsletter section adds visual separation */
}

/* Wrapper for footer title + paragraph with zero gap */
.footer-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    width: 100%;
}

.interpolations-title-container {
    width: 100%;
    text-align: center;
}

.interpolations-title {
    color: #000;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(40px, 8vw, 90px);
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    letter-spacing: -3px;
    text-transform: uppercase;
    margin: 0;
}

.footer-description {
    width: 100%;
    max-width: 500px;
    color: #000;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(16px, 2vw, 18px);
    font-style: normal;
    font-weight: 300;
    line-height: 1.6;
    letter-spacing: 0.5px;
    margin-top: -6px;
}

.contact-info {
    width: 100%;
    max-width: 1000px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px;
}

.contact-item {
    flex: 1;
    min-width: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-email {
    color: #0e1c2b;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(18px, 3vw, 28px);
    font-style: italic;
    font-weight: 300;
    line-height: 1.2;
    letter-spacing: -0.3px;
}

/* Default: hide generic dividers (overridden in footer) */
.contact-divider {
    display: none;
}

/* Footer contact links: remove underline */
.footer-section .contact-email {
    text-decoration: none;
}
.footer-section .contact-email:hover {
    text-decoration: none;
}

/* Footer dividers: vertical rules between addresses on desktop/tablet */
.footer-section .contact-divider {
    display: block;
    width: 1px;
    height: 40px;
    background: #e1e1e1;
    flex-shrink: 0;
}

/* Switch to horizontal rules on mobile */
@media (max-width: 768px) {
    .footer-section .contact-divider {
        width: 60px;
        height: 1px;
    }
}

.copyright {
    width: 100%;
    max-width: 600px;
    color: #000;
    text-align: center;
    font-family: var(--font-display);
    font-size: clamp(14px, 1.5vw, 16px);
    font-style: normal;
    font-weight: 300;
    line-height: 1.4;
    letter-spacing: 0.5px;
}

/* =================================
   RESPONSIVE DESIGN
   ================================= */

/* Tablet and smaller desktop */
@media (max-width: 1024px) {
    /* Keep hero split layout until mobile; only adjust non-hero sections */
    .new-intro-info {
        flex-direction: column;
        gap: 40px;
        padding: 60px 40px;
        align-items: center; /* center stacked columns horizontally */
    }

    /* Hide the center divider when stacked */
    .new-intro-divider {
        display: none;
    }

    .new-intro-left-column {
        border-right: none;
        border-bottom: 1px solid #000;
        padding-right: 0;
        padding-bottom: 20px;
    }

    .new-intro-right-column {
        padding-left: 0;
        padding-top: 20px;
    }

    .speakers-grid {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 40px;
        column-gap: 0;
    }

    .contact-info {
        flex-direction: column;
        gap: 30px;
    }

    .contact-divider {
        width: 60px;
    }

    .pricing-cards {
        flex-direction: column;
        align-items: center;
    }

    .regular-ticket {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.3);
        padding-right: 20px;
        padding-bottom: 40px;
        margin-right: 0;
        margin-bottom: 20px;
    }
}

/* Break speakers to 1 column ~100px earlier */
@media (max-width: 1124px) {
    .speakers-grid {
        grid-template-columns: 1fr;
        row-gap: 40px;
        column-gap: 0;
    }
}

/* Tablet */
@media (max-width: 1024px) {
    .newsletter-signup {
        padding: 60px 0 0 0;
    }

    .newsletter-container {
        gap: 32px;
    }

    .newsletter-email-input {
        font-size: clamp(32px, 5vw, 46px);
        line-height: clamp(36px, 6vw, 51px);
    }

    .newsletter-underline {
        max-width: 600px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .new-intro-sections {
        gap: 80px;
    }

    .new-intro-content-block {
        padding: 40px 20px;
        gap: 40px;
    }

    .new-intro-icon {
        width: 120px;
        height: 120px;
    }

    .new-intro-info {
        padding: 40px 20px;
    }

    .new-intro-headline {
        padding: 0 20px;
    }

    .speakers-section {
        padding: 80px 20px;
        gap: 60px;
    }

    .speaker-card {
        flex-direction: column;
        gap: 20px;
        text-align: center;
        align-items: center; /* ensure <picture> wrapper and content are centered */
    }

    .speaker-image {
        width: 250px;
        height: 250px;
        align-self: center;
    }

    .speaker-name,
    .speaker-role {
        width: 100%;
    }

    .speaker-info {
        align-items: center;
    }
    .speaker-name,
    .speaker-role,
    .speaker-bio {
        text-align: center;
    }

    .pricing-cards {
        flex-direction: column;
        align-items: center;
    }

    .pricing-card {
        flex: 0 0 100%;
    }

    .regular-ticket {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.3);
        padding-right: 20px;
        padding-bottom: 40px;
        margin-right: 0;
        margin-bottom: 20px;
    }

    .pricing-section {
        padding: 60px 15px 80px 15px;
    }

    .footer-section {
        padding: 60px 15px;
    }

    .newsletter-signup {
        padding: 60px 20px 0 20px;
    }

    .newsletter-container {
        gap: 60px;
    }

    .newsletter-headline {
        font-size: clamp(24px, 5vw, 32px);
        letter-spacing: 2px;
    }

    .newsletter-subhead {
        font-size: clamp(16px, 3vw, 20px);
    }

    .newsletter-email-input {
        font-size: clamp(24px, 6vw, 46px);
        line-height: 1.25; /* avoid clipping descenders */
        padding: 8px 0 10px;
    }

    .newsletter-submit-button {
        width: 280px;
        height: 50px; /* match register button */
    }

    .newsletter-button-bg {
        left: 22px;
        width: 236px;
        height: 48px;
    }

    .newsletter-button-label {
        font-size: inherit; /* keep 20px like register */
    }
    .newsletter-container {
        padding: 0 20px;
    }
    .newsletter-email-input {
        font-size: clamp(26px, 7vw, 32px);
    }
    .newsletter-underline {
        max-width: 480px;
    }
}

/* Small mobile */
@media (max-width: 480px) {
    .new-intro-content-block {
        padding: 30px 15px;
        gap: 30px;
    }

    .new-intro-info {
        padding: 30px 15px;
    }

    .new-intro-headline {
        padding: 0 15px;
    }

    .speaker-image {
        width: 250px;
        height: 250px;
    }

    /* Desktop/tablet alignment for speakers: grid with explicit pairing */
    @media (min-width: 1025px) {
        .speakers-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            column-gap: 60px;
            row-gap: 80px;
            align-items: start;
        }
        .speakers-column-left,
        .speakers-column-right {
            display: contents;
        }
        /* Order: 1=Kelli (L1), 3=Emmett (R1), 2=Randy (L2), 4=Dan (R2) */
        .speakers-grid .speaker-card:nth-of-type(1) {
            grid-column: 1;
            grid-row: 1;
        }
        .speakers-grid .speaker-card:nth-of-type(3) {
            grid-column: 2;
            grid-row: 1;
        }
        .speakers-grid .speaker-card:nth-of-type(2) {
            grid-column: 1;
            grid-row: 2;
        }
        .speakers-grid .speaker-card:nth-of-type(4) {
            grid-column: 2;
            grid-row: 2;
        }
    }

    .pricing-card {
        flex: 0 0 100%;
        padding: 20px 15px;
    }

    .register-button {
        width: 240px;
        height: 45px;
    }

    .newsletter-signup {
        padding: 40px 15px 0 15px;
    }

    .newsletter-container {
        gap: 40px;
    }

    .newsletter-headline {
        font-size: clamp(20px, 5vw, 24px);
        letter-spacing: 1.5px;
    }

    .newsletter-subhead {
        font-size: clamp(14px, 3vw, 16px);
    }

    .newsletter-email-input {
        font-size: clamp(20px, 5vw, 24px);
        line-height: 1.25;
        padding: 8px 0 10px;
    }

    .newsletter-submit-button {
        width: 240px; /* match register button */
        height: 45px;
    }

    .newsletter-button-bg {
        left: 12px;
        width: 236px;
        height: 45px;
    }

    .newsletter-button-label {
        font-size: inherit; /* keep 20px like register */
    }
}
/* Center divider line between pricing cards on desktop/tablet */
@media (min-width: 769px) {
    .pricing-cards {
        position: relative;
    }
    .pricing-cards::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        width: 1px;
        background: rgba(255, 255, 255, 0.3);
        transform: translateX(-0.5px);
        pointer-events: none;
    }
    /* Remove old border-based divider on wide screens */
    .regular-ticket {
        border-right: none;
        margin-right: 0;
        padding-right: 0;
    }
}
/* Ensure larger speaker images kick in earlier (<=1024px) */
@media (max-width: 1024px) {
    .speaker-image {
        width: 250px;
        height: 250px;
        display: block;
    }
}
