/* ═══════════════════════════════════════════
   Elite Living 360 — Common Base Styles
   CSS Variables, Reset, Typography, Utilities
   ═══════════════════════════════════════════ */

:root {
  --bg-0: #070B14;
  --bg-1: #090F1C;
  --surface-0: rgba(255, 255, 255, .04);
  --surface-1: rgba(255, 255, 255, .06);
  --stroke: rgba(255, 255, 255, .10);
  --stroke-strong: rgba(255, 255, 255, .14);
  --text: #EAF0FF;
  --muted: rgba(234, 240, 255, .70);
  --muted2: rgba(234, 240, 255, .55);
  --blue: #2B6DFF;
  --blue2: #3B86FF;
  --green: #1EC98B;
  --green2: #14B57C;
  --shadow-soft: 0 10px 35px rgba(0, 0, 0, .35);
  --r-lg: 22px;
  --ring: 0 0 0 4px rgba(43, 109, 255, .18);
}

* {
  box-sizing: border-box
}

body {
  margin: 0;
  color: var(--text);
  font-family: 'Kanit', sans-serif;
  background:
    radial-gradient(900px 520px at 18% 15%, rgba(43, 109, 255, .18), transparent 55%),
    radial-gradient(860px 520px at 80% 28%, rgba(30, 201, 139, .12), transparent 55%),
    radial-gradient(1200px 680px at 55% 110%, rgba(255, 255, 255, .06), transparent 60%),
    linear-gradient(180deg, var(--bg-0), var(--bg-1));
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none
}

.wrap {
  width: min(1220px, 92vw);
  margin: 0 auto 70px;
  padding-top: 20px;
  position: relative;
  z-index: 1;
}

.bg {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
}

.glow {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 25% 20%, rgba(43, 109, 255, .18), transparent 45%),
    radial-gradient(circle at 75% 30%, rgba(30, 201, 139, .12), transparent 45%),
    radial-gradient(circle at 50% 75%, rgba(255, 255, 255, .06), transparent 55%);
  filter: blur(28px);
  opacity: .9;
}

.bg-grid {
  position: absolute;
  inset: -40px;
  background:
    linear-gradient(to right, rgba(255, 255, 255, .045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 84px 84px;
  transform: perspective(900px) rotateX(58deg) translateY(-150px);
  opacity: .14;
}

.noise {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity: .25;
}

/* ── Common Section Styles ── */
.section {
  margin-top: 18px;
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .10);
  box-shadow: var(--shadow-soft);
  padding: 18px;
}

.h1 {
  margin: 0;
  font-size: clamp(26px, 3.1vw, 40px);
  line-height: 1.15;
}

.lead {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.7
}

/* ── Page Banner (shared by properties, services, contact, etc.) ── */
.page-banner {
  position: relative;
  width: 100%;
  height: 280px;
  overflow: hidden;
}

.page-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-banner::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(to top, rgba(7, 11, 20, 1) 0%, rgba(7, 11, 20, .6) 40%, transparent 100%);
}

.page-banner .banner-text {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  width: min(1220px, 92vw);
  z-index: 2;
}
