/* ==========================================================================
   arbitraj-adhoc.ro — sistem tipografic și tokeni
   Se include după foile de stil existente. Adaptorul de la final este activat
   numai prin profilul ales în Utilități.
   Testat pentru limba română: perechea de fonturi redă corect ș/ț cu
   virgulă dedesubt (U+0219, U+021B), nu cu sedilă.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. ÎNCĂRCAREA FONTURILOR
   Self-hosted, nu de pe Google Fonts. Motive: viteză (fără DNS + TLS către
   un al treilea domeniu), control asupra subsetului și — relevant juridic —
   evitarea transferului de adrese IP către Google fără temei și fără consimțământ,
   problemă pentru care au existat sancțiuni în UE.
   Descărcați de la: Source Serif 4 și IBM Plex Sans (ambele SIL Open Font License).
   Generați subset latin + latin-ext (latin-ext este OBLIGATORIU pentru ă â î ș ț).
   -------------------------------------------------------------------------- */

@font-face {
  font-family: 'Source Serif 4';
  src: url('/assets/fonts/SourceSerif4-Variable.woff2') format('woff2-variations');
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0218-021B, U+2000-206F;
}

@font-face {
  font-family: 'Source Serif 4';
  src: url('/assets/fonts/SourceSerif4-Italic-Variable.woff2') format('woff2-variations');
  font-weight: 300 700;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0218-021B, U+2000-206F;
}

@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0218-021B, U+2000-206F;
}

@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0218-021B, U+2000-206F;
}

@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0218-021B, U+2000-206F;
}

@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/assets/fonts/IBMPlexSans-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0218-021B, U+2000-206F;
}

/* --------------------------------------------------------------------------
   2. TOKENI
   -------------------------------------------------------------------------- */

:root {

  /* --- Familii ------------------------------------------------------------ */
  --font-display: 'Source Serif 4', 'Georgia', 'Times New Roman', serif;
  --font-body: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', monospace;

  /* --- Scara tipografică -------------------------------------------------- 
     Rație 1.25 (terță majoră) pentru titluri, cu display-ul scos din scară
     ca să existe un singur salt dramatic în pagină, nu cinci mărunte.
     Valorile fluide folosesc clamp(min, preferat, max): dispar breakpointurile
     de tipografie și textul nu mai „sare" la 768px.                          */

  --step-display: clamp(2.625rem, 1.85rem + 3.1vw, 4rem);   /*  42 →  64 px */
  --step-h1:      clamp(2.125rem, 1.65rem + 1.9vw, 3rem);   /*  34 →  48 px */
  --step-h2:      clamp(1.75rem, 1.45rem + 1.2vw, 2.375rem);/*  28 →  38 px */
  --step-h3:      clamp(1.375rem, 1.25rem + 0.5vw, 1.625rem);/* 22 →  26 px */
  --step-h4:      1.1875rem;                                /*        19 px */
  --step-lead:    clamp(1.1875rem, 1.1rem + 0.35vw, 1.375rem);/* 19 → 22 px */
  --step-body:    clamp(1.0625rem, 1.03rem + 0.15vw, 1.125rem);/* 17 → 18 px */
  --step-small:   0.9375rem;                                /*        15 px */
  --step-micro:   0.875rem;                                 /*        14 px */

  /* PRAG MINIM ABSOLUT: 14px. Nimic sub această valoare, niciodată — nici
     avertismentele juridice, nici notele de subsol, nici footerul. Textul
     mărunt pe un site juridic transmite exact mesajul greșit, iar dacă e
     vorba de informare obligatorie, ilizibilitatea poate fi ea însăși
     un viciu. Textul mic se face gri, nu minuscul.                          */

  /* --- Înălțimea rândului ------------------------------------------------- 
     Invers proporțională cu corpul literei: titlurile mari au nevoie de
     mai puțin aer între rânduri, textul curent de mai mult.                 */

  --lh-display: 1.06;
  --lh-h1:      1.12;
  --lh-h2:      1.18;
  --lh-h3:      1.28;
  --lh-lead:    1.5;
  --lh-body:    1.65;
  --lh-small:   1.55;

  /* --- Spațierea literelor ------------------------------------------------ 
     Negativă doar pe corpuri mari, unde spațierea implicită arată slăbită.
     Zero pe text curent. Fără tracking pozitiv pe majuscule — vezi nota
     din documentul de recomandări.                                          */

  --ls-display: -0.022em;
  --ls-h1:      -0.018em;
  --ls-h2:      -0.012em;
  --ls-h3:      -0.006em;
  --ls-body:     0;

  /* --- Greutăți ----------------------------------------------------------- */
  --fw-light:    300;
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  /* --- Lungimea rândului -------------------------------------------------- */
  --measure:       68ch;  /* text curent */
  --measure-lead:  46ch;  /* subtitluri și introduceri */
  --measure-title: 22ch;  /* titluri mari — forțează ruperea în locul potrivit */

  /* --- Culori ------------------------------------------------------------- 
     Navy-ul păstrat din theme-color, cu o scară de gri răcită către albastru
     ca să nu existe două temperaturi în pagină. Accentul bronz apare o singură
     dată: pe butonul principal.                                             */

  --c-ink:        #101A2B;  /* text principal — nu negru pur */
  --c-ink-soft:   #43506A;  /* text secundar */
  --c-ink-mute:   #6B7791;  /* note, metadate */
  --c-navy:       #143A73;  /* culoarea de marcă */
  --c-navy-deep:  #0D2450;
  --c-bronze:     #9C6B36;  /* accent unic */
  --c-rule:       #DCE1EA;  /* linii */
  --c-surface:    #F5F7FA;  /* fundal secțiuni alternative */
  --c-paper:      #FFFFFF;

  /* --- Ritm vertical ------------------------------------------------------ */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs:  0.75rem;
  --space-s:   1rem;
  --space-m:   1.5rem;
  --space-l:   2.5rem;
  --space-xl:  4rem;
  --space-2xl: clamp(4rem, 3rem + 5vw, 7rem);  /* între secțiuni */
}

/* --------------------------------------------------------------------------
   3. BAZĂ
   -------------------------------------------------------------------------- */

html {
  font-size: 100%;          /* NU rescrieți la 62.5% — anulează preferința
                               de mărime a fontului setată de utilizator */
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  font-size: var(--step-body);
  line-height: var(--lh-body);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-body);
  color: var(--c-ink);
  background: var(--c-paper);
  font-feature-settings: 'kern' 1, 'liga' 1;
  text-rendering: optimizeLegibility;
}

/* --------------------------------------------------------------------------
   4. TITLURI
   -------------------------------------------------------------------------- */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  color: var(--c-navy-deep);
  margin-block: 0;
  text-wrap: balance;       /* previne rândul orfan de un cuvânt */
}

.t-display {
  font-size: var(--step-display);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  font-weight: var(--fw-regular);   /* corp mare + greutate mică = editorial;
                                       corp mare + bold = promoțional */
  max-width: var(--measure-title);
}

h1, .t-h1 {
  font-size: var(--step-h1);
  line-height: var(--lh-h1);
  letter-spacing: var(--ls-h1);
  max-width: var(--measure-title);
}

h2, .t-h2 {
  font-size: var(--step-h2);
  line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2);
  max-width: 26ch;
}

h3, .t-h3 {
  font-size: var(--step-h3);
  line-height: var(--lh-h3);
  letter-spacing: var(--ls-h3);
}

h4, .t-h4 {
  font-family: var(--font-body);
  font-size: var(--step-h4);
  font-weight: var(--fw-semibold);
  line-height: 1.35;
}

/* Spațiere: titlul aparține textului care îl urmează, nu celui dinainte. */
* + h2 { margin-block-start: var(--space-xl); }
* + h3 { margin-block-start: var(--space-l); }
* + h4 { margin-block-start: var(--space-m); }
h2 + *, h3 + *, h4 + * { margin-block-start: var(--space-s); }

/* --------------------------------------------------------------------------
   5. TEXT
   -------------------------------------------------------------------------- */

p {
  margin-block: 0 var(--space-s);
  max-width: var(--measure);
  hyphens: auto;
  -webkit-hyphens: auto;
}

html[lang="ro"] { hyphens: auto; }  /* despărțirea în silabe are nevoie de lang corect */

.t-lead {
  font-size: var(--step-lead);
  line-height: var(--lh-lead);
  color: var(--c-ink-soft);
  max-width: var(--measure-lead);
  font-weight: var(--fw-regular);
}

.t-small { font-size: var(--step-small); line-height: var(--lh-small); }

.t-note {
  font-size: var(--step-micro);
  line-height: 1.6;
  color: var(--c-ink-mute);
  max-width: var(--measure);
}

/* Blocul de temei legal — element recurent pe paginile interne. */
.t-legal {
  font-size: var(--step-small);
  line-height: 1.6;
  color: var(--c-ink-soft);
  border-inline-start: 3px solid var(--c-bronze);
  padding-inline-start: var(--space-m);
  margin-block: var(--space-m);
  max-width: var(--measure);
}

/* Citat din lege — se distinge de comentariul propriu. Diferență esențială
   pe un site juridic: cititorul trebuie să știe unde se termină legea și
   unde începe interpretarea dvs. */
blockquote.lege {
  font-family: var(--font-display);
  font-size: var(--step-body);
  line-height: 1.6;
  font-style: normal;
  color: var(--c-ink);
  background: var(--c-surface);
  border-inline-start: 3px solid var(--c-navy);
  padding: var(--space-m);
  margin-block: var(--space-m);
  max-width: var(--measure);
}
blockquote.lege cite {
  display: block;
  margin-block-start: var(--space-2xs);
  font-family: var(--font-body);
  font-size: var(--step-micro);
  font-style: normal;
  color: var(--c-ink-mute);
}

/* --------------------------------------------------------------------------
   6. NAVIGAȚIE, BUTOANE, FORMULARE
   -------------------------------------------------------------------------- */

.nav a {
  font-size: 1rem;                /* 16 px — nu coborâți la 14 px */
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  text-transform: none;           /* fără majuscule */
}

.nav .submenu a { font-size: var(--step-small); }

.btn {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  letter-spacing: 0.005em;
  padding: 0.875rem 1.5rem;
  border-radius: 3px;             /* aproape drept: colțurile rotunjite mult
                                     citesc a aplicație de consum */
  text-decoration: none;
  display: inline-block;
}

.btn--primary {
  background: var(--c-navy);
  color: #fff;
  border: 1px solid var(--c-navy);
}
.btn--primary:hover { background: var(--c-navy-deep); border-color: var(--c-navy-deep); }

.btn--secondary {
  background: transparent;
  color: var(--c-navy);
  border: 1px solid var(--c-rule);
}
.btn--secondary:hover { border-color: var(--c-navy); }

label {
  font-size: var(--step-small);
  font-weight: var(--fw-medium);
  color: var(--c-ink);
}

input, select, textarea {
  font-family: var(--font-body);
  font-size: 1rem;   /* MINIM 16px pe mobil: sub această valoare, iOS Safari
                        face zoom automat la focus și strică aranjarea */
  line-height: 1.4;
  padding: 0.75rem;
  border: 1px solid var(--c-rule);
  border-radius: 3px;
  color: var(--c-ink);
  background: var(--c-paper);
}

/* --------------------------------------------------------------------------
   7. TABELE — folosite intens pe paginile de costuri și comparație
   -------------------------------------------------------------------------- */

table { font-size: var(--step-small); line-height: 1.5; border-collapse: collapse; width: 100%; }
th {
  font-weight: var(--fw-semibold);
  text-align: start;
  color: var(--c-navy-deep);
  border-block-end: 2px solid var(--c-navy);
  padding: var(--space-xs);
}
td { padding: var(--space-xs); border-block-end: 1px solid var(--c-rule); vertical-align: top; }
td.num { font-variant-numeric: tabular-nums; text-align: end; }  /* sume aliniate */

/* --------------------------------------------------------------------------
   8. ACCESIBILITATE
   -------------------------------------------------------------------------- */

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--c-bronze);
  outline-offset: 2px;
  border-radius: 2px;
}

a { color: var(--c-navy); text-underline-offset: 0.18em; text-decoration-thickness: 0.06em; }
a:hover { color: var(--c-navy-deep); }

.skip-link:focus {
  position: fixed; inset-block-start: var(--space-s); inset-inline-start: var(--space-s);
  z-index: 999; background: var(--c-paper); padding: var(--space-s);
  border: 2px solid var(--c-navy);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --------------------------------------------------------------------------
   9. TIPAR — pentru clauzele model și paginile de procedură
   Utilizatorii dvs. tipăresc aceste pagini. Merită tratate ca atare.
   -------------------------------------------------------------------------- */

@media print {
  :root { --step-body: 11pt; }
  body { font-family: var(--font-display); color: #000; background: #fff; }
  h1, h2, h3 { color: #000; page-break-after: avoid; }
  p, blockquote, table { page-break-inside: avoid; }
  .nav, .btn, footer nav, .cta, form, .search { display: none; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #444; }
  main { max-width: none; }
}

/* Integrare în șablonul arbitraj-adhoc.ro.
   Clasa de pe body face profilul opțional și permite revenirea din Utilități. */
body.typography-profile-recomandata_2026 {
  font-family: var(--font-body);
  font-size: var(--step-body);
  line-height: var(--lh-body);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-body);
  color: var(--c-ink);
  background: var(--c-paper);
}

.typography-profile-recomandata_2026 h1,
.typography-profile-recomandata_2026 h2,
.typography-profile-recomandata_2026 h3,
.typography-profile-recomandata_2026 h4,
.typography-profile-recomandata_2026 h5,
.typography-profile-recomandata_2026 h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  color: var(--c-navy-deep);
}

.typography-profile-recomandata_2026 h1 {
  font-size: var(--step-h1);
  line-height: var(--lh-h1);
  letter-spacing: var(--ls-h1);
}

.typography-profile-recomandata_2026 h2 {
  font-size: var(--step-h2);
  line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2);
}

.typography-profile-recomandata_2026 h3 {
  font-size: var(--step-h3);
  line-height: var(--lh-h3);
  letter-spacing: var(--ls-h3);
}

.typography-profile-recomandata_2026 h4 {
  font-family: var(--font-body);
  font-size: var(--step-h4);
  line-height: 1.35;
}

.typography-profile-recomandata_2026 .navbar-brand span,
.typography-profile-recomandata_2026 .navbar-brand strong {
  font-family: var(--font-display);
  letter-spacing: var(--ls-h2);
}

.typography-profile-recomandata_2026 .landing-hero h1 {
  max-width: var(--measure-title);
  font-size: var(--step-display);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  font-weight: var(--fw-regular);
  color: #fff;
}

.typography-profile-recomandata_2026 .landing-section h2,
.typography-profile-recomandata_2026 .landing-section h3,
.typography-profile-recomandata_2026 .landing-section h4 {
  margin-block-start: 0;
}

.typography-profile-recomandata_2026 .landing-section .section-kicker + h2,
.typography-profile-recomandata_2026 .landing-section .section-kicker + h3 {
  margin-top: .4rem;
}

.typography-profile-recomandata_2026 .landing-section:not(.landing-hero) p,
.typography-profile-recomandata_2026 .landing-section:not(.landing-hero) ul,
.typography-profile-recomandata_2026 .landing-section:not(.landing-hero) ol,
.typography-profile-recomandata_2026 .landing-section:not(.landing-hero) blockquote,
.typography-profile-recomandata_2026 .landing-section:not(.landing-hero) .landing-heading,
.typography-profile-recomandata_2026 .landing-section:not(.landing-hero) .landing-heading h2,
.typography-profile-recomandata_2026 .landing-section:not(.landing-hero) .landing-faq-item > div,
.typography-profile-recomandata_2026 .footer-warning-band p {
  width: 100%;
  max-width: none;
}

.typography-profile-recomandata_2026 .landing-people-panel h2,
.typography-profile-recomandata_2026 .landing-people-panel h3,
.typography-profile-recomandata_2026 .landing-people-panel h4,
.typography-profile-recomandata_2026 .landing-assessment h2,
.typography-profile-recomandata_2026 .landing-assessment h3,
.typography-profile-recomandata_2026 .landing-assessment h4,
.typography-profile-recomandata_2026 .site-footer h2,
.typography-profile-recomandata_2026 .site-footer h3,
.typography-profile-recomandata_2026 .site-footer h4 {
  color: #fff;
}

.typography-profile-recomandata_2026 .page-content {
  font-size: var(--step-body);
  line-height: var(--lh-body);
}

.typography-profile-recomandata_2026 .btn {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  letter-spacing: .005em;
  padding: .875rem 1.5rem;
  border-radius: 3px;
}

.typography-profile-recomandata_2026 .header-nav .nav-link {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  text-transform: none;
}

.typography-profile-recomandata_2026 .footer-navigation a,
.typography-profile-recomandata_2026 .footer-contact-menu a {
  font-family: var(--font-body);
  font-size: .82rem;
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  text-transform: none;
}

.typography-profile-recomandata_2026 .language-switcher a,
.typography-profile-recomandata_2026 .section-kicker,
.typography-profile-recomandata_2026 .landing-step-number,
.typography-profile-recomandata_2026 .landing-resource-icon,
.typography-profile-recomandata_2026 .landing-resource-status,
.typography-profile-recomandata_2026 .footer-warning-band p {
  font-size: var(--step-micro);
}

.typography-profile-recomandata_2026 label {
  font-family: var(--font-body);
  font-size: var(--step-small);
  font-weight: var(--fw-medium);
}

.typography-profile-recomandata_2026 input,
.typography-profile-recomandata_2026 select,
.typography-profile-recomandata_2026 textarea {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.4;
}

.typography-profile-recomandata_2026 table {
  font-family: var(--font-body);
  font-size: var(--step-small);
  line-height: 1.5;
}

.typography-profile-recomandata_2026 td.num {
  font-variant-numeric: tabular-nums;
}

/*
 * În profilul activ, fiecare bloc de text folosește întreaga lățime utilă a
 * casetei sale. Limitele editoriale de 68ch/26ch lăsau coloane albe în
 * paginile obișnuite, deși articolul sau modulul era deja extins la 100%.
 */
.typography-profile-recomandata_2026 main :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, .t-display, .t-lead, .t-note, .t-legal),
.typography-profile-recomandata_2026 .page-title-section :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, .t-display, .t-lead, .t-note, .t-legal),
.typography-profile-recomandata_2026 .site-footer :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, .t-display, .t-lead, .t-note, .t-legal) {
  max-width: none;
}

.typography-profile-recomandata_2026 main :is(
  .public-page-featured-media,
  .faq-answer-body,
  .blog-intro,
  .blog-article,
  .search-section,
  .newsletter-section,
  .newsletter-intro,
  .consultanta-option-extra,
  .fee-calculator-intro,
  .fee-help-static,
  .fee-section-note,
  .homepage-section-heading,
  .autoevaluare-section,
  .autoevaluare-success
) {
  width: 100%;
  max-width: none;
}

.typography-profile-recomandata_2026 :is(.toc-description, .blog-article-subtitle, .search-snippet) {
  max-width: none;
}
