/* index.css — Homepage only */

/* ── HERO ── */
.hero { position:relative; min-height:100vh; display:grid; grid-template-columns:1.1fr 1fr; overflow:hidden; background:var(--black); }
.hero-text-side { display:flex; flex-direction:column; justify-content:center; padding:8rem var(--space-page) 6rem; position:relative; z-index:2; opacity:0; animation:fUp 1.2s .5s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes fUp { from{opacity:0;transform:translateY(26px)} to{opacity:1;transform:translateY(0)} }
.hero-portrait-side { position:relative; overflow:hidden; }
.hero-portrait-side::before { content:''; position:absolute; inset:0; background:linear-gradient(to right,rgba(14,28,42,.5) 0%,rgba(14,28,42,0) 25%); z-index:1; pointer-events:none; }
.hero-portrait-side img { width:100%; height:100%; object-fit:cover; object-position:center 30%; animation:hZoom 2.4s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes hZoom { from{transform:scale(1.08);opacity:.7} to{transform:scale(1);opacity:1} }
.hero-eyebrow { font-size:.88rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--teal); margin-bottom:2rem; display:flex; align-items:center; gap:1rem; }
.hero-eyebrow::before { content:''; width:48px; height:1px; background:var(--teal); }
.hero-h1 { font-family:var(--serif); font-size:clamp(2.6rem,4.6vw,4.6rem); line-height:1.08; color:var(--cream); margin-bottom:2rem; font-weight:400; }
.hero-h1 em { font-style:italic; color:var(--teal); }
.hero-sub { font-size:1.15rem; font-weight:400; line-height:1.75; color:var(--sand); max-width:520px; margin-bottom:3rem; }
.hero-actions { display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap; }
.hero-firm-line { font-size:.82rem; letter-spacing:.18em; text-transform:uppercase; color:var(--teal); margin-top:3rem; font-weight:400; }

/* ── ABOUT SECTION ── */
.about-section { padding:var(--space-section) var(--space-page); }
.about-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:6rem; align-items:center; max-width:var(--max-content); margin:0 auto; }
.about-img-wrap { position:relative; }
.about-img { aspect-ratio:4/5; overflow:hidden; }
.about-img img { width:100%; height:100%; object-fit:cover; filter:grayscale(8%) contrast(1.03); transition:transform .9s; }
.about-img-wrap:hover .about-img img { transform:scale(1.03); }
.about-frame { position:absolute; bottom:-1.6rem; right:-1.6rem; width:52%; height:52%; border:1px solid rgba(91,191,181,.25); pointer-events:none; }
.pull-quote { font-family:var(--serif); font-size:1.15rem; font-style:italic; color:var(--teal); line-height:1.6; margin-bottom:1.8rem; padding-left:1.4rem; border-left:1px solid rgba(91,191,181,.35); }
.about-body { font-size:.9rem; font-weight:300; line-height:1.92; color:var(--stone); margin-bottom:1.4rem; }

/* ── WHY SECTION ── */
.why-section { background:var(--charcoal); padding:var(--space-section) var(--space-page); }
.why-inner { max-width:var(--max-content); margin:0 auto; }
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(91,191,181,.1); margin-top:4rem; }
.why-card { background:var(--charcoal); padding:2.8rem 2.4rem; transition:background .3s; }
.why-card:hover { background:var(--charcoal-mid); }
.why-icon { font-family:var(--serif); font-size:2.4rem; font-weight:300; color:rgba(91,191,181,.3); line-height:1; margin-bottom:1.2rem; }
.why-title { font-family:var(--serif); font-size:1.2rem; font-weight:400; color:var(--cream); margin-bottom:.8rem; }
.why-desc { font-size:.85rem; font-weight:300; line-height:1.8; color:var(--stone); }

/* ── SPECIALTIES SECTION ── */
.specialties-section { padding:var(--space-section) var(--space-page); }
.spec-inner { max-width:var(--max-content); margin:0 auto; }
.spec-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:3.5rem; }
.spec-card { padding:3rem 2.6rem; border:1px solid rgba(91,191,181,.18); transition:border-color .3s,background .3s; display:flex; flex-direction:column; }
.spec-card:hover { border-color:var(--teal); background:var(--charcoal-mid); }
.spec-tag { font-size:.58rem; letter-spacing:.25em; text-transform:uppercase; color:var(--teal); margin-bottom:1.2rem; }
.spec-title { font-family:var(--serif); font-size:1.7rem; font-weight:400; color:var(--cream); line-height:1.2; margin-bottom:1rem; }
.spec-title em { font-style:italic; color:var(--sand); }
.spec-quote { font-family:var(--serif); font-style:italic; font-size:1rem; font-weight:300; color:var(--sand); line-height:1.55; margin-bottom:1.5rem; padding-left:1.2rem; border-left:1px solid rgba(91,191,181,.3); }
.spec-desc { font-size:.86rem; font-weight:300; line-height:1.8; color:var(--stone); margin-bottom:2rem; flex-grow:1; }
.spec-link { font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--teal); text-decoration:none; align-self:flex-start; padding-bottom:.3rem; border-bottom:1px solid rgba(91,191,181,.3); transition:border-color .3s,color .3s; }
.spec-link:hover { color:var(--cream); border-color:var(--cream); }

/* ── SALES SECTION ── */
.sales-section { padding:var(--space-section) var(--space-page); }
.section-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3.5rem; max-width:var(--max-content); margin-left:auto; margin-right:auto; flex-wrap:wrap; gap:1rem; }
.sales-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:var(--max-content); margin:0 auto; }
.sale-card { background:var(--charcoal); border:1px solid rgba(91,191,181,.08); padding:1.6rem 1.5rem; transition:border-color .3s; }
.sale-card:hover { border-color:rgba(91,191,181,.25); }
.sale-tag { font-size:.55rem; letter-spacing:.22em; text-transform:uppercase; color:var(--teal); margin-bottom:1rem; display:inline-block; }
.sale-loc { font-family:var(--serif); font-size:1.15rem; color:var(--cream); margin-bottom:.3rem; }
.sale-meta { font-size:.78rem; color:var(--stone); margin-bottom:1rem; }
.sale-price { font-family:var(--serif); font-size:1.05rem; color:var(--sand); padding-top:1rem; border-top:1px solid rgba(91,191,181,.08); }
.sale-rep { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--stone); margin-top:.4rem; }

/* ── EXPERIENCE / PROCESS SECTION ── */
.exp-section { padding:var(--space-section) var(--space-page); background:var(--charcoal); }
.exp-inner { display:grid; grid-template-columns:1fr 1.2fr; gap:5rem; align-items:center; max-width:var(--max-content); margin:0 auto; }
.exp-steps { display:flex; flex-direction:column; gap:2rem; }
.exp-step { display:grid; grid-template-columns:50px 1fr; gap:1.5rem; align-items:flex-start; }
.exp-num { font-family:var(--serif); font-size:1.8rem; color:rgba(91,191,181,.35); line-height:1; }
.exp-title { font-family:var(--serif); font-size:1.1rem; color:var(--cream); margin-bottom:.4rem; }
.exp-desc { font-size:.83rem; font-weight:300; line-height:1.75; color:var(--stone); }

/* ── AREAS SECTION ── */
.areas-section { padding:var(--space-section) var(--space-page); }
.areas-inner { max-width:var(--max-content); margin:0 auto; }
.areas-list { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:3rem; }
.area-pill { background:var(--charcoal); border:1px solid rgba(91,191,181,.12); padding:1.8rem 1.4rem; text-align:center; transition:all .3s; cursor:pointer; }
.area-pill:hover { border-color:var(--teal); background:var(--charcoal-mid); }
.area-name { font-family:var(--serif); font-size:1.05rem; color:var(--cream); margin-bottom:.3rem; }
.area-county { font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--stone); }

/* ── TESTIMONIAL CAROUSEL ── */
.test-section { padding:var(--space-section) var(--space-page); text-align:center; max-width:900px; margin:0 auto; }
.test-rating { display:flex; justify-content:center; align-items:center; gap:.5rem; margin-bottom:2rem; }
.test-stars { color:var(--teal); font-size:1.1rem; letter-spacing:.1em; }
.test-rating-text { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); }
.test-quote { font-family:var(--serif); font-size:clamp(1.3rem,2.2vw,1.9rem); font-style:italic; line-height:1.6; color:var(--cream); margin-bottom:2.2rem; transition:opacity .35s; }
.test-author { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); transition:opacity .35s; }
.test-author em { color:var(--teal); font-style:normal; }
.t-dots { display:flex; justify-content:center; gap:.7rem; margin-top:2.5rem; }
.t-dot { width:8px; height:8px; border-radius:50%; background:rgba(91,191,181,.2); cursor:pointer; transition:background .3s; }
.t-dot.active { background:var(--teal); }

/* ── RESPONSIVE ── */
@media(max-width:900px) {
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-text-side { padding:6rem var(--space-page) 4rem; order:2; }
  .hero-portrait-side { order:1; height:60vh; min-height:480px; }
  .hero-portrait-side::before { background:linear-gradient(to bottom,rgba(14,28,42,0) 0%,rgba(14,28,42,.7) 100%); }
  .about-grid, .exp-inner { grid-template-columns:1fr; gap:3rem; }
  .why-grid, .sales-grid, .spec-grid { grid-template-columns:1fr; }
  .areas-list { grid-template-columns:repeat(2,1fr); }
  .about-frame { display:none; }
  .section-header { flex-direction:column; align-items:flex-start; gap:.8rem; }
}
