/* ══════════════════════════════════════════════════════════════════════
   AD Logis Consult — variantă modernă (demo)
   Sistem de design: ui-ux-pro-max
     · produs  → „B2B Service": Trust & Authority + Minimal
     · culoare → „Legal Services": navy autoritate + accent cald
                  (primarul adus pe bleumarinul de brand #0B4F87)
     · font    → „Corporate Trust": Lexend (titluri) + Source Sans 3 (text)
     · mișcare → Scroll Reveal Standard + Parallax Subtle
   Toate rapoartele de contrast din comentarii sunt CALCULATE (WCAG), nu estimate.
   ══════════════════════════════════════════════════════════════════════ */

:root {
  /* Brand */
  --navy:#0B4F87;          /* bleumarinul site-ului actual */
  --navy-deep:#08395F;
  --navy-ink:#062940;
  --accent:#B45309;        /* chihlimbar — 4.87:1 pe alb */
  --accent-soft:#FDF3E7;

  /* Suprafețe (temă luminoasă) */
  --bg:#FFFFFF;
  --bg-alt:#F5F8FB;
  --card:#FFFFFF;
  --fg:#0F1E2B;            /* 16.1:1 pe alb */
  --fg-muted:#4A5C6E;      /* 7.2:1  pe alb */
  --border:#DBE4EC;
  --border-strong:#748AA0; /* 3.57:1 pe alb, 3.35:1 pe --bg-alt — praguri UI */
  --ring:var(--navy);

  /* Tokeni „pe fundal colorat". Există ca să NU trebuiască să dublez fiecare
     regulă pentru cele două feluri de temă întunecată (data-theme + media
     query). Se inversează o singură dată, în blocurile de temă. */
  --on-navy:#FFFFFF;       /* text pe --navy */
  --on-accent:#FFFFFF;     /* text pe --accent */
  --panel:#0B4F87;         /* benzi pline: citat, bandă CTA */
  --panel-fg:#FFFFFF;
  --panel-border:transparent;
  --footer-bg:#062940;
  --footer-fg:#C8D6E2;     /* 10.1:1 */
  --footer-head:#FFFFFF;
  --footer-rule:rgb(255 255 255 / .14);
  --err:#B91C1C;           /* 6.5:1 pe alb */
  --logo:#B00000;          /* rosul original, 7.38:1 pe alb */
  --logo-footer:#FF8172;   /* pe subsolul bleumarin */

  /* Ritm */
  --sp-1:.5rem;  --sp-2:1rem;   --sp-3:1.5rem;  --sp-4:2rem;
  --sp-5:2.5rem; --sp-6:3.5rem; --sp-8:5rem;    --sp-10:7rem;
  --radius:14px; --radius-sm:8px;
  --shadow-sm:0 1px 2px rgb(6 41 64 / .06), 0 1px 3px rgb(6 41 64 / .08);
  --shadow:0 4px 12px -4px rgb(6 41 64 / .12), 0 16px 40px -24px rgb(6 41 64 / .35);
  --shadow-lg:0 8px 24px -8px rgb(6 41 64 / .18), 0 32px 64px -32px rgb(6 41 64 / .4);

  --ease:cubic-bezier(.22,.61,.36,1);      /* ≈ power2.out */
  --ease-soft:cubic-bezier(.25,.46,.45,.94);
  --maxw:74rem;

  color-scheme: light;
}

/* Tema întunecată */
:root[data-theme="dark"] {
  --navy:#5BA3DB;          /* 6.5:1 pe #0C1620 */
  --navy-deep:#8CC3EE;
  --navy-ink:#E8F2FA;
  --accent:#F0A868;        /* 8.9:1 pe #0C1620 */
  --accent-soft:#1E2A38;
  --bg:#0C1620;
  --bg-alt:#111F2C;
  --card:#132434;
  --fg:#EAF2F8;
  --fg-muted:#A9BECF;      /* 8.4:1 pe #0C1620 */
  --border:#25394C;
  --border-strong:#54728C;
  --ring:#5BA3DB;
  --on-navy:#06121C; --on-accent:#2A1602;
  --panel:#132434; --panel-fg:#EAF2F8; --panel-border:#25394C;
  --footer-bg:#081119; --footer-fg:#A9BECF; --footer-head:#EAF2F8;
  --footer-rule:#25394C; --err:#FCA5A5;
  --logo:#FF8172;          /* acelasi rosu, deschis pentru fundal inchis: 7.5:1 */
  --logo-footer:#FF8172;
  --shadow-sm:0 1px 2px rgb(0 0 0 / .4);
  --shadow:0 4px 12px -4px rgb(0 0 0 / .5), 0 16px 40px -24px rgb(0 0 0 / .7);
  --shadow-lg:0 8px 24px -8px rgb(0 0 0 / .55), 0 32px 64px -32px rgb(0 0 0 / .8);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --navy:#5BA3DB; --navy-deep:#8CC3EE; --navy-ink:#E8F2FA;
    --accent:#F0A868; --accent-soft:#1E2A38;
    --bg:#0C1620; --bg-alt:#111F2C; --card:#132434;
    --fg:#EAF2F8; --fg-muted:#A9BECF;
    --border:#25394C; --border-strong:#54728C; --ring:#5BA3DB;
    --on-navy:#06121C; --on-accent:#2A1602;
    --panel:#132434; --panel-fg:#EAF2F8; --panel-border:#25394C;
    --footer-bg:#081119; --footer-fg:#A9BECF; --footer-head:#EAF2F8;
    --footer-rule:#25394C; --err:#FCA5A5;
    --logo:#FF8172; --logo-footer:#FF8172;
    --shadow-sm:0 1px 2px rgb(0 0 0 / .4);
    --shadow:0 4px 12px -4px rgb(0 0 0 / .5), 0 16px 40px -24px rgb(0 0 0 / .7);
    --shadow-lg:0 8px 24px -8px rgb(0 0 0 / .55), 0 32px 64px -32px rgb(0 0 0 / .8);
    color-scheme: dark;
  }
}

/* ── Bază ─────────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; background:var(--bg); color:var(--fg);
  font:400 1rem/1.65 "Source Sans 3", system-ui, sans-serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4 { font-family:Lexend, system-ui, sans-serif; line-height:1.18;
              letter-spacing:-.02em; margin:0 0 var(--sp-2); font-weight:600; }
h1 { font-size:clamp(2.1rem, 3.6vw + .9rem, 3.6rem); font-weight:700; letter-spacing:-.03em; }
h2 { font-size:clamp(1.6rem, 1.8vw + .9rem, 2.35rem); }
h3 { font-size:1.15rem; }
p  { margin:0 0 var(--sp-2); }
img { max-width:100%; height:auto; display:block; }
a  { color:var(--navy); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--navy-deep); }
ul { margin:0; padding:0; list-style:none; }
:focus-visible { outline:3px solid var(--ring); outline-offset:3px; border-radius:6px; }

.wrap { width:min(var(--maxw), 100% - 2.5rem); margin-inline:auto; }
.narrow { max-width:62ch; }
.center { text-align:center; margin-inline:auto; }

.skip { position:absolute; left:-9999px; top:.75rem; z-index:100;
        background:var(--navy); color:#fff; padding:.85rem 1.2rem;
        border-radius:var(--radius-sm); font-weight:600; }
.skip:focus { left:1rem; }

.eyebrow { font-family:Lexend,sans-serif; font-size:.75rem; font-weight:600;
           letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
           margin:0 0 .6rem; }
.lead { font-size:1.125rem; color:var(--fg-muted); }
.muted { color:var(--fg-muted); }

/* ── Antet ────────────────────────────────────────────────────────── */
.hdr {
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:blur(10px) saturate(1.4);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease),
             background-color .25s var(--ease);
}
.hdr.scrolled { border-bottom-color:var(--border); box-shadow:var(--shadow-sm); }
.hdr-in { display:flex; align-items:center; gap:var(--sp-3);
          padding-block:.85rem; transition:padding .25s var(--ease); }
.hdr.scrolled .hdr-in { padding-block:.55rem; }
.logo { display:flex; align-items:center; gap:.7rem; text-decoration:none;
        color:inherit; flex:0 0 auto; min-height:44px; }
/* Logo-ul e un SVG trasat din PNG-ul original (potrace) — aceleasi linii,
   dar culoarea vine din CSS. Rosul #B00000 are 2.47:1 pe fundal intunecat,
   adica sub pragul de 3:1 pentru elemente grafice; pe tema intunecata se
   foloseste acelasi rosu deschis la #FF8172 (7.5:1), nu alta culoare. */
.logo-mark {
  display:block; width:104px; height:34px; flex:0 0 auto;
  background-color:var(--logo);
  -webkit-mask:url(../assets/logo.svg) no-repeat center / contain;
          mask:url(../assets/logo.svg) no-repeat center / contain;
  transition:height .25s var(--ease), width .25s var(--ease);
}
.hdr.scrolled .logo-mark { height:29px; width:89px; }
.logo-txt { display:none; font-family:Lexend,sans-serif; font-weight:600;
            font-size:.82rem; line-height:1.2; color:var(--fg-muted); }
@media (min-width:1040px) { .logo-txt { display:block; } }

.nav { display:none; margin-left:auto; }
.nav ul { display:flex; align-items:center; gap:.25rem; }
.nav a { display:block; padding:.6rem .8rem; border-radius:var(--radius-sm);
         font-size:.95rem; font-weight:500; color:var(--fg); text-decoration:none;
         transition:background-color .18s var(--ease), color .18s var(--ease); }
.nav a:hover { background:var(--bg-alt); color:var(--navy); }
.nav a.active { color:var(--navy); font-weight:600; }
@media (min-width:940px) { .nav { display:block; } }

.hdr-cta { display:none; margin-left:auto; gap:.6rem; align-items:center; }
@media (min-width:940px) { .hdr-cta { display:flex; margin-left:var(--sp-2); } }

.burger { margin-left:auto; display:inline-flex; align-items:center;
          justify-content:center; width:46px; height:46px; border-radius:var(--radius-sm);
          background:transparent; border:1px solid var(--border); color:var(--fg);
          cursor:pointer; }
@media (min-width:940px) { .burger { display:none; } }
.burger span { display:block; width:20px; height:2px; background:currentColor;
               position:relative; transition:background-color .2s var(--ease); }
.burger span::before, .burger span::after {
  content:""; position:absolute; left:0; width:20px; height:2px;
  background:currentColor; transition:transform .25s var(--ease); }
.burger span::before { top:-6px; } .burger span::after { top:6px; }
.burger[aria-expanded="true"] span { background:transparent; }
.burger[aria-expanded="true"] span::before { transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span::after  { transform:translateY(-6px) rotate(-45deg); }

.mobile-nav { display:none; border-top:1px solid var(--border); background:var(--bg); }
.mobile-nav.open { display:block; }
.mobile-nav a { display:block; padding:.9rem .25rem; font-size:1.05rem;
                font-weight:500; color:var(--fg); text-decoration:none;
                border-bottom:1px solid var(--border); }
.mobile-nav .btn { margin:var(--sp-2) 0; width:100%; }

.theme-btn { display:inline-flex; align-items:center; justify-content:center;
             width:44px; height:44px; border-radius:var(--radius-sm);
             border:1px solid var(--border); background:transparent;
             color:var(--fg); cursor:pointer;
             transition:background-color .18s var(--ease); }
.theme-btn:hover { background:var(--bg-alt); }
.theme-btn svg { width:19px; height:19px; }
.icon-sun { display:none; } .icon-moon { display:block; }
:root[data-theme="dark"] .icon-sun { display:block; }
:root[data-theme="dark"] .icon-moon { display:none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .icon-sun { display:block; }
  :root:not([data-theme]) .icon-moon { display:none; }
}
:root[data-theme="light"] .icon-sun { display:none; }
:root[data-theme="light"] .icon-moon { display:block; }

/* ── Butoane ──────────────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:48px; padding:.8rem 1.4rem; border-radius:var(--radius-sm);
  font:600 1rem/1 Lexend, sans-serif; text-decoration:none; cursor:pointer;
  border:1px solid transparent; white-space:nowrap;
  transition:transform .16s var(--ease), box-shadow .2s var(--ease),
             background-color .2s var(--ease), color .2s var(--ease);
}
.btn svg { width:18px; height:18px; flex:0 0 auto; }
.btn-primary { background:var(--navy); color:var(--on-navy); box-shadow:var(--shadow-sm); }

.btn-primary:hover { background:var(--navy-deep); box-shadow:var(--shadow);
                     transform:translateY(-2px); }
.btn-ghost { background:transparent; color:var(--fg); border-color:var(--border-strong); }
.btn-ghost:hover { background:var(--bg-alt); border-color:var(--navy); color:var(--navy);
                   transform:translateY(-2px); }
.btn-accent { background:var(--accent); color:var(--on-accent); }
.btn:active { transform:translateY(0); }
.btn-lg { min-height:54px; padding:.95rem 1.7rem; font-size:1.05rem; }

/* ── Erou ─────────────────────────────────────────────────────────────
   Bannerele de brand au fundal verde, care se bate cap în cap cu
   bleumarinul firmei. Soluția: panou bleumarin, imaginea dedesubt la
   opacitate mică și în luminanță — păstrează fotografia, dar culoarea
   dominantă rămâne a brandului. Textul e alb: 8.46:1 pe #0B4F87. */
.hero { position:relative; overflow:hidden; padding-block:var(--sp-8) var(--sp-6);
        background:linear-gradient(155deg, #0B4F87 0%, #08395F 55%, #062940 100%);
        color:#fff; }
:root[data-theme="dark"] .hero { background:linear-gradient(155deg,
        #10293D 0%, #0C1D2C 55%, #081521 100%); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .hero { background:linear-gradient(155deg,
        #10293D 0%, #0C1D2C 55%, #081521 100%); }
}
.hero-bg { position:absolute; inset:-12% 0 -12% 0; z-index:0;
           opacity:.3; mix-blend-mode:luminosity; }
.hero-bg img { width:100%; height:100%; object-fit:cover; object-position:center 45%;
               will-change:transform; }
.hero-bg::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgb(6 41 64 / .75) 0%, rgb(6 41 64 / .45) 55%,
             rgb(6 41 64 / .15) 100%);
}
.hero-in { position:relative; z-index:1; max-width:44rem; }
.hero h1 { margin-bottom:var(--sp-3); }
.hero h1 .hl { position:relative; white-space:nowrap; }
.hero h1 .hl::after {
  content:""; position:absolute; left:0; right:0; bottom:.08em; height:.34em;
  background:color-mix(in srgb, var(--accent) 26%, transparent);
  border-radius:3px; z-index:-1; transform-origin:left center;
  transform:scaleX(var(--hl,0)); transition:transform .7s .35s var(--ease);
}
.hero.in h1 .hl::after { --hl:1; }
.hero .lead { font-size:1.19rem; max-width:40rem; }
.hero-cta { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:var(--sp-4); }

.trust { display:flex; flex-wrap:wrap; gap:var(--sp-2) var(--sp-5);
         margin-top:var(--sp-6); padding-top:var(--sp-4);
         border-top:1px solid var(--border); }
.trust-item { display:flex; align-items:flex-start; gap:.65rem; }
.trust-item svg { width:20px; height:20px; color:var(--accent); flex:0 0 auto;
                  margin-top:.18rem; }
.trust-item b { display:block; font-family:Lexend,sans-serif; font-size:.95rem;
                font-weight:600; }
.trust-item span { font-size:.85rem; color:var(--fg-muted); }

/* ── Erou: suprascrieri pe fundal bleumarin ───────────────────────────
   Trebuie să vină DUPĂ regulile de bază de mai sus: la specificitate egală
   câștigă ultima. Prima variantă le pusese înainte și pierdeau tăcut —
   butonul principal ieșea alb pe alb, iar titlurile din bara de încredere
   moșteneau griul de pe fundal deschis. */
.hero .eyebrow { color:#F0A868; }
.hero .lead { color:rgb(255 255 255 / .88); }
.hero h1 .hl::after { background:rgb(240 168 104 / .48); }
.hero .trust { border-top-color:rgb(255 255 255 / .22); }
.hero .trust-item svg { color:#F0A868; }
.hero .trust-item b { color:#fff; }
.hero .trust-item span { color:rgb(255 255 255 / .8); }
.hero .btn-primary { background:#fff; color:#08395F; }
.hero .btn-primary:hover { background:#E4EEF6; color:#062940; }
.hero .btn-ghost { color:#fff; border-color:rgb(255 255 255 / .5); }
.hero .btn-ghost:hover { background:rgb(255 255 255 / .14); color:#fff; border-color:#fff; }
/* Caseta de precizare din eroul paginii Biroul Vamal: fundal deschis peste
   panoul bleumarin, deci textul revine la culoarea normală. */
.hero .hero-note { margin-top:var(--sp-3); padding:.9rem 1.1rem; max-width:44rem;
  font-size:.95rem; color:var(--fg); background:var(--card);
  border:1px solid var(--border); border-radius:var(--radius-sm); }

/* ── Secțiuni ─────────────────────────────────────────────────────── */
section { padding-block:var(--sp-8); }
.sec-alt { background:var(--bg-alt); }
.sec-head { max-width:44rem; margin-bottom:var(--sp-5); }
.sec-head.center { text-align:center; }

/* ── Cifre ────────────────────────────────────────────────────────── */
.stats { display:grid; gap:var(--sp-2);
         grid-template-columns:repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.stat { padding:var(--sp-3); background:var(--card); border:1px solid var(--border);
        border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.stat b { display:block; font-family:Lexend,sans-serif; font-size:2.4rem;
          font-weight:700; line-height:1; color:var(--navy);
          letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.stat span { display:block; margin-top:.5rem; font-size:.92rem; color:var(--fg-muted); }

/* ── Servicii (acordeon) ──────────────────────────────────────────── */
.srv { border:1px solid var(--border); border-radius:var(--radius);
       background:var(--card); overflow:hidden; box-shadow:var(--shadow-sm); }
.srv + .srv { margin-top:.7rem; }
.srv-btn { width:100%; display:flex; align-items:center; gap:var(--sp-2);
           padding:1.15rem var(--sp-3); background:transparent; border:0;
           font:600 1.08rem/1.3 Lexend,sans-serif; color:var(--fg);
           text-align:left; cursor:pointer; min-height:56px;
           transition:background-color .18s var(--ease); }
.srv-btn:hover { background:var(--bg-alt); }
.srv-ico { flex:0 0 auto; width:42px; height:42px; border-radius:10px;
           display:grid; place-items:center; background:var(--accent-soft);
           color:var(--accent); transition:transform .3s var(--ease); }
.srv-ico svg { width:21px; height:21px; }
.srv[open] .srv-ico, .srv.open .srv-ico { transform:scale(1.08) rotate(-4deg); }
.srv-chev { margin-left:auto; width:20px; height:20px; color:var(--fg-muted);
            transition:transform .3s var(--ease); flex:0 0 auto; }
.srv.open .srv-chev { transform:rotate(180deg); }
.srv-body { display:grid; grid-template-rows:0fr;
            transition:grid-template-rows .35s var(--ease); }
.srv.open .srv-body { grid-template-rows:1fr; }
.srv-body > div { overflow:hidden; }
.srv-body p { padding-inline:var(--sp-3); color:var(--fg-muted); max-width:62ch; }
.srv-body p:first-child { padding-top:.25rem; }
.srv-body p:last-child { padding-bottom:var(--sp-3); margin-bottom:0; }

/* ── Proces ───────────────────────────────────────────────────────── */
.flow { position:relative; display:grid; gap:var(--sp-3);
        grid-template-columns:repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.flow-line { position:absolute; top:27px; left:0; right:0; height:2px; z-index:0;
             display:none; }
@media (min-width:900px) { .flow-line { display:block; } }
.flow-line svg { width:100%; height:2px; overflow:visible; }
.flow-line path { stroke:var(--border-strong); stroke-width:2; stroke-dasharray:6 7;
                  fill:none; }
.flow-line .prog { stroke:var(--accent); stroke-dasharray:none;
                   stroke-dashoffset:var(--dash,1000); }
.step { position:relative; z-index:1; }
.step-n { width:54px; height:54px; border-radius:50%; display:grid; place-items:center;
          background:var(--card); border:2px solid var(--border);
          font:700 1.15rem/1 Lexend,sans-serif; color:var(--navy);
          margin-bottom:var(--sp-2); transition:border-color .4s var(--ease),
          background-color .4s var(--ease), color .4s var(--ease); }
.step.on .step-n { border-color:var(--accent); background:var(--accent); color:var(--on-accent); }
.step h3 { margin-bottom:.35rem; font-size:1.05rem; }
.step p { font-size:.94rem; color:var(--fg-muted); margin:0; }

/* ── Carduri ──────────────────────────────────────────────────────── */
.cards { display:grid; gap:var(--sp-2);
         grid-template-columns:repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.card { background:var(--card); border:1px solid var(--border);
        border-radius:var(--radius); padding:var(--sp-3); box-shadow:var(--shadow-sm);
        transition:transform .25s var(--ease), box-shadow .25s var(--ease),
                   border-color .25s var(--ease); }
.card-link:hover { transform:translateY(-4px); box-shadow:var(--shadow);
                   border-color:var(--navy); }
.card h3 { display:flex; align-items:center; gap:.6rem; }
.card h3 svg { width:20px; height:20px; color:var(--accent); flex:0 0 auto; }
.card p { color:var(--fg-muted); font-size:.95rem; margin-bottom:0; }
.card-link { display:block; text-decoration:none; color:inherit; }
.card-more { display:inline-flex; align-items:center; gap:.35rem;
             margin-top:var(--sp-2); font-family:Lexend,sans-serif; font-weight:600;
             font-size:.92rem; color:var(--navy); }
.card-more svg { width:16px; height:16px; transition:transform .25s var(--ease); }
.card-link:hover .card-more svg { transform:translateX(4px); }

/* ── Echipă ───────────────────────────────────────────────────────── */
.team { display:grid; gap:var(--sp-2);
        grid-template-columns:repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.member { background:var(--card); border:1px solid var(--border);
          border-radius:var(--radius); padding:var(--sp-3); box-shadow:var(--shadow-sm); }
.member .ini { width:52px; height:52px; border-radius:50%; display:grid;
               place-items:center; background:var(--navy); color:var(--on-navy);
               font:600 1.1rem/1 Lexend,sans-serif; margin-bottom:var(--sp-2); }
.member h3 { margin-bottom:.15rem; font-size:1.05rem; }
.member .role { font-size:.88rem; color:var(--accent); font-weight:600;
                font-family:Lexend,sans-serif; margin-bottom:.7rem; }
.member a { display:flex; align-items:center; gap:.5rem; font-size:.93rem;
            color:var(--fg-muted); text-decoration:none; min-height:44px; }
.member a:hover { color:var(--navy); }
.member a svg { width:15px; height:15px; flex:0 0 auto; }

/* ── Bandă citat ──────────────────────────────────────────────────── */
.quote { background:var(--panel); color:var(--panel-fg); border-radius:var(--radius);
         border:1px solid var(--panel-border);
         padding:var(--sp-5) var(--sp-4); position:relative; overflow:hidden; }
.quote::before { content:"”"; position:absolute; top:-2.2rem; right:1.5rem;
                 font:700 12rem/1 Lexend,serif; opacity:.09; }
.quote p { font-family:Lexend,sans-serif; font-size:clamp(1.15rem,1.4vw + .8rem,1.6rem);
           line-height:1.45; font-weight:500; max-width:46rem; margin-bottom:var(--sp-2); }
.quote cite { font-style:normal; font-size:.95rem; opacity:.85; }

/* ── Resurse ──────────────────────────────────────────────────────── */
.links { display:grid; gap:.5rem;
         grid-template-columns:repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.links a { display:flex; align-items:center; gap:.6rem; padding:.8rem 1rem;
           background:var(--card); border:1px solid var(--border);
           border-radius:var(--radius-sm); text-decoration:none; color:var(--fg);
           font-size:.95rem; min-height:48px;
           transition:border-color .2s var(--ease), transform .2s var(--ease); }
.links a:hover { border-color:var(--navy); transform:translateX(3px); }
.links svg { width:15px; height:15px; color:var(--fg-muted); flex:0 0 auto;
             margin-left:auto; }

/* ── Contact ──────────────────────────────────────────────────────── */
.contact-grid { display:grid; gap:var(--sp-4); align-items:start; }
@media (min-width:900px) { .contact-grid { grid-template-columns:1.05fr .95fr; gap:var(--sp-6); } }

.field { margin-bottom:var(--sp-2); }
.field label { display:block; font-family:Lexend,sans-serif; font-weight:500;
               font-size:.9rem; margin-bottom:.35rem; }
.field .req { color:var(--accent); }
.field input, .field select, .field textarea {
  width:100%; padding:.75rem .9rem; min-height:48px;
  font:400 1rem/1.5 "Source Sans 3", sans-serif; color:var(--fg);
  background:var(--card); border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.field textarea { min-height:130px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline:none; border-color:var(--navy);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--navy) 22%, transparent);
}
.field .hint { display:block; margin-top:.3rem; font-size:.82rem; color:var(--fg-muted); }
.field .err { display:none; margin-top:.35rem; font-size:.85rem; color:var(--err);
              font-weight:600; }
.field.invalid .err { display:block; }
.field.invalid input, .field.invalid textarea { border-color:var(--err); }
.check { display:flex; align-items:flex-start; gap:.65rem; margin-bottom:var(--sp-3); }
.check { padding-block:.35rem; }
.check input { width:24px; height:24px; min-height:0; flex:0 0 auto; margin-top:.1rem;
               accent-color:var(--navy); cursor:pointer; }
.check label { cursor:pointer; padding-block:.5rem; }
.check label { font-size:.92rem; color:var(--fg-muted); font-family:inherit;
               font-weight:400; margin:0; }
.form-note { display:none; margin-top:var(--sp-2); padding:.9rem 1.1rem;
             border-radius:var(--radius-sm); background:var(--accent-soft);
             border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
             font-size:.93rem; }
.form-note.show { display:block; }


/* Momeala anti-spam: scoasa din pagina, dar nu ascunsa cu display:none —
   unele completari automate ignora campurile complet ascunse. */
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-note.eroare { background:color-mix(in srgb, var(--err) 12%, transparent);
                    border-color:var(--err); }

.info { background:var(--card); border:1px solid var(--border);
        border-radius:var(--radius); padding:var(--sp-3); box-shadow:var(--shadow-sm); }
.info h3 { margin-bottom:var(--sp-2); }
.info-row { display:flex; gap:.8rem; padding-block:.7rem;
            border-bottom:1px solid var(--border); }
.info-row:last-of-type { border-bottom:0; }
.info-row svg { width:19px; height:19px; color:var(--accent); flex:0 0 auto;
                margin-top:.2rem; }
.info-row b { display:block; font-family:Lexend,sans-serif; font-size:.88rem;
              font-weight:600; margin-bottom:.1rem; }
.info-row a, .info-row span { color:var(--fg-muted); text-decoration:none;
                              font-size:.95rem; }
.info-row a { display:inline-flex; align-items:center; min-height:32px; }
.info-row a:hover { color:var(--navy); }
/* Harta se încarcă leneș (e sub linia de plutire). Fundalul de așteptare face
   ca zona să nu arate niciodată ca un dreptunghi spart, nici în capturi. */
.map { margin-top:var(--sp-2); border-radius:var(--radius-sm); overflow:hidden;
       border:1px solid var(--border); position:relative; background:var(--bg-alt);
       background-image:
         repeating-linear-gradient(0deg, transparent 0 22px,
           color-mix(in srgb, var(--border) 60%, transparent) 22px 23px),
         repeating-linear-gradient(90deg, transparent 0 22px,
           color-mix(in srgb, var(--border) 60%, transparent) 22px 23px);
       min-height:230px; display:grid; place-items:center; }
.map::before { content:"Se încarcă harta…"; color:var(--fg-muted); font-size:.9rem;
               grid-area:1/1; }
.map iframe { grid-area:1/1; display:block; width:100%; height:230px; border:0;
              filter:saturate(.92); background:var(--bg-alt); }
.map-link { display:inline-flex; align-items:center; gap:.4rem; margin-top:.7rem;
            font-family:Lexend,sans-serif; font-weight:600; font-size:.9rem;
            color:var(--navy); text-decoration:none; }
.map-link svg { width:15px; height:15px; }

/* ── Bandă CTA ────────────────────────────────────────────────────── */
.cta-band { background:var(--panel); color:var(--panel-fg);
            border-block:1px solid var(--panel-border); }
.cta-band h2 { color:inherit; }
.cta-band p { opacity:.9; }
.cta-band .btn-ghost { color:var(--panel-fg);
        border-color:color-mix(in srgb, var(--panel-fg) 50%, transparent); }
.cta-band .btn-ghost:hover { background:color-mix(in srgb, var(--panel-fg) 14%, transparent);
        color:var(--panel-fg); border-color:var(--panel-fg); }
.cta-in { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
          gap:var(--sp-3); }

/* ── Subsol ───────────────────────────────────────────────────────── */
footer { background:var(--footer-bg); color:var(--footer-fg);
         padding-block:var(--sp-6) var(--sp-3); font-size:.93rem; }
footer .foot-h { color:var(--footer-head); font-size:.95rem; margin-bottom:var(--sp-2); }
footer a { color:var(--footer-fg); text-decoration:none; }
footer a:hover { color:var(--footer-head); text-decoration:underline; }
.foot-grid { display:grid; gap:var(--sp-4);
             grid-template-columns:repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.foot-grid li { padding-block:.28rem; }
/* In subsol fundalul e intunecat in ambele teme, deci logo-ul e mereu deschis. */
.foot-logo { display:block; width:98px; height:32px; margin-bottom:var(--sp-2);
  background-color:var(--logo-footer);
  -webkit-mask:url(../assets/logo.svg) no-repeat left center / contain;
          mask:url(../assets/logo.svg) no-repeat left center / contain; }
.foot-bot { margin-top:var(--sp-5); padding-top:var(--sp-3);
            border-top:1px solid var(--footer-rule);
            display:flex; flex-wrap:wrap; gap:var(--sp-2); justify-content:space-between;
            font-size:.86rem; opacity:.85; }

/* ── Banner demo ──────────────────────────────────────────────────── */
.demo-bar { background:var(--accent); color:var(--on-accent); font-size:.88rem;
            text-align:center; padding:.55rem 1rem; font-weight:500; }
.demo-bar a { color:inherit; font-weight:700; }

/* ── Mișcare ──────────────────────────────────────────────────────── */
.rv { opacity:0; transform:translateY(22px);
      transition:opacity .55s var(--ease), transform .55s var(--ease); }
.rv.in { opacity:1; transform:none; }
.rv-d1 { transition-delay:.08s; } .rv-d2 { transition-delay:.16s; }
.rv-d3 { transition-delay:.24s; } .rv-d4 { transition-delay:.32s; }
.rv-d5 { transition-delay:.40s; } .rv-d6 { transition-delay:.48s; }
.no-js .rv { opacity:1; transform:none; }


/* ── Ținte de atingere pe ecrane tactile ──────────────────────────────
   WCAG 2.5.8 (AA) cere 24×24 și exceptează linkurile din flux de text.
   Pe pointer grosier (deget) urcăm oricum la 44px unde e o listă de
   contacte — acolo se apasă, nu se citește. */
@media (pointer: coarse) {
  .info-row a { min-height:44px; }
  .check input { width:26px; height:26px; }
  .check label { padding-block:.65rem; }
}

@media print {
  .rv { opacity:1 !important; transform:none !important; }
  .hdr { position:static; } .demo-bar, .hero-bg { display:none; }
  .srv-body { grid-template-rows:1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after {
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .rv { opacity:1; transform:none; }
  .hero-bg img { transform:none !important; }
}
