/*
 * Acoperișuri Vest — componentele comune paginilor (template-parts/components/*).
 * Se încarcă pe toate paginile, după layout.css (inc/setup-pages.php).
 * Sursa: stilurile inline din docs/redesign/design-reference/canvas/*.dc.html.
 * O secțiune per componentă; task-urile următoare adaugă secțiunile lor la final.
 */

/* ---------- Cap de secțiune (section-head.php) ----------
 * Main: „Dosare de lucrare”, „Ce executăm”, „Înainte să semnați” (44 px); „Materiale”, „Zona de lucru” și
 * Despre (40 px); Servicii (grupe), Lucrare, Serviciu, Despre „Date de identificare” (36 px).
 * La 390 px designul păstrează aceleași mărimi (capturile *-390.png); Acasă pe telefon (Mobil.dc.html)
 * are mărimi proprii, puse din pages/home.css.
 */

.av-sh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px}
.av-sh__main{display:flex;flex-direction:column;gap:var(--av-sh-gap,14px);min-width:0}
.av-sh__eticheta{margin:0;color:var(--av-red)}
.av-sh__titlu{font-size:44px;line-height:1.08;overflow-wrap:break-word}
.av-sh__text{margin:0;font-size:17px;line-height:1.6;color:var(--av-text-2)}

.av-sh--medie .av-sh__titlu{font-size:40px}
.av-sh--mica .av-sh__titlu{font-size:36px;line-height:normal}
.av-sh--medie .av-sh__text,.av-sh--mica .av-sh__text{font-size:16px}

/* textul în dreapta titlului („Ce executăm”) */
.av-sh--lateral>.av-sh__text{max-width:380px;font-size:16px}

/* linkul subliniat din dreapta („Toate lucrările →”) */
.av-sh__link{font-weight:600;color:var(--av-text);text-decoration:none;border-bottom:2px solid var(--av-red);padding-bottom:4px}
.av-sh__link:hover{color:var(--av-red-link-hover)}
/* textul gri pe fond deschis = --av-text-3 (#575E65, AA); --av-line-muted (#6B737B) rămâne pentru linii / fond închis */
.av-sh__nota{color:var(--av-text-3)}

/* grupele din Servicii: linie groasă sub cap */
.av-sh--linie{border-bottom:2px solid var(--av-graphite);padding-bottom:18px}

/* pe fond grafit */
.av-sh--inchis .av-sh__eticheta{color:var(--av-red-on-dark)}
.av-sh--inchis .av-sh__titlu{color:var(--av-white)}
.av-sh--inchis .av-sh__text{color:var(--av-text-on-dark-3)}
.av-sh--inchis .av-sh__link{color:var(--av-white);border-bottom-color:var(--av-red-on-dark)}
.av-sh--inchis .av-sh__link:hover{color:var(--av-text-on-dark-2)}
.av-sh--inchis .av-sh__nota{color:var(--av-text-on-dark-3)}
.av-sh--inchis.av-sh--linie{border-bottom-color:var(--av-line-dark)}

/* ---------- Bloc roșu de final (cta.php) ----------
 * Servicii / Lucrări / Lucrare / Despre: 56 px sus-jos, titlu 36 px, butoane pe rând în dreapta.
 * Acasă ('mare'): 64 px, titlu 40 px, butoane una sub alta (min. 260 px).
 */

.av-cta{--av-cta-text:#FBE3E0;background:var(--av-red);color:var(--av-white)}
/* pe roșu, inelul de focus e alb cu halou grafit */
.av-cta{--av-focus:var(--av-white);--av-focus-halo:var(--av-graphite)}
.av-cta__in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding-top:56px;padding-bottom:56px}
.av-cta__text{flex:1 1 520px;min-width:0}
.av-cta__titlu{font-size:36px;line-height:1.1;color:var(--av-white);overflow-wrap:break-word}
.av-cta__p{margin:10px 0 0;font-size:16px;color:var(--av-cta-text)}
.av-cta__butoane{display:flex;flex-wrap:wrap;gap:12px}
.av-cta .av-cta__contur{background:transparent;border:1px solid var(--av-white);color:var(--av-white)}
.av-cta .av-cta__contur:hover{background:rgba(255,255,255,.12);color:var(--av-white)}

.av-cta--mare .av-cta__in{padding-top:64px;padding-bottom:64px}
.av-cta--mare .av-cta__titlu{font-size:40px}
.av-cta--mare .av-cta__p{margin-top:12px;line-height:1.6}
.av-cta--mare .av-cta__butoane{flex-direction:column;flex-wrap:nowrap;min-width:260px}
.av-cta--mare .btn{justify-content:center}

/* ---------- Hero-ul paginilor interioare (page-hero.php) ----------
 * Servicii: pesmet + h1 (max. 820 px) + text (max. 680 px), 72 px sus-jos.
 * Lucrări ('cifre_pozitie' => 'dreapta'): text în max. 720 px, cifrele de 44 px în dreapta, jos 64 px.
 * Despre ('imagine'): text + imagine (min. 440 px) pe rând, apoi banda de cifre cu linii între celule.
 * Contact ('ton' => 'deschis'): doar blocul de titlu pe fond deschis, h1 52 px.
 * La 390 px designul păstrează aceleași mărimi (capturile *-390.png); se schimbă doar marginea .wrap.
 */

.av-ph{--av-focus:var(--av-red-on-dark);background:var(--av-graphite);color:var(--av-white)}
.av-ph__in{padding-top:72px;padding-bottom:72px}
.av-ph__main{display:flex;flex-direction:column;gap:16px;min-width:0}
.av-ph__pesmet{font-size:11px;color:var(--av-text-on-dark-3)}
.av-ph__pesmet a{color:var(--av-text-on-dark-3);text-decoration:none}
.av-ph__pesmet a:hover{color:var(--av-white)}
.av-ph__pesmet span{color:var(--av-white)}

/* ---------- Ținte de atingere ≥ 44 px (SPEC §7, V4-44) ----------
   Sub 1100 px și pe orice ecran tactil, linkurile mici din text cresc la 44 px înălțime; marginea negativă
   (jumătate din diferența față de înălțimea rândului, `1lh`) le păstrează locul în rând, deci textul nu se mișcă.
   Cu mouse peste 1100 px nu se schimbă nimic. Reutilizabil: clasa `.av-tinta` pe orice link din text
   sau selectorul adăugat în lista de mai jos (pesmetul tuturor paginilor stă aici). */
@media (max-width:1099.98px),(pointer:coarse){
  .av-tinta,
  .av-ph__pesmet a,.av-sv-hero__pesmet a,.av-legal__crumbs a,.av-lu-antet__pesmet a{display:inline-flex;align-items:center;min-height:44px;margin-block:-12px;margin-block:calc((1lh - 44px) / 2);vertical-align:baseline}
  /* „Toate lucrările →” din capul de secțiune: crește doar în sus (rând + 4 px padding + 2 px subliniere = 1lh + 6px),
     ca sublinierea să rămână lipită de text și pe linia de jos a capului. Prima declarație = rezerva fără `lh`
     (rândul de ~20 px), ca în pages/lucrare.css. */
  .av-sh__link.av-tinta{align-items:flex-end;box-sizing:border-box;margin-block:-18px 0;margin-block:calc(1lh + 6px - 44px) 0}
  /* Capul rupt pe două rânduri (390, titlu lung): linkul urcă 18 px în spațiul dintre rânduri; cu 12–16 px între
     rânduri (Serviciu, Lucrare) ar intra peste titlu, deci spațiul crește la 18 px. Pe un singur rând nu contează.
     Acasă e scoasă: acolo linkul nu urcă (regula de mai jos). */
  .av-sh:has(> .av-sh__link.av-tinta):not(.av-home-dosare .av-sh){row-gap:18px}
  /* Acasă (home.css) are linkul la 44 px fără margine negativă, la orice lățime: capul rămâne cum era */
  .av-home-dosare .av-sh>.av-sh__link.av-tinta{margin-block:0}
}
.av-ph__eticheta{margin:0;color:var(--av-red-on-dark)}
.av-ph__titlu{font-size:56px;line-height:1.04;color:var(--av-white);max-width:820px;overflow-wrap:break-word}
.av-ph__text{margin:0;font-size:18px;line-height:1.6;color:var(--av-text-on-dark-2);max-width:680px}

/* cifrele (Lucrări: în dreapta; Despre: bandă) */
.av-ph__cifre,.av-ph__banda-grid{margin:0;padding:0;list-style:none}
.av-ph__valoare{display:block;font-size:44px;color:var(--av-white);overflow-wrap:break-word}
.av-ph__cifra-et{display:block;margin-top:6px;font-size:10px;color:var(--av-text-on-dark-3)}

/* Lucrări: cifrele în dreapta textului */
.av-ph--cifre-dreapta .av-ph__in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;padding-bottom:64px}
.av-ph--cifre-dreapta .av-ph__main{max-width:720px}
.av-ph--cifre-dreapta .av-ph__titlu,.av-ph--cifre-dreapta .av-ph__text{max-width:none}
.av-ph__cifre{display:flex;gap:40px}

/* Despre: imaginea în dreapta */
.av-ph--imagine .av-ph__in{display:flex;flex-wrap:wrap;gap:48px;align-items:stretch}
.av-ph--imagine .av-ph__main{flex:1 1 480px;gap:22px;justify-content:center}
.av-ph--imagine .av-ph__titlu,.av-ph--imagine .av-ph__text{max-width:none}
.av-ph--imagine .av-ph__text{line-height:1.65}
.av-ph__media{position:relative;flex:1 1 420px;min-width:0;min-height:440px}
.av-ph__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Despre: banda de cifre sub hero */
.av-ph__banda{border-top:1px solid var(--av-line-dark)}
.av-ph__banda-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.av-ph__banda .av-ph__cifra{padding:28px 24px;border-right:1px solid var(--av-line-dark)}
.av-ph__banda .av-ph__cifra:first-child{padding-left:0}
.av-ph__banda .av-ph__cifra:last-child{border-right:0}
.av-ph__banda .av-ph__cifra-et{margin-top:8px;font-size:11px}

/* bandă cu exact 4 cifre, 641–1099 px: 2×2 (altfel se rupe 3 + 1); benzile cu 2–3 cifre rămân pe un rând */
@media (min-width:640.02px) and (max-width:1099.98px){
  .av-ph__banda-grid:has(> .av-ph__cifra:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .av-ph__banda-grid:has(> .av-ph__cifra:nth-child(4):last-child) > .av-ph__cifra:nth-child(odd){padding-left:0}
  .av-ph__banda-grid:has(> .av-ph__cifra:nth-child(4):last-child) > .av-ph__cifra:nth-child(even){border-right:0}
  .av-ph__banda-grid:has(> .av-ph__cifra:nth-child(4):last-child) > .av-ph__cifra:nth-child(n+3){border-top:1px solid var(--av-line-dark)}
}

/* ≤640 px: o coloană — cifrele aliniate la stânga, separate prin linie orizontală */
@media (max-width:640px){
  .av-ph__banda-grid{grid-template-columns:minmax(0,1fr)}
  .av-ph__banda .av-ph__cifra{padding-left:0;padding-right:0;border-right:0}
  .av-ph__banda .av-ph__cifra + .av-ph__cifra{border-top:1px solid var(--av-line-dark)}
}

/* Contact: pe fond deschis, în coloana paginii */
.av-ph--deschis{--av-focus:var(--av-red);background:none;color:inherit}
.av-ph--deschis .av-ph__main{gap:14px}
.av-ph--deschis .av-ph__pesmet,.av-ph--deschis .av-ph__pesmet a{color:var(--av-text-3)}
.av-ph--deschis .av-ph__pesmet a:hover{color:var(--av-text)}
.av-ph--deschis .av-ph__pesmet span{color:var(--av-text)}
.av-ph--deschis .av-ph__eticheta{color:var(--av-red)}
.av-ph--deschis .av-ph__titlu{font-size:52px;color:var(--av-text);max-width:none}
.av-ph--deschis .av-ph__text{color:#3E444A;max-width:620px}

/* ---------- Întrebări frecvente (faq.php) ----------
 * Serviciu (implicit): titlu 36 px, rânduri 18 px / 20 px sus-jos. Main ('mare'): etichetă mono, rânduri 19 px / 22 px.
 * Telefon: 'mare' ca în Mobil.dc.html (rânduri 17 px / 18 px, răspuns cu 18 px dedesubt); Serviciu rămâne ca pe desktop.
 * Semnul din dreapta: „+” și închis, și deschis — ca în design (Main, Serviciu, Mobil).
 */

.av-faq{display:flex;flex-direction:column;gap:12px}
.av-faq--mare{gap:18px}
.av-faq__rand{border-top:1px solid var(--av-line-2)}
.av-faq__rand:last-child{border-bottom:1px solid var(--av-line-2)}
.av-faq__intrebare{display:flex;justify-content:space-between;gap:24px;padding:20px 0;font-family:var(--av-font-display);font-weight:700;font-size:18px;color:var(--av-text);cursor:pointer;list-style:none}
.av-faq__intrebare::-webkit-details-marker{display:none}
.av-faq__intrebare:hover{color:var(--av-red)}
/* inelul stă la 6 px de text, ca să nu-l strângă (rândul nu are padding lateral) */
.av-faq__intrebare:focus-visible{outline:2px solid var(--av-focus);outline-offset:6px;box-shadow:0 0 0 6px var(--av-focus-halo)}
.av-faq__semn{flex:none;color:var(--av-red)}
.av-faq__semn::before{content:"+"}
.av-faq__raspuns{font-size:15px;line-height:1.65;color:var(--av-text-2)}
.av-faq__raspuns>*{margin:0 0 20px}

.av-faq--mare .av-faq__intrebare{padding:22px 0;font-size:19px}
.av-faq--mare .av-faq__raspuns>*{margin-bottom:22px}

@media (max-width:640px){
  .av-faq--mare{gap:14px}
  .av-faq--mare .av-faq__intrebare{gap:16px;padding:18px 0;font-size:17px}
  .av-faq--mare .av-faq__raspuns{line-height:1.6}
  .av-faq--mare .av-faq__raspuns>*{margin-bottom:18px}
}

/* ---------- Cardul unei lucrări (card-lucrare.php) ----------
 * Acasă / Lucrări ('grila'): imagine 240 px cu tipul pe ea, titlu 20 px, fișa pe rânduri cu linie sus.
 * Lucrare („Alte lucrări cu …”, 'rand'): imagine 200 px, „localitate · mp” mono, titlu 18 px.
 * Serviciu („Lucrări cu …”, 'rand' + 'mica'): imagine 170 px, titlu în textul paginii, bold.
 * Fără imagine rămâne fundalul zonei de imagine. Grila de carduri o pune pagina.
 * 'grila' are și varianta de telefon a fișei (Mobil.dc.html): .av-cl__meta „tip · localitate”
 * (mono 10 px) deasupra titlului și .av-cl__mpz „N mp · M zile” (14 px) sub el. Sunt în marcaj, dar
 * ascunse aici; pagina care le vrea le afișează (ex. .av-cl--grila .av-cl__meta{display:block})
 * și ascunde .av-cl__fisa în media query-ul ei.
 */

.av-cl{display:flex;flex-direction:column;min-width:0;background:var(--av-white);border:1px solid var(--av-line-3);color:var(--av-text);text-decoration:none}
.av-cl:hover{border-color:var(--av-graphite);color:var(--av-text)}
.av-cl__media{position:relative;display:block;height:240px;background:var(--av-zinc)}
.av-cl__img{display:block;width:100%;height:100%;object-fit:cover}
.av-cl__tip{position:absolute;left:0;bottom:0;max-width:100%;padding:8px 12px;background:var(--av-graphite);color:var(--av-white);font-size:10px}
.av-cl__corp{display:flex;flex-direction:column;gap:14px;padding:22px 22px 18px;min-width:0}
.av-cl__titlu{font-size:20px;font-weight:700;line-height:1.25;overflow-wrap:break-word}
.av-cl__fisa{margin:0}
.av-cl__rand{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--av-line);font-size:14px}
.av-cl__et{flex:none;font-size:10px;color:var(--av-text-3)}
.av-cl__val{margin:0;min-width:0;text-align:right;overflow-wrap:break-word}
/* culoarea din Mobil.dc.html: #6B737B pe cardul alb ≈ 4,8:1, trece AA și la 10 px */
.av-cl__meta{font-size:10px;color:var(--av-line-muted)}
.av-cl__mpz{font-size:14px;color:var(--av-text-3)}
.av-cl--grila .av-cl__meta,.av-cl__mpz{display:none}

.av-cl--rand .av-cl__media{height:200px}
.av-cl--rand .av-cl__corp{gap:8px;padding:18px 20px}
.av-cl--rand .av-cl__titlu{font-size:18px;line-height:normal}

.av-cl--mica .av-cl__media{height:170px}
.av-cl--mica .av-cl__corp{gap:4px;padding:14px 16px}
.av-cl--mica .av-cl__titlu{font-size:16px}

/* ---------- Cardul unui serviciu (card-serviciu.php) ----------
 * Servicii ('hub'): card alb cu imagine 180 px (grupa „Acoperiș existent”: 'mica', 150 px, titlu 18 px;
 * „Structură…”: 'mare', 200 px), titlu 19 px, descriere 14 px, preț roșu 13 px.
 * Acasă ('lista-inchisa'): celulă pe grafit, titlu + număr mono, preț jos; liniile din stânga / sus le pune grila.
 * Serviciu ('alte'): rând de listă pe grafit, titlu + săgeată, linie sus; ultimul rând („Toate …”) e al paginii.
 */

.av-cs{display:flex;flex-direction:column;min-width:0;text-decoration:none}
.av-cs__titlu{font-size:19px;font-weight:700;overflow-wrap:break-word}
.av-cs__text{font-size:14px;line-height:1.55}
.av-cs__pret{font-size:13px;font-weight:600}

/* hub */
.av-cs--hub{background:var(--av-white);border:1px solid var(--av-line-3);color:var(--av-text)}
.av-cs--hub:hover{border-color:var(--av-graphite);color:var(--av-text)}
.av-cs__img{display:block;width:100%;height:180px;object-fit:cover}
.av-cs--hub .av-cs__corp{display:flex;flex-direction:column;gap:8px;padding:20px}
.av-cs--hub .av-cs__text{color:var(--av-text-3)}
.av-cs--hub .av-cs__pret{color:var(--av-red)}
.av-cs--mica .av-cs__img{height:150px}
.av-cs--mica .av-cs__corp{padding:18px}
.av-cs--mica .av-cs__titlu{font-size:18px}
.av-cs--mica .av-cs__text{line-height:1.5}
.av-cs--mare .av-cs__img{height:200px}

/* lista închisă (Acasă) */
.av-cs--inchis{--av-focus:var(--av-red-on-dark);min-height:150px;padding:26px 24px;border-right:1px solid var(--av-line-dark);border-bottom:1px solid var(--av-line-dark);color:var(--av-text-on-dark)}
.av-cs--inchis:hover{background:var(--av-graphite-soft);color:var(--av-white)}
.av-cs--inchis .av-cs__corp{display:flex;flex-direction:column;flex:1 1 auto;gap:10px}
.av-cs__cap{display:flex;justify-content:space-between;gap:16px}
.av-cs--inchis .av-cs__titlu{color:var(--av-white)}
.av-cs__nr{flex:none;font-size:10px;color:var(--av-line-muted)}
/* pe fond închis numărul (10 px) cere 4,5:1: #A3AAB1 pe #14171A ≈ 7,66:1 (#6B737B dădea 3,74:1) */
.av-cs--inchis .av-cs__nr{color:var(--av-text-on-dark-3)}
.av-cs--inchis .av-cs__text{color:var(--av-text-on-dark-3)}
.av-cs--inchis .av-cs__pret{margin-top:auto;color:var(--av-red-on-dark)}

/* alte servicii (Serviciu) */
.av-cs--alte{--av-focus:var(--av-red-on-dark);flex-direction:row;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--av-line-dark);color:var(--av-text-on-dark);font-weight:500}
.av-cs--alte:hover{color:var(--av-white)}

/* ---------- Straturile acoperișului (straturi.php) ----------
 * Serviciu ('sectiune'): titlu 36 px, benzi colorate în trepte de 24 px (0…96 px), notă mono 10 px;
 * grosimea benzii (padding vertical) după strat: învelitoare 16, șipci / contrașipci 12, folie 10, căpriori 20.
 * Fundalul și textul vin inline din av_serviciu_culori_straturi(); cheie necunoscută = bandă neutră.
 * Lucrare ('lista'): etichetă mono, rânduri numerotate 01, 02… (22 px roșu), linii #C3C7CA.
 * La 390 px designul păstrează aceleași valori (Serviciu-390.png, Lucrare-390.png).
 */

.av-st{display:flex;flex-direction:column;gap:24px;min-width:0}
.av-st__lista{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}

/* secțiune (Serviciu) */
.av-st--sectiune .av-st__lista{gap:6px}
.av-st--sectiune .av-st__strat{display:flex;justify-content:space-between;align-items:center;gap:4px 16px;margin-left:calc(24px * var(--av-st-treapta,0));padding:12px 20px;background:var(--av-zinc);color:var(--av-text)}
/* min-width:auto (nu 0): numele nu se îngustează sub cel mai lung cuvânt („Căpriori” nu se rupe), se îngustează nota */
.av-st--sectiune .av-st__nume{min-width:auto;overflow-wrap:break-word}
.av-st--sectiune .av-st__nota{font-size:10px;text-align:right;overflow-wrap:break-word}
.av-st--sectiune .av-st__strat--invelitoare{padding-top:16px;padding-bottom:16px}
.av-st--sectiune .av-st__strat--folie{padding-top:10px;padding-bottom:10px}
.av-st--sectiune .av-st__strat--capriori{padding-top:20px;padding-bottom:20px}
.av-st__strat--invelitoare .av-st__nota{color:var(--av-text-on-dark-2)}
.av-st__strat--capriori .av-st__nota{color:#F1E6D8}

/* listă numerotată (Lucrare) */
.av-st--lista{gap:16px}
.av-st--lista .av-st__strat{display:grid;grid-template-columns:56px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--av-line-2)}
.av-st--lista .av-st__strat:last-child{border-bottom:1px solid var(--av-line-2)}
.av-st__nr{font-size:22px;color:var(--av-red)}
.av-st__corp{min-width:0}
.av-st--lista .av-st__nume{display:block;overflow-wrap:break-word}
.av-st--lista .av-st__nota{display:block;font-size:14px;color:var(--av-text-3)}

/* ---------- Formularul de deviz (form-deviz.php, inc/forms-markup.php) ----------
 * Main.dc.html (hero, `h`), Mobil.dc.html (Acasă telefon, `m`), Serviciu.dc.html (`s`): card alb cu bordură
 * roșie sus, pus pe fond închis (hero / secțiunea #deviz). Câmpurile refolosesc .field / .btn din base.css.
 * Lățimea cardului în pagină o dă layout-ul paginii (pages/*.css).
 * SPEC §7: input / select / textarea au font-size ≥ 16px la ORICE lățime (fără zoom automat pe iOS);
 * canvas-ul are 15 px pe desktop — aici se ridică la 16 px.
 */

.av-form{display:flex;flex-direction:column;gap:14px;min-width:0;background:var(--av-white);color:var(--av-text);padding:30px;border-top:4px solid var(--av-red);box-sizing:border-box}
.av-form__cap{display:flex;flex-direction:column;min-width:0}
.av-form__eticheta{margin:0;font-size:11px;color:var(--av-red)}
.av-form__titlu{margin-top:8px;font-size:26px;line-height:1.15;color:var(--av-text);overflow-wrap:break-word}
.av-form__text{margin:6px 0 0;font-size:14px;color:var(--av-text-3)}
.av-form__actiuni{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:4px}
.av-form__nota{margin:0;font-size:13px;color:var(--av-text-3)}
.av-form .btn[disabled],.av-form .btn[aria-busy="true"]{opacity:.65;cursor:progress}

/* câmpurile: 16 px peste tot (inclusiv peste cei 15 px din base.css) */
.av-form .field{min-width:0}
.av-form .field input,.av-form .field select,.av-form .field textarea{font-size:16px}
.av-form .field input:not([type="checkbox"]):not([type="radio"]),.av-form .field select,.av-form .field textarea{width:100%}
.av-form .field select{cursor:pointer}
/* placeholder: --av-text-3 (#575E65, 6,57:1 pe alb) — trece AA, dar rămâne mai deschis decât textul introdus (--av-text) */
.av-form .field input::placeholder,.av-form .field textarea::placeholder{color:var(--av-text-3);opacity:1}
.av-form .field [aria-invalid="true"]{border-color:var(--av-red);box-shadow:inset 0 0 0 1px var(--av-red)}
/* focusul pe un câmp cu eroare: inel grafit (nu roșul erorii), despărțit de bordura roșie de 2 px albi */
[aria-invalid="true"]:focus-visible{outline:3px solid var(--av-graphite);outline-offset:2px}
/* căsuța de acord / radio-urile vizibile: focusul programatic după o trimitere cu mouse-ul nu e :focus-visible în
   Chrome, deci inelul se pune și pe :focus (dalele ascunse de pe Contact au regula lor în pages/contact.css) */
input:is([type="checkbox"],[type="radio"]):not(.av-tile__input)[aria-invalid="true"]:focus{outline:3px solid var(--av-graphite);outline-offset:2px}
/* Focus pe un câmp (eroare după submit): derularea lasă loc etichetei (~26 px) deasupra lui. Se adună cu
   scroll-padding-top din mobile.css (sub 900 px: 72 px antet sticky, 57 px pe telefon culcat cu JS, 8 px fără JS;
   mai mult cu bara de administrare). Titlul pasului (legend) e la margine. */
.av-form input,.av-form select,.av-form textarea{scroll-margin-top:48px}
.av-form fieldset,.av-form legend{scroll-margin-top:16px}
/* overflow-wrap:anywhere: un nume de fișier lung fără spații în mesaj nu dă derulare orizontală la 390 */
.field__err{margin:0;font-size:13px;line-height:1.4;font-weight:600;color:var(--av-red);overflow-wrap:anywhere}
.field__err:empty{display:none}
.field__help{margin:0;font-size:13px;line-height:1.4;color:var(--av-text-3)}

/* zona de stare (V2: mesajul fix după trimitere; Val 3: succes / eroare generală / încărcare) */
.av-form__stare{font-size:15px;line-height:1.5;color:var(--av-text);background:var(--av-paper);border-left:4px solid var(--av-red);padding:12px 14px;overflow-wrap:anywhere}
/* goală: fără înălțime și fără loc în flex / grid (fără gap), dar prezentă în arborele de accesibilitate
   (regiunea aria-live trebuie să existe înainte de anunț, D-V3-7) */
.av-form__stare:empty{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.av-form__stare[data-av-stare="trimite"]{border-left-color:var(--av-line-muted);color:var(--av-text-2)}
.av-form__stare[data-av-stare="succes"]{border-left-color:var(--av-graphite);background:var(--av-zinc);font-weight:600}
.av-form__stare[data-av-stare="eroare"]{border-left-color:var(--av-red);color:var(--av-red-hover);font-weight:600}
.av-form__stare p{margin:0}
.av-form__stare:focus{outline:none}
.av-form__stare:focus-visible{outline:2px solid var(--av-focus);outline-offset:2px}

/* starea „trimis” (V3-29i; `.is-trimis` pus de server la `?av_trimis=<p>` sau de forms.js): rămân antetul și
   confirmarea; câmpurile, butonul și nota dispar; zona de stare doar pentru cititorul de ecran (role="status",
   mesajul se vede deja în confirmare). Aspectul confirmării = .av-contact__confirm (pages/contact.css). */
/* doar hero / serviciu: Contact are `.is-trimis` și confirmarea lui (pages/contact.css) */
.av-form--hero.is-trimis > :not(.av-form__cap):not(.av-form__confirm):not(.av-form__stare),
.av-form--serviciu.is-trimis > :not(.av-form__cap):not(.av-form__confirm):not(.av-form__stare){display:none!important}
.av-form--hero.is-trimis .av-form__stare,.av-form--serviciu.is-trimis .av-form__stare{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.av-form__confirm[hidden]{display:none}
.av-form__confirm:not([hidden]){display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0;padding:6px 0 0}
.av-form__confirm:focus{outline:none}
.av-form__confirm:focus-visible{outline:2px solid var(--av-focus);outline-offset:4px}
/* Sosirea pe #av-form-<p>-confirm (fără JS, după redirect) și focusul pe confirmare / zona de stare: pe desktop
   antetul nu e fix (scroll-padding-top: auto), deci blocul ar fi lipit de marginea ferestrei și conturul de focus
   tăiat sus. Sub 900 px se adună cu scroll-padding-top din mobile.css (72 px antet sticky, 8 px fără JS), ca la
   câmpuri. 32 px, nu 24: dacă fonturile se încarcă după derularea la fragment, textul de deasupra se scurtează
   (~13 px în hero la 1440) și blocul urcă. Include confirmarea Contact. */
.av-form__confirm,.av-contact__confirm,.av-form__stare{scroll-margin-top:32px}
.av-form__confirm-ic{flex:none;color:var(--av-red)}
.av-form__confirm-titlu{margin:0;font-size:26px;line-height:1.15;color:var(--av-text);overflow-wrap:break-word;max-width:100%}
.av-form__confirm-text{margin:0;font-size:16px;line-height:1.6;color:#3E444A;overflow-wrap:anywhere;max-width:100%}
.av-form__confirm-text:empty{display:none}
.av-form__confirm-actiuni{display:flex;flex-wrap:wrap;gap:12px;max-width:100%}
.av-form--serviciu .av-form__confirm{grid-column:1 / -1}

/* honeypot (inc/forms/token.php, `av_web`): ascuns vizual în afara ecranului, nu display:none;
 * absolut = scos din flex / grid, fără gap și fără derulare (spre stânga nu se derulează) */
.av-hp{position:absolute!important;left:-10000px!important;top:auto;width:1px!important;height:1px!important;overflow:hidden!important;margin:0;padding:0;border:0}

/* hero (Acasă, desktop): butonul pe toată lățimea */
.av-form--hero .av-form__actiuni .btn{flex:1 1 100%;justify-content:center}

/* Acasă, telefon (Mobil.dc.html) */
.av-form--m{padding:24px 18px}
.av-form--m .av-form__eticheta{font-size:10px}
.av-form--m .av-form__titlu{margin-top:6px}

/* serviciu: grilă de câmpuri, antetul / mesajul / stare / butonul pe toată lățimea */
.av-form--serviciu{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;padding:36px}
.av-form--serviciu .av-form__cap,.av-form--serviciu .av-form__stare,.av-form--serviciu .av-form__lat,.av-form--serviciu .av-form__actiuni{grid-column:1 / -1}
.av-form--serviciu .av-form__titlu{font-size:30px}
.av-form--serviciu .av-form__actiuni{margin-top:0}

@media (max-width:640px){
  .av-form{padding:24px 18px}
  .av-form--serviciu{grid-template-columns:minmax(0,1fr);padding:24px 18px}
  .av-form--serviciu .av-form__titlu{font-size:26px}
  .av-form--serviciu .av-form__actiuni .btn{flex:1 1 100%;justify-content:center}
  .av-form__confirm-actiuni{align-self:stretch}
  .av-form__confirm-actiuni .btn{flex:1 1 100%;justify-content:center}
  .av-form .field input,.av-form .field select,.av-form .field textarea{font-size:16px}
}
