/* HOME */
.home-intro {
  display: grid; grid-template-columns: 2fr 8fr 2fr; gap: 20px;
}
.home-intro h2 { grid-column: 2 / 4; }
.home-intro-copy {
  grid-column: 2 / 3; max-width: 650px; margin-top: 65px;
  font-size: 19px; line-height: 1.55;
}
.metrics {
  display: grid; grid-template-columns: repeat(3,1fr);
  border-top: 1px solid var(--line); margin-top: 85px;
}
.metric {
  padding: 24px 25px 40px 0; border-right: 1px solid var(--line);
}
.metric:nth-child(2), .metric:last-child { padding-left: 25px; }
.metric:last-child { border-right: 0; }
.metric strong {
  display: block; font-size: clamp(60px,8vw,130px);
  line-height: 1; letter-spacing: -.06em; font-weight: 500;
}
.metric span {
  display: block; max-width: 310px; margin-top: 12px; font-size: 15px;
}

.solution-grid {
  display: grid; grid-template-columns: repeat(12,1fr);
  border-top: 1px solid var(--line); border-left: 1px solid var(--line);
}
.solution-card {
  grid-column: span 4; min-height: 250px; padding: 24px;
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
  display: flex; flex-direction: column; justify-content: space-between;
  transition: background .25s ease;
}
.solution-card:hover { background: var(--accent); }
.solution-card h3 {
  font-size: clamp(30px,3.5vw,58px); line-height: .95;
  letter-spacing: -.045em; font-weight: 500;
}
.solution-card p { font-size: 12px; max-width: 320px; }

.sector-cloud {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 15px;
}
.sector-cloud a {
  font-size: clamp(30px,5.5vw,95px); line-height: .95;
  letter-spacing: -.055em; opacity: .35; transition: opacity .2s ease;
}
.sector-cloud a:hover { opacity: 1; }

.development-grid, .insights-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 16px;
}
.development-card, .insight-card {
  border-top: 1px solid var(--line); padding-top: 12px;
}
.development-card .card-image, .insight-card .card-image { margin-bottom: 17px; }
.development-card h3, .insight-card h3 {
  font-size: 25px; line-height: 1.08; letter-spacing: -.035em; font-weight: 500;
}
.development-card p, .insight-card p {
  font-size: 12px; line-height: 1.5; margin-top: 10px; max-width: 420px;
}

.team-grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid var(--line);
}
.person-card {
  min-height: 350px; padding: 20px 18px 24px 0;
  border-right: 1px solid var(--line);
  display: flex; flex-direction: column;
}
.person-card:not(:first-child) { padding-left: 18px; }
.person-card:last-child { border-right: 0; }
.person-card h3 { font-size: 31px; letter-spacing: -.04em; font-weight: 500; }
.person-card .role { margin-top: 8px; font-size: 11px; color: var(--muted); }
.person-card blockquote { margin-top: auto; font-size: 14px; line-height: 1.5; }

.cta { min-height: 72vh; display: flex; flex-direction: column; }
.cta h2 {
  margin-top: auto; font-size: clamp(78px,12vw,190px);
  line-height: .76; letter-spacing: -.08em; font-weight: 500;
}
.cta-bottom {
  display: flex; justify-content: space-between; margin-top: 70px;
  padding-top: 14px; border-top: 1px solid rgba(0,0,0,.45); font-size: 11px;
}

/* INDEX PAGES */
.page-hero {
  padding: calc(var(--header-h) + 75px) var(--gutter) 70px;
  min-height: 58vh; display: grid; align-content: end;
  border-bottom: 1px solid var(--line);
}
.page-hero .eyebrow { margin-bottom: 28px; }
.page-hero p {
  max-width: 650px; margin-top: 32px; font-size: 16px; line-height: 1.55;
}
.expertise-hubs {
  display: grid; grid-template-columns: repeat(5,1fr);
  border-top: 1px solid var(--line); border-left: 1px solid var(--line);
}
.hub-card {
  min-height: 330px; padding: 22px;
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
  display: flex; flex-direction: column; justify-content: space-between;
}
.hub-card:hover { background: var(--accent); }
.hub-card h2 {
  font-size: clamp(28px,3vw,48px); line-height: .95;
  letter-spacing: -.045em; font-weight: 500;
}
.hub-card span { font-size: 11px; }

/* ENTITY */
.entity-hero {
  min-height: 86vh; position: relative; background: var(--dark);
  color: #fff; overflow: hidden;
}
.entity-hero-image { position: absolute; inset: 0; }
.entity-hero-image img { height: 100%; object-fit: cover; }
.entity-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.14), rgba(0,0,0,.03) 35%, rgba(0,0,0,.68));
}
.entity-hero-copy {
  position: absolute; z-index: 2; left: var(--gutter); right: var(--gutter); bottom: 55px;
}
.entity-hero-copy h1 {
  max-width: 1250px; font-size: clamp(55px,8vw,135px);
  line-height: .82; letter-spacing: -.07em; font-weight: 500;
}
.entity-hero-copy p { margin-top: 20px; max-width: 760px; font-size: 15px; }

.entity-simple-hero {
  padding: calc(var(--header-h) + 90px) var(--gutter) 80px;
  border-bottom: 1px solid var(--line);
}
.entity-simple-hero h1 { margin-top: 35px; }
.entity-simple-hero p {
  max-width: 820px; margin: 35px 0 0 25%;
  font-size: 18px; line-height: 1.55;
}
.entity-body { padding: 95px var(--gutter) 140px; }
.entity-intro {
  display: grid; grid-template-columns: 4fr 8fr; gap: 30px; margin-bottom: 100px;
}
.entity-intro h2 {
  font-size: 12px; text-transform: uppercase; letter-spacing: .08em; font-weight: 400;
}
.entity-intro .lead {
  font-size: clamp(28px,3.8vw,60px); line-height: 1.03;
  letter-spacing: -.045em; max-width: 1100px;
}
.metadata {
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid var(--line); margin-bottom: 110px;
}
.meta-cell {
  min-height: 110px; padding: 15px 16px 24px 0;
  border-right: 1px solid var(--line);
}
.meta-cell:not(:first-child) { padding-left: 16px; }
.meta-cell:last-child { border-right: 0; }
.meta-cell strong {
  display: block; font-size: 10px; text-transform: uppercase;
  letter-spacing: .08em; margin-bottom: 16px; font-weight: 400; color: var(--muted);
}
.meta-cell span, .meta-cell a { font-size: 14px; }

.gallery {
  display: grid; grid-template-columns: 7fr 5fr;
  gap: 16px; align-items: start; margin-bottom: 115px;
}
.gallery img { aspect-ratio: 16/9; object-fit: cover; }
.gallery img:nth-child(2) { margin-top: 150px; }

.related { margin-top: 90px; }
.taxonomy-connections {
  display: grid; grid-template-columns: repeat(2,1fr); gap: 16px;
}
.connection-card {
  border-top: 1px solid var(--line); padding: 16px 0 45px;
}
.connection-card h3 { font-size: 34px; letter-spacing: -.04em; font-weight: 500; }
.connection-card p { max-width: 520px; margin-top: 10px; font-size: 12px; color: var(--muted); }
.external-link {
  display: inline-flex; gap: 14px; align-items: center; margin-top: 30px;
  border-bottom: 1px solid currentColor; padding-bottom: 4px;
}

/* CONTACT */
.contact-layout { display: grid; grid-template-columns: 7fr 5fr; gap: 80px; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.field input, .field textarea {
  border: 0; border-bottom: 1px solid var(--line);
  background: transparent; min-height: 48px; padding: 8px 0; outline: none;
}
.field textarea { min-height: 130px; resize: vertical; }
.submit {
  grid-column: 1 / -1; justify-self: start; margin-top: 18px;
  border: 0; background: var(--ink); color: #fff; padding: 14px 24px;
}
.form-note { grid-column: 1 / -1; font-size: 10px; color: var(--muted); max-width: 520px; }
.contact-info { border-top: 1px solid var(--line); }
.contact-info-block { padding: 18px 0 35px; border-bottom: 1px solid var(--line); }
.contact-info-block h3 {
  font-size: 10px; text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 13px; font-weight: 400; color: var(--muted);
}

.legal-warning {
  max-width: 900px; padding: 25px; border: 1px solid #a35d00;
  background: #fff4df; margin-top: 35px;
}

@media (max-width: 900px) {
  .home-intro { grid-template-columns: 1fr; }
  .home-intro h2, .home-intro-copy { grid-column: auto; }
  .metrics { grid-template-columns: 1fr; }
  .metric, .metric:nth-child(2), .metric:last-child {
    padding: 24px 0 35px; border-right: 0; border-bottom: 1px solid var(--line);
  }
  .solution-card { grid-column: span 6; }
  .development-grid, .insights-grid { grid-template-columns: 1fr; gap: 55px; }
  .team-grid { grid-template-columns: 1fr 1fr; }
  .expertise-hubs { grid-template-columns: 1fr 1fr; }
  .entity-intro { grid-template-columns: 1fr; }
  .metadata { grid-template-columns: 1fr 1fr; }
  .gallery { grid-template-columns: 1fr; }
  .gallery img:nth-child(2) { margin-top: 0; }
  .contact-layout { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .solution-card { grid-column: span 12; min-height: 210px; }
  .team-grid { grid-template-columns: 1fr; }
  .person-card, .person-card:not(:first-child) {
    border-right: 0; border-bottom: 1px solid var(--line);
    padding: 20px 0; min-height: 280px;
  }
  .expertise-hubs { grid-template-columns: 1fr; }
  .metadata { grid-template-columns: 1fr; }
  .meta-cell, .meta-cell:not(:first-child) {
    padding: 15px 0 25px; border-right: 0; border-bottom: 1px solid var(--line);
  }
  .entity-simple-hero p { margin-left: 0; }
  .contact-form { grid-template-columns: 1fr; }
}

/* BASE V1 COMPLETION */
.topic-grid .solution-card { grid-column: span 4; }
.profile-quote {
  max-width: 1100px; margin: 30px 0 80px 25%;
  font-size: clamp(38px,5.2vw,82px); line-height: .98;
  letter-spacing: -.05em; font-weight: 400;
}
.empty-evidence {
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 24px 0 55px;
}
.empty-evidence p { max-width: 720px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.sector-cloud span {
  font-size: clamp(30px,5.5vw,95px); line-height: .95;
  letter-spacing: -.055em; opacity: .42;
}
.page-note {
  border-top: 1px solid var(--line); padding-top: 14px;
  max-width: 720px; font-size: 11px; color: var(--muted);
}
@media (max-width: 900px) {
  .profile-quote { margin-left: 0; }
  .topic-grid .solution-card { grid-column: span 6; }
}
@media (max-width: 620px) {
  .topic-grid .solution-card { grid-column: span 12; }
}

/* Metadata can grow as structured content becomes richer. */
.metadata { border-left: 0; }
.meta-cell { border-bottom: 1px solid var(--line); }
.meta-cell:nth-child(4n) { border-right: 0; }
@media (max-width: 900px) {
  .meta-cell:nth-child(4n) { border-right: 1px solid var(--line); }
  .meta-cell:nth-child(2n) { border-right: 0; }
}
@media (max-width: 620px) {
  .meta-cell:nth-child(n) { border-right: 0; }
}
