﻿/** * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 *
 * Ancient Iberian Heritage Ancestry Report Styles
 * Cinematic design for Ancient Iberian DNA analysis visualization.
 */

/* ========================================
   CSS VARIABLES - Iberian Color Palette
   ======================================== */
:root {
    /* Core Colors - Warm terracotta & gold */
    --iberian-deep: #1a1610;
    --iberian-dark: #2a211a;
    --iberian-warm: #3d3028;
    --iberian-terra: #8b4513;
    --iberian-terra-light: #a0522d;
    --iberian-gold: #c9a030;
    --iberian-gold-light: #dbb840;
    --iberian-gold-dark: #a68a2b;
    --iberian-bronze: #cd7f32;
    --iberian-clay: #c4a484;
    --iberian-mist: rgba(255, 255, 255, 0.9);
    --iberian-mist-dim: rgba(255, 255, 255, 0.7);
    --iberian-mist-faint: rgba(255, 255, 255, 0.4);

    /* Typography */
    --iberian-font-display: 'Playfair Display', Georgia, serif;
    --iberian-font-body: 'Source Sans Pro', -apple-system, sans-serif;

    /* Spacing */
    --iberian-section-padding: 100px;
    --iberian-section-padding-mobile: 60px;

    /* Transitions */
    --iberian-transition-fast: 0.2s ease;
    --iberian-transition-medium: 0.4s ease;
    --iberian-transition-slow: 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ========================================
   BASE STYLES
   ======================================== */
.iberian-main {
    background: var(--iberian-deep);
    color: var(--iberian-mist);
    font-family: var(--iberian-font-body);
    line-height: 1.7;
    overflow-x: hidden;
    min-height: 100vh;
}

/* ========================================
   HEADING STYLES - Ensure Readability
   ======================================== */
.iberian-main h1,
.iberian-main h2,
.iberian-main h3,
.iberian-main h4,
.iberian-main h5 {
    color: var(--iberian-mist) !important;
    font-weight: 600;
}

.iberian-main h1 {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    color: white !important;
}

.iberian-main h2 {
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: var(--iberian-mist) !important;
}

.iberian-main h3 {
    font-size: clamp(1.3rem, 2.5vw, 1.75rem);
    color: var(--iberian-mist) !important;
}

.iberian-main h4 {
    font-size: clamp(1.1rem, 2vw, 1.4rem);
    color: var(--iberian-mist) !important;
}

.iberian-main h5 {
    font-size: clamp(1rem, 1.8vw, 1.2rem);
    color: var(--iberian-mist) !important;
}

/* Ensure headings in narrative/content areas are readable */
.iberian-main .iberian-era-desc-preview h1,
.iberian-main .iberian-era-desc-preview h2,
.iberian-main .iberian-era-desc-preview h3,
.iberian-main .iberian-era-desc-preview h4,
.iberian-main .iberian-era-desc-preview h5,
.iberian-main .iberian-era-desc-full h1,
.iberian-main .iberian-era-desc-full h2,
.iberian-main .iberian-era-desc-full h3,
.iberian-main .iberian-era-desc-full h4,
.iberian-main .iberian-era-desc-full h5,
.iberian-main .iberian-era-body h1,
.iberian-main .iberian-era-body h2,
.iberian-main .iberian-era-body h3,
.iberian-main .iberian-era-body h4,
.iberian-main .iberian-era-body h5,
.iberian-main .dar-narrative-callout h1,
.iberian-main .dar-narrative-callout h2,
.iberian-main .dar-narrative-callout h3,
.iberian-main .dar-narrative-callout h4,
.iberian-main .dar-narrative-callout h5 {
    color: var(--iberian-mist) !important;
    font-weight: 600;
}

/* Override any dark colors from DeepAncestry CSS */
.iberian-main .dar-section h1,
.iberian-main .dar-section h2,
.iberian-main .dar-section h3,
.iberian-main .dar-section h4,
.iberian-main .dar-section h5 {
    color: var(--iberian-mist) !important;
}

.iberian-content-hidden {
    opacity: 0;
    visibility: hidden;
}

/* ========================================
   LOADING OVERLAY
   ======================================== */
.iberian-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--iberian-deep);
    transition: opacity 0.8s ease, visibility 0.8s ease;
}

.iberian-loading-overlay.hidden {
    opacity: 0;
    visibility: hidden;
}

.iberian-loading-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.iberian-loading-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, transparent 0%, rgba(26, 22, 16, 0.6) 50%, rgba(26, 22, 16, 0.85) 100%);
    z-index: 1;
}

.iberian-loading-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.55;
    filter: blur(5px) brightness(0.5);
}

.iberian-loading-content {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 40px;
}

.iberian-loading-icon {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0 auto 32px;
}

.iberian-icon-ring {
    position: absolute;
    border-radius: 50%;
    border: 3px solid transparent;
}

.iberian-ring-outer {
    inset: 0;
    border-top-color: var(--iberian-gold);
    animation: iberianSpin 1.5s linear infinite;
}

.iberian-ring-inner {
    inset: 15px;
    border-bottom-color: var(--iberian-terra);
    animation: iberianSpin 1s linear infinite reverse;
}

.iberian-icon-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2.5rem;
    color: var(--iberian-gold);
}

@keyframes iberianSpin {
    to { transform: rotate(360deg); }
}

.iberian-loading-title {
    font-family: var(--iberian-font-display);
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--iberian-gold);
    margin-bottom: 16px;
}

.iberian-loading-narrative {
    font-size: 1.1rem;
    color: var(--iberian-mist);
    margin-bottom: 32px;
    max-width: 400px;
}

.iberian-loading-progress {
    width: 200px;
    height: 4px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 2px;
    margin: 0 auto 16px;
    overflow: hidden;
}

.iberian-loading-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--iberian-terra), var(--iberian-gold));
    width: 0%;
    animation: iberianProgress 2.5s ease-in-out forwards;
}

@keyframes iberianProgress {
    0% { width: 0%; }
    50% { width: 60%; }
    100% { width: 100%; }
}

.iberian-loading-hint {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

/* ========================================
   SCROLL PROGRESS
   ======================================== */
.iberian-scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background: linear-gradient(90deg, var(--iberian-terra), var(--iberian-gold));
    z-index: 9999;
}

/* ========================================
   SKIP LINK (Accessibility)
   ======================================== */
.iberian-skip-link {
    position: absolute;
    top: -100%;
    left: 50%;
    transform: translateX(-50%);
    padding: 1rem 2rem;
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    font-weight: 600;
    text-decoration: none;
    z-index: 10000;
    border-radius: 0 0 8px 8px;
    transition: top var(--iberian-transition-fast);
}

.iberian-skip-link:focus {
    top: 0;
}

/* ========================================
   PAGE NAVIGATION DOTS
   ======================================== */
.iberian-page-nav {
    position: fixed;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 16px;
    z-index: 1000;
}

.iberian-nav-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    border: 2px solid transparent;
    transition: all var(--iberian-transition-fast);
    position: relative;
}

.iberian-nav-dot:hover,
.iberian-nav-dot.active {
    background: var(--iberian-gold);
    transform: scale(1.2);
}

.iberian-nav-dot::before {
    content: attr(data-tooltip);
    position: absolute;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
    padding: 6px 12px;
    background: rgba(0, 0, 0, 0.8);
    color: white;
    font-size: 12px;
    white-space: nowrap;
    border-radius: 4px;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--iberian-transition-fast);
}

.iberian-nav-dot:hover::before {
    opacity: 1;
}

@media (max-width: 768px) {
    .iberian-page-nav {
        display: none;
    }
}

/* ========================================
   MOBILE BOTTOM NAVIGATION
   ======================================== */
.iberian-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 65px;
    background: rgba(26, 22, 16, 0.95);
    backdrop-filter: blur(12px);
    border-top: 1px solid rgba(201, 160, 48, 0.2);
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 1000;
    padding-bottom: env(safe-area-inset-bottom);
}

.iberian-bottom-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 12px;
    color: var(--iberian-mist-dim);
    text-decoration: none;
    font-size: 0.7rem;
    transition: all var(--iberian-transition-fast);
}

.iberian-bottom-nav-item i {
    font-size: 1.2rem;
}

.iberian-bottom-nav-item.active,
.iberian-bottom-nav-item:hover {
    color: var(--iberian-gold);
}

/* ========================================
   BACK TO TOP BUTTON
   ======================================== */
.iberian-back-to-top {
    position: fixed;
    bottom: 90px;
    right: 24px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    border: none;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all var(--iberian-transition-medium);
    z-index: 999;
    box-shadow: 0 4px 20px rgba(201, 160, 48, 0.3);
}

.iberian-back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.iberian-back-to-top:hover {
    background: var(--iberian-gold-light);
    transform: translateY(-4px);
}

@media (max-width: 768px) {
    .iberian-back-to-top {
        bottom: 85px;
    }
}

/* ========================================
   SECTION BASE STYLES
   ======================================== */
.iberian-section {
    padding: var(--iberian-section-padding) 0;
    position: relative;
}

@media (max-width: 768px) {
    .iberian-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
}

.iberian-section-header {
    text-align: center;
    margin-bottom: 60px;
}

.iberian-chapter-number {
    display: inline-block;
    font-family: var(--iberian-font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--iberian-gold);
    margin-bottom: 12px;
}

.iberian-section-title {
    font-family: var(--iberian-font-display);
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    font-weight: 600;
    color: white;
    margin: 0 0 16px;
}

.iberian-section-title i {
    color: var(--iberian-gold);
    margin-right: 10px;
}

.iberian-section-subtitle {
    font-size: 1.05rem;
    color: var(--iberian-mist-dim);
    max-width: 700px;
    margin: 0 auto;
}

/* ========================================
   HERO SECTION
   ======================================== */
.iberian-hero {
    min-height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
    padding-top: var(--content-offset, 80px);
    padding-bottom: 120px;
}

.iberian-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.iberian-hero-bg-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
}

.iberian-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(26, 22, 16, 0.7) 0%,
        rgba(26, 22, 16, 0.85) 50%,
        rgba(26, 22, 16, 0.98) 100%
    );
}

.iberian-hero-particles {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 20% 80%, rgba(201, 160, 48, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(139, 69, 19, 0.08) 0%, transparent 50%);
}

.iberian-hero-content {
    position: relative;
    z-index: 1;
}

/* Hero Header */
.iberian-hero-header {
    text-align: center;
    margin-bottom: 48px;
}

.iberian-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    background: rgba(201, 160, 48, 0.15);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 30px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--iberian-gold);
    margin-bottom: 20px;
}

.iberian-hero-title {
    font-family: var(--iberian-font-display);
    font-size: clamp(2rem, 6vw, 3.5rem);
    font-weight: 600;
    color: white;
    margin-bottom: 12px;
}

.iberian-hero-title-accent {
    color: var(--iberian-gold);
}

.iberian-hero-subtitle {
    font-size: 1.1rem;
    color: var(--iberian-mist-dim);
}

/* Ancient Iberian Index Ring */
.iberian-index-container {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.iberian-index-ring {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    box-shadow: 0 10px 40px rgba(201, 160, 48, 0.3);
}

.iberian-index-inner {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--iberian-deep);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.iberian-index-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--iberian-mist-dim);
}

.iberian-index-value {
    font-family: var(--iberian-font-display);
    font-size: 3.5rem;
    font-weight: 700;
    color: var(--iberian-gold);
    line-height: 1;
}

.iberian-index-unit {
    font-size: 1.5rem;
    font-weight: 500;
}

/* UMAP Cluster Badge */
.iberian-cluster-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 40px;
    padding: 16px 32px;
    background: rgba(139, 69, 19, 0.15);
    border: 1px solid rgba(139, 69, 19, 0.3);
    border-radius: 12px;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
}

.iberian-cluster-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--iberian-mist-dim);
    margin-bottom: 4px;
}

.iberian-cluster-value {
    font-family: var(--iberian-font-display);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--iberian-terra-light);
}

.iberian-cluster-confidence {
    font-size: 0.8rem;
    color: var(--iberian-mist-dim);
}

/* Hero Match Card */
.iberian-hero-match {
    background: rgba(42, 33, 26, 0.8);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 20px;
    overflow: hidden;
    max-width: 900px;
    margin: 0 auto 40px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    transition: transform var(--iberian-transition-medium), box-shadow var(--iberian-transition-medium);
}

.iberian-hero-match.iberian-drawer-open {
    cursor: pointer;
}

.iberian-hero-match:hover {
    transform: translateY(-5px);
    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.5);
}

.iberian-hero-match-portrait {
    position: relative;
    height: 100%;
    min-height: 300px;
}

.iberian-hero-match-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 300px;
}

.iberian-crown-badge {
    position: absolute;
    top: 20px;
    left: 20px;
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
}

.iberian-hero-match-details {
    padding: 32px;
}

.iberian-culture-badge {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}

/* Culture-specific badge colors */
.iberian-culture-badge.mesolithic { background: rgba(139, 90, 43, 0.3); color: #d4a265; }
.iberian-culture-badge.neolithic { background: rgba(34, 139, 34, 0.3); color: #90c090; }
.iberian-culture-badge.chalcolithic { background: rgba(184, 115, 51, 0.3); color: #d4a576; }
.iberian-culture-badge.bronze-age { background: rgba(205, 127, 50, 0.3); color: #daa06d; }
.iberian-culture-badge.iron-age { background: rgba(105, 105, 105, 0.3); color: #a0a0a0; }
.iberian-culture-badge.roman-medieval { background: rgba(128, 0, 128, 0.3); color: #c090c0; }

.iberian-match-name {
    font-family: var(--iberian-font-display);
    font-size: 1.8rem;
    font-weight: 600;
    color: white;
    margin-bottom: 8px;
}

.iberian-match-location {
    font-size: 1rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 16px;
}

.iberian-match-location i {
    color: var(--iberian-gold);
    margin-right: 6px;
}

.iberian-match-description {
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    margin-bottom: 20px;
}

.iberian-match-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}

.iberian-match-fact {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    color: var(--iberian-mist);
}

.iberian-match-fact i {
    color: var(--iberian-gold);
}

.iberian-match-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* Buttons */
.iberian-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: linear-gradient(135deg, var(--iberian-gold), var(--iberian-gold-dark));
    color: var(--iberian-deep);
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    border-radius: 30px;
    border: none;
    cursor: pointer;
    transition: all var(--iberian-transition-medium);
    box-shadow: 0 4px 15px rgba(201, 160, 48, 0.3);
}

.iberian-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(201, 160, 48, 0.4);
    color: var(--iberian-deep);
    text-decoration: none;
}

.iberian-btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: transparent;
    color: white;
    font-weight: 500;
    font-size: 0.95rem;
    text-decoration: none;
    border-radius: 30px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    cursor: pointer;
    transition: all var(--iberian-transition-medium);
}

.iberian-btn-secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.5);
    color: white;
    text-decoration: none;
}

/* Score Composition Panel (Hero) */
.iberian-score-panel {
    padding: 28px;
    background: rgba(42, 33, 26, 0.6);
    backdrop-filter: blur(10px);
    border-radius: 16px;
    border: 1px solid rgba(201, 160, 48, 0.15);
    max-width: 900px;
    margin: 0 auto;
}

.iberian-score-panel-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}

.iberian-score-panel-title {
    font-family: var(--iberian-font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--iberian-mist);
}

.iberian-score-panel-link {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--iberian-gold);
    text-decoration: none;
    white-space: nowrap;
}

.iberian-score-panel-link:hover {
    color: var(--iberian-gold-light);
    text-decoration: underline;
}

.iberian-score-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 20px;
}

.iberian-score-card {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 18px;
    text-align: left;
}

.iberian-score-card-icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    color: var(--iberian-deep);
}

.iberian-score-card-icon .dna-icon {
    width: 18px;
    height: 18px;
}

.iberian-score-card-icon.ibd {
    background: linear-gradient(135deg, #6b8e23, #9acd32);
}

.iberian-score-card-icon.k15 {
    background: linear-gradient(135deg, #8b4513, #a0522d);
}

.iberian-score-card-icon.umap {
    background: linear-gradient(135deg, #cd7f32, #daa06d);
}

.iberian-score-card-icon.mc {
    background: linear-gradient(135deg, #c9a030, #dbb840);
}

.iberian-score-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    /* Reserve space for up to two lines of label so cards with short (single-line)
       labels like "Monte Carlo" keep their value/bar/hint aligned with cards
       whose longer labels wrap to two lines. */
    min-height: 2.3em;
    margin-bottom: 6px;
}

.iberian-score-card-label {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--iberian-mist);
}

.iberian-score-card-weight {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--iberian-gold);
    background: rgba(201, 160, 48, 0.15);
    padding: 2px 8px;
    border-radius: 10px;
    white-space: nowrap;
}

.iberian-score-card-value {
    font-family: var(--iberian-font-display);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--iberian-gold);
    line-height: 1;
    margin-bottom: 10px;
}

.iberian-score-card-track {
    height: 6px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 12px;
}

.iberian-score-card-hint {
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--iberian-mist-dim);
    margin: 0;
}

/* ========================================
   NO MATCH STATE
   ======================================== */
.iberian-no-match-card {
    max-width: 700px;
    margin: 0 auto;
    padding: 48px;
    background: rgba(42, 33, 26, 0.8);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    text-align: center;
}

.iberian-no-match-icon {
    font-size: 4rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 24px;
}

.iberian-no-match-card h3 {
    font-family: var(--iberian-font-display);
    font-size: 1.8rem;
    font-weight: 600;
    color: white;
    margin-bottom: 16px;
}

.iberian-no-match-explanation {
    font-size: 1.05rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    margin-bottom: 24px;
}

.iberian-insight-card,
.iberian-suggestion-card {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 20px;
    text-align: left;
}

.iberian-insight-card h5,
.iberian-suggestion-card h5 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--iberian-gold);
    margin-bottom: 10px;
}

.iberian-insight-card h5 i,
.iberian-suggestion-card h5 i {
    margin-right: 8px;
}

.iberian-insight-card p,
.iberian-suggestion-card p {
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 12px;
}

.iberian-no-match-note {
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    margin: 24px 0 16px;
}

/* ========================================
   CONNECTIONS SECTION (Bento Grid)
   ======================================== */
.iberian-connections-section {
    background: linear-gradient(180deg, var(--iberian-deep) 0%, var(--iberian-dark) 100%);
}

.iberian-bento-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

@media (min-width: 768px) {
    .iberian-bento-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .iberian-bento-large {
        grid-column: span 1;
        grid-row: span 1;
    }
}

@media (min-width: 1240px) {
    .iberian-bento-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.iberian-bento-card {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    min-height: 300px;
    transition: transform var(--iberian-transition-medium), box-shadow var(--iberian-transition-medium);
    cursor: pointer;
}

.iberian-bento-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
}

.iberian-bento-link {
    display: block;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.iberian-bento-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--iberian-transition-medium);
}

.iberian-bento-card:hover .iberian-bento-bg {
    transform: scale(1.05);
}

.iberian-bento-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.2) 60%);
}

.iberian-bento-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 24px;
    z-index: 1;
}

.iberian-bento-badges {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.iberian-bento-rank {
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    padding: 4px 12px;
    border-radius: 15px;
    font-size: 0.75rem;
    font-weight: 700;
}

.iberian-bento-era {
    background: rgba(255, 255, 255, 0.15);
    color: white;
    padding: 4px 12px;
    border-radius: 15px;
    font-size: 0.7rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iberian-bento-name {
    font-family: var(--iberian-font-display);
    font-size: 1.3rem;
    font-weight: 600;
    color: white;
    margin-bottom: 6px;
}

.iberian-bento-meta,
.iberian-bento-date {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 4px;
}

.iberian-bento-meta i,
.iberian-bento-date i {
    color: var(--iberian-gold);
    margin-right: 6px;
    width: 16px;
    text-align: center;
}

.iberian-bento-years {
    color: var(--iberian-mist-faint);
    margin-left: 8px;
}

.iberian-bento-cta {
    margin-top: 12px;
}

.iberian-bento-view {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: rgba(201, 160, 48, 0.2);
    color: var(--iberian-gold);
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    transition: background var(--iberian-transition-fast);
}

.iberian-bento-card:hover .iberian-bento-view {
    background: var(--iberian-gold);
    color: var(--iberian-deep);
}

/* ========================================
   CULTURES SECTION
   ======================================== */
.iberian-cultures-section {
    background: linear-gradient(180deg, var(--iberian-dark) 0%, var(--iberian-warm) 100%);
    padding: var(--iberian-section-padding) 0;
}

.iberian-cultures-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.iberian-culture-card {
    background: rgba(26, 22, 16, 0.8);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 16px;
    padding: 2rem;
    transition: transform var(--iberian-transition-medium), box-shadow var(--iberian-transition-medium), border-color var(--iberian-transition-medium);
}

.iberian-culture-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5);
    border-color: rgba(201, 160, 48, 0.4);
}

.iberian-culture-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.iberian-culture-icon {
    width: 60px;
    height: 60px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    transition: transform var(--iberian-transition-medium), box-shadow var(--iberian-transition-medium);
}

.iberian-culture-icon:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
}

.iberian-culture-icon img {
    width: 36px;
    height: 36px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
}

/* Culture-specific gradient backgrounds */
.iberian-culture-icon.bell-beaker {
    background: linear-gradient(135deg, #D4A574 0%, #8B6914 100%);
}

.iberian-culture-icon.el-argar {
    background: linear-gradient(135deg, #B8860B 0%, #7A5A08 100%);
}

.iberian-culture-icon.los-millares {
    background: linear-gradient(135deg, #A0522D 0%, #5C3317 100%);
}

.iberian-culture-icon.tartessian {
    background: linear-gradient(135deg, #FFD700 0%, #B8860B 100%);
}

.iberian-culture-icon.celtiberian {
    background: linear-gradient(135deg, #5B7C99 0%, #3A536B 100%);
}

.iberian-culture-icon.iberian {
    background: linear-gradient(135deg, #A52A2A 0%, #5C1515 100%);
}

.iberian-culture-info h4 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: var(--iberian-mist);
}

.iberian-culture-period {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
}

.iberian-culture-description-wrapper {
    margin-bottom: 1.5rem;
    position: relative;
}

.iberian-culture-description {
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    font-size: 0.95rem;
}

.iberian-culture-description-excerpt {
    max-height: 4.5rem;
    overflow: hidden;
    position: relative;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    font-size: 0.95rem;
}

.iberian-culture-description-excerpt::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2rem;
    background: linear-gradient(to bottom, transparent, rgba(26, 22, 16, 0.95));
    pointer-events: none;
}

.iberian-culture-read-more {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
    padding: 0.5rem 1rem;
    background: transparent;
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 6px;
    color: var(--iberian-gold);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--iberian-transition-fast);
    font-family: var(--iberian-font-body);
}

.iberian-culture-read-more:hover {
    background: rgba(201, 160, 48, 0.1);
    border-color: rgba(201, 160, 48, 0.5);
    color: var(--iberian-gold-light);
    transform: translateY(-1px);
}

.iberian-culture-read-more:active {
    transform: translateY(0);
}

.iberian-culture-read-more:focus {
    outline: 2px solid var(--iberian-gold);
    outline-offset: 2px;
}

.iberian-progress-container {
    margin-bottom: 1.5rem;
}

.iberian-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.iberian-progress-label {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    font-weight: 500;
}

.iberian-progress-value {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--iberian-gold);
}

.iberian-progress-bar {
    height: 8px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    overflow: hidden;
}

.iberian-progress-fill {
    height: 100%;
    border-radius: 4px;
    transition: width var(--iberian-transition-slow);
}

.iberian-culture-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.iberian-culture-stat {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

.iberian-culture-stat i {
    color: var(--iberian-gold);
}

.iberian-culture-insight {
    display: flex;
    gap: 0.75rem;
    padding: 1rem;
    background: rgba(201, 160, 48, 0.1);
    border-left: 3px solid var(--iberian-gold);
    border-radius: 4px;
    margin-top: 1rem;
}

.iberian-culture-insight i {
    color: var(--iberian-gold);
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.iberian-culture-insight p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.6;
}

.iberian-cultures-note {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: rgba(201, 160, 48, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 8px;
    margin-top: 2rem;
}

.iberian-cultures-note i {
    color: var(--iberian-gold);
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.iberian-cultures-note p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
}

@media (max-width: 767px) {
    .iberian-cultures-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
    
    .iberian-cultures-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .iberian-culture-card {
        padding: 1.5rem;
    }
    
    .iberian-culture-icon {
        width: 50px;
        height: 50px;
    }
    
    .iberian-culture-icon img {
        width: 30px;
        height: 30px;
    }
    
    .iberian-culture-info h4 {
        font-size: 1.25rem;
    }
    
    .iberian-culture-stats {
        flex-direction: column;
        gap: 0.75rem;
    }
}

/* ========================================
   REGIONAL SECTION
   ======================================== */
.iberian-regional-section {
    background: linear-gradient(180deg, var(--iberian-warm) 0%, var(--iberian-dark) 100%);
    padding: var(--iberian-section-padding) 0;
}

/* ========================================
   CHAMPION REGION CARD
   ======================================== */
.iberian-champion-region {
    position: relative;
    display: flex;
    align-items: center;
    gap: 2.5rem;
    background: rgba(26, 22, 16, 0.95);
    border: 3px solid var(--iberian-gold);
    border-radius: 24px;
    padding: 3rem;
    margin-bottom: 4rem;
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.4), 0 0 30px rgba(201, 160, 48, 0.2);
    transition: all var(--iberian-transition-medium);
    overflow: hidden;
}

.iberian-champion-region::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(201, 160, 48, 0.1) 0%, transparent 70%);
    animation: championGlow 3s ease-in-out infinite;
}

@keyframes championGlow {
    0%, 100% { opacity: 0.3; transform: scale(1); }
    50% { opacity: 0.6; transform: scale(1.1); }
}

.iberian-champion-badge {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: linear-gradient(135deg, var(--iberian-gold) 0%, var(--iberian-bronze) 100%);
    color: var(--iberian-deep);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-weight: 700;
    font-size: 0.9rem;
    box-shadow: 0 4px 15px rgba(201, 160, 48, 0.4);
    z-index: 10;
}

.iberian-champion-badge .dna-icon {
    width: 18px;
    height: 18px;
    color: var(--iberian-deep);
}

.iberian-champion-icon {
    width: 100px;
    height: 100px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: var(--iberian-mist);
    flex-shrink: 0;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
    position: relative;
    z-index: 5;
}

.iberian-champion-content {
    flex: 1;
    position: relative;
    z-index: 5;
}

.iberian-champion-label {
    display: block;
    font-size: 0.85rem;
    color: var(--iberian-gold);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 0.75rem;
    font-weight: 600;
}

.iberian-champion-name {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--iberian-mist);
    margin-bottom: 1rem;
    font-family: var(--iberian-font-display);
}

.iberian-champion-percentage {
    font-size: 4rem;
    font-weight: 700;
    color: var(--iberian-gold);
    font-family: var(--iberian-font-display);
    line-height: 1;
    margin-bottom: 1rem;
    text-shadow: 0 0 20px rgba(201, 160, 48, 0.5);
}

.iberian-champion-context {
    font-size: 1.05rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    margin: 0;
}

.iberian-champion-stats {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: rgba(201, 160, 48, 0.1);
    border-radius: 12px;
    font-size: 1rem;
    color: var(--iberian-mist-dim);
    position: relative;
    z-index: 5;
}

.iberian-champion-stats i {
    color: var(--iberian-gold);
    font-size: 1.1rem;
}

/* ========================================
   REGIONAL BENTO GRID
   ======================================== */
.iberian-regions-bento {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

@media (min-width: 992px) {
    .iberian-regions-bento {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .iberian-region-featured {
        grid-column: span 2;
    }
}

.iberian-region-card {
    position: relative;
    background: rgba(26, 22, 16, 0.85);
    border: 2px solid rgba(201, 160, 48, 0.2);
    border-radius: 20px;
    padding: 2rem;
    transition: all var(--iberian-transition-medium);
    overflow: hidden;
}

.iberian-region-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--iberian-gold), var(--iberian-bronze));
    opacity: 0;
    transition: opacity var(--iberian-transition-medium);
}

.iberian-region-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    border-color: rgba(201, 160, 48, 0.5);
}

.iberian-region-card:hover::before {
    opacity: 1;
}

.iberian-region-rank {
    position: absolute;
    top: 1rem;
    left: 1rem;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--iberian-gold) 0%, var(--iberian-bronze) 100%);
    color: var(--iberian-deep);
    border-radius: 50%;
    font-weight: 700;
    font-size: 0.9rem;
    box-shadow: 0 4px 12px rgba(201, 160, 48, 0.4);
    z-index: 10;
}

.iberian-region-header {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
    padding-top: 0.5rem;
}

.iberian-region-icon {
    width: 60px;
    height: 60px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--iberian-mist);
    flex-shrink: 0;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.iberian-region-title {
    flex: 1;
}

.iberian-region-title h4 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: var(--iberian-mist);
    font-family: var(--iberian-font-display);
}

.iberian-region-country {
    font-size: 0.8rem;
    color: var(--iberian-mist-dim);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iberian-region-context {
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
}

/* ========================================
   REGIONAL PROGRESS BAR
   ======================================== */
.iberian-region-progress {
    margin-bottom: 1.5rem;
}

.iberian-region-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.iberian-region-progress-header span:first-child {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iberian-region-value {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--iberian-gold);
    font-family: var(--iberian-font-display);
}

.iberian-region-progress-track {
    height: 10px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 5px;
    overflow: hidden;
    position: relative;
}

.iberian-region-progress-fill {
    height: 100%;
    border-radius: 5px;
    background: linear-gradient(90deg, var(--iberian-gold) 0%, var(--iberian-bronze) 100%);
    transition: width 1.2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    box-shadow: 0 0 15px rgba(201, 160, 48, 0.4);
}

.iberian-region-progress-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
    animation: progressShine 2s infinite;
}

@keyframes progressShine {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* Enhanced glow for high-percentage matches */
.iberian-region-progress-fill[style*="width: 5"]::after,
.iberian-region-progress-fill[style*="width: 6"]::after,
.iberian-region-progress-fill[style*="width: 7"]::after,
.iberian-region-progress-fill[style*="width: 8"]::after,
.iberian-region-progress-fill[style*="width: 9"]::after,
.iberian-region-progress-fill[style*="width: 10"]::after {
    box-shadow: 0 0 25px rgba(201, 160, 48, 0.6);
}

/* ========================================
   REGIONAL CARD FOOTER
   ======================================== */
.iberian-region-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.iberian-region-matches {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
}

.iberian-region-matches i {
    color: var(--iberian-gold);
    font-size: 1rem;
}

.iberian-region-strength-badge {
    padding: 0.4rem 0.9rem;
    background: rgba(201, 160, 48, 0.15);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--iberian-gold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ========================================
   REGIONAL NOTE
   ======================================== */
.iberian-regional-note {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: rgba(201, 160, 48, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
    margin-top: 2rem;
}

.iberian-regional-note .dna-icon,
.iberian-regional-note i {
    color: var(--iberian-gold);
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.iberian-regional-note .dna-icon {
    width: 20px;
    height: 20px;
}

.iberian-regional-note p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
}

/* ========================================
   COMPACT REGION CARDS
   ======================================== */
.iberian-region-compact {
    padding: 1.5rem;
    cursor: pointer;
}

.iberian-region-compact:hover {
    transform: translateY(-4px);
    border-color: rgba(201, 160, 48, 0.6);
}

/* ========================================
   MINI TIMELINE COMPONENT
   ======================================== */
.iberian-region-timeline {
    display: flex;
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 1rem;
    background: rgba(255, 255, 255, 0.05);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3);
}

.iberian-region-timeline-segment {
    height: 100%;
    transition: opacity 0.2s ease;
    position: relative;
}

.iberian-region-timeline-segment:hover {
    opacity: 0.8;
    z-index: 10;
}

/* Era color scheme */
.iberian-era-mesolithic {
    background-color: #8B4513;
}

.iberian-era-neolithic {
    background-color: #228B22;
}

.iberian-era-chalcolithic {
    background-color: #DAA520;
}

.iberian-era-bronze-age {
    background-color: #CD7F32;
}

.iberian-era-iron-age {
    background-color: #708090;
}

.iberian-era-roman-medieval {
    background-color: #8B0000;
}

.iberian-era-other {
    background-color: #696969;
}

/* ========================================
   COMPACT PROGRESS BAR
   ======================================== */
.iberian-region-progress-compact {
    margin-bottom: 1rem;
}

.iberian-region-progress-header-compact {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.iberian-region-progress-header-compact span:first-child {
    font-size: 0.8rem;
    color: var(--iberian-mist-dim);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iberian-region-footer-compact {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.iberian-region-matches {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

.iberian-region-matches .dna-icon {
    width: 14px;
    height: 14px;
    color: var(--iberian-gold);
}

/* ========================================
   MOBILE RESPONSIVE
   ======================================== */
@media (max-width: 991px) {
    .iberian-regions-bento {
        grid-template-columns: 1fr;
    }
    
    .iberian-region-featured {
        grid-column: span 1;
    }
}

@media (max-width: 767px) {
    .iberian-regional-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
    
    .iberian-region-compact {
        padding: 1.25rem;
    }
    
    .iberian-region-timeline {
        height: 6px;
        margin-bottom: 0.75rem;
    }
    
    .iberian-champion-region {
        flex-direction: column;
        text-align: center;
        padding: 2rem 1.5rem;
        gap: 1.5rem;
    }
    
    .iberian-champion-badge {
        position: static;
        align-self: flex-end;
        margin-bottom: -1rem;
    }
    
    .iberian-champion-icon {
        width: 80px;
        height: 80px;
        font-size: 2.5rem;
    }
    
    .iberian-champion-name {
        font-size: 1.75rem;
    }
    
    .iberian-champion-percentage {
        font-size: 3rem;
    }
    
    .iberian-champion-stats {
        width: 100%;
        justify-content: center;
    }
    
    .iberian-regions-bento {
        gap: 1.5rem;
    }
    
    .iberian-region-card {
        padding: 1.5rem;
    }
    
    .iberian-region-header {
        gap: 1rem;
    }
    
    .iberian-region-icon {
        width: 50px;
        height: 50px;
        font-size: 1.75rem;
    }
    
    .iberian-region-title h4 {
        font-size: 1.3rem;
    }
    
    .iberian-region-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
    
    .iberian-region-strength-badge {
        align-self: flex-end;
    }
}

/* ========================================
   PUBLICATIONS SECTION
   ======================================== */
.iberian-publications-section {
    background: linear-gradient(180deg, var(--iberian-dark) 0%, var(--iberian-deep) 100%);
    padding: var(--iberian-section-padding) 0;
}

.iberian-publications-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.iberian-publication-card {
    background: rgba(26, 22, 16, 0.9);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
    padding: 2rem;
    transition: transform var(--iberian-transition-medium), box-shadow var(--iberian-transition-medium), border-color var(--iberian-transition-medium);
}

.iberian-publication-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5);
    border-color: rgba(201, 160, 48, 0.4);
}

.iberian-publication-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.iberian-publication-icon {
    width: 40px;
    height: 40px;
    background: rgba(201, 160, 48, 0.2);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--iberian-gold);
    flex-shrink: 0;
}

.iberian-publication-meta {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

.iberian-publication-journal {
    font-size: 0.85rem;
    color: var(--iberian-gold);
    font-weight: 600;
}

.iberian-publication-date {
    font-size: 0.8rem;
    color: var(--iberian-mist-dim);
}

.iberian-publication-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin-bottom: 1rem;
    line-height: 1.5;
}

.iberian-publication-authors {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

.iberian-publication-authors i {
    color: var(--iberian-gold);
    margin-right: 0.5rem;
}

.iberian-publication-links {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.iberian-publication-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: rgba(201, 160, 48, 0.1);
    color: var(--iberian-gold);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 6px;
    text-decoration: none;
    font-size: 0.85rem;
    transition: all var(--iberian-transition-fast);
}

.iberian-publication-link:hover {
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    border-color: var(--iberian-gold);
    text-decoration: none;
}

/* Publication Footer (Avatars + Links) */
.iberian-publication-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.5rem;
    gap: 1rem;
}

/* Publication Avatar Stack */
.iberian-publication-avatars {
    display: flex;
    align-items: center;
    position: relative;
    z-index: 1;
}

.iberian-publication-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 2px solid var(--iberian-gold);
    overflow: hidden;
    cursor: pointer;
    margin-left: -12px;
    box-shadow: 0 0 8px rgba(201, 160, 48, 0.4);
    transition: all 0.2s ease;
    position: relative;
    background: var(--iberian-gold);
    flex-shrink: 0;
}

.iberian-publication-avatar:first-child {
    margin-left: 0;
}

.iberian-publication-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.iberian-publication-avatar:hover {
    transform: scale(1.15);
    z-index: 10;
    box-shadow: 0 0 12px rgba(201, 160, 48, 0.8);
    border-color: rgba(255, 255, 255, 0.9);
}

.iberian-publication-avatar:focus {
    outline: 2px solid var(--iberian-gold);
    outline-offset: 2px;
}

.iberian-publication-avatar-count {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    font-weight: 600;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: -12px;
    border: 2px solid var(--iberian-deep);
    box-shadow: 0 0 8px rgba(201, 160, 48, 0.4);
    cursor: default;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

/* Publication Samples Section */
.iberian-publication-samples {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(201, 160, 48, 0.2);
}

.iberian-publication-samples-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--iberian-gold);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.iberian-publication-samples-title i {
    font-size: 0.85rem;
}

.iberian-publication-samples-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 1rem;
}

.iberian-publication-sample {
    background: rgba(201, 160, 48, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 8px;
    padding: 0.75rem;
    cursor: pointer;
    transition: all var(--iberian-transition-fast);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.iberian-publication-sample:hover {
    background: rgba(201, 160, 48, 0.1);
    border-color: rgba(201, 160, 48, 0.4);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.iberian-publication-sample-portrait {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(201, 160, 48, 0.3);
    background: rgba(201, 160, 48, 0.1);
    flex-shrink: 0;
}

.iberian-publication-sample-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.iberian-publication-sample-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    width: 100%;
    text-align: center;
}

.iberian-publication-sample-id {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--iberian-mist);
    word-break: break-word;
}

.iberian-publication-sample-location,
.iberian-publication-sample-era {
    font-size: 0.7rem;
    color: var(--iberian-mist-dim);
    display: flex;
    align-items: center;
    gap: 0.25rem;
    line-height: 1.3;
}

.iberian-publication-sample-location i,
.iberian-publication-sample-era i {
    font-size: 0.65rem;
    color: var(--iberian-gold);
    flex-shrink: 0;
}

.iberian-publications-note {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: rgba(201, 160, 48, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 8px;
    margin-top: 2rem;
}

.iberian-publications-note i {
    color: var(--iberian-gold);
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.iberian-publications-note p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
}

.iberian-link {
    color: var(--iberian-gold);
    text-decoration: underline;
    transition: color var(--iberian-transition-fast);
}

.iberian-link:hover {
    color: var(--iberian-gold-light);
    text-decoration: underline;
}

@media (max-width: 767px) {
    .iberian-publications-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
    
    .iberian-publications-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .iberian-publication-card {
        padding: 1.5rem;
    }
    
    .iberian-publication-title {
        font-size: 1rem;
    }
    
    .iberian-publication-samples-grid {
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
        gap: 0.75rem;
    }
    
    .iberian-publication-sample {
        padding: 0.5rem;
    }
    
    .iberian-publication-sample-portrait {
        width: 50px;
        height: 50px;
    }
    
    .iberian-publication-sample-id {
        font-size: 0.7rem;
    }
    
    .iberian-publication-sample-location,
    .iberian-publication-sample-era {
        font-size: 0.65rem;
    }
    
    .iberian-publication-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    
    .iberian-publication-avatars {
        width: 100%;
    }
    
    .iberian-publication-avatar {
        width: 36px;
        height: 36px;
    }
    
    .iberian-publication-avatar-count {
        width: 36px;
        height: 36px;
        font-size: 0.75rem;
    }
    
    .iberian-publication-links {
        width: 100%;
        justify-content: flex-start;
    }
}

/* ========================================
   HAPLOGROUP DISTRIBUTION SECTION
   ======================================== */
.iberian-haplogroup-distribution-section {
    background: linear-gradient(180deg, var(--iberian-deep) 0%, var(--iberian-dark) 100%);
    padding: var(--iberian-section-padding) 0;
}

.iberian-haplogroup-tabs {
    display: flex;
    gap: 1rem;
    margin-bottom: 2rem;
    border-bottom: 2px solid rgba(201, 160, 48, 0.2);
}

.iberian-haplogroup-tab {
    padding: 1rem 2rem;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--iberian-mist-dim);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--iberian-transition-fast);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.iberian-haplogroup-tab:hover {
    color: var(--iberian-gold);
}

.iberian-haplogroup-tab.active {
    color: var(--iberian-gold);
    border-bottom-color: var(--iberian-gold);
}

.iberian-haplogroup-content {
    display: none;
}

.iberian-haplogroup-content.active {
    display: block;
}

.iberian-haplogroup-era-card {
    background: rgba(26, 22, 16, 0.8);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 2rem;
}

.iberian-haplogroup-era-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(201, 160, 48, 0.2);
}

.iberian-haplogroup-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.iberian-haplogroup-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.iberian-haplogroup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.iberian-haplogroup-code {
    font-family: 'Courier New', monospace;
    font-size: 1rem;
    font-weight: 600;
    color: var(--iberian-gold);
}

.iberian-haplogroup-stats {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

.iberian-haplogroup-bar {
    height: 8px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    overflow: hidden;
}

.iberian-haplogroup-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--iberian-gold), var(--iberian-gold-light));
    border-radius: 4px;
    transition: width var(--iberian-transition-slow);
}

.iberian-haplogroup-note {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: rgba(201, 160, 48, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 8px;
    margin-top: 2rem;
}

.iberian-haplogroup-note i {
    color: var(--iberian-gold);
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.iberian-haplogroup-note p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
}

/* ========================================
   PREMIUM HAPLOGROUP DISTRIBUTION STYLES
   ======================================== */

/* Hero Stats Section */
.iberian-haplo-hero-stats {
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin: 3rem 0 2.5rem;
    flex-wrap: wrap;
}

.iberian-haplo-stat-card {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 16px;
    padding: 2rem 2.5rem;
    text-align: center;
    min-width: 160px;
    transition: all var(--iberian-transition-fast);
}

.iberian-haplo-stat-card:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(201, 160, 48, 0.4);
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(201, 160, 48, 0.15);
}

.iberian-haplo-stat-value {
    font-family: var(--iberian-font-serif, 'Georgia', serif);
    font-size: 3rem;
    font-weight: 700;
    color: var(--iberian-gold);
    line-height: 1;
    margin-bottom: 0.5rem;
    display: block;
}

.iberian-haplo-stat-label {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 500;
}

/* Enhanced Tab Styling */
.iberian-haplogroup-tabs {
    display: flex;
    gap: 1rem;
    margin-bottom: 3rem;
    border-bottom: 2px solid rgba(201, 160, 48, 0.2);
    position: relative;
}

.iberian-haplogroup-tab {
    padding: 1.25rem 2.5rem;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--iberian-mist-dim);
    font-size: 1.05rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    position: relative;
}

.iberian-haplogroup-tab:hover {
    color: var(--iberian-gold);
    transform: translateY(-2px);
}

.iberian-haplogroup-tab.active {
    color: var(--iberian-gold);
    border-bottom-color: var(--iberian-gold);
}

.iberian-haplogroup-tab.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--iberian-gold), transparent);
    opacity: 0.5;
}

/* Premium Era Cards */
.iberian-haplo-era-card-premium {
    background: rgba(26, 22, 16, 0.9);
    border: 1px solid rgba(201, 160, 48, 0.25);
    border-radius: 16px;
    padding: 2.5rem;
    margin-bottom: 2.5rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    transition: all var(--iberian-transition-fast);
    opacity: 0;
    animation: fadeInUp 0.6s ease-out forwards;
}

.iberian-haplo-era-card-premium:nth-child(1) { animation-delay: 0.1s; }
.iberian-haplo-era-card-premium:nth-child(2) { animation-delay: 0.2s; }
.iberian-haplo-era-card-premium:nth-child(3) { animation-delay: 0.3s; }
.iberian-haplo-era-card-premium:nth-child(4) { animation-delay: 0.4s; }
.iberian-haplo-era-card-premium:nth-child(5) { animation-delay: 0.5s; }
.iberian-haplo-era-card-premium:nth-child(6) { animation-delay: 0.6s; }

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.iberian-haplogroup-era-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(201, 160, 48, 0.2);
}

.iberian-haplogroup-era-title {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin: 0;
}

.iberian-haplogroup-era-count {
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    background: rgba(201, 160, 48, 0.1);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    border: 1px solid rgba(201, 160, 48, 0.2);
}

/* Collapsible Era Card Styles */
.iberian-haplo-era-toggle {
    cursor: pointer;
    user-select: none;
    transition: background var(--iberian-transition-fast);
}

.iberian-haplo-era-toggle:hover {
    background: rgba(201, 160, 48, 0.05);
}

.iberian-haplo-era-toggle:focus {
    outline: 2px solid var(--iberian-gold);
    outline-offset: 2px;
    border-radius: 4px;
}

.iberian-haplo-era-header-right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.iberian-haplo-collapse-icon {
    width: 20px;
    height: 20px;
    transition: transform var(--iberian-transition-fast);
    color: var(--iberian-gold);
    flex-shrink: 0;
}

.iberian-haplogroup-era-card.collapsed .iberian-haplo-collapse-icon {
    transform: rotate(-90deg);
}

.iberian-haplo-era-body {
    overflow: hidden;
    transition: max-height var(--iberian-transition-medium), opacity var(--iberian-transition-medium);
    max-height: 5000px;
    opacity: 1;
}

.iberian-haplogroup-era-card.collapsed .iberian-haplo-era-body {
    max-height: 0;
    opacity: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
}

/* Grid Layout for Haplogroups */
.iberian-haplo-era-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
}

/* Premium Haplogroup Items */
.iberian-haplo-item-premium {
    background: rgba(26, 22, 16, 0.9);
    border: 1px solid rgba(201, 160, 48, 0.15);
    border-radius: 12px;
    padding: 1.5rem;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.iberian-haplo-item-premium::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--iberian-gold), var(--iberian-gold-light));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.iberian-haplo-item-premium:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(201, 160, 48, 0.15);
    border-color: rgba(201, 160, 48, 0.3);
}

.iberian-haplo-item-premium:hover::before {
    transform: scaleX(1);
}

.iberian-haplo-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.iberian-haplogroup-code {
    font-family: 'Courier New', monospace;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--iberian-gold);
    letter-spacing: 0.5px;
}

.iberian-haplo-count-number {
    font-family: var(--iberian-font-serif, 'Georgia', serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--iberian-mist);
    background: rgba(201, 160, 48, 0.1);
    padding: 0.25rem 0.75rem;
    border-radius: 8px;
    border: 1px solid rgba(201, 160, 48, 0.2);
}

.iberian-haplo-percentage-display {
    margin-bottom: 0.75rem;
}

.iberian-haplo-percentage-value {
    font-family: var(--iberian-font-serif, 'Georgia', serif);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--iberian-gold-light);
}

/* Premium Progress Bars */
.iberian-haplo-bar-premium {
    height: 10px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 5px;
    overflow: hidden;
    position: relative;
}

.iberian-haplo-bar-fill-ydna {
    height: 100%;
    background: linear-gradient(90deg, #4A90E2 0%, #6BB3FF 100%);
    border-radius: 5px;
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 0 10px rgba(74, 144, 226, 0.3);
}

.iberian-haplo-bar-fill-mtdna {
    height: 100%;
    background: linear-gradient(90deg, #E24A90 0%, #FF6BB3 100%);
    border-radius: 5px;
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 0 10px rgba(226, 74, 144, 0.3);
}

/* Sample Portraits Section */
.iberian-haplo-samples {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.iberian-haplo-sample-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 60px;
    gap: 0.25rem;
}

.iberian-haplo-sample-thumb {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(201, 160, 48, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.iberian-haplo-sample-thumb:hover {
    border-color: var(--iberian-gold);
    transform: scale(1.1);
    box-shadow: 0 0 8px rgba(201, 160, 48, 0.4);
    z-index: 1;
    position: relative;
}

.iberian-haplo-sample-id {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--iberian-gold-light);
    line-height: 1.2;
    word-break: break-word;
    max-width: 100%;
}

.iberian-haplo-sample-locality {
    font-size: 0.6rem;
    color: var(--iberian-mist-dim);
    line-height: 1.2;
    word-break: break-word;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.iberian-haplo-more-indicator {
    font-size: 0.75rem;
    color: var(--iberian-mist-dim);
    font-weight: 500;
    margin-left: 0.25rem;
}

/* Region Tags Section */
.iberian-haplo-regions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.iberian-haplo-region-tag {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    background: rgba(201, 160, 48, 0.1);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--iberian-gold-light);
    white-space: nowrap;
}

/* Enhanced Note Section */
.iberian-haplogroup-note {
    display: flex;
    gap: 1rem;
    padding: 2rem;
    background: rgba(201, 160, 48, 0.05);
    backdrop-filter: blur(5px);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
    margin-top: 3rem;
    align-items: flex-start;
}

.iberian-haplogroup-note p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
}

.iberian-haplogroup-note p strong {
    color: var(--iberian-gold);
    font-weight: 600;
}

@media (max-width: 767px) {
    .iberian-haplogroup-distribution-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
    
    .iberian-haplo-hero-stats {
        gap: 1rem;
        margin: 2rem 0 2rem;
    }
    
    .iberian-haplo-stat-card {
        padding: 1.5rem 1.75rem;
        min-width: 120px;
        flex: 1;
    }
    
    .iberian-haplo-stat-value {
        font-size: 2.25rem;
    }
    
    .iberian-haplogroup-tabs {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .iberian-haplogroup-tab {
        padding: 1rem 1.5rem;
        justify-content: center;
    }
    
    .iberian-haplo-era-card-premium {
        padding: 1.5rem;
    }
    
    .iberian-haplo-era-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .iberian-haplogroup-era-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
    
    .iberian-haplo-era-header-right {
        width: 100%;
        justify-content: space-between;
    }
    
    .iberian-haplo-collapse-icon {
        width: 18px;
        height: 18px;
    }
    
    .iberian-haplo-samples {
        gap: 0.4rem;
        margin-top: 0.75rem;
        margin-bottom: 0.5rem;
    }
    
    .iberian-haplo-sample-item {
        max-width: 50px;
    }
    
    .iberian-haplo-sample-thumb {
        width: 28px;
        height: 28px;
        border-width: 1.5px;
    }
    
    .iberian-haplo-sample-id {
        font-size: 0.6rem;
    }
    
    .iberian-haplo-sample-locality {
        font-size: 0.55rem;
    }
    
    .iberian-haplo-more-indicator {
        font-size: 0.7rem;
    }
    
    .iberian-haplo-regions {
        gap: 0.4rem;
        margin-top: 0.5rem;
    }
    
    .iberian-haplo-region-tag {
        padding: 0.2rem 0.6rem;
        font-size: 0.7rem;
    }
    
    @media (max-width: 575px) {
        .iberian-haplo-samples {
            /* Show max 2 portraits on very small screens */
        }
        
        .iberian-haplo-sample-thumb {
            width: 24px;
            height: 24px;
        }
    }
}

/* ========================================
   EXPORT TOOLBAR
   ======================================== */
.iberian-export-toolbar {
    position: relative;
    z-index: 100;
    margin: 2rem 0;
    padding: 1rem 0;
    display: none; /* Hidden for now - enable when needed */
}

.iberian-export-buttons {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
}

.iberian-export-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: rgba(201, 160, 48, 0.1);
    color: var(--iberian-gold);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--iberian-transition-fast);
}

.iberian-export-btn:hover {
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    border-color: var(--iberian-gold);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(201, 160, 48, 0.3);
}

.iberian-export-btn-primary {
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    border-color: var(--iberian-gold);
    font-weight: 600;
}

.iberian-export-btn-primary:hover {
    background: var(--iberian-gold-light);
    box-shadow: 0 4px 16px rgba(201, 160, 48, 0.4);
}

@media (max-width: 767px) {
    .iberian-export-toolbar {
        padding: 0.75rem 0;
    }
    
    .iberian-export-buttons {
        justify-content: center;
    }
    
    .iberian-export-btn {
        padding: 0.6rem 1.2rem;
        font-size: 0.85rem;
    }
}

@media print {
    .iberian-export-toolbar {
        display: none;
    }
    
    .iberian-page-nav,
    .iberian-bottom-nav,
    .iberian-back-to-top {
        display: none !important;
    }
}

/* ========================================
   ARCHAEOLOGICAL SITES SECTION
   ======================================== */
.iberian-sites-section {
    background: linear-gradient(180deg, var(--iberian-dark) 0%, var(--iberian-warm) 100%);
    padding: var(--iberian-section-padding) 0;
}

.iberian-sites-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.iberian-site-card {
    background: rgba(26, 22, 16, 0.9);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 16px;
    overflow: hidden;
    transition: transform var(--iberian-transition-medium), box-shadow var(--iberian-transition-medium);
}

.iberian-site-card-clickable {
    display: block;
    width: 100%;
    padding: 0;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    appearance: none;
}

.iberian-site-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5);
}

.iberian-site-card-clickable:focus-visible {
    outline: 2px solid var(--iberian-gold);
    outline-offset: 3px;
}

.iberian-site-image {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.iberian-site-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--iberian-transition-medium);
}

.iberian-site-card:hover .iberian-site-image img {
    transform: scale(1.1);
}

.iberian-site-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 60%);
}

.iberian-site-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    padding: 0.5rem 1rem;
    background: rgba(201, 160, 48, 0.9);
    color: var(--iberian-deep);
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.iberian-site-content {
    padding: 1.5rem;
}

.iberian-site-name {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin-bottom: 0.5rem;
}

.iberian-site-location {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.iberian-site-location .dna-icon {
    color: var(--iberian-gold);
}

.iberian-site-periods {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 1rem;
    padding: 0.5rem;
    background: rgba(201, 160, 48, 0.1);
    border-radius: 6px;
}

.iberian-site-periods .dna-icon {
    color: var(--iberian-gold);
}

.iberian-site-stats {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.iberian-site-stat {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

.iberian-site-stat .dna-icon {
    color: var(--iberian-gold);
}

.iberian-site-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--iberian-gold-light);
    font-size: 0.9rem;
    font-weight: 600;
}

.iberian-site-footer .dna-icon {
    width: 14px;
    height: 14px;
}

.iberian-sites-note {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: rgba(201, 160, 48, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 8px;
    margin-top: 2rem;
}

.iberian-sites-note .dna-icon {
    color: var(--iberian-gold);
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.iberian-sites-note p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
}

@media (max-width: 767px) {
    .iberian-sites-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
    
    .iberian-sites-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .iberian-site-image {
        height: 180px;
    }
}

/* ========================================
   DISTRIBUTION CHARTS SECTION
   ======================================== */
.iberian-distribution-section {
    background: linear-gradient(180deg, var(--iberian-warm) 0%, var(--iberian-dark) 100%);
    padding: var(--iberian-section-padding) 0;
}

.iberian-distribution-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
    margin-bottom: 2rem;
}

.iberian-distribution-card {
    background: rgba(26, 22, 16, 0.9);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 16px;
    padding: 2rem;
}

.iberian-distribution-title {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(201, 160, 48, 0.2);
}

.iberian-distribution-title i {
    color: var(--iberian-gold);
}

.iberian-distribution-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.iberian-distribution-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.iberian-distribution-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.iberian-distribution-label {
    font-size: 0.95rem;
    color: var(--iberian-mist);
    font-weight: 500;
}

.iberian-distribution-value {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

.iberian-distribution-bar {
    height: 10px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 5px;
    overflow: hidden;
}

.iberian-distribution-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--iberian-gold), var(--iberian-gold-light));
    border-radius: 5px;
    transition: width var(--iberian-transition-slow);
}

@media (max-width: 767px) {
    .iberian-distribution-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
    
    .iberian-distribution-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .iberian-distribution-card {
        padding: 1.5rem;
    }
}

/* ========================================
   GENETIC CONTINUITY SECTION - Premium Redesign
   ======================================== */
.iberian-continuity-section {
    background: linear-gradient(180deg, var(--iberian-dark) 0%, var(--iberian-deep) 100%);
    padding: var(--iberian-section-padding) 0;
    position: relative;
    overflow: hidden;
}

.iberian-continuity-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(ellipse at 50% 0%, rgba(201, 160, 48, 0.08) 0%, transparent 60%);
    pointer-events: none;
}

/* Featured Narrative Card */
.iberian-gc-narrative-card {
    position: relative;
    background: rgba(26, 22, 16, 0.95);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 20px;
    padding: 2.5rem 3rem;
    margin-bottom: 3rem;
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    box-shadow: 
        0 10px 40px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    overflow: hidden;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.iberian-gc-narrative-card.gc-animated {
    opacity: 1;
    transform: translateY(0);
}

.iberian-gc-narrative-decoration {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--iberian-gold), var(--iberian-gold-dark));
    animation: gcPulseGlow 2s ease-in-out infinite;
}

@keyframes gcPulseGlow {
    0%, 100% {
        box-shadow: 0 0 10px rgba(201, 160, 48, 0.4);
    }
    50% {
        box-shadow: 0 0 20px rgba(201, 160, 48, 0.7);
    }
}

.iberian-gc-narrative-icon {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, var(--iberian-gold), var(--iberian-gold-light));
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 20px rgba(201, 160, 48, 0.3);
}

.iberian-gc-narrative-icon .dna-icon {
    font-size: 1.75rem;
    color: var(--iberian-deep);
}

.iberian-gc-narrative-content {
    flex: 1;
}

.iberian-gc-narrative-text {
    font-family: var(--iberian-font-display);
    font-size: 1.15rem;
    font-style: italic;
    color: var(--iberian-mist-dim);
    line-height: 1.8;
    margin: 0;
}

/* Heritage Period Cards Grid */
.iberian-gc-periods-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-bottom: 3rem;
}

/* Individual Period Card */
.iberian-gc-period-card {
    position: relative;
    background: rgba(26, 22, 16, 0.9);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 20px;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
    transform: translateY(30px);
}

.iberian-gc-period-card.gc-animated {
    opacity: 1;
    transform: translateY(0);
}

.iberian-gc-period-card:hover {
    transform: translateY(-8px);
    border-color: rgba(201, 160, 48, 0.4);
    box-shadow: 
        0 16px 48px rgba(0, 0, 0, 0.4),
        0 0 0 1px rgba(201, 160, 48, 0.2);
}

/* Dominant Period Card Highlight */
.iberian-gc-period-dominant {
    border-color: rgba(201, 160, 48, 0.5);
    background: rgba(201, 160, 48, 0.08);
    animation: gcDominantPulse 3s ease-in-out infinite;
}

@keyframes gcDominantPulse {
    0%, 100% {
        box-shadow: 
            0 8px 32px rgba(0, 0, 0, 0.3),
            0 0 0 0 rgba(201, 160, 48, 0);
    }
    50% {
        box-shadow: 
            0 8px 32px rgba(0, 0, 0, 0.3),
            0 0 40px rgba(201, 160, 48, 0.15);
    }
}

/* Card Header */
.iberian-gc-period-header {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    min-height: 40px;
}

.iberian-gc-period-icon-badge {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, rgba(201, 160, 48, 0.2), rgba(201, 160, 48, 0.1));
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.iberian-gc-period-card:hover .iberian-gc-period-icon-badge {
    background: linear-gradient(135deg, var(--iberian-gold), var(--iberian-gold-light));
    border-color: var(--iberian-gold);
}

.iberian-gc-period-icon-badge i {
    font-size: 1.25rem;
    color: var(--iberian-gold);
    transition: color 0.3s ease;
}

.iberian-gc-period-card:hover .iberian-gc-period-icon-badge i {
    color: var(--iberian-deep);
}

.iberian-gc-dominant-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    background: linear-gradient(135deg, var(--iberian-gold), var(--iberian-gold-light));
    color: var(--iberian-deep);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 20px;
}

/* Animated Percentage Ring */
.iberian-gc-ring-container {
    display: flex;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.iberian-gc-ring {
    position: relative;
    width: 120px;
    height: 120px;
}

.iberian-gc-ring-svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.iberian-gc-ring-bg {
    fill: none;
    stroke: rgba(201, 160, 48, 0.15);
    stroke-width: 8;
}

.iberian-gc-ring-progress {
    fill: none;
    stroke: var(--iberian-gold);
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: var(--circumference);
    stroke-dashoffset: var(--circumference);
    transition: stroke-dashoffset 1.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.iberian-gc-period-card.gc-animated .iberian-gc-ring-progress {
    stroke-dashoffset: var(--offset);
}

.iberian-gc-ring-value {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.iberian-gc-ring-number {
    display: block;
    font-family: var(--iberian-font-display);
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--iberian-mist);
    line-height: 1;
}

.iberian-gc-ring-percent {
    font-size: 1rem;
    font-weight: 400;
    color: var(--iberian-gold);
}

/* Period Titles */
.iberian-gc-period-titles {
    margin-bottom: 1rem;
}

.iberian-gc-period-title {
    font-family: var(--iberian-font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin: 0 0 0.35rem;
}

.iberian-gc-period-subtitle {
    font-size: 0.9rem;
    color: var(--iberian-gold);
    margin: 0 0 0.5rem;
}

.iberian-gc-period-timespan {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    color: var(--iberian-mist-faint);
}

.iberian-gc-period-timespan .dna-icon {
    font-size: 0.7rem;
}

/* Expandable Detail */
.iberian-gc-period-expand {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(201, 160, 48, 0.1);
}

.iberian-gc-expand-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: transparent;
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 20px;
    color: var(--iberian-gold);
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}

.iberian-gc-expand-btn:hover {
    background: rgba(201, 160, 48, 0.1);
    border-color: var(--iberian-gold);
}

.iberian-gc-expand-btn .dna-icon {
    font-size: 0.7rem;
    transition: transform 0.3s ease;
}

.iberian-gc-expand-btn[aria-expanded="true"] .dna-icon {
    transform: rotate(180deg);
}

.iberian-gc-expand-btn[aria-expanded="true"] .iberian-gc-expand-text::before {
    content: 'Show less';
}

.iberian-gc-expand-btn[aria-expanded="true"] .iberian-gc-expand-text {
    font-size: 0;
}

.iberian-gc-expand-btn[aria-expanded="true"] .iberian-gc-expand-text::before {
    font-size: 0.8rem;
}

/* Detail Panel */
.iberian-gc-period-detail {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.4s ease;
}

.iberian-gc-period-detail.expanded {
    max-height: 300px;
    padding-top: 1rem;
}

.iberian-gc-period-description {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    text-align: left;
    margin: 0;
    padding: 1rem;
    background: rgba(201, 160, 48, 0.05);
    border-radius: 12px;
    font-style: italic;
}

/* Insight Callout Card */
.iberian-gc-insight-card {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 2rem;
    background: rgba(201, 160, 48, 0.08);
    border: 1px solid rgba(201, 160, 48, 0.25);
    border-radius: 16px;
    overflow: hidden;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.iberian-gc-insight-card.gc-animated {
    opacity: 1;
    transform: translateY(0);
}

.iberian-gc-insight-glow {
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at 30% 30%, rgba(201, 160, 48, 0.1) 0%, transparent 40%);
    pointer-events: none;
}

.iberian-gc-insight-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, var(--iberian-gold), var(--iberian-gold-light));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    animation: gcInsightGlow 2s ease-in-out infinite;
}

@keyframes gcInsightGlow {
    0%, 100% {
        box-shadow: 0 0 15px rgba(201, 160, 48, 0.3);
    }
    50% {
        box-shadow: 0 0 25px rgba(201, 160, 48, 0.5);
    }
}

.iberian-gc-insight-icon .dna-icon {
    font-size: 1.25rem;
    color: var(--iberian-deep);
}

.iberian-gc-insight-content {
    flex: 1;
}

.iberian-gc-insight-title {
    font-family: var(--iberian-font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--iberian-gold);
    margin: 0 0 0.75rem;
}

.iberian-gc-insight-content p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--iberian-mist);
    line-height: 1.8;
}

/* Responsive Styles */
@media (max-width: 991px) {
    .iberian-gc-periods-grid {
        gap: 1.25rem;
    }
    
    .iberian-gc-period-card {
        padding: 1.5rem;
    }
    
    .iberian-gc-ring {
        width: 100px;
        height: 100px;
    }
    
    .iberian-gc-ring-number {
        font-size: 1.5rem;
    }
}

@media (max-width: 767px) {
    .iberian-continuity-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
    
    .iberian-gc-narrative-card {
        flex-direction: column;
        padding: 2rem 1.5rem;
        text-align: center;
    }
    
    .iberian-gc-narrative-icon {
        margin: 0 auto;
    }
    
    .iberian-gc-narrative-text {
        font-size: 1rem;
    }
    
    .iberian-gc-periods-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .iberian-gc-period-card {
        padding: 2rem;
    }
    
    .iberian-gc-ring {
        width: 130px;
        height: 130px;
    }
    
    .iberian-gc-ring-number {
        font-size: 2rem;
    }
    
    .iberian-gc-insight-card {
        flex-direction: column;
        text-align: center;
        padding: 1.5rem;
    }
    
    .iberian-gc-insight-icon {
        margin: 0 auto;
    }
}

/* ========================================
   SOCIAL SCORE CARD TEMPLATE
   ======================================== */
.iberian-social-card-template {
    width: 1200px;
    height: 630px;
    position: absolute;
    left: -9999px;
    top: -9999px;
    overflow: hidden;
}

.iberian-social-card-container {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 60px;
    box-sizing: border-box;
}

.iberian-social-card-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #1a1610 0%, #2a211a 50%, #3d3028 100%);
    z-index: 0;
}

.iberian-social-card-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: 
        radial-gradient(circle at 20% 30%, rgba(201, 160, 48, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(205, 127, 50, 0.1) 0%, transparent 50%);
    z-index: 1;
}

.iberian-social-card-content {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    text-align: center;
}

.iberian-social-card-header {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
}

.iberian-social-card-logo img {
    height: 40px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

.iberian-social-card-title {
    font-family: var(--iberian-font-display);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--iberian-mist);
    text-transform: uppercase;
    letter-spacing: 2px;
}

.iberian-social-card-index {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 40px 0;
}

.iberian-social-card-index-ring {
    width: 280px;
    height: 280px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.iberian-social-card-index-inner {
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: var(--iberian-deep);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 4px solid rgba(201, 160, 48, 0.3);
}

.iberian-social-card-index-label {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 12px;
    font-weight: 600;
}

.iberian-social-card-index-value {
    font-family: var(--iberian-font-display);
    font-size: 5rem;
    font-weight: 700;
    color: var(--iberian-gold);
    line-height: 1;
}

.iberian-social-card-index-unit {
    font-size: 2.5rem;
    font-weight: 400;
    margin-left: 4px;
}

.iberian-social-card-period {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-bottom: 40px;
    padding: 24px 40px;
    background: rgba(26, 22, 16, 0.8);
    border: 2px solid rgba(201, 160, 48, 0.3);
    border-radius: 16px;
    backdrop-filter: blur(10px);
}

.iberian-social-card-period-icon {
    width: 64px;
    height: 64px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: white;
    flex-shrink: 0;
}

.iberian-social-card-period-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.iberian-social-card-period-label {
    font-size: 0.75rem;
    color: var(--iberian-mist-dim);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}

.iberian-social-card-period-name {
    font-family: var(--iberian-font-display);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--iberian-mist);
    line-height: 1.2;
}

.iberian-social-card-period-score {
    font-size: 1rem;
    color: var(--iberian-gold);
    font-weight: 600;
}

.iberian-social-card-sample {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 1.1rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 20px;
}

.iberian-social-card-sample i {
    color: var(--iberian-gold);
    font-size: 1.2rem;
}

.iberian-social-card-footer {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid rgba(201, 160, 48, 0.2);
}

.iberian-social-card-url {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    font-family: 'Courier New', monospace;
    word-break: break-all;
}

.iberian-social-card-branding {
    font-size: 1rem;
    font-weight: 700;
    color: var(--iberian-gold);
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* Ensure fonts are loaded for canvas rendering */
.iberian-social-card-template {
    font-family: var(--iberian-font-body), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.iberian-social-card-template * {
    box-sizing: border-box;
}

/* ========================================
   PERIODS SECTION
   ======================================== */
.iberian-periods-section {
    background: var(--iberian-dark);
}

.iberian-periods-detail-title {
    font-family: var(--iberian-font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin: 40px 0 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(201, 160, 48, 0.15);
    display: flex;
    align-items: center;
    gap: 10px;
}

.iberian-periods-detail-title i {
    color: var(--iberian-gold);
}

.iberian-periods-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

.iberian-period-card {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 28px;
    transition: transform var(--iberian-transition-medium), background var(--iberian-transition-medium);
}

.iberian-period-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.08);
}

.iberian-period-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.iberian-period-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
}

/* Period-specific colors */
.iberian-period-card.mesolithic .iberian-period-icon { background: rgba(139, 90, 43, 0.3); color: #d4a265; }
.iberian-period-card.neolithic .iberian-period-icon { background: rgba(34, 139, 34, 0.3); color: #90c090; }
.iberian-period-card.chalcolithic .iberian-period-icon { background: rgba(184, 115, 51, 0.3); color: #d4a576; }
.iberian-period-card.bronze-age .iberian-period-icon { background: rgba(205, 127, 50, 0.3); color: #daa06d; }
.iberian-period-card.iron-age .iberian-period-icon { background: rgba(105, 105, 105, 0.3); color: #a0a0a0; }
.iberian-period-card.roman-medieval .iberian-period-icon { background: rgba(128, 0, 128, 0.3); color: #c090c0; }

.iberian-period-name {
    font-family: var(--iberian-font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: white;
    margin: 0;
}

.iberian-period-score {
    text-align: center;
    margin-bottom: 12px;
}

.iberian-period-value {
    font-family: var(--iberian-font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--iberian-gold);
}

.iberian-period-bar {
    height: 8px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    overflow: hidden;
}

.iberian-period-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--iberian-terra), var(--iberian-gold));
    border-radius: 4px;
    transition: width 1s ease-out;
}

/* UMAP Distribution */
.iberian-umap-distribution {
    margin-top: 60px;
    padding: 32px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 16px;
    border: 1px solid rgba(201, 160, 48, 0.15);
}

.iberian-umap-distribution h4 {
    font-family: var(--iberian-font-display);
    font-size: 1.3rem;
    font-weight: 600;
    color: white;
    margin-bottom: 12px;
}

.iberian-umap-distribution h4 i {
    color: var(--iberian-gold);
    margin-right: 10px;
}

.iberian-umap-description {
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 24px;
}

.iberian-umap-cultures {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.iberian-umap-culture-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.iberian-umap-culture-name {
    flex: 0 0 120px;
    font-size: 0.9rem;
    color: var(--iberian-mist);
}

.iberian-umap-culture-bar {
    flex: 1;
    height: 8px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    overflow: hidden;
}

.iberian-umap-culture-fill {
    height: 100%;
    background: var(--iberian-terra);
    border-radius: 4px;
}

.iberian-umap-culture-count {
    flex: 0 0 40px;
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    text-align: right;
}

/* ========================================
   VISUAL TIMELINE SECTION
   ======================================== */
.iberian-timeline-wrapper {
    margin: 40px 0;
}

.iberian-timeline-container {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(201, 160, 48, 0.15);
    border-radius: 16px;
    padding: 32px;
    overflow: hidden;
}

@media (max-width: 767px) {
    .iberian-timeline-container {
        padding: 20px 16px;
    }
}

.iberian-timeline-header {
    text-align: center;
    margin-bottom: 24px;
}

.iberian-timeline-title {
    font-family: var(--iberian-font-display);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.iberian-timeline-title i {
    color: var(--iberian-gold);
}

.iberian-timeline-subtitle {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    margin: 0;
}

/* Timeline Legend */
.iberian-timeline-legend {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px 24px;
    margin-bottom: 28px;
}

.iberian-timeline-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    color: var(--iberian-mist);
}

.iberian-timeline-legend-dot {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    background: var(--era-color);
}

.iberian-timeline-legend-name {
    font-weight: 500;
}

.iberian-timeline-legend-score {
    color: var(--iberian-gold);
    font-weight: 600;
    font-size: 0.9rem;
}

/* Timeline Track */
.iberian-timeline-track {
    position: relative;
    height: 320px;
    margin: 32px 0;
}

@media (max-width: 767px) {
    .iberian-timeline-track {
        height: 240px;
        overflow-x: auto;
        overflow-y: visible;
        padding-bottom: 20px;
    }
}

.iberian-timeline-eras-bg {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 24px;
    transform: translateY(-50%);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
}

.iberian-timeline-era-bg {
    position: absolute;
    height: 100%;
    opacity: 0.7;
    transition: opacity var(--iberian-transition-fast);
}

.iberian-timeline-era-bg:hover {
    opacity: 1;
}

/* Era-specific colors */
.iberian-timeline-era-bg.mesolithic { background: #8b5a2b; }
.iberian-timeline-era-bg.neolithic { background: #228b22; }
.iberian-timeline-era-bg.chalcolithic { background: #b87333; }
.iberian-timeline-era-bg.bronze-age { background: #cd7f32; }
.iberian-timeline-era-bg.iron-age { background: #696969; }
.iberian-timeline-era-bg.roman-medieval { background: #800080; }

.iberian-timeline-line {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--iberian-terra), var(--iberian-gold), var(--iberian-terra));
    transform: translateY(-50%);
    z-index: 1;
}

/* Timeline Markers */
.iberian-timeline-markers {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    z-index: 2;
}

.iberian-timeline-marker {
    position: absolute;
    transform: translateX(-50%);
}

.iberian-timeline-marker-dot {
    width: 14px;
    height: 14px;
    background: var(--iberian-gold);
    border-radius: 50%;
    margin: 0 auto;
    border: 2px solid var(--iberian-deep);
    box-shadow: 0 0 8px rgba(201, 160, 48, 0.5);
}

.iberian-timeline-marker-label {
    position: absolute;
    top: 22px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.7rem;
    color: var(--iberian-mist-dim);
    white-space: nowrap;
    font-weight: 500;
}

/* Timeline Sample Points */
.iberian-timeline-samples-track {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
}

.iberian-timeline-sample-point {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    cursor: pointer;
    z-index: 15;
}

.iberian-timeline-sample-dot {
    width: 18px;
    height: 18px;
    background: var(--iberian-gold);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 50%;
    border: 3px solid var(--iberian-deep);
    box-shadow: 0 0 10px rgba(201, 160, 48, 0.6);
    transition: all var(--iberian-transition-fast);
    z-index: 20;
    position: relative;
    overflow: hidden;
}

.iberian-timeline-sample-point:hover .iberian-timeline-sample-dot {
    transform: scale(1.3);
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.8);
    border-color: white;
}

/* Preserve background image on hover for desktop */
@media (min-width: 992px) {
    .iberian-timeline-sample-point:hover .iberian-timeline-sample-dot {
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
    }
}

.iberian-timeline-closest .iberian-timeline-sample-dot {
    background: #ffd700;
    box-shadow: 0 0 15px rgba(255, 215, 0, 0.8);
    width: 22px;
    height: 22px;
}

.iberian-timeline-sample-connector {
    position: absolute;
    left: 50%;
    width: 2px;
    height: 60px;
    background: linear-gradient(to bottom, var(--iberian-gold), transparent);
    transform: translateX(-50%);
    opacity: 0.6;
}

.iberian-timeline-sample-card {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    opacity: 0.9;
    transition: all var(--iberian-transition-fast);
    text-decoration: none;
    display: block;
    cursor: pointer;
}

.iberian-timeline-card-top {
    bottom: 70px;
}

.iberian-timeline-card-bottom {
    top: 70px;
}

.iberian-timeline-sample-point:hover .iberian-timeline-sample-card {
    opacity: 1;
    transform: translateX(-50%) scale(1.1);
}

.iberian-timeline-sample-card img {
    width: 54px;
    height: 54px;
    min-width: 54px;
    min-height: 54px;
    aspect-ratio: 1;
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--iberian-gold);
    background: var(--iberian-deep);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
    transition: all var(--iberian-transition-fast);
    display: block;
}

.iberian-timeline-sample-point:hover .iberian-timeline-sample-card img {
    border-color: white;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}

.iberian-timeline-crown-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    background: linear-gradient(135deg, #ffd700, #ffb700);
    color: #1a1610;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    z-index: 5;
    box-shadow: 0 2px 8px rgba(255, 215, 0, 0.5);
}

.iberian-timeline-sample-info {
    margin-top: 6px;
}

.iberian-timeline-sample-name {
    display: block;
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--iberian-mist);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 70px;
}

.iberian-timeline-sample-date {
    display: block;
    font-size: 0.6rem;
    color: var(--iberian-gold);
    margin-top: 2px;
}

.iberian-timeline-sample-era {
    display: block;
    font-size: 0.55rem;
    color: var(--iberian-mist-dim);
    margin-top: 1px;
}

/* Era Summary Cards (Mobile) */
.iberian-timeline-era-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(201, 160, 48, 0.15);
}

.iberian-timeline-era-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.iberian-timeline-era-card i {
    font-size: 1rem;
}

/* Era card colors */
.iberian-timeline-era-card.mesolithic i { color: #d4a265; }
.iberian-timeline-era-card.neolithic i { color: #90c090; }
.iberian-timeline-era-card.chalcolithic i { color: #d4a576; }
.iberian-timeline-era-card.bronze-age i { color: #daa06d; }
.iberian-timeline-era-card.iron-age i { color: #a0a0a0; }
.iberian-timeline-era-card.roman-medieval i { color: #c090c0; }

.iberian-timeline-era-name {
    font-size: 0.8rem;
    color: var(--iberian-mist);
    font-weight: 500;
}

.iberian-timeline-era-score {
    font-size: 0.85rem;
    color: var(--iberian-gold);
    font-weight: 600;
}

/* Timeline Footer */
.iberian-timeline-footer {
    margin-top: 24px;
    text-align: center;
}

.iberian-timeline-note {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

.iberian-timeline-note i {
    color: var(--iberian-gold);
}

.iberian-timeline-crown-indicator {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 215, 0, 0.15);
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    color: #ffd700;
    margin-left: 8px;
}

.iberian-timeline-crown-indicator i {
    color: #ffd700;
    font-size: 0.7rem;
}

/* Mobile Tooltip Styles */
.iberian-timeline-tooltip-mobile {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(26, 22, 16, 0.98);
    color: var(--iberian-mist);
    padding: 10px 14px;
    border-radius: 12px;
    font-size: 0.75rem;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    z-index: 100;
    border: 1px solid rgba(201, 160, 48, 0.3);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
    min-width: 140px;
    text-align: center;
}

.iberian-timeline-tooltip-mobile.show {
    opacity: 1;
    visibility: visible;
}

.iberian-timeline-tooltip-mobile-top {
    bottom: calc(100% + 12px);
}

.iberian-timeline-tooltip-mobile-bottom {
    top: calc(100% + 12px);
}

.iberian-timeline-tooltip-mobile-name {
    display: block;
    font-weight: 600;
    color: var(--iberian-mist);
    margin-bottom: 4px;
    font-size: 0.8rem;
}

.iberian-timeline-tooltip-mobile-date {
    display: block;
    font-size: 0.7rem;
    color: var(--iberian-gold);
    margin-bottom: 2px;
}

.iberian-timeline-tooltip-mobile-era {
    display: block;
    font-size: 0.65rem;
    color: var(--iberian-mist-dim);
}

.iberian-timeline-tooltip-mobile::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
}

.iberian-timeline-tooltip-mobile-top::after {
    top: 100%;
    border-top: 6px solid rgba(26, 22, 16, 0.98);
}

.iberian-timeline-tooltip-mobile-bottom::after {
    bottom: 100%;
    border-bottom: 6px solid rgba(26, 22, 16, 0.98);
}

/* Mobile Portrait Image on Dot */
.iberian-timeline-sample-dot-mobile-img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: none;
    position: absolute;
    top: 0;
    left: 0;
}

@media (max-width: 991px) {
    .iberian-timeline-sample-dot-mobile-img {
        display: block;
    }
    
    /* Hide img if background-image is set */
    .iberian-timeline-sample-dot[style*="background-image"] .iberian-timeline-sample-dot-mobile-img {
        display: none;
    }
}

/* Mobile Abbreviated Name */
.iberian-timeline-sample-abbr {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--iberian-mist);
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    pointer-events: none;
    background: rgba(26, 22, 16, 0.9);
    padding: 2px 6px;
    border-radius: 4px;
    margin-top: 4px;
    z-index: 10;
}

.iberian-timeline-sample-point.active .iberian-timeline-sample-abbr {
    opacity: 1;
    visibility: visible;
}

/* Responsive Timeline */
@media (max-width: 991px) {
    /* Show compact card version instead of hiding */
    .iberian-timeline-sample-card {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: calc(100% + 8px);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.2s ease, visibility 0.2s ease;
        pointer-events: none;
        display: block !important;
    }
    
    .iberian-timeline-sample-point.active .iberian-timeline-sample-card {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
    
    /* Compact image size for mobile */
    .iberian-timeline-sample-card img {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
    }
    
    .iberian-timeline-sample-info {
        margin-top: 4px;
    }
    
    .iberian-timeline-sample-name {
        font-size: 0.6rem;
        max-width: 60px;
    }
    
    .iberian-timeline-sample-date {
        font-size: 0.55rem;
    }
    
    .iberian-timeline-sample-era {
        font-size: 0.5rem;
    }
    
    .iberian-timeline-sample-connector {
        display: none;
    }
    
    /* Enhanced dot with portrait image background */
    .iberian-timeline-sample-dot {
        width: 28px;
        height: 28px;
        min-width: 28px;
        min-height: 28px;
        border-width: 2px;
        overflow: hidden;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-color: var(--iberian-gold);
    }
    
    /* Fallback when image fails to load */
    .iberian-timeline-sample-dot:not([style*="background-image"]) {
        background-color: var(--iberian-gold);
    }
    
    .iberian-timeline-closest .iberian-timeline-sample-dot {
        width: 32px;
        height: 32px;
        min-width: 32px;
        min-height: 32px;
        border-width: 3px;
        border-color: #ffd700;
    }
    
    /* Show abbreviated name below dot */
    .iberian-timeline-sample-abbr {
        display: block;
        top: calc(100% + 4px);
        white-space: nowrap;
    }
    
    .iberian-timeline-sample-point.active .iberian-timeline-sample-abbr {
        display: block;
    }
    
    /* Active state for mobile */
    .iberian-timeline-sample-point.active .iberian-timeline-sample-dot {
        transform: scale(1.2);
        box-shadow: 0 0 20px rgba(201, 160, 48, 0.8);
    }
    
    /* Ensure touch target is at least 44x44px */
    .iberian-timeline-sample-point {
        min-width: 44px;
        min-height: 44px;
        padding: 8px;
        margin-left: -22px;
        margin-top: -22px;
    }
    
    .iberian-timeline-closest.iberian-timeline-sample-point {
        margin-left: -22px;
        margin-top: -22px;
    }
}

@media (max-width: 767px) {
    .iberian-timeline-legend {
        gap: 10px 16px;
    }
    
    .iberian-timeline-legend-item {
        font-size: 0.75rem;
    }
    
    .iberian-timeline-marker-label {
        font-size: 0.6rem;
    }
    
    /* Even more compact on small screens */
    .iberian-timeline-sample-card img {
        width: 36px;
        height: 36px;
        min-width: 36px;
        min-height: 36px;
    }
    
    .iberian-timeline-sample-dot {
        width: 26px;
        height: 26px;
        min-width: 26px;
        min-height: 26px;
    }
    
    .iberian-timeline-closest .iberian-timeline-sample-dot {
        width: 30px;
        height: 30px;
        min-width: 30px;
        min-height: 30px;
    }
    
    .iberian-timeline-sample-abbr {
        font-size: 0.55rem;
        padding: 1px 4px;
    }
    
    .iberian-timeline-tooltip-mobile {
        font-size: 0.7rem;
        padding: 8px 12px;
        min-width: 120px;
    }
    
    .iberian-timeline-tooltip-mobile-name {
        font-size: 0.75rem;
    }
    
    .iberian-timeline-tooltip-mobile-date {
        font-size: 0.65rem;
    }
    
    .iberian-timeline-tooltip-mobile-era {
        font-size: 0.6rem;
    }
}

/* ========================================
   ANALYSIS SECTION (Charts)
   ======================================== */
.iberian-analysis-section {
    background: linear-gradient(180deg, var(--iberian-dark) 0%, var(--iberian-deep) 100%);
}

.iberian-analysis-tabs {
    border-bottom: 1px solid rgba(201, 160, 48, 0.2);
    margin-bottom: 32px;
    justify-content: center;
}

.iberian-analysis-tabs .nav-link {
    color: var(--iberian-mist-dim);
    border: none;
    border-bottom: 3px solid transparent;
    padding: 12px 24px;
    font-weight: 500;
    transition: all var(--iberian-transition-fast);
}

.iberian-analysis-tabs .nav-link:hover {
    color: var(--iberian-gold);
    border-bottom-color: rgba(201, 160, 48, 0.3);
}

.iberian-analysis-tabs .nav-link.active {
    color: var(--iberian-gold);
    border-bottom-color: var(--iberian-gold);
    background: transparent;
}

.iberian-analysis-tabs .nav-link i {
    margin-right: 8px;
}

.iberian-chart-container {
    background: rgba(42, 33, 26, 0.5);
    border-radius: 16px;
    padding: 24px;
    border: 1px solid rgba(201, 160, 48, 0.1);
    margin-bottom: 24px;
}

.iberian-chart {
    min-height: 400px;
    width: 100%;
}

.iberian-chart-legend {
    text-align: center;
    padding: 16px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 12px;
}

.iberian-chart-legend p {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    margin: 0;
}

.iberian-chart-legend i {
    color: var(--iberian-gold);
    margin-right: 8px;
}

/* Score Breakdown */
.iberian-score-breakdown {
    margin-top: 48px;
    padding: 32px;
    background: rgba(42, 33, 26, 0.6);
    border-radius: 16px;
    border: 1px solid rgba(201, 160, 48, 0.15);
}

.iberian-score-breakdown h4 {
    font-family: var(--iberian-font-display);
    font-size: 1.3rem;
    font-weight: 600;
    color: white;
    margin-bottom: 12px;
}

.iberian-score-breakdown h4 i {
    color: var(--iberian-gold);
    margin-right: 10px;
}

.iberian-score-description {
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 24px;
}

.iberian-score-components {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.iberian-score-component {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.iberian-score-component-header {
    flex: 0 0 220px;
    display: flex;
    justify-content: space-between;
}

.iberian-score-component-name {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 0.9rem;
    color: var(--iberian-mist);
}

.iberian-score-component-weight {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--iberian-gold);
    background: rgba(201, 160, 48, 0.15);
    padding: 2px 8px;
    border-radius: 10px;
}

.iberian-score-component-desc {
    flex: 0 0 100%;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--iberian-mist-dim);
    margin: 4px 0 0;
}

.iberian-score-component-bar {
    flex: 1;
    height: 12px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 6px;
    overflow: hidden;
}

.iberian-score-component-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 1s ease-out;
}

.iberian-score-component-fill.k15 {
    background: linear-gradient(90deg, #8b4513, #a0522d);
}

.iberian-score-component-fill.umap {
    background: linear-gradient(90deg, #cd7f32, #daa06d);
}

.iberian-score-component-fill.mc {
    background: linear-gradient(90deg, #c9a030, #dbb840);
}

.iberian-score-component-fill.ibd {
    background: linear-gradient(90deg, #6b8e23, #9acd32);
}

.iberian-score-component-value {
    flex: 0 0 50px;
    text-align: right;
    font-weight: 600;
    color: var(--iberian-gold);
}

/* ========================================
   IBD (SHARED ROOTS) MATCHES
   ======================================== */
.iberian-ibd-matches {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(201, 160, 48, 0.25);
}

.iberian-ibd-matches h4 {
    color: var(--iberian-gold);
    margin-bottom: 12px;
}

.iberian-ibd-match-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 16px;
}

.iberian-ibd-match-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(201, 160, 48, 0.18);
}

.iberian-ibd-match-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.iberian-ibd-match-name {
    font-weight: 600;
    color: #fff;
}

.iberian-ibd-match-meta {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.65);
}

.iberian-ibd-match-stats {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    flex: 0 0 auto;
}

.iberian-ibd-match-cm {
    font-weight: 700;
    color: var(--iberian-gold);
}

.iberian-ibd-match-segments {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.6);
}

/* ========================================
   LEARN SECTION (Accordion)
   ======================================== */
.iberian-learn-section {
    background: var(--iberian-deep);
    padding-bottom: 140px;
}

.iberian-accordion {
    max-width: 900px;
    margin: 0 auto;
}

.iberian-accordion-item {
    background: rgba(42, 33, 26, 0.6);
    border-radius: 12px;
    margin-bottom: 16px;
    overflow: hidden;
    border: 1px solid rgba(201, 160, 48, 0.1);
}

.iberian-accordion-header {
    width: 100%;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: transparent;
    border: none;
    color: white;
    font-size: 1.1rem;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--iberian-transition-fast);
    text-align: left;
}

.iberian-accordion-header:hover {
    background: rgba(201, 160, 48, 0.1);
}

.iberian-accordion-header i:first-child,
.iberian-accordion-header .dna-icon:first-of-type {
    color: var(--iberian-gold);
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.iberian-accordion-header span {
    flex: 1;
}

.iberian-accordion-arrow {
    transition: transform var(--iberian-transition-fast);
}

.iberian-accordion-header[aria-expanded="true"] .iberian-accordion-arrow,
.iberian-accordion-header:not(.collapsed) .iberian-accordion-arrow {
    transform: rotate(180deg);
}

.iberian-accordion-body {
    padding: 0 24px 24px;
    color: var(--iberian-mist-dim);
    font-size: 0.95rem;
    line-height: 1.7;
}

.iberian-accordion-body p {
    margin-bottom: 12px;
}

.iberian-accordion-body ul {
    padding-left: 20px;
    margin-bottom: 16px;
}

.iberian-accordion-body li {
    margin-bottom: 8px;
}

.iberian-accordion-body strong {
    color: var(--iberian-mist);
}

/* ========================================
   AI ASSISTANT SECTION OVERRIDES
   ======================================== */
.iberian-accordion-body.ai-assistant-section {
    background: transparent;
    border: none;
}

.iberian-accordion-body.ai-assistant-section h4 {
    color: var(--iberian-gold);
}

.iberian-accordion-body.ai-assistant-section .badge-success {
    background: rgba(39, 174, 96, 0.3);
}

.iberian-accordion-body.ai-assistant-section .badge-warning {
    background: rgba(241, 196, 15, 0.3);
    color: #f1c40f;
}

.iberian-accordion-body.ai-assistant-section .alert-light {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--iberian-mist-dim);
}

.iberian-accordion-body.ai-assistant-section .suggested-prompts .btn-outline-primary {
    color: var(--iberian-gold);
    border-color: rgba(201, 160, 48, 0.3);
}

.iberian-accordion-body.ai-assistant-section .suggested-prompts .btn-outline-primary:hover {
    background: rgba(201, 160, 48, 0.2);
}

.iberian-accordion-body.ai-assistant-section .btn-light {
    background: rgba(255, 255, 255, 0.1);
    color: var(--iberian-mist);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.iberian-accordion-body.ai-assistant-section .btn-light:hover {
    background: rgba(255, 255, 255, 0.15);
}

.iberian-accordion-body.ai-assistant-section .ai-sample-output .bg-light {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* ========================================
   AI ASSISTANT SECTION (Standalone Chapter)
   ======================================== */
.iberian-section .ai-assistant-section {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 12px;
    padding: 2rem;
}

.iberian-section .ai-assistant-section h4 {
    color: var(--iberian-gold);
}

.iberian-section .ai-assistant-section .badge-success {
    background: rgba(39, 174, 96, 0.3);
    color: #27ae60;
}

.iberian-section .ai-assistant-section .badge-warning {
    background: rgba(241, 196, 15, 0.3);
    color: #f1c40f;
}

.iberian-section .ai-assistant-section .alert-light {
    background: rgba(42, 33, 26, 0.6);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-color: rgba(201, 160, 48, 0.2);
    color: var(--iberian-mist-dim) !important;
}

.iberian-section .ai-assistant-section .alert-light p {
    color: var(--iberian-mist-dim) !important;
}

.iberian-section .ai-assistant-section .alert-light i {
    color: var(--iberian-gold);
}

.iberian-section .ai-assistant-section .suggested-prompts .btn-outline-primary {
    color: var(--iberian-gold);
    border-color: rgba(201, 160, 48, 0.3);
}

.iberian-section .ai-assistant-section .suggested-prompts .btn-outline-primary:hover {
    background: rgba(201, 160, 48, 0.2);
    color: var(--iberian-gold-light);
}

.iberian-section .ai-assistant-section .btn-light {
    background: rgba(255, 255, 255, 0.1);
    color: var(--iberian-mist);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.iberian-section .ai-assistant-section .btn-light:hover {
    background: rgba(255, 255, 255, 0.15);
}

.iberian-section .ai-assistant-section .ai-sample-output {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.1);
}

.iberian-section .ai-assistant-section .ai-sample-output .bg-light {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

.iberian-section .ai-assistant-section .ai-results {
    background: rgba(42, 33, 26, 0.6);
    color: var(--iberian-mist-dim);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-color: rgba(201, 160, 48, 0.2);
}

.iberian-section .ai-assistant-section .ai-results .ai-result-content {
    color: var(--iberian-mist-dim);
}

.iberian-section .ai-assistant-section .ai-results p,
.iberian-section .ai-assistant-section .ai-results div,
.iberian-section .ai-assistant-section .ai-results span {
    color: var(--iberian-mist-dim);
}

/* ========================================
   MOBILE RESPONSIVENESS
   ======================================== */
@media (max-width: 768px) {
    .iberian-hero-match {
        margin: 0 -15px 40px;
        border-radius: 16px;
    }
    
    .iberian-hero-match-portrait {
        min-height: 250px;
    }
    
    .iberian-hero-match-details {
        padding: 24px;
    }
    
    .iberian-match-name {
        font-size: 1.5rem;
    }
    
    .iberian-match-actions {
        flex-direction: column;
    }
    
    .iberian-match-actions .iberian-btn-primary,
    .iberian-match-actions .iberian-btn-secondary {
        width: 100%;
        justify-content: center;
    }
    
    .iberian-score-panel {
        padding: 20px;
    }

    .iberian-score-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .iberian-score-card-value {
        font-size: 1.5rem;
    }

    .iberian-index-ring {
        width: 150px;
        height: 150px;
    }
    
    .iberian-index-value {
        font-size: 2.8rem;
    }
    
    .iberian-score-component {
        flex-direction: column;
        align-items: stretch;
    }
    
    .iberian-score-component-header {
        flex: unset;
        margin-bottom: 8px;
    }
    
    .iberian-score-component-bar {
        order: 1;
    }
    
    .iberian-score-component-value {
        order: 2;
        text-align: left;
        margin-top: 4px;
    }
    
    .iberian-bento-card {
        min-height: 250px;
    }
    
    .iberian-learn-section {
        padding-bottom: 100px;
    }
    
    .iberian-culture-description-excerpt {
        max-height: 4rem;
    }
    
    .iberian-culture-show-more {
        width: 100%;
        justify-content: center;
        padding: 0.625rem 1.25rem;
        font-size: 0.9rem;
    }
}

/* ========================================
   PRINT STYLES
   ======================================== */
/* ========================================
   SAMPLE DRAWER
   ======================================== */
body.iberian-drawer-open {
    overflow: hidden;
}

.iberian-drawer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1050;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s linear 0.35s, opacity 0.35s ease-in-out;
}

.iberian-drawer.open {
    pointer-events: auto;
    visibility: visible;
    opacity: 1;
    transition: visibility 0s linear 0s, opacity 0.35s ease-in-out;
}

.iberian-drawer-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    z-index: 1049;
    pointer-events: none;
    backdrop-filter: blur(3px);
}

.iberian-drawer.open .iberian-drawer-backdrop {
    opacity: 1;
    pointer-events: auto;
}

.iberian-drawer-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 55vw;
    max-width: 750px;
    min-width: 400px;
    height: 100vh;
    background: var(--iberian-deep);
    box-shadow: -8px 0 30px rgba(0, 0, 0, 0.4);
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.iberian-drawer.open .iberian-drawer-panel {
    transform: translateX(0);
}

.iberian-drawer-header {
    background: linear-gradient(135deg, var(--iberian-terra) 0%, var(--iberian-gold-dark) 100%);
    color: white;
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

.iberian-drawer-title {
    font-family: var(--iberian-font-display);
    font-weight: 600;
    font-size: 1.25rem;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--iberian-mist) !important;
}

.iberian-drawer-title i {
    color: var(--iberian-gold-light);
}

.iberian-drawer-close {
    background: rgba(255, 255, 255, 0.15);
    border: none;
    font-size: 1.25rem;
    color: white;
    cursor: pointer;
    padding: 0.5rem;
    line-height: 1;
    transition: all 0.2s ease;
    border-radius: 8px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iberian-drawer-close:hover {
    background: rgba(255, 255, 255, 0.25);
}

.iberian-drawer-close:focus {
    outline: 2px solid white;
    outline-offset: 2px;
}

.iberian-drawer-body {
    flex-grow: 1;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    background: var(--iberian-dark);
}

/* Ensure all headings in drawer are readable with light colors */
.iberian-drawer h1,
.iberian-drawer h2,
.iberian-drawer h3,
.iberian-drawer h4,
.iberian-drawer h5,
.iberian-drawer h6 {
    color: var(--iberian-mist) !important;
}

.iberian-drawer-body h1,
.iberian-drawer-body h2,
.iberian-drawer-body h3,
.iberian-drawer-body h4,
.iberian-drawer-body h5,
.iberian-drawer-body h6 {
    color: var(--iberian-mist) !important;
}

/* Drawer Portrait - Rounded Design */
.iberian-drawer-portrait {
    text-align: center;
    margin: 1.5rem 0;
    padding: 0 1rem;
}

.iberian-drawer-portrait img {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--iberian-gold);
}

/* Sample ID and Location Header */
.iberian-drawer-info {
    text-align: center;
    margin-bottom: 1.5rem;
    padding: 0 1rem;
}

.iberian-drawer-info h3 {
    font-family: var(--iberian-font-display);
    font-size: 1.5rem;
    color: var(--iberian-mist) !important;
    margin: 0 0 0.5rem;
    font-weight: 600;
}

.iberian-drawer-info p {
    color: #d4a574;
    margin: 0;
    font-size: 0.9375rem;
}

.iberian-drawer-info i {
    color: var(--iberian-gold);
    margin-right: 6px;
}

/* Era Badge and Date Range */
.iberian-drawer-era {
    text-align: center;
    margin-bottom: 1.5rem;
    padding: 0 1rem;
}

.iberian-drawer-era-badge {
    display: inline-block;
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.iberian-drawer-dates {
    display: block;
    margin-top: 8px;
    font-size: 0.875rem;
    color: #d4a574;
}

.iberian-drawer-section {
    padding: 1.5rem 2rem;
    border-bottom: 1px solid rgba(201, 160, 48, 0.15);
}

.iberian-drawer-section-title {
    font-family: var(--iberian-font-display);
    font-size: 1rem;
    font-weight: 600;
    color: var(--iberian-mist) !important;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.iberian-drawer-section-title i {
    width: 20px;
    text-align: center;
}

/* Haplogroup type badge inside the drawer (not absolutely positioned like the card version) */
.iberian-drawer-haplo-type-badge .badge {
    font-size: 0.8rem;
    padding: 5px 12px;
    border-radius: 12px;
    letter-spacing: 0.04em;
}

/* Ensure match-type badge inside drawer renders inline (not absolute) */
#iberianDrawerHaploMatchType .iberian-haplo-match-type {
    position: static;
    transform: none;
    display: inline-block;
    font-size: 0.75rem;
}

/* ============================================================
   Shared DNA (IBD) - SharedRoots-style stat card + matched segments
   Ported from .src-drawer-* (SharedRootsCinematic.css), Iberian-themed.
   ============================================================ */
.iberian-drawer-stats {
    display: flex;
    justify-content: center;
    gap: 2rem;
    padding: 1.5rem;
    background: var(--iberian-warm);
    border-radius: 8px;
    margin-bottom: 1.5rem;
}

.iberian-drawer-stat {
    text-align: center;
}

.iberian-drawer-stat .value {
    display: block;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--iberian-gold);
}

.iberian-drawer-stat .label {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--iberian-mist-dim);
}

.iberian-drawer-segments-loading {
    display: flex;
    align-items: center;
    font-size: 0.8rem;
    color: var(--iberian-mist-dim);
    padding: 0.4rem 0;
}

.iberian-drawer-segments-empty {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    opacity: 0.85;
}

.iberian-drawer-segments-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    margin-bottom: 0.9rem;
    font-size: 0.8rem;
    color: var(--iberian-mist-dim);
}

.iberian-drawer-segments-summary strong {
    color: var(--iberian-gold);
    font-weight: 600;
}

.iberian-drawer-segments-browser {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.iberian-drawer-segment-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.iberian-drawer-segment-label {
    flex: 0 0 3rem;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    color: var(--iberian-mist-dim);
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.iberian-drawer-segment-track {
    position: relative;
    flex: 1 1 auto;
    height: 12px;
    background: var(--iberian-warm);
    border-radius: 6px;
    overflow: hidden;
}

.iberian-drawer-segment-tick {
    position: absolute;
    top: 0;
    bottom: 0;
    min-width: 2px;
    background: var(--iberian-gold);
    border-radius: 6px;
    opacity: 0.9;
    cursor: help;
    transition: opacity 0.15s ease, background 0.15s ease;
}

.iberian-drawer-segment-tick:hover {
    opacity: 1;
    background: var(--iberian-gold-light);
}

.iberian-drawer-segment-meta {
    flex: 0 0 auto;
    min-width: 6.5rem;
    font-size: 0.68rem;
    color: var(--iberian-mist-dim);
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 480px) {
    .iberian-drawer-stats {
        gap: 1.25rem;
        padding: 1rem;
    }

    .iberian-drawer-segment-label {
        flex-basis: 2.4rem;
        font-size: 0.66rem;
    }

    .iberian-drawer-segment-meta {
        min-width: 5rem;
        font-size: 0.62rem;
    }
}

.iberian-drawer-metadata {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.iberian-drawer-metadata-item {
    background: rgba(255, 255, 255, 0.05);
    padding: 1rem;
    border-radius: 10px;
    border: 1px solid rgba(201, 160, 48, 0.1);
}

.iberian-drawer-metadata-label {
    font-size: 0.75rem;
    color: var(--iberian-mist-dim);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.25rem;
}

.iberian-drawer-metadata-value {
    font-weight: 600;
    color: var(--iberian-mist);
    font-size: 0.95rem;
}

/* Era Display */
.iberian-drawer-era-display {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: rgba(139, 69, 19, 0.15);
    border-radius: 12px;
    border: 1px solid rgba(139, 69, 19, 0.25);
}

.iberian-drawer-era-icon {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    background: rgba(201, 160, 48, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--iberian-gold);
    flex-shrink: 0;
}

.iberian-drawer-era-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.iberian-drawer-era-name {
    font-family: var(--iberian-font-display);
    font-size: 1.25rem;
    font-weight: 600;
    color: white;
}

.iberian-drawer-era-desc {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

/* About This Era Section */
.iberian-drawer-about-era {
    background: rgba(139, 69, 19, 0.08);
}

.iberian-drawer-era-metadata {
    margin-bottom: 1rem;
}

.iberian-drawer-about-era-content {
    margin-top: 1rem;
}

.iberian-drawer-about-era-text {
    color: var(--iberian-mist);
    font-size: 0.95rem;
    line-height: 1.7;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 10px;
    border: 1px solid rgba(201, 160, 48, 0.1);
}

.iberian-drawer-about-era-text p {
    margin-bottom: 0.75rem;
}

.iberian-drawer-about-era-text p:last-child {
    margin-bottom: 0;
}

.iberian-drawer-actions {
    padding: 1.25rem 2rem;
    background: var(--iberian-deep);
    border-top: 1px solid rgba(201, 160, 48, 0.15);
    display: flex;
    gap: 1rem;
    flex-shrink: 0;
}

.iberian-drawer-actions .iberian-btn-primary {
    flex: 1;
    justify-content: center;
    font-size: 1rem;
}

.iberian-drawer-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 300px;
    color: var(--iberian-mist-dim);
}

.iberian-drawer-loading .spinner-border {
    width: 3rem;
    height: 3rem;
    margin-bottom: 1rem;
    color: var(--iberian-gold);
}

.iberian-drawer-loading p {
    color: var(--iberian-mist-dim);
}

/* Era-specific icon colors */
.iberian-drawer-era-icon.mesolithic { background: rgba(139, 90, 43, 0.3); color: #d4a265; }
.iberian-drawer-era-icon.neolithic { background: rgba(34, 139, 34, 0.3); color: #90c090; }
.iberian-drawer-era-icon.chalcolithic { background: rgba(184, 115, 51, 0.3); color: #d4a576; }
.iberian-drawer-era-icon.bronze-age { background: rgba(205, 127, 50, 0.3); color: #daa06d; }
.iberian-drawer-era-icon.iron-age { background: rgba(105, 105, 105, 0.3); color: #a0a0a0; }
.iberian-drawer-era-icon.roman-medieval { background: rgba(128, 0, 128, 0.3); color: #c090c0; }

/* Culture Drawer - Full culture details in modal */
.iberian-culture-drawer .iberian-drawer-body {
    padding: 1.5rem 2rem;
}

.iberian-culture-drawer-header-content {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.iberian-culture-drawer-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.iberian-culture-drawer-icon img {
    width: 32px;
    height: 32px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
}

.iberian-culture-drawer-period {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.8);
    margin-top: 0.25rem;
    display: block;
}

.iberian-culture-drawer-description {
    color: var(--iberian-mist-dim);
    line-height: 1.7;
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 10px;
    border: 1px solid rgba(201, 160, 48, 0.1);
}

.iberian-culture-drawer-description p {
    margin-bottom: 0.75rem;
}

.iberian-culture-drawer-description p:last-child {
    margin-bottom: 0;
}

.iberian-culture-drawer-description h2,
.iberian-culture-drawer-description h3 {
    color: var(--iberian-mist) !important;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.iberian-culture-drawer-progress {
    margin-bottom: 1.5rem;
}

.iberian-culture-drawer-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.iberian-culture-drawer-progress .iberian-progress-bar {
    height: 8px;
    width: 100%;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    overflow: hidden;
}

.iberian-culture-drawer-progress .iberian-progress-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.3s ease;
}

.iberian-culture-drawer-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.iberian-culture-drawer-stat {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    border: 1px solid rgba(201, 160, 48, 0.15);
    font-size: 0.9rem;
    color: var(--iberian-mist);
}

.iberian-culture-drawer-stat i {
    color: var(--iberian-gold);
    width: 18px;
}

.iberian-culture-drawer-insight {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    background: rgba(201, 160, 48, 0.08);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 10px;
}

.iberian-culture-drawer-insight i {
    color: var(--iberian-gold);
    margin-top: 0.2rem;
    flex-shrink: 0;
}

.iberian-culture-drawer-insight p {
    margin: 0;
    color: var(--iberian-mist);
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Mobile Responsive - Drawer slides up from bottom */
@media (max-width: 768px) {
    .iberian-drawer-panel {
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        max-width: none;
        min-width: auto;
        height: 90vh;
        transform: translateY(100%);
        border-radius: 24px 24px 0 0;
        box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.4);
    }
    
    .iberian-drawer.open .iberian-drawer-panel {
        transform: translateY(0);
    }
    
    .iberian-drawer-header {
        border-radius: 24px 24px 0 0;
        padding: 1rem 1.5rem;
        position: relative;
    }
    
    /* Drag handle indicator */
    .iberian-drawer-header::before {
        content: '';
        position: absolute;
        top: 8px;
        left: 50%;
        transform: translateX(-50%);
        width: 40px;
        height: 4px;
        background: rgba(255, 255, 255, 0.3);
        border-radius: 2px;
    }
    
    .iberian-drawer-portrait { margin: 1rem 0; }
    .iberian-drawer-portrait img { width: 160px; height: 160px; }
    .iberian-drawer-info { margin-bottom: 1rem; }
    .iberian-drawer-info h3 { font-size: 1.25rem; }
    .iberian-drawer-era { margin-bottom: 1rem; }
    
    .iberian-drawer-section {
        padding: 1.25rem 1.5rem;
    }
    
    .iberian-drawer-metadata {
        grid-template-columns: 1fr;
    }
    
    .iberian-drawer-actions {
        padding: 1rem 1.5rem;
        flex-direction: column;
    }
}

/* ========================================
   MAP SECTION
   ======================================== */
.iberian-map-section {
    background: linear-gradient(180deg, var(--iberian-dark) 0%, var(--iberian-deep) 100%);
}

.iberian-map-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding: 1rem 1.5rem;
    background: rgba(201, 160, 48, 0.08);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
}

/* Toggle Switch */
.iberian-map-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    user-select: none;
}

.iberian-map-toggle input {
    display: none;
}

.iberian-toggle-slider {
    position: relative;
    width: 52px;
    height: 28px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 14px;
    transition: var(--iberian-transition-fast);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.iberian-toggle-slider::before {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    background: var(--iberian-mist);
    border-radius: 50%;
    transition: var(--iberian-transition-fast);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.iberian-map-toggle input:checked + .iberian-toggle-slider {
    background: linear-gradient(135deg, var(--iberian-gold) 0%, var(--iberian-bronze) 100%);
    border-color: var(--iberian-gold);
}

.iberian-map-toggle input:checked + .iberian-toggle-slider::before {
    transform: translateX(24px);
}

.iberian-toggle-label {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
}

.iberian-map-toggle input:checked ~ .iberian-toggle-label {
    color: var(--iberian-gold-light);
}

.iberian-map-count {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--iberian-gold);
    padding: 8px 16px;
    background: rgba(201, 160, 48, 0.1);
    border-radius: 20px;
}

.iberian-map-count i {
    font-size: 0.85rem;
}

/* Map Container */
.iberian-map-container {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    border: 2px solid rgba(201, 160, 48, 0.3);
}

.iberian-map {
    height: 500px;
    width: 100%;
    background: var(--iberian-dark);
}

/* Map Legend */
.iberian-map-legend {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: rgba(26, 22, 16, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 12px;
    padding: 16px;
    border: 1px solid rgba(201, 160, 48, 0.3);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    z-index: 1000;
    min-width: 160px;
}

.iberian-map-legend h5 {
    font-weight: 800;
    font-size: 0.85rem;
    color: var(--iberian-gold);
    margin: 0 0 12px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(201, 160, 48, 0.2);
    display: flex;
    align-items: center;
    gap: 6px;
}

.iberian-legend-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
}

.iberian-legend-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid white;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.iberian-legend-match {
    background: linear-gradient(135deg, var(--iberian-gold) 0%, var(--iberian-bronze) 100%);
}

.iberian-legend-reference {
    background: linear-gradient(135deg, var(--iberian-terra) 0%, var(--iberian-terra-light) 100%);
}

.iberian-legend-all-only {
    display: none;
}

.iberian-map-controls input:checked ~ .iberian-map-count + .iberian-legend-all-only,
body.iberian-show-all .iberian-legend-all-only {
    display: flex;
}

/* Map Insight Card */
.iberian-map-insight {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-top: 1.5rem;
    padding: 1.25rem 1.5rem;
    background: linear-gradient(135deg, rgba(201, 160, 48, 0.08), rgba(139, 69, 19, 0.08));
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
}

.iberian-map-insight > i {
    font-size: 1.5rem;
    color: var(--iberian-gold);
    flex-shrink: 0;
    margin-top: 2px;
}

.iberian-map-insight p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--iberian-mist-dim);
    line-height: 1.6;
}

.iberian-map-insight strong {
    color: var(--iberian-gold-light);
}

/* Iberian-themed Tooltip Override */
.iberian-map .unified-tooltip-header {
    background: linear-gradient(135deg, var(--iberian-gold) 0%, var(--iberian-terra) 100%);
}

.iberian-map .unified-tooltip-label i {
    color: var(--iberian-gold);
}

.iberian-map .unified-tooltip-footer {
    background: linear-gradient(135deg, rgba(201, 160, 48, 0.08), rgba(139, 69, 19, 0.08));
    color: var(--iberian-gold);
}

/* Iberian-themed Popup Override */
.iberian-map-popup .leaflet-popup-content-wrapper {
    background: linear-gradient(135deg, rgba(26, 22, 16, 0.98) 0%, rgba(42, 33, 26, 0.98) 100%) !important;
    border: 2px solid rgba(201, 160, 48, 0.3) !important;
    border-radius: 16px !important;
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.5) !important;
}

.iberian-map-popup .leaflet-popup-tip {
    background: rgba(26, 22, 16, 0.98) !important;
    border: 2px solid rgba(201, 160, 48, 0.3) !important;
    border-top: none !important;
    border-left: none !important;
}

.iberian-map-popup .leaflet-popup-close-button {
    color: var(--iberian-mist) !important;
    background: rgba(201, 160, 48, 0.3) !important;
}

.iberian-map-popup .leaflet-popup-close-button:hover {
    background: rgba(201, 160, 48, 0.5) !important;
}

/* Popup Content Styling */
.iberian-popup-content {
    color: var(--iberian-mist);
}

.iberian-popup-portrait-section {
    position: relative;
    height: 160px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--iberian-warm), var(--iberian-dark));
}

.iberian-popup-portrait {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.iberian-popup-portrait-section::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60%;
    background: linear-gradient(to top, rgba(26, 22, 16, 0.9), transparent);
}

.iberian-popup-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: linear-gradient(135deg, var(--iberian-gold) 0%, var(--iberian-bronze) 100%);
    color: var(--iberian-deep);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 800;
    z-index: 2;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iberian-popup-header {
    padding: 16px 20px 12px;
}

.iberian-popup-title {
    font-family: var(--iberian-font-display);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--iberian-mist);
    margin: 0 0 4px 0;
}

.iberian-popup-subtitle {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    margin: 0;
}

.iberian-popup-body {
    padding: 0 20px 16px;
}

.iberian-popup-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    font-size: 0.88rem;
    border-bottom: 1px solid rgba(201, 160, 48, 0.1);
}

.iberian-popup-row:last-child {
    border-bottom: none;
}

.iberian-popup-label {
    color: var(--iberian-mist-faint);
    display: flex;
    align-items: center;
    gap: 8px;
}

.iberian-popup-label i {
    color: var(--iberian-gold);
    width: 16px;
    text-align: center;
}

.iberian-popup-value {
    color: var(--iberian-mist);
    font-weight: 600;
}

.iberian-popup-footer {
    padding: 12px 20px 16px;
}

.iberian-popup-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    background: linear-gradient(135deg, var(--iberian-gold) 0%, var(--iberian-bronze) 100%);
    color: var(--iberian-deep);
    padding: 12px 20px;
    border-radius: 25px;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9rem;
    border: none;
    cursor: pointer;
    transition: all var(--iberian-transition-fast);
    box-shadow: 0 4px 15px rgba(201, 160, 48, 0.3);
}

.iberian-popup-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(201, 160, 48, 0.4);
    color: var(--iberian-deep);
    text-decoration: none;
}

/* Marker Cluster Styling - Iberian Theme */
.iberian-marker-cluster {
    background-clip: padding-box;
    border-radius: 50%;
}

.iberian-marker-cluster div {
    width: 32px;
    height: 32px;
    margin-left: 4px;
    margin-top: 4px;
    text-align: center;
    border-radius: 50%;
    font: 700 13px/32px var(--iberian-font-body);
    color: var(--iberian-deep);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
}

.iberian-marker-cluster span {
    line-height: 32px;
}

.iberian-marker-cluster-small {
    background-color: rgba(201, 160, 48, 0.5);
}

.iberian-marker-cluster-small div {
    background: linear-gradient(135deg, var(--iberian-gold), var(--iberian-gold-light));
}

.iberian-marker-cluster-medium {
    background-color: rgba(205, 127, 50, 0.5);
}

.iberian-marker-cluster-medium div {
    background: linear-gradient(135deg, var(--iberian-bronze), var(--iberian-gold));
}

.iberian-marker-cluster-large {
    background-color: rgba(139, 69, 19, 0.5);
}

.iberian-marker-cluster-large div {
    background: linear-gradient(135deg, var(--iberian-terra), var(--iberian-bronze));
}

.iberian-marker-cluster:hover {
    transform: scale(1.15);
}

/* ========================================
   MAP SECTION - RESPONSIVE
   ======================================== */
@media (max-width: 768px) {
    .iberian-map {
        height: 400px;
    }
    
    .iberian-map-controls {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }
    
    .iberian-map-toggle {
        justify-content: space-between;
    }
    
    .iberian-map-count {
        justify-content: center;
    }
    
    .iberian-map-legend {
        position: relative;
        bottom: auto;
        right: auto;
        margin-top: 1rem;
        width: 100%;
    }
    
    .iberian-map-insight {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .iberian-map {
        height: 320px;
    }
    
    .iberian-toggle-label {
        font-size: 0.85rem;
    }
}

/* ========================================
   ERA PROFILE SECTION OVERRIDES
   Override DeepAncestry dar- classes for Iberian theme
   ======================================== */
.iberian-main .dar-section {
    background: var(--iberian-deep) !important;
    color: var(--iberian-mist) !important;
    padding: var(--iberian-section-padding) 24px;
}

.iberian-main .dar-section-alt {
    background: var(--iberian-dark) !important;
}

.iberian-main .dar-section-content {
    max-width: 1200px;
    margin: 0 auto;
}

.iberian-main .dar-chapter-header {
    text-align: center;
    margin-bottom: 60px;
}

.iberian-main .dar-chapter-label {
    color: var(--iberian-gold) !important;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 12px;
    display: block;
}

.iberian-main .dar-heading-2 {
    color: var(--iberian-mist) !important;
    font-family: var(--iberian-font-display);
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    font-weight: 600;
    margin-bottom: 16px;
}

.iberian-main .dar-chapter-intro {
    color: var(--iberian-mist-dim) !important;
    font-size: 1.05rem;
    max-width: 700px;
    margin: 0 auto;
}

.iberian-main .dar-era-highlight {
    background: var(--iberian-dark);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 40px;
}

.iberian-main .dar-era-highlight-icon {
    background: rgba(201, 160, 48, 0.1);
    border: 2px solid var(--iberian-gold);
}

.iberian-main .dar-era-highlight-icon i {
    color: var(--iberian-gold) !important;
}

.iberian-main .dar-era-highlight-label {
    color: var(--iberian-mist-dim) !important;
}

.iberian-main .dar-era-highlight-value {
    color: var(--iberian-mist) !important;
    font-family: var(--iberian-font-display);
}

.iberian-main .dar-era-highlight-pct {
    color: var(--iberian-gold) !important;
}

.iberian-main .dar-radar-chart-wrapper {
    margin: 40px 0;
    padding: 20px;
    background: var(--iberian-dark);
    border-radius: 12px;
}

.iberian-main .dar-era-legend-grid {
    margin: 40px 0;
}

.iberian-main .dar-era-legend-card {
    background: var(--iberian-dark) !important;
    border: 1px solid rgba(201, 160, 48, 0.15) !important;
}

.iberian-main .dar-era-legend-name {
    color: var(--iberian-mist) !important;
    font-family: var(--iberian-font-display);
}

.iberian-main .dar-era-legend-pct {
    color: var(--iberian-gold) !important;
}

.iberian-main .dar-era-legend-bar {
    background: linear-gradient(90deg, var(--iberian-terra), var(--iberian-gold)) !important;
}

.iberian-main .dar-era-legend-desc {
    color: var(--iberian-mist-dim) !important;
}

.iberian-main .dar-narrative-callout {
    background: var(--iberian-dark);
    border-left: 4px solid var(--iberian-gold);
    padding: 24px;
    margin-top: 40px;
    border-radius: 8px;
}

.iberian-main .dar-narrative-callout i {
    color: var(--iberian-gold) !important;
}

.iberian-main .dar-narrative-callout strong {
    color: var(--iberian-mist) !important;
}

.iberian-main .dar-narrative-callout p {
    color: var(--iberian-mist-dim) !important;
}

/* Override dar-animate to make elements visible by default */
.iberian-main .dar-animate {
    opacity: 1 !important;
    transform: none !important;
}

@media (max-width: 768px) {
    .iberian-main .dar-section {
        padding: var(--iberian-section-padding-mobile) 16px;
    }
    
    .iberian-main .dar-era-legend-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   IBERIAN HISTORY ENGAGEMENT SECTION
   ======================================== */
.iberian-history-section {
    background: var(--iberian-dark);
    padding: var(--iberian-section-padding) 0;
}

.iberian-era-stories {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 40px;
}

.iberian-era-story {
    background: var(--iberian-warm);
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(201, 160, 48, 0.15);
    transition: all var(--iberian-transition-medium);
}

.iberian-era-story:hover {
    border-color: rgba(201, 160, 48, 0.3);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}

.iberian-era-story.expanded {
    border-color: var(--iberian-gold);
    box-shadow: 0 12px 32px rgba(201, 160, 48, 0.2);
}

/* Era Header */
.iberian-era-header {
    position: relative;
    min-height: 200px;
    display: flex;
    align-items: flex-end;
    padding: 32px;
    cursor: pointer;
    transition: all var(--iberian-transition-medium);
}

/* Make it clear the header is clickable in both states */
.iberian-era-header:hover {
    opacity: 0.95;
}

.iberian-era-header:active {
    opacity: 0.9;
    transform: scale(0.99);
}

.iberian-era-header-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.iberian-era-header-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.4);
    transition: transform var(--iberian-transition-slow);
}

.iberian-era-story:hover .iberian-era-header-bg img {
    transform: scale(1.05);
}

.iberian-era-header-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(26, 22, 16, 0.95) 0%, rgba(26, 22, 16, 0.6) 50%, transparent 100%);
}

.iberian-era-header-content {
    position: relative;
    z-index: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.iberian-era-icon-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(201, 160, 48, 0.2);
    border: 1px solid var(--iberian-gold);
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--iberian-gold);
    width: fit-content;
    font-family: var(--iberian-font-body);
}

.iberian-era-icon-badge i {
    font-size: 1rem;
}

.iberian-era-title {
    font-family: var(--iberian-font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 600;
    color: white;
    margin: 0;
}

.iberian-era-tagline {
    font-size: 1.05rem;
    color: var(--iberian-mist-dim);
    margin: 0;
    font-style: italic;
}

.iberian-era-toggle {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 48px;
    height: 48px;
    background: rgba(201, 160, 48, 0.2);
    border: 1px solid var(--iberian-gold);
    border-radius: 50%;
    color: var(--iberian-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--iberian-transition-fast);
    z-index: 2;
}

.iberian-era-toggle:hover {
    background: rgba(201, 160, 48, 0.3);
    transform: scale(1.1);
}

.iberian-era-toggle i {
    transition: transform var(--iberian-transition-fast);
}

.iberian-era-story.expanded .iberian-era-toggle i {
    transform: rotate(180deg);
}

/* Era Body */
.iberian-era-body {
    padding: 32px;
    background: var(--iberian-dark);
    display: none; /* Hidden by default, shown when parent has .expanded class */
}

.iberian-era-story.expanded .iberian-era-body {
    display: block;
}

.iberian-era-description {
    margin-bottom: 32px;
}

.iberian-era-desc-preview,
.iberian-era-desc-full {
    color: var(--iberian-mist-dim);
    line-height: 1.8;
    font-size: 1.05rem;
}

.iberian-era-desc-preview p,
.iberian-era-desc-full p {
    margin-bottom: 16px;
}

.iberian-read-more-btn {
    background: transparent;
    border: 1px solid var(--iberian-gold);
    color: var(--iberian-gold);
    padding: 10px 20px;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    transition: all var(--iberian-transition-fast);
    font-family: var(--iberian-font-body);
}

.iberian-read-more-btn:hover {
    background: rgba(201, 160, 48, 0.1);
    transform: translateY(-2px);
}

.iberian-read-more-btn i {
    transition: transform var(--iberian-transition-fast);
}

/* Era Statistics */
.iberian-era-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 20px;
    margin-bottom: 32px;
    padding: 24px;
    background: var(--iberian-warm);
    border-radius: 12px;
}

.iberian-era-stat {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.iberian-era-stat-value {
    font-family: var(--iberian-font-display);
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--iberian-gold);
}

.iberian-era-stat-label {
    font-size: 0.875rem;
    color: var(--iberian-mist-dim);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 500;
}

/* Haplogroup Highlights */
.iberian-era-haplogroups {
    margin-bottom: 32px;
}

.iberian-era-samples-title {
    font-family: var(--iberian-font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: white;
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.iberian-era-samples-title i {
    color: var(--iberian-gold);
}

.iberian-haplogroup-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.iberian-haplogroup-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--iberian-warm);
    border: 1px solid rgba(201, 160, 48, 0.3);
    padding: 10px 16px;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--iberian-mist);
    transition: all var(--iberian-transition-fast);
    font-family: var(--iberian-font-body);
}

.iberian-haplogroup-badge:hover {
    border-color: var(--iberian-gold);
    background: rgba(201, 160, 48, 0.1);
    transform: translateY(-2px);
}

.iberian-haplogroup-badge.ydna {
    border-left: 3px solid #4A90E2;
}

.iberian-haplogroup-badge.mtdna {
    border-left: 3px solid #E24A90;
}

.iberian-haplogroup-badge i {
    font-size: 0.875rem;
}

.iberian-hg-code {
    font-weight: 700;
    color: var(--iberian-gold);
}

.iberian-hg-count {
    background: rgba(201, 160, 48, 0.2);
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.75rem;
}

/* Sample Portrait Gallery */
.iberian-era-samples-gallery {
    margin-bottom: 32px;
}

.iberian-era-samples-scroll {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    padding: 16px 0;
    scrollbar-width: thin;
    scrollbar-color: var(--iberian-gold) var(--iberian-dark);
}

.iberian-era-samples-scroll::-webkit-scrollbar {
    height: 8px;
}

.iberian-era-samples-scroll::-webkit-scrollbar-track {
    background: var(--iberian-dark);
    border-radius: 4px;
}

.iberian-era-samples-scroll::-webkit-scrollbar-thumb {
    background: var(--iberian-gold);
    border-radius: 4px;
}

.iberian-era-sample-thumb {
    flex-shrink: 0;
    width: 120px;
    cursor: pointer;
    transition: transform var(--iberian-transition-fast);
    position: relative;
}

.iberian-era-sample-thumb:hover {
    transform: translateY(-8px);
}

.iberian-era-sample-thumb img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 12px;
    border: 2px solid rgba(201, 160, 48, 0.3);
    transition: border-color var(--iberian-transition-fast);
}

.iberian-era-sample-thumb:hover img {
    border-color: var(--iberian-gold);
}

.iberian-era-sample-thumb-name {
    margin-top: 8px;
    font-size: 0.75rem;
    color: var(--iberian-mist-dim);
    text-align: center;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.iberian-era-sample-more {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--iberian-warm);
    border: 2px dashed rgba(201, 160, 48, 0.3);
    border-radius: 12px;
    color: var(--iberian-mist-dim);
    font-size: 0.875rem;
    font-weight: 600;
}

/* Countries Summary */
.iberian-era-countries-summary {
    margin-top: 32px;
}

.iberian-era-country-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.iberian-era-country-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--iberian-warm);
    border: 1px solid rgba(201, 160, 48, 0.2);
    padding: 8px 14px;
    border-radius: 20px;
    font-size: 0.875rem;
    color: var(--iberian-mist);
    font-weight: 500;
}

.iberian-era-country-tag i {
    color: var(--iberian-gold);
    font-size: 0.75rem;
}

.iberian-era-country-tag small {
    color: var(--iberian-mist-dim);
    font-size: 0.75rem;
    margin-left: 4px;
}

/* Historical Quote */
.iberian-quote-block {
    margin: 60px auto 0;
    max-width: 800px;
    padding: 40px;
    background: var(--iberian-warm);
    border-left: 4px solid var(--iberian-gold);
    border-radius: 8px;
    text-align: center;
}

.iberian-quote-text {
    font-family: var(--iberian-font-display);
    font-size: 1.3rem;
    font-style: italic;
    color: var(--iberian-mist);
    margin: 0 0 16px;
    line-height: 1.6;
}

.iberian-quote-author {
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    font-style: normal;
    display: block;
    margin-top: 12px;
}

.iberian-quote-author::before {
    content: "â€” ";
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .iberian-history-section {
        padding: var(--iberian-section-padding-mobile) 16px;
    }
    
    .iberian-era-header {
        min-height: 180px;
        padding: 24px;
    }
    
    .iberian-era-body {
        padding: 24px;
    }
    
    .iberian-era-stats {
        grid-template-columns: repeat(2, 1fr);
        padding: 20px;
    }
    
    .iberian-era-title {
        font-size: 1.5rem;
    }
    
    .iberian-quote-block {
        padding: 24px;
        margin-top: 40px;
    }
    
    .iberian-quote-text {
        font-size: 1.1rem;
    }
    
    .iberian-era-sample-thumb {
        width: 100px;
    }
    
    .iberian-era-sample-thumb img {
        height: 100px;
    }
    
    .iberian-era-sample-more {
        width: 100px;
        height: 100px;
    }
}

/* ========================================
   PRINT STYLES
   ======================================== */
@media print {
    .iberian-loading-overlay,
    .iberian-scroll-progress,
    .iberian-page-nav,
    .iberian-bottom-nav,
    .iberian-back-to-top,
    .iberian-hero-particles,
    .iberian-drawer,
    .iberian-map-section {
        display: none !important;
    }
    
    .iberian-main {
        background: white;
        color: black;
    }
    
    .iberian-hero-overlay {
        display: none;
    }
    
    .iberian-section {
        padding: 40px 0;
        page-break-inside: avoid;
    }
    
    /* Expand all collapsed era cards for printing */
    .iberian-haplogroup-era-card.collapsed .iberian-haplo-era-body {
        max-height: none !important;
        opacity: 1 !important;
        display: block !important;
    }
    
    /* Hide collapse icons when printing */
    .iberian-haplo-collapse-icon {
        display: none !important;
    }
}

/* ========================================
   HAPLOGROUP CONNECTIONS SECTION
   ======================================== */
.iberian-haplogroup-section {
    background: linear-gradient(180deg, var(--iberian-dark) 0%, var(--iberian-warm) 100%);
    padding: var(--iberian-section-padding) 0;
}

@media (max-width: 768px) {
    .iberian-haplogroup-section {
        padding: var(--iberian-section-padding-mobile) 0;
    }
}

/* User Haplogroup Badges */
.iberian-haplo-user-info {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-bottom: 48px;
    flex-wrap: wrap;
}

.iberian-haplo-user-badge {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--iberian-warm);
    border: 2px solid rgba(201, 160, 48, 0.3);
    border-radius: 16px;
    padding: 20px 28px;
    position: relative;
    transition: all var(--iberian-transition-medium);
}

.iberian-haplo-user-badge:hover {
    border-color: var(--iberian-gold);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(201, 160, 48, 0.2);
}

.iberian-haplo-user-badge i:first-child {
    font-size: 2rem;
    opacity: 0.9;
}

.iberian-haplo-mtdna i:first-child {
    color: #E07B9B;
}

.iberian-haplo-ydna i:first-child {
    color: #7BA3E0;
}

.iberian-haplo-user-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.iberian-haplo-label {
    font-size: 0.75rem;
    color: var(--iberian-mist-faint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
}

.iberian-haplo-value {
    font-family: var(--iberian-font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--iberian-mist);
}

.iberian-haplo-link {
    color: var(--iberian-gold);
    opacity: 0.7;
    transition: all var(--iberian-transition-fast);
    margin-left: auto;
    font-size: 1.1rem;
}

.iberian-haplo-link:hover {
    color: var(--iberian-gold-light);
    opacity: 1;
    transform: scale(1.1);
}

/* Haplogroup Section */
.iberian-haplo-section {
    margin-bottom: 56px;
}

.iberian-haplo-section-title {
    font-family: var(--iberian-font-display);
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin: 0 0 16px 0;
    display: flex;
    align-items: center;
    gap: 16px;
}

.iberian-haplo-section-title i {
    opacity: 0.8;
    font-size: 1.5rem;
}

.iberian-haplo-section-title .fa-venus {
    color: #E07B9B;
}

.iberian-haplo-section-title .fa-mars {
    color: #7BA3E0;
}

.iberian-haplo-section-desc {
    color: var(--iberian-mist-dim);
    font-size: 1rem;
    margin: 0 0 32px 0;
    max-width: 800px;
    line-height: 1.7;
}

/* Matches Grid */
.iberian-haplo-matches-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}

@media (max-width: 768px) {
    .iberian-haplo-matches-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* Match Card */
.iberian-haplo-match-card {
    display: flex;
    gap: 16px;
    background: var(--iberian-warm);
    border: 2px solid rgba(201, 160, 48, 0.15);
    border-radius: 16px;
    padding: 20px;
    cursor: pointer;
    transition: all var(--iberian-transition-medium);
    position: relative;
    overflow: hidden;
}

.iberian-haplo-match-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--iberian-gold), var(--iberian-bronze));
    opacity: 0;
    transition: opacity var(--iberian-transition-fast);
}

.iberian-haplo-match-card:hover {
    border-color: var(--iberian-gold);
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
}

.iberian-haplo-match-card:hover::before {
    opacity: 1;
}

.iberian-haplo-match-portrait {
    position: relative;
    flex-shrink: 0;
}

.iberian-haplo-match-portrait img {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--iberian-terra);
    transition: all var(--iberian-transition-fast);
}

.iberian-haplo-match-card:hover .iberian-haplo-match-portrait img {
    border-color: var(--iberian-gold);
    transform: scale(1.05);
}

.iberian-haplo-match-type {
    display: inline-block;
    align-self: flex-start;
    margin-top: 6px;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 12px;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* Match Type Badges */
.iberian-haplo-match-exact {
    background: #28a745;
    color: white;
}

.iberian-haplo-match-subclade {
    background: #5B8DB8;
    color: white;
}

.iberian-haplo-match-parent {
    background: #8B7B6B;
    color: white;
}

.iberian-haplo-match-base {
    background: var(--iberian-gold);
    color: var(--iberian-deep);
}

.iberian-haplo-match-close {
    background: var(--iberian-bronze);
    color: white;
}

.iberian-haplo-match-related {
    background: var(--iberian-warm);
    color: var(--iberian-mist-dim);
    border: 1px solid rgba(201, 160, 48, 0.3);
}

/* Match Info */
.iberian-haplo-match-info {
    flex: 1;
    min-width: 0;
}

.iberian-haplo-match-name {
    font-family: var(--iberian-font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin: 0 0 8px 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.iberian-haplo-match-haplo {
    margin-bottom: 12px;
}

.iberian-haplo-match-haplo code {
    font-size: 0.9rem;
    background: rgba(201, 160, 48, 0.2);
    color: var(--iberian-gold-light);
    padding: 4px 10px;
    border-radius: 6px;
    font-family: 'Courier New', monospace;
    font-weight: 600;
    border: 1px solid rgba(201, 160, 48, 0.3);
}

.iberian-haplo-match-meta {
    display: flex;
    gap: 16px;
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    flex-wrap: wrap;
}

.iberian-haplo-match-meta i {
    margin-right: 6px;
    opacity: 0.7;
    color: var(--iberian-gold);
}

/* Legend */
.iberian-haplo-legend {
    background: var(--iberian-warm);
    border: 2px solid rgba(201, 160, 48, 0.2);
    border-radius: 16px;
    padding: 32px;
    margin-top: 48px;
}

.iberian-haplo-legend h5 {
    font-size: 1.1rem;
    color: var(--iberian-mist);
    margin: 0 0 24px 0;
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--iberian-font-display);
    font-weight: 600;
}

.iberian-haplo-legend h5 i {
    color: var(--iberian-gold);
    font-size: 1.2rem;
}

.iberian-haplo-legend-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}

@media (max-width: 768px) {
    .iberian-haplo-legend-grid {
        grid-template-columns: 1fr;
    }
}

.iberian-haplo-legend-item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.9rem;
    color: var(--iberian-mist-dim);
    line-height: 1.5;
}

.iberian-haplo-legend-item .iberian-haplo-match-type {
    position: static;
    transform: none;
    flex-shrink: 0;
}

/* Callout */
.iberian-haplo-callout {
    background: linear-gradient(135deg, rgba(201, 160, 48, 0.1) 0%, rgba(205, 127, 50, 0.1) 100%);
    border: 2px solid rgba(201, 160, 48, 0.3);
    border-radius: 16px;
    padding: 32px;
    margin-top: 48px;
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.iberian-haplo-callout i {
    font-size: 2rem;
    color: var(--iberian-gold);
    flex-shrink: 0;
    margin-top: 4px;
}

.iberian-haplo-callout > div {
    flex: 1;
}

.iberian-haplo-callout strong {
    display: block;
    font-family: var(--iberian-font-display);
    font-size: 1.3rem;
    color: var(--iberian-mist);
    margin-bottom: 12px;
    font-weight: 600;
}

.iberian-haplo-callout p {
    color: var(--iberian-mist-dim);
    margin: 0 0 20px 0;
    line-height: 1.7;
    font-size: 0.95rem;
}

.iberian-haplo-report-links {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.iberian-btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: transparent;
    border: 2px solid var(--iberian-gold);
    color: var(--iberian-gold);
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--iberian-transition-fast);
    font-size: 0.9rem;
}

.iberian-btn-outline:hover {
    background: var(--iberian-gold);
    color: var(--iberian-deep);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(201, 160, 48, 0.3);
    text-decoration: none;
}

.iberian-btn-sm {
    padding: 8px 16px;
    font-size: 0.85rem;
}

@media (max-width: 768px) {
    .iberian-haplo-callout {
        flex-direction: column;
        padding: 24px;
    }
    
    .iberian-haplo-callout i {
        font-size: 1.5rem;
    }
}

/* ========================================
   NOTIFICATION ANIMATIONS
   ======================================== */
@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideOutRight {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(100%);
        opacity: 0;
    }
}

.iberian-notification {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--iberian-font-body);
    font-size: 14px;
    font-weight: 500;
    max-width: 400px;
    word-wrap: break-word;
}

.iberian-notification i {
    font-size: 18px;
}

@media (max-width: 768px) {
    .iberian-notification {
        top: 10px;
        right: 10px;
        left: 10px;
        max-width: none;
        font-size: 13px;
        padding: 12px 16px;
    }
}

/* ========================================
   SOCIAL CARD PREVIEW MODAL
   ======================================== */
.iberian-card-preview-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    animation: fadeIn 0.3s ease forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

.iberian-card-preview-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(4px);
}

.iberian-card-preview-content {
    position: relative;
    background: var(--iberian-deep);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    max-width: 90vw;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    z-index: 1;
}

.iberian-card-preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.5rem;
    border-bottom: 1px solid rgba(201, 160, 48, 0.2);
}

.iberian-card-preview-header h3 {
    margin: 0;
    color: var(--iberian-gold);
    font-size: 1.25rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.iberian-card-preview-close {
    background: transparent;
    border: none;
    color: var(--iberian-mist-dim);
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0.5rem;
    line-height: 1;
    transition: color var(--iberian-transition-fast);
}

.iberian-card-preview-close:hover {
    color: var(--iberian-gold);
}

.iberian-card-preview-body {
    padding: 2rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.iberian-card-preview-card-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #000;
    border-radius: 8px;
    padding: 1rem;
    overflow: auto;
}

.iberian-card-preview-card-wrapper .iberian-social-card-template {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    display: block !important;
    transform: scale(0.5);
    transform-origin: top center;
}

.iberian-card-preview-actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
}

@media (max-width: 768px) {
    .iberian-card-preview-content {
        max-width: 95vw;
        max-height: 95vh;
    }

    .iberian-card-preview-header {
        padding: 1rem;
    }

    .iberian-card-preview-header h3 {
        font-size: 1rem;
    }

    .iberian-card-preview-body {
        padding: 1rem;
    }

    .iberian-card-preview-card-wrapper .iberian-social-card-template {
        transform: scale(0.35);
    }
}

/* ========================================
   REGION DRAWER SPECIFIC STYLES
   ======================================== */
.iberian-region-drawer-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 2rem;
    background: rgba(201, 160, 48, 0.05);
    border-bottom: 2px solid rgba(201, 160, 48, 0.2);
}

.iberian-region-drawer-flag {
    width: 80px;
    height: 60px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    border: 2px solid rgba(201, 160, 48, 0.3);
}

.iberian-region-drawer-flag img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.iberian-region-drawer-info {
    flex: 1;
}

.iberian-region-drawer-info h3 {
    font-family: var(--iberian-font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--iberian-mist) !important;
    margin: 0 0 0.5rem;
}

.iberian-region-drawer-info p {
    color: var(--iberian-mist-dim);
    margin: 0 0 0.75rem;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iberian-region-drawer-stats {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--iberian-gold);
    font-weight: 600;
    font-size: 1rem;
}

.iberian-region-drawer-stats .dna-icon {
    width: 18px;
    height: 18px;
    color: var(--iberian-gold);
}

.iberian-region-drawer-tabs {
    display: flex;
    gap: 0.5rem;
    padding: 1rem 2rem;
    background: rgba(201, 160, 48, 0.03);
    border-bottom: 1px solid rgba(201, 160, 48, 0.15);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.iberian-region-drawer-tab {
    padding: 0.6rem 1.2rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(201, 160, 48, 0.2);
    border-radius: 20px;
    color: var(--iberian-mist-dim);
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.iberian-region-drawer-tab:hover {
    background: rgba(201, 160, 48, 0.1);
    border-color: rgba(201, 160, 48, 0.4);
    color: var(--iberian-mist);
}

.iberian-region-drawer-tab.active {
    background: var(--iberian-gold);
    border-color: var(--iberian-gold);
    color: var(--iberian-deep);
    font-weight: 600;
}

.iberian-region-drawer-samples {
    padding: 1.5rem 2rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}

.iberian-region-drawer-sample-card {
    background: rgba(26, 22, 16, 0.8);
    border: 2px solid rgba(201, 160, 48, 0.2);
    border-radius: 12px;
    padding: 1.25rem;
    transition: all 0.2s ease;
    cursor: pointer;
}

.iberian-region-drawer-sample-card:hover {
    transform: translateY(-4px);
    border-color: rgba(201, 160, 48, 0.5);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

.iberian-region-drawer-sample-content {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.iberian-region-drawer-sample-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--iberian-gold);
    flex-shrink: 0;
}

.iberian-region-drawer-sample-info {
    flex: 1;
    min-width: 0;
}

.iberian-region-drawer-sample-id {
    font-family: var(--iberian-font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--iberian-mist);
    margin-bottom: 0.5rem;
}

.iberian-region-drawer-sample-location {
    font-size: 0.85rem;
    color: var(--iberian-mist-dim);
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.iberian-region-drawer-sample-location .dna-icon {
    width: 14px;
    height: 14px;
    color: var(--iberian-gold);
}

.iberian-region-drawer-sample-era {
    display: inline-block;
    padding: 0.3rem 0.8rem;
    background: rgba(201, 160, 48, 0.15);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--iberian-gold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iberian-region-drawer-empty {
    padding: 4rem 2rem;
    text-align: center;
    color: var(--iberian-mist-dim);
}

.iberian-region-drawer-empty .dna-icon {
    width: 48px;
    height: 48px;
    color: var(--iberian-mist-dim);
    margin-bottom: 1rem;
    opacity: 0.5;
}

.iberian-region-drawer-empty p {
    font-size: 1rem;
    margin: 0;
}

.iberian-site-drawer-hero {
    display: grid;
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
    gap: 1.5rem;
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(201, 160, 48, 0.12);
    border-radius: 18px;
}

.iberian-site-drawer-hero-image-wrap {
    overflow: hidden;
    border-radius: 14px;
    min-height: 180px;
    background: rgba(255, 255, 255, 0.04);
}

.iberian-site-drawer-hero-image {
    width: 100%;
    height: 100%;
    min-height: 180px;
    object-fit: cover;
}

.iberian-site-drawer-hero-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.iberian-site-drawer-hero-badge {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.85rem;
    margin-bottom: 1rem;
    background: rgba(201, 160, 48, 0.18);
    border: 1px solid rgba(201, 160, 48, 0.3);
    border-radius: 999px;
    color: var(--iberian-gold-light);
    font-size: 0.85rem;
    font-weight: 600;
}

.iberian-site-drawer-hero-content h3 {
    margin: 0 0 0.75rem;
    color: var(--iberian-mist);
    font-family: var(--iberian-font-display);
    font-size: 1.9rem;
}

.iberian-site-drawer-location {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    color: var(--iberian-mist-dim);
}

.iberian-site-drawer-location .dna-icon {
    color: var(--iberian-gold);
}

.iberian-site-drawer-text {
    color: var(--iberian-mist-dim);
    line-height: 1.8;
    font-size: 1rem;
}

.iberian-site-drawer-keyfacts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.iberian-site-drawer-keyfact {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

.iberian-site-drawer-keyfact-label {
    color: var(--iberian-mist-faint);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.iberian-site-drawer-keyfact-value {
    color: var(--iberian-mist);
    font-size: 1rem;
    font-weight: 600;
}

.iberian-site-drawer-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.iberian-site-drawer-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(201, 160, 48, 0.24);
    background: rgba(201, 160, 48, 0.12);
    color: var(--iberian-gold-light);
    font-size: 0.85rem;
    font-weight: 600;
}

.iberian-site-drawer-chip-highlight {
    background: rgba(201, 160, 48, 0.2);
    border-color: rgba(201, 160, 48, 0.4);
    color: var(--iberian-mist);
}

.iberian-site-drawer-list {
    margin: 0;
    padding-left: 1.25rem;
    color: var(--iberian-mist-dim);
}

.iberian-site-drawer-list li + li {
    margin-top: 0.6rem;
}

.iberian-site-drawer-haplogroups-row + .iberian-site-drawer-haplogroups-row {
    margin-top: 1rem;
}

.iberian-site-drawer-haplogroups-label {
    display: inline-block;
    min-width: 64px;
    margin-bottom: 0.6rem;
    color: var(--iberian-mist-faint);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.iberian-site-drawer-samples {
    padding: 0;
}

/* Mobile responsive for region drawer */
@media (max-width: 767px) {
    .iberian-site-drawer-hero {
        grid-template-columns: 1fr;
    }

    .iberian-site-drawer-keyfacts {
        grid-template-columns: 1fr;
    }

    .iberian-drawer-panel {
        width: 100vw;
        max-width: 100vw;
        min-width: 100vw;
        border-radius: 24px 24px 0 0;
        top: auto;
        bottom: 0;
        height: 90vh;
        transform: translateY(100%);
    }
    
    .iberian-drawer.open .iberian-drawer-panel {
        transform: translateY(0);
    }
    
    .iberian-region-drawer-header {
        flex-direction: column;
        text-align: center;
        padding: 1.5rem;
    }
    
    .iberian-region-drawer-flag {
        width: 60px;
        height: 45px;
    }
    
    .iberian-region-drawer-tabs {
        padding: 1rem;
        gap: 0.4rem;
    }
    
    .iberian-region-drawer-tab {
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
    }
    
    .iberian-region-drawer-samples {
        grid-template-columns: 1fr;
        padding: 1rem;
        gap: 1rem;
    }
}

/* ========================================
   SAMPLE EXPLORER FILTERS
   ======================================== */
/* Hide Civilization dropdown filter */
#iberianFilterCivilization {
    display: none !important;
}
