/* ── cbn-banner ───────────────────────────────────────────── */
.cbn-banner {
  min-height: 520px;
  padding-top: 80px;
  background: url(/img/app/portfolio/tiny-houses-banner.jpg) no-repeat center center;
  background-size: cover;
  position: relative;
  display: flex;
  align-items: flex-end;
  padding-bottom: 64px; }

.cbn-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(20, 10, 4, 0.50) 0%,
    rgba(20, 10, 4, 0.78) 100%
  ); }

.cbn-banner .container { position: relative; z-index: 1; }

.cbn-banner-supra {
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8A9E4A;
  margin-bottom: 14px; }

.cbn-banner h1 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 52px;
  font-weight: 300;
  color: #fff;
  margin: 0 0 18px 0;
  line-height: 1.1em;
  max-width: 780px; }

.cbn-banner-sub {
  font-family: "DM Sans", sans-serif;
  font-size: 16px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.78);
  max-width: 600px;
  line-height: 1.65em;
  margin: 0 0 18px 0; }

.cbn-banner-price-note {
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  font-style: italic;
  color: rgba(255, 255, 255, 0.65);
  margin: 0 0 26px 0; }

/* ── cbn-proof ────────────────────────────────────────────── */
.cbn-proof {
  background: #2C1A0E;
  padding: 44px 0 30px; }

.cbn-proof-item {
  padding: 12px;
  text-align: center; }

.cbn-proof-nr {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 40px;
  font-weight: 300;
  color: #F7F2EB;
  line-height: 1em;
  margin-bottom: 8px; }

.cbn-proof-label {
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #A89070; }

.cbn-proof-note {
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  color: #7A6655;
  text-align: center;
  max-width: 680px;
  margin: 26px auto 0;
  line-height: 1.6em; }

/* ── cbn-section (override .section pentru densitatea paginii) ── */
.cbn-section { padding: 80px 0; }

/* jumatate din spatiul de sus si de jos, doar pentru sectiunea Doru + viziune/formular */
.cbn-section-doru { padding-top: 40px; padding-bottom: 40px; }

/* sectiunea precedenta ("de ce Opercons") are deja padding-bottom de 80px --
   nu mai adaugam alte 80px deasupra, doar o mica respiratie */
.cbn-section-lege-b { padding-top: 20px; }

/* randul viziune/formular -- flex doar de la 768px in sus (acolo unde
   col-sm-* au regula de width in grid-ul custom), ca cele doua coloane
   sa aiba aceeasi inaltime si poza sa se poata intinde pana la baza. */
@media (min-width: 768px) {
  .cbn-viziune-row { display: flex; flex-wrap: wrap; }
  .cbn-viziune { display: flex; flex-direction: column; }
}

/* ── cbn-valoare (card + cadran numerotat) ───────────────── */
/* .row-grid din grid-ul custom foloseste float, nu flex, deci cardurile
   nu se intind egal pe inaltime by default -- fortam flex doar pe randul
   asta (>=768px, acolo unde col-sm-* au si ele regula de width). */
@media (min-width: 768px) {
  .cbn-valori-row { display: flex; flex-wrap: wrap; }
}

.cbn-valoare {
  padding: 40px 30px 34px;
  text-align: center;
  background: #FDFAF6;
  border: 1px solid #EDE5D8;
  transition: opacity 0.6s ease, transform 0.6s ease, box-shadow 0.35s ease; }

.cbn-valoare.is-hidden {
  opacity: 0;
  transform: translateY(28px); }

.cbn-valoare:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 40px rgba(44, 26, 14, 0.12); }

.cbn-valoare-dial {
  width: 72px;
  height: 72px;
  margin: 0 auto 22px;
  border-radius: 50%;
  border: 2px solid #6B7A3A;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease, transform 0.3s ease; }

.cbn-valoare-dial span {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 30px;
  font-weight: 500;
  color: #6B7A3A;
  transition: color 0.3s ease; }

.cbn-valoare:hover .cbn-valoare-dial {
  background: #6B7A3A;
  transform: scale(1.08); }

.cbn-valoare:hover .cbn-valoare-dial span { color: #F7F2EB; }

.cbn-valoare h4 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  font-weight: 400;
  color: #2C1A0E;
  margin: 0 0 12px 0; }

.cbn-valoare p {
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  color: #7A6655;
  line-height: 1.65em;
  margin: 0; }

@media (prefers-reduced-motion: reduce) {
  .cbn-valoare,
  .cbn-valoare-dial,
  .cbn-valoare-dial span {
    transition: none !important; }
  .cbn-valoare.is-hidden {
    opacity: 1;
    transform: none; } }

.cbn-doru-wrap { margin-bottom: 30px; }

/* ── cbn-viziune ──────────────────────────────────────────── */
.cbn-viziune h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 32px;
  font-weight: 400;
  color: #2C1A0E;
  margin: 24px 0 14px 0; }

.cbn-viziune .hr-short-primary { margin-bottom: 16px; }

.cbn-viziune p {
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  color: #7A6655;
  line-height: 1.75em;
  margin: 10px 0 0; }

.cbn-viziune-photo {
  display: block;
  width: 100%;
  height: 280px;
  background-size: cover;
  background-position: center;
  margin-top: 26px; }

@media (min-width: 768px) {
  .cbn-viziune-photo {
    flex: 1 1 0%;
    height: auto;
    min-height: 160px; }
}

/* ── cbn-lead (formular scurt embedat) ───────────────────── */
.cbn-lead {
  background: #FDFAF6;
  border: 1px solid #EDE5D8;
  padding: 32px 34px 30px; }

.cbn-lead h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
  font-weight: 400;
  color: #2C1A0E;
  margin: 0 0 8px 0; }

.cbn-lead-text {
  font-family: "DM Sans", sans-serif;
  font-size: 13.5px;
  color: #7A6655;
  margin: 0 0 22px 0; }

.cbn-lead-form .form-group { margin-bottom: 16px; }

.cbn-lead-form label {
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #3D2B1F;
  margin-bottom: 5px; }

/* randuri in care unele etichete trec pe 2 linii (ex. "Locația proiectului
   (județ)"): casetele se aliniaza jos, etichetele raman sus (doar pe
   desktop -- pe mobil campurile sunt unul sub altul) -- acelasi tipar ca
   #form1 .contact-row-align de pe pagina de Contact */
@media (min-width: 768px) {
  .cbn-lead-form .contact-row-align {
    display: flex;
    flex-wrap: wrap; }
  .cbn-lead-form .contact-row-align:before,
  .cbn-lead-form .contact-row-align:after {
    display: none; }
  .cbn-lead-form .contact-row-align > [class*="col-"] {
    display: flex; }
  .cbn-lead-form .contact-row-align .form-group {
    display: flex;
    flex-direction: column;
    width: 100%; }
  .cbn-lead-form .contact-row-align .form-group label {
    flex: 1 0 auto; } }

.cbn-lead-disclaimer {
  font-family: "DM Sans", sans-serif;
  font-size: 11.5px;
  color: #A89070;
  margin: 14px 0 0;
  line-height: 1.5em; }

/* ── cbn-calc (calculator de randament) ──────────────────── */
.cbn-calc-field { margin-bottom: 16px; }

.cbn-calc-field label {
  display: block;
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #3D2B1F;
  margin-bottom: 5px; }

.cbn-calc-results {
  background: #2C1A0E;
  padding: 30px 32px;
  min-height: 220px; }

.cbn-calc-placeholder {
  font-family: "DM Sans", sans-serif;
  font-size: 13.5px;
  color: #A89070;
  margin: 0; }

.cbn-calc-result-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid #3B2C1E; }

.cbn-calc-result-row:last-child { border-bottom: 0; }

.cbn-calc-result-label {
  font-family: "DM Sans", sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.04em;
  color: #A89070; }

.cbn-calc-result-value {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 500;
  color: #F7F2EB; }

.cbn-calc-disclaimer {
  font-family: "DM Sans", sans-serif;
  font-size: 11.5px;
  color: #A89070;
  margin: 14px 0 0;
  line-height: 1.5em; }

/* ── cbn-cta-urgency ──────────────────────────────────────── */
.cbn-cta-urgency {
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  font-style: italic;
  color: rgba(255, 255, 255, 0.6);
  margin: 0 0 26px 0; }

/* ── cbn-model-row (cele doua carduri de mai jos, egale pe inaltime) ── */
@media (min-width: 768px) {
  .cbn-model-row { display: flex; align-items: stretch; }
  .cbn-model-row > [class*="col-"] { display: flex; } }

/* ── cbn-model-card ───────────────────────────────────────── */
.cbn-model-card {
  background: #FDFAF6;
  border: 1px solid #EDE5D8;
  margin-bottom: 24px;
  width: 100%;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s ease; }

.cbn-model-card:hover {
  box-shadow: 0 8px 32px rgba(44, 26, 14, 0.10); }

.cbn-model-card img { display: block; width: 100%; height: 280px; object-fit: cover; }

.cbn-model-card-cnt { padding: 26px 28px 32px; flex: 1; display: flex; flex-direction: column; }

.cbn-model-card-cnt p { flex: 1; }

.cbn-model-card-cnt h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 400;
  color: #2C1A0E;
  margin: 0 0 10px 0; }

.cbn-model-card-cnt p {
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  color: #7A6655;
  line-height: 1.65em;
  margin-bottom: 22px; }

/* ── cbn-pas (mini pași proces) ───────────────────────────── */
.cbn-pas {
  padding: 20px 16px;
  text-align: center; }

.cbn-pas-nr {
  width: 40px;
  height: 40px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: #6B7A3A;
  color: #F7F2EB;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 600; }

.cbn-pas h4 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 19px;
  font-weight: 400;
  color: #2C1A0E;
  margin: 0 0 8px 0; }

.cbn-pas p {
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  color: #7A6655;
  line-height: 1.6em;
  margin: 0; }

/* ── responsive ───────────────────────────────────────────── */
@media (max-width: 767px) {
  .cbn-banner { min-height: 460px; padding-bottom: 40px; }
  .cbn-banner h1 { font-size: 32px; }
  .cbn-banner-sub { font-size: 14px; }
  .cbn-proof-nr { font-size: 30px; }
  .cbn-section { padding: 56px 0; }
  .cbn-pas { padding: 16px 10px; }
  .cbn-lead { padding: 26px 22px 24px; margin-top: 30px; }
  .cbn-calc-results { padding: 24px 22px; margin-top: 20px; }
  .cbn-viziune-photo { height: 200px; } }

@media (min-width: 768px) and (max-width: 991px) {
  .cbn-banner h1 { font-size: 38px; } }
