/*
 * Divizie Perpetuum (page-divizie.php).
 * Layout editorial reutilizabil pentru toate diviziile. Culoarea de accent
 * vine per-divizie din --accent (setata inline pe .division din PHP).
 * Latimea containerului = 1240px, identica cu restul site-ului.
 */

.division {
	--accent: #6cbe45;                 /* fallback; suprascris inline din PHP */
	--division-text: #28292c;
	--division-muted: #52555a;
	--division-surface: #f7f8f8;
	--division-border: #e7e9ea;
	--division-radius: 12px;
	--division-container: 1240px;      /* ca zona de continut a front-page (.phome-about-section) */
}

/* 1240px centrat, ca "container principal" de pe homepage/Despre. Benzile hero/gri raman full-width (sectiunea e full-width, doar containerul e capat). */
.division-container { max-width: var(--division-container); margin: 0 auto; padding: 0 24px; }
.division-section { padding: clamp(36px, 4.5vw, 60px) 0; }
.division-section--alt { background: var(--division-surface); }
.division-section--tight { padding: clamp(28px, 3.5vw, 44px) 0; }

/* eyebrow-uri */
.division-eyebrow { display: block; font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: 2px; font-weight: 800; font-size: 13px; color: var(--accent); margin: 0 0 12px; }
.division-eyebrow--center { text-align: center; }
.division-eyebrow--light { color: #fff; opacity: .85; }

/* titluri */
.division-title { font-size: clamp(26px, 3.2vw, 38px); font-weight: 800; color: var(--division-text); margin: 0 0 32px; padding-left: 16px; border-left: 3px solid var(--accent); line-height: 1.2; }
.division-title--center { text-align: center; padding-left: 0; border-left: 0; }
.division-lead { text-align: center; max-width: 680px; margin: -14px auto 44px; color: var(--division-muted); font-size: 16px; line-height: 1.7; }

/* butoane */
.div-btn { display: inline-flex; align-items: center; gap: 8px; font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: 1px; font-weight: 800; font-size: 13px; padding: 14px 28px; border-radius: 4px; transition: transform .2s ease, gap .2s ease, background .2s ease, color .2s ease, filter .2s ease; }
.div-btn:hover { transform: translateY(-2px); gap: 12px; }
.div-btn:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.div-btn--solid { background: var(--accent); color: #fff; }
.div-btn--solid:hover { color: #fff; filter: brightness(.94); }
.div-btn--ghost { border: 1px solid rgba(255,255,255,.6); color: #fff; }
.div-btn--ghost:hover { background: rgba(255,255,255,.12); color: #fff; }
.div-btn--light { background: #fff; color: var(--division-text); flex: 0 0 auto; }
.div-btn--light:hover { color: var(--division-text); }
.div-btn--outline { border: 1px solid var(--division-border); color: var(--division-text); }
.div-btn--outline:hover { border-color: var(--accent); color: var(--accent); }

/* 1. HERO (mod luminos ca pagina Resurse: foto in spate dreapta, val deschis din stanga, text inchis peste) */
.division-hero { position: relative; padding: clamp(48px, 6vw, 88px) 0; background: linear-gradient(120deg, #f4f6f5 0%, #eef1ef 60%, #e7ebe8 100%); border-bottom: 1px solid var(--division-border); }
.division-hero.has-bg { background-size: cover; background-position: right center; background-repeat: no-repeat; }
.division-hero__overlay { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(244,246,245,.96) 0%, rgba(244,246,245,.85) 38%, rgba(244,246,245,.35) 60%, rgba(244,246,245,0) 78%); }
.division-hero__inner { position: relative; z-index: 1; }
.division-hero__content { max-width: 680px; }
.division-hero__title { font-size: clamp(34px, 5vw, 58px); font-weight: 800; color: var(--division-text); margin: 14px 0 18px; line-height: 1.05; letter-spacing: -.5px; }
.division-hero__desc { font-size: clamp(16px, 1.8vw, 19px); line-height: 1.6; color: var(--division-muted); margin: 0 0 26px; max-width: 620px; }
.division-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
/* badge-uri sub butoanele din hero: ancore #id catre secțiunile principale.
   Scroll-ul e nativ (scroll-behavior + scroll-margin-top pentru headerul fix), fara JS. */
.division-hero__jump { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
/* spatiu in plus doar cand exista butoane deasupra (descrierea are deja marja) */
.division-hero__actions + .division-hero__jump { margin-top: 22px; }
.division-hero__jump a { display: inline-flex; align-items: center; gap: 7px; padding: 8px 16px; border: 1px solid var(--division-border); border-radius: 999px; background: rgba(255,255,255,.8); color: var(--division-text); font-size: 14px; font-weight: 600; line-height: 1.2; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.division-hero__jump a::after { content: "\2193"; font-size: 12px; opacity: .55; }
.division-hero__jump a:hover { border-color: var(--accent); color: var(--accent); background: #fff; }
.division-hero__jump a:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
/* pe desktop toate badge-urile stau pe un singur rand; ies din coloana de text
   (680px) dar rman in containerul de 1240px. Pe mobil se aranjeaza pe rnduri. */
@media (min-width: 992px) { .division-hero__jump { flex-wrap: nowrap; width: max-content; } }
html { scroll-behavior: smooth; }
.division-section[id] { scroll-margin-top: 110px; }

/* Inaltime egala pe toate hero-urile (doar desktop). Pragul e dat de pagina cu
   cel mai lung text - ceramica si vopsele au ~220 de caractere, adica 4 rnduri
   plus doua butoane. Paginile cu text scurt se ridica la acelasi prag, iar
   conținutul se centreaza pe verticala, ca sa nu rmna golul doar jos.
   E min-height, nu height: daca un titlu trece pe doua rnduri, hero-ul creste
   in loc sa taie textul. */
@media (min-width: 992px) {
	.division-hero { min-height: 500px; display: flex; align-items: center; }
	.division-hero__inner { width: 100%; }
}

/* eyebrow cu liniuta de accent (ca .res-eyebrow--rule) */
.division-eyebrow--rule::after { content: ""; display: block; width: 44px; height: 3px; margin-top: 10px; background: var(--accent); border-radius: 2px; }

/* 2. INDICATORI-CHEIE */
.division-stats { background: #fff; border-bottom: 1px solid var(--division-border); }
.division-stats__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.division-stat { text-align: center; padding: clamp(24px, 3vw, 38px) 20px; border-left: 1px solid var(--division-border); }
.division-stat:first-child { border-left: 0; }
.division-stat__value { display: block; font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; color: var(--division-text); line-height: 1.1; }
.division-stat__label { display: block; margin-top: 8px; font-size: 14px; color: var(--division-muted); }

/* 2b. BRAND PROPRIU - banda evidentiata sub hero (logo intr-un card alb la
   stanga, text la dreapta). Fundal verde foarte deschis, pe toata latimea, ca
   pe /amenajari/, ca sa se distanteze de brandurile distribuite. */
.division-ownbrand {
	background: linear-gradient(135deg, #f2f8ee 0%, #eaf4e4 100%);
	border-bottom: 1px solid #dceace;
}
.division-ownbrand__grid { display: grid; grid-template-columns: 1fr; gap: clamp(20px, 2.5vw, 32px); align-items: center; }
/* Slotul din stanga e patrat si il umple un banner patrat (object-fit: cover,
   fara padding). Daca in loc de banner se pune un logo, treci pe contain. */
.division-ownbrand__logo {
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 1 / 1;
	background: #fff; border: 1px solid #dceace; border-radius: var(--division-radius);
	overflow: hidden;
}
.division-ownbrand__logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.division-ownbrand__wordmark { font-family: "Josefin Sans", sans-serif; font-size: 30px; font-weight: 800; letter-spacing: -.5px; color: var(--division-text); }
.division-ownbrand__body .division-title { margin-bottom: 14px; }
.division-ownbrand__body .division-offer__text:last-child { margin-bottom: 0; }
.division-ownbrand__actions { margin-top: 22px; }
@media (min-width: 860px) {
	.division-ownbrand__grid { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
}

/* 3. BRANDURI */
.division-brands { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(28px, 4vw, 56px); }
.division-brand { display: flex; align-items: center; justify-content: center; height: 60px; }
.division-brand img { max-height: 48px; max-width: 150px; width: auto; height: auto; object-fit: contain; filter: grayscale(100%); opacity: .6; transition: filter .3s ease, opacity .3s ease; }
.division-brand a:focus-visible img,
.division-brand img:hover { filter: grayscale(0); opacity: 1; }
/* brand propriu ('featured' => true): logo mai mare, mereu in culori.
   ATENTIE: logo-urile din assets/img/suppliers/ sunt mici (artgreso.png = 90x30 px),
   deci max-height nu are ce sa mareasca - trebuie inaltime explicita. 46px = ~1.5x
   fata de restul (30px naturali); mai mult se pixeleaza. Pentru un logo vizibil
   mai mare e nevoie de un fisier de ~400 px latime sau de un SVG. */
.division-brand--featured { height: 92px; }
.division-brand--featured img {
	height: 46px;
	width: auto;
	max-height: none;
	max-width: 300px;
	filter: grayscale(0);
	opacity: 1;
}

/* 4. DESPRE DIVIZIE */
.division-about__grid { display: grid; grid-template-columns: 55% 45%; gap: clamp(32px, 5vw, 64px); align-items: center; }
.division-about--solo .division-about__grid { grid-template-columns: 1fr; }
.division-about--solo .division-about__text { max-width: 820px; }
.division-about__text p { font-size: 16px; line-height: 1.8; color: var(--division-muted); margin: 0 0 16px; }
.division-about__text p:last-child { margin-bottom: 0; }
.division-about__media img { width: 100%; max-height: 480px; object-fit: cover; border-radius: var(--division-radius); }
.division-highlights { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 24px; }
.division-highlights li { position: relative; padding-left: 30px; font-size: 15px; color: var(--division-text); line-height: 1.5; }
.division-highlights i { position: absolute; left: 0; top: 2px; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 10px; }
/* coordonate divizie (adresa/telefon/email) */
.division-coords { padding: clamp(22px, 3vw, 32px); background: var(--division-surface); border: 1px solid var(--division-border); border-left: 3px solid var(--accent); border-radius: var(--division-radius); display: grid; gap: 20px; align-self: center; }
.division-coords__item { display: flex; gap: 14px; align-items: flex-start; }
.division-coords__icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 12%, #fff); color: var(--accent); font-size: 16px; }
.division-coords__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.division-coords__label { font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: 1px; font-weight: 800; font-size: 12px; color: var(--division-muted); margin-bottom: 2px; }
.division-coords__line { font-size: 15px; line-height: 1.55; color: var(--division-text); }
.division-coords__line a { color: var(--division-text); font-weight: 600; }
.division-coords__line a:hover { color: var(--accent); }

/* 5. SOLUTIILE OFERITE - editorial (cu imagine) */
.division-offer { display: flex; flex-direction: column; gap: clamp(40px, 6vw, 80px); }
.division-offer__row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: center; }
.division-offer__row:nth-child(even) .division-offer__media { order: 2; }
.division-offer__media img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--division-radius); }
.division-offer__iconwrap { display: flex; align-items: center; justify-content: center; aspect-ratio: 4/3; border-radius: var(--division-radius); background: #fff; border: 1px solid var(--division-border); color: var(--accent); font-size: 54px; }
.division-offer__title { font-size: clamp(22px, 2.4vw, 28px); font-weight: 800; color: var(--division-text); margin: 0 0 14px; }
.division-offer__text { font-size: 16px; line-height: 1.8; color: var(--division-muted); margin: 0 0 22px; }

/* 5c. SOLUTIILE OFERITE - carduri cu imagine in spate (style => 'media') */
/* 3 carduri pe rand pe desktop (implicit era auto-fill 230px => 5 coloane, cu
   fotografii prea mici ca sa se vada produsul). 2 pe tableta, 1 pe mobil. */
.division-prodgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 900px) { .division-prodgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .division-prodgrid { grid-template-columns: 1fr; } }
.division-prodcard { position: relative; display: block; min-height: 230px; border-radius: var(--division-radius); overflow: hidden; background-color: var(--division-text); background-size: cover; background-position: center; color: #fff; text-decoration: none; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.division-prodcard::after { content: ""; position: absolute; inset: 0; border: 2px solid transparent; border-radius: var(--division-radius); transition: border-color .3s ease; pointer-events: none; }
.division-prodcard:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(24,25,27,.22); }
.division-prodcard:hover::after { border-color: var(--accent); }
.division-prodcard:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.division-prodcard--plain { background: #fff; border: 1px solid var(--division-border); color: var(--division-text); }
/* Scrim peste fotografie: gradientul din atributul style inline e prea slab pe
   imaginile deschise (gresie, faianta) si titlul alb devine greu de citit.
   ::after e ocupat de bordura verde de la hover, deci folosim ::before. */
.division-prodcard:not(.division-prodcard--plain)::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	background: linear-gradient(to top, rgba(24,25,27,.92) 0%, rgba(24,25,27,.72) 30%, rgba(24,25,27,.28) 62%, rgba(24,25,27,0) 88%);
}
.division-prodcard__inner { z-index: 2; }
/* doar pe cardurile cu fotografie: text alb peste imagine. Pe cardul --plain
   titlul e inchis pe fond deschis, iar umbra il facea sa para murdar. */
.division-prodcard:not(.division-prodcard--plain) .division-prodcard__title { text-shadow: 0 1px 10px rgba(0,0,0,.5); }
.division-prodcard__inner { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: 5px; padding: 20px; }
/* Card fara fotografie (ex. "Gama completa" cu link catre site-ul brandului):
   fond si bordura in accent, conținut centrat vertical, ca sa arate ca o
   invitatie, nu ca o fisa goala intre cardurile cu poze. */
.division-prodcard--plain {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--division-border);
	transition: border-color .3s ease, background .3s ease, transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
/* tenta de accent doar cand cardul e link (card de tip CTA, ex. "vezi tot pe
   site-ul brandului"). O categorie fara fotografie rmane neutra. */
a.division-prodcard--plain {
	background: var(--division-surface);
	background: color-mix(in srgb, var(--accent) 7%, #fff);
	border-color: color-mix(in srgb, var(--accent) 32%, #fff);
}
.division-prodcard--plain .division-prodcard__inner { position: static; gap: 10px; padding: 26px 26px; }
.division-prodcard--plain .division-prodcard__title { font-size: 20px; }
a.division-prodcard--plain:hover {
	background: color-mix(in srgb, var(--accent) 12%, #fff);
	border-color: var(--accent);
}

/* Cardurile cu link sunt <a>, iar tema are propria culoare pe a:hover (gri
   inchis) care bate `color:#fff` de mai sus -> titlul si textul deveneau
   ilizibile la hover peste fotografie. Fortam alb pe hover si focus. */
a.division-prodcard:not(.division-prodcard--plain),
a.division-prodcard:not(.division-prodcard--plain):hover,
a.division-prodcard:not(.division-prodcard--plain):focus,
a.division-prodcard:not(.division-prodcard--plain):hover .division-prodcard__title,
a.division-prodcard:not(.division-prodcard--plain):hover .division-prodcard__text,
a.division-prodcard:not(.division-prodcard--plain):focus .division-prodcard__title,
a.division-prodcard:not(.division-prodcard--plain):focus .division-prodcard__text { color: #fff; }

/* CTA din card: eticheta actiunii, cu sageata care aluneca la hover */
.division-prodcard__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	font-family: "Josefin Sans", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 800;
	font-size: 12px;
	color: #8bd45f;                                  /* pe cardurile cu fotografie */
}
.division-prodcard--plain .division-prodcard__more { color: var(--accent); }
.division-prodcard__more i { font-size: 11px; transition: transform .25s ease; }
a.division-prodcard:hover .division-prodcard__more i { transform: translateX(4px); }
.division-prodcard__title { font-size: 18px; font-weight: 800; line-height: 1.2; letter-spacing: -.2px; }
.division-prodcard__text { font-size: 13px; line-height: 1.5; opacity: 0; max-height: 0; overflow: hidden; transition: opacity .3s ease, max-height .3s ease; }
.division-prodcard:hover .division-prodcard__text,
.division-prodcard:focus-visible .division-prodcard__text { opacity: .92; max-height: 120px; }
.division-prodcard--plain .division-prodcard__text { opacity: 1; max-height: none; color: var(--division-muted); }

/* 5b. SOLUTIILE OFERITE - grid premium pe icon (fara imagini) */
.division-solutions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--division-border); border: 1px solid var(--division-border); border-radius: var(--division-radius); overflow: hidden; }
.division-solution { background: #fff; padding: clamp(26px, 3vw, 36px); display: flex; flex-direction: column; transition: background .25s ease; }
.division-solution:hover { background: var(--division-surface); }
.division-solution__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: color-mix(in srgb, var(--accent) 12%, #fff); color: var(--accent); font-size: 22px; margin-bottom: 18px; }
.division-solution__title { font-size: 19px; font-weight: 800; color: var(--division-text); margin: 0 0 8px; }
.division-solution__text { font-size: 15px; line-height: 1.65; color: var(--division-muted); margin: 0 0 14px; }
.division-solution .div-cardbtn { margin-top: auto; }

.div-cardbtn { display: inline-flex; align-items: center; gap: 6px; font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: .5px; font-weight: 800; font-size: 12px; color: var(--accent); transition: gap .2s ease; }
.div-cardbtn:hover { gap: 10px; color: var(--accent); }

/* 6. DOMENII DE APLICARE */
.division-industries { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; margin-top: 36px; }
.division-industry { position: relative; display: block; min-height: 240px; border-radius: var(--division-radius); overflow: hidden; background-color: var(--division-text); background-size: cover; background-position: center; color: #fff; text-decoration: none; transition: transform .3s ease; }
.division-industry:hover { transform: translateY(-4px); }
.division-industry:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.division-industry--plain { background: #fff; border: 1px solid var(--division-border); color: var(--division-text); min-height: 180px; }
.division-industry__inner { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: 4px; padding: 22px; }
.division-industry--plain .division-industry__inner { position: static; }
.division-industry__title { font-size: 20px; font-weight: 800; line-height: 1.2; }
.division-industry__text { font-size: 14px; line-height: 1.5; opacity: .92; }

/* 7. CUM LUCRAM (timeline) */
.division-process { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 28px; position: relative; }
.division-step { position: relative; padding-top: 46px; }
.division-step::before { content: ""; position: absolute; top: 15px; left: 0; right: -28px; height: 1px; background: var(--division-border); }
.division-step:last-child::before { right: 0; }
.division-step__num { position: absolute; top: 0; left: 0; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: #fff; border: 1px solid var(--accent); color: var(--accent); font-weight: 800; font-size: 14px; }
.division-step__title { font-size: 18px; font-weight: 800; color: var(--division-text); margin: 0 0 6px; }
.division-step__text { font-size: 14px; line-height: 1.6; color: var(--division-muted); margin: 0; }

/* 8. DE CE PROFILINE - carduri premium (fara iconite / numere) */
.division-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.division-benefit { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--division-border); border-radius: 18px; padding: clamp(28px, 3vw, 40px); box-shadow: 0 1px 2px rgba(24,25,27,.04); transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease; }
/* bara de accent sus, apare la hover */
.division-benefit::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 30%, transparent)); transform: scaleX(0); transform-origin: left; transition: transform .4s ease; }
.division-benefit:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(24,25,27,.12); border-color: transparent; }
.division-benefit:hover::before { transform: scaleX(1); }
.division-benefit__line { display: block; width: 46px; height: 3px; border-radius: 3px; background: var(--accent); margin: 0 0 20px; transition: width .35s ease; }
.division-benefit:hover .division-benefit__line { width: 72px; }
.division-benefit__title { font-size: 19px; font-weight: 800; color: var(--division-text); margin: 0 0 10px; letter-spacing: -.2px; }
.division-benefit__text { font-size: 15px; line-height: 1.65; color: var(--division-muted); margin: 0; }

/* 9. PROIECTE REALIZATE */
.division-projects { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 36px; }
.division-projects--featured .division-project:first-child { grid-column: span 2; grid-row: span 2; }
.division-project { position: relative; display: block; border-radius: var(--division-radius); overflow: hidden; background: #fff; border: 1px solid var(--division-border); text-decoration: none; transition: transform .3s ease, box-shadow .3s ease; }
.division-project:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(24,25,27,.10); }
.division-project:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.division-project__media { display: block; aspect-ratio: 4/3; overflow: hidden; }
.division-projects--featured .division-project:first-child .division-project__media { aspect-ratio: 16/11; height: 100%; }
.division-project__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.division-project:hover .division-project__media img { transform: scale(1.05); }
.division-project__body { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; }
.division-project__cat { font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: 1px; font-size: 11px; font-weight: 800; color: var(--accent); }
.division-project__title { font-size: 18px; font-weight: 800; color: var(--division-text); }
.division-project__loc { font-size: 13px; color: var(--division-muted); }
.division-project__loc i { color: var(--accent); margin-right: 4px; }

/* 9b. GALERIE (fallback) */
.division-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 36px; }
.division-gallery__item { display: block; border-radius: var(--division-radius); overflow: hidden; aspect-ratio: 4/3; }
.division-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.division-gallery__item:hover img { transform: scale(1.05); }

/* 10. DOCUMENTATIE */
.division-docs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.division-doc { display: flex; align-items: center; gap: 16px; background: var(--division-surface); border: 1px solid var(--division-border); border-radius: 10px; padding: 18px 22px; text-decoration: none; transition: border-color .2s ease, transform .2s ease; }
.division-doc:hover { border-color: var(--accent); transform: translateY(-2px); }
.division-doc:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.division-doc__icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 12%, #fff); color: var(--accent); font-size: 20px; }
.division-doc__info { flex: 1; min-width: 0; }
.division-doc__title { display: block; font-weight: 700; color: var(--division-text); }
.division-doc__text { display: block; font-size: 13px; color: var(--division-muted); margin-top: 2px; }
.division-doc__meta { display: block; font-size: 12px; color: var(--division-muted); margin-top: 4px; text-transform: uppercase; letter-spacing: .5px; }
.division-doc__action { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: .5px; font-weight: 800; font-size: 12px; color: var(--accent); }

/* vizualizare PDF direct in pagina */
/* link-text (nu buton) in hero: deschide modalul de contact */
.division-textlink {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: 1px;
	font-weight: 800; font-size: 14px; color: var(--accent);
	border-bottom: 2px solid transparent;
	transition: gap .2s ease, color .2s ease, border-color .2s ease;
}
.division-textlink:hover { gap: 14px; color: var(--accent); border-bottom-color: var(--accent); }
.division-textlink:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }

/* MODAL DE CONTACT (<dialog> nativ, deschis din cardurile de gama).
   Poziționarea, backdrop-ul, Esc si focus-ul le face browserul; aici doar
   aspectul. Resetam margin/padding fiindca <dialog> vine cu valori proprii. */
.division-modal {
	max-width: min(92vw, 760px); width: 100%;
	max-height: 90vh; overflow: auto;
	margin: auto; padding: 0;
	border: 0; border-radius: var(--division-radius);
	background: #fff; color: var(--division-text);
	box-shadow: 0 30px 80px rgba(24,25,27,.28);
}
.division-modal::backdrop { background: rgba(24,25,27,.55); }
.division-modal__box { position: relative; padding: clamp(26px, 4vw, 40px); }
.division-modal__close {
	position: absolute; top: 12px; right: 12px;
	width: 38px; height: 38px; padding: 0;
	display: flex; align-items: center; justify-content: center;
	background: none; border: 0; border-radius: 50%;
	color: var(--division-muted); font-size: 18px; cursor: pointer;
	transition: background .2s ease, color .2s ease;
}
.division-modal__close:hover { background: var(--division-surface); color: var(--division-text); }
.division-modal__close:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.division-modal__title { font-size: clamp(22px, 2.6vw, 28px); font-weight: 800; margin: 0 0 8px; line-height: 1.2; }
.division-modal__text { margin: 0 0 24px; font-size: 15px; line-height: 1.65; color: var(--division-muted); }
/* cate un bloc per canal (B2B / B2C): pe un rand de la 620px, stivuite sub.
   auto-fit => cand exista un singur contact, cardul umple toata latimea, nu
   lasa o coloana goala lang el. */
.division-modal__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.division-modal__channel {
	display: flex; flex-direction: column;
	padding: 20px; border: 1px solid var(--division-border); border-radius: var(--division-radius);
	background: var(--division-surface);
}
.division-modal__label {
	font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: 1.5px;
	font-size: 11px; font-weight: 800; color: var(--accent); margin-bottom: 10px;
}
.division-modal__name { font-size: 18px; font-weight: 800; line-height: 1.25; }
.division-modal__role { margin-top: 2px; font-size: 13px; color: var(--division-muted); }
.division-modal__ctext { margin: 12px 0 18px; font-size: 14px; line-height: 1.6; color: var(--division-muted); }
.division-modal__actions { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }
.division-modal__actions .div-btn { justify-content: center; padding: 12px 18px; font-size: 12px; }
.division-modal__note { margin: 18px 0 0; font-size: 13px; color: var(--division-muted); text-align: center; }
@media (min-width: 620px) {
	.division-modal__grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

.division-docview { margin-top: 20px; border: 1px solid var(--division-border); border-radius: 10px; overflow: hidden; }
.division-docview__frame { width: 100%; height: min(85vh, 1000px); border: 0; display: block; }

/* 11. SPECIALIST + FORMULAR */
.division-contactgrid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 4vw, 48px); align-items: start; margin-top: 8px; }
.division-contactgrid--single { grid-template-columns: 1fr; max-width: 560px; }
.division-specialist { background: #fff; border: 1px solid var(--division-border); border-radius: var(--division-radius); padding: clamp(24px, 3vw, 34px); }
.division-specialist__photo img { width: 96px; height: 96px; object-fit: cover; border-radius: 50%; margin-bottom: 16px; }
.division-specialist__name { display: block; font-size: 22px; font-weight: 800; color: var(--division-text); }
.division-specialist__role { display: block; font-size: 14px; color: var(--accent); margin-bottom: 12px; font-weight: 700; }
.division-specialist__msg { font-size: 15px; line-height: 1.7; color: var(--division-muted); margin: 0 0 16px; }
.division-specialist__list { list-style: none; margin: 0 0 20px; padding: 0; }
.division-specialist__list li { margin-bottom: 8px; font-size: 15px; }
.division-specialist__list i { color: var(--accent); width: 16px; margin-right: 8px; }
.division-specialist__list a { color: var(--division-text); }
.division-specialist__list a:hover { color: var(--accent); }
.division-specialist__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.division-form { background: #fff; border: 1px solid var(--division-border); border-radius: var(--division-radius); padding: clamp(24px, 3vw, 36px); }

/* Formulare Contact Form 7. Pluginul nu aduce stiluri proprii, iar controalele
   au latimi implicite diferite intre ele - de aici aspectul in zigzag. Le dam
   aceeasi latime si aceleasi borduri ca restul paginii. */
.division-form .wpcf7-form label,
.division-form .wpcf7-form legend {
	display: block; margin-bottom: 4px;
	font-size: 14px; font-weight: 700; color: var(--division-text);
}
.division-form .wpcf7-form input[type="text"],
.division-form .wpcf7-form input[type="email"],
.division-form .wpcf7-form input[type="tel"],
.division-form .wpcf7-form select,
.division-form .wpcf7-form textarea {
	display: block; width: 100%; margin-top: 6px;
	padding: 12px 14px; font: inherit; color: var(--division-text);
	background: #fff; border: 1px solid var(--division-border); border-radius: 6px;
	transition: border-color .2s ease;
}
.division-form .wpcf7-form textarea { min-height: 130px; resize: vertical; }
.division-form .wpcf7-form input:focus,
.division-form .wpcf7-form select:focus,
.division-form .wpcf7-form textarea:focus { border-color: var(--accent); outline: 0; }
.division-form .wpcf7-form input:focus-visible,
.division-form .wpcf7-form select:focus-visible,
.division-form .wpcf7-form textarea:focus-visible { outline: 3px solid var(--accent); outline-offset: 1px; }
.division-form .wpcf7-form .wpcf7-form-control-wrap { display: block; }
.division-form .wpcf7-form p { margin: 0 0 18px; }

/* grupuri de opțiuni: radio pe un rand, acord GDPR cu bifa lang text */
.division-form .wpcf7-form .wpcf7-radio .wpcf7-list-item,
.division-form .wpcf7-form .wpcf7-checkbox .wpcf7-list-item { margin: 0 20px 0 0; }
.division-form .wpcf7-form .wpcf7-radio label,
.division-form .wpcf7-form .wpcf7-checkbox label { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 400; }
.division-form .wpcf7-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.division-form .wpcf7-form .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; font-weight: 400; }
.division-form .wpcf7-form input[type="checkbox"],
.division-form .wpcf7-form input[type="radio"] { width: auto; margin: 0; accent-color: var(--accent); }

/* butonul de trimitere, la fel ca .div-btn--solid */
.division-form .wpcf7-form input[type="submit"] {
	width: auto; margin-top: 4px; padding: 14px 28px;
	font-family: "Josefin Sans", sans-serif; text-transform: uppercase; letter-spacing: 1px;
	font-weight: 800; font-size: 13px;
	background: var(--accent); color: #fff; border: 0; border-radius: 4px; cursor: pointer;
	transition: filter .2s ease, transform .2s ease;
}
.division-form .wpcf7-form input[type="submit"]:hover { filter: brightness(.94); transform: translateY(-2px); }

/* Doua câmpuri pe rand (wrapper-ele .pp-form__row din codul formularului).
   Flex, nu grid: cand un câmp e ascuns condiționat, celalalt se intinde singur
   pe toata latimea, fara sa rmna o coloana goala. */
.division-form .pp-form__row { display: flex; flex-wrap: wrap; gap: 0 20px; }
.division-form .pp-form__row > * { flex: 1 1 240px; }
/* [hidden] trebuie sa bata regula de mai sus care face label-urile block */
.division-form .wpcf7-form [hidden] { display: none; }
/* fieldset fara chenarul implicit al browserului */
.division-form .pp-radiogroup { border: 0; padding: 0; margin: 0 0 18px; }
.division-form .pp-radiogroup legend { padding: 0; }

/* 12. CTA FINAL */
.division-cta { background: var(--accent); }
.division-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-top: clamp(40px, 5vw, 60px); padding-bottom: clamp(40px, 5vw, 60px); flex-wrap: wrap; }
.division-cta__body { flex: 1 1 420px; }
.division-cta__title { color: #fff; font-size: clamp(24px, 3vw, 34px); font-weight: 800; margin: 0 0 8px; line-height: 1.2; }
.division-cta__text { color: rgba(255,255,255,.92); margin: 0; max-width: 620px; line-height: 1.6; }
.division-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; flex: 0 0 auto; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1200px) {
	.division-solutions, .division-benefits, .division-projects { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 992px) {
	.division-about__grid { grid-template-columns: 1fr; gap: 32px; }
	.division-about__media { order: -1; }
	.division-offer__row,
	.division-offer__row:nth-child(even) .division-offer__media { grid-template-columns: 1fr; order: 0; }
	.division-solutions, .division-benefits { grid-template-columns: repeat(2, 1fr); }
	.division-projects { grid-template-columns: repeat(2, 1fr); }
	.division-projects--featured .division-project:first-child { grid-column: auto; grid-row: auto; }
	.division-projects--featured .division-project:first-child .division-project__media { aspect-ratio: 4/3; }
	.division-contactgrid { grid-template-columns: 1fr; }
	.division-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.division-stats__grid { grid-template-columns: repeat(2, 1fr); }
	.division-stat:nth-child(-n+2) { border-top: 0; }
	.division-stat:nth-child(odd) { border-left: 0; }
	.division-stat:nth-child(n+3) { border-top: 1px solid var(--division-border); }
	.division-highlights { grid-template-columns: 1fr; }
	.division-cta__inner { flex-direction: column; align-items: flex-start; }
	/* fara foto/overlay pe mobil: text curat, fara overflow (ca .res-hero) */
	.division-hero.has-bg { background-image: none !important; }
	.division-hero__overlay { display: none; }
	.division-hero__content { max-width: none; }
}
@media (max-width: 576px) {
	.division-stats__grid { grid-template-columns: 1fr; }
	.division-stat { border-left: 0; border-top: 1px solid var(--division-border); }
	.division-stat:first-child { border-top: 0; }
	.division-solutions, .division-benefits, .division-projects, .division-gallery { grid-template-columns: 1fr; }
	.division-specialist__actions .div-btn { flex: 1 1 auto; justify-content: center; }
}

/* color-mix fallback pentru browsere vechi */
@supports not (background: color-mix(in srgb, red 10%, white)) {
	.division-solution__icon, .division-doc__icon { background: var(--division-surface); }
}
