/* V3 refinement. Shared assets and the approved capabilities section are unchanged. */
.home-v3 .v3-wrap { width: min(var(--maxw),calc(100% - var(--gutter))); max-width: none; margin-inline: auto; }
/* The campus picture sits on #f7f1e8; the gradient only lightens the copy side
   and settles on that colour before the picture begins, so the two read as one. */
.v3-hero { background: #f7f1e8 linear-gradient(100deg, #fcf9f4 0%, #f7f1e8 44%); }
.v3-hero-layout { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); gap: 28px; align-items: center; padding-block: 68px 62px; }
.v3-hero-copy { font-family: var(--v3-font); max-width: 650px; position: relative; z-index: 1; container-type: inline-size; }
.v3-hero .v3-hero-eyebrow { font-size: 12px; line-height: 1.7; letter-spacing: .015em; color: #3d5c70; margin: 0 0 28px !important; }
.v3-hero-eyebrow > span { flex: 0 0 6px; height: 6px; background: #567c62; }
.home-v3 .v3-hero h1 { font-family: var(--v3-font); font-size: clamp(32px,4vw,72px); font-size: clamp(32px,11.2cqw,72px); line-height: 1.1; font-weight: 550; letter-spacing: -.04em; max-width: none; text-wrap: initial; }
.v3-hero h1 > span { color: #0d5b45; white-space: nowrap; }
.v3-hero .v3-hero-tagline { font-size: clamp(18px,1.55vw,23px); line-height: 1.45; color: #203f52; letter-spacing: -.025em; margin-top: 25px !important; max-width: none; text-align: left; }
.v3-hero .v3-hero-description { font-size: 18px; line-height: 1.7; color: #435b68; margin-top: 20px; max-width: 490px; }
.v3-hero .v3-hero-support { font-size: 15px; line-height: 1.85; color: #586771; max-width: 495px; margin-top: 13px !important; }
.v3-hero .v3-actions { margin-top: 28px; gap: 24px; }
.v3-hero .v3-actions .v3-button { min-height: 51px; font-size: 14px; border-radius: 3px; padding-inline: 20px; background: #0d5b45; border-color: #0d5b45; font-weight: 500; }
.v3-hero .v3-actions .v3-button:hover { background: #0a4130; border-color: #0a4130; }
.v3-hero .v3-actions .v3-text-link { font-size: 14px; font-weight: 500; gap: 10px; }
.v3-hero .v3-campus { width: 100%; max-width: none; margin: 0 !important; }
.v3-hero .v3-campus-image { width: 100%; height: auto; max-height: none; object-fit: contain; mask-image: linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent),linear-gradient(0deg,transparent,#000 4%,#000 96%,transparent); mask-composite: intersect; }
.v3-hero-bottom { font-family: var(--v3-font); border-color: #d8d2c8; padding-block: 24px; }
.v3-hero-bottom .v3-audience { font-size: 13px; max-width: none; }
.v3-hero-disciplines { display: flex; gap: 25px; color: #49626f; font-size: 12px; }
.v3-hero-disciplines span + span::before { content: ''; display: inline-block; width: 3px; height: 3px; margin: 0 25px 3px 0; border-radius: 50%; background: #8d9c99; }

.v3-finance-section { background: #faf3e9; }
.v3-finance-art,.v3-finance-art > p { background: transparent; }
.v3-finance-art > img { mask-image: linear-gradient(90deg,transparent,#000 2.5%,#000 97.5%,transparent),linear-gradient(0deg,transparent,#000 3%,#000 97%,transparent); mask-composite: intersect; }
.v3-finance-art > p { color: #4f6469; }
.v3-feature-line { border-color: #d4d4c9; }
.v3-feature-line .v3-icon { background: #e9e8db; }

@media (max-width: 1180px) {
  .v3-hero-layout { gap: 16px; padding-block: 53px; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); }
  .v3-hero .v3-hero-eyebrow { font-size: 11px; }
  .v3-hero .v3-hero-description { font-size: 16px; }
  .v3-hero .v3-hero-support { font-size: 14px; }
  .v3-hero .v3-actions { gap: 18px; }
  .v3-hero .v3-actions .v3-button { font-size: 13px; padding-inline: 15px; }
  .v3-hero .v3-actions .v3-text-link { font-size: 12px; }
}
@media (max-width: 900px) {
  .v3-hero { background-image: linear-gradient(180deg, #fcf9f4 0%, #f7f1e8 38%); }
  .v3-hero-layout { grid-template-columns: 1fr; gap: 30px; padding: 45px 0 32px; }
  .v3-hero-copy { max-width: 640px; }
  .v3-hero .v3-hero-description,.v3-hero .v3-hero-support { max-width: 580px; }
  .v3-hero .v3-campus { max-width: 760px; justify-self: center; }
  .v3-hero-disciplines { gap: 16px; }
  .v3-hero-disciplines span + span::before { margin-right: 16px; }
  .v3-hero-bottom { flex-wrap: wrap; gap: 16px; }
}
@media (max-width: 650px) {
  .v3-hero-layout { padding-top: 37px; gap: 24px; }
  .v3-hero-copy { padding-inline: 6px; }
  .v3-hero .v3-hero-eyebrow { font-size: 10px; margin-bottom: 24px !important; gap: 7px; letter-spacing: 0; }
  .home-v3 .v3-hero h1 { letter-spacing: -.035em; }
  .v3-hero .v3-hero-tagline { font-size: 18px; margin-top: 22px !important; }
  .v3-hero .v3-hero-description { font-size: 16px; line-height: 1.8; margin-top: 17px; }
  .v3-hero .v3-hero-support { font-size: 14px; }
  .v3-hero .v3-actions { gap: 18px; margin-top: 25px; }
  .v3-hero .v3-actions .v3-button { font-size: 13px; min-height: 47px; }
  .v3-hero .v3-actions .v3-text-link { font-size: 12px; }
  .v3-hero-bottom { padding: 19px 6px 23px; }
  .v3-hero-bottom .v3-audience { font-size: 12px; max-width: 320px; }
  .v3-hero-disciplines { font-size: 11px; }
  .v3-finance-art > p { font-size: 11px; line-height: 1.8; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .v3-hero * { transition: none !important; animation: none !important; }
}

/* Industry cards: no dead space between the name and the description. */
.v3-industry-top { margin-bottom: 28px; }
.v3-industry h3 { min-height: 0; }
.v3-industry li { font-size: 11px; }
/* Text links keep their look but get a finger-sized hit area. */
.v3-text-link { padding-block: 10px; margin-block: -10px; }

/* Phones: plans and industry cards become swipe rows, like the bento. */
@media (max-width: 720px) {
  .home-v3 .v3-plan-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; border: 0; background: transparent; margin-inline: calc(var(--gutter) / -2); padding: 0 calc(var(--gutter) / 2) 6px; scroll-padding-inline: calc(var(--gutter) / 2); }
  .home-v3 .v3-plan-card { flex: 0 0 min(84%, 330px); scroll-snap-align: start; border: 1px solid #bac6d6 !important; background: #fff; padding: 24px 20px; }
  .home-v3 .v3-plan-card.v3-plan-featured { background: #f2f5fd; border-top: 3px solid #3358cb !important; }
  .home-v3 .v3-enterprise-grid { margin-top: 12px; border-top: 1px solid #bac6d6; }
  .home-v3 .v3-industry-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; border: 0; margin-inline: calc(var(--gutter) / -2); padding: 0 calc(var(--gutter) / 2) 6px; scroll-padding-inline: calc(var(--gutter) / 2); }
  .home-v3 .v3-industry { flex: 0 0 min(84%, 330px); scroll-snap-align: start; border: 1px solid #c9c8c1 !important; background: #fbf9f5; padding: 24px 20px; }
  .home-v3 .v3-industry-top { margin-bottom: 20px; }
  .home-v3 .v3-industry h3 { font-size: 25px; }
}

/* The optional services under each plan, set apart from the staff limits. */
.v3-plan-bottom .v3-plan-addons { margin-top: 12px; padding-top: 12px; border-top: 1px solid #d8dfe6; }
