*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── SCREEN READER ONLY ── */
.sr-only{
  position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.field-error:not(:empty){
  position:static;width:auto;height:auto;
  clip:auto;white-space:normal;margin:0;
  display:block;
  font-size:0.78rem;color:#8e2218; /* AAA: 8.78:1 pe white, 7.79:1 pe --warm */
  margin-top:0.3rem;font-weight:500;
}
.fg input[aria-invalid="true"],
.fg textarea[aria-invalid="true"]{
  border-color:#8e2218;
  box-shadow:0 0 0 3px rgba(142,34,24,0.15);
}
.skip-link{
  position:absolute;top:-100px;left:1rem;
  background:var(--indigo);color:white;
  padding:0.75rem 1.5rem;border-radius:0 0 4px 4px;
  font-size:0.9rem;font-weight:600;
  text-decoration:none;z-index:9999;
  transition:top 0.2s;
}
.skip-link:focus{top:0;}

:root{
  --ink:#0a0c10;
  --paper:#fafaf8;
  --warm:#f4f1eb;
  --indigo:#2d3a8c;
  --indigo-light:#4a5ab8;
  --indigo-pale:#e8eaf8;
  --gold:#c8963e;
  --mid:#4a4650; /* fixat: 5.8:1 pe --paper, trece AA */
  --mid-on-dark:rgba(255,255,255,0.92); /* AAA 7:1 pe --ink */
  --mid-on-indigo:rgba(255,255,255,0.95); /* AAA pe --indigo */
  --line:rgba(10,12,16,0.12);
  --dot-size:3px;
  --dot-gap:22px;
}

html{scroll-behavior:smooth}
body{
  font-family:'DM Sans',sans-serif;
  background:var(--paper);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}

/* ── SCROLL MARGIN (nav fix acoperă secțiunile) ── */
section[id]{
  scroll-margin-top: 80px;
}
/* JAWS/NVDA: tabindex=-1 e setat prin JS pe elementele target */
.dot-bg{
  position:relative;
}
.dot-bg::before{
  content:'';
  position:absolute;inset:0;
  background-image:radial-gradient(circle, rgba(45,58,140,0.12) var(--dot-size), transparent var(--dot-size));
  background-size:var(--dot-gap) var(--dot-gap);
  pointer-events:none;z-index:0;
}

/* ── NAV ── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem 3rem;
  background:rgba(250,250,248,0.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-brand{
  display:flex;align-items:center;gap:0.9rem;
  text-decoration:none;
}
.nav-dots{
  display:grid;grid-template-columns:repeat(3,6px);gap:4px;
}
.nav-dots span{
  width:6px;height:6px;border-radius:50%;
  background:var(--indigo);
  opacity:0.3;
}
.nav-dots span:nth-child(1),.nav-dots span:nth-child(5){opacity:1;}
.nav-dots span:nth-child(3),.nav-dots span:nth-child(7){opacity:0.6;}
.nav-name{
  font-family:'DM Serif Display',serif;
  font-size:1rem;color:var(--ink);
}
.nav-name em{font-style:italic;color:var(--indigo);}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{
  font-size:0.8rem;font-weight:500;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--mid);text-decoration:none;
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--indigo);}
.nav-cta{
  background:var(--indigo);color:white;
  padding:0.55rem 1.3rem;border-radius:3px;
  font-size:0.8rem;font-weight:600;letter-spacing:0.05em;
  text-transform:uppercase;text-decoration:none;
  transition:background 0.2s,transform 0.2s;
}
.nav-cta:hover{background:var(--indigo-light);transform:translateY(-1px);}

/* ── HERO ── */
.hero{
  min-height:100vh;
  display:grid;grid-template-columns:1fr 1fr;
  padding-top:4.5rem;
  overflow:hidden;
}
.hero-left{
  display:flex;flex-direction:column;justify-content:center;
  padding:5rem 3.5rem 5rem 4.5rem;
  position:relative;z-index:1;
}
.hero-eyebrow{
  display:flex;align-items:center;gap:0.6rem;
  margin-bottom:2rem;
}
.eyebrow-dots{
  display:flex;gap:5px;
}
.eyebrow-dots span{
  width:8px;height:8px;border-radius:50%;
  background:var(--indigo);
}
.eyebrow-dots span:nth-child(2){opacity:0.5;}
.eyebrow-dots span:nth-child(3){opacity:0.2;}
.eyebrow-text{
  font-family:'DM Mono',monospace;
  font-size:0.68rem;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--indigo);
}
.hero-title{
  font-family:'DM Serif Display',serif;
  font-size:clamp(2.6rem,4.5vw,3.8rem);
  line-height:1.08;letter-spacing:-0.02em;
  margin-bottom:1.8rem;
}
.hero-title .line2{
  font-style:italic;color:var(--indigo);
}
.hero-sub{
  font-size:1.05rem;color:var(--mid);
  max-width:46ch;line-height:1.75;
  margin-bottom:2.5rem;
}
.hero-sub strong{color:var(--ink);}
.hero-pills{
  display:flex;flex-wrap:wrap;gap:0.6rem;
  margin-bottom:2.5rem;
  list-style:none;padding:0;
}
.pill{
  display:flex;align-items:center;gap:0.4rem;
  padding:0.35rem 0.9rem;
  border:1.5px solid var(--line);
  border-radius:100px;
  font-size:0.78rem;font-weight:500;
  color:var(--mid);
}
.pill .dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--indigo);flex-shrink:0;
}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}
.btn-primary{
  background:var(--indigo);color:white;
  padding:0.9rem 2.2rem;
  font-size:0.9rem;font-weight:600;
  border:none;border-radius:3px;
  text-decoration:none;cursor:pointer;
  font-family:inherit;
  transition:background 0.25s,transform 0.2s;
}
.btn-primary:hover{background:var(--indigo-light);transform:translateY(-2px);}
.btn-ghost{
  background:transparent;color:var(--ink);
  padding:0.9rem 2.2rem;
  font-size:0.9rem;font-weight:500;
  border:1.5px solid var(--ink);border-radius:3px;
  text-decoration:none;
  transition:all 0.25s;
}
.btn-ghost:hover{background:var(--ink);color:var(--paper);}

/* HERO RIGHT — Braille showcase */
.hero-right{
  background:var(--indigo);
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;
  padding:5rem 4rem;
}
.hero-right::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(255,255,255,0.08) 2px,transparent 2px);
  background-size:20px 20px;
}
.hero-right::after{
  content:'';
  position:absolute;bottom:-80px;right:-80px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(74,90,184,0.5) 0%,transparent 70%);
  pointer-events:none;
}
.braille-display{
  position:relative;z-index:1;
  margin-bottom:3rem;
}
.braille-word{
  display:flex;gap:1.5rem;flex-wrap:wrap;
  margin-bottom:1rem;
}
.braille-char{
  display:flex;flex-direction:column;
  align-items:center;gap:1rem;
}
.braille-cell{
  display:grid;
  grid-template-columns:repeat(2,14px);
  grid-template-rows:repeat(3,14px);
  gap:8px;
}
.bd{
  width:14px;height:14px;border-radius:50%;
  background:rgba(255,255,255,0.15);
  transition:background 0.3s;
}
.bd.on{background:white;}
.braille-letter{
  font-family:'DM Mono',monospace;
  font-size:0.65rem;letter-spacing:0.1em;
  color:rgba(255,255,255,0.55); /* crescut de la 0.4 — element decorativ, aria-hidden pe părinte */
  text-transform:uppercase;
}

.hero-tagline{
  position:relative;z-index:1;
  font-family:'DM Serif Display',serif;
  font-size:1.6rem;font-style:italic;
  color:white;line-height:1.3;
  margin-bottom:2rem;
}
.hero-tagline span{
  color:rgba(255,255,255,0.92);
  font-style:normal;
  font-family:'DM Sans',sans-serif;
  font-size:0.85rem;
  display:block;margin-top:0.5rem;
  letter-spacing:0.05em;
}

.hero-upa{
  position:relative;z-index:1;
  padding:1.2rem 1.5rem;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.15);
  border-radius:4px;
}
.hero-upa p{
  font-size:0.82rem;color:rgba(255,255,255,0.9);
  line-height:1.55;
}
.hero-upa strong{color:white;}

/* ── SECTION BASE ── */
section{position:relative;}
.section-inner{max-width:1200px;margin:0 auto;padding:6rem 3rem;}
.section-label{
  font-family:'DM Mono',monospace;
  font-size:0.68rem;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--indigo);
  margin-bottom:0.8rem;
  display:flex;align-items:center;gap:0.6rem;
}
.section-label::before{
  content:'';
  display:inline-block;
  width:20px;height:2px;background:var(--indigo);
}
.section-title{
  font-family:'DM Serif Display',serif;
  font-size:clamp(2rem,3.5vw,2.9rem);
  line-height:1.15;letter-spacing:-0.01em;
  margin-bottom:1rem;
}
.section-lead{
  font-size:1.05rem;color:var(--mid);
  max-width:58ch;line-height:1.75;
  margin-bottom:3.5rem;
}

/* ── BRAILLE HERO SECTION ── */
.braille-section{
  background:var(--ink);
  color:var(--paper);
  position:relative;overflow:hidden;
}
.braille-section::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(45,58,140,0.25) 2px,transparent 2px);
  background-size:24px 24px;
}
.braille-section .section-inner{position:relative;z-index:1;}
.braille-section .section-label{color:rgba(255,255,255,0.75);}
.braille-section .section-label::before{background:rgba(255,255,255,0.65);}
.braille-section .section-title{color:white;}
.braille-section .section-lead{color:rgba(255,255,255,0.92);}

.braille-big-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px;
  margin-bottom:2px;
  border-radius:6px 6px 0 0;
  overflow:hidden;
}
.braille-feature{
  background:rgba(255,255,255,0.04);
  padding:3rem;
  position:relative;
  transition:background 0.3s;
  border:1px solid rgba(255,255,255,0.06);
}
.braille-feature:hover{background:rgba(45,58,140,0.25);}
.bf-icon{
  width:56px;height:56px;
  background:var(--indigo);border-radius:4px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;
  margin-bottom:1.5rem;
}
.braille-feature h3{
  font-family:'DM Serif Display',serif;
  font-size:1.4rem;color:white;
  margin-bottom:0.75rem;
  line-height:1.2;
}
.braille-feature p{
  font-size:0.88rem;color:rgba(255,255,255,0.92);
  line-height:1.7;
}
.braille-feature ul{
  list-style:none;margin-top:1.2rem;
  display:flex;flex-direction:column;gap:0.5rem;
}
.braille-feature ul li{
  font-size:0.82rem;color:rgba(255,255,255,0.92);
  display:flex;align-items:flex-start;gap:0.6rem;
  line-height:1.5;
}
.braille-feature ul li::before{
  content:'·';color:#8a97db; /* AAA 7.02:1 pe --ink */
  font-size:1.2rem;line-height:1;flex-shrink:0;
}
.bf-tag{
  display:inline-block;margin-top:1.5rem;
  padding:0.3rem 0.8rem;
  background:var(--indigo);
  border-radius:2px;
  font-size:0.7rem;font-weight:600;
  letter-spacing:0.08em;text-transform:uppercase;
  color:rgba(255,255,255,0.9);
}

.braille-small-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
  border-radius:0 0 6px 6px;
  overflow:hidden;
}
.braille-mini{
  background:rgba(45,58,140,0.18);
  padding:2rem;
  border:1px solid rgba(255,255,255,0.05);
  transition:background 0.25s;
}
.braille-mini:hover{background:rgba(45,58,140,0.35);}
.bm-icon{font-size:1.3rem;margin-bottom:0.8rem;}
.braille-mini h3,.braille-mini .bm-title{
  font-size:0.95rem;font-weight:600;
  color:white;margin-bottom:0.4rem;
}
.braille-mini p{
  font-size:0.8rem;color:rgba(255,255,255,0.92);
  line-height:1.6;
}

.braille-cta-strip{
  margin-top:3rem;
  padding:2rem 2.5rem;
  background:var(--indigo);
  border-radius:4px;
  display:flex;align-items:center;justify-content:space-between;
  gap:2rem;flex-wrap:wrap;
}
.braille-cta-strip p{
  font-size:1rem;color:white;
  font-family:'DM Serif Display',serif;
  font-style:italic;
}
.braille-cta-strip p span{
  display:block;font-family:'DM Sans',sans-serif;
  font-style:normal;font-size:0.82rem;
  color:rgba(255,255,255,0.6);margin-top:0.2rem;
}

/* ── SEPARATOR BRAILLE STRIP ── */
.braille-strip{
  background:var(--indigo-pale);
  padding:1.5rem 3rem;
  overflow:hidden;
  position:relative;
}
.braille-strip-inner{
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;gap:2rem;
}
.strip-label{
  font-family:'DM Mono',monospace;
  font-size:0.65rem;letter-spacing:0.15em;
  text-transform:uppercase;color:var(--indigo);
  white-space:nowrap;flex-shrink:0;
}
.strip-cells{
  display:flex;gap:1.2rem;flex-wrap:nowrap;
  overflow:hidden;
}
.strip-cell{
  display:grid;grid-template-columns:repeat(2,8px);
  grid-template-rows:repeat(3,8px);gap:5px;flex-shrink:0;
}
.sc{
  width:8px;height:8px;border-radius:50%;
  background:rgba(45,58,140,0.15);
}
.sc.on{background:var(--indigo);}

/* ── DIGITAL SERVICES ── */
.digital-services{background:var(--warm);}
.services-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(270px,1fr));
  gap:1.5rem;
}
.svc-card{
  background:white;
  border:1px solid var(--line);
  border-radius:4px;padding:2rem;
  transition:transform 0.25s,box-shadow 0.25s,border-color 0.25s;
}
.svc-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 30px rgba(45,58,140,0.1);
  border-color:var(--indigo-light);
}
.svc-num{
  font-family:'DM Mono',monospace;
  font-size:0.65rem;letter-spacing:0.1em;
  color:var(--indigo);margin-bottom:1rem;
}
.svc-card h3{font-size:0.98rem;font-weight:600;margin-bottom:0.6rem;}
.svc-card p{font-size:0.83rem;color:var(--mid);line-height:1.65;}
.svc-tags{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:1.2rem;}
.tag{
  font-size:0.67rem;font-weight:500;
  background:var(--indigo-pale);color:var(--indigo);
  padding:0.2rem 0.6rem;border-radius:2px;
  letter-spacing:0.04em;
}

/* ── UPA ADVANTAGE ── */
.upa-section{background:var(--paper);}
.upa-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:6px;overflow:hidden;
  margin-bottom:1px;
}
.upa-grid-bottom{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--line);
  border:1px solid var(--line);border-top:none;
  border-radius:0 0 6px 6px;overflow:hidden;
}
.upa-card{
  background:var(--paper);
  padding:2.5rem 2rem;
  transition:background 0.25s;
}
.upa-card:hover{background:var(--indigo-pale);}
.upa-card-icon{
  width:40px;height:40px;
  background:var(--indigo-pale);border-radius:3px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;margin-bottom:1rem;
}
.upa-card h3{font-size:0.95rem;font-weight:600;margin-bottom:0.5rem;}
.upa-card p{font-size:0.82rem;color:var(--mid);line-height:1.6;}

.upa-highlight{
  margin-top:2.5rem;
  background:var(--ink);color:white;
  border-radius:4px;padding:2.5rem 3rem;
  display:flex;align-items:center;gap:3rem;flex-wrap:wrap;
}
.upa-hl-num{
  font-family:'DM Serif Display',serif;
  font-size:5rem;font-weight:400;color:white;
  line-height:1;flex-shrink:0;
}
.upa-hl-num span{
  font-size:2.5rem;color:rgba(255,255,255,0.65);
}
.upa-hl-text p{font-size:0.9rem;color:rgba(255,255,255,0.92);line-height:1.7;}
.upa-hl-text strong{color:white;}

/* ── PROCESS ── */
.process-section{background:var(--ink);color:white;}
.process-section::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(45,58,140,0.2) 2px,transparent 2px);
  background-size:28px 28px;
  pointer-events:none;
}
.process-section .section-inner{position:relative;z-index:1;}
.process-section .section-label{color:rgba(255,255,255,0.7);}
.process-section .section-label::before{background:rgba(255,255,255,0.65);}
.process-section .section-title{color:white;}
.process-section .section-lead{color:rgba(255,255,255,0.92);}

.process-steps{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
}
.proc-step{
  position:relative;padding:2.5rem 2rem;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  transition:background 0.25s,border-color 0.25s;
}
.proc-step:hover{
  background:rgba(45,58,140,0.25);
  border-color:rgba(45,58,140,0.5);
}
.proc-step-num{
  font-family:'DM Mono',monospace;
  font-size:0.65rem;letter-spacing:0.15em;
  color:#8a97db; /* AAA 7.02:1 pe --ink */
  margin-bottom:1.2rem;
}
.proc-step-icon{font-size:1.4rem;margin-bottom:0.8rem;}
.proc-step h3{
  font-size:0.95rem;font-weight:600;
  color:white;margin-bottom:0.5rem;
}
.proc-step p{font-size:0.82rem;color:rgba(255,255,255,0.92);line-height:1.6;}

/* ── DESPRE ── */
.despre-grid{
  display:grid;grid-template-columns:3fr 2fr;
  gap:5rem;align-items:start;
}
.despre-content p{
  font-size:1rem;color:var(--mid);
  line-height:1.8;margin-bottom:1.2rem;
}
.despre-content p strong{color:var(--ink);}
.standards-box{
  background:var(--ink);color:white;
  border-radius:4px;padding:2rem;
  position:sticky;top:6rem;
}
.standards-box h3,.standards-box .standards-title{
  font-family:'DM Serif Display',serif;
  font-size:1.1rem;color:white;
  margin-bottom:1.5rem;
  padding-bottom:1rem;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.std-item{
  display:flex;align-items:flex-start;gap:0.8rem;
  margin-bottom:1.2rem;
}
.std-dot-col{
  display:grid;grid-template-columns:repeat(2,6px);
  grid-template-rows:repeat(3,6px);gap:3px;
  margin-top:2px;flex-shrink:0;
}
.sd{
  width:6px;height:6px;border-radius:50%;
  background:rgba(255,255,255,0.15);
}
.sd.on{background:var(--indigo-light);}
.std-item p{font-size:0.82rem;color:rgba(255,255,255,0.92);line-height:1.5;}
.std-item strong{color:white;}

/* ── CONTACT ── */
.contact-section{background:var(--warm);}
.contact-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:5rem;
}
.contact-intro p{
  font-size:1rem;color:var(--mid);
  line-height:1.8;margin-bottom:2rem;
}
.contact-detail{
  display:flex;align-items:center;gap:0.75rem;
  margin-bottom:0.9rem;
}
.contact-detail .ico{
  width:32px;height:32px;
  background:var(--indigo-pale);border-radius:3px;
  display:flex;align-items:center;justify-content:center;
  font-size:0.9rem;flex-shrink:0;
}
.contact-detail p{font-size:0.9rem;color:var(--mid);}
.contact-detail a{color:var(--indigo);text-decoration:underline;text-underline-offset:3px;}
.contact-detail a:hover{color:#1a2370;}

.contact-upa{
  margin-top:2rem;padding:1.5rem;
  background:var(--indigo);border-radius:4px;
}
.contact-upa p{
  font-size:0.82rem;color:rgba(255,255,255,0.9);
  line-height:1.6;
}
.contact-upa strong{color:white;}

.contact-form{display:flex;flex-direction:column;gap:1rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.fg{display:flex;flex-direction:column;}
.fg label{
  font-size:0.7rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--mid);margin-bottom:0.4rem;
}
.fg input,.fg select,.fg textarea{
  background:white;
  border:1.5px solid var(--line);
  color:var(--ink);padding:0.75rem 1rem;
  font-size:0.9rem;font-family:inherit;
  border-radius:3px;
  transition:border-color 0.2s,box-shadow 0.2s;
}
.fg input:focus,.fg select:focus,.fg textarea:focus{
  border-color:var(--indigo);
  box-shadow:0 0 0 3px rgba(45,58,140,0.35);
  outline:3px solid var(--indigo);
  outline-offset:2px;
}
.fg textarea{resize:vertical;min-height:110px;}
.form-submit{
  background:var(--indigo);color:white;border:none;
  padding:1rem 2rem;font-size:0.9rem;font-weight:600;
  font-family:inherit;border-radius:3px;cursor:pointer;
  transition:background 0.25s,transform 0.2s;
  align-self:flex-start;letter-spacing:0.03em;
}
.form-submit:hover{background:var(--indigo-light);transform:translateY(-2px);}

/* ── FOOTER ── */
footer{
  background:#06070b;padding:2rem 3rem;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;
}
footer p{font-size:0.75rem;color:rgba(255,255,255,0.87);}
.footer-links{display:flex;gap:1.5rem;}
.footer-links a{
  font-size:0.75rem;color:rgba(255,255,255,0.87);
  text-decoration:underline;
  text-underline-offset:3px;
  transition:color 0.2s;
}
.footer-links a:hover{color:white;text-decoration:underline;}

/* ── ANIMATIONS ── */
.fade-up{opacity:0;transform:translateY(28px);transition:opacity 0.7s ease,transform 0.7s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* ── FOCUS STYLES (2.4.7 / 2.4.13 AAA) ── */
:focus-visible{
  outline:3px solid #1a2370; /* indigo mai închis: contrast AAA pe fond deschis */
  outline-offset:3px;
  border-radius:2px;
}
.nav-cta:focus-visible,
.btn-primary:focus-visible,
.btn-ghost:focus-visible,
.form-submit:focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
  box-shadow:0 0 0 6px var(--indigo);
}
.fg input:focus-visible,
.fg select:focus-visible,
.fg textarea:focus-visible{
  outline:3px solid var(--indigo);
  outline-offset:2px;
  border-color:var(--indigo);
  box-shadow:0 0 0 4px rgba(45,58,140,0.25);
}

/* ── REDUCED MOTION (2.3.3) ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
  html{scroll-behavior:auto;}
  .fade-up{opacity:1;transform:none;transition:none;}
}
/* noscript fallback: fara JS, elementele fade-up raman vizibile */
.no-js .fade-up{opacity:1;transform:none;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* print fallback: la printare toate elementele sunt vizibile */
@media print{
  .fade-up{opacity:1;transform:none;transition:none;}
}

/* ── RESPONSIVE ── */
@media(max-width:960px){
  .hero{grid-template-columns:1fr;min-height:auto;}
  .hero-right{display:none;}
  .hero-left{padding:7rem 2rem 4rem;}
  .braille-big-grid,.contact-grid,.despre-grid,.upa-grid{grid-template-columns:1fr;gap:2rem;}
  .braille-small-grid,.process-steps,.upa-grid-bottom{grid-template-columns:1fr 1fr;}
  nav{padding:1rem 1.5rem;}
  .section-inner{padding:4rem 1.5rem;}
}
.menu-toggle{
  display:none;
  background:none;border:none;cursor:pointer;
  padding:0.4rem;border-radius:3px;
  flex-direction:column;gap:5px;
  align-items:center;justify-content:center;
}
.menu-toggle:focus-visible{
  outline:3px solid var(--indigo);
  outline-offset:3px;
}
.menu-toggle .bar{
  display:block;width:22px;height:2px;
  background:var(--ink);border-radius:2px;
  transition:transform 0.3s,opacity 0.3s;
}
.menu-toggle[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] .bar:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(max-width:960px){
  .menu-toggle{display:flex;}
  .nav-links{
    display:none;
    position:fixed;top:57px;left:0;right:0;
    background:rgba(250,250,248,0.98);
    backdrop-filter:blur(12px);
    flex-direction:column;gap:0;
    border-bottom:1px solid var(--line);
    padding:0.5rem 0;
    z-index:99;
  }
  .nav-links.open{display:flex;}
  .nav-links li a{
    display:block;padding:0.9rem 2rem;
    font-size:0.9rem;
    border-bottom:1px solid var(--line);
  }
  .nav-links li:last-child a{margin:0.5rem 1.5rem;border:none;text-align:center;}
}
@media(max-width:600px){
  .form-row,.braille-small-grid,.process-steps,.upa-grid-bottom{grid-template-columns:1fr;}
  .braille-cta-strip{flex-direction:column;align-items:flex-start;}
  .upa-highlight{flex-direction:column;gap:1rem;}
}

/* ── FAQ SECTION ── */
.faq-section{
  background:var(--warm);
  padding:5rem 0;
}
.faq-list{
  max-width:820px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:0;
}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-item:first-child{
  border-top:1px solid var(--line);
}
.faq-item summary{
  padding:1.4rem 0;
  font-size:1rem;
  font-weight:600;
  color:var(--ink);
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  line-height:1.4;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:'+';
  font-size:1.4rem;
  font-weight:300;
  color:var(--indigo);
  flex-shrink:0;
  transition:transform 0.25s;
  line-height:1;
}
.faq-item[open] summary::after{
  transform:rotate(45deg);
}
.faq-item summary:hover{
  color:var(--indigo);
}
.faq-item summary:focus-visible{
  outline:3px solid var(--indigo);
  outline-offset:2px;
  border-radius:2px;
}
.faq-answer{
  padding:0 0 1.4rem 0;
  color:var(--mid);
  line-height:1.75;
  font-size:0.97rem;
}
.faq-answer p strong{
  color:var(--ink);
}
@media(max-width:600px){
  .faq-item summary{ font-size:0.93rem; }
}
