/* ============================================================
   GOTS 2026 — Design System  (Phase 1 complete rebuild)
   Authoritative stylesheet. Loaded LAST so it owns the cascade.
   No inline CSS anywhere — tokens + modular components only.
   ============================================================ */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;450;500;600;700&display=swap');

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root {
    /* Brand palette — deep "control-room" navy + signal cyan */
    --c-ink-900: #0b1629;
    --c-ink-800: #0f1e36;
    --c-ink-700: #142640;
    --c-ink-600: #1a3050;
    --c-line:    rgba(255, 255, 255, .09);
    --c-line-2:  rgba(255, 255, 255, .16);

    --c-brand:   #28b4dc;
    --c-brand-2: #7dd5ec;
    --c-brand-2-rgb: 125, 213, 236;
    --c-cyan:    #36d1dc;   /* OT/cyber signal accent */
    --c-cyan-2:  #5b8def;

    --c-text:    #eef3fb;
    --c-muted:   #93a4bf;
    --c-muted-2: #64748b;

    --grad-brand:   linear-gradient(135deg, #28b4dc 0%, #1a8fb5 100%);
    --grad-cyan:    linear-gradient(135deg, #36d1dc 0%, #5b8def 100%);
    --grad-surface: linear-gradient(180deg, #0a1424 0%, #050a16 100%);
    --grad-hero:    radial-gradient(120% 120% at 80% -10%, rgba(54,209,220,.18) 0%, transparent 45%),
                    radial-gradient(120% 120% at 0% 0%, rgba(var(--c-brand-2-rgb),.16) 0%, transparent 40%);

    --glass:     rgba(13, 23, 41, .72);
    --glass-2:   rgba(20, 33, 56, .55);

    /* Type scale (fluid) */
    --fs-display: clamp(2.6rem, 5.2vw, 5rem);
    --fs-h1:      clamp(2.1rem, 4vw, 3.4rem);
    --fs-h2:      clamp(1.7rem, 3vw, 2.6rem);
    --fs-h3:      clamp(1.25rem, 1.8vw, 1.6rem);
    --fs-lead:    clamp(1.05rem, 1.3vw, 1.2rem);
    --fs-body:    1rem;
    --fs-sm:      .875rem;
    --fs-xs:      .75rem;

    --ff-display: "Space Grotesk", "Inter", system-ui, sans-serif;
    --ff-body:    "Inter", system-ui, -apple-system, sans-serif;

    /* Spacing scale (8pt) */
    --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
    --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px;
    --sp-9: 96px; --sp-10: 128px;

    --maxw: 1240px;

    --r-sm: 10px; --r-md: 16px; --r-lg: 24px; --r-xl: 32px; --r-pill: 999px;

    --sh-sm: 0 1px 2px rgba(0,0,0,.4);
    --sh-md: 0 10px 30px -10px rgba(0,0,0,.55);
    --sh-lg: 0 30px 80px -20px rgba(0,0,0,.7);
    --sh-glow: 0 0 0 1px rgba(var(--c-brand-2-rgb),.4), 0 16px 50px -12px rgba(var(--c-brand-2-rgb),.4);

    --ease: cubic-bezier(.22,.61,.36,1);
    --t-fast: .18s var(--ease);
    --t: .32s var(--ease);
    --nav-h: 100px;
}

/* ============================================================
   2. RESET / BASE  (override legacy body + Bootstrap)
   ============================================================ */
.gots * { font-family: var(--ff-body); }

body {
    background: var(--c-ink-900) !important;
    color: var(--c-text) !important;
    font-family: var(--ff-body) !important;
    font-size: var(--fs-body);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

.gots h1, .gots h2, .gots h3, .gots h4,
h1 span, h2 span, h3 span {
    font-family: var(--ff-display);
    line-height: 1.08;
    letter-spacing: -.02em;
    font-weight: 600;
}

.gots img { max-width: 100%; display: block; }
::selection { background: var(--c-brand); color: #fff; }

html { scroll-behavior: smooth; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 11px; }
::-webkit-scrollbar-track { background: var(--c-ink-900); }
::-webkit-scrollbar-thumb { background: var(--c-ink-600); border-radius: 99px; border: 3px solid var(--c-ink-900); }
::-webkit-scrollbar-thumb:hover { background: var(--c-brand); }

/* ============================================================
   3. LAYOUT PRIMITIVES
   ============================================================ */
.gots-shell { background: var(--c-ink-900); position: relative; }

.section {
    padding: clamp(56px, 8vw, 120px) 0;
    position: relative;
}
.section--tight { padding: clamp(40px, 5vw, 72px) 0; }

.wrap {
    width: 100%;
    max-width: var(--maxw);
    margin-inline: auto;
    padding-inline: clamp(20px, 5vw, 40px);
}

.grid { display: grid; gap: var(--sp-6); }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--split { grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(32px, 5vw, 72px); }

@media (max-width: 980px) {
    .grid--split, .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) and (min-width: 981px) {
    .grid--4 { grid-template-columns: repeat(2, 1fr); }
    .grid--3 { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   4. TYPOGRAPHY HELPERS
   ============================================================ */
.eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: var(--ff-body);
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--c-brand-2);
    padding: 7px 14px;
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-pill);
    background: var(--glass-2);
    backdrop-filter: blur(8px);
}
.dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--c-brand); box-shadow: 0 0 12px var(--c-brand); flex: 0 0 auto; }

.section-head { max-width: 720px; margin-bottom: var(--sp-8); }
.section-head.center { margin-inline: auto; text-align: center; }
.section-head h2 { font-size: var(--fs-h2); margin: var(--sp-4) 0 var(--sp-3) !important; }
.section-head p { color: var(--c-muted); font-size: var(--fs-lead); }

.text-gradient { background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }
.text-cyan { background: var(--grad-cyan); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ============================================================
   5. BUTTONS  (preserve .global_btn hook)
   ============================================================ */
.global_btn,
.btn-2026 {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    font-family: var(--ff-body) !important;
    font-weight: 600 !important;
    font-size: .95rem !important;
    letter-spacing: .01em;
    padding: 14px 28px !important;
    border-radius: var(--r-pill) !important;
    border: none !important;
    cursor: pointer;
    color: #fff !important;
    background: var(--grad-brand) !important;
    box-shadow: 0 10px 30px -8px rgba(var(--c-brand-2-rgb),.5) !important;
    transition: transform var(--t-fast), box-shadow var(--t-fast), filter var(--t-fast) !important;
    text-decoration: none !important;
    line-height: 1.1;
}
.global_btn:hover, .btn-2026:hover {
    transform: translateY(-2px);
    filter: brightness(1.05);
    box-shadow: 0 16px 40px -8px rgba(var(--c-brand-2-rgb),.65) !important;
    color: #fff !important;
}
.global_btn:active, .btn-2026:active { transform: translateY(0); }

.btn-ghost {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--ff-body); font-weight: 600; font-size: .95rem;
    padding: 13px 26px; border-radius: var(--r-pill);
    color: var(--c-text); text-decoration: none;
    background: var(--glass-2);
    border: 1px solid var(--c-line-2);
    backdrop-filter: blur(10px);
    transition: var(--t-fast);
}
.btn-ghost:hover { background: rgba(255,255,255,.07); border-color: var(--c-brand); color: var(--c-text); transform: translateY(-2px); }

/* ============================================================
   6. NAVBAR  (sticky glass)  — preserves nav structure hooks
   ============================================================ */
nav { position: sticky; top: 0; z-index: 1000; }

/* Hide legacy decorative blocks we no longer use */
.topNav, .event_date, .nav_right_block { display: none !important; }

.nav-bar {
    position: sticky; top: 0; z-index: 1000;
    background: var(--glass);
    backdrop-filter: blur(18px) saturate(140%);
    border-bottom: 1px solid var(--c-line);
    transition: var(--t);
}
/* neutralize legacy .myNav (same element carries both classes) */
.nav-bar.myNav {
    display: block !important;
    background: var(--glass) !important;
    padding: 0 !important;
    box-shadow: none;
    flex-wrap: nowrap;
    gap: 0;
}
.nav-bar.sticky,
.nav-bar.myNav.sticky { background: rgba(5,10,22,.92) !important; box-shadow: 0 12px 40px -18px rgba(0,0,0,.8); padding: 0 !important; }

.nav-inner {
    max-width: var(--maxw); margin-inline: auto;
    padding: 0 clamp(18px, 4vw, 36px);
    height: var(--nav-h);
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
}

.nav-brand { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.nav-brand img { height: 86px; width: auto; filter: drop-shadow(0 2px 12px rgba(40,180,220,.22)); }

/* announcement micro-bar */
.nav-ticker {
    background: linear-gradient(135deg, #1464a0 0%, #28b4dc 100%);
    color: #fff;
    text-align: center;
    font-size: var(--fs-sm); font-weight: 600; line-height: 1.4;
    padding: 8px 16px;
    display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap;
}
.nav-ticker b { font-weight: 700; }
.nav-ticker sup { font-size: .65em; }
.nav-ticker .sep { opacity: .55; }
.nav-ticker__divider { width: 1px; height: 26px; background: rgba(255,255,255,.35); flex-shrink: 0; }
.nav-ticker__badge {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    color: rgba(255,255,255,.9);
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 8px;
    padding: 5px 14px 5px 10px;
}
.nav-ticker__logo {
    height: 36px; width: auto; object-fit: contain;
    vertical-align: middle;
    background: #fff;
    border-radius: 5px;
    padding: 3px 10px;
    filter: none;
    opacity: 1;
}
@media (max-width: 600px) { .nav-ticker { font-size: .72rem; gap: 8px; } .nav-ticker .sep { display: none; } .nav-ticker__divider { display: none; } }

/* desktop menu */
.nav-menu { display: flex; align-items: center; gap: 1px; flex-wrap: nowrap; }
.nav-menu > li { position: relative; }
.nav-menu > li > a {
    display: inline-flex; align-items: center; gap: 4px;
    white-space: nowrap;
    color: var(--c-text); text-decoration: none;
    font-size: .8rem; font-weight: 500;
    padding: 9px 10px; border-radius: var(--r-sm);
    transition: var(--t-fast);
    text-transform: none; letter-spacing: .01em;
}
.nav-menu > li > a:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-menu > li > a i { font-size: 1rem; transition: var(--t-fast); margin-left: -2px; }
.nav-menu > li:hover > a i.bx-chevron-down { transform: rotate(180deg); color: var(--c-brand); }

/* dropdown */
.nav-menu .dropdown_menu__list {
    position: absolute; top: calc(100% + 10px); left: 0;
    min-width: 252px;
    background: rgba(10,20,36,.97);
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-md);
    padding: 8px;
    box-shadow: var(--sh-lg);
    backdrop-filter: blur(20px);
    opacity: 0; visibility: hidden; transform: translateY(8px);
    transition: var(--t-fast);
    z-index: 50;
}
.nav-menu .dropdown_menu:hover > .dropdown_menu__list { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-menu .dropdown_menu__list > a {
    display: block; color: #eef3fb !important; text-decoration: none;
    font-size: .85rem; font-weight: 500;
    padding: 10px 12px; border-radius: 8px;
    transition: var(--t-fast);
    text-transform: none; letter-spacing: 0; line-height: 1.35;
}
.nav-menu .dropdown_menu__list > a:hover { background: rgba(var(--c-brand-2-rgb),.18); color: var(--c-brand) !important; }

/* nested */
.nested_dropdown { position: relative; }
.nested_dropdown > a.has_submenu {
    display: flex; align-items: center; justify-content: space-between;
    color: #eef3fb !important; font-size: .85rem; font-weight: 500;
    padding: 10px 12px; border-radius: 8px; text-decoration: none;
    text-transform: none; letter-spacing: 0;
}
.nested_dropdown > a.has_submenu:hover { background: rgba(var(--c-brand-2-rgb),.18); color: var(--c-brand) !important; }
.nested_dropdown__list {
    position: absolute; top: -8px; left: calc(100% + 8px);
    min-width: 230px;
    background: rgba(10,20,36,.98);
    border: 1px solid var(--c-line-2); border-radius: var(--r-md);
    padding: 8px; box-shadow: var(--sh-lg);
    opacity: 0; visibility: hidden; transform: translateX(8px);
    transition: var(--t-fast); z-index: 60;
}
.nested_dropdown:hover > .nested_dropdown__list { opacity: 1; visibility: visible; transform: translateX(0); }
.nested_dropdown__list a {
    display: block; color: #eef3fb !important; font-size: .82rem; font-weight: 500;
    padding: 9px 12px; border-radius: 8px; text-decoration: none; text-transform: none;
}
.nested_dropdown__list a:hover { background: rgba(var(--c-brand-2-rgb),.18); color: var(--c-brand) !important; }

.nav-cta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
/* redundant with the REGISTER NOW menu item — hidden on desktop, present in mobile slide menu */
.nav-register { display: none; }

/* hamburger */
.menu_icon {
    display: none; cursor: pointer;
    width: 44px; height: 44px; border-radius: 12px;
    align-items: center; justify-content: center;
    background: var(--glass-2); border: 1px solid var(--c-line-2);
    color: var(--c-text); font-size: 1.5rem;
}

@media (max-width: 1180px) {
    .nav-menu { display: none; }
    .menu_icon { display: inline-flex; }
}

/* ============================================================
   7. MOBILE NAV  (preserve .mobile_nav.show / toggleMobileDropdown)
   ============================================================ */
.mobile_nav {
    position: fixed; inset: 0; z-index: 2000;
    background: var(--c-ink-900);
    transform: translateX(100%);
    transition: transform var(--t);
    overflow-y: auto;
    visibility: hidden;
}
.mobile_nav.show { transform: translateX(0); visibility: visible; }
.mobile_nav__content { padding: 20px clamp(18px,6vw,28px) 60px; }
.mobile_header { display: flex; align-items: center; justify-content: space-between; padding: 8px 0 22px; border-bottom: 1px solid var(--c-line); margin-bottom: 18px; }
.mobile_logo img { height: 44px; width: auto; border-radius: 8px; }
.cancel_icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--glass-2); border: 1px solid var(--c-line-2); color: var(--c-text); font-size: 1.6rem; cursor: pointer; }

.mobile_menu ul { display: flex; flex-direction: column; gap: 2px; }
.mobile_menu > ul > li > a,
.mobile_menu__dropdown > a {
    display: flex; align-items: center; justify-content: space-between;
    color: var(--c-text); text-decoration: none;
    font-size: 1.02rem; font-weight: 500;
    padding: 15px 6px;
    border-bottom: 1px solid var(--c-line);
}
.mobile_menu__dropdown > a i { color: var(--c-brand); transition: var(--t-fast); }
.mobile_menu__dropdown-list { padding-left: 14px; }
.mobile_menu__dropdown-list a { font-size: .92rem; color: var(--c-text); }
.mobile_menu__dropdown-list .mobile_menu__dropdown > a { font-size: .95rem; color: var(--c-text); }

/* ============================================================
   8. HERO / BANNER  (Slick: .banner_slider / .banner_box)
   ============================================================ */
.banner_wrapper { position: relative; background: var(--c-ink-900); }
.banner_wrapper::before {
    content: ""; position: absolute; inset: 0; z-index: 0;
    background: var(--grad-hero);
    pointer-events: none;
}
.banner_slider { position: relative; z-index: 1; }
.banner_box { position: relative; }
.banner_box .banner_img { position: relative; }
.banner_box .banner_img img {
    width: 100%; height: clamp(460px, 76vh, 760px); object-fit: cover;
    opacity: .3;
    filter: saturate(1.05);
}
/* symmetric scrim so any baked-in image text stays subdued and content is centered/readable */
.banner_box .banner_img::after {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(80% 80% at 50% 50%, rgba(5,10,22,.45) 0%, rgba(5,10,22,.82) 100%),
        linear-gradient(0deg, var(--c-ink-900) 2%, transparent 55%);
}
.banner_content {
    position: absolute !important; z-index: 3;
    top: 50% !important; left: 50% !important; right: auto !important;
    transform: translate(-50%, -50%) !important;
    width: 100%; max-width: 980px;
    padding-inline: clamp(20px, 5vw, 40px);
    text-align: center !important;
    display: flex; flex-direction: column; align-items: center;
}
.banner_content .eyebrow { margin: 0 auto 22px; }
.banner_content h1 {
    font-size: var(--fs-display);
    max-width: 18ch; margin: 0 auto 22px !important;
    font-weight: 700; text-shadow: 0 4px 40px rgba(0,0,0,.5);
}
.banner_content p {
    color: #c8d4e6; font-size: var(--fs-lead);
    max-width: 60ch; margin: 0 auto 32px !important;
    text-shadow: 0 2px 24px rgba(0,0,0,.5);
}
.banner_content .myBtn { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 0 !important; }

/* slick arrows / dots */
.banner-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
    width: 50px; height: 50px; border-radius: 50%;
    background: var(--glass); border: 1px solid var(--c-line-2);
    color: #fff; font-size: 1.6rem; cursor: pointer; backdrop-filter: blur(10px);
    display: flex !important; align-items: center; justify-content: center;
    transition: var(--t-fast);
}
.banner-arrow:hover { background: var(--c-brand); color: #fff; }
.banner-prev { left: clamp(14px,3vw,32px); }
.banner-next { right: clamp(14px,3vw,32px); }
.banner_slider .slick-dots { bottom: 26px; z-index: 6; }
.banner_slider .slick-dots li button:before { color: #fff; opacity: .4; font-size: 9px; }
.banner_slider .slick-dots li.slick-active button:before { color: var(--c-brand); opacity: 1; }

@media (max-width: 768px) {
    .banner-arrow { display: none !important; }
    .banner_box .banner_img img { opacity: .3; }
}

/* previous participants logo slider */
.participants-strip {
    position: relative; z-index: 4;
    margin-top: -1px;
    background: var(--c-ink-800);
    border-top: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
    padding: 22px 0 18px;
}
.participants-strip__head {
    text-align: center;
    margin-bottom: 14px;
}
.participants-strip__head span {
    font-size: var(--fs-xs); font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--c-muted);
}
.participants-slider {
    overflow: hidden;
    position: relative;
}
.participants-slider::before,
.participants-slider::after {
    content: "";
    position: absolute; top: 0; bottom: 0; width: 120px; z-index: 2; pointer-events: none;
}
.participants-slider::before { left: 0;  background: linear-gradient(to right,  var(--c-ink-800) 0%, transparent 100%); }
.participants-slider::after  { right: 0; background: linear-gradient(to left, var(--c-ink-800) 0%, transparent 100%); }
.participants-track {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 20px;
    width: max-content;
    animation: logoScroll 42s linear infinite;
}
.participants-track:hover { animation-play-state: paused; }

/* Each logo sits in a fixed-size white pill card so JPEGs
   with white/light backgrounds are always fully visible */
.participants-track .logo-card {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 150px;
    height: 64px;
    background: #ffffff;
    border-radius: 8px;
    padding: 10px 14px;
    transition: box-shadow .25s ease, transform .25s ease;
}
.participants-track .logo-card:hover {
    box-shadow: 0 4px 18px rgba(0,0,0,.35);
    transform: translateY(-2px);
}
.participants-track .logo-card img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    /* no filter — always full original colour */
}

@keyframes logoScroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@media (max-width: 600px) {
    .participants-track { gap: 12px; animation-duration: 28s; }
    .participants-track .logo-card { width: 110px; height: 48px; padding: 8px 10px; }
    .participants-slider::before,
    .participants-slider::after { width: 60px; }
}

/* ============================================================
   9. SURFACE / CARDS
   ============================================================ */
.surface {
    background: linear-gradient(180deg, rgba(22,38,63,.6) 0%, rgba(10,20,36,.6) 100%);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: clamp(24px, 3vw, 40px);
    position: relative;
    overflow: hidden;
}

.feature-card {
    background: linear-gradient(180deg, rgba(22,38,63,.55), rgba(10,20,36,.35));
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 30px;
    transition: var(--t);
    position: relative; overflow: hidden;
}
.feature-card::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: var(--grad-brand); transform: scaleX(0); transform-origin: left; transition: var(--t);
}
.feature-card:hover { transform: translateY(-6px); border-color: var(--c-line-2); box-shadow: var(--sh-md); }
.feature-card:hover::before { transform: scaleX(1); }
.feature-card .ic {
    width: 54px; height: 54px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem; color: var(--c-brand);
    background: rgba(var(--c-brand-2-rgb),.12); border: 1px solid rgba(var(--c-brand-2-rgb),.25);
    margin-bottom: 18px;
}
.feature-card h3 { font-size: var(--fs-h3); margin-bottom: 10px !important; color: #fff; }
.feature-card p { color: var(--c-muted); font-size: .95rem; }

/* media split (about) */
.media-frame {
    position: relative; border-radius: var(--r-lg); overflow: hidden;
    border: 1px solid var(--c-line-2); box-shadow: var(--sh-lg);
}
.media-frame img { width: 100%; height: 100%; object-fit: cover; }
.media-frame::after { content:""; position:absolute; inset:0; box-shadow: inset 0 0 120px rgba(5,10,22,.6); }

/* ============================================================
   10. SPEAKER CARDS  (Slick .testimonial_slider + legacy .speaker-card)
   ============================================================ */
.testimonial_slider { margin: 0 -10px; }
.testimonial_slider .slick-track { display: flex !important; align-items: stretch; padding: 14px 0 44px; }
.testimonial_slider .slick-slide { height: auto; }
.testimonial_slider .slick-slide > div { height: 100%; }

.speaker-card { padding: 0 10px !important; }
.speaker-card .card {
    width: 100% !important;
    display: flex !important; flex-direction: column;
    background: linear-gradient(180deg, rgba(22,38,63,.85), rgba(10,20,36,.92)) !important;
    border: 1px solid var(--c-line) !important;
    border-radius: var(--r-lg) !important;
    overflow: hidden !important;
    transition: var(--t);
    position: relative;
    margin-bottom: 0 !important;
}
.speaker-card .card:hover { transform: translateY(-6px); border-color: var(--c-brand) !important; box-shadow: var(--sh-md); }
.speaker-card .card-img-top {
    width: 100% !important; height: 290px !important; object-fit: cover !important; object-position: top center;
    border-radius: 0 !important; box-shadow: none !important; flex: 0 0 auto;
}
/* name plate */
.speaker-card .card_name {
    position: static !important;
    background: transparent !important;
    font-family: var(--ff-display); font-weight: 600; font-size: 1.02rem; color: #fff;
    text-align: left !important;
    padding: 16px 18px 2px !important;
    line-height: 1.25;
}
/* role / org block — neutralize legacy absolute hover-overlay so it's always visible */
.speaker-card .product-detail {
    position: static !important;
    height: auto !important;
    width: auto !important;
    bottom: auto !important;
    overflow: visible !important;
    background: transparent !important;
    text-align: left !important;
    display: block !important;
    padding: 0 18px 20px !important;
}
.speaker-card .card:hover .product-detail { height: auto !important; display: block !important; }
.speaker-card .product-detail > div { display: block; }
.speaker-card .product-detail p {
    color: var(--c-brand-2); font-size: .78rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .06em; margin: 0 0 8px !important; line-height: 1.3;
}
.speaker-card .product-detail .card-title,
.speaker-card .product-detail h5 { display: none !important; }
.speaker-card .product-detail blockquote { margin: 0 !important; border: none !important; padding: 0 !important; }
.speaker-card .product-detail blockquote p { color: var(--c-muted); font-size: .88rem; font-weight: 400; text-transform: none; letter-spacing: 0; margin: 2px 0 !important; }
.speaker-card .product-detail blockquote p a { color: var(--c-muted); text-decoration: none !important; }
.speaker-card .product-detail blockquote p a:hover { color: var(--c-brand); }

.sliders .slick-dots li button:before { color: var(--c-muted); }
.sliders .slick-dots li.slick-active button:before { color: var(--c-brand); }

/* ---- Premium speaker card (.spk) ---- */
.speaker-card { height: auto; padding: 0 10px !important; }

/* equal-height slick rows */
.spk-home-slider .slick-track  { display: flex !important; align-items: stretch; }
.spk-home-slider .slick-slide  { display: flex !important; flex-direction: column; height: auto; }
.spk-home-slider .slick-slide > div { display: flex; flex-direction: column; flex: 1 1 auto; }
.spk-home-slider .spk-slide    { display: flex !important; flex-direction: column; flex: 1 1 auto; }
.spk-home-slider .spk-slide .spk { height: 100%; }

.spk {
    position: relative; height: 100%;
    display: flex; flex-direction: column;
    background: linear-gradient(180deg, rgba(22,38,63,.85) 0%, rgba(8,15,28,.96) 100%);
    border: 1px solid var(--c-line);
    border-radius: 20px;
    overflow: hidden;
    transition: transform .4s var(--ease), border-color .4s, box-shadow .4s;
}
.spk::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; z-index: 4;
    background: var(--grad-brand); transform: scaleX(0); transform-origin: left;
    transition: transform .45s var(--ease);
}
.spk:hover { transform: translateY(-6px); border-color: rgba(var(--c-brand-2-rgb),.5);
    box-shadow: 0 24px 56px -20px rgba(0,0,0,.8), 0 0 0 1px rgba(var(--c-brand-2-rgb),.22); }
.spk:hover::before { transform: scaleX(1); }

/* fixed-ratio image so every card photo is the same height */
.spk__media {
    position: relative; display: block; overflow: hidden;
    aspect-ratio: 3 / 3.6;
    background: #0d1726;
}
.spk__media img {
    width: 100%; height: 100%;
    object-fit: cover; object-position: top center;
    transition: transform .6s var(--ease);
}
.spk:hover .spk__media img { transform: scale(1.06); }
.spk__media::after { content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, transparent 45%, rgba(8,15,28,.5) 78%, rgba(8,15,28,.95) 100%); }

.spk__tag {
    position: absolute; left: 14px; bottom: 14px; z-index: 3;
    font-size: .64rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
    color: #fff; background: var(--grad-brand);
    padding: 5px 11px; border-radius: var(--r-pill); max-width: calc(100% - 28px);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.spk__li {
    position: absolute; top: 14px; right: 14px; z-index: 5;
    width: 38px; height: 38px; border-radius: 11px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(8,15,28,.7); border: 1px solid var(--c-line-2);
    color: #fff; font-size: 1.25rem; text-decoration: none !important;
    backdrop-filter: blur(8px);
    opacity: 1; transform: none; transition: background .25s, border-color .25s;
}
.spk__li:hover { background: #0a66c2; border-color: #0a66c2; color: #fff; }

/* body — fixed height so all cards are uniform */
.spk__body {
    flex: 1 1 auto;
    padding: 16px 18px 20px;
    display: flex; flex-direction: column;
}
.spk__name {
    font-family: var(--ff-display); font-size: 1rem; font-weight: 600;
    color: #fff; line-height: 1.3; margin-bottom: 8px !important;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.spk__role {
    color: var(--c-brand-2); font-size: .75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em; line-height: 1.4;
    margin-bottom: 4px !important;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.spk__org {
    color: var(--c-muted); font-size: .85rem; line-height: 1.4;
    margin-top: auto;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ============================================================
   11. COUNTER  (preserve .counter_box h3[data-target])
   ============================================================ */
.counter_wrapper {
    background: var(--c-ink-900);
    padding: clamp(48px, 6vw, 80px) 0;
}
.counter_wrapper .main_heading,
.counter_wrapper .white_heading { text-align: center; margin-bottom: var(--sp-7); }

.counter_wrapper__content {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
    align-items: stretch;   /* forces all cells to match the tallest in the row */
    grid-auto-rows: 1fr;    /* every row shares the same height */
}

/* each card — starts hidden, animates in via JS */
.counter_box {
    background: var(--c-ink-800);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 36px 20px 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
    cursor: default;
    /* equal height: fill the grid cell fully, content centered */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;            /* fill the grid cell — grid-auto-rows:1fr drives uniformity */
    min-height: 220px;       /* safety floor for very wide screens where text never wraps */
    box-sizing: border-box;
    /* slide-up hidden state */
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .55s var(--ease), transform .55s var(--ease),
                border-color .4s, box-shadow .4s;
}
/* revealed state (added by JS) */
.counter_box.cb-visible {
    opacity: 1;
    transform: translateY(0);
}

/* top accent line */
.counter_box::before {
    content: '';
    position: absolute;
    top: 0; left: 50%;
    width: 0; height: 2px;
    background: var(--grad-brand);
    border-radius: 0 0 2px 2px;
    transition: width .55s var(--ease), left .55s var(--ease);
}
.counter_box.cb-visible::before { width: 60%; left: 20%; }

/* glow state while counter is running */
.counter_box.cb-counting {
    border-color: rgba(40, 180, 220, .45);
    box-shadow: 0 0 28px -6px rgba(40, 180, 220, .25),
                inset 0 0 40px -20px rgba(40, 180, 220, .10);
}
.counter_box.cb-counting::before { width: 100%; left: 0; }

/* hover */
.counter_box:hover {
    border-color: rgba(40, 180, 220, .35);
    box-shadow: 0 8px 32px -10px rgba(40, 180, 220, .2);
    transform: translateY(-4px) !important;
}

/* icon circle */
.counter_box__icon {
    width: 52px; height: 52px;
    border-radius: 50%;
    background: rgba(40, 180, 220, .10);
    border: 1px solid rgba(40, 180, 220, .25);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 18px;
    transition: background .35s, border-color .35s, transform .35s;
}
.counter_box__icon i {
    font-size: 1.55rem;
    color: var(--c-brand);
    transition: transform .35s var(--ease);
}
.counter_box:hover .counter_box__icon {
    background: rgba(40, 180, 220, .18);
    border-color: rgba(40, 180, 220, .5);
    transform: scale(1.1);
}
.counter_box:hover .counter_box__icon i { transform: scale(1.12); }
.counter_box.cb-counting .counter_box__icon {
    background: rgba(40, 180, 220, .18);
    border-color: var(--c-brand);
}

/* number */
.counter_box h3 {
    font-family: var(--ff-display);
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: 8px !important;
    line-height: 1;
    transition: color .3s;
}
.counter_box.cb-counting h3 { color: #7dd5ec; }
.counter_box h3 span { color: var(--c-brand); }

/* label */
.counter_box p {
    color: var(--c-muted);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .11em;
    font-weight: 600;
    margin: 0 !important;
}

/* responsive */

@media (max-width: 1100px) {
    .counter_wrapper__content {
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 1fr;
    }
}

@media (max-width: 600px) {
    .counter_wrapper__content {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 1fr;
        gap: 14px;
    }
    .counter_box { min-height: 180px; padding: 28px 14px 22px; }
}

/* ============================================================
   12. SECTION HEADINGS (legacy .main_heading reuse)
   ============================================================ */
.main_heading h2 { font-family: var(--ff-display); font-size: var(--fs-h2); color: #fff; font-weight: 600; }
.main_heading h2 span { background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }
.main_heading p { color: var(--c-muted); margin-top: 12px !important; font-size: var(--fs-lead); }
.main_heading.center, .white_heading { text-align: center; }
.sliders .main_heading { text-align: center; margin-bottom: var(--sp-7); }

.global_wrapper { padding: clamp(56px, 8vw, 110px) 0; background: var(--c-ink-900); }

/* ============================================================
   13. BREADCRUMB / PAGE HERO  (legacy .breadcrumb_wrapper)
   — single source of truth; overrides about.css, pages.css, style.css
   ============================================================ */
.breadcrumb_wrapper,
.about-breadcrumb {
    position: relative !important;
    padding: clamp(36px, 5vw, 52px) 0 clamp(28px, 4vw, 44px) !important;
    background: linear-gradient(135deg, #061827 0%, #0a2540 60%, #0d3560 100%) !important;
    border-bottom: 1px solid var(--c-line);
    overflow: hidden;
    text-align: center !important;
}

/* dot grid texture */
.breadcrumb_wrapper::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.045) 1px, transparent 0);
    background-size: 32px 32px; opacity: .7;
}

/* subtle glow */
.breadcrumb_wrapper::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(ellipse 70% 120% at 50% 50%, rgba(40,180,220,.08) 0%, transparent 70%);
}

.breadcrumb_wrapper__content {
    position: relative; z-index: 2;
    display: flex; flex-direction: column;
    align-items: center; text-align: center !important;
}
.breadcrumb_wrapper__content .eyebrow {
    margin-bottom: 14px !important;
}
.breadcrumb_wrapper__content h2 {
    font-family: var(--ff-display) !important;
    font-size: clamp(1.6rem, 3.5vw, 2.5rem) !important;
    color: #fff !important; font-weight: 700 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    text-transform: none !important;
}
/* span inside h2 — gradient brand colour, same size as parent */
.breadcrumb_wrapper__content h2 span {
    font-size: inherit !important;
    background: var(--grad-brand) !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    color: transparent !important;
}

/* pages.css override: kills the rogue 25px span rule */
.breadcrumb_wrapper__content h2 span { font-size: inherit !important; }

@media (max-width: 768px) {
    .breadcrumb_wrapper,
    .about-breadcrumb { padding: 28px 0 24px !important; }
    .breadcrumb_wrapper__content h2 { font-size: clamp(1.3rem, 5vw, 1.8rem) !important; }
}

/* ============================================================
   14. FORMS  (preserve field names, .error, .global_btn, ids)
   ============================================================ */
.contact_wrapper { background: var(--c-ink-900); }
.contact_left b {
    display: inline-block; font-family: var(--ff-body); font-size: var(--fs-xs);
    letter-spacing: .18em; text-transform: uppercase; color: var(--c-brand-2);
    font-weight: 700; margin-bottom: 14px;
}
.contact_left h3 { font-family: var(--ff-display); font-size: var(--fs-h2); color: #fff; margin-bottom: 14px !important; }
.contact_left h3 span { background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }
.contact_left > p { color: var(--c-muted); font-size: var(--fs-lead); margin-bottom: 28px !important; max-width: 50ch; }

.contact_input { margin-top: 8px; }
.contact_input form .row { margin-bottom: 0; }

.contact_input input,
.contact_input textarea,
.contact_input select,
.form-select,
.brochure-modal__body input,
.brochure-modal__body select,
.brochure-modal__body textarea {
    width: 100%;
    background: var(--glass-2) !important;
    border: 1px solid var(--c-line-2) !important;
    border-radius: var(--r-sm) !important;
    color: var(--c-text) !important;
    font-family: var(--ff-body) !important;
    font-size: .95rem !important;
    padding: 14px 16px !important;
    margin: 8px 0 !important;
    transition: var(--t-fast);
    outline: none !important;
    box-shadow: none !important;
}
.contact_input input::placeholder,
.contact_input textarea::placeholder,
.brochure-modal__body input::placeholder,
.brochure-modal__body textarea::placeholder { color: var(--c-muted-2); }
.contact_input input:focus,
.contact_input textarea:focus,
.contact_input select:focus,
.form-select:focus,
.brochure-modal__body input:focus,
.brochure-modal__body textarea:focus,
.brochure-modal__body select:focus {
    border-color: var(--c-brand) !important;
    box-shadow: 0 0 0 3px rgba(var(--c-brand-2-rgb),.18) !important;
    background: rgba(20,33,56,.85) !important;
}
.contact_input select option, .form-select option { background: var(--c-ink-800); color: var(--c-text); }
.contact_input textarea { min-height: 130px; resize: vertical; }
.contact_input .global_btn { width: 100%; margin-top: 14px !important; }

.error, small.error { display: block; color: #ff7676 !important; font-size: .78rem; margin: 2px 2px 6px; min-height: 0; }

.contact_right .media-frame, .contact_img { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-line-2); box-shadow: var(--sh-lg); }
.contact_img img { width: 100%; height: 100%; object-fit: cover; min-height: 340px; }
.contact_right iframe { width: 100% !important; border-radius: var(--r-lg) var(--r-lg) 0 0; display: block; border: 1px solid var(--c-line-2) !important; }
.contact_right { padding-top: clamp(24px, 3vw, 40px); }

/* office info card */
.office_info {
    background: var(--surface, rgba(22,38,63,.5));
    background: linear-gradient(180deg, rgba(22,38,63,.6), rgba(10,20,36,.6));
    border: 1px solid var(--c-line); border-top: none;
    border-radius: 0 0 var(--r-lg) var(--r-lg);
    padding: 26px;
}
.office_info h3 { font-family: var(--ff-display); color: #fff; font-size: 1.2rem; margin-bottom: 6px !important; }
.office_info > p { color: var(--c-muted); margin-bottom: 16px !important; font-size: .92rem; }
.office_info__list a { display: flex; align-items: center; gap: 8px; color: var(--c-muted); text-decoration: none; padding: 6px 0; font-size: .9rem; transition: var(--t-fast); }
.office_info__list a:hover { color: var(--c-brand); }
.office_info__list a i { color: var(--c-brand); font-size: 1.05rem; }

.alert { border-radius: var(--r-sm) !important; border: 1px solid var(--c-line-2) !important; }
.alert-success { background: rgba(54,209,220,.12) !important; color: #8feaf2 !important; }
.alert-danger { background: rgba(255,118,118,.12) !important; color: #ffb0b0 !important; }

/* ============================================================
   15. BROCHURE MODAL (#exampleModal) + thank-you popup
   ============================================================ */
.brochure-modal {
    background: var(--c-ink-800) !important;
    border: 1px solid var(--c-line-2) !important;
    border-radius: var(--r-lg) !important;
    overflow: hidden;
    box-shadow: var(--sh-lg) !important;
}
.brochure-modal__header {
    background: var(--grad-brand) !important;
    border: none !important;
    padding: 20px 26px !important;
}
.brochure-modal__header .modal-title { font-family: var(--ff-display); font-weight: 600; color: #fff !important; }
.brochure-modal__body { padding: 26px !important; }
.brochure-modal__body .global_btn { width: 100%; }
.form_poppup .modal-content { background: transparent !important; border: none !important; }
.form_poppup .modal-bg { padding: 0 !important; }
.form_poppup .cancel_form { position: absolute; top: 12px; right: 12px; z-index: 5; }

/* ============================================================
   16. FOOTER  (legacy footer markup, restyled)
   ============================================================ */
footer {
    position: relative; overflow: hidden;
    background:
        radial-gradient(50% 70% at 12% 0%, rgba(var(--c-brand-2-rgb),.08) 0%, transparent 60%),
        var(--c-ink-900);
    border-top: 1px solid var(--c-line);
}
/* gradient top strip */
footer::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; z-index: 3;
    background: var(--grad-brand);
}
.footer_wrapper { position: relative; z-index: 2; padding: clamp(56px, 8vw, 92px) 0 0; }
.footer_img { display: none; }
.footer_wrapper > .container { position: relative; z-index: 2; }
.footer_logo img { height: 76px; width: auto; margin-bottom: 22px; }
.footer_tagline { color: var(--c-muted); font-size: .92rem; line-height: 1.65; max-width: 270px; margin: 0 0 22px !important; }
.footer_left { max-width: 320px; }
.social_icon { display: flex; gap: 10px; flex-wrap: wrap; }
.social_icon a {
    width: 42px; height: 42px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--glass-2); border: 1px solid var(--c-line-2);
    color: var(--c-muted); font-size: 1.3rem; line-height: 1;
    transition: var(--t-fast);
}
.social_icon a i { line-height: 1; }
.social_icon a:hover {
    background: var(--grad-brand); border-color: transparent; color: #fff;
    transform: translateY(-3px); box-shadow: 0 10px 22px -8px rgba(var(--c-brand-2-rgb),.55);
}

.footer_box h3 {
    font-family: var(--ff-body); font-size: var(--fs-xs); letter-spacing: .14em;
    text-transform: uppercase; color: var(--c-brand-2); font-weight: 700;
    margin-bottom: 20px !important; position: relative; padding-bottom: 12px;
}
.footer_box h3::after {
    content: ""; position: absolute; bottom: 0; left: 0;
    width: 38px; height: 3px; border-radius: 99px; background: var(--grad-brand);
}
.footer_links { display: flex; flex-direction: column; gap: 4px; }
.footer_links a { color: var(--c-muted); text-decoration: none; font-size: .92rem; padding: 5px 0; transition: var(--t-fast); display: flex; align-items: center; gap: 7px; }
.footer_links a:hover { color: var(--c-brand); }
.footer_links a i { color: var(--c-brand); }
.confex_footer__logo img, .previous_event_logo { max-height: 60px; width: auto; background: #fff; padding: 8px 12px; border-radius: 10px; }
.copyright { border-top: 1px solid var(--c-line); padding: 22px 0; text-align: center; }
.copyright p { color: var(--c-muted-2); font-size: .85rem; }

/* footer contact roles (replaces former inline styles) */
.footer-role { color: var(--c-brand); font-weight: 700; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em; margin: 10px 0 6px !important; }
.footer-divider { border: none; border-top: 1px solid var(--c-line); margin: 12px 0; }
.contact-divider { border: none; border-top: 1px solid var(--c-line); margin: 16px 0; }

/* ============================================================
   17. GENERIC CONTENT (legacy pages auto-lift)
   ============================================================ */
.mywrapper { background: var(--c-ink-900); }

/* top-align text column with image column */
.about_wrapper .grid--split { align-items: start; }

.about_wrapper .about_content h2,
.about_wrapper .about_content .about-h2 { font-family: var(--ff-display); color:#fff; font-size: var(--fs-h2); margin: 0 0 12px !important; }
.about_wrapper .about_content p { color: #c8d4e6; font-size: clamp(1.05rem, 1.6vw, 1.2rem); line-height: 1.85; margin-bottom: 1.2rem !important; }
.about_wrapper .about_img { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-line-2); box-shadow: var(--sh-lg); }
.about_wrapper .about_img img { width: 100%; height: 100%; object-fit: cover; }
.about_content b {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: var(--ff-body); font-size: var(--fs-xs); font-weight: 700;
    letter-spacing: .18em; text-transform: uppercase; color: var(--c-brand-2);
    padding: 7px 14px; border: 1px solid var(--c-line-2); border-radius: var(--r-pill);
    background: var(--glass-2); margin-bottom: 18px;
}

/* ---- About: organizer / venue panels — glass cards (CTA-card style) ---- */
.moto_wrapper { background: var(--c-ink-900); padding: clamp(56px,8vw,110px) 0; }

.organizer-panel {
    position: relative; overflow: hidden;
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-xl);
    background: linear-gradient(135deg, rgba(22,38,63,.9) 0%, rgba(10,20,36,.9) 100%);
    box-shadow: var(--sh-lg);
}
/* soft glow orbs (orange + cyan) like the CTA card */
.organizer-panel::before {
    content: ""; position: absolute; width: 320px; height: 320px; border-radius: 50%;
    background: var(--c-brand); filter: blur(100px); opacity: .18;
    top: -140px; right: -70px; pointer-events: none; z-index: 0;
}
.organizer-panel::after {
    content: ""; position: absolute; width: 260px; height: 260px; border-radius: 50%;
    background: var(--c-cyan); filter: blur(100px); opacity: .13;
    bottom: -150px; left: 8%; pointer-events: none; z-index: 0;
}
.organizer-panel > [class*="col-"] { position: relative; z-index: 2; }

.organizer-panel .panel-dark {
    padding: clamp(28px, 3.5vw, 52px);
    display: flex; flex-direction: column; justify-content: flex-start;
    background: transparent;
}
.organizer-panel .panel-dark p { color: #c8d4e6; font-size: 1.02rem; line-height: 1.8; }
.organizer-panel .panel-dark p + p { margin-top: 16px !important; }

/* logo on a floating white chip inside the glass card (instead of a full white slab) */
.moto_img--white {
    background: transparent !important;
    padding: clamp(26px, 3vw, 48px) !important;
    height: 100%;
}
.moto_img--white img {
    max-height: 130px;
    width: auto;
    margin: auto;
    object-fit: contain;
    display: block;
    /* dark card with gradient border glow — no white box */
    background: rgba(15, 30, 54, 0.85);
    border-radius: var(--r-lg);
    padding: 28px 36px;
    border: 1px solid rgba(40, 180, 220, 0.3);
    box-shadow:
        0 0 0 1px rgba(40, 180, 220, 0.12),
        0 0 32px -8px rgba(40, 180, 220, 0.18),
        0 20px 48px -16px rgba(0, 0, 0, 0.6);
    filter: brightness(1.05);
    transition: box-shadow .35s, border-color .35s;
}
.moto_img--white img:hover {
    border-color: rgba(40, 180, 220, 0.55);
    box-shadow:
        0 0 0 1px rgba(40, 180, 220, 0.25),
        0 0 48px -6px rgba(40, 180, 220, 0.28),
        0 24px 56px -16px rgba(0, 0, 0, 0.65);
}

.organizer-section-label { text-align: center; margin: clamp(40px,6vw,72px) 0 var(--sp-6); }
.organizer-section-label h3 {
    display: inline-block; font-family: var(--ff-display); color: #fff; font-size: var(--fs-h3);
    position: relative; padding-bottom: 12px;
}
.organizer-section-label h3::after { content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 56px; height: 3px; background: var(--grad-brand); border-radius: 99px; }

/* ---- Our Event card (RENEWSEC style) ---- */
.event-card {
    position: relative;
    background: var(--c-ink-700);
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
}
/* gradient top accent bar */
.event-card__bar {
    height: 4px;
    background: linear-gradient(90deg, #1464a0 0%, #28b4dc 55%, var(--c-cyan) 100%);
}
/* subtle background glow */
.event-card::before {
    content: ""; position: absolute; width: 400px; height: 400px; border-radius: 50%;
    background: var(--c-cyan); filter: blur(120px); opacity: .07;
    top: -160px; right: -80px; pointer-events: none;
}
.event-card::after {
    content: ""; position: absolute; width: 300px; height: 300px; border-radius: 50%;
    background: #1464a0; filter: blur(100px); opacity: .12;
    bottom: -120px; left: 5%; pointer-events: none;
}

/* header: logo + title block */
.event-card__header {
    position: relative; z-index: 2;
    display: flex; align-items: flex-start; gap: clamp(20px, 3vw, 40px);
    padding: clamp(28px, 3.5vw, 48px) clamp(28px, 3.5vw, 48px) 0;
    flex-wrap: wrap;
}
.event-card__logo-wrap {
    flex-shrink: 0;
    background: #fff;
    border-radius: var(--r-md);
    padding: 18px 24px;
    box-shadow: 0 12px 40px -12px rgba(0,0,0,.6);
    display: flex; align-items: center; justify-content: center;
}
.event-card__logo-wrap img {
    height: 72px; width: auto; object-fit: contain; display: block;
}
.event-card__title-block {
    flex: 1; min-width: 220px; padding-top: 4px;
}
.event-card__badge {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--c-cyan); background: rgba(54,209,220,.1);
    border: 1px solid rgba(54,209,220,.25);
    padding: 5px 12px; border-radius: var(--r-pill);
    margin-bottom: 12px;
}
.event-card__name {
    font-family: var(--ff-display); font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 700; color: #fff; line-height: 1.1;
    margin: 0 0 16px !important;
}
.event-card__name span {
    background: linear-gradient(135deg, #28b4dc 0%, var(--c-cyan) 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.event-card__chips {
    display: flex; flex-wrap: wrap; gap: 10px;
}
.event-chip {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .78rem; font-weight: 500;
    color: var(--c-muted); background: var(--glass-2);
    border: 1px solid var(--c-line-2);
    padding: 6px 14px; border-radius: var(--r-pill);
}
.event-chip i { font-size: .9rem; color: var(--c-brand-2); }
.event-chip--highlight {
    color: var(--c-text); border-color: rgba(var(--c-brand-2-rgb), .3);
    background: rgba(var(--c-brand-2-rgb), .08);
}
.event-chip--highlight i { color: var(--c-brand-2); }

/* divider */
.event-card__divider {
    position: relative; z-index: 2;
    margin: clamp(22px, 2.5vw, 32px) clamp(28px, 3.5vw, 48px);
    height: 1px; background: var(--c-line-2);
}

/* body */
.event-card__body {
    position: relative; z-index: 2;
    padding: 0 clamp(28px, 3.5vw, 48px) clamp(28px, 3.5vw, 48px);
}
.event-card__body p {
    color: #c8d4e6; font-size: 1rem; line-height: 1.8; margin: 0 !important;
}
.event-card__body p + p { margin-top: 14px !important; }

@media (max-width: 600px) {
    .event-card__logo-wrap img { height: 52px; }
    .event-card__logo-wrap { padding: 12px 16px; }
}

/* venue — unified two-column layout */
.venue-unified {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: start;
}

/* left: text */
.venue-unified__text p {
    color: #c8d4e6;
    font-size: 1.02rem;
    line-height: 1.85;
    margin-bottom: 1rem !important;
}

/* right: image + map stacked */
.venue-unified__media {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 100px;            /* stays in view while user reads long text */
}

.venue-unified__img img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: var(--r-lg);
    border: 1px solid var(--c-line-2);
    box-shadow: var(--sh-lg);
    display: block;
}

.venue-unified__map {
    border-radius: var(--r-lg);
    overflow: hidden;
    border: 1px solid var(--c-line-2);
    box-shadow: var(--sh-md);
}

.venue-unified__map iframe {
    width: 100%;
    height: 240px;
    border: 0;
    display: block;
}

@media (max-width: 900px) {
    .venue-unified {
        grid-template-columns: 1fr;
    }
    .venue-unified__media { position: static; }
    .venue-unified__img img { height: 220px; }
    .venue-unified__map iframe { height: 200px; }
}

/* legacy classes — kept so other pages aren't broken */
.venue-media { display: grid; gap: 16px; height: 100%; align-content: start; }
.venue-map { border-radius: var(--r-md); overflow: hidden; border: 1px solid var(--c-line-2); }
.venue-iframe { width: 100%; height: 230px; border: 0; display: block; }

/* ============================================================
   17b. CTA BAND
   ============================================================ */
.cta-band { background: var(--c-ink-900); }
.cta-card {
    position: relative; overflow: hidden;
    display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap;
    background: linear-gradient(135deg, rgba(22,38,63,.9), rgba(10,20,36,.9));
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-xl);
    padding: clamp(32px, 5vw, 64px);
}
.cta-card__text { position: relative; z-index: 2; max-width: 60ch; }
.cta-card__text h2 { font-size: var(--fs-h2); color: #fff; margin: 16px 0 12px !important; }
.cta-card__text p { color: var(--c-muted); font-size: var(--fs-lead); }
.cta-card__actions { position: relative; z-index: 2; display: flex; gap: 14px; flex-wrap: wrap; }
.cta-orb-1 { width: 280px; height: 280px; top: -120px; right: -60px; }
.cta-orb-2 { width: 220px; height: 220px; bottom: -120px; left: 20%; opacity: .35; }

/* ============================================================
   17c. CONFERENCE PAGE
   ============================================================ */
.global_wrappers { background: var(--c-ink-900); padding: clamp(48px,7vw,96px) 0; }
.attend_wrapper, .keytopics_wrapper { background: var(--c-ink-900); }
.conf-text p, .conf-attend-list { color: #c8d4e6; font-size: 1.02rem; line-height: 1.8; }
.conf_img, .conference_wrapper__img, .keytopics_img {
    border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-line-2); box-shadow: var(--sh-lg);
}
.conf_img img, .conference_wrapper__img img, .keytopics_img img { width: 100%; height: 100%; object-fit: cover; }

/* bulleted lists rendered from DB -> styled ticks, no native bullet */
.conf-attend-list ul, .keytopics_wrapper__content ul {
    display: grid; gap: 12px;
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}
.conf-attend-list li, .keytopics_wrapper__content li {
    position: relative; padding-left: 34px; color: #c8d4e6; line-height: 1.55;
    list-style: none !important;
    list-style-type: none !important;
}
.conf-attend-list li::marker, .keytopics_wrapper__content li::marker { display: none; content: ""; }
.conf-attend-list li::before, .keytopics_wrapper__content li::before {
    content: "\ea41"; font-family: "boxicons" !important; font-size: 1rem;
    position: absolute; left: 0; top: 2px; color: var(--c-brand);
    width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(var(--c-brand-2-rgb),.12); border-radius: 7px;
}
.keytopics_wrapper__content {
    background: linear-gradient(180deg, rgba(22,38,63,.55), rgba(10,20,36,.4));
    border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: 26px; height: 100%;
}
.keytopics_wrapper__content p { color: #c8d4e6; }
.conf-theme-badge {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: var(--fs-xs); font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: var(--c-brand-2); padding: 7px 14px; border: 1px solid var(--c-line-2);
    border-radius: var(--r-pill); background: var(--glass-2); margin-bottom: 16px;
}
.conf-topics-label {
    color: #c8d4e6;
    font-size: clamp(1.1rem, 1.8vw, 1.35rem) !important;
    font-weight: 600;
    letter-spacing: .01em;
    margin-top: 18px !important;
}
.conf-topics-label span { color: var(--c-brand-2); }
.keytopics_wrapper .main_heading { text-align: center; margin-bottom: var(--sp-7); }
.keytopics_wrapper .row { row-gap: 24px; align-items: stretch; }
.attend_wrapper .main_heading, .global_wrappers .main_heading { margin-bottom: var(--sp-6); }

/* ============================================================
   17d. WHY OT CYBERSECURITY — feature grid
   ============================================================ */
.why_wrapper, .why_wrapper.blue_bg { background: var(--c-ink-900); padding: clamp(56px,8vw,110px) 0; }
.why_wrapper .main_heading { margin-bottom: var(--sp-8); }
.why_wrapper .why_box {
    height: 100%;
    background: linear-gradient(180deg, rgba(22,38,63,.55), rgba(10,20,36,.35));
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 32px;
    transition: var(--t);
    position: relative; overflow: hidden;
}
.why_wrapper .why_box::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: var(--grad-brand); transform: scaleX(0); transform-origin: left; transition: var(--t);
}
.why_wrapper .why_box:hover { transform: translateY(-6px); border-color: var(--c-line-2); box-shadow: var(--sh-md); }
.why_wrapper .why_box:hover::before { transform: scaleX(1); }
.why_box__icon {
    width: 64px; height: 64px; border-radius: 16px; margin-bottom: 20px;
    display: flex; align-items: center; justify-content: center;
    background: #fff; box-shadow: 0 10px 30px -10px rgba(0,0,0,.6);
}
.why_box__icon img { width: 36px; height: 36px; object-fit: contain; }
.why_box h3 { font-family: var(--ff-display); color: #fff; font-size: 1.18rem; margin-bottom: 10px !important; line-height: 1.3; }
.why_box p { color: var(--c-muted); font-size: .95rem; line-height: 1.6; }
.why_wrapper .row { row-gap: 24px; }

/* homepage variant heading — no badge, uniform size */
.why-home-section { padding-top: clamp(56px, 7vw, 96px); }
.why-home-head {
    text-align: center;
    margin-bottom: clamp(32px, 5vw, 56px);
}
.why-home-head h2 {
    font-family: var(--ff-display);
    font-size: clamp(1.75rem, 3.5vw, 2.6rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    margin-bottom: 14px !important;
}
/* override any span colouring from old breadcrumb style */
.why-home-head h2 span { color: inherit; font-size: inherit; }
.why-home-head p {
    color: var(--c-muted);
    font-size: clamp(.95rem, 1.5vw, 1.1rem);
    max-width: 680px;
    margin: 0 auto !important;
    line-height: 1.65;
}

/* ============================================================
   17e. ADVISORY COMMITTEE — people cards
   ============================================================ */
.committee_members { background: var(--c-ink-900); }
.badge-post {
    display: inline-block; margin: 0 auto 14px !important;
    font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: #fff; background: var(--grad-brand);
    padding: 6px 16px; border-radius: var(--r-pill);
}
.committee_members .new-card,
.committee_members .new-card-members {
    width: 100%; height: 100%;
    display: flex !important; flex-direction: column;
    background: linear-gradient(180deg, rgba(22,38,63,.85), rgba(8,15,28,.96)) !important;
    border: 1px solid var(--c-line) !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    transition: var(--t);
    position: relative;
}
.committee_members .new-card::before,
.committee_members .new-card-members::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; z-index: 4;
    background: var(--grad-brand); transform: scaleX(0); transform-origin: left; transition: var(--t);
}
.committee_members .new-card:hover,
.committee_members .new-card-members:hover {
    transform: translateY(-8px); border-color: rgba(var(--c-brand-2-rgb),.5) !important;
    box-shadow: 0 30px 64px -26px rgba(0,0,0,.85), 0 0 0 1px rgba(var(--c-brand-2-rgb),.22);
}
.committee_members .new-card:hover::before,
.committee_members .new-card-members:hover::before { transform: scaleX(1); }
.committee_members .new-card img,
.committee_members .new-card-members img {
    width: 100% !important;
    height: 220px !important;
    object-fit: contain !important;
    object-position: top center !important;
    background: var(--c-ink-700);
    border-radius: 0 !important;
    display: block;
}
.committee_members .new-card-members img {
    height: 200px !important;
}
.committee_members .card-body { padding: 14px 16px 18px !important; flex: 1 1 auto; background: transparent; }
.committee_members .card-title {
    font-family: var(--ff-display) !important; font-size: 1rem !important; font-weight: 600 !important;
    color: #fff !important; margin-bottom: 5px !important; line-height: 1.25;
}
.committee_members .card-designation { color: var(--c-brand-2); font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; line-height: 1.4; margin-bottom: 3px !important; }
.committee_members .card-company { color: var(--c-muted); font-size: .82rem; line-height: 1.4; }

.members-heading { background: var(--c-ink-900); padding: clamp(28px,5vw,56px) 0 0; }
.members-heading h3 {
    font-family: var(--ff-display); color: #fff; font-size: var(--fs-h2); font-weight: 600;
    position: relative; display: inline-block; left: 50%; transform: translateX(-50%); padding-bottom: 14px;
}
.members-heading h3::after { content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 64px; height: 3px; background: var(--grad-brand); border-radius: 99px; }

/* ============================================================
   17f. SPEAKERS LISTING (4-up glass cards + view-profile modal)
   ============================================================ */
.member_wrapper { background: var(--c-ink-900); padding: clamp(48px,7vw,90px) 0; }
.member_wrapper .row { row-gap: 26px; }
.spk-col { display: flex; }
.spk__media.spk-trigger { cursor: pointer; }
.spk__view {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 14px; font-size: .82rem; font-weight: 600; letter-spacing: .03em;
    color: #fff; background: linear-gradient(0deg, rgba(8,15,28,.92), transparent);
    opacity: 0; transform: translateY(8px); transition: .32s var(--ease);
}
.spk__view i { color: var(--c-brand); font-size: 1.1rem; }
.spk:hover .spk__view { opacity: 1; transform: translateY(0); }

/* speaker profile modal — dark theme to match */
.speaker-modal .modal-content { background: var(--c-ink-800) !important; border: 1px solid var(--c-line-2) !important; border-radius: var(--r-lg) !important; overflow: hidden; }
.speaker-modal .modal-header { background: var(--c-ink-900) !important; border-bottom: 1px solid var(--c-line) !important; }
.speaker-modal .modal-title { font-family: var(--ff-display); color: #fff; }
.speaker-modal .modal-body { background: var(--c-ink-800) !important; }
.speaker-modal .carousel-item .row { color: var(--c-text); }
.speaker-modal .carousel-item img.rounded { border-radius: var(--r-md) !important; border: 1px solid var(--c-line-2); }
.speaker-modal .carousel-item h3 { font-family: var(--ff-display); color: #fff; margin-bottom: 10px !important; }
.speaker-modal .carousel-item p strong { color: var(--c-brand-2); }
.speaker-modal .carousel-item p { color: var(--c-muted); }

/* ============================================================
   17g. ABOUT EXHIBITION
   ============================================================ */
.exhibiton_img, .exhibit_box__img {
    border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-line-2); box-shadow: var(--sh-lg);
}
.exhibiton_img img, .exhibit_box__img img { width: 100%; height: 100%; object-fit: cover; }
.exh_content p { color: #c8d4e6; font-size: 1.02rem; line-height: 1.8; }
.exhibit_wrapper { background: var(--c-ink-900); }
.exhibit_wrapper .main_heading { margin-bottom: var(--sp-6); }
.exhibit_box__content {
    background: linear-gradient(180deg, rgba(22,38,63,.55), rgba(10,20,36,.4));
    border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: clamp(24px,3vw,38px);
    height: 100%;
}
.exhibit_box__content ul { display: grid; gap: 12px; }
.exhibit_box__content li {
    position: relative; padding-left: 34px; color: #c8d4e6; line-height: 1.55; list-style: none !important;
}
.exhibit_box__content li::before {
    content: "\ea41"; font-family: "boxicons" !important; font-size: 1rem;
    position: absolute; left: 0; top: 2px; color: var(--c-brand);
    width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(var(--c-brand-2-rgb),.12); border-radius: 7px;
}

/* ============================================================
   18. SCROLL REVEAL
   ============================================================ */
/* ---- Scroll reveal — global ---- */
[data-reveal] {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .75s var(--ease), transform .75s var(--ease);
    will-change: opacity, transform;
}
[data-reveal].in                       { opacity: 1; transform: none; }
[data-reveal][data-reveal-delay="1"]   { transition-delay: .10s; }
[data-reveal][data-reveal-delay="2"]   { transition-delay: .22s; }
[data-reveal][data-reveal-delay="3"]   { transition-delay: .34s; }

/* directional variants */
[data-reveal-dir="left"][data-reveal]  { transform: translateX(-44px); }
[data-reveal-dir="scale"][data-reveal] { transform: translateY(18px) scale(.96); }
[data-reveal-dir="right"][data-reveal] { transform: translateX(44px); }

@media (prefers-reduced-motion: reduce) {
    [data-reveal], [data-reveal-dir] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* about section — enhanced staggered reveal */
.about-img-reveal[data-reveal] {
    transform: translateX(-52px) scale(.97);
    transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.about-img-reveal[data-reveal].in { opacity: 1; transform: none; }

.about_content [data-reveal] {
    transition: opacity .8s var(--ease), transform .8s var(--ease);
    transform: translateY(40px);
}
.about_content [data-reveal].in { opacity: 1; transform: none; }
.about_content [data-reveal-delay="2"] { transition-delay: .22s; }
.about_content [data-reveal-delay="3"] { transition-delay: .44s; }
@media (prefers-reduced-motion: reduce) {
    .about-img-reveal[data-reveal],
    .about_content [data-reveal] { opacity: 1; transform: none; }
}

/* ============================================================
   19. UTILITIES
   ============================================================ */
.u-center { text-align: center; }
.u-mt-0 { margin-top: 0 !important; }
.divider { height: 1px; background: var(--c-line); border: none; margin: var(--sp-7) 0; }
.glow-orb { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .5; pointer-events: none; z-index: 0; }
.glow-orb--brand { background: var(--c-brand); }
.glow-orb--cyan { background: var(--c-cyan); }

/* ============================================================
   20. PARTNER / LOGO CARDS
   ============================================================ */
.partner-section { background: var(--c-ink-900); padding: clamp(56px, 8vw, 110px) 0; }
.partner-section .row { row-gap: 20px; }

/* card wrapper — full link */
.partner-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, rgba(22,38,63,.65) 0%, rgba(10,20,36,.65) 100%);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 22px 18px 18px;
    gap: 14px;
    overflow: hidden;
    height: 100%;
    text-decoration: none !important;
    transition: transform .32s var(--ease), border-color .32s, box-shadow .32s;
}

/* top accent bar slides in on hover */
.partner-card::before {
    content: "";
    position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: var(--grad-brand);
    transform: scaleX(0); transform-origin: left;
    transition: transform .4s var(--ease);
}

/* subtle ambient glow behind card */
.partner-card::after {
    content: "";
    position: absolute; inset: 0; z-index: 0; border-radius: var(--r-lg);
    background: radial-gradient(80% 80% at 50% 100%, rgba(var(--c-brand-2-rgb),.07) 0%, transparent 70%);
    opacity: 0; transition: opacity .32s var(--ease);
    pointer-events: none;
}

.partner-card:hover { transform: translateY(-7px); border-color: rgba(var(--c-brand-2-rgb),.38); box-shadow: 0 28px 60px -22px rgba(0,0,0,.85), 0 0 0 1px rgba(var(--c-brand-2-rgb),.16); }
.partner-card:hover::before { transform: scaleX(1); }
.partner-card:hover::after  { opacity: 1; }

/* white logo chip */
.partner-card__logo {
    position: relative; z-index: 1;
    background: #fff;
    border-radius: var(--r-md);
    padding: 28px 32px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 150px;
    transition: box-shadow .32s var(--ease);
}
.partner-card:hover .partner-card__logo { box-shadow: 0 8px 28px -10px rgba(var(--c-brand-2-rgb),.28); }

.partner-card__logo img {
    max-height: 110px;
    width: 100%;
    object-fit: contain;
    display: block;
    transition: transform .38s var(--ease);
}
.partner-card:hover .partner-card__logo img { transform: scale(1.06); }

/* optional visit label that fades in */
.partner-card__cta {
    position: relative; z-index: 1;
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--c-muted);
    display: flex; align-items: center; gap: 5px;
    opacity: 0; transform: translateY(6px);
    transition: opacity .28s var(--ease), transform .28s var(--ease), color .28s;
}
.partner-card__cta i { font-size: .9rem; color: var(--c-brand); }
.partner-card:hover .partner-card__cta { opacity: 1; transform: translateY(0); color: var(--c-brand-2); }

/* group heading pill */
.partner-group-header { margin: clamp(40px, 6vw, 64px) 0 22px; }
.partner-group-header:first-child,
.partner-group-header.first { margin-top: 0; }

.partner-group-title {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    font-family: var(--ff-body) !important;
    font-size: .92rem !important;
    font-weight: 700 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: var(--c-brand-2) !important;
    padding: 11px 26px !important;
    border: 1px solid var(--c-line-2) !important;
    border-radius: var(--r-pill) !important;
    background: var(--glass-2) !important;
    backdrop-filter: blur(8px);
    margin: 0 !important;
    width: auto !important;
}
.partner-group-title::before {
    content: "";
    display: inline-block; width: 7px; height: 7px; border-radius: 50%;
    background: var(--c-brand); box-shadow: 0 0 10px var(--c-brand); flex-shrink: 0;
}

@media (max-width: 576px) {
    .partner-card__logo { min-height: 110px; padding: 20px 22px; }
    .partner-card__logo img { max-height: 80px; }
}

/* ============================================================
   20b. EXHIBITOR GRID — reuses .partner-card styles from section 20
   ============================================================ */
.partner-grid-section { padding: clamp(56px, 8vw, 110px) 0; }

/* ============================================================
   21. SPEAKER PROFILE MODAL (dark-glass redesign)
   ============================================================ */
.spk-modal .modal-content {
    background: var(--c-ink-800);
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: 0 50px 140px -40px rgba(0,0,0,.95);
}

/* header bar */
.spk-modal__header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 24px;
    background: var(--c-ink-900);
    border-bottom: 1px solid var(--c-line);
}
.spk-modal__close {
    width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0;
    background: var(--glass-2); border: 1px solid var(--c-line-2);
    color: var(--c-text); font-size: 1.5rem;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: var(--t-fast);
}
.spk-modal__close:hover { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }

/* slide body */
.spk-modal__body {
    display: grid;
    grid-template-columns: 280px 1fr;
    min-height: 440px;
}

/* left: image + linkedin */
.spk-modal__img-col {
    background: var(--c-ink-900);
    border-right: 1px solid var(--c-line);
    display: flex; flex-direction: column; align-items: center;
    padding: 28px 20px; gap: 18px;
}
.spk-modal__img-wrap {
    width: 100%; border-radius: var(--r-lg); overflow: hidden;
    border: 1px solid var(--c-line-2); box-shadow: var(--sh-lg);
    aspect-ratio: 3/4;
}
.spk-modal__img-wrap img {
    width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block;
}
.spk-modal__li {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: 100%; padding: 11px 18px; border-radius: var(--r-pill);
    background: #0a66c2; color: #fff; text-decoration: none !important;
    font-size: .85rem; font-weight: 600;
    transition: var(--t-fast);
}
.spk-modal__li i { font-size: 1.1rem; }
.spk-modal__li:hover { background: #095ba8; color: #fff; transform: translateY(-2px); box-shadow: 0 8px 24px -8px rgba(10,102,194,.55); }

.spk-modal__counter {
    font-size: var(--fs-xs); color: var(--c-muted-2);
    letter-spacing: .1em; margin-top: auto;
}

/* right: info */
.spk-modal__info-col {
    padding: 36px 40px;
    overflow-y: auto; max-height: 72vh;
    display: flex; flex-direction: column;
}
.spk-modal__post {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: #fff; background: var(--grad-brand);
    padding: 5px 14px; border-radius: var(--r-pill);
    margin-bottom: 18px; width: fit-content;
}
.spk-modal__name {
    font-family: var(--ff-display);
    font-size: clamp(1.4rem, 2.5vw, 2.1rem);
    font-weight: 700; color: #fff; line-height: 1.15;
    margin-bottom: 10px !important;
}
.spk-modal__role {
    color: var(--c-brand-2); font-size: .88rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .05em;
    margin-bottom: 4px !important;
}
.spk-modal__org {
    color: var(--c-muted); font-size: 1rem; margin-bottom: 0 !important;
}
.spk-modal__divider { height: 1px; background: var(--c-line); margin: 24px 0; }
.spk-modal__bio {
    color: #c8d4e6; font-size: .97rem; line-height: 1.85;
    flex: 1;
}

/* nav arrows */
.spk-modal__prev, .spk-modal__next {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 10;
    width: 46px; height: 46px; border-radius: 50%;
    background: var(--glass); border: 1px solid var(--c-line-2);
    color: #fff; font-size: 1.6rem;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: var(--t-fast); backdrop-filter: blur(12px);
}
.spk-modal__prev { left: 14px; }
.spk-modal__next { right: 14px; }
.spk-modal__prev:hover, .spk-modal__next:hover {
    background: var(--c-brand); border-color: var(--c-brand); color: #fff;
}

@media (max-width: 768px) {
    .spk-modal__body { grid-template-columns: 1fr; }
    .spk-modal__img-col { border-right: none; border-bottom: 1px solid var(--c-line); padding: 24px; }
    .spk-modal__img-wrap { max-width: 200px; margin: 0 auto; }
    .spk-modal__info-col { padding: 24px; max-height: none; }
    .spk-modal__prev { left: 6px; } .spk-modal__next { right: 6px; }
}

/* ============================================================
   22. THANK-YOU POPUP (post-event redesign)
   ============================================================ */
.ty-modal__dialog { max-width: 520px; }

.ty-modal {
    position: relative;
    background: var(--c-ink-800);
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-xl);
    overflow: hidden;
    padding: 48px 40px 40px;
    text-align: center;
    box-shadow: 0 60px 120px -30px rgba(0,0,0,.9);
}

/* ambient glow */
.ty-modal__orb {
    position: absolute; top: -80px; left: 50%; transform: translateX(-50%);
    width: 340px; height: 340px; border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--c-brand-2-rgb),.22) 0%, transparent 70%);
    pointer-events: none;
}

/* top accent bar */
.ty-modal::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: var(--grad-brand);
}

.ty-modal__close {
    position: absolute; top: 16px; right: 16px;
    width: 36px; height: 36px; border-radius: 10px;
    background: var(--glass-2); border: 1px solid var(--c-line-2);
    color: var(--c-muted); font-size: 1.4rem;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: var(--t-fast); z-index: 2;
}
.ty-modal__close:hover { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }

.ty-modal__logo {
    display: flex; justify-content: center; margin-bottom: 20px; position: relative; z-index: 1;
}
.ty-modal__logo img { height: 80px; width: auto; }

.ty-modal .eyebrow { display: inline-flex; margin-bottom: 20px; font-size: .72rem; }

.ty-modal__heading {
    font-family: var(--ff-display);
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 700; color: #fff; line-height: 1.2;
    margin-bottom: 14px !important; position: relative; z-index: 1;
}
.ty-modal__heading span {
    background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent;
}

.ty-modal__sub {
    color: var(--c-muted); font-size: .95rem; line-height: 1.75;
    margin-bottom: 0 !important; position: relative; z-index: 1;
}
.ty-modal__sub strong { color: var(--c-brand-2); font-weight: 600; }

.ty-modal__divider { height: 1px; background: var(--c-line); margin: 28px 0; }

.ty-modal__cta {
    display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
}
.ty-modal__cta .global_btn { padding: 12px 28px !important; font-size: .9rem !important; }
.ty-modal__cta .btn-ghost  { padding: 11px 26px; font-size: .9rem; }

@media (max-width: 576px) {
    .ty-modal { padding: 40px 24px 32px; }
    .ty-modal__cta { flex-direction: column; }
    .ty-modal__cta .global_btn,
    .ty-modal__cta .btn-ghost { width: 100%; justify-content: center; }
}

/* ============================================================
   23. BROCHURE DOWNLOAD MODAL
   ============================================================ */
.bro-modal__dialog { max-width: 620px; }

.bro-modal {
    background: var(--c-ink-800);
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: 0 60px 120px -30px rgba(0,0,0,.9);
}

/* top accent bar */
.bro-modal::before {
    content: ""; display: block; height: 3px;
    background: var(--grad-brand);
}

/* header */
.bro-modal__header {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 22px 28px 18px;
    background: var(--c-ink-900);
    border-bottom: 1px solid var(--c-line);
}
.bro-modal__header-left { display: flex; flex-direction: column; gap: 6px; }
.bro-modal__header .eyebrow { font-size: .7rem; }

.bro-modal__title {
    font-family: var(--ff-display);
    font-size: 1.25rem; font-weight: 700;
    color: #fff; margin: 0 !important;
}
.bro-modal__title span {
    background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent;
}

.bro-modal__close {
    width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0;
    background: var(--glass-2); border: 1px solid var(--c-line-2);
    color: var(--c-muted); font-size: 1.4rem;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: var(--t-fast); margin-top: 2px;
}
.bro-modal__close:hover { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }

/* body */
.bro-modal__body { padding: 24px 28px 28px; }

.bro-modal__message:not(:empty) {
    background: rgba(var(--c-brand-2-rgb),.1);
    border: 1px solid rgba(var(--c-brand-2-rgb),.25);
    border-radius: var(--r-md);
    color: var(--c-brand-2); font-size: .88rem; font-weight: 500;
    padding: 12px 16px; margin-bottom: 18px;
}

/* form layout */
.bro-form { display: flex; flex-direction: column; gap: 14px; }

.bro-form__row {
    display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}

.bro-form__group { display: flex; flex-direction: column; gap: 4px; }

/* inputs */
.bro-form input,
.bro-form select,
.bro-form textarea {
    width: 100%; padding: 11px 14px;
    background: var(--c-ink-700);
    border: 1px solid var(--c-line-2);
    border-radius: var(--r-md);
    color: #eef3fb; font-size: .88rem;
    font-family: var(--ff-body);
    transition: border-color var(--t-fast), box-shadow var(--t-fast);
    outline: none;
}
.bro-form input::placeholder,
.bro-form textarea::placeholder { color: var(--c-muted-2); }

.bro-form select { color: var(--c-muted); cursor: pointer; }
.bro-form select option { background: var(--c-ink-800); color: #eef3fb; }

.bro-form input:focus,
.bro-form select:focus,
.bro-form textarea:focus {
    border-color: var(--c-brand);
    box-shadow: 0 0 0 3px rgba(var(--c-brand-2-rgb), .15);
}

.bro-form textarea { resize: vertical; min-height: 90px; }

.bro-form .error {
    color: #f87171; font-size: .75rem; min-height: 14px;
}

.bro-form .global_btn {
    margin-top: 4px;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    font-size: .92rem !important; padding: 13px !important;
}
.bro-form .global_btn i { font-size: 1.1rem; }

@media (max-width: 576px) {
    .bro-modal__dialog { margin: 12px; }
    .bro-form__row { grid-template-columns: 1fr; }
    .bro-modal__body { padding: 20px 18px 24px; }
    .bro-modal__header { padding: 18px 18px 14px; }
}

/* ============================================================
   24. HOMEPAGE SPEAKERS SECTION
   ============================================================ */
.spk-home-section {
    background: var(--c-ink-900);
    padding: clamp(64px, 9vw, 110px) 0;
    position: relative;
    overflow: hidden;
}

/* subtle grid texture */
.spk-home-section::before {
    content: "";
    position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(ellipse 70% 50% at 50% 0%, rgba(var(--c-brand-2-rgb),.07) 0%, transparent 70%),
        radial-gradient(ellipse 50% 40% at 80% 100%, rgba(54,209,220,.06) 0%, transparent 60%);
}

/* ---- slider wrapper ---- */
.spk-home-slider-wrap {
    position: relative;
    z-index: 1;
    /* arrows sit outside the track — give them space */
    margin: 0 -8px;
    padding: 0 64px;
}

.spk-home-slider { opacity: 0; transition: opacity .3s; }
.spk-home-slider.slick-initialized { opacity: 1; }

/* gap between slides */
.spk-slide { padding: 0 10px; }

/* arrows */
.spk-arrow {
    position: absolute;
    top: 40%;                          /* photo midpoint, not text midpoint */
    transform: translateY(-50%);
    z-index: 10;
    width: 46px; height: 46px;
    border-radius: 50%;
    border: 1.5px solid rgba(40,180,220,.4);
    background: rgba(13,23,38,.85);
    backdrop-filter: blur(6px);
    color: var(--c-brand);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background .25s, border-color .25s, color .25s, transform .25s;
    padding: 0; line-height: 1;
}
.spk-arrow i { font-size: 1.6rem; }
.spk-arrow--prev { left: 6px; }
.spk-arrow--next { right: 6px; }
.spk-arrow:hover {
    background: var(--c-brand);
    border-color: var(--c-brand);
    color: #fff;
    transform: translateY(-50%) scale(1.1);
}
.spk-arrow.slick-disabled { opacity: .3; cursor: default; pointer-events: none; }

@media (max-width: 767px) {
    .spk-home-slider-wrap { padding: 0 44px; margin: 0; }
    .spk-arrow { width: 36px; height: 36px; }
    .spk-arrow i { font-size: 1.25rem; }
    .spk-arrow--prev { left: 2px; }
    .spk-arrow--next { right: 2px; }
}

/* push the CTA block */
.spk-home-section__cta {
    display: flex; flex-direction: column; align-items: center; gap: 16px;
    margin-top: 52px; text-align: center; position: relative; z-index: 1;
}
.spk-home-section__count {
    color: var(--c-muted); font-size: .9rem; margin: 0 !important;
}
.spk-home-section__count strong { color: var(--c-brand-2); }

.spk-home-section .global_btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 32px !important; font-size: .95rem !important;
}
.spk-home-section .global_btn i { font-size: 1.2rem; transition: transform var(--t-fast); }
.spk-home-section .global_btn:hover i { transform: translateX(4px); }

/* ============================================================
   HERO — two-column, countdown + animated logo ring
   ============================================================ */

.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    background: linear-gradient(160deg,
        rgba(3, 10, 26, .88) 0%,
        rgba(6, 18, 44, .75) 50%,
        rgba(3, 10, 26, .86) 100%);
    pointer-events: none;
}
.hero-overlay .wrap,
.hero-overlay .wrap * { pointer-events: auto; }
.hero-overlay .wrap {
    width: 100%;
    max-width: var(--maxw);
    padding: 0 clamp(18px, 4vw, 48px);
    margin-inline: auto;
}

/* Two-column grid */
.hero-2col {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
    gap: clamp(24px, 4vw, 60px);
}

/* ── LEFT column ── */
.hero-left { text-align: left; }

.hero-title {
    font-family: var(--ff-display) !important;
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    color: #fff !important;
    text-shadow: 0 3px 28px rgba(0,0,0,.55);
    margin: 0 0 18px !important;
    letter-spacing: -.01em;
}
.hero-title span { color: #28b4dc; }

.hero-desc {
    font-size: clamp(14px, 1.3vw, 17px);
    color: rgba(255,255,255,.72);
    line-height: 1.7;
    max-width: 560px;
    margin-bottom: 28px;
}

.hero-cta {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.hero-btn-primary {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 28px;
    background: linear-gradient(135deg, #1464a0 0%, #28b4dc 100%);
    color: #fff !important;
    font-size: 15px; font-weight: 600;
    border: none; border-radius: 50px; cursor: pointer;
    letter-spacing: .02em;
    transition: transform var(--t), box-shadow var(--t);
    box-shadow: 0 6px 22px rgba(40,180,220,.35);
    text-decoration: none !important;
}
.hero-btn-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(40,180,220,.5); }

.hero-btn-ghost {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 12px 26px;
    background: rgba(255,255,255,.08);
    color: #fff !important;
    font-size: 15px; font-weight: 600;
    border: 1.5px solid rgba(255,255,255,.4);
    border-radius: 50px; cursor: pointer;
    letter-spacing: .02em;
    transition: border-color var(--t), background var(--t), transform var(--t);
}
.hero-btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.14); transform: translateY(-3px); }

.hero-info {
    display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
    margin-bottom: 28px;
    font-size: clamp(13px, 1.2vw, 15px);
    color: rgba(255,255,255,.72);
}
.hero-info span { display: inline-flex; align-items: center; gap: 7px; }
.hero-info i { color: #28b4dc; font-size: 1.15em; }

/* Countdown */
.hero-countdown {
    display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap;
}
.hero-countdown__item {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: rgba(6, 18, 44, .75);
    border: 1px solid rgba(40,180,220,.28);
    border-radius: 12px;
    padding: 14px 18px;
    min-width: 74px;
    backdrop-filter: blur(10px);
}
.hero-countdown__item span {
    font-size: clamp(26px, 2.8vw, 40px);
    font-weight: 700;
    color: #fff;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
}
.hero-countdown__item label {
    font-size: 10px; font-weight: 700;
    letter-spacing: .12em;
    color: rgba(255,255,255,.45);
    margin-top: 5px;
    text-transform: uppercase;
    cursor: default;
}

/* ── RIGHT column — logo + animated rings ── */
.hero-right {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-logo-ring {
    position: relative;
    width: clamp(260px, 36vw, 440px);
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-logo-ring img {
    width: 58%;
    height: auto;
    position: relative;
    z-index: 3;
    filter: drop-shadow(0 8px 32px rgba(40,180,220,.42));
    animation: heroPulse 4s ease-in-out infinite;
}
@keyframes heroPulse {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-10px); }
}

.ring {
    position: absolute;
    border-radius: 50%;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
}
.ring-1 {
    width: 68%; height: 68%;
    border: 1.5px solid rgba(40,180,220,.45);
    animation: ringRotate 20s linear infinite;
}
.ring-2 {
    width: 85%; height: 85%;
    border: 1px solid rgba(40,180,220,.22);
    animation: ringRotate 32s linear infinite reverse;
}
.ring-3 {
    width: 100%; height: 100%;
    border: 1px solid rgba(40,180,220,.10);
}
/* ring tick marks */
.ring-1::before, .ring-2::before {
    content: '';
    position: absolute;
    top: -3px; left: 50%;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #28b4dc;
    transform: translateX(-50%);
}

@keyframes ringRotate {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to   { transform: translate(-50%, -50%) rotate(360deg); }
}

/* LIVE badge */
.hero-logo-ring__live {
    position: absolute;
    top: 9%; right: 9%;
    z-index: 5;
    background: rgba(40,180,220,.15);
    border: 1px solid #28b4dc;
    color: #7dd5ec;
    font-size: 10px; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase;
    padding: 4px 11px; border-radius: 20px;
    backdrop-filter: blur(8px);
}

/* city badge */
.hero-logo-ring__city {
    position: absolute;
    bottom: 6%; left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    background: rgba(4,12,30,.82);
    border: 1px solid rgba(40,180,220,.35);
    color: rgba(255,255,255,.78);
    font-size: 10px; font-weight: 600;
    letter-spacing: .13em; text-transform: uppercase;
    padding: 5px 14px; border-radius: 20px;
    backdrop-filter: blur(8px);
    white-space: nowrap;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .hero-2col { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .hero-2col { grid-template-columns: 1fr; gap: 32px; }
    .hero-left { text-align: center; }
    .hero-desc { margin-left: auto; margin-right: auto; }
    .hero-cta  { justify-content: center; }
    .hero-info { justify-content: center; }
    .hero-countdown { justify-content: center; }
    .hero-right { display: none; }
}
@media (max-width: 480px) {
    .hero-countdown__item { min-width: 62px; padding: 10px 12px; }
    .hero-countdown__item span { font-size: 24px; }
    .hero-btn-primary, .hero-btn-ghost { font-size: 14px; padding: 11px 20px; }
    .hero-info { flex-direction: column; gap: 8px; align-items: flex-start; }
}