/*
 * Acoperișuri Vest — antetul compact, meniul mobil, subsolul compact și bara fixă de jos (sub 900 px).
 * Sursa: Mobil.dc.html (antetul sticky, .mnav, .foot, .bar).
 * Fără JS (fără clasa `js` pe <html>) meniul rămâne afișat sub antet, iar butonul e ascuns.
 */

/* Elementele mobile nu apar pe desktop. */
.av-menu-btn,.av-bar,.av-nav__call-lead,.av-foot__m{display:none}

@media (max-width:899.98px){
  /* Elementul cu focus nu ajunge sub antetul sticky (64 px) sau sub bara fixă de jos (61 px); +8 px pentru inelul de focus. */
  html{scroll-padding-top:72px;scroll-padding-bottom:calc(69px + env(safe-area-inset-bottom))}
  /* B20: elementele din antetul lipit (cu JS) sunt mereu în vedere; fără marginea negativă, scroll-padding-top le
     considera acoperite și focusul pe ele (Tab / Shift+Tab, butonul de meniu) derula pagina cu sute de px.
     72 px acoperă și variantele cu bara de administrare (antetul coboară cu bara). Fără JS antetul nu e lipit.
     În panoul derulabil (telefon orizontal) marginea e compensată de scroll-padding-top-ul panoului (mai jos). */
  .js .av-header *{scroll-margin-top:-72px}

  /* Pe telefon bara de sus nu există în design: contactul e în bara de jos. */
  .av-topbar{display:none}

  /* ---------- Antet compact ---------- */

  .av-header{position:sticky;top:0;z-index:50}
  .admin-bar .av-header{top:46px}
  .av-header__in{flex-wrap:wrap;gap:0 16px;min-height:64px;padding-top:8px;padding-bottom:8px}

  .av-brand{gap:10px;min-height:44px}
  .av-brand svg{width:36px;height:24px}
  .av-brand__name{font-size:17px}
  .av-brand__tag{display:none}

  .js .av-menu-btn{display:flex;align-items:center;justify-content:center;flex:none;width:48px;height:48px;margin-left:auto;padding:0;background:transparent;border:1px solid #3A4046;color:var(--av-white);cursor:pointer}
  .av-menu-btn__close{display:none}
  .av-menu-btn[aria-expanded="true"] .av-menu-btn__open{display:none}
  .av-menu-btn[aria-expanded="true"] .av-menu-btn__close{display:block}

  /* ---------- Meniul (.mnav) ---------- */

  /* 8 px în plus pe laterale (padding compensat de marginea negativă, linkurile rămân pe loc): loc pentru inelul de
     focus al linkurilor, pe care overflow-ul meniului deschis l-ar tăia pe margini.
     Sus / jos ca în Mobil-meniu-390: în design rândul antetului are 68 px (10 + 48 + 10) + 8 px padding, aici 56 px
     (8 + 48) → 20 px; jos 24 px în design = 16 px + cei 8 px de padding ai antetului. */
  .nav.av-nav{flex:0 0 calc(100% + 16px);flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:0;margin:0 -8px;padding:20px 8px 16px}
  .js .av-header:not(.is-open) .av-nav{display:none}
  /* B20: cu JS, panoul deschis e scos din flux, peste pagină, sub rândul antetului: antetul lipit nu crește, conținutul
     de sub el nu se mută, deci derularea nu sare (ancorarea derulării compensa creșterea și schimba poziția).
     Panoul acoperă bordura antetului și are bordura lui jos, ca antetul din design; 12 px sus → primul rând la 76 px,
     ca în Mobil-meniu-390. Marginile laterale (16 / 32 px) lasă loc inelului de focus al linkurilor.
     z-index 1 îl pune peste fundalul care închide meniul (::after al antetului).
     scroll-padding-top = 72 px (anulează marginea negativă de sus) + 12 px: un link care primește focusul derulează
     panoul până ajunge întreg sub marginea lui de sus, cu loc pentru inelul de focus. */
  .js .av-header.is-open .av-nav{scroll-padding-top:84px;scroll-padding-bottom:12px}
  /* Cât e deschis meniul pagina e blocată: scroll-padding-ul rădăcinii (antetul și bara de jos) n-are rost, iar un
     link de la capătul panoului o derula cu câțiva px. :root (0,3,0) bate și regulile cu :has(> body.admin-bar). */
  :root.js.av-nav-open{scroll-padding-top:0;scroll-padding-bottom:0}
  .js .av-header.is-open .av-header__in{position:relative}
  .js .av-header.is-open .av-nav{position:absolute;top:100%;left:0;right:0;z-index:1;margin:0;padding:12px var(--av-gutter) 24px;background:var(--av-graphite);border-bottom:1px solid var(--av-line-dark)}
  .js .av-header.is-open .av-nav{max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto}
  /* + bara de administrare WP (32 px peste 782 px, 46 px sub) */
  .js .admin-bar .av-header.is-open .av-nav{max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px)}
  .js .av-header.is-open .av-nav{overscroll-behavior:contain}

  /* V4-53: cât e deschis meniul, o atingere pe pagina de sub antet îl închide (site.js), iar pagina nu se derulează.
     Fundalul e transparent, ca în Mobil-meniu-390 (pagina nu se întunecă); pornește sub bordura antetului,
     iar z-index 51 îl pune și peste bara fixă de jos.
     Blocarea derulării nu schimbă lățimea paginii: locul barei de derulare se păstrează (scrollbar-gutter) doar
     dacă bara ocupa loc înainte de deschidere (clasa av-nav-gutter, din site.js); cu bara suprapusă (telefoane)
     sau ascunsă nu se rezervă nimic, altfel antetul și pagina s-ar îngusta cu ~15 px. */
  .js .av-header.is-open{z-index:51}
  .js .av-header.is-open::after{content:"";position:absolute;left:0;right:0;top:calc(100% + 1px);height:100vh;height:100lvh;cursor:pointer}
  html.js.av-nav-open{overflow:hidden}
  html.js.av-nav-open.av-nav-gutter{scrollbar-gutter:stable}

  /* 57 px = 56 px + bordura (în design linkul are min-height 56 px fără border-box) */
  .nav.av-nav a{display:flex;justify-content:space-between;align-items:center;min-height:57px;padding:0;border-bottom:1px solid var(--av-line-dark);color:var(--av-white);font-family:var(--av-font-display);font-weight:700;font-size:22px;box-shadow:none}
  /* săgeata e decorativă: a doua regulă (text alternativ gol) o ascunde de cititoarele de ecran;
     prima rămâne pentru browserele care nu știu sintaxa „/ alt” și ignoră a doua */
  .nav.av-nav a::after{content:"\2192";color:var(--av-red-on-dark)}
  .nav.av-nav a::after{content:"\2192"/""}
  .nav.av-nav a[aria-current]{color:var(--av-red-on-dark)}
  /* inelul de focus la 4 px de text (linkul n-are padding lateral), în cei 8 px lăsați de meniu pe margini;
     #E0675B pe grafit ≈ 5,4:1 */
  .nav.av-nav a:focus-visible{outline-offset:4px}

  .nav.av-nav .av-nav__call{justify-content:center;gap:.3em;min-height:50px;margin:20px 0 0;padding:0 18px;border:0;color:var(--av-white);font-family:var(--av-font-body);font-weight:600;font-size:16px}
  .nav.av-nav .av-nav__call::after{content:none}
  .nav.av-nav .av-nav__call svg{display:none}
  .av-nav__call-lead{display:inline}
  /* pe butonul roșu inelul roșu nu se vede: inel alb, tras 4 px în interior (alb pe #B5352A ≈ 5,6:1) */
  .nav.av-nav .av-nav__call:focus-visible{outline-color:var(--av-white);outline-offset:-4px}

  /* ---------- Subsolul compact (.foot) ---------- */

  /* marginile laterale = ale antetului (16 px pe telefon, ca în design; 32 px peste 640 px) */
  .foot{padding:40px var(--av-gutter) 110px}
  .av-foot__in{display:none}
  .av-foot__m{display:block}
  .av-foot__m-name{font-size:18px;color:var(--av-white)}
  .av-foot__m-company{font-size:14px;line-height:1.7;margin-top:10px}
  .av-foot__m-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin-top:20px}
  /* design: 15 px + padding 6px 0 (≈ 32 px); min-height ridică ținta la 44 px */
  .foot .av-foot__m-nav a{display:flex;align-items:center;box-sizing:border-box;min-height:44px;padding:6px 0;font-size:15px}
  /* rândul legal (D-10): text mic, culoarea textului de subsol, ținte de 44 px */
  /* textele stau tot la 20 px unul de altul: 10 px padding pe fiecare parte, -10 px la stânga ca „Termeni” să rămână aliniat */
  .av-foot__m-legal{display:flex;flex-wrap:wrap;margin:4px 0 0 -10px}
  .foot .av-foot__m-legal a{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:44px;min-height:44px;padding:0 10px;color:var(--av-text-on-dark-3);font-size:13px}
  .foot .av-foot__m-legal a:hover{color:var(--av-white)}
  .av-foot__m-bottom{border-top:1px solid var(--av-line-dark);margin-top:12px;padding-top:16px;font-size:13px}

  /* ---------- Bara fixă de jos (.bar) ---------- */

  /* 60 px linkurile + 1 px bordura de sus a barei */
  body{padding-bottom:calc(61px + env(safe-area-inset-bottom))}

  .av-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--av-graphite);border-top:1px solid var(--av-line-dark);padding-bottom:env(safe-area-inset-bottom);line-height:normal}
  .av-bar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:60px;min-width:0;color:var(--av-white);text-decoration:none;font-size:12px;font-weight:600}
  .av-bar a:hover{color:var(--av-white)}
  .av-bar a+a{border-left:1px solid var(--av-line-dark)}
  .av-bar .av-bar__deviz{background:var(--av-red);border-left:0}
  .av-bar .av-bar__deviz:hover{background:var(--av-red-hover)}
  .av-bar svg{flex:none}
}
/* Acasă: două linkuri „Deviz” (site-footer.php, V5-21a), câte unul afișat — `#deviz-m` până la 640 px, formularul din
   hero între 641 și 899 px (pragurile din pages/home.css); și fără JS ancora duce la formularul de la vedere. */
@media (max-width:640px){
  .av-bar .av-bar__deviz--h{display:none}
}
@media (min-width:640.02px){
  .av-bar .av-bar__deviz--m{display:none}
}

/* Bara de administrare WP e fixă între 601 și 782 px (46 px), apoi 32 px. */
/* scroll-padding-top cu bara de administrare: antetul se termină la 96 px (32 + 64), respectiv 110 px (46 + 64); +8 px pentru inelul de focus */
@media (min-width:782.02px) and (max-width:899.98px){
  .admin-bar .av-header{top:32px}
  html:has(> body.admin-bar){scroll-padding-top:104px}
}
@media (max-width:782px){
  .js .admin-bar .av-header.is-open .av-nav{max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px)}
  html:has(> body.admin-bar){scroll-padding-top:118px}
}
@media (max-width:600px){
  .admin-bar .av-header{top:0}
  /* bara de administrare nu mai e fixă: antetul lipește de marginea de sus */
  html:has(> body.admin-bar){scroll-padding-top:72px}
}

/* Fără JS meniul rămâne desfăcut (antetul are ~390 px): sticky, ar acoperi formularul la sosirea pe #av-form-…
   și câmpul cu focus. Antetul rămâne în flux, iar scroll-padding-top păstrează doar cei 8 px pentru inelul de focus
   (+ bara de administrare, fixă peste 600 px: 46 px, apoi 32 px). Cu JS nu se schimbă nimic. */
@media (max-width:899.98px){
  html:not(.js) .av-header{position:static}
  html:not(.js){scroll-padding-top:8px}
}
@media (min-width:782.02px) and (max-width:899.98px){
  html:not(.js):has(> body.admin-bar){scroll-padding-top:40px}
}
@media (max-width:782px){
  html:not(.js):has(> body.admin-bar){scroll-padding-top:54px}
}
@media (max-width:600px){
  html:not(.js):has(> body.admin-bar){scroll-padding-top:8px}
}

/* ---------- Telefon ținut orizontal (V4-36) ----------
   Antetul (65 px) + bara de jos (61 px) ocupau o treime din înălțime. Antetul coboară la 49 px (ținte de 44 px),
   iar cu JS bara urcă în rândul antetului, între siglă și butonul de meniu: Sunați / WhatsApp / Deviz rămân la vedere.
   Fără JS (antetul nu e lipit) bara rămâne jos, doar mai joasă. Portretul și desktopul nu se schimbă. */
@media (max-width:899.98px) and (max-height:500px) and (orientation:landscape){
  .av-header__in{min-height:48px;padding-top:2px;padding-bottom:2px}
  .js .av-menu-btn{width:44px;height:44px}
  /* B21: butonul stă la 2 px de marginea ecranului și de panoul deschis — inelul de focus al temei (2 px + halo 4 px,
     base.css) în afară ar fi tăiat sus și acoperit jos de panou; spre interior, ca „×” din cookies.css (V4-50a). */
  .js .av-menu-btn:focus-visible{outline-offset:-6px;box-shadow:inset 0 0 0 4px var(--av-focus-halo)}
  .js .av-header.is-open .av-nav{max-height:calc(100vh - 49px);max-height:calc(100dvh - 49px)}

  /* fără JS: bara jos, 44 px + 1 px bordura */
  body{padding-bottom:calc(45px + env(safe-area-inset-bottom))}
  .av-bar a{flex-direction:row;gap:6px;min-height:44px}

  /* cu JS: bara în antet; dreapta = marginea .wrap + butonul de meniu (44 px) + 12 px */
  html.js{scroll-padding-top:57px;scroll-padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  html.js body{padding-bottom:env(safe-area-inset-bottom)}
  .js .av-bar{top:0;bottom:auto;left:auto;right:calc(var(--av-gutter) + 56px + env(safe-area-inset-right));height:48px;align-items:center;gap:4px;background:transparent;border-top:0;padding-bottom:0}
  .js .av-bar a{flex:none;padding:0 12px;font-size:13px}
  .js .av-bar a+a{border-left:0}
  .js .av-bar a:not(.av-bar__deviz){border:1px solid #3A4046}
}
/* bara de administrare WP e fixă peste 600 px: bara urcă sub ea, ca antetul */
@media (min-width:782.02px) and (max-width:899.98px) and (max-height:500px) and (orientation:landscape){
  .js .admin-bar .av-bar{top:32px}
  html.js:has(> body.admin-bar){scroll-padding-top:89px}
}
@media (min-width:600.02px) and (max-width:782px) and (max-height:500px) and (orientation:landscape){
  .js .admin-bar .av-bar{top:46px}
  html.js:has(> body.admin-bar){scroll-padding-top:103px}
}
/* telefoanele înguste (ex. 568 × 320): Sunați și WhatsApp rămân doar cu pictograma (textul rămâne numele accesibil), Deviz își păstrează eticheta */
@media (max-width:699.98px) and (max-height:500px) and (orientation:landscape){
  .js .av-bar a:not(.av-bar__deviz){justify-content:center;width:44px;padding:0;gap:0;font-size:0}
}
