/* ==========================================================================
   B-Cell — design system (paleta logo-ului original, light + dark theme)
   Font: Inter (păstrat de la varianta anterioară, plăcut clientului)
   Container: 1320px — referință Blueshift

   Sistem de culori: variabile SEMANTICE (--c-bg, --c-text, --c-primary etc.),
   nu denumite după culoarea literă (verde/portocaliu, ca înainte) — asta
   permite temei dark să redefinească exact aceleași variabile fără să
   umblăm prin restul fișierului. Comutarea se face cu [data-theme="dark"]
   pe <html> (vezi main.js + scriptul inline anti-flash din layouts/main.php).

   Paletă: logo-ul original al clientului (verde, portocaliu, galben, negru), aprobată 02.10.2026.
   Specificația completă + contrast: brand/logo/original-2026/PALETA-SPEC.md. Paleta albastră veche e interzisă.
   Regulă: textul/iconițele pe fundal primary folosesc --c-on-primary, pe fundal accent --c-on-accent
   (niciodată alb pe portocaliu). Accent ca TEXT pe fundal deschis = --c-accent-dark.
   ========================================================================== */

/* Inter găzduit local (fără Google Fonts — fără transfer de IP către terți). Font variabil 100–900,
   2 subseturi: latin + latin-ext (ă â î ș ț). Licență SIL OFL 1.1: assets/fonts/OFL.txt. Sursa: Google Fonts, Inter v20. */
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('../fonts/inter-latin-ext.woff2?v=1') format('woff2');   /* ?v= → cache 1 an (schimbă la înlocuirea fontului) */
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('../fonts/inter-latin.woff2?v=1') format('woff2');   /* = href-ul preload din layouts/main.php */
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Culori — temă light (implicită). Sursa: PALETA-SPEC.md §1 */
  --c-bg:            #FFFFFF;   /* fundal pagină */
  --c-bg-alt:        #F6F8F3;   /* secțiuni alternante, hero calculator */
  --c-surface:       #FFFFFF;   /* carduri, header, panouri */
  --c-text:          #121410;   /* text principal */
  --c-text-muted:    #5A6157;   /* text secundar, etichete */
  --c-border:        #E1E6DC;

  --c-primary:       #357A2E;   /* verde — butoane principale, linkuri, nav activ, eyebrow */
  --c-primary-dark:  #24611F;   /* hover/active pe primary; text „brand" accentuat */
  --c-primary-light: #EAF3E7;   /* tentă (iconbox, badge) */
  --c-on-primary:    #FFFFFF;   /* text/iconițe pe fundal primary */
  --c-accent:        #F57E13;   /* portocaliu solar — fundaluri, badge, atenție */
  --c-accent-dark:   #B85A06;   /* accent ca TEXT/link pe fundal deschis */
  --c-accent-light:  #FEF1E2;
  --c-on-accent:     #121410;   /* text pe fundal accent (niciodată alb pe portocaliu) */

  --c-ink:           #121410;   /* benzi/butoane mereu închise */
  --c-footer-bg-rgb: 30, 61, 26;   /* #1E3D1A — footer, sidebar admin */
  --c-sun:           linear-gradient(135deg, #F7CA18, #F57E13);   /* punctaj calculator, accente decorative */
  --c-highlight:     #F7CA18;   /* galbenul logo-ului: accent/hover pe fundaluri MEREU închise (footer, sidebar, foto) */
  --c-focus:         rgba(53, 122, 46, 0.35);   /* focus ring */
  --c-overlay-rgb:   18, 20, 16;   /* baza overlay-urilor hero pe fotografii și a umbrelor (= --c-ink light) */

  /* Semantice (nu sunt culori de brand): eroare / succes */
  --c-danger:        #B23B3B;
  --c-success:       #1B7A43;   /* text succes ≥ 4.5:1 pe alb (#1F8A4C rămâne pentru borduri/verdict) */

  /* Tipografie: Inter — combinația inițială, agreată de client. */
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --container: 1320px;

  /* Spacing */
  --section-py: 5rem;
  --section-py-sm: 3rem;
  --radius: 8px;
  --radius-lg: 12px;
}

[data-theme="dark"] {
  --c-bg:            #11140F;
  --c-bg-alt:        #1A1F18;
  --c-surface:       #1A1F18;
  --c-text:          #F3F5F0;
  --c-text-muted:    #A3AD9E;
  --c-border:        #2C3529;

  --c-primary:       #5FB352;
  --c-primary-dark:  #7CC96E;   /* în dark e MAI DESCHIS */
  --c-primary-light: rgba(95, 179, 82, 0.14);
  --c-on-primary:    #0E110D;
  --c-accent:        #F7A23B;
  --c-accent-dark:   #F57E13;
  --c-accent-light:  rgba(247, 162, 59, 0.14);
  --c-on-accent:     #0E110D;

  --c-ink:           #0A0C09;
  --c-footer-bg-rgb: 22, 48, 26;   /* #16301A */
  --c-focus:         rgba(95, 179, 82, 0.45);

  --c-danger:        #F17A66;
  --c-success:       #5FD98C;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.75;
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  transition: background-color 0.2s ease, color 0.2s ease;
}

img { max-width: 100%; height: auto; display: block; }   /* height:auto → atributele width/height dau doar raportul (fără CLS, fără deformare) */
a { color: var(--c-primary); text-decoration: none; }
a:hover { color: var(--c-primary-dark); }

h1, h2, h3, h4, h5 {
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
  margin: 0 0 0.5em;
  color: var(--c-text);
}
h1 { font-size: clamp(2.2rem, 4vw, 3.4rem); letter-spacing: -0.03em; line-height: 1.1; }
h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
h3, .h3 { font-size: 1.3rem; font-weight: 600; letter-spacing: -0.02em; }   /* .h3 / .h4: nivel semantic corect, aspect neschimbat */
h4, .h4 { font-size: 1.1rem; font-weight: 600; letter-spacing: -0.015em; }   /* .h4: titlu cu nivel semantic h2/h3, dar cu aspectul de h4 (ordinea titlurilor) */
p { margin: 0 0 1em; }

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.section { padding: var(--section-py) 0; }
.section-sm { padding: var(--section-py-sm) 0; }
.section--alt { background: var(--c-bg-alt); }
.section--dark { background: var(--c-ink); color: rgba(255,255,255,0.82); }
.section--dark h2, .section--dark h3 { color: #FFFFFF; }
/* Banda „verde" = fundal primary: tot textul folosește --c-on-primary (alb pe light, închis pe dark). */
.section--green { background: var(--c-primary); color: var(--c-on-primary); }
.section--green h2, .section--green h3, .section--green p { color: var(--c-on-primary); }

.text-center { text-align: center; }

/* Supertitlu — pattern consistent din varianta veche, îl păstrăm */
.eyebrow {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-primary);
  margin-bottom: 0.5rem;
}
.section--green .eyebrow { color: var(--c-on-primary); }
.section--dark .eyebrow { color: var(--c-accent); }

/* ---------- Buttons ---------- */
/* <button> nu moștenește fontul implicit în browsere → fără asta, butoanele (nu linkurile .btn) apar în fontul sistemului. */
button { font-family: inherit; }
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: center;
  height: 3rem;
  padding: 0 1.5rem;
  border-radius: var(--radius);
  font-weight: 600;
  font-size: 0.95rem;
  border: 2px solid transparent;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  white-space: nowrap;
}
.btn-primary { background: var(--c-primary); color: var(--c-on-primary); }
.btn-primary:hover { background: var(--c-primary-dark); color: var(--c-on-primary); }
.btn-outline { background: transparent; border-color: var(--c-primary); color: var(--c-primary); }
.btn-outline:hover { background: var(--c-primary); color: var(--c-on-primary); }
.btn-solar { background: var(--c-accent); color: var(--c-on-accent); }
.btn-solar:hover { box-shadow: 0 0 0 3px var(--c-accent-light); color: var(--c-on-accent); }
/* „Alb" = pe fundal mereu închis (overlay foto, footer). Pe banda primary se inversează după tema activă (mai jos). */
.btn-white { background: #FFFFFF; color: var(--c-ink); }
.btn-white:hover { background: #FFFFFF; color: var(--c-ink); box-shadow: 0 0 0 3px rgba(255,255,255,0.35); }
.btn-outline-white { background: transparent; border-color: #FFFFFF; color: #FFFFFF; }
.btn-outline-white:hover { background: #FFFFFF; color: var(--c-ink); }
.section--green .btn-white { background: var(--c-on-primary); color: var(--c-primary); }
.section--green .btn-white:hover { background: var(--c-on-primary); color: var(--c-primary-dark); box-shadow: 0 0 0 3px var(--c-focus); }
.section--green .btn-outline-white { border-color: var(--c-on-primary); color: var(--c-on-primary); }
.section--green .btn-outline-white:hover { background: var(--c-on-primary); color: var(--c-primary); }
/* Focus vizibil: contur plin (≥ 3:1 față de fundal). Pe banda primary = --c-on-primary; pe foto/footer (mereu închise) = alb. */
.btn:focus-visible, .cv-pill:focus-visible, .theme-toggle:focus-visible, .header-account:focus-visible, .nav-caret-btn:focus-visible,
.link-btn:focus-visible, .footer-link-btn:focus-visible, .social-links a:focus-visible, .filter-bar a:focus-visible, .pagination a:focus-visible,
.main-nav a:focus-visible, .nav-dropdown a:focus-visible, .faq-item summary:focus-visible { outline: 3px solid var(--c-primary); outline-offset: 2px; }
.section--green .btn:focus-visible { outline-color: var(--c-on-primary); }
.home-hero .btn:focus-visible, .page-hero .btn:focus-visible, .site-footer a:focus-visible, .site-footer .btn:focus-visible,
.site-footer .footer-link-btn:focus-visible { outline-color: #FFFFFF; }
.btn-block { width: 100%; }

.btn-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.btn-row.center { justify-content: center; }

/* ---------- Theme toggle (light/dark) ---------- */
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--c-border);
  background: none; color: var(--c-text); cursor: pointer; transition: background 0.15s, color 0.15s;
}
.theme-toggle:hover { background: var(--c-bg-alt); }
.theme-toggle .icon-moon { display: none; }
[data-theme="dark"] .theme-toggle .icon-sun { display: none; }
[data-theme="dark"] .theme-toggle .icon-moon { display: inline-flex; }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--c-surface);
  border-bottom: 1px solid var(--c-border);
}
.site-header .container { display: flex; align-items: center; justify-content: space-between; height: 88px; }
.site-header .logo img { height: 70px; width: auto; }
.logo-picture { display: inline-flex; }
/* Logo 2026: varianta light pe tema luminoasă, dark pe cea întunecată ([data-theme] e pus în <head>, înainte de randare). */
.logo-variant-dark { display: none; }
[data-theme="dark"] .logo-variant-light { display: none; }
[data-theme="dark"] .logo-variant-dark { display: inline-flex; }
.site-header .logo { flex-shrink: 0; }
.main-nav { display: flex; align-items: center; gap: 1.05rem; }
.main-nav a {
  color: var(--c-text); font-weight: 600; font-size: 0.76rem; white-space: nowrap;
  text-transform: uppercase; letter-spacing: 0.015em;
}
.main-nav a:hover, .main-nav a.active { color: var(--c-primary); }

/* Submeniu (ex. Servicii > Kituri fotovoltaice / Proiectele noastre) */
.nav-item { position: relative; }
.nav-item-row { display: flex; align-items: center; gap: 0.15rem; }
.nav-caret-btn { background: none; border: none; cursor: pointer; padding: 0.25rem; display: flex; align-items: center; color: inherit; }
/* Țintă de minimum 24×24 px pentru săgeata de submeniu (WCAG 2.5.8), fără să lățească meniul: marginile negative
   păstrează exact spațiul ocupat înainte (≈12×18 px), deci headerul rămâne la aceeași lățime. */
@media (min-width: 1280px) {
  .nav-caret-btn { min-width: 24px; min-height: 24px; justify-content: center; margin: -3px -6px; }
}
.nav-caret { font-size: 0.65em; }
.nav-dropdown {
  display: none;
  position: absolute; top: 100%; left: 0; margin-top: 0.5rem;
  background: var(--c-surface); border: 1px solid var(--c-border); border-radius: 10px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.16);
  min-width: 220px; padding: 0.5rem; z-index: 50;
}
/* Punte invizibilă peste golul dintre rândul din meniu și dropdown — prezentă
   mereu (nu doar la :hover), ca mișcarea mouse-ului spre submeniu să nu iasă
   din zona de :hover a .nav-item și să-l închidă prematur. */
.nav-item.has-dropdown::after {
  content: '';
  position: absolute; left: 0; right: 0; top: 100%; height: 0.5rem;
}
.nav-dropdown a { display: block; padding: 0.6rem 0.75rem; border-radius: 6px; white-space: nowrap; font-size: 0.78rem; width: auto; border-bottom: none; text-transform: none; letter-spacing: normal; }
.nav-dropdown a:hover, .nav-dropdown a.active { background: var(--c-bg-alt); color: var(--c-primary); }
.nav-item.has-dropdown:hover .nav-dropdown,
.nav-item.has-dropdown:focus-within .nav-dropdown,
.nav-item.has-dropdown.dropdown-open .nav-dropdown { display: block; }
.nav-item.has-dropdown.dropdown-dismissed:not(.dropdown-open) .nav-dropdown { display: none; }   /* închis cu Escape */
.header-actions { display: flex; align-items: center; gap: 0.65rem; flex-shrink: 0; }
.header-account { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; color: var(--c-text); border: 1px solid var(--c-border); transition: background 0.15s, color 0.15s; }
.header-account:hover { background: var(--c-primary); color: var(--c-on-primary); border-color: var(--c-primary); }
/* Bara de previzualizare din admin (pagina publică randată pentru un utilizator autentificat, ?lang=ro|en) */
.preview-bar { background: var(--c-accent-light); color: var(--c-text); border-bottom: 1px solid var(--c-accent); padding: 0.6rem 1rem; text-align: center; font-size: 0.9rem; font-weight: 600; }
/* Comutator de limbă RO | EN: pastilă compactă, aceeași înălțime ca butoanele rotunde din header (38px). */
.lang-switch { display: inline-flex; align-items: center; height: 38px; padding: 3px; border: 1px solid var(--c-border); border-radius: 999px; gap: 2px; flex-shrink: 0; }
.lang-switch-item { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 30px; padding: 0 0.45rem; border-radius: 999px; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.02em; color: var(--c-text); line-height: 1; }
a.lang-switch-item:hover { background: var(--c-bg-alt); color: var(--c-primary); }
.lang-switch-item.is-current { background: var(--c-primary); color: var(--c-on-primary); }
a.lang-switch-item:focus-visible { outline: 3px solid var(--c-primary); outline-offset: 2px; }
@media (max-width: 420px) {
  .header-actions { gap: 0.4rem; }
  .lang-switch-item { min-width: 28px; padding: 0 0.3rem; }
}
@media (max-width: 359px) {   /* telefoane de 320px: logo puțin mai mic, ca RO|EN + cont + temă + meniu să încapă */
  .site-header .logo img { height: 56px; }
  .header-actions { gap: 0.3rem; }
}

.nav-toggle {
  display: none;
  background: none; border: none; cursor: pointer;
  width: 40px; height: 40px;
  align-items: center; justify-content: center;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after {
  content: ''; display: block; width: 22px; height: 2px; background: var(--c-text);
  position: relative; transition: all .2s ease;
}
.nav-toggle span::before { position: absolute; top: -7px; width: 22px; height: 2px; background: var(--c-text); }
.nav-toggle span::after { position: absolute; top: 7px; width: 22px; height: 2px; background: var(--c-text); }

/* Hamburger până la 1279px inclusiv: meniul desktop (8 linkuri + RO|EN + cont + temă + „Solicită ofertă") încape abia de la
   1280px (11.10.2026: comutatorul de limbă a adăugat ~80px; la 1200px headerul ieșea cu 49px din ecran). */
@media (min-width: 1280px) and (max-width: 1399px) {
  .main-nav { gap: 0.8rem; }
}
/* Blog: doar în meniul de mobil (ultimul) și în footer — pe desktop locul lui l-a luat Galeria (12.10.2026). */
@media (min-width: 1280px) {
  .main-nav .nav-mobile-only { display: none; }
}
@media (max-width: 1279px) {
  .main-nav {
    position: fixed; inset: 84px 0 0 0; background: var(--c-surface);
    flex-direction: column; align-items: flex-start; padding: 1.5rem;
    gap: 0.25rem; overflow-y: auto; transform: translateX(100%);
    transition: transform .25s ease; border-top: 1px solid var(--c-border);
  }
  .main-nav.is-open { transform: translateX(0); }
  .main-nav a { width: 100%; padding: 0.85rem 0; border-bottom: 1px solid var(--c-border); }
  .nav-toggle { display: flex; }
  .header-cta { display: none; }

  .nav-item { width: 100%; }
  .nav-item-row { width: 100%; justify-content: space-between; padding: 0.85rem 0; border-bottom: 1px solid var(--c-border); }
  .nav-item-row .nav-link-parent { padding: 0; border-bottom: none; width: auto; }
  .nav-dropdown { position: static; box-shadow: none; border: none; margin: 0; padding: 0 0 0 1rem; width: 100%; background: transparent; }
  .nav-dropdown a { border-bottom: 1px solid var(--c-border); padding: 0.7rem 0; }
  .nav-item.has-dropdown.dropdown-open .nav-dropdown { display: block; }
}

/* ---------- Hero ---------- */
.hero {
  display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 4rem; align-items: center;
  padding-top: 4rem; padding-bottom: 4rem;
}
.hero p.lead { font-size: 1.15rem; line-height: 1.75; color: var(--c-text-muted); max-width: 46ch; }
.hero-media img { border-radius: var(--radius-lg); width: 100%; aspect-ratio: 4/3; object-fit: cover; background: var(--c-border); }

@media (max-width: 960px) {
  .hero { grid-template-columns: 1fr; gap: 2rem; padding-top: 2.5rem; padding-bottom: 2.5rem; }
  /* Pe mobil, textul vine mereu înaintea imaginii, indiferent de ordinea din markup. */
  .hero-media { order: 2; }
}

/* Text centrat într-o coloană de hero (eyebrow + h1 + lead + butoane) — cerere client */
.hero-center-text { text-align: center; }
.hero-center-text p.lead { margin-left: auto; margin-right: auto; }
.hero-center-text .btn-row { justify-content: center; }

/* Hero-ul de sus de pe homepage: formularul din dreapta e mult mai înalt decât
   textul din stânga, iar align-items:center (implicit pe .hero) împingea textul
   prea jos, cu un gol mare deasupra — îl aliniem sus, cu puțin aer față de nav. */
.hero-align-start { align-items: start; padding-top: 5rem; }
@media (max-width: 960px) {
  /* Pe mobil nu mai e nevoie de spațiul mare de sus (nu există form înalt alături) —
     coborâm padding-ul ca ambele butoane din hero să încapă fără scroll, iar
     formularul de ofertă (a doua coloană, sub text pe mobil) să rămână sub fold,
     nu să „muște" din primul viewport. */
  .hero-align-start { padding-top: 0.75rem; gap: 12vh; }
}

/* Butoane mai compacte pe telefoane mici, ca perechile din .btn-row (Sună acum /
   Trimite-ne un mesaj, Solicită ofertă / Configurator etc.) să încapă pe un singur rând. */
@media (max-width: 480px) {
  .btn-row { gap: 0.6rem; }
  .btn-row .btn { padding: 0 1.05rem; font-size: 0.85rem; height: 2.75rem; gap: 0.35rem; }
}

/* Rând orizontal centrat pt. cardurile de contact (adresă/telefon/email/firmă) */
.contact-info-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; }
.contact-info-row .card { flex: 1 1 220px; max-width: 260px; text-align: center; }
.contact-info-row .card .icon { margin-left: auto; margin-right: auto; }

/* ---------- Hero cu fundal foto: imaginea vine din hero_bg() (helpers.php) ca variabile → 960px pe telefoane ---------- */
.home-hero, .page-hero { background-image: var(--hero-lg); }
@media (max-width: 960px) {
  .home-hero, .page-hero { background-image: var(--hero-sm, var(--hero-lg)); }
}

/* ---------- Hero cu fundal foto (homepage) ---------- */
.home-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  isolation: isolate;
}
.home-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(var(--c-overlay-rgb),0.82) 0%, rgba(var(--c-overlay-rgb),0.68) 38%, rgba(var(--c-overlay-rgb),0.32) 68%, rgba(var(--c-overlay-rgb),0.1) 100%);
  z-index: 0;
}
.home-hero .container { position: relative; z-index: 1; }
.home-hero .eyebrow { color: var(--c-highlight); }
.home-hero h1 { color: #FFFFFF; }
.home-hero p.lead { color: rgba(255,255,255,0.88); }
.home-hero .btn-outline { border-color: rgba(255,255,255,0.55); color: #FFFFFF; }
.home-hero .btn-outline:hover { background: #FFFFFF; color: var(--c-ink); }

/* ---------- Hero cu fundal foto (pagini de conținut — titlu centrat) ----------
   Aceeași tehnică ca .home-hero (fundal foto + overlay), dar overlay uniform
   (nu în gradient stânga-dreapta), pentru layout-uri cu text centrat, nu 2 coloane. */
.page-hero {
  position: relative;
  background-color: var(--c-ink);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  isolation: isolate;
  min-height: 500px;
  display: flex;
  align-items: center;
}
@media (max-width: 640px) {
  .page-hero { min-height: 380px; }
}
.page-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(var(--c-overlay-rgb),0.38) 0%, rgba(var(--c-overlay-rgb),0.55) 100%);
  z-index: 0;
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero .eyebrow { color: var(--c-highlight); }
.page-hero h1 { color: #FFFFFF; }
.page-hero p.lead { color: rgba(255,255,255,0.9); }
.page-hero p.form-note { color: rgba(255,255,255,0.65); }
/* Firul de navigare din hero (Acasă › Servicii › pagina curentă) */
.breadcrumb { margin-bottom: 1rem; font-size: 0.85rem; font-weight: 600; }
.breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.15rem 0.5rem; }
.breadcrumb li { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--c-highlight); }
.breadcrumb li + li::before { content: '›'; color: rgba(255,255,255,0.75); }
.breadcrumb a { color: #FFFFFF; display: inline-flex; align-items: center; min-height: 24px; text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb a:hover { color: var(--c-highlight); }
.breadcrumb a:focus-visible { outline: 3px solid var(--c-highlight); outline-offset: 2px; }

/* ---------- Quote form card (Astra-style — apare în hero și pe pagini cheie) ---------- */
.quote-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: 0 20px 40px -20px rgba(0,0,0,0.25);
}
.quote-card h3, .quote-card .h3 { margin-bottom: 0.25rem; }
.quote-card .quote-sub { color: var(--c-text-muted); font-size: 0.9rem; margin-bottom: 1.25rem; }

/* ---------- Forms ---------- */
.form-group { margin-bottom: 1rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .form-row { grid-template-columns: 1fr; } }
label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.35rem; color: var(--c-text); }
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password], select, textarea {
  width: 100%; height: 2.85rem; padding: 0 0.9rem; border: 1px solid var(--c-border);
  border-radius: var(--radius); font-family: var(--font-body); font-size: 0.95rem;
  background: var(--c-surface); color: var(--c-text);
}
textarea { height: auto; padding: 0.75rem 0.9rem; min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px var(--c-focus); }
input:disabled, select:disabled, textarea:disabled { background: var(--c-bg-alt); color: var(--c-text-muted); cursor: not-allowed; }
/* Controalele native (bifă, radio, slider, progres) — altfel browserul le desenează cu albastrul lui implicit. */
input[type=checkbox], input[type=radio], input[type=range], progress { accent-color: var(--c-primary); }
[data-theme="dark"] input[type=text], [data-theme="dark"] input[type=email], [data-theme="dark"] input[type=tel],
[data-theme="dark"] input[type=number], [data-theme="dark"] input[type=password], [data-theme="dark"] select,
[data-theme="dark"] textarea {
  background: #FFFFFF; color: #121410; border-color: #DCE3D7;   /* inputurile rămân ALBE pe dark (PALETA-SPEC §1) */
}
[data-theme="dark"] input::placeholder, [data-theme="dark"] textarea::placeholder { color: #5A6157; }   /* pe input alb */
[data-theme="dark"] input:disabled, [data-theme="dark"] select:disabled, [data-theme="dark"] textarea:disabled { background: #E1E6DC; color: #5A6157; }
.form-consent { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: var(--c-text-muted); }
.form-consent input { width: auto; height: auto; margin-top: 3px; }
.form-consent a, .form-note a, .cv-calc .hint a { text-decoration: underline; }   /* link în text: nu se distinge doar prin culoare */
.form-note { font-size: 0.8rem; color: var(--c-text-muted); margin-top: 0.5rem; }
.divider { height: 1px; background: var(--c-border); margin: 1.25rem 0; }

.alert { padding: 0.9rem 1.1rem; border-radius: var(--radius); margin-bottom: 1.25rem; font-size: 0.92rem; }
/* Semantice (nu brand): text în culoarea textului, nuanța vine din fundal + bordură → contrast sigur în ambele teme. */
.alert-success { background: rgba(31,138,76,0.12); color: var(--c-text); border: 1px solid var(--c-success); border-left-width: 4px; }
.alert-error { background: rgba(196,59,39,0.12); color: var(--c-text); border: 1px solid var(--c-danger); border-left-width: 4px; }

/* ---------- Calculator Casa Verde — pastile eligibilitate + panou punctaj ---------- */
.cv-elig-group { margin-bottom: 1.5rem; }
.cv-elig-group:last-child { margin-bottom: 0; }
.cv-pill-row { display: flex; gap: 0.6rem; margin-top: 0.5rem; }
.cv-pill {
  flex: 1; padding: 0.65rem 1rem; border: 1px solid var(--c-border); border-radius: var(--radius);
  background: var(--c-surface); font-family: var(--font-body); font-size: 0.9rem; font-weight: 600;
  color: var(--c-text-muted); cursor: pointer; transition: all 0.15s ease; text-align: center;
}
.cv-pill:hover { border-color: var(--c-primary); }
.cv-pill.active { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.cv-warn {
  margin: 0.6rem 0 0; padding: 0.7rem 0.9rem; font-size: 0.82rem; line-height: 1.5;
  background: var(--c-accent-light); border: 1px solid var(--c-accent); border-radius: var(--radius); color: var(--c-text);
}

.cv-score-panel { transition: opacity 0.2s ease; }
.cv-score-panel.cv-score-disabled { opacity: 0.92; filter: grayscale(1); }   /* era opacity 0.55: textul cobora sub 4,5:1 (la 0.85 textul secundar avea încă 4,25:1) */
.cv-score-total { display: flex; align-items: baseline; gap: 0.5rem; margin-bottom: 1.25rem; }
.cv-score-num { font-size: 2.6rem; font-weight: 700; letter-spacing: -0.03em; line-height: 1; color: var(--c-on-accent);
  background: var(--c-sun); padding: 0.12em 0.35em; border-radius: var(--radius); }
.cv-score-max { font-size: 1rem; color: var(--c-text-muted); }
.cv-score-bars { display: flex; flex-direction: column; gap: 0.7rem; margin-bottom: 1.25rem; }
.cv-score-bar-row { display: grid; grid-template-columns: 9.5rem 1fr 5.5rem; align-items: center; gap: 0.75rem; font-size: 0.85rem; }
.cv-bar { height: 8px; border-radius: 99px; background: var(--c-border); overflow: hidden; }
.cv-bar-fill { height: 100%; background: var(--c-sun); border-radius: 99px; transition: width 0.2s ease; }
.cv-score-bar-row span:last-child { text-align: right; color: var(--c-text-muted); }
@media (max-width: 640px) { .cv-score-bar-row { grid-template-columns: 6.5rem 1fr 4.6rem; font-size: 0.8rem; } }

.cv-cost-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 1rem; background: var(--c-bg-alt); border-radius: var(--radius); margin-bottom: 0.75rem; }
.cv-cost-grid div { display: flex; flex-direction: column; gap: 0.2rem; }
.cv-cost-grid span { font-size: 0.78rem; color: var(--c-text-muted); }
.cv-cost-grid strong { font-size: 1.05rem; color: var(--c-text); }
@media (max-width: 640px) { .cv-cost-grid { grid-template-columns: 1fr; } }

/* Pagina /casa-verde-2026: text program, calculator cu rezultatul alături (desktop) /
   bară lipită sub câmpuri (sub 960px), fără scroll înainte-înapoi între inputuri și punctaj. */
.cv-prose { max-width: 760px; margin: 0 auto; }
.cv-prose p { margin-bottom: 1rem; }
.cv-calc [hidden] { display: none !important; }
.cv-calc .hint { font-size: 0.8rem; color: var(--c-text-muted); margin: 0.35rem 0 0; }
.cv-subq { margin-top: 1rem; padding-left: 1rem; border-left: 2px solid var(--c-border); }
.cv-calc-inputs { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }
.cv-afm-row { display: flex; gap: 0.6rem; }
.cv-afm-row input { flex: 1; min-width: 0; }
.cv-afm-row .btn { height: 2.85rem; padding: 0 1rem; font-size: 0.85rem; white-space: nowrap; }
.cv-status:empty, .cv-hint:empty { display: none; }
.cv-status { font-weight: 600; color: var(--c-text); margin: -0.5rem 0 1.25rem; font-size: 0.92rem; }
.cv-hint { font-size: 0.85rem; color: var(--c-text); padding: 0.6rem 0.8rem; border-left: 3px solid var(--c-accent); background: var(--c-primary-light); border-radius: 0 var(--radius) var(--radius) 0; margin-bottom: 0.75rem; }
.cv-calc-result .cv-cost-grid { grid-template-columns: 1fr; gap: 0.5rem; }
.cv-calc-result .cv-cost-grid div { flex-direction: row; justify-content: space-between; align-items: baseline; gap: 1rem; }
.cv-calc-result .cv-cost-grid strong { text-align: right; }
.cv-mobile-bar { display: none; }
.cv-disclaimer { margin-top: 1.5rem; }
@media (min-width: 961px) {
  .cv-calc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: 2rem; align-items: start; }
  .cv-calc-result { position: sticky; top: calc(88px + 1.5rem); }
}
@media (max-width: 960px) {
  .cv-calc-result { margin-top: 1.5rem; }
  .cv-mobile-bar {
    position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; gap: 0.75rem;
    margin-top: 1rem; padding: 0.75rem 1rem; border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    background: var(--c-primary); color: var(--c-on-primary); box-shadow: 0 -8px 24px -12px rgba(0,0,0,0.35);
  }
  .cv-mobile-bar strong { font-size: 1.6rem; line-height: 1; letter-spacing: -0.02em; }
  .cv-mobile-bar span { font-size: 0.82rem; line-height: 1.35; }
}
@media (max-width: 640px) {
  .cv-afm-row { flex-direction: column; }
  .cv-afm-row input { flex: none; }
  .cv-calc .quote-card { padding: 1.5rem; }
}

/* ---------- Stats bar (Astra) ---------- */
.stats-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; text-align: center; }
.stats-bar .stat-value { font-size: 2.4rem; font-weight: 700; letter-spacing: -0.03em; color: var(--c-primary); line-height: 1; }
.stats-bar .stat-label { font-size: 0.85rem; color: var(--c-text-muted); margin-top: 0.35rem; }
@media (max-width: 720px) { .stats-bar { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Cards / grid ---------- */
.grid { display: grid; gap: 1.75rem; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .grid-3 { gap: 1.1rem; } }
@media (max-width: 760px) { .grid-3 { grid-template-columns: repeat(2, 1fr); gap: 1.75rem; } }
@media (max-width: 640px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }

.card {
  background: var(--c-surface); border-radius: var(--radius-lg); padding: 2rem;
  border: 1px solid var(--c-border);
  box-shadow: 0 1px 2px rgba(var(--c-overlay-rgb),0.04), 0 14px 28px -18px rgba(var(--c-overlay-rgb),0.16);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover {
  transform: translateY(-4px);
  border-color: var(--c-primary);
  box-shadow: 0 1px 2px rgba(var(--c-overlay-rgb),0.04), 0 22px 38px -18px rgba(var(--c-overlay-rgb),0.22);
}
/* Umbra pe bază de negru transparent nu se vede pe fundaluri deja închise (dark mode) —
   folosim un contur/glow deschis la culoare, ca și cardurile să „iasă" din fundal acolo. */
[data-theme="dark"] .card {
  box-shadow: 0 1px 0 rgba(255,255,255,0.03), 0 14px 28px -18px rgba(0,0,0,0.5);
}
[data-theme="dark"] .card:hover {
  box-shadow: 0 1px 0 rgba(255,255,255,0.06), 0 22px 38px -18px rgba(0,0,0,0.6);
}
.card .icon {
  width: 48px; height: 48px; border-radius: 10px; background: var(--c-primary-light);
  color: var(--c-primary); display: flex; align-items: center; justify-content: center;
  margin-bottom: 1rem; font-size: 1.4rem;
}
.card ul.checklist { list-style: none; padding: 0; margin: 1rem 0 0; }
.card ul.checklist li { padding-left: 1.6rem; position: relative; margin-bottom: 0.5rem; }
.card ul.checklist li::before {
  content: '✓'; position: absolute; left: 0; color: var(--c-primary); font-weight: 700;
}

/* Proces numerotat (Blueshift) */
.process-step .step-number {
  font-size: 3rem; font-weight: 700; color: var(--c-text-muted); line-height: 1; margin-bottom: 0.75rem;   /* era --c-border (1,3:1): text mare, cere ≥ 3:1 */
}

/* Portfolio grid (Astra-style — kWp + locație) */
.portfolio-card { border-radius: var(--radius-lg); overflow: hidden; background: var(--c-surface); border: 1px solid var(--c-border); }
.portfolio-card .thumb { aspect-ratio: 4/3; background: var(--c-border); }
.portfolio-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.portfolio-card .thumb { overflow: hidden; }
.portfolio-card .body { padding: 1.25rem 1.5rem; }
.portfolio-card .tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.5rem; }
.portfolio-card .thumb { position: relative; }
.portfolio-title { font-size: 1.1rem; font-weight: 600; letter-spacing: -0.015em; margin: 0 0 0.25rem; }
.portfolio-location { margin: 0 0 0.5rem; }
.portfolio-desc { margin: 0; font-size: 0.9rem; }
.portfolio-open { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; position: relative; }
.portfolio-open img { display: block; transition: transform 0.3s ease; }
.portfolio-open:hover img { transform: scale(1.03); }
.portfolio-open:focus-visible { outline: 3px solid var(--c-primary); outline-offset: -3px; }
.portfolio-count {
  position: absolute; right: 0.6rem; bottom: 0.6rem; padding: 0.2rem 0.55rem; border-radius: 100px;
  background: rgba(var(--c-overlay-rgb), 0.75); color: #FFFFFF; font-size: 0.75rem; font-weight: 600;
}
.portfolio-empty { max-width: 560px; margin: 0 auto; text-align: center; display: grid; gap: 1rem; justify-items: center; color: var(--c-text-muted); }

/* Fereastra galeriei (portfolio.js) — fundal mereu închis, ca orice vizualizare de fotografii */
.gallery-dialog {
  width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
  background: rgb(var(--c-overlay-rgb)); color: #FFFFFF; overflow: hidden;   /* opac: nimic din pagină nu se vede prin poze transparente */
}
.gallery-dialog::backdrop { background: rgba(var(--c-overlay-rgb), 0.6); }
/* minmax(0, 1fr) pe coloană: fără el, coloana implicită (auto) se lățea cât titlul pe un singur rând (nowrap), adică
   570–600 px pe un telefon de 390 px — poza/clipul și butonul de închidere ieșeau din ecran, necentrate (12.10.2026). */
.gallery-dialog[open] { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
html.gallery-open { overflow: hidden; }
.gallery-dialog-bar { display: flex; align-items: center; gap: 1rem; padding: 0.75rem 1rem; }
.gallery-dialog-title { font-size: 1rem; margin: 0; color: #FFFFFF; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-dialog-count { margin: 0; font-size: 0.85rem; color: rgba(255,255,255,0.8); white-space: nowrap; }
.gallery-dialog-stage { margin: 0; display: flex; align-items: center; justify-content: center; padding: 0 4.5rem 1.5rem; min-height: 0; }
.gallery-dialog-img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--radius); }
.gallery-btn {
  width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.35); background: rgba(255,255,255,0.08);
  color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0;
}
.gallery-btn:hover { background: rgba(255,255,255,0.2); }
.gallery-btn:focus-visible { outline: 3px solid var(--c-highlight); outline-offset: 2px; }
.gallery-prev, .gallery-next { position: absolute; top: 50%; transform: translateY(-50%); }
.gallery-prev { left: 0.75rem; }
.gallery-next { right: 0.75rem; }
.gallery-btn[hidden] { display: none; }
@media (max-width: 640px) {
  .gallery-dialog-stage { padding: 0 0.5rem 5rem; }
  .gallery-prev, .gallery-next { top: auto; bottom: 1rem; transform: none; }
  .gallery-prev { left: calc(50% - 60px); }
  .gallery-next { right: calc(50% - 60px); }
}
/* Telefon ținut pe orizontală (înălțime mică): bară mai joasă, săgețile pe margini, spațiu egal sus/jos în jurul clipului. */
@media (orientation: landscape) and (max-height: 500px) {
  .gallery-dialog-bar { padding: 0.35rem 1rem; }
  .gallery-dialog-stage { padding: 0.35rem 4.5rem; }
  .gallery-prev, .gallery-next { top: 50%; bottom: auto; transform: translateY(-50%); }
  .gallery-prev { left: 0.75rem; }
  .gallery-next { right: 0.75rem; }
}
/* Galeria foto/video (/galerie, gallery.js): tab-uri, grilă, carduri; fereastra refolosește .gallery-dialog de mai sus */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.gal-tabs { display: flex; gap: 0.25rem; margin: 0 0 1.75rem; border-bottom: 2px solid var(--c-border); }
.gal-tab {
  display: inline-flex; align-items: center; gap: 0.5rem; min-height: 48px; padding: 0.6rem 1.25rem; margin-bottom: -2px;
  border-bottom: 2px solid transparent; font-weight: 600; font-size: 1rem; color: var(--c-text-muted);
}
.gal-tab:hover { color: var(--c-text); }
.gal-tab.is-active { color: var(--c-primary-dark); border-bottom-color: var(--c-primary); }
.gal-tab:focus-visible, .gal-panel:focus-visible { outline: 3px solid var(--c-primary); outline-offset: 2px; }
.gal-tab-count { font-size: 0.78rem; font-weight: 600; padding: 0.1rem 0.5rem; border-radius: 100px; background: var(--c-bg-alt); color: var(--c-text); border: 1px solid var(--c-border); }
.gal-heading { font-size: 1.35rem; margin: 0 0 1.25rem; }
.gal-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; }
.gal-grid--video { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gal-item { min-width: 0; }
.gal-open { position: relative; display: block; overflow: hidden; border-radius: var(--radius); background: var(--c-border); aspect-ratio: 16 / 9; cursor: zoom-in; }
.gal-item--video .gal-open { cursor: pointer; }
.gal-open img, .gal-preview { display: block; width: 100%; height: 100%; object-fit: cover; }
.gal-open img.gal-noscript { position: absolute; inset: 0; }   /* fără JavaScript: miniatura reală peste locul gol */
.gal-open img { transition: transform 0.3s ease; }
.gal-open:hover img { transform: scale(1.03); }
.gal-open:focus-visible { outline: 3px solid var(--c-primary); outline-offset: 2px; }
.gal-preview { position: absolute; inset: 0; pointer-events: none; }
.gal-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 56px; height: 56px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; background: rgba(var(--c-overlay-rgb), 0.72); color: #FFFFFF;
  border: 2px solid rgba(255,255,255,0.85); pointer-events: none; z-index: 1;
}
.gal-duration {
  position: absolute; right: 0.6rem; bottom: 0.6rem; padding: 0.2rem 0.55rem; border-radius: 100px; z-index: 1;
  background: rgba(var(--c-overlay-rgb), 0.78); color: #FFFFFF; font-size: 0.78rem; font-weight: 600; font-variant-numeric: tabular-nums;
}
.gal-caption { margin: 0.55rem 0 0; font-size: 0.9rem; font-weight: 600; color: var(--c-text); }
.gal-more-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem 1.25rem; margin: 2rem 0 0; }
.gal-more-row[hidden] { display: none; }
.gal-more-count { font-size: 0.88rem; }
.gallery-dialog-video { max-width: 100%; max-height: 100%; width: auto; height: auto; border-radius: var(--radius); background: #000000; }
.gallery-dialog-img[hidden], .gallery-dialog-video[hidden] { display: none; }
@media (max-width: 1024px) {
  .gal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gal-grid--video { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .gal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
  .gal-grid--video { grid-template-columns: minmax(0, 1fr); }
  .gal-tab { flex: 1; justify-content: center; padding: 0.6rem 0.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gal-open img { transition: none; }
  .gal-open:hover img { transform: none; }
}
.tag { display: inline-block; font-size: 0.78rem; font-weight: 600; padding: 0.2rem 0.6rem; border-radius: 100px; background: var(--c-primary-light); color: var(--c-primary-dark); }
.tag-solar { background: var(--c-accent-light); color: var(--c-text); box-shadow: inset 0 0 0 1px var(--c-accent); }

/* Filtre categorii simple (portofoliu, kituri) */
.filter-bar { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 2rem; }
.filter-bar a { padding: 0.5rem 1.1rem; border-radius: 100px; border: 1px solid var(--c-border); font-size: 0.88rem; font-weight: 600; color: var(--c-text); }
.filter-bar a.active, .filter-bar a:hover { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
/* Aceleași pastile ca butoane (filtrele kiturilor comerciale: aria-pressed) */
.filter-bar button {
  padding: 0.5rem 1.1rem; min-height: 44px; border-radius: 100px; border: 1px solid var(--c-border); background: transparent;
  font-size: 0.88rem; font-weight: 600; color: var(--c-text); cursor: pointer;
}
.filter-bar button[aria-pressed="true"], .filter-bar button:hover { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.filter-bar button:focus-visible, .table-scroll:focus-visible, .svc-acc-btn:focus-visible, .kit-other:focus-visible { outline: 3px solid var(--c-primary); outline-offset: 2px; }

/* ---------- FAQ (accordion nativ, fără JS) ---------- */
.faq-item { border-bottom: 1px solid var(--c-border); padding: 1.1rem 0; }
.faq-more { margin-top: 2rem; color: var(--c-text-muted); }
.faq-item summary {
  cursor: pointer; font-weight: 600; font-size: 1.05rem; list-style: none;
  display: flex; justify-content: space-between; align-items: center;
}
.faq-item summary .faq-q { font: inherit; letter-spacing: normal; line-height: inherit; color: inherit; margin: 0; }   /* întrebarea e titlu (h2) pentru cititoare de ecran și motoare, cu același aspect */
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font-size: 1.4rem; color: var(--c-primary); font-weight: 400; }
.faq-item[open] summary::after { content: '–'; }
.faq-item .faq-answer { padding-top: 0.75rem; color: var(--c-text-muted); }

/* ---------- Servicii: „Documentație și avize" (linkuri rapide + un card mare per serviciu, cu întrebările lui) ---------- */
.svc-docs, .svc-doc { scroll-margin-top: calc(88px + 1rem); }   /* headerul e sticky (88px): ancora nu intră sub el */
.svc-quick { margin-top: 3rem; }
.svc-quick-intro { color: var(--c-text-muted); margin-bottom: 0.9rem; }
.svc-doc { margin-bottom: 1.75rem; }
.svc-doc-title { margin-bottom: 1rem; }
.svc-doc-body { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 1.5rem 3rem; }
.svc-doc[hidden], .svc-doc-body[hidden], .svc-quick[hidden] { display: none; }
.svc-doc[role="tabpanel"]:focus-visible { outline: 3px solid var(--c-primary); outline-offset: 2px; }
.svc-doc:last-child { margin-bottom: 0; }
.svc-doc:hover { transform: none; }   /* card de conținut, nu link: fără „săltarea" cardurilor mici */
.svc-doc:target { border-color: var(--c-primary); }
.svc-doc-main p { color: var(--c-text-muted); }
.svc-doc-main .svc-doc-for strong { color: var(--c-text); }
.svc-doc-main .btn { margin-top: 0.5rem; }
.svc-doc-list h4 { margin-bottom: 0; }
.svc-doc-list .checklist a { text-decoration: underline; }   /* link în text: nu se distinge doar prin culoare */
.svc-doc-faq { grid-column: 1 / -1; border-top: 1px solid var(--c-border); padding-top: 1.25rem; }
.svc-doc-faq .eyebrow { margin-bottom: 0; }
.svc-doc-faq .faq-item:last-child { border-bottom: 0; padding-bottom: 0; }
@media (max-width: 900px) { .svc-doc { padding: 1.5rem; } .svc-doc-body { grid-template-columns: 1fr; } }
/* Tab-uri (≥ 768 px, services-docs.js): pastilele de sus sunt tab-urile; cel activ = fundal primary + text on-primary
   (5,3:1 pe light, 7,6:1 pe dark). Fără JavaScript rămân linkuri spre ancore. */
.svc-quick .filter-bar a { display: inline-flex; align-items: center; min-height: 44px; }
.svc-quick .filter-bar a[aria-selected="true"] { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.svc-tabs-on .svc-quick .filter-bar { margin-bottom: 1.5rem; }
/* Acordeon (< 768 px): titlul fiecărui serviciu e butonul; conținutul se pliază sub el. */
.svc-acc-on .svc-doc { padding: 0; margin-bottom: 0.75rem; }
.svc-acc-on .svc-doc.is-open { border-color: var(--c-primary); }
.svc-acc-on .svc-doc-title { margin: 0; }
.svc-acc-on .svc-doc-body { padding: 0.25rem 1.25rem 1.5rem; }
.svc-acc-btn {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; min-height: 56px; padding: 1rem 1.25rem;
  background: none; border: 0; border-radius: var(--radius-lg); font: inherit; letter-spacing: inherit; color: inherit; text-align: left; cursor: pointer;
}
.svc-acc-btn::after { content: '+'; flex: none; font-size: 1.5rem; font-weight: 400; line-height: 1; color: var(--c-primary); }
.svc-acc-btn[aria-expanded="true"]::after { content: '–'; }
.svc-acc-btn:focus-visible { outline-offset: -3px; }

/* ---------- Kituri (carduri comune: /kituri-rezidentiale + /kituri-comerciale; partials/kit-card.php) ---------- */
/* Aliniere între carduri: fiecare card are aceleași 7 zone (titlu, putere, etichete, preț, descriere, puncte forte,
   butoane). Cu subgrid, zonele cad pe aceleași rânduri în toate cardurile de pe un rând — titlurile, listele și butoanele
   stau pe aceeași linie indiferent de lungimea textului. Fără subgrid: coloană flex, butoanele împinse la baza cardului
   (margin-top: auto). Eticheta „Cel mai popular" e poziționată absolut: nu împinge conținutul. */
.kit-card { position: relative; display: flex; flex-direction: column; }
.kit-card[hidden] { display: none; }
.kit-card.featured { border-color: var(--c-primary); box-shadow: 0 20px 40px -24px color-mix(in srgb, var(--c-primary) 35%, transparent); }
.kit-card .kit-badge {
  position: absolute; top: -12px; right: 1.5rem; background: var(--c-accent); color: var(--c-on-accent);
  font-size: 0.75rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 100px;
}
.kit-card .kit-title { margin: 0 0 0.5em; }
.kit-card .kit-power { font-size: 2rem; font-weight: 700; color: var(--c-primary); margin: 0 0 1em; }
.kit-card .kit-tags { list-style: none; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 0.4rem; margin: 0 0 1rem; padding: 0; }
.kit-card .kit-price { margin: 0 0 1rem; color: var(--c-text-muted); }
.kit-card .kit-price strong { font-size: 1.35rem; color: var(--c-text); }
.kit-card .kit-text { margin: 0 0 1rem; }
.kit-card ul.checklist.kit-list { margin: 0; }
.kit-card .kit-actions { display: flex; flex-direction: column; gap: 0.6rem; margin-top: auto; }
.kit-empty { display: block; }
@supports (grid-template-rows: subgrid) {
  /* Spațiul dintre rândurile de carduri vine din marginea cardului, nu din row-gap: un row-gap pe grila părinte ar rămâne
     și între cele 7 zone ale cardului (o zonă goală ar ocupa totuși 1,75rem). */
  .kit-grid { row-gap: 0; margin-bottom: -1.75rem; }
  .kit-card { display: grid; grid-template-rows: subgrid; grid-row: span 7; row-gap: 0; margin-bottom: 1.75rem; }
  .kit-card .kit-actions { margin-top: 0; align-self: end; }
}
/* cardurile comerciale au text mai mult: puterea ceva mai mică, ca titlul și etichetele să respire */
.kit-grid[data-kit-grid] .kit-power { font-size: 1.7rem; margin-bottom: 0.6em; }

/* Lista comercială: filtre + număr de rezultate, tabel comparativ, texte comune */
.kit-filter { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; margin-bottom: 2rem; }
.kit-filter[hidden] { display: none; }
.kit-filter .filter-bar { margin-bottom: 0; }
.kit-count { margin: 0; font-size: 0.9rem; color: var(--c-text-muted); }
.kit-price-note { margin-top: 1.5rem; }
.kit-compare { min-width: 880px; }
.kit-compare tr[hidden] { display: none; }
.kit-compare tbody th { color: var(--c-text); white-space: normal; min-width: 13rem; }
.kit-compare tbody th a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.kit-compare td { white-space: nowrap; }
.kit-compare td:last-child { white-space: normal; min-width: 13rem; }
.kit-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem; align-items: start; }
.kit-info-card:hover, .kit-buy:hover { transform: none; }
.kit-info-card ul.checklist { margin-top: 0.5rem; }
.kit-notes { list-style: none; margin: 0; padding: 0; font-size: 0.88rem; color: var(--c-text-muted); }
.kit-notes li { margin-bottom: 0.4rem; scroll-margin-top: calc(88px + 1rem); }
.kit-notes li:target { color: var(--c-text); }
.kit-note-mark { font-weight: 700; color: var(--c-text); }
@media (max-width: 900px) { .kit-info { grid-template-columns: 1fr; } }

/* Detaliul unui kit: specificații + cardul de preț, tabelul de componente, celelalte kituri */
.kit-detail { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2.5rem 3rem; align-items: start; }
.kit-detail-img { width: 100%; border-radius: var(--radius-lg); margin-bottom: 1.5rem; }
.kit-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem 1.5rem; margin: 0 0 2rem; }
.kit-specs div { padding-bottom: 0.7rem; border-bottom: 1px solid var(--c-border); }
.kit-specs dt { font-size: 0.82rem; font-weight: 600; color: var(--c-text-muted); }
.kit-specs dd { margin: 0; font-weight: 600; }
.kit-checklist { list-style: none; margin: 0; padding: 0; }
.kit-checklist li { position: relative; padding-left: 1.6rem; margin-bottom: 0.5rem; }
.kit-checklist li::before { content: '✓'; position: absolute; left: 0; color: var(--c-primary); font-weight: 700; }
.kit-buy { position: sticky; top: calc(88px + 1.5rem); }
.kit-buy-total { margin: 0 0 1rem; color: var(--c-text-muted); }
.kit-buy-total strong { display: block; font-size: 2rem; line-height: 1.2; color: var(--c-text); }
.kit-buy-parts { margin: 0 0 1.25rem; }
.kit-buy-parts div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px solid var(--c-border); }
.kit-buy-parts dt { color: var(--c-text-muted); }
.kit-buy-parts dd { margin: 0; font-weight: 600; white-space: nowrap; }
.kit-buy-parts .is-total dt, .kit-buy-parts .is-total dd { color: var(--c-text); font-weight: 700; }
.kit-buy .btn { margin-top: 0.5rem; }
.kit-components { min-width: 680px; font-size: 0.92rem; }
.kit-components .num { text-align: right; white-space: nowrap; }
.kit-comp-name { display: block; }
.kit-comp-desc { display: block; margin-top: 0.25rem; font-size: 0.85rem; color: var(--c-text-muted); }
.kit-comp-cap { white-space: nowrap; }
.kit-note-ref { display: inline-block; min-width: 24px; min-height: 24px; text-align: center; font-weight: 700; }
.kit-terms { margin-top: 2rem; max-width: 80ch; }
.kit-terms p { color: var(--c-text-muted); }
.kit-detail-cta { margin-top: 2rem; }
.kit-others { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.kit-other { display: block; height: 100%; padding: 1rem 1.25rem; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-surface); color: var(--c-text); }
.kit-other:hover { border-color: var(--c-primary); color: var(--c-text); }
.kit-other-title { display: block; font-weight: 600; }
.kit-other-meta { display: block; font-size: 0.85rem; color: var(--c-text-muted); }
@media (max-width: 900px) {
  .kit-detail { grid-template-columns: 1fr; }
  .kit-buy { position: static; }
  .kit-others { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) { .kit-specs, .kit-others { grid-template-columns: 1fr; } }

/* Formularul de contact: kitul ales (câmp vizibil, needitabil, cu link de ștergere) */
.form-kit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.form-kit-row .form-kit-name { flex: 1 1 14rem; width: auto; font-weight: 600; cursor: default; }
.form-kit-remove { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.88rem; text-decoration: underline; }

/* ---------- Blog ---------- */
.post-card .thumb { aspect-ratio: 16/10; background: var(--c-border); border-radius: var(--radius-lg); margin-bottom: 1rem; overflow: hidden; }
.post-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card .meta { font-size: 0.8rem; color: var(--c-text-muted); margin-bottom: 0.4rem; }
p.meta a { text-decoration: underline; }   /* link în text: nu se distinge doar prin culoare */
.post-content h2 { margin-top: 1.75rem; }
.post-content h3, .post-content h4, .post-content .h3, .post-content .h4 { margin-top: 1.5rem; }
.post-content p, .post-content li { color: var(--c-text); }
.post-content ul, .post-content ol { padding-left: 1.4rem; margin: 0 0 1rem; }
.post-content li { margin-bottom: 0.35rem; }
.post-content img { max-width: 100%; height: auto; border-radius: var(--radius-lg); margin: 1rem 0; }
.post-content hr { border: 0; height: 1px; background: var(--c-border); margin: 2rem 0; }
.post-content table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: 0.92rem; display: block; overflow-x: auto; }
.post-content th, .post-content td { text-align: left; vertical-align: top; padding: 0.6rem 0.75rem; border: 1px solid var(--c-border); }
.post-content th { background: var(--c-bg-alt); font-weight: 600; }
.pagination { display: flex; gap: 0.5rem; justify-content: center; margin-top: 2.5rem; }
.pagination a { padding: 0.5rem 0.95rem; border: 1px solid var(--c-border); border-radius: var(--radius); font-weight: 600; font-size: 0.9rem; }
.pagination a.active { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }

/* ---------- Media mentions (newsletter/presă) ---------- */
.media-card { display: flex; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-surface); }
.media-card .badge { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; padding: 0.2rem 0.5rem; border-radius: 4px; background: var(--c-primary-light); color: var(--c-primary-dark); }

/* ---------- Footer (modular — include pe fiecare pagină) ---------- */
/* Fundalul e mereu o bandă de albastru (nu urmează tema light/dark a paginii —
   la fel ca .section--green), ca amprenta de brand să rămână constantă. */
/* Footer: verde închis din logo (--c-footer-bg-rgb), mereu închis → text alb (neutru, nu brand). */
.site-footer { background: rgb(var(--c-footer-bg-rgb)); color: rgba(255,255,255,0.82); }
.site-footer a { color: #FFFFFF; }
.site-footer a:hover { color: var(--c-highlight); }   /* galben logo pe verde închis (contrast > 7:1); portocaliul are < 4.5 */
.footer-top { padding: 4rem 1.5rem 2.5rem; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2.5rem; }
.footer-top h4, .footer-top .h4 { color: #FFFFFF; font-size: 1rem; margin-bottom: 1rem; }
.footer-top ul { list-style: none; padding: 0; margin: 0; }
.footer-top li { margin-bottom: 0.6rem; font-size: 0.92rem; }
.footer-logo img { height: 64px; width: auto; margin-bottom: 1rem; }
.footer-newsletter input { border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.08); color: #FFFFFF; }
.footer-newsletter input::placeholder { color: rgba(255,255,255,0.6); }
.footer-newsletter label, .footer-newsletter .form-note { color: #FFFFFF; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.15); padding: 1.25rem 1.5rem; font-size: 0.8rem;
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; justify-content: space-between; color: rgba(255,255,255,0.75);
}
@media (max-width: 900px) { .footer-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-top { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .footer-legal-extra { display: none; } }
@media (max-width: 1024px) {
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 0.6rem; }
}

.footer-credit {
  display: inline-flex; align-items: center; gap: 0.25rem;
  color: rgba(255,255,255,0.55);
}
.footer-credit a { color: rgba(255,255,255,0.55); }
.footer-credit a:hover { color: var(--c-highlight); }
.footer-credit-linkedin { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 24px; }   /* țintă ≥ 24 px */

/* Social media (footer + /blog) */
.social-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; }
.social-links a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.75rem; height: 2.75rem; border-radius: 50%;
  border: 1px solid var(--c-border); color: var(--c-primary);
  transition: color 0.2s, border-color 0.2s, background-color 0.2s;
}
.social-links a:hover { color: var(--c-primary-dark); border-color: var(--c-primary); background: var(--c-primary-light); }
.social-links--footer { margin-top: 1.25rem; }
.social-links--contact { margin-top: 2rem; }
.site-footer .social-links a { border-color: rgba(255,255,255,0.3); color: #FFFFFF; }
.site-footer .social-links a:hover { color: var(--c-highlight); border-color: var(--c-highlight); background: rgba(255,255,255,0.08); }
.blog-social { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem 1rem; margin-bottom: 2.5rem; }

.section-map { width: 100%; }
.section-map iframe { display: block; }

.hero-map-full {
  border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--c-border); margin: 0 0 2.5rem;
}

.hero-contact-list { margin-top: 2rem; display: flex; flex-direction: column; gap: 1.25rem; }
.hero-contact-item { display: flex; align-items: flex-start; gap: 0.85rem; }
.hero-contact-item .icon {
  flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--c-bg-alt); color: var(--c-primary);
}
.hero-contact-item h4, .hero-contact-item .h4 { margin: 0 0 0.15rem; font-size: 0.95rem; }
.hero-contact-item a { text-decoration: underline; text-underline-offset: 2px; color: var(--c-text); font-weight: 500; }
.hero-contact-item a:hover { color: var(--c-primary); }
.hero-contact-static { color: var(--c-text-muted); font-size: 0.92rem; line-height: 1.5; }

/* ---------- Utilities ---------- */
.mt-0 { margin-top: 0; } .mb-0 { margin-bottom: 0; }
.text-muted { color: var(--c-text-muted); }
.link-btn { background: none; border: none; padding: 0; color: var(--c-primary); text-decoration: underline; cursor: pointer; font: inherit; }
.link-btn:hover { color: var(--c-accent-dark); }
.badge-todo { background: var(--c-accent-light); color: var(--c-accent-dark); font-size: 0.72rem; font-weight: 700; padding: 0.15rem 0.5rem; border-radius: 4px; text-transform: uppercase; }

/* ---------- Cookies: banner propriu, link „Setări cookies", hartă condiționată, tabel politică ---------- */
.cookie-banner {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 200;
  max-width: 960px; margin: 0 auto; padding: 1rem 1.25rem;
  background: var(--c-surface); color: var(--c-text);
  border: 1px solid var(--c-border); border-radius: var(--radius-lg);
  box-shadow: 0 20px 40px -12px rgba(0,0,0,0.35);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner:focus { outline: 2px solid var(--c-primary); outline-offset: 2px; }
.cookie-banner-inner { display: flex; align-items: center; gap: 1rem 1.5rem; }
.cookie-banner-text { margin: 0; font-size: 0.88rem; line-height: 1.55; flex: 1; }
.cookie-banner-actions { display: flex; gap: 0.6rem; flex-shrink: 0; }
.cookie-banner-actions .btn { min-width: 7rem; justify-content: center; }
@media (max-width: 720px) {
  .cookie-banner { left: 0.5rem; right: 0.5rem; bottom: 0.5rem; }
  .cookie-banner-inner { flex-direction: column; align-items: stretch; }
  .cookie-banner-actions .btn { flex: 1; }
}
.footer-link-btn {
  background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: none;
}
.site-footer .footer-link-btn { color: #FFFFFF; }
.site-footer .footer-link-btn:hover { color: var(--c-highlight); }
.map-consent { min-height: 340px; display: flex; }
/* Harta MapTiler (MapLibre, contact-map.mjs) — culorile vin din token-uri, deci urmează tema. */
.map-canvas { flex: 1; width: 100%; height: 340px; }
.map-marker { color: var(--c-primary); cursor: pointer; line-height: 0; filter: drop-shadow(0 2px 3px rgba(0,0,0,0.35)); }
.map-marker:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; border-radius: 4px; }
.map-marker-dot { fill: var(--c-on-primary); }
.map-consent .maplibregl-popup-content {
  background: var(--c-surface); color: var(--c-text); border-radius: var(--radius); padding: 0.75rem 2rem 0.75rem 0.9rem;
  font: 0.88rem/1.45 'Inter', system-ui, sans-serif; box-shadow: 0 8px 24px -8px rgba(0,0,0,0.35);
}
.map-consent .maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.map-consent .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,
.map-consent .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { border-top-color: var(--c-surface); }
.map-consent .maplibregl-popup-anchor-top .maplibregl-popup-tip,
.map-consent .maplibregl-popup-anchor-top-left .maplibregl-popup-tip,
.map-consent .maplibregl-popup-anchor-top-right .maplibregl-popup-tip { border-bottom-color: var(--c-surface); }
.map-consent .maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: var(--c-surface); }
.map-consent .maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: var(--c-surface); }
.map-consent .maplibregl-popup-close-button { color: var(--c-text-muted); font-size: 1.25rem; width: 2rem; height: 2rem; }
.map-popup strong { display: block; color: var(--c-text); }
.map-popup span { color: var(--c-text-muted); }
.map-consent .maplibregl-ctrl-attrib { font-size: 0.72rem; }
.map-maptiler-logo a { display: block; line-height: 0; }
.map-maptiler-logo img { display: block; width: 67px; height: 20px; }
.hero-map-full + .map-links { margin: -1.5rem 0 2.5rem; }
@media (max-width: 720px) { .map-consent { min-height: 300px; } .map-canvas { height: 300px; } }
.map-placeholder {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem;
  padding: 2rem 1.5rem; text-align: center; background: var(--c-bg-alt); color: var(--c-text-muted); font-size: 0.92rem;
}
.map-placeholder p { max-width: 46ch; margin: 0; }
.table-wrap { overflow-x: auto; margin: 1rem 0; }
/* Tabele late (cont client etc.): derulează orizontal în interiorul lor, nu lățesc pagina. */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.table-scroll > table { min-width: 100%; }
.legal-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.legal-table th, .legal-table td { text-align: left; vertical-align: top; padding: 0.65rem 0.75rem; border-bottom: 1px solid var(--c-border); }
.legal-table th { color: var(--c-text-muted); font-weight: 600; white-space: nowrap; }
.legal-table code { font-size: 0.82rem; }
