/* ============================================================
   REAL-ESTATE.CSS — AthenaS Premium Dark-Green Layout (re2-*)
   ============================================================ */

/* ── Tokens ── */
.re2-page {
  --re2-lime:    #b4ff3c;
  --re2-lime2:   #c8ff5a;
  --re2-dark:    #020800;
  --re2-dark2:   #060e06;
  --re2-dark3:   #0a160a;
  --re2-border:  rgba(180,255,60,.10);
  --re2-muted:   rgba(200,230,180,.55);
  --re2-text:    rgba(200,230,180,.85);
  font-family: 'Poppins','Inter',sans-serif;
  -webkit-font-smoothing: antialiased;
  background: var(--re2-dark);
  color: var(--re2-text);
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* ── Animation base ── */
.re2-page .re2-fade-up {
  opacity: 0;
  transform: translate3d(0, 42px, 0);
  transition: opacity .82s cubic-bezier(.16,1,.3,1), transform .82s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--re2-delay, 0s);
  will-change: transform, opacity;
}
.re2-page .re2-fade-left {
  opacity: 0;
  transform: translate3d(-48px, 28px, 0);
  transition: opacity .82s cubic-bezier(.16,1,.3,1), transform .82s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--re2-delay, 0s);
  will-change: transform, opacity;
}
.re2-page .re2-fade-right {
  opacity: 0;
  transform: translate3d(48px, 28px, 0);
  transition: opacity .82s cubic-bezier(.16,1,.3,1), transform .82s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--re2-delay, 0s);
  will-change: transform, opacity;
}

.re2-page .re2-fade-up.re2-in,
.re2-page .re2-fade-left.re2-in,
.re2-page .re2-fade-right.re2-in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.re2-d1 { transition-delay: .10s; }
.re2-d2 { transition-delay: .22s; }

/* ── Banner ── */
.re2-banner {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: linear-gradient(135deg, #020800 0%, #061206 60%, #020800 100%);
  isolation: isolate;
}

.re2-banner__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(180,255,60,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(180,255,60,.06) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
  z-index: 0;
}

.re2-banner__glow {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(180,255,60,.12) 0%, transparent 70%);
  top: -200px;
  right: -100px;
  pointer-events: none;
  z-index: 0;
  animation: re2GlowFloat 10s ease-in-out infinite alternate;
}

@keyframes re2GlowFloat {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(-40px,30px) scale(1.12); }
}

.re2-banner__inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: 120px 2rem 80px;
  width: 100%;
  max-width: 100%;
  text-align: center;
}

.re2-banner__crumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--re2-muted);
  margin-bottom: 24px;
}
.re2-banner__crumb a { color: var(--re2-muted); text-decoration: none; transition: color .25s; }
.re2-banner__crumb a:hover { color: var(--re2-lime); }
.re2-banner__crumb i { font-size: .55rem; color: rgba(180,255,60,.40); }

.re2-banner__title {
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -.02em;
  color: #fff;
  margin: 0 0 20px;
  text-shadow: 0 0 60px rgba(180,255,60,.18);
  overflow-wrap: normal;
  text-wrap: balance;
}

.re2-banner__sub {
  font-size: 1.1rem;
  color: var(--re2-muted);
  max-width: 520px;
  line-height: 1.7;
  margin-left: auto;
  margin-right: auto;
}

/* ── Sections ── */
.re2-section {
  position: relative;
  padding: 96px 0;
  overflow: hidden;
  isolation: isolate;
}

.re2-section__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(180,255,60,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(180,255,60,.04) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events: none;
  z-index: 0;
}

.re2-hero-section    { background: var(--re2-dark2); }
.re2-bim-section     { background: var(--re2-dark); }
.re2-cards-section   { background: var(--re2-dark2); }
.re2-valuation-section { background: var(--re2-dark); }
.re2-mgmt-section    { background: var(--re2-dark2); }
.re2-standards-section { background: var(--re2-dark); }
.re2-why-section     { background: var(--re2-dark2); }

/* ── Wrap & Split ── */
.re2-wrap {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
}

.re2-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.re2-split--rev { direction: rtl; }
.re2-split--rev > * { direction: ltr; }

/* ── Typography ── */
.re2-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--re2-lime);
  margin-bottom: 16px;
}
.re2-eyebrow i { font-size: .6rem; }

.re2-h2 {
  font-size: clamp(1.9rem, 4vw, 3rem);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #fff;
  margin: 0 0 20px;
}

.re2-outline {
  -webkit-text-stroke: 1.5px var(--re2-lime);
  color: transparent;
}

.re2-subhead {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--re2-lime);
  margin: 0 0 16px;
}

.re2-body {
  font-size: .95rem;
  line-height: 1.80;
  color: var(--re2-text);
  margin: 0 0 28px;
}

/* ── Buttons ── */
.re2-btn-primary,
.re2-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  border-radius: 999px;
  font-weight: 800;
  font-size: .85rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
  position: relative;
  overflow: hidden;
}
.re2-btn-primary::before,
.re2-btn-outline::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0 35%, rgba(255,255,255,.30) 50%, transparent 65% 100%);
  transform: translateX(-120%);
  transition: transform .55s ease;
  pointer-events: none;
}
.re2-btn-primary:hover::before,
.re2-btn-outline:hover::before { transform: translateX(120%); }

.re2-btn-primary {
  background: var(--re2-lime);
  color: #020800;
  box-shadow: 0 0 28px rgba(180,255,60,.35), 0 8px 24px rgba(0,0,0,.28);
}
.re2-btn-primary:hover {
  background: var(--re2-lime2);
  transform: translateY(-3px);
  box-shadow: 0 0 50px rgba(180,255,60,.55);
  color: #020800;
}
.re2-btn-outline {
  background: transparent;
  color: var(--re2-lime);
  border: 1.5px solid rgba(180,255,60,.40);
}
.re2-btn-outline:hover {
  background: rgba(180,255,60,.10);
  border-color: var(--re2-lime);
  transform: translateY(-3px);
  color: var(--re2-lime);
}

/* ── Image frame ── */
.re2-img-frame {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--re2-border);
  box-shadow: 0 24px 60px rgba(0,0,0,.40);
}
.re2-img-frame img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}
.re2-img-frame:hover img { transform: scale(1.04); }

.re2-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(2,8,0,.55) 100%);
  pointer-events: none;
}

/* ── Float pill ── */
.re2-float-pill {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 14px;
  background: rgba(6,18,6,.92);
  border: 1px solid rgba(180,255,60,.22);
  box-shadow: 0 12px 32px rgba(0,0,0,.35);
  backdrop-filter: blur(8px);
  z-index: 2;
}
.re2-float-pill--br { bottom: 24px; right: 24px; }
.re2-float-pill--tl { top: 24px; left: 24px; }
.re2-float-pill i { color: var(--re2-lime); font-size: 1.2rem; }
.re2-float-pill span { display: block; font-size: .82rem; font-weight: 700; color: #fff; }
.re2-float-pill small { display: block; font-size: .68rem; color: var(--re2-muted); }

/* ── Checklist ── */
.re2-checklist-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 24px;
  margin-bottom: 32px;
}
.re2-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.re2-checklist li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .88rem;
  color: var(--re2-text);
}
.re2-checklist li i { color: var(--re2-lime); font-size: .85rem; flex-shrink: 0; }

/* ── Section head ── */
.re2-section-head {
  text-align: center;
  margin-bottom: 56px;
}
.re2-section-head .re2-eyebrow { justify-content: center; }

/* ── Service cards grid ── */
.re2-page .re2-svc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  position: relative;
  z-index: 1;
}

.re2-page .re2-svc-card-link {
  text-decoration: none;
  display: block;
  color: inherit;
  cursor: pointer;
  border-radius: 20px;
  outline-offset: 3px;
}

.re2-page .re2-svc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(180,255,60,.12);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(180,255,60,.055), rgba(180,255,60,.02));
  box-shadow: 0 24px 58px rgba(0,0,0,.24);
  transition: transform .38s ease, border-color .38s ease, box-shadow .38s ease;
  transition-delay: var(--re2-delay, 0s);
}
.re2-page .re2-svc-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: #b4ff3c;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s ease;
  z-index: 2;
}
.re2-page .re2-svc-card:hover::before,
.re2-page .re2-svc-card-link:hover .re2-svc-card::before {
  transform: scaleX(1);
}
.re2-page .re2-svc-card:hover,
.re2-page .re2-svc-card-link:hover .re2-svc-card,
.re2-page .re2-svc-card-link:focus-visible .re2-svc-card {
  transform: translateY(-9px);
  border-color: rgba(180,255,60,.28);
  box-shadow: 0 34px 80px rgba(0,0,0,.34), 0 0 36px rgba(180,255,60,.10);
}

.re2-page .re2-svc-card__img {
  position: relative;
  height: 180px;
  overflow: hidden;
  flex-shrink: 0;
}
.re2-page .re2-svc-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .65s ease;
}
.re2-page .re2-svc-card:hover .re2-svc-card__img img,
.re2-page .re2-svc-card-link:hover .re2-svc-card__img img,
.re2-page .re2-svc-card-link:focus-visible .re2-svc-card__img img {
  transform: scale(1.07);
}

.re2-page .re2-svc-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 20px 24px;
}
.re2-page .re2-svc-card__body h3 {
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.32;
  color: #fff;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .04em;
  transition: color .3s ease;
}
.re2-page .re2-svc-card:hover .re2-svc-card__body h3,
.re2-page .re2-svc-card-link:hover .re2-svc-card__body h3 {
  color: #b4ff3c;
}
.re2-page .re2-svc-card__body p {
  flex: 1;
  font-size: .85rem;
  color: rgba(200,230,180,.68);
  line-height: 1.65;
  margin: 0;
}
.re2-page .re2-svc-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-size: .78rem;
  font-weight: 800;
  color: var(--re2-lime);
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: gap .25s ease, color .25s ease;
}
.re2-page .re2-svc-card-link:hover .re2-svc-card__cta,
.re2-page .re2-svc-card-link:focus-visible .re2-svc-card__cta {
  gap: 12px;
  color: #d8ff6a;
}

/* ── Standards grid ── */
.re2-standards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.re2-std-card {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--re2-border);
  border-radius: 16px;
  padding: 32px 24px;
  text-align: center;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.re2-std-card:hover {
  transform: translateY(-6px);
  border-color: rgba(180,255,60,.28);
  box-shadow: 0 16px 40px rgba(0,0,0,.30);
}
.re2-std-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(180,255,60,.08);
  border: 1px solid rgba(180,255,60,.18);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  color: var(--re2-lime);
  font-size: 1.3rem;
  transition: background .3s, box-shadow .3s;
}
.re2-std-card:hover .re2-std-card__icon {
  background: rgba(180,255,60,.16) !important;
  box-shadow: 0 0 18px rgba(180,255,60,.28);
  color: var(--re2-lime) !important;
}
.re2-std-card__icon i,
.re2-std-card:hover .re2-std-card__icon i,
.re2-std-card:active .re2-std-card__icon i {
  color: var(--re2-lime) !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.re2-std-card h3 {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 10px;
}
.re2-std-card p {
  font-size: .83rem;
  color: var(--re2-muted);
  line-height: 1.65;
  margin: 0;
}

/* ── Why list ── */
.re2-why-list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: grid;
  gap: 12px;
}
.re2-why-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: .92rem;
  color: var(--re2-text);
}
.re2-why-list li i { color: var(--re2-lime); font-size: .9rem; flex-shrink: 0; }

/* ── Why cards ── */
.re2-why-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.re2-why-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--re2-border);
  border-radius: 14px;
  transition: transform .3s ease, border-color .3s ease;
}
.re2-why-card:hover {
  transform: translateY(-4px);
  border-color: rgba(180,255,60,.25);
}
.re2-why-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(180,255,60,.08);
  border: 1px solid rgba(180,255,60,.16);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--re2-lime) !important;
  font-size: 1rem;
  flex-shrink: 0;
}
.re2-why-card__icon i,
.re2-why-card:hover .re2-why-card__icon i,
.re2-why-card:active .re2-why-card__icon i {
  color: var(--re2-lime) !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.re2-why-card h4 {
  font-size: .88rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 4px;
}
.re2-why-card p {
  font-size: .80rem;
  color: var(--re2-muted);
  margin: 0;
  line-height: 1.55;
}

/* ── Responsive ── */
@media (max-width: 1200px) {
  .re2-page .re2-svc-grid { grid-template-columns: repeat(3, 1fr); }
  .re2-standards-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .re2-split          { grid-template-columns: 1fr; gap: 40px; }
  .re2-split--rev     { direction: ltr; }
  .re2-checklist-grid { grid-template-columns: 1fr; }
  .re2-why-cards      { grid-template-columns: 1fr; }
  .re2-page .re2-svc-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .re2-section        { padding: 64px 0; }
  .re2-page .re2-svc-grid { grid-template-columns: 1fr 1fr; }
  .re2-standards-grid { grid-template-columns: 1fr 1fr; }
  .re2-img-frame img  { height: 260px; }
}

@media (max-width: 480px) {
  .re2-page .re2-svc-grid { grid-template-columns: 1fr; }
  .re2-standards-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .re2-page .re2-fade-up,
  .re2-page .re2-fade-left,
  .re2-page .re2-fade-right {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  .re2-banner__glow { animation: none !important; }
}
