/* ==========================================================================
   ACI Milan — Soft Light Glassmorphism Cultural Website
   Phase 1: Foundation + Header + Hero + Footer
   ========================================================================== */

/* ---------- 1. Variables ---------- */
:root {
    --aci-gold: #C99E6A;
    --aci-black: #111111;
    --aci-white: #FFFFFF;
    --aci-taupe: #887360;
    --aci-sandstone : #7a6e63;

    --aci-ivory: #F4F6FA; /* snow ice — was warm #F7F5F0 */
    --aci-soft: #F9FAFB; /* cool soft white — was warm #FBFAF7 */
    --aci-sand: #EFF1F5; /* cool pale grey — was warm sand #F2EFE8 */
    --aci-beige: #D8C7AE;

    --aci-gold-light: rgba(201, 158, 106, 0.10);
    --aci-gold-pale: rgba(201, 158, 106, 0.05);

    --aci-glass: rgba(255, 255, 255, 0.72);
    --aci-glass-mid: rgba(255, 255, 255, 0.84);
    --aci-glass-strong: rgba(255, 255, 255, 0.96);
    --aci-glass-deep: rgba(255, 255, 255, 0.48);
    --aci-border: rgba(17, 24, 39, 0.07); /* cool neutral — was warm taupe */
    --aci-border-light: rgba(17, 24, 39, 0.05); /* cool neutral — was warm taupe */
    --aci-border-warm: rgba(201, 158, 106, 0.22); /* gold accent borders only */
    --color-grey-97: #F9FAFB;

    --aci-text: #111111;
    --aci-muted: #5F6670; /* cool neutral grey — was warm brown #6F665C */
    --aci-soft-muted: #8A919C; /* cool steel grey — was warm #9A8D80 */

    --font-en-display: "Helvetica Neue", Helvetica, Arial, sans-serif;
    --font-en-body: "Helvetica Neue", Helvetica, Arial, sans-serif;
    --font-ar-display: "Helvetica Neue Arabic", "Helvetica Neue", Arial, sans-serif;
    --font-ar-body: "Helvetica Neue Arabic", "Helvetica Neue", Arial, sans-serif;

    --shadow-soft: 0 6px 20px -8px rgba(15, 23, 42, 0.07), 0 2px 6px -2px rgba(15, 23, 42, 0.03);
    --shadow-glass: 0 20px 60px -24px rgba(15, 23, 42, 0.10), 0 6px 18px -6px rgba(15, 23, 42, 0.05);
    --shadow-card: 0 40px 90px -36px rgba(15, 23, 42, 0.14), 0 12px 32px -14px rgba(15, 23, 42, 0.07);
    --shadow-float: 0 28px 60px -24px rgba(15, 23, 42, 0.16), 0 10px 26px -10px rgba(15, 23, 42, 0.08);
    --shadow-deep: 0 60px 120px -48px rgba(15, 23, 42, 0.20), 0 22px 52px -24px rgba(15, 23, 42, 0.10);

    --radius-card: 28px;
    --radius-card-lg: 36px;
    --radius-pill: 999px;

    --header-h: 90px;

    /* ---- V3 dark palette (hero, events, newsletter, footer) ---- */
    --aci-dark: #111111;
    --aci-dark-soft: #171513;
    --aci-dark-warm: #1C1814;
    --aci-dark-card: rgba(255, 255, 255, 0.08);
    --aci-dark-card-solid: #1B1815;
    --aci-dark-line: rgba(255, 255, 255, 0.10);
    --aci-dark-text: #F7F3EC;
    --aci-dark-muted: rgba(247, 243, 236, 0.68);
    --aci-dark-faint: rgba(247, 243, 236, 0.42);

    /* Layout width system */
    --aci-container-max: 1320px; /* normal content sections */
    --aci-stage-max: calc(100vw - 32px); /* hero/event stages — 16px breathing room each side */
    --aci-gutter: 32px;

    /* Inner-page boxed hero (About, Programs, News, Events, Contact, detail pages) */
    --aci-inner-hero-radius: 36px;
    --aci-inner-hero-radius-md: 24px;
}

/* ---------- 2. Reset ---------- */
*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
}

body {
    font-family: var(--font-en-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--aci-text);
    background: radial-gradient(circle at 20% 0%, rgba(148, 163, 184, 0.06), transparent 34%),
    radial-gradient(circle at 80% 100%, rgba(148, 163, 184, 0.04), transparent 30%),
    linear-gradient(180deg, #FAFBFC 0%, #F4F6FA 100%);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color .25s ease;
}

button {
    font-family: inherit;
    cursor: pointer;
}

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

p {
    margin: 0 0 1rem;
}

.aci-rich-text > :first-child {
    margin-top: 0;
}

.aci-rich-text > :last-child {
    margin-bottom: 0;
}

.aci-rich-text ul,
.aci-rich-text ol {
    margin: 0 0 1rem 1.25rem;
    padding: 0;
    list-style-position: outside;
}

.aci-rich-text ul {
    list-style-type: disc;
}

.aci-rich-text ol {
    list-style-type: decimal;
}

.aci-rich-text a {
    color: var(--aci-gold);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.aci-rich-text .ql-align-left {
    text-align: left;
}

.aci-rich-text .ql-align-center {
    text-align: center;
}

.aci-rich-text .ql-align-right {
    text-align: right;
}

.aci-rich-text .ql-align-justify {
    text-align: justify;
}

.aci-phone-number {
    direction: ltr;
    unicode-bidi: isolate;
    display: inline-block;
    text-align: left;
    font-variant-numeric: tabular-nums;
}

input.aci-phone-number {
    text-align: left;
}

.aci-footer__nl-form .validation-message,
.aci-footer__nl-form .aci-footer__nl-error,
.aci-footer__nl-error.validation-message {
    display: block !important;
    color: #ffb8b8 !important;
    font-size: clamp(1rem, 1.1vw, 1.18rem) !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    margin: 0.75rem 0 0 !important;
    opacity: 1 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

[lang="ar"], .aci-ar {
    font-family: var(--font-ar-body);
    direction: rtl;
}

:focus-visible {
    outline: 2px solid var(--aci-gold);
    outline-offset: 3px;
    border-radius: 6px;
}

/* lucide icons sizing */
[data-lucide] {
    width: 18px;
    height: 18px;
    stroke-width: 1.6;
}

@media (max-width: 991.98px) {
    :root {
        --aci-gutter: 24px;
    }
}

@media (max-width: 575.98px) {
    :root {
        --aci-gutter: 16px;
    }
}

/* ---------- 3. Reusable system ---------- */
/*
  .aci-container  — normal content sections, max 1320px
  .aci-hero__wide / .aci-events-hero__wide — feature stages, viewport-wide (16px gutter each side)
  Inner content inside stages is constrained by --aci-container-max via .aci-hero__inner
*/
.aci-container {
    width: min(100% - var(--aci-gutter) * 2, var(--aci-container-max));
    margin: 0 auto;
    padding: 0;
}

.aci-section {
    padding: 100px 0;
    position: relative;
}

.aci-soft-bg {
    background: radial-gradient(1200px 600px at 10% -10%, rgba(148, 163, 184, 0.05), transparent 60%),
    radial-gradient(900px 500px at 110% 10%, rgba(148, 163, 184, 0.03), transparent 60%),
    var(--aci-soft);
}

/* Glass surface levels */
.aci-glass {
    background: var(--aci-glass);
    backdrop-filter: blur(24px) saturate(160%);
    -webkit-backdrop-filter: blur(24px) saturate(160%);
    border: 1px solid var(--aci-border);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-glass);
}

.aci-glass-raised {
    background: var(--aci-glass-strong);
    backdrop-filter: blur(32px) saturate(180%);
    -webkit-backdrop-filter: blur(32px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.90);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
}

/* Eyebrow */
.aci-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 9px 18px;
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(17, 24, 39, 0.08);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--aci-taupe) !important;
    box-shadow: 0 4px 16px -8px rgba(15, 23, 42, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.98);
    margin-bottom: 16px;
}

.aci-eyebrow-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--aci-gold);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.22);
    animation: aciPulse 2.8s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes aciPulse {
    0%, 100% {
        box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.22);
    }
    50% {
        box-shadow: 0 0 0 6px rgba(201, 158, 106, 0.07);
    }
}

/* Typography */
.aci-title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(2.8rem, 5.2vw, 5.6rem);
    line-height: 1.00;
    letter-spacing: -0.02em;
    color: var(--aci-text);
    margin: 0 0 1.5rem;
}

.aci-title em {
    font-style: normal;
    font-weight: 400;
    color: var(--aci-gold);
}

.aci-lead {
    font-family: var(--font-en-body);
    font-size: clamp(1.0rem, 1.12vw, 1.12rem);
    line-height: 1.80;
    color: var(--aci-muted);
    /* max-width: 460px; */
    margin: 0 0 1.5rem;
    font-weight: 400;
}

.aci-arabic-accent {
    /* retained for class compatibility — English version uses .aci-editorial-accent */
    display: none;
}

.aci-editorial-accent {
    font-family: var(--font-en-body);
    font-size: clamp(.78rem, .88vw, .86rem);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--aci-taupe);
    margin: 0 0 2.4rem;
    padding-left: 18px;
    border-left: 2px solid var(--aci-gold);
}

/* Buttons */
.aci-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    padding: 15px 28px;
    border-radius: var(--radius-pill);
    font-family: var(--font-en-body);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform .28s ease, box-shadow .28s ease,
    background .28s ease, color .28s ease, border-color .28s ease;
    white-space: nowrap;
    line-height: 1;
}

.aci-btn [data-lucide],
.aci-btn .aci-btn-icon {
    width: 16px;
    height: 16px;
    transition: transform .28s ease;
}

.aci-btn:hover {
    transform: translateY(-2px);
}

.aci-btn:active {
    transform: translateY(0);
}

.aci-btn-primary {
    background: linear-gradient(175deg, #DBBA88 0%, #C99E6A 48%, #B7894E 100%);
    color: #fff;
    box-shadow: 0 14px 34px -12px rgba(201, 158, 106, 0.65),
    0 4px 10px -4px rgba(201, 158, 106, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
}

.aci-btn-primary:hover {
    box-shadow: 0 20px 48px -16px rgba(201, 158, 106, 0.76),
    0 6px 16px -6px rgba(201, 158, 106, 0.40),
    inset 0 1px 0 rgba(255, 255, 255, 0.42);
    color: #fff;
}

.aci-btn-primary:hover [data-lucide],
.aci-btn-primary:hover .aci-btn-icon {
    transform: translateX(3px);
}

.aci-btn-ghost {
    background: rgba(255, 255, 255, 0.84);
    color: var(--aci-text);
    border: 1px solid rgba(17, 24, 39, 0.11);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 4px 14px -8px rgba(15, 23, 42, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
}

.aci-btn-ghost:hover {
    background: #fff;
    border-color: rgba(201, 158, 106, 0.36);
    color: var(--aci-text);
    box-shadow: 0 8px 24px -10px rgba(15, 23, 42, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

/* Pattern watermark */
.aci-pattern-watermark {
    position: absolute;
    user-select: none;
    pointer-events: none;
}

.aci-pattern-watermark svg {
    display: block;
}

/* ---------- 4. Header ---------- */
.aci-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1030;
    padding: 11px 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 1px solid transparent;
    transition: background .38s ease, box-shadow .38s ease,
    border-color .38s ease, backdrop-filter .38s ease;
}

.aci-header.is-scrolled {
    background: rgba(249, 250, 251, 0.92);
    backdrop-filter: blur(28px) saturate(180%);
    -webkit-backdrop-filter: blur(28px) saturate(180%);
    border-bottom-color: rgba(17, 24, 39, 0.08);
    box-shadow: 0 8px 40px -16px rgba(15, 23, 42, 0.10),
    0 2px 8px -4px rgba(15, 23, 42, 0.05);
}

.aci-header-inner {
    display: flex;
    align-items: center;
    gap: 20px;
}

/* Brand */
.aci-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}

.aci-brand-logo {
    height: 72px;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
    filter: sepia(0%) contrast(100%);
    transition: filter .28s ease, opacity .28s ease;
}

.aci-brand:hover .aci-brand-logo {
    filter: sepia(4%) contrast(96%);
    opacity: 0.90;
}

.aci-brand-text {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.1;
}

.aci-brand-en {
    font-family: var(--font-en-display);
    font-size: 17px;
    color: var(--aci-text);
    letter-spacing: 0.01em;
}

.aci-brand-ar {
    font-family: var(--font-ar-display);
    direction: rtl;
    font-size: 13px;
    color: var(--aci-taupe);
    margin-top: 2px;
}

.aci-brand-name {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    padding-left: 2px;
}

.aci-brand-name-main {
    font-family: var(--font-en-display);
    font-size: 15px;
    font-weight: 400;
    color: var(--aci-text);
    letter-spacing: 0.005em;
    line-height: 1.2;
}

.aci-brand-name-sub {
    font-family: var(--font-en-body);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--aci-soft-muted);
    margin-top: 4px;
}

/* Burger */
.aci-burger {
    margin-left: auto;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(17, 24, 39, 0.10);
    background: rgba(255, 255, 255, 0.82);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--aci-text);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 4px 14px -8px rgba(15, 23, 42, 0.10);
    transition: background .25s ease, box-shadow .25s ease;
}

.aci-burger:hover {
    background: #fff;
    box-shadow: 0 6px 20px -8px rgba(15, 23, 42, 0.16);
}

.aci-burger [data-lucide] {
    width: 20px;
    height: 20px;
}

/* Nav wrap */
.aci-nav-wrap {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    flex: 1;
    gap: 16px;
}

/* Nav pill */
.aci-nav {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin: 0 auto;
    padding: 6px;
    border-radius: var(--radius-pill);
    background: rgba(252, 249, 244, 0.28);
    border: 0px solid rgba(201, 158, 106, 0.10);
    box-shadow: none;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.aci-nav-link {
    display: inline-flex;
    align-items: center;
    padding: 9px 18px;
    border-radius: var(--radius-pill);
    font-size: 13px;
    font-weight: 500;
    color: var(--aci-muted);
    letter-spacing: 0.01em;
    transition: background .25s ease, color .25s ease;
}

.aci-nav-link:hover {
    background: rgba(201, 158, 106, 0.10);
    color: var(--aci-text);
}

.aci-nav-link.is-active {
    background: linear-gradient(180deg, rgba(201, 158, 106, 0.22) 0%, rgba(201, 158, 106, 0.11) 100%);
    color: var(--aci-text);
    font-weight: 600;
    box-shadow: inset 0 1px 0 rgba(201, 158, 106, 0.28);
}

.aci-language-switcher {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 4px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(201, 158, 106, 0.18);
    background: rgba(252, 249, 244, 0.42);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.aci-language-switcher__option {
    min-width: 42px;
    border: 0;
    border-radius: var(--radius-pill);
    padding: 7px 10px;
    background: transparent;
    color: var(--aci-muted);
    font-family: var(--font-en-body);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background .22s ease, color .22s ease, box-shadow .22s ease;
}

.aci-language-switcher__option:hover {
    background: rgba(201, 158, 106, 0.10);
    color: var(--aci-text);
}

.aci-language-switcher__option.is-active {
    background: linear-gradient(180deg, rgba(201, 158, 106, 0.28) 0%, rgba(201, 158, 106, 0.14) 100%);
    color: var(--aci-text);
    box-shadow: inset 0 1px 0 rgba(201, 158, 106, 0.30);
}

/* Header actions */
.aci-header-actions {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

/* ---- Mobile header ---- */
@media (max-width: 991.98px) {
    .aci-nav-wrap {
        position: absolute;
        top: calc(100% + 10px);
        left: 16px;
        right: 16px;
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
        padding: 20px;
        background: rgba(249, 250, 251, 0.96);
        backdrop-filter: blur(28px) saturate(180%);
        -webkit-backdrop-filter: blur(28px) saturate(180%);
        border: 1px solid rgba(17, 24, 39, 0.08);
        border-radius: 26px;
        box-shadow: var(--shadow-card);
    }

    .aci-nav-wrap:not(.show) {
        display: none !important;
    }

    .aci-nav {
        flex-direction: column;
        align-items: stretch;
        gap: 3px;
        background: transparent;
        border: 0;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        padding: 0;
        width: 100%;
    }

    .aci-nav-link {
        padding: 13px 16px;
        font-size: 15px;
        border-radius: 14px;
    }

    .aci-header-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        border-top: 1px solid rgba(17, 24, 39, 0.07);
        padding-top: 14px;
    }

    .aci-language-switcher {
        display: none;
    }

}

/* ---------- 5. Hero ---------- */
.aci-hero {
    position: relative;
    padding: calc(var(--header-h) + 12px) 0 48px;
    padding-bottom: 0px;
    background: transparent;
    overflow: hidden;
    isolation: isolate;
}

.aci-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

/* Ambient blobs — neutralised; blobs kept in HTML but invisible so the hero
   background stays unified with the page base colour. */
.aci-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0;
}

.aci-blob-1 {
    width: 560px;
    height: 560px;
    top: -80px;
    left: -180px;
    background: radial-gradient(closest-side, rgba(201, 158, 106, 0.28), transparent);
}

.aci-blob-2 {
    width: 660px;
    height: 660px;
    top: 10%;
    right: -200px;
    background: radial-gradient(closest-side, rgba(201, 158, 106, 0.22), transparent);
}

.aci-blob-3 {
    width: 460px;
    height: 460px;
    bottom: -160px;
    left: 28%;
    background: radial-gradient(closest-side, rgba(148, 163, 184, 0.10), transparent);
}

/* ---- Hero-specific wide wrapper ---- */
/*
  Horizontal inset matches .aci-container (--aci-gutter each side) so the stage
  lines up with the header logo. Inner copy uses .aci-hero__inner (--aci-container-max).
*/
.aci-hero__wide {
    /* Match .aci-container horizontal inset so hero titles line up with the logo */
    width: min(100% - var(--aci-gutter) * 2, var(--aci-stage-max));
    margin-left: auto;
    margin-right: auto;
}

/* ---- Cinematic boxed stage ---- */
/*
  min-height keeps the stage tall and cinematic on all screen sizes.
  No fixed aspect-ratio so it can adapt at tablet/mobile without JS.
  The canvas (absolute child) clips the image to the rounded shape.
  Float cards are children of stage — do NOT overflow:hidden here.
*/
.aci-hero-stage {
    position: relative;
    z-index: 1;
    border-radius: 36px;
    min-height: clamp(480px, 52vw, 780px);
    border: 1px solid rgba(17, 24, 39, 0.08);
}

/* Full-bleed image fill — clips photo to stage's rounded corners */
.aci-hero-canvas {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    overflow: hidden;
    z-index: 0;
}

/*
  Directional overlay — replaces the heavy glass panel.
  Left zone is warm and light enough for text to read clearly.
  Center fades out quickly so the image stays vivid on the right.
*/
.aci-hero-canvas-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(to right,
    rgba(244, 246, 250, 0.90) 0%,
    rgba(244, 246, 250, 0.66) 24%,
    rgba(244, 246, 250, 0.24) 48%,
    transparent 66%
    ),
    linear-gradient(to bottom, transparent 62%, rgba(15, 23, 42, 0.10) 100%);
}

/* ---- Hero image ---- */
.hero-visual__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    z-index: 0;
}

/*
  Crop utility classes — apply one to <img class="hero-visual__media …">
  to reposition the image without touching layout CSS.
*/
.object-center {
    object-position: center center;
}

.object-top {
    object-position: center top;
}

.object-bottom {
    object-position: center bottom;
}

.object-left {
    object-position: left center;
}

.object-right {
    object-position: right center;
}

.object-left-center {
    object-position: 25% center;
}

.object-right-center {
    object-position: 75% center;
}

/* ---- Inner content container — constrains panel to normal content width within the wide stage ---- */
.aci-hero__inner {
    position: absolute;
    inset: 0;
    margin-inline: auto;
    width: min(100% - var(--aci-gutter) * 2, var(--aci-container-max));
    display: flex;
    align-items: center;
    z-index: 2;
    pointer-events: none;
}

.aci-hero__inner > * {
    pointer-events: auto;
}

/* ---- Content panel — left-aligned inside the inner container ---- */
.aci-hero-panel {
    position: relative;
    z-index: 2;
    width: min(520px, 46%);
    padding: 0;
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: none;
    box-shadow: none;
}

/* ---- Inner page heading (boxed dark heroes — shared markup on all inner pages) ---- */
.aci-page-heading {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.aci-breadcrumb {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-family: var(--font-en-body);
    font-size: 11px;
    font-weight: 500;
    color: rgba(247, 243, 236, 0.78);
    pointer-events: auto;
}

.aci-breadcrumb a {
    color: inherit;
    transition: color 0.2s ease;
    pointer-events: auto;
}

.aci-breadcrumb a:hover {
    color: rgba(247, 243, 236, 0.96);
}

.aci-breadcrumb-sep {
    color: rgba(247, 243, 236, 0.48);
}

.aci-page-title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.1vw, 3.2rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 0;
    color: var(--aci-dark-text);
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.42),
    0 1px 4px rgba(0, 0, 0, 0.28);
}

.aci-page-title em {
    font-style: normal;
    font-weight: 400;
    color: var(--aci-gold);
}

.aci-page-title:focus,
.aci-page-title:focus-visible {
    outline: none;
    box-shadow: none;
}

/* When stacked with home hero title utilities, keep inner-page sizing */
.aci-title.aci-hero-title.aci-page-title,
.aci-hero-title.aci-page-title {
    font-size: clamp(2rem, 3.1vw, 3.2rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    max-width: none;
    margin: 0;
    font-weight: 500;
}

/* Unified boxed inner-page hero shell (same shape on About / Programs / News / Events / Contact / details) */
.aci-hero-stage-about-us,
.ep-hero-stage,
.cp-hero-stage,
.ed-hero-stage {
    position: relative;
    z-index: 1;
    border-radius: var(--aci-inner-hero-radius);
    min-height: clamp(320px, 42vw, 420px);
    border: 1px solid rgba(17, 24, 39, 0.08);
    background: #171513;
    overflow: hidden;
}


/* These pages omit .aci-hero__wide — match the header strip width explicitly */
.ep-hero-stage,
.cp-hero-stage,
.ed-hero-stage {
    width: min(100% - var(--aci-gutter) * 2, var(--aci-stage-max));
    margin: calc(var(--aci-gutter) / 2) auto 0;
}

/* Events / Contact / Event details: constrain hero copy to the same width as .aci-container (logo column) */
.ep-hero-content,
.cp-hero-content,
.ed-hero-content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    z-index: 2;
    width: min(100% - var(--aci-gutter) * 2, var(--aci-container-max));
    margin-inline: auto;
    padding-block: clamp(28px, 4vw, 52px);
    padding-inline: 0;
    box-sizing: border-box;
    pointer-events: none;
}

.ep-hero-content > *,
.cp-hero-content > *,
.ed-hero-content > * {
    pointer-events: auto;
}

@media (max-width: 991.98px) {
    .aci-breadcrumb {
        font-size: 10.5px;
    }

    .aci-page-title,
    .aci-title.aci-hero-title.aci-page-title,
    .aci-hero-title.aci-page-title {
        font-size: clamp(1.6rem, 5.2vw, 2.4rem);
    }

    .aci-hero-stage-about-us,
    .ep-hero-stage,
    .cp-hero-stage,
    .ed-hero-stage {
        min-height: clamp(360px, calc(100svh - var(--header-h) - 72px), 640px);
        border-radius: var(--aci-inner-hero-radius-md);
        overflow: hidden;
    }

    .ep-hero-content,
    .cp-hero-content,
    .ed-hero-content {
        justify-content: flex-end;
        width: 100%;
        max-width: none;
        margin-inline: 0;
        padding: 0 var(--aci-gutter) clamp(24px, 5vw, 40px);
    }
}

@media (max-width: 575.98px) {
    .aci-page-heading {
        gap: 8px;
    }

    .aci-breadcrumb {
        font-size: 10px;
        gap: 6px;
    }

    .aci-hero-stage-about-us,
    .ep-hero-stage,
    .cp-hero-stage,
    .ed-hero-stage {
        min-height: clamp(300px, calc(100svh - var(--header-h) - 64px), 560px);
    }

    .aci-title.aci-hero-title.aci-page-title,
    .aci-hero-title.aci-page-title {
        font-size: clamp(1.45rem, 5.2vw, 2.1rem);
    }
}

/* Hero title — strong, editorial, warm halo for legibility over image */
.aci-hero-title {
    font-size: clamp(2.1rem, 3.6vw, 3.4rem);
    line-height: 1.04;
    margin-top: 0;
    max-width: 14ch;
    margin-bottom: 1rem;
    text-shadow: 0 1px 12px rgba(249, 250, 251, 0.72),
    0 2px 28px rgba(244, 246, 250, 0.50);
}

/* Inner-page titles use .aci-page-title — do not inherit home hero title spacing */
.aci-hero-title.aci-page-title {
    margin-bottom: 0;
    max-width: none;
}

.aci-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 6px 0 0;
}

/* ---- Floating info cards ---- */
.aci-float-card {
    position: absolute;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 11px 15px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(32px) saturate(160%);
    -webkit-backdrop-filter: blur(32px) saturate(160%);
    box-shadow: 0 18px 44px -18px rgba(15, 23, 42, 0.14),
    0 6px 16px -8px rgba(15, 23, 42, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 1);
    min-width: 148px;
}

.aci-float-icon {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: linear-gradient(150deg, rgba(201, 158, 106, 0.20), rgba(201, 158, 106, 0.07));
    border: 1px solid rgba(201, 158, 106, 0.24);
    color: var(--aci-gold);
    flex-shrink: 0;
}

.aci-float-icon [data-lucide] {
    width: 14px;
    height: 14px;
}

.aci-float-text {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.2;
}

.aci-float-text small {
    font-size: 9.5px;
    color: var(--aci-soft-muted);
    letter-spacing: 0.09em;
    text-transform: uppercase;
    font-weight: 500;
}

.aci-float-text strong {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--aci-text);
    margin-top: 2px;
    letter-spacing: -0.01em;
}

/*
  Float card placement — two cards, right side, clear of the content overlay.
  float-1: top-right  float-2: bottom-right
*/
.aci-float-1 {
    top: 8%;
    right: 3%;
    animation: aciFloatA 6s ease-in-out infinite;
}

.aci-float-2 {
    bottom: 8%;
    right: 3%;
    animation: aciFloatB 7.5s ease-in-out infinite;
}

@keyframes aciFloatA {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-9px);
    }
}

@keyframes aciFloatB {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(7px);
    }
}

/* ≤1199px — tighten panel, keep image breathing room */
@media (max-width: 1199.98px) {
    .aci-hero-panel {
        padding: 22px 26px 26px;
        width: min(400px, 44%);
    }
}

/* Tablet ≤991px — full-bleed image, content overlays bottom */
@media (max-width: 991.98px) {
    .aci-hero {
        padding: calc(var(--header-h) + 16px) 0 0px;
    }

    /* Stage: nearly fills the viewport — svh accounts for mobile browser chrome */
    .aci-hero-stage {
        min-height: clamp(560px, calc(100vh - var(--header-h) - 72px), 840px);
        min-height: clamp(560px, calc(100svh - var(--header-h) - 72px), 840px);
        border-radius: 24px;
        overflow: hidden;
    }

    /* Canvas stays absolute — full bleed behind content */
    .aci-hero-canvas {
        position: absolute;
        inset: 0;
        border-radius: inherit;
        overflow: hidden;
        z-index: 0;
    }

    /* Strong bottom gradient — text reads clearly over image */
    .aci-hero-canvas-overlay {
        background: linear-gradient(to top, rgba(5, 10, 20, 0.86) 0%, rgba(5, 10, 20, 0.54) 38%, rgba(5, 10, 20, 0.16) 62%, transparent 100%),
        linear-gradient(to right, rgba(5, 10, 20, 0.32) 0%, transparent 55%);
    }

    /* Inner container — absolute, bottom-left aligned */
    .aci-hero__inner {
        position: absolute;
        inset: 0;
        width: 100%;
        margin-inline: 0;
        padding-inline: clamp(20px, 5vw, 32px);
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-end;
        pointer-events: none;
        box-sizing: border-box;
    }

    /* Panel — no card, transparent over image, bottom-padded */
    .aci-hero-panel {
        position: relative;
        width: 100%;
        max-width: 580px;
        padding: 0 0 clamp(28px, 5vw, 40px);
        background: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        border: none;
        box-shadow: none;
        border-radius: 0;
        pointer-events: auto;
    }

    /* V3 palette: warm ivory text on dark overlay */
    .aci-hero-title {
        font-size: clamp(1.7rem, 5.5vw, 2.6rem);
        color: var(--aci-dark-text);
        text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45), 0 1px 4px rgba(0, 0, 0, 0.30);
    }

    /* Lead and accent inherit from base-level v3 dark panel rules — no override needed */
    .aci-hero-panel .aci-lead {
        margin-bottom: 1rem;
    }

    .aci-hero-panel .aci-editorial-accent {
        margin-bottom: 1.6rem;
    }

    .aci-float-1 {
        display: none;
    }

    .aci-float-2 {
        display: none;
    }
}

/* Mobile ≤575px — cinematic full-bleed, tighter spacing */
@media (max-width: 575.98px) {
    .aci-hero-stage {
        min-height: clamp(520px, calc(100vh - var(--header-h) - 64px), 760px);
        min-height: clamp(520px, calc(100svh - var(--header-h) - 64px), 760px);
    }

    .aci-hero__inner {
        padding-inline: 20px;
    }

    .aci-hero-panel {
        padding-bottom: clamp(24px, 6vw, 36px);
        max-width: 100%;
    }

    .aci-hero-panel .aci-lead {
        margin-bottom: 0.8rem;
    }

    .aci-hero-panel .aci-editorial-accent {
        margin-bottom: 1.2rem;
    }

    .aci-hero-title {
        font-size: clamp(1.45rem, 5.5vw, 1.9rem);
    }

    .aci-hero-actions {
        flex-direction: column;
    }

    .aci-hero-actions .aci-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ================================
   Mobile section spacing — 40px top/bottom on all page sections
================================ */
@media (max-width: 767.98px) {
    .aci-section,
    .aci-about,
    .aci-stats,
    .aci-events-hero,
    .aci-page-cta,
    .aci-featured-event-section,
    .aci-newsletter-cta,
    .aci-partners-section {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .aci-partners-section {
        padding-bottom: 32px !important;
    }
}

/* ================================
   About Section
================================ */
.aci-about {
    position: relative;
    padding: 100px 0 100px;
    background: transparent;
    overflow: hidden;
}

.aci-page-section-surface--white {
    background:
        linear-gradient(0deg, var(--color-grey-97, #f4f6fa), var(--color-grey-97, #f4f6fa)),
        radial-gradient(52.08% 69.78% at 90% 105%, rgba(216, 199, 174, 0.2) 0%, rgba(216, 199, 174, 0) 55%) !important;
}

.aci-page-section-surface--soft {
    background: #F7F3EC;
}

.aci-page-section-surface--soft-gradient {
    background: #F7F3EC;
    background: linear-gradient(0deg, rgba(247, 243, 236, 1) 0%, rgba(247, 243, 236, 1) 85%, rgba(244, 246, 250, 1) 100%);
}

.aci-page-section-surface--white > *,
.aci-page-section-surface--soft > *,
.aci-page-section-surface--soft-gradient > *,
.about-us-page .aci-page-section-surface > .aci-section.aci-pillars,
.about-us-page .aci-page-section-surface > .aci-section.aci-values,
.about-us-page .aci-page-section-surface > .aci-section.aci-role {
    background: transparent !important;
}


/* Watermark — bottom-left, subtle */
.aci-about-watermark {
    bottom: -44px;
    left: -48px;
    top: auto;
    right: auto;
    width: clamp(160px, 22vw, 260px);
    color: var(--aci-taupe);
    opacity: 0.045;
}

.aci-about-watermark svg {
    display: block;
    width: 100%;
    height: auto;
}

/* Shared section title (About + Pillars) */
.aci-section-title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(1.9rem, 3.4vw, 3.2rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--aci-text);
    margin: 0 0 1.4rem;
}

.aci-section-title em {
    font-style: normal;
    font-weight: 400;
    color: var(--aci-gold);
}

/* Secondary description paragraph */
.aci-about-secondary {
    font-size: clamp(.90rem, 1.0vw, 1.0rem);
    line-height: 1.80;
    color: var(--aci-soft-muted);
    margin: 0 0 2.2rem;
}

/* Mission note — editorial quote with gold left accent */
.aci-about-mission {
    margin: 0 0 2.4rem;
    padding: 16px 20px 16px 22px;
    border-left: 2px solid var(--aci-gold);
    font-family: var(--font-en-body);
    font-style: italic;
    font-size: clamp(1rem, 1.18vw, 1.1rem);
    line-height: 1.65;
    color: var(--aci-taupe);
    background: rgba(201, 158, 106, 0.05);
    border-radius: 0 10px 10px 0;
}

/* Editorial text link with animated arrow */
.aci-about-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-en-body);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--aci-taupe);
    text-decoration: none;
    padding-bottom: 3px;
    border-bottom: 1.5px solid rgba(201, 158, 106, 0.38);
    transition: color .22s ease, border-color .22s ease, gap .22s ease;
}

.aci-about-link:hover {
    color: var(--aci-gold);
    border-bottom-color: var(--aci-gold);
    gap: 13px;
}

.aci-about-link svg {
    transition: transform .22s ease;
    flex-shrink: 0;
}

.aci-about-link:hover svg {
    transform: translateX(3px);
}

/* Visual column */
.aci-about-visual {
    position: relative;
}

/* Editorial image frame — portrait, lighter than Hero */
.aci-about-media {
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: var(--aci-sand);
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 32px 72px -28px rgba(15, 23, 42, 0.12),
    0 8px 22px -10px rgba(15, 23, 42, 0.06);
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

/* Photo — crop class controls position */
.aci-about-media__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    border-radius: inherit;
    transition: transform .7s ease;
}

.aci-about-media:hover .aci-about-media__image {
    transform: scale(1.03);
}

.aci-about-media--description-floating {
    overflow: visible;
}

.aci-about-image-description {
    position: absolute;
    z-index: 2;
    font-family: var(--font-en-body);
    color: var(--aci-text);
}

.aci-about-image-description--floating {
    right: -22px;
    bottom: 38px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: min(340px, calc(100% - 28px));
    padding: 12px 18px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.68);
    backdrop-filter: blur(12px) saturate(145%);
    -webkit-backdrop-filter: blur(12px) saturate(145%);
    border: 1px solid rgba(201, 158, 106, 0.24);
    box-shadow:
        0 14px 34px -16px rgba(136, 115, 96, 0.35),
        0 28px 60px -28px rgba(136, 115, 96, 0.48);
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.25;
}

.aci-about-image-description--floating [data-lucide] {
    width: 15px;
    height: 15px;
    color: var(--aci-gold);
    flex-shrink: 0;
}

.aci-about-image-description--floating span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.aci-about-image-description--bottom {
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(22px) saturate(150%);
    -webkit-backdrop-filter: blur(22px) saturate(150%);
    border-top: 1px solid rgba(17, 24, 39, 0.08);
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
}

/* Glass caption strip pinned to bottom of image */
.aci-about-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(22px) saturate(150%);
    -webkit-backdrop-filter: blur(22px) saturate(150%);
    border-top: 1px solid rgba(17, 24, 39, 0.08);
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
}

.aci-about-caption-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--aci-gold);
    flex-shrink: 0;
}

.aci-about-caption-title {
    font-family: var(--font-en-body);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--aci-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.aci-about-caption-sep {
    color: var(--aci-soft-muted);
    font-size: 9px;
    opacity: 0.60;
}

.aci-about-caption-sub {
    font-family: var(--font-en-body);
    font-size: 9.5px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--aci-taupe);
}

/* About responsive */
@media (max-width: 991.98px) {
    .aci-about {
        padding: 52px 0 52px;
    }

    .aci-about-visual {
        max-width: 480px;
        margin: 0 auto;
    }

    .aci-about-media {
        aspect-ratio: 4 / 3;
    }

    .aci-about-image-description--floating {
        right: 18px;
        bottom: 18px;
    }
}

@media (max-width: 575.98px) {
    .aci-about {
        padding: 40px 0 40px;
    }

    .aci-about-media {
        aspect-ratio: 16 / 9;
        border-radius: 20px;
    }

    .aci-about-mission {
        padding: 12px 16px 12px 16px;
    }

    .aci-about-image-description--floating {
        left: 14px;
        right: 14px;
        width: auto;
        max-width: calc(100% - 28px);
        padding: 10px 14px;
        font-size: 12.5px;
        justify-content: center;
        text-align: center;
    }

    .aci-about-image-description--bottom {
        padding: 10px 14px;
        font-size: 9px;
    }
}

/* ================================
   Stats Band
================================ */
.aci-stats {
    padding: 0px 0 0px;
}

/* Contained glass card — warm, rounded, premium */
.aci-stats-card {
    display: flex;
    align-items: stretch;
    border-radius: var(--radius-card-lg);
    background: radial-gradient(ellipse 120% 80% at 0% 50%, rgba(148, 163, 184, 0.05) 0%, transparent 55%),
    radial-gradient(ellipse 100% 70% at 100% 50%, rgba(148, 163, 184, 0.03) 0%, transparent 55%),
    rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(32px) saturate(155%);
    -webkit-backdrop-filter: blur(32px) saturate(155%);
    border: 1px solid rgba(17, 24, 39, 0.07);
    box-shadow: 0 20px 60px -24px rgba(15, 23, 42, 0.08),
    0 4px 14px -8px rgba(15, 23, 42, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 1);
    overflow: hidden;
}

/* Individual stat block */
.aci-stats-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 44px 24px;
    transition: background .25s ease;
}

.aci-stats-item:hover {
    background: rgba(148, 163, 184, 0.05);
}

/* Vertical divider between items */
.aci-stats-div {
    width: 1px;
    background: linear-gradient(
            to bottom,
            transparent 10%,
            rgba(17, 24, 39, 0.09) 40%,
            rgba(17, 24, 39, 0.09) 60%,
            transparent 90%
    );
    flex-shrink: 0;
    align-self: stretch;
}

/* Large display number */
.aci-stats-num {
    font-family: var(--font-en-display);
    font-size: clamp(2.4rem, 4vw, 3.8rem);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--aci-text);
    display: block;
}

/* Small uppercase label */
.aci-stats-label {
    font-family: var(--font-en-body);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--aci-soft-muted);
    text-align: center;
    display: block;
}

/* Stats responsive */
@media (max-width: 767.98px) {
    .aci-stats-card {
        display: grid;
        grid-template-columns: 1fr 1px 1fr;
        grid-template-rows: auto 1px auto;
    }

    /* The vertical dividers become horizontal between rows */
    .aci-stats-div:nth-child(2) {
        /* divider between item 1 and 2 — stays vertical */
        grid-row: 1;
        grid-column: 2;
    }

    .aci-stats-div:nth-child(4) {
        /* divider between row 1 and row 2 — spans full width */
        grid-row: 2;
        grid-column: 1 / 4;
        width: auto;
        height: 1px;
        background: linear-gradient(
                to right,
                transparent 5%,
                rgba(17, 24, 39, 0.08) 30%,
                rgba(17, 24, 39, 0.08) 70%,
                transparent 95%
        );
    }

    .aci-stats-div:nth-child(6) {
        /* divider between item 3 and 4 — stays vertical */
        grid-row: 3;
        grid-column: 2;
    }

    .aci-stats-item:nth-child(1) {
        grid-row: 1;
        grid-column: 1;
    }

    .aci-stats-item:nth-child(3) {
        grid-row: 1;
        grid-column: 3;
    }

    .aci-stats-item:nth-child(5) {
        grid-row: 3;
        grid-column: 1;
    }

    .aci-stats-item:nth-child(7) {
        grid-row: 3;
        grid-column: 3;
    }

    .aci-stats-item {
        padding: 32px 16px;
    }

    .aci-stats-num {
        font-size: 2.2rem;
    }
}

@media (max-width: 575.98px) {
    .aci-stats-num {
        font-size: 1.9rem;
    }

    .aci-stats-label {
        font-size: 9.5px;
    }

    .aci-stats-item {
        padding: 26px 12px;
    }
}

/* ================================
   Cultural Pillars
================================ */
.aci-pillars {
    position: relative;
    background: radial-gradient(ellipse 1000px 550px at 104% 0%, rgba(148, 163, 184, 0.05), transparent 55%),
    radial-gradient(ellipse 800px 500px at -8% 100%, rgba(148, 163, 184, 0.03), transparent 55%),
    var(--aci-ivory);
    border-top: 1px solid rgba(17, 24, 39, 0.06);
}

/* Centred section header */
.aci-pillars-header {
    text-align: center;
    max-width: 580px;
    margin: 0 auto 72px;
}

.aci-pillars-lead {
    max-width: 100%;
    margin: 0;
}

/* Individual pillar card */
.aci-pillar-card {
    padding: 36px 28px 30px;
    border-radius: var(--radius-card);
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
    overflow: hidden;
    transition: transform .30s ease,
    box-shadow .30s ease,
    border-color .30s ease;
}

/* Top accent bar — revealed on hover */
.aci-pillar-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
    rgba(201, 158, 106, 0),
    rgba(201, 158, 106, 0.65),
    rgba(201, 158, 106, 0));
    opacity: 0;
    transition: opacity .30s ease;
}

/* Soft corner glow — revealed on hover */
.aci-pillar-card::after {
    content: '';
    position: absolute;
    bottom: -20px;
    right: -20px;
    width: 88px;
    height: 88px;
    background: rgba(201, 158, 106, 0.10);
    border-radius: 50%;
    transform: scale(0.7);
    transition: transform .40s ease, opacity .40s ease;
    opacity: 0;
    pointer-events: none;
}

.aci-pillar-card:hover {
    transform: translateY(-7px);
    border-color: rgba(201, 158, 106, 0.38) !important;
    box-shadow: 0 44px 88px -36px rgba(15, 23, 42, 0.14),
    0 14px 32px -16px rgba(15, 23, 42, 0.07),
    0 0 0 1px rgba(201, 158, 106, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

.aci-pillar-card:hover::before {
    opacity: 1;
}

.aci-pillar-card:hover::after {
    transform: scale(1.5);
    opacity: 1;
}

/* Editorial card number — top-right, very subtle */
.aci-pillar-num {
    position: absolute;
    top: 20px;
    right: 22px;
    font-family: var(--font-en-body);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--aci-beige);
    user-select: none;
    transition: color .30s ease;
}

.aci-pillar-card:hover .aci-pillar-num {
    color: rgba(201, 158, 106, 0.55);
}

/* Icon container */
.aci-pillar-icon {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(201, 158, 106, 0.22), rgba(201, 158, 106, 0.07));
    border: 1px solid rgba(201, 158, 106, 0.28);
    color: var(--aci-gold);
    flex-shrink: 0;
    transition: transform .30s ease, box-shadow .30s ease;
}

.aci-pillar-icon [data-lucide] {
    width: 22px;
    height: 22px;
    stroke-width: 1.5;
}

.aci-pillar-icon img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    display: block;
}

.aci-pillar-card:hover .aci-pillar-icon {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px -8px rgba(201, 158, 106, 0.45);
}

/* Card title — Inter for crispness at this size */
.aci-pillar-title {
    font-family: var(--font-en-body);
    font-size: clamp(.95rem, 1.2vw, 1.06rem);
    font-weight: 700;
    color: var(--aci-text) !important;
    letter-spacing: -0.005em;
    margin: 0;
    line-height: 1.25;
}

/* Card body text */
.aci-pillar-text {
    font-size: 14px;
    line-height: 1.76;
    color: var(--aci-muted);
    margin: 0;
    flex: 1;
}

/* ================================
   Featured Programs
================================ */

.aci-programs-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 60px;
}

.aci-programs-lead {
    color: var(--aci-muted);
    margin: 0;
}

/* ---- Program card ---- */
.aci-prog-card {
    display: flex;
    flex-direction: column;
    border-radius: var(--radius-card-lg);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(22px) saturate(148%);
    -webkit-backdrop-filter: blur(22px) saturate(148%);
    border: 1px solid rgba(17, 24, 39, 0.07);
    box-shadow: 0 14px 40px -18px rgba(15, 23, 42, 0.08),
    0 4px 12px -6px rgba(15, 23, 42, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 1);
    overflow: hidden;
    transition: transform .34s ease, box-shadow .34s ease;
}

.aci-prog-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 32px 72px -28px rgba(15, 23, 42, 0.14),
    0 8px 24px -8px rgba(15, 23, 42, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

/* Real image wrapper — 16:10 ratio */
.aci-prog-card-img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    flex-shrink: 0;
}

/* Tone overlay — very subtle, keeps images clean against snowy page */
.aci-prog-card-img-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(244, 246, 250, 0.05);
    mix-blend-mode: multiply;
    pointer-events: none;
    transition: opacity .34s ease;
}

.aci-prog-card:hover .aci-prog-card-img-wrap::before {
    opacity: 0.60;
}

/* Soft bottom scrim blends image into card body */
.aci-prog-card-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(to bottom, transparent 52%, rgba(255, 255, 255, 0.22) 100%);
    pointer-events: none;
}

.aci-prog-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: saturate(0.88) contrast(0.96);
    transition: transform .55s ease, filter .34s ease;
}

.aci-prog-card:hover .aci-prog-card-img {
    transform: scale(1.03);
    filter: saturate(0.94) contrast(0.98);
}

/* Card content */
.aci-prog-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 26px 28px 28px;
    gap: 10px;
}

.aci-prog-cat {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    background: rgba(201, 158, 106, 0.12);
    border: 1px solid rgba(201, 158, 106, 0.24);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--aci-taupe);
    align-self: flex-start;
}

.aci-prog-title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(1.18rem, 1.6vw, 1.45rem);
    line-height: 1.22;
    color: var(--aci-text);
    margin: 0;
}

.aci-prog-text {
    font-size: 14px;
    line-height: 1.78;
    color: var(--aci-muted);
    margin: 0;
    flex: 1;
}

.aci-prog-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 600;
    color: var(--aci-gold);
    letter-spacing: 0.01em;
    transition: gap .22s ease, color .22s ease;
    margin-top: 4px;
}

.aci-prog-link [data-lucide] {
    width: 14px;
    height: 14px;
    transition: transform .22s ease;
}

.aci-prog-link:hover {
    color: var(--aci-taupe);
    gap: 11px;
}

.aci-prog-link:hover [data-lucide] {
    transform: translateX(3px);
}

/* ================================
   Upcoming Events — Hero Showcase
================================ */

/* Section wrapper — no bg, just vertical rhythm */
.aci-events-hero {
    padding: 0 0 100px 0;
    position: relative;
}

/* Semi-full-width wide frame — viewport-wide with 16px gutters, matches main hero stage */
.aci-events-hero__wide {
    width: min(100% - 32px, var(--aci-stage-max));
    margin: 0 auto;
}

/* Rounded editorial stage — the visual container */
.aci-events-hero__stage {
    position: relative;
    border-radius: 36px;
    overflow: hidden;
    padding: 100px 60px 96px;
    border: 1px solid rgba(201, 158, 106, 0.22);
    /* Photo background — events-bg.png fills the stage */
    background-image: url("../images/events-bg.png");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    box-shadow: 0 48px 110px -52px rgba(15, 23, 42, 0.14),
    0 14px 36px -18px rgba(15, 23, 42, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    inset 0 -1px 0 rgba(201, 158, 106, 0.10);
}

/* Dark cinematic overlay — left readability gradient + subtle full-section veil */
.aci-events-hero__stage::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(
            90deg,
            rgba(28, 30, 28, 0.72) 0%,
            rgba(28, 30, 28, 0.58) 22%,
            rgba(28, 30, 28, 0.34) 46%,
            rgba(28, 30, 28, 0.10) 68%,
            rgba(28, 30, 28, 0.00) 100%
    ),
    linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.12) 0%,
            rgba(0, 0, 0, 0.12) 100%
    );
}

/* Atmospheric texture — very subtle diagonal hatching */
.aci-events-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.aci-events-hero__bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
            -45deg,
            transparent 0px,
            transparent 28px,
            rgba(201, 158, 106, 0.022) 28px,
            rgba(201, 158, 106, 0.022) 29px
    );
}

.aci-events-hero__bg::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: linear-gradient(to top, rgba(201, 158, 106, 0.055) 0%, transparent 100%);
}

/* Decorative Arabic letter — top-left, barely perceptible */
.aci-events-hero__deco {
    position: absolute;
    top: -30px;
    left: -40px;
    width: clamp(180px, 22vw, 320px);
    height: auto;
    opacity: 0.038;
    filter: sepia(0.5) saturate(0.30) brightness(0.82);
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

/* Two-column inner layout — constrained to normal content width, centred in stage */
.aci-events-hero__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 310px 1fr;
    gap: 60px;
    align-items: center;
    max-width: var(--aci-container-max);
    margin-inline: auto;
}

/* Eyebrow modifier for dark stage background */
.aci-eyebrow--sand {
    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(245, 239, 230, 0.26);
    color: rgba(245, 239, 230, 0.86) !important;
    box-shadow: 0 4px 16px -8px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

/* LEFT: intro column */
.aci-events-hero__intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.aci-events-hero__title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(1.85rem, 2.8vw, 2.80rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: #F5EFE6;
    margin: 0 0 18px;
}

.aci-events-hero__title em {
    font-style: normal;
    font-weight: 400;
    color: #D8B07A;
}

.aci-events-hero__lead {
    font-size: 14.5px;
    line-height: 1.78;
    color: rgba(245, 239, 230, 0.78);
    margin: 0 0 32px;
}

.aci-events-hero__cta {
    flex-shrink: 0;
    /* Stronger glow against dark background */
    box-shadow: 0 16px 40px -12px rgba(201, 158, 106, 0.82),
    0 4px 14px -4px rgba(201, 158, 106, 0.46),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
}

/* ================================
   Events Carousel  (.aci-ec)
================================ */

.aci-ec {
    position: relative;
    width: 100%;
}

/* Top bar: arrows above cards, right-aligned */
.aci-ec__topbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

/* Clipping viewport (kept for possible future use, no overflow effect needed) */
.aci-ec__viewport {
}

/* Static 3-card grid */
.aci-ec__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

/* Event card */
.aci-ec__card {
    display: flex;
    flex-direction: column;
    padding: 22px 18px 20px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(20px) saturate(145%);
    -webkit-backdrop-filter: blur(20px) saturate(145%);
    border: 1px solid rgba(17, 24, 39, 0.07);
    box-shadow: 0 8px 28px -10px rgba(15, 23, 42, 0.07),
    0 2px 8px -3px rgba(15, 23, 42, 0.03),
    inset 0 1px 0 rgba(255, 255, 255, 1);
    transition: transform 0.30s ease, box-shadow 0.30s ease, border-color 0.30s ease;
}

.aci-ec__card:hover {
    transform: translateY(-6px);
    border-color: rgba(201, 158, 106, 0.28);
    box-shadow: 0 22px 52px -16px rgba(15, 23, 42, 0.12),
    0 8px 20px -6px rgba(15, 23, 42, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

/* Featured card — gold top-edge stripe */
.aci-ec__card--featured {
    border-color: rgba(201, 158, 106, 0.24);
    background: rgba(255, 255, 255, 1);
    box-shadow: 0 10px 36px -12px rgba(15, 23, 42, 0.10),
    0 3px 10px -3px rgba(15, 23, 42, 0.05),
    inset 0 2px 0 rgba(201, 158, 106, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

.aci-ec__card--featured:hover {
    transform: translateY(-7px);
    border-color: rgba(201, 158, 106, 0.44);
    box-shadow: 0 28px 64px -18px rgba(15, 23, 42, 0.14),
    0 10px 26px -7px rgba(15, 23, 42, 0.07),
    inset 0 2px 0 rgba(201, 158, 106, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

/* Card head: badge + category chip */
.aci-ec__card-head {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.aci-ec__badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    background: var(--aci-gold);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: #fff;
}

.aci-ec__cat {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: var(--radius-pill);
    background: rgba(201, 158, 106, 0.09);
    border: 1px solid rgba(201, 158, 106, 0.24);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--aci-taupe);
}

/* Date block */
.aci-ec__date {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(17, 24, 39, 0.08);
}

.aci-ec__day {
    font-family: var(--font-en-display);
    font-size: clamp(1.9rem, 2.8vw, 2.6rem);
    font-weight: 500;
    color: var(--aci-gold);
    line-height: 1;
    letter-spacing: -0.02em;
}

.aci-ec__mon {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--aci-taupe);
    padding-bottom: 2px;
}

/* Title */
.aci-ec__title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(1.02rem, 1.3vw, 1.14rem);
    line-height: 1.26;
    color: var(--aci-text);
    margin: 0 0 10px;
}

/* Location */
.aci-ec__loc {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--aci-soft-muted);
    margin-bottom: 12px;
}

.aci-ec__loc [data-lucide] {
    width: 10px;
    height: 10px;
    color: var(--aci-gold);
    flex-shrink: 0;
}

/* Description */
.aci-ec__desc {
    font-size: 13px;
    line-height: 1.74;
    color: var(--aci-muted);
    margin: 0 0 16px;
    flex: 1;
}

/* Card CTA link */
.aci-ec__link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--aci-gold);
    align-self: flex-start;
    margin-top: auto;
    transition: gap 0.22s ease, color 0.22s ease;
}

.aci-ec__link [data-lucide] {
    width: 12px;
    height: 12px;
    transition: transform 0.22s ease;
}

.aci-ec__link:hover {
    color: var(--aci-taupe);
    gap: 9px;
}

.aci-ec__link:hover [data-lucide] {
    transform: translate(2px, -2px);
}

/* Arrow buttons — circular premium controls */
.aci-ec__arrow {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(17, 24, 39, 0.10);
    color: var(--aci-taupe);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    cursor: pointer;
    transition: background 0.24s ease, color 0.24s ease, border-color 0.24s ease,
    transform 0.22s ease, box-shadow 0.24s ease, opacity 0.24s ease;
    box-shadow: 0 3px 10px -4px rgba(15, 23, 42, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.98);
}

.aci-ec__arrow [data-lucide] {
    width: 16px;
    height: 16px;
    stroke-width: 2;
    transition: transform 0.20s ease;
}

.aci-ec__arrow:hover:not(:disabled) {
    background: var(--aci-sand);
    border-color: rgba(201, 158, 106, 0.50);
    color: var(--aci-gold);
    transform: translateY(-2px);
    box-shadow: 0 8px 22px -8px rgba(201, 158, 106, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

.aci-ec__arrow--prev:hover:not(:disabled) [data-lucide] {
    transform: translateX(-2px);
}

.aci-ec__arrow--next:hover:not(:disabled) [data-lucide] {
    transform: translateX(2px);
}

.aci-ec__arrow:disabled {
    opacity: 0.28;
    cursor: default;
}

/* ---- Responsive ---- */
@media (max-width: 1199.98px) {
    .aci-events-hero__stage {
        padding: 80px 48px 76px;
    }

    .aci-events-hero__inner {
        grid-template-columns: 280px 1fr;
        gap: 48px;
    }
}

@media (max-width: 991.98px) {
    .aci-events-hero {
        padding: 64px 0;
    }

    /* .aci-events-hero__wide width now handled by --aci-gutter variable */
    .aci-events-hero__stage {
        padding: 68px 40px 64px;
        border-radius: 28px;
    }

    .aci-events-hero__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .aci-events-hero__intro {
        max-width: 560px;
    }

    .aci-ec__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }
}

@media (max-width: 767.98px) {
    .aci-events-hero__stage {
        padding: 56px 28px 52px;
        border-radius: 24px;
    }

    .aci-events-hero__deco {
        opacity: 0.022;
        width: 160px;
    }

    .aci-ec__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }
}

@media (max-width: 575.98px) {
    .aci-prog-card-body {
        padding: 20px 20px 22px;
    }

    .aci-events-hero {
        padding: 40px 0;
    }

    /* .aci-events-hero__wide width now handled by --aci-gutter variable */
    .aci-events-hero__stage {
        padding: 48px 22px 44px;
        border-radius: 20px;
    }

    .aci-events-hero__title {
        font-size: 1.72rem;
    }

    .aci-ec__arrow {
        width: 38px;
        height: 38px;
    }

    .aci-ec__grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}


/* ================================
   News & Media
================================ */

/* Split header: left text + right CTA (mirrors Events pattern) */
.aci-news-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 52px;
}

.aci-news-top-text {
    max-width: 600px;
}

.aci-news-top-text .aci-section-title {
    margin-bottom: 10px;
}

.aci-news-lead {
    max-width: 100%;
    margin-bottom: 0;
}

/* Editorial asymmetric grid: ~58% left, ~42% right */
.aci-news-grid {
    display: grid;
    grid-template-columns: 58fr 42fr;
    gap: 26px;
    align-items: stretch;
}

/* ---- Featured article (left, large) ---- */
.aci-news-featured {
    display: flex;
    flex-direction: column;
    border-radius: var(--radius-card-lg);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(20px) saturate(148%);
    -webkit-backdrop-filter: blur(20px) saturate(148%);
    border: 1px solid rgba(17, 24, 39, 0.07);
    box-shadow: 0 14px 40px -18px rgba(15, 23, 42, 0.08),
    0 4px 12px -6px rgba(15, 23, 42, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 1);
    overflow: hidden;
    transition: transform .34s ease, box-shadow .34s ease;
}

.aci-news-featured:hover {
    transform: translateY(-6px);
    box-shadow: 0 32px 72px -28px rgba(15, 23, 42, 0.14),
    0 8px 24px -8px rgba(15, 23, 42, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

/* Featured article visual banner — real image */
.aci-news-featured-visual {
    position: relative;
    aspect-ratio: 16 / 7;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--aci-soft);
}

/* Real photo */
.aci-news-featured-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    filter: saturate(0.90) contrast(0.96);
    transition: transform .60s ease, filter .34s ease;
}

.aci-news-featured:hover .aci-news-featured-img {
    transform: scale(1.03);
    filter: saturate(0.95) contrast(0.98);
}

/* Editorial SVG fills the visual area (kept for fallback, now unused) */
.aci-news-feat-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

/* Category + date strip at bottom of visual — stronger scrim for photo legibility */
.aci-news-feat-meta {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 22px;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid rgba(17, 24, 39, 0.08);
}

.aci-news-feat-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--aci-taupe);
    letter-spacing: 0.02em;
}

.aci-news-feat-date [data-lucide] {
    width: 13px;
    height: 13px;
    color: var(--aci-gold);
}

/* Shared category pill (news) */
.aci-news-cat {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    background: rgba(201, 158, 106, 0.12);
    border: 1px solid rgba(201, 158, 106, 0.24);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--aci-taupe);
    align-self: flex-start;
}

/* Featured body */
.aci-news-featured-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 30px 32px 34px;
    gap: 14px;
}

.aci-news-featured-title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(1.32rem, 1.8vw, 1.72rem);
    line-height: 1.18;
    color: var(--aci-text);
    margin: 0;
}

.aci-news-text {
    font-size: 14px;
    line-height: 1.78;
    color: var(--aci-muted);
    margin: 0;
    flex: 1;
}

.aci-news-text--sm {
    font-size: 13.5px;
}

/* Shared link */
.aci-news-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 600;
    color: var(--aci-gold);
    letter-spacing: 0.01em;
    transition: gap .22s ease, color .22s ease;
    margin-top: auto;
    padding-top: 4px;
}

.aci-news-link [data-lucide] {
    width: 14px;
    height: 14px;
    transition: transform .22s ease;
}

.aci-news-link:hover {
    color: var(--aci-taupe);
    gap: 11px;
}

.aci-news-link:hover [data-lucide] {
    transform: translate(2px, -2px);
}

/* ---- Right stack: 2 smaller strip articles ---- */
.aci-news-stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.aci-news-strip {
    flex: 1;
    display: flex;
    gap: 22px;
    padding: 26px 26px 28px;
    border-radius: var(--radius-card);
    background: rgba(255, 255, 255, 0.90);
    backdrop-filter: blur(18px) saturate(148%);
    -webkit-backdrop-filter: blur(18px) saturate(148%);
    border: 1px solid rgba(17, 24, 39, 0.07);
    box-shadow: 0 8px 28px -14px rgba(15, 23, 42, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.98);
    position: relative;
    overflow: hidden;
    transition: transform .30s ease, box-shadow .30s ease;
}

/* Top accent bar — reveals on hover (consistent with pillar cards) */
.aci-news-strip::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
    rgba(201, 158, 106, 0),
    rgba(201, 158, 106, 0.62),
    rgba(201, 158, 106, 0));
    opacity: 0;
    transition: opacity .28s ease;
}

.aci-news-strip:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 52px -22px rgba(15, 23, 42, 0.12),
    0 6px 18px -8px rgba(15, 23, 42, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

.aci-news-strip:hover::before {
    opacity: 1;
}

/* Date column — large editorial number + month */
.aci-news-strip-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 52px;
    padding-top: 2px;
    padding-right: 22px;
    border-right: 1px solid rgba(17, 24, 39, 0.09);
    gap: 4px;
    flex-shrink: 0;
}

.aci-news-strip-day {
    font-family: var(--font-en-display);
    font-size: clamp(2.0rem, 2.6vw, 2.6rem);
    font-weight: 500;
    line-height: 1;
    color: var(--aci-text);
    letter-spacing: -0.02em;
}

.aci-news-strip-mon {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--aci-soft-muted);
    white-space: nowrap;
}

/* Strip body */
.aci-news-strip-body {
    display: flex;
    flex-direction: column;
    gap: 11px;
    flex: 1;
}

.aci-news-strip-title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(1.05rem, 1.4vw, 1.26rem);
    line-height: 1.24;
    color: var(--aci-text);
    margin: 0;
}

/* Section CTA row */
.aci-news-cta {
    display: flex;
    justify-content: center;
    margin-top: 52px;
}

/* ---- News responsive ---- */
@media (max-width: 1199.98px) {
    .aci-news-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 991.98px) {
    .aci-news-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        margin-bottom: 40px;
    }

    .aci-news-grid {
        grid-template-columns: 1fr;
    }

    .aci-news-stack {
        flex-direction: row;
        gap: 20px;
    }

    .aci-news-strip {
        flex: 1;
    }
}

@media (max-width: 767.98px) {
    .aci-news-stack {
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .aci-news-top {
        margin-bottom: 32px;
    }

    .aci-news-strip {
        flex-direction: column;
        gap: 0;
    }

    .aci-news-strip-date {
        flex-direction: row;
        align-items: baseline;
        gap: 8px;
        padding-right: 0;
        padding-bottom: 12px;
        border-right: 0;
        border-bottom: 1px solid rgba(17, 24, 39, 0.09);
        min-width: unset;
    }

    .aci-news-strip-body {
        padding-top: 12px;
    }

    .aci-news-strip-day {
        font-size: 1.7rem;
    }
}

/* ================================
   Visit Us
================================ */

.aci-visit {
    background: radial-gradient(ellipse 900px 500px at 100% 0%, rgba(148, 163, 184, 0.05), transparent 55%),
    radial-gradient(ellipse 700px 400px at 0% 100%, rgba(148, 163, 184, 0.03), transparent 55%),
    var(--aci-ivory);
    border-top: 1px solid rgba(17, 24, 39, 0.06);
}

/* Two-column: ~5fr info + ~7fr map */
.aci-visit-inner {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 64px;
    align-items: stretch;
}

/* Info side */
.aci-visit-info {
    display: flex;
    flex-direction: column;
}

.aci-visit-info .aci-eyebrow {
    align-self: flex-start;
    width: fit-content;
}

.aci-visit-info .aci-section-title {
    margin-bottom: 1rem;
}

.aci-visit-info .aci-lead {
    margin-bottom: 2.4rem;
}

/* Contact detail rows */
.aci-visit-details {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 40px;
}

.aci-visit-detail {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.aci-visit-detail-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(145deg, rgba(201, 158, 106, 0.18), rgba(201, 158, 106, 0.06));
    border: 1px solid rgba(201, 158, 106, 0.26);
    color: var(--aci-gold);
    flex-shrink: 0;
}

.aci-visit-detail-icon [data-lucide] {
    width: 16px;
    height: 16px;
}

.aci-visit-detail-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-top: 3px;
}

.aci-visit-detail-label {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--aci-soft-muted);
}

.aci-visit-detail-value {
    font-size: 14.5px;
    color: var(--aci-text);
    line-height: 1.55;
    font-weight: 400;
}

a.aci-visit-detail-value {
    color: var(--aci-text);
    transition: color .22s ease;
}

a.aci-visit-detail-value:hover {
    color: var(--aci-gold);
}

/* CTA buttons row */
.aci-visit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* Map panel side — flex so map panel stretches to info height */
.aci-visit-map {
    position: relative;
    display: flex;
    flex-direction: column;
}

/* Map panel — iframe embed frame */
.aci-map-panel {
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    flex: 1;
    min-height: 460px;
    border: 1px solid rgba(17, 24, 39, 0.09);
    box-shadow: 0 28px 72px -32px rgba(15, 23, 42, 0.12),
    0 8px 24px -10px rgba(15, 23, 42, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.80);
    /* Snow-cool background shown while map loads */
    background: linear-gradient(158deg, #EEF1F7 0%, #E6EAF2 100%);
}

/* Subtle warm tint overlay — pointer-events:none keeps map interactive */
.aci-map-panel::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: rgba(248, 240, 224, 0.05);
    mix-blend-mode: multiply;
    pointer-events: none;
    z-index: 1;
}

/* Google Maps iframe */
.aci-map-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    /* Subtle warm integration: gentle saturation pull without obscuring detail */
    filter: saturate(0.88) sepia(0.06);
}

/* ---- Abstract map elements removed (replaced by iframe) ---- */

/* ---- Visit Us responsive ---- */
@media (max-width: 1199.98px) {
    .aci-visit-inner {
        gap: 48px;
    }

    .aci-map-panel {
        min-height: 380px;
    }
}

@media (max-width: 991.98px) {
    .aci-visit-inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .aci-visit-info .aci-lead {
        max-width: 100%;
    }

    .aci-map-panel {
        min-height: 360px;
        flex: none;
    }
}

@media (max-width: 575.98px) {
    .aci-map-panel {
        min-height: 280px;
        border-radius: 22px;
    }
}

/* ---------- Partners & Newsletter ---------- */

/* Section */
.aci-partners-section {
    background: radial-gradient(1100px 580px at 80% -8%, rgba(148, 163, 184, 0.04), transparent 55%),
    radial-gradient(800px 480px at -5% 80%, rgba(148, 163, 184, 0.03), transparent 55%),
    var(--aci-ivory);
    border-top: 1px solid rgba(17, 24, 39, 0.06);
    overflow: hidden;
    padding-bottom: 0px;
}

/* Header block */
.aci-partners-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 48px;
}

.aci-partners-header .aci-eyebrow {
    align-self: center;
}

.aci-partners-header .aci-section-title {
    max-width: 600px;
    margin-bottom: 1rem;
}

.aci-partners-lead {
    max-width: 560px;
    text-align: center;
    margin-bottom: 0;
}

/* Partner strip */
.aci-partners-track-wrap {
    position: relative;
    overflow: hidden;
    margin-bottom: 72px;
    /* Fade edges */
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%);
}

/* Pause animation for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    .aci-partners-track {
        animation: none !important;
    }
}

.aci-partners-track {
    display: flex;
    align-items: center;
    gap: 16px;
    width: max-content;
    animation: aci-partners-scroll 32s linear infinite;
}

.aci-partners-track:hover {
    animation-play-state: paused;
}

@keyframes aci-partners-scroll {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

.aci-partner-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
    height: 72px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(17, 24, 39, 0.07);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 4px 20px -8px rgba(15, 23, 42, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 1);
    flex-shrink: 0;
    transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}

.aci-partner-pill:hover {
    transform: translateY(-2px);
    border-color: rgba(201, 158, 106, 0.36);
    box-shadow: 0 10px 32px -10px rgba(15, 23, 42, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

/* Logo image inside card */
.aci-partner-logo {
    display: block;
    max-height: 32px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    /* Gentle normalisation: slight desaturation + reduced opacity */
    filter: grayscale(0.35) opacity(0.78);
    transition: filter .26s ease;
}

.aci-partner-pill:hover .aci-partner-logo {
    filter: grayscale(0) opacity(1);
}

/* Newsletter CTA — centered premium hero-style closing panel */
.aci-newsletter-card {
    position: relative;
    overflow: hidden;
    padding: 72px 56px 64px;
    border-radius: 32px 32px 0px 0px;
    text-align: center;
    background: radial-gradient(900px 500px at 50% -10%, rgba(148, 163, 184, 0.07), transparent 62%),
    radial-gradient(600px 400px at 10% 110%, rgba(148, 163, 184, 0.04), transparent 60%),
    #FFFFFF;
    border: 1px solid rgba(17, 24, 39, 0.06);
    box-shadow: 0 32px 80px -32px rgba(15, 23, 42, 0.10),
    0 10px 28px -12px rgba(15, 23, 42, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

/* Soft gold decorative glyph — disabled */
.aci-newsletter-watermark {
    display: none;
}

/* ==========================================================================
   Decorative pattern marks — Arabic letter watermark + arc motifs
   All elements: pointer-events none, behind content, non-readable
   ========================================================================== */

/* ---- Footer: Arabic letter, top-right corner of footer wrapper ---- */
.aci-footer-pattern-mark {
    position: absolute;
    top: 0;
    right: 0;
    width: clamp(220px, 28vw, 380px);
    height: auto;
    opacity: 0.045;
    transform: rotate(0deg);
    filter: sepia(0.5) saturate(0.35) brightness(0.88);
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

/* ---- Newsletter card: abstract arc motif via CSS pseudo-element ---- */
/* Three concentric arcs centred on the bottom-left corner of the card.
   Completely abstract — pattern language, not letter forms. */
.aci-newsletter-card::before {
    content: '';
    position: absolute;
    bottom: -70px;
    left: -70px;
    width: 300px;
    height: 300px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none'%3E%3Ccircle cx='0' cy='200' r='90'  stroke='%23887360' stroke-width='1'/%3E%3Ccircle cx='0' cy='200' r='140' stroke='%23887360' stroke-width='0.7'/%3E%3Ccircle cx='0' cy='200' r='50'  stroke='%23C99E6A' stroke-width='0.6'/%3E%3C/svg%3E");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    opacity: 0.11;
}

/* Responsive */
@media (max-width: 767.98px) {
    .aci-footer-pattern-mark {
        width: 160px;
        opacity: 0.03;
    }

    .aci-newsletter-card::before {
        width: 200px;
        height: 200px;
        opacity: 0.08;
    }
}

/* Inner centered content block */
.aci-newsletter-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 860px;
    margin-inline: auto;
}

/* Eyebrow — inline-flex centered, must not stretch */
.aci-newsletter-eyebrow {
    align-self: center;
    width: fit-content;
    margin-bottom: 24px;
}

/* Heading */
.aci-newsletter-title {
    font-family: var(--font-en-display);
    font-size: clamp(1.7rem, 3.2vw, 2.6rem);
    font-weight: 500;
    line-height: 1.10;
    letter-spacing: -0.015em;
    color: var(--aci-text);
    margin: 0 0 16px;
    max-width: 680px;
}

.aci-newsletter-title em {
    font-style: normal;
    font-weight: 400;
    color: var(--aci-gold);
}

/* Description */
.aci-newsletter-desc {
    font-family: var(--font-en-body);
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--aci-muted);
    margin: 0 0 32px;
    max-width: 560px;
}

/* Benefit pills — centered horizontal row */
.aci-newsletter-benefits {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0 0 36px;
    padding: 0;
    list-style: none;
}

.aci-newsletter-benefit {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-en-body);
    font-size: 13px;
    font-weight: 500;
    color: var(--aci-taupe);
    padding: 8px 16px 8px 10px;
    border-radius: var(--radius-pill);
    background: rgba(201, 158, 106, 0.08);
    border: 1px solid rgba(201, 158, 106, 0.22);
    letter-spacing: 0.01em;
    transition: background .22s ease, border-color .22s ease;
}

.aci-newsletter-benefit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 8px;
    background: rgba(201, 158, 106, 0.13);
    color: var(--aci-gold);
    flex-shrink: 0;
}

.aci-newsletter-benefit-icon [data-lucide] {
    width: 12px;
    height: 12px;
}

/* Form container — centered, constrained width */
.aci-newsletter-form-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 430px;
}

/* Input + button row */
.aci-newsletter-field {
    display: flex;
    align-items: center;
    gap: 0;
    background: rgba(255, 255, 255, 0.90);
    border: 1px solid rgba(17, 24, 39, 0.10);
    border-radius: 100px;
    padding: 6px 6px 6px 20px;
    box-shadow: 0 4px 20px -8px rgba(15, 23, 42, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: border-color .26s ease, box-shadow .26s ease;
}

.aci-newsletter-field:focus-within {
    border-color: rgba(201, 158, 106, 0.50);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.10),
    0 6px 24px -10px rgba(15, 23, 42, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.98);
}

.aci-newsletter-field-icon {
    display: flex;
    align-items: center;
    margin-right: 10px;
    flex-shrink: 0;
}

.aci-newsletter-field-icon [data-lucide] {
    width: 16px;
    height: 16px;
    color: var(--aci-soft-muted);
}

.aci-newsletter-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    font-family: var(--font-en-body);
    font-size: 14px;
    color: var(--aci-text);
    min-width: 0;
}

.aci-newsletter-input::placeholder {
    color: var(--aci-soft-muted);
}

.aci-newsletter-btn {
    flex-shrink: 0;
    padding: 12px 24px;
    font-size: 13.5px;
}

.aci-newsletter-btn [data-lucide] {
    width: 15px;
    height: 15px;
}

/* Fine-print note */
.aci-newsletter-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-family: var(--font-en-body);
    font-size: 12px;
    color: var(--aci-soft-muted);
    margin: 0;
}

.aci-newsletter-note [data-lucide] {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}

/* ---- Partners & Newsletter responsive ---- */
@media (max-width: 991.98px) {
    .aci-newsletter-card {
        padding: 56px 40px 48px;
    }
}

@media (max-width: 767.98px) {
    .aci-partners-header {
        margin-bottom: 36px;
    }

    .aci-partners-track-wrap {
        margin-bottom: 52px;
    }

    .aci-newsletter-card {
        padding: 44px 28px 38px;
        border-radius: 24px 24px 0 0;
    }

    .aci-newsletter-form-wrap {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    .aci-newsletter-card {
        padding: 36px 20px 30px;
        border-radius: 20px 20px 0 0;
    }

    .aci-newsletter-field {
        flex-wrap: wrap;
        border-radius: 18px;
        padding: 14px 16px;
        gap: 10px;
    }

    .aci-newsletter-input {
        width: 100%;
    }

    .aci-newsletter-btn {
        width: 100%;
        justify-content: center;
        border-radius: 14px;
    }
}

/* ---------- 6. Footer ---------- */
.aci-footer {
    position: relative;
    overflow: hidden;
    padding: 66px 0 52px;
    background: radial-gradient(1100px 600px at 90% -10%, rgba(201, 158, 106, 0.06), transparent 60%),
    radial-gradient(900px 500px at -10% 80%, rgba(201, 158, 106, 0.03), transparent 60%),
    #F0F1F5;
    border-top: 1px solid rgba(17, 24, 39, 0.09);
}

.aci-footer-card {
    position: relative;
    overflow: hidden;
}

/* Strip .aci-glass card appearance — footer is now full-width */
.aci-footer-card.aci-glass {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.aci-footer-grid {
    position: relative;
    z-index: 1;
}

.aci-footer-brand {
    margin-bottom: 16px;
}

.aci-footer-brand .aci-brand-logo {
    height: 110px;
}

.aci-footer-statement {
    color: var(--aci-muted);
    font-size: 14px;
    line-height: 1.78;
    max-width: 280px;
    margin-bottom: 20px;
    margin-top: 12px;
}

/* Social icons */
.aci-social {
    display: inline-flex;
    gap: 8px;
}

.aci-social-link {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(17, 24, 39, 0.09);
    color: var(--aci-taupe);
    box-shadow: 0 3px 10px -6px rgba(15, 23, 42, 0.10);
    transition: transform .25s ease, color .25s ease,
    border-color .25s ease, background .25s ease,
    box-shadow .25s ease;
}

.aci-social-link:hover {
    color: var(--aci-gold);
    border-color: rgba(201, 158, 106, 0.32);
    background: #fff;
    transform: translateY(-3px);
    box-shadow: 0 8px 22px -8px rgba(15, 23, 42, 0.14);
}

/* Default icon size */
.aci-social-link svg {
    width: 16px;
    height: 16px;
    display: block;
}

/* TikTok & X are optically denser — slightly smaller for balance */
.aci-social-link[aria-label="TikTok"] svg,
.aci-social-link[aria-label="X"] svg {
    width: 15px;
    height: 15px;
}

/* Footer headings + lists */
.aci-footer-heading {
    font-family: var(--font-en-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--aci-text);
    margin: 0 0 20px;
    padding-bottom: 11px;
    border-bottom: 1px solid rgba(17, 24, 39, 0.09);
}

.aci-footer-list li {
    margin-bottom: 12px;
    font-size: 14.5px;
    color: var(--aci-muted);
}

.aci-footer-list a {
    color: var(--aci-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color .25s ease, gap .25s ease;
}

.aci-footer-list a::before {
    content: '';
    width: 0;
    height: 1px;
    background: var(--aci-gold);
    transition: width .25s ease;
    flex-shrink: 0;
}

.aci-footer-list a:hover {
    color: var(--aci-gold);
    gap: 10px;
}

.aci-footer-list a:hover::before {
    width: 10px;
}

.aci-footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14.5px;
    line-height: 1.62;
}

.aci-footer-contact [data-lucide] {
    width: 14px;
    height: 14px;
    color: var(--aci-gold);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Bottom bar */
.aci-footer-bottom {
    position: relative;
    z-index: 1;
    margin-top: 36px;
    padding-top: 20px;
    border-top: 1px solid rgba(17, 24, 39, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.aci-footer-bottom p {
    margin: 0;
    font-size: 13px;
    color: var(--aci-soft-muted);
    letter-spacing: 0.01em;
}

.aci-footer-bottom-en {
    font-style: italic;
}


/* ==========================================================================
   V3 DARK / LIGHT MIXED EDITORIAL THEME — OVERRIDES
   Sections affected: Hero · Events (already dark, minor polish) ·
                      Newsletter CTA · Footer
   All other sections inherit the cool-white snow base from v2.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. HERO STAGE — Dark cinematic overlay
   -------------------------------------------------------------------------- */

/* Dark fallback before image loads */
.aci-hero-stage {
    background: #171513;
}

/* Replace the light wash gradient with a cinematic dark-left overlay */
.aci-hero-canvas-overlay {
    background: linear-gradient(to right,
    rgba(12, 10, 8, 0.84) 0%,
    rgba(12, 10, 8, 0.64) 28%,
    rgba(12, 10, 8, 0.28) 54%,
    rgba(12, 10, 8, 0.04) 80%,
    transparent 100%
    ),
    linear-gradient(to bottom,
            transparent 60%,
            rgba(0, 0, 0, 0.26) 100%
    );
}

/* Hero panel desktop: transparent, sits on the dark gradient */
.aci-hero-panel {
    background: none;
}

/* Eyebrow pill → dark glass */
.aci-hero-panel .aci-eyebrow {
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.18);
    color: rgba(247, 243, 236, 0.86) !important;
    box-shadow: 0 4px 16px -8px rgba(0, 0, 0, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.aci-hero-panel .aci-eyebrow-dot {
    background: var(--aci-gold);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.28);
}

/* Hero title → ivory, dark halo */
.aci-hero-title {
    color: var(--aci-dark-text);
    text-shadow: 0 1px 18px rgba(0, 0, 0, 0.30),
    0 3px 44px rgba(0, 0, 0, 0.18);
}

.aci-hero-panel .aci-hero-title:focus,
.aci-hero-panel .aci-hero-title:focus-visible {
    outline: none;
    box-shadow: none;
}

.aci-hero-title em {
    color: var(--aci-gold);
}

/* Lead paragraph */
.aci-hero-panel .aci-lead {
    color: rgba(247, 243, 236, 0.74);
}

/* Editorial accent line */
.aci-hero-panel .aci-editorial-accent {
    color: rgba(247, 243, 236, 0.56);
    border-left-color: var(--aci-gold);
}

/* Ghost button on dark hero → frosted white glass */
.aci-hero-panel .aci-btn-ghost {
    background: rgba(255, 255, 255, 0.13);
    color: var(--aci-dark-text);
    border-color: rgba(255, 255, 255, 0.24);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 4px 14px -8px rgba(0, 0, 0, 0.26),
    inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.aci-hero-panel .aci-btn-ghost:hover {
    background: rgba(255, 255, 255, 0.22);
    border-color: rgba(255, 255, 255, 0.38);
    color: #FFFFFF;
    box-shadow: 0 8px 24px -10px rgba(0, 0, 0, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

/* Tablet hero: overlay and title size refinement — panel is already transparent (set in hero block above) */
@media (max-width: 991.98px) {
    .aci-hero-title {
        font-size: clamp(1.7rem, 5.5vw, 2.6rem);
        text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45), 0 1px 4px rgba(0, 0, 0, 0.30);
    }
}


/* --------------------------------------------------------------------------
   2. EVENTS SECTION — Already dark; polish card glass
   -------------------------------------------------------------------------- */

/* Lift event cards slightly more for contrast on the dark stage */
.aci-events-hero__card {
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 28px 56px -24px rgba(0, 0, 0, 0.36),
    0 8px 20px -10px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}


/* --------------------------------------------------------------------------
   3. NEWSLETTER — Dark premium CTA
   -------------------------------------------------------------------------- */

.aci-newsletter-card {
    background: radial-gradient(720px 400px at 88% 108%, rgba(201, 158, 106, 0.11), transparent 56%),
    radial-gradient(500px 340px at -8% -8%, rgba(201, 158, 106, 0.05), transparent 54%),
    linear-gradient(148deg, #19161280 0%, #1C1814 48%, #151210 100%),
    #17140F;
    border-color: rgba(255, 255, 255, 0.09);
    box-shadow: 0 40px 100px -40px rgba(0, 0, 0, 0.52),
    0 12px 32px -12px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

/* Arc motif: lighten for dark bg */
.aci-newsletter-card::before {
    opacity: 0.08;
    filter: invert(1) brightness(1.4);
}

/* Eyebrow inside newsletter → dark glass variant */
.aci-newsletter-card .aci-eyebrow {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
    color: rgba(247, 243, 236, 0.80) !important;
    box-shadow: none;
}

.aci-newsletter-card .aci-eyebrow-dot {
    background: var(--aci-gold);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.24);
}

/* Heading */
.aci-newsletter-title {
    color: var(--aci-dark-text);
}

.aci-newsletter-title em {
    color: var(--aci-gold);
}

/* Description */
.aci-newsletter-desc {
    color: var(--aci-dark-muted);
}

/* Benefit pills → dark glass chips */
.aci-newsletter-benefit {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.12);
    color: rgba(247, 243, 236, 0.76);
}

.aci-newsletter-benefit-icon {
    background: rgba(201, 158, 106, 0.14);
    color: var(--aci-gold);
}

/* Form field wrapper → dark glass */
.aci-newsletter-field {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.13);
    box-shadow: none;
}

.aci-newsletter-field:focus-within {
    border-color: rgba(201, 158, 106, 0.46);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.12);
}

/* Field icon */
.aci-newsletter-field-icon svg,
.aci-newsletter-field-icon [data-lucide] {
    color: rgba(247, 243, 236, 0.40);
}

/* Email input */
.aci-newsletter-input {
    background: transparent;
    color: var(--aci-dark-text);
}

.aci-newsletter-input::placeholder {
    color: rgba(247, 243, 236, 0.36);
}

/* Subscribe button: stays gold — no override needed */

/* Privacy note */
.aci-newsletter-note {
    color: rgba(247, 243, 236, 0.40);
}

.aci-newsletter-note svg,
.aci-newsletter-note [data-lucide] {
    color: rgba(247, 243, 236, 0.38);
}


/* --------------------------------------------------------------------------
   4. FOOTER — Dark warm charcoal
   -------------------------------------------------------------------------- */

.aci-footer {
    background: radial-gradient(1100px 580px at 84% -8%, rgba(201, 158, 106, 0.07), transparent 58%),
    radial-gradient(720px 480px at -12% 88%, rgba(201, 158, 106, 0.04), transparent 56%),
    #181410;
    border-top-color: rgba(255, 255, 255, 0.07);
}

/* Arabic watermark: lighten filter for dark background */
.aci-footer-pattern-mark {
    filter: brightness(0) invert(1);
    opacity: 0.04;
}

/* Logo → white on dark */
.aci-footer-brand .aci-brand-logo {
    filter: brightness(0) invert(1);
}

/* Brand name text */
.aci-footer .aci-brand-en,
.aci-footer .aci-brand-name-main {
    color: var(--aci-dark-text);
}

.aci-footer .aci-brand-ar,
.aci-footer .aci-brand-name-sub {
    color: rgba(247, 243, 236, 0.52);
}

/* Statement */
.aci-footer-statement {
    color: rgba(247, 243, 236, 0.56);
}

/* Social links */
.aci-social-link {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.11);
    color: rgba(247, 243, 236, 0.68);
    box-shadow: none;
}

.aci-social-link:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(201, 158, 106, 0.36);
    color: var(--aci-gold);
    box-shadow: 0 8px 22px -8px rgba(0, 0, 0, 0.38);
}

/* Footer column headings */
.aci-footer-heading {
    color: var(--aci-dark-text);
    border-bottom-color: rgba(255, 255, 255, 0.09);
}

/* Footer list items */
.aci-footer-list li {
    color: rgba(247, 243, 236, 0.60);
}

.aci-footer-list a {
    color: rgba(247, 243, 236, 0.60);
}

.aci-footer-list a::before {
    background: var(--aci-gold);
}

.aci-footer-list a:hover {
    color: var(--aci-gold);
}

/* Contact icons: stays gold — already correct */

/* Bottom bar */
.aci-footer-bottom {
    border-top-color: rgba(255, 255, 255, 0.08);
}

.aci-footer-bottom p {
    color: rgba(247, 243, 236, 0.38);
}


/* ==========================================================================
   V3 STAGE SYSTEM — Semi-full-width dark sections
   Mirrors the .aci-hero__wide / .aci-events-hero__wide pattern for
   Programs and Visit Us sections, plus newsletter repositioning.

   Structure:
   <section .aci-section .aci-pillars>   ← transparent, provides whitespace
     <div .aci-stage-wide>               ← width: min(100% - 32px, stage-max)
       <div .aci-stage-box .aci-pillars-stage>  ← dark bg + border-radius
         <div .aci-container>            ← content grid
   ========================================================================== */

/* --------------------------------------------------------------------------
   Shared outer width wrapper — same geometry as .aci-hero__wide
   -------------------------------------------------------------------------- */
.aci-stage-wide {
    width: min(100% - 32px, var(--aci-stage-max));
    margin-inline: auto;
}

/* --------------------------------------------------------------------------
   Shared inner stage box — visual card geometry
   -------------------------------------------------------------------------- */
.aci-stage-box {
    border-radius: 36px;
    overflow: hidden;
    position: relative;
}

/* --------------------------------------------------------------------------
   Programs section — transparent outer, dark inner stage
   -------------------------------------------------------------------------- */

/* Remove section-level bg (now on stage box) */
.aci-pillars {
    background: transparent !important;
    border-top: none !important;
    padding: 100px 0; /* whitespace above + below the dark card */
}

/* Dark bg lives here */
.aci-pillars-stage {
    background: radial-gradient(ellipse 900px 500px at 100% -10%, rgba(201, 158, 106, 0.07), transparent 56%),
    radial-gradient(ellipse 700px 480px at -8% 110%, rgba(201, 158, 106, 0.04), transparent 56%),
    linear-gradient(135deg, #111111 0%, #1C1814 55%, #101C18 100%);
    border: 1px solid rgba(255, 255, 255, 0.07);
    padding-block: 80px; /* internal content breathing room */
}

/* --------------------------------------------------------------------------
   Visit Us section — transparent outer, dark inner stage
   -------------------------------------------------------------------------- */

.aci-visit {
    background: transparent !important;
    border-top: none !important;
    padding: 0px 0 100px 0;
}

.aci-visit-stage {
    background: radial-gradient(ellipse 860px 480px at 100% -8%, rgba(201, 158, 106, 0.06), transparent 54%),
    radial-gradient(ellipse 680px 440px at -6% 108%, rgba(201, 158, 106, 0.04), transparent 54%),
    linear-gradient(135deg, #111111 0%, #1A1512 50%, #0F1913 100%);
    border: 1px solid rgba(255, 255, 255, 0.07);
    padding-block: 80px;
}

/* --------------------------------------------------------------------------
   Newsletter — full border-radius, stage-wide wrapper handles width
   -------------------------------------------------------------------------- */

/* Full border-radius now that it's a floating card, not connected to footer */
.aci-newsletter-card {
    border-radius: 36px 36px 0 0;
}

/* Gap between partner logos (container) and newsletter stage */
.aci-partners-section > .aci-stage-wide {
    margin-top: 56px;
}

/* Partners section bottom padding: light breathing space → dark footer */
.aci-partners-section {
    padding-bottom: 0px;
}

/* Footer: restore original top padding now newsletter no longer flushes into it */
.aci-footer {
    padding-top: 66px;
}

/* --------------------------------------------------------------------------
   Responsive stage geometry
   -------------------------------------------------------------------------- */

/* Tablet */
@media (max-width: 991.98px) {
    .aci-stage-box {
        border-radius: 28px;
    }

    .aci-pillars-stage,
    .aci-visit-stage {
        padding-block: 60px;
    }

    .aci-pillars,
    .aci-visit {
        padding: 32px 0;
    }

    .aci-newsletter-card {
        border-radius: 28px 28px 0 0;
    }
}

/* Mobile landscape */
@media (max-width: 767.98px) {
    .aci-stage-wide {
        width: min(100% - 24px, var(--aci-stage-max));
    }

    .aci-stage-box {
        border-radius: 22px;
    }

    .aci-pillars-stage,
    .aci-visit-stage {
        padding-block: 48px;
    }

    .aci-pillars,
    .aci-visit {
        padding: 24px 0;
    }

    .aci-newsletter-card {
        border-radius: 22px 22px 0 0;
    }
}

/* Mobile portrait */
@media (max-width: 575.98px) {
    .aci-stage-wide {
        width: min(100% - 16px, var(--aci-stage-max));
    }

    .aci-stage-box {
        border-radius: 16px;
    }

    .aci-newsletter-card {
        border-radius: 16px 16px 0 0;
    }

    .aci-partners-section > .aci-stage-wide {
        margin-top: 40px;
    }
}


/* ==========================================================================
   V3 DARK RHYTHM — PROGRAMS + VISIT US
   Adds two dark editorial bands creating the full mixed rhythm:

   Dark Hero → Light About+Stats → Dark Programs → Light Featured →
   Dark Events → Light News → Dark Visit → Light Partners →
   Dark Newsletter+Footer
   ========================================================================== */

/* --------------------------------------------------------------------------
   UTILITY — reusable helpers applied inside dark sections
   -------------------------------------------------------------------------- */

/* Dark-section eyebrow pill */
.aci-eyebrow--dark,
.aci-pillars .aci-eyebrow,
.aci-visit .aci-eyebrow {
    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(255, 255, 255, 0.15);
    color: rgba(247, 243, 236, 0.82) !important;
    box-shadow: 0 4px 14px -8px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.aci-eyebrow--dark .aci-eyebrow-dot,
.aci-pillars .aci-eyebrow .aci-eyebrow-dot,
.aci-visit .aci-eyebrow .aci-eyebrow-dot {
    background: var(--aci-gold);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.26);
}

/* Dark-section section titles */
.aci-pillars .aci-section-title,
.aci-visit .aci-section-title {
    color: var(--aci-dark-text);
}

.aci-pillars .aci-section-title em,
.aci-visit .aci-section-title em {
    color: var(--aci-gold);
}

/* Dark-section lead paragraphs */
.aci-pillars .aci-lead,
.aci-visit .aci-lead {
    color: var(--aci-dark-muted);
}

/* Dark glass card utility */
.aci-card--dark {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.10);
    box-shadow: 0 20px 48px -20px rgba(0, 0, 0, 0.34),
    0 6px 16px -8px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* --------------------------------------------------------------------------
   PROGRAMS SECTION — Dark warm charcoal editorial
   .aci-pillars
   -------------------------------------------------------------------------- */

.aci-pillars {
    background: radial-gradient(ellipse 900px 500px at 100% -10%, rgba(201, 158, 106, 0.07), transparent 56%),
    radial-gradient(ellipse 700px 480px at -8% 110%, rgba(201, 158, 106, 0.04), transparent 56%),
    linear-gradient(135deg, #111111 0%, #1C1814 55%, #101C18 100%);
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

/* Pillar cards → dark glass */
.aci-pillars .aci-pillar-card {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.10);
    box-shadow: 0 20px 48px -20px rgba(0, 0, 0, 0.34),
    0 6px 16px -8px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(10px) saturate(120%);
    -webkit-backdrop-filter: blur(10px) saturate(120%);
}

/* Card number — very subtle on dark */
.aci-pillars .aci-pillar-num {
    color: rgba(247, 243, 236, 0.22);
}

/* Card title */
.aci-pillars .aci-pillar-title {
    color: var(--aci-dark-text);
}

/* Card body text */
.aci-pillars .aci-pillar-text {
    color: rgba(247, 243, 236, 0.62);
}

/* Icon container on dark — keep gold but darken the glass bg */
.aci-pillars .aci-pillar-icon {
    background: linear-gradient(145deg, rgba(201, 158, 106, 0.18), rgba(201, 158, 106, 0.06));
    border-color: rgba(201, 158, 106, 0.26);
    color: var(--aci-gold);
}

/* Hover state on dark cards */
.aci-pillars .aci-pillar-card:hover {
    border-color: rgba(201, 158, 106, 0.40) !important;
    background: rgba(255, 255, 255, 0.09);
    box-shadow: 0 36px 72px -32px rgba(0, 0, 0, 0.48),
    0 12px 28px -12px rgba(0, 0, 0, 0.24),
    0 0 0 1px rgba(201, 158, 106, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.aci-pillars .aci-pillar-card:hover .aci-pillar-num {
    color: rgba(201, 158, 106, 0.50);
}

/* Top gold accent bar on hover — stays the same, works on dark too */
/* Corner glow on hover */
.aci-pillars .aci-pillar-card::after {
    background: rgba(201, 158, 106, 0.12);
}


/* --------------------------------------------------------------------------
   VISIT US SECTION — Dark editorial with light map for contrast
   .aci-visit
   -------------------------------------------------------------------------- */

.aci-visit {
    background: radial-gradient(ellipse 860px 480px at 100% -8%, rgba(201, 158, 106, 0.06), transparent 54%),
    radial-gradient(ellipse 680px 440px at -6% 108%, rgba(201, 158, 106, 0.04), transparent 54%),
    linear-gradient(135deg, #111111 0%, #1A1512 50%, #0F1913 100%);
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

/* Contact detail label (e.g. "Address") */
.aci-visit-detail-label {
    color: rgba(247, 243, 236, 0.46);
}

/* Contact detail value */
.aci-visit-detail-value {
    color: var(--aci-dark-text);
}

a.aci-visit-detail-value {
    color: var(--aci-dark-text);
}

a.aci-visit-detail-value:hover {
    color: var(--aci-gold);
}

/* Detail icon — darken glass bg, keep gold icon */
.aci-visit-detail-icon {
    background: rgba(201, 158, 106, 0.12);
    border-color: rgba(201, 158, 106, 0.24);
    color: var(--aci-gold);
}

/* Ghost button in visit section → frosted white glass on dark */
.aci-visit .aci-btn-ghost {
    background: rgba(255, 255, 255, 0.10);
    color: var(--aci-dark-text);
    border-color: rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 14px -8px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.aci-visit .aci-btn-ghost:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.36);
    color: #FFFFFF;
    box-shadow: 0 8px 22px -8px rgba(0, 0, 0, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

/* Map panel — stays light; enhance framing for dark context */
.aci-visit .aci-map-panel {
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 0 0 1px rgba(201, 158, 106, 0.12),
    0 40px 90px -36px rgba(0, 0, 0, 0.52),
    0 12px 32px -14px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.60);
    background: linear-gradient(158deg, #EEF1F7 0%, #E6EAF2 100%);
}

/* Subtle warm tint overlay on map — keep consistent */
.aci-visit .aci-map-panel::after {
    background: rgba(248, 240, 224, 0.04);
}

/* Map iframe — slightly cooler filter for dark context */
.aci-visit .aci-map-iframe {
    filter: saturate(0.82) sepia(0.04) brightness(0.97);
}

/* --------------------------------------------------------------------------
   SECTION EDGE TRANSITIONS — subtle border rhythm between dark↔light
   -------------------------------------------------------------------------- */

/* Light sections that follow a dark section get a very faint top border */
.aci-programs {
    border-top: 1px solid rgba(17, 24, 39, 0.05);
}

.aci-news {
    border-top: 1px solid rgba(17, 24, 39, 0.05);
}

/* Partners section: clean top border before the dark close */
.aci-partners-section {
    border-top: 1px solid rgba(17, 24, 39, 0.05);
}

/* Newsletter → Footer: add extra top padding to footer so it breathes */
.aci-footer {
    padding-top: 80px;
}

/* ==========================================================================
   HOMEPAGE FOOTER — Dark Premium Variant (.aci-footer--dark)
   Copied from style.css for use on index-v3.html
   ========================================================================== */

.aci-footer--dark {
    background: radial-gradient(800px 500px at 85% 0%, rgba(201, 158, 106, 0.07), transparent 55%),
    #1e1812;
    border-top: 1px solid rgba(201, 158, 106, 0.1);
    padding-top: clamp(64px, 8vw, 104px);
    padding-bottom: clamp(36px, 5vw, 60px);
}

.aci-footer__pattern {
    position: absolute;
    width: clamp(160px, 20vw, 300px);
    height: auto;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    opacity: 0.04;
    filter: sepia(1) saturate(0.2) brightness(2.2);
}

.aci-footer__pattern--right {
    top: 0;
    right: 0;
}

.aci-footer__pattern--left {
    bottom: 0;
    left: 0;
    transform: scaleX(-1) rotate(180deg);
}

.aci-footer--dark > .aci-container {
    position: relative;
    z-index: 1;
}

.aci-footer__top {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-bottom: clamp(36px, 5vw, 56px);
}

.aci-footer__brand-link {
    display: inline-block;
    margin-bottom: 18px;
    transition: opacity .22s ease;
}

.aci-footer__brand-link:hover {
    opacity: 0.78;
}

.aci-footer__logo {
    height: clamp(72px, 9vw, 100px);
    width: auto;
    filter: brightness(0) invert(1) sepia(0.18) saturate(0.6) brightness(0.88);
}

.aci-footer__brand-name {
    font-family: var(--font-en-display);
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    font-weight: 400;
    color: #EDE3D2;
    letter-spacing: 0.01em;
    margin: 0 0 10px;
}

.aci-footer__tagline {
    font-size: 0.9375rem;
    line-height: 1.72;
    color: #7A6E63;
    max-width: 420px;
    margin: 0;
}

.aci-footer__divider {
    height: 1px;
    background: rgba(201, 158, 106, 0.12);
    margin-bottom: clamp(36px, 5vw, 52px);
}

.aci-footer__mid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: clamp(32px, 5vw, 72px);
    margin-bottom: clamp(36px, 5vw, 56px);
    align-items: start;
}

.aci-footer__col-heading {
    font-family: var(--font-en-body);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--aci-gold);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(201, 158, 106, 0.15);
}

.aci-footer__col-heading--spaced {
    margin-top: 26px;
}

.aci-footer__nl-desc {
    font-size: 13.5px;
    line-height: 1.74;
    color: #7A6E63;
    margin-bottom: 20px;
}

.aci-footer__nl-field {
    display: flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(201, 158, 106, 0.22);
    border-radius: 100px;
    padding: 5px 5px 5px 18px;
    transition: border-color .22s ease, box-shadow .22s ease;
}

.aci-footer__nl-field:focus-within {
    border-color: rgba(201, 158, 106, 0.5);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.09);
}

.aci-footer__nl-input {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: none;
    outline: none;
    font-family: var(--font-en-body);
    font-size: 13.5px;
    color: #EDE3D2;
}

.aci-footer__nl-input::placeholder {
    color: #4E4540;
}

.aci-footer__nl-btn {
    flex-shrink: 0;
    padding: 10px 20px;
    border-radius: 100px;
    border: none;
    background: var(--aci-gold);
    color: #fff;
    font-family: var(--font-en-body);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background .22s ease;
}

.aci-footer__nl-btn:hover {
    background: #b8894e;
}

.aci-footer__cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 3vw, 44px);
}

.aci-footer__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.aci-footer__list li {
    margin-bottom: 10px;
    font-size: 14px;
    color: #7A6E63;
}

.aci-footer__list a {
    color: #7A6E63;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0;
    transition: color .22s ease, gap .22s ease;
}

.aci-footer__list a::before {
    content: '';
    width: 0;
    height: 1px;
    background: var(--aci-gold);
    transition: width .22s ease;
    flex-shrink: 0;
}

.aci-footer__list a:hover {
    color: var(--aci-gold);
    gap: 8px;
}

.aci-footer__list a:hover::before {
    width: 10px;
}

.aci-footer__list--contact li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    line-height: 1.62;
}

.aci-footer__list--contact [data-lucide] {
    width: 13px;
    height: 13px;
    color: var(--aci-gold);
    flex-shrink: 0;
    margin-top: 3px;
}

.aci-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}

.aci-footer__social-link {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(201, 158, 106, 0.17);
    color: #7A6E63;
    transition: transform .22s ease, color .22s ease,
    border-color .22s ease, background .22s ease;
}

.aci-footer__social-link:hover {
    color: var(--aci-gold);
    border-color: rgba(201, 158, 106, 0.38);
    background: rgba(201, 158, 106, 0.1);
    transform: translateY(-2px);
}

.aci-footer__social-link svg {
    width: 15px;
    height: 15px;
    display: block;
}

.aci-footer__social-link[aria-label="TikTok"] svg,
.aci-footer__social-link[aria-label="X"] svg {
    width: 14px;
    height: 14px;
}

.aci-footer__bottom {
    position: relative;
    z-index: 1;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.aci-footer__bottom p {
    margin: 0;
    font-size: 12.5px;
    color: #4E4540;
    letter-spacing: 0.01em;
}

.aci-footer__crafted {
    font-style: italic;
}

@media (max-width: 991.98px) {
    .aci-footer__mid {
        grid-template-columns: 1fr;
        gap: clamp(28px, 4vw, 40px);
    }
}

@media (max-width: 767.98px) {
    .aci-footer__cols {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 20px;
    }
}

@media (max-width: 575.98px) {
    .aci-footer--dark {
        padding-top: 52px;
        padding-bottom: 36px;
    }

    .aci-footer__logo {
        height: 68px;
    }

    .aci-footer__brand-name {
        font-size: 1.3rem;
    }

    .aci-footer__nl-field {
        flex-wrap: wrap;
        border-radius: 16px;
        padding: 14px 16px;
        gap: 10px;
    }

    .aci-footer__nl-input {
        width: 100%;
    }

    .aci-footer__nl-btn {
        width: 100%;
        justify-content: center;
        border-radius: 12px;
        text-align: center;
    }

    .aci-footer__cols {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 12px;
    }

    .aci-footer__bottom {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 6px;
    }

    .aci-footer__pattern {
        width: 110px;
        opacity: 0.025;
    }
}

/* ==========================================================================
   V3 DARK RHYTHM — PILLARS (What We Do) + VISIT US
   Missing dark-section overrides synced from design source.
   ========================================================================== */

/* Dark-section eyebrow pill */
.aci-eyebrow--dark,
.aci-pillars .aci-eyebrow,
.aci-visit .aci-eyebrow {
    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(255, 255, 255, 0.15);
    color: rgba(247, 243, 236, 0.82);
    box-shadow: 0 4px 14px -8px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.aci-eyebrow--dark .aci-eyebrow-dot,
.aci-pillars .aci-eyebrow .aci-eyebrow-dot,
.aci-visit .aci-eyebrow .aci-eyebrow-dot {
    background: var(--aci-gold);
    box-shadow: 0 0 0 3px rgba(201, 158, 106, 0.26);
}

/* Dark-section section titles — #22517: "What We Do" title color fix */
.aci-pillars .aci-section-title,
.aci-visit .aci-section-title {
    color: var(--aci-dark-text);
}

.aci-pillars .aci-section-title em,
.aci-visit .aci-section-title em {
    color: var(--aci-gold);
}

/* Dark-section lead paragraphs */
.aci-pillars .aci-lead,
.aci-visit .aci-lead {
    color: var(--aci-dark-muted);
}

.aci-text-dark {
    color: var(--aci-dark) !important;
}

.aci-off-white-text {
    color: var(--aci-dark-text) !important;
}

.aci-sandstone-text{
    color: var(--aci-sandstone) !important;
}

/* Light reusable card grid, used by pages where Grid should not inherit the dark Home stage. */
.aci-light-grid {
    padding: clamp(82px, 8vw, 128px) 0;
    background:
        radial-gradient(760px 420px at 50% 0%, rgba(201, 158, 106, 0.06), transparent 65%),
        #f4f7fb;
}

.aci-light-grid-header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto clamp(56px, 7vw, 86px);
}

.aci-light-grid-header .aci-eyebrow {
    margin-inline: auto;
    margin-bottom: 24px;
}

.aci-light-grid-header .aci-section-title {
    color: var(--aci-text);
}

.aci-light-grid-header .aci-section-title em {
    color: var(--aci-gold);
}

.aci-light-grid-header .aci-lead {
    color: var(--aci-muted);
    margin-inline: auto;
}

.aci-light-grid-card {
    position: relative;
    min-height: 266px;
    padding: 44px 36px 38px;
    border-radius: 32px;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(136, 115, 96, 0.12);
    box-shadow:
        0 18px 54px -34px rgba(70, 58, 44, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.aci-light-grid-num {
    position: absolute;
    top: 28px;
    right: 28px;
    font-size: 14px;
    font-weight: 700;
    color: rgba(201, 158, 106, 0.55);
}

.aci-light-grid-icon {
    width: 64px;
    height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    margin-bottom: 22px;
    color: var(--aci-gold);
    background: rgba(201, 158, 106, 0.1);
    border: 1px solid rgba(201, 158, 106, 0.24);
}

.aci-light-grid-icon [data-lucide] {
    width: 22px;
    height: 22px;
}

.aci-light-grid-card h3 {
    margin: 0 0 16px;
    font-size: clamp(1.08rem, 1.4vw, 1.35rem);
    font-weight: 700;
    color: var(--aci-text);
}

.aci-light-grid-card p {
    margin: 0;
    font-size: 15px;
    line-height: 1.72;
    color: var(--aci-taupe);
}

.aci-visit--contact {
    padding: 100px 0;
    background: #F7F3EC;
}

.aci-visit--contact .aci-stage-wide,
.aci-visit--contact .aci-stage-box {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.aci-visit--contact .aci-visit-inner {
    display: grid;
    grid-template-columns: 1.25fr 1.5fr;
    gap: 48px;
    align-items: center;
}

.aci-visit--contact .aci-visit-info .aci-eyebrow {
    background: #fff;
    color: var(--aci-taupe);
    border-color: rgba(201, 158, 106, 0.22);
}

.aci-visit--contact .aci-section-title {
    color: var(--aci-text);
    font-size: clamp(2rem, 4.2vw, 51.2px);
    line-height: 1.18;
}

.aci-visit--contact .aci-section-title em {
    display: block;
    font-style: italic;
    color: var(--aci-gold);
}

.aci-visit--contact .aci-lead {
    color: var(--aci-taupe);
    max-width: 650px;
}

.aci-visit--contact .cp-map-wrap {
    height: 340px;
}

@media (max-width: 991.98px) {
    .aci-visit--contact .aci-visit-inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }
}

/* ================================================
   Home — Featured Program Card  (.aci-feat-card)
   Fully isolated from programs.css / .aci-prog-card
   ================================================ */

.aci-feat-card {
    display: flex;
    flex-direction: column;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(17, 24, 39, 0.07);
    box-shadow: 0 4px 24px -4px rgba(15, 23, 42, 0.08),
                0 1px 4px -1px rgba(15, 23, 42, 0.04);
    overflow: hidden;
    transition: transform .32s ease, box-shadow .32s ease;
}

.aci-feat-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 48px -12px rgba(15, 23, 42, 0.13),
                0 4px 12px -4px rgba(15, 23, 42, 0.06);
}

/* Image — flush to all card edges, 16:10 ratio */
.aci-feat-card__img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    flex-shrink: 0;
}

.aci-feat-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .50s ease;
}

.aci-feat-card:hover .aci-feat-card__img {
    transform: scale(1.04);
}

/* Body */
.aci-feat-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 24px 26px 26px;
    gap: 10px;
}

.aci-feat-card__cat {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    background: rgba(201, 158, 106, 0.12);
    border: 1px solid rgba(201, 158, 106, 0.24);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--aci-taupe);
    align-self: flex-start;
}

.aci-feat-card__title {
    font-family: var(--font-en-display);
    font-weight: 500;
    font-size: clamp(1.18rem, 1.6vw, 1.45rem);
    line-height: 1.22;
    color: var(--aci-text);
    margin: 0;
}

.aci-feat-card__text {
    font-size: 14px;
    line-height: 1.78;
    color: var(--aci-muted);
    margin: 0;
    flex: 1;
}

.aci-feat-card__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 600;
    color: var(--aci-gold);
    letter-spacing: 0.01em;
    text-decoration: none;
    transition: gap .22s ease, color .22s ease;
    margin-top: 4px;
}

.aci-feat-card__link [data-lucide] {
    width: 14px;
    height: 14px;
    transition: transform .22s ease;
}

.aci-feat-card__link:hover {
    color: var(--aci-taupe);
    gap: 11px;
}

.aci-feat-card__link:hover [data-lucide] {
    transform: translateX(3px);
}

@media (max-width: 575.98px) {
    .aci-feat-card__body {
        padding: 20px 20px 22px;
    }
}
