/* contact.css — arhetipul Contact (DESIGN-SPEC §6): capul cu cartea de vizită, formularul cu 4 câmpuri (macheta lui; la BUILD, SureForms),
   datele firmei. Vine după comun.css (firimiturile, butoanele, faptul lipsă sunt acolo); culorile vin numai din tokens.css. */

/* Capul: textul pe 7 coloane, cartea de vizită pe 5, cu umbra-semnătură (1 pe pagină, §7) */
.contact-cap { padding-block: var(--acd-sp-card) var(--acd-sp-sectiune); }
.contact-cap__grila { display: grid; gap: var(--acd-sp-titlu); margin-top: var(--acd-sp-micro); }
.contact-cap__text { display: grid; gap: var(--acd-sp-card); max-width: var(--acd-coloana); align-content: start; }
.contact-cap__lede { font-size: 1.25rem; line-height: 1.5; }
.contact-cap__lede a, .formular__date a { text-underline-offset: .2em; }
.contact-cap__lede a:hover, .formular__date a:hover { text-decoration-color: var(--acd-padure); }
/* P1 (S25b): pe telefon, harta vine sub H1, apoi lede-ul și cartea; de la 1024, textul și harta în stânga, cartea în dreapta pe toată înălțimea */
@media (min-width: 1024px) {
  .contact-cap__grila { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto auto 1fr; gap: 0 var(--acd-sp-rand); align-items: start; }
  .contact-cap__grila > .carte { grid-area: 1 / 2 / 4 / 3; }
  .contact-cap__grila > .contact-cap__rest { grid-area: 2 / 1; margin-top: var(--acd-sp-card); }
  .contact-cap__grila > .harta { grid-area: 3 / 1; margin-top: var(--acd-sp-titlu); max-width: 560px; }
}

/* Cartea de vizită: un rând pe canal; eticheta mică deasupra, ca în fișa localității */
.carte { display: grid; gap: var(--acd-sp-card); margin: 0; padding: var(--acd-sp-titlu) var(--acd-sp-card); background-color: var(--acd-alb); box-shadow: var(--acd-umbra-semnatura); }
@media (min-width: 768px) { .carte { padding-inline: var(--acd-sp-titlu); } }
.carte > div { display: grid; gap: 6px; }
.carte > div + div { padding-top: var(--acd-sp-card); border-top: 2px solid color-mix(in srgb, var(--acd-ardezie) 10%, var(--acd-alb)); }
.carte dt { font: 600 var(--acd-eticheta) / 1.3 var(--acd-font-titlu); letter-spacing: .12em; text-transform: uppercase; color: var(--acd-otel); }
.carte dd { margin: 0; }
.carte__tel { display: inline-flex; align-items: center; min-height: 48px; font: 700 clamp(2rem, 1.6rem + 1.6vw, 2.75rem) / 1.1 var(--acd-font-titlu); text-decoration: none; }
.carte__tel:hover { text-decoration: underline; text-decoration-color: var(--acd-padure); text-decoration-thickness: 3px; text-underline-offset: .15em; }
.carte__mail { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; text-underline-offset: .2em; }
.carte__mail:hover { text-decoration-color: var(--acd-padure); }

/* Formularul: coloana de 720 px; lângă el, pe desktop, caseta pentru poze */
.formular__grila { display: grid; gap: var(--acd-sp-titlu); }
@media (min-width: 1024px) { .formular__grila { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: var(--acd-sp-rand); align-items: start; } }
.formular__zona { max-width: var(--acd-coloana); }
.formular { display: grid; gap: var(--acd-sp-card); }
.formular[hidden] { display: none; }
.camp { display: grid; gap: 6px; }
.camp label { font-weight: 700; line-height: 1.35; }
.camp__optional { font-weight: 400; color: var(--acd-otel); }
.camp__ajutor { font-size: var(--acd-mic); line-height: 1.45; color: var(--acd-otel); }
/* DEBOSS (§7): câmpul e adâncit, cu umbra interioară de sus (soarele de sus); linia de 2 px, fiindcă nu are umbră în afară (E4) */
.camp input, .camp textarea {
  width: 100%; min-height: 52px; margin: 0; padding: .75rem .9rem; border: 2px solid var(--acd-otel); border-radius: var(--acd-raza-buton);
  background-color: var(--acd-alb); color: var(--acd-ardezie); font: 400 var(--acd-text) / 1.4 var(--acd-font-text);
  box-shadow: inset 0 3px 0 rgb(15 23 42 / .08);
}
.camp textarea { min-height: 7.5rem; resize: vertical; }
.camp input:focus-visible, .camp textarea:focus-visible { outline-offset: 2px; }
/* Eroarea: doar culoarea semnal (4,52 : 1 pe hârtie), cu textul lângă câmp, nu balonul browserului */
.camp__eroare { font-weight: 700; font-size: var(--acd-mic); line-height: 1.45; color: var(--acd-semnal); }
.camp [aria-invalid="true"] { border-color: var(--acd-semnal); box-shadow: inset 0 3px 0 rgb(185 28 28 / .12), 0 0 0 1px var(--acd-semnal); }
.formular .buton { justify-self: start; }
.formular__date { font-size: var(--acd-mic); line-height: 1.5; color: var(--acd-otel); max-width: 60ch; }
.formular__eroare { font-weight: 700; font-size: var(--acd-mic); line-height: 1.5; color: var(--acd-semnal); max-width: 60ch; }
.formular__eroare a { color: inherit; text-underline-offset: .2em; }
.formular button[aria-busy="true"] { opacity: .72; cursor: progress; }

/* Confirmarea: semnul mare, ca filigran (§2), în colțul cutiei; textul peste hârtie curată */
.confirmare { position: relative; isolation: isolate; display: grid; gap: var(--acd-sp-card); justify-items: start; padding: var(--acd-sp-titlu) var(--acd-sp-card); background-color: var(--acd-alb); border-top: 4px solid var(--acd-neon); overflow: hidden; }
.confirmare[hidden] { display: none; }
.confirmare::after { content: ""; position: absolute; z-index: var(--acd-z-textura); right: 52px; top: 48px; width: 96px; height: 96px; border: solid color-mix(in srgb, var(--acd-padure) 22%, var(--acd-alb)); border-width: 14px 14px 0 0; transform: rotate(45deg); }
.confirmare h3, .confirmare p { max-width: calc(100% - 120px); }
@media (max-width: 479px) { .confirmare::after { display: none; } .confirmare h3, .confirmare p { max-width: none; } }
.confirmare:focus { outline: none; }
.confirmare:focus-visible { outline: 2px solid var(--acd-ardezie); outline-offset: 2px; }

/* Caseta pentru poze: aceeași cutie ca în pagina mărcii (linia de brad sus, fără umbră) */
.caseta-poze { display: grid; gap: var(--acd-sp-card); justify-items: start; padding: var(--acd-sp-card); background-color: var(--acd-alb);
  outline: 2px solid color-mix(in srgb, var(--acd-ardezie) 12%, var(--acd-ceata)); outline-offset: -2px; border-top: 4px solid var(--acd-padure); }
@media (min-width: 768px) { .caseta-poze { padding: var(--acd-sp-titlu); } }
.caseta-poze p { line-height: 1.55; }

/* Datele firmei: eticheta mică deasupra valorii; 1 coloană pe telefon, 2 pe tabletă, 4 pe desktop */
.firma { display: grid; gap: var(--acd-sp-card) var(--acd-sp-titlu); margin: 0; }
.firma > div { display: grid; gap: 6px; align-content: start; padding-top: var(--acd-sp-card); border-top: 2px solid color-mix(in srgb, var(--acd-ardezie) 14%, var(--acd-ceata)); }
.firma dt { font: 600 var(--acd-eticheta) / 1.3 var(--acd-font-titlu); letter-spacing: .12em; text-transform: uppercase; color: var(--acd-otel); }
.firma dd { margin: 0; line-height: 1.5; }
@media (min-width: 640px) { .firma { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .firma { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* v25 · S24b: cartea de vizită, pe panoul închis (comun.css); telefonul e cifra neon */
.carte.pe-inchis > div + div { border-top-color: rgb(248 250 252 / .12); }
.carte.pe-inchis dt { color: var(--acd-cer); }
.carte.pe-inchis .carte__tel { color: var(--acd-neon); text-shadow: var(--acd-stralucire); }
.carte.pe-inchis .carte__tel:hover, .carte.pe-inchis .carte__mail:hover { text-decoration-color: var(--acd-neon); }
.carte.pe-inchis .buton--plin { background: var(--acd-neon); border-color: var(--acd-neon); color: var(--acd-noapte); box-shadow: var(--acd-halou-neon); }
