:root {
  --tg-ink: #290a59;
  --tg-paper: #fef7e8;
  --tg-pink: #e83882;
  --tg-acid: #d8ec56;
  --tg-green: #145130;
  --tg-violet: #7d56dc;
  --tg-line: color-mix(in srgb, var(--tg-ink) 22%, transparent);
  --tg-shadow: 0 22px 60px rgba(41, 10, 89, .13);
}

.tg-editorial {
  background: var(--tg-paper, #fef7e8);
  color: var(--tg-ink, #290a59);
  font-family: var(--tg-font-body, "Archivo", system-ui, sans-serif);
  line-height: 1.55;
  min-width: 0;
  overflow: clip;
}

.tg-editorial *,
.tg-editorial *::before,
.tg-editorial *::after { box-sizing: border-box; }

.tg-editorial img { display: block; max-width: 100%; }
.tg-editorial a { color: inherit; }
.tg-editorial h1,
.tg-editorial h2,
.tg-editorial h3,
.tg-editorial p { margin: 0; }
.tg-editorial h1,
.tg-editorial h2,
.tg-editorial h3,
.tg-kicker,
.tg-card__index,
.tg-card__eyebrow,
.tg-program-card__number,
.tg-status-pill,
.tg-button,
.tg-product-detail__stamp,
.tg-icon-badge { font-family: var(--tg-font-display, "Garaje 0503 VAR", Impact, sans-serif); text-transform: uppercase; }

.tg-editorial h1 { font-size: clamp(3.75rem, 8.3vw, 10.7rem); line-height: .86; letter-spacing: -.055em; max-width: 11ch; }
.tg-editorial h2 { font-size: clamp(2.35rem, 5.5vw, 6.6rem); line-height: .9; letter-spacing: -.045em; max-width: 13ch; }
.tg-editorial h3 { font-size: clamp(1.25rem, 1.9vw, 2rem); line-height: 1.02; letter-spacing: -.025em; }
.tg-editorial p { max-width: 66ch; }

.tg-kicker { color: var(--tg-pink, #e83882); font-size: .78rem; letter-spacing: .16em; line-height: 1.15; }
.tg-lede { font-size: clamp(1.05rem, 1.5vw, 1.65rem); line-height: 1.35; max-width: 38rem !important; }
.tg-note { border-left: 3px solid var(--tg-pink, #e83882); color: color-mix(in srgb, var(--tg-ink) 75%, transparent); font-size: .85rem; margin-top: 1.75rem !important; padding-left: 1rem; }
.tg-note--light { color: rgba(254, 247, 232, .78); }
.tg-button { align-items: center; border: 2px solid transparent; border-radius: 999px; display: inline-flex; font-size: .8rem; gap: .6rem; justify-content: center; letter-spacing: .08em; min-height: 3.5rem; padding: .85rem 1.5rem; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.tg-button:hover, .tg-button:focus-visible { box-shadow: var(--tg-shadow); transform: translateY(-2px); }
.tg-button:focus-visible, .tg-text-link:focus-visible, .tg-legal-nav a:focus-visible, .tg-card--link:focus-visible { outline: 3px solid var(--tg-pink); outline-offset: 4px; }
.tg-button--pink { background: var(--tg-pink); color: #fff; }
.tg-button--ink { background: var(--tg-ink); color: var(--tg-paper); }
.tg-button--lime { background: var(--tg-acid); color: var(--tg-ink); }
.tg-text-link { display: inline-flex; font-family: var(--tg-font-display, "Garaje 0503 VAR", Impact, sans-serif); font-size: .8rem; letter-spacing: .08em; text-decoration-thickness: 2px; text-underline-offset: .25em; text-transform: uppercase; }
.tg-text-link::after { content: "↗"; margin-left: .5rem; text-decoration: none; }

.tg-editorial__hero { display: grid; gap: clamp(2rem, 7vw, 9rem); grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); margin-inline: auto; max-width: 1920px; min-height: min(69rem, 78vh); padding: clamp(5rem, 9vw, 10rem) clamp(1.25rem, 8.5vw, 10rem) clamp(4rem, 7vw, 8rem); position: relative; }
.tg-editorial__hero--split { align-items: center; }
.tg-editorial__hero--compact { align-items: center; min-height: 38rem; }
.tg-editorial__hero--compact .tg-editorial__hero-copy { max-width: 62rem; }
.tg-editorial__hero-copy { display: flex; flex-direction: column; gap: clamp(1.3rem, 2.6vw, 2.75rem); justify-content: center; position: relative; z-index: 1; }
.tg-editorial__hero-copy h1 + .tg-lede { margin-top: .25rem; }
.tg-editorial__hero-copy .tg-button { align-self: flex-start; margin-top: .65rem; }
.tg-editorial__hero-art { align-self: stretch; display: flex; flex-direction: column; gap: .75rem; justify-content: center; margin: 0; min-height: 24rem; position: relative; }
.tg-editorial__hero-art::before { background: var(--tg-acid); border-radius: 50%; content: ""; height: 28%; left: -8%; opacity: .8; position: absolute; top: 14%; width: 28%; z-index: 0; }
.tg-editorial__hero-art img { aspect-ratio: 1.12; border-radius: 48% 52% 45% 55% / 57% 44% 56% 43%; box-shadow: var(--tg-shadow); height: auto; object-fit: cover; position: relative; width: 100%; z-index: 1; }
.tg-editorial__hero-art figcaption { font-size: .75rem; max-width: 35rem; opacity: .7; }
.tg-editorial__hero-stamp { align-items: center; aspect-ratio: 1; background: var(--tg-green); border-radius: 50%; color: var(--tg-paper); display: flex; flex-direction: column; font-family: var(--tg-font-display, "Garaje 0503 VAR", Impact, sans-serif); font-size: clamp(1.7rem, 3vw, 4.5rem); justify-content: center; letter-spacing: -.04em; line-height: .86; max-width: 29rem; padding: 2rem; text-align: center; transform: rotate(-9deg); }
.tg-editorial__hero-stamp img { filter: brightness(0) invert(1); margin-bottom: 1rem; max-height: 30%; object-fit: contain; }

.tg-section { margin-inline: auto; max-width: 1920px; padding: clamp(4.5rem, 9vw, 10rem) clamp(1.25rem, 8.5vw, 10rem); position: relative; }
.tg-section--ink { background: var(--tg-ink); color: var(--tg-paper); }
.tg-section--paper { background: #fffaf0; }
.tg-section--pink { background: var(--tg-pink); color: #fff; }
.tg-section--acid { background: var(--tg-acid); }
.tg-section__heading { display: grid; gap: 1.2rem; margin-bottom: clamp(2rem, 5vw, 5rem); }
.tg-section__heading > p:last-child { font-size: 1rem; max-width: 46rem; }
.tg-section--ink .tg-kicker, .tg-section--pink .tg-kicker { color: var(--tg-acid); }
.tg-section--ink .tg-text-link, .tg-section--pink .tg-text-link { color: inherit; }
.tg-section--ink .tg-note, .tg-section--pink .tg-note { border-color: var(--tg-acid); }
.tg-editorial__split { align-items: start; display: grid; gap: clamp(2rem, 7vw, 9rem); grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.tg-prose { display: grid; gap: 1.25rem; font-size: clamp(1rem, 1.22vw, 1.35rem); }
.tg-prose--wide { max-width: 65rem; }
.tg-prose--light { color: rgba(254,247,232,.9); }
.tg-prose--legal { font-size: 1.05rem; max-width: 55rem; }
.tg-prose--legal h2 { margin-bottom: .5rem; }
.tg-prose--legal h3 { font-size: 1.35rem; margin-top: 1.4rem; }

.tg-card-grid { display: grid; gap: 1rem; }
.tg-card-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tg-card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg-card-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tg-card { background: #fffaf0; border: 1px solid var(--tg-line); display: flex; flex-direction: column; gap: 1.05rem; min-height: 16rem; padding: clamp(1.25rem, 2.4vw, 2.7rem); position: relative; }
.tg-card p { font-size: .98rem; }
.tg-card .tg-text-link { margin-top: auto; }
.tg-card--dark { background: color-mix(in srgb, var(--tg-paper) 9%, transparent); border-color: rgba(254,247,232,.27); }
.tg-card--dark p { color: rgba(254,247,232,.83); }
.tg-card--dark .tg-card__index { color: var(--tg-acid); }
.tg-card--pink, .tg-card--colour { background: var(--tg-pink); border-color: transparent; color: #fff; }
.tg-card--colour:nth-child(2) { background: var(--tg-violet); }
.tg-card--colour:nth-child(3) { background: var(--tg-green); }
.tg-card--colour:nth-child(4) { background: var(--tg-ink); }
.tg-card--colour .tg-card__index { color: var(--tg-acid); }
.tg-card--link { color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.tg-card--link:hover { box-shadow: var(--tg-shadow); transform: translateY(-3px); }
.tg-card__index { color: var(--tg-pink); font-size: .75rem; letter-spacing: .14em; }
.tg-card__eyebrow { color: var(--tg-pink); font-size: .72rem; letter-spacing: .14em; }
.tg-card--dark .tg-card__eyebrow { color: var(--tg-acid); }
.tg-tag-list, .tg-checklist, .tg-steps { list-style: none; margin: 0; padding: 0; }
.tg-tag-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; }
.tg-tag-list li { border: 1px solid currentColor; border-radius: 999px; font-size: .72rem; padding: .3rem .6rem; }
.tg-checklist { display: grid; gap: 1.25rem; }
.tg-checklist li { border-top: 1px solid currentColor; padding-top: .8rem; }
.tg-checklist li::before { color: var(--tg-pink); content: "✦"; margin-right: .7rem; }
.tg-section--ink .tg-checklist li::before, .tg-section--pink .tg-checklist li::before { color: var(--tg-acid); }
.tg-steps { display: grid; gap: 1rem; }
.tg-steps li { align-items: start; border-top: 1px solid currentColor; display: grid; gap: 1rem; grid-template-columns: 3rem 1fr; padding-top: 1rem; }
.tg-steps span, .tg-icon-badge { color: var(--tg-pink); font-family: var(--tg-font-display, "Garaje 0503 VAR", Impact, sans-serif); font-size: .9rem; }
.tg-status-pill { align-self: flex-start; border: 1px solid currentColor; border-radius: 999px; font-size: .66rem; letter-spacing: .1em; margin-top: auto; padding: .35rem .6rem; }

.tg-program-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg-program-card { border-top: 2px solid var(--tg-acid); display: flex; flex-direction: column; gap: 1rem; min-height: 14rem; padding-top: 1rem; }
.tg-program-card__number { color: var(--tg-acid); font-size: .75rem; letter-spacing: .14em; }
.tg-program-card p { color: rgba(254,247,232,.84); }
.tg-check-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg-check-grid > div { border-top: 2px solid var(--tg-acid); display: grid; gap: .7rem; padding-top: 1rem; }
.tg-check-grid p { color: rgba(254,247,232,.8); }
.tg-icon-badge { color: var(--tg-acid); }
.tg-inline-links { display: flex; flex-wrap: wrap; gap: 1rem 2rem; }
.tg-arrow { color: var(--tg-pink); font-size: 2rem; margin-top: auto; }

.tg-faq-list { border-top: 1px solid var(--tg-line); }
.tg-faq-list details { border-bottom: 1px solid var(--tg-line); padding: 1.4rem 0; }
.tg-faq-list summary { cursor: pointer; font-family: var(--tg-font-display, "Garaje 0503 VAR", Impact, sans-serif); font-size: clamp(1.1rem, 1.8vw, 1.8rem); list-style: none; padding-right: 3rem; position: relative; }
.tg-faq-list summary::-webkit-details-marker { display: none; }
.tg-faq-list summary::after { content: "+"; font-family: system-ui, sans-serif; font-size: 1.8rem; position: absolute; right: 0; top: -.3rem; }
.tg-faq-list details[open] summary::after { content: "–"; }
.tg-faq-list details p { margin-top: 1rem; max-width: 55rem; }
.tg-faq-list details .tg-text-link { margin-top: 1rem; }

.tg-product-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg-product-card { background: #fffaf0; border: 1px solid var(--tg-line); display: flex; flex-direction: column; min-width: 0; }
.tg-product-card__image { aspect-ratio: 1 / 1.08; background: #eadff4; overflow: hidden; }
.tg-product-card__image img { height: 100%; object-fit: cover; transition: transform .3s ease; width: 100%; }
.tg-product-card:hover img { transform: scale(1.035); }
.tg-product-card__meta { display: grid; gap: .65rem; padding: 1.25rem; }
.tg-product-card__meta p { font-size: .9rem; }

.tg-product-detail { display: grid; gap: clamp(2rem, 7vw, 9rem); grid-template-columns: minmax(0, 1.05fr) minmax(18rem, .95fr); margin-inline: auto; max-width: 1920px; padding: clamp(5rem, 9vw, 10rem) clamp(1.25rem, 8.5vw, 10rem); }
.tg-product-detail__media { align-self: start; background: #eee1f4; min-height: min(65vw, 52rem); overflow: hidden; position: relative; }
.tg-product-detail__media img { height: 100%; min-height: min(65vw, 52rem); object-fit: cover; width: 100%; }
.tg-product-detail__stamp { background: var(--tg-acid); border-radius: 50%; bottom: 2rem; font-size: 1rem; line-height: .9; padding: 2rem 1.35rem; position: absolute; right: 2rem; text-align: center; transform: rotate(10deg); }
.tg-product-detail__copy { align-self: center; display: grid; gap: 1.5rem; max-width: 35rem; }
.tg-product-detail__copy h1 { font-size: clamp(3.6rem, 8vw, 8rem); }
.tg-product-detail__intro { font-size: 1.1rem; }
.tg-product-detail__field { border-top: 1px solid var(--tg-line); display: grid; gap: .7rem; padding-top: 1rem; }
.tg-product-detail__field h2 { font-size: 1.1rem; letter-spacing: .05em; }
.tg-swatch-list { list-style: none; margin: 0; padding: 0; }
.tg-swatch-list li { align-items: center; display: flex; gap: .7rem; font-size: .9rem; }
.tg-swatch { border: 2px solid var(--tg-ink); border-radius: 50%; display: inline-block; height: 1.3rem; width: 1.3rem; }
.tg-swatch--black { background: #191521; }

.tg-gallery-grid { display: grid; gap: 1rem; grid-auto-flow: dense; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tg-gallery-card { background: #fffaf0; border: 1px solid var(--tg-line); margin: 0; }
.tg-gallery-card:nth-child(5n+1) { grid-row: span 2; }
.tg-gallery-card img { aspect-ratio: 1 / 1; height: 100%; object-fit: cover; width: 100%; }
.tg-gallery-card:nth-child(5n+1) img { aspect-ratio: 1 / 1.5; }
.tg-gallery-card figcaption { font-size: .72rem; padding: .7rem; }

.tg-legal-layout { display: grid; gap: clamp(2rem, 7vw, 8rem); grid-template-columns: minmax(12rem, .35fr) minmax(0, 1fr); }
.tg-legal-nav { align-self: start; display: grid; gap: .75rem; position: sticky; top: 2rem; }
.tg-legal-nav a { font-family: var(--tg-font-display, "Garaje 0503 VAR", Impact, sans-serif); font-size: .85rem; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.tg-legal-nav a::before { color: var(--tg-pink); content: "↳ "; }

@media (max-width: 920px) {
  .tg-editorial__hero, .tg-product-detail { gap: 3rem; grid-template-columns: 1fr; }
  .tg-editorial__hero { min-height: auto; }
  .tg-editorial__hero-art { margin-inline: auto; max-width: 40rem; width: 100%; }
  .tg-editorial__hero-stamp { max-width: 20rem; }
  .tg-editorial__split { gap: 2rem; grid-template-columns: 1fr; }
  .tg-card-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tg-legal-layout { grid-template-columns: 1fr; }
  .tg-legal-nav { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; position: static; }
  .tg-product-detail__media, .tg-product-detail__media img { min-height: min(95vw, 45rem); }
}

@media (max-width: 640px) {
  .tg-editorial h1 { font-size: clamp(3.35rem, 17vw, 5.8rem); }
  .tg-editorial h2 { font-size: clamp(2.4rem, 13vw, 4.4rem); }
  .tg-editorial__hero, .tg-product-detail { padding: 4.5rem 1rem 3.5rem; }
  .tg-section { padding: 3.8rem 1rem; }
  .tg-editorial__hero-art { min-height: 16rem; }
  .tg-editorial__hero-art img { aspect-ratio: 1 / 1.05; }
  .tg-card-grid--2, .tg-card-grid--3, .tg-card-grid--4, .tg-program-grid, .tg-check-grid, .tg-product-grid { grid-template-columns: 1fr; }
  .tg-card { min-height: 13rem; }
  .tg-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tg-gallery-card:nth-child(5n+1) { grid-row: auto; }
  .tg-gallery-card:nth-child(5n+1) img { aspect-ratio: 1 / 1; }
  .tg-product-detail__media, .tg-product-detail__media img { min-height: 21rem; }
  .tg-product-detail__stamp { bottom: 1rem; right: 1rem; }
  .tg-button { min-height: 3.1rem; width: 100%; }
  .tg-editorial__hero-copy .tg-button { align-self: stretch; }
  .tg-inline-links { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
  .tg-button, .tg-card--link, .tg-product-card__image img { transition: none; }
}

/* Figma-led editorial compositions for the current 2026 vertical. These rules
 * stay inside the editorial root so the shared home and operational flows keep
 * their own layout and tokens. */
.tg-editorial.tg-fidelity-page {
  --tg-fidelity-purple: #903a8c;
  --tg-fidelity-green: #145130;
  --tg-fidelity-yellow: #f2d64b;
  background: var(--tg-paper, #fef7e8);
}

.tg-editorial.tg-fidelity-page .tg-fidelity-hero {
  isolation: isolate;
  min-height: clamp(34rem, 56vw, 63rem);
  overflow: hidden;
  position: relative;
}

.tg-editorial.tg-fidelity-page .tg-fidelity-hero__media,
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__media img,
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__veil {
  inset: 0;
  position: absolute;
}

.tg-editorial.tg-fidelity-page .tg-fidelity-hero__media { margin: 0; z-index: -2; }
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__media img {
  height: 100%;
  max-width: none;
  object-fit: cover;
  width: 100%;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__veil {
  background: linear-gradient(90deg, rgba(20, 8, 42, .78), rgba(20, 8, 42, .2) 65%, rgba(20, 8, 42, .08));
  z-index: -1;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy {
  align-self: end;
  color: var(--tg-paper, #fef7e8);
  display: flex;
  flex-direction: column;
  gap: clamp(1.1rem, 2.2vw, 2rem);
  justify-content: end;
  max-width: min(70rem, 76vw);
  min-height: inherit;
  padding: clamp(5rem, 10vw, 11rem) clamp(1.25rem, 8.5vw, 10rem) clamp(4rem, 8vw, 8rem);
  position: relative;
  z-index: 1;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy h1 {
  font-size: clamp(3.8rem, 10vw, 11rem);
  max-width: 10ch;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy .tg-lede { color: rgba(254, 247, 232, .9); }
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy .tg-button { align-self: flex-start; }
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__accent {
  bottom: 9%;
  max-width: min(34vw, 31rem);
  opacity: .76;
  position: absolute;
  right: 9%;
  transform: rotate(-8deg);
  z-index: 0;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--faq .tg-fidelity-hero__media img {
  object-position: center 58%;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--faq .tg-fidelity-hero__veil {
  background: linear-gradient(90deg, rgba(41, 10, 89, .78), rgba(41, 10, 89, .25) 68%, rgba(41, 10, 89, .12));
}

.tg-editorial.tg-fidelity-page .tg-fidelity-band {
  align-items: center;
  display: grid;
  gap: clamp(2rem, 7vw, 8rem);
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  margin-inline: auto;
  max-width: 1920px;
  overflow: hidden;
  padding: clamp(4.5rem, 8vw, 9rem) clamp(1.25rem, 8.5vw, 10rem);
  position: relative;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-band__copy { display: grid; gap: 1.4rem; position: relative; z-index: 1; }
.tg-editorial.tg-fidelity-page .tg-fidelity-band__copy h2 { max-width: 11ch; }
.tg-editorial.tg-fidelity-page .tg-fidelity-band__copy p:not(.tg-kicker) { max-width: 42rem; }
.tg-editorial.tg-fidelity-page .tg-fidelity-band--green { background: var(--tg-fidelity-green); color: var(--tg-paper); }
.tg-editorial.tg-fidelity-page .tg-fidelity-band--purple { background: var(--tg-fidelity-purple); color: var(--tg-paper); }
.tg-editorial.tg-fidelity-page .tg-fidelity-band--green .tg-kicker,
.tg-editorial.tg-fidelity-page .tg-fidelity-band--purple .tg-kicker { color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-band--green .tg-status-pill,
.tg-editorial.tg-fidelity-page .tg-fidelity-band--purple .tg-status-pill { border-color: var(--tg-fidelity-yellow); color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-band__texture {
  align-self: stretch;
  justify-self: end;
  max-height: 28rem;
  object-fit: contain;
  opacity: .76;
  width: min(100%, 38rem);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  transform: rotate(-2deg);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack figure { background: var(--tg-paper); margin: 0; padding: .6rem; }
.tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack figure:nth-child(2) { margin-top: 4rem; transform: rotate(4deg); }
.tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack img { aspect-ratio: 1 / .82; height: 100%; object-fit: cover; width: 100%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack figcaption { color: var(--tg-ink); font-size: .68rem; letter-spacing: .08em; padding: .55rem .25rem .1rem; text-transform: uppercase; }
.tg-editorial.tg-fidelity-page .tg-fidelity-stays { background: var(--tg-paper); }
.tg-editorial.tg-fidelity-page .tg-fidelity-stay-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tg-editorial.tg-fidelity-page .tg-fidelity-stay-card {
  background: #fffaf0;
  border: 1px solid var(--tg-line);
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-stay-card figure { aspect-ratio: 1 / .82; margin: 0; overflow: hidden; }
.tg-editorial.tg-fidelity-page .tg-fidelity-stay-card figure img { height: 100%; object-fit: cover; width: 100%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-stay-card > div { display: flex; flex: 1; flex-direction: column; gap: .8rem; padding: clamp(1.2rem, 2.4vw, 2.25rem); }
.tg-editorial.tg-fidelity-page .tg-fidelity-stay-card .tg-tag-list { margin-top: auto; }

.tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels article {
  border: 1px solid rgba(254, 247, 232, .28);
  display: grid;
  gap: 1rem;
  padding: clamp(1.25rem, 3vw, 3rem);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels .tg-card__index { color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels h3 { color: var(--tg-paper); }
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels .tg-checklist { color: rgba(254, 247, 232, .9); }
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels .tg-checklist li { border-color: rgba(254, 247, 232, .28); }
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels .tg-checklist li::before { color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-list { background: #fffaf0; }
.tg-editorial.tg-fidelity-page .tg-fidelity-faq-list .tg-faq-list { max-width: 68rem; }

.tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero {
  align-items: center;
  background: var(--tg-paper);
  display: grid;
  gap: clamp(2rem, 8vw, 9rem);
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  margin-inline: auto;
  max-width: 1920px;
  min-height: min(58rem, 86vh);
  overflow: hidden;
  padding: clamp(5rem, 9vw, 10rem) clamp(1.25rem, 8.5vw, 10rem);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero__copy { display: grid; gap: clamp(1.2rem, 2.6vw, 2.5rem); }
.tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero__copy h1 { max-width: 8ch; }
.tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero__art { background: #fffaf0; margin: 0; padding: clamp(1rem, 3vw, 3rem); transform: rotate(2deg); }
.tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero__art img { aspect-ratio: 1.62; height: auto; object-fit: contain; width: 100%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers {
  align-items: center;
  background: linear-gradient(180deg, var(--tg-fidelity-green), #0d4529);
  color: var(--tg-paper);
  display: grid;
  gap: clamp(2rem, 8vw, 9rem);
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  margin-inline: auto;
  max-width: 1920px;
  overflow: hidden;
  padding: clamp(4.5rem, 8vw, 9rem) clamp(1.25rem, 8.5vw, 10rem);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers__copy { display: grid; gap: 1.4rem; }
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers__copy h2 { max-width: 10ch; }
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers__copy .tg-kicker { color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers__copy .tg-status-pill { border-color: var(--tg-fidelity-yellow); color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers__image { margin: 0; }
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers__image img { filter: saturate(1.1); height: auto; width: 100%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-volunteers__image figcaption { font-size: .75rem; margin-top: .75rem; opacity: .8; }
.tg-editorial.tg-fidelity-page .tg-fidelity-participate-options { background: var(--tg-paper); }
.tg-editorial.tg-fidelity-page .tg-fidelity-contribution-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tg-editorial.tg-fidelity-page .tg-fidelity-contribution-grid article { border-top: 3px solid var(--tg-pink); display: grid; gap: .9rem; min-height: 14rem; padding: 1rem 0; }
.tg-editorial.tg-fidelity-page .tg-fidelity-contribution-grid .tg-card__index { color: var(--tg-pink); }
.tg-editorial.tg-fidelity-page .tg-fidelity-process { background: var(--tg-fidelity-green); color: var(--tg-paper); }
.tg-editorial.tg-fidelity-page .tg-fidelity-process .tg-kicker { color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-process .tg-steps span { color: var(--tg-fidelity-yellow); }

.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero {
  isolation: isolate;
  min-height: min(58rem, 84vh);
  overflow: hidden;
  position: relative;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__texture,
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__texture img { inset: 0; margin: 0; position: absolute; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__texture { background: #f1e8d5; z-index: -2; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__texture img { height: 100%; max-width: none; object-fit: cover; opacity: .72; width: 100%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero::after { background: linear-gradient(90deg, rgba(254, 247, 232, .94), rgba(254, 247, 232, .1) 78%); content: ""; inset: 0; position: absolute; z-index: -1; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__copy { display: grid; gap: clamp(1.2rem, 2.6vw, 2.5rem); max-width: 48rem; padding: clamp(5rem, 10vw, 11rem) clamp(1.25rem, 8.5vw, 10rem); position: relative; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__copy h1 { max-width: 8ch; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-grid { background: #fffaf0; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-image { background: #eee1f4; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-image img { object-fit: contain; padding: clamp(.75rem, 2vw, 2rem); }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-note {
  align-items: center;
  background: var(--tg-pink);
  color: #fff;
  display: grid;
  gap: clamp(2rem, 7vw, 8rem);
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  margin-inline: auto;
  max-width: 1920px;
  overflow: hidden;
  padding: clamp(4rem, 8vw, 8rem) clamp(1.25rem, 8.5vw, 10rem);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-note > div { display: grid; gap: 1.3rem; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-note .tg-kicker { color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-note h2 { max-width: 10ch; }
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-note img { max-height: 14rem; object-fit: contain; width: 100%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero {
  align-items: center;
  background: #eee1f4;
  display: grid;
  gap: clamp(2rem, 7vw, 9rem);
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr);
  margin-inline: auto;
  max-width: 1920px;
  padding: clamp(5rem, 9vw, 10rem) clamp(1.25rem, 8.5vw, 10rem);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__visual { align-self: stretch; min-height: min(57vw, 53rem); overflow: hidden; position: relative; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__photo { height: 100%; object-fit: cover; width: 100%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__shirt { bottom: 2%; left: 7%; max-height: 76%; max-width: 86%; object-fit: contain; position: absolute; width: 86%; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__copy { display: grid; gap: 1.4rem; max-width: 35rem; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__copy h1 { max-width: 8ch; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-status { border-top: 1px solid var(--tg-line); display: grid; gap: .8rem; padding-top: 1rem; }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-story { background: var(--tg-ink); color: var(--tg-paper); }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-story .tg-kicker { color: var(--tg-fidelity-yellow); }
.tg-editorial.tg-fidelity-page .tg-fidelity-product-story .tg-button { justify-self: start; }

/* Existing derived pages use the same full-bleed image treatment without
 * replacing their reviewed semantic sections. */
.tg-editorial.tg-fidelity-page > .tg-editorial__hero.tg-fidelity-hero .tg-editorial__hero-art img {
  aspect-ratio: 1.36;
  border-radius: 0;
  object-fit: cover;
}
.tg-editorial.tg-fidelity-page > .tg-editorial__hero.tg-fidelity-hero .tg-editorial__hero-art::before { border-radius: 0; }

@media (max-width: 920px) {
  .tg-editorial.tg-fidelity-page .tg-fidelity-band,
  .tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero,
  .tg-editorial.tg-fidelity-page .tg-fidelity-volunteers,
  .tg-editorial.tg-fidelity-page .tg-fidelity-shop-note,
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-hero { grid-template-columns: 1fr; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy { max-width: 100%; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack { max-width: 46rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-stay-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tg-editorial.tg-fidelity-page .tg-fidelity-contribution-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__visual { min-height: min(82vw, 47rem); }
  .tg-editorial.tg-fidelity-page .tg-fidelity-shop-note img { justify-self: center; max-width: 34rem; }
}

@media (max-width: 640px) {
  .tg-editorial.tg-fidelity-page .tg-fidelity-hero { min-height: 34rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy { padding: 5rem 1rem 3.5rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy h1 { font-size: clamp(3.2rem, 16vw, 5.5rem); }
  .tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy .tg-button,
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-story .tg-button { align-self: stretch; justify-self: stretch; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-hero__accent { bottom: 7%; max-width: 42vw; right: 2%; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-band { padding: 3.8rem 1rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-band__texture { max-height: 14rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack { grid-template-columns: 1fr 1fr; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-photo-stack figure:nth-child(2) { margin-top: 2rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-stay-grid,
  .tg-editorial.tg-fidelity-page .tg-fidelity-faq-panels,
  .tg-editorial.tg-fidelity-page .tg-fidelity-contribution-grid { grid-template-columns: 1fr; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero,
  .tg-editorial.tg-fidelity-page .tg-fidelity-volunteers,
  .tg-editorial.tg-fidelity-page .tg-fidelity-shop-note,
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-hero { padding: 4.5rem 1rem 3.5rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero__art { margin-top: 1rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero { min-height: 34rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__copy { padding: 5rem 1rem 3.5rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-shop-note img { max-height: 9rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__visual { min-height: 22rem; }
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__shirt { max-height: 72%; }
}

/* Editorial copy and visual QA overrides: current visitor-facing copy stays natural,
 * while the 2026 reference uses the supplied type hierarchy and 10px controls. */
.tg-editorial.tg-fidelity-page {
  font-family: "Archivo", Arial, sans-serif;
}
.tg-editorial.tg-fidelity-page h1,
.tg-editorial.tg-fidelity-page h2,
.tg-editorial.tg-fidelity-page h3 {
  font-family: "Amro Sans", Arial, sans-serif;
  font-weight: 700;
  text-transform: none;
}
.tg-editorial.tg-fidelity-page h1 {
  font-size: clamp(3.25rem, 7.4vw, 9rem);
  line-height: .9;
}
.tg-editorial.tg-fidelity-page h2 {
  font-size: clamp(2.25rem, 5vw, 6rem);
  line-height: .92;
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy h1,
.tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero__copy h1,
.tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__copy h1,
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__copy h1 {
  font-size: clamp(3.25rem, 7.4vw, 9rem);
}
.tg-editorial.tg-fidelity-page .tg-button {
  border-radius: 10px;
  font-family: "Garaje 0503 VAR", "Garaje 53 Unicase", sans-serif;
}

/* The FAQ texture is intentionally retained, while dark purple text keeps the
 * headline, lede and kicker readable at the narrow mobile reference width. */
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--faq .tg-fidelity-hero__veil {
  background: linear-gradient(90deg, rgba(254, 247, 232, .8), rgba(254, 247, 232, .38) 68%, rgba(254, 247, 232, .12));
}
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--faq .tg-fidelity-hero__copy,
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--faq .tg-fidelity-hero__copy h1,
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--faq .tg-fidelity-hero__copy .tg-lede,
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--faq .tg-fidelity-hero__copy .tg-kicker {
  color: var(--tg-ink, #290a59);
}

/* The accommodation photograph is light at the copy edge; deepen only its
 * editorial hero veil so the existing light type remains readable. */
.tg-editorial.tg-fidelity-page .tg-fidelity-hero--stays .tg-fidelity-hero__veil {
  background: linear-gradient(90deg, rgba(20, 8, 42, .92), rgba(20, 8, 42, .64) 65%, rgba(20, 8, 42, .3));
}

@media (max-width: 640px) {
  .tg-editorial.tg-fidelity-page h1 {
    font-size: clamp(2.9rem, 14vw, 5rem);
  }
  .tg-editorial.tg-fidelity-page h2 {
    font-size: clamp(2.1rem, 11vw, 3.8rem);
  }
  .tg-editorial.tg-fidelity-page .tg-fidelity-hero__copy h1,
  .tg-editorial.tg-fidelity-page .tg-fidelity-participate-hero__copy h1,
  .tg-editorial.tg-fidelity-page .tg-fidelity-shop-hero__copy h1,
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__copy h1 {
    font-size: clamp(2.9rem, 14vw, 5rem);
  }
}

/* Figma image fills restored for the six assigned page families. The supplied
 * image assets are the reference textures; all rules stay inside the reviewed
 * editorial root and leave shared home/flow styles untouched. */
.tg-editorial.tg-fidelity-page .tg-image-fill {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: transparent;
  display: block;
  font-family: "Amro Sans", Arial, sans-serif;
  font-weight: 700;
  letter-spacing: -.055em;
  line-height: .9;
  text-shadow: 0 4px 30px rgba(0, 0, 0, .28);
}
.tg-editorial.tg-fidelity-page .tg-image-fill--stays-hero {
  background-image: url("/_site-assets/552-1294-reference-imggetcozybookyourstaywithus-b4ffd-52202814");
}
.tg-editorial.tg-fidelity-page .tg-image-fill--stays-reserve {
  background-image: url("/_site-assets/552-1294-reference-imgreserveyourspotbeforetheysellout-c4433-8a2fe5e6");
}
.tg-editorial.tg-fidelity-page .tg-image-fill--stays-options {
  background-image: url("/_site-assets/552-1294-reference-imgexclusiveaccommodationoptions-21b8f-83790510");
  font-size: clamp(2.5rem, 6vw, 7.5rem);
  max-width: 15ch;
}
.tg-editorial.tg-fidelity-page .tg-image-fill--stays-ahead {
  background-image: url("/_site-assets/552-1294-reference-imgbookaheadoftime-5e1fb-7ba6fa08");
}
.tg-editorial.tg-fidelity-page .tg-image-fill--faq {
  background-image: url("/_site-assets/592-2146-reference-imgfrequentlyaskedquestions-9e759-46f12ad4");
}
.tg-editorial.tg-fidelity-page .tg-image-fill--participate-volunteers {
  background-image: url("/_site-assets/684-1680-reference-imgourvolunteers-0144c-47629136");
  font-size: clamp(2.5rem, 6.5vw, 8rem);
  max-width: 11ch;
}
.tg-editorial.tg-fidelity-page .tg-image-fill--participate-looking {
  background-image: url("/_site-assets/684-1680-reference-imgwhatwearelookingfor-8fcca-94028adf");
  font-size: clamp(2.5rem, 6.5vw, 8rem);
  max-width: 12ch;
}
.tg-editorial.tg-fidelity-page .tg-image-fill--shop-magical {
  background-image: url("/_site-assets/705-1423-reference-imgmagicalproducts-d8ccf-bd3d8056");
}
.tg-editorial.tg-fidelity-page .tg-image-fill--shop-take {
  background-image: url("/_site-assets/705-1423-reference-imgtakeyelapawithyou-360b2-bcb48e71");
  font-size: clamp(2.5rem, 6.5vw, 8rem);
  max-width: 11ch;
}
.tg-editorial.tg-fidelity-page .tg-image-fill--product-title {
  background-image: url("/_site-assets/864-1560-reference-imgtshirt-352bf-cf4e4036");
  font-size: clamp(3.5rem, 7.4vw, 9rem);
}
.tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__thumbnail {
  border: 6px solid var(--tg-paper, #fef7e8);
  border-radius: 14px;
  height: clamp(5.5rem, 8.3vw, 10rem);
  object-fit: cover;
  position: absolute;
  right: 4%;
  top: 6%;
  width: clamp(5.5rem, 8.3vw, 10rem);
  z-index: 3;
}

@media (max-width: 640px) {
  .tg-editorial.tg-fidelity-page .tg-image-fill--stays-options,
  .tg-editorial.tg-fidelity-page .tg-image-fill--participate-volunteers,
  .tg-editorial.tg-fidelity-page .tg-image-fill--participate-looking,
  .tg-editorial.tg-fidelity-page .tg-image-fill--shop-take {
    font-size: clamp(2.3rem, 11vw, 4.8rem);
  }
  .tg-editorial.tg-fidelity-page .tg-image-fill--product-title {
    font-size: clamp(3rem, 14vw, 5rem);
  }
  .tg-editorial.tg-fidelity-page .tg-fidelity-product-hero__thumbnail {
    border-width: 4px;
    right: 3%;
    top: 4%;
  }
}
