/* Driven Capital Partners — static replica of the Squarespace site (Aug 2026 port) */

:root{
  --ink:#111111;
  --dark:#141414;
  --dark-2:#1b1b1b;
  --light:#fafafa;
  --muted:#6b6b6b;
  --line:#e6e6e6;
  --wrap:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--light);
  color:var(--ink);
  font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}

.wrap{width:min(100% - 48px,var(--wrap));margin-inline:auto}
.centered{text-align:center}

h1,h2,h3{font-weight:500;letter-spacing:-0.01em;margin:0}
h2{font-size:clamp(1.9rem,3.4vw,2.7rem)}
h3{font-size:1.05rem;font-weight:600}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  padding:.85rem 1.5rem;
  border-radius:4px;
  transition:opacity .2s ease, transform .2s ease;
}
.btn:hover{opacity:.82}
.btn--pill{border-radius:999px}
.btn--light{background:var(--light);color:var(--ink)}
.btn--dark{background:var(--ink);color:var(--light)}
.btn--lg{padding:1.05rem 2.6rem;font-size:.75rem}

/* ---------- header ---------- */
.site-header{
  position:absolute;inset:0 0 auto 0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:1.5rem clamp(1.5rem,4vw,3.25rem);
}
.brand img{width:105px;height:auto}

/* ---------- hero ---------- */
.hero{
  background:var(--dark);
  color:var(--light);
  min-height:min(78vh,620px);
  display:flex;align-items:center;
  padding:9rem 0 5rem;
}
.hero h1{
  font-size:clamp(2.3rem,5.6vw,4.3rem);
  line-height:1.08;
  text-align:right;
  margin-left:auto;
  max-width:15ch;
}

/* ---------- overview ---------- */
.overview{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:clamp(2rem,6vw,5rem);
  padding:clamp(3.5rem,7vw,6rem) 0;
  padding-left:max(24px,calc((100vw - var(--wrap))/2));
}
.overview__text{max-width:52ch}
.overview__text p{margin:0 0 1.15rem}
.overview__text strong{font-weight:700}
.overview__media img{width:100%;height:100%;max-height:520px;object-fit:cover}

/* ---------- stat bands ---------- */
.band{background:var(--dark);color:var(--light);padding:clamp(3rem,6vw,5rem) 0}
.stat-row{display:grid;gap:1.25rem}
.stat-row--3{grid-template-columns:repeat(3,1fr)}
.stat-row--4{grid-template-columns:repeat(4,1fr)}
.stat{
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,.09);
  border-radius:2px;
  padding:1.9rem 1.6rem 1.7rem;
  min-height:120px;
}
.stat--light{background:#fff;border-color:var(--line);color:var(--ink)}
.stat__num{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:500;line-height:1.1}
.stat__label{margin-top:.5rem;font-size:.92rem;opacity:.85}

/* ---------- featured properties ---------- */
.properties{padding:clamp(3.5rem,7vw,6rem) 0 clamp(3rem,6vw,5rem)}
.properties h2{margin-bottom:2.25rem}

.carousel{position:relative;padding-inline:max(24px,calc((100vw - var(--wrap))/2))}
.carousel__track{
  display:flex;gap:1.75rem;
  overflow-x:auto;scroll-behavior:smooth;
  /* proximity, not mandatory: mandatory snap makes Chrome reject the arrows'
     programmatic scrollTo and bounce the track back to its current snap point */
  scroll-snap-type:x proximity;
  padding-bottom:.5rem;
  scrollbar-width:none;
}
.carousel__track::-webkit-scrollbar{display:none}
.card{flex:0 0 clamp(260px,30%,340px);scroll-snap-align:start}
.card img{width:100%;aspect-ratio:16/11;object-fit:cover;border-radius:2px}
.card h3{margin:.95rem 0 .5rem}
.card p{margin:0;font-size:.82rem;line-height:1.6;color:#333}

.carousel__nav{
  position:absolute;top:34%;z-index:3;
  width:38px;height:38px;border:0;border-radius:999px;
  background:rgba(20,20,20,.55);color:#fff;
  font-size:1rem;cursor:pointer;
  display:grid;place-items:center;
  transition:background .2s ease;
}
.carousel__nav:hover{background:rgba(20,20,20,.8)}
.carousel__nav--prev{left:14px}
.carousel__nav--next{right:14px}

/* ---------- track record ---------- */
.track{padding:clamp(2rem,5vw,4rem) 0 clamp(4rem,8vw,7rem)}
.track__head{max-width:900px;line-height:1.22;margin-bottom:2.75rem}

/* ---------- principals ---------- */
.principals{padding:clamp(2rem,5vw,3rem) 0 clamp(4rem,8vw,6rem)}
.principals h2{margin-bottom:2.75rem}
.principals__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem}
.bio{
  background:#fff;border:1px solid var(--line);border-radius:2px;
  padding:clamp(1.75rem,3vw,2.75rem);
  text-align:center;
}
.bio__photo{
  width:170px;height:170px;border-radius:999px;object-fit:cover;
  margin:0 auto 1.5rem;
}
.bio h3{font-size:1.35rem;font-weight:500;margin-bottom:1.1rem}
.bio p{margin:0 0 1rem;font-size:.82rem;line-height:1.65;text-align:left;color:#333}
.bio .btn{margin-top:.5rem}

/* ---------- subscribe CTA ---------- */
.cta{
  background:var(--dark);color:var(--light);
  display:grid;grid-template-columns:1fr 1fr;align-items:center;
  gap:clamp(2rem,6vw,4rem);
  padding:clamp(3.5rem,7vw,5.5rem) max(24px,calc((100vw - var(--wrap))/2));
}
.cta__media{display:flex;justify-content:center}
.cta__media img{width:min(100%,320px);aspect-ratio:3/4;object-fit:cover;border-radius:2px}
.cta h2{font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:600}
.cta p{margin:.75rem 0 2rem;font-size:.9rem;opacity:.9}

/* ---------- testimonials ---------- */
.testimonials{background:var(--dark);color:var(--light);padding:clamp(3.5rem,7vw,5.5rem) 0}
.testimonials h2{margin-bottom:3rem}
.quotes{position:relative;overflow:hidden}
/* the clip box must live on the PARENT: a transform on the track would move its own
   overflow:hidden clip region along with it, hiding every slide after the first */
.quotes .carousel__track{overflow:visible;gap:0;scroll-snap-type:none}
.quote{
  flex:0 0 100%;margin:0;text-align:center;
  transition:opacity .35s ease;
}
.quote blockquote{
  margin:0 auto;max-width:60ch;
  font-size:clamp(1rem,1.55vw,1.28rem);line-height:1.5;font-weight:400;
}
.quote figcaption{margin-top:1.1rem;font-size:.78rem;opacity:.75}
.quotes__nav{display:flex;justify-content:center;gap:.75rem;margin-top:3rem}
.round{
  width:44px;height:44px;border:0;border-radius:999px;cursor:pointer;
  background:#d9d9d9;color:#141414;font-size:1.05rem;
  display:grid;place-items:center;transition:background .2s ease;
}
.round:hover{background:#fff}

/* ---------- contact ---------- */
.contact{
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--dark);color:var(--light);
  padding:clamp(4rem,8vw,6.5rem) 0;
}
/* subtle isometric cube pattern, echoing the original section treatment */
.contact::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:.5;
  background-color:var(--dark);
  background-image:
    repeating-linear-gradient(30deg, rgba(255,255,255,.045) 0 2px, transparent 2px 88px),
    repeating-linear-gradient(-30deg, rgba(255,255,255,.045) 0 2px, transparent 2px 88px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 2px, transparent 2px 88px);
}
.contact p{margin:.9rem auto 2.4rem;max-width:60ch;font-size:.9rem;opacity:.9}
.contact__btns{display:flex;gap:clamp(1.5rem,7vw,5.5rem);justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.site-footer{background:var(--dark);color:var(--light);padding:2.5rem 0 3rem;border-top:1px solid rgba(255,255,255,.08)}
.site-footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.site-footer__logo{width:92px}
.site-footer p{margin:0;font-size:.75rem;opacity:.65}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .overview{grid-template-columns:1fr;padding-inline:24px}
  .overview__media img{max-height:320px}
  .stat-row--3,.stat-row--4{grid-template-columns:1fr 1fr}
  .principals__grid{grid-template-columns:1fr}
  .cta{grid-template-columns:1fr;text-align:center}
  .cta__media{order:-1}
  .hero h1{text-align:left;margin-left:0;max-width:none}
  .carousel{padding-inline:24px}
  .carousel__nav{display:none}
  .card{flex-basis:82%}
}
@media (max-width:560px){
  .stat-row--3,.stat-row--4{grid-template-columns:1fr}
  .site-header{padding:1.1rem 1.25rem}
  .brand img{width:88px}
}
@media (prefers-reduced-motion:reduce){
  .carousel__track{scroll-behavior:auto}
  *{transition:none!important}
}
