/*
Theme Name: Tovalign v1
Theme URI: https://tovalign.com
Author: Tovalign
Description: Custom responsive Tovalign marketing theme (install as a separate theme from “Tovalign”).
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tovalign
*/

:root {
  --tv-pearl: #f3f3f3;
  --tv-offwhite: #fffcf3;
  --tv-cream: #f8f4e8;
  --tv-dark: #151515;
  --Charcoal-Black: #151515;
  --tv-black: #141414;
  --tv-graphite: #424243;
  --tv-gold: #d9b451;
  --tv-border: #cccccc;
  /* Figma / SDS — footer top rule (node 79:2048) */
  --sds-size-stroke-border: 1px;
  /* Fixed header: smooth anchor scroll + scroll-margin targets land below the bar */
  --tv-header-scroll-pad: 80px;
  /* Primary pill buttons (Figma 59:582): default / hover / pressed */
  --tv-btn-bg: var(--tv-dark);
  --tv-btn-bg-hover: var(--tv-graphite);
  --tv-btn-bg-active: var(--tv-gold);
  --tv-btn-t: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.12s ease;
  /* Centered white tick for .tv-partner-checkbox (front page, contact, partner) */
  --tv-checkbox-check-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1.5 5.2L5.3 8.9l7.2-7.5'/%3E%3C/svg%3E");

  /*
   * Home landing hero overlay: #151515 fully transparent → opaque, but only in the bottom half (Figma —
   * top half of hero stays clear; tint/scrim ramps from midpoint downward).
   * Tweak `--tv-hero-overlay-begin` (e.g. 45%–55%) to slide where the ramp starts.
   */
  --tv-hero-overlay-begin: 50%;
  --tv-hero-overlay: linear-gradient(
    180deg,
    rgba(21, 21, 21, 0) var(--tv-hero-overlay-begin),
    rgb(21, 21, 21) 100%
  );
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

/* Softer in-page scroll (e.g. #contact); no effect on raw wheel / trackpad physics */
html {
  scroll-padding-top: var(--tv-header-scroll-pad);
}

/* Logged-in WP toolbar adds height so anchors clear both bars (fallback when Lenis is off) */
html:has(body.admin-bar) {
  scroll-padding-top: calc(var(--tv-header-scroll-pad) + 32px);
}

body {
  margin: 0;
  color: var(--tv-black);
  background: var(--tv-offwhite);
  font: 400 16px/1.5 "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
}

a {
  color: inherit;
  text-decoration: none;
}

.tv-container {
  width: calc(100% - 64px);
  margin: 0 auto;
}

.tv-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9990;
  width: 100%;
  border-bottom: 1px solid #e5e5e5;
  background-color: #fff;
  box-shadow: 0 1px 0 rgba(12, 12, 13, 0.04);
  transition: background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

body.admin-bar .tv-header {
  top: 32px;
}

.tv-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 16px 32px;
  color: #151515;
  box-sizing: border-box;
}

.tv-brand img {
  display: block;
  width: 87px;
  height: 14px;
}

.tv-nav {
  display: flex;
  align-items: center;
  gap: 60px;
  font: 500 14px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.28px;
}

.tv-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 2px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  cursor: pointer;
  color: inherit;
  transition: background-color 0.15s ease, opacity 0.12s ease, transform 0.12s ease;
}

.tv-menu-toggle:hover {
  background: rgba(0, 0, 0, 0.08);
}

.tv-menu-toggle:active {
  background: rgba(0, 0, 0, 0.14);
  transform: scale(0.96);
}

.tv-menu-toggle span {
  display: block;
  width: 18px;
  height: 1.5px;
  margin: 2.5px 0;
  background: currentColor;
}

.tv-btn img {
  transform: rotate(270deg);
}

.tv-inner-nav a,
.tv-about-nav a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.tv-inner-nav a.is-active,
.tv-about-nav a.is-active {
  font-weight: 700;
}

.tv-about-menu-toggle img,
.tv-products-menu-toggle img {
  display: block;
  width: 24px;
  height: 24px;
}

.tv-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 144 / 89;
  background-color: var(--tv-dark);
  background-image: var(--tv-hero-overlay), var(--tv-hero-bg);
  background-size: 100% 100%, cover;
  background-position:
    0 0,
    68% 50%;
  background-repeat: no-repeat;
  color: var(--tv-pearl);
}

.tv-hero__copy {
  position: absolute;
  left: 84px;
  bottom: clamp(56px, 8vh, 112px);
  top: auto;
  display: flex;
  width: 514px;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.tv-hero__title {
  font: 600 56px/1.2 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -1.12px;
  margin: 0;
  max-width: 100%;
}

.tv-hero__subtitle {
  margin: 0;
  max-width: 100%;
  font: 500 16px/1.6 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.32px;
}

.tv-about {
  padding: 100px 0 81px;
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 48px;
}

@media (min-width: 981px) {
  /* Figma 79:1934 — row at top 990px on 1440 frame (hero 890px → 100px gap); px-[32px] inset; gap 48px */
  .tv-about.tv-container {
    width: 100%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }

  .tv-about {
    padding: 100px 32px 30px;
    align-items: start;
  }

  .tv-about p {
    max-width: 912px;
    color: #424243;
    font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
    letter-spacing: 0;
  }

  /* Figma 79:2120 — buffer below copy; 30px padding to ticker */
  .tv-about::after {
    content: "";
    display: block;
    grid-column: 1 / -1;
    height: 180px;
  }

  /* Figma 79:2131 — before/after pair: lift + shift left vs prior dev crop */
  .tv-cases__images {
    margin-top: -118px;
    margin-left: -14px;
  }

  .tv-cases__images .tv-case__image {
    transform: translate(-1.5%, -2.5%);
  }
}

.tv-about h2 {
  margin: 0;
  color: #afafaf;
  font: 600 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  white-space: nowrap;
}

.tv-section-title {
  margin: 0;
  color: var(--tv-black);
  font: 400 32px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-about p {
  margin: 0;
  max-width: 912px;
  color: #767676;
  font: 400 14px/1.3 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.14px;
  white-space: normal;
}

.tv-ticker {
  background: var(--tv-dark);
  color: var(--tv-pearl);
  padding: 10px 0;
  font: 400 16px/1.2 "Gill Sans", "Gill Sans MT", sans-serif;
  letter-spacing: 0;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
}

/* Two .tv-ticker__sequence blocks are pixel-identical; -50% = one full cycle for a seamless loop */
.tv-ticker__track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: tv-scroll 40s linear infinite;
}

.tv-ticker__sequence {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  gap: 30px;
}

@keyframes tv-scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tv-ticker__track,
  .tv-partner-ticker__track {
    animation: none;
    transform: none;
  }

  .tv-btn,
  .tv-partner-pill,
  .tv-partner-submit,
  .tv-pf__cta,
  .tv-pf__picker-thumb,
  .tv-pf__picker.is-thumb-ready .tv-pf__picker-thumb,
  .tv-pf__picker.is-thumb-animated .tv-pf__picker-thumb,
  .tv-pf__pill,
  .tv-menu-toggle,
  .tv-tabs__tab,
  .tv-contact-tab,
  .tv-contact-detail-card,
  .tv-products-faq__trigger,
  .tv-partner-accordion__trigger {
    transition: none;
  }
}

.tv-showcase {
  min-height: 699px;
  background: var(--tv-product-bg) center/cover no-repeat;
}

.tv-product {
  padding: 32px 0 64px;
  border-bottom: 1px solid var(--tv-border);
}

.tv-product__grid {
  display: grid;
  grid-template-columns: 1fr 680px;
  gap: 32px;
  align-items: flex-start;
}

.tv-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 32px;
  border-radius: 99px;
  border: 0.5px solid var(--tv-pearl);
  background: var(--tv-btn-bg);
  color: var(--tv-pearl);
  font: 600 14px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.28px;
  line-height: 1;
  padding: 4px 20px;
  cursor: pointer;
  text-decoration: none;
  box-shadow:
    0 1px 4px 0 rgba(12, 12, 13, 0.1),
    0 1px 4px 0 rgba(12, 12, 13, 0.05);
  transition: var(--tv-btn-t);
}

.tv-btn:hover {
  background: var(--tv-btn-bg-hover);
  color: var(--tv-pearl);
}

.tv-btn:active {
  background: var(--tv-btn-bg-active);
  color: var(--tv-pearl);
}

.tv-btn:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

.tv-product h3 {
  margin: 0 0 32px;
  font: 600 28px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.56px;
}

.tv-product p {
  margin: 0;
  color: #525252;
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-works {
  padding: 84px 0 112px;
}

.tv-works__top {
  background: var(--tv-gold);
  border: 1px solid rgba(204, 204, 204, 0.3);
  border-radius: 24px 24px 0 0;
  padding: 20px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0;
}

.tv-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-radius: 0 0 24px 24px;
  overflow: hidden;
  box-shadow:
    0 1px 4px 0 rgba(12, 12, 13, 0.1),
    0 1px 4px 0 rgba(12, 12, 13, 0.05);
}

.tv-card {
  background: var(--tv-offwhite);
  border: 1px solid var(--tv-border);
  border-right: 0;
  padding: 56px 32px;
}

.tv-card:last-child {
  border-right: 1px solid var(--tv-border);
}

.tv-card__icon {
  width: 40px;
  height: 40px;
  margin-bottom: 28px;
}

.tv-card h4 {
  margin: 0 0 14px;
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-card p {
  margin: 0;
  color: #525252;
  font-size: 18px;
}

.tv-cases {
  position: relative;
  z-index: 1;
  background: transparent;
  color: var(--tv-pearl);
  padding: 46px 0 32px;
}

/* Full-bleed black; content width stays controlled by .tv-container inside .tv-cases__inner */
.tv-cases::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 0;
  right: 0;
  top: 46px;
  bottom: 32px;
  background: #151515;
  pointer-events: none;
}

.tv-cases__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 444px;
  align-items: start;
  gap: 32px;
  min-height: 430px;
  padding: 32px;
  overflow: visible;
}

.tv-cases__images {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  min-width: 0;
  /* Stronger lift so photos overlap cream + top of charcoal band (match Figma spill) */
  margin-top: -100px;
  margin-bottom: 0;
  align-self: end;
  align-items: start;
}

.tv-case {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: transparent;
  line-height: 0;
}

.tv-case__image {
  display: block;
  width: 100%;
  height: auto;
}

.tv-cases__content {
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  max-width: 444px;
  align-self: center;
}

.tv-cases__content h2 {
  margin: 0;
  font: 600 28px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.56px;
  color: #fff;
}

.tv-cases__content p {
  margin: 0;
  font-family: "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 300;
  font-synthesis: none;
  color: rgba(243, 243, 243, 0.92);
}

/* Figma Home (node 1:1285, Frame 308 → Frame 283): 88px between testimonials block and contact */
.tv-testimonials {
  padding: 40px 0 88px;
  background: transparent;
}

.tv-testimonials .tv-section-title {
  font: 600 28px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.56px;
}

.tv-testimonial-grid {
  margin-top: 32px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.tv-testimonial {
  background: #fff;
  border: 1px solid #cdcdcd;
  border-radius: 4px;
  padding: 24px;
}

.tv-testimonial__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.tv-testimonial__person {
  display: flex;
  align-items: center;
  gap: 16px;
}

.tv-testimonial__avatar {
  width: 55px;
  height: 55px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.tv-testimonial__source {
  width: 35px;
  height: 35px;
  object-fit: cover;
  flex-shrink: 0;
}

.tv-testimonial h5 {
  margin: 0 0 10px;
  font: 600 16px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.32px;
}

.tv-date {
  color: #424243;
  font: 500 13px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.26px;
}

.tv-stars {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 24px;
}

.tv-stars img {
  width: 24px;
  height: 24px;
}

.tv-testimonial p {
  margin: 0;
  color: #151515;
  font: 400 16px/1.4 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.32px;
}

.tv-contact {
  background: #111216;
  color: var(--tv-pearl);
  padding: 98px 0;
  border-bottom: 1px solid var(--tv-pearl);
}

.tv-contact__lead {
  max-width: 1070px;
  margin: 0 auto 56px;
  padding: 0 64px;
  text-align: left;
}

.tv-contact__lead h2 {
  margin: 0 0 16px;
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-contact__lead p {
  margin: 0;
  color: var(--tv-pearl);
  font-size: 16px;
}

.tv-form-wrap {
  max-width: 1070px;
  margin: 0 auto;
  background: var(--tv-cream);
  color: var(--tv-black);
  padding: 48px 64px 64px;
  box-shadow:
    0 4px 4px -1px rgba(12, 12, 13, 0.05),
    0 4px 4px -1px rgba(12, 12, 13, 0.1);
}

.tv-tabs {
  display: flex;
  gap: 48px;
  margin-bottom: 42px;
  font: 500 16px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.32px;
}

.tv-tabs .is-active {
  border-bottom: 2px solid #202020;
  padding-bottom: 10px;
  font-weight: 700;
}

.tv-form-section-title {
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--tv-graphite);
}

.tv-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 32px;
  margin-bottom: 16px;
}

.tv-form-grid input,
.tv-form-grid textarea,
.tv-form-grid select {
  width: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  border-bottom: 0.5px solid var(--tv-graphite);
  background: transparent;
  padding: 16px 10px;
  font: 400 16px/1.5 "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
  color: #000;
  box-shadow: none;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

/* Match Contact / partner underline fields: bold underline on focus, no box ring */
.tv-form-grid input:focus,
.tv-form-grid input:focus-visible,
.tv-form-grid textarea:focus,
.tv-form-grid textarea:focus-visible,
.tv-form-grid select:focus,
.tv-form-grid select:focus-visible {
  border-bottom: 2px solid var(--tv-graphite);
  outline: none;
  box-shadow: none;
}

.tv-form-grid textarea {
  min-height: 90px;
  resize: vertical;
}

.tv-form-grid--single {
  grid-template-columns: 1fr;
  margin-bottom: 12px;
}

.tv-full {
  grid-column: 1 / -1;
}

.tv-label {
  margin: 4px 0 0;
  font: 600 16px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-radio-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: -2px 0 4px;
}

.tv-radio-row label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
}

.tv-radio-row input {
  appearance: none;
  width: 12px;
  height: 12px;
  border: 1px solid var(--tv-black);
  border-radius: 50%;
  margin: 0;
  padding: 0;
  background: transparent;
}

.tv-radio-row input:checked {
  background: radial-gradient(circle, var(--tv-black) 45%, transparent 50%);
}

.tv-form-wrap .tv-partner-checkbox {
  margin: 22px 0;
}

.tv-tabs[role="tablist"] {
  flex-wrap: wrap;
}

.tv-tabs__tab {
  margin: 0;
  padding: 0 0 10px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  cursor: pointer;
  border-radius: 2px 2px 0 0;
  transition: var(--tv-btn-t);
}

.tv-tabs__tab:not(.is-active) {
  font-weight: 500;
}

.tv-tabs__tab:hover:not(.is-active) {
  color: var(--tv-graphite);
}

.tv-tabs__tab:active:not([aria-disabled="true"]) {
  opacity: 0.75;
  transform: translateY(1px);
}

.tv-tabs__tab:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

.tv-form-wrap .tv-partner-form {
  gap: 48px;
}

.tv-form-wrap .tv-partner-form__sections {
  gap: 40px;
}

.tv-form-wrap .tv-partner-form-field--textarea {
  align-items: flex-start;
  min-height: 72px;
  padding-top: 12px;
  padding-bottom: 12px;
}

.tv-form-wrap .tv-partner-form-field--textarea .tv-partner-form-field__control {
  min-height: 64px;
  resize: vertical;
  line-height: 1.5;
}

.tv-home-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 28px;
  align-items: start;
  width: 100%;
}

.tv-form-wrap .tv-home-checklist .tv-partner-checkbox {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  width: 100%;
}

.tv-home-partnership-question.is-invalid .tv-home-checklist {
  outline: 2px solid #bf1518;
  outline-offset: 4px;
  border-radius: 2px;
}

.tv-form-wrap .tv-partner-radio-group--home-wrap {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 10px 16px;
  max-width: 100%;
}

.tv-partner-form-field--choice.is-invalid {
  border-bottom: 2px solid #bf1518;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Charcoal band + green top rule — Figma footer (Charcoal-Black / SDS stroke) */
.tv-footer {
  background: var(--Charcoal-Black);
  border-top: var(--sds-size-stroke-border) solid rgba(75, 118, 47, 0.3);
  color: var(--tv-pearl);
  padding: 52px 0 58px;
}

.tv-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 40px;
}

.tv-footer h4 {
  margin: 0 0 16px;
  font-size: 14px;
  color: rgba(243, 243, 243, 0.75);
  font-weight: 500;
}

.tv-footer p,
.tv-footer li,
.tv-footer a {
  margin: 0;
  font-size: 12px;
  color: rgba(243, 243, 243, 0.9);
}

.tv-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}

.tv-footer--about {
  padding: 48px 32px 91px 72px;
}

.tv-footer--products {
  padding: 48px 32px 91px 72px;
  min-height: 432px;
}

.tv-footer__about-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  max-width: 1296px;
  margin: 0 auto;
}

.tv-footer__brand-block {
  width: 469.5px;
}

.tv-footer__logo {
  display: block;
  width: 102px;
  max-width: 100%;
  height: auto;
}

.tv-footer__logo--products {
  width: 76px;
  height: auto;
}

.tv-footer__logo-link {
  display: inline-block;
  line-height: 0;
}

.tv-footer__contact {
  display: grid;
  gap: 16px;
  margin-top: 92px;
}

.tv-footer__contact-item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--tv-pearl);
  font: 400 16px/1.5 "Inter", sans-serif;
}

.tv-footer__contact-item img {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.tv-footer__contact-item--address {
  align-items: flex-start;
  gap: 16px;
}

.tv-footer__contact-item p,
.tv-footer__contact-item span {
  margin: 0;
}

/* .tv-footer p sets 12px — keep address/body copy at 16px like Figma mobile + desktop */
.tv-footer__contact-item p {
  font: inherit;
  color: inherit;
}

.tv-footer__contact-item[href^="mailto:"] span {
  text-decoration: underline;
}

.tv-footer__about-links {
  display: grid;
  grid-template-columns: minmax(160px, 306px) auto;
  gap: 16px;
  align-items: start;
}

.tv-footer__about-list h4 {
  margin: 0 0 16px;
  color: var(--tv-pearl);
  font: 600 16px/1.6875 "Inter", sans-serif;
}

.tv-footer__about-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.tv-footer__about-list li,
.tv-footer__about-list a {
  color: var(--tv-pearl);
  font: 400 16px/1.5 "Inter", sans-serif;
}

.tv-footer__social-icons-combo {
  position: relative;
  width: 121px;
  height: 28px;
}

.tv-footer__social-icons-combo > img {
  display: block;
  width: 121px;
  height: 28px;
}

.tv-footer__social-hit {
  position: absolute;
  top: 0;
  height: 100%;
}

.tv-footer__social-hit:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

/* Split targets over combined IG + LinkedIn artwork (node 79:2048). */
.tv-footer__social-hit--ig {
  left: 0;
  width: 42%;
}

.tv-footer__social-hit--li {
  left: 42%;
  width: 58%;
}

.tv-header--light {
  border-bottom-color: #424243;
}

.tv-header--light .tv-header__inner {
  color: #151515;
}

.tv-products-page {
  background: var(--tv-offwhite);
}

.tv-products-hero {
  position: relative;
  padding-top: 0;
}

/* Bottom fade matches Figma 109-1539 (304px of 920px artboard → 304/920 of rendered hero height); image intrinsic aspect, no crop */
.tv-products-hero__media {
  position: relative;
  width: 100%;
  background: #fdfdfd;
}

.tv-products-hero__media .tv-products-hero__image {
  width: 100%;
  height: auto;
}

.tv-products-hero__media .tv-products-hero__image--desktop {
  display: block;
}

.tv-products-hero__media .tv-products-hero__image--mobile {
  display: none;
}

.tv-products-hero__fade {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  height: calc(100% * 304 / 920);
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(253, 253, 253, 0) 0%,
    #fdfdfd 100%
  );
}

.tv-products-hero__copy {
  position: absolute;
  left: 84px;
  bottom: 107px;
  z-index: 2;
  margin: 0;
  max-width: calc(100% - 84px - 24px);
  pointer-events: none;
}

.tv-products-hero__headline {
  margin: 0;
  color: var(--tv-black);
  font: 600 56px/1.2 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -1.12px;
}

.tv-products-hero__headline-line {
  display: block;
}

/* Intro band — Figma node 1:551 (Frame 218): py 84px, px 10px, 912px text, #151515 / #F3F3F3 */
.tv-products-lede {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 84px 10px;
  box-sizing: border-box;
  background: #151515;
  color: #f3f3f3;
}

.tv-products-lede__text {
  width: 100%;
  max-width: 912px;
  margin: 0;
  text-align: center;
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
  letter-spacing: 0;
  color: #f3f3f3;
}

.tv-products-faq {
  padding: 56px 112px 72px;
  background: var(--tv-cream);
}

.tv-products-faq__inner {
  max-width: 1216px;
  margin: 0 auto;
}

.tv-products-faq h2 {
  margin: 0 0 56px;
  color: var(--tv-black);
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-products-faq__list--mobile {
  display: none;
}

.tv-products-faq__item {
  background: var(--tv-offwhite);
  border-bottom: 0.5px solid var(--tv-graphite);
}

.tv-products-faq__item.is-open {
  padding: 16px 32px 24px 40px;
}

.tv-products-faq__item:not(.is-open) {
  padding: 16px 32px 16px 40px;
}

.tv-products-faq__trigger {
  display: block;
  width: 100%;
  padding: 4px 0;
  margin: -4px 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.12s ease, transform 0.1s ease;
}

.tv-products-faq__trigger:hover {
  background: rgba(0, 0, 0, 0.045);
}

.tv-products-faq__trigger:active {
  background: rgba(0, 0, 0, 0.08);
  transform: scale(0.998);
}

.tv-products-faq__trigger:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

.tv-products-faq__question-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.tv-products-faq__question-row h3 {
  margin: 0;
  color: #525252;
  font: 600 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-products-faq__question-row img {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.tv-products-faq__question-row img.is-open {
  transform: rotate(180deg);
}

.tv-products-faq__item p {
  width: 1120px;
  margin: 24px 0 0;
  color: #525252;
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-products-faq__item [data-faq-content][hidden] {
  display: none;
}

.tv-about-page {
  background: var(--tv-offwhite);
}

.tv-about-hero {
  padding-top: 56px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  width: 100%;
  min-height: 0;
}

.tv-about-hero__media {
  min-height: 892px;
  width: 100%;
  min-width: 0;
  align-self: stretch;
  background: var(--tv-about-hero-bg) center/cover no-repeat;
}

.tv-about-hero__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 48px;
}

.tv-about-note {
  display: flex;
  flex-direction: column;
  gap: 32px;
  min-height: 796px;
  background: var(--tv-offwhite);
  border-radius: 16px;
  overflow: hidden;
  box-shadow:
    0 4px 4px rgba(12, 12, 13, 0.1),
    0 4px 4px rgba(12, 12, 13, 0.05);
}

.tv-about-note__titlebar {
  padding: 16px 32px;
  background: var(--tv-cream);
  border-bottom: 1px solid var(--tv-gold);
  border-radius: 16px 16px 0 0;
}

.tv-about-note h1 {
  margin: 0;
  font: 400 32px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
  color: var(--tv-graphite);
}

.tv-about-note__body {
  padding: 0 48px 48px 32px;
}

.tv-about-note__body p {
  margin: 0;
  color: #525252;
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-about-note__body p + p {
  margin-top: 24px;
}

.tv-vm {
  background: var(--tv-cream);
  padding: 100px 112px;
}

.tv-vm__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 580px));
  gap: 56px;
  justify-content: center;
  max-width: 1216px;
  margin: 0 auto;
}

.tv-vm__card {
  min-height: 186px;
  background: var(--tv-offwhite);
  border: 1px solid var(--tv-gold);
  border-radius: 16px;
  padding: 40px;
  box-shadow:
    0 4px 4px rgba(12, 12, 13, 0.1),
    0 4px 4px rgba(12, 12, 13, 0.05);
}

.tv-vm__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.tv-vm__head h2 {
  margin: 0;
  color: var(--tv-black);
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-vm__card p {
  margin: 0;
  color: #525252;
  font-size: 18px;
}

.tv-experts {
  background: var(--tv-offwhite);
  padding: 40px 32px;
  box-shadow:
    0 4px 4px rgba(12, 12, 13, 0.1),
    0 4px 4px rgba(12, 12, 13, 0.05);
}

.tv-experts__inner {
  max-width: 1376px;
  margin: 0 auto;
}

.tv-experts h2 {
  margin: 0 0 40px;
  text-align: center;
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-experts__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 332px));
  gap: 16px;
  justify-content: center;
}

.tv-experts__image {
  width: 100%;
  height: 465px;
  object-fit: cover;
  display: block;
}

.tv-experts__copy {
  margin-top: 24px;
  color: #525252;
}

.tv-experts__copy h3 {
  margin: 0;
  font: 600 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-experts__meta,
.tv-experts__note {
  margin: 0;
  font: 300 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  color: #525252;
}

.tv-global {
  padding-top: 80px;
}

.tv-global__content {
  max-width: 953px;
  margin: 0 auto 72px;
  padding: 0 32px;
  text-align: center;
}

.tv-global h2 {
  margin: 0;
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-global p {
  max-width: none;
  margin: 32px 0 0;
  color: #525252;
  font-size: 18px;
}

.tv-global__map {
  position: relative;
  height: 554px;
  background: transparent;
  overflow: hidden;
}

.tv-global__globe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  mix-blend-mode: darken;
  pointer-events: none;
}

.tv-global__marker {
  position: absolute;
  width: var(--box-width);
  height: var(--line-height);
  z-index: 1;
}

.tv-global__marker-line {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 3px;
}

.tv-global__marker-flag-frame {
  position: absolute;
  top: 0;
  left: var(--frame-offset, 0);
  width: var(--frame-width);
  height: var(--frame-height);
  overflow: hidden;
}

.tv-global__marker-flag {
  position: absolute;
  top: 0;
  left: var(--image-left, 0);
  width: var(--image-width, 100%);
  height: 100%;
  object-fit: cover;
  max-width: none;
}

.tv-global__marker--image42 {
  top: 11.0108%;
  left: 55.9028%;
  --box-width: 5.0694%;
  --line-height: 11.0108%;
  --frame-offset: 2px;
  --frame-width: 73px;
  --frame-height: 48px;
}

.tv-global__marker--image24 {
  top: 14.2599%;
  left: 64.9306%;
  --box-width: 5.2083%;
  --line-height: 11.0108%;
  --frame-width: 75px;
  --frame-height: 43px;
  --image-width: 114.55%;
}

.tv-global__marker--image22 {
  top: 28.3394%;
  left: 75.1389%;
  --box-width: 4.5833%;
  --line-height: 11.0108%;
  --frame-width: 66px;
  --frame-height: 44px;
}

.tv-global__marker--image41 {
  top: 25.9928%;
  left: 59.7222%;
  --box-width: 5.2083%;
  --line-height: 11.0108%;
  --frame-offset: 1px;
  --frame-width: 75px;
  --frame-height: 43px;
}

.tv-global__marker--image40 {
  top: 44.5848%;
  left: 83.75%;
  --box-width: 5.625%;
  --line-height: 11.0108%;
  --frame-offset: 1px;
  --frame-width: 81px;
  --frame-height: 40px;
}

.tv-global__marker--image23 {
  top: 75.8123%;
  left: 16.9444%;
  --box-width: 4.5139%;
  --line-height: 11.0108%;
  --frame-width: 65px;
  --frame-height: 44px;
}

.tv-global__marker--image39 {
  top: 46.029%;
  left: 40.8333%;
  --box-width: 5.0694%;
  --line-height: 11.1913%;
  --frame-offset: 1px;
  --frame-width: 73px;
  --frame-height: 44px;
  --image-left: -10.32%;
  --image-width: 118.79%;
}

/* Figma 1:797 — used only in @media (max-width: 980px); server outputs for a11y/SEO */
.tv-mobile-nav {
  display: none;
}

@media (max-width: 980px) {
  :root {
    /* Mobile-only tokens + clamp; no effect at min-width 981px */
    --tv-header-scroll-pad: clamp(64px, 11vw, 72px);
    /* Bottom edge of fixed header; sheet + backdrop tuck under it (set in tv-mobile-nav.js) */
    --tv-mobile-nav-offset: 56px;
    --tv-m-gutter: clamp(16px, 4.2vw, 24px);
    --tv-m-gap: clamp(24px, 6vw, 48px);
    --tv-m-section-y-sm: clamp(32px, 7vw, 48px);
    --tv-m-section-y-md: clamp(40px, 9vw, 64px);
    --tv-m-section-y-lg: clamp(56px, 11vw, 88px);
    --tv-m-section-y-xl: clamp(80px, 14vw, 120px);
    --tv-m-hero-min-h: clamp(480px, 135vw, 570px);
    --tv-m-showcase-min-h: clamp(300px, 88vw, 420px);
    --tv-m-hero-copy-top: clamp(280px, 88vw, 400px);
    --tv-m-product-pad-y: clamp(40px, 12vw, 64px);
    /* After photo bleeds over cream: black band ends short; same token drives pull + heading offset */
    --tv-cases-bleed-h: clamp(28px, 7vw, 64px);
  }

  .tv-container {
    width: min(100%, calc(100% - 2 * var(--tv-m-gutter)));
  }

  /* Fixed bar: solid fill at all scroll positions (safe-area padding only). */
  .tv-header {
    top: 0;
    box-sizing: border-box;
    padding-top: min(env(safe-area-inset-top, 0), 12px);
    background-color: #fff;
    border-bottom: 1px solid #e5e5e5;
    box-shadow: 0 1px 0 rgba(12, 12, 13, 0.04);
  }

  body.admin-bar .tv-header {
    top: 0;
    padding-top: calc(32px + min(env(safe-area-inset-top, 0), 12px));
  }

  .tv-header__inner {
    min-height: 0;
    padding: 8px 16px;
    align-items: center;
    color: #151515;
  }

  .tv-brand img {
    width: 75px;
    height: 12px;
  }

  .tv-nav {
    display: none;
  }

  .tv-menu-toggle {
    display: inline-flex;
    flex-direction: column;
    color: #151515;
    position: relative;
  }

  .tv-menu-toggle span {
    transition:
      transform 0.2s ease,
      opacity 0.2s ease;
    transform-origin: center;
  }

  .tv-menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
  }

  .tv-menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .tv-menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
  }

  @media (prefers-reduced-motion: reduce) {
    .tv-menu-toggle span {
      transition: none;
    }
  }

  body.tv-mobile-nav-open {
    overflow: hidden;
    touch-action: none;
  }

  /* Menu open: header bar is same fill as sheet + dark rule under logo row (Figma-style single panel) */
  body.tv-mobile-nav-open .tv-header {
    z-index: 10060;
    background-color: var(--tv-offwhite);
    border-bottom: 1px solid #151515;
    box-shadow: none;
  }

  .tv-mobile-nav {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 10040;
    pointer-events: none;
  }

  .tv-mobile-nav__backdrop,
  .tv-mobile-nav__sheet {
    pointer-events: auto;
  }

  .tv-mobile-nav[hidden] {
    display: none !important;
  }

  .tv-mobile-nav__backdrop {
    position: absolute;
    top: var(--tv-mobile-nav-offset, 56px);
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(12, 12, 13, 0.35);
  }

  .tv-mobile-nav__sheet {
    position: absolute;
    top: var(--tv-mobile-nav-offset, 56px);
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    max-height: none;
    height: auto;
    min-height: 0;
    overflow: auto;
    background: var(--tv-offwhite);
    box-shadow: 0 8px 24px rgba(12, 12, 13, 0.08);
    transform: translateY(-100%);
    transition: transform 0.42s cubic-bezier(0.16, 1, 0.32, 1);
    will-change: transform;
  }

  .tv-mobile-nav--open .tv-mobile-nav__sheet {
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .tv-mobile-nav__sheet {
      transition: none;
    }
  }

  .tv-mobile-nav__nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    margin: 0;
    padding: clamp(28px, 8vw, 40px) 0 clamp(40px, 10vw, 56px);
    box-sizing: border-box;
  }

  .tv-mobile-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 20px 16px;
    border: 0;
    background: transparent;
    color: #141414;
    font: 600 16px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
    letter-spacing: -0.32px;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
  }

  .tv-mobile-nav__link[aria-current="page"] {
    font-weight: 700;
  }

  .tv-mobile-nav__link:hover,
  .tv-mobile-nav__link:focus-visible {
    background: rgba(12, 12, 13, 0.04);
  }

  .tv-mobile-nav__link:focus-visible {
    outline: 2px solid var(--tv-gold);
    outline-offset: -2px;
  }

  .tv-products-hero__media .tv-products-hero__image--desktop,
  .tv-products-faq__list--desktop {
    display: none;
  }

  .tv-products-hero__media .tv-products-hero__image--mobile,
  .tv-products-faq__list--mobile {
    display: block;
  }

  .tv-products-hero__copy {
    left: var(--tv-m-gutter);
    bottom: clamp(44px, 11.5vw, 58px);
    max-width: calc(100% - 2 * var(--tv-m-gutter));
  }

  .tv-products-hero__headline {
    font-size: clamp(32px, 9.2vw, 40px);
    line-height: 1.2;
    letter-spacing: -0.64px;
  }

  .tv-products-lede {
    padding: clamp(48px, 10vw, 64px) var(--tv-m-gutter);
  }

  .tv-products-lede__text {
    font-size: 16px;
    line-height: 1.5;
  }

  .tv-products-faq {
    padding: clamp(56px, 9vw, 72px) var(--tv-m-gutter);
  }

  .tv-products-faq h2 {
    margin-bottom: 32px;
  }

  .tv-products-faq__item {
    padding: 16px 20px;
  }

  .tv-products-faq__question-row h3 {
    font-size: 16px;
  }

  .tv-products-faq__item p {
    width: auto;
    font-size: 16px;
  }

  .tv-hero {
    aspect-ratio: unset;
    min-height: var(--tv-m-hero-min-h);
    background-image: var(--tv-hero-overlay), var(--tv-hero-bg-mobile);
    background-size: 100% 100%, cover;
    background-position:
      0 0,
      64% 50%;
    background-repeat: no-repeat;
  }

  .tv-hero__copy {
    left: var(--tv-m-gutter);
    right: auto;
    top: var(--tv-m-hero-copy-top);
    display: flex;
    width: 280px;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 16px;
  }

  .tv-hero__title {
    font-family: "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
    font-size: clamp(28px, 7.5vw, 32px);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0;
    max-width: min(100%, 280px);
    margin-bottom: 0;
  }

  .tv-hero__subtitle {
    font-family: "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
    font-size: clamp(15px, 3.5vw, 16px);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0;
    max-width: min(100%, 280px);
  }

  .tv-about {
    grid-template-columns: 1fr;
    gap: var(--tv-m-gap);
    /* Extra air before the ticker; scales with --tv-m-section-y-xl */
    padding: var(--tv-m-section-y-sm) 0 calc(var(--tv-m-section-y-xl) * 2.35);
  }

  .tv-about::after {
    display: none;
  }

  .tv-about h2 {
    font-size: 18px;
  }

  .tv-about p {
    color: #424243;
    font-family: "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
    font-size: 18px;
    line-height: 1.5;
    letter-spacing: 0;
    white-space: normal;
  }

  /* Figma 1:1474: home ticker 12px / 10px vertical; matches bar height to frame */
  .tv-ticker {
    padding: 10px 0;
    font-size: 12px;
    letter-spacing: 0.36px;
    line-height: 1.6;
  }

  .tv-ticker__sequence {
    gap: 30px;
  }

  .tv-showcase {
    min-height: var(--tv-m-showcase-min-h);
    background-position: 42% center;
  }

  .tv-product {
    padding: var(--tv-m-product-pad-y) 0;
  }

  .tv-product__grid {
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 5vw, 32px);
  }

  .tv-product__grid > :first-child {
    order: 2;
  }

  .tv-product__grid > :last-child {
    order: 1;
  }

  .tv-product h3 { 
    font-size: clamp(24px, 6.5vw, 28px);
    margin: 0 0 clamp(24px, 5vw, 32px);
  }

  .tv-works {
    /* Space after Clear Aligners divider; space before the next (cases) block */
    padding: clamp(36px, 6vw, 48px) 0 clamp(56px, 10vw, 80px);
  }

  .tv-works__top {
    border-radius: 16px 16px 0 0;
    padding: 14px var(--tv-m-gutter);
  }

  .tv-works__top .tv-section-title {
    color: var(--tv-pearl);
    font-size: clamp(24px, 6.5vw, 28px);
  }

  .tv-works__top .tv-btn {
    width: 32px;
    min-width: 32px;
    padding: 0;
    justify-content: center;
  }

  .tv-works__top .tv-btn span {
    display: none;
  }

  .tv-cards {
    grid-template-columns: 1fr;
    border-radius: 0 0 16px 16px;
    overflow: hidden;
  }

  .tv-card {
    border-right: 1px solid var(--tv-border);
    min-height: clamp(300px, 88vw, 380px);
    padding: clamp(40px, 7vw, 56px) clamp(24px, 5vw, 32px);
  }

  .tv-card:first-child {
    border-radius: 0;
  }

  .tv-card:last-child {
    border-bottom: 1px solid var(--tv-border);
  }

  .tv-cases {
    padding: clamp(40px, 8vw, 64px) 0 0;
    background: transparent;
    overflow: visible;
    z-index: 2;
  }

  /* Shorter than section: no charcoal under the lower part of the after image; photo reads on cream */
  .tv-cases::before {
    display: block;
    content: "";
    position: absolute;
    z-index: 0;
    left: 0;
    right: 0;
    top: 0;
    bottom: var(--tv-cases-bleed-h);
    background: #151515;
    pointer-events: none;
  }

  .tv-cases__inner {
    display: flex;
    flex-direction: column;
    gap: clamp(28px, 5vw, 40px);
    width: 100%;
    min-height: 0;
    padding: 0;
    background: transparent;
    position: relative;
    z-index: 1;
  }

  .tv-cases__images {
    position: relative;
    z-index: 2;
    margin-top: 0;
    margin-bottom: 0;
    gap: clamp(14px, 3vw, 20px);
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding: 0 var(--tv-m-gutter);
    box-sizing: border-box;
    grid-template-columns: 1fr;
    align-self: stretch;
    order: 2;
  }

  .tv-cases__images .tv-case__image {
    width: 100%;
    height: auto;
  }

  /* Pull after shot over testimonials so it bleeds past the black band; img size unchanged in layout */
  .tv-case--after {
    position: relative;
    z-index: 3;
    margin-bottom: calc(-1 * var(--tv-cases-bleed-h));
  }

  .tv-cases__content {
    padding: 0 clamp(20px, 5vw, 40px);
    max-width: 100%;
    order: 1;
    text-align: left;
    align-items: flex-start;
  }

  .tv-cases__content h2 {
    font-size: 24px;
    letter-spacing: -0.48px;
    line-height: 1.2;
    max-width: 20rem;
    margin-left: 0;
    margin-right: auto;
  }

  .tv-cases__content p {
    font-size: 18px;
    line-height: 1.5;
    color: rgba(243, 243, 243, 0.55);
  }

  .tv-testimonials {
    position: relative;
    z-index: 1;
    /* Extra top space so heading clears the after image that overlaps this section */
    padding: calc(var(--tv-m-section-y-lg) + var(--tv-cases-bleed-h)) 0
      var(--tv-m-section-y-lg);
  }

  .tv-testimonials .tv-section-title {
    font-size: clamp(24px, 6.5vw, 28px);
  }

  .tv-testimonial {
    gap: 24px;
  }

  .tv-testimonial p {
    font-size: 16px;
  }

  .tv-testimonial-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .tv-testimonial__avatar {
    width: 44px;
    height: 44px;
  }

  .tv-testimonial__source {
    width: 28px;
    height: 28px;
  }

  .tv-testimonial p {
    font-size: 16px;
  }

  /* Home #contact: full-bleed form (no dark side gutters) + air before footer rule */
  #contact.tv-contact {
    padding: 0 0 clamp(48px, 8vw, 72px);
    border-bottom: 1px solid var(--tv-pearl);
  }

  #contact.tv-contact .tv-container {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .tv-contact__lead {
    background: #111216;
    margin: 0 0 0;
    padding: clamp(40px, 8vw, 56px) var(--tv-m-gutter);
    text-align: left;
  }

  .tv-contact__lead h2 {
    font-size: clamp(22px, 4.5vw, 24px);
  }

  .tv-form-wrap {
    padding: clamp(40px, 5vw, 48px) var(--tv-m-gutter) clamp(48px, 7vw, 64px);
    box-shadow: none;
  }

  #contact .tv-form-wrap {
    max-width: none;
    width: 100%;
    margin: 0;
    border: 0;
  }

  .tv-form-wrap .tv-partner-form__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .tv-form-wrap .tv-partner-form-field--full {
    grid-column: auto;
  }

  /* Clinic tab: legend + radios stack; avoid space-between + flex-end pushing options right */
  .tv-form-wrap .tv-partner-form-field--choice {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 12px;
  }

  .tv-form-wrap .tv-partner-radio-group--home-wrap {
    width: 100%;
  }

  .tv-form-wrap .tv-partner-form-field--choice.is-invalid {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
  }

  .tv-tabs {
    gap: 24px;
    margin-bottom: 56px;
    font-size: 16px;
  }

  .tv-form-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 24px;
  }

  .tv-label {
    margin-top: 20px;
  }

  .tv-radio-row {
    gap: 8px;
  }

  .tv-footer {
    padding: clamp(28px, 5vw, 36px) 0 clamp(36px, 6vw, 44px);
  }

  .tv-footer__grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .tv-about-hero {
    padding-top: 48px;
    grid-template-columns: 1fr;
  }

  .tv-about-hero__media {
    min-height: 520px;
  }

  .tv-about-hero__panel {
    padding: 48px 0 0 16px;
  }

  .tv-about-note {
    min-height: auto;
  }

  .tv-about-note h1 {
    font-size: 24px;
    line-height: 1.5;
  }

  .tv-about-note__body {
    padding: 0 16px 32px 32px;
  }

  .tv-about-note__body p {
    font-size: 18px;
  }

  .tv-vm {
    padding: 40px 16px;
  }

  .tv-vm__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .tv-vm__card {
    padding: 40px;
  }

  .tv-experts {
    padding: 40px 16px;
  }

  .tv-experts h2 {
    margin-bottom: 40px;
    font-size: 24px;
  }

  .tv-experts__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .tv-experts__image {
    height: auto;
    aspect-ratio: 288 / 403;
  }

  .tv-experts__note {
    display: none;
  }

  .tv-global {
    padding-top: 40px;
  }

  .tv-global__content {
    margin-bottom: 32px;
    padding: 0 16px;
    text-align: left;
  }

  .tv-global h2 {
    font-size: 24px;
  }

  .tv-global p {
    font-size: 18px;
    margin-top: 24px;
  }

  .tv-global__map {
    height: 619px;
  }

  .tv-global__globe {
    object-position: center top;
  }

  .tv-global__marker {
    width: var(--mobile-box-width, var(--box-width));
    height: var(--mobile-line-height, var(--line-height));
  }

  .tv-global__marker--image42 {
    top: 1.7771%;
    left: 8.75%;
    --mobile-box-width: 15.1041%;
    --mobile-line-height: 6.9467%;
    --frame-offset: 1.667px;
    --frame-width: 48.333px;
    --frame-height: 32.222px;
  }

  .tv-global__marker--image24 {
    top: 8.4006%;
    left: 35.9375%;
    --mobile-box-width: 16.6331%;
    --mobile-line-height: 6.9935%;
    --frame-width: 53.226px;
    --frame-height: 30.484px;
    --image-width: 114.55%;
  }

  .tv-global__marker--image22 {
    top: 5.3312%;
    left: 75.3125%;
    --mobile-box-width: 14.6356%;
    --mobile-line-height: 6.9935%;
    --frame-width: 46.834px;
    --frame-height: 31.229px;
  }

  .tv-global__marker--image41 {
    top: 22.7787%;
    left: 16.5625%;
    --mobile-box-width: 16.3531%;
    --mobile-line-height: 6.8722%;
    --frame-offset: 0.67px;
    --frame-width: 52.33px;
    --frame-height: 29.971px;
  }

  .tv-global__marker--image40 {
    top: 15.3473%;
    left: 82.1875%;
    --mobile-box-width: 17.4866%;
    --mobile-line-height: 6.8501%;
    --frame-offset: 1.043px;
    --frame-width: 55.957px;
    --frame-height: 27.979px;
  }

  .tv-global__marker--image23 {
    top: 34.895%;
    left: 2.8125%;
    --mobile-box-width: 14.6875%;
    --mobile-line-height: 7.1257%;
    --frame-width: 47px;
    --frame-height: 31.333px;
  }

  .tv-global__marker--image39 {
    top: 36.1874%;
    left: 50%;
    --mobile-box-width: 16.77%;
    --mobile-line-height: 7.1913%;
    --frame-offset: 0.336px;
    --frame-width: 53.664px;
    --frame-height: 31.874px;
    --image-left: -10.32%;
    --image-width: 118.79%;
  }

  /* Footer — Figma mobile frame 79:1902 (320×582): same stack as desktop + Explore | Socials in two columns */
  .tv-footer--about {
    padding: 48px 16px 64px;
  }

  .tv-footer--products {
    min-height: 582px;
    padding: 0;
    border-top: 0;
  }

  .tv-footer__about-inner {
    flex-direction: column;
    gap: 48px;
  }

  .tv-footer__brand-block {
    width: 100%;
  }

  .tv-footer__contact {
    margin-top: 40px;
  }

  .tv-footer__about-links {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 0;
    align-items: start;
  }

  .tv-footer--products .tv-footer__about-inner {
    display: none;
  }
}

@media (max-width: 782px) {
  body.admin-bar .tv-header {
    top: 0;
    padding-top: calc(46px + min(env(safe-area-inset-top, 0), 12px));
  }
}

.tv-partner-menu-toggle img {
  display: block;
  width: 24px;
  height: 24px;
}

.tv-partner-page {
  background: var(--tv-offwhite);
}

/*
 * Partner (vs Figma): solid cream header; main padding = actual bar height (not --tv-header-scroll-pad,
 * which is larger for anchor scroll). Mobile: .tv-header uses safe cap + inner (8+24+8 for menu) + 1px rule.
 * Desktop: 16+14+16 + border ≈ 47px. Admin: +32px or header’s own padding.
 */
body.partner-with-us-route .tv-header {
  background-color: var(--tv-cream);
}

body.partner-with-us-route .tv-partner-page {
  /* Desktop — matches .tv-header__inner: 16 + logo 14 + 16 + 1px border */
  padding-top: calc(16px + 14px + 16px + 1px);
}

body.admin-bar.partner-with-us-route .tv-partner-page {
  /* wp-admin bar + header; header uses top:32px, so stack height */
  padding-top: calc(32px + 16px + 14px + 16px + 1px);
}

/* Figma ratio 1060:380; main padding clears fixed header (partner route) */
.tv-partner-hero {
  display: grid;
  grid-template-columns: minmax(0, 1060fr) minmax(0, 380fr);
  grid-template-rows: minmax(0, auto) auto;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-top: 0;
  box-sizing: border-box;
}

.tv-partner-hero__media {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  min-height: 706px;
  overflow: hidden;
}

/* Ticker in DOM: between hero media and cream panel; row 2 full width, mobile stacks under image */
.tv-partner-hero .tv-partner-ticker {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: stretch;
}

.tv-partner-hero__image {
  display: block;
  width: 100%;
}

.tv-partner-hero__image--desktop {
  height: 706px;
  object-fit: cover;
}

.tv-partner-hero__image--mobile {
  display: none;
}

.tv-partner-hero__overlay {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 427px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.9) 100%);
}

.tv-partner-hero__copy {
  position: absolute;
  bottom: 64px;
  left: 64px;
  display: grid;
  gap: 16px;
  z-index: 1;
}

.tv-partner-hero__copy h1 {
  margin: 0;
  color: var(--tv-pearl);
  font: 400 48px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-pill,
.tv-partner-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 4px 20px;
  border-radius: 99px;
  font: 600 14px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.28px;
  text-decoration: none;
  box-shadow:
    0 1px 4px rgba(12, 12, 13, 0.1),
    0 1px 4px rgba(12, 12, 13, 0.05);
  transition: var(--tv-btn-t);
}

.tv-partner-pill {
  width: fit-content;
  border: 0.5px solid var(--tv-dark);
  background: var(--tv-cream);
  color: var(--tv-dark);
  cursor: pointer;
}

.tv-partner-pill:hover {
  background: var(--tv-btn-bg-hover);
  border-color: var(--tv-pearl);
  color: var(--tv-pearl);
}

.tv-partner-pill:active {
  background: var(--tv-btn-bg-active);
  border-color: var(--tv-pearl);
  color: var(--tv-pearl);
}

.tv-partner-pill:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

.tv-partner-hero__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  grid-column: 2;
  grid-row: 1;
  min-height: 706px;
  padding: 64px 32px;
  background: var(--tv-cream);
  box-sizing: border-box;
}

.tv-partner-hero__panel p {
  margin: 0;
  color: var(--tv-dark);
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-ticker {
  overflow: hidden;
  background: var(--tv-gold);
  color: var(--tv-pearl);
  padding: 10px 0;
  font: 500 12px/1.6 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: 0.36px;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Same seamless loop as .tv-ticker (duplicated .tv-partner-ticker__sequence, translateX -50%) */
.tv-partner-ticker__track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: tv-scroll 40s linear infinite;
}

.tv-partner-ticker__sequence {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  gap: 42px;
}

.tv-partner-why {
  background: var(--tv-cream);
}

.tv-partner-why__header,
.tv-partner-audience__header {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 111px;
  padding: 40px;
}

.tv-partner-why__header h2,
.tv-partner-audience__header h2 {
  margin: 0;
  color: var(--tv-black);
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

/* Dark section — must not inherit black on black from the cream-section headers */
.tv-partner-form-section__intro h2 {
  margin: 0;
  color: var(--tv-pearl);
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-why__list--desktop {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tv-partner-why__list--mobile {
  display: none;
}

.tv-partner-accordion {
  background: var(--tv-cream);
  border-bottom: 0.5px solid var(--tv-graphite);
}

.tv-partner-accordion--full {
  grid-column: 1 / -1;
}

.tv-partner-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 32px 16px 40px;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.12s ease, transform 0.1s ease;
}

.tv-partner-accordion__trigger:hover {
  background: rgba(0, 0, 0, 0.04);
}

.tv-partner-accordion__trigger:active {
  background: rgba(0, 0, 0, 0.08);
  transform: scale(0.998);
}

.tv-partner-accordion__trigger:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: -1px;
}

.tv-partner-accordion__title {
  color: #525252;
  font: 600 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-accordion__trigger img {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.tv-partner-accordion__trigger img.is-open {
  transform: rotate(180deg);
}

.tv-partner-accordion__content {
  padding: 0 32px 24px 40px;
}

.tv-partner-accordion__content p {
  margin: 0;
  color: #525252;
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-accordion[data-partner-accordion-item] [data-partner-accordion-content][hidden] {
  display: none;
}

.tv-partner-audience {
  padding: 0 40px 56px;
  background: var(--tv-offwhite);
}

.tv-partner-audience__header {
  justify-content: flex-start;
  padding: 40px 0;
}

.tv-partner-audience__grid {
  display: grid;
  grid-template-columns: repeat(4, 328px);
  gap: 16px;
  justify-content: center;
  padding: 0;
}

.tv-partner-card {
  display: grid;
  gap: 24px;
  width: 328px;
}

.tv-partner-card__media {
  width: 332px;
  height: 465px;
  overflow: hidden;
}

.tv-partner-card img {
  display: block;
  width: 332px;
  height: 465px;
  object-fit: cover;
}

.tv-partner-card--orthodontists img,
.tv-partner-card--cosmetic img {
  transform: scale(1.071);
  transform-origin: top center;
}

.tv-partner-card--clinics img {
  object-position: 38% center;
}

.tv-partner-card--startups img {
  object-position: 36% 7%;
  transform: scale(1.15);
  transform-origin: top center;
}

.tv-partner-card h3 {
  margin: 0;
  color: #525252;
  font: 600 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-form-section {
  padding: 98px 0;
  /* Solid (no card shadow haze) */
  background: #151515;
}

.tv-partner-form-section__intro {
  width: 1070px;
  margin: 0 auto 56px;
  text-align: center;
}

.tv-partner-form-section__intro p {
  margin: 16px 0 0;
  color: var(--tv-pearl);
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-form-shell {
  width: 1070px;
  margin: 0 auto;
  padding: 64px;
  background: var(--tv-cream);
  box-shadow: none;
}

.tv-partner-form-shell h3 {
  margin: 0 0 72px;
  color: var(--tv-black);
  font: 400 32px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
  text-align: center;
}

.tv-partner-form {
  display: grid;
  gap: 64px;
}

.tv-partner-form__sections {
  display: grid;
  gap: 48px;
}

.tv-partner-form__group {
  display: grid;
  gap: 8px;
}

.tv-partner-form__group h4 {
  margin: 0;
  color: var(--tv-graphite);
  font: 400 12px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  letter-spacing: 0.02em;
}

.tv-partner-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 448px));
  gap: 24px 48px;
}

.tv-partner-form-field {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 56px;
  padding: 16px 10px;
  border-bottom: 0.5px solid var(--tv-graphite);
}

.tv-partner-form-field.is-active {
  border-bottom-width: 2px;
}

.tv-partner-form-field.is-invalid {
  align-items: flex-end;
  justify-content: space-between;
  border-bottom-color: #bf1518;
}

.tv-partner-form-field--full {
  grid-column: 1 / -1;
}

.tv-partner-form-field__control {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tv-black);
  font: 400 16px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  outline: none;
}

.tv-partner-form-field__control::placeholder {
  color: var(--tv-black);
  opacity: 1;
}

.tv-partner-form-field__error {
  display: none;
  color: #bf1518;
  font: 400 12px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  white-space: nowrap;
}

.tv-partner-form-field.is-invalid .tv-partner-form-field__control::placeholder {
  color: var(--tv-black);
}

.tv-partner-form-field.is-invalid .tv-partner-form-field__error {
  display: block;
}

.tv-partner-form-field--choice {
  min-inline-size: 0;
  margin: 0;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.tv-partner-form-field--choice legend {
  margin: 0;
  padding: 0;
  color: var(--tv-black);
  font: 400 16px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-radio-group {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.tv-partner-radio {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--tv-dark);
  font: 400 16px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  cursor: pointer;
}

.tv-partner-radio input,
.tv-partner-checkbox input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.tv-partner-radio__control {
  position: relative;
  width: 16px;
  height: 16px;
  border: 1px solid var(--tv-dark);
  border-radius: 50%;
}

.tv-partner-radio__control::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--tv-dark);
  opacity: 0;
}

.tv-partner-radio input:checked + .tv-partner-radio__control::after {
  opacity: 1;
}

.tv-partner-form__footer {
  display: grid;
  gap: 24px;
}

.tv-partner-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  color: var(--tv-dark);
  cursor: pointer;
  opacity: 0.8;
}

.tv-partner-checkbox__control {
  position: relative;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 1px solid var(--tv-dark);
  background: transparent;
}

/* Centered check — shared by all .tv-partner-checkbox (home contact + partnership, contact page, partner form) */
.tv-partner-checkbox__control::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--tv-checkbox-check-svg) no-repeat center / 11px 8px;
  opacity: 0;
}

.tv-partner-checkbox input:checked + .tv-partner-checkbox__control {
  background: var(--tv-dark);
}

.tv-partner-checkbox input:checked + .tv-partner-checkbox__control::after {
  opacity: 1;
}

.tv-partner-checkbox__label {
  color: var(--tv-dark);
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-partner-submit {
  width: fit-content;
  border: 0.5px solid var(--tv-pearl);
  background: var(--tv-btn-bg);
  color: var(--tv-pearl);
  cursor: pointer;
}

.tv-partner-submit:hover {
  background: var(--tv-btn-bg-hover);
  color: var(--tv-pearl);
}

.tv-partner-submit:active {
  background: var(--tv-btn-bg-active);
  color: var(--tv-pearl);
}

.tv-partner-submit:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

.tv-form-status {
  margin-top: 1rem;
  font-family: var(--tv-font-body, "Inter", sans-serif);
  font-size: 0.9375rem;
  line-height: 1.4;
}

.tv-form-status.is-success {
  color: var(--tv-ink, #1a1a1a);
}

.tv-form-status.is-error {
  color: #b42318;
}

.tv-partner-submit:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

@media (max-width: 980px) {
  /* Same stack as .tv-header: top pad + .tv-header__inner (menu 24px tall) + border */
  body.partner-with-us-route .tv-partner-page {
    padding-top: calc(min(env(safe-area-inset-top, 0), 12px) + 8px + 24px + 8px + 1px);
  }

  body.admin-bar.partner-with-us-route .tv-partner-page {
    padding-top: calc(32px + min(env(safe-area-inset-top, 0), 12px) + 8px + 24px + 8px + 1px);
  }

  .tv-partner-hero {
    display: block;
    max-width: none;
    margin: 0;
    padding-top: 0;
  }

  .tv-partner-hero__media {
    min-height: 520px;
  }

  .tv-partner-hero__image--desktop {
    display: none;
  }

  .tv-partner-hero__image--mobile {
    display: block;
    height: 520px;
    object-fit: cover;
    /* Figma: focal area sits lower in frame (was 16% — too high) */
    object-position: 42% 52%;
  }

  .tv-partner-hero__overlay {
    height: 315px;
  }

  .tv-partner-hero__copy {
    right: 20px;
    bottom: 20px;
    left: 20px;
  }

  .tv-partner-hero__copy h1 {
    font-size: 32px;
  }

  .tv-partner-hero__panel {
    min-height: 0;
    padding: 32px 20px 64px;
  }

  .tv-partner-ticker {
    padding: 10px 0;
    font-size: 14px;
  }

  .tv-partner-ticker__sequence {
    gap: 24px;
  }

  .tv-partner-why__header,
  .tv-partner-audience__header {
    min-height: 95px;
    padding: 32px 20px;
    justify-content: center;
  }

  .tv-partner-why__list--desktop {
    display: none;
  }

  .tv-partner-why__list--mobile {
    display: block;
  }

  .tv-partner-accordion__trigger {
    align-items: flex-start;
    padding: 16px 20px;
    gap: 16px;
  }

  .tv-partner-accordion__title {
    flex: 1 1 auto;
    font-size: 18px;
  }

  .tv-partner-accordion__content {
    padding: 0 20px 24px;
  }

  .tv-partner-audience {
    padding: 0 16px 49px;
  }

  .tv-partner-audience__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 0;
  }

  .tv-partner-card {
    width: 100%;
  }

  .tv-partner-card__media {
    width: 100%;
    height: auto;
    aspect-ratio: 288 / 403.37;
  }

  .tv-partner-card img {
    width: 100%;
    height: 100%;
    aspect-ratio: 288 / 403.37;
  }

  /* No bottom padding: empty --tv-dark gap read as a strip above footer (#0d0f13) */
  .tv-partner-form-section {
    padding: 0;
  }

  .tv-partner-form-section__intro {
    width: 100%;
    margin: 0;
    padding: 32px 20px;
    text-align: left;
  }

  .tv-partner-form-section__intro p {
    margin-top: 16px;
    max-width: 280px;
  }

  /* Full-bleed cream form: match home #contact (no black side gutters) */
  .tv-partner-form-shell {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(40px, 5vw, 48px) var(--tv-m-gutter) clamp(48px, 7vw, 64px);
    box-shadow: none;
  }

  .tv-partner-form-shell h3 {
    margin-bottom: 72px;
    font-size: 32px;
  }

  .tv-partner-form__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .tv-partner-form-field--full {
    grid-column: auto;
  }

  .tv-partner-form-field--choice {
    display: grid;
    justify-items: start;
    min-height: 114px;
    justify-content: start;
  }

  .tv-partner-form-shell .tv-partner-form-field--choice.is-invalid {
    justify-content: start;
    align-items: start;
  }

  .tv-partner-radio-group {
    gap: 12px;
  }

  .tv-partner-checkbox {
    align-items: flex-start;
  }

  .tv-partner-checkbox__label {
    font-size: 16px;
  }
}

.tv-contact-menu-toggle img {
  display: block;
  width: 24px;
  height: 24px;
}

.tv-contact-page {
  background: #151515;
}

.tv-contact-hero {
  position: relative;
  padding-top: 0;
}

.tv-contact-hero__image {
  display: block;
  width: 100%;
}

.tv-contact-hero__image--desktop {
  height: 959px;
  object-fit: cover;
}

.tv-contact-hero__image--mobile {
  display: none;
}

.tv-contact-hero__overlay {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 580px;
  background: linear-gradient(180deg, rgba(21, 21, 21, 0) 0%, rgba(21, 21, 21, 1) 100%);
}

.tv-contact-hero__copy {
  position: absolute;
  bottom: 64px;
  left: 64px;
  display: grid;
  gap: 16px;
  z-index: 1;
  max-width: 946px;
}

.tv-contact-hero__copy h1,
.tv-contact-intro h2 {
  margin: 0;
  color: var(--tv-pearl);
  font: 400 24px/1.3 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-contact-hero__copy h1 {
  font-size: 48px;
  line-height: 1.5;
}

.tv-contact-hero__copy p,
.tv-contact-intro p {
  margin: 0;
  color: var(--tv-pearl);
  font: 400 16px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

/* Solid #151515 + padding before footer (pearl top border) — not a “gradient” band */
.tv-contact-section {
  padding: 98px 0 clamp(40px, 5vw, 64px);
  background: #151515;
}

.tv-contact-intro {
  display: grid;
  gap: 16px;
  width: 1070px;
  margin: 0 auto 56px;
  padding: 0 64px;
}

.tv-contact-shell {
  width: 1070px;
  margin: 0 auto;
  /* Cream air below submit + section pad above footer rule */
  padding: 48px 64px 120px;
  background: var(--tv-cream);
  box-shadow: none;
}

.tv-contact-tabs {
  display: flex;
  align-items: center;
  gap: 48px;
}

.tv-contact-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 0 16px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--tv-dark);
  font: 500 16px/1.1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: -0.32px;
  cursor: pointer;
  border-radius: 2px 2px 0 0;
  transition: var(--tv-btn-t);
}

.tv-contact-tab.is-active {
  border-bottom-color: var(--tv-dark);
  font-weight: 700;
}

.tv-contact-tab:hover:not(.is-active) {
  color: var(--tv-graphite);
}

.tv-contact-tab:active:not([aria-disabled="true"]) {
  opacity: 0.8;
  transform: translateY(1px);
}

.tv-contact-tab:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

/* Stack both tab panels in one grid cell so row height = max(form, details); shell size stays stable */
.tv-contact-panels {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin-top: 72px;
}

.tv-contact-panels > .tv-contact-panel {
  grid-row: 1;
  grid-column: 1;
  align-self: start;
  width: 100%;
  min-width: 0;
  margin-top: 0;
}

.tv-contact-panel:not(.is-active) {
  visibility: hidden;
  pointer-events: none;
  z-index: 0;
}

.tv-contact-panel.is-active {
  position: relative;
  z-index: 1;
  visibility: visible;
}

.tv-contact-form {
  display: grid;
  gap: 64px;
}

.tv-contact-form__group {
  display: grid;
  gap: 48px;
}

.tv-contact-form__group--question {
  gap: 48px;
}

.tv-contact-question {
  display: grid;
  gap: 4px;
}

.tv-contact-question p {
  margin: 0;
  color: var(--tv-black);
  font: 600 16px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
}

.tv-contact-question__choices {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.tv-contact-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 448px));
  gap: 48px;
}

.tv-contact-detail-card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 67px;
  padding: 20px 40px;
  border: 1px solid var(--tv-gold);
  border-radius: 4px;
  background: #fffefc;
  box-shadow:
    0 4px 4px rgba(12, 12, 13, 0.1),
    0 4px 4px rgba(12, 12, 13, 0.05);
  color: var(--tv-black);
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  text-decoration: none;
  transition: var(--tv-btn-t);
}

.tv-contact-detail-card:hover {
  border-color: var(--tv-graphite);
  background: var(--tv-offwhite);
  box-shadow:
    0 2px 6px rgba(12, 12, 13, 0.12),
    0 1px 4px rgba(12, 12, 13, 0.06);
}

.tv-contact-detail-card:active {
  background: rgba(217, 180, 81, 0.18);
  border-color: var(--tv-gold);
  transform: scale(0.99);
}

.tv-contact-detail-card:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

.tv-contact-detail-card__icon,
.tv-contact-detail-card__icon img {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.tv-contact-detail-card--address {
  grid-column: 1 / -1;
  align-items: flex-start;
  justify-content: flex-start;
}

.tv-contact-detail-card__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-start;
  text-align: left;
  max-width: 100%;
}

.tv-contact-detail-card__line {
  display: block;
  font: inherit;
}

.tv-contact-detail-card--address .tv-contact-detail-card__icon {
  margin-top: 3px;
}

/* ==========================================================================
   Our Products — Product Feature (.tv-pf)
   Full-bleed 50/50 (Figma): image | spec panel, min height 1058px
   ========================================================================== */

.tv-pf {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: 100%;
  max-width: none;
  margin: 0;
  align-items: stretch;
  min-height: 1058px;
  box-sizing: border-box;
}

.tv-pf__fig {
  margin: 0;
  width: 100%;
  min-width: 0;
  min-height: 1058px;
  height: auto;
  align-self: stretch;
  overflow: hidden;
  flex-shrink: 0;
}

.tv-pf__fig-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.tv-pf__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 1058px;
  height: auto;
  align-self: stretch;
  background: #fffcf3;
  overflow: hidden;
  flex-shrink: 0;
}

.tv-pf__top {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
  padding-top: 88px;
  min-height: 0;
}

/* Tier picker (sliding thumb = .tv-pf__picker-thumb) */
.tv-pf__picker {
  position: relative;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 16px 20px;
  background: #f2ebd5;
  border: 1px solid #dcc98d;
  border-radius: 66px;
  box-shadow: inset -3px 5px 9px rgba(0, 0, 0, 0.10);
  flex-shrink: 0;
  isolation: isolate;
}

/* Before JS measures the thumb: Deluxe (default .is-active) uses the same gold as the slider */
.tv-pf__picker:not(.is-thumb-ready) .tv-pf__pill.is-active {
  background: #d9b451;
  box-shadow:
    0 1px 4px rgba(12, 12, 13, 0.10),
    0 1px 4px rgba(12, 12, 13, 0.05);
}

.tv-pf__picker-thumb {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  border-radius: 70px;
  background: #d9b451;
  box-shadow:
    0 1px 4px rgba(12, 12, 13, 0.10),
    0 1px 4px rgba(12, 12, 13, 0.05);
  pointer-events: none;
  /* No transition until .is-thumb-ready: avoids animating from 0×0 on first paint */
  transition: none;
  opacity: 0;
}

/* Visible; no position motion until .is-thumb-animated (avoids animating 2nd layout pass on load) */
.tv-pf__picker.is-thumb-ready .tv-pf__picker-thumb {
  opacity: 1;
  transition: none;
}

/* Slides only after first layout is stable; user clicks and later resizes get motion */
.tv-pf__picker.is-thumb-animated .tv-pf__picker-thumb {
  transition:
    left 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    top 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.tv-pf__pill {
  position: relative;
  z-index: 1;
  padding: 12px 48px;
  border: 0;
  border-radius: 70px;
  background: transparent;
  color: #5f5f5f;
  font: 600 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.2s ease, transform 0.1s ease, filter 0.15s ease;
}

.tv-pf__pill:hover:not(.is-active) {
  background: rgba(66, 66, 67, 0.12);
  color: var(--tv-dark);
}

.tv-pf__pill:active:not(.is-active) {
  background: rgba(66, 66, 67, 0.22);
  transform: scale(0.99);
}

.tv-pf__pill.is-active {
  color: #f3f3f3;
}

.tv-pf__pill.is-active:hover {
  filter: brightness(1.04);
}

.tv-pf__pill.is-active:active {
  filter: brightness(0.92);
  transform: scale(0.99);
}

.tv-pf__pill:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: 2px;
}

/* Tier table */
.tv-pf__table {
  width: 100%;
  max-width: 100%;
  flex-shrink: 0;
}

.tv-pf__table[hidden] {
  display: none !important;
}

.tv-pf__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.tv-pf__row > div {
  display: flex;
  align-items: center;
  height: 72px;
  padding: 16px 32px 16px 88px;
  border-bottom: 0.5px solid #424243;
  color: #525252;
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  box-sizing: border-box;
  overflow: hidden;
  white-space: nowrap;
}

.tv-pf__row--hd > div {
  font-weight: 600;
}

/* Appearance & Feel — min 72px (Figma); grows for long copy */
.tv-pf__row--app > div {
  min-height: 72px;
  height: auto;
  align-items: flex-start;
  white-space: normal;
  overflow: visible;
  padding-top: 16px;
  padding-bottom: 16px;
}

/* Package — min 140px (Figma) */
.tv-pf__row--pkg > div {
  min-height: 140px;
  height: auto;
  align-items: flex-start;
  overflow: visible;
  padding-top: 16px;
  padding-bottom: 16px;
  border-bottom: none;
}

.tv-pf__row--pkg ul {
  margin: 0;
  padding: 0;
}

.tv-pf__row--pkg li {
  list-style: disc outside;
  margin-left: 27px;
  font: 400 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  color: #525252;
}

/* Stars row */
.tv-pf__stars {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tv-pf__stars img {
  display: block;
  width: 24px;
  height: 24px;
}

/* Enquire Now CTA — pinned to bottom */
.tv-pf__cta {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  gap: 16px;
  height: 75px;
  margin-top: auto;
  background: var(--tv-btn-bg);
  border-top: 0.5px solid #424243;
  color: #f3f3f3;
  font: 600 18px/1.5 "Gill Sans", "Gill Sans MT", sans-serif;
  text-decoration: none;
  cursor: pointer;
  transition: var(--tv-btn-t);
}

.tv-pf__cta:hover {
  background: var(--tv-btn-bg-hover);
  color: var(--tv-pearl);
}

.tv-pf__cta:active {
  background: var(--tv-btn-bg-active);
  color: var(--tv-pearl);
}

.tv-pf__cta:focus-visible {
  outline: 2px solid var(--tv-gold);
  outline-offset: -2px;
}

.tv-pf__cta img {
  display: block;
  width: 24px;
  height: 24px;
}

@media (max-width: 1439px) {
  .tv-pf {
    grid-template-columns: 1fr;
    width: 100%;
    min-height: 0;
  }

  .tv-pf__fig {
    width: 100%;
    min-height: min(60vw, 640px);
    max-height: 80vh;
  }

  .tv-pf__panel {
    width: 100%;
    min-height: 0;
    height: auto;
  }

  .tv-pf__table {
    width: 100%;
  }

  .tv-pf__row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .tv-pf__row > div {
    padding: 12px 16px 12px 20px;
    font-size: 16px;
  }

  .tv-pf__row--app > div {
    white-space: normal;
  }

  .tv-pf__row--hd > div {
    font-size: 16px;
  }
}

/* Our products — mobile (Figma 1:518). After 1439px so rows stay single-column, flex gap fixed. */
@media (max-width: 980px) {
  .tv-pf {
    min-height: 0;
  }

  .tv-pf__fig {
    min-height: 0;
    max-height: none;
  }

  .tv-pf__fig-img {
    height: auto;
    max-height: min(75vh, 560px);
    min-height: 200px;
    object-fit: cover;
    object-position: center;
  }

  .tv-pf__panel {
    min-height: 0;
    height: auto;
    overflow: visible;
  }

  /* Figma 1:476 — mobile: vertical tier stack in rounded card; thumb still tracks active row */
  .tv-pf__top {
    flex: 0 0 auto;
    align-items: stretch;
    padding-top: clamp(20px, 5vw, 36px);
    gap: clamp(24px, 5vw, 40px);
  }

  .tv-pf__picker {
    box-sizing: border-box;
    flex-direction: column;
    align-items: stretch;
    align-self: center;
    width: calc(100% - 2 * var(--tv-m-gutter));
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 8px;
    padding: 12px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: none;
  }

  .tv-pf__picker-thumb {
    box-shadow: none;
    border-radius: 12px;
  }

  .tv-pf__pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    text-align: center;
    padding: 12px 16px;
    font-size: 16px;
    line-height: 1.3;
  }

  .tv-pf__table {
    width: 100%;
    align-self: stretch;
  }

  .tv-pf__row--hd {
    display: none;
  }

  .tv-pf__row {
    grid-template-columns: 1fr;
    border-bottom: 0.5px solid #424243;
  }

  .tv-pf__row > div {
    height: auto;
    min-height: 0;
    white-space: normal;
    overflow: visible;
    padding: 10px 16px 10px 20px;
    border-bottom: 0;
  }

  .tv-pf__row > div:first-of-type {
    font-weight: 600;
    padding-bottom: 4px;
  }

  .tv-pf__row--app > div {
    min-height: 0;
    height: auto;
  }

  .tv-pf__row--pkg > div {
    min-height: 0;
  }

  .tv-pf__stars {
    flex-wrap: wrap;
  }

  .tv-pf__cta {
    margin-top: clamp(24px, 5vw, 40px);
  }
}

@media (max-width: 980px) {
  .tv-contact-hero {
    padding-top: 0;
  }

  .tv-contact-hero__image--desktop {
    display: none;
  }

  .tv-contact-hero__image--mobile {
    display: block;
    height: 520px;
    object-fit: cover;
  }

  .tv-contact-hero__overlay {
    height: 315px;
  }

  .tv-contact-hero__copy {
    right: 20px;
    bottom: 20px;
    left: 20px;
    max-width: 280px;
  }

  .tv-contact-hero__copy h1 {
    font-size: 32px;
  }

  .tv-contact-section {
    padding: 56px 0 clamp(28px, 4vw, 44px);
  }

  .tv-contact-intro {
    width: auto;
    margin: 0 0 48px;
    padding: 0 20px;
  }

  /* Full-bleed cream shell: match partner page / home #contact (no dark side gutters) */
  .tv-contact-shell {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(40px, 5vw, 48px) var(--tv-m-gutter) clamp(56px, 9vw, 80px);
    box-shadow: none;
  }

  .tv-contact-tabs {
    gap: 24px;
  }

  .tv-contact-tab {
    padding-bottom: 14px;
    font-size: 14px;
  }

  .tv-contact-panels {
    margin-top: 56px;
  }

  .tv-contact-form .tv-partner-form__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .tv-contact-form .tv-partner-form-field--full {
    grid-column: auto;
  }

  .tv-contact-question__choices {
    display: grid;
    gap: 10px;
  }

  .tv-contact-details {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .tv-contact-detail-card {
    min-height: 64px;
    padding: 20px 24px;
    justify-content: flex-start;
    font-size: 16px;
  }
}
