/* Thanks Up main content only. Parent Grupo masthead/footer keep a separate white ground.
   Official colors: PMS 431 C / PMS 130 C. Typography fallback documented in manual audit. */
.thanks-up-family main {
  --up-gray: #5b6670;
  --up-orange: #f5a800;
  --up-dark: #231f20;
  --plum: var(--up-gray);
  --cream: #f3f2f3;
  --muted: #505b64;
  --ink: #27282b;
  --line: #d2d5d7;
  --dark: var(--up-dark);
  color: var(--ink);
}
.thanks-up-family main :is(a,button):focus-visible { outline-color: #5b6670; }
.thanks-up-family main .ia-closing { background: var(--up-dark); color: #fff; border-top: 5px solid var(--up-orange); }
.thanks-up-family main .ia-closing .ia-button { color: var(--up-dark); background: var(--up-orange); border-color: var(--up-orange); }
.thanks-up-family main .ia-closing .eyebrow { color: var(--up-orange); }
.thanks-up-family .ia-card { background: #f7f7f7; border-color: #d2d5d7; }
.thanks-up-family a.ia-card:hover { background: #f3f2f3; border-color: var(--up-gray); }
.thanks-up-family .ia-subnav { background: white; border-color: var(--line); }
.thanks-up-family .ia-subnav a { text-decoration: none; }
.thanks-up-family .ia-subnav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.thanks-up-family .ia-journey li { border-top: 2px solid var(--up-gray); }
.thanks-up-family .ia-journey li:nth-child(2) { border-color: var(--up-orange); }
.tu-brand-intro { display: flex; align-items: center; justify-content: space-between; gap: 32px; background: #fff; padding-block: 10px 25px; }
.tu-logo-space { padding: 40px 42px; margin-left: -42px; background: #fff; }
.tu-logo-space img { width: 310px; height: auto; }
.tu-brand-intro > span { color: #5b6670; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.tu-hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 6%; padding-block: 70px 50px; background: var(--up-dark); color: white; }
.tu-hero-copy { min-width: 0; }
.tu-hero-copy .eyebrow { color: var(--up-orange); font-size: 11px; letter-spacing: .11em; }
.tu-hero-copy h1 { font-size: clamp(40px, 4.2vw, 64px); font-weight: 550; line-height: 1.04; letter-spacing: -.045em; margin: 24px 0; max-width: 620px; text-wrap: balance; }
.tu-hero-promise { font-size: clamp(23px, 2.1vw, 32px); color: var(--up-orange); line-height: 1.25; letter-spacing: -.025em; max-width: 540px; }
.tu-context { margin-top: 24px; max-width: 450px; font-size: 16px; color: #dedbdb; line-height: 1.6; }
.tu-primary-link { display: inline-flex; align-items: center; gap: 38px; padding: 17px 22px; min-height: 52px; margin-top: 30px; background: var(--up-orange); color: var(--up-dark); font-size: 15px; font-weight: 550; }
.tu-primary-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.thanks-up-family main .tu-primary-link:focus-visible { outline-color: white; }
.tu-signature { min-width: 0; margin: 0; }
.tu-map { display: block; width: 100%; height: auto; overflow: visible; }
.tu-routes { stroke: #b5a27e; stroke-width: 1.8; }
.tu-origin { fill: var(--up-dark); stroke: var(--up-orange); stroke-width: 2; }
.tu-map-labels { fill: #e5e1e6; font-family: var(--preview-font); font-size: 13px; }
.tu-destination { fill: none; stroke: var(--up-orange); stroke-width: 1.5; }
.tu-destination circle:nth-child(2) { fill: var(--up-orange); stroke: none; }
.tu-destination text { stroke: none; fill: #e5e1e6; font-size: 14px; }
.tu-destination-line { fill: none; stroke: #807873; stroke-width: 1.5; }
.tu-route-light { opacity: 0; pointer-events: none; }
.tu-signature figcaption { border-top: 1px solid #625b56; padding-top: 19px; margin: 16px 20px 0; color: #e5e1e6; font-size: 13px; line-height: 1.7; }
.tu-signature figcaption span { color: var(--up-orange); }
.tu-logic { background: var(--up-dark); color: #e5e1e6; padding-block: 22px 32px; }
.tu-logic ol { display: flex; flex-wrap: wrap; padding: 22px 0 0; margin: 0; list-style: none; border-top: 1px solid #625b56; gap: 15px; justify-content: space-between; }
.tu-logic li { display: flex; gap: 28px; align-items: center; font-size: 12px; }
.tu-logic li:not(:last-child)::after { content: '→'; color: var(--up-orange); }
.tu-business-description { max-width: 770px; font-size: 17px; color: var(--muted); margin: -10px 0 42px; }
.tu-editorial-routes, .tu-editorial-routes.ia-cards:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--line); }
.tu-editorial-routes .ia-card { display: grid; grid-template-columns: 40px 1fr 1.3fr; gap: 20px 40px; padding: 36px 0; border: 0; border-bottom: 1px solid var(--line); background: white; }
.tu-editorial-routes .ia-card > .eyebrow { grid-row: 1 / 3; padding-top: 5px; }
.tu-editorial-routes h3 { grid-row: 1 / 3; font-size: clamp(28px, 2.6vw, 38px); max-width: 350px; }
.tu-editorial-routes .ia-card-action { grid-column: 3; border: 0; padding: 0; width: auto; justify-content: flex-start; gap: 36px; color: #505b64; }
.tu-partners { padding-block: 80px; }
.tu-partners > p:not(.eyebrow) { max-width: 620px; margin-bottom: 24px; color: var(--muted); }
/* A single bounded pass: no morphing, rotation, repeated loops or flashing of the symbol. */
@media (prefers-reduced-motion: no-preference) {
  .tu-signature.is-tracing .tu-route { animation: tu-arrive 1.35s ease-out both; stroke-dasharray: 100; }
  .tu-signature.is-tracing .tu-route-2 { animation-delay: .12s; }
  .tu-signature.is-tracing .tu-route-3 { animation-delay: .24s; }
  .tu-signature.is-tracing .tu-route-light { opacity: 1; }
  .tu-signature.is-tracing .tu-light { stroke-dasharray: 14 100; animation: tu-clarity 1.6s ease-in-out 1.25s both; }
  .tu-signature.is-tracing .tu-light-2 { animation-delay: 1.4s; }
  .tu-signature.is-tracing .tu-light-3 { animation-delay: 1.55s; }
  .tu-signature.is-tracing .tu-destination-line { animation: tu-resolve 1s ease-out 2.6s both; }
}
@keyframes tu-arrive { from { stroke-dashoffset: 100; opacity: .25; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes tu-clarity { 0% { stroke-dashoffset: 14; opacity: 0; } 20%,70% { opacity: .85; } 100% { stroke-dashoffset: -100; opacity: 0; } }
@keyframes tu-resolve { from { stroke: #807873; } to { stroke: #f5a800; } }
@media (max-width: 1050px) { .tu-hero-grid { gap: 3%; } .tu-logic li { gap: 13px; } }
@media (max-width: 760px) {
  .tu-brand-intro { padding-block: 4px 16px; }
  .tu-logo-space { margin: 0; padding: 34px 30px; }
  .tu-logo-space img { width: 260px; }
  .tu-brand-intro > span { display: none; }
  .tu-hero-grid { grid-template-columns: 1fr; padding-block: 38px 28px; gap: 30px; }
  .tu-hero-copy h1 { font-size: clamp(38px, 9.8vw, 56px); max-width: 550px; margin-block: 20px; }
  .tu-hero-promise { font-size: 26px; }
  .tu-context { margin-top: 22px; }
  .tu-map { max-width: 480px; margin: auto; }
  .tu-map-labels { font-size: 17px; }
  .tu-destination text { font-size: 17px; }
  .tu-signature figcaption { margin-inline: 0; font-size: 13px; }
  .tu-logic { padding-top: 0; padding-bottom: 26px; }
  .tu-logic ol { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .tu-logic li { justify-content: space-between; font-size: 12px; }
  .tu-logic li::after { margin-right: 12px; }
  .tu-editorial-routes .ia-card { grid-template-columns: 24px 1fr; gap: 16px; padding-block: 30px; }
  .tu-editorial-routes h3 { grid-column: 2; grid-row: 1; font-size: 29px; }
  .tu-editorial-routes .ia-card > .eyebrow { grid-row: 1; }
  .tu-editorial-routes .ia-card > p { grid-column: 2; }
  .tu-editorial-routes .ia-card-action { grid-column: 2; }
  .tu-business-description { font-size: 16px; }
  .tu-partners { padding-block: 48px; }
}

.thanks-up-family main .text-link { border-color: #9aa2a8; }
.thanks-up-family main ::selection { background: #f5a800; color: #231f20; }
