/* ==========================================================================
   Turner & Company — site.css
   Zero-dependency, hand-written stylesheet. One file, mobile-first.
   ========================================================================== */

:root{
  --ink:#111418;
  --bg:#ffffff;
  --bg-alt:#F4F5F7;
  --accent:#1F4E79;
  --accent-hover:#173B5C;
  --steel:#8A94A6;
  --border:#E3E6EB;
  --hero-bg:#0F1B2A;
  --hero-ink:#ffffff;

  --font-sans: -apple-system, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;

  --content-max: 1120px;
  --radius: 10px;
  --section-pad: clamp(3rem, 6vw, 6rem);
  --shadow-sm: 0 1px 2px rgba(17,20,24,0.06), 0 1px 1px rgba(17,20,24,0.04);
  --shadow-md: 0 8px 24px rgba(17,20,24,0.08);
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:hidden; max-width:100%; }
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  max-width:100%;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
ul, ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p,figure{ margin:0; }
button{ font-family:inherit; }

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--accent); color:#fff; padding:0.75rem 1.25rem;
  z-index:1000; border-radius:0 0 6px 0;
}
.skip-link:focus{ left:0; top:0; }

:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:2px;
}

.wrap{
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 1.5rem;
}

/* ---------- Typography ---------- */
h1{ font-size:clamp(2.4rem, 4vw + 1rem, 4rem); font-weight:800; line-height:1.08; letter-spacing:-0.01em; }
h2{ font-size:clamp(1.7rem, 2vw + 1rem, 2.4rem); font-weight:800; line-height:1.15; letter-spacing:-0.01em; }
h3{ font-size:1.25rem; font-weight:700; line-height:1.3; }
p{ color:var(--ink); }
.lede{ font-size:clamp(1.05rem, 0.6vw + 1rem, 1.25rem); color:#3a3f47; max-width:64ch; }

.eyebrow{
  display:inline-block;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--steel);
  margin-bottom:0.75rem;
}

.section-head{ margin-bottom:2.25rem; max-width:70ch; }
.section-head h2{ margin-top:0.25rem; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  padding:0.85rem 1.5rem;
  border-radius:8px;
  font-weight:700;
  font-size:0.98rem;
  border:2px solid transparent;
  transition:background-color .15s ease, border-color .15s ease, color .15s ease, transform .1s ease;
  cursor:pointer;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--accent); color:#fff; }
.btn-primary:hover{ background:var(--accent-hover); }
.btn-secondary{ background:transparent; color:var(--accent); border-color:var(--accent); }
.btn-secondary:hover{ background:var(--accent); color:#fff; }
.btn-on-dark{ background:var(--accent); color:#fff; }
.btn-on-dark:hover{ background:#2c5e8f; }
.btn-ghost-on-dark{ background:transparent; color:#fff; border-color:rgba(255,255,255,0.4); }
.btn-ghost-on-dark:hover{ border-color:#fff; }

.btn-row{ display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:1.75rem; }
@media (max-width:520px){
  .btn{ white-space:normal; text-align:center; }
}

/* ---------- Header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,0.92);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:72px;
}
.wordmark{
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:-0.01em;
  color:var(--ink);
}
.wordmark span{ color:var(--accent); }
.wordmark img{ height:34px; width:auto; display:block; }

.site-nav{
  display:flex;
  align-items:center;
  gap:1.75rem;
}
.site-nav a{
  position:relative;
  font-size:0.95rem;
  font-weight:600;
  color:var(--ink);
  padding:0.35rem 0;
}
.site-nav a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-2px;
  height:2px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .15s ease;
}
.site-nav a:hover::after{ transform:scaleX(1); }
.site-nav a.nav-cta{
  background:var(--accent);
  color:#fff;
  padding:0.55rem 1.1rem;
  border-radius:7px;
  font-weight:700;
}
.site-nav a.nav-cta::after{ display:none; }
.site-nav a.nav-cta:hover{ background:var(--accent-hover); }

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:40px;
  height:40px;
  background:transparent;
  border:1px solid var(--border);
  border-radius:8px;
  cursor:pointer;
}
.nav-toggle-bar{
  display:block;
  height:2px;
  width:20px;
  margin:0 auto;
  background:var(--ink);
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- Hero (dark band, home only) ---------- */
.hero{
  background:var(--hero-bg);
  color:var(--hero-ink);
  padding:clamp(3.5rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 5rem);
}
.hero .eyebrow{ color:#9fb3c8; }
.hero h1{ color:#fff; max-width:18ch; }
.hero .lede{ color:#cdd6e0; margin-top:1.5rem; max-width:62ch; font-size:clamp(1.05rem, 0.6vw + 1rem, 1.2rem); }
.hero .btn-row{ margin-top:2.25rem; }

/* ---------- Hero video (home) ---------- */
.hero-video{
  position:relative;
  overflow:hidden;
  padding:0;
  min-height:clamp(560px, 88vh, 780px);
  display:flex;
  align-items:center;
}
.hero-media{ position:absolute; inset:0; z-index:0; background:var(--hero-bg); }
.hero-media .hero-poster{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.hero-media iframe{
  position:absolute;
  top:50%; left:50%;
  width:177.78vh;         /* 16:9 cover-fit trick */
  height:56.25vw;
  min-width:100%;
  min-height:100%;
  transform:translate(-50%, -50%);
  border:0;
  z-index:1;
  pointer-events:none;
}
@media (prefers-reduced-motion: reduce){
  .hero-media iframe{ display:none; }
}
.hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,27,42,0.58) 0%, rgba(15,27,42,0.74) 55%, rgba(15,27,42,0.94) 100%);
  z-index:2;
}
.hero-video .hero-content{ position:relative; z-index:3; padding:clamp(3.5rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 5rem); min-width:0; width:100%; }
.hero-video .hero-content h1{ text-shadow:0 2px 18px rgba(0,0,0,0.35); }

/* ---------- Logo strip band / marquee ---------- */
.logo-strip-band{
  background:var(--bg-alt);
  border-bottom:1px solid var(--border);
  padding:clamp(1.75rem, 4vw, 2.75rem) 0;
}
.logo-strip-band .eyebrow{ display:block; text-align:center; margin-bottom:1.5rem; }

.logo-marquee{
  position:relative;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%);
}
.logo-marquee-row{
  overflow:hidden;
}
.logo-marquee-row + .logo-marquee-row{ margin-top:1.5rem; }
.logo-marquee-track{
  display:flex;
  width:max-content;
  will-change:transform;
}
.logo-marquee-row-a .logo-marquee-track{ animation:marquee-left 42s linear infinite; }
.logo-marquee-row-b .logo-marquee-track{ animation:marquee-right 56s linear infinite; }

.logo-marquee-set{
  display:flex;
  align-items:center;
  gap:clamp(2rem, 4vw, 3.5rem);
  padding-right:clamp(2rem, 4vw, 3.5rem);
  flex-shrink:0;
}
.logo-marquee-set img{
  display:block;
  height:52px;
  width:auto;
  max-width:none;
  filter:grayscale(100%) opacity(0.58);
  transition:filter 0.25s ease, transform 0.25s ease;
}
.logo-marquee-set img:hover,
.logo-marquee-set img:focus-visible{
  filter:grayscale(0%) opacity(1);
  transform:scale(1.06);
}

@keyframes marquee-left{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@keyframes marquee-right{
  from{ transform:translateX(-50%); }
  to{ transform:translateX(0); }
}

@media (max-width: 640px){
  .logo-marquee-set img{ height:36px; }
  .logo-marquee-set{ gap:2rem; padding-right:2rem; }
}

@media (prefers-reduced-motion: reduce){
  .logo-marquee-track{ animation:none; flex-wrap:wrap; width:100%; }
  .logo-marquee-set{ flex-wrap:wrap; justify-content:center; padding-right:0; }
  .logo-marquee-set[aria-hidden="true"]{ display:none; }
}

/* ---------- Two-column split (copy + media) ---------- */
.split{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:clamp(2rem, 5vw, 3.5rem);
  align-items:center;
}
@media (max-width:900px){ .split{ grid-template-columns:1fr; } }
.split .split-copy .lede{ max-width:56ch; }

/* ---------- Product mosaic ---------- */
.mosaic{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:0.9rem;
}
.mosaic-item{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-alt);
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mosaic-item img{
  width:100%; height:100%;
  object-fit:contain;
  padding:0.85rem;
}
.mosaic-item.mosaic-photo img{ object-fit:cover; padding:0; }

/* ---------- Flow diagram card ---------- */
.flow-diagram-card{
  background:#fff;
  border-radius:var(--radius);
  padding:clamp(1.25rem, 3vw, 2rem);
  box-shadow:var(--shadow-md);
  overflow-x:auto;
}
.flow-diagram-card svg{
  display:block;
  margin:0 auto;
  min-width:760px;
  width:100%;
  height:auto;
}
.flow-diagram-wrap{ margin-bottom:2.5rem; }

/* ---------- Market segment image cards ---------- */
.segment-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.25rem;
}
@media (max-width:900px){ .segment-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .segment-grid{ grid-template-columns:1fr; } }
.segment-card{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  aspect-ratio:4/3;
  display:flex;
  align-items:flex-end;
  box-shadow:var(--shadow-sm);
  background:var(--hero-bg);
}
.segment-card img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
  transition:transform .35s ease;
}
.segment-card:hover img{ transform:scale(1.05); }
.segment-card::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,27,42,0) 35%, rgba(15,27,42,0.88) 100%);
  z-index:1;
}
.segment-label{ position:relative; z-index:2; padding:1.1rem 1.25rem; }
.segment-label strong{ display:block; color:#fff; font-size:1.05rem; font-weight:800; letter-spacing:-0.01em; }
.segment-label span{ display:block; color:#dbe2ea; font-size:0.8rem; margin-top:0.25rem; }

/* ---------- Icon badges (small inline SVG icons) ---------- */
.icon-badge{
  width:44px; height:44px;
  border-radius:10px;
  background:rgba(31,78,121,0.08);
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.icon-badge svg{ width:22px; height:22px; stroke:var(--accent); }
.icon-badge-lg{ width:52px; height:52px; border-radius:12px; }
.icon-badge-lg svg{ width:26px; height:26px; }
.icon-badge-on-dark{ background:rgba(255,255,255,0.14); }
.icon-badge-on-dark svg{ stroke:#fff; }
.icon-badge-round{ border-radius:50%; }

.card .icon-badge{ margin-bottom:0.35rem; }
.agent-name{ align-items:center; }
.agent-name .icon-badge{ margin-right:0.15rem; }

/* ---------- Tile row (icon + heading + copy) ---------- */
.tile-row{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.25rem;
}
@media (max-width:900px){ .tile-row{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .tile-row{ grid-template-columns:1fr; } }
.tile{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.5rem 1.35rem;
  text-align:center;
  box-shadow:var(--shadow-sm);
}
.tile .icon-badge{ margin:0 auto 0.85rem; }
.tile h3{ font-size:1rem; }
.tile p{ font-size:0.88rem; color:#4a4f57; margin-top:0.4rem; }

/* ---------- Hero / CTA image bands ---------- */
.image-band{
  position:relative;
  background:var(--hero-bg);
  color:#fff;
  background-size:cover;
  background-position:center;
}
.image-band::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,27,42,0.78) 0%, rgba(15,27,42,0.88) 100%);
}
.image-band .wrap{ position:relative; z-index:1; }
.image-band.page-header{ background-color:var(--hero-bg); border-bottom:none; }
.image-band .eyebrow{ color:#9fb3c8; }
.image-band h1{ color:#fff; }
.image-band .lede{ color:#cdd6e0; }

.cta-band.cta-band-photo{
  position:relative;
  background-size:cover;
  background-position:center;
}
.cta-band.cta-band-photo::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,27,42,0.86) 0%, rgba(15,27,42,0.94) 100%);
}
.cta-band.cta-band-photo .wrap{ position:relative; z-index:1; }

/* ---------- Page header (secondary pages, light) ---------- */
.page-header{
  background:var(--bg-alt);
  border-bottom:1px solid var(--border);
  padding:clamp(2.75rem, 6vw, 4.5rem) 0;
}
.page-header h1{ max-width:22ch; }
.page-header .lede{ margin-top:1rem; }

/* ---------- Sections ---------- */
.section{ padding:var(--section-pad) 0; }
.section-alt{ background:var(--bg-alt); }
.section-border-top{ border-top:1px solid var(--border); }

/* ---------- Card grid ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.75rem;
}
.grid-2{ grid-template-columns:repeat(2, 1fr); }
@media (max-width:900px){
  .grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:720px){
  .grid{ grid-template-columns:1fr; }
}

.card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.75rem;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
  gap:0.75rem;
}
.card h3{ margin-top:0.25rem; }
.card p{ color:#4a4f57; font-size:0.97rem; }
.card .card-link{
  margin-top:auto;
  font-weight:700;
  color:var(--accent);
  font-size:0.92rem;
}
.card .card-link:hover{ color:var(--accent-hover); }

/* image cards (capabilities) */
.card-media{
  border-radius:var(--radius);
  overflow:hidden;
  padding:0;
  border:1px solid var(--border);
  background:#fff;
}
.card-media .media{
  aspect-ratio:1/1;
  background:var(--bg-alt);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.card-media .media img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:0.35rem;
}
.card-media .card-body{ padding:1.4rem 1.5rem 1.6rem; }
.card-media .sub{
  display:block;
  color:var(--steel);
  font-size:0.85rem;
  margin-top:0.35rem;
  line-height:1.5;
}

/* ---------- Pair cards (adjacency / synergy grid) ---------- */
.pair-card{ padding:0; overflow:hidden; }
.pair-media{
  aspect-ratio:16/10;
  background:var(--bg-alt);
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.pair-media img{ width:100%; height:100%; object-fit:contain; padding:1rem; }
.pair-body{ padding:1.5rem; display:flex; flex-direction:column; gap:0.75rem; }
.pair-row{ display:flex; flex-wrap:wrap; align-items:baseline; gap:0.4rem; margin:0; font-size:0.95rem; }
.pair-label{ color:var(--steel); font-size:0.76rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; }
.pair-arrow{ color:var(--accent); font-weight:800; }
.pair-row strong{ font-size:1rem; }

/* agent roster cards */
.agent-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.85rem;
  box-shadow:var(--shadow-sm);
}
.agent-name{
  display:flex;
  align-items:baseline;
  gap:0.6rem;
  margin-bottom:0.6rem;
}
.agent-name .dot{
  width:10px; height:10px; border-radius:50%;
  background:var(--accent);
  flex:none;
}
.agent-role{ color:var(--steel); font-size:0.85rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; }
.agent-card p{ font-size:0.97rem; color:#3a3f47; }
.agent-meaning{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px dashed var(--border);
  font-size:0.92rem;
}
.agent-meaning strong{ color:var(--ink); }

/* ---------- Callout ---------- */
.callout{
  background:var(--hero-bg);
  color:#fff;
  border-radius:var(--radius);
  padding:2.25rem;
  display:flex;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
}
.callout .callout-icon{
  width:52px; height:52px; border-radius:50%;
  background:var(--accent);
  flex:none;
  display:flex; align-items:center; justify-content:center;
  font-weight:800;
}
.callout .callout-icon svg{ width:26px; height:26px; stroke:#fff; }
.callout p{ color:#dfe5eb; margin:0; }
.callout strong{ color:#fff; }

/* ---------- Timeline ---------- */
.timeline{
  display:flex;
  flex-direction:column;
  gap:0;
  border-left:2px solid var(--border);
  margin-left:0.6rem;
}
.timeline-step{
  position:relative;
  padding:0 0 2.5rem 2.25rem;
}
.timeline-step:last-child{ padding-bottom:0; }
.timeline-step::before{
  content:"";
  position:absolute;
  left:-9px; top:2px;
  width:16px; height:16px;
  border-radius:50%;
  background:var(--accent);
  border:3px solid #fff;
  box-shadow:0 0 0 2px var(--border);
}
.timeline-step .step-label{
  color:var(--accent);
  font-weight:700;
  font-size:0.82rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  margin-bottom:0.35rem;
  display:block;
}
.timeline-step .step-head{ display:flex; align-items:center; gap:0.65rem; margin-bottom:0.6rem; }
.timeline-step .step-head .icon-badge{ width:36px; height:36px; border-radius:8px; }
.timeline-step .step-head .icon-badge svg{ width:18px; height:18px; }
.timeline-step .step-head .step-label{ margin-bottom:0; }
.timeline-step h3{ margin-bottom:0.5rem; }
.timeline-step p{ color:#3a3f47; max-width:62ch; }

/* ---------- Horizontal timeline (About) ---------- */
.timeline-h{ display:flex; gap:0.5rem; margin-top:2.75rem; }
.timeline-h .h-step{ flex:1; position:relative; padding-top:2.6rem; text-align:center; }
.timeline-h .h-step::before{ content:""; position:absolute; top:9px; left:0; right:0; height:2px; background:var(--border); }
.timeline-h .h-step:first-child::before{ left:50%; }
.timeline-h .h-step:last-child::before{ right:50%; }
.timeline-h .h-dot{ position:absolute; top:0; left:50%; transform:translateX(-50%); width:20px; height:20px; border-radius:50%; background:var(--accent); border:3px solid #fff; box-shadow:0 0 0 2px var(--border); z-index:1; }
.timeline-h .h-year{ color:var(--accent); font-weight:800; font-size:1.15rem; }
.timeline-h .h-label{ margin-top:0.4rem; font-size:0.92rem; color:#3a3f47; max-width:22ch; margin-left:auto; margin-right:auto; }
@media (max-width:720px){
  .timeline-h{ flex-direction:column; gap:2rem; }
  .timeline-h .h-step::before{ display:none; }
  .timeline-h .h-step{ text-align:left; padding-left:2.6rem; padding-top:0; }
  .timeline-h .h-dot{ top:2px; left:0; transform:none; }
  .timeline-h .h-label{ margin-left:0; }
}

/* ---------- FAQ ---------- */
.faq{ max-width:80ch; }
.faq details{
  border-bottom:1px solid var(--border);
  padding:1.35rem 0;
}
.faq summary{
  cursor:pointer;
  font-weight:700;
  font-size:1.05rem;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+";
  font-size:1.5rem;
  font-weight:400;
  color:var(--accent);
  flex:none;
  transition:transform .15s ease;
}
.faq details[open] summary::after{ content:"\2212"; }
.faq p{ margin-top:0.9rem; color:#3a3f47; max-width:70ch; }

/* ---------- Badges / chips ---------- */
.badge-row{ display:flex; flex-wrap:wrap; gap:0.6rem; }
.badge{
  display:inline-block;
  background:var(--bg-alt);
  border:1px solid var(--border);
  color:var(--ink);
  font-size:0.85rem;
  font-weight:600;
  padding:0.45rem 0.9rem;
  border-radius:999px;
}
.badge-accent{
  background:rgba(31,78,121,0.08);
  border-color:rgba(31,78,121,0.25);
  color:var(--accent);
}

/* ---------- Team ---------- */
.team-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.75rem;
}
@media (max-width:720px){ .team-grid{ grid-template-columns:1fr; } }
.team-card{
  display:flex;
  gap:1.35rem;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.5rem;
  box-shadow:var(--shadow-sm);
}
.team-photo{
  width:140px; height:140px;
  border-radius:50%;
  overflow:hidden;
  flex:none;
  background:var(--bg-alt);
  border:1px solid var(--border);
}
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-name{ font-weight:800; font-size:1.1rem; }
.team-title{ color:var(--accent); font-weight:700; font-size:0.85rem; margin:0.15rem 0 0.6rem; }
.team-card p{ font-size:0.93rem; color:#4a4f57; }
@media (max-width:480px){
  .team-card{ flex-direction:column; }
  .team-photo{ width:120px; height:120px; }
}

/* ---------- Market strip ---------- */
.market-strip{
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem;
  justify-content:center;
}

/* ---------- About / generations ---------- */
.stat-row{
  display:flex;
  flex-wrap:wrap;
  gap:2.5rem;
  margin-top:2rem;
}
.stat{ min-width:140px; }
.stat .stat-num{ font-size:2.2rem; font-weight:800; color:var(--accent); line-height:1; }
.stat .stat-label{ color:var(--steel); font-size:0.85rem; margin-top:0.4rem; font-weight:600; }

/* ---------- Contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:0.85fr 1fr 1fr;
  gap:2.5rem;
}
@media (max-width:1080px){
  .contact-grid{ grid-template-columns:1fr 1fr; }
  .contact-map{ grid-column:1 / -1; }
}
@media (max-width:640px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-map{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--border);
  aspect-ratio:4/5;
  background:var(--bg-alt);
}
.contact-map iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width:1080px){ .contact-map{ aspect-ratio:16/7; } }

.contact-block{ display:flex; flex-direction:column; gap:1.25rem; }
.contact-item{ display:flex; gap:0.9rem; align-items:flex-start; }
.contact-item .contact-label{ display:block; color:var(--steel); font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:0.2rem; }
.contact-item a, .contact-item span{ font-weight:600; }
.contact-item a:hover{ color:var(--accent); }

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.1rem;
}
@media (max-width:600px){ .form-grid{ grid-template-columns:1fr; } }
.form-field{ display:flex; flex-direction:column; gap:0.4rem; }
.form-field.full{ grid-column:1 / -1; }
.form-field label{ font-weight:700; font-size:0.9rem; }
.form-field input,
.form-field select,
.form-field textarea{
  border:1px solid var(--border);
  border-radius:8px;
  padding:0.75rem 0.9rem;
  font-family:inherit;
  font-size:0.97rem;
  background:#fff;
  color:var(--ink);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:var(--accent);
}
.form-field textarea{ resize:vertical; min-height:120px; }
.honeypot-field{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }

/* ---------- Closing CTA band ---------- */
.cta-band{
  background:var(--hero-bg);
  color:#fff;
  text-align:center;
  padding:clamp(2.75rem, 6vw, 4.5rem) 0;
}
.cta-band h2{ color:#fff; }
.cta-band .lede{ color:#cdd6e0; margin:0.9rem auto 0; }
.cta-band .btn-row{ justify-content:center; }

/* ---------- Footer ---------- */
.site-footer{ background:#0F1319; color:#c9ced7; }
.footer-inner{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:2.5rem;
  padding:3.5rem 1.5rem 2.5rem;
}
@media (max-width:800px){
  .footer-inner{ grid-template-columns:1fr; gap:2rem; padding:3rem 1.5rem 2rem; }
}
.wordmark-footer{ color:#fff; font-size:1.1rem; }
.wordmark-footer img{ height:28px; }
.footer-tagline{ margin-top:0.75rem; color:#9099a8; font-size:0.9rem; max-width:32ch; }
.footer-social{ display:inline-block; margin-top:1rem; font-weight:700; color:#c9ced7; font-size:0.9rem; }
.footer-social:hover{ color:#fff; }
.footer-nav{ display:flex; flex-direction:column; gap:0.65rem; }
.footer-nav a{ color:#c9ced7; font-size:0.92rem; }
.footer-nav a:hover{ color:#fff; }
.footer-contact{ display:flex; flex-direction:column; gap:0.65rem; font-size:0.92rem; }
.footer-contact a{ color:#c9ced7; }
.footer-contact a:hover{ color:#fff; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.08);
  padding:1.25rem 1.5rem;
  font-size:0.82rem;
  color:#9aa3b2;
}

/* ---------- Utility ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.max-w-prose{ max-width:70ch; }

/* ---------- Mobile nav ---------- */
@media (max-width:860px){
  .nav-toggle{ display:flex; }
  .site-nav{
    position:absolute;
    top:72px;
    left:0; right:0;
    background:#fff;
    border-bottom:1px solid var(--border);
    flex-direction:column;
    align-items:flex-start;
    padding:1rem 1.5rem 1.5rem;
    gap:0.25rem;
    display:none;
    box-shadow:var(--shadow-md);
  }
  .site-nav.is-open{ display:flex; }
  .site-nav a{ width:100%; padding:0.65rem 0; }
  .site-nav a.nav-cta{ margin-top:0.5rem; text-align:center; }
}

/* ---------- Dashboard mock frames ---------- */
.mock-shots{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
@media (max-width:860px){ .mock-shots{ grid-template-columns:1fr; } }
.browser-frame{ margin:0; border:1px solid #E3E6EB; border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 14px 40px rgba(15,27,42,0.10); }
.browser-bar{ display:flex; gap:6px; padding:9px 12px; background:#EEF1F5; border-bottom:1px solid #E3E6EB; }
.browser-bar span{ width:10px; height:10px; border-radius:50%; background:#CBD3DD; }
.browser-frame img{ display:block; width:100%; height:auto; }
.browser-frame figcaption{ font-size:0.82rem; color:#5b6572; padding:0.7rem 1rem; border-top:1px solid #E3E6EB; }
.shots-note{ font-size:0.78rem; color:#8A94A6; margin-top:0.8rem; }
.agent-illus{ aspect-ratio:16/9; object-fit:cover; }

.mock-shots{ align-items:start; }

/* ---------- Agent brand marks ---------- */
.agent-card-branded{ text-align:left; }
.agent-mark{ display:flex; justify-content:center; padding:1.4rem 0 0.9rem;
  background:linear-gradient(180deg,#F4F5F7 0%,#fff 100%); border-radius:10px; margin-bottom:1.1rem; }
.agent-name-center{ justify-content:center; text-align:center; }
.agent-name-center h3{ font-size:1.35rem; letter-spacing:0.14em; text-transform:uppercase; }
.agent-card-branded .agent-role{ display:block; text-align:center; letter-spacing:0.12em; text-transform:uppercase; font-size:0.72rem; color:#8A94A6; }
.agent-tagline{ text-align:center; font-style:italic; color:#1F4E79; font-weight:600; margin:0.8rem 0 1rem; }

.diagram-caption{ text-align:center; font-size:0.9rem; color:#5b6572; margin-top:1rem; }
.agent-more{ margin-top:1rem; border-top:1px solid #E3E6EB; padding-top:0.8rem; }
.agent-more summary{ cursor:pointer; font-size:0.85rem; font-weight:600; color:#1F4E79; }
.agent-more p{ margin-top:0.7rem; font-size:0.92rem; }

.section-tight-top{ padding-top:clamp(1.25rem, 2.5vw, 2rem); }
