/* =========================================================
   TRANSURB S.A. Galați — design site
   Aceleași culori: #058B8C (RAL5018), #Bb0a02, #2c7e72, #F9ba4c, #2a2925
   ========================================================= */

:root {
    --primar: #058B8C;
    --primar-2: #0bb3b4;
    --primar-inchis: #046566;
    --primar-pal: #e8f6f6;
    --rosu: #bb0a02;
    --verde: #2c7e72;
    --galben: #f9ba4c;
    --negru: #2a2925;

    /* culorile tipurilor de vehicul (aceleasi ca bulele de pe site) */
    --c-sky: #3f9fd8;      --p-sky: #e1f1fb;
    --c-red: #e2626b;      --p-red: #fce6e7;
    --c-purple: #747ed1;   --p-purple: #eaebf8;
    --c-orange: #f0795f;   --p-orange: #fde8e3;
    --c-green: #2fae8a;    --p-green: #dff4ee;

    --fundal: #f5f8f8;
    --suprafata: #ffffff;
    --suprafata-2: #eef4f4;
    --text: #1d2b2b;
    --text-2: #5b6b6b;
    --linie: #e1eaea;
    --umbra: 0 1px 2px rgba(10, 40, 40, .05), 0 8px 24px -8px rgba(10, 40, 40, .12);
    --umbra-mare: 0 30px 60px -20px rgba(5, 70, 70, .35);
    --raza: 20px;
    --raza-mica: 12px;
    --font-scale: 1;
    --antet-h: 76px;
    --usor: cubic-bezier(.22, 1, .36, 1);
    color-scheme: light;
}

:root[data-theme="dark"] {
    --primar: #19b5b6;
    --primar-2: #43d1d2;
    --primar-inchis: #0b8586;
    --primar-pal: #0f2a2b;
    --fundal: #0b1515;
    --suprafata: #111e1e;
    --suprafata-2: #172828;
    --text: #e6f0f0;
    --text-2: #9db1b1;
    --linie: #223535;
    --p-sky: #12293a;  --p-red: #341a1c;  --p-purple: #1f2138;  --p-orange: #36201b;  --p-green: #10302a;
    --umbra: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px -10px rgba(0, 0, 0, .6);
    --umbra-mare: 0 30px 60px -20px rgba(0, 0, 0, .7);
    color-scheme: dark;
}

:root.contrast {
    --text: #000;
    --text-2: #1a1a1a;
    --linie: #000;
    --primar: #035e5f;
}
:root.contrast[data-theme="dark"] { --text: #fff; --text-2: #f0f0f0; --linie: #fff; --primar: #5fe9ea; }

/* Urbanist: doar grosimile folosite (preincarcate din header), text vizibil imediat */
@font-face { font-family: Urbanist; src: url(/assets/fonts/urbanist/Urbanist-Regular.woff2) format('woff2'); font-weight: 100 450; font-style: normal; font-display: swap; }
@font-face { font-family: Urbanist; src: url(/assets/fonts/urbanist/Urbanist-Medium.woff2) format('woff2'); font-weight: 451 550; font-style: normal; font-display: swap; }
@font-face { font-family: Urbanist; src: url(/assets/fonts/urbanist/Urbanist-SemiBold.woff2) format('woff2'); font-weight: 551 650; font-style: normal; font-display: swap; }
@font-face { font-family: Urbanist; src: url(/assets/fonts/urbanist/Urbanist-Bold.woff2) format('woff2'); font-weight: 651 1000; font-style: normal; font-display: swap; }
@font-face { font-family: Urbanist; src: url(/assets/fonts/urbanist/Urbanist-Italic.woff2) format('woff2'); font-weight: 100 1000; font-style: italic; font-display: swap; }

*, *::before, *::after { box-sizing: border-box; }
/* deschidere: pagina apare o singura data, complet, dupa fonturi (cel mult ~1,2 s), nu bucata cu bucata */
html { background: var(--fundal); }
body { transition: opacity .45s ease; }
:root.tu-incarcare body { opacity: 0; }
:root.tu-incarcare *, :root.tu-incarcare *::before, :root.tu-incarcare *::after { animation-play-state: paused !important; }
html { font-size: calc(16px * var(--font-scale)); scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-size: 1rem;
    font-family: 'Urbanist', system-ui, -apple-system, 'Segoe UI', sans-serif;
    background: var(--fundal);
    color: var(--text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    transition: background-color .4s, color .4s;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--primar); text-decoration: none; transition: color .2s; }
a:hover { color: var(--primar-inchis); }
:root[data-theme="dark"] a:hover { color: var(--primar-2); }
h1, h2, h3, h4, h5, h6 { color: inherit; }
h1, h2, h3, h4 { line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.02em; font-weight: 700; }
p { margin: 0 0 1em; }
button { font: inherit; color: inherit; }
kbd { font-family: inherit; font-size: .72rem; border: 1px solid var(--linie); border-bottom-width: 2px; border-radius: 6px; padding: 0 .4em; color: var(--text-2); background: var(--suprafata); }
:focus-visible { outline: 3px solid var(--galben); outline-offset: 2px; border-radius: 6px; }
.ic { width: 1.25em; height: 1.25em; flex-shrink: 0; }
.container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.txt-primar { color: var(--primar); }
.ascuns { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

:root.linkuri a { color: orangered !important; text-decoration: underline !important; }

.sari-continut { position: absolute; left: 12px; top: -60px; background: var(--primar); color: #fff; padding: 10px 16px; border-radius: 10px; z-index: 999; }
.sari-continut:focus { top: 12px; color: #fff; }

/* ---------- Butoane ---------- */
.buton {
    display: inline-flex; align-items: center; justify-content: center; gap: .55em;
    padding: .85em 1.4em; border-radius: 999px; border: 0; cursor: pointer;
    font-weight: 700; font-size: .98rem; background: var(--primar); color: #fff;
    transition: transform .25s var(--usor), box-shadow .25s, background .2s;
    box-shadow: 0 10px 24px -10px rgba(5, 139, 140, .7);
    position: relative; overflow: hidden;
}
.buton:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(5, 139, 140, .8); }
.buton:active { transform: translateY(0) scale(.98); }
.buton-contur { background: transparent; color: var(--primar); box-shadow: inset 0 0 0 1.5px var(--linie); }
.buton-contur:hover { color: var(--primar); box-shadow: inset 0 0 0 1.5px var(--primar); }
.buton-alb { background: #fff; color: var(--primar-inchis); }
.buton-alb:hover { color: var(--primar-inchis); }
.buton-mic { padding: .55em 1em; font-size: .88rem; }
.latime { width: 100%; }
.link-buton { background: none; border: 0; padding: 0; cursor: pointer; color: inherit; display: inline-flex; align-items: center; gap: .4em; opacity: .8; }
.link-buton:hover { opacity: 1; }
.unealta {
    display: inline-flex; align-items: center; justify-content: center; gap: .45em;
    height: 42px; min-width: 42px; padding: 0 .7em; border-radius: 999px;
    border: 1px solid var(--linie); background: var(--suprafata); color: var(--text);
    cursor: pointer; font-weight: 600; font-size: .9rem; transition: all .2s;
}
.unealta:hover { border-color: var(--primar); color: var(--primar); }
.unealta .ic { width: 1.15em; height: 1.15em; }

/* ---------- Banner sezonier ---------- */
:root:not([data-tema-principala]) .sezon-banner, [data-tema-principala=""] .sezon-banner { display: none; }
.decor-sezon { display: none; }
[data-teme~="craciun"] .decor-craciun, [data-teme~="halloween"] .decor-halloween, [data-teme~="vara"] .decor-vara, [data-teme~="martisor"] .decor-martisor { display: block; }
[data-tema-principala=""] .decor-sezon { display: none !important; }
/* anotimpurile (puse inaintea sarbatorilor, ca o sarbatoare sa aiba prioritate la culori) */
[data-teme~="iarna"] .hero { background: linear-gradient(150deg, #0b4f63 0%, #058B8C 55%, #6fb6c9 130%); }
[data-teme~="primavara"] .hero { background: linear-gradient(140deg, #058B8C 0%, #12a38f 55%, #8ccf7e 130%); }
[data-teme~="toamna"] .hero { background: linear-gradient(140deg, #04585a 0%, #058B8C 50%, #c9822f 135%); }
[data-tema-principala="iarna"] .sezon-banner { background-image: linear-gradient(90deg, #0b4f63, #3c8fb0, #0b4f63); }
[data-tema-principala="primavara"] .sezon-banner { background-image: linear-gradient(90deg, #058B8C, #6cc08a, #058B8C); }
[data-tema-principala="toamna"] .sezon-banner { background-image: linear-gradient(90deg, #6b3d12, #c9822f, #6b3d12); }
.sezon-banner {
    background: linear-gradient(90deg, var(--primar-inchis), var(--primar), var(--primar-inchis));
    background-size: 200% 100%; animation: curge 8s linear infinite;
    color: #fff; font-size: .9rem; font-weight: 600; position: relative; z-index: 60;
}
.sezon-banner .container { display: flex; align-items: center; justify-content: center; gap: .6em; min-height: 40px; text-align: center; padding-right: 48px; }
.sezon-emoji { display: inline-flex; opacity: .9; }
.sezon-inchide { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: rgba(255, 255, 255, .15); border: 0; color: #fff; border-radius: 50%; width: 28px; height: 28px; display: grid; place-items: center; cursor: pointer; }
[data-tema-principala="halloween"] .sezon-banner { background-image: linear-gradient(90deg, #2a1a3a, #e8731c, #2a1a3a); }
[data-tema-principala="craciun"] .sezon-banner { background-image: linear-gradient(90deg, #0d5c3f, #b3121f, #0d5c3f); }
[data-tema-principala="paste"] .sezon-banner { background-image: linear-gradient(90deg, #9b6ad6, #f2a7c3, #f9d27a, #8fd3b6); color: #3b2a4a; }
[data-tema-principala="martisor"] .sezon-banner { background-image: repeating-linear-gradient(135deg, #d62839 0 14px, #fff 14px 28px); background-size: auto; animation: snur-curge 9s linear infinite; color: #7a0f18; text-shadow: 0 0 6px #fff, 0 0 2px #fff; }
/* snurul se misca foarte lent: o perioada a dungilor (28px pe diagonala = 39,6px pe orizontala) in 9 s */
@keyframes snur-curge { to { background-position: 39.6px 0; } }
[data-tema-principala="ziua_nationala"] .sezon-banner { background-image: linear-gradient(90deg, #002b7f 0 33%, #fcd116 33% 66%, #ce1126 66%); background-size: 100% 100%; animation: none; text-shadow: 0 1px 3px rgba(0, 0, 0, .6); }
[data-tema-principala="vara"] .sezon-banner { background-image: linear-gradient(90deg, #0a8fbf, #f9ba4c, #0a8fbf); }
[data-tema-principala="copii"] .sezon-banner { background-image: linear-gradient(90deg, #ff6b9d, #ffd166, #06d6a0, #4cc9f0, #ff6b9d); }
[data-tema-principala="revelion"] .sezon-banner { background-image: linear-gradient(90deg, #14132b, #6b4bd8, #d4af37, #14132b); }

#sezon-canvas { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 55; transition: opacity 2.5s ease; }
#sezon-canvas.stins { opacity: 0; }

/* ---------- Antet ---------- */
.antet {
    position: sticky; top: 0; z-index: 50;
    background: color-mix(in srgb, var(--suprafata) 78%, transparent);
    backdrop-filter: saturate(180%) blur(16px); -webkit-backdrop-filter: saturate(180%) blur(16px);
    border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s, background .3s;
}
.antet.derulat { border-bottom-color: var(--linie); box-shadow: 0 10px 30px -20px rgba(0, 0, 0, .25); }
.antet-rand { display: flex; align-items: center; gap: 18px; height: var(--antet-h); }
.logo { position: relative; flex-shrink: 0; display: block; }
.logo img { width: 96px; height: auto; transition: transform .4s var(--usor); }
.logo:hover img { transform: scale(1.04) rotate(-1deg); }
:root[data-theme="dark"] .logo img, :root[data-theme="dark"] .subsol-brand img { filter: drop-shadow(0 0 1px rgba(255,255,255,.6)) brightness(1.1); }
.logo-decor { position: absolute; pointer-events: none; }
.logo-decor.caciula { width: 38px; top: -14px; left: -14px; transform: rotate(-22deg); animation: legana 3s ease-in-out infinite; }
.logo-decor.dovleac { top: -10px; right: -12px; font-size: 22px; animation: sari 2.2s ease-in-out infinite; }

.nav-principal { flex: 1; display: flex; justify-content: center; }
.nav-lista { list-style: none; margin: 0; padding: 4px; display: flex; gap: 2px; background: var(--suprafata-2); border-radius: 999px; border: 1px solid var(--linie); }
.nav-lista > li { position: relative; }
.nav-link {
    display: inline-flex; align-items: center; gap: .3em; padding: .55em .95em; border-radius: 999px;
    font-weight: 600; font-size: .9rem; color: var(--text); background: none; border: 0; cursor: pointer; white-space: nowrap;
    transition: background .2s, color .2s;
}
.nav-link .sag { width: .9em; height: .9em; transition: transform .3s var(--usor); opacity: .6; }
.nav-link:hover { color: var(--primar); background: var(--suprafata); }
.nav-link.activ { background: var(--primar); color: #fff; }
.are-sub.deschis > .nav-link { background: var(--suprafata); color: var(--primar); }
.are-sub.deschis > .nav-link .sag { transform: rotate(180deg); }
.are-sub.deschis > .nav-link.activ { background: var(--primar); color: #fff; }

.panou {
    position: absolute; top: calc(100% + 12px); left: 50%; min-width: 320px; max-width: 420px;
    max-height: calc(100vh - 140px); overflow: auto;
    background: var(--suprafata); border: 1px solid var(--linie); border-radius: var(--raza);
    box-shadow: var(--umbra-mare); padding: 10px;
    opacity: 0; visibility: hidden; transform: translate(-50%, -8px) scale(.98); transform-origin: top center;
    transition: opacity .25s var(--usor), transform .3s var(--usor), visibility .25s;
}
.are-sub.deschis .panou { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); }
.nav-lista > li:nth-last-child(-n+3) .panou { left: auto; right: 0; transform: translate(0, -8px) scale(.98); }
.nav-lista > li:nth-last-child(-n+3).deschis .panou { transform: translate(0, 0) scale(1); }
.panou-cap { display: flex; align-items: center; gap: .5em; padding: 8px 12px 10px; color: var(--primar); font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; border-bottom: 1px solid var(--linie); margin-bottom: 6px; }
.sub { list-style: none; margin: 0; padding: 0; }
.sub .sub { padding-left: 12px; margin: 2px 0 6px 12px; border-left: 2px solid var(--primar-pal); }
.sub-link, .sub-grup > summary {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 9px 12px; border-radius: 10px; color: var(--text); font-weight: 500; font-size: .92rem; line-height: 1.35; cursor: pointer;
    transition: background .2s, color .2s, padding .25s var(--usor);
}
.sub-grup > summary { list-style: none; font-weight: 600; }
.sub-grup > summary::-webkit-details-marker { display: none; }
.sub-link .sag, .sub-grup > summary .sag { width: .95em; height: .95em; opacity: 0; transform: translateX(-6px); transition: all .25s var(--usor); flex-shrink: 0; }
.sub-grup > summary .sag { opacity: .5; transform: none; }
.sub-grup[open] > summary .sag { transform: rotate(180deg); }
.sub-link:hover, .sub-grup > summary:hover { background: var(--primar-pal); color: var(--primar); padding-left: 16px; }
.sub-link:hover .sag { opacity: 1; transform: none; }
.sub-link.activ { color: var(--primar); background: var(--primar-pal); font-weight: 700; }

.antet-unelte { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.cauta-btn kbd { margin-left: .2em; }
.limba img { width: 20px; height: 14px; object-fit: cover; border-radius: 3px; }
:root:not([data-theme="dark"]) .doar-intunecat, :root[data-theme="dark"] .doar-luminos { display: none; }
.doar-luminos, .doar-intunecat { display: inline-flex; }
.hamburger { display: none; }
.antet-progres { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; transform-origin: left; transform: scaleX(var(--progres, 0)); background: linear-gradient(90deg, var(--primar), var(--galben)); }

/* Sertar mobil */
.sertar { position: fixed; inset: 0; z-index: 80; visibility: hidden; }
.sertar.deschis { visibility: visible; }
.sertar-fundal { position: absolute; inset: 0; background: rgba(5, 30, 30, .45); opacity: 0; transition: opacity .3s; backdrop-filter: blur(4px); }
.sertar.deschis .sertar-fundal { opacity: 1; }
.sertar-panou {
    position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 92vw);
    background: linear-gradient(160deg, var(--primar) 0%, var(--primar-inchis) 100%); color: #fff;
    transform: translateX(100%); transition: transform .45s var(--usor);
    display: flex; flex-direction: column; overflow: hidden;
}
.sertar.deschis .sertar-panou { transform: none; }
.sertar-cap { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; }
.sertar-titlu { display: flex; align-items: center; gap: .5em; font-size: 1.6rem; font-weight: 800; }
.sertar-cap .unealta { background: rgba(255, 255, 255, .12); border-color: transparent; color: #fff; }
.sertar-lista { list-style: none; margin: 0; padding: 0 12px 20px; overflow-y: auto; flex: 1; }
.sertar-lista > li { opacity: 0; transform: translateX(24px); transition: all .45s var(--usor); }
.sertar.deschis .sertar-lista > li { opacity: 1; transform: none; }
.sertar.deschis .sertar-lista > li:nth-child(2) { transition-delay: .04s; }
.sertar.deschis .sertar-lista > li:nth-child(3) { transition-delay: .08s; }
.sertar.deschis .sertar-lista > li:nth-child(4) { transition-delay: .12s; }
.sertar.deschis .sertar-lista > li:nth-child(5) { transition-delay: .16s; }
.sertar.deschis .sertar-lista > li:nth-child(6) { transition-delay: .2s; }
.sertar.deschis .sertar-lista > li:nth-child(7) { transition-delay: .24s; }
.sertar-link { display: flex; justify-content: space-between; align-items: center; padding: 14px 12px; color: #fff; font-size: 1.15rem; font-weight: 700; border-radius: 12px; cursor: pointer; list-style: none; }
.sertar-link::-webkit-details-marker { display: none; }
.sertar-link:hover, .sertar-link.activ { background: rgba(255, 255, 255, .12); color: #fff; }
.sertar-grup[open] > .sertar-link .sag { transform: rotate(180deg); }
.sertar-link .sag { transition: transform .3s; }
.sertar .sub { padding: 0 4px 8px 8px; }
.sertar .sub .sub { border-left-color: rgba(255, 255, 255, .25); }
.sertar .sub-link, .sertar .sub-grup > summary { color: rgba(255, 255, 255, .88); }
.sertar .sub-link:hover, .sertar .sub-grup > summary:hover, .sertar .sub-link.activ { background: rgba(255, 255, 255, .12); color: #fff; }
.sertar-jos { padding: 16px 20px calc(16px + env(safe-area-inset-bottom)); display: grid; gap: 8px; border-top: 1px solid rgba(255, 255, 255, .15); }
.sertar-jos a { color: #fff; display: flex; gap: .6em; align-items: center; font-weight: 600; }

/* ---------- Secțiuni generice ---------- */
.continut { display: block; min-height: 50vh; }
.sectiune { padding: 72px 0; position: relative; }
.sectiune-mica { padding: 40px 0; }
.supratitlu { display: inline-flex; align-items: center; gap: .5em; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--primar); margin-bottom: .8em; }
.supratitlu::before { content: ""; width: 18px; height: 2px; background: currentColor; border-radius: 2px; }
.titlu-sectiune { font-size: clamp(1.8rem, 3.6vw, 2.8rem); font-weight: 800; }
.titlu-rand { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 32px; flex-wrap: wrap; }
.titlu-rand p { color: var(--text-2); margin: 0; max-width: 520px; }
.card { background: var(--suprafata); border: 1px solid var(--linie); border-radius: var(--raza); box-shadow: var(--umbra); }
.card-p { padding: 28px; }

/* Apariție la derulare */
[data-apare] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--usor), transform .8s var(--usor); transition-delay: var(--intarziere, 0s); }
[data-apare].vizibil { opacity: 1; transform: none; }
[data-apare="zoom"] { transform: scale(.94); }
[data-apare="stanga"] { transform: translateX(-28px); }

/* Hero pagini interioare */
.hero-pagina {
    position: relative; overflow: hidden; padding: 64px 0 88px; color: #fff; isolation: isolate;
    background: radial-gradient(1200px 400px at 10% -10%, var(--primar-2), transparent 60%), linear-gradient(135deg, var(--primar) 0%, var(--primar-inchis) 100%);
}
.hero-pagina::after { content: ""; position: absolute; inset: auto 0 -1px 0; height: 48px; background: var(--fundal); border-radius: 48px 48px 0 0; z-index: 1; }
.hero-pagina h1 { font-size: clamp(2.2rem, 6vw, 4.2rem); font-weight: 800; margin-bottom: .2em; }
.hero-pagina h1.lung { font-size: clamp(1.7rem, 4vw, 2.8rem); max-width: 900px; }
.hero-pagina p { color: rgba(255, 255, 255, .85); font-size: 1.1rem; margin: 0; }
.hero-pagina .firimituri { display: flex; gap: .5em; align-items: center; font-size: .88rem; margin-bottom: 18px; flex-wrap: wrap; }
.hero-pagina .firimituri a { color: rgba(255, 255, 255, .8); }
.hero-pagina .firimituri a:hover { color: #fff; }
.hero-pagina .firimituri .ic { width: 1em; height: 1em; opacity: .6; }
.hero-linii { position: absolute; inset: 0; z-index: -1; opacity: .25; }
.hero-linii path { fill: none; stroke: #fff; stroke-width: 2; stroke-dasharray: 6 10; animation: linie 30s linear infinite; }

/* ---------- Hero index ---------- */
.hero {
    position: relative; overflow: hidden; isolation: isolate; color: #fff;
    padding: 56px 0 120px;
    background: linear-gradient(140deg, #047172 0%, #058B8C 45%, #0a9fa0 100%);
}
:root[data-theme="dark"] .hero { background: linear-gradient(140deg, #032b2c 0%, #045d5e 55%, #077f80 100%); }
.hero-blob { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; z-index: -1; animation: pluteste 18s ease-in-out infinite; }
.hero-blob.b1 { width: 520px; height: 520px; background: #19c6c7; top: -200px; right: -120px; }
.hero-blob.b2 { width: 380px; height: 380px; background: #f9ba4c; bottom: -220px; left: -80px; opacity: .3; animation-delay: -6s; }
.hero-blob.b3 { width: 260px; height: 260px; background: #2c7e72; top: 40%; left: 40%; animation-delay: -12s; }
.hero-grila { display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; }
.hero-salut { display: inline-flex; align-items: center; gap: .55em; padding: .45em 1em .45em .8em; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px; font-weight: 600; font-size: .9rem; margin-bottom: 22px; backdrop-filter: blur(6px); }
.hero-salut .punct { position: relative; width: 8px; height: 8px; margin: 0 2px 0 4px; border-radius: 50%; background: #7dffa8; flex-shrink: 0; }
.hero-salut .punct::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid rgba(125, 255, 168, .8); animation: inel-puls 2s ease-out infinite; }
@keyframes inel-puls { 0% { transform: scale(.5); opacity: 1; } 100% { transform: scale(1.15); opacity: 0; } }
.hero h1 { font-size: clamp(2.6rem, 6.4vw, 5rem); font-weight: 800; letter-spacing: -.035em; margin-bottom: .25em; }
.hero h1 .accent { background: linear-gradient(90deg, #fff, #ffe2a8, #fff); background-size: 200% auto; -webkit-background-clip: text; background-clip: text; color: transparent; animation: curge 6s linear infinite; }
.hero-lead { font-size: 1.15rem; color: rgba(255, 255, 255, .85); max-width: 520px; margin-bottom: 28px; }
.hero-info { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.cip { display: inline-flex; align-items: center; gap: .5em; padding: .5em .9em; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .18); font-weight: 600; font-size: .88rem; color: #fff; }
.cip .ic { width: 1.05em; height: 1.05em; opacity: .85; }
.cip strong { font-variant-numeric: tabular-nums; }
.cip-nou { animation: cip-apare .5s var(--usor) both; }
@keyframes cip-apare { from { opacity: 0; transform: scale(.9); } }
a.cip:hover { background: rgba(255, 255, 255, .22); color: #fff; }

/* Planificator (Unde doriți să călătoriți?) */
.planificator { background: var(--suprafata); color: var(--text); border-radius: 28px; padding: 26px; box-shadow: var(--umbra-mare); position: relative; }
.planificator h2 { font-size: 1.35rem; color: var(--primar); display: flex; align-items: center; gap: .5em; margin-bottom: 18px; }
.planificator-campuri { position: relative; display: grid; gap: 10px; }
.camp { position: relative; display: flex; align-items: center; gap: 12px; background: var(--suprafata-2); border: 1.5px solid transparent; border-radius: 16px; padding: 4px 14px; transition: border-color .2s, background .2s; }
.camp:focus-within { border-color: var(--primar); background: var(--suprafata); }
.camp .ic { color: var(--primar); }
.camp input, .camp select { flex: 1; border: 0; background: transparent; padding: 12px 0; font: inherit; font-size: 1rem; color: var(--text); outline: none; min-width: 0; }
.camp input::placeholder { color: var(--text-2); }
.punct-traseu { width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--primar); flex-shrink: 0; }
.punct-traseu.final { background: var(--rosu); border-color: var(--rosu); border-radius: 3px; }
.planificator-linie { position: absolute; left: 19px; top: 34px; bottom: 34px; width: 2px; background: repeating-linear-gradient(var(--linie) 0 4px, transparent 4px 8px); }
.locatie-opt { display: flex; gap: 8px; margin: 14px 0 18px; flex-wrap: wrap; }
.locatie-opt label { flex: 1; min-width: 140px; display: flex; align-items: center; gap: .5em; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--linie); cursor: pointer; font-size: .9rem; font-weight: 600; transition: all .2s; }
.locatie-opt input { accent-color: var(--primar); }
.locatie-opt label:has(input:checked) { border-color: var(--primar); background: var(--primar-pal); color: var(--primar); }
.planificator-jos { display: flex; gap: 10px; }
.planificator-jos .buton { flex: 1; }

/* Tramvai animat in hero: intra, frineaza si opreste in statie, apoi pleaca; un autobuz trece discret in sens opus */
.hero { padding-bottom: 190px; }
.hero-sina { --l: 360px; position: absolute; left: 0; right: 0; bottom: 58px; height: 120px; z-index: -1; pointer-events: none; }
.hero-grila { position: relative; z-index: 1; }
.sina-sine { position: absolute; left: 0; right: 0; bottom: 0; height: 10px; background: linear-gradient(rgba(0, 30, 30, .22), rgba(0, 30, 30, .1));
    -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.sina-sine::before { content: ""; position: absolute; left: 0; right: 0; top: 4px; height: 2px; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .55) 0 26px, transparent 26px 52px); }
.hero-sina .vehicul { display: block; width: 100%; height: auto; filter: drop-shadow(0 10px 14px rgba(0, 30, 30, .35)); }
.sina-tramvai { position: absolute; left: 0; bottom: 6px; width: var(--l); animation: tram-drum 24s infinite; will-change: transform; }
.sina-tramvai .roata, .sina-autobuz .roata { transform-box: fill-box; transform-origin: center; }
.sina-tramvai .roata { animation: tram-roti 24s infinite; }
@keyframes tram-drum {
    0% { transform: translateX(calc(-1 * var(--l) - 40px)); animation-timing-function: cubic-bezier(.25, .1, .35, 1); }
    40% { transform: translateX(calc(50vw - var(--l) / 2)); }
    54% { transform: translateX(calc(50vw - var(--l) / 2)); animation-timing-function: cubic-bezier(.55, 0, .8, .6); }
    100% { transform: translateX(calc(100vw + 60px)); }
}
@keyframes tram-roti {
    0% { transform: rotate(0); animation-timing-function: cubic-bezier(.25, .1, .35, 1); }
    40% { transform: rotate(2400deg); }
    54% { transform: rotate(2400deg); animation-timing-function: cubic-bezier(.55, 0, .8, .6); }
    100% { transform: rotate(5200deg); }
}
/* usile se deschid dupa oprire si se inchid inainte de plecare (glisante, ca la Urbino) */
.sina-tramvai .usa-st { animation: usa-st 24s infinite; }
.sina-tramvai .usa-dr { animation: usa-dr 24s infinite; }
@keyframes usa-st { 0%, 41%, 53.5%, 100% { transform: none; animation-timing-function: ease-in-out; } 45.5%, 49% { transform: translateX(-15px); animation-timing-function: ease-in-out; } }
@keyframes usa-dr { 0%, 41%, 53.5%, 100% { transform: none; animation-timing-function: ease-in-out; } 45.5%, 49% { transform: translateX(15px); animation-timing-function: ease-in-out; } }
@keyframes tram-far { 0%, 38%, 56%, 100% { opacity: 1; } 44%, 50% { opacity: .35; } }
.sina-statie { position: absolute; bottom: 6px; left: calc(50% + var(--l) / 2 + 18px); display: flex; flex-direction: column; align-items: center; }
.statie-panou { display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px; border-radius: 6px; background: var(--galben); color: var(--negru); font-size: .62rem; font-weight: 900; letter-spacing: .1em; box-shadow: 0 4px 10px -4px rgba(0, 0, 0, .4); }
.statie-panou .ic { width: 12px; height: 12px; }
.statie-stalp { width: 3px; height: 54px; background: linear-gradient(#e9f4f4, #9fc3c3); border-radius: 2px; }
/* autobuzul trece in planul din spate: pe banda din spatele sinei, mai mic si estompat, sub tramvai si sub continut */
.sina-autobuz { position: absolute; left: 0; bottom: 14px; width: 128px; opacity: .3; filter: blur(.7px) saturate(.6); animation: bus-drum 34s linear infinite; animation-delay: -9s; }
.sina-autobuz .vehicul { transform: scaleX(-1); filter: none; }
.sina-autobuz .roata { animation: bus-roti .7s linear infinite reverse; }
@keyframes bus-drum { from { transform: translateX(calc(100vw + 40px)); } to { transform: translateX(-200px); } }
@keyframes bus-roti { to { transform: rotate(360deg); } }
@media (max-width: 640px) {
    /* pe telefon autobuzul e mai mic, iar drumul sta sub cardul "Unde doriti sa calatoriti?", nu in spatele lui */
    .hero { padding-bottom: 178px; }
    .hero-sina { --l: 200px; height: 70px; bottom: 40px; }
    .sina-autobuz { width: 70px; bottom: 9px; }
    .statie-stalp { height: 32px; }
    .sina-statie { left: calc(50% + var(--l) / 2 + 10px); }
}
.hero::after { content: ""; position: absolute; inset: auto 0 -1px 0; height: 56px; background: var(--fundal); border-radius: 56px 56px 0 0; }

/* Banda de anunt (Selectie administratori) */
.banda { margin-top: -36px; position: relative; z-index: 2; }
.banda a { display: flex; align-items: center; gap: 14px; padding: 16px 22px; border-radius: 18px; background: var(--suprafata); border: 1px solid var(--linie); box-shadow: var(--umbra); color: var(--text); font-weight: 700; transition: transform .3s var(--usor), box-shadow .3s; }
.banda a:hover { transform: translateY(-3px); box-shadow: var(--umbra-mare); color: var(--primar); }
.banda a + a { margin-top: 12px; }
.banda .eticheta-nou { flex-shrink: 0; background: var(--rosu); color: #fff; font-size: .7rem; padding: .3em .7em; border-radius: 999px; letter-spacing: .08em; animation: puls-rosu 2s infinite; }
.banda .ic:last-child { margin-left: auto; transition: transform .3s; }
.banda a:hover .ic:last-child { transform: translateX(4px); }

/* Lumina colorata care urmareste mouse-ul (ca pe cardurile de pe prima pagina), in culoarea traseului */
.traseu, .traseu-statie, .statie-rand, .fav-cip { position: relative; isolation: isolate; overflow: hidden; }
.traseu::before, .traseu-statie::before, .statie-rand::before, .fav-cip::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit; opacity: 0; transition: opacity .3s;
    background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--c, var(--primar)) 22%, transparent), transparent 55%);
}
.traseu:hover::before, .traseu-statie:hover::before, .statie-rand:hover::before, .fav-cip:hover::before { opacity: 1; }
.traseu-statie:hover, .statie-rand:hover { border-color: color-mix(in srgb, var(--c, var(--primar)) 45%, var(--linie)); }
.statie-rand { --c: var(--galben); }
/* Acțiuni rapide */
.actiuni { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.actiune {
    position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 44px; padding: 26px;
    border-radius: 24px; background: var(--suprafata); border: 1px solid var(--linie); color: var(--text);
    transition: transform .4s var(--usor), box-shadow .4s, border-color .3s; isolation: isolate; min-height: 210px;
}
.actiune::before { content: ""; position: absolute; inset: 0; background: radial-gradient(400px circle at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--c) 18%, transparent), transparent 45%); opacity: 0; transition: opacity .3s; z-index: -1; }
.actiune:hover { transform: translateY(-6px); box-shadow: var(--umbra-mare); border-color: color-mix(in srgb, var(--c) 40%, var(--linie)); color: var(--text); }
.actiune:hover::before { opacity: 1; }
.actiune-ic { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--c); transition: transform .5s var(--usor); }
.actiune-ic .ic { width: 28px; height: 28px; }
.actiune:hover .actiune-ic { transform: rotate(-8deg) scale(1.08); }
.actiune h3 { font-size: 1.25rem; margin: 0 0 .25em; }
.actiune p { margin: 0; color: var(--text-2); font-size: .92rem; }
.actiune .sageata { position: absolute; top: 24px; right: 24px; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--linie); transition: all .35s var(--usor); }
.actiune:hover .sageata { background: var(--c); color: #fff; border-color: var(--c); transform: rotate(-45deg); }

/* Carusel */
.carusel { position: relative; }
.carusel-pista { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 28px; }
.carusel-pista::-webkit-scrollbar { display: none; }
.slide { scroll-snap-align: start; position: relative; aspect-ratio: 16 / 6; background: var(--suprafata-2); overflow: hidden; }
.slide img { width: 100%; height: 100%; object-fit: cover; }
.slide-video { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; }
.slide-video span { width: 84px; height: 84px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--primar); display: grid; place-items: center; box-shadow: 0 0 0 0 rgba(255, 255, 255, .6); animation: puls-alb 2.2s infinite; transition: transform .3s var(--usor); }
.slide-video:hover span { transform: scale(1.1); }
.slide-video .ic { width: 32px; height: 32px; margin-left: 4px; fill: currentColor; }
.carusel-control { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; gap: 16px; }
.carusel-puncte { display: flex; gap: 6px; }
.carusel-puncte button { width: 8px; height: 8px; border-radius: 99px; border: 0; background: var(--linie); cursor: pointer; padding: 0; transition: all .4s var(--usor); }
.carusel-puncte button.activ { width: 32px; background: var(--primar); }
.carusel-sageti { display: flex; gap: 8px; }

/* Favorite / recente */
.favorite { display: flex; gap: 10px; flex-wrap: wrap; }
.fav-cip { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border-radius: 16px; background: var(--suprafata); border: 1px solid var(--linie); color: var(--text); font-weight: 600; transition: all .3s var(--usor); }
.fav-cip:hover { transform: translateY(-2px); border-color: var(--primar); color: var(--primar); }
.fav-cip small { display: block; color: var(--text-2); font-weight: 500; font-size: .78rem; line-height: 1.2; }
.gol { color: var(--text-2); font-size: .95rem; display: flex; gap: .6em; align-items: center; padding: 16px 18px; border: 1.5px dashed var(--linie); border-radius: 16px; }

/* Bulă traseu */
.nr {
    --c: var(--c-sky); --p: var(--p-sky);
    display: inline-grid; place-items: center; min-width: 46px; height: 40px; padding: 0 10px;
    border-radius: 12px; background: var(--p); color: var(--c); font-weight: 800; font-size: 1.05rem; letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}
.nr-sky { --c: var(--c-sky); --p: var(--p-sky); }
.nr-red { --c: var(--c-red); --p: var(--p-red); }
.nr-purple { --c: var(--c-purple); --p: var(--p-purple); }
.nr-orange { --c: var(--c-orange); --p: var(--p-orange); }
.nr-green { --c: var(--c-green); --p: var(--p-green); }
/* numarul din interiorul unui card colorat (ex. .traseu.nr-red) ia culoarea cardului, nu albastrul implicit */
[class*="nr-"] > .nr:not([class*="nr-"]) { --c: inherit; --p: inherit; }

/* Bara de căutare mare */
.cautare-mare { display: flex; align-items: center; gap: 14px; width: 100%; max-width: 720px; margin: 0 auto; padding: 10px 10px 10px 22px; border-radius: 999px; background: var(--suprafata); border: 1.5px solid var(--linie); box-shadow: var(--umbra); cursor: text; color: var(--text-2); font-size: 1.05rem; transition: border-color .2s, box-shadow .3s; text-align: left; }
.cautare-mare:hover { border-color: var(--primar); box-shadow: 0 0 0 6px var(--primar-pal); }
.cautare-mare .ic { color: var(--primar); }
.cautare-mare span { flex: 1; }
.cautare-sugestii { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 16px; }
.sugestie { padding: .4em .9em; border-radius: 999px; background: var(--suprafata); border: 1px solid var(--linie); font-size: .86rem; font-weight: 600; color: var(--text-2); cursor: pointer; transition: all .2s; }
.sugestie:hover { color: var(--primar); border-color: var(--primar); }

/* Anunțuri + sidebar */
.grila-anunturi { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: start; }
.anunturi { display: grid; gap: 18px; }
.anunt { padding: 26px 28px; position: relative; transition: transform .3s var(--usor), box-shadow .3s; }
.anunt:hover { box-shadow: var(--umbra-mare); }
.anunt-data { display: inline-flex; align-items: center; gap: .5em; font-size: .82rem; font-weight: 700; color: var(--primar); background: var(--primar-pal); padding: .35em .8em; border-radius: 999px; margin-bottom: 14px; }
.anunt-data .ic { width: 1em; height: 1em; }
.anunt-continut { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start; color: var(--text); overflow-wrap: anywhere; }
.anunt-continut p { flex: 1 1 100%; margin: 0 0 .4rem; }
.anunt-continut p:has(> a > img) { flex: 1 1 260px; max-width: 360px; margin: 0; }
.anunt-continut a.anunt-poza-link { display: block; cursor: zoom-in; }
.anunt-continut img { width: 100%; height: 300px; object-fit: contain; background: var(--suprafata-2); border-radius: 14px; transition: transform .3s var(--usor); }
.anunt-continut img:hover { transform: scale(1.02); }
.anunt-continut table { max-width: 100%; }
.anunt-mai-mult { margin-top: 14px; }
.anunt-scurt { position: relative; }
.sidebar { display: grid; gap: 18px; position: sticky; top: calc(var(--antet-h) + 20px); }
.widget { padding: 24px; }
.widget h3 { font-size: 1.1rem; margin-bottom: 14px; display: flex; align-items: center; gap: .5em; }
.telefon-mare { display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: 16px; background: linear-gradient(135deg, var(--primar), var(--primar-inchis)); color: #fff; margin-bottom: 14px; transition: transform .3s var(--usor); }
.telefon-mare:hover { color: #fff; transform: scale(1.02); }
.telefon-mare .ic-cerc { width: 48px; height: 48px; border-radius: 14px; background: rgba(255, 255, 255, .15); display: grid; place-items: center; animation: suna 3s ease-in-out infinite; }
.telefon-mare strong { font-size: 1.4rem; display: block; line-height: 1.1; letter-spacing: -.01em; }
.telefon-mare small { opacity: .85; }
.important { font-size: .9rem; color: var(--text-2); text-align: justify; padding: 14px; border-radius: 14px; background: var(--suprafata-2); border-left: 3px solid var(--rosu); margin: 0; }
.important strong { color: var(--rosu); display: block; margin-bottom: .2em; }
.lista-utile { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.lista-utile a { display: flex; align-items: center; gap: 14px; padding: 10px; border-radius: 14px; color: var(--text); transition: background .2s, transform .3s var(--usor); }
.lista-utile a:hover { background: var(--suprafata-2); transform: translateX(4px); color: var(--text); }
.lista-utile .lu-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--primar-pal); color: var(--primar); flex-shrink: 0; }
.lista-utile .lu-ic.portocaliu { background: var(--p-orange); color: var(--c-orange); }
.lista-utile strong { display: block; font-size: .93rem; line-height: 1.3; font-weight: 600; }
.lista-utile small { color: var(--text-2); font-size: .78rem; display: flex; align-items: center; gap: .3em; }
.lista-utile small .ic { width: 1em; height: 1em; }
.app-gif video { display: block; width: 100%; height: auto; border-radius: 20px; }

/* Obiective turistice */
.galerie { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 32%); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 2px 18px; scrollbar-width: thin; }
.obiectiv { scroll-snap-align: start; position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 5; color: #fff; isolation: isolate; background: var(--suprafata-2); }
.obiectiv img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--usor); }
.obiectiv::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(0, 20, 20, .85)); z-index: -1; }
.obiectiv:hover img { transform: scale(1.08); }
.obiectiv-text { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; }
.obiectiv h3 { font-size: 1.3rem; margin: 10px 0 0; }
.obiectiv h3 a { color: #fff; }
.obiectiv h3 a::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.obiectiv-trasee { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; position: relative; z-index: 1; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.obiectiv-trasee a { background: rgba(255, 255, 255, .92); color: var(--primar-inchis); padding: .2em .6em; border-radius: 8px; font-size: .85rem; letter-spacing: 0; transition: transform .2s; }
.obiectiv-trasee a:hover { transform: translateY(-2px); color: var(--primar); }

/* ---------- Program de circulație ---------- */
.filtre { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.filtre-cipuri { display: flex; gap: 6px; flex-wrap: wrap; background: var(--suprafata); padding: 5px; border-radius: 999px; border: 1px solid var(--linie); }
.filtru { display: inline-flex; align-items: center; gap: .45em; padding: .55em 1em; border-radius: 999px; border: 0; background: none; cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--text-2); transition: all .25s; }
.filtru .punct { width: 8px; height: 8px; border-radius: 50%; background: var(--c, var(--primar)); }
.filtru:hover { color: var(--text); }
.filtru.activ { background: var(--text); color: var(--suprafata); }
.filtru-cauta { display: flex; align-items: center; gap: 10px; background: var(--suprafata); border: 1.5px solid var(--linie); border-radius: 999px; padding: 0 16px; min-width: 260px; transition: border-color .2s; }
.filtru-cauta:focus-within { border-color: var(--primar); }
.filtru-cauta input { border: 0; background: transparent; outline: 0; padding: 12px 0; font: inherit; color: var(--text); width: 100%; }
.grup-trasee { margin-bottom: 40px; }
.grup-cap { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.grup-cap .g-ic { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: color-mix(in srgb, var(--c) 15%, transparent); color: var(--c); }
.grup-cap h2 { font-size: 1.35rem; margin: 0; }
.grup-cap .numar { margin-left: auto; color: var(--text-2); font-size: .85rem; font-weight: 600; }
.trasee-grila { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.traseu {
    position: relative; display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 18px;
    background: var(--suprafata); border: 1px solid var(--linie); color: var(--text);
    transition: transform .35s var(--usor), box-shadow .35s, border-color .25s;
}
.traseu:hover { transform: translateY(-4px); box-shadow: var(--umbra-mare); border-color: color-mix(in srgb, var(--c) 45%, var(--linie)); color: var(--text); }
.traseu .nr { min-width: 60px; height: 52px; font-size: 1.4rem; border-radius: 14px; transition: background .3s, color .3s; }
.traseu:hover .nr { background: var(--c); color: #fff; }
.traseu-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.traseu-link:hover { color: #fff; }
.traseu-capete { flex: 1; min-width: 0; font-size: .8rem; line-height: 1.3; color: var(--text-2); }
.traseu-capete strong { display: block; color: var(--text); font-size: .86rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.traseu-capete span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fav-btn { position: absolute; top: 8px; right: 8px; width: 30px; height: 30px; border-radius: 50%; border: 0; background: transparent; color: var(--text-2); cursor: pointer; display: grid; place-items: center; opacity: .35; transition: all .25s var(--usor); z-index: 2; }
.traseu:hover .fav-btn, .fav-btn.activ { opacity: 1; }
.fav-btn:hover { transform: scale(1.15); color: var(--galben); }
.fav-btn.activ { color: var(--galben); }
.fav-btn.activ .ic { fill: currentColor; }
.fav-btn.pop { animation: pop .5s var(--usor); }
.traseu-cuplat { display: flex; gap: 6px; }
.fara-rezultate { text-align: center; padding: 48px 20px; color: var(--text-2); }
.fara-rezultate .mare { font-size: 3rem; }

.card-statii { display: flex; align-items: center; gap: 24px; padding: 32px; border-radius: 28px; background: linear-gradient(135deg, #058B8C, #046566 60%, #06464a); color: #fff; overflow: hidden; position: relative; isolation: isolate; box-shadow: 0 24px 48px -24px rgba(4, 101, 102, .6); }
.card-statii::before { content: ""; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: #fff; opacity: .08; z-index: -1; }
.card-statii h2 { color: #fff; margin: 0 0 .3em; }
.card-statii p { color: rgba(255, 255, 255, .82); margin: 0; }
.card-statii .buton { margin-left: auto; flex-shrink: 0; }
.statie-semn { width: 72px; height: 72px; border-radius: 20px; background: #fff; color: #058B8C; display: grid; place-items: center; flex-shrink: 0; }
.statie-semn .ic { width: 36px; height: 36px; }

/* Traseu – diagramă stații */
.antet-traseu { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.antet-traseu .nr-mare { width: 96px; height: 96px; border-radius: 28px; display: grid; place-items: center; font-size: 2.6rem; font-weight: 900; background: #fff; color: var(--primar-inchis); box-shadow: 0 20px 40px -12px rgba(0, 0, 0, .35); letter-spacing: -.04em; animation: intra .8s var(--usor) both; }
.antet-traseu .actiuni-mici { display: flex; gap: 8px; margin-left: auto; }
.antet-traseu .unealta { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .25); color: #fff; }
.antet-traseu .unealta:hover { background: #fff; color: var(--primar); }
.antet-traseu .unealta.activ { background: #fff; border-color: #fff; color: var(--primar); }
.antet-traseu .unealta.activ .ic { fill: currentColor; }
.info-suplimentar { display: flex; gap: 14px; padding: 20px 22px; border-radius: 18px; background: color-mix(in srgb, var(--primar) 10%, var(--suprafata)); border: 1px solid color-mix(in srgb, var(--primar) 40%, var(--linie)); margin-bottom: 24px; }
.info-suplimentar > .ic { color: var(--primar); width: 26px; height: 26px; }
.info-suplimentar p { margin: 0; text-align: justify; }
.taburi { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: var(--suprafata); border: 1px solid var(--linie); margin-bottom: 18px; flex-wrap: wrap; }
.tab { padding: .6em 1.2em; border: 0; border-radius: 999px; background: none; font-weight: 700; font-size: .9rem; cursor: pointer; color: var(--text-2); transition: all .3s var(--usor); display: inline-flex; align-items: center; gap: .4em; }
.tab:hover { color: var(--text); }
.tab.activ { background: var(--primar); color: #fff; box-shadow: 0 8px 18px -8px rgba(5, 139, 140, .7); }
.tab.retur.activ { background: var(--rosu); box-shadow: 0 8px 18px -8px rgba(187, 10, 2, .6); }
.variante { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.varianta { padding: .35em .9em; border-radius: 999px; border: 1.5px solid var(--linie); background: var(--suprafata); font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; color: var(--text-2); }
.varianta.activ { border-color: var(--verde); color: #fff; background: var(--verde); }
.panou-sens { display: none; }
.panou-sens.activ { display: block; animation: intra .5s var(--usor); }
.sens-titlu { display: flex; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--linie); font-weight: 700; flex-wrap: wrap; }
.sens-titlu .ic { color: var(--primar); }
.sens-titlu small { color: var(--text-2); font-weight: 500; }
.linie-statii { list-style: none; margin: 0; padding: 14px 10px 18px; position: relative; }
.linie-statii li { position: relative; }
.linie-statii li::before { content: ""; position: absolute; left: 27px; top: 0; bottom: 0; width: 4px; background: var(--culoare-linie, var(--primar)); opacity: .25; }
.linie-statii li:first-child::before { top: 50%; }
.linie-statii li:last-child::before { bottom: 50%; }
.statie-link { position: relative; display: flex; align-items: center; gap: 16px; padding: 11px 14px 11px 48px; border-radius: 14px; color: var(--text); font-weight: 600; transition: background .2s, padding .3s var(--usor); }
.statie-link::before { content: ""; position: absolute; left: 21px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; background: var(--suprafata); border: 4px solid var(--culoare-linie, var(--primar)); transition: transform .3s var(--usor); z-index: 1; }
.linie-statii li:first-child .statie-link::before, .linie-statii li:last-child .statie-link::before { background: var(--culoare-linie, var(--primar)); width: 20px; height: 20px; left: 19px; margin-top: -10px; }
.statie-link:hover { background: var(--suprafata-2); color: var(--primar); padding-left: 54px; }
.statie-link:hover::before { transform: scale(1.3); }
.statie-link .idx { font-size: .75rem; color: var(--text-2); font-variant-numeric: tabular-nums; width: 22px; font-weight: 600; }
.statie-link .ic { margin-left: auto; opacity: 0; transform: translateX(-6px); transition: all .3s var(--usor); color: var(--primar); }
.statie-link:hover .ic { opacity: 1; transform: none; }
.linie-statii li[data-apare] { transition-duration: .6s; }

/* Program – orar stație */
.semn-statie { display: grid; grid-template-columns: auto 1fr; border-radius: 22px 22px 0 0; overflow: hidden; box-shadow: var(--umbra); }
.semn-statie .s-nr { background: var(--negru); color: #fff; font-size: 2.6rem; font-weight: 900; display: grid; place-items: center; padding: 0 26px; min-width: 110px; letter-spacing: -.04em; }
.semn-statie .s-dreapta { display: grid; }
.semn-statie .s-sus { background: var(--verde); color: #fff; padding: 10px 20px; font-weight: 800; letter-spacing: .16em; font-size: .85rem; display: flex; align-items: center; gap: 10px; }
.semn-statie .s-sus::before { content: ""; width: 26px; height: 14px; background: var(--rosu); border-radius: 4px; }
.semn-statie .s-jos { background: var(--galben); color: var(--negru); padding: 14px 20px; font-weight: 800; font-size: clamp(1.2rem, 3vw, 1.7rem); line-height: 1.15; }
.semn-statie-subsol { background: var(--negru); color: #fff; display: flex; align-items: center; gap: 16px; padding: 12px 20px; border-radius: 0 0 22px 22px; font-weight: 800; letter-spacing: .04em; font-size: .88rem; }
.semn-statie-subsol img { width: 80px; }
.orar-card { border-radius: 0; border-top: 0; border-bottom: 0; box-shadow: none; }
.urmatoarea {
    display: flex; align-items: center; gap: 20px; padding: 22px 24px; margin: 22px 0 6px;
    border-radius: 20px; background: linear-gradient(135deg, color-mix(in srgb, #5ce08c 22%, var(--suprafata)), var(--suprafata));
    border: 1px solid color-mix(in srgb, #2fae8a 40%, var(--linie)); flex-wrap: wrap;
}
.urmatoarea .u-ora { font-size: clamp(2.4rem, 7vw, 3.6rem); font-weight: 900; letter-spacing: -.04em; font-variant-numeric: tabular-nums; color: var(--verde); line-height: 1; }
.urmatoarea .u-eticheta { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; color: var(--text-2); display: flex; align-items: center; gap: .5em; }
.urmatoarea .u-eticheta .punct { width: 8px; height: 8px; border-radius: 50%; background: #2fae8a; animation: puls 2s infinite; }
.urmatoarea .u-numaratoare { margin-left: auto; text-align: right; }
.urmatoarea .u-numaratoare strong { display: block; font-size: 1.6rem; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.urmatoarea .u-numaratoare small { color: var(--text-2); }
.urmatoarea.terminat { background: var(--suprafata-2); border-color: var(--linie); }
.urmatoarea.terminat .u-ora { color: var(--text-2); font-size: 1.4rem; }
.orar-cap { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 22px 0 12px; }
.orar-cap h3 { margin: 0; font-size: 1rem; color: var(--primar); letter-spacing: .04em; }
.orar-azi { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; background: var(--primar); color: #fff; padding: .25em .7em; border-radius: 999px; margin-left: .5em; vertical-align: middle; }
.orar { display: grid; gap: 4px; }
.orar-rand { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 12px; padding: 6px 8px; border-radius: 12px; transition: background .2s; }
.orar-rand:hover { background: var(--suprafata-2); }
.orar-rand.acum { background: var(--primar-pal); }
.orar-ora { font-size: 1.5rem; font-weight: 900; color: var(--primar); text-align: right; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.orar-minute { display: flex; flex-wrap: wrap; gap: 6px; }
.min { display: inline-grid; place-items: center; min-width: 44px; padding: .35em .5em; border-radius: 10px; font-weight: 700; font-variant-numeric: tabular-nums; background: var(--suprafata-2); color: var(--text); font-size: .98rem; transition: transform .2s; }
.min:hover { transform: translateY(-2px); }
.min.trecut { opacity: .38; text-decoration: line-through; text-decoration-thickness: 1px; }
.min.urm { background: #2fae8a; color: #fff; box-shadow: 0 6px 16px -6px rgba(47, 174, 138, .9); animation: respira 2s ease-in-out infinite; }
.orar-gol { padding: 26px; text-align: center; color: var(--text-2); border: 1.5px dashed var(--linie); border-radius: 16px; }
.alte-statii { display: flex; gap: 8px; flex-wrap: wrap; }
.alte-statii a { padding: .4em .9em; border-radius: 999px; border: 1px solid var(--linie); background: var(--suprafata); font-size: .85rem; font-weight: 600; color: var(--text); }
.alte-statii a:hover { border-color: var(--primar); color: var(--primar); }
.alte-statii a.curenta { background: var(--primar); border-color: var(--primar); color: #fff; }

/* Stații */
.lista-statii { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.statie-rand { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px; background: var(--suprafata); border: 1px solid var(--linie); color: var(--text); transition: all .3s var(--usor); }
.statie-rand:hover { transform: translateY(-2px); border-color: var(--primar); color: var(--text); box-shadow: var(--umbra); }
.statie-rand .s-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--galben); color: var(--negru); flex-shrink: 0; }
.statie-rand strong { display: block; font-size: .95rem; line-height: 1.25; }
.statie-rand .mini-trasee { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 4px; }
.statie-rand .mini-trasee span { font-size: .72rem; font-weight: 800; padding: .1em .45em; border-radius: 6px; background: var(--suprafata-2); color: var(--text-2); }
.statie-litera { grid-column: 1 / -1; font-size: 1.6rem; font-weight: 900; color: var(--primar); margin: 18px 0 4px; letter-spacing: -.02em; }
.aproape-btn.incarcare .ic { animation: roteste 1s linear infinite; }
.distanta { margin-left: auto; font-size: .78rem; color: var(--primar); font-weight: 700; white-space: nowrap; }
.trasee-statie { display: grid; gap: 10px; }
.traseu-statie { display: flex; align-items: center; gap: 16px; padding: 12px 16px; border: 1px solid var(--linie); border-radius: 16px; color: var(--text); background: var(--suprafata); transition: all .3s var(--usor); }
.traseu-statie:hover { transform: translateX(4px); border-color: var(--primar); color: var(--text); }
.traseu-statie .nr { min-width: 64px; height: 50px; font-size: 1.4rem; }
.traseu-statie .info { flex: 1; line-height: 1.25; }
.traseu-statie small { display: block; color: var(--text-2); }
.peron { font-size: .78rem; letter-spacing: .1em; color: var(--primar); font-weight: 800; text-transform: uppercase; margin-bottom: 12px; display: flex; gap: .5em; align-items: center; flex-wrap: wrap; }
.peron span { color: var(--text-2); font-weight: 500; text-transform: none; letter-spacing: 0; }

/* ---------- Subsol ---------- */
.subsol { position: relative; margin-top: 80px; color: rgba(255, 255, 255, .85); }
.subsol-val svg { display: block; width: 100%; height: 60px; fill: #06464a; }
.subsol-interior { background: linear-gradient(180deg, #06464a 0%, #043236 60%, #03282b 100%); padding: 40px 0 0; position: relative; overflow: hidden; }
.subsol-grila { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px; }
.subsol-brand img { width: 100px; margin-bottom: 18px; background: #fff; padding: 8px 10px; border-radius: 14px; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .5); }
.subsol-brand p { max-width: 320px; }
.subsol h3 { color: #fff; font-size: 1rem; display: flex; gap: .5em; align-items: center; margin-bottom: 14px; }
.subsol h3 .ic { color: var(--galben); }
.subsol a { color: rgba(255, 255, 255, .85); }
.subsol a:hover { color: var(--galben); }
.subsol address { font-style: normal; }
.subsol-linkuri { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.subsol-linkuri a { position: relative; }
.subsol-linkuri a::after { content: ""; position: absolute; left: 0; bottom: -2px; height: 1.5px; width: 0; background: var(--galben); transition: width .3s var(--usor); }
.subsol-linkuri a:hover::after { width: 100%; }
.social { display: flex; gap: 8px; }
.social a { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: rgba(255, 255, 255, .1); transition: all .3s var(--usor); }
.social a:hover { background: var(--primar); color: #fff; transform: translateY(-3px); }
.subsol-jos { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 28px; margin-top: 36px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .88rem; }
.subsol-jos p { margin: 0; }
.oras { position: relative; height: 120px; margin-top: 10px; color: rgba(255, 255, 255, .06); }
.oras-siluete { position: absolute; inset: 0; width: 100%; height: 100%; fill: rgba(255, 255, 255, .05); }
.oras-sosea { position: absolute; left: 0; right: 0; bottom: 0; height: 12px; background: rgba(0, 0, 0, .25); }
.oras-tramvai { position: absolute; bottom: 8px; width: 190px; left: -210px; animation: circula 30s linear infinite; opacity: .55; }
.oras-tramvai svg { display: block; width: 100%; height: auto; }
.oras-tramvai .roata { transform-box: fill-box; transform-origin: center; animation: bus-roti .8s linear infinite; }
.oras-tramvai .fascicul { display: none; }

/* ---------- Plutitoare ---------- */
.plutitor { position: fixed; bottom: calc(20px + env(safe-area-inset-bottom)); z-index: 45; width: 52px; height: 52px; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center; box-shadow: var(--umbra-mare); transition: transform .3s var(--usor), opacity .3s; }
.plutitor:hover { transform: scale(1.08); }
.plutitor-acces { left: 20px; background: var(--primar); color: #fff; }
.plutitor-acces .ic { width: 26px; height: 26px; }
.plutitor-sus { right: 20px; background: var(--suprafata); color: var(--primar); opacity: 0; pointer-events: none; transform: translateY(16px); }
.plutitor-sus.vizibil { opacity: 1; pointer-events: auto; transform: none; }
.plutitor-sus .inel { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.plutitor-sus .inel circle { fill: none; stroke: var(--primar); stroke-width: 2.5; stroke-dasharray: 138.2; stroke-dashoffset: calc(138.2 * (1 - var(--progres, 0))); }

/* ---------- Dialoguri ---------- */
.dialog { position: fixed; inset: 0; z-index: 90; display: grid; place-items: start center; padding: 12vh 16px 16px; visibility: hidden; }
.dialog.deschis { visibility: visible; }
.dialog-fundal { position: absolute; inset: 0; background: rgba(5, 25, 25, .5); backdrop-filter: blur(6px); opacity: 0; transition: opacity .3s; }
.dialog.deschis .dialog-fundal { opacity: 1; }
.dialog-cutie { position: relative; width: 100%; max-width: 560px; background: var(--suprafata); border-radius: 24px; border: 1px solid var(--linie); box-shadow: var(--umbra-mare); opacity: 0; transform: translateY(-12px) scale(.97); transition: all .35s var(--usor); max-height: 80vh; overflow: auto; }
.dialog.deschis .dialog-cutie { opacity: 1; transform: none; }
.dialog-cap { display: flex; justify-content: space-between; align-items: center; padding: 22px 24px 0; }
.dialog-cap h2 { font-size: 1.3rem; display: flex; gap: .5em; align-items: center; margin: 0; }
.dialog-sub { color: var(--text-2); padding: 8px 24px 0; font-size: .92rem; }
.acces { padding-bottom: 24px; }
.acces > *:not(.dialog-cap):not(.dialog-sub) { margin-left: 24px; margin-right: 24px; }
.acces > .latime { width: calc(100% - 48px); }
.dialog-cutie { overflow-x: hidden; }
.acces-grup { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--linie); flex-wrap: wrap; }
.acces-eticheta { display: flex; align-items: center; gap: .5em; font-weight: 700; }
.segment { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--suprafata-2); gap: 2px; }
.segment button { border: 0; background: none; padding: .5em .9em; border-radius: 999px; cursor: pointer; font-weight: 700; display: inline-flex; gap: .35em; align-items: center; }
.segment button:hover { background: var(--suprafata); color: var(--primar); }
.segment button.activ { background: var(--primar); color: #fff; }
.acces-comutatoare { display: grid; gap: 4px; padding: 12px 0 18px; }
.comutator { display: flex; align-items: center; gap: 12px; padding: 10px 0; cursor: pointer; font-weight: 600; }
.comutator input { position: absolute; opacity: 0; }
.comutator span { width: 44px; height: 26px; border-radius: 99px; background: var(--linie); position: relative; flex-shrink: 0; transition: background .25s; order: 3; margin-left: auto; }
.comutator span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .3s var(--usor); box-shadow: 0 2px 4px rgba(0, 0, 0, .2); }
.comutator input:checked + span { background: var(--primar); }
.comutator input:checked + span::after { transform: translateX(18px); }
.comutator input:focus-visible + span { outline: 3px solid var(--galben); outline-offset: 2px; }
.comutator .ic { color: var(--primar); }

.paleta { max-width: 640px; overflow: hidden; display: flex; flex-direction: column; }
.paleta-camp { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--linie); }
.paleta-camp .ic { color: var(--primar); width: 22px; height: 22px; }
.paleta-camp input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-size: 1.15rem; color: var(--text); }
.paleta-camp input::-webkit-search-cancel-button { display: none; }
.paleta-rezultate { list-style: none; margin: 0; padding: 8px; overflow-y: auto; max-height: 52vh; }
.paleta-grup { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; color: var(--text-2); padding: 12px 12px 6px; }
.paleta-rezultate a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; color: var(--text); font-weight: 600; }
.paleta-rezultate a .nr { min-width: 40px; height: 32px; font-size: .9rem; border-radius: 9px; }
.paleta-rezultate a .p-ic { width: 32px; height: 32px; border-radius: 9px; background: var(--suprafata-2); display: grid; place-items: center; color: var(--text-2); flex-shrink: 0; }
.paleta-rezultate a .p-ic .ic { width: 16px; height: 16px; }
.paleta-rezultate a.selectat, .paleta-rezultate a:hover { background: var(--primar-pal); color: var(--primar); }
.paleta-rezultate mark { background: color-mix(in srgb, var(--galben) 45%, transparent); color: inherit; border-radius: 3px; padding: 0 1px; }
.paleta-gol { padding: 28px; text-align: center; color: var(--text-2); }
.paleta-jos { display: flex; gap: 18px; padding: 10px 20px; border-top: 1px solid var(--linie); font-size: .78rem; color: var(--text-2); }
.paleta-jos kbd { margin-right: 2px; }

.lightbox { position: fixed; inset: 0; z-index: 95; background: rgba(0, 10, 10, .92); display: grid; place-items: center; padding: 60px 16px 16px; visibility: hidden; opacity: 0; transition: opacity .3s, visibility .3s; }
.lightbox.deschis { visibility: visible; opacity: 1; }
.lightbox-continut { max-width: min(1100px, 100%); max-height: 100%; }
.lightbox-continut img, .lightbox-continut video { max-width: 100%; max-height: 85vh; border-radius: 16px; margin: 0 auto; animation: intra .4s var(--usor); }
.lightbox-inchide { position: absolute; top: 16px; right: 16px; background: rgba(255, 255, 255, .12); border-color: transparent; color: #fff; }

/* consimtamant cookie */
.cookie-banner { position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 80; width: min(980px, calc(100% - 32px)); display: flex; align-items: center; gap: 18px; padding: 18px 20px; background: var(--suprafata); color: var(--text); border: 1px solid var(--linie); border-radius: 22px; box-shadow: var(--umbra-mare); opacity: 0; transform: translate(-50%, 24px); transition: opacity .45s var(--usor), transform .45s var(--usor); }
.cookie-banner.vizibil { opacity: 1; transform: translate(-50%, 0); }
.cookie-ic { flex-shrink: 0; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--primar-pal); color: var(--primar); }
.cookie-ic .ic { width: 26px; height: 26px; }
.cookie-text { flex: 1; min-width: 0; }
.cookie-text strong { display: block; font-size: 1rem; margin-bottom: 2px; }
.cookie-text p { margin: 0; font-size: .86rem; line-height: 1.5; color: var(--text-2); }
.cookie-text a { color: var(--primar); font-weight: 700; }
.cookie-butoane { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; }
.cookie-categorii { padding: 8px 24px 0; }
.cookie-cat { border-bottom: 1px solid var(--linie); padding: 6px 0 12px; }
.cookie-cat:last-child { border-bottom: 0; }
.cookie-cat .comutator em { font-style: normal; font-size: .75rem; font-weight: 700; color: var(--primar); background: rgba(5, 139, 140, .1); padding: .2em .6em; border-radius: 99px; }
.cookie-cat .comutator input:disabled + span { opacity: .55; cursor: not-allowed; }
.cookie-cat p { margin: 0; font-size: .85rem; color: var(--text-2); line-height: 1.5; }
.cookie-actiuni { display: flex; gap: 8px; flex-wrap: wrap; padding: 16px 24px 24px; }
.cookie-actiuni .buton { flex: 1 1 150px; justify-content: center; }
.subsol-buton-link { background: none; border: 0; padding: 0; font: inherit; color: rgba(255, 255, 255, .85); cursor: pointer; text-align: left; }
.subsol-buton-link:hover { color: var(--galben); }

@media (max-width: 760px) {
    .cookie-banner { flex-direction: column; align-items: stretch; gap: 12px; padding: 16px; bottom: calc(10px + env(safe-area-inset-bottom)); width: calc(100% - 20px); }
    .cookie-ic { display: none; }
    .cookie-butoane { justify-content: stretch; }
    .cookie-butoane .buton { flex: 1 1 auto; justify-content: center; }
    .cookie-butoane .buton:last-child { flex-basis: 100%; order: -1; }
}
@media print { .cookie-banner { display: none !important; } }
.notif { position: fixed; left: 50%; bottom: 90px; z-index: 99; transform: translate(-50%, 20px); background: var(--text); color: var(--suprafata); padding: .7em 1.2em; border-radius: 999px; font-weight: 700; font-size: .9rem; opacity: 0; pointer-events: none; transition: all .35s var(--usor); display: flex; gap: .5em; align-items: center; }
.notif.vizibil { opacity: 1; transform: translate(-50%, 0); }

/* ---------- Decor sezonier pe pagină ---------- */
[data-teme~="halloween"] .hero { background: linear-gradient(140deg, #1d1530 0%, #3a1f4a 40%, #058B8C 100%); }
[data-teme~="halloween"] .hero-blob.b2 { background: #ff7a1a; opacity: .45; }
[data-teme~="halloween"] .hero-blob.b1 { background: #7c3aed; }
.panza { position: absolute; top: 0; right: 0; width: 160px; opacity: .35; pointer-events: none; z-index: 0; }
[data-teme~="craciun"] .hero { background: linear-gradient(140deg, #04524f 0%, #058B8C 50%, #0d6b4f 100%); }
.ghirlanda { position: absolute; top: 0; left: 0; right: 0; height: 26px; display: flex; justify-content: space-around; pointer-events: none; z-index: 3; }
.ghirlanda::before { content: ""; position: absolute; left: -2%; right: -2%; top: -14px; height: 26px; border-bottom: 2px solid rgba(255, 255, 255, .3); border-radius: 0 0 50% 50% / 0 0 100% 100%; }
.ghirlanda i { width: 10px; height: 14px; border-radius: 50%; margin-top: 8px; background: var(--b); box-shadow: 0 0 12px 2px var(--b); animation: clipeste 1.6s ease-in-out infinite; animation-delay: var(--d); }
[data-teme~="paste"] .hero { background: linear-gradient(140deg, #058B8C 0%, #43b6a6 50%, #b49ae0 100%); }
[data-teme~="vara"] .hero { background: linear-gradient(160deg, #0a8fbf 0%, #058B8C 55%, #f9ba4c 140%); }
.soare { position: absolute; top: -80px; right: 8%; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, #ffe08a 0 40%, rgba(255, 210, 100, .3) 60%, transparent 70%); z-index: -1; animation: roteste 40s linear infinite; }
.soare::before { content: ""; position: absolute; inset: -40px; background: repeating-conic-gradient(rgba(255, 230, 150, .25) 0 6deg, transparent 6deg 18deg); border-radius: 50%; mask: radial-gradient(circle, transparent 40%, #000 42%, transparent 70%); -webkit-mask: radial-gradient(circle, transparent 40%, #000 42%, transparent 70%); }
[data-teme~="martisor"] .hero { background: linear-gradient(140deg, #058B8C 0%, #0a9fa0 60%, #d6455a 140%); }
.snur { position: absolute; top: 0; left: 6%; width: 3px; height: 140px; background: repeating-linear-gradient(180deg, #d62839 0 8px, #fff 8px 16px); z-index: 2; transform-origin: top; animation: legana 7s ease-in-out infinite; }
.snur::after { content: ""; position: absolute; bottom: -12px; left: -6px; width: 15px; height: 15px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff 0 30%, #d62839 32%); }

/* ---------- Animații ---------- */
@keyframes curge { to { background-position: 200% 0; } }
@keyframes legana { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } }
@keyframes sari { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes pluteste { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(40px, -30px) scale(1.08); } 66% { transform: translate(-30px, 20px) scale(.95); } }
@keyframes puls { 0% { box-shadow: 0 0 0 0 rgba(125, 255, 168, .7); } 70% { box-shadow: 0 0 0 10px rgba(125, 255, 168, 0); } 100% { box-shadow: 0 0 0 0 rgba(125, 255, 168, 0); } }
@keyframes puls-rosu { 0% { box-shadow: 0 0 0 0 rgba(187, 10, 2, .5); } 70% { box-shadow: 0 0 0 10px rgba(187, 10, 2, 0); } 100% { box-shadow: none; } }
@keyframes puls-alb { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .6); } 70% { box-shadow: 0 0 0 22px rgba(255, 255, 255, 0); } 100% { box-shadow: none; } }
@keyframes circula { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 400px)); } }
@keyframes linie { to { stroke-dashoffset: -400; } }
@keyframes suna { 0%, 80%, 100% { transform: rotate(0); } 84% { transform: rotate(-14deg); } 88% { transform: rotate(14deg); } 92% { transform: rotate(-10deg); } 96% { transform: rotate(8deg); } }
@keyframes intra { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes pop { 0% { transform: scale(1); } 40% { transform: scale(1.5) rotate(15deg); } 100% { transform: scale(1); } }
@keyframes respira { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes roteste { to { transform: rotate(360deg); } }
@keyframes clipeste { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
    [data-apare] { opacity: 1; transform: none; }
}
:root.fara-animatii *, :root.fara-animatii *::before, :root.fara-animatii *::after { animation: none !important; transition: none !important; }
:root.fara-animatii [data-apare] { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1480px) {
    .antet-rand { gap: 12px; }
    .nav-link { padding: .55em .72em; font-size: .86rem; }
    .cauta-text, .cauta-btn kbd { display: none; }
    .limba span { display: none; }
}
@media (max-width: 1300px) {
    .nav-principal { display: none; }
    .hamburger { display: inline-flex; }
    .antet-unelte { margin-left: auto; }
    .cauta-text { display: inline; }
}
@media (max-width: 1080px) {
    .hero-grila { grid-template-columns: 1fr; gap: 32px; }
    .actiuni { grid-template-columns: repeat(2, 1fr); }
    .grila-anunturi { grid-template-columns: 1fr; }
    .sidebar { position: static; }
    .subsol-grila { grid-template-columns: 1fr 1fr; }
    .galerie { grid-auto-columns: minmax(280px, 45%); }
}
@media (max-width: 640px) {
    :root { --antet-h: 66px; }
    .container { padding: 0 16px; }
    .logo img { width: 80px; }
    .antet-unelte { gap: 6px; }
    .unealta { height: 40px; min-width: 40px; padding: 0 .55em; }
    .limba span { display: none; }
    .sectiune { padding: 52px 0; }
    .hero { padding: 36px 0 110px; }
    .planificator { padding: 20px; border-radius: 22px; }
    .actiuni { grid-template-columns: 1fr 1fr; gap: 12px; }
    .actiune { padding: 18px; gap: 26px; min-height: 0; border-radius: 20px; }
    .actiune h3 { font-size: 1.02rem; }
    .actiune p { display: none; }
    .actiune .sageata { display: none; }
    .slide { aspect-ratio: 16 / 9; }
    .carusel-pista { border-radius: 20px; }
    .subsol-grila { grid-template-columns: 1fr; gap: 26px; }
    .galerie { grid-auto-columns: 82%; }
    .filtre { flex-direction: column; align-items: stretch; }
    .filtre-cipuri { border-radius: 20px; justify-content: center; }
    .filtru-cauta { min-width: 0; }
    .trasee-grila { grid-template-columns: 1fr 1fr; gap: 10px; }
    .traseu { flex-direction: column; align-items: flex-start; gap: 10px; padding: 12px; }
    .traseu-capete strong, .traseu-capete span { white-space: normal; }
    .card-statii { flex-direction: column; align-items: flex-start; padding: 24px; }
    .card-statii .buton { margin-left: 0; }
    .antet-traseu .nr-mare { width: 76px; height: 76px; font-size: 2rem; border-radius: 22px; }
    .antet-traseu .actiuni-mici { margin-left: 0; width: 100%; }
    .semn-statie .s-nr { font-size: 2rem; min-width: 80px; padding: 0 16px; }
    .orar-rand { grid-template-columns: 48px 1fr; gap: 8px; padding: 6px 4px; }
    .orar-ora { font-size: 1.25rem; }
    .min { min-width: 40px; font-size: .92rem; }
    .urmatoarea .u-numaratoare { margin-left: 0; text-align: left; }
    .plutitor { width: 46px; height: 46px; bottom: calc(14px + env(safe-area-inset-bottom)); }
    .plutitor-acces { left: 14px; }
    .plutitor-sus { right: 14px; }
    .dialog { padding-top: 8vh; }
    .lista-statii { grid-template-columns: 1fr; }
}

@media print {
    .antet, .subsol, .plutitor, .sezon-banner, #sezon-canvas, .actiuni-mici, .taburi, .hero-linii { display: none !important; }
    body { background: #fff; color: #000; }
    .hero-pagina { background: none; color: #000; padding: 0 0 20px; }
    .hero-pagina::after { display: none; }
    .card { box-shadow: none; }
    .min.trecut { opacity: 1; text-decoration: none; }
}

[hidden] { display: none !important; }

/* Selector sens TUR / RETUR (carduri) */
.sensuri { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-bottom: 18px; }
.sens {
    --c: var(--primar);
    position: relative; display: grid; gap: 4px; text-align: left; padding: 16px 18px 16px 20px;
    border-radius: 18px; border: 1.5px solid var(--linie); background: var(--suprafata); color: var(--text);
    cursor: pointer; overflow: hidden; transition: border-color .25s, box-shadow .3s, transform .3s var(--usor);
}
.sens.retur { --c: var(--rosu); }
.sens::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--c); opacity: .25; transition: opacity .25s, width .3s var(--usor); }
.sens:hover { border-color: color-mix(in srgb, var(--c) 45%, var(--linie)); transform: translateY(-2px); }
.sens.activ { border-color: var(--c); box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--c) 70%, transparent); background: color-mix(in srgb, var(--c) 6%, var(--suprafata)); }
.sens.activ::before { opacity: 1; width: 6px; }
.sens-eticheta { justify-self: start; font-size: .7rem; font-weight: 800; letter-spacing: .14em; padding: .2em .7em; border-radius: 999px; background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--c); }
.sens.activ .sens-eticheta { background: var(--c); color: #fff; }
.sens-de { font-size: .82rem; color: var(--text-2); margin-top: 4px; }
.sens-spre { display: flex; align-items: center; gap: .45em; font-size: 1.1rem; font-weight: 800; line-height: 1.2; letter-spacing: -.01em; }
.sens-spre .ic { color: var(--c); flex-shrink: 0; transition: transform .3s var(--usor); }
.sens.activ .sens-spre .ic { transform: translateX(3px); }
:root[data-theme="dark"] .sens.retur { --c: #ff5a52; }

/* ---------- Traseu: aceeasi structura ca pagina actuala (TUR, apoi RETUR; coloane pe variante) ---------- */
.traseu-card { padding: 10px; }
.traseu-coloane { display: grid; grid-template-columns: 1fr; gap: 0; }
.traseu-coloane.cu-variante { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.traseu-coloana { padding: 14px 10px; }
.traseu-coloane.cu-variante .traseu-coloana + .traseu-coloana { border-left: 2px solid var(--linie); }
.varianta-badge { display: table; margin: 0 auto 14px; padding: .35em 1.1em; border-radius: 999px; background: var(--primar); color: #fff; font-size: .74rem; font-weight: 800; letter-spacing: .1em; }
.varianta-badge.alt { background: var(--verde); }
.dir + .dir { margin-top: 18px; padding-top: 18px; border-top: 1px dashed var(--linie); }
.dir-cap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 0 6px 6px; }
.dir-label { font-size: .72rem; font-weight: 800; letter-spacing: .12em; padding: .3em .8em; border-radius: 8px; background: var(--primar-pal); color: var(--primar); }
.dir.retur .dir-label { background: color-mix(in srgb, var(--rosu) 12%, var(--suprafata)); color: var(--rosu); }
:root[data-theme="dark"] .dir.retur .dir-label { color: #ff6b63; }
.dir-spre { font-size: .85rem; color: var(--text-2); font-weight: 600; }
.dir .linie-statii { padding: 4px 0 0; }
.dir .statie-link { padding: 8px 12px 8px 56px; font-size: .95rem; }
.dir .statie-link:hover { padding-left: 62px; }
.dir .statie-link .ic { width: 1em; height: 1em; }

/* ---------- Program: indicatorul statiei + doua coloane (Lucratoare | Weekend), ca pagina actuala ---------- */
.orar-card { background: var(--suprafata); border-left: 1px solid var(--linie); border-right: 1px solid var(--linie); padding: 18px; }
.orar-coloane { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.orar-coloana { background: var(--suprafata); border: 1px solid var(--linie); border-radius: 20px; padding: 16px; min-width: 0; box-shadow: var(--umbra); }
.orar-coloana.azi { border-color: color-mix(in srgb, var(--primar) 45%, var(--linie)); box-shadow: 0 18px 40px -22px color-mix(in srgb, var(--primar) 70%, transparent); }
.orar-titlu { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--linie); }
.ot-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--primar-pal); color: var(--primar); flex-shrink: 0; }
.ot-text { display: grid; line-height: 1.25; min-width: 0; }
.ot-text strong { font-size: .8rem; letter-spacing: .06em; color: var(--text); }
.ot-text small { color: var(--text-2); font-size: .78rem; font-weight: 600; }
.orar-titlu .orar-azi { margin-left: auto; }
.urm-card { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "et et" "ora in"; align-items: end; gap: 2px 14px; padding: 14px 16px; margin-bottom: 14px; border-radius: 16px; background: linear-gradient(135deg, #1f9d5c, #2fae8a); color: #fff; box-shadow: 0 14px 30px -16px rgba(31, 157, 92, .9); }
.urm-eticheta { grid-area: et; display: flex; align-items: center; gap: .5em; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: .9; }
.urm-eticheta .punct { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: puls 2s infinite; }
.urm-ora { grid-area: ora; font-size: 2.4rem; font-weight: 900; letter-spacing: -.04em; line-height: 1; font-variant-numeric: tabular-nums; }
.urm-in { grid-area: in; justify-self: end; font-weight: 700; font-size: .9rem; font-variant-numeric: tabular-nums; padding-bottom: 4px; opacity: .95; }
.urm-gata { padding: 14px; margin-bottom: 14px; border-radius: 14px; background: var(--suprafata-2); color: var(--text-2); font-size: .88rem; text-align: center; font-weight: 600; }
.ore { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.ora { display: grid; place-items: center; padding: 10px 4px; border-radius: 12px; background: var(--suprafata-2); font-weight: 800; font-size: 1.02rem; font-variant-numeric: tabular-nums; letter-spacing: -.01em; color: var(--text); transition: transform .2s var(--usor), background .2s, opacity .3s; }
.ora:hover { transform: translateY(-2px); background: var(--primar-pal); color: var(--primar); }
.ora.trecut { opacity: .35; background: transparent; box-shadow: inset 0 0 0 1px var(--linie); font-weight: 600; }
.ora.urm { background: #2fae8a; color: #fff; box-shadow: 0 8px 18px -8px rgba(47, 174, 138, .9); animation: respira 2.4s ease-in-out infinite; }
.orar-gol { padding: 26px 14px; text-align: center; color: var(--text-2); border: 1.5px dashed var(--linie); border-radius: 16px; font-size: .9rem; }
@media (max-width: 760px) {
    .orar-card { padding: 12px; }
    .orar-coloane { grid-template-columns: 1fr; }
    .ore { grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: 6px; }
    .ora { font-size: .98rem; padding: 9px 2px; }
    .urm-ora { font-size: 2rem; }
    .traseu-coloane.cu-variante .traseu-coloana + .traseu-coloana { border-left: 0; border-top: 2px solid var(--linie); }
}
}

/* ---------- Paginile reconstruite din site-ul actual (transformare.php) ---------- */
.compat { position: relative; z-index: 2; margin-top: -28px; }
.compat-continut { max-width: 960px; margin: 0 auto; padding: 0 20px 40px; }
.prose { font-size: 1.02rem; line-height: 1.7; color: var(--text); overflow-wrap: break-word; }
.prose > * + * { margin-top: 18px; }
.prose h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 800; margin: 34px 0 12px; }
.prose h3 { font-size: 1.35rem; margin: 28px 0 10px; }
.prose h4 { font-size: 1.12rem; margin: 22px 0 8px; color: var(--primar); }
.prose h5, .prose h6 { font-size: 1rem; margin: 16px 0 6px; }
.prose h2:first-child, .prose h3:first-child, .prose h4:first-child { margin-top: 0; }
.prose p { margin: 0 0 1em; }
@media (max-width: 640px) { .prose [style*="justify"] { text-align: left !important; } }
.prose ul, .prose ol { padding-left: 1.3em; margin: 0 0 1em; }
.prose li { margin: .25em 0; }
.prose li::marker { color: var(--primar); }
.prose img { max-width: 100%; height: auto; border-radius: 16px; }
.prose a:not(.buton):not(.doc-link) { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--primar) 35%, transparent); text-underline-offset: 3px; }
.prose a:not(.buton):not(.doc-link):hover { text-decoration-color: var(--primar); }
.prose strong, .prose b { font-weight: 700; }
.prose .card { padding: 30px 32px; margin-bottom: 20px; overflow: clip; }
.prose .card .card-body { padding: 0; }
.prose .card > .card-body > *:last-child, .prose .card > *:last-child { margin-bottom: 0; }
.prose .card-footer { margin: 20px -32px -30px; padding: 16px 32px; border-top: 1px solid var(--linie); background: var(--suprafata-2); }
.prose .card-border-start { border-left: 4px solid var(--primar); }
.prose .bg-soft-blue { background: color-mix(in srgb, var(--primar) 6%, var(--suprafata)); }
.prose .lead { font-size: 1.15rem; color: var(--text-2); }
.prose .text-center { text-align: center; }
.prose .text-white { color: inherit; }
.prose .badge { display: inline-block; padding: .25em .7em; border-radius: 999px; background: var(--primar-pal); color: var(--primar); font-size: .78rem; font-weight: 700; }
.prose .list-unstyled { list-style: none; padding: 0; }
.prose .d-none { display: none; }
@media (min-width: 1200px) { .prose .d-xl-block { display: block; } }
.tu-sep { border: 0; height: 1px; background: var(--linie); margin: 26px 0; }
.tu-mark { background: var(--primar-pal); color: var(--primar); padding: .1em .45em; border-radius: 6px; font-weight: 700; font-variant-numeric: tabular-nums; }
.text-orange { color: var(--c-orange); } .text-red { color: var(--rosu); } .text-green { color: var(--verde); } .text-purple { color: var(--c-purple); } .text-navy { color: var(--text); } .text-muted { color: var(--text-2); }

/* grila (inlocuieste row/col din Bootstrap) */
.prose .row { display: flex; flex-wrap: wrap; gap: 20px; margin: 0 0 20px; }
.prose .row > [class*="col"] { flex: 1 1 260px; min-width: 0; }
.prose .row > .col-12 { flex-basis: 100%; }
.prose .row > .card, .prose .row > hr, .prose .row > .doc-filtru, .prose .row > .paginare, .prose .row > .lista-gol { flex: 1 1 100%; margin-bottom: 0; }
@media (min-width: 768px) {
    .prose .row > .col-md-6 { flex: 0 0 calc(50% - 10px); }
    .prose .row > .col-md-4 { flex: 0 0 calc(33.333% - 14px); }
    .prose .row > .col-md-5 { flex: 0 0 calc(41.6% - 10px); }
    .prose .row > .col-md-7 { flex: 0 0 calc(58.3% - 10px); }
}
@media (min-width: 992px) {
    .prose .row > .col-lg-4 { flex: 0 0 calc(33.333% - 14px); }
    .prose .row > .col-lg-3 { flex: 0 0 calc(25% - 15px); }
    .prose .row > .col-lg-6 { flex: 0 0 calc(50% - 10px); }
}

/* liste de documente ("Vezi - ...") */
.doc-link { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--linie); background: var(--suprafata); color: var(--text); font-weight: 600; line-height: 1.35; text-align: left; transition: transform .3s var(--usor), border-color .2s, box-shadow .3s; }
.doc-link + .doc-link, .doc-link + .tu-sep + .doc-link { margin-top: 10px; }
.prose .doc-link + .tu-sep { display: none; }
.doc-link:hover { transform: translateX(4px); border-color: var(--primar); color: var(--text); box-shadow: var(--umbra); }
.doc-ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--primar-pal); color: var(--primar); flex-shrink: 0; transition: background .2s, color .2s; }
.doc-link:hover .doc-ic { background: var(--primar); color: #fff; }
.doc-titlu { flex: 1; min-width: 0; }
.doc-sag { color: var(--primar); opacity: 0; transform: translateX(-6px); transition: all .3s var(--usor); }
.doc-link:hover .doc-sag { opacity: 1; transform: none; }
.doc-link.scurt { display: inline-flex; padding: 8px 14px 8px 8px; margin: 6px 0 14px; gap: 10px; }
.doc-link.scurt .doc-ic { width: 32px; height: 32px; border-radius: 9px; }
.doc-link.scurt .doc-sag { display: none; }
.doc-filtru { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.doc-filtru .filtru-cauta { flex: 1; min-width: 220px; }
.lista-numar { align-self: center; margin: 0 0 0 auto; font-size: .85rem; font-weight: 700; color: var(--text-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lista-gol { display: flex; align-items: center; gap: .6em; justify-content: center; padding: 28px 16px; color: var(--text-2); font-weight: 600; border: 1.5px dashed var(--linie); border-radius: 18px; }
.paginare { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: 24px 0 8px; }
.paginare button { min-width: 42px; height: 42px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--linie); background: var(--suprafata); color: var(--text); font: inherit; font-weight: 700; cursor: pointer; display: inline-grid; place-items: center; transition: background .2s, border-color .2s, color .2s, transform .2s var(--usor); font-variant-numeric: tabular-nums; }
.paginare button:hover:not(:disabled):not(.activ) { border-color: var(--primar); color: var(--primar); transform: translateY(-1px); }
.paginare button.activ { background: var(--primar); border-color: var(--primar); color: #fff; }
.paginare button:disabled { opacity: .4; cursor: default; }
.paginare button .ic { width: 18px; height: 18px; }
.paginare-puncte { color: var(--text-2); padding: 0 2px; }
@media (max-width: 640px) {
    .lista-numar { margin-left: 0; width: 100%; }
    .paginare button { min-width: 38px; height: 38px; padding: 0 8px; }
}
.doc-ani { display: flex; gap: 6px; flex-wrap: wrap; }
.doc-ani button { padding: .45em .9em; border-radius: 999px; border: 1px solid var(--linie); background: var(--suprafata); font-weight: 700; font-size: .85rem; cursor: pointer; color: var(--text-2); }
.doc-ani button.activ { background: var(--primar); border-color: var(--primar); color: #fff; }

/* vizualizator PDF nou */
.pdf-vizor { border-radius: 20px; border: 1px solid var(--linie); background: var(--suprafata-2); overflow: clip; }
.pdf-bara { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px; background: var(--suprafata); border-bottom: 1px solid var(--linie); position: sticky; top: var(--antet-h); z-index: 3; }
.pdf-bara .pdf-pagina { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text-2); padding: 0 6px; }
.pdf-bara .spatiu { flex: 1; }
.pdf-pagini { display: grid; gap: 14px; padding: 16px; justify-items: center; }
.pdf-pagini canvas { width: 100%; max-width: var(--pdf-latime, 900px); height: auto; background: #fff; border-radius: 6px; box-shadow: 0 6px 24px -10px rgba(0, 0, 0, .35); }
.pdf-incarcare { padding: 60px 20px; text-align: center; color: var(--text-2); }
.pdf-incarcare .ic { animation: roteste 1s linear infinite; width: 28px; height: 28px; color: var(--primar); }
.pdf-vizor ~ .pagination, .pdf-vizor ~ br { display: none; }
.pdf-vizor:fullscreen { overflow: auto; border-radius: 0; }

/* tabele */
.tu-tabel-cutie { overflow-x: auto; border-radius: 16px; border: 1px solid var(--linie); background: var(--suprafata); }
.tu-tabel { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tu-tabel th, .tu-tabel td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--linie); vertical-align: middle; }
.tu-tabel thead th, .tu-tabel tr:first-child th { background: var(--primar-pal); color: var(--primar); font-weight: 800; font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; }
.tu-tabel tbody tr:nth-child(even) { background: color-mix(in srgb, var(--suprafata-2) 55%, transparent); }
.tu-tabel tbody tr:hover { background: var(--primar-pal); }
.tu-tabel tr:last-child td { border-bottom: 0; }

/* formulare */
.prose form { display: grid; gap: 14px; }
.prose .form-floating { position: relative; display: flex; flex-direction: column-reverse; gap: 6px; }
.prose .form-floating > label, .prose form label { font-weight: 700; font-size: .88rem; color: var(--text-2); }
.prose .form-control, .prose .form-select, .prose form input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]), .prose form select, .prose form textarea {
    width: 100%; padding: 13px 16px; border-radius: 14px; border: 1.5px solid var(--linie); background: var(--suprafata); color: var(--text); font: inherit; outline: none; transition: border-color .2s, box-shadow .2s;
}
.prose .form-control:focus, .prose form input:focus, .prose form select:focus, .prose form textarea:focus { border-color: var(--primar); box-shadow: 0 0 0 4px var(--primar-pal); }
.prose form textarea { min-height: 140px; resize: vertical; }
.prose .form-check { display: flex; gap: 10px; align-items: flex-start; }
.prose .form-check-input, .prose input[type=checkbox], .prose input[type=radio] { accent-color: var(--primar); width: 18px; height: 18px; margin-top: 3px; }
.prose form input[type=submit], .prose form button[type=submit] { justify-self: start; }

/* taburi si acordeoane (inlocuiesc Bootstrap JS) */
.prose .nav-tabs { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 5px; border-radius: 999px; background: var(--suprafata); border: 1px solid var(--linie); list-style: none; margin: 0 0 18px; }
.prose .nav-tabs .nav-link, .prose .nav-tabs a { display: inline-block; padding: .55em 1.1em; border-radius: 999px; font-weight: 700; color: var(--text-2); text-decoration: none !important; box-shadow: none; background: none; }
.prose .nav-tabs .active { background: var(--primar); color: #fff; }
.prose .tab-pane { display: none; }
.prose .tab-pane.active { display: block; animation: intra .4s var(--usor); }
.prose .collapse:not(.show) { display: none; }
.prose .collapse.show { animation: intra .35s var(--usor); }
.prose [data-bs-toggle="collapse"] { cursor: pointer; }
.prose .accordion-item { border: 1px solid var(--linie); border-radius: 16px; margin-bottom: 10px; overflow: hidden; background: var(--suprafata); }
.prose .accordion-item .card-header button, .prose .accordion-button { width: 100%; text-align: left; padding: 16px 18px; background: none; border: 0; font-weight: 700; cursor: pointer; }

@media (max-width: 640px) {
    .compat-continut { padding: 0 14px 30px; }
    .prose .card { padding: 22px 18px; border-radius: 18px; }
    .prose .card-footer { margin: 18px -18px -22px; padding: 14px 18px; }
    .tu-tabel th, .tu-tabel td { padding: 10px; font-size: .88rem; }
}

/* ---------- Panoul statiei (antetul paginii de program) ---------- */
.antet-statie { justify-content: flex-end; margin-top: -44px; }
@media (max-width: 640px) { .antet-statie { margin-top: 10px; } }
.panou-statie { --c: var(--c-sky); background: var(--suprafata); border-radius: 26px 26px 0 0; border: 1px solid var(--linie); border-bottom: 0; box-shadow: var(--umbra-mare); overflow: hidden; position: relative; }
.ps-dunga { display: grid; grid-template-columns: 1fr 1.4fr 3fr; height: 6px; }
.ps-dunga i:nth-child(1) { background: var(--primar-inchis); }
.ps-dunga i:nth-child(2) { background: #14b0b1; }
.ps-dunga i:nth-child(3) { background: var(--primar); }
.ps-corp { display: flex; align-items: stretch; gap: 22px; padding: 22px; }
.ps-nr { flex-shrink: 0; position: relative; display: grid; place-items: center; min-width: 132px; padding: 30px 16px 14px; border-radius: 20px; background: var(--suprafata); border: 2px solid color-mix(in srgb, var(--c) 35%, var(--linie)); color: var(--c); box-shadow: 0 14px 30px -18px color-mix(in srgb, var(--c) 80%, transparent); transition: transform .35s var(--usor), border-color .3s, box-shadow .3s; }
.ps-nr:hover { color: var(--c); transform: translateY(-3px); border-color: var(--c); box-shadow: 0 18px 34px -16px color-mix(in srgb, var(--c) 90%, transparent); }
.ps-tip { position: absolute; top: 10px; left: 0; right: 0; display: flex; align-items: center; justify-content: center; gap: .4em; font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.ps-tip .ic { width: 1.1em; height: 1.1em; color: var(--c); }
.ps-numar { font-size: 3.6rem; font-weight: 900; line-height: 1; letter-spacing: -.05em; text-align: center; }
.ps-info { display: flex; flex-direction: column; justify-content: center; gap: 6px; min-width: 0; }
.ps-eticheta { display: flex; align-items: center; flex-wrap: wrap; gap: .5em; font-size: .74rem; font-weight: 800; letter-spacing: .14em; color: var(--verde); }
:root[data-theme="dark"] .ps-eticheta { color: #4fc3a1; }
.ps-eticheta > .ic { width: 1.1em; height: 1.1em; }
.ps-sens { padding: .2em .7em; border-radius: 999px; font-size: .68rem; letter-spacing: .12em; background: var(--primar-pal); color: var(--primar); }
.ps-sens.retur { background: color-mix(in srgb, var(--rosu) 12%, var(--suprafata)); color: var(--rosu); }
.ps-sens.alt { background: color-mix(in srgb, var(--verde) 14%, var(--suprafata)); color: var(--verde); }
.ps-nume { margin: 0; font-size: clamp(1.7rem, 4.4vw, 2.7rem); font-weight: 900; letter-spacing: -.03em; line-height: 1.05; overflow-wrap: anywhere; }
.ps-nume::after { content: ""; display: block; width: 64px; height: 5px; border-radius: 4px; background: var(--primar); margin-top: 10px; }
.ps-spre { display: inline-flex; align-items: center; gap: .45em; color: var(--text-2); font-size: .95rem; flex-wrap: wrap; }
.ps-spre .ic { color: var(--c); }
.ps-spre strong { color: var(--text); }
.ps-progres { padding: 4px 30px 20px; }
.ps-linie { position: relative; height: 22px; margin: 0 6px; }
.ps-linie::before, .ps-linie::after { content: ""; position: absolute; left: 0; top: 50%; height: 4px; margin-top: -2px; border-radius: 4px; }
.ps-linie::before { right: 0; background: var(--linie); }
.ps-linie::after { width: var(--p); background: var(--c); }
.ps-punct { position: absolute; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--suprafata); border: 3px solid var(--linie); z-index: 1; transition: transform .2s var(--usor); }
.ps-punct.trecut { border-color: var(--c); background: var(--c); }
.ps-punct:hover { transform: scale(1.5); border-color: var(--c); }
.ps-punct.aici { width: 22px; height: 22px; margin: -11px 0 0 -11px; background: var(--primar); border: 4px solid var(--suprafata); box-shadow: 0 0 0 3px var(--c), 0 6px 14px -4px rgba(0, 0, 0, .35); animation: respira 2.4s ease-in-out infinite; }
.ps-capete { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; font-size: .76rem; color: var(--text-2); font-weight: 600; }
.ps-capete span { max-width: 34%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ps-capete span:last-child { text-align: right; }
.ps-capete strong { color: var(--text); }
.ps-subsol { display: flex; align-items: center; gap: 14px; padding: 12px 22px; border-radius: 0 0 26px 26px; background: linear-gradient(90deg, #06464a, #046566); color: rgba(255, 255, 255, .9); font-weight: 800; font-size: .78rem; letter-spacing: .08em; }
.ps-subsol img { width: 72px; }
.ps-subsol-dreapta { margin-left: auto; color: #9be7e8; }
.orar-card { border-radius: 0; }
@media (max-width: 640px) {
    .ps-corp { gap: 14px; padding: 16px; }
    .ps-nr { min-width: 96px; padding: 26px 10px 10px; border-radius: 16px; }
    .ps-numar { font-size: 2.6rem; }
    .ps-tip { font-size: .6rem; }
    .ps-progres { padding: 0 18px 16px; }
    .ps-subsol-dreapta { display: none; }
}

/* carduri de tip "item" cu poza (mijloace de transport, galerii din paginile vechi) */
.prose .row > .item { position: relative; display: flex; flex-direction: column; background: var(--suprafata); border: 1px solid var(--linie); border-radius: 22px; overflow: clip; box-shadow: var(--umbra); transition: transform .4s var(--usor), box-shadow .4s; }
.prose .row > .item:hover { transform: translateY(-5px); box-shadow: var(--umbra-mare); }
.prose .item figure { margin: 0; aspect-ratio: 16 / 10; background: var(--suprafata-2); overflow: hidden; }
.prose .item figure img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 1s var(--usor); }
.prose .item:hover figure img { transform: scale(1.05); }
.prose .item .post-category { margin: 18px 20px 0; font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--primar) !important; }
.prose .item .post-title { margin: 4px 20px 20px; font-size: 1.5rem; font-weight: 900; letter-spacing: -.02em; }
@media (min-width: 768px) { .prose .row > .item.col-md-5, .prose .row > .item.col-md-7 { flex: 0 0 calc(50% - 10px); } }
.prose figure { margin: 0; }

/* card in card (paginile vechi au uneori carduri imbricate): cel interior devine simplu continut */
.prose .card .card:not(.card-border-start) { padding: 0; border: 0; box-shadow: none; background: transparent; border-radius: 0; margin-bottom: 0; }
.prose .card .card:not(.card-border-start) + .card:not(.card-border-start) { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--linie); }

/* ---------- Buton efecte sezoniere (footer) ---------- */
.buton-teme { display: inline-flex; align-items: center; gap: .5em; padding: .55em 1em; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); color: inherit; font: inherit; font-weight: 600; cursor: pointer; transition: background .2s, border-color .2s, transform .2s; }
.buton-teme:hover { background: var(--primar); border-color: var(--primar); transform: translateY(-2px); }
.buton-teme .ic { color: #7fd6d6; }
.buton-teme[aria-pressed="false"] { opacity: .7; }
.buton-teme[aria-pressed="false"] .ic { color: inherit; }
.buton-teme small { font-weight: 500; opacity: .75; }
@media (max-width: 640px) {
    .hero-salut { font-size: .8rem; max-width: 100%; padding: .4em .85em .4em .7em; }
}

/* decorurile din hero apar DOAR pentru temele active (regulile lor de afisare de mai sus nu trebuie sa le suprascrie) */
:root:not([data-teme~="craciun"]) .decor-craciun,
:root:not([data-teme~="halloween"]) .decor-halloween,
:root:not([data-teme~="vara"]) .decor-vara,
:root:not([data-teme~="martisor"]) .decor-martisor,
[data-tema-principala=""] .decor-sezon { display: none !important; }
[data-teme~="craciun"] .ghirlanda.decor-craciun { display: flex; }
.subsol .txt-primar { color: #6fe0e1; }

/* ---- Ornamente care atarna pe cardurile de pe prima pagina (doua din patru) dupa tema principala ---- */
.actiune:nth-child(odd)::after { content: ""; position: absolute; top: 0; right: 72px; width: 32px; height: 81px; background: var(--atarna) no-repeat top / 100% 100%; transform-origin: top center; animation: legana 6s ease-in-out infinite; pointer-events: none; z-index: 2; display: none; }
.actiune:nth-child(3)::after { right: auto; left: 62%; animation-duration: 7.5s; animation-delay: -2s; }
[data-tema-principala="craciun"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V40' stroke='rgba(120,140,140,.55)' stroke-width='1'/%3E%3Crect x='12' y='39' width='6' height='5' rx='1' fill='%23e8c35a'/%3E%3Ccircle cx='15' cy='55' r='11' fill='%23c8102e'/%3E%3Cpath d='M5 53q10 5 20 0' stroke='%23f1d27a' stroke-width='1.6' fill='none'/%3E%3Ccircle cx='11' cy='50' r='2.6' fill='%23fff' opacity='.55'/%3E%3C/svg%3E"); }
[data-tema-principala="revelion"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V40' stroke='rgba(120,140,140,.55)' stroke-width='1'/%3E%3Cpath d='M15 40l3.2 6.6 7.2 1-5.2 5 1.3 7.2L15 56.4l-6.5 3.4 1.3-7.2-5.2-5 7.2-1z' fill='%23f5c542' stroke='%23fff3c0' stroke-width='.8'/%3E%3C/svg%3E"); }
[data-tema-principala="iarna"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V40' stroke='rgba(120,140,140,.55)' stroke-width='1'/%3E%3Cg stroke='%239fd8ee' stroke-width='1.8' stroke-linecap='round' fill='none'%3E%3Cpath d='M15 42v24M4.6 48l20.8 12M4.6 60l20.8-12'/%3E%3Cpath d='M11.5 43.5 15 46.5l3.5-3M11.5 64.5 15 61.5l3.5 3'/%3E%3C/g%3E%3C/svg%3E"); }
[data-tema-principala="halloween"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V46' stroke='rgba(210,210,220,.7)' stroke-width='.7'/%3E%3Cg stroke='%234a3d5c' stroke-width='1.3' fill='none' opacity='.95' stroke-linecap='round'%3E%3Cpath d='M12 49l-6-4-2 3M12 52H5l-2 3M12 55l-6 3-1 4M18 49l6-4 2 3M18 52h7l2 3M18 55l6 3 1 4'/%3E%3C/g%3E%3Cellipse cx='15' cy='53' rx='4.4' ry='5.6' fill='%234a3d5c'/%3E%3Ccircle cx='15' cy='46.5' r='3' fill='%234a3d5c'/%3E%3Ccircle cx='13.8' cy='46' r='.7' fill='%23ff7a1a'/%3E%3Ccircle cx='16.2' cy='46' r='.7' fill='%23ff7a1a'/%3E%3C/svg%3E"); }
[data-tema-principala="martisor"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V36' stroke='%23fff' stroke-width='2'/%3E%3Cpath d='M15 0V36' stroke='%23d62839' stroke-width='2' stroke-dasharray='3 3'/%3E%3Cpath d='M15 36c-7-6-10 3 0 0 7-6 10 3 0 0' fill='none' stroke='%23d62839' stroke-width='1.8'/%3E%3Cpath d='M15 36l-4 9M15 36l4 9' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M15 37q-1 9 1 14' stroke='%233a9a4a' stroke-width='1.2' fill='none'/%3E%3Cpath d='M16 51c-5 1-5 9 0 10 5-1 5-9 0-10z' fill='%23fff' stroke='%23cfe6d2' stroke-width='.6'/%3E%3Cpath d='M14.2 59.6q1.8 2.4 3.6 0' stroke='%233a9a4a' stroke-width='.9' fill='none'/%3E%3C/svg%3E"); }
[data-tema-principala="paste"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V40' stroke='rgba(120,140,140,.55)' stroke-width='1'/%3E%3Cpath d='M15 41c7 0 10 10 10 16s-4.5 11-10 11S5 63 5 57s3-16 10-16z' fill='%23d6304a'/%3E%3Cpath d='M5.6 53h18.8M5.4 60h19.2' stroke='%23f9d27a' stroke-width='1.6'/%3E%3Cpath d='M8 56.5l2.3-2 2.3 2 2.4-2 2.3 2 2.4-2 2.3 2' stroke='%23fff' stroke-width='1' fill='none'/%3E%3C/svg%3E"); }
[data-tema-principala="ziua_nationala"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V38' stroke='rgba(120,140,140,.55)' stroke-width='1'/%3E%3Cpath d='M11 50l-4 18 5-3 2 5 1-20zM19 50l4 18-5-3-2 5-1-20z' fill='%23ce1126'/%3E%3Ccircle cx='15' cy='48' r='10' fill='%23002b7f'/%3E%3Ccircle cx='15' cy='48' r='6.8' fill='%23fcd116'/%3E%3Ccircle cx='15' cy='48' r='3.6' fill='%23ce1126'/%3E%3C/svg%3E"); }
[data-tema-principala="toamna"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V40' stroke='rgba(120,140,140,.55)' stroke-width='1'/%3E%3Cpath d='M15 40c8 4 10 14 0 24-10-10-8-20 0-24z' fill='%23e0782a'/%3E%3Cpath d='M15 41v23M15 50l-4-3M15 55l4-3' stroke='%23a24a14' stroke-width='1' fill='none'/%3E%3C/svg%3E"); }
[data-tema-principala="primavara"] { --atarna: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 76'%3E%3Cpath d='M15 0V40' stroke='rgba(120,140,140,.55)' stroke-width='1'/%3E%3Cg fill='%23f7b6c9'%3E%3Ccircle cx='15' cy='44.5' r='5'/%3E%3Ccircle cx='20.7' cy='48.7' r='5'/%3E%3Ccircle cx='18.5' cy='55.3' r='5'/%3E%3Ccircle cx='11.5' cy='55.3' r='5'/%3E%3Ccircle cx='9.3' cy='48.7' r='5'/%3E%3C/g%3E%3Ccircle cx='15' cy='50.5' r='3' fill='%23f6c945'/%3E%3C/svg%3E"); }
:root[data-tema-principala]:not([data-tema-principala=""]):not([data-tema-principala="vara"]):not([data-tema-principala="copii"]) .actiune:nth-child(odd)::after { display: block; }
@media (max-width: 640px) { .actiune:nth-child(3)::after { display: none !important; } }
/* ---- Decoruri sezoniere pe autobuzul Solaris (in SVG, .bd) ---- */
.bd { display: none; }
[data-teme~="iarna"] .bd-zapada, [data-teme~="craciun"] .bd-zapada, [data-teme~="craciun"] .bd-craciun, [data-teme~="revelion"] .bd-revelion, [data-teme~="ziua_nationala"] .bd-steag,
[data-teme~="martisor"] .bd-martisor, [data-teme~="halloween"] .bd-halloween, [data-teme~="copii"] .bd-copii, [data-teme~="toamna"] .bd-frunze { display: inline; }
[data-tema-principala=""] .bd { display: none !important; }
.bd .bec { animation: clipeste 1.6s ease-in-out infinite; }
.bd-steag .flutura { transform-box: fill-box; transform-origin: right center; animation: flutura 1.4s ease-in-out infinite; }
@keyframes flutura { 0%, 100% { transform: skewY(0) scaleX(1); } 50% { transform: skewY(-4deg) scaleX(.94); } }
.bd-martisor, .bd-copii { transform-box: view-box; }
/* ---- Marginea drumului dupa tema (discret): zapada, frunze, flori, ghiocei, iarba ---- */
.drum-sezon { position: absolute; left: 0; right: 0; bottom: 7px; height: 16px; pointer-events: none; opacity: .5; -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.drum-sezon .ds { position: absolute; inset: 0; display: none; background-repeat: repeat-x; background-position: left bottom; }
.ds-zapada { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 10'%3E%3Cpath d='M18 10q4-4 9-3.4 4-1.6 8 1.2 3 .6 4 2.2z' fill='%23fff'/%3E%3Cpath d='M150 10q3-3 7-2.6 3-1 6 .9 2 .5 3 1.7z' fill='%23fff'/%3E%3Ccircle cx='96' cy='9' r='1.1' fill='%23fff'/%3E%3Ccircle cx='214' cy='9.2' r='.9' fill='%23fff'/%3E%3C/svg%3E"); background-size: 260px 10px; }
.ds-frunze { overflow: hidden; }
.ds-frunze b { position: absolute; bottom: 1px; left: var(--x); width: 9px; height: 9px; background: center / contain no-repeat; animation: frunza-vant var(--t) linear infinite; animation-delay: var(--d); }
.ds-frunze .fr1 { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-6 -6 12 12'%3E%3Cpath d='M0-5C4-4 5 1 0 5-5 1-4-4 0-5Z' fill='%23e0782a'/%3E%3Cpath d='M0-4.4V4.6' stroke='%23a24a14' stroke-width='.7'/%3E%3C/svg%3E"); }
.ds-frunze .fr2 { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-6 -6 12 12'%3E%3Cpath d='M0-5C4-4 5 1 0 5-5 1-4-4 0-5Z' fill='%23c4532a'/%3E%3Cpath d='M0-4.4V4.6' stroke='%237f2f14' stroke-width='.7'/%3E%3C/svg%3E"); width: 8px; height: 8px; }
.ds-frunze .fr3 { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-6 -6 12 12'%3E%3Cpath d='M0-5C4-4 5 1 0 5-5 1-4-4 0-5Z' fill='%23f0b13a'/%3E%3Cpath d='M0-4.4V4.6' stroke='%23a8731a' stroke-width='.7'/%3E%3C/svg%3E"); width: 10px; height: 10px; }
/* frunza sta pe drum, e luata de vant, se rostogoleste putin si se aseaza din nou */
@keyframes frunza-vant {
    0%, 12% { transform: translateX(0) rotate(0); opacity: 0; }
    18% { opacity: 1; }
    40% { transform: translateX(7vw) translateY(-4px) rotate(200deg); }
    55%, 78% { transform: translateX(12vw) translateY(0) rotate(330deg); opacity: 1; }
    90%, 100% { transform: translateX(14vw) rotate(360deg); opacity: 0; }
}
.ds-flori { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 16'%3E%3Cg stroke='%234f9e55' stroke-width='1.2' fill='none'%3E%3Cpath d='M10 16v-7M12 16q1-4 4-6M44 16v-8M80 16v-6M78 16q-1-4-4-5M112 16v-8'/%3E%3C/g%3E%3Cg%3E%3Ccircle cx='10' cy='7' r='2.6' fill='%23f7b6c9'/%3E%3Ccircle cx='44' cy='6' r='2.6' fill='%23fff'/%3E%3Ccircle cx='80' cy='8' r='2.6' fill='%23f6c945'/%3E%3Ccircle cx='112' cy='6' r='2.6' fill='%23c9a7f0'/%3E%3C/g%3E%3Cg fill='%23f6c945'%3E%3Ccircle cx='10' cy='7' r='.9'/%3E%3Ccircle cx='44' cy='6' r='.9'/%3E%3Ccircle cx='112' cy='6' r='.9'/%3E%3C/g%3E%3C/svg%3E"); background-size: 130px 16px; }
.ds-ghiocei { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 18'%3E%3Cg transform='translate(12 4) scale(1)'%3E%3Cpath d='M0 14V5Q0 0 4.5 1' stroke='%234f9e55' stroke-width='1.1' fill='none'/%3E%3Cpath d='M-.6 14Q-3 9 -2.4 5' stroke='%235fae5a' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='4.6' cy='1.7' r='1' fill='%234f9e55'/%3E%3Cpath d='M4.6 2.4C2.4 2.8 2 6.2 3 7.8Q4.6 6.8 6.2 7.8C7.2 6.2 6.8 2.8 4.6 2.4Z' fill='%23fff'/%3E%3C/g%3E%3Cg transform='translate(58 3) scale(1.1)'%3E%3Cpath d='M0 14V5Q0 0 4.5 1' stroke='%234f9e55' stroke-width='1.1' fill='none'/%3E%3Cpath d='M-.6 14Q-3 9 -2.4 5' stroke='%235fae5a' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='4.6' cy='1.7' r='1' fill='%234f9e55'/%3E%3Cpath d='M4.6 2.4C2.4 2.8 2 6.2 3 7.8Q4.6 6.8 6.2 7.8C7.2 6.2 6.8 2.8 4.6 2.4Z' fill='%23fff'/%3E%3C/g%3E%3Cg transform='translate(64 6) scale(0.8)'%3E%3Cpath d='M0 14V5Q0 0 4.5 1' stroke='%234f9e55' stroke-width='1.1' fill='none'/%3E%3Cpath d='M-.6 14Q-3 9 -2.4 5' stroke='%235fae5a' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='4.6' cy='1.7' r='1' fill='%234f9e55'/%3E%3Cpath d='M4.6 2.4C2.4 2.8 2 6.2 3 7.8Q4.6 6.8 6.2 7.8C7.2 6.2 6.8 2.8 4.6 2.4Z' fill='%23fff'/%3E%3C/g%3E%3Cg transform='translate(100 4) scale(1)'%3E%3Cpath d='M0 14V5Q0 0 4.5 1' stroke='%234f9e55' stroke-width='1.1' fill='none'/%3E%3Cpath d='M-.6 14Q-3 9 -2.4 5' stroke='%235fae5a' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='4.6' cy='1.7' r='1' fill='%234f9e55'/%3E%3Cpath d='M4.6 2.4C2.4 2.8 2 6.2 3 7.8Q4.6 6.8 6.2 7.8C7.2 6.2 6.8 2.8 4.6 2.4Z' fill='%23fff'/%3E%3C/g%3E%3C/svg%3E"); background-size: 120px 18px; height: 18px; top: -2px; }
.ds-iarba { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 12'%3E%3Cg stroke='%235fae5a' stroke-width='1.1' fill='none' stroke-linecap='round'%3E%3Cpath d='M8 12q0-5-2-8M10 12q1-5 4-7M12 12q0-4 0-6M50 12q-1-5-3-7M52 12q1-6 4-8M54 12q0-3 1-5'/%3E%3C/g%3E%3C/svg%3E"); background-size: 90px 12px; }
[data-teme~="iarna"] .ds-zapada, [data-teme~="craciun"] .ds-zapada, [data-teme~="toamna"] .ds-frunze, [data-teme~="halloween"] .ds-frunze,
[data-teme~="primavara"] .ds-flori, [data-teme~="paste"] .ds-flori, [data-teme~="martisor"] .ds-ghiocei, [data-teme~="vara"] .ds-iarba, [data-teme~="copii"] .ds-iarba { display: block; }
[data-teme~="iarna"] .drum-sezon, [data-teme~="craciun"] .drum-sezon { opacity: .6; }
[data-tema-principala=""] .drum-sezon { display: none; }
.subsol .drum-sezon { bottom: 11px; opacity: .3; }

/* Pagini cu text juridic lung (terms): cuprins lipicios + text aerisit; culorile vin din variabile, deci merg si pe light si pe dark */
.legal { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 28px; align-items: start; max-width: 1180px; }
.legal-cuprins { position: sticky; top: calc(var(--antet-h) + 20px); max-height: calc(100vh - var(--antet-h) - 40px); overflow-y: auto; padding: 20px 14px; font-size: .88rem; }
.legal-cuprins > strong { display: block; padding: 0 10px 8px; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.legal-cuprins a { display: block; padding: 6px 10px; border-radius: 10px; color: var(--text-2); line-height: 1.35; }
.legal-cuprins a:hover { background: var(--primar-pal); color: var(--primar); }
.legal-cuprins .legal-cap { margin-top: 8px; font-weight: 700; color: var(--text); }
.legal-cuprins ol { list-style: none; margin: 0 0 6px; padding: 0 0 0 10px; border-left: 2px solid var(--linie); margin-left: 10px; }
.legal-text { padding: 44px 52px; }
.legal-text h2 { padding-bottom: .45em; border-bottom: 2px solid var(--linie); }
.legal-text h2:not(:first-child) { margin-top: 56px; }
.legal-text h3 { color: var(--primar); font-size: 1.2rem; margin-top: 34px; }
.legal-text h4 { color: var(--text); font-size: 1rem; }
.legal-text h2, .legal-text h3 { scroll-margin-top: calc(var(--antet-h) + 20px); }
.legal-text .legal-litere { list-style: lower-alpha; }
.legal-nota { margin: 0 0 1em; padding: 16px 20px; border-left: 4px solid var(--primar); border-radius: var(--raza-mica); background: var(--primar-pal); }
.legal-nota > *:last-child { margin-bottom: 0; }
@media (max-width: 960px) {
    .legal { grid-template-columns: 1fr; }
    .legal-cuprins { position: static; max-height: none; }
    .legal-text { padding: 26px 20px; }
}
