/* ==========================================================================
   PRINS & PRINS — OUR TEAM (v5)
   Emerald hero in homepage v2 style.  One unified 4x2 grid with animated
   brass frames.  Cleaner video with a glass overlay panel.  Icon FAQ with a
   closing "ask the team" CTA card.  Buttons are exact clones of the homepage
   .btn-v2 system, scoped to body.page-team.
   ========================================================================== */

:root {
  --tm-bg:           #FFFFFF;
  --tm-ink:          #14181A;
  --tm-ink-soft:     #3F4844;
  --tm-ink-dim:      #8B948F;
  --tm-rule:         rgba(20, 24, 26, 0.08);
  --tm-emerald:      #1F3D2E;
  --tm-emerald-deep: #16301F;
  --tm-sage:         #2C5240;
  --tm-sage-mist:    #E4ECDF;
  --tm-brass:        #C9A55C;
  --tm-brass-warm:   #E8C16A;
  --tm-brass-deep:   #8C6B29;
  --tm-brass-cream:  #FFF1C4;
  --tm-brass-glow:   rgba(232, 193, 106, 0.55);
  --tm-serif:        'Cormorant Garamond', 'Georgia', serif;
  --tm-sans:         'Inter', system-ui, -apple-system, sans-serif;
}

body.page-team {
  background: var(--tm-bg) !important;
  color: var(--tm-ink);
  font-family: var(--tm-sans);
  -webkit-font-smoothing: antialiased;
}
body.page-team main { display: block; }
body.page-team .footer-seam { display: none !important; }
body.page-team .footer-seam + .footer::before { display: none !important; }

/* Shared eyebrow / rule */
.tm-eyebrow {
  display: inline-block;
  font-family: var(--tm-sans);
  font-size: 0.7rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--tm-brass-deep);
  font-weight: 600;
  margin-bottom: 14px;
}
.tm-rule {
  display: block;
  height: 1px;
  width: 60px;
  margin: 0 0 22px;
  background: linear-gradient(90deg, var(--tm-brass) 0%, rgba(201, 165, 92, 0) 100%);
}

/* ==========================================================================
   HOMEPAGE BUTTONS — exact clone of `body .hero .btn-v2` from home_v2.css.
   Scoped to .page-team so it never collides with the homepage rules.
   ========================================================================== */
body.page-team .btn-v2 {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--tm-sans);
  font-size: 0.66rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 16px 30px;
  text-decoration: none;
  line-height: 1;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: background 0.35s, border-color 0.35s, color 0.35s, box-shadow 0.45s, transform 0.35s;
  animation: tmBtnFloatV2 5.5s ease-in-out infinite;
}
body.page-team .btn-v2:nth-of-type(2) { animation-delay: 0.6s; }

body.page-team .btn-v2::before {
  content: "";
  position: absolute;
  top: -20%;
  left: -60%;
  width: 50%;
  height: 140%;
  pointer-events: none;
  transform: skewX(-22deg);
  z-index: 0;
  animation: tmBtnShineV2 5.4s cubic-bezier(0.45, 0.05, 0.25, 1) infinite;
}
body.page-team .btn-v2::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  border-radius: inherit;
}
body.page-team .btn-v2 > * { position: relative; z-index: 1; }

/* PRIMARY — white surface, emerald ink, glassy lift */
body.page-team .btn-v2-primary {
  background: #FFFFFF;
  color: var(--tm-emerald-deep);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    inset 0 -1px 0 rgba(31, 61, 46, 0.06),
    0 0 0 1px rgba(255, 255, 255, 0.0),
    0 18px 36px -16px rgba(0, 0, 0, 0.55);
}
body.page-team .btn-v2-primary::before {
  background: linear-gradient(100deg,
    rgba(31, 61, 46, 0) 0%,
    rgba(31, 61, 46, 0.06) 30%,
    rgba(31, 61, 46, 0.36) 50%,
    rgba(31, 61, 46, 0.06) 70%,
    rgba(31, 61, 46, 0) 100%);
  filter: blur(2px);
}
body.page-team .btn-v2-primary::after {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.4) 0%,
    rgba(255, 255, 255, 0) 40%,
    rgba(228, 236, 223, 0.18) 100%);
  mix-blend-mode: screen;
}
body.page-team .btn-v2-primary:hover {
  background: var(--tm-sage-mist);
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 0 0 1px rgba(188, 201, 183, 0.9),
    0 28px 48px -16px rgba(0, 0, 0, 0.6),
    0 0 32px rgba(228, 236, 223, 0.55);
}

/* GHOST — transparent surface, white border, glassy blur */
body.page-team .btn-v2-ghost {
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.03) 100%);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 14px 32px -16px rgba(0, 0, 0, 0.55);
}
body.page-team .btn-v2-ghost::before {
  background: linear-gradient(100deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.12) 30%,
    rgba(255, 255, 255, 0.85) 50%,
    rgba(255, 255, 255, 0.12) 70%,
    rgba(255, 255, 255, 0) 100%);
  filter: blur(1.5px);
  animation-delay: 0.9s;
}
body.page-team .btn-v2-ghost::after {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.12) 0%,
    rgba(255, 255, 255, 0) 50%,
    rgba(0, 0, 0, 0.06) 100%);
}
body.page-team .btn-v2-ghost:hover {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0.08) 100%);
  border-color: rgba(255, 255, 255, 0.85);
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 0 0 1px rgba(255, 255, 255, 0.18),
    0 24px 44px -16px rgba(0, 0, 0, 0.6),
    0 0 28px rgba(228, 236, 223, 0.32);
}

/* Light-ground variant of the ghost — used in the FAQ CTA card, which sits
   on the brand emerald.  Same surface treatment, lower text contrast tweak. */
body.page-team .tm-faq-cta .btn-v2-ghost {
  border: 1px solid rgba(255, 255, 255, 0.55);
  color: #FFFFFF;
}

@keyframes tmBtnShineV2 {
  0%   { left: -60%; }
  55%  { left: 130%; }
  100% { left: 130%; }
}
@keyframes tmBtnFloatV2 {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}
@media (prefers-reduced-motion: reduce) {
  body.page-team .btn-v2 { animation: none !important; }
  body.page-team .btn-v2::before { animation: none !important; display: none; }
}

/* ==========================================================================
   HERO V2 — image-led emerald hero
   ========================================================================== */
.tm-hero-v2 {
  position: relative;
  width: 100%;
  min-height: 92vh;
  overflow: hidden;
  background: var(--tm-emerald);
  isolation: isolate;
  padding-top: 76px;
}
@media (max-width: 768px) { .tm-hero-v2 { min-height: 88vh; padding-top: 64px; } }

.tm-hero-v2-picture,
.tm-hero-v2-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  z-index: 0;
}
.tm-hero-v2-img {
  object-fit: cover;
  object-position: center 28%;
  filter: contrast(1.05) saturate(1.08);
  animation: tmHeroV2In 1.6s cubic-bezier(0.22, 0.7, 0.18, 1) both;
}
@keyframes tmHeroV2In {
  from { opacity: 0; transform: scale(1.06); }
  to   { opacity: 1; transform: scale(1); }
}
.tm-hero-v2-scrim {
  position: absolute; inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(20, 24, 26, 0.55) 0%, rgba(20, 24, 26, 0.10) 35%, rgba(20, 24, 26, 0.05) 60%, rgba(20, 24, 26, 0.78) 100%),
    linear-gradient(90deg, rgba(20, 24, 26, 0.72) 0%, rgba(20, 24, 26, 0.20) 48%, rgba(20, 24, 26, 0.0) 78%);
}
/* Floating dust canvas sits ABOVE the scrim so the motes read clearly over
   the darkened photo (the team scrim is heavier than the homepage's). */
.tm-hero-v2-particles {
  position: absolute; inset: 0;
  z-index: 2;
  width: 100%; height: 100%;
  pointer-events: none;
}

.tm-hero-v2-content {
  position: absolute;
  left: 6%;
  top: 50%;
  transform: translateY(-50%);
  max-width: 600px;
  z-index: 3;
  padding-right: 12px;
}
@media (max-width: 760px) {
  .tm-hero-v2-content { left: 22px; right: 22px; max-width: none; top: auto; bottom: 8%; transform: none; padding: 0; }
}

.tm-hero-v2-eyebrow {
  display: inline-block;
  font-family: var(--tm-sans);
  font-size: 0.72rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: #FFFFFF;
  font-weight: 500;
  padding-bottom: 14px;
  margin-bottom: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.45);
}
.tm-hero-v2-h {
  font-family: var(--tm-serif);
  font-weight: 400;
  font-size: clamp(2.2rem, 4.6vw, 4.2rem);
  line-height: 1.04;
  letter-spacing: -0.014em;
  color: #FFFFFF;
  margin: 0 0 22px;
  text-shadow: 0 4px 36px rgba(0, 0, 0, 0.55);
  animation: tmHeroV2Float 6.5s ease-in-out infinite,
             tmHeroV2Flash 4.4s ease-in-out infinite;
}
.tm-hero-v2-h em {
  font-style: italic;
  color: var(--tm-brass-warm);
  font-weight: 500;
  text-shadow: 0 0 18px rgba(232, 193, 106, 0.45);
  animation: tmHeroV2EmFlash 2.6s ease-in-out infinite;
}
@keyframes tmHeroV2Float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-5px); }
}
@keyframes tmHeroV2Flash {
  0%, 100% { text-shadow: 0 4px 36px rgba(0,0,0,0.55), 0 0 0 rgba(255,255,255,0); }
  50%      { text-shadow: 0 4px 36px rgba(0,0,0,0.55), 0 0 28px rgba(255,255,255,0.55), 0 0 60px rgba(228, 236, 223, 0.32); }
}
@keyframes tmHeroV2EmFlash {
  0%, 100% { color: var(--tm-brass-warm); text-shadow: 0 4px 24px rgba(0,0,0,0.45), 0 0 0 rgba(255,241,196,0); }
  50%      { color: var(--tm-brass-cream); text-shadow: 0 4px 24px rgba(0,0,0,0.45), 0 0 22px rgba(255, 241, 196, 0.95), 0 0 48px rgba(212, 175, 110, 0.65); }
}
@media (prefers-reduced-motion: reduce) {
  .tm-hero-v2-img,
  .tm-hero-v2-h,
  .tm-hero-v2-h em { animation: none !important; }
}

.tm-hero-v2-sub {
  font-family: var(--tm-sans);
  font-size: clamp(1rem, 1.18vw, 1.18rem);
  line-height: 1.65;
  color: #FFFFFF;
  font-weight: 300;
  max-width: 540px;
  margin: 0 0 28px;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.45);
}

/* Trust pills — 2x2 grid so the panel stays narrow and never covers faces */
.tm-hero-v2-trust {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 28px;
  margin: 0 0 28px;
  padding: 18px 26px;
  background: rgba(20, 24, 26, 0.50);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  border: 1px solid rgba(232, 193, 106, 0.32);
  width: max-content;
  max-width: 100%;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.10),
    0 24px 48px -22px rgba(0, 0, 0, 0.5);
}
@media (max-width: 540px) {
  .tm-hero-v2-trust { padding: 14px 18px; gap: 10px 18px; }
}
.tm-hv2-stat {
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  line-height: 1;
}
.tm-hv2-stat strong {
  font-family: var(--tm-serif);
  font-style: italic;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  font-weight: 500;
  color: var(--tm-brass-warm);
  letter-spacing: -0.005em;
}
.tm-hv2-stat span {
  font-family: var(--tm-sans);
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.84);
  font-weight: 500;
}

.tm-hero-v2-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

/* ==========================================================================
   CREDENTIALS MARQUEE
   ========================================================================== */
.tm-credentials {
  background: var(--tm-emerald);
  color: var(--tm-brass-warm);
  padding: 28px 0;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.tm-credentials-track {
  display: flex;
  gap: 0;
  width: max-content;
  animation: tmCredScroll 36s linear infinite;
}
@media (prefers-reduced-motion: reduce) { .tm-credentials-track { animation: none; } }
@keyframes tmCredScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.tm-credentials-inner {
  display: flex;
  align-items: center;
  gap: 18px;
  padding-right: 36px;
  white-space: nowrap;
  flex-shrink: 0;
}
.tm-cred {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--tm-sans);
  font-size: 0.74rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  font-weight: 500;
}
.tm-cred-badge {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  height: 30px;
  padding: 0 11px;
  background: rgba(201, 165, 92, 0.12);
  border: 1px solid rgba(201, 165, 92, 0.55);
  color: var(--tm-brass-warm);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  font-weight: 600;
}
.tm-cred-sep {
  display: inline-block;
  width: 4px; height: 4px;
  background: rgba(201, 165, 92, 0.55);
  border-radius: 50%;
  margin: 0 6px;
  transform: rotate(45deg);
}

/* ==========================================================================
   EDITORIAL INTRO
   ========================================================================== */
.tm-intro {
  padding: clamp(72px, 9vw, 130px) clamp(24px, 4vw, 80px);
  background: var(--tm-bg);
}
.tm-intro-inner {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.tm-intro-inner .tm-rule { margin: 0 auto 26px; }
.tm-intro-inner .tm-eyebrow { margin-bottom: 18px; }
.tm-intro-lead {
  font-family: var(--tm-serif);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.1vw, 1.95rem);
  line-height: 1.42;
  color: var(--tm-ink);
  margin: 0 0 28px;
  letter-spacing: -0.004em;
}
.tm-intro-lead em {
  font-style: italic;
  color: var(--tm-emerald);
  font-weight: 500;
}
.tm-intro-tag {
  font-family: var(--tm-serif);
  font-style: italic;
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  color: var(--tm-ink-soft);
  margin: 0;
}
.tm-intro-tag em {
  color: var(--tm-brass-deep);
  font-weight: 500;
}

/* ==========================================================================
   SECTION HEADER (reusable)
   ========================================================================== */
.tm-section-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto clamp(48px, 6vw, 76px);
}
.tm-section-head .tm-rule { margin: 0 auto 22px; }
.tm-section-h {
  font-family: var(--tm-serif);
  font-weight: 400;
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 1.08;
  color: var(--tm-ink);
  margin: 0 0 14px;
  letter-spacing: -0.008em;
}
.tm-section-h em {
  font-style: italic;
  color: var(--tm-emerald);
  font-weight: 500;
}
.tm-section-sub {
  font-family: var(--tm-serif);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--tm-ink-soft);
  margin: 0;
  line-height: 1.55;
}

/* ==========================================================================
   ONE TEAM — 4x2 unified grid on a quiet wash
   ========================================================================== */
.tm-team-v2 {
  position: relative;
  padding: clamp(38px, 4.5vw, 62px) clamp(24px, 4vw, 80px) clamp(46px, 6vw, 84px);
  background:
    radial-gradient(80% 55% at 50% 0%, rgba(228, 236, 223, 0.55) 0%, rgba(255, 255, 255, 0) 62%),
    var(--tm-bg);
}
.tm-team-v2 .tm-section-head { margin-bottom: clamp(34px, 4vw, 52px); }

/* 4 columns at desktop, 2 at tablet, 1 at mobile.  All cards equal size. */
.tm-grid-v2 {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 44px);
  max-width: 1480px;
  margin: 0 auto;
  padding: 0;
}
@media (max-width: 1100px) { .tm-grid-v2 { grid-template-columns: repeat(2, 1fr); gap: 36px; } }
@media (max-width: 560px)  { .tm-grid-v2 { grid-template-columns: 1fr; gap: 30px; max-width: 420px; } }

/* ============ TEAM CARD V2 ============ */
.tm-card-v2 {
  position: relative;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(28px);
  background: linear-gradient(180deg, #FFFFFF 0%, #EEF3E9 100%);
  border: 1px solid var(--tm-rule);
  border-top: 2px solid var(--tm-brass-warm);
  box-shadow: 0 18px 40px -28px rgba(20, 24, 26, 0.32);
  transition: opacity 0.9s cubic-bezier(0.22, 0.7, 0.18, 1),
              transform 0.9s cubic-bezier(0.22, 0.7, 0.18, 1),
              box-shadow 0.5s ease,
              border-color 0.5s ease;
}
.tm-card-v2.is-in { opacity: 1; transform: translateY(0); }
.tm-card-v2:hover {
  border-color: rgba(201, 165, 92, 0.55);
  box-shadow:
    0 34px 64px -30px rgba(20, 24, 26, 0.42),
    0 0 26px rgba(232, 193, 106, 0.14);
}
.tm-card-v2--founder {
  border-top-color: var(--tm-brass-warm);
  box-shadow:
    0 22px 48px -26px rgba(20, 24, 26, 0.4),
    0 0 0 1px rgba(232, 193, 106, 0.35);
}
@media (prefers-reduced-motion: reduce) {
  .tm-card-v2 { opacity: 1; transform: none; transition: none; }
}
.tm-grid-v2 > .tm-card-v2:nth-child(1) { transition-delay: 0ms; }
.tm-grid-v2 > .tm-card-v2:nth-child(2) { transition-delay: 80ms; }
.tm-grid-v2 > .tm-card-v2:nth-child(3) { transition-delay: 160ms; }
.tm-grid-v2 > .tm-card-v2:nth-child(4) { transition-delay: 240ms; }
.tm-grid-v2 > .tm-card-v2:nth-child(5) { transition-delay: 320ms; }
.tm-grid-v2 > .tm-card-v2:nth-child(6) { transition-delay: 400ms; }
.tm-grid-v2 > .tm-card-v2:nth-child(7) { transition-delay: 480ms; }
.tm-grid-v2 > .tm-card-v2:nth-child(8) { transition-delay: 560ms; }

/* ROLE PILL — the "label button" under each member.  Emerald chip with brass
   text for the team; a solid champagne-gold chip for the founder. */
.tm-card-v2-role {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  margin: 0 0 13px;
  background: var(--tm-emerald);
  color: var(--tm-brass-warm);
  font-family: var(--tm-sans);
  font-size: 0.58rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 600;
  line-height: 1.1;
  border: 1px solid rgba(201, 165, 92, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 8px 20px -12px rgba(31, 61, 46, 0.6);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.tm-card-v2:hover .tm-card-v2-role {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 12px 24px -12px rgba(31, 61, 46, 0.7);
}
.tm-card-v2-role--founder {
  color: var(--tm-emerald-deep);
  background: radial-gradient(120% 120% at 30% 25%, #F0D58A 0%, #D4AF6E 55%, #A7811F 100%);
  border-color: rgba(140, 107, 41, 0.55);
  font-weight: 700;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -2px 6px rgba(140, 107, 41, 0.4),
    0 6px 16px -6px rgba(140, 107, 41, 0.6);
}

/* PORTRAIT FRAME — equal aspect, animated brass rails + corners */
.tm-card-v2-portrait {
  margin: 0;
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--tm-emerald);
  isolation: isolate;
  transition: box-shadow 0.5s ease;
}
.tm-card-v2-portrait picture,
.tm-card-v2-portrait img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.9s cubic-bezier(0.22, 0.7, 0.18, 1);
  position: relative;
  z-index: 0;
}
.tm-card-v2:hover .tm-card-v2-portrait img { transform: scale(1.06); }

/* Bottom photo gradient on hover */
.tm-card-v2-portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 60%, rgba(20, 24, 26, 0.28) 100%);
  opacity: 0;
  transition: opacity 0.5s ease;
}
.tm-card-v2:hover .tm-card-v2-portrait::after { opacity: 1; }

/* ANIMATED BRASS RAILS — sweep around the perimeter */
.tm-card-v2-rail {
  position: absolute;
  z-index: 5;
  pointer-events: none;
  filter: drop-shadow(0 0 6px var(--tm-brass-glow));
}
.tm-card-v2-rail--t,
.tm-card-v2-rail--b {
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    rgba(232, 193, 106, 0) 0%,
    rgba(232, 193, 106, 0.0) 35%,
    rgba(232, 193, 106, 0.95) 50%,
    rgba(232, 193, 106, 0.0) 65%,
    rgba(232, 193, 106, 0) 100%);
  background-size: 220% 100%;
}
.tm-card-v2-rail--l,
.tm-card-v2-rail--r {
  top: 0; bottom: 0;
  width: 1px;
  background: linear-gradient(180deg,
    rgba(232, 193, 106, 0) 0%,
    rgba(232, 193, 106, 0.0) 35%,
    rgba(232, 193, 106, 0.95) 50%,
    rgba(232, 193, 106, 0.0) 65%,
    rgba(232, 193, 106, 0) 100%);
  background-size: 100% 220%;
}
.tm-card-v2-rail--t { top: 0;    animation: tmRailSweepH  5.6s linear infinite; }
.tm-card-v2-rail--r { right: 0;  animation: tmRailSweepV  5.6s linear infinite 1.4s; }
.tm-card-v2-rail--b { bottom: 0; animation: tmRailSweepHR 5.6s linear infinite 2.8s; }
.tm-card-v2-rail--l { left: 0;   animation: tmRailSweepVR 5.6s linear infinite 4.2s; }
@keyframes tmRailSweepH  { from { background-position: -100% 0; } to { background-position: 200% 0; } }
@keyframes tmRailSweepHR { from { background-position: 200% 0; }  to { background-position: -100% 0; } }
@keyframes tmRailSweepV  { from { background-position: 0 -100%; } to { background-position: 0 200%; } }
@keyframes tmRailSweepVR { from { background-position: 0 200%; }  to { background-position: 0 -100%; } }
@media (prefers-reduced-motion: reduce) {
  .tm-card-v2-rail { animation: none !important; background-position: 50% 50% !important; opacity: 0.45; }
}

/* BRASS CORNERS — bloom on hover, gentle pulse always */
.tm-card-v2-corner {
  position: absolute;
  width: 26px; height: 26px;
  z-index: 6;
  pointer-events: none;
  transition: width 0.5s cubic-bezier(0.22, 0.7, 0.18, 1),
              height 0.5s cubic-bezier(0.22, 0.7, 0.18, 1);
}
.tm-card-v2-corner::before,
.tm-card-v2-corner::after {
  content: '';
  position: absolute;
  background: var(--tm-brass-warm);
  box-shadow: 0 0 8px rgba(232, 193, 106, 0.55);
  transition: background 0.4s ease;
  animation: tmCornerPulse 3.6s ease-in-out infinite;
}
.tm-card-v2-corner::before { width: 100%; height: 1px; }
.tm-card-v2-corner::after  { width: 1px;  height: 100%; }
.tm-card-v2-corner--tl { top: -1px;    left: -1px; }
.tm-card-v2-corner--tr { top: -1px;    right: -1px; }
.tm-card-v2-corner--tr::before { right: 0; }
.tm-card-v2-corner--tr::after  { right: 0; }
.tm-card-v2-corner--bl { bottom: -1px; left: -1px; }
.tm-card-v2-corner--bl::before { bottom: 0; }
.tm-card-v2-corner--bl::after  { bottom: 0; }
.tm-card-v2-corner--br { bottom: -1px; right: -1px; }
.tm-card-v2-corner--br::before { bottom: 0; right: 0; }
.tm-card-v2-corner--br::after  { bottom: 0; right: 0; }
.tm-card-v2:hover .tm-card-v2-corner { width: 38px; height: 38px; }
.tm-card-v2:hover .tm-card-v2-corner::before,
.tm-card-v2:hover .tm-card-v2-corner::after {
  background: var(--tm-brass-cream);
  box-shadow: 0 0 14px rgba(255, 241, 196, 0.85);
}
@keyframes tmCornerPulse {
  0%, 100% { opacity: 0.75; }
  50%      { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .tm-card-v2-corner::before,
  .tm-card-v2-corner::after { animation: none !important; }
}

/* CARD BODY — clean typographic stack */
.tm-card-v2-body {
  padding: 22px 22px 26px;
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
  background: #FFFFFF;
}
.tm-card-v2-name {
  font-family: var(--tm-serif);
  font-weight: 500;
  font-size: clamp(1.42rem, 1.8vw, 1.72rem);
  line-height: 1.08;
  color: #0E1416;
  margin: 0 0 8px;
  letter-spacing: -0.008em;
}
.tm-card-v2-credentials {
  font-family: var(--tm-sans);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #5C6660;
  font-weight: 600;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(20, 24, 26, 0.12);
}
.tm-card-v2-teaser {
  font-family: var(--tm-sans);
  font-size: 0.89rem;
  line-height: 1.65;
  color: #2B332F;
  margin: 0;
}
.tm-card-v2-rest {
  font-family: var(--tm-sans);
  font-size: 0.89rem;
  line-height: 1.72;
  color: #2B332F;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  margin: 0;
  transition: max-height 0.55s cubic-bezier(0.22, 0.7, 0.18, 1), opacity 0.35s ease, margin 0.35s ease;
}
.tm-card-v2-rest[hidden] { display: block !important; }
.tm-card-v2-rest.is-open {
  max-height: 1000px;
  opacity: 1;
  margin: 12px 0 0;
}
.tm-card-v2-rest p { margin: 0 0 12px; }
.tm-card-v2-rest p:last-child { margin-bottom: 0; }
.tm-card-v2-quote {
  font-family: var(--tm-serif);
  font-style: italic;
  font-size: 0.98rem;
  color: var(--tm-emerald);
  border-left: 2px solid var(--tm-brass);
  padding-left: 14px;
  margin-top: 12px;
}

.tm-card-v2-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
  margin-top: 14px;
}

.tm-card-v2-link {
  font-family: var(--tm-sans);
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--tm-ink);
  text-decoration: none;
  font-weight: 600;
  border-bottom: 1px solid var(--tm-brass);
  padding-bottom: 3px;
  transition: color 0.2s, border-color 0.2s;
}
.tm-card-v2-link:hover { color: var(--tm-brass-deep); border-color: var(--tm-brass-deep); }

/* READ MORE / LESS */
.tm-readmore {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  font-family: var(--tm-sans);
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--tm-brass-deep);
  font-weight: 600;
  transition: color 0.2s;
}
.tm-readmore:hover { color: var(--tm-ink); }
.tm-readmore svg { transition: transform 0.3s; color: var(--tm-brass); }
.tm-readmore[aria-expanded="true"] svg { transform: rotate(180deg); color: var(--tm-ink); }
.tm-readmore .tm-readmore-less { display: none; }
.tm-readmore[aria-expanded="true"] .tm-readmore-more { display: none; }
.tm-readmore[aria-expanded="true"] .tm-readmore-less { display: inline; }

/* ==========================================================================
   ATELIER VIDEO BAND — clear video, glass overlay panel for text
   ========================================================================== */
.tm-atelier {
  background: var(--tm-bg);
  border-top: 1px solid var(--tm-rule);
}
.tm-atelier-video-wrap {
  position: relative;
  width: 100%;
  height: clamp(460px, 78vh, 780px);
  overflow: hidden;
  background: var(--tm-emerald);
}
.tm-atelier-video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  /* Lighter touch — keep the cinematography visible, no flat black */
  filter: brightness(1.02) saturate(1.06) contrast(1.04);
}
.tm-atelier-scrim {
  position: absolute; inset: 0;
  z-index: 1;
  /* Minimal scrim — a soft bottom-left vignette only.  Keeps the video clear. */
  background:
    radial-gradient(70% 60% at 22% 56%, rgba(20, 24, 26, 0.55) 0%, rgba(20, 24, 26, 0) 65%),
    linear-gradient(180deg, rgba(20, 24, 26, 0.10) 0%, rgba(20, 24, 26, 0) 30%, rgba(20, 24, 26, 0.0) 70%, rgba(20, 24, 26, 0.25) 100%);
}
.tm-atelier-overlay {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin: 0 auto;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(40px, 6vw, 100px);
}
/* Glass card panel — text sits on a defined surface, no floating-on-video */
.tm-atelier-panel {
  position: relative;
  max-width: 560px;
  padding: clamp(32px, 4vw, 48px) clamp(28px, 3.5vw, 44px);
  color: #FFFFFF;
  background: rgba(20, 24, 26, 0.52);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid rgba(232, 193, 106, 0.34);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.10),
    0 36px 72px -32px rgba(0, 0, 0, 0.6);
}
.tm-atelier-eyebrow {
  display: inline-block;
  font-family: var(--tm-sans);
  font-size: 0.66rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--tm-brass-warm);
  font-weight: 600;
  margin-bottom: 14px;
}
.tm-atelier-rule {
  display: block;
  height: 1px;
  width: 60px;
  margin: 0 0 22px;
  background: linear-gradient(90deg, var(--tm-brass-warm) 0%, rgba(232, 193, 106, 0) 100%);
}
.tm-atelier-h {
  font-family: var(--tm-serif);
  font-weight: 400;
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  line-height: 1.06;
  color: #FFFFFF;
  margin: 0 0 18px;
  letter-spacing: -0.008em;
}
.tm-atelier-h em {
  font-style: italic;
  color: var(--tm-brass-warm);
  font-weight: 500;
  text-shadow: 0 0 18px rgba(232, 193, 106, 0.4);
}
.tm-atelier-sub {
  font-family: var(--tm-sans);
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  font-weight: 300;
  color: rgba(255, 255, 255, 0.92);
  margin: 0 0 30px;
  line-height: 1.6;
}
.tm-atelier-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

/* ==========================================================================
   FAQ — icon-led grid, twelve questions, closing CTA card
   ========================================================================== */
.tm-faq {
  position: relative;
  padding: clamp(56px, 7vw, 92px) clamp(24px, 4vw, 80px) 0;
  background:
    radial-gradient(120% 75% at 50% 0%, rgba(44, 82, 64, 0.85) 0%, rgba(31, 61, 46, 0) 58%),
    linear-gradient(180deg, var(--tm-emerald) 0%, var(--tm-emerald-deep) 100%);
}
/* Section header inverts to light on the emerald ground */
.tm-faq .tm-eyebrow { color: var(--tm-brass-warm); }
.tm-faq .tm-section-h { color: #FFFFFF; }
.tm-faq .tm-section-h em { color: var(--tm-brass-warm); }
.tm-faq .tm-section-sub { color: rgba(255, 255, 255, 0.72); }
.tm-faq .tm-rule { background: linear-gradient(90deg, var(--tm-brass-warm) 0%, rgba(232, 193, 106, 0) 100%); }

.tm-faq-grid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 24px;
}
@media (max-width: 820px) { .tm-faq-grid { grid-template-columns: 1fr; gap: 12px; } }

.tm-faq-item {
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(232, 193, 106, 0.22);
  backdrop-filter: blur(2px);
  transition: border-color 0.3s ease, box-shadow 0.4s ease, background 0.3s ease, transform 0.3s ease;
}
.tm-faq-item:hover {
  border-color: rgba(232, 193, 106, 0.5);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: 0 20px 44px -24px rgba(0, 0, 0, 0.55);
  transform: translateY(-1px);
}
.tm-faq-item[open] {
  border-color: rgba(232, 193, 106, 0.62);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: 0 22px 48px -24px rgba(0, 0, 0, 0.6);
}
.tm-faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 21px 22px;
  display: grid;
  grid-template-columns: 46px 1fr 28px;
  align-items: center;
  gap: 16px;
  font-family: var(--tm-serif);
  font-weight: 400;
  font-size: clamp(1.02rem, 1.2vw, 1.16rem);
  line-height: 1.4;
  color: #FFFFFF;
  transition: color 0.2s;
}
.tm-faq-item summary::-webkit-details-marker { display: none; }
.tm-faq-item summary:hover { color: var(--tm-brass-cream); }

/* SOLID CHAMPAGNE-GOLD DISC ICON — mirrors the homepage atelier step badges */
.tm-faq-icon {
  display: inline-grid;
  place-items: center;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: radial-gradient(120% 120% at 30% 25%, #F0D58A 0%, #D4AF6E 55%, #A7811F 100%);
  color: #FFFFFF;
  border: 1px solid rgba(140, 107, 41, 0.55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -2px 6px rgba(140, 107, 41, 0.45),
    0 6px 14px -6px rgba(140, 107, 41, 0.55);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.tm-faq-icon svg { width: 22px; height: 22px; display: block; }
.tm-faq-item:hover .tm-faq-icon,
.tm-faq-item[open] .tm-faq-icon {
  transform: rotate(-4deg) scale(1.06);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    0 8px 20px -6px rgba(140, 107, 41, 0.7),
    0 0 18px rgba(232, 193, 106, 0.45);
}
.tm-faq-item[open] .tm-faq-icon { transform: rotate(0) scale(1.06); }
.tm-faq-q { display: block; }

/* Plus / minus toggle, brass on the dark ground */
.tm-faq-toggle {
  position: relative;
  width: 28px; height: 28px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(232, 193, 106, 0.4);
  border-radius: 50%;
  transition: background 0.3s ease, border-color 0.3s ease;
}
.tm-faq-tline {
  position: absolute;
  background: var(--tm-brass-warm);
  transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s ease;
}
.tm-faq-tline--h { width: 11px; height: 1.5px; }
.tm-faq-tline--v { width: 1.5px; height: 11px; }
.tm-faq-item[open] .tm-faq-toggle {
  background: var(--tm-brass-warm);
  border-color: var(--tm-brass-warm);
}
.tm-faq-item[open] .tm-faq-tline { background: var(--tm-emerald-deep); }
.tm-faq-item[open] .tm-faq-tline--v { transform: scaleY(0); opacity: 0; }

.tm-faq-body {
  font-family: var(--tm-sans);
  font-size: 0.92rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.78);
  padding: 0 22px 24px 84px;
}
@media (max-width: 540px) {
  .tm-faq-body { padding: 0 18px 22px 18px; }
  .tm-faq-item summary { grid-template-columns: 40px 1fr 26px; gap: 12px; padding: 18px; }
  .tm-faq-icon { width: 40px; height: 40px; }
  .tm-faq-icon svg { width: 19px; height: 19px; }
}
.tm-faq-body p { margin: 0; }

/* FAQ CLOSING CTA — full-bleed emerald band, content reads left to right,
   flowing straight into the footer below. */
.tm-faq-cta {
  margin: clamp(48px, 6vw, 78px) calc(-1 * clamp(24px, 4vw, 80px)) 0;
  max-width: none;
  background:
    radial-gradient(70% 120% at 0% 0%, rgba(232, 193, 106, 0.16) 0%, rgba(232, 193, 106, 0) 55%),
    linear-gradient(180deg, var(--tm-emerald) 0%, var(--tm-emerald-deep) 100%);
  color: #FFFFFF;
  position: relative;
  overflow: hidden;
  border: 0;
  border-top: 0;
  box-shadow: none;
}
.tm-faq-cta-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(44px, 5.5vw, 76px) clamp(24px, 4vw, 80px);
  text-align: left;
}
@media (max-width: 820px) {
  .tm-faq-cta-inner { grid-template-columns: 1fr; gap: 26px; text-align: left; }
}

/* GOLDEN LED SEAM — glowing brass strip that connects the CTA band into the
   footer.  Full-bleed, gentle breathing pulse, centre diamond node. */
.tm-led-seam {
  position: relative;
  height: 2px;
  margin: 0 calc(-1 * clamp(24px, 4vw, 80px));
  background: linear-gradient(90deg,
    rgba(232, 193, 106, 0) 0%,
    rgba(232, 193, 106, 0.85) 22%,
    #FFF1C4 50%,
    rgba(232, 193, 106, 0.85) 78%,
    rgba(232, 193, 106, 0) 100%);
  animation: tmLedPulse 3.8s ease-in-out infinite;
}
.tm-led-seam::before {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  width: 9px; height: 9px;
  transform: translate(-50%, -50%) rotate(45deg);
  background: #FFF1C4;
  box-shadow: 0 0 14px rgba(232, 193, 106, 0.9);
}
/* Same beam, pulled to the very top edge of the FAQ so it sits exactly on the
   white-team / green-FAQ seam and connects the two sections. */
.tm-led-seam--top {
  margin-top: calc(-1 * clamp(56px, 7vw, 92px));
  margin-bottom: clamp(44px, 5.5vw, 74px);
}
@keyframes tmLedPulse {
  0%, 100% { box-shadow: 0 0 14px rgba(232, 193, 106, 0.55), 0 0 34px rgba(232, 193, 106, 0.22); }
  50%      { box-shadow: 0 0 22px rgba(232, 193, 106, 0.95), 0 0 52px rgba(232, 193, 106, 0.45); }
}
@media (prefers-reduced-motion: reduce) {
  .tm-led-seam { animation: none; box-shadow: 0 0 18px rgba(232, 193, 106, 0.6); }
}
.tm-faq-cta-eyebrow {
  display: inline-block;
  font-family: var(--tm-sans);
  font-size: 0.66rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--tm-brass-warm);
  font-weight: 600;
  margin-bottom: 14px;
}
.tm-faq-cta-h {
  font-family: var(--tm-serif);
  font-weight: 400;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.08;
  color: #FFFFFF;
  margin: 0 0 14px;
  letter-spacing: -0.008em;
}
.tm-faq-cta-h em {
  font-style: italic;
  color: var(--tm-brass-warm);
  font-weight: 500;
}
.tm-faq-cta-p {
  font-family: var(--tm-sans);
  font-size: 1rem;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.86);
  margin: 0;
  line-height: 1.6;
  max-width: 540px;
}
@media (max-width: 820px) {
  .tm-faq-cta-p { margin: 0 auto; }
}
.tm-faq-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: flex-end;
}
@media (max-width: 820px) {
  .tm-faq-cta-actions { justify-content: center; }
}

/* ==========================================================================
   MOBILE TUNING
   ========================================================================== */
@media (max-width: 720px) {
  .tm-hero-v2-h { font-size: clamp(2rem, 8.5vw, 2.8rem); }
  .tm-hero-v2-sub { font-size: 1rem; line-height: 1.6; }
  .tm-section-h { font-size: clamp(1.75rem, 7vw, 2.2rem); }
  .tm-atelier-video-wrap { height: clamp(420px, 70vh, 600px); }
  .tm-atelier-overlay { padding: 32px 22px; align-items: stretch; }
  .tm-atelier-panel { max-width: none; }
  .tm-card-v2-body { padding-top: 20px; }
  .tm-card-v2-corner { width: 20px; height: 20px; }
  .tm-card-v2:hover .tm-card-v2-corner { width: 28px; height: 28px; }
  body.page-team .btn-v2 { padding: 14px 24px; font-size: 0.62rem; letter-spacing: 0.22em; }
}

/* === MOBILE POLISH MANAGED: team-hero-mobile === */
@media (max-width: 600px){
  body .tm-hero-v2 .tm-hero-v2-scrim{
    background: linear-gradient(180deg, rgba(8,14,10,.45) 0%, rgba(8,14,10,.35) 35%, rgba(8,14,10,.82) 100%) !important; }
  body .tm-hero-v2 .tm-hero-v2-h{ color:#fff !important; font-size:clamp(2rem,8.4vw,2.5rem) !important;
    text-shadow:0 2px 18px rgba(0,0,0,.9) !important; }
  body .tm-hero-v2 .tm-hero-v2-sub{ color:#fff !important; font-size:.95rem !important; line-height:1.5 !important;
    text-shadow:0 1px 10px rgba(0,0,0,.85) !important; }
  body .tm-hero-v2 .tm-hero-v2-eyebrow{ color:#fff !important; text-shadow:0 1px 8px rgba(0,0,0,.8) !important; font-size:.58rem !important; }
  body .tm-hero-v2 .tm-hero-v2-trust{ background:rgba(8,14,10,.5) !important; backdrop-filter:blur(3px) !important;
    border-color:rgba(255,255,255,.22) !important; }
  body .tm-hero-v2 .tm-hv2-stat{ font-size:.62rem !important; }
}
/* === END MOBILE POLISH: team-hero-mobile === */
