/*
Theme Name: ANPCDEFP Base Theme
Theme URI: https://www.anpcdefp.ro
Author: ANPCDEFP
Author URI: https://www.anpcdefp.ro
Description: Tema oficială pentru ANPCDEFP - Agenția Națională pentru Programe Comunitare în Domeniul Educației și Formării Profesionale. Include sistem complet de configurare prin Customizer și suport pentru teme copil.
Version: 2.1.0
Requires at least: 5.9
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: anpcdefp
Tags: custom-menu, custom-logo, featured-images, footer-widgets, translation-ready, theme-options

ANPCDEFP Base Theme v2.0.0 - Tema părinte cu sistem de configurare pentru site-urile ANPCDEFP.
Caracteristici noi în v2.0:
- Sistem centralizat de configurare (inc/theme-config.php)
- Panouri Customizer extinse pentru toate setările
- Suport complet pentru teme copil prin filtrul anpcdefp_config_defaults
- CSS variables generate dinamic din setări
*/

/* ==================== CSS VARIABLES ==================== */
:root {
    /* Brand Colors - ANPCDEFP Logo Color */
    --brand-purple: #440098;
    --brand-purple-dark: #350078;
    --brand-purple-light: #5a1cb0;
    --brand-purple-100: #ede4f7;
    --brand-purple-50: #f6f2fa;
    
    /* EU Colors */
    --eu-blue: #003399;
    --eu-yellow: #FFCC00;
    --eu-yellow-light: #FFD633;
    
    /* Accent */
    --accent-teal: #00A99D;
    --accent-orange: #F39200;

    /* Pastila de document — SINGURA sursă pentru iconițele de fișiere,
       în toate modulele (transparență, achiziții, carieră). Tratament
       unic, pe brand: tentă pală + cerneală brand, același limbaj ca
       pastilele de meniu activ și linkurile-pastilă. Formatul rămâne
       vizibil prin glifă (fa-file-pdf / -excel / -word) și eticheta ext. */
    --doc-tile-bg: var(--brand-primary-100, #ede4f7);
    --doc-tile-ink: var(--brand-primary, #440098);
    
    /* Text Colors */
    --text-primary: #1A1A2E;
    --text-secondary: #4A4A68;
    --text-muted: #6B7280;
    
    /* Backgrounds */
    --white: #FFFFFF;
    --gray-50: #FAFAFA;
    --gray-100: #F4F4F5;
    --gray-200: #E4E4E7;
    --gray-300: #D4D4D8;
    --gray-400: #A1A1AA;
    --gray-900: #18181B;
    
    /* Borders */
    --border-light: #E5E7EB;
    
    /* Shadows */
    --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
    --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
    
    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-2xl: 20px;
    --radius-full: 9999px;
    
    /* Typography */
    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-display: 'Plus Jakarta Sans', sans-serif;
    
    /* Layout */
    --container-max: 1200px;
    --header-height: 62px;
    --total-header: var(--header-height);
    
    /* Program Colors */
    --color-erasmus: #003399;
    --color-esc: #89B33A;
    --color-see: #F39200;
    --color-etwinning: #00A99D;
    
    /* Accessibility - Font Size Scale */
    --font-scale: 1;
}

/* ==================== ACCESSIBILITY MODES ==================== */

/* Zoom-based text scaling (like browser Ctrl+/−) */
body.a11y-zoom-110 { zoom: 1.1; }
body.a11y-zoom-120 { zoom: 1.2; }
body.a11y-zoom-130 { zoom: 1.3; }
body.a11y-zoom-90 { zoom: 0.9; }

/* Current zoom level indicator */
body[data-zoom]::after {
    content: attr(data-zoom);
    position: fixed;
    bottom: 1rem;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.75);
    color: white;
    padding: 0.375rem 0.75rem;
    border-radius: var(--radius-full);
    font-size: 0.8125rem;
    font-weight: 500;
    z-index: 10000;
    pointer-events: none;
    animation: a11yFadeOut 1.5s ease forwards;
}

@keyframes a11yFadeOut {
    0%, 60% { opacity: 1; }
    100% { opacity: 0; visibility: hidden; }
}

/* High Contrast Mode — WCAG AAA targeting */
body.high-contrast {
    --text-primary: #000000;
    --text-secondary: #000000;
    --text-muted: #1a1a1a;
    --white: #FFFFFF;
    --gray-50: #FFFFFF;
    --gray-100: #e0e0e0;
    --gray-200: #000000;
    --border-light: #000000;
}

body.high-contrast * {
    border-color: #333 !important;
}

body.high-contrast img {
    border: 1px solid #333;
}

body.high-contrast .header,
body.high-contrast .header.is-scrolled {
    background: #000 !important;
    border-bottom: 3px solid var(--eu-yellow) !important;
}

body.high-contrast .header__link,
body.high-contrast .header__btn,
body.high-contrast .header__logo-text {
    color: #fff !important;
}

body.high-contrast .top-bar {
    background: #111 !important;
    border-bottom: 2px solid var(--eu-yellow) !important;
}

body.high-contrast .footer {
    background: #000 !important;
    border-top: 3px solid var(--eu-yellow) !important;
}

body.high-contrast a {
    text-decoration: underline !important;
}

body.high-contrast a:focus,
body.high-contrast button:focus {
    outline: 3px solid var(--eu-yellow) !important;
    outline-offset: 2px;
}

body.high-contrast .card,
body.high-contrast .news-card,
body.high-contrast .deadline-card {
    border: 2px solid #000 !important;
}

body.high-contrast .badge,
body.high-contrast .tag {
    border: 1px solid #000 !important;
}

/* Dyslexia-friendly mode */
body.dyslexia-friendly {
    font-family: 'OpenDyslexic', 'Comic Sans MS', 'Arial', sans-serif !important;
    letter-spacing: 0.05em;
    word-spacing: 0.15em;
    line-height: 1.8 !important;
}

body.dyslexia-friendly * {
    font-family: inherit !important;
}

/* Large cursor mode */
body.large-cursor,
body.large-cursor * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M5 2 L5 28 L12 21 L20 28 L23 23 L15 16 L24 16 Z' fill='black' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") 5 2, auto !important;
}

body.large-cursor a,
body.large-cursor button,
body.large-cursor [role="button"],
body.large-cursor input,
body.large-cursor select,
body.large-cursor textarea {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 4 C8 4 8 28 8 28 C8 28 24 28 24 28 C24 28 24 4 24 4 Z' fill='none' stroke='black' stroke-width='2'/%3E%3Cline x1='16' y1='8' x2='16' y2='24' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 16 16, pointer !important;
}

/* Link highlighting mode */
body.highlight-links a {
    background-color: rgba(255, 255, 0, 0.3) !important;
    outline: 1px dashed currentColor;
    outline-offset: 2px;
}

body.highlight-links a:hover {
    background-color: rgba(255, 255, 0, 0.6) !important;
}

/* ==================== BASE RESET ==================== */
*, *::before, *::after { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
}

html { 
    scroll-behavior: smooth;
    font-size: calc(16px * var(--font-scale));
}

/* Gardă: decorurile poziționate absolut (flyout-uri, filigrane) nu au
   voie să lărgească pagina — clip taie fără să creeze container de
   scroll (spre deosebire de hidden). Zonele derulabile orizontal
   (chipsuri, benzi) au propriile containere cu overflow-x: auto. */
html { overflow-x: clip; }

body { 
    font-family: var(--font-primary); 
    color: var(--text-primary); 
    line-height: 1.6; 
    background: var(--white); 
    -webkit-font-smoothing: antialiased; 
}

body.no-scroll { 
    overflow: hidden; 
}

a { 
    text-decoration: none; 
    color: inherit; 
}

button { 
    border: none; 
    background: none; 
    cursor: pointer; 
    font: inherit; 
}

img { 
    max-width: 100%; 
    height: auto; 
    display: block; 
}

ul, ol { 
    list-style: none; 
}

/* ==================== CONTAINER ==================== */
.container { 
    width: 100%; 
    max-width: var(--container-max); 
    margin: 0 auto; 
    padding: 0 1rem; 
}

@media (min-width: 640px) { 
    .container { padding: 0 1.5rem; } 
}

@media (min-width: 1024px) { 
    .container { padding: 0 2rem; } 
}

/* ==================== ACCESSIBILITY PANEL ==================== */
/* Accessibility Dropdown (in header) */
.header__a11y {
    position: relative;
}

.header__a11y-dropdown {
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    width: 260px;
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--gray-200);
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all 0.2s ease;
    z-index: 1000;
}

.header__a11y-dropdown.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.header__a11y-title {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.75rem;
}

.header__a11y-group {
    margin-bottom: 0.75rem;
}

.header__a11y-group:last-child {
    margin-bottom: 0;
}

.header__a11y-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--text-primary);
    margin-bottom: 0.375rem;
}

.header__a11y-buttons {
    display: flex;
    gap: 0.25rem;
}

.header__a11y-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    min-width: 36px;
    padding: 0 0.5rem;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

.header__a11y-btn:hover {
    background: var(--brand-purple);
    color: white;
    border-color: var(--brand-purple);
}

.header__a11y-btn.active {
    background: var(--brand-purple);
    color: white;
    border-color: var(--brand-purple);
}

.header__a11y-btn--wide {
    flex: 1;
    gap: 0.375rem;
    font-weight: 500;
    font-size: 0.8125rem;
}

.header__a11y-btn sup {
    font-size: 0.625rem;
}

.header__a11y-buttons--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.25rem;
}

.header__a11y-buttons--grid .header__a11y-btn--wide {
    font-size: 0.75rem;
    padding: 0.375rem 0.5rem;
    gap: 0.25rem;
}

/* ==================== SINGLE LINE HEADER ==================== */
.header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    height: 62px;
    transition: background 0.2s ease, box-shadow 0.2s ease;
}

.header.is-scrolled {
    position: fixed;
    top: 0;
    background: white;
    box-shadow: 0 2px 20px rgba(0,0,0,0.08);
    /* apare glisând de sus, nu prin pop — pragul e adânc (după hero) */
    animation: headerSlideIn 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes headerSlideIn {
    from { transform: translateY(-100%); }
    to   { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .header.is-scrolled { animation: none; }
}

/* WordPress admin bar offset for logged-in users */
body.logged-in.admin-bar .header {
    top: 32px;
}

body.logged-in.admin-bar .header.is-scrolled {
    top: 32px;
}

@media (max-width: 782px) {
    body.logged-in.admin-bar .header,
    body.logged-in.admin-bar .header.is-scrolled {
        top: 46px;
    }
}

@media (max-width: 1023px) {
    .header {
        padding: 0 1rem;
    }
}

/* Header Left - Logos */
.header__left {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

/* EU logo positioned to the left of the site logo - reverse the order */
.header__left--eu-first {
    flex-direction: row;
}

.header__logo-link {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.header__logo {
    height: var(--logo-height, 32px);
    width: auto;
    transition: filter 0.2s ease;
    filter: brightness(0) invert(1);
}

.header.is-scrolled .header__logo {
    height: var(--logo-height-scrolled, 28px);
    filter: none;
}

.header__divider {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,0.3);
    flex-shrink: 0;
}

.header.is-scrolled .header__divider {
    background: var(--gray-300);
}

.header__eu-logo {
    height: var(--eu-logo-height, 24px);
    width: auto;
}

/* White EU logo - visible on transparent background */
.header__eu-logo--white {
    display: block;
}

.header__eu-logo--blue {
    display: none;
}

/* Blue EU logo - visible on white background (scrolled) */
.header.is-scrolled .header__eu-logo--white {
    display: none;
}

.header.is-scrolled .header__eu-logo--blue {
    display: block;
}

@media (max-width: 1023px) {
    .header__divider,
    .header__eu-logo {
        display: none !important;
    }
}

/* Header Navigation - Right aligned */
.header__nav {
    display: none;
    align-items: center;
    gap: 0.125rem;
    margin-left: auto;
}

@media (min-width: 1024px) {
    .header__nav {
        display: flex;
    }
}

/* Header Right - Controls */
.header__right {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: auto;
    padding-left: 0.5rem;
    position: relative;
}

/* Right divider - same height as left divider */
.header__right::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,0.3);
}

.header.is-scrolled .header__right::before {
    background: var(--gray-300);
}

@media (min-width: 1024px) {
    .header__right {
        margin-left: 1rem;
        padding-left: 1rem;
    }
}

.header__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: white;
    text-decoration: none;
    font-size: 0.95rem;
    border-radius: 8px;
    transition: all 0.2s;
    background: none;
    border: none;
    cursor: pointer;
}

.header__btn:hover {
    background: rgba(255,255,255,0.12);
}

.header.is-scrolled .header__btn {
    color: #444;
}

.header.is-scrolled .header__btn:hover {
    background: rgba(68, 0, 152, 0.08);
    color: var(--brand-purple);
}

/* Header Mobile Toggle */
.header__mobile-toggle {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-lg);
    background: none;
    border: none;
    cursor: pointer;
    margin-left: 0.25rem;
    transition: background 0.2s ease;
}

.header__mobile-toggle span {
    width: 18px;
    height: 2px;
    background: white;
    border-radius: var(--radius-full);
    transition: background 0.2s ease;
}

.header.is-scrolled .header__mobile-toggle {
    background: none;
}

.header.is-scrolled .header__mobile-toggle span {
    background: var(--brand-purple);
}

@media (min-width: 1024px) {
    .header__mobile-toggle {
        display: none;
    }
}

/* ==================== NAVIGATION (inside header) ==================== */
.nav__item { 
    position: relative;
    list-style: none;
}

.nav__link { 
    display: flex; 
    align-items: center; 
    gap: 0.35rem; 
    padding: 0.5rem 0.875rem; 
    font-size: 0.875rem; 
    font-weight: 500; 
    color: white; 
    border-radius: 6px; 
    transition: color 0.2s ease, background 0.2s ease; 
    text-decoration: none;
    white-space: nowrap;
}

.nav__link:hover { 
    background: rgba(255,255,255,0.12); 
}

.header.is-scrolled .nav__link {
    color: #444;
}

.header.is-scrolled .nav__link:hover { 
    background: rgba(68, 0, 152, 0.08); 
    color: var(--brand-purple); 
}

.nav__link i { 
    font-size: 0.55rem; 
    opacity: 0.5; 
}

/* Active menu item - transparent header */
.nav__link--active,
.current-menu-item > .nav__link,
.current_page_item > .nav__link,
.current-menu-ancestor > .nav__link { 
    color: var(--eu-yellow) !important;
    font-weight: 600;
}

.nav__link--active:hover,
.current-menu-item > .nav__link:hover,
.current_page_item > .nav__link:hover { 
    background: rgba(255,204,0,0.15); 
    color: var(--eu-yellow) !important;
}

/* Active menu item - scrolled white header */
.header.is-scrolled .current-menu-item > .nav__link,
.header.is-scrolled .current_page_item > .nav__link,
.header.is-scrolled .current-menu-ancestor > .nav__link,
.header.is-scrolled .nav__link--active {
    color: var(--brand-purple) !important;
    background: rgba(68, 0, 152, 0.08);
}

.header.is-scrolled .current-menu-item > .nav__link:hover,
.header.is-scrolled .current_page_item > .nav__link:hover {
    background: rgba(68, 0, 152, 0.12);
}

/* Dropdowns */
.dropdown,
.nav__dropdown { 
    position: absolute; 
    top: calc(100% + 4px); 
    left: 0; 
    min-width: 240px; 
    background: var(--white); 
    border-radius: var(--radius-lg); 
    box-shadow: 0 10px 40px -10px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.05); 
    opacity: 0; 
    visibility: hidden; 
    transform: translateY(-4px); 
    transition: all 0.2s ease; 
    z-index: 100; 
    padding: 0.5rem;
    list-style: none;
}

.nav__item:hover .dropdown,
.nav__item:hover > .nav__dropdown { 
    opacity: 1; 
    visibility: visible; 
    transform: translateY(0); 
}

/* Accesibilitate tastatură: dropdown-ul rămâne deschis cât timp un link
   din el are focus (regulă separată — :focus-within nu se grupează cu
   selectori pe care browserele vechi i-ar invalida în bloc) */
.nav__item:focus-within > .nav__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* --- Submeniu de nivel 2: flyout lateral --- */
.nav__dropdown li { position: relative; }

.nav__dropdown--sub {
    /* lipit de părinte (left:100%, fără gol) ca hoverul să nu se rupă
       la traversare; -0.5rem aliniază primul item cu părintele
       (compensează padding-ul dropdown-ului) */
    top: -0.5rem;
    left: 100%;
    transform: translateX(-4px);
}

/* Aproape de marginea dreaptă a ecranului zboară spre stânga
   (clasa e pusă de main.js după măsurătoare) */
.nav__dropdown--sub.nav__dropdown--left {
    left: auto;
    right: 100%;
    transform: translateX(4px);
}

/* Chevron dreapta pentru părinții din dropdown */
.nav__dropdown .nav__item--has-dropdown > a {
    display: flex;
    align-items: center;
    gap: 8px;
}
.nav__dropdown .nav__arrow--sub {
    margin-left: auto;
    /* .nav__dropdown în selector ca să bată .nav__link i (0.55rem) */
    font-size: 0.75rem;
    /* gray-400 la 10px era decor, nu semnal — afordanța de submeniu
       trebuie să treacă pragul de contrast al textului secundar */
    color: var(--text-secondary, #4A4A68);
    transition: transform 0.15s ease, color 0.15s ease;
}
.nav__dropdown .nav__item--has-dropdown:hover > a > .nav__arrow--sub {
    color: var(--brand-purple);
    transform: translateX(2px);
}

.dropdown__item,
.nav__dropdown li a { 
    display: block; 
    padding: 0.625rem 1rem; 
    border-radius: var(--radius-md); 
    color: var(--text-primary); 
    font-size: 0.9375rem; 
    font-weight: 500;
    transition: all 0.15s; 
}

/* Hover = semnal trecător: gri neutru, diferit de pastila mov a paginii
   curente — altfel itemul curent și cel de sub cursor arată identic și,
   când sunt vecini, se citesc ca un singur bloc lipit */
.dropdown__item:hover,
.nav__dropdown li a:hover {
    background: var(--gray-100);
    color: var(--brand-purple);
}

/* Pagina curentă = semnal permanent: mov pal + bold */
.nav__dropdown .current-menu-item > a,
.nav__dropdown .current_page_item > a,
.nav__dropdown .current-menu-ancestor > a {
    background: var(--brand-purple-50);
    color: var(--brand-purple) !important;
    font-weight: 600;
}

/* Itemul curent răspunde totuși la hover — un mov puțin mai adânc */
.nav__dropdown .current-menu-item > a:hover,
.nav__dropdown .current_page_item > a:hover,
.nav__dropdown .current-menu-ancestor > a:hover {
    background: var(--brand-purple-100);
    color: var(--brand-purple) !important;
}

.nav__dropdown li {
    list-style: none;
}

/* Aer între itemi — la pastile de ~44px înălțime, sub 10px golul devine
   imperceptibil când două pastile pline (curentă + hover) sunt vecine */
.nav__dropdown li + li,
.dropdown__item + .dropdown__item {
    margin-top: 10px;
}

/* Hide icon in dropdown */
.dropdown__icon {
    display: none;
}

.dropdown__text strong { 
    font-weight: 500;
    color: inherit;
}

/* Mega Menu */
.mega-menu { 
    position: absolute; 
    top: calc(100% + 8px); 
    left: 50%; 
    transform: translateX(-50%) translateY(-8px); 
    width: 480px; 
    background: var(--white); 
    border-radius: var(--radius-xl); 
    box-shadow: var(--shadow-xl); 
    border: 1px solid var(--gray-200); 
    opacity: 0; 
    visibility: hidden; 
    transition: all 0.2s ease; 
    z-index: 100; 
    padding: 1.25rem; 
}

.nav__item:hover .mega-menu { 
    opacity: 1; 
    visibility: visible; 
    transform: translateX(-50%) translateY(0); 
}

.mega-menu__grid { 
    display: grid; 
    grid-template-columns: repeat(2, 1fr); 
    gap: 0.5rem; 
}

.mega-menu__item { 
    display: flex; 
    align-items: center; 
    gap: 0.75rem; 
    padding: 0.875rem; 
    border-radius: var(--radius-lg); 
    transition: background 0.15s; 
}

.mega-menu__item:hover { 
    background: var(--gray-100); 
}

.mega-menu__icon { 
    width: 40px; 
    height: 40px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    border-radius: var(--radius-lg); 
    font-size: 1rem; 
}

.mega-menu__icon--erasmus { 
    background: #e8f0fe; 
    color: #003399; 
}

.mega-menu__icon--esc { 
    background: #ecf5d8; 
    color: #89B33A; 
}

.mega-menu__icon--see { 
    background: #fef3c7; 
    color: #F39200; 
}

.mega-menu__icon--etwinning { 
    background: #d1fae5; 
    color: #00A99D; 
}

.mega-menu__content h4 { 
    font-size: 0.875rem; 
    font-weight: 700; 
    color: var(--text-primary); 
}

.mega-menu__content p { 
    font-size: 0.75rem; 
    color: var(--text-muted); 
}

.mega-menu__divider { 
    height: 1px; 
    background: var(--gray-200); 
    margin: 0.75rem 0; 
}

.mega-menu__footer { 
    display: flex; 
    gap: 1rem; 
}

.mega-menu__footer-link { 
    font-size: 0.8125rem; 
    font-weight: 600; 
    color: var(--brand-purple); 
    display: flex; 
    align-items: center; 
    gap: 0.375rem; 
}

.mega-menu__footer-link:hover { 
    text-decoration: underline; 
}

/* ==================== MOBILE DRAWER ==================== */
.drawer { 
    position: fixed; 
    inset: 0; 
    z-index: 2000; 
    visibility: hidden; 
    pointer-events: none; 
}

.drawer.is-open { 
    visibility: visible; 
    pointer-events: auto; 
}

.drawer__overlay { 
    position: absolute; 
    inset: 0; 
    background: rgba(0,0,0,0.5); 
    opacity: 0; 
    transition: opacity 0.3s; 
}

.drawer.is-open .drawer__overlay { 
    opacity: 1; 
}

.drawer__panel { 
    position: absolute; 
    top: 0; 
    right: 0; 
    width: 300px; 
    max-width: 85vw; 
    height: 100%; 
    background: var(--white); 
    transform: translateX(100%); 
    transition: transform 0.3s ease; 
    display: flex; 
    flex-direction: column; 
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
}

.drawer.is-open .drawer__panel { 
    transform: translateX(0); 
}

.drawer__header { 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    padding: 1rem 1.25rem; 
    border-bottom: 1px solid var(--gray-200); 
    background: var(--white);
}

.drawer__logo { 
    height: var(--logo-height, 36px); 
    width: auto; 
}

.drawer__close { 
    width: 40px; 
    height: 40px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    background: var(--gray-100); 
    border-radius: var(--radius-lg); 
    color: var(--text-primary); 
    font-size: 1.25rem; 
    transition: background 0.2s; 
}

.drawer__close:hover { 
    background: var(--gray-200); 
}

.drawer__nav { 
    flex: 1; 
    overflow-y: auto; 
    padding: 0.5rem 0; 
    background: var(--white);
}

/* Drawer Item Container */
.drawer__item {
    border-bottom: 1px solid var(--gray-100);
    list-style: none;
}

.drawer__item:last-child {
    border-bottom: none;
}

/* Parent with toggle */
.drawer__parent {
    display: flex;
    align-items: center;
}

.drawer__parent .drawer__link {
    flex: 1;
}

/* Toggle button for expand/collapse */
.drawer__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    color: var(--gray-400);
    background: none;
    border: none;
    cursor: pointer;
    transition: all 0.2s;
}

.drawer__toggle:hover {
    color: var(--brand-purple);
    background: var(--gray-50);
}

.drawer__toggle i {
    font-size: 0.75rem;
    transition: transform 0.3s ease;
}

.drawer__item--expanded > .drawer__parent .drawer__toggle i {
    transform: rotate(180deg);
}

.drawer__item--expanded > .drawer__parent .drawer__toggle {
    color: var(--brand-purple);
}

/* Main drawer link */
.drawer__link { 
    display: block;
    padding: 0.875rem 1.25rem; 
    color: var(--text-primary); 
    font-size: 1rem; 
    font-weight: 500; 
    transition: all 0.2s; 
}

.drawer__link:hover { 
    background: var(--gray-50); 
    color: var(--brand-purple);
}

/* Active state */
.drawer__link--active,
.drawer__nav .current-menu-item > .drawer__link,
.drawer__nav .current_page_item > .drawer__link { 
    color: var(--brand-purple); 
    background: var(--brand-purple-50);
}

.drawer__link--ancestor {
    color: var(--brand-purple);
}

.drawer__link--active:hover,
.drawer__nav .current-menu-item > .drawer__link:hover,
.drawer__nav .current_page_item > .drawer__link:hover { 
    background: var(--brand-purple-100); 
}

/* Submenu - hidden by default */
.drawer__submenu {
    display: none;
    background: var(--gray-50);
    padding: 0.5rem 0;
}

.drawer__item--expanded > .drawer__submenu {
    display: block;
}

/* --- Nivelul 3: acordeon imbricat în submeniu --- */
.drawer__subitem .drawer__parent {
    display: flex;
    align-items: center;
}
.drawer__subitem .drawer__parent .drawer__sublink {
    flex: 1;
}
.drawer__subitem .drawer__toggle {
    width: 44px;
    height: 44px;
}
.drawer__submenu--nested {
    background: var(--gray-100);
    padding: 0.25rem 0;
}
.drawer__submenu--nested .drawer__sublink {
    padding-left: 2.75rem;
    font-size: 0.9rem;
}

/* Submenu links */
.drawer__sublink {
    display: block;
    padding: 0.625rem 1.25rem 0.625rem 2rem;
    color: var(--text-secondary);
    font-size: 0.9375rem;
    font-weight: 400;
    transition: all 0.2s;
}

.drawer__sublink:hover {
    background: var(--gray-100);
    color: var(--brand-purple);
}

.drawer__sublink.drawer__link--active {
    color: var(--brand-purple);
    background: var(--brand-purple-50);
}

.drawer__divider { 
    height: 1px; 
    background: var(--gray-200); 
    margin: 0.75rem 1.25rem; 
}

.drawer__section-title { 
    font-size: 0.6875rem; 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.08em; 
    color: var(--text-muted); 
    padding: 0.5rem 1.25rem 0.25rem; 
}

/* ==================== BUTTONS ==================== */
.btn { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    gap: 0.625rem; 
    min-height: 54px;
    padding: 0.875rem 2rem; 
    font-size: 1rem; 
    font-weight: 600; 
    border: none;
    border-radius: 999px; 
    transition: all 0.2s; 
    cursor: pointer; 
    text-decoration: none; 
}

.btn--primary { 
    background: var(--eu-yellow); 
    color: var(--brand-purple-dark); 
    box-shadow: 0 4px 20px rgba(255,204,0,0.3); 
}

.btn--primary:hover { 
    background: var(--eu-yellow-light); 
    transform: translateY(-2px); 
    box-shadow: 0 8px 30px rgba(255,204,0,0.4); 
}

.btn--outline { 
    background: rgba(255,255,255,0.05); 
    color: white; 
    border: 2px solid rgba(255,255,255,0.3) !important; 
}

.btn--outline:hover { 
    background: rgba(255,255,255,0.1); 
    border-color: rgba(255,255,255,0.5) !important; 
}

/* --- Varianta CTA: pastilă cu cerc-săgeată la dreapta --- */
.btn--cta {
    /* cercul de 44px + 5px pe fiecare parte = min-height-ul de 54px */
    padding: 5px 5px 5px 1.75rem;
    gap: 1rem;
    font-weight: 700;
}
.btn__circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    flex-shrink: 0;
    font-size: 0.95rem;
}
.btn__circle i {
    transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.btn--cta:hover .btn__circle i,
.hs-about__more:hover .btn__circle i {
    transform: translateX(3px);
}
/* pastila galbenă: cerc închis cu săgeată galbenă */
.btn--primary .btn__circle {
    background: var(--brand-purple-dark);
    color: var(--eu-yellow);
}
/* pastila transparentă: cerc alb cu săgeată în culoarea brandului */
.btn--outline .btn__circle {
    background: var(--white);
    color: var(--brand-primary, var(--brand-purple));
}
/* varianta inel: doar contur, pentru linkuri pe fundal deschis */
.btn__circle--ring {
    background: transparent;
    border: 2px solid currentColor;
}
@media (prefers-reduced-motion: reduce) {
    .btn__circle i { transition: none; }
}

.btn--purple { 
    background: var(--brand-purple-dark); 
    color: white; 
}

.btn--purple:hover { 
    background: #3D1A5C; 
    transform: translateY(-1px); 
}

/* ==================== HERO SECTION ==================== */
.hero {
    position: relative;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--hero-bg-color, #440098);
    color: var(--hero-title-color, white);
    overflow: hidden;
    padding: calc(var(--total-header) + 2.5rem) 0 5rem;
    text-align: center;
}

@media (min-width: 768px) { 
    .hero { min-height: 580px; } 
}

/* Hero Background Image */
.hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}

/* Violet Gradient Overlay */
.hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.6) 0%,
        rgba(0, 0, 0, 0.4) 10%,
        rgba(0, 0, 0, 0.2) 20%,
        rgba(68, 0, 152, 0.5) 50%,
        rgba(68, 0, 152, 0.5) 70%,
        rgba(68, 0, 152, 0.7) 100%
    );
}

.hero__overlay--custom {
    background: none;
    opacity: 0.4;
}

.hero__overlay--custom::after {
    display: none;
}

.hero__overlay::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at center,
        transparent 0%,
        transparent 50%,
        rgba(0, 0, 0, 0.1) 100%
    );
}

.hero__bg { 
    position: absolute; 
    inset: 0; 
    overflow: hidden; 
    pointer-events: none; 
    z-index: 2;
}

.hero__circle { 
    position: absolute; 
    border-radius: 50%; 
}

.hero__circle--1 { 
    width: 600px; 
    height: 600px; 
    top: -200px; 
    right: -150px; 
    border: 2px solid rgba(255,204,0,0.15); 
}

.hero__circle--2 { 
    width: 450px; 
    height: 450px; 
    bottom: -180px; 
    left: -120px; 
    border: 1px solid rgba(255,255,255,0.1); 
}

.hero__circle--3 { 
    width: 250px; 
    height: 250px; 
    top: 15%; 
    left: 8%; 
    background: radial-gradient(circle, rgba(255,204,0,0.1) 0%, transparent 70%); 
}

.hero__circle--4 { 
    width: 180px; 
    height: 180px; 
    bottom: 25%; 
    right: 12%; 
    background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%); 
}

.hero__grid { 
    position: absolute; 
    inset: 0; 
    background-image: linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px); 
    background-size: 70px 70px; 
}

.hero__dots { 
    position: absolute; 
    inset: 0; 
    pointer-events: none; 
}

.hero__dot { 
    position: absolute; 
    border-radius: 50%; 
    background: rgba(255,204,0,0.6); 
}

.hero__dot--1 { 
    width: 6px; 
    height: 6px; 
    top: 20%; 
    left: 15%; 
}

.hero__dot--2 { 
    width: 8px; 
    height: 8px; 
    top: 35%; 
    right: 20%; 
}

.hero__dot--3 { 
    width: 5px; 
    height: 5px; 
    bottom: 30%; 
    left: 25%; 
}

.hero__dot--4 { 
    width: 7px; 
    height: 7px; 
    bottom: 20%; 
    right: 30%; 
}

.hero__inner { 
    position: relative; 
    z-index: 5; 
    max-width: 800px; 
    margin: 0 auto; 
}

.hero > .container {
    position: relative;
    z-index: 5;
}

.hero__title { 
    font-family: var(--font-display); 
    font-size: clamp(2.25rem, 5.5vw, 3.75rem); 
    font-weight: 700; 
    line-height: 1.1; 
    margin-bottom: 1.5rem; 
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    letter-spacing: -0.02em; 
}

.hero__title-highlight { 
    color: var(--eu-yellow); 
    position: relative; 
}

.hero__desc { 
    font-size: 1.125rem; 
    line-height: 1.4;
    color: var(--hero-desc-color, rgba(255,255,255,0.9)); 
    max-width: 740px; 
    margin: 0 auto 3.5rem; 
}

.hero__desc strong { 
    color: var(--eu-yellow); 
    font-weight: 600; 
}

.hero__actions { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 1rem; 
    justify-content: center; 
}

/* ==================== PROGRAMS STRIP ==================== */
/* Programs Strip - Colored Cards - EXACT ca în design */
.programs-strip { 
    position: relative; 
    z-index: 10; 
    margin-top: 0px; 
    padding: 0 1rem; 
}

@media (min-width: 640px) { 
    .programs-strip { padding: 0; } 
}

.programs-strip__grid { 
    display: flex; 
    gap: 0.75rem; 
    overflow-x: auto; 
    scroll-snap-type: x mandatory; 
    -webkit-overflow-scrolling: touch; 
    scrollbar-width: none; 
    padding-bottom: 0.5rem; 
}

.programs-strip__grid::-webkit-scrollbar { 
    display: none; 
}

@media (min-width: 640px) { 
    .programs-strip__grid { 
        display: grid; 
        grid-template-columns: repeat(5, 1fr); 
        gap: 1rem; 
        overflow-x: visible; 
        padding-bottom: 0; 
    } 
}

.program-card { 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    text-align: center; 
    padding: 1.25rem 0.75rem 1rem; 
    height: 109px; 
    color: white; 
    border-radius: var(--radius-xl); 
    transition: top 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.35s ease; 
    position: relative; 
    top: 0;
    overflow: hidden; 
    box-shadow: var(--shadow-md); 
    flex: 0 0 auto; 
    width: 170px; 
    scroll-snap-align: start; 
    text-decoration: none;
    margin-top: -50px;
}

@media (min-width: 640px) { 
    .program-card { 
        width: auto; 
        flex: 1; 
    } 
}

.program-card:hover { 
    top: -10px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.25); 
    z-index: 20; 
}

/* Ensure smooth hover transitions even when reveal animation is active */
.reveal.is-visible .program-card.reveal-child {
    transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
                top 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.35s ease;
}

.reveal.is-visible .program-card.reveal-child:hover {
    top: -10px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.25);
}

.program-card__icon { 
    width: 44px; 
    height: 44px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    background: rgba(255,255,255,0.25); 
    border-radius: 12px; 
    margin-bottom: 0.625rem; 
    font-size: 1.125rem; 
    transition: transform 0.3s ease;
}

.program-card:hover .program-card__icon {
    transform: scale(1.08);
}

.program-card__title { 
    font-size: 0.8125rem; 
    font-weight: 600; 
    line-height: 1.3; 
    color: white;
}

/* ==================== SECTION STYLES ==================== */
.section { 
    padding: 4rem 0; 
}

.section--gray { 
    background: var(--gray-50); 
}

.section__header { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: space-between; 
    align-items: flex-start; 
    gap: 1rem; 
    margin-bottom: 1.5rem; 
}

.section__title { 
    font-family: var(--font-display); 
    /* aliniat cu .hs-title — aceeași dimensiune pe toate secțiunile */
    font-size: clamp(28px, 4vw, var(--section-title-size, 44px)); 
    font-weight: 800; 
    color: var(--text-primary); 
    line-height: 1.15; 
}

.section__title span { 
    color: var(--brand-purple); 
}

.section__title::after { 
    content: ''; 
    display: block; 
    width: 40px; 
    height: 3px; 
    background: var(--accent-orange); 
    margin-top: 0.5rem; 
    border-radius: 2px; 
}

.section__subtitle { 
    font-size: 0.875rem; 
    color: var(--text-muted); 
    margin-top: 0.25rem; 
}

.section__link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--brand-purple);
    transition: gap 0.2s;
}

.section__link:hover {
    gap: 0.625rem;
}

/* ==================== NEWS SECTION - Full Width ==================== */

/* Featured News Card - Horizontal: image left, content right */
.news-featured {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    text-decoration: none;
    color: inherit;
    margin-bottom: 1.5rem;
    border-radius: var(--radius-2xl, 1rem);
    overflow: hidden;
    background: var(--gray-50, #f9fafb);
    transition: all 0.2s;
}

.news-featured:hover {
    box-shadow: var(--shadow-lg);
}

.news-featured__image {
    width: 100%;
    height: 100%;
    min-height: 240px;
    max-height: 320px;
    overflow: hidden;
}

.news-featured__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.news-featured:hover .news-featured__image img {
    transform: scale(1.02);
}

.news-featured__content {
    padding: 2rem 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.news-featured__title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--text-primary);
    line-height: 1.2;
    margin: 0 0 0.75rem;
}

.news-featured:hover .news-featured__title {
    color: var(--brand-purple);
}

.news-featured:visited .news-featured__title,
.news-featured:link .news-featured__title {
    color: var(--text-primary);
}

.news-featured__date {
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--text-muted);
}

@media (max-width: 768px) {
    .news-featured {
        grid-template-columns: 1fr;
    }
    .news-featured__image {
        min-height: 200px;
    }
    .news-featured__content {
        padding: 1.25rem;
    }
    .news-featured__title {
        font-size: 1.25rem;
    }
}

/* News Grid - 3 columns */
.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}

.news-grid-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    border-radius: var(--radius-2xl, 1rem);
    overflow: hidden;
    background: var(--gray-50, #f9fafb);
    transition: all 0.2s;
}

.news-grid-card:hover {
    box-shadow: var(--shadow-md);
}

.news-grid-card__image {
    width: 100%;
    height: 180px;
    overflow: hidden;
}

.news-grid-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.news-grid-card:hover .news-grid-card__image img {
    transform: scale(1.03);
}

.news-grid-card__content {
    padding: 1rem 1.25rem 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.news-grid-card__title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
    margin: 0 0 0.375rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-grid-card:visited .news-grid-card__title,
.news-grid-card:link .news-grid-card__title {
    color: var(--text-primary);
}

.news-grid-card:hover .news-grid-card__title {
    color: var(--brand-purple);
}

.news-grid-card__date {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--text-muted);
    margin-top: auto;
}

/* Hero Card — full background image, text overlay at bottom */
.news-grid-card--hero {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 320px;
}

.news-grid-card--hero .news-grid-card__image {
    display: none;
}

.news-grid-card--hero__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 4rem 1.25rem 1.25rem;
    background: linear-gradient(to top, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.7) 50%, rgba(0,0,0,0.2) 75%, transparent 100%);
    border-radius: 0 0 var(--radius-2xl, 1rem) var(--radius-2xl, 1rem);
}

.news-grid-card--hero .news-grid-card__title {
    color: #fff !important;
    -webkit-line-clamp: 3;
}

.news-grid-card--hero:hover .news-grid-card__title {
    color: #fff !important;
    opacity: 0.9;
}

.news-grid-card--hero .news-grid-card__date {
    color: rgba(255,255,255,0.75);
}

/* Responsive */
@media (max-width: 1024px) {
    .news-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .news-featured__image {
        min-height: 200px;
        max-height: 240px;
    }
    .news-featured__title {
        font-size: 1.25rem;
    }
    .news-featured__content {
        padding: 1.25rem;
    }
    .news-grid {
        grid-template-columns: 1fr;
    }
    .news-grid-card__image {
        height: 160px;
    }
    .news-grid-card--hero {
        min-height: 240px;
    }
}

/* ==================== EVENTS / DEADLINES SECTION ==================== */

/* Events Column (kept for parent theme fallback) */
.events-column { 
    display: flex; 
    flex-direction: column; 
    background: var(--gray-50); 
    border-radius: var(--radius-2xl); 
    padding: 1.5rem; 
}

.events-list { 
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem; 
}

@media (max-width: 1024px) {
    .events-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .events-list {
        grid-template-columns: 1fr;
    }
}

.event-card { 
    display: flex; 
    align-items: flex-start; 
    gap: 1rem; 
    padding: 1rem; 
    background: var(--white); 
    border-radius: var(--radius-xl); 
    border: 1px solid var(--gray-200); 
    transition: all 0.2s; 
}

.event-card:hover { 
    border-color: var(--gray-300); 
    box-shadow: var(--shadow-md); 
}

.event-card__date { 
    flex-shrink: 0; 
    width: 48px; 
    text-align: center; 
    padding: 0.5rem 0; 
}

.event-card__date-days { 
    font-size: 1.25rem; 
    font-weight: 700; 
    color: var(--text-primary); 
    line-height: 1.2; 
}

.event-card__date-month { 
    font-size: 0.6875rem; 
    font-weight: 600; 
    text-transform: uppercase; 
    letter-spacing: 0.05em; 
    color: var(--text-muted); 
}

.event-card__content { 
    flex: 1; 
    min-width: 0; 
}

.event-card__title { 
    font-size: 0.9375rem; 
    font-weight: 700; 
    color: var(--text-primary); 
    line-height: 1.4; 
    margin-bottom: 0.375rem; 
    display: -webkit-box; 
    -webkit-line-clamp: 2; 
    -webkit-box-orient: vertical; 
    overflow: hidden; 
}

.event-card:hover .event-card__title { 
    color: var(--brand-purple); 
}

.event-card__meta { 
    display: flex; 
    flex-wrap: wrap; 
    align-items: center; 
    gap: 0.5rem; 
    font-size: 0.75rem; 
}

.event-card__location { 
    display: flex; 
    align-items: center; 
    gap: 0.25rem; 
    color: var(--text-muted); 
}

.event-card__type { 
    padding: 0.125rem 0.375rem; 
    border-radius: var(--radius-sm); 
    font-weight: 600; 
    font-size: 0.625rem; 
    text-transform: uppercase; 
}

.event-card__type--training { background: #dbeafe; color: #1d4ed8; }
.event-card__type--conferinta { background: #fae8ff; color: #a21caf; }
.event-card__type--seminar { background: #d1fae5; color: #047857; }
.event-card__type--workshop { background: #fef3c7; color: #b45309; }
.event-card__type--networking { background: #e0e7ff; color: #4338ca; }

/* ==================== DEADLINES SECTION ==================== */
.deadlines { 
    background: var(--gray-50); 
    padding: 4rem 0; 
}

.deadlines__header {
    margin-bottom: 1.5rem;
}

.deadlines__grid { 
    display: grid; 
    grid-template-columns: 1fr; 
    gap: 1rem;
    padding: 0 1rem;
}

@media (min-width: 768px) { 
    .deadlines__grid { 
        grid-template-columns: repeat(2, 1fr);
        padding: 0 2rem;
    } 
}

@media (min-width: 1024px) { 
    .deadlines__grid { 
        grid-template-columns: repeat(3, 1fr);
        padding: 0 2rem;
    } 
}

.deadline-card { 
    display: flex; 
    flex-direction: column; 
    padding: 1.25rem; 
    background: var(--white); 
    border-radius: var(--radius-xl); 
    border: 1px solid var(--gray-200); 
    transition: all 0.2s; 
    position: relative; 
}

.deadline-card:hover { 
    border-color: var(--gray-300); 
    box-shadow: var(--shadow-lg); 
}

.deadline-card--urgent { 
    background: linear-gradient(135deg, rgba(254, 226, 226, 0.3) 0%, rgba(255, 255, 255, 1) 100%); 
}

.deadline-card--soon { 
    background: linear-gradient(135deg, rgba(254, 243, 199, 0.3) 0%, rgba(255, 255, 255, 1) 100%); 
}

.deadline-card--open { 
    background: linear-gradient(135deg, rgba(209, 250, 229, 0.3) 0%, rgba(255, 255, 255, 1) 100%); 
}

.deadline-card__header { 
    display: flex; 
    align-items: center; 
    gap: 0.5rem; 
    margin-bottom: 1rem; 
}

.deadline-card__status { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.375rem; 
    font-size: 0.625rem; 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.05em; 
    padding: 0.25rem 0.625rem; 
    border-radius: var(--radius-full); 
}

.deadline-card__status::before { 
    content: ''; 
    width: 6px; 
    height: 6px; 
    border-radius: 50%; 
}

.deadline-card__status--urgent { background: #fee2e2; color: #dc2626; }
.deadline-card__status--urgent::before { background: #dc2626; }
.deadline-card__status--soon { background: #fef3c7; color: #b45309; }
.deadline-card__status--soon::before { background: #f59e0b; }
.deadline-card__status--open { background: #d1fae5; color: #047857; }
.deadline-card__status--open::before { background: #10b981; }

.deadline-card__date-badge { 
    font-size: 0.6875rem; 
    font-weight: 600; 
    padding: 0.25rem 0.625rem; 
    background: var(--white); 
    color: var(--text-primary); 
    border: 1px solid var(--gray-300); 
    border-radius: var(--radius-md); 
}

.deadline-card__title { 
    font-size: 1rem; 
    font-weight: 700; 
    color: var(--text-primary); 
    line-height: 1.4; 
    margin-bottom: 0.375rem; 
}

.deadline-card:hover .deadline-card__title { 
    color: var(--brand-purple); 
}

.deadline-card__desc { 
    font-size: 0.8125rem; 
    color: var(--text-muted); 
    line-height: 1.5; 
    margin-bottom: 1rem; 
    display: -webkit-box; 
    -webkit-line-clamp: 1; 
    -webkit-box-orient: vertical; 
    overflow: hidden; 
}

.deadline-card__footer { 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    margin-top: auto; 
    padding-top: 0.75rem; 
    border-top: 1px solid var(--gray-100); 
}

.deadline-card__countdown { 
    display: flex; 
    align-items: center; 
    gap: 0.375rem; 
    font-size: 0.875rem; 
    color: var(--text-secondary); 
}

.deadline-card__countdown i { 
    color: var(--text-muted); 
    font-size: 0.75rem; 
}

.deadline-card__countdown strong { 
    font-weight: 700; 
}

.deadline-card__countdown--urgent strong { color: #dc2626; }
.deadline-card__countdown--soon strong { color: #f59e0b; }
.deadline-card__countdown--open strong { color: #10b981; }

.deadline-card__actions { 
    display: flex; 
    align-items: center; 
    gap: 0.5rem; 
}

.deadline-card__code { 
    font-size: 0.6875rem; 
    font-weight: 600; 
    padding: 0.25rem 0.5rem; 
    background: var(--gray-100); 
    color: var(--text-secondary); 
    border-radius: var(--radius-sm); 
}

.deadline-card__apply { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.25rem; 
    font-size: 0.8125rem; 
    font-weight: 600; 
    color: var(--brand-purple); 
    transition: gap 0.2s; 
}

.deadline-card:hover .deadline-card__apply { 
    gap: 0.5rem; 
}

/* ==================== RESOURCES SECTION ==================== */
.resources__grid { 
    display: grid; 
    grid-template-columns: 1fr; 
    gap: 2rem; 
}

@media (min-width: 768px) { 
    .resources__grid { grid-template-columns: repeat(2, 1fr); } 
}

.resources__column { 
    display: flex; 
    flex-direction: column; 
    background: var(--white); 
    border-radius: var(--radius-2xl); 
    padding: 1.5rem; 
    border: 1px solid var(--gray-200); 
}

.resources__column-header { 
    display: flex; 
    align-items: center; 
    gap: 0.75rem; 
    margin-bottom: 1.25rem; 
    padding-bottom: 1rem; 
    border-bottom: 1px solid var(--gray-200); 
}

.resources__column-icon { 
    width: 44px; 
    height: 44px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    border-radius: var(--radius-lg); 
    font-size: 1.125rem; 
}

.resources__column--docs .resources__column-icon { 
    background: rgba(255, 73, 73, 0.1); 
    color: #FF4949; 
}

.resources__column--videos .resources__column-icon { 
    background: rgba(79, 125, 243, 0.1); 
    color: #4F7DF3; 
}

.resources__column-title { 
    font-size: 1.25rem; 
    font-weight: 700; 
    color: var(--text-primary); 
}

.resources__list { 
    display: flex; 
    flex-direction: column; 
    gap: 0.25rem; 
}

.resource-item { 
    display: flex; 
    align-items: center; 
    gap: 0.875rem; 
    padding: 0.875rem; 
    border-radius: var(--radius-lg); 
    transition: all 0.2s; 
}

.resource-item:hover { 
    background: var(--gray-50); 
}

.resource-item__icon { 
    flex-shrink: 0; 
    width: 40px; 
    height: 40px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    border-radius: var(--radius-md); 
    font-size: 1rem; 
}

.resource-item--doc .resource-item__icon { 
    background: rgba(255, 73, 73, 0.1); 
    color: #FF4949; 
}

.resource-item--video .resource-item__icon { 
    background: rgba(79, 125, 243, 0.1); 
    color: #4F7DF3; 
}

.resource-item__content { 
    flex: 1; 
    min-width: 0; 
}

.resource-item__title { 
    font-size: 0.9375rem; 
    font-weight: 600; 
    color: var(--text-primary); 
    line-height: 1.4; 
    margin-bottom: 0.125rem; 
    display: -webkit-box; 
    -webkit-line-clamp: 1; 
    -webkit-box-orient: vertical; 
    overflow: hidden; 
}

.resource-item:hover .resource-item__title { 
    color: var(--brand-purple); 
}

.resource-item__meta { 
    font-size: 0.75rem; 
    color: var(--text-muted); 
}

.resources__more { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.375rem; 
    margin-top: 1.25rem; 
    padding-top: 1.25rem; 
    border-top: 1px solid var(--gray-200); 
    font-size: 0.875rem; 
    font-weight: 600; 
    color: var(--brand-purple); 
    transition: gap 0.2s; 
}

.resources__more:hover { 
    gap: 0.625rem; 
}

/* ==================== LINKS SECTION ==================== */
.links-section { 
    background: linear-gradient(135deg, rgba(68, 0, 152, 0.85) 0%, rgba(53, 0, 120, 0.9) 100%); 
    padding: 3rem 0; 
    margin-top: 2rem; 
    border-radius: var(--radius-2xl); 
    position: relative; 
    overflow: hidden; 
}

.links-section::before { 
    content: ''; 
    position: absolute; 
    top: -50px; 
    right: -50px; 
    width: 200px; 
    height: 200px; 
    background: rgba(255, 204, 0, 0.08); 
    border-radius: 50%; 
}

.links-section::after { 
    content: ''; 
    position: absolute; 
    bottom: -80px; 
    left: -40px; 
    width: 250px; 
    height: 250px; 
    border: 2px solid rgba(255, 255, 255, 0.06); 
    border-radius: 50%; 
}

.links-section__inner { 
    position: relative; 
    z-index: 1; 
    text-align: center; 
}

.links-section__title { 
    font-size: 1.5rem; 
    font-weight: 700; 
    color: var(--white); 
    margin-bottom: 0.375rem; 
}

.links-section__title::after { 
    content: ''; 
    display: block; 
    width: 40px; 
    height: 3px; 
    background: var(--accent-orange); 
    margin: 0.75rem auto 0; 
    border-radius: 2px; 
}

.links-section__subtitle { 
    font-size: 0.9375rem; 
    color: rgba(255, 255, 255, 0.75); 
    margin-top: 0.75rem; 
    margin-bottom: 1.5rem; 
}

.links-section__grid { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: center; 
    gap: 0.75rem; 
}

.link-pill { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.5rem; 
    padding: 0.625rem 1.125rem; 
    background: rgba(255, 204, 0, 0.9); 
    color: var(--brand-purple-dark); 
    font-size: 0.875rem; 
    font-weight: 600; 
    border-radius: var(--radius-full); 
    transition: all 0.2s; 
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); 
}

.link-pill:hover { 
    background: var(--eu-yellow); 
    transform: translateY(-2px); 
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); 
}

.link-pill__icon { 
    width: 24px; 
    height: 24px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    background: rgba(68, 0, 152, 0.15); 
    border-radius: 50%; 
    font-size: 0.75rem; 
}

/* ==================== STORIES SECTION ==================== */
.stories__grid { 
    display: grid; 
    grid-template-columns: 1fr; 
    gap: 1.5rem; 
}

@media (min-width: 640px) { 
    .stories__grid { grid-template-columns: repeat(2, 1fr); } 
}

@media (min-width: 1024px) { 
    .stories__grid { grid-template-columns: repeat(4, 1fr); } 
}

.story-card { 
    border-radius: var(--radius-xl); 
    padding: 1.5rem; 
    display: flex; 
    flex-direction: column; 
    gap: 1rem; 
    position: relative; 
    transition: all 0.2s; 
    border: 1px solid transparent; 
}

.story-card:hover { 
    transform: translateY(-4px); 
    box-shadow: var(--shadow-xl); 
}

.story-card--erasmus { 
    background: linear-gradient(135deg, #003399 0%, #0055cc 100%); 
}

.story-card--erasmus:hover { 
    box-shadow: 0 12px 30px rgba(0, 51, 153, 0.3); 
}

.story-card--esc { 
    background: linear-gradient(135deg, #89B33A 0%, #6d9c1f 100%); 
}

.story-card--esc:hover { 
    box-shadow: 0 12px 30px rgba(137, 179, 58, 0.3); 
}

.story-card--see { 
    background: linear-gradient(135deg, #F39200 0%, #d68000 100%); 
}

.story-card--see:hover { 
    box-shadow: 0 12px 30px rgba(243, 146, 0, 0.3); 
}

.story-card--etwinning { 
    background: linear-gradient(135deg, #00A99D 0%, #008f85 100%); 
}

.story-card--etwinning:hover { 
    box-shadow: 0 12px 30px rgba(0, 169, 157, 0.3); 
}

.story-card__badge { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.375rem; 
    font-size: 0.625rem; 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.05em; 
    padding: 0.375rem 0.75rem; 
    border-radius: var(--radius-full); 
    width: fit-content; 
    background: rgba(255,255,255,0.2); 
    color: white; 
}

.story-card__quote { 
    flex: 1; 
    padding-left: 1rem; 
    font-size: 0.9375rem; 
    font-style: italic; 
    color: rgba(255,255,255,0.95); 
    line-height: 1.6; 
    position: relative; 
}

.story-card__quote::before { 
    content: ''; 
    position: absolute; 
    left: 0; 
    top: 0; 
    bottom: 0; 
    width: 3px; 
    border-radius: 2px; 
    background: rgba(255,255,255,0.4); 
}

.story-card__author { 
    display: flex; 
    align-items: center; 
    gap: 0.75rem; 
}

.story-card__avatar { 
    width: 48px; 
    height: 48px; 
    border-radius: 50%; 
    object-fit: cover; 
    border: 3px solid rgba(255,255,255,0.5); 
}

.story-card__info { 
    display: flex; 
    flex-direction: column; 
}

.story-card__name { 
    font-size: 0.9375rem; 
    font-weight: 700; 
    color: white; 
}

.story-card__role { 
    font-size: 0.8125rem; 
    color: rgba(255,255,255,0.8); 
}

/* ==================== NEWSLETTER ==================== */
.newsletter { 
    padding: 3rem 0; 
    background: var(--white); 
}

.newsletter__inner { 
    display: flex; 
    flex-direction: column; 
    gap: 1.5rem; 
    align-items: center; 
    text-align: center; 
}

@media (min-width: 768px) { 
    .newsletter__inner { 
        flex-direction: row; 
        justify-content: space-between; 
        text-align: left; 
    } 
}

.newsletter__content { 
    flex: 1; 
}

.newsletter__title { 
    font-size: 1.5rem; 
    font-weight: 800; 
    color: var(--text-primary); 
    margin-bottom: 0.375rem; 
}

.newsletter__desc { 
    font-size: 0.9375rem; 
    color: var(--text-secondary); 
}

.newsletter__form { 
    display: flex; 
    gap: 0.75rem; 
    width: 100%; 
    max-width: 420px; 
}

@media (max-width: 480px) { 
    .newsletter__form { flex-direction: column; } 
}

.newsletter__input { 
    flex: 1; 
    padding: 0.875rem 1.25rem; 
    font-size: 0.9375rem; 
    border: 1px solid #ccc; 
    border-radius: var(--radius-lg); 
    background: var(--white); 
    box-shadow: var(--shadow-sm); 
    outline: none; 
    transition: box-shadow 0.2s; 
}

.newsletter__input:focus { 
    box-shadow: var(--shadow-md), 0 0 0 3px rgba(68, 0, 152, 0.1); 
}

.newsletter__input::placeholder { 
    color: var(--text-muted); 
}

.newsletter__btn { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    gap: 0.5rem; 
    padding: 0.875rem 1.5rem; 
    font-size: 0.9375rem; 
    font-weight: 600; 
    color: white; 
    background: var(--brand-purple-dark); 
    border: none; 
    border-radius: var(--radius-lg); 
    cursor: pointer; 
    transition: all 0.2s; 
    white-space: nowrap; 
}

.newsletter__btn:hover { 
    background: #3D1A5C; 
    transform: translateY(-1px); 
}

/* ==================== BACK TO TOP ==================== */
.back-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 56px;
    height: 56px;
    background: var(--brand-purple);
    color: white;
    /* inel alb: pe fundalul mov al footerului cercul altfel dispare
       (mov pe mov) și rămâne doar iconița plutind */
    border: 2px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    box-shadow: 0 4px 20px color-mix(in srgb, var(--brand-purple) 40%, transparent);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.3s ease;
    z-index: 999;
}

.back-to-top:hover {
    background: var(--brand-purple-dark);
    transform: translateY(-2px);
    box-shadow: 0 6px 25px color-mix(in srgb, var(--brand-purple) 50%, transparent);
}

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

@media (max-width: 640px) {
    .back-to-top { 
        width: 48px; 
        height: 48px; 
        bottom: 1.5rem; 
        right: 1.5rem; 
        font-size: 1.125rem; 
    }
}

/* ==================== LIGHTBOX ==================== */
.anp-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.anp-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.anp-lightbox__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
}

.anp-lightbox__container {
    position: relative;
    z-index: 1;
    max-width: 90vw;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.anp-lightbox__content {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 90vw;
    max-height: 80vh;
}

.anp-lightbox__image {
    max-width: 90vw;
    max-height: 80vh;
    object-fit: contain;
    border-radius: var(--radius-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    animation: anpLightboxFadeIn 0.3s ease;
}

@keyframes anpLightboxFadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

/* PDF viewer */
.anp-lightbox__pdf-wrapper {
    position: relative;
    width: 80vw;
    height: 80vh;
}

.anp-lightbox__pdf {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: var(--radius-lg);
    background: white;
}

.anp-lightbox__pdf-download {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    border-radius: var(--radius-md);
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.2s;
    backdrop-filter: blur(4px);
    z-index: 1;
}

.anp-lightbox__pdf-download:hover {
    background: rgba(0, 0, 0, 0.9);
}

/* Caption */
.anp-lightbox__caption {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.875rem;
    text-align: center;
    margin-top: 1rem;
    max-width: 600px;
    line-height: 1.5;
}

/* Counter */
.anp-lightbox__counter {
    position: absolute;
    top: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.8125rem;
    font-weight: 500;
    z-index: 2;
    background: rgba(0, 0, 0, 0.4);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-full);
}

/* Navigation buttons */
.anp-lightbox__close,
.anp-lightbox__prev,
.anp-lightbox__next {
    position: absolute;
    z-index: 2;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    backdrop-filter: blur(4px);
}

.anp-lightbox__close:hover,
.anp-lightbox__prev:hover,
.anp-lightbox__next:hover {
    background: rgba(255, 255, 255, 0.25);
}

.anp-lightbox__close {
    top: 1rem;
    right: 1rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 1.25rem;
}

.anp-lightbox__prev,
.anp-lightbox__next {
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    font-size: 1.125rem;
}

.anp-lightbox__prev { left: 1rem; }
.anp-lightbox__next { right: 1rem; }

/* Loading spinner */
.anp-lightbox__loading {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 0;
}

.anp-lightbox__spinner {
    width: 40px;
    height: 40px;
    border: 3px solid rgba(255, 255, 255, 0.2);
    border-top-color: white;
    border-radius: 50%;
    animation: anpSpin 0.8s linear infinite;
}

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

/* Error state */
.anp-lightbox__error {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    color: rgba(255, 255, 255, 0.5);
    font-size: 1rem;
}

.anp-lightbox__error i { font-size: 2.5rem; }

/* Responsive */
@media (max-width: 640px) {
    .anp-lightbox__prev,
    .anp-lightbox__next {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
    .anp-lightbox__prev { left: 0.5rem; }
    .anp-lightbox__next { right: 0.5rem; }
    .anp-lightbox__close {
        top: 0.5rem;
        right: 0.5rem;
    }
    .anp-lightbox__pdf-wrapper {
        width: 95vw;
        height: 75vh;
    }
}

/* Make content images show pointer cursor when lightbox is active */
.prose img:not(.lightbox-exclude),
.article__body img:not(.lightbox-exclude) {
    cursor: zoom-in;
}

/* ==================== SCROLL REVEAL ANIMATIONS ==================== */
/* Base state: invisible, slightly offset */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Revealed state */
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger delays for child elements */
.reveal-child { 
    opacity: 0; 
    transform: translateY(16px); 
    transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); 
}

.reveal.is-visible .reveal-child { 
    opacity: 1; 
    transform: translateY(0); 
}

.reveal.is-visible .reveal-child:nth-child(1) { transition-delay: 0.05s; }
.reveal.is-visible .reveal-child:nth-child(2) { transition-delay: 0.1s; }
.reveal.is-visible .reveal-child:nth-child(3) { transition-delay: 0.15s; }
.reveal.is-visible .reveal-child:nth-child(4) { transition-delay: 0.2s; }
.reveal.is-visible .reveal-child:nth-child(5) { transition-delay: 0.25s; }
.reveal.is-visible .reveal-child:nth-child(6) { transition-delay: 0.3s; }
.reveal.is-visible .reveal-child:nth-child(7) { transition-delay: 0.35s; }
.reveal.is-visible .reveal-child:nth-child(8) { transition-delay: 0.4s; }

/* Hero-specific: fade up from below, slightly longer */
.hero__inner .reveal-child {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero__inner.is-visible .reveal-child {
    opacity: 1;
    transform: translateY(0);
}

.hero__inner.is-visible .reveal-child:nth-child(1) { transition-delay: 0.1s; }
.hero__inner.is-visible .reveal-child:nth-child(2) { transition-delay: 0.2s; }
.hero__inner.is-visible .reveal-child:nth-child(3) { transition-delay: 0.35s; }

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .reveal, 
    .reveal-child,
    .hero__inner .reveal-child { 
        opacity: 1; 
        transform: none; 
        transition: none; 
    }
}

/* ==================== FOOTER ==================== */
.footer { 
    background: var(--brand-purple); 
    color: rgba(255,255,255,0.8); 
    /* pentru filigranul decorativ absolut din dreapta */
    position: relative;
    overflow: hidden;
}

/* Filigranul „a” — alb, abia perceptibil, tăiat de marginea dreaptă.
   filter-ul face ORICE imagine setată în Customizer albă, deci nu e
   nevoie de o variantă albă a logo-ului */
.footer__watermark {
    position: absolute;
    top: 48px;
    right: -4%;
    width: min(520px, 44vw);
    pointer-events: none;
    z-index: 0;
}
.footer__watermark img {
    width: 100%;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: var(--footer-mark-opacity, 0.08);
}
/* conținutul stă deasupra filigranului */
.footer__main,
.footer__eu-band,
.footer__bottom {
    position: relative;
    z-index: 1;
}
body.high-contrast .footer__watermark { display: none; }

.footer__main { 
    padding: 4rem 0 3rem; 
}

/* Footer grid: about + link columns side by side */
.footer__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

/* Dynamic grid: about column takes ~50%, link columns share the rest */
@media (min-width: 768px) {
    .footer__grid--cols-1 { grid-template-columns: 1.5fr 1fr; }
    .footer__grid--cols-2 { grid-template-columns: 1.5fr repeat(2, 1fr); }
    .footer__grid--cols-3 { grid-template-columns: 1.5fr repeat(3, 1fr); }
    .footer__grid--cols-4 { grid-template-columns: 1.5fr repeat(4, 1fr); }
}

.footer__column { 
    min-width: 0; 
}

.footer__logo { 
    display: inline-block; 
    margin-bottom: 1rem; 
    background: white;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-lg);
}

.footer__logo-img { 
    width: auto; 
    display: block;
}

/* Logo alb: fără pastila albă (Customizer → Footer → Fundal alb sub logo) */
.footer__logo--plain {
    background: none;
    padding: 0;
    border-radius: 0;
}

.footer__desc { 
    font-size: 0.875rem; 
    line-height: 1.7; 
    color: rgba(255,255,255,0.7); 
    margin-bottom: 1.5rem; 
}

.footer__contact { 
    display: flex; 
    flex-direction: column; 
    gap: 0.625rem; 
}

.footer__contact-item { 
    display: flex; 
    align-items: flex-start; 
    gap: 0.625rem; 
    font-size: 0.8125rem; 
    color: rgba(255,255,255,0.7); 
}

.footer__contact-item i { 
    color: var(--eu-yellow); 
    margin-top: 0.125rem; 
    width: 16px; 
    /* glifele FA au lățimi diferite (pinul e îngust) — centrate în cutia
       de 16px, textele de lângă ele pornesc toate de la același x */
    text-align: center; 
    flex-shrink: 0;
}

.footer__contact-item a { 
    color: rgba(255,255,255,0.7); 
    transition: color 0.2s; 
}

.footer__contact-item a:hover { 
    color: var(--eu-yellow); 
}

.footer__heading { 
    font-size: 0.875rem; 
    font-weight: 700; 
    color: var(--white); 
    text-transform: uppercase; 
    letter-spacing: 0.05em; 
    margin-bottom: 1.25rem; 
}
/* Rândul „Contact” din footer — există doar pe mobil */
.footer__column--contactlink { display: none; }

/* Butonul din titlu: text simplu pe desktop (chevron ascuns, ne-clicabil),
   acordeon pe mobil */
.footer__heading-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    padding: 0;
    background: none;
    border: none;
    color: inherit;
    font: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
    text-align: left;
    cursor: default;
}
.footer__heading-btn i {
    display: none;
    font-size: 0.6875rem;
    color: rgba(255, 255, 255, 0.55);
    transition: transform 0.25s ease;
}


.footer__links { 
    display: flex; 
    flex-direction: column; 
    gap: 0.625rem; 
}

.footer__links li a { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.5rem; 
    font-size: 0.875rem; 
    color: rgba(255,255,255,0.7); 
    transition: all 0.2s; 
}

.footer__links li a:hover { 
    color: var(--eu-yellow); 
    padding-left: 0.25rem; 
}

.footer__links li a i { 
    font-size: 0.625rem; 
    opacity: 0.5; 
}

/* Footer EU Band */
/* Banda UE: aceeași culoare ca footerul (fără strat închis), separată de
   un divider aliniat cu containerul — nu full-width */
.footer__eu-band { 
    padding: 0;
}

.footer__eu-content { 
    display: flex; 
    flex-wrap: wrap; 
    align-items: center; 
    gap: 1rem 1.5rem; 
    border-top: 1px solid rgba(255,255,255,0.14);
    padding: 1.75rem 0;
}

.footer__eu-logo { 
    display: flex; 
    align-items: center; 
    gap: 0.75rem; 
    flex-shrink: 0; 
}

.footer__eu-img {
    height: 50px;
    width: auto;
}

@media (min-width: 768px) {
    .footer__eu-img {
        height: 60px;
    }
}

.footer__eu-flag { 
    height: 40px; 
    width: auto; 
}

.footer__eu-text { 
    display: flex; 
    flex-direction: column; 
    font-size: 0.75rem; 
    line-height: 1.3; 
}

.footer__eu-text span { 
    color: rgba(255,255,255,0.6); 
}

.footer__eu-text strong { 
    color: var(--white); 
    font-size: 0.875rem; 
}

.footer__eu-disclaimer { 
    font-size: 0.75rem; 
    color: rgba(255,255,255,0.5); 
    line-height: 1.6; 
    /* pe același rând cu logo-ul UE, umplând restul lățimii (se rupe pe
       2 rânduri în interior dacă e lung); coboară sub logo doar când
       spațiul rămas scade sub ~320px (ecrane mici) */
    flex: 1 1 320px;
    min-width: 0;
}

/* Footer Bottom */
.footer__bottom { 
    padding: 0 0 1.25rem;
}

.footer__bottom-inner { 
    border-top: 1px solid rgba(255,255,255,0.14);
    padding-top: 1.25rem;
    display: flex; 
    flex-wrap: wrap; 
    justify-content: space-between; 
    align-items: center; 
    gap: 1rem; 
}

.footer__copyright { 
    font-size: 0.8125rem; 
    color: rgba(255,255,255,0.5); 
}

.footer__legal { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 1rem; 
}

.footer__legal a { 
    font-size: 0.8125rem; 
    color: rgba(255,255,255,0.5); 
    transition: color 0.2s; 
}

.footer__legal a:hover { 
    color: rgba(255,255,255,0.8); 
}

.footer__social { 
    display: flex; 
    gap: 0.75rem; 
}

.footer__social a { 
    width: 36px; 
    height: 36px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    background: rgba(255,255,255,0.1); 
    border-radius: var(--radius-md); 
    color: rgba(255,255,255,0.7); 
    transition: all 0.2s; 
}

.footer__social a:hover { 
    background: var(--eu-yellow); 
    color: var(--gray-900); 
}

/* ==================== ARTICLE STYLES ==================== */
/* Înălțime UNIFORMĂ: 360px minim, cu sau fără imagine, pagină sau
   articol — imaginea nu mai dictează înălțimea (decizie 2026-08-17) */
.article-hero {
    position: relative;
    min-height: 360px;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(135deg, var(--brand-purple) 0%, var(--brand-purple-dark) 50%, #2a0060 100%);
    overflow: hidden;
}

.article-hero--no-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: 
        radial-gradient(circle at 20% 80%, rgba(255,255,255,0.03) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(255,255,255,0.03) 0%, transparent 50%),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='30' cy='30' r='20' fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 100% 100%, 100% 100%, 60px 60px;
    pointer-events: none;
}

.article-hero--no-image::after {
    content: '\f15c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 400;
    position: absolute;
    top: 50%;
    right: 10%;
    transform: translateY(-50%);
    font-size: 15rem;
    color: rgba(255, 255, 255, 0.04);
    pointer-events: none;
}

/* Category-specific icons for no-image articles */
.article-hero--no-image.category-stiri::after { content: '\f1ea'; } /* newspaper */
.article-hero--no-image.category-evenimente::after { content: '\f073'; } /* calendar */
.article-hero--no-image.category-proiecte::after { content: '\f0b1'; } /* briefcase */
.article-hero--no-image.category-anunturi::after { content: '\f0a1'; } /* bullhorn */

.article-hero__image-wrapper {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

/* ==================== HERO ECHIPA — MOZAIC LIVE ====================
   Banda e compusă din pătrate DOM (un <figure> per persoană), nu dintr-un
   JPEG: pozele sunt COLOR, griul vine din filter și se ridică la hover.
   Două copii identice una lângă alta; -50% = exact o copie, deci cadrul
   de reset e identic pixel cu pixel cu cel de start. */
.article-hero__marquee {
    /* FIXĂ pe ecran, ca parallax-ul „fereastră” de pe celelalte pagini:
       conținutul alunecă peste bandă, iar banda își păstrează defilarea
       orizontală. 360px = 3 rânduri × 120px = min-height-ul hero-ului.
       clip-path-ul de pe .article-hero--has-image o decupează la cutia
       hero-ului (și decupează și hit-testing-ul — hover-ul nu „scapă”
       în afara hero-ului). */
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    width: max-content;
    height: 360px;
    /* ~10px/s indiferent de numărul de coloane: o coloană (120px) la 12s */
    animation: heroMarquee calc(var(--mosaic-cols, 32) * 12s) linear infinite;
    will-change: transform;
}
.team-mosaic {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(3, 120px);
    grid-auto-columns: 120px;
    flex: none;
}
.team-mosaic__tile {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0;
    overflow: hidden; /* zoom-ul de la hover rămâne în pătrat, nu peste vecini */
    background: var(--brand-purple-dark);
}
/* Pozele se afișează AȘA CUM SUNT (fundalurile diferă de la poză la poză).
   S-a încercat o albire a fundalurilor prin filtru SVG „levels” (2026-08-21)
   — retrasă: pe majoritatea pozelor altera fețele și hainele. */
.team-mosaic__tile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 12%; /* crop tras spre față, ca în vechiul colaj GD */
    filter: grayscale(1);
    opacity: 0.85; /* voalul benzii de dinainte, acum per pătrat — hover-ul îl ridică */
    transition: filter 0.5s ease, opacity 0.5s ease, transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.team-mosaic__tile img.is-loading { opacity: 0; } /* fade-in la sosire (clasa o pune JS-ul) */
/* Doar cu hover real: pe touch :hover ar rămâne „lipit” pe ultimul tap */
@media (hover: hover) {
    .article-hero__marquee:hover {
        /* la ~10px/s oprirea bruscă e insesizabilă — nu merită un motor JS */
        animation-play-state: paused;
    }
    .team-mosaic__tile:hover img {
        filter: grayscale(0);
        opacity: 1;
        transform: scale(1.08);
    }
}
/* Overlay-ul și stratul cu titlu stau DEASUPRA benzii și ar înghiți
   mouse-ul — le lăsăm transparente la pointer; link-urile din
   breadcrumbs rămân clicabile */
.article-hero--team .article-hero__overlay,
.article-hero--team .article-hero__content {
    pointer-events: none;
}
.article-hero--team .article-hero__content a {
    pointer-events: auto;
}
/* Bara de admin WP împinge documentul în jos (html { margin-top }) —
   fără compensare, banda fixă rămâne ancorată la y=0 și lasă o fâșie
   de gradient descoperită la baza hero-ului (vizibilă doar logat) */
body.admin-bar .article-hero__marquee { top: 32px; }
@media (max-width: 782px) {
    body.admin-bar .article-hero__marquee { top: 46px; }
}

@keyframes heroMarquee {
    from { transform: translateX(-50%); }
    to   { transform: translateX(0); } /* stânga → dreapta */
}
@media (prefers-reduced-motion: reduce) {
    .article-hero__marquee {
        animation: none;
        transform: translateX(0);
        position: absolute;
        inset: 0;
        height: 100%;
    }
}

/* Tooltip-ul mozaicului: un singur element în <body>, poziționat de JS
   față de viewport (left/top); săgeata urmărește centrul pătratului
   prin --tip-arrow-x. Apare pe loc, alunecă doar între pătrate vecine. */
.team-tip {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 1100;
    max-width: 260px;
    padding: 0.55rem 0.8rem 0.6rem;
    background: #fff;
    color: var(--text-primary, #111);
    border-radius: var(--radius-md);
    box-shadow: 0 12px 28px -8px rgba(20, 0, 60, 0.45), 0 2px 6px rgba(0, 0, 0, 0.12);
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
    --tip-arrow-x: 50%;
}
.team-tip.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition-delay: 0s;
}
.team-tip.team-tip--slide {
    transition: opacity 0.25s ease, transform 0.25s ease, left 0.18s ease, top 0.18s ease;
}
.team-tip--below { transform: translateY(-4px); }
.team-tip--below.is-visible { transform: none; }
.team-tip__name {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.9rem;
    line-height: 1.25;
    color: var(--brand-purple);
}
.team-tip__role[hidden] { display: none; }
.team-tip__role {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.78rem;
    line-height: 1.3;
    color: var(--text-muted);
}
.team-tip::after {
    content: '';
    position: absolute;
    left: var(--tip-arrow-x);
    bottom: -5px;
    width: 10px;
    height: 10px;
    margin-left: -5px;
    background: #fff;
    transform: rotate(45deg);
    box-shadow: 3px 3px 6px -2px rgba(0, 0, 0, 0.12);
}
.team-tip--below::after {
    bottom: auto;
    top: -5px;
    box-shadow: -2px -2px 5px -2px rgba(0, 0, 0, 0.1);
}

/* Parallax „fereastră” pe hero-ul paginilor și articolelor: imaginea
   stă FIXĂ pe ecran, iar titlul, breadcrumbs-ul și conținutul paginii
   alunecă peste ea. clip-path pe hero taie stratul fix la cutia lui —
   aceeași tehnică deja folosită la filigranul din footer. */
.article-hero--has-image {
    clip-path: inset(0);
}
.article-hero--has-image .article-hero__image {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100lvh; /* nu „respiră” când bara de adresă de pe mobil se ascunde */
}
@media (prefers-reduced-motion: reduce) {
    .article-hero--has-image { clip-path: none; }
    .article-hero--has-image .article-hero__image {
        position: absolute;
        inset: 0;
        height: 100%;
    }
}

/* Ecrane mai late de 2200: imaginea NU se mai întinde (cover pe lățimi
   mari o tăia agresiv pe înălțime) — rămâne la 2200 centrată, iar
   marginile se „îmbracă” în culoarea brandului cu un blend moale, ca să
   nu pară tăiată. Pragul a fost 1920 (2026-08-21): pe un monitor de
   ~1950 blend-ul intra deja peste imagine; până la 2200 cover-ul e bun. */
@media (min-width: 2201px) {
    .article-hero--has-image .article-hero__image {
        width: 2200px;
        left: 50%;
        right: auto;
        margin-left: -1100px;
    }
    .article-hero__image-wrapper::after {
        content: '';
        position: absolute;
        inset: 0;
        pointer-events: none;
        background: linear-gradient(
            to right,
            var(--brand-purple-dark, #350078) 0,
            var(--brand-purple-dark, #350078) calc(50% - 1099px),
            transparent calc(50% - 800px),
            transparent calc(50% + 800px),
            var(--brand-purple-dark, #350078) calc(50% + 1099px),
            var(--brand-purple-dark, #350078) 100%
        );
    }
}

.article-hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.85;
}

/* Overlay V1 — „scrim neted”: două straturi MONOTONE cu opriri dese pe
   curbă de easing. Vechiul gradient (5 opriri, întunecat→luminos→întunecat)
   lăsa două muchii vizibile (mach banding) pe imaginile cu model. */
.article-hero__overlay {
    position: absolute;
    inset: 0;
    /* voalul de jos — sub titlu și breadcrumbs */
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.72) 0%,
        rgba(0, 0, 0, 0.63) 8%,
        rgba(0, 0, 0, 0.52) 16%,
        rgba(0, 0, 0, 0.40) 25%,
        rgba(0, 0, 0, 0.28) 34%,
        rgba(0, 0, 0, 0.18) 43%,
        rgba(0, 0, 0, 0.10) 52%,
        rgba(0, 0, 0, 0.04) 61%,
        rgba(0, 0, 0, 0.01) 70%,
        rgba(0, 0, 0, 0) 78%
    );
}
/* voalul de sus — ține meniul transparent lizibil pe imagini deschise;
   intensitatea se reglează din Customizer (opacity = --hero-scrim-top) */
.article-hero__overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.62) 0%,
        rgba(0, 0, 0, 0.54) 7%,
        rgba(0, 0, 0, 0.44) 14%,
        rgba(0, 0, 0, 0.33) 21%,
        rgba(0, 0, 0, 0.23) 28%,
        rgba(0, 0, 0, 0.14) 35%,
        rgba(0, 0, 0, 0.07) 42%,
        rgba(0, 0, 0, 0.02) 49%,
        rgba(0, 0, 0, 0) 56%
    );
    opacity: var(--hero-scrim-top, 0.7);
}

/* No-image overlay - subtle gradient */
.article-hero--no-image .article-hero__overlay {
    background: linear-gradient(
        to bottom, 
        rgba(0, 0, 0, 0.2) 0%, 
        rgba(0, 0, 0, 0.1) 50%, 
        rgba(0, 0, 0, 0.3) 100%
    );
}

.article-hero__content {
    position: relative;
    z-index: 1;
    padding: 3rem 0 2.5rem;
    color: white;
    width: 100%;
}

.article-hero__breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.7);
    margin-bottom: 1.25rem;
}

.article-hero__breadcrumb a {
    color: rgba(255,255,255,0.7);
    transition: color 0.2s;
}

.article-hero__breadcrumb a:hover {
    color: white;
}

.article-hero__breadcrumb span {
    color: rgba(255,255,255,0.5);
}

.article-hero__tag {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--eu-blue);
    background: var(--eu-yellow);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-sm);
    margin-bottom: 1rem;
}

.article-hero__title {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 800;
    color: white;
    line-height: 1.2;
    margin-bottom: 1rem;
    max-width: 800px;
}

@media (min-width: 768px) {
    .article-hero__title { font-size: 2.5rem; }
}

.article-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    font-size: 0.875rem;
    color: rgba(255,255,255,0.8);
}

.article-hero__meta-item {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.article-hero__meta-item i {
    opacity: 0.7;
}

/* Article Content */
.article {
    padding: 3rem 0;
}

.article__container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .article__container {
        grid-template-columns: 1fr 320px;
    }
}

.article__content {
    min-width: 0;
}

/* ==================== AUTOR (2026-08-21) ====================
   Trei suprafețe, aceleași date (inc/author-profile.php):
     1. semnătura din antetul știrii  — .article-hero__byline
     2. caseta de la finalul știrii   — .author-card
     3. pagina autorului              — .author-hero
   Avatarul e comun (.author-avatar) și cade elegant: fotografie de
   profil → poza din Echipa (portret 3:4, decupat spre față) → inițiale
   pe tenta brandului. Fără Gravatar: editorii n-au conturi acolo, iar
   cererile ar scurge IP-urile vizitatorilor către un terț. */

.author-avatar {
    display: block;
    flex: 0 0 auto;
    border-radius: 50%;
    object-fit: cover;
    background: var(--brand-purple-100);
}

/* Pozele din Echipa sunt portrete 3:4 cu fața în treimea de sus —
   centrul geometric ar prinde bărbia și umerii. */
.author-avatar--portrait { object-position: 50% 14%; }

.author-avatar--initials {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: 0.01em;
    color: var(--brand-purple);
    background: var(--brand-purple-100);
    user-select: none;
}

.author-avatar--small { width: 28px; height: 28px; }
.author-avatar--small.author-avatar--initials { font-size: 0.6875rem; }
.author-avatar--large { width: 88px; height: 88px; }
.author-avatar--large.author-avatar--initials { font-size: 1.875rem; }

/* -------------------- 1. Semnătura din antetul știrii -------------------- */

.article-hero__byline {
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    border-radius: var(--radius-full);
    transition: color 0.2s;
}

.article-hero__byline .author-avatar {
    width: 26px;
    height: 26px;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.35);
}

/* Pe fundalul mov, inițialele sunt albe pe voal alb — nu mov pe mov */
.article-hero__byline .author-avatar--initials {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 0.625rem;
}

/* Fără linie în repaus (2026-08-21): în rândul de meta al știrii, singurul
   element subliniat atrăgea privirea înaintea titlului. Linia apare la
   hover și la focus, deci afordanța de link rămâne. */
.article-hero__byline-name {
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 3px;
    transition: text-decoration-color 0.2s;
}

.article-hero__byline:hover,
.article-hero__byline:focus-visible { color: #fff; }

.article-hero__byline:hover .article-hero__byline-name,
.article-hero__byline:focus-visible .article-hero__byline-name {
    text-decoration-color: #fff;
}

.article-hero__byline:hover .author-avatar {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.75);
}

/* selectorul include parintele: .article-hero__breadcrumb span (0,1,1) bate
   o clasa simpla (0,1,0) si ar tine numele autorului la 50% alb */
.article-hero__breadcrumb span.article-hero__breadcrumb-current {
    color: rgba(255, 255, 255, 0.9);
}

/* -------------------- 2. Caseta de la finalul știrii -------------------- */

.author-card {
    --author-portrait: 72px;
    --author-gap: 1.25rem;
    /* Rescrisă după critică (2026-08-21): era singurul bloc colorat și
       rotunjit din finalul știrii (tentă mov + rază 20px + poză 88px cu
       inel alb), adică arăta ca o casetă publicitară între două secțiuni
       despărțite de linii fine. Acum e albă, cu aceeași linie ca
       despărțitoarele articolului (--gray-200), și mai strânsă.
       Grila: [eticheta] pe tot randul; fotografia in stanga, pe doua randuri,
       ca biografia sa inceapa imediat sub functie, nu sub poza; piciorul taie
       toata latimea, deci linia de separare arata la fel si fara biografie. */
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: var(--author-gap);
    margin-top: 2.5rem;
    padding: 1.5rem;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-xl);
}

.author-card__eyebrow {
    grid-column: 1 / -1;
    grid-row: 1;
    margin: 0 0 0.75rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--brand-purple);
}

.author-card__portrait {
    grid-column: 1;
    grid-row: 2 / span 2;
    align-self: start;
    display: block;
    border-radius: 50%;
    /* pe fundal alb, inelul alb + umbra doar îngroșau componenta */
    box-shadow: none;
}

.author-card__portrait .author-avatar {
    width: var(--author-portrait);
    height: var(--author-portrait);
}

.author-card__body {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
}

.author-card__name {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.1875rem;
    font-weight: 800;
    line-height: 1.25;
    color: var(--text-primary);
}

.author-card__name a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 4px;
    transition: color 0.2s, text-decoration-color 0.2s;
}

.author-card__name a:hover,
.author-card__name a:focus-visible {
    color: var(--brand-purple);
    text-decoration-color: currentColor;
}

.author-card__role {
    margin: 0.2rem 0 0;
    font-size: 0.875rem;
    font-weight: 500;
    /* pe alb, --text-muted ar trece la limită (4,9:1); --text-secondary
       urcă la 9,2:1 și rămâne lizibil și la 14px */
    color: var(--text-secondary);
}

/* fara biografie: fotografia nu mai are al doilea rand de acoperit, iar
   textul se centreaza in dreptul ei — altfel ar ramane o banda goala sub
   functie, inaintea liniei de separare */
.author-card--no-bio .author-card__portrait { grid-row: 2; }
.author-card--no-bio .author-card__body { align-self: center; }

.author-card__bio {
    grid-column: 2;
    grid-row: 3;
    margin: 0.55rem 0 0;
    max-width: 62ch;
    font-size: 0.9375rem;
    line-height: 1.65;
    color: var(--text-secondary);
}

/* Contactul din Echipa, la vedere (2026-08-21): pastilele-iconiță ascundeau
   adresa și numărul în spatele unui `title`, adică exact informația pentru
   care cineva caută autorul. Iconițe rămân doar rețelele sociale. */
.author-card__contact {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 1.25rem;
    margin: 0.6rem 0 0;
    padding: 0;
    list-style: none;
    font-size: 0.875rem;
}

.author-card__contact-row {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.author-card__contact a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.15s ease;
}

.author-card__contact a:hover,
.author-card__contact a:focus-visible { color: var(--brand-purple); }

.author-card__contact a i {
    font-size: 0.8125rem;
    color: var(--brand-purple);
    opacity: 0.65;
}

.author-card__copy {
    position: relative;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--text-muted);
    font-size: 0.72rem;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.author-card__contact-row:hover .author-card__copy,
.author-card__copy:focus-visible,
.author-card__copy.is-copied { opacity: 1; }

.author-card__copy:hover {
    color: var(--brand-purple);
    background: var(--gray-100, #f4f4f5);
}

.author-card__copy:focus-visible {
    outline: 2px solid var(--brand-purple);
    outline-offset: 2px;
}

@media (hover: none) {
    .author-card__copy { opacity: 1; }
}

.author-card__foot {
    grid-column: 1 / -1;
    grid-row: 4;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    /* simetric: același aer deasupra și dedesubtul liniei. Înainte,
       biografia se oprea la 2px de linie, iar sub linie erau 18px */
    margin-top: 1.1rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--gray-200);
}

.author-card__all {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-purple);
}

.author-card__all i { transition: transform 0.2s; }

.author-card__all:hover i,
.author-card__all:focus-visible i { transform: translateX(4px); }

.author-card__socials {
    display: flex;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.author-card__social {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    color: var(--text-muted);
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 50%;
    transition: color 0.2s, border-color 0.2s, transform 0.2s;
}

.author-card__social:hover,
.author-card__social:focus-visible {
    color: var(--brand-purple);
    border-color: var(--brand-purple);
    transform: translateY(-2px);
}

@media (max-width: 600px) {
    .author-card {
        --author-portrait: 60px;
        --author-gap: 1rem;
        padding: 1.25rem;
    }
    /* biografia primeste toata latimea cardului — langa o poza de 60px ar
       ramane cu ~28 de caractere pe rand */
    .author-card__portrait { grid-row: 2; }
    .author-card__bio { grid-column: 1 / -1; }
    .author-card__portrait .author-avatar--initials { font-size: 1.25rem; }
    .author-card__name { font-size: 1.0625rem; }
    .author-card__foot { justify-content: flex-start; }
}

/* Bula de confirmare după copiere — aceeași formă ca pe cardurile din
   Echipa (acolo e albă pe fundal-poză; aici, mov pe fundal alb) */
.author-card__copy.is-copied,
.author-hero__copy.is-copied { color: #16a34a; }

.author-card__copy.is-copied::after,
.author-hero__copy.is-copied::after {
    content: attr(data-done);
    position: absolute;
    bottom: calc(100% + 7px);
    left: 50%;
    transform: translateX(-50%);
    padding: 0.4rem 0.6rem;
    background: var(--text-primary, #1a1a2e);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    border-radius: 6px;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    pointer-events: none;
    z-index: 5;
}

.author-card__copy.is-copied::before,
.author-hero__copy.is-copied::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--text-primary, #1a1a2e);
    border-bottom: none;
    pointer-events: none;
    z-index: 5;
}

@media (prefers-reduced-motion: reduce) {
    .author-card__all i,
    .author-card__social,
    .author-card__copy,
    .author-hero__copy { transition: none; }
    .author-card__all:hover i { transform: none; }
    .author-card__social:hover { transform: none; }
}

/* -------------------- 3. Pagina autorului -------------------- */

/* Filigranul hero-ului: pe pagina unui om, o siluetă, nu un ziar */
.author-hero.article-hero--no-image::after { content: '\f007'; }

.author-hero__main {
    display: flex;
    gap: 1.75rem;
    align-items: flex-start;
}

.author-hero__portrait .author-avatar {
    width: 120px;
    height: 120px;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.9), 0 10px 30px -10px rgba(0, 0, 0, 0.55);
}

.author-hero__portrait .author-avatar--initials {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 2.4rem;
}

.author-hero__body {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 760px;
}

.author-hero__eyebrow {
    margin: 0 0 0.4rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.6);
}

.author-hero__name { margin-bottom: 0.35rem; }

.author-hero__role {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
}

.author-hero__bio {
    margin-top: 0.75rem;
    max-width: 62ch;
}

/* Contact preluat din Echipa (unde e deja public). Nu apare deloc daca
   persoana nu mai e in Echipa — la fel ca functia si departamentul. */
.author-hero__contact {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin: 0.9rem 0 0;
    padding: 0;
    list-style: none;
    font-size: 0.875rem;
}

.author-hero__contact-row {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

/* Fără linie în repaus (2026-08-21), ca la numele autorului din antetul
   știrii: iconița și culoarea spun deja că e un contact acționabil.
   Linia apare la hover și la focus. */
.author-hero__contact a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 3px;
    transition: color 0.2s, text-decoration-color 0.2s;
}

.author-hero__contact a:hover,
.author-hero__contact a:focus-visible {
    color: #fff;
    text-decoration-color: #fff;
}

.author-hero__contact i {
    font-size: 0.8125rem;
    opacity: 0.7;
}

/* Buton de copiere — același comportament ca pe cardurile din Echipa:
   invizibil în repaus, apare la hover peste rând (sau la focus, pentru
   tastatură), confirmă cu o bulă. Pe touch rămâne mereu vizibil: acolo
   nu există hover, iar copierea e chiar mai utilă decât pe desktop. */
.author-hero__copy {
    position: relative;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.72rem;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.author-hero__contact-row:hover .author-hero__copy,
.author-hero__copy:focus-visible,
.author-hero__copy.is-copied { opacity: 1; }

.author-hero__copy:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
}

.author-hero__copy:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

@media (hover: none) {
    .author-hero__copy { opacity: 1; }
}

.author-hero__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
    margin-top: 1.15rem;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.8);
}

.author-hero__socials {
    display: flex;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.author-hero__social {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    transition: background-color 0.2s, color 0.2s, transform 0.2s;
}

.author-hero__social:hover,
.author-hero__social:focus-visible {
    background: #fff;
    color: var(--brand-purple);
    transform: translateY(-2px);
}

@media (max-width: 767px) {
    .author-hero__main {
        flex-direction: column;
        gap: 1rem;
    }
    .author-hero__portrait .author-avatar { width: 84px; height: 84px; }
    .author-hero__portrait .author-avatar--initials { font-size: 1.75rem; }
    .author-hero__foot { gap: 0.9rem; }
}

/* Contrast ridicat: tentele pale dispar, rămân contururile negre */
body.high-contrast .author-card {
    background: var(--white);
    border-color: #000;
}

body.high-contrast .author-card__eyebrow,
body.high-contrast .author-card__all { color: #000; }

/* Initialele: negru DOAR pe fundal deschis. Pe hero-ul mov discul e un voal
   alb translucid — innegrit acolo ar cobori la ~2,2:1, exact pe modul cerut
   de cititorii cu vedere slaba. */
body.high-contrast .author-card .author-avatar--initials,
body.high-contrast .anpcdefp-avatar-field .author-avatar--initials {
    background: #fff;
    color: #000;
}

body.high-contrast .article-hero__byline .author-avatar--initials,
body.high-contrast .author-hero__portrait .author-avatar--initials {
    background: #000;
    color: #fff;
}

body.high-contrast .author-card__social { border-color: #000; color: #000; }

@media (prefers-reduced-motion: reduce) {
    .author-card__all i,
    .author-card__social,
    .author-hero__social { transition: none; }
    .author-card__all:hover i { transform: none; }
    .author-card__social:hover,
    .author-hero__social:hover { transform: none; }
}

.article__lead {
    font-size: 1.1875rem;
    font-weight: 500;
    color: var(--text-primary);
    line-height: 1.7;
    margin-bottom: 2rem;
    padding-left: 1.25rem;
    border-left: 4px solid var(--brand-purple);
}

/* ==================== PROSE - Unified Typography ==================== */
/* Sursă unică pentru conținut: folosit de .article__body (posturi) și .entry-content (pagini) */

.prose,
.article__body {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--text-secondary);
}

.prose p,
.article__body p {
    margin-bottom: 1.5rem;
}

.prose h2,
.article__body h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 2.5rem 0 1rem;
}

.prose h3,
.article__body h3 {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 2rem 0 0.75rem;
}

.prose h4,
.article__body h4 {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 1.75rem 0 0.5rem;
}

.prose ul,
.prose ol,
.article__body ul,
.article__body ol {
    margin: 0 0 1.5rem 1.5rem;
    list-style: disc;
}

.prose ol,
.article__body ol {
    list-style: decimal;
}

.prose li,
.article__body li {
    margin-bottom: 0.5rem;
}

.prose strong,
.article__body strong {
    font-weight: 700;
    color: var(--text-primary);
}

.prose a,
.article__body a {
    color: var(--brand-purple);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.prose a:hover,
.article__body a:hover {
    color: var(--brand-purple-dark);
}

.prose blockquote,
.article__body blockquote {
    margin: 2rem 0;
    padding: 1.5rem;
    background: var(--brand-purple-50);
    border-left: 4px solid var(--brand-purple);
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    font-style: italic;
    color: var(--text-primary);
}

.prose blockquote p:last-child,
.article__body blockquote p:last-child {
    margin-bottom: 0;
}

.prose table,
.article__body table {
    width: 100%;
    border-collapse: collapse;
    margin: 2rem 0;
    font-size: 0.9375rem;
}

.prose th,
.article__body th {
    background: var(--gray-50);
    font-weight: 600;
    color: var(--text-primary);
    text-align: left;
    padding: 0.75rem 1rem;
    border-bottom: 2px solid var(--gray-200);
}

.prose td,
.article__body td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--gray-100);
}

.prose tr:hover,
.article__body tr:hover {
    background: var(--gray-50);
}

.prose hr,
.article__body hr {
    border: none;
    border-top: 1px solid var(--gray-200);
    margin: 2.5rem 0;
}

/* Article-specific: image container */
.article__image {
    margin: 2rem 0;
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.article__image img {
    width: 100%;
}

.article__image-caption {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-top: 0.75rem;
    text-align: center;
}

/* WordPress Images - Full Width with Border Radius */
.prose img {
    max-width: 100%;
    height: auto;
    margin: 1.5rem 0;
}

.article__body img {
    max-width: 100%;
    height: auto;
    margin: 1.5rem 0;
}

.prose .wp-block-image,
.prose figure {
    margin: 2rem 0;
}

.article__body .wp-block-image,
.article__body figure {
    margin: 2rem 0;
    max-width: 100%;
}

.prose .wp-block-image img,
.prose figure img {
    max-width: 100%;
    height: auto;
    margin: 0;
}

.article__body .wp-block-image img,
.article__body figure img {
    max-width: 100%;
    height: auto;
    margin: 0;
}

.prose .wp-block-image figcaption,
.prose figure figcaption,
.prose .wp-caption-text,
.article__body .wp-block-image figcaption,
.article__body figure figcaption,
.article__body .wp-caption-text {
    font-size: 0.8125rem;
    color: var(--text-muted);
    text-align: center;
    margin-top: 0.75rem;
    padding: 0 1rem;
    font-style: italic;
}

/* Gallery images */
.prose .wp-block-gallery,
.article__body .wp-block-gallery {
    margin: 2rem 0;
    gap: 1rem;
}

.prose .wp-block-gallery .wp-block-image,
.article__body .wp-block-gallery .wp-block-image {
    margin: 0;
}

/* Embedded content */
.prose iframe,
.prose .wp-block-embed,
.article__body iframe,
.article__body .wp-block-embed {
    width: 100%;
    border-radius: var(--radius-xl);
    margin: 2rem 0;
}

.article__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--gray-200);
}

.article__tag {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--gray-100);
    border-radius: var(--radius-full);
    transition: all 0.2s;
}

.article__tag:hover {
    background: var(--gray-200);
    color: var(--text-primary);
}

.article__nav {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--gray-200);
}

.article__nav-link {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1rem;
    background: var(--gray-50);
    border-radius: var(--radius-lg);
    flex: 1;
    transition: all 0.2s;
}

.article__nav-link:hover {
    background: var(--gray-100);
}

.article__nav-link--prev {
    align-items: flex-start;
}

.article__nav-link--next {
    align-items: flex-end;
    text-align: right;
}

.article__nav-label {
    font-size: 0.75rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.article__nav-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
}

/* Sidebar */
.article__sidebar {
    display: block;
    order: 2; /* Asigură că apare după conținut pe mobil */
}

@media (min-width: 1024px) {
    .article__sidebar {
        order: unset;
    }
}

.sidebar-widget {
    background: var(--gray-50);
    border-radius: var(--radius-xl);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.sidebar-widget__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--brand-purple);
}

.sidebar-widget__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.sidebar-widget__item {
    display: flex;
    gap: 0.75rem;
    padding: 0.875rem 0;
    background: transparent;
    border-radius: 0;
    border: none;
    border-bottom: 1px solid var(--gray-200);
    transition: all 0.2s;
}

.sidebar-widget__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.sidebar-widget__item:first-child {
    padding-top: 0;
}

.sidebar-widget__item:hover {
    border-color: var(--gray-200);
    box-shadow: none;
}

.sidebar-widget__item:hover .sidebar-widget__item-title {
    color: var(--brand-purple);
}

.sidebar-widget__item-image {
    width: 72px;
    height: 54px;
    border-radius: var(--radius-md);
    object-fit: cover;
    flex-shrink: 0;
}

/* Placeholder for items without image */
.sidebar-widget__item-placeholder {
    width: 72px;
    height: 54px;
    border-radius: var(--radius-md);
    flex-shrink: 0;
    background: linear-gradient(135deg, #f0f0f4 0%, #e8e8ed 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(68, 0, 152, 0.15);
    font-size: 1.25rem;
}

.sidebar-widget__item-content {
    flex: 1;
    min-width: 0;
}

.sidebar-widget__item-tag {
    display: inline-block;
    font-size: 0.5625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.125rem 0.375rem;
    border-radius: var(--radius-sm);
    margin-bottom: 0.25rem;
    color: #047857;
    background: #d1fae5;
}

.sidebar-widget__item-title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s;
}

.sidebar-widget__item-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.sidebar-widget__item-date {
    font-size: 0.6875rem;
    color: var(--text-muted);
}

.sidebar-widget__item-views {
    font-size: 0.6875rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* Share Buttons */
.share-buttons {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.share-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    background: var(--white);
    border: 1px solid var(--gray-200);
    color: var(--text-secondary);
    transition: all 0.2s;
}

.share-btn:hover {
    border-color: var(--brand-purple);
    color: var(--brand-purple);
}

.share-btn--facebook:hover {
    background: #1877F2;
    border-color: #1877F2;
    color: white;
}

.share-btn--twitter:hover {
    background: #1DA1F2;
    border-color: #1DA1F2;
    color: white;
}

.share-btn--linkedin:hover {
    background: #0A66C2;
    border-color: #0A66C2;
    color: white;
}

.share-btn--email:hover {
    background: var(--brand-purple);
    border-color: var(--brand-purple);
    color: white;
}

/* ==================== ARCHIVE / BLOG ==================== */
.archive-header {
    position: relative;
    background: linear-gradient(135deg, var(--brand-purple) 0%, var(--brand-purple-dark) 100%);
    padding: calc(var(--header-height) + 4rem) 0 3rem;
    color: white;
    text-align: center;
}

.archive-header__title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 800;
    margin-bottom: 0.5rem;
}

.archive-header__desc {
    font-size: 1.0625rem;
    color: rgba(255,255,255,0.8);
    max-width: 600px;
    margin: 0 auto;
}

.posts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 3rem 0;
}

@media (min-width: 640px) {
    .posts-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.post-card {
    background: var(--white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all 0.3s;
}

.post-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
}

.post-card__image {
    aspect-ratio: 16/9;
    overflow: hidden;
}

.post-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.post-card:hover .post-card__image img {
    transform: scale(1.05);
}

.post-card__content {
    padding: 1.5rem;
}

.post-card__meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-bottom: 0.75rem;
}

.post-card__category {
    background: var(--brand-purple-100);
    color: var(--brand-purple);
    padding: 0.25rem 0.625rem;
    border-radius: var(--radius-full);
    font-weight: 600;
}

.post-card__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.4;
    margin-bottom: 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.post-card__title a {
    color: inherit;
    transition: color 0.2s;
}

.post-card__title a:hover {
    color: var(--brand-purple);
}

.post-card__excerpt {
    font-size: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Pagination */
.pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 0;
}

.pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 0.75rem;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    font-weight: 500;
    transition: all 0.2s;
}

.pagination .page-numbers:hover {
    border-color: var(--brand-purple);
    color: var(--brand-purple);
}

.pagination .page-numbers.current {
    background: var(--brand-purple);
    border-color: var(--brand-purple);
    color: white;
}

/* ==================== 404 PAGE ==================== */
/* ==================== PAGINA 404 (2026-08-21) ====================
   Rescrisă după critică: pagina avea doar antetul plutitor al site-ului
   peste conținut alb (logo alb + linkuri albe = invizibile) și un singur
   link de ieșire. Acum are antetul comun (article-hero, cu efect de
   fereastră dacă e aleasă o imagine din Personalizare) și, dedesubt, o
   rampă de întoarcere: căutare + secțiunile din meniu + raportare.
   Cifra „404” decorativă a dispărut: era cel mai mare element din pagină
   și nu spunea nimic unui profesor care caută un termen limită. */

.error-404 {
    padding-top: 3rem;
    padding-bottom: 4rem;
}

/* Căutarea, în panoul care poartă acțiunea principală */
.error-404__panel {
    padding: 1.75rem;
    background: var(--brand-purple-50, #f6f2fa);
    border: 1px solid var(--brand-purple-100, #ede4f7);
    border-radius: var(--radius-xl, 16px);
}

.error-404__lead {
    margin: 0 0 0.9rem;
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text-primary);
}

/* formularul comun e limitat la 500px — aici umple panoul */
.error-404__panel .search-form { max-width: none; }

.error-404__hint {
    margin: 0.8rem 0 0;
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--text-muted);
}

.error-404__subtitle {
    margin: 2.5rem 0 1rem;
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text-primary);
}

/* Destinațiile: rânduri, nu carduri — sunt linkuri, nu obiecte */
.error-404__links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--gray-200);
}

@media (min-width: 640px) {
    .error-404__links { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
}

.error-404__links a {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 0.5rem;
    border-bottom: 1px solid var(--gray-200);
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    transition: color 0.15s ease, background 0.15s ease;
}

.error-404__links a:hover,
.error-404__links a:focus-visible {
    color: var(--brand-primary, var(--brand-purple));
    background: var(--brand-purple-50, #f6f2fa);
}

.error-404__links a:focus-visible {
    outline: 3px solid var(--brand-primary, var(--brand-purple));
    outline-offset: -3px;
}

.error-404__links i {
    flex: none;
    width: 20px;
    font-size: 0.8rem;
    color: var(--brand-primary, var(--brand-purple));
    transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}

.error-404__links a:hover i { transform: translateX(3px); }

.error-404__actions { margin-top: 2rem; }

.error-404__report {
    margin: 2.5rem 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--gray-200);
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--text-secondary);
}

.error-404__report a {
    font-weight: 700;
    color: var(--brand-primary, var(--brand-purple));
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Pe telefon câmpul rămânea la ~215px lângă buton — prea îngust pentru
   unealta principală a paginii; se stivuiesc */
@media (max-width: 520px) {
    .error-404__panel { padding: 1.25rem; }
    .error-404__panel .search-form { flex-direction: column; }
    .error-404__panel .search-form__btn { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .error-404__links a,
    .error-404__links i { transition: none; }
    .error-404__links a:hover i { transform: none; }
}

/* ==================== SEARCH RESULTS ==================== */
.search-form {
    display: flex;
    gap: 0.75rem;
    max-width: 500px;
}

.search-form__input {
    flex: 1;
    padding: 0.875rem 1.25rem;
    font-size: 1rem;
    border: 2px solid var(--gray-200);
    border-radius: var(--radius-lg);
    outline: none;
    transition: border-color 0.2s;
}

.search-form__input:focus {
    border-color: var(--brand-purple);
}

.search-form__btn {
    padding: 0.875rem 1.5rem;
    background: var(--brand-purple);
    color: white;
    border: none;
    border-radius: var(--radius-lg);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.search-form__btn:hover {
    background: var(--brand-purple-dark);
}

/* Search Form Wrapper */
.search-form-wrapper {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--gray-200);
}

.search-form-wrapper .search-form {
    max-width: 600px;
}

/* No Results - Suggestions */
.no-results__suggestions {
    text-align: left;
    background: var(--gray-50);
    padding: 1.25rem 1.5rem;
    border-radius: var(--radius-lg);
    margin-top: 1.5rem;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

.no-results__suggestions h3 {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 0.5rem;
}

.no-results__suggestions ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.no-results__suggestions li {
    font-size: 0.8125rem;
    color: var(--text-secondary);
    padding: 0.25rem 0;
    padding-left: 1.25rem;
    position: relative;
}

.no-results__suggestions li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--brand-purple);
    font-weight: 600;
}
.alignleft {
    float: left;
    margin: 0.25rem 1.5rem 1rem 0;
}

.alignright {
    float: right;
    margin: 0.25rem 0 1rem 1.5rem;
}

.article__body img.alignleft,
.prose img.alignleft {
    float: left;
    margin: 0.25rem 1.5rem 1rem 0;
    max-width: 50%;
    height: auto;
}

.article__body img.alignright,
.prose img.alignright {
    float: right;
    margin: 0.25rem 0 1rem 1.5rem;
    max-width: 50%;
    height: auto;
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Clear floats after aligned images */
.article__body p::after,
.prose p::after {
    content: '';
    display: table;
    clear: both;
}

.wp-caption {
    max-width: 100%;
}

.wp-caption-text {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-top: 0.5rem;
}

.gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}

.gallery-item {
    margin: 0;
}

.gallery-item img {
    border-radius: var(--radius-md);
}

/* Screen Reader Text */
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}

.screen-reader-text:focus {
    background-color: #f1f1f1;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    color: #21759b;
    display: block;
    font-size: 14px;
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* ==================== SEARCH MODAL ==================== */
.search-modal {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 15vh;
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s ease;
}

.search-modal.is-open {
    visibility: visible;
    opacity: 1;
}

.search-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(26, 26, 46, 0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.search-modal__content {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin: 0 1rem;
    background: var(--white);
    border-radius: var(--radius-2xl);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    padding: 2rem;
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.search-modal.is-open .search-modal__content {
    transform: translateY(0);
}

.search-modal__close {
    position: absolute;
    top: -12px;
    right: -12px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border: none;
    border-radius: 50%;
    color: var(--text-secondary);
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.search-modal__close:hover {
    background: var(--gray-100);
    color: var(--text-primary);
    transform: scale(1.1);
}

.search-modal__form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 480px) {
    .search-modal__form {
        flex-direction: row;
    }
}

.search-modal__input-wrapper {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
}

.search-modal__input-wrapper i {
    position: absolute;
    left: 1rem;
    color: var(--brand-purple);
    font-size: 1.125rem;
}

.search-modal__input {
    width: 100%;
    padding: 1rem 1rem 1rem 3rem;
    font-size: 1rem;
    border: 2px solid var(--brand-purple);
    border-radius: var(--radius-lg);
    background: var(--white);
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.search-modal__input:focus {
    border-color: var(--brand-purple);
    box-shadow: 0 0 0 4px rgba(68, 0, 152, 0.15);
}

.search-modal__input::placeholder {
    color: var(--text-muted);
}

.search-modal__btn {
    padding: 1rem 1.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--white);
    background: var(--brand-purple);
    border: none;
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.search-modal__btn:hover {
    background: var(--brand-purple-dark);
    transform: translateY(-1px);
}

.search-modal__hint {
    text-align: center;
    margin-top: 1rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/* ==================== STORIES FULL WIDTH ==================== */
.stories--fullwidth {
    padding: 4rem 0;
}

.stories__header {
    text-align: center;
    margin-bottom: 2.5rem;
}

.stories__title {
    /* aliniat cu .hs-title — aceeași dimensiune pe toate secțiunile */
    font-size: clamp(28px, 4vw, var(--section-title-size, 44px));
    font-weight: 800;
    line-height: 1.15;
    color: var(--text-primary);
    margin-bottom: 0.5rem;
}

.stories__title span {
    color: var(--brand-purple);
}

.stories__title::after {
    content: '';
    display: block;
    width: 40px;
    height: 3px;
    background: var(--accent-orange);
    margin: 0.75rem auto 0;
    border-radius: 2px;
}

.stories__subtitle {
    font-size: 1rem;
    color: var(--text-muted);
    margin-top: 1rem;
}

.stories--fullwidth .stories__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .stories--fullwidth .stories__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .stories--fullwidth .stories__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ==================== IMPROVED SIDEBAR WIDGETS ==================== */

/* Recent Posts - Improved Design */
.recent-posts {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.recent-posts {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.recent-post-card {
    display: flex;
    gap: 0.875rem;
    padding: 0.875rem 0;
    background: transparent;
    border-radius: 0;
    border: none;
    border-bottom: 1px solid var(--gray-200);
    transition: all 0.2s;
}

.recent-post-card:first-child {
    padding-top: 0;
}

.recent-post-card:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.recent-post-card:hover {
    border-color: var(--gray-200);
    box-shadow: none;
    transform: none;
}

.recent-post-card__image {
    flex-shrink: 0;
    width: 72px;
    height: 54px;
    border-radius: var(--radius-md);
    overflow: hidden;
}

.recent-post-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.recent-post-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f0f0f4 0%, #e8e8ed 100%);
    color: rgba(68, 0, 152, 0.15);
    font-size: 1.25rem;
}

.recent-post-card__content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.recent-post-card__tag {
    display: inline-block;
    font-size: 0.5625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.125rem 0.375rem;
    border-radius: var(--radius-sm);
    width: fit-content;
}

.recent-post-card__title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    transition: color 0.2s;
}

.recent-post-card:hover .recent-post-card__title {
    color: var(--brand-purple);
}

.recent-post-card__meta {
    display: flex;
    gap: 0.75rem;
    font-size: 0.6875rem;
    color: var(--text-muted);
    margin-top: auto;
}

.recent-post-card__meta span {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.recent-post-card__meta i {
    font-size: 0.625rem;
}

/* Related Posts - Compact List Style */
.related-posts {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.related-post-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.875rem 0;
    border-bottom: 1px solid var(--gray-200);
    transition: all 0.2s;
}

.related-post-item:first-child {
    padding-top: 0;
}

.related-post-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.related-post-item:hover {
    padding-left: 0.5rem;
}

.related-post-item__title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s;
}

.related-post-item:hover .related-post-item__title {
    color: var(--brand-purple);
}

.related-post-item__date {
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* ==================== PAGE HERO - Clean Simple Design ==================== */
.page-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--white);
    overflow: hidden;
}

/* Top violet band - header background only */
.page-hero__band {
    position: relative;
    height: 62px;
    background: var(--brand-purple);
    overflow: hidden;
}

.page-hero__band::before {
    display: none;
}

/* Content area on white background */
.page-hero__content {
    position: relative;
    z-index: 1;
    padding: 1.5rem 0 1rem;
    background: var(--white);
    width: 100%;
}

@media (min-width: 768px) {
    .page-hero__content {
        padding: 2rem 0 2.5rem;
    }
}

.page-hero__breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--text-muted);
    margin-bottom: 1rem;
}

.page-hero__breadcrumb a {
    color: var(--text-secondary);
    transition: color 0.2s;
}

.page-hero__breadcrumb a:hover {
    color: var(--brand-purple);
}

.page-hero__breadcrumb span {
    color: var(--gray-400);
}

/* Title wrapper - simple, no bar */
.page-hero__title-wrapper {
    display: block;
}

/* Hide accent bar */
.page-hero__accent {
    display: none;
}

.page-hero__title {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.2;
}

@media (min-width: 768px) {
    .page-hero__title { font-size: 2rem; }
}

@media (min-width: 1024px) {
    .page-hero__title { font-size: 2.25rem; }
}

.page-hero__desc {
    font-size: 1.0625rem;
    color: var(--text-secondary);
    max-width: 600px;
    margin-top: 0.75rem;
}

/* Page Meta - below title */
.page-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-top: 0.75rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.page-hero__meta-item {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.page-hero__meta-item i {
    opacity: 0.6;
    font-size: 0.75rem;
}

/* Page Content Wrapper - consistent width for title and content */
.page-content-wrapper {
    max-width: 960px;
}

/* Remove old overlay styles */
.page-hero__overlay {
    display: none;
}

/* Page article styling (not single posts) */
.article .page-content-wrapper {
    /* Ensure consistent styling */
}

/* ==================== CONTAINER NARROW ==================== */
.container--narrow {
    max-width: 960px;
}

/* ==================== BREADCRUMBS (anpcdefp_breadcrumbs()) ==================== */
.breadcrumbs {
    margin-bottom: 1rem;
}

.breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.875rem;
    color: var(--text-muted);
}

.breadcrumb__item {
    display: flex;
    align-items: center;
}

.breadcrumb__link {
    color: var(--text-secondary);
    transition: color 0.2s;
}

.breadcrumb__link:hover {
    color: var(--brand-purple);
}

.breadcrumb__sep {
    display: inline-flex;
    align-items: center;
    margin: 0 0.5rem;
    color: var(--gray-400);
    font-size: 0.625rem;
}

.breadcrumb__current {
    color: var(--text-muted);
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ==================== PAGE CONTENT (Static Pages) ==================== */
.page-content {
    padding: 2.5rem 0 4rem;
}

.entry-content {
    /* Typography handled by .prose class */
}

/* Spacing between page sections */
.page-content .entry-content > *:first-child {
    margin-top: 0;
}

.page-content .entry-content > *:last-child {
    margin-bottom: 0;
}

.article .page-content-wrapper .article__content {
    padding-top: 0;
}

.article .page-content-wrapper .article__image {
    margin-bottom: 2rem;
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.article .page-content-wrapper .article__image img {
    width: 100%;
    height: auto;
    display: block;
}

.article .page-content-wrapper .article__body {
    font-size: 1.0625rem;
    line-height: 1.75;
}

/* ==================== NEWS ARCHIVE ==================== */
.news-archive {
    padding: 3rem 0 4rem;
}

/* ===== News Archive Sidebar Layout ===== */
.news-archive--with-sidebar .news-archive__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin-top: 0.5rem;
}

@media (min-width: 768px) {
    .news-archive--with-sidebar .news-archive__layout {
        grid-template-columns: 280px 1fr;
        gap: 2rem;
        margin-top: 2rem;
    }
}

/* Sidebar - accordion on mobile */
.news-archive__sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.news-archive__sidebar-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.875rem 1.125rem;
    background: white;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-xl);
    cursor: pointer;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--text-primary);
    transition: all 0.2s;
}

.news-archive__sidebar-toggle i {
    font-size: 0.75rem;
    transition: transform 0.3s ease;
    color: var(--text-muted);
}

.news-archive__sidebar-toggle.is-open i {
    transform: rotate(180deg);
}

.news-archive__sidebar-toggle:hover {
    border-color: var(--brand-purple);
    color: var(--brand-purple);
}

.news-archive__sidebar-content {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

@media (max-width: 767px) {
    .news-archive__sidebar-content {
        display: none;
        margin-top: 0.75rem;
    }

    .news-archive__sidebar-content.is-open {
        display: flex;
    }
}

@media (min-width: 768px) {
    .news-archive__sidebar-toggle {
        display: none;
    }
}

.news-archive__main {
    min-width: 0;
}

/* Programs strip - hide on mobile */
@media (max-width: 767px) {
    .programs-strip {
        display: none;
    }
}

.news-archive__results-info {
    font-size: 0.875rem;
    color: var(--text-muted);
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--gray-200);
}

/* Sidebar Widgets */
.opp-sidebar-widget {
    background: white;
    border-radius: var(--radius-xl);
    padding: 1.25rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.opp-sidebar-widget__title {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.opp-sidebar-widget__title i {
    font-size: 0.75rem;
    opacity: 0.7;
}

/* Search Form */
.opp-search-form__input-wrapper {
    display: flex;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.opp-search-form__input {
    flex: 1;
    border: none;
    padding: 0.625rem 0.875rem;
    font-size: 0.875rem;
    outline: none;
    background: transparent;
}

.opp-search-form__input:focus {
    box-shadow: none;
}

.opp-search-form__btn {
    background: var(--brand-purple);
    color: white;
    border: none;
    padding: 0.625rem 0.875rem;
    cursor: pointer;
    transition: background 0.2s;
}

.opp-search-form__btn:hover {
    opacity: 0.9;
}

/* Category Cards */
.opp-category-cards {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.opp-cat-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    border-radius: var(--radius-lg);
    transition: all 0.2s;
    text-decoration: none;
    color: var(--text-primary);
}

.opp-cat-card:hover {
    background: var(--gray-50);
}

.opp-cat-card--active {
    background: var(--brand-light, #eef2ff);
    box-shadow: inset 0 0 0 1px var(--brand-purple);
}

.opp-cat-card__icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 0.8125rem;
    flex-shrink: 0;
}

.opp-cat-card__content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.opp-cat-card__label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.opp-cat-card__count {
    font-size: 0.6875rem;
    color: var(--text-muted);
}

/* Tags Cloud */
.news-sidebar__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.news-sidebar__tag {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.3125rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-full);
    transition: all 0.2s;
    text-decoration: none;
}

.news-sidebar__tag:hover {
    background: var(--gray-100);
    color: var(--text-primary);
    border-color: var(--gray-300);
}

.news-sidebar__tag--active {
    background: var(--brand-purple);
    color: white;
    border-color: var(--brand-purple);
}

.news-sidebar__tag-count {
    font-size: 0.625rem;
    opacity: 0.7;
}

/* Active Filters */
.news-sidebar__active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.news-sidebar__active-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
    background: var(--brand-light, #eef2ff);
    color: var(--brand-purple);
    border-radius: var(--radius-full);
}

.news-sidebar__remove-filter {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-purple);
    text-decoration: none;
    opacity: 0.6;
    transition: opacity 0.2s;
}

.news-sidebar__remove-filter:hover {
    opacity: 1;
}

.news-sidebar__clear-all {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    color: var(--text-muted);
    text-decoration: none;
    transition: color 0.2s;
}

.news-sidebar__clear-all:hover {
    color: var(--brand-purple);
}

/* Override grid for sidebar layout */
.news-archive--with-sidebar .news-archive__grid {
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .news-archive--with-sidebar .news-archive__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Vertical cards in sidebar layout */
.news-archive--with-sidebar .news-archive__card {
    display: flex;
    flex-direction: column;
    padding: 0;
    border-bottom: none;
    border-radius: var(--radius-xl);
    background: white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    overflow: hidden;
}

.news-archive--with-sidebar .news-archive__card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Old filter CSS kept for backwards compat */
.news-archive__filters {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--gray-200);
}

.news-archive__filter-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.news-archive__filter-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-primary);
}

.news-archive__filter-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.news-archive__filter-tag {
    display: inline-block;
    padding: 0.375rem 0.875rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--gray-100);
    border-radius: var(--radius-full);
    transition: all 0.2s;
}

.news-archive__filter-tag:hover {
    background: var(--gray-200);
    color: var(--text-primary);
}

.news-archive__filter-tag.active {
    background: var(--brand-purple);
    color: white;
}

/* News Grid */
.news-archive__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .news-archive__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .news-archive__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* 4 coloane pe ecrane late — pagina de știri nu mai are sidebar (2026-08-17) */
@media (min-width: 1200px) {
    .news-archive__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Bara de filtre de pe pagina Știri: categoriile la stânga, căutarea la
   dreapta (înlocuiește fostul sidebar) */
.news-archive__filters--bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    flex-wrap: wrap;
}
.news-archive__searchbar { flex: 0 1 300px; min-width: 220px; }
.news-archive__results-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

/* News Card */
.news-archive__card {
    background: var(--white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    transition: all 0.2s;
}

.news-archive__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: var(--gray-300);
}

.news-archive__card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.news-archive__card-image {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--gray-100);
}

.news-archive__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.news-archive__card:hover .news-archive__card-image img {
    transform: scale(1.05);
}

/* Placeholder with subtle neutral gradient and icon */
.news-archive__card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f8f8fa 0%, #f0f0f4 50%, #e8e8ed 100%);
    position: relative;
    overflow: hidden;
}

/* Subtle pattern overlay */
.news-archive__card-placeholder::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: 
        radial-gradient(circle at 20% 80%, rgba(68, 0, 152, 0.02) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(68, 0, 152, 0.02) 0%, transparent 50%);
    pointer-events: none;
}

/* Large decorative icon */
.news-archive__card-placeholder::after {
    content: '\f1ea';
    font-family: 'Font Awesome 6 Free';
    font-weight: 400;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 3.5rem;
    color: rgba(68, 0, 152, 0.06);
    pointer-events: none;
}

.news-archive__card-tag {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    display: inline-block;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.25rem 0.625rem;
    border-radius: var(--radius-sm);
    z-index: 2;
    /* Default colors */
    color: var(--eu-blue);
    background: var(--eu-yellow);
}

/* Tag color variants for archive cards */
.news-archive__card-tag.news-card__tag--erasmus { color: #003399; background: #e8f0fe; }
.news-archive__card-tag.news-card__tag--esc { color: #5a8a2e; background: #ecf5d8; }
.news-archive__card-tag.news-card__tag--see { color: #b45309; background: #fef3c7; }
.news-archive__card-tag.news-card__tag--etwinning { color: #00857a; background: #d1fae5; }
.news-archive__card-tag.news-card__tag--eurydice { color: #7c3aed; background: #ede9fe; }
.news-archive__card-tag.news-card__tag--raport { color: #7c3aed; background: #ede9fe; }
.news-archive__card-tag.news-card__tag--apel { color: #b45309; background: #fef3c7; }
.news-archive__card-tag.news-card__tag--eveniment { color: #be185d; background: #fce7f3; }
.news-archive__card-tag.news-card__tag--anunt { color: #047857; background: #d1fae5; }

.news-archive__card-body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.news-archive__card-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.4;
    margin-bottom: 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s;
}

.news-archive__card:hover .news-archive__card-title {
    color: var(--brand-purple);
}

.news-archive__card-excerpt {
    font-size: 0.875rem;
    color: var(--text-muted);
    line-height: 1.6;
    margin-bottom: 1rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}

.news-archive__card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: auto;
}

.news-archive__card-meta span {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.news-archive__card-meta i {
    font-size: 0.6875rem;
}

/* Mobile tag - hidden by default, shown on mobile for no-image cards */
.news-archive__card-tag--mobile {
    display: none;
    position: static;
    margin-bottom: 0.5rem;
    width: fit-content;
    align-self: flex-start;
}

/* Mobile: Hide image area for cards without image, show mobile tag */
@media (max-width: 767px) {
    .news-archive__card--no-image .news-archive__card-image {
        display: none;
    }
    
    .news-archive__card--no-image .news-archive__card-tag--mobile {
        display: inline-block;
    }
}

/* Pagination */
.news-archive__pagination {
    margin-top: 3rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0.5rem 0;
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem;
}

.pagination {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: nowrap;
    justify-content: center;
    min-width: min-content;
}

.pagination__item a,
.pagination__item span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    transition: all 0.2s;
    white-space: nowrap;
}

.pagination__item a:hover {
    background: var(--gray-100);
    border-color: var(--gray-300);
    color: var(--text-primary);
}

.pagination__item .current {
    background: var(--brand-purple);
    border-color: var(--brand-purple);
    color: white;
}

.pagination__item .prev,
.pagination__item .next {
    gap: 0.5rem;
}

/* Mobile pagination adjustments */
@media (max-width: 480px) {
    .pagination {
        gap: 0.375rem;
    }
    
    .pagination__item a,
    .pagination__item span {
        min-width: 36px;
        height: 36px;
        padding: 0 0.5rem;
        font-size: 0.8125rem;
    }
    
    .pagination__item .prev,
    .pagination__item .next {
        padding: 0 0.625rem;
    }
}

@media (min-width: 640px) {
    .news-archive__pagination {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        justify-content: center;
        display: flex;
    }
}

/* Empty State */
.news-archive__empty {
    text-align: center;
    padding: 4rem 2rem;
    background: var(--gray-50);
    border-radius: var(--radius-xl);
}

.news-archive__empty i {
    font-size: 3rem;
    color: var(--gray-300);
    margin-bottom: 1rem;
}

.news-archive__empty h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 0.5rem;
}

.news-archive__empty p {
    font-size: 0.9375rem;
    color: var(--text-muted);
}

/* Sidebar Widget Variations */
.sidebar-widget--share {
    background: var(--white);
    border: 1px solid var(--gray-200);
}

.sidebar-widget--recent {
    background: var(--gray-50);
}

.sidebar-widget--related {
    background: var(--white);
    border: 1px solid var(--gray-200);
}

/* ==================== HOMEPAGE SECTIONS v2.2 (hs-) ====================
   About / Programs / Impact / Partners — configurable via Customizer.
   Namespaced hs- to avoid collisions with legacy .section/.program-card. */

.hs-section { padding: 88px 0; }

/* ==================== FILIGRAN DE SECȚIUNE (marca „a”) ====================
   Wrapper absolut peste toată secțiunea, cu overflow ascuns — imaginea
   poate ieși din cadru fără să lărgească pagina. Secțiunea-gazdă primește
   clasa .hs-has-watermark (position + stacking context), iar filigranul
   stă la z-index -1: deasupra fundalului secțiunii, sub conținut. */
.hs-has-watermark { position: relative; z-index: 0; }
.hs-watermark {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: -1;
}
.hs-watermark img {
    position: absolute;
    width: var(--hsw-w, 34%);
    height: auto;
    opacity: var(--hsw-opacity, 0.05);
}
/* Antet (V2): colț sus, tăiat discret de margine */
.hs-watermark--antet-stanga  img { top: -12%; left: -5%; }
.hs-watermark--antet-dreapta img { top: -12%; right: -5%; }
/* Ieșit (V3): pe jumătate afară, jos */
.hs-watermark--iesit-stanga  img { bottom: -24%; left: -7%; }
.hs-watermark--iesit-dreapta img { bottom: -24%; right: -7%; }
/* Dimensiuni (procent din lățimea secțiunii) */
.hs-watermark--mic   { --hsw-w: 24%; }
.hs-watermark--mediu { --hsw-w: 34%; }
.hs-watermark--mare  { --hsw-w: 46%; }
body.high-contrast .hs-watermark { display: none; }
@media (max-width: 767px) {
    /* pe mobil secțiunile sunt înalte și înguste — procentul din lățime
       ar da o marcă minusculă; plafonăm la o prezență vizibilă dar calmă */
    .hs-watermark img { width: max(var(--hsw-w, 34%), 200px); max-width: 70%; }
}
.hs-section--gray { background: var(--gray-50); }

/* --- Section heading block ---
   Same idea as the .section__title pattern (Ultimele știri): 1.5rem/800,
   short bar under the title, small muted subtitle. Sections WITHOUT a
   right-side CTA center the heading; bar uses the brand color. */
.hs-head { text-align: center; margin: 0 0 1.75rem; }
.hs-title {
    font-family: var(--font-display);
    /* dimensiune uniformă pe toate secțiunile (Customizer → Tipografie);
       clamp coboară automat pe ecrane mici — direcția: titluri mari,
       îndrăznețe, ca pe prototipul socialit (h2 ≈ 34–50px) */
    font-size: clamp(28px, 4vw, var(--section-title-size, 44px));
    font-weight: 800;
    line-height: 1.15;
    color: var(--text-primary);
}
.hs-title--left { text-align: left; }
.hs-accent, .hs-title span { color: var(--brand-primary); }
.hs-sub {
    margin-top: 0.5rem;
    color: var(--text-muted);
    /* subtitlurile cresc odată cu titlurile (Customizer → Tipografie) */
    font-size: clamp(15px, 1.7vw, var(--section-text-size, 18px));
    line-height: 1.6;
}
.hs-rule {
    width: 40px; height: 3px; border-radius: 2px;
    background: var(--brand-primary); margin: 0.5rem auto 0;
}
/* Left-aligned variant (used when the heading sits beside content/CTA) */
.hs-title--left + .hs-rule, .hs-head--left .hs-rule { margin-left: 0; }
.hs-head--left { text-align: left; }

/* --- About (Cine suntem) --- */
.hs-about__grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 64px; align-items: center;
}
.hs-about__grid--no-image { grid-template-columns: 1fr; max-width: 720px; margin: 0 auto; }
.hs-about__text { color: var(--text-secondary); margin-top: 20px; font-size: clamp(16px, 1.7vw, var(--section-text-size, 18px)); line-height: 1.7; }
.hs-about__text + .hs-about__text { margin-top: 16px; }
/* „Află mai multe” — link cu cerc-inel, nu pastilă: pe fundalul deschis
   al secțiunii un buton plin ar concura cu CTA-urile din hero */
.hs-about__more {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    margin-top: 30px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--brand-primary, var(--brand-purple));
    text-decoration: none;
    transition: color 0.2s;
}
.hs-about__more:hover {
    color: var(--brand-purple-dark);
}
.hs-about__media {
    /* imaginea se lipește de marginea dreaptă a containerului, aliniată cu
       hero și cu grila de programe — fără flex, object-fit: contain ar
       centra-o în coloana ei și ar părea „plutind” spre interior */
    display: flex;
    justify-content: flex-end;
}
.hs-about__media img {
    /* imaginea se vede ÎNTREAGĂ (nimic tăiat) și fără umbră — ilustrațiile
       cu fundal propriu nu suportă crop-ul 4/3 și shadow-ul de fotografie.
       Plafonul de înălțime vine din presetarea „Dimensiune imagine”
       (Customizer → Despre noi). */
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 440px; /* medie (implicit) */
    object-fit: contain;
    border-radius: var(--radius-2xl);
    box-shadow: none;
}

.hs-about__media--mica img   { max-height: 300px; }
.hs-about__media--mare img   { max-height: 560px; }
.hs-about__media--maxima img { max-height: none; }

/* --- Programs grid --- */
.hs-pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.hs-pcard {
    position: relative; display: flex; flex-direction: column;
    background: var(--white); border: 1px solid var(--border-light);
    border-radius: var(--radius-xl); padding: 28px 26px;
    text-decoration: none; overflow: hidden;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.hs-pcard::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
    background: var(--pc, var(--brand-primary));
    transform: scaleY(0); transform-origin: top; transition: transform 0.22s ease;
    z-index: 2;
}
.hs-pcard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: transparent; }
.hs-pcard:hover::before { transform: scaleY(1); }
.hs-pcard__icon {
    width: 54px; height: 54px; border-radius: 14px; flex: none;
    display: grid; place-items: center; font-size: 1.35rem; color: var(--white);
    background: var(--pc, var(--brand-primary));
    margin-bottom: 20px;
}
.hs-pcard__body { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.hs-pcard__title {
    font-family: var(--font-display); font-size: 1.2rem; font-weight: 700;
    color: var(--text-primary); margin-bottom: 8px;
}
.hs-pcard__desc { color: var(--text-muted); font-size: 0.96rem; line-height: 1.55; margin-bottom: 18px; flex: 1; }
.hs-pcard__link {
    display: inline-flex; align-items: center; gap: 8px;
    font-weight: 600; font-size: 0.92rem; color: var(--pc, var(--brand-primary));
    margin-top: auto;
}
.hs-pcard__link i { transition: transform 0.2s ease; }
.hs-pcard:hover .hs-pcard__link i { transform: translateX(4px); }

/* Programs — image style: thumbnail left, content right */
.hs-pgrid--image .hs-pcard { flex-direction: row; align-items: stretch; padding: 0; }
.hs-pgrid--image .hs-pcard__media { position: relative; flex: 0 0 130px; overflow: hidden; }
.hs-pgrid--image .hs-pcard__media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 0.4s ease;
}
.hs-pgrid--image .hs-pcard:hover .hs-pcard__media img { transform: scale(1.06); }
.hs-pgrid--image .hs-pcard__body { padding: 20px 22px; }
.hs-pgrid--image .hs-pcard__title { font-size: 1.1rem; }

/* --- Impact stats --- */
/* Cifrele stau direct pe banda secțiunii (2026-08-20): panoul alb uriaș
   + pătratele lila cu iconițe erau trei straturi de „cutii” care se
   băteau cap în cap cu cardurile pline de culoare ale programelor.
   Acum: numărul e vedeta, iconița e un accent discret, liniile fine
   despart coloanele. */
.hs-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: 26px 0 10px;
}
.hs-stat { text-align: center; padding: 12px 26px; border-right: 1px solid var(--border-light); }
.hs-stat:last-child { border-right: none; }
.hs-stat__icon {
    display: block;
    margin: 0 auto 14px;
    color: var(--stat-accent, var(--brand-primary));
    font-size: var(--impact-icon-size, 1.5rem); /* Customizer → Impact → Mărime iconițe */
    opacity: 0.85;
}
.hs-stat__num {
    font-family: var(--font-display); font-size: 3.1rem; font-weight: 800;
    letter-spacing: -0.02em; line-height: 1; color: var(--stat-accent, var(--brand-primary));
}
/* Fiecare cifră preia un accent din paleta cardurilor de programe —
   cele două secțiuni vecine vorbesc în sfârșit aceeași limbă */
.hs-stat:nth-child(4n+1) { --stat-accent: #2151d0; }
.hs-stat:nth-child(4n+2) { --stat-accent: #12855c; }
.hs-stat:nth-child(4n+3) { --stat-accent: #d9560b; }
.hs-stat:nth-child(4n+4) { --stat-accent: #a87a00; }
.hs-stat__label { font-weight: 700; margin: 10px 0 4px; font-size: 1.02rem; color: var(--text-primary); }
.hs-stat__desc { font-size: 0.85rem; color: var(--text-muted); max-width: 24ch; margin: 0 auto; }

/* --- Partners carousel --- */
/* Full-bleed: rândul de logo-uri ocupă toată lățimea ferestrei, cu
   padding lateral cât să încapă săgețile (ies ~32px în afara stage-ului) */
.hs-carousel {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0 56px;
    box-sizing: border-box;
}
.hs-carousel__stage { position: relative; }
.hs-carousel__viewport { overflow: hidden; }
.hs-carousel__track { display: flex; transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
/* min-width: 0 — flex items otherwise refuse to shrink below their content's
   intrinsic width (min-width: auto), which makes wide cards overflow the
   viewport instead of respecting the per-view basis */
.hs-carousel__slide { flex: 0 0 25%; padding: 10px; box-sizing: border-box; min-width: 0; }
.hs-carousel__slide > * { min-width: 0; max-width: 100%; }
.hs-logo-card {
    height: 120px; background: var(--white); border: 1px solid var(--border-light);
    border-radius: var(--radius-lg); display: grid; place-items: center; padding: 20px;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hs-logo-card:hover, .hs-logo-card:focus-visible {
    box-shadow: var(--shadow-md); transform: translateY(-3px);
}
.hs-logo-card img { max-height: 72px; max-width: 100%; object-fit: contain; }
.hs-logo-card__name {
    font-family: var(--font-display); font-weight: 800; font-size: 1rem;
    text-align: center; color: var(--text-secondary);
}
.hs-carousel__btn {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
    width: 46px; height: 46px; border-radius: var(--radius-full);
    background: var(--white); border: 1px solid var(--border-light);
    color: var(--brand-primary); display: grid; place-items: center;
    cursor: pointer; box-shadow: var(--shadow-md);
    transition: background 0.2s ease, color 0.2s ease;
}
.hs-carousel__btn:hover { background: var(--brand-primary); color: var(--white); border-color: transparent; }
.hs-carousel__btn--prev { left: -14px; }
.hs-carousel__btn--next { right: -14px; }
.hs-carousel__dots { display: flex; gap: 9px; justify-content: center; margin-top: 30px; }
.hs-carousel__dots button {
    width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0;
    background: var(--gray-300); cursor: pointer;
    transition: background 0.2s ease, width 0.2s ease;
}
.hs-carousel__dots button.is-active {
    background: var(--brand-primary); width: 26px; border-radius: var(--radius-full);
}

/* Focus visibility for interactive elements */
.hs-pcard:focus-visible,
.hs-carousel__btn:focus-visible,
.hs-carousel__dots button:focus-visible,
.hs-about__btn:focus-visible {
    outline: 3px solid var(--brand-primary);
    outline-offset: 2px;
}

/* --- Responsive --- */
@media (max-width: 1060px) {
    .hs-carousel__btn--prev { left: 4px; }
    .hs-carousel__btn--next { right: 4px; }
}
@media (max-width: 960px) {
    .hs-pgrid { grid-template-columns: repeat(2, 1fr); }
    .hs-carousel__slide { flex-basis: 33.333%; }
}
@media (max-width: 860px) {
    .hs-about__grid { grid-template-columns: 1fr; gap: 44px; }
    .hs-stats { grid-template-columns: repeat(2, 1fr); padding: 10px 0; }
    .hs-stat { border-right: none; }
    .hs-stat:nth-child(odd) { border-right: 1px solid var(--border-light); }
    .hs-stat:nth-child(-n+2) { border-bottom: 1px solid var(--border-light); padding-bottom: 30px; }
    .hs-stat:nth-child(n+3) { padding-top: 30px; }
}
@media (max-width: 768px) {
    .hs-section { padding: 56px 0; }
}
@media (max-width: 640px) {
    .hs-pgrid { grid-template-columns: 1fr; }
    .hs-carousel__slide { flex-basis: 50%; }
    .hs-carousel { padding: 0 40px; }
}
@media (max-width: 460px) {
    .hs-stats { grid-template-columns: 1fr; }
    .hs-stat { border-right: none !important; border-bottom: 1px solid var(--border-light); padding: 22px; }
    .hs-stat:last-child { border-bottom: none; }
    .hs-carousel__slide { flex-basis: 100%; }
}

/* Reduced motion: no transforms/animation on these sections */
@media (prefers-reduced-motion: reduce) {
    .hs-pcard, .hs-pcard::before, .hs-pcard__media img, .hs-pcard__link i,
    .hs-stat__icon, .hs-logo-card, .hs-carousel__track {
        transition: none !important;
    }
    .hs-pcard:hover { transform: none; }
}

/* --- Menu icon items (home first, contact last — injected via filter) ---
   .nav__link i is the muted dropdown-chevron style (0.55rem, opacity .5) —
   reset it here so the home/contact icons match the menu text color. */
.nav__item--icon .nav__link i {
    font-size: 0.95rem;
    line-height: 1;
    opacity: 1;
    color: inherit;
}
.nav__item--icon .nav__link { display: inline-flex; align-items: center; }

/* ==================== PAGE SECTION NAV (sidebar) ==================== */
.page-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}
.page-main { max-width: 800px; }
.page-sidebar {
    position: sticky;
    top: calc(var(--total-header, 62px) + 48px);
    /* Never taller than the viewport — long navs scroll inside, otherwise
       sticky behaves erratically (jumps, unreachable bottom items) */
    max-height: calc(100vh - var(--total-header, 62px) - 72px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 6px;
}
.page-sidebar::-webkit-scrollbar { width: 6px; }
.page-sidebar::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: 3px; }
.page-sidebar::-webkit-scrollbar-track { background: transparent; }
.section-nav .page_item.is-open > .section-nav__row > .section-nav__toggle { transform: rotate(180deg); }

/* Minimal: no card background — plain list, active = colored text + accent bar */
.section-nav__title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-primary);
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 2px solid var(--brand-primary);
}
.section-nav__title a { color: inherit; text-decoration: none; }
.section-nav__title a:hover { color: var(--brand-primary); }
.section-nav__list { list-style: none; margin: 0; padding: 0; }
.section-nav__list .section-nav__list {
    margin-left: 10px;
    padding-left: 12px;
    border-left: 1px solid var(--border-light);
    display: none; /* collapsed by default */
}
.section-nav__item--parent.is-open > .section-nav__list { display: block; }
.section-nav__item { margin: 1px 0; }
.section-nav__row { display: flex; align-items: center; gap: 4px; }
.section-nav__link {
    display: block;
    flex: 1;
    min-width: 0;
    padding: 6px 4px 6px 11px;
    font-size: 0.92rem;
    color: var(--text-secondary);
    text-decoration: none;
    position: relative;
    transition: color 0.15s ease;
}
/* Marcajul paginii curente: pastilă cu margini fixe sus/jos — pe un
   rând arată ca o pastilă scurtă (~14px), iar când titlul se rupe pe
   2 rânduri crește odată cu itemul, în loc să rămână un punct */
.section-nav__link::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    bottom: 11px;
    width: 3px;
    border-radius: 2px;
    background: transparent;
    transition: background 0.15s ease;
}
.section-nav__link:hover { color: var(--brand-primary); }
.section-nav__item--active > .section-nav__row > .section-nav__link {
    color: var(--brand-primary);
    font-weight: 600;
}
.section-nav__item--active > .section-nav__row > .section-nav__link::before {
    background: var(--brand-primary);
}
.section-nav__toggle {
    flex: none;
    width: 26px; height: 26px;
    border: none; background: none; padding: 0;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: var(--radius-md);
    display: grid; place-items: center;
    font-size: 0.7rem;
    transition: transform 0.2s ease, color 0.15s ease;
}
.section-nav__toggle:hover { color: var(--brand-primary); }
.section-nav__item--parent.is-open > .section-nav__row > .section-nav__toggle { transform: rotate(180deg); }
.section-nav__link:focus-visible,
.section-nav__toggle:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 2px; }
/* wp_list_pages fallback markup (page-hierarchy sections) */
.section-nav .page_item a { display: block; flex: 1; min-width: 0; padding: 6px 4px 6px 11px; font-size: 0.92rem; color: var(--text-secondary); text-decoration: none; position: relative; }
.section-nav .page_item a::before { content: ''; position: absolute; left: 0; top: 11px; bottom: 11px; width: 3px; border-radius: 2px; background: transparent; }
.section-nav .page_item a:hover { color: var(--brand-primary); }
.section-nav .current_page_item > .section-nav__row > a,
.section-nav .current_page_item > a { color: var(--brand-primary); font-weight: 600; }
.section-nav .current_page_item > .section-nav__row > a::before,
.section-nav .current_page_item > a::before { background: var(--brand-primary); }
.section-nav .children {
    list-style: none;
    margin-left: 10px;
    padding-left: 12px;
    border-left: 1px solid var(--border-light);
    display: none; /* collapsed by default */
}
.section-nav .page_item.is-open > .children { display: block; }
/* Without JS, keep the branch containing the current page visible */
.section-nav:not(.js-nav) .current_page_ancestor > .children,
.section-nav:not(.js-nav) .current_page_item > .children { display: block; }

@media (max-width: 960px) {
    .page-layout { grid-template-columns: 1fr; gap: 28px; }
    .page-sidebar { position: static; }
    .page-main { max-width: none; }
}

/* --- Main nav: more breathing room for hover/active states --- */
.header__nav { gap: 6px; }
.header__nav .nav__item { margin: 0 2px; }
.nav__link {
    padding: 0.6rem 1.05rem;
    border-radius: var(--radius-full);
}

/* --- Page hero with featured image (reuses article-hero) --- */
.article-hero .breadcrumbs { margin-bottom: 0.75rem; }
/* Pe ecrane mici hero-ul e înghesuit — breadcrumb-ul nu mai încape
   confortabil deasupra titlului, așa că dispare */
@media (max-width: 767px) {
    .article-hero .breadcrumbs { display: none; }
}
.article-hero .breadcrumb__list { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0; padding: 0; font-size: 0.85rem; }
.article-hero .breadcrumb__link { color: rgba(255,255,255,0.75); text-decoration: none; }
.article-hero .breadcrumb__link:hover { color: #fff; }
.article-hero .breadcrumb__sep { color: rgba(255,255,255,0.45); font-size: 0.65rem; }
.article-hero .breadcrumb__ancestor { color: rgba(255,255,255,0.75); }
.article-hero .breadcrumb__current { color: #fff; font-weight: 500; }

/* ==================== UNIFIED HERO CARDS ====================
   One card language across homepage news, news archive, search results
   and Eurodesk opportunities: background image + bottom gradient overlay
   (the .news-grid-card--hero pattern). */

/* Homepage hero card without an image: branded gradient fallback */
.news-grid-card--hero--noimg {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%);
}

/* Overlay variant of .news-archive__card — same markup, hero presentation.
   Templates opt in with this class; excerpt is hidden by design (bg photo +
   overlay + excerpt is unreadable clutter). */
.news-archive__card--overlay {
    position: relative;
    min-height: 320px;
    border-radius: var(--radius-2xl, 1rem);
}
.news-archive__card--overlay .news-archive__card-link {
    position: absolute;
    inset: 0;
    display: block;
}
.news-archive__card--overlay .news-archive__card-image {
    position: absolute;
    inset: 0;
    height: 100%;
    padding: 0;
}
.news-archive__card--overlay .news-archive__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.news-archive__card--overlay .news-archive__card-placeholder {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%);
}
.news-archive__card--overlay .news-archive__card-body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 4rem 1.25rem 1.25rem;
    background: linear-gradient(to top, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.7) 50%, rgba(0,0,0,0.2) 75%, transparent 100%);
    border-radius: 0 0 var(--radius-2xl, 1rem) var(--radius-2xl, 1rem);
}
.news-archive__card--overlay .news-archive__card-title {
    color: #fff !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.news-archive__card--overlay:hover .news-archive__card-title {
    color: #fff !important;
    opacity: 0.9;
}
.news-archive__card--overlay .news-archive__card-excerpt { display: none; }
.news-archive__card--overlay .news-archive__card-meta,
.news-archive__card--overlay .news-archive__card-meta span {
    color: rgba(255,255,255,0.78);
}
/* Deadline-status meta keeps legible colors on the dark overlay */
.news-archive__card--overlay .opp-meta--urgent { color: #ff8fa3 !important; }
.news-archive__card--overlay .opp-meta--soon { color: #ffd166 !important; }
.news-archive__card--overlay .opp-meta--expired { color: rgba(255,255,255,0.55) !important; }
/* Tag badge stays top-left above the image */
.news-archive__card--overlay .news-archive__card-tag {
    z-index: 2;
}
/* No duplicate tag inside the body on no-image cards */
.news-archive__card--overlay .news-archive__card-tag--mobile { display: none; }

/* 3 cards per row on wide screens for sidebar layouts (Știri, Oportunități).
   The base sidebar rule (repeat(2)) stops at 2 — this later rule wins ≥1200px. */
@media (min-width: 1200px) {
    .news-archive--with-sidebar .news-archive__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ==================== HOMEPAGE TRANSITIONS ====================
   Scroll-reveal (fade-up + stagger) applied by home-sections.js.
   The hidden state is set only via JS, so content is fully visible
   without JavaScript. Only opacity/transform animate — no layout. */

.hs-anim {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.55s ease-out, transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}
.hs-anim.is-in {
    opacity: 1;
    transform: none;
    will-change: auto;
}

/* One-time hero entrance (pure CSS, above the fold) */
@keyframes hsFadeUp {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: none; }
}
.hero__title   { animation: hsFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) both; }
.hero__desc    { animation: hsFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.12s both; }
.hero__actions { animation: hsFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.24s both; }

@media (prefers-reduced-motion: reduce) {
    .hs-anim { opacity: 1; transform: none; transition: none; }
    .hero__title, .hero__desc, .hero__actions { animation: none; }
}

/* ==================== CONTENT CTA ([cta] shortcode) ====================
   Self-contained: .prose a / .article__body a styles (underline, link
   color, border-bottom) must never leak into the button. Colors come
   from --cta-bg/--cta-text (Customizer → Brand → CTA & Slideshow). */
.content-cta {
    display: flex;
    margin: 1.75rem 0;
}
.content-cta--left   { justify-content: flex-start; }
.content-cta--center { justify-content: center; }
.content-cta--right  { justify-content: flex-end; }
.content-cta--full .btn {
    width: 100%;
    justify-content: center;
}
.content-cta .btn,
.prose .content-cta a.btn,
.article__body .content-cta a.btn {
    background: var(--cta-bg, var(--brand-primary));
    color: var(--cta-text, #ffffff);
    text-decoration: none !important;
    border-bottom: none !important;
}
.content-cta .btn:hover,
.prose .content-cta a.btn:hover,
.article__body .content-cta a.btn:hover {
    background: var(--cta-bg, var(--brand-primary));
    color: var(--cta-text, #ffffff);
    filter: brightness(0.9);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
/* Outline variant: transparent with the CTA color as border/text */
.content-cta .content-cta__outline,
.prose .content-cta a.content-cta__outline,
.article__body .content-cta a.content-cta__outline {
    background: transparent;
    color: var(--cta-bg, var(--brand-primary));
    border: 2px solid var(--cta-bg, var(--brand-primary)) !important;
}
.content-cta .content-cta__outline:hover,
.prose .content-cta a.content-cta__outline:hover,
.article__body .content-cta a.content-cta__outline:hover {
    background: var(--cta-bg, var(--brand-primary));
    color: var(--cta-text, #ffffff);
    filter: none;
}

/* Doi CTA consecutivi: al doilea devine AUTOMAT outline — o pereche
   „principal + secundar”, ca butoanele din hero. Editorul nu trebuie să
   țină minte să pună style="outline"; dacă îl pune explicit, e la fel. */
.content-cta + .content-cta .btn--primary,
.prose .content-cta + .content-cta a.btn--primary,
.article__body .content-cta + .content-cta a.btn--primary {
    background: transparent;
    color: var(--cta-bg, var(--brand-primary));
    border: 2px solid var(--cta-bg, var(--brand-primary)) !important;
    box-shadow: none;
}
.content-cta + .content-cta .btn--primary:hover,
.prose .content-cta + .content-cta a.btn--primary:hover,
.article__body .content-cta + .content-cta a.btn--primary:hover {
    background: var(--cta-bg, var(--brand-primary));
    color: var(--cta-text, #ffffff);
    filter: none;
}
/* perechea se citește ca o unitate — spațiu mai mic între cele două */
.content-cta + .content-cta {
    margin-top: -1rem;
}
.content-cta .btn:focus-visible {
    outline: 3px solid var(--cta-bg, var(--brand-primary));
    outline-offset: 2px;
}

/* Core Gutenberg Button block — matches the theme .btn design, so if the
   block editor is ever enabled, buttons are on-brand out of the box */
.prose .wp-block-button__link,
.article__body .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-family: var(--font-primary);
    font-weight: 600;
    font-size: 0.95rem;
    padding: 0.8rem 1.5rem;
    border-radius: var(--radius-full);
    background: var(--brand-primary);
    color: var(--white);
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.prose .wp-block-button__link:hover,
.article__body .wp-block-button__link:hover {
    background: var(--brand-primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.prose .is-style-outline .wp-block-button__link,
.article__body .is-style-outline .wp-block-button__link {
    background: transparent;
    color: var(--brand-primary);
    border: 2px solid var(--brand-primary);
}
.prose .is-style-outline .wp-block-button__link:hover,
.article__body .is-style-outline .wp-block-button__link:hover {
    background: var(--brand-primary);
    color: var(--white);
}

/* ==================== CONTENT SLIDESHOW ([slideshow] shortcode) ==================== */
.cslide {
    position: relative;
    margin: 2rem 0;
    outline: none;
}
.cslide__viewport { overflow: hidden; }
.cslide__track {
    display: flex;
    transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.cslide__slide {
    flex: 0 0 100%;
    min-width: 0;
    margin: 0;
}
.cslide__slide img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    margin: 0 !important;
    height: auto;
}
.cslide__caption {
    font-size: 0.85rem;
    color: var(--text-muted);
    padding: 0.6rem 0.25rem 0;
    text-align: center;
}
.cslide__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px; height: 44px;
    border-radius: var(--radius-full);
    background: rgba(255,255,255,0.92);
    border: 1px solid var(--border-light);
    color: var(--brand-primary);
    display: grid; place-items: center;
    cursor: pointer;
    box-shadow: var(--shadow-md);
    transition: background 0.2s ease, color 0.2s ease;
}
.cslide__btn:hover { background: var(--brand-primary); color: var(--white); border-color: transparent; }
.cslide__btn--prev { left: 12px; }
.cslide__btn--next { right: 12px; }
.cslide__footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 0.75rem;
}
.cslide__dots { display: flex; gap: 8px; }
.cslide__dots button {
    width: 9px; height: 9px;
    border-radius: 50%;
    border: none; padding: 0;
    background: var(--gray-300);
    cursor: pointer;
    transition: background 0.2s ease, width 0.2s ease;
}
.cslide__dots button.is-active {
    background: var(--brand-primary);
    width: 24px;
    border-radius: var(--radius-full);
}
.cslide__counter {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
.cslide:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 3px; }
.cslide__btn:focus-visible,
.cslide__dots button:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
    .cslide__track { transition: none; }
}

/* ==================== HIGHLIGHTED HEADING ([titlu] shortcode) ==================== */
.content-heading {
    margin: 2rem 0 1rem;
    line-height: 1.35;
}
.content-heading__mark {
    display: inline;
    background: var(--chead-bg, var(--eu-blue));
    color: var(--chead-text, var(--eu-yellow));
    padding: 0.12em 0.45em;
    /* Multi-line headings keep the chip on every line */
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

/* ==================== FULL-WIDTH MAP TEMPLATE (template-harta.php) ==================== */
/* Flush ca pagina de Contact: fără padding de secțiune, harta full-bleed
   atinge hero-ul și footerul. Textul (dacă există pe lângă shortcode)
   rămâne într-o coloană centrată, lizibilă. */
.harta-flush {
    padding: 0;
}
.harta-full {
    width: 100%;
    max-width: none;
    padding: 0;
}
.harta-full .prose--full {
    max-width: none; /* lift the article column constraint */
}
.harta-full .prose--full > :not(.eu-map) {
    max-width: var(--container-max, 1200px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}
.harta-full .prose--full > p:first-child { padding-top: 2rem; }
/* Containerul e deja full-width — trucul 100vw al hărții ar depăși cu
   lățimea scrollbar-ului (tăiat în stânga pe Windows); 100% e exact */
.harta-full .eu-map--full {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
/* Varianta „compact” a rămas în template-uri — de la 2026-08-17 toate
   hero-urile au aceeași înălțime (360px minim), deci nu mai diferă */
.article-hero--compact.article-hero { min-height: 360px; }

/* ==================== CARIERĂ PROFESIONALĂ (template-cariera.php) ==================== */
.cariera-intro { max-width: 800px; margin-bottom: 2.5rem; }
.cariera-section-title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 800;
    margin: 2.5rem 0 0.4rem;
}
.cariera-section-title::after {
    content: '';
    display: block;
    width: 40px; height: 3px;
    background: var(--brand-primary);
    border-radius: 2px;
    margin-top: 0.5rem;
}
.cariera-list { display: grid; gap: 20px; margin-top: 1.25rem; }
.cariera-empty { color: var(--text-muted); margin-top: 1rem; }

/* Job card */
.cariera-job {
    background: var(--white);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-xl);
    padding: 24px 26px;
}
.cariera-job--inscrieri { border-color: #b5dfc2; background: #fbfefc; }
.cariera-job--anulat { opacity: 0.7; }
.cariera-job__head {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
}
.cariera-job__title {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 6px;
    line-height: 1.3;
}
.cariera-job__title a { color: var(--text-primary); text-decoration: none; }
.cariera-job__title a:hover { color: var(--brand-primary); }
.cariera-job__title i { font-size: 0.75em; color: var(--text-muted); margin-left: 4px; }
.cariera-job__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 0.85rem;
    color: var(--text-muted);
}
.cariera-job__meta i { color: var(--brand-primary); margin-right: 4px; }
.cariera-job__desc { color: var(--text-secondary); font-size: 0.92rem; margin: 12px 0 0; }
.cariera-job__deadline {
    margin: 14px 0 0;
    font-size: 0.92rem;
    color: var(--text-secondary);
}
.cariera-job__deadline i { color: var(--brand-primary); margin-right: 6px; }
.cariera-job__pub { color: var(--text-muted); font-size: 0.82rem; margin-left: 6px; }

/* Anunțul concursului — chip compact, un singur tratament vizual
   (fundal moale, fără bordură; extensia ca text discret, nu badge) */
.cariera-job__announce {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    min-height: 40px;
    padding: 0 16px;
    border-radius: var(--radius-full);
    background: var(--brand-primary-100);
    color: var(--brand-primary);
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
.cariera-job__announce i {
    font-size: 0.9rem;
}
.cariera-job__announce:hover {
    background: var(--brand-primary);
    color: #fff;
}
.cariera-job__announce:focus-visible {
    outline: 3px solid var(--eu-yellow);
    outline-offset: 2px;
}
.cariera-job__announce-ext {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--brand-primary);
    opacity: 0.65;
}
.cariera-job__announce-ext::before {
    content: '·';
    margin-right: 8px;
}
.cariera-job__announce:hover .cariera-job__announce-ext {
    color: #fff;
    opacity: 0.85;
}

/* Status badge */
.cariera-badge {
    flex: none;
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: var(--radius-full);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}
.cariera-badge--inscrieri { background: #d9f2e0; color: #1e5a2e; }
.cariera-badge--desfasurare { background: var(--brand-primary-100); color: var(--brand-primary); }
.cariera-badge--finalizat { background: var(--gray-100); color: var(--text-secondary); }
.cariera-badge--anulat { background: #fde2e2; color: #8f1f1f; }

/* Stepper */
.cariera-steps {
    list-style: none;
    margin: 20px 0 0;
    padding: 0;
}
.cariera-step {
    position: relative;
    display: flex;
    gap: 14px;
    padding: 0 0 18px 0;
}
.cariera-step:last-child { padding-bottom: 0; }
/* connecting rail */
.cariera-step::before {
    content: '';
    position: absolute;
    left: 13px;
    top: 28px;
    bottom: -2px;
    width: 2px;
    background: var(--gray-200);
}
.cariera-step:last-child::before { display: none; }
.cariera-step--done::before { background: #79c393; }
.cariera-step__marker {
    flex: none;
    width: 28px; height: 28px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.7rem;
    z-index: 1;
    background: var(--gray-100);
    border: 2px solid var(--gray-300);
    color: var(--text-muted);
}
.cariera-step--done .cariera-step__marker {
    background: #2e7d43;
    border-color: #2e7d43;
    color: #fff;
}
.cariera-step--current .cariera-step__marker {
    background: var(--brand-primary-100);
    border-color: var(--brand-primary);
    color: var(--brand-primary);
}
/* Corpul etapei: două rânduri aliniate la aceeași margine — rândul 1
   eticheta (+ badge de stare), rândul 2 linkul și data. O singură linie
   verticală de scanare pentru etape, alta pentru detalii. */
.cariera-step__body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-top: 4px;
    min-width: 0;
}
.cariera-step__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.cariera-step__label { font-weight: 600; font-size: 0.92rem; color: var(--text-primary); }
.cariera-step--upcoming .cariera-step__label { color: var(--text-muted); font-weight: 500; }
.cariera-step--current .cariera-step__label { color: var(--brand-primary); font-weight: 700; }
.cariera-step__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 10px;
}
.cariera-step__doc {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary);
    text-decoration: none;
}
.cariera-step__doc:hover { text-decoration: underline; }
.cariera-step__time { font-size: 0.8rem; color: var(--text-muted); }
/* separator discret între link și dată */
.cariera-step__doc + .cariera-step__time::before {
    content: '·';
    margin-right: 10px;
    color: var(--gray-300);
}

/* Acordeoane pe ani — tipar unificat pe tot site-ul (același limbaj ca
   departamentele de la Echipa și anii de la Buletin): chevron în cerc,
   titlu display, număr ca pastilă. Folosit de Carieră și Achiziții. */
.year-acc {
    margin-bottom: 1rem;
    scroll-margin-top: 96px;
}
.year-acc__summary {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    cursor: pointer;
    list-style: none;
    padding: 0.6rem 0;
    min-height: 44px;
    border-bottom: 1px solid var(--gray-200);
    user-select: none;
}
.year-acc__summary::-webkit-details-marker { display: none; }
.year-acc__chevron {
    flex: none;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--brand-primary-100);
    color: var(--brand-primary);
    font-size: 0.7rem;
    transition: transform 0.2s ease;
}
.year-acc:not([open]) .year-acc__chevron { transform: rotate(-90deg); }
.year-acc__title {
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--text-primary);
}
.year-acc__summary:hover .year-acc__title { color: var(--brand-primary); }
.year-acc__count {
    flex: none;
    margin-left: auto;
    padding: 0.2rem 0.75rem;
    border-radius: var(--radius-full);
    background: var(--brand-primary-100);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}
.year-acc__body { padding-top: 1.25rem; }
.year-acc .cariera-list { margin-top: 0; }

@media (max-width: 640px) {
    .cariera-job { padding: 18px; }
    .cariera-job__head { flex-direction: column-reverse; }
}
@media (prefers-reduced-motion: reduce) {
    .year-acc__chevron { transition: none; }
}

/* --- Carieră: formulare de înscriere (caseta permanentă de sus) --- */
.cariera-forms {
    background: var(--brand-primary-50, #f6f2fa);
    border: 1px solid var(--brand-primary-100, #ede4f7);
    border-radius: var(--radius-xl);
    padding: 22px 24px;
    margin: 0 0 2.5rem;
}
.cariera-forms__title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.cariera-forms__title i { color: var(--brand-primary); }
.cariera-forms__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
}
.cariera-form-card {
    display: flex;
    align-items: center;
    gap: 14px;
    background: var(--white);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 14px 16px;
    text-decoration: none;
    min-height: 44px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.cariera-form-card:hover {
    border-color: var(--brand-primary);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.cariera-form-card:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 2px; }
.cariera-form-card__icon {
    flex: none;
    width: 44px; height: 44px;
    border-radius: 12px;
    /* aliniat cu docs-cards: pastila de document e pe brand peste tot */
    background: var(--doc-tile-bg);
    color: var(--doc-tile-ink);
    display: grid;
    place-items: center;
    font-size: 1.1rem;
}
.cariera-form-card__body { min-width: 0; display: grid; gap: 2px; }
.cariera-form-card__label {
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--text-primary);
    line-height: 1.35;
}
.cariera-form-card__meta {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--brand-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
@media (prefers-reduced-motion: reduce) {
    .cariera-form-card { transition: none; }
    .cariera-form-card:hover { transform: none; }
}

/* --- Carieră: stare Întârziat, anulare, notificări, abonare --- */
.cariera-step--late .cariera-step__marker {
    background: #fef3c7;
    border-color: #d97706;
    color: #b45309;
}
.cariera-step__late {
    display: inline-block;
    background: #fef3c7;
    color: #92400e;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 2px 10px;
    border-radius: var(--radius-full);
}
.cariera-cancel {
    margin-top: 16px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: var(--radius-lg);
    padding: 16px 18px;
}
.cariera-cancel__title {
    font-weight: 700;
    color: #991b1b;
    margin: 0 0 6px;
}
.cariera-cancel__title i { margin-right: 6px; }
.cariera-cancel__reason { color: var(--text-secondary); font-size: 0.92rem; margin: 0 0 10px; }
.cariera-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-radius: var(--radius-lg);
    font-weight: 600;
    font-size: 0.95rem;
    margin: 1.5rem 0;
}
.cariera-notice--ok { background: #d9f2e0; color: #1e5a2e; }
.cariera-notice--err { background: #fde2e2; color: #8f1f1f; }

.cariera-subscribe {
    margin: 3rem 0 1rem;
    background: var(--brand-primary-50, #f6f2fa);
    border: 1px solid var(--brand-primary-100, #ede4f7);
    border-radius: var(--radius-xl);
    padding: 26px 28px;
}
.cariera-subscribe__title {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 800;
    margin: 0 0 4px;
}
.cariera-subscribe__title i { color: var(--brand-primary); margin-right: 8px; }
.cariera-subscribe__sub { color: var(--text-muted); font-size: 0.92rem; margin: 0 0 18px; }
.cariera-subscribe__row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.cariera-subscribe__row input[type=email] {
    flex: 1;
    min-width: 240px;
    padding: 0 16px;
    min-height: 48px;
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-full);
    font-size: 0.95rem;
    font-family: inherit;
}
.cariera-subscribe__row input[type=email]:focus-visible {
    outline: 2px solid var(--brand-primary);
    outline-offset: 1px;
}
.cariera-subscribe__row .btn { cursor: pointer; }
.cariera-subscribe__depts {
    border: none;
    padding: 0;
    margin: 14px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
}
.cariera-subscribe__depts legend {
    width: 100%;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 6px;
}
.cariera-subscribe__depts label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.88rem;
    color: var(--text-secondary);
    cursor: pointer;
}
.cariera-subscribe__depts input { accent-color: var(--brand-primary); width: 16px; height: 16px; }
.cariera-subscribe__consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-top: 14px;
    font-size: 0.82rem;
    color: var(--text-muted);
    cursor: pointer;
}
.cariera-subscribe__consent input { margin-top: 3px; accent-color: var(--brand-primary); }
.cariera-subscribe__msg { min-height: 1.2em; margin-top: 10px; font-weight: 600; font-size: 0.9rem; }
.cariera-subscribe__msg.is-ok { color: #1e5a2e; }
.cariera-subscribe__msg.is-err { color: #8f1f1f; }

/* --- Carieră abonare: dropdown departament + tipuri de notificări --- */
.cariera-subscribe__options {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 32px;
    margin-top: 16px;
    align-items: flex-start;
}
.cariera-subscribe__field {
    display: grid;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-secondary);
    min-width: 240px;
}
.cariera-subscribe__field select {
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-md);
    font-size: 0.92rem;
    font-family: inherit;
    background: var(--white);
    cursor: pointer;
}
.cariera-subscribe__field select:focus-visible {
    outline: 2px solid var(--brand-primary);
    outline-offset: 1px;
}
.cariera-subscribe__types {
    border: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}
.cariera-subscribe__types legend {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 2px;
    padding: 0;
}
.cariera-subscribe__types label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88rem;
    color: var(--text-secondary);
    cursor: pointer;
}
.cariera-subscribe__types input { accent-color: var(--brand-primary); width: 17px; height: 17px; }

/* ==================== ȘTIRI — ARANJAMENT BENTO (homepage) ====================
   Grilă 3 coloane × 2 rânduri: cardul mare (imagine + panou alb) ocupă
   2 coloane pe primul rând; 3 carduri overlay; cardul CTA mov cu săgeata
   galbenă închide grila. Culorile temei (mov brand + galben EU). */

.news-bento {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: minmax(340px, auto);
    gap: 24px;
}

/* ---------- Cardul mare (imagine + panou alb) ---------- */
.news-bento__featured {
    grid-column: span 2;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    /* chenar peste tot (homepage + arhive): panoul alb al cardului nu se
       mai topește în fundalurile deschise */
    border: 1px solid var(--gray-200, #e5e7eb);
    background: var(--white, #fff);
    border-radius: var(--radius-xl, 16px);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.news-bento__featured:hover {
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
    transform: translateY(-2px);
}
.news-bento__featured-media {
    display: block;
    background-color: var(--gray-100, #f4f4f5);
    background-size: cover;
    background-position: center;
    min-height: 240px;
}
.news-bento__featured-body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 32px;
    min-width: 0;
}
.news-bento__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--brand-purple, #440098);
}
.news-bento__chip-dot {
    width: 12px;
    height: 16px;
    border-radius: 4px 4px 6px 6px;
    background: var(--eu-yellow, #FFD617);
}
.news-bento__featured-title {
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-size: clamp(1.35rem, 2.2vw, 1.9rem);
    font-weight: 800;
    line-height: 1.2;
    color: var(--text-primary, #1A1A2E);
}
.news-bento__featured-excerpt {
    font-size: 0.98rem;
    line-height: 1.6;
    color: var(--text-secondary, #4A4A68);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.news-bento__featured-foot {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.news-bento__date { color: var(--text-secondary, #4A4A68); font-size: 0.95rem; }
.news-bento__read {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    color: var(--brand-purple, #440098);
}
.news-bento__read-arrow {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 2px solid var(--brand-purple, #440098);
    border-radius: 50%;
    font-size: 0.8rem;
    transition: background 0.2s ease, color 0.2s ease;
}
.news-bento__featured:hover .news-bento__read-arrow {
    background: var(--brand-purple, #440098);
    color: #fff;
}

/* ---------- Cardurile overlay (imagine + gradient) ---------- */
.news-bento__card {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background-color: var(--brand-purple-dark, #2a0060);
    background-size: cover;
    background-position: center;
    border-radius: var(--radius-xl, 16px);
    overflow: hidden;
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.news-bento__card:hover {
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    transform: translateY(-2px);
}
.news-bento__card--noimg {
    background-image: linear-gradient(135deg, var(--brand-purple, #440098), var(--brand-purple-dark, #2a0060));
}
.news-bento__card-overlay {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 2.6rem 24px 22px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.5) 60%, transparent 100%);
}
.news-bento__card-title {
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.3;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
.news-bento__card-meta {
    font-size: 0.86rem;
    color: rgba(255, 255, 255, 0.85);
}

/* ---------- Cardul CTA (arhiva) ---------- */
.news-bento__cta {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px;
    background: var(--brand-purple, #440098);
    border-radius: var(--radius-xl, 16px);
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.news-bento__cta:hover {
    /* aceeași umbră neutră ca la celelalte carduri din bento — nu una
       colorată în brand, care pe temele child ar arăta ca un halou */
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    transform: translateY(-2px);
}
.news-bento__cta-label {
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
}
.news-bento__cta-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.news-bento__cta-title {
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff;
}
.news-bento__cta-arrow {
    display: grid;
    place-items: center;
    flex: none;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--eu-yellow, #FFD617);
    color: var(--text-primary, #1A1A2E);
    font-size: 1.05rem;
    transition: transform 0.2s ease;
}
.news-bento__cta:hover .news-bento__cta-arrow { transform: translateX(4px); }

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
    .news-bento {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: minmax(300px, auto);
    }
    .news-bento__featured { grid-column: span 2; }
}

@media (max-width: 767px) {
    .news-bento {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        gap: 16px;
    }
    .news-bento__featured {
        grid-column: span 1;
        grid-template-columns: 1fr;
    }
    .news-bento__featured-media { min-height: 200px; }
    .news-bento__featured-body { padding: 22px; }
    .news-bento__card { min-height: 240px; }
    .news-bento__cta { min-height: 180px; }
}

/* ==================== PAGINA DE CONTACT (template-contact.php) ====================
   Hartă gri full-bleed cu pinul-logo și cardul cu conținutul paginii. */

.contact-map {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    /* z-index-urile interne (controale Leaflet 1000, card 800) rămân în
       contextul hărții — să nu concureze cu headerul sticky (1000) */
    isolation: isolate;
}

.contact-map__canvas {
    height: clamp(480px, 62vh, 640px);
}

/* Aceeași hartă gri ca la rețele */
.contact-map .leaflet-tile-pane {
    filter: grayscale(1) contrast(0.9) brightness(1.06);
}

.contact-map .leaflet-control-zoom {
    border: none !important;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.18) !important;
}
.contact-map .leaflet-control-zoom a {
    width: 38px;
    height: 38px;
    line-height: 38px;
    border: none;
    color: var(--text-primary, #1a1a2e);
    font-weight: 600;
    text-decoration: none;
}
.contact-map .leaflet-control-zoom a:hover { background: var(--gray-100, #f4f4f5); color: var(--text-primary, #1a1a2e); }

/* ---------- Pinul cu logo ----------
   Un singur element (pastila); coada și punctul de pe locație sunt
   pseudo-elemente — nimic de aliniat cu flex, deci stilurile globale
   ale temei nu au ce să strice. Prefixul .contact-map dă specificitate. */
.contact-map .contact-map__pin {
    background: none;
    border: none;
    text-align: center;
}
/* Punctul de pe locație — ancorat de containerul iconiței (jos, centru) */
.contact-map .contact-map__pin::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--brand-purple, #440098);
    box-shadow: 0 0 0 4px rgba(68, 0, 152, 0.2);
}
.contact-map .contact-map__pin-pill {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 12px 22px;
    background: var(--brand-purple, #440098);
    border-radius: 9999px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
    white-space: nowrap;
}
/* Coada pastilei */
.contact-map .contact-map__pin-pill::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 9px solid transparent;
    border-right: 9px solid transparent;
    border-top: 10px solid var(--brand-purple, #440098);
}
/* !important: stilurile globale de imagini ale temei (height:auto) și
   cele din leaflet.css suprascriu altfel dimensiunea; filter forțează
   logo-ul ALB indiferent de culorile fișierului */
.contact-map .contact-map__pin-logo {
    display: block;
    height: 30px !important;
    width: auto !important;
    max-width: 150px !important;
    object-fit: contain;
    filter: brightness(0) invert(1);
}
.contact-map .contact-map__pin-name {
    color: #fff;
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-weight: 800;
    font-size: 0.9rem;
}

/* ---------- Cardul cu conținutul paginii ----------
   Pinul e deplasat de JS la stânga centrului (panBy), iar cardul începe
   imediat la dreapta centrului — ansamblul pin + card stă pe mijlocul
   hărții, cu pinul mereu vizibil, niciodată acoperit. */
.contact-map__card {
    position: absolute;
    top: 50%;
    left: calc(50% - 40px);
    transform: translateY(-50%);
    z-index: 800; /* peste tile-uri, sub controalele Leaflet (1000) */
    width: min(400px, calc(100% - 48px));
    max-height: 90%; /* 5% margine sus + jos față de hartă */
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--white, #fff);
    border-radius: var(--radius-xl, 16px);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
    padding: 28px 30px;
}
/* Tipografia din card — conținutul vine din editor (.prose), doar
   calibrăm dimensiunile pentru card */
.contact-map__card-content h1,
.contact-map__card-content h2,
.contact-map__card-content h3 {
    font-size: 1.25rem;
    margin: 0 0 12px;
}
.contact-map__card-content p {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--text-secondary, #4A4A68);
    margin-bottom: 1rem;
}
.contact-map__card-content p:last-child { margin-bottom: 0; }
.contact-map__card-content a {
    color: var(--brand-purple, #440098);
    font-weight: 700;
}

@media (max-width: 767px) {
    /* Pe mobil cardul stă SUB hartă (pinul rămâne centrat pe hartă),
       fără suprapunere — tot textul vizibil, nimic tăiat */
    .contact-map__canvas { height: 360px; }
    .contact-map__card {
        position: static;
        left: auto;
        transform: none;
        width: auto;
        max-height: none;
        overflow-y: visible;
        margin: 16px;
        padding: 22px 20px;
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    }
    .contact-map .contact-map__pin-logo { max-width: 120px !important; }
}

/* ---------- Varianta fără hero (Contact + Hartă rețele, 2026-08-20) ----------
   Hero-ul a dispărut: harta începe de la marginea de sus a paginii, iar
   headerul absolut (logo + linkuri albe) plutește peste ea. Gradientul
   de sus îi dă contrastul pe care i-l dădea fundalul mov al hero-ului.
   z-index 750: peste tile-urile și pinurile Leaflet (≤700), sub cardul
   de contact (800), legend (890) și controalele Leaflet (1000). */
.contact-map--hero::before,
.harta-hero .eu-map__stage::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 220px;
    z-index: 750;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(15, 14, 30, 0.78) 0%, rgba(15, 14, 30, 0.42) 48%, rgba(15, 14, 30, 0) 100%);
}

/* Harta acoperă zona fostului hero, dar lasă ~10% din ecran footerului —
   se vede că pagina continuă sub hartă */
.contact-map--hero .contact-map__canvas {
    height: max(620px, calc(90vh - 1px));
    height: max(620px, 90svh);
}

/* Cardul rămâne centrat pe verticală, dar nu mai urcă sub header:
   marginea de sus a cardului stă la ≥95px de marginea hărții
   (headerul are 62px) */
.contact-map--hero .contact-map__card {
    max-height: calc(100% - 190px);
}

@media (max-width: 767px) {
    /* Pe mobil cardul stă sub hartă — harta ia ~trei sferturi de ecran,
       cardul se vede imediat la primul scroll */
    .contact-map--hero .contact-map__canvas {
        height: clamp(440px, 74svh, 640px);
    }
}

/* Pagina Hartă rețele fără hero: aceeași înălțime de ecran întreg;
   înălțimea din shortcode (--eu-map-h) e ignorată aici intenționat */
.harta-hero .eu-map {
    margin: 0;
    /* rama de 1px a componentei (gândită pentru harta din conținut) se
       vedea ca linie albă sub bara de admin, pe gradientul întunecat */
    border: none;
    border-radius: 0;
}

/* Panoul de filtre pe harta de ecran întreg: panou PLUTITOR, ancorat pe
   aceeași linie cu butonul „Rețele" (top 78 / left 12 — îl acoperă exact
   când e deschis), cu aer față de margini, colțuri rotunjite pe toate
   părțile, bordură fină și umbră adâncă-moale. Valabil la TOATE lățimile:
   pe mobil varianta de bază (top 0) urca sub headerul plutitor — logoul
   și hamburgerul albe se pictau peste capul panoului (stage-ul e izolat,
   deci z-indexul intern 1120 nu poate trece peste headerul cu z 1000);
   aici max-width îl face oricum full-width cu margini pe telefon. Pe
   componenta standard (harta din conținut) rămâne „jumătate din card". */
.harta-hero .eu-map__sidebar {
    top: 78px;
    left: 12px;
    bottom: 24px;
    width: 420px;
    min-width: 0;
    max-width: calc(100% - 24px);
    border: 1px solid var(--border-light, #e5e7eb);
    border-radius: 16px;
    box-shadow: 0 18px 50px -12px rgba(15, 14, 30, 0.35);
    overflow: hidden; /* conținutul derulat respectă colțurile rotunjite */
}

.harta-hero .eu-map__canvas {
    height: max(560px, calc(90vh - 1px));
    height: max(560px, 90svh);
}

/* Butonul de filtre stătea la 12px de sus — acum acolo e headerul */
.harta-hero .eu-map__filter-toggle {
    top: 78px;
}

/* Căutarea coboară împreună cu el (butonul-lupă și caseta desfășurată
   rămâneau la 12px — ascunse sub headerul plutitor) */
.harta-hero .eu-map__search-toggle { top: 78px; }
.harta-hero .eu-map__search-box { top: 78px; }

/* Panoul de detalii pe harta de ecran întreg: sub header, cu înălțime
   FIXĂ (cât cardul de pe harta standard) — la navigarea prin cluster
   sau rezultate panoul nu-și schimbă înălțimea după cât conținut are
   fiecare pin; bara ‹ N din M › rămâne ancorată jos (flex + margin-top
   auto din regula de bază). Nu se mai întinde pe toți cei 90svh. */
@media (min-width: 641px) {
    .harta-hero .eu-map__sheet {
        top: 95px;
        bottom: auto;
        height: min(560px, calc(100% - 190px));
        max-height: none;
    }
}

/* ==================== PROGRAME/OPORTUNITĂȚI — STIL „GRADIENT BOLD" ====================
   Varianta C aleasă (2026-08-17): carduri complet colorate cu gradient,
   iconiță-filigran mare în colț, text alb, buton-pastilă translucid.
   Culorile vin din Customizer (--pc), nuanța închisă e calculată (--pc2).
   Selectorii sunt dublați (.hs-pgrid / .hs-pgrid--image) ca să bată
   regulile vechiului stil de card, inclusiv în grila cu imagini. */

.hs-pgrid .hs-pcard--grad,
.hs-pgrid--image .hs-pcard--grad {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    min-height: 185px;
    padding: 24px 28px;
    border: none;
    border-radius: var(--radius-xl, 16px);
    overflow: hidden;
    background: linear-gradient(140deg, var(--pc, #440098) 0%, var(--pc2, #2a0060) 100%);
    color: #fff;
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
/* bara verticală de accent a vechiului card nu are sens pe gradient */
.hs-pgrid .hs-pcard--grad::before,
.hs-pgrid--image .hs-pcard--grad::before { display: none; }
.hs-pgrid .hs-pcard--grad:hover,
.hs-pgrid--image .hs-pcard--grad:hover {
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
    border-color: transparent;
}
.hs-pgrid .hs-pcard--grad .hs-pcard__title,
.hs-pgrid--image .hs-pcard--grad .hs-pcard__title {
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-size: 1.25rem;
    font-weight: 800;
    color: #fff;
    position: relative;
    z-index: 3; /* peste vălul de hover — titlul nu dispare niciodată */
}
/* Descrierea apare la hover/focus, ancorată deasupra pastilei, pe un văl
   întunecat (::after) — TITLUL rămâne mereu vizibil (z-index peste văl),
   cardul nu-și pierde identitatea. Doar opacități — fără salturi. */
.hs-pgrid .hs-pcard--grad:not(.hs-pcard--featured)::after,
.hs-pgrid--image .hs-pcard--grad:not(.hs-pcard--featured)::after {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(10, 8, 22, 0.05) 0%, rgba(10, 8, 22, 0.45) 45%, rgba(10, 8, 22, 0.62) 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.hs-pgrid .hs-pcard--grad:not(.hs-pcard--featured):hover::after,
.hs-pgrid--image .hs-pcard--grad:not(.hs-pcard--featured):hover::after,
.hs-pgrid .hs-pcard--grad:not(.hs-pcard--featured):focus-visible::after,
.hs-pgrid--image .hs-pcard--grad:not(.hs-pcard--featured):focus-visible::after {
    opacity: 1;
}

.hs-pgrid .hs-pcard--grad .hs-pcard__desc,
.hs-pgrid--image .hs-pcard--grad .hs-pcard__desc {
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 24px; /* ia locul pastilei, care se estompează la hover */
    z-index: 2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 0.9rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.95);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.hs-pgrid .hs-pcard--grad:hover .hs-pcard__desc,
.hs-pgrid--image .hs-pcard--grad:hover .hs-pcard__desc,
.hs-pgrid .hs-pcard--grad:focus-visible .hs-pcard__desc,
.hs-pgrid--image .hs-pcard--grad:focus-visible .hs-pcard__desc {
    opacity: 1;
}

/* Pastila stă deasupra stratului cu descrierea */
.hs-pgrid .hs-pcard--grad .hs-pcard__pill,
.hs-pgrid--image .hs-pcard--grad .hs-pcard__pill {
    z-index: 3;
}

/* Titlul se împinge sus, pastila jos — cardul scund rămâne aerisit */
.hs-pgrid .hs-pcard--grad .hs-pcard__title,
.hs-pgrid--image .hs-pcard--grad .hs-pcard__title {
    margin-bottom: auto;
}

/* Fără hover (touch): descrierea nu are cum să apară — nu o servim deloc */
@media (hover: none) {
    .hs-pgrid .hs-pcard--grad .hs-pcard__desc,
    .hs-pgrid--image .hs-pcard--grad .hs-pcard__desc { display: none; }
}
.hs-pcard__watermark {
    position: absolute;
    right: -18px;
    bottom: -22px;
    font-size: 8.5rem;
    color: rgba(255, 255, 255, 0.14);
    pointer-events: none;
}
.hs-pgrid .hs-pcard--grad .hs-pcard__pill,
.hs-pgrid--image .hs-pcard--grad .hs-pcard__pill {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border: 1.5px solid rgba(255, 255, 255, 0.55);
    border-radius: var(--radius-full, 9999px);
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-weight: 700;
    font-size: 0.88rem;
    position: relative;
    transition: background 0.2s ease;
}
.hs-pgrid .hs-pcard--grad:hover .hs-pcard__pill,
.hs-pgrid--image .hs-pcard--grad:hover .hs-pcard__pill { background: rgba(255, 255, 255, 0.28); }

/* Cardul CTA („Toate oportunitățile”) — închis la culoare, săgeata galbenă */
.hs-pgrid .hs-pcard--cta,
.hs-pgrid--image .hs-pcard--cta {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    min-height: 185px;
    padding: 24px 28px;
    border: none;
    border-radius: var(--radius-xl, 16px);
    background: var(--text-primary, #1A1A2E);
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.hs-pgrid .hs-pcard--cta::before,
.hs-pgrid--image .hs-pcard--cta::before { display: none; }
.hs-pgrid .hs-pcard--cta:hover,
.hs-pgrid--image .hs-pcard--cta:hover {
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
    transform: translateY(-2px);
    border-color: transparent;
}
.hs-pcard__cta-label {
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
}
.hs-pcard__cta-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.hs-pcard__cta-title {
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-size: 1.35rem;
    font-weight: 800;
    color: #fff;
}
.hs-pcard__cta-arrow {
    display: grid;
    place-items: center;
    flex: none;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--eu-yellow, #FFD617);
    color: var(--text-primary, #1A1A2E);
    font-size: 1.05rem;
    transition: transform 0.2s ease;
}
.hs-pgrid .hs-pcard--cta:hover .hs-pcard__cta-arrow,
.hs-pgrid--image .hs-pcard--cta:hover .hs-pcard__cta-arrow { transform: translateX(4px); }

/* ==================== PROGRAME — LAYOUT „UN SINGUR RÂND" ====================
   Customizer → Programe → Layout = „Un singur rând”: toate cardurile pe
   orizontală, pe toată lățimea ecranului. Marginile auto de pe primul și
   ultimul card CENTREAZĂ grupul când încape în ecran (fără derulare);
   când nu încape, marginile devin 0 și banda derulează natural, iar
   butoanele de navigare apar (JS le ascunde când nu e nevoie de ele). */

.hs-pgrid--row {
    display: flex;
    overflow-x: auto;
    gap: 24px;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 4px 24px 16px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--gray-300, #d4d4d8) transparent;
}
.hs-pgrid--row::-webkit-scrollbar { height: 8px; }
.hs-pgrid--row::-webkit-scrollbar-track { background: transparent; }
.hs-pgrid--row::-webkit-scrollbar-thumb {
    background: var(--gray-300, #d4d4d8);
    border-radius: 4px;
}

/* marginile auto absorb spațiul liber → grup centrat; la overflow devin 0 */
.hs-pgrid--row > :first-child { margin-left: auto; }
.hs-pgrid--row > :last-child { margin-right: auto; }

/* Cardurile se pot strânge (280 → 218px) înainte să apară derularea —
   fără descrierea mereu vizibilă nu mai au nevoie de lățime; pe ecrane
   late toate programele încap și săgețile dispar (JS le ascunde) */
.hs-pgrid--row .hs-pcard--grad,
.hs-pgrid--row .hs-pcard--cta {
    flex: 0 1 280px;
    min-width: 218px;
    scroll-snap-align: start;
}

@media (max-width: 639px) {
    .hs-pgrid--row .hs-pcard--grad,
    .hs-pgrid--row .hs-pcard--cta { flex-basis: 280px; min-width: 240px; }
}

/* Controalele de derulare (stânga/dreapta), ca în referință: cerc plin
   în brand + cerc în tentă deschisă; dezactivat = estompat */
.hs-prow-nav {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-bottom: 20px;
}

/* JS-ul pune atributul hidden când toate cardurile încap — dar display:flex
   de mai sus îl anula și săgețile rămâneau pe ecran fără rost */
.hs-prow-nav[hidden] {
    display: none;
}
.hs-prow-nav__btn {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: none;
    border-radius: 50%;
    background: var(--brand-primary-100, #f1eafa);
    color: var(--brand-purple, #440098);
    font-size: 0.95rem;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.hs-prow-nav__btn--next {
    background: var(--brand-purple, #440098);
    color: #fff;
}
.hs-prow-nav__btn:hover:not(:disabled) {
    background: var(--brand-purple-dark, #2a0060);
    color: #fff;
}
.hs-prow-nav__btn:disabled {
    opacity: 0.35;
    cursor: default;
}
.hs-prow-nav__btn:focus-visible {
    outline: 3px solid var(--eu-yellow, #FFD617);
    outline-offset: 2px;
}

/* ============================================================
   Scroll cue — săgeata de la finalul secțiunilor de pe homepage
   (adăugată de home-sections.js; ultima secțiune nu primește)
   ============================================================ */
.hs-has-cue {
    position: relative;
}

/* Doar săgeata, fără fundal — culoarea se adaptează secțiunii:
   mov pe secțiuni deschise, galben-brand pe hero-ul închis */
.hs-scroll-cue {
    position: absolute;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);
    width: 44px;
    height: 44px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--brand-purple, #440098);
    cursor: pointer;
    z-index: 5;
    transition: opacity 0.25s ease;
}

.hero .hs-scroll-cue {
    color: var(--eu-yellow, #FFCC00);
}

.hs-scroll-cue i {
    font-size: 1.75rem;
    animation: hs-cue-bob 1.6s ease-in-out infinite;
}

@keyframes hs-cue-bob {
    0%, 100% { transform: translateY(-2px); }
    50%      { transform: translateY(3px); }
}

/* Secțiunea a fost depășită la scroll → săgeata dispare */
.hs-scroll-cue.is-passed {
    opacity: 0;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .hs-scroll-cue i { animation: none; }
}

/* ============================================================
   Document blocks — template-urile Declarații / Transparență
   (inc/document-blocks.php parsează conținutul din editor)
   ============================================================ */
.docs-blocks > * + * {
    margin-top: 1.5rem;
}

.docs-heading {
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--text-primary);
    margin: 2.5rem 0 0.25rem;
    padding-bottom: 0.625rem;
    border-bottom: 2px solid var(--gray-200, #e5e7eb);
}

.docs-blocks > .docs-heading:first-child {
    margin-top: 0;
}

.docs-heading a {
    color: inherit;
    text-decoration: none;
}

.docs-heading a:hover {
    color: var(--brand-purple, #440098);
}

.docs-heading a i {
    font-size: 0.75em;
    color: var(--brand-purple, #440098);
    margin-left: 0.25rem;
}

.docs-prose {
    color: var(--text-secondary);
}

/* Carduri mari — linkuri singulare (ex. arhivele anuale de declarații) */
.docs-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

@media (max-width: 767px) {
    .docs-cards {
        grid-template-columns: 1fr;
    }
}

.docs-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.125rem 1.25rem;
    background: white;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-xl, 16px);
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.docs-card:hover {
    border-color: var(--brand-purple, #440098);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.docs-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg, 12px);
    font-size: 1.25rem;
    flex-shrink: 0;
    background: var(--doc-tile-bg);
    color: var(--doc-tile-ink);
}

.docs-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.docs-card__title {
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.35;
}

.docs-card__meta {
    font-size: 0.75rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.docs-card__arrow {
    margin-left: auto;
    color: var(--brand-purple, #440098);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.docs-card:hover .docs-card__arrow {
    opacity: 1;
    transform: translateX(0);
}

/* Grupuri — etichetă + chips per document (liste din editor) */
.docs-group {
    padding: 1.25rem 1.375rem;
    background: white;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-xl, 16px);
}

.docs-group__label {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 0.875rem;
}

.docs-group__items {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.docs-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4375rem 0.875rem;
    background: var(--gray-50, #fafafa);
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-full, 999px);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    line-height: 1.2;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.docs-chip:hover {
    background: white;
    border-color: var(--brand-purple, #440098);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.docs-chip i { color: var(--doc-tile-ink); }
.docs-chip--link i { color: var(--text-muted); font-size: 0.6875rem; }

/* ============================================================
   Editorial blocks — template „Pagină de prezentare”
   (inc/editorial-blocks.php transformă conținutul din editor)
   ============================================================ */
.edit-blocks > * + * {
    margin-top: 1.25rem;
}

/* Paragraf-lead (h3 foarte lung din editor = intro-ul paginii) */
.edit-blocks .edit-lead {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.65;
    color: var(--text-primary);
}

/* Titluri de secțiune cu accent brand */
.edit-blocks .edit-heading {
    position: relative;
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--text-primary);
    margin: 2.75rem 0 1rem;
    padding-bottom: 0.625rem;
}

.edit-blocks .edit-heading::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 48px;
    height: 3px;
    border-radius: 2px;
    background: var(--brand-purple, #440098);
}

.edit-blocks .edit-heading--sub {
    font-size: 1.25rem;
    margin-top: 2.25rem;
}

.edit-blocks > .edit-heading:first-child,
.edit-blocks > .edit-lead:first-child {
    margin-top: 0;
}

/* Citat evidențiat (blockquote din editor) */
.edit-blocks .edit-quote {
    margin: 1.75rem 0;
    padding: 1.25rem 1.5rem;
    background: var(--gray-50, #fafafa);
    border-left: 4px solid var(--brand-purple, #440098);
    border-radius: 0 var(--radius-lg, 12px) var(--radius-lg, 12px) 0;
    font-size: 1.1875rem;
    font-style: italic;
    font-weight: 600;
    color: var(--text-primary);
}

/* Liste cu bife (ul fără linkuri) */
.edit-blocks ul.edit-list {
    list-style: none;
    margin: 1rem 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.edit-blocks ul.edit-list li {
    position: relative;
    padding-left: 2rem;
    line-height: 1.6;
    color: var(--text-secondary);
}

.edit-blocks ul.edit-list li::before {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 0.2em;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    font-size: 0.625rem;
    color: var(--brand-purple, #440098);
    background: var(--gray-100, #f3f4f6);
}

/* Liste numerotate (ol fără linkuri) */
.edit-blocks ol.edit-list--num {
    list-style: none;
    counter-reset: edit-num;
    margin: 1rem 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.edit-blocks ol.edit-list--num li {
    position: relative;
    padding-left: 2.5rem;
    line-height: 1.6;
    color: var(--text-secondary);
}

.edit-blocks ol.edit-list--num li::before {
    counter-increment: edit-num;
    content: counter(edit-num);
    position: absolute;
    left: 0;
    top: 0.05em;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--brand-purple, #440098);
    color: white;
    font-size: 0.8125rem;
    font-weight: 700;
    font-style: normal;
}

/* Pastile — șiruri de paragrafe foarte scurte (ex. valorile) */
.edit-blocks .edit-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin: 1.25rem 0;
}

.edit-blocks .edit-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.125rem;
    background: var(--gray-50, #fafafa);
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-full, 999px);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-primary);
}

/* Butoane CTA (linkurile din <pre> în editor) */
.edit-blocks .edit-cta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin: 2rem 0;
}

.edit-blocks .edit-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.625rem;
    background: var(--brand-purple, #440098);
    color: white;
    border-radius: var(--radius-full, 999px);
    font-weight: 700;
    font-size: 0.9375rem;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.edit-blocks .edit-cta__btn:hover {
    color: white;
    filter: brightness(1.15);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.edit-blocks .edit-cta__btn i {
    font-size: 0.8125rem;
}

/* Doi CTA în același rând: al doilea devine AUTOMAT outline — pereche
   „principal + secundar”, aceeași regulă ca la [cta]-urile consecutive */
.edit-blocks .edit-cta__btn + .edit-cta__btn {
    background: transparent;
    color: var(--brand-purple, #440098);
    border: 2px solid var(--brand-purple, #440098);
}

.edit-blocks .edit-cta__btn + .edit-cta__btn:hover {
    background: var(--brand-purple, #440098);
    color: white;
    filter: none;
}

/* Logo-uri de program (imagini singure din editor) */
.edit-blocks .edit-logo {
    margin: 2.5rem 0 1rem;
}

.edit-blocks .edit-logo img {
    display: block;
    max-width: 300px;
    width: auto;
    height: auto;
}

/* Logo centrat în editor (aligncenter / text-align:center / margin auto) */
.edit-blocks .edit-logo--center img {
    margin-left: auto;
    margin-right: auto;
}

.edit-blocks .edit-logo--center a {
    display: block;
    text-align: center;
}

/* Figuri editoriale — postere, capturi, bannere (imagini mari/portret),
   centrate și cu umbră discretă; logo-urile mici rămân .edit-logo */
.edit-blocks .edit-figure {
    margin: 2rem auto;
    text-align: center;
}

.edit-blocks .edit-figure img {
    display: inline-block;
    max-width: min(100%, 560px);
    width: auto;
    height: auto;
    border-radius: var(--radius-lg, 14px);
    /* fără umbră — pe logo-urile cu fundal alb ar crea un „card” fals */
}

/* Notă centrată — <pre> din editor fără niciun link */
.edit-blocks .edit-cta__note {
    text-align: center;
    color: var(--text-secondary, #52525b);
    margin: 1.5rem 0;
}

/* Fișă de metadate proiect — linii „Etichetă: valoare” din editor */
.edit-blocks .edit-meta {
    margin: 1.5rem 0 2.25rem;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-lg, 14px);
    overflow: hidden;
}

.edit-blocks .edit-meta__row {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 0.375rem 1rem;
    padding: 0.7rem 1.125rem;
}

.edit-blocks .edit-meta__row:nth-child(odd) {
    background: var(--gray-50, #fafafa);
}

.edit-blocks .edit-meta__label {
    font-weight: 600;
    color: var(--brand-purple, #440098);
    font-size: 0.9rem;
}

.edit-blocks .edit-meta__value {
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .edit-blocks .edit-meta__row {
        grid-template-columns: 1fr;
    }
}

/* ==== Document blocks v2: rânduri, mini-chips, carduri de navigare ==== */
.docs-group--rows {
    padding: 0;
    overflow: hidden;
}

.docs-group--rows .docs-group__label {
    margin: 0;
    padding: 1.125rem 1.25rem 0.875rem;
    border-bottom: 1px solid var(--gray-100, #f3f4f6);
}

.docs-rows--num {
    counter-reset: docsrow;
}

.docs-row {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.8125rem 1.25rem;
    text-decoration: none;
}

.docs-row + .docs-row {
    border-top: 1px solid var(--gray-100, #f3f4f6);
}

.docs-rows--num .docs-row::before {
    counter-increment: docsrow;
    content: counter(docsrow);
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--gray-100, #f3f4f6);
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 700;
    align-self: flex-start;
    margin-top: 0.1em;
}

a.docs-row--link {
    transition: background 0.15s ease;
}

a.docs-row--link:hover {
    background: var(--gray-50, #fafafa);
}

.docs-row__icon {
    flex-shrink: 0;
    width: 20px;
    text-align: center;
    font-size: 0.9375rem;
    align-self: flex-start;
    margin-top: 0.2em;
    color: var(--doc-tile-ink);
}

/* culoarea vine din baza .docs-row__icon; --link rămâne discret (mai jos) */
.docs-row__icon--link { color: var(--text-muted); font-size: 0.8125rem; }

.docs-row__title {
    flex: 1;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.5;
}

a.docs-row--link:hover .docs-row__title {
    color: var(--brand-purple, #440098);
}

.docs-row__ext {
    flex-shrink: 0;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--text-muted);
}

.docs-row__text {
    flex: 1;
    color: var(--text-secondary);
    line-height: 1.7;
}

/* Mini-chips: linkurile din interiorul unui rând (ani, limbi, AICI) */
.docs-mini {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.625rem;
    background: var(--gray-100, #f3f4f6);
    border-radius: var(--radius-full, 999px);
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--brand-purple, #440098);
    text-decoration: none;
    line-height: 1.5;
    transition: background 0.15s ease, color 0.15s ease;
}

.docs-mini:hover {
    background: var(--brand-purple, #440098);
    color: white;
}

/* Carduri de navigare (fostele div-uri SubortList din site-ul vechi) */
.docs-nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

@media (max-width: 767px) {
    .docs-nav {
        grid-template-columns: 1fr;
    }
}

.docs-nav__card {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.375rem 1.5rem;
    background: white;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-xl, 16px);
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.docs-nav__card:hover {
    border-color: var(--brand-purple, #440098);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.docs-nav__title {
    font-size: 1.0625rem;
    font-weight: 800;
    color: var(--text-primary);
    line-height: 1.4;
}

.docs-nav__desc {
    font-size: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.6;
}

.docs-nav__more {
    margin-top: auto;
    padding-top: 0.375rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-purple, #440098);
}

.docs-nav__more i {
    font-size: 0.75rem;
    margin-left: 0.25rem;
}

/* ==================== ARHIVA DE ȘTIRI: chips pe ani + prima știre bento
   (2026-08-20, template unificat pentru ambele teme) ==================== */

/* Banda de ani: pastile în limbajul chips-urilor de la Oportunități;
   pe mobil derulează lateral (swipe), fără scrollbar vizibil */
.year-chips {
    display: flex;
    gap: 10px;
    margin-bottom: 28px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
}

.year-chips::-webkit-scrollbar { display: none; }

.year-chip {
    flex: none;
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    background: var(--white, #fff);
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-full, 9999px);
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-primary, #1a1a2e);
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.year-chip:hover {
    border-color: var(--brand-primary);
    color: var(--brand-primary);
}

.year-chip--active,
.year-chip--active:hover {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.year-chip:focus-visible {
    outline: 3px solid var(--brand-primary);
    outline-offset: 2px;
}

/* Prima știre din arhivă: cardul mare din bento, de sine stătător */
.news-archive__hero {
    margin-bottom: 28px;
}

.news-archive__hero .news-bento__featured {
    min-height: 340px; /* în bento venea din grid-auto-rows */
}

/* Bento-ul din grila de știri (template-stiri.php): 3 coloane din 4 pe
   ecrane late — un card overlay stă lângă el pe primul rând; pe grile
   mai înguste ocupă rândul întreg. Chenarul îl desprinde de fundalul
   alb al paginii (panoul cardului e tot alb). */
.news-archive__grid .news-archive__featured,
.news-archive__hero .news-bento__featured {
    border: 1px solid var(--gray-200, #e5e7eb);
}

.news-archive__grid .news-archive__featured {
    grid-column: 1 / -1;
    min-height: 340px;
}

@media (min-width: 1200px) {
    .news-archive__grid .news-archive__featured {
        grid-column: span 3;
    }
}

/* ==================== CĂUTARE + ARHIVE UNIFICATE (2026-08-20) ==================== */

/* Descrierea etichetei/categoriei, sub titlul din hero */
.article-hero__desc {
    max-width: 65ch;
    margin: 0.6rem 0 0;
    font-size: 0.98rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
}

/* Eticheta „Oportunitate” de pe cardurile din căutare — chihlimbar,
   distinctă de etichetele de categorie ale știrilor */
.news-archive__card-tag--opportunity {
    background: #b45309;
    color: #fff;
}

/* ==================== ȘTIRI: BARA CU CONTOR + COMUTATOR GRILĂ/LISTĂ ==================== */

.news-archive__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}
/* În modul listă bara primește aceeași linie ca rândurile de sub ea —
   contorul + comutatorul devin primul „rând” al listei */
.news-archive__bar--list {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gray-200, #e5e7eb);
}

.news-archive__count {
    color: var(--text-secondary, #4a4a68);
    font-size: 0.95rem;
}

.news-archive__viewtoggle {
    display: inline-flex;
    gap: 6px;
}

.news-archive__viewbtn {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    background: var(--white, #fff);
    color: var(--text-muted, #6b7280);
    font-size: 0.95rem;
    cursor: pointer;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.news-archive__viewbtn:hover {
    color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.news-archive__viewbtn.is-active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.news-archive__viewbtn:focus-visible {
    outline: 3px solid var(--brand-primary);
    outline-offset: 2px;
}

/* ---------- Modul listă: „editorial compact” (2026-08-21) ----------
   După critică + 3 prototipuri. Un singur limbaj de rând pe toată lista:
   imagine 3:2 mică la stânga, data ca eyebrow, titlu, rezumat pe un rând,
   linii fine între rânduri (fără cutii). Prima știre e ACELAȘI rând,
   doar mai mare (.news-archive__lead): bento-ul rămâne promisiunea grilei.
   Fără iconițe și vizualizări în listă, fără bloc mov la lipsă imagine.
   Fonturile vin din Customizer (--font-primary / --font-display): aici
   doar mărimi, greutăți și spațieri. */

/* Eyebrow-ul cu data și „Citește știrea” există în markup pentru toate
   cardurile care le primesc, dar se văd numai în modul listă */
.news-archive__card-date,
.news-archive__card-more { display: none; }

/* Rândurile se ating prin padding + linie, nu prin gap-ul grilei */
.news-archive__grid--list { row-gap: 0; }

/* Bento-ul dispare, rândul-lead (ascuns în grilă) îi ia locul */
.news-archive__grid--list .news-archive__featured { display: none; }
.news-archive__lead { display: none; }
.news-archive__grid--list .news-archive__lead { display: block; }

.news-archive__grid--list .news-archive__card {
    grid-column: 1 / -1;
    min-height: 0;
    /* cutia cardului de bază dispare: rândul e definit doar de linia de jos */
    background: none;
    border: none;
    border-bottom: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
    padding: 20px 0;
}
.news-archive__grid--list .news-archive__card:hover {
    transform: none; /* rândurile nu „sar”: feedbackul e pe titlu și imagine */
    box-shadow: none;
    border-color: var(--gray-200, #e5e7eb);
}
.news-archive__grid--list .news-archive__lead {
    padding-top: 0;
    padding-bottom: 28px;
}

.news-archive__grid--list .news-archive__card .news-archive__card-link {
    position: static;
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr);
    gap: 24px;
    align-items: start; /* textul pornește de sus, nu plutește centrat */
    height: auto;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
}
.news-archive__grid--list .news-archive__card .news-archive__card-link:focus-visible {
    outline: 3px solid var(--brand-primary);
    outline-offset: 4px;
    border-radius: 4px;
}
.news-archive__grid--list .news-archive__lead .news-archive__card-link {
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 32px;
}

.news-archive__grid--list .news-archive__card .news-archive__card-image {
    position: relative;
    inset: auto;
    height: auto;
    padding: 0;
    aspect-ratio: 3 / 2;
    border-radius: 10px;
    overflow: hidden;
    background: var(--brand-primary-50, #f6f2fa);
}
.news-archive__grid--list .news-archive__lead .news-archive__card-image { border-radius: 14px; }
.news-archive__grid--list .news-archive__card .news-archive__card-image img {
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.news-archive__grid--list .news-archive__card:hover .news-archive__card-image img {
    transform: scale(1.03);
}

/* Lipsă imagine: tentă brand + glifa de ziar, discretă (nu blocul mov
   gradient al cardului overlay, care striga mai tare decât orice poză) */
.news-archive__grid--list .news-archive__card .news-archive__card-placeholder {
    position: absolute;
    inset: 0;
    background: var(--brand-primary-50, #f6f2fa);
    border: 1px solid var(--brand-primary-100, #ede4f7);
    border-radius: inherit;
}
.news-archive__grid--list .news-archive__card .news-archive__card-placeholder::before { display: none; }
.news-archive__grid--list .news-archive__card .news-archive__card-placeholder::after {
    font-size: 1.6rem;
    color: var(--brand-primary);
    opacity: 0.45;
}

.news-archive__grid--list .news-archive__card .news-archive__card-body {
    position: static;
    display: block;
    min-width: 0;
    padding: 0;
    background: none;
    border-radius: 0;
}

/* Data ca eyebrow: prima informație, cifre tabulare */
.news-archive__grid--list .news-archive__card .news-archive__card-date {
    display: block;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--text-muted, #6b7280);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
}

.news-archive__grid--list .news-archive__card .news-archive__card-title {
    color: var(--text-primary, #1a1a2e) !important;
    margin: 6px 0 0;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    /* fără max-width: titlul și rezumatul ocupă toată coloana de text (2026-08-21) */
    -webkit-line-clamp: 2;
    transition: color 0.15s ease;
}
.news-archive__grid--list .news-archive__card:hover .news-archive__card-title {
    color: var(--brand-primary) !important;
    opacity: 1;
}
.news-archive__grid--list .news-archive__lead .news-archive__card-title {
    font-family: var(--font-display);
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.01em;
    -webkit-line-clamp: 3;
}

.news-archive__grid--list .news-archive__card .news-archive__card-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2; /* două rânduri pline; PHP-ul trimite 40 de cuvinte, tăierea e vizuală */
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 6px 0 0;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--text-secondary, #4a4a68);
}
.news-archive__grid--list .news-archive__lead .news-archive__card-excerpt {
    -webkit-line-clamp: 2;
    margin-top: 10px;
    font-size: 1rem;
}

/* Meta cu iconițe (calendar, vizualizări) e a grilei; lista are data sus */
.news-archive__grid--list .news-archive__card .news-archive__card-meta { display: none; }

/* „Citește știrea” pe rândul-lead, în limbajul bento-ului (cerc + săgeată) */
.news-archive__grid--list .news-archive__card .news-archive__card-more {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}
.news-archive__grid--list .news-archive__card .news-archive__card-more i {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 2px solid var(--brand-primary);
    border-radius: 50%;
    font-size: 0.75rem;
    transition: background 0.2s ease, color 0.2s ease;
}
.news-archive__grid--list .news-archive__card:hover .news-archive__card-more i {
    background: var(--brand-primary);
    color: #fff;
}

@media (max-width: 767px) {
    .news-archive__grid--list .news-archive__card { padding: 16px 0; }
    .news-archive__grid--list .news-archive__card .news-archive__card-link {
        grid-template-columns: 112px minmax(0, 1fr);
        gap: 14px;
    }
    /* coloana de imagine rămâne și fără poză (regula de bază o ascunde
       pe mobil la cardurile fără imagine): ritmul listei nu se rupe */
    .news-archive__grid--list .news-archive__card--no-image .news-archive__card-image { display: block; }
    .news-archive__grid--list .news-archive__card .news-archive__card-title { font-size: 1.02rem; }
    .news-archive__grid--list .news-archive__card .news-archive__card-excerpt { display: none; }
    /* lead-ul se stivuiește: poza 16:9 pe toată lățimea, apoi textul */
    .news-archive__grid--list .news-archive__lead .news-archive__card-link {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .news-archive__grid--list .news-archive__lead .news-archive__card-image { aspect-ratio: 16 / 9; }
    .news-archive__grid--list .news-archive__lead .news-archive__card-title { font-size: 1.3rem; }
    .news-archive__grid--list .news-archive__lead .news-archive__card-excerpt { display: -webkit-box; }
}

@media (prefers-reduced-motion: reduce) {
    .news-archive__grid--list .news-archive__card .news-archive__card-image img,
    .news-archive__grid--list .news-archive__card .news-archive__card-title,
    .news-archive__grid--list .news-archive__card .news-archive__card-more i {
        transition: none;
    }
    .news-archive__grid--list .news-archive__card:hover .news-archive__card-image img {
        transform: none;
    }
}

/* ==================== HERO: LAYOUT-URI ALTERNATIVE (2026-08-20) ====================
   Customizer → Homepage → Secțiunea Hero → „Layout Hero”. Toate variantele
   folosesc același markup — doar așezarea și cadrul se schimbă. */

/* --- Stânga: textul pornește de la marginea containerului, ca secțiunile
   de sub hero („Cine suntem”) --- */
.hero--stanga,
.hero--stanga-jos,
.hero--panou,
.hero--compact-stanga {
    text-align: left;
}

.hero--stanga .hero__inner,
.hero--stanga-jos .hero__inner,
.hero--panou .hero__inner,
.hero--compact-stanga .hero__inner {
    max-width: 720px;
    margin-left: 0;
    margin-right: auto;
}

.hero--stanga .hero__title,
.hero--stanga-jos .hero__title,
.hero--panou .hero__title,
.hero--compact-stanga .hero__title {
    margin-left: 0;
    margin-right: 0;
}

.hero--stanga .hero__desc,
.hero--stanga-jos .hero__desc,
.hero--panou .hero__desc,
.hero--compact-stanga .hero__desc {
    margin-left: 0;
    margin-right: 0;
}

.hero--stanga .hero__actions,
.hero--stanga-jos .hero__actions,
.hero--panou .hero__actions,
.hero--compact-stanga .hero__actions {
    justify-content: flex-start;
}

/* --- Stânga, ancorat jos: titlul stă deasupra liniei de jos a hero-ului,
   ca o deschidere editorială; descrierea mai aproape de titlu --- */
.hero--stanga-jos {
    align-items: flex-end;
    padding-bottom: 6.5rem;
}

.hero--stanga-jos .hero__title {
    font-size: clamp(2.5rem, 6vw, 4.25rem);
}

.hero--stanga-jos .hero__desc {
    margin-bottom: 2.25rem;
}

/* --- Panou întunecat: textul stă pe un card solid — rămâne lizibil pe
   orice fotografie, fără să depindă de overlay --- */
.hero--panou .hero__inner {
    max-width: 640px;
    background: rgba(18, 8, 44, 0.78);
    border-radius: var(--radius-2xl, 16px);
    padding: 2.75rem 3rem;
}

.hero--panou .hero__desc {
    margin-bottom: 2.25rem;
}

@media (max-width: 640px) {
    .hero--panou .hero__inner {
        padding: 1.75rem 1.5rem;
    }
}

/* --- Compact: mesajul, apoi repede la conținut --- */
.hero--compact,
.hero--compact-stanga {
    min-height: 440px;
    padding-top: calc(var(--total-header) + 1.5rem);
    padding-bottom: 3.5rem;
}

.hero--compact .hero__title,
.hero--compact-stanga .hero__title {
    font-size: clamp(2rem, 4.5vw, 3rem);
    margin-bottom: 1rem;
}

.hero--compact .hero__desc,
.hero--compact-stanga .hero__desc {
    margin-bottom: 2rem;
}

/* ==================== NAVIGAREA DE SECȚIUNE PE MOBIL (2026-08-20) ====================
   Pe desktop, bara „În această secțiune” nu există — sidebar-ul e mereu
   vizibil. Pe mobil, tot arborele ar împinge conținutul paginii în jos,
   așa că stă pliat sub o bară-acordeon. Cardul (fundal + bordură) e pe
   .section-nav, nu pe bară — meniul desfăcut rămâne ÎN interiorul lui. */

.section-nav__mobilebar {
    display: none;
}

@media (max-width: 960px) {
    .page-sidebar .section-nav:not(.team-deptnav) {
        background: var(--white, #fff);
        border: 1px solid var(--brand-primary-100, #e9e2f5);
        border-radius: var(--radius-xl, 14px);
    }

    .section-nav__mobilebar {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
        padding: 14px 18px;
        background: none;
        border: none;
        border-radius: var(--radius-xl, 14px);
        font-family: var(--font-display);
        font-size: 1.02rem;
        font-weight: 700;
        color: var(--text-primary, #1a1a2e);
        cursor: pointer;
        text-align: left;
    }

    .section-nav__mobilebar > i:first-child {
        color: var(--text-primary, #1a1a2e);
    }

    .section-nav__mobilebar-label {
        flex: 1;
        min-width: 0;
    }

    .section-nav__mobilebar-caret {
        flex: none;
        color: var(--text-muted, #6b7280);
        transition: transform 0.2s ease;
    }

    .section-nav.is-open .section-nav__mobilebar-caret {
        transform: rotate(180deg);
    }

    .section-nav__mobilebar:focus-visible {
        outline: 3px solid var(--brand-primary);
        outline-offset: 2px;
    }

    /* Panoul pliat: se desface lin (grid-rows), fără salt */
    .section-nav__panel {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    }

    /* Meniul stă în interiorul cardului. Paddingul lateral e constant
       (altfel titlul sare la margine în timpul animației de închidere);
       doar cel vertical + linia de sub bară țin de starea deschisă. */
    .section-nav__panel-in {
        min-height: 0;
        overflow: hidden;
        padding: 0 18px;
    }

    .section-nav.is-open .section-nav__panel {
        grid-template-rows: 1fr;
    }

    .section-nav.is-open .section-nav__panel-in {
        padding-top: 14px;
        padding-bottom: 18px;
        border-top: 1px solid var(--brand-primary-100, #e9e2f5);
    }

    /* Submeniul integrat în panou: bloc gri foarte pal, fără bordura-ghid
       de pe desktop — copiii se citesc ca un grup al părintelui */
    .section-nav__panel .section-nav__list .section-nav__list {
        margin: 2px 0 8px;
        padding: 6px 10px 6px 16px;
        border-left: none;
        background: var(--gray-50, #fafafa);
        border-radius: 10px;
    }

    @media (prefers-reduced-motion: reduce) {
        .section-nav__panel { transition: none; }
        .section-nav__mobilebar-caret { transition: none; }
    }
}

/* ==================== ECHIPA: DEPARTAMENTELE CA CHIPS PE MOBIL ==================== */

@media (max-width: 960px) {
    .team-deptnav__list {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 2px 0 6px;
        margin: 0;
    }

    .team-deptnav__list::-webkit-scrollbar { display: none; }

    .team-deptnav__list .section-nav__item {
        flex: none;
        margin: 0;
    }

    .team-deptnav__list .section-nav__row {
        display: block;
    }

    .team-deptnav__list .team-deptnav__link {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 8px 14px;
        background: var(--white, #fff);
        border: 1px solid var(--gray-200, #e5e7eb);
        border-radius: var(--radius-full, 9999px);
        font-size: 0.88rem;
        font-weight: 600;
        color: var(--text-primary, #1a1a2e);
        white-space: nowrap;
    }

    .team-deptnav__list .team-deptnav__link::before { content: none; }

    /* Numele foarte lungi („Proiecte în domeniile Educației școlare și
       Educației adulților”) ar face chipsuri cât jumătate de bandă —
       plafonăm cu elipsă; numele complet rămâne pe titlul secțiunii */
    .team-deptnav__list .team-deptnav__name {
        display: inline-block;
        max-width: 24ch;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .team-deptnav__list .team-deptnav__count {
        font-size: 0.72rem;
        font-weight: 700;
        color: var(--text-muted, #6b7280);
        background: var(--gray-100, #f3f4f6);
        border-radius: var(--radius-full, 9999px);
        padding: 2px 8px;
    }

    /* Toate departamentele stau pe banda derulantă — butonul „Arată toate”
       nu mai are sens pe mobil */
    .team-deptnav__more { display: none !important; }

    .team-deptnav .section-nav__title {
        border-bottom: none;
        padding-bottom: 4px;
        margin-bottom: 6px;
    }

    /* Sidebar-ul „dispare” ca element (display: contents), altfel banda
       sticky ar fi limitată la înălțimea lui mică și nu ar glisa de-a
       lungul listei de departamente */
    .team-section .page-layout { display: block; }
    .team-section .page-sidebar { display: contents; }
    .team-section .page-sidebar > .section-nav:not(.team-deptnav) { margin-bottom: 24px; }
    .team-section .page-main { margin-top: 16px; }

    /* Banda de chipsuri rămâne lipită sub header în timpul scroll-ului,
       ca să poți sări între departamente de oriunde din pagină */
    .team-deptnav {
        position: sticky;
        top: 62px; /* înălțimea headerului fix */
        z-index: 50;
        background: var(--white, #fff); /* fundalul paginii, ca banda să acopere conținutul la scroll */
        margin: 0 -1rem;          /* full-bleed până la marginile ecranului */
        padding: 6px 1rem 0;
        transition: box-shadow 0.2s ease;
    }
    .team-deptnav.is-stuck {
        box-shadow: 0 6px 16px -10px rgba(0, 0, 0, 0.25);
    }
    body.admin-bar .team-deptnav { top: 108px; } /* 62 + 46 bara admin mobil */

    /* Chip-ul departamentului selectat / vizibil pe ecran */
    .team-deptnav__list .team-deptnav__link.is-active {
        background: var(--brand-primary, #440098);
        border-color: var(--brand-primary, #440098);
        color: #fff;
    }
    .team-deptnav__list .team-deptnav__link.is-active .team-deptnav__count {
        background: rgba(255, 255, 255, 0.18);
        color: #fff;
    }
}

/* --- Imaginea laterală a hero-ului (dreapta) — doar pe layout-urile
   aliniate la stânga, doar pe desktop --- */
.hero--has-side .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
}

.hero--has-side .hero__inner {
    flex: 1;
    min-width: 0;
}

.hero__side {
    flex: none;
    width: min(380px, 32vw);
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero__side img {
    width: 100%;
    height: auto;
    max-height: 420px;
    object-fit: contain;
}

/* Stânga-jos: imaginea rămâne centrată vertical, textul jos */
.hero--stanga-jos.hero--has-side .container {
    align-items: flex-end;
}

.hero--stanga-jos.hero--has-side .hero__side {
    align-self: center;
}

@media (max-width: 1023px) {
    .hero__side { display: none; }
    .hero--has-side .container { display: block; }
}

/* ==================== PROGRAME: GRILĂ BENTO (2026-08-20) ====================
   Erasmus+ (programul-far, ~90% din activitatea agenției) primește cardul
   mare cu descrierea mereu la vedere; celelalte programe stau în jurul lui.
   Grila stă în container, aliniată cu titlul secțiunii — fără carusel,
   fără săgeți, fără full-bleed. */

.hs-pgrid--bento {
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: minmax(170px, auto);
    gap: 20px;
}

.hs-pgrid--bento .hs-pcard--featured {
    grid-column: span 2;
    grid-row: span 2;
    padding: 36px 34px;
}

.hs-pgrid--bento .hs-pcard--featured .hs-pcard__title {
    font-size: clamp(1.6rem, 2.4vw, 2rem);
    margin-bottom: 0.9rem;
}

/* Pe cardul mare descrierea nu mai e strat de hover — e mereu acolo */
.hs-pgrid--bento .hs-pcard--featured .hs-pcard__desc {
    position: static;
    inset: auto;
    display: block;
    padding: 0;
    background: none;
    opacity: 1;
    pointer-events: auto;
    flex: 1;
    max-width: 46ch;
    margin-bottom: 1.25rem;
    font-size: 1rem;
    line-height: 1.65;
}

.hs-pgrid--bento .hs-pcard--featured .hs-pcard__watermark {
    font-size: 12rem;
    right: -30px;
    bottom: -36px;
}

/* Cardurile mici din bento rămân scunde, cu descrierea la hover */
.hs-pgrid--bento .hs-pcard--grad:not(.hs-pcard--featured),
.hs-pgrid--bento .hs-pcard--cta {
    min-height: 0;
}

@media (max-width: 1023px) {
    .hs-pgrid--bento {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: minmax(150px, auto);
    }
    .hs-pgrid--bento .hs-pcard--featured {
        grid-column: span 2;
        grid-row: span 1;
    }
}

@media (max-width: 639px) {
    .hs-pgrid--bento {
        grid-template-columns: 1fr;
    }
    .hs-pgrid--bento .hs-pcard--featured {
        grid-column: span 1;
    }
}

/* Fără hover (touch): pe cardul mare descrierea e statică, deci vizibilă
   și pe touch — anulăm ascunderea generală */
@media (hover: none) {
    .hs-pgrid--bento .hs-pcard--featured .hs-pcard__desc {
        display: block;
    }
}

/* La hover, pastila „Află mai multe” îi face loc descrierii — tot cardul
   e oricum link, iar titlul rămâne neatins sus */
.hs-pgrid .hs-pcard--grad:not(.hs-pcard--featured) .hs-pcard__pill,
.hs-pgrid--image .hs-pcard--grad:not(.hs-pcard--featured) .hs-pcard__pill {
    transition: background 0.2s ease, opacity 0.15s ease;
}

.hs-pgrid .hs-pcard--grad:not(.hs-pcard--featured):hover .hs-pcard__pill,
.hs-pgrid--image .hs-pcard--grad:not(.hs-pcard--featured):hover .hs-pcard__pill,
.hs-pgrid .hs-pcard--grad:not(.hs-pcard--featured):focus-visible .hs-pcard__pill,
.hs-pgrid--image .hs-pcard--grad:not(.hs-pcard--featured):focus-visible .hs-pcard__pill {
    opacity: 0;
}

/* --- Fotografie pe fundalul cardului de program (Customizer → Programe →
   Program N → Imagine program): gradientul programului rămâne deasupra,
   semi-transparent; fără color-mix, cardul cade pe gradientul plin --- */
.hs-pgrid .hs-pcard--grad.hs-pcard--img,
.hs-pgrid--image .hs-pcard--grad.hs-pcard--img,
.hs-pgrid--row .hs-pcard--grad.hs-pcard--img {
    background-image:
        linear-gradient(140deg, color-mix(in srgb, var(--pc, #440098) 76%, transparent) 0%, color-mix(in srgb, var(--pc2, #2a0060) 86%, transparent) 100%),
        var(--pcimg);
    background-size: cover;
    background-position: center;
}

/* Cu fotografie, filigranul-iconiță ar face zgomot peste imagine */
.hs-pcard--img .hs-pcard__watermark {
    display: none;
}


/* ==================== MOBIL: HERO + DESPRE + FOOTER (2026-08-21) ==================== */
@media (max-width: 860px) {
    /* 2. Despre noi: fără imagine pe mobil — coloana de text e mesajul */
    .hs-about__media { display: none; }
    .hs-about__grid { gap: 0; }
}

@media (max-width: 767px) {
    /* 1. Hero: totul centrat (inclusiv variantele „stânga”), mai scund,
       CTA-urile pe toată lățimea */
    .hero {
        min-height: 460px;
        padding: calc(var(--total-header, 62px) + 2rem) 0 3.25rem;
    }
    .hero--stanga-jos { padding-bottom: 3.25rem; }
    .hero--stanga .hero__inner,
    .hero--stanga-jos .hero__inner,
    .hero--panou .hero__inner,
    .hero--compact-stanga .hero__inner {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }
    .hero--stanga .hero__actions,
    .hero--stanga-jos .hero__actions,
    .hero--panou .hero__actions,
    .hero--compact-stanga .hero__actions {
        justify-content: center;
    }
    .hero__actions { width: 100%; }
    .hero__actions .btn { width: 100%; }
    /* pastilele cu cerc: textul la stânga, cercul lipit de marginea dreaptă */
    .hero__actions .btn--cta { justify-content: space-between; }

    /* 3. Footer: fiecare meniu-acordeon pe rândul lui */
    .footer__column--about {
        /* divider între partea agenției și meniurile de programe */
        border-bottom: 1px solid rgba(255, 255, 255, 0.14);
        padding-bottom: 1.75rem;
        /* 1. logo-ul agenției și descrierea centrate pe mobil */
        text-align: center;
    }
    .footer__contact-item { justify-content: center; }

    /* Meniurile (Programe, Instituție...) colapsate implicit, cu chevron
       expand/collapse la dreapta titlului */
    .footer__column:not(.footer__column--about) .footer__links {
        display: none;
    }
    .footer__column.is-open .footer__links {
        display: flex;
    }
    /* 1. săgețile caruselului acopereau cardul pe ecrane înguste —
       navigarea trece pe swipe (home-sections.js) + puncte */
    .hs-carousel__btn { display: none; }

    /* 3. pinul de locație arăta ciudat lângă adresa centrată pe 3 rânduri */
    .footer__contact-item .fa-location-dot { display: none; }

    /* Rândul „Contact”: aceeași bară ca acordeoanele, dar link direct
       cu chevron-dreapta; linkul „Contact” din meniul Instituție dispare
       (ar fi fost duplicat) */
    .footer__column--contactlink { display: block; }
    .footer__heading--link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        min-height: 44px;
        margin-bottom: 0;
        color: var(--white);
        text-decoration: none;
    }
    .footer__heading--link i {
        font-size: 0.6875rem;
        color: rgba(255, 255, 255, 0.55);
    }
    .footer__link--contact { display: none; }

    /* mai puțin aer între ultimul rând de meniu și dividerul benzii UE */
    .footer__main { padding-bottom: 1rem; }

    /* 2. rândurile-acordeon compacte (grila avea gap de 2rem) */
    .footer__grid { gap: 0.375rem; }
    .footer__column--about { margin-bottom: 1rem; }
    .footer__heading { margin-bottom: 0; }
    .footer__column.is-open .footer__heading { margin-bottom: 0.75rem; }
    .footer__column.is-open .footer__links { margin-bottom: 0.75rem; }
    .footer__heading-btn { cursor: pointer; min-height: 44px; }
    .footer__heading-btn i { display: inline-block; }
    .footer__column.is-open .footer__heading-btn i { transform: rotate(180deg); }
    .footer__column.is-open .footer__heading-btn { color: var(--eu-yellow); }

    /* 2. Filigranul „a” fix pe ecran cât timp derulezi prin footer:
       poziție fixed (față de viewport) + clip-path pe footer, care taie
       tot ce iese din cutia lui — inclusiv descendenți fixed. Efectul:
       footerul e o „fereastră” prin care marca se vede mereu, nemișcată. */
    .footer { clip-path: inset(0); }
    .footer__watermark {
        position: fixed;
        top: auto;
        bottom: 4vh;
        right: -12%;
        width: min(340px, 75vw);
    }

    /* 4. Banda UE și rândul de jos centrate */
    .footer__eu-content { justify-content: center; }
    .footer__eu-disclaimer { text-align: center; }
    .footer__bottom-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0.875rem;
    }
    .footer__legal { justify-content: center; }

}
