/* ═══════════════════════════════════════════════════════════
   COMPONENTE DE PAGINĂ (tot ce nu există pe homepage)
   Se încarcă după site.css. Folosește exclusiv tokenii temei,
   ca secțiunile `data-scheme="light"` să funcționeze și aici.
   ═══════════════════════════════════════════════════════════ */

/* ── firimituri ── */
.crumbs{font-size:.76rem; letter-spacing:.04em; color:var(--text-3); display:flex; flex-wrap:wrap; gap:.5rem; align-items:center}
.crumbs a:hover{color:var(--accent)}
.crumbs i{opacity:.5; font-style:normal}

/* ── antet de pagină ── */
.phero{position:relative; overflow:hidden; border-bottom:1px solid var(--line)}
.phero > .wrap{position:relative; z-index:2; padding-block:clamp(2.6rem,5.4vw,4.4rem) clamp(2.8rem,5.6vw,4.6rem)}
.phero.has-img > .wrap{display:grid; gap:clamp(1.8rem,4vw,3.4rem)}
@media(min-width:1000px){ .phero.has-img > .wrap{grid-template-columns:1.15fr .85fr; align-items:center} }
.phero h1{
  font-family:var(--ff-display); font-weight:330; line-height:1.04; letter-spacing:-.012em;
  font-size:clamp(2.1rem,1.05rem + 3.4vw, 3.65rem); margin-top:1.15rem;
}
.phero h1 .ital{font-style:italic; color:var(--accent)}
.phero .lead{margin-top:1.3rem; max-width:56ch; color:var(--text-2)}
.phero-cta{display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.9rem}
.phero-fig{position:relative; overflow:hidden; border:1px solid var(--line-gold); border-radius:12px}
.phero-fig img{width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; filter:var(--img-fx)}
.phero-fig figcaption{
  position:absolute; left:1.1rem; bottom:1rem; z-index:2; font-size:.66rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--accent-hi);
}
.phero-fig::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,8,10,0) 52%,rgba(8,8,10,.72))}

/* ── secțiuni de pagină ── */
.psec{padding-block:clamp(3.2rem,6.4vw,5.4rem)}
.psec + .psec{border-top:1px solid var(--line)}
.psec-h{
  font-family:var(--ff-display); font-weight:330; letter-spacing:-.008em; line-height:1.12;
  font-size:clamp(1.6rem,2.7vw,2.4rem); margin-bottom:clamp(1.4rem,2.8vw,2.2rem);
}
.psec-h .ital{font-style:italic; color:var(--accent)}
.psec-sub{color:var(--text-2); max-width:62ch; margin:-.6rem 0 clamp(1.8rem,3.4vw,2.6rem)}

/* ── text lung (pagini legale, bio) ── */
.prose{max-width:74ch; color:var(--text-2)}
.prose > * + *{margin-top:1.05rem}
.prose h2{font-family:var(--ff-display); font-weight:340; font-size:clamp(1.35rem,2.2vw,1.85rem); color:var(--text); margin-top:2.4rem; line-height:1.2}
.prose h3{font-family:var(--ff-display); font-weight:360; font-size:clamp(1.1rem,1.7vw,1.35rem); color:var(--text); margin-top:1.9rem}
.prose h4{font-weight:600; color:var(--text); margin-top:1.5rem}
.prose ul,.prose ol{padding-left:1.15rem}
.prose li{margin-top:.5rem}
.prose li::marker{color:var(--accent-deco)}
.prose a{color:var(--accent); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px}
.prose strong,.prose b{color:var(--text); font-weight:600}
.prose table{width:100%; border-collapse:collapse; font-size:.92rem; margin-top:1.2rem; display:block; overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line); padding:.6rem .8rem; text-align:left; vertical-align:top}
.prose th{color:var(--text); font-weight:600; background:var(--surface)}
.prose img{border-radius:10px; margin-block:1.4rem}
.prose blockquote{border-left:2px solid var(--line-gold); padding-left:1.1rem; color:var(--text-2); font-style:italic}

/* ═══════════════════════════════════════════════════════════
   LIMBAJUL DE HOVER AL CASEI
   Aceleași colțare aurii care se desenează pe fotografiile echipei, plus o
   linie care traversează baza cardului. Se aplică oricărui element `.gcard`.
   ═══════════════════════════════════════════════════════════ */
.gcard{position:relative; overflow:hidden; isolation:isolate;
  transition:transform .55s var(--ease), border-color .5s var(--ease), box-shadow .55s var(--ease)}
.gcard:hover{transform:translateY(-4px); border-color:var(--line-gold); box-shadow:var(--shadow)}
.cframe{position:absolute; inset:clamp(.6rem,1.1vw,.95rem); z-index:4; pointer-events:none}
.cframe i{position:absolute; display:block; width:0; height:0; opacity:0;
  transition:width .5s var(--ease), height .5s var(--ease), opacity .35s}
.cframe i:nth-child(1){top:0; left:0; border-top:1px solid var(--accent-deco); border-left:1px solid var(--accent-deco)}
.cframe i:nth-child(2){top:0; right:0; border-top:1px solid var(--accent-deco); border-right:1px solid var(--accent-deco); transition-delay:.05s}
.cframe i:nth-child(3){bottom:0; right:0; border-bottom:1px solid var(--accent-deco); border-right:1px solid var(--accent-deco); transition-delay:.1s}
.cframe i:nth-child(4){bottom:0; left:0; border-bottom:1px solid var(--accent-deco); border-left:1px solid var(--accent-deco); transition-delay:.15s}
.gcard:hover .cframe i{width:clamp(16px,2.2vw,26px); height:clamp(16px,2.2vw,26px); opacity:1}
.cline{position:absolute; left:0; bottom:0; height:2px; width:0; z-index:5;
  background:var(--accent-deco); transition:width .7s var(--ease)}
.gcard:hover .cline{width:100%}
@media (prefers-reduced-motion:reduce){
  .gcard,.gcard:hover,.cframe i,.cline{transition:none; transform:none}
}

/* ── grilă de domenii (index servicii + domenii conexe) ── */
.sgrid{display:grid; gap:clamp(1rem,2.1vw,1.5rem); grid-template-columns:repeat(auto-fill,minmax(285px,1fr))}
.scard{
  display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:14px; background:var(--surface);
}
.scard-fig{position:relative; overflow:hidden; border-bottom:1px solid var(--line)}
.scard-fig img{
  width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; filter:var(--img-fx);
  transition:transform 1.1s var(--ease), filter .8s var(--ease);
}
.scard:hover .scard-fig img{transform:scale(1.055); filter:var(--img-fx-hover)}
/* eticheta stă peste fotografie — are nevoie de scrim propriu, altfel dispare pe zonele deschise */
.scard-fig::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(8,8,10,0) 34%, rgba(8,8,10,.5) 62%, rgba(8,8,10,.88));
}
.scard-k{
  position:absolute; z-index:2; left:1rem; bottom:.72rem;
  font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:#EBD9AE;
  text-shadow:0 1px 6px rgba(0,0,0,.75);
}
.scard-body{display:flex; flex-direction:column; gap:.5rem; padding:clamp(1.15rem,2.2vw,1.5rem)}
.scard-body b{font-family:var(--ff-display); font-weight:380; font-size:1.18rem; line-height:1.25; letter-spacing:-.004em}
.scard:hover .scard-body b{color:var(--accent)}
.scard-body b{transition:color .45s var(--ease)}
.scard-body p{font-size:.9rem; color:var(--text-2); line-height:1.62}
.scard-go{
  margin-top:auto; padding-top:.85rem; font-size:.7rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent); display:inline-flex; gap:.45rem; align-items:center;
}
.scard-go .arr{display:inline-block; transition:transform .45s var(--ease)}
.scard:hover .scard-go .arr{transform:translateX(5px)}

/* ── blocuri „ce cuprinde" ── */
.blocks{display:grid; gap:clamp(1rem,2.2vw,1.5rem)}
@media(min-width:860px){ .blocks{grid-template-columns:repeat(2,1fr)} }
.block{
  position:relative; border:1px solid var(--line); border-radius:14px;
  padding:clamp(1.3rem,2.5vw,1.85rem) clamp(1.3rem,2.5vw,1.85rem) clamp(1.3rem,2.5vw,1.85rem) clamp(1.5rem,2.8vw,2.1rem);
  background:var(--surface); overflow:hidden;
  transition:border-color .5s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease);
}
/* hairline aurie pe muchia din stânga, care crește la hover */
.block::before{
  content:''; position:absolute; left:0; top:clamp(1.3rem,2.5vw,1.85rem); bottom:auto;
  width:2px; height:26px; background:var(--accent-deco); opacity:.75;
  transition:height .6s var(--ease), opacity .5s var(--ease);
}
.block:hover{border-color:var(--line-gold); transform:translateY(-3px); box-shadow:var(--shadow)}
.block:hover::before{height:calc(100% - 2 * clamp(1.3rem,2.5vw,1.85rem)); opacity:1}
.block h3{font-family:var(--ff-display); font-weight:380; font-size:1.14rem; margin-bottom:.55rem; line-height:1.3}
.block p{font-size:.94rem; color:var(--text-2)}
.block ul{margin-top:.7rem; padding-left:1.05rem; font-size:.92rem; color:var(--text-2)}
.block li{margin-top:.35rem}
.block li::marker{color:var(--accent-deco)}

/* ── situații („în limba clientului") ── */
.cases{display:grid; gap:.7rem; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); margin-top:.4rem}
.case{
  position:relative; display:flex; gap:.85rem; align-items:flex-start;
  padding:.85rem 1.05rem; border:1px solid var(--line); border-radius:10px;
  background:var(--surface); font-size:.94rem; color:var(--text-2); line-height:1.55;
  transition:border-color .45s var(--ease), background-color .45s var(--ease), transform .45s var(--ease);
}
.case::before{
  content:'”'; flex:none; font-family:var(--ff-display); font-size:1.5rem; line-height:.7;
  color:var(--accent-deco); opacity:.65; transform:translateY(.32em);
  transition:opacity .45s var(--ease);
}
.case:hover{border-color:var(--line-gold); background:var(--surface-2); transform:translateX(3px)}
.case:hover::before{opacity:1}

/* ── fișa avocatului ── */
.pdetail{display:grid; gap:clamp(1.8rem,4vw,3.2rem)}
@media(min-width:900px){ .pdetail{grid-template-columns:.8fr 1.2fr; align-items:start} }
.pdetail-fig{border:1px solid var(--line-gold); border-radius:12px; overflow:hidden}
/* portretele avocaților rămân luminate natural (cerință Paul, 11 aug) */
.pdetail-fig img{width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; filter:none}
.pfacts{list-style:none; padding:0; display:grid; gap:.75rem}
.pfacts li{display:flex; gap:.75rem; align-items:flex-start; color:var(--text-2); line-height:1.55}
.pfacts li::before{content:''; flex:none; width:14px; height:1px; margin-top:.75rem; background:var(--accent-deco)}
.ptags{display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.3rem}
.ptag{
  font-size:.74rem; letter-spacing:.06em; padding:.34rem .7rem; border-radius:999px;
  border:1px solid var(--line); color:var(--text-2); background:var(--surface);
}
.ptag:hover{border-color:var(--line-gold); color:var(--accent)}
.pcontact{display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid var(--line)}
.pcontact a{display:grid; gap:.2rem}
.pcontact span{font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-3)}
.pcontact b{font-weight:500; color:var(--text)}
.pcontact a:hover b{color:var(--accent)}

/* ── listă de articole ── */
.alist{display:grid; gap:clamp(1rem,2.2vw,1.5rem)}
.aitem{
  display:grid; gap:1.1rem; padding:clamp(1rem,2vw,1.35rem);
  border:1px solid var(--line); border-radius:14px; background:var(--surface);
}
@media(min-width:820px){ .aitem{grid-template-columns:.32fr 1fr; align-items:center; gap:clamp(1.4rem,2.6vw,2.2rem)} }
.aitem figure{overflow:hidden; border-radius:10px}
.aitem img{
  width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; filter:var(--img-fx);
  transition:filter .8s var(--ease), transform 1.1s var(--ease);
}
.aitem:hover img{filter:var(--img-fx-hover); transform:scale(1.055)}
.aitem h2{font-family:var(--ff-display); font-weight:360; font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.28;
  transition:color .45s var(--ease)}
.aitem:hover h2{color:var(--accent)}
.aitem .art-meta{margin-bottom:.5rem}
.aitem p{color:var(--text-2); font-size:.94rem; margin-top:.55rem; max-width:70ch}
.aitem .more{display:inline-flex; gap:.45rem; align-items:center; margin-top:.85rem;
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent)}
.aitem .more .arr{display:inline-block; transition:transform .45s var(--ease)}
.aitem:hover .more .arr{transform:translateX(5px)}

/* ── bandă de final ── */
.cta-band{border-top:1px solid var(--line)}
.cta-band .wrap{
  padding-block:clamp(2.8rem,5.6vw,4.4rem); display:grid; gap:1.6rem; align-items:center;
}
@media(min-width:900px){ .cta-band .wrap{grid-template-columns:1fr auto; gap:3rem} }
.cta-band h2{font-family:var(--ff-display); font-weight:330; line-height:1.15; font-size:clamp(1.5rem,2.6vw,2.2rem)}
.cta-band p{color:var(--text-2); margin-top:.6rem; max-width:58ch}
.cta-band .acts{display:flex; flex-wrap:wrap; gap:.8rem}

/* ── mărunțișuri ── */
.note-box{
  border:1px solid var(--line-gold); border-radius:12px; padding:clamp(1.1rem,2.2vw,1.5rem);
  background:var(--surface); color:var(--text-2); font-size:.94rem;
}
.note-box b{color:var(--text)}
.slots-static{display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.9rem}
.slots-static span{
  border:1px solid var(--line); border-radius:8px; padding:.5rem .95rem;
  font-variant-numeric:tabular-nums; color:var(--text); background:var(--surface);
}
.toc-mini{display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2rem}
.toc-mini a{
  font-size:.8rem; padding:.4rem .8rem; border-radius:999px; border:1px solid var(--line); color:var(--text-2);
}
.toc-mini a:hover{border-color:var(--line-gold); color:var(--accent)}

/* corpul articolului pe fundal deschis */
.art-wrap-outer{position:relative; z-index:2}

/* colțarele cardurilor de domeniu stau peste fotografie */
.scard-fig{position:relative}
.scard-fig .cframe{inset:clamp(.55rem,1vw,.85rem)}

/* ── avocați: indexul echipei (cerințe Paul, 11 aug; egalizate 20 aug) ──
   TOATE cardurile au aceeași dimensiune (aceeași grilă ca rândul colaboratorilor),
   iar primul rând se închide cu cartea de vizită a casei: logo-ul real, neatins,
   centrat pe panou închis — golul de lângă asociați dispare. Portretele rămân
   luminate natural; voalul cu intro apare la hover. */
.team-idx .team-lead{grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); gap:clamp(1.4rem,3vw,2.4rem)}
.team-idx .person img{aspect-ratio:1/1}
.team-idx .person-lg img{aspect-ratio:1/1; object-position:50% 14%}
.person-brand{pointer-events:none}
.person-brand figure{aspect-ratio:1/1; display:grid; place-items:center;
  background:#0C0C0F; border:1px solid var(--line-gold)}
.person-brand figure::after{content:none}
/* logo-ul NU se deformează: proporția lui naturală bate regula 1/1 a portretelor */
.team-idx .person-brand img,
.person-brand img{width:min(64%,230px); height:auto; aspect-ratio:auto; object-fit:contain; filter:none}
.team-idx .person img{filter:none}
.team-idx .person:hover img{filter:none; transform:scale(1.05)}
/* pe crem, scrim-ul de sub text poate fi mai discret — pozele sunt deja luminoase */
.team-idx .person figure::after{background:linear-gradient(180deg,rgba(8,8,10,.12) 0%,rgba(8,8,10,0) 30%,rgba(8,8,10,.78) 100%)}

/* ── semnătura de autor sub articole (E-E-A-T) ──
   Toate articolele sunt scrise de Dominic-Alexandru Gidro (cerință Paul, 11 aug). */
.art-author{
  display:grid; grid-template-columns:auto 1fr; gap:1.1rem 1.3rem; align-items:center;
  margin-top:clamp(2.2rem,4vw,3rem); padding:clamp(1.2rem,2.4vw,1.7rem);
  border:1px solid var(--line-gold); border-radius:14px; background:var(--surface);
}
.art-author img{
  width:clamp(64px,7vw,84px); height:clamp(64px,7vw,84px); border-radius:50%;
  object-fit:cover; object-position:50% 20%; border:2px solid var(--accent-deco);
}
.art-author .aa-k{display:block; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin-bottom:.3rem}
.art-author .aa-name{display:inline-block; font-family:var(--ff-display); font-weight:380;
  font-size:clamp(1.15rem,1.8vw,1.45rem); line-height:1.2; color:var(--text); border-bottom:0}
.art-author a.aa-name:hover{color:var(--accent)}
.art-author .aa-role{display:block; margin-top:.3rem; font-size:.78rem; letter-spacing:.06em; color:var(--text-3)}
.art-author p{margin:.55rem 0 0; font-size:.9rem; line-height:1.6; color:var(--text-2); max-width:56ch}
.art-author .aa-more{display:inline-flex; gap:.4rem; align-items:center; margin-top:.7rem;
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); border-bottom:0}
.art-author .aa-more .arr{transition:transform .4s var(--ease)}
.art-author .aa-more:hover .arr{transform:translateX(4px)}
@media(max-width:560px){
  .art-author{grid-template-columns:1fr}
  .art-author img{width:64px; height:64px}
}

/* ── introducerea paginii de domeniu: corp + avocații domeniului (19 aug. 2026) ──
   Eticheta „Avocații care lucrează în acest domeniu" nu mai plutește sub text:
   devine o bandă ancorată cu hairline, în registrul etichetelor casei. */
.psec > .wrap > .prose + .psec-sub{
  margin:2.6rem 0 0; padding-top:1.5rem; border-top:1px solid var(--line);
  max-width:none; text-align:left; text-align-last:auto; hyphens:manual;
  font-size:.72rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--text-3); word-spacing:normal;
}
.psec > .wrap > .psec-sub + .ptags{margin-top:1.05rem}
/* Pe ecran lat, coloana de text nu mai lasă un gol în dreapta: avocații
   domeniului urcă în coloană laterală — pagina are două ancore verticale.
   (:has e susținut de toate browserele actuale; fără el rămâne varianta stivuită.) */
@media(min-width:1180px){
  .psec:has(> .wrap > .prose + .psec-sub + .ptags) > .wrap{
    display:grid; grid-template-columns:minmax(0,1fr) clamp(240px,22vw,300px);
    column-gap:clamp(2.6rem,5vw,5rem); align-items:start;
  }
  .psec:has(> .wrap > .prose + .psec-sub + .ptags) > .wrap > .prose{grid-column:1; grid-row:1 / span 3}
  .psec > .wrap > .prose + .psec-sub{grid-column:2; grid-row:1; margin:.35rem 0 0; padding:0 0 .95rem;
    border-top:0; border-bottom:1px solid var(--line-gold)}
  .psec > .wrap > .psec-sub + .ptags{grid-column:2; grid-row:2; margin-top:1.05rem;
    flex-direction:column; align-items:stretch; gap:.55rem}
  .psec > .wrap > .psec-sub + .ptags .ptag{
    display:flex; justify-content:space-between; align-items:center; gap:.7rem;
    padding:.6rem .95rem; border-radius:10px; font-size:.78rem;
  }
  .psec > .wrap > .psec-sub + .ptags .ptag::after{content:'→'; opacity:.4; transition:opacity .35s var(--ease), transform .35s var(--ease)}
  .psec > .wrap > .psec-sub + .ptags .ptag:hover::after{opacity:1; transform:translateX(2px)}
}

/* ── „Despre noi": titlul la stânga, corpul la dreapta (feedback Paul, sc2, 19 aug) ──
   Pe ecran lat, secțiunile cu titlu + text lung nu mai lasă golul din dreapta:
   titlul ocupă coloana stângă (pe 2–4 rânduri), corpul curge în dreapta pe 74ch.
   Lista de practică a domeniilor (.practice-list) e exclusă — rămâne pe lat. */
@media(min-width:1100px){
  .psec:has(> .wrap > .psec-h + .prose:not(.practice-list)) > .wrap{
    display:grid; grid-template-columns:minmax(300px,1fr) minmax(0,74ch);
    column-gap:clamp(2.8rem,6vw,6rem); align-items:start;
  }
  .psec:has(> .wrap > .psec-h + .prose:not(.practice-list)) > .wrap > .psec-h{
    grid-column:1; position:sticky; top:130px; margin-bottom:0;
  }
  .psec:has(> .wrap > .psec-h + .prose:not(.practice-list)) > .wrap > .prose{grid-column:2}
}
