.theme-academy { --ink:#142747; --paper:#f4f1e8; --surface:#fffdf7; --surface-2:#e8e1d0; --accent:var(--public-accent,#254c7c); --accent-2:var(--brand-accent,#c49b48); --on-accent:#fff; --radius:.2rem; --display:Georgia,"Times New Roman",serif; --max:90rem; }
.theme-academy .academy-ribbon{background:var(--ink);color:white;font-size:.58rem;letter-spacing:.15em;text-transform:uppercase}.theme-academy .academy-ribbon .shell{display:flex;justify-content:space-between;padding-block:.55rem}.theme-academy .academy-main{align-items:center;display:grid;gap:2rem;grid-template-columns:1fr auto 1fr;min-height:6rem}.theme-academy .brand-symbol{border:1px solid var(--accent-2);padding:.25rem}.theme-academy .academy-credo{align-items:center;display:flex;font-family:var(--display);font-style:italic;gap:1.5rem;justify-content:center;padding-block:1.1rem}.theme-academy .academy-credo i{background:var(--accent-2);height:1px;width:3rem}.theme-academy .hero-copy h1{font-weight:400}.theme-academy .tabs-component{background:var(--surface);border-top:.35rem solid var(--accent-2);padding:clamp(2rem,5vw,5rem)}.theme-academy .article-list a:hover{background:var(--surface);padding-inline:1rem}.theme-academy .credentials-grid article{border-bottom:3px solid var(--accent-2)}.theme-academy .native-card{border-radius:0}.theme-academy .footer-editorial{background:#142747}.theme-academy .footer-intro{border-bottom:1px solid rgb(255 255 255/.18);padding-bottom:4rem}.theme-academy .footer-intro h2{font-style:italic;max-width:15ch}
/* Academy announcement: admissions ribbon */
.theme-academy .announcement-bar{background:var(--ink);border-bottom:.22rem solid var(--accent-2);color:#fff}.theme-academy .announcement-inner{justify-content:flex-start;min-height:3.15rem;font-family:var(--display);font-size:.82rem}.theme-academy .announcement-inner::before{border:1px solid var(--accent-2);content:"ADMISSIONS";font-family:var(--body);font-size:.52rem;letter-spacing:.16em;padding:.3rem .5rem}.theme-academy .announcement-inner a{margin-inline-start:auto;color:var(--accent-2);font-family:var(--body);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}

/* Theme-owned responsive shell */
.theme-footer .footer-intro{margin-bottom:clamp(3rem,7vw,7rem)}.theme-footer .footer-intro>p{color:var(--accent-2);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.theme-footer .footer-index{color:var(--accent-2);font-size:.65rem}.theme-atmosphere{pointer-events:none}.header-sector{white-space:nowrap}
@media (max-width: 1100px){.theme-header .desktop-nav{display:none}.theme-header .menu-toggle{display:inline-flex}.theme-header .header-cta{display:none}.theme-header [class$="-main"],.theme-header [class$="-row"],.theme-header .floating-header-card,.theme-header .split-rail-main{grid-template-columns:1fr auto;min-height:4.8rem}.theme-header .header-sector,.theme-header [class^="header-side"],.theme-header .gallery-masthead>p{display:none}.theme-header .centered-header-row .header-side-end{display:flex;grid-column:2;grid-row:1}.theme-header .centered-header-row .header-side-end>span{display:none}.theme-header .header-actions{grid-column:2;grid-row:1}.theme-header .brand-mark{grid-column:1;grid-row:1;justify-self:start}.editorial-header .editorial-masthead{grid-template-columns:1fr auto}.editorial-header .editorial-masthead>span{display:none}.editorial-header .masthead-contact{display:none}.editorial-header .editorial-nav-row{min-height:0}.editorial-header .editorial-nav-row .header-actions,.hospitality-header .hospitality-nav-row .header-actions{position:absolute;inset-inline-end:var(--gutter);top:-3.8rem}.hospitality-header .hospitality-brand-row>span{display:none}.hospitality-header .hospitality-nav-row{min-height:0}.gallery-header .gallery-nav-row{display:none}.gallery-header .gallery-masthead{grid-template-columns:1fr auto}.floating-header{padding-top:.5rem}.floating-header .floating-header-card{border-radius:1rem}.native-card-grid{grid-template-columns:repeat(2,1fr)!important}}
@media (max-width: 720px){.announcement-bar .announcement-inner{display:flex;flex-flow:row wrap;gap:.55rem;justify-content:flex-start;min-height:2.8rem;padding-block:.55rem}.announcement-bar .announcement-inner a{margin-inline-start:auto}.theme-header .icon-button{display:none}.theme-header .header-actions{gap:.25rem}.dealer-strip span:not(:first-child),.utility-strip span:first-child,.academy-ribbon span:last-child{display:none}.technical-index,.production-index,.compact-index,.build-console{grid-template-columns:1fr auto!important}.technical-index span:nth-child(2),.production-index span:nth-child(2),.compact-index span:nth-child(2),.build-console span:nth-child(n+3){display:none}.home-folio span:last-child,.architectural-coordinate span:last-child{display:none}.care-ribbon,.trust-ribbon{grid-template-columns:1fr}.service-promise,.academy-credo,.hospitality-note{gap:.65rem;overflow:hidden;white-space:nowrap}.service-promise span:nth-of-type(2),.academy-credo span:nth-of-type(2),.hospitality-note span:nth-of-type(2){display:none}.creative-ticker,.inventory-marquee{justify-content:flex-start}.theme-footer .footer-intro{display:block!important}.theme-footer .footer-intro h2{margin-top:1rem}.theme-footer .footer-grid{grid-template-columns:1fr 1fr}.theme-footer .footer-lead{grid-column:1/-1}.native-card-grid{grid-template-columns:1fr!important}.native-card{margin-top:0!important}.project-grid{grid-template-columns:1fr}.project-grid a{grid-column:auto!important;margin-top:0!important}}

.locale-switcher{display:flex;align-items:center;gap:.55rem}.locale-switcher a{color:inherit;font:inherit;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;opacity:.62}.locale-switcher a[aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:.25em}


/* RTL locale safeguards */
[dir="rtl"] body { direction: rtl; text-align: start; }
[dir="rtl"] .desktop-nav,
[dir="rtl"] .header-actions,
[dir="rtl"] .locale-switcher,
[dir="rtl"] .button-row,
[dir="rtl"] .footer-grid,
[dir="rtl"] .site-header,
[dir="rtl"] .site-footer { direction: rtl; }
[dir="rtl"] input,
[dir="rtl"] textarea,
[dir="rtl"] select { text-align: start; }
[dir="rtl"] .mobile-drawer { transform: translateX(-105%); }
[dir="rtl"] .mobile-drawer.is-open { transform: translateX(0); }
[dir="rtl"] .menu nav { inset-inline-end: 0; right: auto; }
[dir="rtl"] .skip,
[dir="rtl"] .skip-link { inset-inline-start: 1rem; }
[dir="rtl"] .editorial-nav-row .header-actions,
[dir="rtl"] .hospitality-nav-row .header-actions { inset-inline-end: var(--gutter); right: auto; }

/* Core team media guard: keeps portrait uploads from stretching card grids. */
.team-grid .team-grid-image{display:block;width:100%;height:clamp(18rem,28vw,28rem);object-fit:cover}
@media(max-width:800px){.team-grid .team-grid-image{height:min(110vw,30rem)}}
/* Let catalog cards follow their own content height. */
.native-card-grid{align-items:start}
.native-card img{max-height:24rem;object-fit:cover}
@media(max-width:800px){.native-card img{max-height:20rem}}

/* Keep catalog search and card titles usable in narrow theme columns. */
.catalog-toolbar--search-only{display:flex;justify-content:flex-end;margin-bottom:2rem}
.catalog-toolbar--search-only label{display:block;width:min(100%,20rem);margin-inline-start:auto}
[data-filter-grid] .native-card{min-width:0}
[data-filter-grid] .native-card h2{font-size:clamp(1.65rem,2.25vw,2.75rem);line-height:1.12;overflow-wrap:anywhere}

.theme-footer-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding-block: 1.5rem; }
.theme-footer-links a { overflow-wrap: anywhere; }

/* Event cards follow each theme's own type, colours and spacing. */
.event-section .event-section-heading{align-items:end;gap:2rem}
.event-section .event-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem)}
.event-section .event-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;background:var(--surface,#fff);border:1px solid var(--line,#0002);border-radius:var(--radius,.35rem);box-shadow:0 16px 40px #0000000d;transition:transform .2s ease,box-shadow .2s ease}
.event-section .event-card:hover{transform:translateY(-3px);box-shadow:0 24px 50px #0000001a}
.event-section .event-card-image{aspect-ratio:16/10;overflow:hidden;background:var(--surface-2,var(--paper,#eee))}
.event-section .event-card-image img{width:100%;height:100%;object-fit:cover}
.event-section .event-card-content{display:flex;flex:1;flex-direction:column;gap:1rem;padding:clamp(1.25rem,2.5vw,2rem)}
.event-section .event-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.event-section .event-card-date,.event-section .event-card-category{display:inline-flex;align-items:center;padding:.35rem .65rem;border-radius:999px;font-size:.72rem;line-height:1.25}
.event-section .event-card-date{background:var(--ink,#111);color:#fff}
.event-section .event-card-category{background:var(--surface-2,var(--paper,#eee));color:var(--ink,#111)}
.event-section .event-card h3{font-size:clamp(1.5rem,2vw,2rem);line-height:1.12;overflow-wrap:anywhere}
.event-section .event-card-location{font-size:.85rem}
.event-section .event-card-location span{color:var(--accent);margin-inline-end:.4rem}
.event-section .event-card-link{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--line,#0002);color:var(--accent);font-weight:700}
.event-section .event-card-link:hover{text-decoration:underline}
@media(max-width:900px){.event-section .event-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.event-section .event-list{grid-template-columns:1fr}.event-section .event-section-heading{align-items:start}}

/* Image-backed immersive heroes cover the section without changing other variants. */
.theme-academy .hero-component.hero-immersive.has-image {
    background: #09111e;
    color: #fff;
    isolation: isolate;
    min-height: clamp(32rem, 75svh, 54rem);
    overflow: hidden;
    padding-block: 0;
    position: relative;
}
.theme-academy .hero-component.hero-immersive.has-image .hero-component-grid {
    align-items: center;
    display: flex;
    justify-content: flex-start;
    min-height: inherit;
    padding-block: clamp(4rem, 8vw, 7rem);
    position: static;
    text-align: start;
    z-index: auto;
}
.theme-academy .hero-component.hero-immersive.has-image .hero-copy {
    margin-inline: 0;
    max-width: 58rem;
    min-width: 0;
    position: relative;
    width: 100%;
    z-index: 1;
}
.theme-academy .hero-component.hero-immersive.has-image figure {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    clip-path: none;
    display: block;
    height: 100%;
    inset: 0;
    margin: 0;
    max-height: none;
    min-height: 0;
    order: 0;
    padding: 0;
    position: absolute;
    transform: none;
    width: 100%;
    z-index: -2;
}
.theme-academy .hero-component.hero-immersive.has-image figure img {
    aspect-ratio: auto;
    display: block;
    height: 100%;
    max-height: none;
    object-fit: cover;
    width: 100%;
}
.theme-academy .hero-component.hero-immersive.has-image figcaption,
.theme-academy .hero-component.hero-immersive.has-image figure::before,
.theme-academy .hero-component.hero-immersive.has-image figure::after { display: none; }
.theme-academy .hero-component.hero-immersive.has-image::after {
    background: linear-gradient(90deg, rgb(9 17 30 / .86), rgb(9 17 30 / .76) 60%, rgb(9 17 30 / .68));
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}
.theme-academy .hero-component.hero-immersive.has-image .hero-copy :is(h1, .eyebrow, .hero-summary, .text-link, .text-link span) {
    color: #fff;
    -webkit-text-fill-color: currentColor;
}
.theme-academy .hero-component.hero-immersive.has-image .hero-copy h1 { background: none; background-clip: border-box; }
.theme-academy .hero-component.hero-immersive.has-image .button-row { justify-content: flex-start; }
.theme-academy .hero-component.hero-immersive.has-image .button { background: #fff; border-color: #fff; color: #14203a; }
.theme-academy .hero-component.hero-immersive.has-image .button:hover { background: #edf2fa; }
.theme-academy .hero-component.hero-immersive.has-image :is(.button, .text-link):focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
/* eyivo:faq presentation */
.theme-academy .faq-section{background:color-mix(in srgb,var(--accent) 7%,var(--paper))}
.theme-academy .faq-layout{display:grid;gap:clamp(1.5rem,4vw,3.5rem);grid-template-columns:minmax(14rem,.8fr) minmax(0,1.2fr)}
.theme-academy .faq-layout .eyebrow{letter-spacing:.18em}
.theme-academy .faq-layout h2{font-family:var(--display);font-weight:500}
.theme-academy .faq-list{border:0;display:grid;gap:.85rem}
.theme-academy .faq-list details{background:var(--surface);border:0;border-inline-start:6px solid var(--accent-2);border-radius:0 1.1rem 1.1rem 0;padding:0}
.theme-academy .faq-list summary{cursor:pointer;display:flex;font-family:var(--display);font-size:1.35rem;font-weight:500;gap:1rem;list-style:none;padding:1.1rem 1.3rem}
.theme-academy .faq-list summary::-webkit-details-marker{display:none}
.theme-academy .faq-list summary span{color:var(--accent);font-size:1.1rem;margin-inline-start:auto}
.theme-academy .faq-list details[open]{background:color-mix(in srgb,var(--accent-2) 16%,var(--surface))}
.theme-academy .faq-list details[open] summary span{transform:rotate(45deg)}
.theme-academy .faq-list details p{margin:0;padding:0 1.3rem 1.15rem}
@media(max-width:720px){.theme-academy .faq-layout{grid-template-columns:1fr}}

:root .theme-academy h1,
.theme-academy .hero-component .hero-copy h1,
body .theme-academy .hero-component .hero-copy h1 {
    font-size: clamp(2.35rem, 3vw, 3.8rem);
    line-height: 1.08;
    overflow-wrap: anywhere;
}
.theme-academy .hero-component .hero-copy h1,
body .theme-academy .hero-component .hero-copy h1 {
    font-size: clamp(2.7rem, 4.5vw, 5.1rem);
}
:root .theme-academy h2,
:root .theme-academy [data-filter-grid] .native-card h2 {
    font-size: clamp(1.55rem, 1.15rem + .9vw, 2.65rem);
    line-height: 1.15;
    overflow-wrap: anywhere;
}
:root .theme-academy h3,
.theme-academy .event-section .event-card h3 {
    font-size: clamp(1.08rem, 1rem + .25vw, 1.4rem);
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.theme-academy .page-hero.inner-hero { min-height: 0; }
.theme-academy .inner-hero .hero-content { min-height: 0; padding-block: clamp(2.25rem, 5vw, 3.75rem); }
:root .theme-academy .desktop-nav .eyivo-navigation-item.eyivo-navigation-parent {
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--muted);
}
:root .theme-academy .desktop-nav .eyivo-navigation-parent:is(:hover, :focus-within, :has(> details[open]), :has(> a[aria-current])) {
    background: transparent;
    border-color: transparent;
    color: var(--ink);
}
:root .theme-academy .desktop-nav .eyivo-navigation-parent > a::after { content: ""; bottom: .7rem; background: var(--accent-2); }
:root .theme-academy .desktop-nav .eyivo-navigation-parent:is(:hover, :focus-within, :has(> details[open]), :has(> a[aria-current])) > a::after { transform: scaleX(1); transform-origin: inline-start; }
:root .theme-academy .desktop-nav .eyivo-navigation-dropdown > summary { border-radius: 0; min-height: 2.4rem; }
:root .theme-academy .desktop-nav .eyivo-navigation-dropdown > summary:hover { background: transparent; }
:root .theme-academy .desktop-nav .eyivo-navigation-item .eyivo-navigation-submenu {
    top: calc(100% + .15rem);
    min-width: 13rem;
    padding: 0;
    border: 1px solid var(--ink);
    border-radius: 0;
    background: var(--surface);
    box-shadow: none;
}
:root .theme-academy .desktop-nav .eyivo-navigation-item .eyivo-navigation-submenu > a {
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    font-family: var(--display);
    font-weight: 400;
}
:root .theme-academy .desktop-nav .eyivo-navigation-item .eyivo-navigation-submenu > a:last-child { border-bottom: 0; }
:root .theme-academy .desktop-nav .eyivo-navigation-item .eyivo-navigation-submenu > a:hover,
:root .theme-academy .desktop-nav .eyivo-navigation-item .eyivo-navigation-submenu > a[aria-current="page"] {
    background: var(--ink);
    color: var(--paper);
}
