/* ========================================
   Gallegos Logan Group — V2
   Modern Minimalist Advisory
   ======================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap');

:root {
  /* Type */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  --text-2xl: clamp(1.75rem, 1rem + 2.5vw, 3rem);
  --text-hero: clamp(2.5rem, 1rem + 5vw, 5.5rem);

  /* Spacing */
  --s-1: 0.25rem; --s-2: 0.5rem; --s-3: 0.75rem; --s-4: 1rem;
  --s-5: 1.25rem; --s-6: 1.5rem; --s-8: 2rem; --s-10: 2.5rem;
  --s-12: 3rem; --s-16: 4rem; --s-20: 5rem; --s-24: 6rem; --s-32: 8rem;

  /* Colors — light */
  --c-bg: #FAFAFA;
  --c-surface: #FFFFFF;
  --c-border: #E5E5E5;
  --c-border-subtle: #F0F0F0;
  --c-text: #111111;
  --c-text-2: #555555;
  --c-text-3: #999999;
  --c-accent: #111111;
  --c-accent-hover: #333333;
  --c-highlight: #C9A84C;
  --c-highlight-subtle: rgba(201,168,76,0.08);

  --font-body: 'Inter', -apple-system, system-ui, sans-serif;
  --max-w: 1200px;
  --max-w-narrow: 720px;
  --radius: 6px;
}

[data-theme='dark'] {
  --c-bg: #0A0A0A;
  --c-surface: #141414;
  --c-border: #222222;
  --c-border-subtle: #1A1A1A;
  --c-text: #EEEEEE;
  --c-text-2: #999999;
  --c-text-3: #666666;
  --c-accent: #EEEEEE;
  --c-accent-hover: #CCCCCC;
  --c-highlight: #D4B85A;
  --c-highlight-subtle: rgba(212,184,90,0.1);
}

/* ========================================
   Utility
   ======================================== */
.container { width:100%; max-width:var(--max-w); margin:0 auto; padding:0 var(--s-6); }
.container--narrow { max-width:var(--max-w-narrow); }
.muted { color:var(--c-text-2); }
.faint { color:var(--c-text-3); }
.mono { font-variant-numeric:tabular-nums; }

/* ========================================
   Nav — Redesigned
   ======================================== */
.nav {
  position:sticky; top:0; z-index:100;
  background:var(--c-bg);
  border-bottom:1px solid var(--c-border-subtle);
  transition:border-color .3s, box-shadow .3s;
}
.nav--scrolled {
  border-color:var(--c-border);
  box-shadow:0 1px 0 0 var(--c-border-subtle);
}

/* Utility strip — premium advisory feel */
.nav__utility {
  border-bottom:1px solid var(--c-border-subtle);
  font-size:11px; line-height:1;
  color:var(--c-text-3);
  overflow:hidden;
  max-height:38px;
  transition:max-height .35s ease, opacity .25s ease, border-color .3s;
}
.nav--scrolled .nav__utility {
  max-height:0; opacity:0; border-bottom-color:transparent;
}
.nav__utility-inner {
  display:flex; align-items:center; justify-content:space-between;
  max-width:var(--max-w); margin:0 auto; padding:var(--s-2) var(--s-6);
  gap:var(--s-4);
}
.nav__utility-left, .nav__utility-right {
  display:flex; align-items:center; gap:var(--s-3); flex-wrap:nowrap;
}
.nav__utility-item {
  display:inline-flex; align-items:center; gap:6px;
  letter-spacing:.04em; white-space:nowrap;
}
.nav__utility-label {
  text-transform:uppercase; font-weight:600; letter-spacing:.1em;
  font-size:10px; color:var(--c-text-2);
}
.nav__utility-item a {
  color:var(--c-text-2); font-variant-numeric:tabular-nums; font-weight:500;
  transition:color .2s;
}
.nav__utility-item a:hover { color:var(--c-text); }
.nav__utility-item--alt {
  text-transform:uppercase; font-size:10px; letter-spacing:.18em;
  font-weight:600; color:var(--c-highlight);
}
.nav__utility-sep {
  width:1px; height:10px; background:var(--c-border);
  display:inline-block;
}

.nav__inner {
  display:flex; align-items:center; justify-content:space-between;
  max-width:var(--max-w); margin:0 auto;
  padding:var(--s-4) var(--s-6);
  transition:padding .3s ease;
  gap:var(--s-6);
}
.nav--scrolled .nav__inner { padding-top:var(--s-3); padding-bottom:var(--s-3); }

/* Brand cluster */
.nav__brand {
  display:flex; align-items:center; gap:var(--s-3);
  flex-shrink:0;
}
.nav__monogram {
  display:inline-flex; align-items:center; justify-content:center;
  height:54px; width:auto;
  flex-shrink:0;
  transition:height .3s ease;
}
.nav--scrolled .nav__monogram { height:46px; }
.nav__monogram img {
  height:100%; width:auto; display:block;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,0.15));
}
.nav__brand-text { display:flex; flex-direction:column; gap:4px; min-width:0; }
.nav__wordmark {
  font-size:clamp(1.375rem, 1.05rem + 0.95vw, 1.875rem);
  font-weight:700;
  letter-spacing:-.005em;
  text-transform:none;
  color:var(--c-text);
  line-height:1;
  font-feature-settings:"ss01";
}
.nav__powered {
  font-size:10px;
  color:var(--c-text-3);
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:500;
  display:inline-flex; align-items:center; gap:6px;
  white-space:nowrap;
}
.nav__powered-dot { color:var(--c-border); font-weight:700; }

.nav__links {
  display:flex; align-items:center;
  gap:var(--s-8); list-style:none;
  flex:1; justify-content:center;
}
.nav__link {
  font-size:var(--text-xs); font-weight:500; color:var(--c-text-2);
  letter-spacing:.12em; text-transform:uppercase; white-space:nowrap;
  transition:color .2s; position:relative;
}
.nav__link::after {
  content:''; position:absolute; left:0; right:0; bottom:-6px;
  height:1px; background:var(--c-text);
  transform:scaleX(0); transform-origin:center;
  transition:transform .3s ease;
}
.nav__link:hover { color:var(--c-text); }
.nav__link:hover::after { transform:scaleX(1); }

.nav__cta {
  font-size:var(--text-xs); font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--c-bg); background:var(--c-text);
  padding:var(--s-3) var(--s-5); border-radius:var(--radius);
  transition:background .2s; white-space:nowrap;
}
.nav__cta:hover { background:var(--c-accent-hover); }
[data-theme='dark'] .nav__cta { color:var(--c-bg); background:var(--c-text); }
[data-theme='dark'] .nav__cta:hover { background:var(--c-accent-hover); }

.nav__right { display:flex; align-items:center; gap:var(--s-4); flex-shrink:0; }
.nav__theme {
  padding:var(--s-2); color:var(--c-text-3);
  display:flex; align-items:center;
  border-radius:var(--radius);
  transition:color .2s;
}
.nav__theme:hover { color:var(--c-text); }
.nav__toggle { display:none; flex-direction:column; gap:5px; width:24px; padding:2px 0; }
.nav__toggle span { display:block; height:1.5px; background:var(--c-text); border-radius:1px; }

/* Mobile */
.nav__mobile {
  display:none; position:fixed; inset:0; background:var(--c-bg); z-index:200;
  flex-direction:column; padding:var(--s-8) var(--s-6);
}
.nav__mobile.active { display:flex; }
.nav__mobile-close { align-self:flex-end; font-size:var(--text-xl); color:var(--c-text); margin-bottom:var(--s-12); }
.nav__mobile-links { list-style:none; display:flex; flex-direction:column; gap:var(--s-6); }
.nav__mobile-link {
  font-size:var(--text-sm); font-weight:500; color:var(--c-text);
  letter-spacing:.12em; text-transform:uppercase;
}

/* Responsive */
@media(max-width:1024px) {
  .nav__links { gap:var(--s-6); }
  .nav__powered { display:none; }
}
@media(max-width:840px) {
  .nav__utility { display:none; }
  .nav__links { display:none; }
  .nav__toggle { display:flex; }
  .nav__inner { padding:var(--s-3) var(--s-5); }
  .nav__monogram { height:42px; }
  .nav--scrolled .nav__monogram { height:38px; }
  .nav__wordmark { font-size:1.25rem; }
  .nav__powered { display:inline-flex; font-size:9px; letter-spacing:.14em; }
  .nav__cta { display:none; }
  .nav__right { gap:var(--s-2); }
}
@media(max-width:480px) {
  .nav__powered { display:none; }
  .nav__brand { gap:var(--s-2); }
  .nav__monogram { height:38px; }
  .nav__wordmark { font-size:1.125rem; }
}

/* ========================================
   Hero — Big type, minimal
   ======================================== */
.hero {
  padding:clamp(var(--s-10),7vw,var(--s-20)) var(--s-6) clamp(var(--s-16),12vw,var(--s-32));
  max-width:var(--max-w); margin:0 auto;
}
.hero--bg {
  max-width:100%; padding-left:max(var(--s-6), calc((100% - var(--max-w)) / 2 + var(--s-6)));
  padding-right:max(var(--s-6), calc((100% - var(--max-w)) / 2 + var(--s-6)));
}
.hero__eyebrow {
  font-size:var(--text-xs); font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--c-highlight); margin-bottom:var(--s-6);
  display:inline-flex; align-items:center; gap:var(--s-3);
}
.hero__eyebrow::before { content:''; width:24px; height:1px; background:var(--c-highlight); }
.hero__title {
  font-size:var(--text-hero); font-weight:300; letter-spacing:-.03em;
  line-height:1.02; color:var(--c-text); margin-bottom:var(--s-8);
  max-width:16ch;
}
.hero__title strong { font-weight:600; }
.hero__desc {
  font-size:var(--text-lg); color:var(--c-text-2); line-height:1.6;
  max-width:52ch; margin-bottom:var(--s-10);
}
.hero__actions { display:flex; gap:var(--s-4); flex-wrap:wrap; align-items:center; }
.hero__meta {
  margin-top:var(--s-16); display:flex; gap:var(--s-12); flex-wrap:wrap;
}
.hero__stat { display:flex; flex-direction:column; }
.hero__stat-value {
  font-size:var(--text-2xl); font-weight:600; color:var(--c-text);
  line-height:1; letter-spacing:-.02em;
}
.hero__stat-label {
  font-size:var(--text-xs); color:var(--c-text-3); margin-top:var(--s-1);
  letter-spacing:.04em; text-transform:uppercase; font-weight:500;
}

@media(max-width:640px) {
  .hero__meta { gap:var(--s-8); }
}

/* ========================================
   Buttons
   ======================================== */
.btn {
  display:inline-flex; align-items:center; gap:var(--s-2);
  font-size:var(--text-xs); font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; padding:var(--s-3) var(--s-6);
  border-radius:var(--radius); transition:all .2s;
}
.btn--fill { background:var(--c-text); color:var(--c-bg); }
.btn--fill:hover { background:var(--c-accent-hover); }
.btn--outline { border:1.5px solid var(--c-border); color:var(--c-text); }
.btn--outline:hover { border-color:var(--c-text); }
.btn--ghost { color:var(--c-text-2); padding:var(--s-3) 0; }
.btn--ghost:hover { color:var(--c-text); }
.btn--ghost::after { content:'→'; margin-left:var(--s-2); transition:transform .2s; }
.btn--ghost:hover::after { transform:translateX(4px); }

/* ========================================
   Section
   ======================================== */
.section { padding:clamp(var(--s-16),8vw,var(--s-24)) var(--s-6); }
.section--tight-top { padding-top:var(--s-8); }
.section--border { border-top:1px solid var(--c-border); }
.section__header { margin-bottom:var(--s-12); max-width:var(--max-w); margin-inline:auto; }
.section__label {
  font-size:var(--text-xs); font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--c-text-3); margin-bottom:var(--s-4);
}
.section__title {
  font-size:var(--text-2xl); font-weight:300; letter-spacing:-.02em;
  color:var(--c-text); max-width:24ch;
}
.section__title strong { font-weight:600; }
.section__desc {
  font-size:var(--text-base); color:var(--c-text-2); margin-top:var(--s-4);
  max-width:56ch; line-height:1.7;
}

/* ========================================
   Approach — Mirrored blocks with images
   ======================================== */
.approach { max-width:var(--max-w); margin:0 auto; }
.approach__block {
  display:grid; grid-template-columns:1fr 1fr; gap:var(--s-6);
  margin-bottom:var(--s-6);
}
.approach__block:last-child { margin-bottom:0; }
.approach__card {
  padding:var(--s-8); border:1px solid var(--c-border);
  border-radius:var(--radius); transition:border-color .2s;
}
.approach__card:hover { border-color:var(--c-text-3); }
.approach__card-num {
  font-size:var(--text-xs); color:var(--c-text-3); font-weight:600;
  letter-spacing:.1em; margin-bottom:var(--s-4);
}
.approach__card-title {
  font-size:var(--text-lg); font-weight:600; color:var(--c-text);
  margin-bottom:var(--s-3); letter-spacing:-.01em;
}
.approach__card-desc {
  font-size:var(--text-sm); color:var(--c-text-2); line-height:1.7;
}
.approach__img {
  border-radius:var(--radius); overflow:hidden; line-height:0;
  min-height:0;
}
.approach__img img {
  width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(20%) contrast(1.02);
}
.approach__stack {
  display:flex; flex-direction:column; gap:var(--s-6);
}

@media(max-width:640px) {
  .approach__block { grid-template-columns:1fr; }
  .approach__img { min-height:280px; }
}

/* ========================================
   Capabilities — Header with background image
   ======================================== */
.capabilities-hero {
  position:relative;
  background:url('./assets/residential-home-1.jpg') center/cover no-repeat;
  padding:clamp(var(--s-16),8vw,var(--s-24)) var(--s-6);
}
.capabilities__overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0.68) 0%,
    rgba(0,0,0,0.55) 50%,
    rgba(0,0,0,0.68) 100%
  );
  z-index:0;
}
.capabilities-hero__inner {
  position:relative; z-index:1;
  max-width:var(--max-w); margin:0 auto;
}
.capabilities-hero .section__label {
  color:var(--c-highlight);
}
.capabilities-hero .section__title,
.capabilities-hero .section__title strong {
  color:#FFFFFF;
}
.capabilities-hero .section__desc {
  color:rgba(255,255,255,0.8);
}

/* ========================================
   Services — Clean list
   ======================================== */
.services { max-width:var(--max-w); margin:0 auto; }
.services__list { display:flex; flex-direction:column; }
.services__item {
  display:grid; grid-template-columns:1fr 2fr; gap:var(--s-8);
  padding:var(--s-8) 0; border-bottom:1px solid var(--c-border);
  align-items:baseline;
}
.services__item:first-child { border-top:1px solid var(--c-border); }
.services__name {
  font-size:var(--text-base); font-weight:600; color:var(--c-text);
  letter-spacing:-.01em;
}
.services__desc { font-size:var(--text-sm); color:var(--c-text-2); line-height:1.7; }

@media(max-width:640px) {
  .services__item { grid-template-columns:1fr; gap:var(--s-2); }
}

/* ========================================
   Program Cards (expand-on-hover)
   Cards stay compact by default and grow taller on hover
   to reveal the detail bullets. Program name + tagline
   remain visible in both states.
   ======================================== */
.programs { max-width:var(--max-w); margin:0 auto; }
.programs__hint {
  font-size:var(--text-xs);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-text-3);
  text-align:center;
  margin-bottom:var(--s-8);
}
.programs__grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  background:var(--c-border);
  border:1px solid var(--c-border);
}
.program-card {
  position:relative;
  background:var(--c-surface);
  padding:var(--s-6);
  min-height:210px;
  display:flex;
  flex-direction:column;
  cursor:pointer;
  outline:none;
  overflow:hidden;
  transition:background .3s ease, box-shadow .3s ease;
}
.program-card:hover,
.program-card:focus,
.program-card.is-open {
  background:var(--c-surface);
  box-shadow:inset 0 0 0 1px var(--c-highlight);
  z-index:1;
}
.program-card::before {
  content:"";
  position:absolute;
  top:var(--s-6); left:var(--s-6);
  width:24px; height:1px;
  background:var(--c-highlight);
  transition:width .35s ease;
}
.program-card:hover::before,
.program-card:focus::before,
.program-card.is-open::before {
  width:48px;
}
.program-card__head {
  margin-top:var(--s-6);
}
.program-card__name {
  font-family:var(--font-display, inherit);
  font-size:clamp(1.15rem, 1.2vw + 0.5rem, 1.4rem);
  font-weight:500;
  line-height:1.2;
  letter-spacing:-0.01em;
  color:var(--c-text);
  margin:0 0 var(--s-2) 0;
}
.program-card__tag {
  font-size:var(--text-sm);
  color:var(--c-text-2);
  line-height:1.5;
  margin:0;
}
.program-card__hover-tag {
  display:block;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--c-highlight);
  font-weight:600;
  margin:var(--s-4) 0 var(--s-2) 0;
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:max-height .35s ease, opacity .25s ease, margin .35s ease;
}
.program-card__details {
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:max-height .45s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
}
.program-card__list {
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:var(--s-2);
}
.program-card__list li {
  font-size:var(--text-sm);
  line-height:1.5;
  color:var(--c-text-2);
  padding-left:var(--s-4);
  position:relative;
}
.program-card__list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.65em;
  width:8px;
  height:1px;
  background:var(--c-highlight);
}
.program-card__hint {
  position:absolute;
  left:var(--s-6);
  bottom:var(--s-5);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--c-text-3);
  font-weight:500;
  transition:opacity .25s ease;
}
.program-card:hover .program-card__hint,
.program-card:focus .program-card__hint,
.program-card.is-open .program-card__hint {
  opacity:0;
}
.program-card:hover .program-card__hover-tag,
.program-card:focus .program-card__hover-tag,
.program-card.is-open .program-card__hover-tag {
  max-height:40px;
  opacity:1;
  margin:var(--s-4) 0 var(--s-2) 0;
}
.program-card:hover .program-card__details,
.program-card:focus .program-card__details,
.program-card.is-open .program-card__details {
  max-height:400px;
  opacity:1;
}

@media(max-width:1024px) {
  .programs__grid { grid-template-columns:repeat(3, 1fr); }
}
@media(max-width:720px) {
  .programs__grid { grid-template-columns:repeat(2, 1fr); }
  .program-card { min-height:190px; }
  .program-card__name { font-size:1.15rem; }
}
@media(max-width:420px) {
  .programs__grid { grid-template-columns:1fr; }
}

/* ========================================
   Team
   ======================================== */
.team { max-width:var(--max-w); margin:0 auto; }
.team__grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--s-8); }
.team__card { display:flex; flex-direction:column; }
.team__photo {
  aspect-ratio:4/3; background:var(--c-surface); border:1px solid var(--c-border);
  border-radius:var(--radius); display:flex; align-items:center; justify-content:center;
  margin-bottom:var(--s-6); overflow:hidden;
}
.team__photo-initials {
  font-size:var(--text-2xl); font-weight:300; color:var(--c-text-3);
  letter-spacing:.08em;
}
.team__photo-img {
  width:100%; height:100%; object-fit:cover; object-position:center top;
  display:block;
}
.team__name {
  font-size:var(--text-xl); font-weight:600; color:var(--c-text);
  letter-spacing:-.01em; margin-bottom:var(--s-1);
}
.team__role {
  font-size:var(--text-xs); font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--c-text-3); margin-bottom:var(--s-1);
}
.team__nmls { font-size:var(--text-xs); color:var(--c-text-3); margin-bottom:var(--s-4); }
.team__bio { font-size:var(--text-sm); color:var(--c-text-2); line-height:1.7; margin-bottom:var(--s-6); }
.team__tags { display:flex; flex-wrap:wrap; gap:var(--s-2); margin-bottom:var(--s-6); }
.team__tag {
  font-size:11px; font-weight:500; color:var(--c-text-2);
  border:1px solid var(--c-border); padding:var(--s-1) var(--s-3);
  border-radius:var(--radius); letter-spacing:.02em;
}
.team__contact { display:flex; gap:var(--s-4); }
.team__contact-link {
  font-size:var(--text-xs); color:var(--c-text-3); font-weight:500;
  display:flex; align-items:center; gap:var(--s-1); transition:color .2s;
}
.team__contact-link:hover { color:var(--c-text); }

@media(max-width:640px) {
  .team__grid { grid-template-columns:1fr; }
}

/* ========================================
   Process — Numbered
   ======================================== */
.process { max-width:var(--max-w); margin:0 auto; }
.process__steps {
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s-8);
  counter-reset:step;
}
.process__step { counter-increment:step; }
.process__step::before {
  content:counter(step,decimal-leading-zero);
  font-size:var(--text-2xl); font-weight:300; color:var(--c-border);
  display:block; margin-bottom:var(--s-4); line-height:1;
}
.process__step-title {
  font-size:var(--text-sm); font-weight:600; color:var(--c-text);
  margin-bottom:var(--s-2); letter-spacing:-.01em;
}
.process__step-desc { font-size:var(--text-sm); color:var(--c-text-2); line-height:1.6; }

@media(max-width:768px) { .process__steps { grid-template-columns:1fr 1fr; } }
@media(max-width:480px) { .process__steps { grid-template-columns:1fr; } }

/* ========================================
   Process — Background Image
   ======================================== */
.process--bg {
  position:relative;
  background:url('./assets/las-vegas-home-process.jpg') center/cover no-repeat;
}
.process__overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0.72) 0%,
    rgba(0,0,0,0.58) 50%,
    rgba(0,0,0,0.68) 100%
  );
  z-index:0;
}
.process--bg > *:not(.process__overlay) {
  position:relative; z-index:1;
}
.process--bg .section__label {
  color:var(--c-highlight);
}
.process--bg .section__title,
.process--bg .section__title strong {
  color:#FFFFFF;
}
.process--bg .section__desc {
  color:rgba(255,255,255,0.8);
}
.process--bg .process__step::before {
  color:rgba(255,255,255,0.2);
}
.process--bg .process__step-title {
  color:#FFFFFF;
}
.process--bg .process__step-desc {
  color:rgba(255,255,255,0.75);
}

/* ========================================
   Testimonials
   ======================================== */
.testimonials { max-width:var(--max-w); margin:0 auto; }
.testimonials__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-6); }
.testimonial {
  padding:var(--s-8); border:1px solid var(--c-border); border-radius:var(--radius);
  display:flex; flex-direction:column;
}
.testimonial__quote {
  font-size:var(--text-base); color:var(--c-text); line-height:1.7;
  flex:1; margin-bottom:var(--s-6); font-weight:300;
}
.testimonial__quote::before { content:'"'; }
.testimonial__quote::after { content:'"'; }
.testimonial__author { font-size:var(--text-xs); font-weight:600; color:var(--c-text-2); }
.testimonial__meta { font-size:var(--text-xs); color:var(--c-text-3); }

.testimonial-feature {
  max-width: 60ch; margin: 0 auto var(--s-12); padding: 0;
  text-align: center; border: 0;
}
.testimonial-feature__quote {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: clamp(1.25rem, 2.4vw, 1.625rem);
  line-height: 1.4; color: var(--c-text); font-weight: 400;
  letter-spacing: -0.005em;
}
.testimonial-feature__author {
  margin-top: var(--s-6);
  font-size: var(--text-xs); letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-text-3); font-weight: 600;
}
@media(max-width:768px) {
  .testimonials__grid { grid-template-columns:1fr; }
  .testimonial-feature { padding: 0 var(--s-2); }
}

/* ========================================
   CTA
   ======================================== */
.cta-section {
  max-width:var(--max-w); margin:0 auto;
  padding:var(--s-20) var(--s-6);
  border-top:1px solid var(--c-border);
  text-align:center;
}
.cta-section__title {
  font-size:var(--text-2xl); font-weight:300; letter-spacing:-.02em;
  color:var(--c-text); margin-bottom:var(--s-4);
}
.cta-section__title strong { font-weight:600; }
.cta-section__desc {
  font-size:var(--text-base); color:var(--c-text-2); max-width:48ch;
  margin:0 auto var(--s-8); line-height:1.6;
}
.cta-section__actions { display:flex; gap:var(--s-4); justify-content:center; flex-wrap:wrap; }

/* ========================================
   Contact
   ======================================== */
.contact { max-width:var(--max-w); margin:0 auto; }
.contact__grid { display:grid; grid-template-columns:1fr 1.3fr; gap:var(--s-16); align-items:start; }
.contact__info-block { margin-bottom:var(--s-8); }
.contact__info-label {
  font-size:var(--text-xs); font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--c-text-3); margin-bottom:var(--s-2);
}
.contact__info-value { font-size:var(--text-sm); color:var(--c-text); line-height:1.6; }
.contact__info-value a { transition:color .2s; }
.contact__info-value a:hover { color:var(--c-text-2); }
.contact__lang {
  display:inline-flex; align-items:center; gap:var(--s-2);
  font-size:var(--text-xs); font-weight:600; color:var(--c-highlight);
  padding:var(--s-2) var(--s-3); border:1px solid var(--c-highlight);
  border-radius:var(--radius); letter-spacing:.03em; margin-top:var(--s-2);
}

.contact__form {
  padding:var(--s-8); border:1px solid var(--c-border); border-radius:var(--radius);
  background:var(--c-surface);
}
.contact__form-title {
  font-size:var(--text-lg); font-weight:600; color:var(--c-text);
  margin-bottom:var(--s-1); letter-spacing:-.01em;
}
.contact__form-sub {
  font-size:var(--text-sm); color:var(--c-text-2); margin-bottom:var(--s-8);
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:var(--s-4); margin-bottom:var(--s-4); }
.form-group { display:flex; flex-direction:column; gap:var(--s-1); }
.form-group--full { grid-column:1/-1; }
.form-label { font-size:var(--text-xs); font-weight:500; color:var(--c-text-2); }
.form-input,.form-select,.form-textarea {
  padding:var(--s-3) var(--s-4); border:1px solid var(--c-border);
  border-radius:var(--radius); background:var(--c-bg); font-size:var(--text-sm);
  transition:border-color .2s;
}
.form-input:focus,.form-select:focus,.form-textarea:focus { outline:none; border-color:var(--c-text); }
.form-textarea { resize:vertical; min-height:80px; }
.form-submit { width:100%; margin-top:var(--s-4); }
.form-apply {
  text-align:center; margin-top:var(--s-4); font-size:var(--text-xs); color:var(--c-text-3);
}
.form-apply a { color:var(--c-text-2); font-weight:600; transition:color .2s; }
.form-apply a:hover { color:var(--c-text); }

@media(max-width:768px) {
  .contact__grid { grid-template-columns:1fr; gap:var(--s-8); }
  .form-row { grid-template-columns:1fr; }
}

/* ========================================
   Footer
   ======================================== */
.footer {
  border-top:1px solid var(--c-border); padding:var(--s-12) var(--s-6);
}
.footer__inner { max-width:var(--max-w); margin:0 auto; }
.footer__top {
  display:grid; grid-template-columns:2fr 1fr 1fr; gap:var(--s-12);
  padding-bottom:var(--s-12);
}
.footer__wordmark {
  font-size:var(--text-sm); font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; color:var(--c-text); margin-bottom:var(--s-1);
}
.footer__powered { font-size:10px; color:var(--c-text-3); margin-bottom:var(--s-4); letter-spacing:.04em; }
.footer__desc { font-size:var(--text-sm); color:var(--c-text-2); line-height:1.6; max-width:36ch; }
.footer__heading {
  font-size:var(--text-xs); font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--c-text-3); margin-bottom:var(--s-4);
}
.footer__links { list-style:none; display:flex; flex-direction:column; gap:var(--s-3); }
.footer__links a { font-size:var(--text-sm); color:var(--c-text-2); transition:color .2s; }
.footer__links a:hover { color:var(--c-text); }
.footer__legal {
  padding-top:var(--s-8); border-top:1px solid var(--c-border);
  font-size:11px; color:var(--c-text-3); line-height:1.7;
}
.footer__legal a { text-decoration:underline; text-underline-offset:2px; }
.footer__legal-grid {
  display:grid;
  grid-template-columns:1fr 1.4fr 1fr;
  gap:var(--s-10);
  align-items:start;
}
.footer__legal-col p { margin:0 0 var(--s-3) 0; }
.footer__legal-col p:last-child { margin-bottom:0; }
.footer__legal-label {
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--c-text);
  margin-bottom:var(--s-3) !important;
}
.footer__legal-address {
  color:var(--c-text-3);
  font-size:10px;
  line-height:1.6;
  margin-top:var(--s-3) !important;
}

@media(max-width:900px) { .footer__legal-grid { grid-template-columns:1fr 1fr; gap:var(--s-8); } }
@media(max-width:768px) { .footer__top { grid-template-columns:1fr; gap:var(--s-8); } .footer__legal-grid { grid-template-columns:1fr; gap:var(--s-6); } }

/* ========================================
   Hero Background Image
   ======================================== */
.hero--bg {
  position:relative;
  background:url('./assets/residential-home-2.jpg') center/cover no-repeat;
}
.hero__overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0.72) 0%,
    rgba(0,0,0,0.58) 50%,
    rgba(0,0,0,0.45) 100%
  );
  z-index:0;
}
.hero--bg > *:not(.hero__overlay) {
  position:relative; z-index:1;
}
.hero--bg .hero__title,
.hero--bg .hero__title strong {
  color:#FFFFFF;
}
.hero--bg .hero__desc {
  color:rgba(255,255,255,0.8);
}
.hero--bg .hero__eyebrow {
  color:var(--c-highlight);
}
.hero--bg .hero__eyebrow::before {
  background:var(--c-highlight);
}
.hero--bg .hero__stat-value {
  color:#FFFFFF;
}
.hero--bg .hero__stat-label {
  color:rgba(255,255,255,0.55);
}
.hero--bg .btn--fill {
  background:#FFFFFF; color:#111111;
}
.hero--bg .btn--fill:hover {
  background:rgba(255,255,255,0.88);
}
.hero--bg .btn--ghost {
  color:rgba(255,255,255,0.75);
}
.hero--bg .btn--ghost:hover {
  color:#FFFFFF;
}

/* ========================================
   Editorial Image Strips
   ======================================== */
.editorial-strip {
  padding:0 var(--s-6);
}
.editorial-strip__inner {
  max-width:var(--max-w);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--s-4);
}
.editorial-strip__img {
  border-radius:var(--radius);
  overflow:hidden;
  line-height:0;
}
.editorial-strip__img img {
  width:100%;
  height:clamp(200px, 28vw, 400px);
  object-fit:cover;
  display:block;
  filter:grayscale(20%) contrast(1.02);
}

@media(max-width:640px) {
  .editorial-strip__inner {
    grid-template-columns:1fr;
    gap:var(--s-3);
  }
  .editorial-strip__img img {
    height:220px;
  }
}

/* ========================================
   Reveal
   ======================================== */
.reveal { opacity:0; transform:translateY(16px); transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.visible { opacity:1; transform:none; }
