/* ==========================================================================
   ITC Homepage 2026 — Executive Premium Design
   ========================================================================== */

/* Lenis smooth scrolling */
html.lenis, html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto; /* Lenis handles scrolling — disable native */
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

/* Fallback for no-JS or prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .lenis.lenis-smooth { scroll-behavior: auto; }
}

:root {
    --itc-blue: #133C68;
    --itc-blue-deep: #0a1e36;
    --itc-blue-light: #1a5294;
    --itc-navy: #0d2847;
    --itc-silver: #C0BEBD;
    --itc-silver-header: #A2A1A0;
    --itc-gold: #C8A951;
    --itc-gold-light: #dcc47a;
    --itc-white: #FFFFFF;
    --itc-off-white: #f7f8fa;
    --itc-font: 'Calibri', 'Gill Sans', 'Helvetica Neue', Arial, sans-serif;
    --itc-font-serif: 'Georgia', 'Cambria', 'Times New Roman', serif;
    --itc-radius: 12px;
    --itc-shadow-sm: 0 2px 8px rgba(19, 60, 104, 0.06);
    --itc-shadow-md: 0 8px 30px rgba(19, 60, 104, 0.1);
    --itc-shadow-lg: 0 20px 50px rgba(19, 60, 104, 0.15);
    --itc-shadow-glow: 0 0 40px rgba(200, 169, 81, 0.15);
    --itc-transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ==========================================================================
   Base / Reset
   ========================================================================== */

.itc-hero, .itc-companies, .itc-books, .itc-bio, .itc-media, .itc-podcasts {
    font-family: var(--itc-font);
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.itc-hero *, .itc-companies *, .itc-books *, .itc-bio *, .itc-media *, .itc-podcasts * {
    box-sizing: border-box;
}

/* Section headings */
.itc-section-heading {
    font-family: var(--itc-font);
    color: var(--itc-blue);
    font-size: 2.2rem;
    font-weight: 700;
    text-align: center;
    margin: 0 0 0.75rem;
    line-height: 1.25;
    letter-spacing: -0.01em;
    position: relative;
}

/* ---------- Heading accent decorations ---------- */

/* Underline bar — short gradient line below heading */
.itc-section-heading--accent-underline::after {
    content: '';
    display: block;
    width: 50px;
    height: 3px;
    background: linear-gradient(90deg, var(--itc-blue), var(--itc-gold));
    margin: 0.6rem auto 0;
    border-radius: 2px;
}

/* Side lines — lines extending from both sides of the heading */
.itc-section-heading--accent-lines {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
}
.itc-section-heading--accent-lines::before,
.itc-section-heading--accent-lines::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--itc-silver), transparent);
    max-width: 120px;
}
.itc-section-heading--accent-lines::before {
    margin-left: auto;
}
.itc-section-heading--accent-lines::after {
    margin-right: auto;
}

/* Diamond — small diamond shape before heading text */
.itc-section-heading--accent-diamond::before {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    background: var(--itc-gold);
    transform: rotate(45deg);
    margin: 0 auto 0.75rem;
}

/* Dot trio — three dots above heading */
.itc-section-heading--accent-dots::before {
    content: '· · ·';
    display: block;
    font-size: 1.5rem;
    letter-spacing: 0.5em;
    color: var(--itc-gold);
    margin-bottom: 0.5rem;
    line-height: 1;
}

/* None (default) — no decoration */

/* ---------- Subtle section backgrounds ---------- */

/* Tint color vars — dark mode (for light backgrounds) is default */
[class*="itc-section-bg--"] {
    position: relative;
    --t1: var(--itc-texture-c1, rgba(19, 60, 104, 0.07));   /* primary tint */
    --t2: var(--itc-texture-c2, rgba(200, 169, 81, 0.06));   /* accent tint */
    --tv: var(--itc-texture-cv, rgba(0, 0, 0, 0.08));        /* vignette tint */
    --tg: var(--itc-texture-cg, rgba(0, 0, 0, 0.04));        /* grain tint */
    --tl: var(--itc-texture-cl, rgba(19, 60, 104, 0.03));    /* linen tint */
}

/* Light mode — for dark backgrounds: use white/light tints */
[class*="itc-section-bg--"].itc-texture-light {
    --t1: var(--itc-texture-c1, rgba(255, 255, 255, 0.08));
    --t2: var(--itc-texture-c2, rgba(200, 169, 81, 0.07));
    --tv: var(--itc-texture-cv, rgba(255, 255, 255, 0.10));
    --tg: var(--itc-texture-cg, rgba(255, 255, 255, 0.04));
    --tl: var(--itc-texture-cl, rgba(255, 255, 255, 0.04));
}

[class*="itc-section-bg--"]::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: var(--itc-texture-opacity, 1);
}

/* Ensure inner content sits above the texture overlay */
[class*="itc-section-bg--"] > * { position: relative; z-index: 1; }

/* Allow textures on any Elementor container (not just ITC widgets) */
.e-con[class*="itc-section-bg--"] { position: relative; overflow: hidden; }
.e-con[class*="itc-section-bg--"]::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: var(--itc-texture-opacity, 1);
}
.e-con[class*="itc-section-bg--"] > * { position: relative; z-index: 1; }

/* --- Full-coverage textures --- */

/* Radial glow — warm/cool accent pools */
.itc-section-bg--glow::after {
    background: radial-gradient(ellipse at 20% 50%, var(--t1) 0%, transparent 60%),
                radial-gradient(ellipse at 80% 50%, var(--t2) 0%, transparent 50%);
}

/* Vignette — darkened/lightened edges */
.itc-section-bg--vignette::after {
    background: radial-gradient(ellipse at center, transparent 40%, var(--tv) 100%);
}

/* Grain — fine noise texture */
.itc-section-bg--grain::after {
    background: repeating-conic-gradient(var(--tg) 0% 25%, transparent 0% 50%);
    background-size: 4px 4px;
}

/* Linen — crosshatch fabric texture */
.itc-section-bg--linen::after {
    background:
        repeating-linear-gradient(0deg, transparent, transparent 3px, var(--tl) 3px, var(--tl) 4px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, var(--tl) 3px, var(--tl) 4px);
}

/* --- Edge & corner textures (fade to transparent) --- */

.itc-section-bg--fade-top::after {
    background: linear-gradient(180deg, var(--t1) 0%, transparent 35%);
}
.itc-section-bg--fade-bottom::after {
    background: linear-gradient(0deg, var(--t1) 0%, transparent 35%);
}
.itc-section-bg--fade-left::after {
    background: linear-gradient(90deg, var(--t1) 0%, transparent 40%);
}
.itc-section-bg--fade-right::after {
    background: linear-gradient(270deg, var(--t1) 0%, transparent 40%);
}

/* Corner glows */
.itc-section-bg--corner-tl::after {
    background: radial-gradient(ellipse at 0% 0%, var(--t1) 0%, transparent 50%);
}
.itc-section-bg--corner-tr::after {
    background: radial-gradient(ellipse at 100% 0%, var(--t2) 0%, transparent 50%);
}
.itc-section-bg--corner-bl::after {
    background: radial-gradient(ellipse at 0% 100%, var(--t2) 0%, transparent 50%);
}
.itc-section-bg--corner-br::after {
    background: radial-gradient(ellipse at 100% 100%, var(--t1) 0%, transparent 50%);
}

/* Diagonal corners */
.itc-section-bg--corners-diag::after {
    background: radial-gradient(ellipse at 0% 0%, var(--t1) 0%, transparent 45%),
                radial-gradient(ellipse at 100% 100%, var(--t2) 0%, transparent 45%);
}

/* All corners */
.itc-section-bg--corners-all::after {
    background: radial-gradient(ellipse at 0% 0%, var(--t1) 0%, transparent 40%),
                radial-gradient(ellipse at 100% 0%, var(--t2) 0%, transparent 40%),
                radial-gradient(ellipse at 0% 100%, var(--t2) 0%, transparent 40%),
                radial-gradient(ellipse at 100% 100%, var(--t1) 0%, transparent 40%);
}

/* Bands */
.itc-section-bg--bands-h::after {
    background: linear-gradient(180deg, var(--t1) 0%, transparent 25%, transparent 75%, var(--t1) 100%);
}
.itc-section-bg--bands-v::after {
    background: linear-gradient(90deg, var(--t1) 0%, transparent 25%, transparent 75%, var(--t1) 100%);
}

/* ---------- Section top bar ---------- */

/* Universal bar rendered via inline CSS vars on the section element */
[class*="itc-section-bar"]::before {
    content: '';
    position: absolute;
    top: 0;
    z-index: 2;
    height: var(--itc-bar-height, 3px);
    border-radius: var(--itc-bar-radius, 2px);
    background: var(--itc-bar-bg, linear-gradient(90deg, var(--itc-blue), var(--itc-gold)));
}

/* Full-width bar */
.itc-section-bar--full::before {
    left: 0; right: 0;
    width: 100%;
    border-radius: 0;
}

/* Centered bar */
.itc-section-bar--centered::before {
    left: 50%;
    transform: translateX(-50%);
    width: var(--itc-bar-width, 60px);
}

/* Left-aligned bar */
.itc-section-bar--left::before {
    left: var(--itc-bar-inset, 30px);
    width: var(--itc-bar-width, 60px);
}

/* Right-aligned bar */
.itc-section-bar--right::before {
    right: var(--itc-bar-inset, 30px);
    width: var(--itc-bar-width, 60px);
}

/* Bar styles — set via inline style on section */
/* Default: solid color via --itc-bar-color */
/* Gradient and fade variants use background set inline */

.itc-section-subheading {
    font-family: var(--itc-font);
    color: var(--itc-silver-header);
    font-size: 1.05rem;
    text-align: center;
    margin: 0 auto 3rem;
    max-width: 600px;
    line-height: 1.7;
}

/* ==========================================================================
   Hero Section — Cinematic
   ========================================================================== */

.itc-hero {
    position: relative;
    min-height: 85vh; /* overridden by Elementor control */
    display: flex;
    align-items: center;
    justify-content: flex-start;
    background-size: cover;
    background-position: center;
    background-color: var(--itc-blue-deep);
    overflow: hidden;
    box-sizing: border-box;
}

.itc-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(19, 60, 104, 0.7) 0%, rgba(10, 30, 54, 0.85) 100%);
    z-index: 1;
}

/* Animated particle star field — tiled radial gradients create a scattered dot pattern */
.itc-hero__particles {
    position: absolute;
    inset: 0;
    z-index: 2;
    opacity: 0.6;
    background-image:
        radial-gradient(2px 2px at 15% 25%, rgba(255,255,255,0.45) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 65% 55%, rgba(255,255,255,0.35) 0%, transparent 100%),
        radial-gradient(2px 2px at 40% 80%, rgba(200,169,81,0.4) 0%, transparent 100%),
        radial-gradient(1px 1px at 80% 15%, rgba(255,255,255,0.3) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 25% 65%, rgba(200,169,81,0.35) 0%, transparent 100%),
        radial-gradient(1px 1px at 90% 70%, rgba(255,255,255,0.25) 0%, transparent 100%);
    background-size: 220px 200px, 300px 280px, 260px 320px, 340px 240px, 180px 300px, 280px 180px;
    animation: itcParticlesDrift 25s linear infinite;
    pointer-events: none;
}

@keyframes itcParticlesDrift {
    0% { transform: translateY(0); }
    100% { transform: translateY(-40px); }
}

.itc-hero__content {
    position: relative;
    z-index: 3;
    /* max-width controlled by Elementor "Content Area Width" responsive control */
    padding: 80px 60px;
    /* Align with site content area, offset slightly left */
    margin-left: calc((100vw - var(--itc-site-width, 1200px)) / 2 - 40px);
}

@media (max-width: 1280px) {
    .itc-hero__content {
        margin-left: 0;
    }
}

/* Badge */
.itc-hero__badge {
    display: inline-block;
    font-family: var(--itc-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--itc-gold);
    border: 1px solid rgba(200, 169, 81, 0.4);
    padding: 6px 16px;
    border-radius: 20px;
    margin-bottom: 2rem;
    background: rgba(200, 169, 81, 0.08);
}

.itc-hero__tagline {
    font-family: var(--itc-font);
    color: var(--itc-white);
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 2rem;
    letter-spacing: -0.02em;
}

.itc-hero__line {
    display: block;
}

.itc-hero__accent {
    color: var(--itc-gold);
    font-style: italic;
    font-family: var(--itc-font-serif);
    position: relative;
}

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

.itc-hero__accent--no-underline::after {
    display: none;
}

.itc-hero__divider {
    display: block;
    margin: 0 0 1.5rem;
    border-radius: 2px;
    /* width, height, and background set via inline styles from widget controls */
}

.itc-hero__intro {
    font-family: var(--itc-font);
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.1rem;
    line-height: 1.8;
    margin: 0 0 2.5rem;
}

/* ---------- Text readability modes ---------- */

/* Text Shadow Only — no overlay, heavy shadows for bright backgrounds */
.itc-hero--text-shadow .itc-hero__tagline,
.itc-hero--text-shadow .itc-hero__intro,
.itc-hero--text-shadow .itc-hero__badge,
.itc-hero--text-shadow .itc-hero__cta,
.itc-hero--text-shadow .itc-hero__compact-title,
.itc-hero--text-shadow .itc-hero__compact-subtitle,
.itc-hero--text-shadow .itc-hero__breadcrumb,
.itc-hero--text-shadow .itc-hero__breadcrumb a,
.itc-hero--text-shadow .itc-hero__breadcrumb-sep,
.itc-hero--text-shadow .itc-hero__breadcrumb-current {
    text-shadow:
        0 0 4px rgba(0, 0, 0, 0.95),
        0 1px 3px rgba(0, 0, 0, 0.9),
        0 2px 10px rgba(0, 0, 0, 0.8),
        0 4px 24px rgba(0, 0, 0, 0.6),
        0 8px 40px rgba(0, 0, 0, 0.4) !important;
}

.itc-hero--text-shadow .itc-hero__accent {
    text-shadow:
        0 0 4px rgba(0, 0, 0, 0.9),
        0 1px 3px rgba(0, 0, 0, 0.8),
        0 2px 10px rgba(0, 0, 0, 0.6),
        0 4px 20px rgba(0, 0, 0, 0.4) !important;
}

.itc-hero--text-shadow .itc-hero__divider,
.itc-hero--text-shadow .itc-hero__divider--compact {
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.8), 0 2px 12px rgba(0, 0, 0, 0.5);
}

/* CTA Buttons */
.itc-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--itc-font);
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    padding: 14px 36px;
    border-radius: 6px;
    transition: var(--itc-transition);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    position: relative;
    overflow: hidden;
}

.itc-btn__arrow {
    transition: transform 0.3s ease;
}

.itc-hero__cta:hover .itc-btn__arrow {
    transform: translateX(4px);
}

/* Solid (Brand Blue) — matches site buttons */
.itc-hero__cta--solid {
    background: var(--itc-blue);
    color: #fff;
    border: 2px solid var(--itc-blue);
}

.itc-hero__cta--solid:hover {
    background: #1a4f8a;
    border-color: #1a4f8a;
    box-shadow: 0 4px 16px rgba(19, 60, 104, 0.3);
    color: #fff;
}

/* Outline (Brand Blue) */
.itc-hero__cta--outline {
    background: transparent;
    color: var(--itc-blue);
    border: 2px solid var(--itc-blue);
}

.itc-hero__cta--outline:hover {
    background: var(--itc-blue);
    color: #fff;
    box-shadow: 0 4px 16px rgba(19, 60, 104, 0.3);
}

/* Gold Accent */
.itc-hero__cta--gold {
    background: var(--itc-gold);
    color: #fff;
    border: 2px solid var(--itc-gold);
}

.itc-hero__cta--gold:hover {
    background: #b8993d;
    border-color: #b8993d;
    box-shadow: 0 4px 16px rgba(200, 169, 81, 0.35);
    color: #fff;
}

/* Outline (White) — for use on dark/image backgrounds */
.itc-hero__cta--outline-white {
    color: var(--itc-white);
    border: 2px solid rgba(255, 255, 255, 0.5);
    background: transparent;
}

.itc-hero__cta--outline-white:hover {
    color: var(--itc-blue);
    background: var(--itc-white);
    border-color: var(--itc-white);
    box-shadow: 0 4px 20px rgba(255, 255, 255, 0.2);
}

/* Glassmorphism — for use on image backgrounds */
.itc-hero__cta--glass {
    color: var(--itc-white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.itc-hero__cta--glass:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
}

/* Scroll indicator */
.itc-hero__scroll-indicator {
    position: absolute;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}

.itc-hero__scroll-indicator span {
    display: block;
    width: 24px;
    height: 40px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 12px;
    position: relative;
}

.itc-hero__scroll-indicator span::after {
    content: '';
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 8px;
    background: var(--itc-gold);
    border-radius: 2px;
    animation: itcScrollBounce 2s ease-in-out infinite;
}

@keyframes itcScrollBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); opacity: 1; }
    50% { transform: translateX(-50%) translateY(12px); opacity: 0.3; }
}

/* Hero fade-in */
.itc-fade-in {
    animation: itcFadeInUp 1s ease-out both;
}

.itc-fade-in .itc-hero__badge { animation: itcFadeInUp 0.8s 0.2s ease-out both; }
.itc-fade-in .itc-hero__tagline { animation: itcFadeInUp 0.8s 0.4s ease-out both; }
.itc-fade-in .itc-hero__divider { animation: itcFadeInUp 0.8s 0.5s ease-out both; }
.itc-fade-in .itc-hero__intro { animation: itcFadeInUp 0.8s 0.6s ease-out both; }
.itc-fade-in .itc-hero__cta { animation: itcFadeInUp 0.8s 0.8s ease-out both; }

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

/* ---------- Banner Hero (Logo Showcase): image on top, copy below ---------- */

.itc-hero-banner {
    width: 100%;
    box-sizing: border-box;
    background-color: #0a1e36; /* overridden by Elementor control */
}

.itc-hero-banner__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.itc-hero-banner__media {
    width: 100%;
    max-width: 1100px; /* overridden by Elementor control */
    margin: 0 auto;
    line-height: 0; /* removes inline-image gap */
}

.itc-hero-banner__media-link {
    display: block;
    line-height: 0;
    transition: opacity 0.25s ease;
}

.itc-hero-banner__media-link:hover {
    opacity: 0.92;
}

.itc-hero-banner__img {
    display: block;
    width: 100%;
    height: auto;
}

/* Rendered logo panel (banner_source = tiles) — recreates the LinkedIn banner */
.itc-hero-banner__logos {
    position: relative;
    display: grid;
    /* --cols set by "Logos Per Row"; --tile-track = 1fr (stretch) unless "Tile Width" sets a fixed px */
    grid-template-columns: repeat(var(--cols, 6), var(--tile-track, 1fr));
    justify-content: center; /* group fixed-width tiles in the center instead of spreading */
    gap: 8px;
    width: 100%;
    max-width: 1100px; /* overridden by Elementor control */
    margin: 0 auto;
    padding: 36px; /* overridden by Elementor control */
    border-radius: 16px; /* overridden by Elementor control */
    overflow: hidden;
    box-shadow: 0 18px 50px rgba(10, 30, 54, 0.25);
    box-sizing: border-box;
}

.itc-hero-banner__tile {
    display: flex;
    align-items: stretch; /* let the glass wrap fill the cell height */
    justify-content: center;
    text-decoration: none;
    min-width: 0;
    border: none;
    outline: none;
    box-shadow: none;
}

/* Kill the theme/browser link border + focus ring on hover/click (keep a clean keyboard ring) */
.itc-hero-banner__tile:hover,
.itc-hero-banner__tile:focus,
.itc-hero-banner__tile:active {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
}
.itc-hero-banner__tile img {
    border: none;
    outline: none;
}
.itc-hero-banner__tile:focus-visible {
    outline: 2px solid var(--itc-gold) !important;
    outline-offset: 3px;
    border-radius: 6px;
}

.itc-hero-banner__logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 130px; /* fixed so all tile backgrounds match — overridden by Elementor control */
    box-sizing: border-box;
    overflow: hidden;
    padding: 16px 18px; /* overridden by Elementor control */
    border-radius: 12px; /* overridden by Elementor control */
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}

.itc-hero-banner__tile:hover .itc-hero-banner__logo-wrap {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

/* Tile style variants — mirror the showcase logo treatment */

/* Image tile — an exported PNG (with PSD effects baked in) IS the tile. The plugin sets
   the background-image inline; here we strip the CSS treatment so only the PNG shows. */
.itc-hero-banner__logo-wrap--image {
    background-color: transparent !important;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain; /* overridden by Tile Image Fit control */
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible;
}

/* Brand (app-icon) — vertical blue gradient fill + a gradient border that fades to
   transparent at the bottom, matching the PSD. Two layered backgrounds: the fill is
   clipped to the padding box, the border gradient to the border box (shows in the
   transparent border ring). All driven by CSS vars so the controls can tune it. */
.itc-hero-banner__logo-wrap--brand {
    /* Vars (--tile-bg, --tile-bg2, --tile-border, --tile-border-w) come from the
       controls on the panel and inherit down; fallbacks keep it working with none set.
       Per-logo overrides set --tile-bg/--tile-bg2 on the individual tile. */
    border: var(--tile-border-w, 2px) solid transparent;
    background:
        linear-gradient(180deg, var(--tile-bg, #1E5A9E) 0%, var(--tile-bg2, #0B2A4A) 100%) padding-box,
        linear-gradient(180deg, var(--tile-border, rgba(140, 195, 245, 0.9)) 0%, rgba(255, 255, 255, 0) 60%) border-box;
    box-shadow:
        0 6px 14px rgba(6, 22, 45, 0.40),
        inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

.itc-hero-banner__logo-wrap--solid {
    background-color: rgba(255, 255, 255, 0.92);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.22);
}
.itc-hero-banner__logo-wrap--glass {
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
}
.itc-hero-banner__logo-wrap--subtle {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.itc-hero-banner__logo-wrap--dark {
    background: rgba(10, 30, 54, 0.5);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.itc-hero-banner__logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: 64px; /* overridden by Elementor control */
    max-height: 100%; /* never taller than the tile — keeps backgrounds uniform */
    object-fit: contain;
}

.itc-hero-banner__logo-text {
    font-family: var(--itc-font);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.25;
}

.itc-hero-banner__content {
    width: 100%;
    max-width: 760px; /* overridden by Elementor control */
    margin: 40px auto 0; /* margin-top overridden by gap control */
    text-align: center; /* overridden by Elementor control */
}

.itc-hero-banner__heading {
    font-family: var(--itc-font);
    color: #fff; /* overridden by Elementor control */
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 1rem;
}

.itc-hero-banner__body {
    font-family: var(--itc-font);
    color: rgba(255, 255, 255, 0.85); /* overridden by Elementor control */
    font-size: 1.0625rem;
    line-height: 1.7;
    margin: 0;
}

.itc-hero-banner__content .itc-hero__cta {
    margin-top: 1.75rem;
}

/* Staggered fade-in for banner pieces */
.itc-fade-in .itc-hero-banner__media   { animation: itcFadeInUp 0.9s 0.1s ease-out both; }
.itc-fade-in .itc-hero-banner__heading { animation: itcFadeInUp 0.8s 0.35s ease-out both; }
.itc-fade-in .itc-hero-banner__body    { animation: itcFadeInUp 0.8s 0.5s ease-out both; }
.itc-fade-in .itc-hero-banner__content .itc-hero__cta { animation: itcFadeInUp 0.8s 0.65s ease-out both; }

@media (max-width: 767px) {
    .itc-hero-banner__heading { font-size: clamp(1.4rem, 6vw, 1.9rem); }
    .itc-hero-banner__body { font-size: 1rem; }
}

/* ---------- Compact Hero (Sub-Pages): Mini Hero with Image + Overlay ---------- */

.itc-hero-compact {
    position: relative;
    width: 100%;
    min-height: 35vh;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}

/* Gradient/color overlay — sits between bg image and text */
.itc-hero-compact__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

/* Content container — above overlay */
.itc-hero-compact__content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    /* Padding controlled by Elementor "Content Padding" responsive control */
    text-align: center;
}

/* Left-align modifier */
.itc-hero-compact--left .itc-hero-compact__content {
    text-align: left;
    margin-left: 0;
}

/* Breadcrumb */
.itc-hero-compact__breadcrumb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    font-family: var(--itc-font);
    font-size: 0.85rem;
    letter-spacing: 0.03em;
}

.itc-hero-compact--left .itc-hero-compact__breadcrumb {
    justify-content: flex-start;
}

.itc-hero-compact__breadcrumb a {
    color: rgba(255, 255, 255, 0.65);
    text-decoration: none;
    transition: color 0.3s ease, text-decoration 0.3s ease;
}

.itc-hero-compact__breadcrumb a:hover {
    color: #ffffff;
}

.itc-hero-compact__breadcrumb-sep {
    color: rgba(255, 255, 255, 0.35);
    display: flex;
    align-items: center;
}

.itc-hero-compact__breadcrumb-current {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 600;
}

/* Title — white text on image */
.itc-hero-compact__title {
    font-family: var(--itc-font);
    color: #ffffff;
    font-size: 2.8rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

/* Divider */
.itc-hero-compact__divider {
    margin: 12px auto 16px;
    border-radius: 2px;
}

.itc-hero-compact--left .itc-hero-compact__divider {
    margin-left: 0;
    margin-right: auto;
}

/* Subtitle */
.itc-hero-compact__subtitle {
    font-family: var(--itc-font);
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.05rem;
    line-height: 1.6;
    margin: 0 auto 0;
    max-width: 600px;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

.itc-hero-compact--left .itc-hero-compact__subtitle {
    margin-left: 0;
}

/* Compact fade-in stagger */
.itc-hero-compact .itc-fade-in .itc-hero-compact__breadcrumb { animation: itcFadeInUp 0.6s 0.1s ease-out both; }
.itc-hero-compact .itc-fade-in .itc-hero-compact__title { animation: itcFadeInUp 0.7s 0.2s ease-out both; }
.itc-hero-compact .itc-fade-in .itc-hero-compact__divider { animation: itcFadeInUp 0.6s 0.3s ease-out both; }
.itc-hero-compact .itc-fade-in .itc-hero-compact__subtitle { animation: itcFadeInUp 0.7s 0.4s ease-out both; }

@media (max-width: 1024px) {
    .itc-hero-compact__title { font-size: 2.4rem; }
}

@media (max-width: 767px) {
    .itc-hero-compact { min-height: 30vh; }
    .itc-hero-compact__title { font-size: 2rem; }
    .itc-hero-compact__subtitle { font-size: 0.95rem; }
}

/* ==========================================================================
   Companies Section
   ========================================================================== */

.itc-companies {
    background: var(--itc-off-white);
    padding: 80px 30px;
    position: relative;
}

/* Glass style: bar override for z-index over glass background */
.itc-companies--style-glass[class*="itc-section-bar"]::before {
    z-index: 3;
}

.itc-companies__inner {
    max-width: 1400px;
    margin: 0 auto;
}

.itc-companies__row {
    display: flex;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ---------- Base card ---------- */
.itc-company-card {
    --card-lift: -8px;
    flex: 1 1 200px;
    max-width: 240px;
    background: var(--itc-white);
    border-radius: var(--itc-radius);
    padding: 32px 20px 28px;
    text-align: center;
    text-decoration: none;
    color: inherit;
    transition: var(--itc-transition);
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    overflow: hidden;
}

/* ---------- Card style variants ---------- */
.itc-company-card--elevated {
    box-shadow: var(--itc-shadow-sm);
    border: 1px solid rgba(19, 60, 104, 0.04);
}

.itc-company-card--elevated:hover {
    box-shadow: var(--itc-shadow-lg);
    border-color: rgba(19, 60, 104, 0.08);
}

.itc-company-card--bordered {
    box-shadow: none;
    border: 1.5px solid var(--itc-silver);
}

.itc-company-card--bordered:hover {
    border-color: var(--itc-blue);
    box-shadow: var(--itc-shadow-md);
}

.itc-company-card--minimal {
    box-shadow: none;
    border: 1px solid transparent;
    background: transparent;
}

.itc-company-card--minimal:hover {
    background: var(--itc-white);
    box-shadow: var(--itc-shadow-md);
}

/* Glassmorphism backdrop — tripled specificity to beat Elementor's {{WRAPPER}} section_bg selector */
.itc-companies.itc-companies.itc-companies--style-glass {
    background: linear-gradient(135deg, #0d2847 0%, #133C68 40%, #1a5294 70%, #0d2847 100%);
    position: relative;
    overflow: hidden;
}

.itc-companies--style-glass::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(200, 169, 81, 0.12) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 20%, rgba(26, 82, 148, 0.3) 0%, transparent 50%),
        radial-gradient(ellipse at 60% 80%, rgba(200, 169, 81, 0.08) 0%, transparent 40%);
    pointer-events: none;
}

.itc-companies--style-glass .itc-section-heading {
    color: var(--itc-white);
}

.itc-companies--style-glass .itc-section-subheading {
    color: rgba(255, 255, 255, 0.7);
}

.itc-companies--style-glass .itc-companies__inner {
    position: relative;
    z-index: 1;
}

/* Glass cards — tripled specificity (0-4-0) to beat Elementor's {{WRAPPER}} selectors */
.itc-company-card.itc-company-card.itc-company-card--glass {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.itc-company-card--glass .itc-company-card__name {
    color: var(--itc-white);
}

.itc-company-card--glass .itc-company-card__desc {
    color: rgba(255, 255, 255, 0.7);
}

.itc-company-card--glass .itc-company-card__arrow {
    color: var(--itc-gold);
}

.itc-company-card--glass .itc-company-card__cta {
    color: var(--itc-gold);
}

.itc-company-card.itc-company-card.itc-company-card--glass:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.25);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.itc-company-card--glass:hover .itc-company-card__arrow {
    opacity: 1;
    color: var(--itc-gold-light);
}

/* Hover lift — doubled class specificity (0-3-0) beats .itc-reveal.itc-visible (0-2-0) */
.itc-company-card.itc-company-card:hover {
    transform: translateY(var(--card-lift, -8px));
}

/* Top glow accent on hover */
.itc-company-card__glow {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--itc-blue), var(--itc-gold));
    transform: scaleX(0);
    transition: transform 0.4s ease;
    transform-origin: left;
}

.itc-company-card:hover .itc-company-card__glow {
    transform: scaleX(1);
}

/* Watermark logo background */
.itc-company-card__watermark {
    position: absolute;
    right: -10px;
    bottom: -10px;
    width: 110px;
    height: 110px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;
    filter: grayscale(100%);
}

.itc-company-card:hover .itc-company-card__watermark {
    opacity: 0.12;
}

.itc-company-card__logo {
    width: 100px;
    height: 100px;
    object-fit: contain;
    margin-bottom: 1.25rem;
    filter: grayscale(25%) brightness(1.02);
    transition: filter 0.4s ease, transform 0.4s ease;
    position: relative;
    z-index: 1;
}

.itc-company-card:hover .itc-company-card__logo {
    filter: grayscale(0%) brightness(1);
    transform: scale(1.05);
}

.itc-company-card__name {
    font-family: var(--itc-font);
    color: var(--card-accent, var(--itc-blue));
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0 0 0.6rem;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}

.itc-company-card__desc {
    font-family: var(--itc-font);
    color: #666;
    font-size: 0.82rem;
    line-height: 1.55;
    margin: 0 0 1rem;
    flex: 1;
    position: relative;
    z-index: 1;
}

.itc-company-card__arrow {
    color: var(--itc-blue);
    opacity: 0;
    transform: translateY(8px);
    transition: var(--itc-transition);
    position: relative;
    z-index: 1;
}

.itc-company-card:hover .itc-company-card__arrow {
    opacity: 0.6;
    transform: translateY(0);
    color: var(--card-accent, var(--itc-blue));
}

/* Per-card CTA */
.itc-company-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--itc-font);
    color: var(--card-accent, var(--itc-gold));
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-top: auto;
    padding-top: 0.5rem;
    transition: gap 0.3s ease, color 0.3s ease;
    position: relative;
    z-index: 1;
}

.itc-company-card:hover .itc-company-card__cta {
    gap: 10px;
    color: var(--card-accent, var(--itc-blue));
}

/* ==========================================================================
   Companies — Showcase (Expanding Panels)
   ========================================================================== */

.itc-showcase {
    display: flex;
    flex-direction: row;
    height: 550px;
    min-height: 400px;
    overflow: hidden;
    border-radius: var(--itc-radius);
    list-style: none;
    margin: 0;
    padding: 0;
    /* Overlay CSS vars — set by Elementor selectors, used by gradient rules below */
    --sc-overlay: rgba(10, 30, 54, 0.65);
    --sc-overlay-top: rgba(10, 30, 54, 0.45);
    --sc-overlay-bottom: rgba(10, 30, 54, 0.9);
    --sc-overlay-start: 0%;
}

.itc-showcase__panel {
    flex: 1;
    display: flex;
    align-items: stretch;
    cursor: pointer;
    transition: flex 0.7s cubic-bezier(0.25, 0.1, 0.25, 1);
    position: relative;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-color: var(--itc-blue-deep);
    overflow: hidden;
    border-left: 1px solid rgba(255, 255, 255, 0.15);
}

/* ---------- Divider style variants ---------- */

/* Solid (default — uses border-left from above) */
.itc-showcase--divider-solid .itc-showcase__panel { /* inherits default border-left */ }

/* Gradient fade — replaces border with a pseudo-element that fades top/bottom */
.itc-showcase--divider-gradient .itc-showcase__panel {
    border-left: none;
}
.itc-showcase--divider-gradient .itc-showcase__panel::after {
    content: '';
    position: absolute;
    top: 10%;
    bottom: 10%;
    left: 0;
    width: var(--itc-divider-width, 1px);
    background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.2) 30%, rgba(255, 255, 255, 0.2) 70%, transparent 100%);
    z-index: 4;
    pointer-events: none;
}
.itc-showcase--divider-gradient .itc-showcase__panel:first-child::after {
    display: none;
}

/* Gold glow — thin gold accent with soft shadow */
.itc-showcase--divider-glow .itc-showcase__panel {
    border-left: none;
}
.itc-showcase--divider-glow .itc-showcase__panel::after {
    content: '';
    position: absolute;
    top: 15%;
    bottom: 15%;
    left: 0;
    width: var(--itc-divider-width, 1px);
    background: var(--itc-gold);
    box-shadow: 0 0 8px rgba(200, 169, 81, 0.3), 0 0 20px rgba(200, 169, 81, 0.1);
    z-index: 4;
    pointer-events: none;
}
.itc-showcase--divider-glow .itc-showcase__panel:first-child::after {
    display: none;
}

/* None — remove all dividers */
.itc-showcase--divider-none .itc-showcase__panel {
    border-left: none;
}

.itc-showcase__panel:first-child {
    border-left: none;
    border-radius: var(--itc-radius) 0 0 var(--itc-radius);
}

.itc-showcase__panel:last-child {
    border-radius: 0 var(--itc-radius) var(--itc-radius) 0;
}

/* Overlay */
.itc-showcase__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    transition: background 0.6s cubic-bezier(0.25, 0.1, 0.25, 1), opacity 0.5s ease;
    opacity: 1;
}

/* Active panel overlay — uses CSS vars so Elementor controls update live */
.itc-showcase__overlay--active {
    background: linear-gradient(180deg, transparent 0%, var(--sc-overlay-top) var(--sc-overlay-start), var(--sc-overlay-bottom) 100%);
}

/* Inactive panel overlay */
.itc-showcase__overlay--inactive {
    background: linear-gradient(180deg, var(--sc-overlay) 0%, rgba(10,30,54,0.92) 100%);
}

/* Collapsed: rotated tab label */
.itc-showcase__tab-label {
    font-family: var(--itc-font);
    color: var(--itc-white);
    font-size: 1.6rem;
    font-weight: 600;
    white-space: nowrap;
    position: absolute;
    z-index: 3;
    opacity: 1;
    top: 100%;
    left: 50%;
    transform: translate(-20px, -230%) rotate(-90deg);
    transform-origin: 0 0;
    transition: opacity 0.5s cubic-bezier(0.25, 0.1, 0.25, 1),
                top 0.5s cubic-bezier(0.25, 0.1, 0.25, 1),
                color 0.4s ease,
                transform 0.4s ease,
                text-shadow 0.4s ease;
    margin: 0;
    letter-spacing: 0.01em;
}

/* ---------- Inactive panel hover styles ---------- */

/* Default hover: subtle glow */
.itc-showcase--hover-glow .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__overlay {
    opacity: 0.8;
}
.itc-showcase--hover-glow .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__tab-label {
    color: var(--itc-gold);
    text-shadow: 0 0 30px rgba(200, 169, 81, 0.25);
}

/* Hover: lighten */
.itc-showcase--hover-lighten .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__overlay {
    opacity: 0.7;
}
.itc-showcase--hover-lighten .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__tab-label {
    color: rgba(255, 255, 255, 1);
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

/* Hover: expand (panel grows slightly) */
.itc-showcase--hover-expand .itc-showcase__panel:not(.itc-showcase__panel--active):hover {
    flex: 1.5;
}
.itc-showcase--hover-expand .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__overlay {
    opacity: 0.8;
}
.itc-showcase--hover-expand .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__tab-label {
    color: var(--itc-gold);
}

/* Hover: scale text */
.itc-showcase--hover-scale .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__tab-label {
    transform: translate(-20px, -230%) rotate(-90deg) scale(1.08);
    color: var(--itc-gold-light);
    text-shadow: 0 0 20px rgba(200, 169, 81, 0.2);
}
.itc-showcase--hover-scale .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__overlay {
    opacity: 0.85;
}

/* Hover: none */
.itc-showcase--hover-none .itc-showcase__panel:not(.itc-showcase__panel--active):hover .itc-showcase__tab-label {
    /* no hover change */
}

/* ---------- Active panel ---------- */
.itc-showcase__panel--active {
    flex: 6;
    cursor: default;
}

.itc-showcase__panel--active .itc-showcase__tab-label {
    opacity: 0;
    top: 200%;
}

/* Content area (visible only when active) — staggered fade */
.itc-showcase__content {
    position: relative;
    z-index: 3;
    opacity: 0;
    align-self: flex-end;
    width: 100%;
    transition: opacity 0.5s 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.itc-showcase__panel--active .itc-showcase__content {
    opacity: 1;
}

.itc-showcase__inner {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s 0.25s cubic-bezier(0.25, 0.1, 0.25, 1),
                transform 0.5s 0.25s cubic-bezier(0.25, 0.1, 0.25, 1);
    max-width: 700px;
}

.itc-showcase__panel--active .itc-showcase__inner {
    opacity: 1;
    transform: translateY(0);
}

.itc-showcase__logo-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 0.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
}

.itc-showcase__logo-wrap .itc-showcase__logo {
    margin-bottom: 0;
}

/* Logo-wrap background styles */
.itc-showcase__logo-wrap--solid {
    background-color: rgba(255, 255, 255, 0.92);
}

.itc-showcase__logo-wrap--glass {
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.itc-showcase__logo-wrap--subtle {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.itc-showcase__logo-wrap--dark {
    background: rgba(10, 30, 54, 0.5);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.itc-showcase__logo {
    width: 60px;
    height: 60px;
    object-fit: contain;
    margin-bottom: 0.25rem;
}

/* ---------- Logo layout variants ---------- */

/* Stacked (default — logo above title, no extra rules) */

/* Inline — logo sits left, all text (title + desc + link) sits right */
.itc-showcase__logo-row {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
}

.itc-showcase__logo-row .itc-showcase__logo {
    margin-bottom: 0;
    flex-shrink: 0;
}

.itc-showcase__logo-row .itc-showcase__logo-wrap {
    margin-bottom: 0;
    flex-shrink: 0;
}

.itc-showcase__logo-row-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.itc-showcase__logo-row-text .itc-showcase__title {
    margin: 0;
}

.itc-showcase__logo-row-text .itc-showcase__desc {
    margin: 0;
}

.itc-showcase__logo-row-text .itc-showcase__link {
    margin-top: 0.25rem;
}

/* When inline layout has no bg container, vertically center the bare logo */
.itc-showcase--logo-inline .itc-showcase__inner {
    gap: 0;
}

/* Badge — small logo pinned to top-left corner of the panel itself */
.itc-showcase__logo-badge {
    position: absolute;
    top: 24px;
    left: 24px;
    z-index: 5;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.4s 0.3s ease, transform 0.4s 0.3s ease;
}

.itc-showcase__panel--active .itc-showcase__logo-badge {
    opacity: 1;
    transform: translateY(0);
}

.itc-showcase__logo-badge .itc-showcase__logo {
    width: 48px;
    height: 48px;
    margin-bottom: 0;
}

.itc-showcase__logo-badge .itc-showcase__logo-wrap {
    margin-bottom: 0;
    padding: 10px;
    border-radius: 10px;
}

/* Hero — large centered logo above content, faded into the panel */
.itc-showcase__logo-hero {
    text-align: center;
    margin-bottom: 1rem;
}

.itc-showcase__logo-hero .itc-showcase__logo {
    width: 120px;
    height: 120px;
    margin-bottom: 0;
    opacity: 0.9;
}

.itc-showcase__logo-hero .itc-showcase__logo-wrap {
    margin-bottom: 0;
}

.itc-showcase__title {
    font-family: var(--itc-font);
    color: var(--itc-white);
    font-size: 2.4rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.15;
    letter-spacing: -0.01em;
}

.itc-showcase__desc {
    font-family: var(--itc-font);
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 0;
}

.itc-showcase__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--itc-font);
    color: var(--itc-gold);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: gap 0.3s ease, color 0.3s ease;
    margin-top: 0.5rem;
}

.itc-showcase__link:hover {
    gap: 14px;
    color: var(--itc-gold-light);
}

/* ---------- Inactive tab styles ---------- */

/* Color / Accent — hide bg image on inactive, show solid color */
.itc-showcase--tab-color .itc-showcase__panel:not(.itc-showcase__panel--active),
.itc-showcase--tab-accent .itc-showcase__panel:not(.itc-showcase__panel--active) {
    background-image: none !important;
}

/* Gradient — overlay covers the image entirely */
.itc-showcase--tab-gradient .itc-showcase__panel:not(.itc-showcase__panel--active) .itc-showcase__overlay {
    opacity: 1;
}

/* When panel becomes active, show bg image and reset tab styling */
.itc-showcase--tab-color .itc-showcase__panel--active,
.itc-showcase--tab-accent .itc-showcase__panel--active,
.itc-showcase--tab-gradient .itc-showcase__panel--active {
    background-color: var(--itc-blue-deep) !important;
}

/* Active panel — accent color bottom border (color overridden by JS from data-accent) */
.itc-showcase__panel--active {
    border-bottom: 3px solid var(--showcase-active-border, var(--itc-gold));
    transition: flex 0.7s cubic-bezier(0.25, 0.1, 0.25, 1), border-bottom-color 0.3s ease;
}

/* ---------- Showcase responsive ---------- */

/* Tablet + Phone — vertical accordion with smooth grid animation */
@media (max-width: 1024px) {

    /* ── Container: always auto-height on mobile ── */
    .itc-showcase {
        flex-direction: column !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    /* ── All panels: no flex grow, stack vertically ── */
    .itc-showcase__panel {
        flex: 0 0 auto !important;
        display: flex !important;
        flex-direction: column !important;
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.15);
        overflow: hidden;
        position: relative;
    }

    .itc-showcase__panel:first-child {
        border-top: none;
        border-radius: var(--itc-radius) var(--itc-radius) 0 0;
    }

    .itc-showcase__panel:last-child {
        border-radius: 0 0 var(--itc-radius) var(--itc-radius);
    }

    /* ── Tab label: centered horizontal bar ── */
    .itc-showcase__tab-label {
        position: static !important;
        display: flex !important;
        width: 100% !important;
        align-items: center !important;
        justify-content: center !important;
        transform: none !important;
        text-align: center !important;
        padding: 20px 24px;
        font-size: 1.3rem;
        white-space: normal;
        margin: 0;
        writing-mode: horizontal-tb;
        min-height: 64px;
        z-index: 3;
        opacity: 1 !important;
        top: auto !important;
        left: auto !important;
    }

    /* ── Active panel: hide tab, set min-height, position text at bottom ── */
    .itc-showcase__panel--active .itc-showcase__tab-label {
        display: none !important;
    }

    .itc-showcase__panel--active {
        min-height: 350px;
        justify-content: flex-end !important;
    }

    /* Overlay: let the Elementor controls handle gradient colors/opacity per device */
    .itc-showcase__panel--active .itc-showcase__overlay {
        opacity: 1;
    }

    /* ── Content: grid-row animation for smooth expand/collapse ── */
    .itc-showcase__content {
        position: relative !important;
        display: grid !important;
        grid-template-rows: 0fr;
        transition: grid-template-rows 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        opacity: 1 !important;
        align-self: auto !important;
        z-index: 3;
    }

    .itc-showcase__panel--active .itc-showcase__content {
        grid-template-rows: 1fr;
    }

    /* ── Inner: relative flow, no absolute positioning ── */
    .itc-showcase__inner {
        position: relative !important;
        bottom: auto !important;
        left: auto !important;
        right: auto !important;
        opacity: 1 !important;
        transform: none !important;
        overflow: hidden;
        min-height: 0;
        padding: 24px;
        max-width: none !important;
        transition: opacity 0.4s ease-out, padding 0.4s ease-out;
    }

    /* Collapsed: zero padding so grid row truly collapses to 0 height */
    .itc-showcase__panel:not(.itc-showcase__panel--active) .itc-showcase__inner {
        opacity: 0 !important;
        padding-top: 0;
        padding-bottom: 0;
        pointer-events: none;
        transition: opacity 0.15s ease-out, padding 0.3s ease-out;
    }

    .itc-showcase__title {
        font-size: 1.8rem;
        text-shadow: 0 1px 6px rgba(0,0,0,0.5);
    }

    .itc-showcase__desc {
        text-shadow: 0 1px 4px rgba(0,0,0,0.4);
    }

    /* Badge stays visible on active panel */
    .itc-showcase__logo-badge {
        opacity: 1 !important;
        transform: none !important;
    }

    /* ── Dividers: switch from left to top ── */
    .itc-showcase--divider-gradient .itc-showcase__panel {
        border-top: none;
    }
    .itc-showcase--divider-gradient .itc-showcase__panel::after {
        top: 0;
        bottom: auto;
        left: 10%;
        right: 10%;
        width: auto;
        height: var(--itc-divider-width, 1px);
        background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.2) 30%, rgba(255, 255, 255, 0.2) 70%, transparent 100%);
    }
    .itc-showcase--divider-glow .itc-showcase__panel {
        border-top: none;
    }
    .itc-showcase--divider-glow .itc-showcase__panel::after {
        top: 0;
        bottom: auto;
        left: 15%;
        right: 15%;
        width: auto;
        height: var(--itc-divider-width, 1px);
    }
    .itc-showcase--divider-none .itc-showcase__panel {
        border-top: none;
    }
}

/* Phone */
@media (max-width: 767px) {
    .itc-showcase__tab-label {
        font-size: 1.1rem;
        padding: 16px 20px;
    }

    .itc-showcase__inner {
        padding: 20px;
    }

    .itc-showcase__title {
        font-size: 1.5rem;
    }

    .itc-showcase__desc {
        font-size: 0.95rem;
    }

    .itc-showcase__logo {
        width: 48px;
        height: 48px;
    }

    .itc-showcase__logo-hero .itc-showcase__logo {
        width: 80px;
        height: 80px;
    }

    .itc-showcase__logo-badge .itc-showcase__logo {
        width: 36px;
        height: 36px;
    }

    .itc-showcase__logo-badge {
        top: 16px;
        left: 16px;
    }

    /* Hide logos on mobile when toggled */
    .itc-showcase--hide-logo-mobile .itc-showcase__logo,
    .itc-showcase--hide-logo-mobile .itc-showcase__logo-wrap,
    .itc-showcase--hide-logo-mobile .itc-showcase__logo-badge,
    .itc-showcase--hide-logo-mobile .itc-showcase__logo-hero {
        display: none !important;
    }
}

/* ==========================================================================
   Books / Authored Works
   ========================================================================== */

.itc-books {
    background: var(--itc-white);
    padding: 80px 30px;
    position: relative;
}

/* Books bar handled by universal .itc-section-bar--* system */

.itc-books__inner {
    max-width: 960px;
    margin: 0 auto;
}

.itc-books__row {
    display: flex;
    gap: 3rem;
    justify-content: center;
    flex-wrap: wrap;
}

.itc-book-card {
    flex: 1 1 300px;
    max-width: 420px;
    display: flex;
    gap: 1.75rem;
    text-decoration: none;
    color: inherit;
    padding: 2rem;
    border-radius: var(--itc-radius);
    transition: var(--itc-transition);
    border: 1px solid rgba(0, 0, 0, 0.04);
    background: var(--itc-white);
}

.itc-book-card.itc-book-card:hover {
    box-shadow: var(--itc-shadow-md);
    transform: translateY(-6px);
    border-color: rgba(19, 60, 104, 0.06);
}

.itc-book-card--no-lift:hover {
    transform: none;
}

/* Book cover with shine effect */
.itc-book-card__cover-wrap {
    position: relative;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 4px;
}

.itc-book-card__cover {
    width: 160px;
    height: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.2), -2px -2px 8px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.4s ease;
}

.itc-book-card:hover .itc-book-card__cover {
    box-shadow: 6px 8px 30px rgba(0, 0, 0, 0.25), -2px -2px 8px rgba(0, 0, 0, 0.05);
}

/* Glossy shine sweep */
.itc-book-card__shine {
    position: absolute;
    top: -50%;
    left: -60%;
    width: 40%;
    height: 200%;
    background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.25) 45%, rgba(255, 255, 255, 0.1) 50%, transparent 55%);
    transform: skewX(-15deg);
    transition: left 0.6s ease;
    pointer-events: none;
}

.itc-book-card:hover .itc-book-card__shine {
    left: 130%;
}

.itc-book-card__info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.itc-book-card__title {
    font-family: var(--itc-font);
    color: var(--itc-blue);
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 0.6rem;
    line-height: 1.3;
}

.itc-book-card__desc {
    font-family: var(--itc-font);
    color: #666;
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0 0 1rem;
}

.itc-book-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--itc-font);
    color: var(--itc-gold);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    transition: gap 0.3s ease, color 0.3s ease;
}

.itc-book-card:hover .itc-book-card__link {
    gap: 10px;
    color: var(--itc-blue);
}

/* ---------- Layout: Classic (default — no extra rules needed) ---------- */

/* ---------- Layout: Stacked ---------- */
.itc-book-card--stacked {
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 340px;
    gap: 0;
    padding: 2.5rem 2rem;
    border-radius: 16px;
}

.itc-book-card--stacked .itc-book-card__cover-wrap {
    margin-bottom: 1.75rem;
}

.itc-book-card--stacked .itc-book-card__info {
    align-items: center;
}

.itc-book-card--stacked .itc-book-card__link {
    margin-top: 0.25rem;
}

/* ---------- Layout: Showcase (Dark Overlay) ---------- */
.itc-books__row--showcase {
    gap: 1.5rem;
}

.itc-book-card--showcase {
    flex-direction: column;
    justify-content: flex-end;
    min-height: 520px;
    max-width: 460px;
    background-size: cover;
    background-position: center top;
    background-color: var(--itc-blue-deep);
    border: none;
    padding: 0;
    gap: 0;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
}

.itc-book-card__showcase-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    transition: opacity 0.5s ease;
}

.itc-book-card--showcase:hover .itc-book-card__showcase-overlay {
    opacity: 0.85;
}

.itc-book-card--showcase:hover {
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

.itc-book-card--showcase .itc-book-card__info {
    position: relative;
    z-index: 2;
    padding: 0 2.25rem 2.25rem;
    justify-content: flex-end;
}

.itc-book-card--showcase .itc-book-card__title {
    color: var(--itc-white);
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
}

.itc-book-card--showcase .itc-book-card__desc {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.92rem;
}

.itc-book-card--showcase .itc-book-card__link {
    color: var(--itc-gold);
}

.itc-book-card--showcase:hover .itc-book-card__link {
    color: var(--itc-gold-light);
}

/* ---------- Layout: Minimal (Editorial) ---------- */
.itc-book-card--minimal {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 1.75rem 0;
    max-width: 100%;
    gap: 2rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.itc-books__row--minimal {
    flex-direction: column;
    max-width: 700px;
    margin: 0 auto;
    gap: 0;
}

.itc-book-card--minimal:last-child {
    border-bottom: none;
}

.itc-book-card--minimal:hover {
    box-shadow: none;
    background: transparent;
    transform: none;
}

.itc-book-card--minimal .itc-book-card__cover {
    box-shadow: 2px 4px 16px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    transition: box-shadow 0.4s ease, transform 0.4s ease;
}

.itc-book-card--minimal:hover .itc-book-card__cover {
    box-shadow: 4px 8px 24px rgba(0, 0, 0, 0.18);
    transform: scale(1.02);
}

.itc-book-card--minimal .itc-book-card__title {
    font-size: 1.25rem;
}

.itc-book-card--minimal .itc-book-card__shine {
    display: none;
}

/* ---------- Layout: Feature (Full Width) ---------- */
.itc-books__row--feature {
    flex-direction: column;
    align-items: center;
    gap: 2.5rem;
}

.itc-book-card--feature {
    max-width: 840px;
    width: 100%;
    gap: 3rem;
    padding: 3rem;
    align-items: center;
    border-radius: 16px;
    background: var(--itc-white);
    border: 1px solid rgba(19, 60, 104, 0.06);
    box-shadow: 0 4px 20px rgba(19, 60, 104, 0.06);
}

.itc-book-card--feature:hover {
    box-shadow: 0 12px 40px rgba(19, 60, 104, 0.12);
}

.itc-book-card--feature .itc-book-card__cover {
    width: 200px;
}

.itc-book-card--feature .itc-book-card__title {
    font-size: 1.6rem;
    margin-bottom: 0.75rem;
}

.itc-book-card--feature .itc-book-card__desc {
    font-size: 1rem;
    line-height: 1.8;
    margin-bottom: 1.25rem;
}

.itc-book-card--feature.itc-book-card--reverse {
    flex-direction: row-reverse;
}

/* ==========================================================================
   Bio Section
   ========================================================================== */

.itc-bio {
    background: var(--itc-white);
    padding: 80px 30px;
}

.itc-bio__heading {
    font-family: var(--itc-font);
    color: var(--itc-blue);
    font-size: 2.2rem;
    font-weight: 700;
    text-align: center;
    margin: 0 auto 2.5rem;
    line-height: 1.25;
}

.itc-bio__inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    gap: 3.5rem;
    align-items: center;
}

.itc-bio__photo {
    flex-shrink: 0;
    position: relative;
}

/* Decorative ring */
.itc-bio__photo-ring {
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    border: 2px solid rgba(200, 169, 81, 0.25);
    animation: itcRingSpin 15s linear infinite;
    border-top-color: transparent;
    border-right-color: transparent;
}

@keyframes itcRingSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.itc-bio__photo img {
    width: 240px;
    height: 240px;
    object-fit: cover;
    border-radius: 50%;
    box-shadow: var(--itc-shadow-md);
    position: relative;
    z-index: 1;
}

.itc-bio__photo img.itc-bio__photo--no-shadow {
    box-shadow: none;
}

.itc-bio__text {
    flex: 1;
    font-family: var(--itc-font);
    color: #333;
    font-size: 1.1rem;
    line-height: 1.8;
}

.itc-bio__text p {
    margin: 0 0 1rem;
}

.itc-bio__text p:last-child {
    margin-bottom: 0;
}

/* CTA Button */
.itc-bio__cta-wrap {
    margin-top: 1.75rem;
}

.itc-bio__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--itc-font);
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none;
    padding: 14px 32px;
    border-radius: 8px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.itc-bio__cta svg {
    transition: transform 0.3s ease;
}

.itc-bio__cta:hover svg {
    transform: translateX(4px);
}

/* Solid */
.itc-bio__cta--solid {
    background: var(--itc-blue);
    color: #fff;
    border: 2px solid var(--itc-blue);
}

.itc-bio__cta--solid:hover {
    background: #1a4f8a;
    border-color: #1a4f8a;
    box-shadow: 0 4px 16px rgba(19, 60, 104, 0.3);
    color: #fff;
}

/* Outline */
.itc-bio__cta--outline {
    background: transparent;
    color: var(--itc-blue);
    border: 2px solid var(--itc-blue);
}

.itc-bio__cta--outline:hover {
    background: var(--itc-blue);
    color: #fff;
    box-shadow: 0 4px 16px rgba(19, 60, 104, 0.3);
}

/* Gold Accent */
.itc-bio__cta--gold {
    background: var(--itc-gold);
    color: #fff;
    border: 2px solid var(--itc-gold);
}

.itc-bio__cta--gold:hover {
    background: #b8993d;
    border-color: #b8993d;
    box-shadow: 0 4px 16px rgba(200, 169, 81, 0.35);
    color: #fff;
}

/* ---------- Layout: Classic ---------- */
.itc-bio__inner--classic {
    /* Default: no extra styling */
}

/* ---------- Layout: Elevated Card ---------- */
.itc-bio__inner--card {
    background: var(--itc-white);
    padding: 48px;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(19, 60, 104, 0.08), 0 2px 10px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(19, 60, 104, 0.05);
    transition: box-shadow 0.4s ease, transform 0.4s ease;
}

.itc-bio__inner--card:hover {
    box-shadow: 0 16px 50px rgba(19, 60, 104, 0.12), 0 4px 14px rgba(0, 0, 0, 0.05);
    transform: translateY(-2px);
}

/* ---------- Layout: Split Card ---------- */
.itc-bio__inner--split {
    border-radius: 16px;
    overflow: hidden;
    padding: 0;
    gap: 0;
    box-shadow: 0 10px 40px rgba(19, 60, 104, 0.1);
}

.itc-bio__photo-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--itc-blue);
    padding: 48px 40px;
    flex-shrink: 0;
    min-width: 280px;
}

.itc-bio__photo-panel .itc-bio__photo img {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
}

.itc-bio__photo-panel .itc-bio__photo-ring {
    border-color: rgba(200, 169, 81, 0.4);
    border-top-color: transparent;
    border-right-color: transparent;
}

.itc-bio__text-panel {
    padding: 48px 40px;
    display: flex;
    align-items: center;
    flex: 1;
    background: var(--itc-white);
}

/* ---------- Layout: Centered Stack ---------- */
.itc-bio__inner--centered {
    flex-direction: column;
    text-align: center;
    gap: 2rem;
    padding: 48px;
    border-radius: 16px;
    background: var(--itc-white);
    box-shadow: 0 10px 40px rgba(19, 60, 104, 0.08);
    max-width: 700px;
}

.itc-bio__inner--centered .itc-bio__text {
    max-width: 560px;
    margin: 0 auto;
}

/* ---------- Layout: Accent Border ---------- */
.itc-bio__inner--accent {
    padding: 40px 44px;
    border-radius: 12px;
    background: var(--itc-white);
    border-left: 4px solid var(--itc-gold);
    box-shadow: 0 6px 24px rgba(19, 60, 104, 0.06);
}

/* ==========================================================================
   Media Landing Page
   ========================================================================== */

.itc-media {
    padding: 80px 30px;
    background: var(--itc-white);
    position: relative;
}

/* Media bar handled by universal .itc-section-bar--* system */

.itc-media__inner {
    max-width: 800px;
    margin: 0 auto;
}

.itc-media__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.itc-media-card {
    background: linear-gradient(135deg, var(--itc-blue) 0%, var(--itc-navy) 100%);
    color: var(--itc-white);
    border-radius: 16px;
    padding: 48px 32px;
    text-align: center;
    text-decoration: none;
    transition: var(--itc-transition);
    position: relative;
    overflow: hidden;
}

/* Hover glow accent bar at top of card */
.itc-media-card__glow {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--itc-gold), var(--itc-gold-light));
    transform: scaleX(0);
    transition: transform 0.4s ease;
    transform-origin: left;
    z-index: 2;
}

.itc-media-card:hover .itc-media-card__glow {
    transform: scaleX(1);
}

/* Radial glow on hover */
.itc-media-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 20%, rgba(200, 169, 81, 0.1) 0%, transparent 60%);
    opacity: 0;
    transition: opacity 0.4s ease;
}

.itc-media-card:hover::before {
    opacity: 1;
}

/* Hover lift — doubled specificity to beat .itc-reveal.itc-visible */
.itc-media-card.itc-media-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(19, 60, 104, 0.3);
}

/* Body wrapper for horizontal layout */
.itc-media-card__body {
    position: relative;
    z-index: 1;
}

.itc-media-card__icon {
    margin-bottom: 1.5rem;
    color: var(--itc-gold);
    position: relative;
    z-index: 1;
}

.itc-media-card__icon svg {
    width: 52px;
    height: 52px;
}

.itc-media-card__title {
    font-family: var(--itc-font);
    color: var(--itc-white);
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0 0 0.6rem;
    position: relative;
}

.itc-media-card__desc {
    font-family: var(--itc-font);
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0 0 0.75rem;
    position: relative;
}

/* CTA arrow link */
.itc-media-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--itc-font);
    color: var(--itc-gold);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: gap 0.3s ease, color 0.3s ease;
    position: relative;
    z-index: 1;
    margin-top: 0.5rem;
}

.itc-media-card:hover .itc-media-card__cta {
    gap: 10px;
    color: var(--itc-gold-light);
}

/* Horizontal layout variant */
.itc-media-card--horizontal {
    display: flex;
    text-align: left;
    align-items: flex-start;
    gap: 1.5rem;
}

.itc-media-card--horizontal .itc-media-card__icon {
    margin-bottom: 0;
    flex-shrink: 0;
}

.itc-media-card--horizontal .itc-media-card__body {
    flex: 1;
}

/* ==========================================================================
   Podcast Appearances
   ========================================================================== */

.itc-podcasts {
    padding: 80px 30px;
    background: var(--itc-white);
}

.itc-podcasts__inner {
    max-width: 800px;
    margin: 0 auto;
}

/* --- List Layout (default) --- */
.itc-podcasts__list--list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* --- Card Grid Layout --- */
.itc-podcasts__list--card {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* --- Featured + List Layout --- */
.itc-podcasts__list--featured {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ------------------------------------------------------------------
   Shared Item Base
   ------------------------------------------------------------------ */
.itc-podcast-item {
    display: flex;
    padding: 1.5rem 1.75rem;
    background: var(--itc-off-white);
    border-radius: var(--itc-radius);
    text-decoration: none;
    color: inherit;
    transition: var(--itc-transition);
    overflow: hidden;
}

.itc-podcast-item:hover {
    box-shadow: var(--itc-shadow-md);
    background: var(--itc-white);
}

/* --- Border variants --- */
.itc-podcast-item--border-none { border: none; }
.itc-podcast-item--border-subtle { border: 1px solid rgba(0, 0, 0, 0.05); }
.itc-podcast-item--border-solid { border: 1px solid var(--pod-border-color, var(--itc-silver)); }
.itc-podcast-item--border-left {
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-left: 4px solid var(--pod-border-color, var(--itc-blue));
}

/* ------------------------------------------------------------------
   List Layout Item
   ------------------------------------------------------------------ */
.itc-podcast-item--list {
    flex-direction: row;
    align-items: flex-start;
    gap: 1.25rem;
}

.itc-podcast-item--list:hover {
    transform: translateX(4px);
}

.itc-podcast-item--list .itc-podcast-item__artwork {
    flex-shrink: 0;
}

.itc-podcast-item--list .itc-podcast-item__body {
    flex: 1;
    min-width: 0;
}

.itc-podcast-item--list .itc-podcast-item__actions {
    margin-top: 0.75rem;
}

/* ------------------------------------------------------------------
   Card Layout Item
   ------------------------------------------------------------------ */
.itc-podcast-item--card {
    flex-direction: column;
    gap: 0;
}

.itc-podcast-item--card:hover {
    transform: translateY(-4px);
}

.itc-podcast-item--card .itc-podcast-item__artwork {
    margin-bottom: 1rem;
}

.itc-podcast-item--card .itc-podcast-item__logo,
.itc-podcast-item--card .itc-podcast-item__logo-placeholder {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
}

.itc-podcast-item--card .itc-podcast-item__body {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.itc-podcast-item--card .itc-podcast-item__actions {
    margin-top: auto;
    padding-top: 0.75rem;
}

/* ------------------------------------------------------------------
   Featured Item (first in featured layout)
   ------------------------------------------------------------------ */
.itc-podcast-item--featured {
    flex-direction: row;
    gap: 2rem;
    padding: 2rem 2.25rem;
}

.itc-podcast-item--featured .itc-podcast-item__artwork {
    flex-shrink: 0;
}

.itc-podcast-item--featured .itc-podcast-item__logo,
.itc-podcast-item--featured .itc-podcast-item__logo-placeholder {
    width: 180px !important;
    height: 180px !important;
}

.itc-podcast-item--featured .itc-podcast-item__body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.itc-podcast-item--featured .itc-podcast-item__name {
    font-size: 1.35rem !important;
}

.itc-podcast-item--featured .itc-podcast-item__episode {
    font-size: 1rem !important;
}

.itc-podcast-item--featured .itc-podcast-item__desc {
    font-size: 0.9rem !important;
}

.itc-podcast-item--featured .itc-podcast-item__actions {
    margin-top: auto;
    padding-top: 1rem;
}

/* Non-featured items after the first in featured layout */
.itc-podcasts__list--featured .itc-podcast-item:not(.itc-podcast-item--featured) {
    flex-direction: row;
    align-items: flex-start;
    gap: 1.25rem;
}

.itc-podcasts__list--featured .itc-podcast-item:not(.itc-podcast-item--featured) .itc-podcast-item__body {
    flex: 1;
    min-width: 0;
}

.itc-podcasts__list--featured .itc-podcast-item:not(.itc-podcast-item--featured):hover {
    transform: translateX(4px);
}

.itc-podcasts__list--featured .itc-podcast-item:not(.itc-podcast-item--featured) .itc-podcast-item__actions {
    margin-top: 0.75rem;
}

/* Disable slide on items with audio player */
.itc-podcast-item--has-audio:hover {
    transform: none !important;
}

/* ------------------------------------------------------------------
   Artwork / Logo + CTA Column
   ------------------------------------------------------------------ */
.itc-podcast-item__artwork {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.itc-podcast-item__logo {
    width: 72px;
    height: 72px;
    object-fit: cover;
    display: block;
}

.itc-podcast-item__logo-placeholder {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--itc-blue) 0%, var(--itc-navy) 100%);
    color: var(--itc-gold);
}

/* Logo shapes */
.itc-podcast-item--logo-square .itc-podcast-item__logo,
.itc-podcast-item--logo-square .itc-podcast-item__logo-placeholder { border-radius: 4px; }

.itc-podcast-item--logo-rounded .itc-podcast-item__logo,
.itc-podcast-item--logo-rounded .itc-podcast-item__logo-placeholder { border-radius: 12px; }

.itc-podcast-item--logo-circle .itc-podcast-item__logo,
.itc-podcast-item--logo-circle .itc-podcast-item__logo-placeholder { border-radius: 50%; }

/* Logo shadows */
.itc-podcast-item--shadow-sm .itc-podcast-item__logo,
.itc-podcast-item--shadow-sm .itc-podcast-item__logo-placeholder { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }

.itc-podcast-item--shadow-md .itc-podcast-item__logo,
.itc-podcast-item--shadow-md .itc-podcast-item__logo-placeholder { box-shadow: 0 4px 16px rgba(0,0,0,0.12); }

.itc-podcast-item--shadow-lg .itc-podcast-item__logo,
.itc-podcast-item--shadow-lg .itc-podcast-item__logo-placeholder { box-shadow: 0 6px 24px rgba(0,0,0,0.18); }

/* ------------------------------------------------------------------
   Body / Text
   ------------------------------------------------------------------ */
.itc-podcast-item__meta {
    margin-bottom: 0.35rem;
}

.itc-podcast-item__date {
    font-family: var(--itc-font);
    color: var(--itc-silver-header);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.itc-podcast-item__name {
    font-family: var(--itc-font);
    color: var(--itc-blue);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.3rem;
    line-height: 1.3;
}

.itc-podcast-item__episode {
    font-family: var(--itc-font);
    color: #555;
    font-size: 0.9rem;
    margin: 0 0 0.25rem;
    line-height: 1.5;
}

.itc-podcast-item__desc {
    font-family: var(--itc-font);
    color: #888;
    font-size: 0.85rem;
    line-height: 1.5;
    margin: 0.25rem 0 0;
}

/* ------------------------------------------------------------------
   CTA / Actions
   ------------------------------------------------------------------ */
.itc-podcast-item__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
}

/* --- Text CTA style --- */
.itc-podcast-item--cta-text .itc-podcast-item__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--itc-font);
    color: var(--pod-cta, var(--itc-blue));
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.25s ease, gap 0.25s ease;
}

.itc-podcast-item--cta-text .itc-podcast-item__cta:hover,
.itc-podcast-item--cta-text:hover .itc-podcast-item__cta {
    color: var(--pod-cta-hover, var(--itc-gold));
    gap: 10px;
}

/* --- Button CTA style --- */
.itc-podcast-item--cta-button .itc-podcast-item__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--itc-font);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 8px 18px;
    border: 2px solid var(--pod-cta, var(--itc-blue));
    color: var(--pod-cta, var(--itc-blue));
    background: transparent;
    border-radius: 6px;
    transition: all 0.25s ease;
}

.itc-podcast-item--cta-button .itc-podcast-item__cta:hover,
.itc-podcast-item--cta-button:hover .itc-podcast-item__cta {
    background: var(--pod-cta, var(--itc-blue));
    color: #fff;
    border-color: var(--pod-cta, var(--itc-blue));
}

/* --- Pill CTA style --- */
.itc-podcast-item--cta-pill .itc-podcast-item__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--itc-font);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 8px 20px;
    background: var(--pod-cta, var(--itc-blue));
    color: #fff;
    border-radius: 50px;
    border: none;
    transition: all 0.25s ease;
}

.itc-podcast-item--cta-pill .itc-podcast-item__cta:hover,
.itc-podcast-item--cta-pill:hover .itc-podcast-item__cta {
    background: var(--pod-cta-hover, var(--itc-gold));
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

/* ------------------------------------------------------------------
   Audio Player
   ------------------------------------------------------------------ */
.itc-podcast-item__player {
    width: 100%;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

/* --- Inline video (YouTube facade → iframe on click) --- */
/* The video is a top-level child of the item, so the layout classes below can
   arrange it relative to the text. On video episodes the small logo is hidden.
   !important is used on the structural props so the Video Layout always wins over
   the widget's List/Card/Featured "Layout Style". */
.itc-podcast-item--has-video .itc-podcast-item__artwork {
    display: none !important;
}

/* Podcast logo above the title on video episodes — reuses .itc-podcast-item__logo
   so every Logo/Artwork control (size, shape, border, shadow, background) applies. */
.itc-podcast-item__body > .itc-podcast-item__logo {
    margin-bottom: 0.85rem;
}

.itc-podcast-item__player--video {
    position: relative;
    width: 100%;
    max-width: 640px; /* overridden by Elementor control */
    align-self: var(--video-align, flex-start);
    aspect-ratio: 16 / 9;
    border-top: none;
    margin-top: 0;
    padding-top: 0;
    border-radius: 12px; /* overridden by Elementor control */
    overflow: hidden;
    background: #0a1e36;
    box-shadow: 0 10px 30px rgba(10, 30, 54, 0.25);
}

/* ---- Video episode layouts (vlayout-*) — override the widget Layout Style ---- */

/* Stacked: text above, video below (full width) */
.itc-podcast-item--has-video.itc-podcast-item--vlayout-stacked {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--video-gap, 1rem);
}

/* Video on top, text below */
.itc-podcast-item--has-video.itc-podcast-item--vlayout-video-top {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--video-gap, 1rem);
}
.itc-podcast-item--vlayout-video-top .itc-podcast-item__player--video { order: -1; }

/* Video left, text right */
.itc-podcast-item--has-video.itc-podcast-item--vlayout-video-left {
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: var(--video-gap, 1.5rem);
}
.itc-podcast-item--vlayout-video-left .itc-podcast-item__player--video { order: -1; flex: 0 0 var(--video-split, 56%); }
.itc-podcast-item--vlayout-video-left .itc-podcast-item__body { flex: 1 1 auto; min-width: 0; }

/* Text left, video right */
.itc-podcast-item--has-video.itc-podcast-item--vlayout-video-right {
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: var(--video-gap, 1.5rem);
}
.itc-podcast-item--vlayout-video-right .itc-podcast-item__player--video { flex: 0 0 var(--video-split, 56%); }
.itc-podcast-item--vlayout-video-right .itc-podcast-item__body { flex: 1 1 auto; min-width: 0; }

/* On phones, side-by-side layouts stack (video on top) */
@media (max-width: 767px) {
    .itc-podcast-item--has-video.itc-podcast-item--vlayout-video-left,
    .itc-podcast-item--has-video.itc-podcast-item--vlayout-video-right {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 1rem;
    }
    .itc-podcast-item--vlayout-video-left .itc-podcast-item__player--video,
    .itc-podcast-item--vlayout-video-right .itc-podcast-item__player--video {
        order: -1;
        flex: none;
    }
}

/* Fallback for browsers without aspect-ratio */
@supports not (aspect-ratio: 16 / 9) {
    .itc-podcast-item__player--video { height: 0; padding-bottom: 56.25%; }
}

.itc-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    cursor: pointer;
    display: block;
    overflow: hidden;
}

.itc-video__thumb {
    position: absolute;
    inset: 0;
    background-color: #0a1e36; /* overridden by Elementor control */
    background-size: cover;    /* overridden by Thumbnail Fit control */
    background-position: center; /* overridden by Thumbnail Position control */
    background-repeat: no-repeat; /* prevent tiling in Contain mode */
    transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.itc-video::after {
    /* subtle dark veil so the play button always reads */
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.05), rgba(0,0,0,0.25));
    transition: background 0.3s ease;
}

.itc-video:hover .itc-video__thumb { transform: scale(1.05); }
.itc-video:hover::after { background: linear-gradient(180deg, rgba(0,0,0,0.0), rgba(0,0,0,0.15)); }

.itc-video__play {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 68px;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(19, 60, 104, 0.88);
    border-radius: 50%;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
    transition: background 0.3s ease, transform 0.3s ease;
}

.itc-video__play svg {
    margin-left: 4px; /* optically center the triangle */
    fill: #fff;
}

.itc-video:hover .itc-video__play,
.itc-video:focus-visible .itc-video__play {
    background: var(--itc-gold, #C8A951);
    transform: translate(-50%, -50%) scale(1.08);
}

.itc-video:focus-visible {
    outline: 3px solid var(--itc-gold, #C8A951);
    outline-offset: 2px;
}

.itc-video__iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.itc-audio-player {
    display: none;
}

.itc-player {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
}

.itc-player__play {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: none;
    background: var(--pod-cta, var(--itc-blue));
    color: #fff;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s ease, transform 0.15s ease;
}

.itc-player__play svg {
    width: 18px;
    height: 18px;
    display: block;
    fill: currentColor;
    pointer-events: none;
}

.itc-player__play:hover {
    background: var(--pod-cta-hover, var(--itc-gold));
    transform: scale(1.08);
}

.itc-player__play.itc-player--playing .itc-player__icon-play { display: none; }
.itc-player__play.itc-player--playing .itc-player__icon-pause { display: block !important; }

.itc-player__track {
    flex: 1;
    height: 5px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 3px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.itc-player__progress {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--pod-prog-start, var(--itc-blue)), var(--pod-prog-end, var(--itc-gold)));
    border-radius: 3px;
    transition: width 0.1s linear;
    pointer-events: none;
}

.itc-player__time {
    font-family: var(--itc-font);
    font-size: 0.72rem;
    color: var(--itc-silver-header);
    min-width: 34px;
    text-align: center;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}

.itc-player__mute {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--itc-silver-header);
    cursor: pointer;
    padding: 4px;
    flex-shrink: 0;
    transition: color 0.2s ease;
}

.itc-player__mute:hover {
    color: var(--itc-blue);
}

.itc-player__mute.itc-player--muted .itc-player__icon-vol { display: none; }
.itc-player__mute.itc-player--muted .itc-player__icon-muted { display: block !important; }

/* ------------------------------------------------------------------
   Podcast Responsive
   ------------------------------------------------------------------ */
@media (max-width: 1024px) {
    .itc-podcasts__list--card {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 767px) {
    .itc-podcasts__list--card {
        grid-template-columns: 1fr !important;
    }

    .itc-podcast-item--featured {
        flex-direction: column;
        gap: 1rem;
    }

    .itc-podcast-item--featured .itc-podcast-item__logo,
    .itc-podcast-item--featured .itc-podcast-item__logo-placeholder {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1;
    }

    .itc-player {
        gap: 8px;
    }

    .itc-player__play {
        width: 32px;
        height: 32px;
    }

    .itc-player__mute {
        display: none;
    }

    .itc-podcast-item--cta-button .itc-podcast-item__cta,
    .itc-podcast-item--cta-pill .itc-podcast-item__cta {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
   Scroll Reveal
   ========================================================================== */

.itc-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.itc-reveal[data-direction="left"] {
    transform: translateX(-50px);
}

.itc-reveal[data-direction="right"] {
    transform: translateX(50px);
}

.itc-reveal.itc-visible {
    opacity: 1;
    transform: translate(0, 0);
}

/* ==========================================================================
   Elementor Editor — disable scroll-reveal so content is always visible
   ========================================================================== */

/* All reveals: force visible in editor */
.elementor-editor-active .itc-reveal,
.elementor-editor-preview .itc-reveal {
    opacity: 1 !important;
}

/* Non-interactive reveals: kill transform + transition so content is static */
.elementor-editor-active .itc-reveal:not(.itc-company-card):not(.itc-book-card):not(.itc-media-card):not(.itc-podcast-item),
.elementor-editor-preview .itc-reveal:not(.itc-company-card):not(.itc-book-card):not(.itc-media-card):not(.itc-podcast-item) {
    transform: none !important;
    transition: none !important;
}

/* Interactive cards: reset scroll-reveal but preserve hover transitions */
.elementor-editor-active .itc-company-card.itc-reveal,
.elementor-editor-active .itc-book-card.itc-reveal,
.elementor-editor-active .itc-media-card.itc-reveal,
.elementor-editor-preview .itc-company-card.itc-reveal,
.elementor-editor-preview .itc-book-card.itc-reveal,
.elementor-editor-preview .itc-media-card.itc-reveal {
    transform: none;
    transition: var(--itc-transition);
}

.elementor-editor-active .itc-bio__photo-ring,
.elementor-editor-preview .itc-bio__photo-ring {
    animation-play-state: paused;
}

.elementor-editor-active .itc-hero__particles,
.elementor-editor-preview .itc-hero__particles {
    animation-play-state: paused;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1024px) {
    .itc-hero__tagline { font-size: 2.4rem; }

    .itc-company-card {
        flex: 1 1 160px;
        max-width: 200px;
    }
}

@media (max-width: 768px) {
    .itc-hero {
        background-attachment: scroll;
    }

    .itc-hero__tagline { font-size: 2rem; }
    .itc-hero__intro { font-size: 0.95rem; }

    .itc-section-heading { font-size: 1.75rem; }

    .itc-company-card {
        flex: 1 1 45%;
        max-width: 48%;
    }

    .itc-company-card__logo { width: 80px; height: 80px; }
    .itc-company-card__watermark { display: none; }

    /* Showcase accordion rules are in the dedicated 1024px and 767px blocks above */

    .itc-showcase__title {
        font-size: 1.6rem;
    }

    .itc-showcase__desc {
        font-size: 0.95rem;
    }

    .itc-books__row {
        flex-direction: column;
        align-items: center;
    }

    .itc-book-card { max-width: 100%; }

    /* Book layout: Stacked mobile */
    .itc-book-card--stacked { max-width: 100%; }

    /* Book layout: Showcase mobile */
    .itc-book-card--showcase { min-height: 400px; max-width: 100%; }

    /* Book layout: Minimal mobile */
    .itc-book-card--minimal { gap: 1.25rem; padding: 1.25rem 0; }

    /* Book layout: Feature mobile */
    .itc-book-card--feature {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 2rem;
        gap: 1.5rem;
    }
    .itc-book-card--feature.itc-book-card--reverse {
        flex-direction: column;
    }
    .itc-book-card--feature .itc-book-card__info {
        align-items: center;
    }
    .itc-book-card--feature .itc-book-card__cover { width: 160px; }

    .itc-bio__inner {
        flex-direction: column !important;
        text-align: center;
    }

    .itc-bio__inner--split {
        flex-direction: column !important;
    }

    .itc-bio__photo-panel {
        min-width: 0;
        width: 100%;
        padding: 40px 24px;
    }

    .itc-bio__text-panel {
        padding: 32px 24px;
    }

    .itc-bio__inner--card,
    .itc-bio__inner--accent,
    .itc-bio__inner--centered {
        padding: 32px 24px;
    }

    .itc-bio__photo img { width: 200px; height: 200px; }

    .itc-media__cards {
        flex-direction: column;
        align-items: center;
    }

    .itc-media-card { max-width: 100%; }

    .itc-media-card--horizontal {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }

    .itc-podcast-item__actions { width: 100%; }

    .itc-hero__scroll-indicator { display: none; }
}

@media (max-width: 480px) {
    .itc-hero__tagline { font-size: 1.65rem; }
    .itc-hero__badge { font-size: 0.65rem; }

    .itc-company-card {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .itc-book-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .itc-book-card__cover { width: 130px; }
}

/* ==========================================================================
   Elementor Form — ITC Brand Styles
   ========================================================================== */

/*
 * Add the CSS class "itc-form" to the Elementor container wrapping the form.
 * High-specificity selectors (doubled class + descendant) beat Elementor's
 * generated selectors at 0-3-0 / 0-4-0.
 */

/* --- Form container --- */
.itc-form.itc-form {
    --form-max-width: 720px;
    --form-btn-bg: var(--itc-blue);
    --form-btn-hover-bg: #1a4f8a;
    --form-btn-hover-border: #1a4f8a;
    --form-btn-hover-shadow: rgba(19, 60, 104, 0.25);
}

/* Layout styles only when NOT inside a popup modal */
.itc-form.itc-form {
    max-width: var(--form-max-width);
    margin: 0 auto;
    background-color: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.05) !important;
    border-radius: var(--itc-radius, 12px) !important;
    padding: 2.5rem 2.25rem !important;
    transition: box-shadow 0.3s ease, border-color 0.3s ease !important;
}

/* Reset layout styles inside popup modals */
.elementor-popup-modal .itc-form.itc-form {
    max-width: none;
    margin: 0;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

/*
 * Gold top bar utility class — add "itc-bar" to any Elementor container's CSS Classes
 * to show a centered gold fade bar at the top.
 * Customize with CSS vars: --itc-bar-width (default 60%), --itc-bar-thickness (default 3px)
 */
.itc-bar {
    position: relative;
}
.itc-bar::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: var(--itc-bar-width, 60%);
    height: var(--itc-bar-thickness, 3px);
    background: linear-gradient(90deg, transparent, var(--itc-gold) 20%, var(--itc-gold) 80%, transparent);
    border-radius: 2px;
    z-index: 5;
    pointer-events: none;
}

.itc-form.itc-form:hover {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08) !important;
    border-color: rgba(19, 60, 104, 0.06) !important;
    background-color: #fff !important;
}
.elementor-popup-modal .itc-form.itc-form:hover {
    box-shadow: none !important;
    border-color: transparent !important;
    background-color: transparent !important;
}

/* --- Reset inner containers & form widget so they don't double-card --- */
.itc-form.itc-form .e-con,
.itc-form.itc-form .elementor-widget-form,
.itc-form.itc-form .elementor-form-fields-wrapper,
.itc-form.itc-form .elementor-widget-container {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

/* --- Section heading inside form container (with side lines) --- */
.itc-form.itc-form .elementor-widget-heading {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 1.25rem !important;
}

.itc-form.itc-form .elementor-widget-heading::before,
.itc-form.itc-form .elementor-widget-heading::after {
    display: none !important;
}

.itc-form.itc-form .elementor-heading-title {
    font-family: var(--itc-font) !important;
    color: var(--itc-blue) !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    text-align: center !important;
    margin-bottom: 0 !important;
}

/* --- Subheading / text widget --- */
.itc-form.itc-form .elementor-text-editor,
.itc-form.itc-form .elementor-text-editor p,
.itc-form.itc-form .elementor-widget-text-editor .elementor-widget-container,
.itc-form.itc-form .elementor-widget-text-editor .elementor-widget-container p {
    font-family: var(--itc-font) !important;
    color: #000000 !important;
    text-align: center !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    margin-bottom: 12px !important;
}

/* --- Divider (separator) matching the section bar style --- */
.itc-form.itc-form .elementor-divider {
    margin: 0 auto 32px !important;
    max-width: 80px !important;
}

.itc-form.itc-form .elementor-divider-separator {
    border-top-color: var(--itc-gold) !important;
    border-top-width: 3px !important;
    border-top-style: solid !important;
}

/* --- Labels --- */
.itc-form.itc-form .elementor-field-label {
    font-family: var(--itc-font) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    color: var(--itc-blue) !important;
    margin-bottom: 6px !important;
}

/* --- Input fields --- */
.itc-form.itc-form .elementor-field-textual {
    font-family: var(--itc-font) !important;
    border: 1px solid var(--itc-silver) !important;
    border-radius: 6px !important;
    padding: 12px 16px !important;
    font-size: 0.95rem !important;
    color: #333 !important;
    background-color: #fff !important;
    transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
    min-height: auto !important;
}

.itc-form.itc-form .elementor-field-textual:focus {
    border-color: var(--itc-blue) !important;
    box-shadow: 0 0 0 3px rgba(19, 60, 104, 0.08) !important;
    outline: none !important;
}

.itc-form.itc-form .elementor-field-textual::placeholder {
    font-family: var(--itc-font) !important;
    color: #aaa !important;
}

/* Textarea */
.itc-form.itc-form textarea.elementor-field-textual {
    min-height: 120px !important;
    resize: vertical !important;
}

/* Select dropdown */
.itc-form.itc-form select.elementor-field-textual {
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    padding-right: 40px !important;
}

/* --- Required asterisk --- */
.itc-form.itc-form .elementor-mark-required .elementor-field-label::after {
    color: var(--itc-gold) !important;
}

/* --- Field groups (spacing) --- */
.itc-form.itc-form .elementor-field-group {
    margin-bottom: 20px !important;
}

/* --- Submit button --- */
.itc-form.itc-form .elementor-button {
    font-family: var(--itc-font) !important;
    background-color: var(--form-btn-bg) !important;
    color: #fff !important;
    border: 2px solid var(--form-btn-bg) !important;
    border-radius: 6px !important;
    padding: 14px 40px !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

.itc-form.itc-form .elementor-button:hover {
    background-color: var(--form-btn-hover-bg) !important;
    border-color: var(--form-btn-hover-border) !important;
    color: #fff !important;
    box-shadow: 0 4px 16px var(--form-btn-hover-shadow) !important;
    transform: translateY(-1px) !important;
}

/* --- Validation states --- */
.itc-form.itc-form .elementor-field-group.elementor-error .elementor-field-textual {
    border-color: #d94f4f !important;
    box-shadow: 0 0 0 3px rgba(217, 79, 79, 0.08) !important;
}

.itc-form.itc-form .elementor-message {
    font-family: var(--itc-font) !important;
    font-size: 0.85rem !important;
    padding: 4px 0 !important;
}

.itc-form.itc-form .elementor-message-danger {
    color: #d94f4f !important;
}

/* --- Success message --- */
.itc-form.itc-form .elementor-message-success {
    font-family: var(--itc-font) !important;
    background: rgba(19, 60, 104, 0.06) !important;
    border: 1px solid rgba(19, 60, 104, 0.15) !important;
    color: var(--itc-blue) !important;
    border-radius: 8px !important;
    padding: 20px 24px !important;
    font-size: 1rem !important;
    text-align: center !important;
}

/* --- Two-column field rows --- */
.itc-form.itc-form .elementor-field-group.elementor-col-50 {
    padding: 0 8px !important;
}

/* --- Responsive --- */
@media (max-width: 767px) {
    .itc-form.itc-form {
        padding: 1.75rem 1.25rem !important;
    }
    .elementor-popup-modal .itc-form.itc-form {
        padding: 0 !important;
    }

    .itc-form.itc-form .elementor-field-textual {
        padding: 10px 14px !important;
        font-size: 16px !important; /* Prevents iOS zoom on focus */
    }

    .itc-form.itc-form .elementor-button {
        width: 100% !important;
        padding: 14px 20px !important;
    }

    .itc-form.itc-form .elementor-field-group.elementor-col-50 {
        width: 100% !important;
        padding: 0 !important;
    }
}

/* ==================================================================
   Resources / Podcast Topics
   ================================================================== */
.itc-resources {
    width: 100%;
    box-sizing: border-box;
}

.itc-resources__inner {
    max-width: 1080px; /* overridden by Elementor control */
    margin: 0 auto;
    text-align: center;
}

.itc-resources__intro {
    max-width: 760px;
    margin: 1rem auto 2.5rem;
    font-family: var(--itc-font);
    color: #333;
    font-size: 1.05rem;
    line-height: 1.7;
}
.itc-resources__intro p { margin: 0 0 1rem; }
.itc-resources__intro p:last-child { margin-bottom: 0; }

.itc-resources__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* overridden by Elementor control */
    gap: 20px;
    margin-top: 2.5rem;
    text-align: left;
}

.itc-resource-card {
    display: flex;
    flex-direction: column;
    background: #fff; /* overridden by control */
    border: 1px solid rgba(0, 0, 0, 0.08); /* color overridden by control */
    border-radius: 12px; /* overridden by control */
    padding: 28px; /* overridden by control */
    box-shadow: 0 4px 18px rgba(10, 30, 54, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.itc-resource-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(10, 30, 54, 0.12);
}

/* Featured (lead) card spans the full row */
.itc-resource-card--featured {
    grid-column: 1 / -1;
    position: relative;
}
.itc-resource-card--featured::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--itc-blue), var(--itc-gold));
    border-radius: inherit;
}

.itc-resource-card__body { flex: 1 1 auto; }

.itc-resource-card__title {
    font-family: var(--itc-font);
    color: var(--itc-blue); /* overridden by control */
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 0.35rem;
}

.itc-resource-card__subtitle {
    font-family: var(--itc-font);
    color: var(--itc-gold); /* overridden by control */
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0 0 0.85rem;
}

.itc-resource-card__desc {
    font-family: var(--itc-font);
    color: #444; /* overridden by control */
    font-size: 1rem;
    line-height: 1.65;
    margin: 0 0 1.35rem;
}

.itc-resource-card__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    margin-top: auto;
    font-family: var(--itc-font);
    color: var(--itc-blue); /* overridden by control */
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: gap 0.3s ease, color 0.3s ease;
}
.itc-resource-card__btn:hover { gap: 12px; }
.itc-resource-card__btn svg { transition: transform 0.3s ease; }

@media (max-width: 767px) {
    .itc-resources__grid { grid-template-columns: 1fr !important; }
}
