/* ===========================================================
   territory-managers.html (2026-10-19) — homepage-v2 look.
   Loads after styles.v12.css + site.v2.css. Photos: images/pages/ (Pexels, see CREDITS.txt).
   Motion rule: no state in which content is invisible; stagger by duration only (.s2-rv).
   =========================================================== */

.tm-wrap { max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.tm-eyebrow { display: inline-block; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--med-blue); margin: 0 0 10px; }
.tm-title { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.15; color: var(--deep-trust-blue); margin: 0 0 14px; font-weight: 700; }
.tm-center { text-align: center; max-width: 760px; margin: 0 auto 42px; }
.tm-center p { font-size: 17px; line-height: 1.65; color: var(--ink-soft); margin: 0; }

/* Mint pill CTA (same recipe as the homepage .h2-cta) */
.tm-cta { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px;
  background: var(--mint); color: var(--mint-ink); font-weight: 700; font-size: 16.5px; padding: 14px 28px; border-radius: 999px; text-decoration: none;
  box-shadow: 0 10px 24px -10px rgba(47,214,176,.7), 0 2px 0 rgba(255,255,255,.35) inset;
  transition: transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s, background .2s; }
.tm-cta:hover, .tm-cta:focus-visible { transform: translateY(-2px); background: var(--mint-hover); color: var(--mint-ink); box-shadow: 0 16px 30px -12px rgba(47,214,176,.8); text-decoration: none; }
.tm-cta svg { width: 18px; height: 18px; }
.tm-ghost { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 13px 26px; border-radius: 999px;
  color: #fff; font-weight: 700; font-size: 16px; text-decoration: none; border: 1.5px solid rgba(255,255,255,.45); background: rgba(255,255,255,.06);
  transition: transform .2s cubic-bezier(.2,.7,.3,1), background .2s, border-color .2s; }
.tm-ghost:hover, .tm-ghost:focus-visible { background: rgba(255,255,255,.14); border-color: #fff; color: #fff; transform: translateY(-2px); text-decoration: none; }
.tm-ctas { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- HERO ---------- */
.tm-hero { position: relative; overflow: hidden; background: var(--navy-900); color: #fff; isolation: isolate; padding: 0; }
.tm-hero-media { position: absolute; inset: 0 0 0 36%; z-index: -2; display: block; }
.tm-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 35%; display: block; }
.tm-hero::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, var(--navy-900) 0%, var(--navy-900) 36%, rgba(7,22,69,.86) 46%, rgba(7,22,69,.25) 64%, rgba(7,22,69,0) 80%),
              linear-gradient(0deg, rgba(7,22,69,.55) 0%, rgba(7,22,69,0) 38%); }
.tm-hero-inner { min-height: 580px; display: flex; align-items: center; padding-top: 64px; padding-bottom: 64px; }
.tm-hero-copy { max-width: 580px; }
.tm-crumb { font-size: 13.5px; color: rgba(255,255,255,.7); margin: 0 0 18px; }
.tm-crumb a { color: rgba(255,255,255,.85); text-decoration: none; }
.tm-crumb a:hover { color: #fff; text-decoration: underline; }
.tm-hero .tm-eyebrow { color: var(--mint); }
.tm-hero h1 { font-size: clamp(36px, 4.8vw, 58px); line-height: 1.05; margin: 0 0 18px; color: #fff; font-weight: 700; letter-spacing: -.01em; }
.tm-hero .lede { font-size: 18.5px; line-height: 1.6; color: rgba(255,255,255,.9); margin: 0 0 30px; }
.tm-hero-note { position: absolute; right: 5%; top: 50px; transform: rotate(-6deg); font-size: 30px; color: #fff; text-shadow: 0 2px 14px rgba(7,22,69,.6); text-align: right; margin: 0; }

/* ---------- OPPORTUNITY ---------- */
.tm-opp { padding: 92px 0; background: #fff; }
.tm-opp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tm-card { background: #fff; border: 1px solid var(--border); padding: 26px 22px; box-shadow: 0 10px 26px -20px rgba(7,22,69,.3); }
.tm-card .tm-ico { width: 52px; height: 52px; border-radius: 14px; background: linear-gradient(135deg, #EEF5FE 0%, var(--mint-soft) 100%); color: var(--deep-trust-blue);
  display: grid; place-items: center; margin-bottom: 16px; }
.tm-card .tm-ico svg { width: 28px; height: 28px; }
.tm-card h3 { font-size: 18px; color: var(--deep-trust-blue); margin: 0 0 8px; }
.tm-card p { font-size: 15px; color: var(--ink-soft); line-height: 1.55; margin: 0; }

/* ---------- WHO THRIVES ---------- */
.tm-who { padding: 96px 0; background: var(--bg-alt); }
.tm-who-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 64px; align-items: center; }
.tm-who-media { position: relative; }
.tm-who-media picture { display: block; }
.tm-who-media img { aspect-ratio: 4 / 3; object-position: 60% 35%; }
.tm-who-tag { position: absolute; right: -16px; bottom: -22px; z-index: 1; background: #fff; border-radius: 16px; padding: 14px 20px; max-width: 260px;
  box-shadow: 0 18px 40px -18px rgba(7,22,69,.4); border: 1px solid var(--border); }
.tm-who-tag .h2-hand-note { display: block; font-size: 26px; color: var(--deep-trust-blue); }
.tm-who-copy h2 { font-size: clamp(26px, 3vw, 38px); line-height: 1.15; color: var(--deep-trust-blue); margin: 0 0 14px; }
.tm-who-copy .lede { font-size: 17px; line-height: 1.7; color: var(--ink-soft); margin: 0 0 22px; }
.tm-who-copy .h2-check-list { grid-template-columns: 1fr 1fr; gap: 12px 22px; }
.tm-who-copy .h2-check-list li { font-size: 15.5px; color: var(--ink); }

/* ---------- OWN YOUR TERRITORY (navy band) ---------- */
.tm-own { position: relative; overflow: hidden; padding: 0; color: #fff; isolation: isolate;
  background: radial-gradient(120% 140% at 85% 0%, #1B3FA0 0%, rgba(27,63,160,0) 55%), linear-gradient(160deg, #0A1E5C 0%, var(--navy-900) 70%); }
.tm-own-inner { padding-top: 88px; padding-bottom: 88px; }
.tm-own .tm-title { color: #fff; }
.tm-own .serif-quote { font-family: var(--font-serif); font-style: italic; font-size: 21px; line-height: 1.5; color: rgba(255,255,255,.88); margin: 0; }
.tm-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.tm-stat { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 20px; padding: 26px 20px; text-align: center;
  box-shadow: 0 20px 40px -30px rgba(0,0,0,.6); backdrop-filter: blur(2px); }
.tm-stat:hover { box-shadow: 0 26px 44px -26px rgba(0,0,0,.7); border-color: rgba(47,214,176,.5); }
.tm-stat .stat-num { font-size: 26px; font-weight: 700; color: var(--mint); line-height: 1.15; margin-bottom: 6px; }
.tm-stat .stat-label { font-size: 15px; color: rgba(255,255,255,.82); }

/* ---------- FINAL CTA ---------- */
.tm-final { padding: 92px 0; background: #fff; }
.tm-final-box { display: grid; grid-template-columns: 1.1fr .9fr; border-radius: 28px; overflow: hidden; background: var(--navy-900); color: #fff;
  box-shadow: 0 30px 70px -40px rgba(7,22,69,.55); }
.tm-final-copy { padding: 52px 48px; display: flex; flex-direction: column; justify-content: center; }
.tm-final-copy h2 { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.12; color: #fff; margin: 0 0 14px; }
.tm-final-copy .lede { font-size: 17.5px; line-height: 1.6; color: rgba(255,255,255,.88); margin: 0 0 28px; }
.tm-final-media { position: relative; min-height: 360px; }
.tm-final-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; display: block; }
.tm-final-media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--navy-900) 0%, rgba(7,22,69,0) 40%); }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1020px) {
  .tm-opp-grid, .tm-stats { grid-template-columns: repeat(2, 1fr); }
  .tm-who-grid { grid-template-columns: 1fr; gap: 48px; }
  .tm-hero-note { display: none; }
  .tm-final-box { grid-template-columns: 1fr; }
  .tm-final-media { min-height: 280px; order: -1; }
  .tm-final-media::before { background: linear-gradient(0deg, var(--navy-900) 0%, rgba(7,22,69,0) 45%); }
}
@media (max-width: 760px) {
  .tm-wrap { padding: 0 16px; }
  .tm-hero::before { display: none; }
  .tm-hero-media { position: relative; inset: auto; height: 300px; z-index: 0; }
  .tm-hero-media img { object-position: 50% 30%; }
  .tm-hero-media::after { content: ""; position: absolute; inset: auto 0 0 0; height: 90px; background: linear-gradient(0deg, var(--navy-900), rgba(7,22,69,0)); }
  .tm-hero-inner { min-height: 0; padding-top: 4px; padding-bottom: 44px; }
  .tm-hero .lede { font-size: 17px; }
  .tm-ctas { flex-direction: column; }
  .tm-cta, .tm-ghost { width: 100%; text-align: center; }
  .tm-opp, .tm-who, .tm-final { padding: 64px 0; }
  .tm-opp-grid, .tm-stats { grid-template-columns: 1fr; }
  .tm-who-copy .h2-check-list { grid-template-columns: 1fr; }
  .tm-who-tag { position: relative; right: auto; bottom: auto; margin: -34px 14px 0; max-width: none; }
  .tm-own-inner { padding-top: 64px; padding-bottom: 64px; }
  .tm-final-copy { padding: 30px 22px 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .tm-cta, .tm-ghost { transition: none; }
  .tm-cta:hover, .tm-ghost:hover { transform: none; }
}
