/* =========================================================
   Home page — section styles
   ========================================================= */

/* ---------- HERO ---------- */
.hero{ position:relative; color:#fff; overflow:hidden; }
.hero .ph-bg{
  position:absolute; inset:0; border-radius:0; border:none;
}
.hero .ph-bg::after{ display:none; }
.hero .overlay{
  position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(20,32,47,.92) 0%, rgba(20,32,47,.78) 42%, rgba(20,32,47,.40) 100%);
}
.hero .wrap{ position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:3.5rem; align-items:center; padding-top:5.5rem; padding-bottom:5.5rem; }
.hero .eyebrow{ color:var(--gold-soft); }
.hero .eyebrow::before{ background:var(--gold-soft); }
.hero h1{ color:#fff; margin-bottom:1.6rem; line-height:1.18; }
.hero h1 em{ color:var(--gold-soft); font-style:italic; }
.hero .lede{ color:rgba(255,255,255,.86); font-size:1.2rem; max-width:46ch; margin-bottom:2rem; }
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.hero-cta .phone{ font-size:1.05rem; font-weight:600; }
.hero-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:3rem; padding-top:2.2rem; border-top:1px solid rgba(255,255,255,.18); }
.hero-stats .num{ font-family:var(--serif); font-size:1.9rem; color:var(--gold-soft); line-height:1; }
.hero-stats .lab{ font-size:.78rem; letter-spacing:.04em; color:rgba(255,255,255,.78); margin-top:.4rem; }

/* glass form card */
.lead-card{
  background:rgba(255,255,255,.10); backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.28); border-radius:20px; padding:2.2rem;
  box-shadow:var(--shadow-lg);
}
.lead-card h3{ color:#fff; font-size:1.7rem; margin-bottom:.3rem; }
.lead-card .sub{ font-size:.9rem; color:rgba(255,255,255,.78); margin-bottom:1.4rem; }
.field{ margin-bottom:.9rem; }
.field label{ display:block; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.7); margin-bottom:.4rem; font-weight:600; }
.field input, .field select{
  width:100%; padding:.85rem 1rem; border-radius:11px; border:1px solid rgba(255,255,255,.32);
  background:rgba(255,255,255,.94); color:var(--ink); font-family:var(--sans); font-size:.95rem;
}
.field input:focus, .field select:focus{ outline:2px solid var(--gold-soft); outline-offset:1px; }
.lead-card .btn{ width:100%; margin-top:.4rem; }
.lead-card .fineprint{ font-size:.72rem; color:rgba(255,255,255,.6); text-align:center; margin:.9rem 0 0; }

/* ---------- SERVICES ---------- */
.sec-head{ max-width:60ch; margin-bottom:3.2rem; }
.sec-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.sec-head h2{ margin-bottom:1rem; }
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.svc-card{
  position:relative; background:var(--paper); border:1px solid var(--line); border-radius:16px;
  padding:2.2rem 2rem; overflow:hidden; transition:transform .3s ease, box-shadow .3s ease, border-color .3s;
}
.svc-card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg, var(--gold), var(--rose));
  transform:scaleX(0); transform-origin:left; transition:transform .4s ease;
}
.svc-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.svc-card:hover::before{ transform:scaleX(1); }
.svc-ic{
  width:54px; height:54px; border-radius:13px; display:flex; align-items:center; justify-content:center;
  background:var(--cream-2); font-size:1.6rem; margin-bottom:1.3rem; border:1px solid var(--line);
}
.svc-card h3{ margin-bottom:.7rem; }
.svc-card p{ color:var(--muted); font-size:.96rem; }
.svc-link{ font-size:.88rem; font-weight:600; color:var(--gold-deep); letter-spacing:.02em; display:inline-flex; gap:.35rem; transition:gap .25s; }
.svc-card:hover .svc-link{ gap:.7rem; }

/* ---------- WHY / agent ---------- */
.why{ background:var(--navy); color:#fff; }
.why .wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:4rem; align-items:center; }
.why h2{ color:#fff; }
.why .eyebrow{ color:var(--gold-soft); }
.why .eyebrow::before{ background:var(--gold-soft); }
.why .lede{ color:rgba(255,255,255,.8); margin-bottom:2.2rem; }
.why-portrait{ position:relative; max-width:430px; margin:0 auto; }
.why-portrait .ph{ aspect-ratio:4/5; }
.agent-photo{ position:relative; width:100%; aspect-ratio:1; margin:0 auto; border-radius:50%; overflow:hidden; background:#fff; box-shadow:var(--shadow-lg); }
.agent-photo::after{ content:""; position:absolute; inset:0; border-radius:50%; border:1px solid rgba(188,154,87,.55); pointer-events:none; }
.agent-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 12%; display:block; }
.area-card .area-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.why-portrait .badge{
  position:absolute; left:-10px; bottom:24px; background:var(--gold); color:#fff;
  border-radius:14px; padding:1rem 1.3rem; box-shadow:var(--shadow-md); text-align:center;
}
.why-portrait .badge .n{ font-family:var(--serif); font-size:1.9rem; line-height:1; }
.why-portrait .badge .t{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; margin-top:.2rem; }
.why-list{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 2rem; }
.why-item{ border-top:1px solid rgba(255,255,255,.18); padding-top:1.2rem; }
.why-item .n{ font-family:var(--serif); font-size:2.1rem; color:var(--gold-soft); line-height:1; }
.why-item h3{ color:#fff; font-size:1.15rem; font-family:var(--sans); font-weight:600; margin:.6rem 0 .4rem; }
.why-item p{ color:rgba(255,255,255,.74); font-size:.9rem; margin:0; }

/* ---------- TESTIMONIALS ---------- */
.tst{ background:var(--cream-2); }
.tst-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.tst-card{ background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:2.1rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
.stars{ color:var(--gold); letter-spacing:.15em; font-size:1.05rem; margin-bottom:1rem; }
.tst-card blockquote{ margin:0 0 1.4rem; font-family:var(--serif); font-size:1.28rem; line-height:1.4; color:var(--navy); font-style:italic; }
.tst-meta{ display:flex; align-items:center; gap:.8rem; margin-top:auto; }
.tst-meta .av{ width:42px; height:42px; border-radius:50%; background:var(--cream-2); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-weight:600; color:var(--gold-deep); font-size:.9rem; }
.tst-meta .who{ font-weight:600; font-size:.92rem; color:var(--navy); }
.tst-meta .where{ font-size:.8rem; color:var(--muted); }
.sample-note{ text-align:center; font-size:.78rem; color:var(--muted); margin-top:1.6rem; font-style:italic; }

/* ---------- SERVICE AREAS ---------- */
.areas-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.2rem; }
.area-card{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio:3/4; display:block; }
.area-card .ph{ position:absolute; inset:0; border-radius:0; }
.area-card .ph::after{ top:38%; }
.area-card .cap{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:1.1rem;
  background:linear-gradient(to top, rgba(20,32,47,.82), rgba(20,32,47,0) 60%);
  color:#fff; transition:background .3s;
}
.area-card:hover .cap{ background:linear-gradient(to top, rgba(20,32,47,.9), rgba(20,32,47,.15) 70%); }
.area-card .cap .nm{ font-family:var(--serif); font-size:1.3rem; }
.area-card .cap .go{ font-size:.78rem; color:var(--gold-soft); letter-spacing:.04em; opacity:0; transform:translateY(6px); transition:.3s; }
.area-card:hover .cap .go{ opacity:1; transform:none; }

/* ---------- FAQ ---------- */
.faq-wrap{ max-width:840px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:1.5rem 3rem 1.5rem 0; font-family:var(--serif); font-size:1.35rem; color:var(--navy);
  position:relative; display:flex; justify-content:space-between; gap:1rem; align-items:center;
}
.faq-q .ic{ flex:none; width:28px; height:28px; border-radius:50%; border:1.5px solid var(--gold); color:var(--gold-deep); display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:transform .3s, background .3s, color .3s; }
.faq-item.open .faq-q .ic{ transform:rotate(45deg); background:var(--gold); color:#fff; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-a p{ color:var(--muted); padding:0 0 1.6rem; margin:0; max-width:70ch; }

/* ---------- CTA band ---------- */
.cta-band{ position:relative; color:#fff; text-align:center; overflow:hidden; }
.cta-band .ph-bg{ position:absolute; inset:0; border-radius:0; border:none; }
.cta-band .ph-bg::after{ display:none; }
.cta-band .overlay{ position:absolute; inset:0; background:linear-gradient(rgba(20,32,47,.9), rgba(20,32,47,.86)); }
.cta-band .wrap{ position:relative; z-index:2; }
.cta-band h2{ color:#fff; max-width:18ch; margin:0 auto 1.2rem; }
.cta-band p{ color:rgba(255,255,255,.82); max-width:54ch; margin:0 auto 2rem; font-size:1.1rem; }
.cta-band .hero-cta{ justify-content:center; }

/* ---------- responsive ---------- */
@media (max-width:980px){
  .hero .wrap{ grid-template-columns:1fr; gap:2.5rem; }
  .lead-card{ max-width:480px; }
  .svc-grid{ grid-template-columns:1fr 1fr; }
  .why .wrap{ grid-template-columns:1fr; gap:2.5rem; }
  .tst-grid{ grid-template-columns:1fr; }
  .areas-grid{ grid-template-columns:repeat(2,1fr); }
  .hero-stats{ grid-template-columns:1fr 1fr; gap:1.4rem 1rem; }
}
@media (max-width:560px){
  .svc-grid{ grid-template-columns:1fr; }
  .why-list{ grid-template-columns:1fr; }
  .areas-grid{ grid-template-columns:1fr; }
  .why-portrait .badge{ left:14px; }
}
