/* TIM Brand Chrome — aMember port of TIM CMS TimHeader (chrome.css header block).
   Scoped [data-template="tim-amember"]. Heights locked: masthead 58px, gold nav 30px.
   Active tritab: white label + red border (RED-USAGE-POLICY).
   Font URLs rewritten at inject time (__ASSET_BASE__). */

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/members/misc/tim-brand-chrome/asset?f=barlow-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/members/misc/tim-brand-chrome/asset?f=barlow-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/members/misc/tim-brand-chrome/asset?f=barlow-800.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/members/misc/tim-brand-chrome/asset?f=barlow-900.woff2') format('woff2');
}

[data-template='tim-amember'] {
  --tim-red: #ae110f;
  --tim-red-dark: #8c0d0b;
  --tim-gold: #c97c2a;
  --tim-white: #fdfdfd;
  --tim-grey-light: #ccc;
  --tim-dark: #1a1a1a;
  --font-body: 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* Hide legacy aMember / timglobal chrome whenever this stylesheet is loaded. */
header.header-membersites,
.am-tabs-wrapper,
a.am-tabs-narrow-dashboard,
a.am-tabs-narrow-switch,
.am-account-toolbar {
  display: none !important;
}

/* Sticky chrome wrapper */
[data-template='tim-amember'].tim-amember-chrome {
  display: block;
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #0f0f0f;
}

/* TIM Original — CHROME (header, tri-tab nav, gold nav, homepage hero/banner/sections, footer).
   OWNER: Agent A (Chrome & Home). Every selector MUST be scoped [data-template="tim-amember"].
   Classes here: .to-header, .to-brandblock, .to-tritab, .to-nav, .to-hero-slider,
   .to-banner, .to-home*, .to-footer, .to-footcol, .to-social.
   Reuses the global palette/fonts from styles.css :root (--tim-red, --tim-gold, --font-display…). */

/* ============================================================
   HEADER — three stacked rows (brand block · tri-tab · gold nav)
   Transparent chrome — site atmosphere (styles.css body wash) shows through.
   ============================================================ */
[data-template='tim-amember'] .to-header {
  background: transparent;
  border-bottom: 0;
  position: sticky;
  top: 0;
  z-index: 50;
  /* Return (scroll up) — slightly snappier ease-out. Hide duration is on the pinned rule. */
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  padding-top: env(safe-area-inset-top, 0px);
}
@media (prefers-reduced-motion: reduce) {
  [data-template='tim-amember'] .to-header {
    transition: none;
    will-change: auto;
  }
}

/* Row 1 wrapper — subtle divider under the masthead row.
   Scroll-down collapses this row (see `is-masthead-collapsed` + TimMastheadCollapse);
   the gold `.to-nav` submenu stays sticky alone. */
[data-template='tim-amember'] .to-header__top {
  border-bottom: 0;
  overflow: hidden;
  max-height: 200px; /* roomy enough for the wrapped mobile masthead */
  opacity: 1;
  transform: translateY(0);
  /* Light separation only — no black band over the atmosphere. */
  box-shadow: none;
  transition:
    max-height 0.36s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.28s ease,
    transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
html.is-masthead-collapsed [data-template='tim-amember'] .to-header__top {
  max-height: 0;
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-template='tim-amember'] .to-header__top {
    transition: none;
  }
}
[data-template='tim-amember'] .to-header__top-inner {
  display: flex;
  align-items: stretch;
  gap: 0;
  /* Locked masthead height — heavier Paul Morris weight must not grow the bar. */
  height: 58px;
  min-height: 58px;
  max-height: 58px;
  box-sizing: border-box;
}

/* ---- Skull tile (absolute left edge — live measures the logo at x:0) ------ */
/* Transparent chrome (matches other cells); red only on hover.
   Mark is a tight transparent PNG — sized to the 58px row, no vertical pad. */
[data-template='tim-amember'] .to-skull {
  flex: 0 0 auto;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px 0 6px;
  background: transparent;
  transition:
    background 140ms ease,
    box-shadow 140ms ease;
}
[data-template='tim-amember'] .to-skull:hover {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--tim-red) 92%, #fff) 0%,
    var(--tim-red) 38%,
    var(--tim-red-dark) 100%
  );
  box-shadow: none;
}
@media (prefers-reduced-transparency: reduce) {
  [data-template='tim-amember'] .to-skull:hover {
    background: var(--tim-red-dark);
    box-shadow: none;
  }
}
/* Stacked skull + eyes — eyes pulse TIM red. */
[data-template='tim-amember'] .to-skull__mark {
  position: relative;
  display: block;
  /* Match masthead row (tritab min-height); do NOT exceed or the bar grows. */
  height: 58px;
  width: auto;
  aspect-ratio: 531 / 396;
  overflow: visible;
}
[data-template='tim-amember'] .to-skull__img,
[data-template='tim-amember'] .to-skull__eyes {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
[data-template='tim-amember'] .to-skull__eyes {
  animation: to-eye-pulse 1.7s ease-in-out infinite;
  filter: drop-shadow(0 0 3px rgba(174, 17, 15, 0.85));
}
@keyframes to-eye-pulse {
  0%,
  100% {
    opacity: 0.55;
    filter: drop-shadow(0 0 2px rgba(174, 17, 15, 0.55)) brightness(0.9);
  }
  50% {
    opacity: 1;
    filter: drop-shadow(0 0 6px rgba(174, 17, 15, 1)) brightness(1.25);
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-template='tim-amember'] .to-skull__eyes {
    animation: none;
    opacity: 1;
    filter: none;
  }
}

/* ---- Brand block (right of the skull) ------------------------------------ */
/* Slimmer wordmark zone so Downloads / Members / Toys get more width.
   Full-height tile; type sized to kiss the 58px masthead (same idea as the skull). */
[data-template='tim-amember'] .to-brandblock {
  display: flex;
  align-items: stretch;
  justify-content: center;
  align-self: stretch;
  padding: 0 12px;
  flex: 0 0 22%;
  min-width: 168px;
  max-width: 280px;
  box-sizing: border-box;
}
[data-template='tim-amember'] .to-brandblock__lines {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* Pack toward the vertical center-bottom — less air above the main label. */
  justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  padding: 1px 0 2px;
  box-sizing: border-box;
  line-height: 1;
  gap: 0;
}

/* apex masthead — heaviest optical weight for "PAUL MORRIS" (Barlow 900 + stroke). */
[data-template='tim-amember'] .to-brandblock--apex .to-brandblock__label {
  font-family: var(--font-body);
  font-size: 34px;
  font-weight: 900;
  line-height: 0.82;
  letter-spacing: 0.005em;
  color: var(--tim-white);
  text-transform: uppercase;
  /* Past font-weight 900 — slight stroke fattens glyphs without growing the 58px bar. */
  -webkit-text-stroke: 0.6px currentColor;
  paint-order: stroke fill;
}
[data-template='tim-amember'] .to-brandblock--apex .to-brandblock__sub {
  font-family: var(--font-body);
  text-transform: uppercase;
  color: var(--tim-grey-light);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-top: 1px;
}

/* Red wordmark tile — vertical brand-red gradient so the button pops. */
[data-template='tim-amember'] .to-brandblock--red {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--tim-red) 88%, #fff) 0%,
    var(--tim-red) 42%,
    var(--tim-red-dark) 100%
  );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
@media (prefers-reduced-transparency: reduce) {
  [data-template='tim-amember'] .to-brandblock--red {
    background: var(--tim-red-dark);
    box-shadow: none;
  }
}
[data-template='tim-amember'] .to-brandblock--red .to-brandblock__label {
  font-family: var(--font-body);
  text-transform: uppercase;
  color: #fff;
  font-size: 34px;
  font-weight: 900;
  line-height: 0.82;
  letter-spacing: 0.005em;
  -webkit-text-stroke: 0.6px currentColor;
  paint-order: stroke fill;
}
[data-template='tim-amember'] .to-brandblock--red .to-brandblock__sub {
  font-family: var(--font-body);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-top: 1px;
}

/* ---- Tri-tab network nav — discrete button chips (not edge-to-edge cells) ------ */
[data-template='tim-amember'] .to-tritab {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 8px;
  padding: 0 10px 0 8px;
  box-sizing: border-box;
}
[data-template='tim-amember'] .to-tritab__link {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 14px;
  /* Inset chips inside the locked 58px masthead — reads as real buttons. */
  height: 42px;
  min-height: 42px;
  max-height: 42px;
  box-sizing: border-box;
  font-family: var(--font-body);
  text-transform: uppercase;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--tim-white);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 3px;
  /* Solid dark chips — no soft highlight haze. */
  background: #1a1a1a;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  transition:
    background 140ms ease,
    color 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 140ms ease;
}
[data-template='tim-amember'] .to-tritab__link:hover {
  background: var(--tim-red);
  border-color: color-mix(in srgb, var(--tim-red) 70%, #fff);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.45);
  color: #fff;
}
[data-template='tim-amember'] .to-tritab__link:active {
  transform: translateY(1px);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
}
/* Members (this site) — selected = WHITE label on a red-outlined chip.
   Changed 2026-07-29 (Matt: "improve contrast on both sites").

   It was red text on the #1a1a1a chip: 2.39:1, below the 3:1 this needs even
   with the large-text allowance (20px/700). That is not tunable — brand red
   #ae110f has luminance 0.0932 and 3:1 here demands 0.1309, so NEITHER approved
   red clears it at any size, and the only reds that would are #ff0000-bright,
   which `docs/brand/RED-USAGE-POLICY.md` forbids outright. Red as *text* on dark
   is arithmetically unavailable; it has to become a fill.

   So this follows the brand guide's own prescription for exactly this case:
   "Archive / jump tabs: active = red underline or red fill chip with white
   label — not red text alone on dark." The chip is already a bordered button,
   so the red moves to the border (a fill) and the label goes white: 17.11:1,
   and red still carries the "you are here" signal against two white-bordered
   siblings. */
[data-template='tim-amember'] .to-tritab__link.is-current {
  background: #1a1a1a;
  color: var(--tim-white);
  border-color: var(--tim-red);
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.45),
    inset 0 0 0 1px var(--tim-red);
}
[data-template='tim-amember'] .to-tritab__link.is-current:hover {
  background: var(--tim-red);
  border-color: color-mix(in srgb, var(--tim-red) 70%, #fff);
  color: #fff;
  filter: none;
}
/* ---- Row 2: gold content nav — JUSTIFIED across the full width ----------- */
/* Live is a Bootstrap nav-justified menu: 7 equal cells spanning edge-to-edge
   (item centers measured at ~1/14, 3/14 … 13/14 of the viewport). */
[data-template='tim-amember'] .to-nav {
  /* Charcoal band restored — only the masthead row stays clear for the atmosphere.
     Darkened from #2c2c2c→#1e1e1e on 2026-09-26 so full gold reads at AA — see
     the contrast note on .to-nav__link below. */
  background: linear-gradient(180deg, #252525 0%, #1a1a1a 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-template='tim-amember'] .to-nav__inner {
  display: flex;
  align-items: stretch;
  /* Lock row height — larger labels must not grow the bar. */
  height: 30px;
  min-height: 30px;
  max-height: 30px;
}
/* Gold submenu — Barlow 800 (--font-body), gold #c97c2a (NOT the typewriter face).
   Full gold at all times, on the darker band above (Matt 2026-09-26; same change
   as TIM CMS chrome.css, tim-cms@43382be8).

   It used to start muted — color-mix(gold 58%, #6a6a6a) = #a17445 — and brighten
   to full gold once the masthead collapsed. Measured on the rendered pixels
   behind the letters, both states failed WCAG 2.2 AA: 18px/800 is 13.5pt bold,
   just under the 14pt "large text" line, so labels need 4.5:1. Muted: 3.50–3.93:1.
   Full gold on the old #2c2c2c→#1e1e1e band: 4.37–4.91:1. Full gold on
   #252525→#1a1a1a: 4.79–5.14:1 at 1440px and 390px. TIM Gold text needs a
   neutral background of #272727 or darker for 4.5:1. */
[data-template='tim-amember'] .to-nav__link {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--font-body);
  text-transform: uppercase;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--tim-gold);
  padding: 0 8px;
  height: 100%;
  box-sizing: border-box;
  white-space: nowrap;
  transition:
    color 0.35s ease,
    background 140ms ease;
}
[data-template='tim-amember'] .to-nav__link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}
/* Account CTA (Join / Login / Join Now / Re-Join / Dashboard) — slight emphasis. */
[data-template='tim-amember'] .to-nav__link--account.is-join,
[data-template='tim-amember'] .to-nav__link--account.is-join-now,
[data-template='tim-amember'] .to-nav__link--account.is-rejoin {
  color: #fff;
  text-shadow: 0 0 12px rgba(174, 17, 15, 0.45);
}
[data-template='tim-amember'] .to-nav__link--account.is-join:hover,
[data-template='tim-amember'] .to-nav__link--account.is-join-now:hover,
[data-template='tim-amember'] .to-nav__link--account.is-rejoin:hover {
  color: #fff;
}
/* ---- Masthead middle band: 721–900px (Matt 2026-07-27, "sideways looks strange")
   Below 720px the tri-tab wraps to its own row. Above 900px there is room for the
   desktop masthead. Between them nothing handled it, so the DESKTOP layout was in
   force without the width for it — and that band is every phone in landscape
   (812 · 844 · 926), tablet portrait (768), and any narrow desktop window.

   Measured at 812×375 before the fix: `.to-brandblock` got `flex: 0 0 22%` = 179px,
   but "Paul Morris" at a fixed 34px needs ~230px, so it wrapped to two lines (56px);
   with the 28px sub-line that is 84px of content inside `.to-header__top-inner`,
   which is locked to 58px, and `.to-header__top` is `overflow: hidden` — so the top
   of the type was sliced off. The tri-tab's fixed 20px wrapped "Downloads & DVD'S"
   to two lines at the same time.

   Fluid type + content-sized chips keep everything on the one 58px row.
   Deliberately range-scoped: a plain `max-width: 900px` would also apply below
   720px and shrink the portrait masthead that is already signed off. */
@media (min-width: 721px) and (max-width: 1100px) {
  /* Type scales; the flex structure does NOT. Keeping `flex: 0 0 22%` on the
     brandblock and `flex: 1 1 0` on the chips means the masthead keeps its desktop
     proportions all the way down the band — only the type shrinks to fit. Both
     clamps reach their 34px/20px desktop values at ~1000px, so there is no visible
     step at the 1100px boundary. `min-width: 0` lets the brandblock give ground
     rather than force an overflow if a brand name is ever longer than "Paul Morris". */
  [data-template='tim-amember'] .to-brandblock {
    min-width: 0;
  }
  [data-template='tim-amember'] .to-brandblock--red .to-brandblock__label,
  [data-template='tim-amember'] .to-brandblock--apex .to-brandblock__label {
    font-size: clamp(19px, 3.3vw, 34px);
    white-space: nowrap;
  }
  [data-template='tim-amember'] .to-brandblock--red .to-brandblock__sub,
  [data-template='tim-amember'] .to-brandblock--apex .to-brandblock__sub {
    font-size: clamp(8px, 1.35vw, 14px);
    white-space: nowrap;
  }
  /* Same lesson as the ≤720px chips, milder: equal thirds cannot fit unequal
     labels at a fixed 20px. Scale the type, keep the thirds. */
  [data-template='tim-amember'] .to-tritab__link {
    font-size: clamp(11px, 1.85vw, 20px);
    padding: 0 8px;
    white-space: nowrap;
  }
}

@media (max-width: 720px) {
  /* Masthead wraps: skull + brand stay on row 1, the tri-tab drops to its own full-width
     row; the gold nav switches from justified cells to a horizontal scroll. */
  [data-template='tim-amember'] .to-header__top-inner {
    flex-wrap: wrap;
    height: auto;
    max-height: none;
    min-height: 58px;
  }
  [data-template='tim-amember'] .to-brandblock {
    flex: 1 1 auto;
  }
  [data-template='tim-amember'] .to-tritab {
    flex: 1 1 100%;
    border-top: 0;
    gap: 6px;
    padding: 6px 8px 8px;
  }
  /* Chips size to their own label instead of the base `flex: 1 1 0` equal thirds.
     At 375px equal thirds gave every chip ~95px of text room, which wrapped
     "Downloads & DVD'S" onto two lines and grew the masthead (Matt 2026-07-27).
     Fluid size + nowrap keeps all three on one row down to 320px. */
  [data-template='tim-amember'] .to-tritab__link {
    flex: 0 1 auto;
    height: 40px;
    min-height: 40px;
    max-height: 40px;
    font-size: clamp(11px, 3.4vw, 15px);
    padding: 0 6px;
    white-space: nowrap;
  }
  /* #9 Edge fades + › peek — more gold-nav items off-screen (Jeremy 2026-07-24).
     Classes stamped by TimNavScroll: .is-overflow / .is-at-start / .is-at-end. */
  [data-template='tim-amember'] .to-nav {
    position: relative;
  }
  [data-template='tim-amember'] .to-nav.is-overflow:not(.is-at-start)::before,
  [data-template='tim-amember'] .to-nav.is-overflow:not(.is-at-end)::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 48px;
    pointer-events: none;
    z-index: 2;
  }
  [data-template='tim-amember'] .to-nav.is-overflow:not(.is-at-start)::before {
    left: 0;
    background: linear-gradient(to right, #0b0b0b 10%, transparent);
  }
  [data-template='tim-amember'] .to-nav.is-overflow:not(.is-at-end)::after {
    right: 0;
    background: linear-gradient(to left, #0b0b0b 18%, transparent);
  }
  /* Always show a soft right cue on narrow screens even before JS hydrates. */
  [data-template='tim-amember'] .to-nav:not(.is-overflow):not(.is-at-end)::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 40px;
    pointer-events: none;
    z-index: 2;
    background: linear-gradient(to left, #0b0b0b 30%, transparent);
  }
  [data-template='tim-amember'] .to-nav__more {
    position: absolute;
    right: 2px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    pointer-events: none;
    color: var(--tim-gold);
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    text-shadow: 0 0 8px var(--tim-dark), 0 0 4px var(--tim-dark);
    animation: to-nav-more-pulse 1.6s ease-in-out infinite;
  }
  @keyframes to-nav-more-pulse {
    0%,
    100% {
      opacity: 0.55;
      transform: translateY(-50%) translateX(0);
    }
    50% {
      opacity: 1;
      transform: translateY(-50%) translateX(2px);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    [data-template='tim-amember'] .to-nav__more {
      animation: none;
      opacity: 0.9;
    }
  }
  /* The gold submenu must pan horizontally ONLY (Matt 2026-07-27: "wobbly … moving
     up and down when it should only move left to right").
     Root cause: the base rule locks .to-nav__inner to height:30px while the mobile
     .to-nav__link below claims min-height:36px — a 36px child inside a 30px scroll
     container makes the strip 6px vertically scrollable, so a horizontal swipe
     drifts up/down. Matching the container to the child removes the overflow at
     source; overflow-y + touch-action + overscroll-behavior are belt-and-braces so
     the gesture can neither scroll vertically nor chain to the page. */
  [data-template='tim-amember'] .to-nav__inner {
    justify-content: flex-start;
    align-items: center;
    overflow-x: auto;
    overflow-y: hidden;
    touch-action: pan-x;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-right: 28px;
    scroll-padding-inline: 12px;
  }
  [data-template='tim-amember'] .to-nav__inner::-webkit-scrollbar {
    display: none;
  }
  /* min-height was 36px inside a container the base rule locks to 30px — that
     mismatch is what made the strip 6px vertically scrollable (measured
     clientHeight 30 vs scrollHeight 36). Matching the link to the row removes the
     overflow without growing the gold bar, so the sticky header stays 143px and
     nothing moves visually. 30px still clears WCAG 2.5.8 (24px minimum). */
  [data-template='tim-amember'] .to-nav__link {
    flex: 0 0 auto;
    min-height: 0;
    height: 100%;
    padding: 8px 16px;
    white-space: nowrap;
  }
  [data-template='tim-amember'] .to-home-grid--landscape:not(.to-home-grid--slider) {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  [data-template='tim-amember'] .to-home-grid--portrait:not(.to-home-grid--slider),
  [data-template='tim-amember'] .to-home-grid--square:not(.to-home-grid--slider) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  /* ---- Layouts → "On phones" (section.mobileLayout) ------------------------
     Both modifiers exist ONLY inside this 767px block, so a phone choice can
     never reach desktop. 'inherit' emits no class at all, which is why the
     default is a true no-op.
     Placed after the two rules above so `display` resolves in our favour at
     equal specificity — their `grid-template-columns` is inert under flex. */

  /* Swipe rail on a phone while desktop stays a grid. Same gesture discipline as
     the gold submenu: pan-x only, no scroll chaining, no vertical drift. */
  [data-template='tim-amember'] .to-home-grid--m-slider {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--to-gap);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    touch-action: pan-x;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
    scrollbar-width: none;
  }
  [data-template='tim-amember'] .to-home-grid--m-slider::-webkit-scrollbar {
    display: none;
  }
  [data-template='tim-amember'] .to-home-grid--m-slider > * {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  /* Card widths mirror the existing --slider variants so a phone rail and a
     desktop-slider rail look identical rather than subtly different. */
  [data-template='tim-amember'] .to-home-grid--m-slider.to-home-grid--landscape > * {
    width: min(320px, 78vw);
  }
  [data-template='tim-amember'] .to-home-grid--m-slider.to-home-grid--portrait > * {
    width: min(200px, 42vw);
  }
  [data-template='tim-amember'] .to-home-grid--m-slider.to-home-grid--square > * {
    width: min(180px, 38vw);
  }

  /* Force 1-up on a phone even when the row sliders on desktop. */
  [data-template='tim-amember'] .to-home-grid--m-stack {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    overflow: visible;
    scroll-snap-type: none;
  }
  [data-template='tim-amember'] .to-home-grid--m-stack > * {
    width: auto;
    flex: none;
  }

  [data-template='tim-amember'] .to-home-grid > .to-flip,
  [data-template='tim-amember'] .to-home-grid > .to-card {
    min-width: 0;
    max-width: 100%;
  }
}

/* ---- Portrait phones: pull the account CTA forward in the gold submenu -----
   Matt 2026-07-27: "on mobile there's no apparent join button because the
   scroller has it at the end." Source order is Scenes · Movies · Men · Classics ·
   Video Vault · Favorites · Join, and a 375px phone only shows the first four —
   so the one conversion CTA sat off-screen behind a horizontal scroll.

   Flex `order` moves it to 4th (where Classics sits) leaving the first three put:
     Scenes · Movies · Men · JOIN · Classics · Video Vault · Favorites

   Deliberately `(orientation: portrait)` as well as `max-width: 720px` — Matt
   asked for this "not sideways", and width alone would not honour that: a small
   phone in landscape (e.g. iPhone SE, 667×375) is still under 720px. Landscape
   and desktop show the full row anyway, so nothing needs moving there.

   Targets only the conversion variants (`is-join` / `is-join-now` / `is-rejoin`,
   the same trio grouped in the styling above), so a signed-in member's account
   link keeps its normal position.

   Caveat, recorded on purpose: `order` changes VISUAL order only — DOM and tab
   order are unchanged, so a keyboard user still reaches the CTA last. Acceptable
   here because this applies solely to portrait touch devices, but it is the
   reason not to reach for `order` on desktop nav. */
@media (max-width: 720px) and (orientation: portrait) {
  [data-template='tim-amember'] .to-nav__inner > * {
    order: 3;
  }
  /* Keep Scenes · Movies · Men leading. If the Navigation global is reordered,
     this still reads as "the CTA goes fourth". */
  [data-template='tim-amember'] .to-nav__inner > *:nth-child(-n + 3) {
    order: 1;
  }
}

/* ---- Gold nav dropdowns (aMember User Menu children) -------------------- */
[data-template='tim-amember'] .to-nav__item {
  position: relative;
  flex: 1 1 0;
  display: flex;
  align-items: stretch;
  height: 100%;
}
[data-template='tim-amember'] .to-nav__item > .to-nav__link {
  flex: 1 1 auto;
  width: 100%;
}
[data-template='tim-amember'] .to-nav__dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 100%;
  background: #1e1e1e;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55);
  z-index: 60;
  padding: 4px 0;
}
[data-template='tim-amember'] .to-nav__item:hover > .to-nav__dropdown,
[data-template='tim-amember'] .to-nav__item:focus-within > .to-nav__dropdown {
  display: block;
}
[data-template='tim-amember'] .to-nav__dropdown a {
  display: block;
  padding: 8px 14px;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: color-mix(in srgb, var(--tim-gold) 70%, #fff);
  white-space: nowrap;
  text-decoration: none;
}
[data-template='tim-amember'] .to-nav__dropdown a:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
}
[data-template='tim-amember'] .to-nav__link.has-children::after {
  content: ' ▾';
  font-size: 0.75em;
  opacity: 0.75;
}

/* The black username + logout strip under the gold nav was retired in 1.1.0:
   Logout is a gold-nav item (the User Menu's Login/Logout item) and the
   username moved to Useful Links (below). */

/* Useful Links: "Signed in as <login>" — links to the profile page. */
.am-list-links .tim-useful-user {
  color: #bdbdbd;
  text-decoration: none;
}
.am-list-links .tim-useful-user strong {
  color: #fff;
  font-weight: 700;
}
.am-list-links .tim-useful-user:hover strong {
  text-decoration: underline;
}

/* TIM Marketing Suite banners: an image banner's "text below" (e.g. a coupon
   code) — plain text the Suite serves under the image, outside its link. */
.tim-suite-ads-wrap .tim-ad-text {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #e0e0e0;
}

/* ---- TIM network search button (canonical/SEARCH.md) ---------------------- */
/* a.tim-search-fab[data-tim-search] sits in .to-tritab right after Toys & Gear.
   It ships `hidden`; widget.js removes `hidden` only when the TMS Site Search
   plugin says this site is live (or a staff preview key is present). The
   display rule below would beat the browser's own [hidden] rule, hence the
   !important. Same chip look as the Shopify port (.tim-search-fab). */
[data-tim-search][hidden] {
  display: none !important;
}
[data-template='tim-amember'] .to-tritab .tim-search-fab {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  min-height: 42px;
  max-height: 42px;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 3px;
  background: #1a1a1a;
  color: #d9d9d9;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  cursor: pointer;
  text-decoration: none;
  transition: background 140ms ease, color 140ms ease, border-color 140ms ease;
}
[data-template='tim-amember'] .to-tritab .tim-search-fab:hover,
[data-template='tim-amember'] .to-tritab .tim-search-fab:focus-visible {
  background: var(--tim-red);
  border-color: color-mix(in srgb, var(--tim-red) 70%, #fff);
  color: #fff;
}
[data-template='tim-amember'] .to-tritab .tim-search-fab__icon {
  display: block;
}
@media (max-width: 720px) {
  [data-template='tim-amember'] .to-tritab .tim-search-fab {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    min-height: 40px;
    max-height: 40px;
  }
}

/* ============================================================
   1.2.1 — JOIN OFFER (aMember /members/signup*): skull + JOIN OFFER only.
   The plugin doesn't render the tri-tab or gold nav there; the masthead
   stays put on scroll (nothing else to keep sticky).
   ============================================================ */
html.is-masthead-collapsed [data-template='tim-amember'] .to-header--join .to-header__top {
  max-height: 200px;
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

/* 1.2.8 — join pages: "Already a member? LOG IN" at the right of the masthead (guests only),
   a plain link to the login page in place of the in-form line that opened aMember's popup. */
[data-template='tim-amember'] .to-header--join .to-joinlogin {
  margin-left: auto;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 20px 0 12px;
  font-family: 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
[data-template='tim-amember'] .to-header--join .to-joinlogin__note {
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #9d9d9d;
  white-space: nowrap;
}
[data-template='tim-amember'] .to-header--join a.to-joinlogin__btn {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 18px;
  border: 1px solid #ae110f;
  border-radius: 2px;
  background: transparent;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
}
[data-template='tim-amember'] .to-header--join a.to-joinlogin__btn:hover,
[data-template='tim-amember'] .to-header--join a.to-joinlogin__btn:focus-visible {
  background: #ae110f;
  color: #fff;
  text-decoration: none;
}
[data-template='tim-amember'] .to-header--join a.to-joinlogin__btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
@media (max-width: 720px) {
  [data-template='tim-amember'] .to-header--join .to-header__top-inner {
    flex-wrap: nowrap;
  }
  [data-template='tim-amember'] .to-header--join .to-brandblock {
    flex: 0 1 auto;
    min-width: 0;
  }
  [data-template='tim-amember'] .to-header--join .to-joinlogin {
    padding: 0 10px 0 8px;
  }
  [data-template='tim-amember'] .to-header--join .to-joinlogin__note {
    display: none;
  }
  [data-template='tim-amember'] .to-header--join a.to-joinlogin__btn {
    height: 32px;
    padding: 0 12px;
  }
}

/* aMember's language picker, moved into the signup form box (top-right of its first bar). */
.am-form.tbc-join-form {
  position: relative;
}
.am-form.tbc-join-form > .am-lang-choice {
  position: absolute;
  top: 0;
  right: 12px;
  z-index: 3;
  float: none;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.35em;
  height: 29px;
  line-height: 1;
}
.am-form.tbc-join-form .am-login-text {
  padding-right: 120px;
}
@media (max-width: 720px) {
  .am-form.tbc-join-form .am-login-text {
    padding-right: 56px;
  }
}

/* 1.2.2 — pre-filled coupon box hidden on join pages (the code still posts). */
.am-row.tbc-coupon-hidden {
  display: none !important;
}

/* ============================================================
   1.2.3 — SIGN-IN PAGE (/members/login*) + THE TIM FORM CARD
   The plugin stamps <body data-tbc-page="signin|join">. The login form and the
   signup "Create your profile" box take the TIM CMS sign-in card (tim-cms
   listings.css .to-favorites / .to-login / .to-btn--red): clear glass card,
   Special Elite title in white, Barlow labels and fields, red button, gold links.
   ============================================================ */
html.is-masthead-collapsed [data-template='tim-amember'] .to-header--signin .to-header__top,
html.is-masthead-collapsed [data-template='tim-amember'] .to-header--focus .to-header__top,
html.is-masthead-collapsed [data-template='tim-amember'] .to-header--tabs .to-header__top {
  max-height: 200px;
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

/* 1.2.4 — focused pages (e.g. MODEL APPLICATION): no tabs beside the title, so the red block
   sizes to its text instead of the 22% / 280px slot the tabs leave it. */
[data-template='tim-amember'] .to-header--focus .to-brandblock {
  flex: 0 1 auto;
  max-width: none;
  padding: 0 24px;
}
[data-template='tim-amember'] .to-header--focus .to-brandblock--red .to-brandblock__label {
  white-space: nowrap;
  font-size: clamp(19px, 6.4vw, 34px);
}
@media (max-width: 720px) {
  [data-template='tim-amember'] .to-header--focus .to-brandblock {
    flex: 0 1 auto;
    padding: 0 14px;
  }
}
/* 1.2.14 — a "Main · more" title (TIMTv · Partner venues) shows only "Main" under 900px, where
   the full title would run into the skull and LOG IN. */
@media (max-width: 899px) {
  [data-template='tim-amember'] .to-header--focus .to-brandblock__label-more {
    display: none;
  }
}

body[data-tbc-page] {
  --tbc-red: #ae110f;
  --tbc-red-dark: #8c0d0b;
  --tbc-gold: #c97c2a;
  --tbc-gold-warm: #e18d33;
  --tbc-white: #fdfdfd;
  --tbc-grey-light: #ccc;
  --tbc-grey-mid: #9d9d9d;
  --tbc-ash: #3e3e3e;
  --tbc-body: 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --tbc-display: 'Special Elite', 'Courier New', monospace;
}

/* ---- Sign-in page layout: card, then "Not registered yet?", then the language picker ---- */
body[data-tbc-page='signin'] .am-body-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 56px 0 40px;
  background: none;
}
/* The theme holds .am-body at 1000px tall for its footer; without the footer that is a hole. */
body[data-tbc-page='card-update'] .am-body,
body[data-tbc-page='signin'] .am-body {
  min-height: 0;
}
body[data-tbc-page='signin'] .am-login-form-wrapper,
body[data-tbc-page='signin'] .am-sendpass-form-wrapper {
  order: 1;
  width: 100%;
  max-width: 480px;
  margin: 0;
}
body[data-tbc-page='signin'] .am-signup-link {
  order: 2;
  margin: 24px 0 0;
  font: 400 14px/1.4 var(--tbc-body);
  color: var(--tbc-grey-mid);
  text-align: center;
}
body[data-tbc-page='signin'] .am-body-content > .am-lang-choice {
  order: 3;
  float: none;
  margin: 16px 0 0;
}
body[data-tbc-page='card-update'] .f2257,
body[data-tbc-page='signin'] .f2257 {
  padding: 24px 16px 40px;
  font: 400 12px/1.5 var(--tbc-body);
  color: var(--tbc-grey-mid);
}
body[data-tbc-page='card-update'] .f2257 a,
body[data-tbc-page='signin'] .f2257 a {
  color: var(--tbc-grey-light);
  text-decoration: underline;
}

/* ---- The card ---- */
body[data-tbc-page='signin'] .am-auth-form,
body[data-tbc-page='join'] .am-signup .am-form.tbc-join-form {
  position: relative;
  isolation: isolate;
  float: none;
  width: auto;
  max-width: 480px;
  margin: 0;
  padding: 48px 40px 36px;
  overflow: hidden;
  color: var(--tbc-white);
  font-family: var(--tbc-body);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.02) 32%, transparent 55%),
    rgba(12, 14, 18, 0.28);
  -webkit-backdrop-filter: blur(10px) saturate(1.05);
  backdrop-filter: blur(10px) saturate(1.05);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -1px 0 rgba(255, 255, 255, 0.04),
    0 20px 56px rgba(0, 0, 0, 0.4);
}
body[data-tbc-page='join'] .am-signup .am-form.tbc-join-form {
  max-width: 560px;
  margin: 24px auto 32px;
}
body[data-tbc-page='signin'] .am-auth-form::before,
body[data-tbc-page='join'] .am-signup .am-form.tbc-join-form::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 40%;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02) 55%, transparent);
}
@media (prefers-reduced-transparency: reduce) {
  body[data-tbc-page='signin'] .am-auth-form,
  body[data-tbc-page='join'] .am-signup .am-form.tbc-join-form {
    background: rgba(14, 16, 20, 0.92);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
/* The theme paints its texture on every layer inside the form; the card shows through instead. */
body[data-tbc-page] .am-auth-form form,
body[data-tbc-page] .am-auth-form fieldset,
body[data-tbc-page] .am-auth-form legend,
body[data-tbc-page] .am-auth-form .am-row,
body[data-tbc-page] .am-signup .tbc-join-form form,
body[data-tbc-page] .am-signup .tbc-join-form fieldset,
body[data-tbc-page] .am-signup .tbc-join-form legend,
body[data-tbc-page] .am-signup .tbc-join-form .am-row,
body[data-tbc-page] .am-signup .tbc-join-form .fieldset {
  background: none;
  border: 0;
  box-shadow: none;
  margin: 0;
  padding: 0;
}

/* ---- Title (the form's legend) ---- */
body[data-tbc-page] .am-auth-form legend,
body[data-tbc-page] .am-signup .tbc-join-form legend {
  display: block;
  float: none;
  width: 100%;
  margin: 0 0 28px;
  font-family: var(--tbc-display);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  color: #fff;
}

/* ---- Rows: label on top, field, hint under the field ---- */
body[data-tbc-page] .am-auth-form .am-row,
body[data-tbc-page] .am-signup .tbc-join-form .am-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
  margin: 0 0 18px;
}
body[data-tbc-page] .am-auth-form .am-element-title,
body[data-tbc-page] .am-signup .tbc-join-form .am-element-title {
  display: contents;
}
body[data-tbc-page] .am-auth-form .am-element-title label,
body[data-tbc-page] .am-signup .tbc-join-form .am-element-title label {
  order: 1;
  display: block;
  margin: 0 0 6px;
  padding: 0;
  font: 700 13px/1.3 var(--tbc-body);
  color: var(--tbc-grey-light);
  text-align: left;
}
body[data-tbc-page] .am-signup .tbc-join-form .am-element-title .required {
  color: var(--tbc-gold);
}
/* div.am-row: outranks aMember's `.am-form div.am-row.am-row-wide .am-element` padding. */
body[data-tbc-page] .am-auth-form div.am-row .am-element,
body[data-tbc-page] .am-signup .tbc-join-form div.am-row .am-element {
  order: 2;
  position: relative;
  float: none;
  width: auto;
  margin: 0;
  padding: 0;
  text-align: left;
  color: var(--tbc-grey-light);
  font: 400 14px/1.45 var(--tbc-body);
}
body[data-tbc-page] .am-signup .tbc-join-form .am-element-title .comment {
  order: 3;
  margin: 6px 0 0;
  padding: 0;
  font: 400 12px/1.4 var(--tbc-body);
  color: var(--tbc-grey-mid);
  text-align: left;
}

/* ---- Fields ---- */
body[data-tbc-page] .am-auth-form input[type='text'],
body[data-tbc-page] .am-auth-form input[type='password'],
body[data-tbc-page] .am-auth-form input[type='email'],
body[data-tbc-page] .am-signup .tbc-join-form input[type='text'],
body[data-tbc-page] .am-signup .tbc-join-form input[type='password'],
body[data-tbc-page] .am-signup .tbc-join-form input[type='email'] {
  display: block;
  width: 100%;
  max-width: none;
  height: 44px;
  margin: 0;
  padding: 0 12px;
  box-sizing: border-box;
  background: #111;
  background-image: none;
  color: var(--tbc-white);
  border: 1px solid var(--tbc-ash);
  border-radius: 2px;
  box-shadow: none;
  font: 400 15px/1.2 var(--tbc-body);
}
body[data-tbc-page] .am-auth-form input.am-pass-reveal,
body[data-tbc-page] .am-signup .tbc-join-form input.am-pass-reveal {
  padding-right: 44px;
}
body[data-tbc-page] .am-auth-form input::placeholder,
body[data-tbc-page] .am-signup .tbc-join-form input::placeholder {
  color: #777;
  opacity: 1;
}
body[data-tbc-page] .am-auth-form input[type='text']:focus,
body[data-tbc-page] .am-auth-form input[type='password']:focus,
body[data-tbc-page] .am-signup .tbc-join-form input[type='text']:focus,
body[data-tbc-page] .am-signup .tbc-join-form input[type='password']:focus {
  outline: none;
  border-color: var(--tbc-red);
  box-shadow: 0 0 0 1px var(--tbc-red);
}
/* Show-password eye: inside the field, right edge, white on the dark field. */
body[data-tbc-page] .am-pass-indicator-wrap {
  position: relative;
  display: block;
}
body[data-tbc-page] .am-auth-form .am-switch-reveal,
body[data-tbc-page] .am-signup .tbc-join-form .am-switch-reveal {
  position: absolute;
  top: 14px;
  right: 14px;
  margin: 0;
  filter: invert(1);
  opacity: 0.7;
  cursor: pointer;
}
body[data-tbc-page] .am-auth-form .am-switch-reveal:hover,
body[data-tbc-page] .am-signup .tbc-join-form .am-switch-reveal:hover {
  opacity: 1;
}
body[data-tbc-page] .am-signup .tbc-join-form .am-pass-indicator-bar {
  margin-top: 6px;
}

/* ---- Checkboxes: "Stay signed in", newsletter opt-ins ---- */
body[data-tbc-page] .am-auth-form #am-form-login-remember,
body[data-tbc-page] .am-signup .tbc-join-form .am-element.group > label {
  display: grid;
  grid-template-columns: 18px 1fr;
  column-gap: 10px;
  align-items: start;
  margin: 12px 0 0;
  padding: 0;
  font: 400 14px/1.35 var(--tbc-body);
  color: var(--tbc-grey-light);
  text-align: left;
  cursor: pointer;
}
body[data-tbc-page] .am-signup .tbc-join-form .am-element.group > label + br {
  display: none;
}
body[data-tbc-page] .am-signup .tbc-join-form .am-element.group > label:first-child {
  margin-top: 4px;
}
body[data-tbc-page] .am-auth-form input[type='checkbox'],
body[data-tbc-page] .am-signup .tbc-join-form input[type='checkbox'] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--tbc-red);
}
/* "Want to hear about new stuff?" reads as the group's heading. */
body[data-tbc-page] .am-signup .tbc-join-form .am-row:has(.am-element.group > label) > .am-element-title label {
  font-size: 14px;
  color: #fff;
}

/* ---- Buttons ---- */
body[data-tbc-page] .am-auth-form .am-row-buttons,
body[data-tbc-page] .am-signup .tbc-join-form #row-buttons {
  margin: 26px 0 0;
}
body[data-tbc-page] .am-auth-form .am-row-buttons .am-element,
body[data-tbc-page] .am-signup .tbc-join-form #row-buttons div.am-element {
  margin: 0;
  width: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: center;
}
body[data-tbc-page] .am-auth-form input[type='submit'],
body[data-tbc-page] .am-signup .tbc-join-form input[type='submit'] {
  display: block;
  width: 100%;
  height: 48px;
  margin: 0;
  padding: 0 22px;
  background: var(--tbc-red);
  background-image: none;
  border: 1px solid var(--tbc-red);
  border-radius: 2px;
  box-shadow: none;
  text-shadow: none;
  color: #fff;
  font-family: var(--tbc-display);
  font-size: 17px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
body[data-tbc-page] .am-auth-form input[type='submit']:hover,
body[data-tbc-page] .am-auth-form input[type='submit']:focus-visible,
body[data-tbc-page] .am-signup .tbc-join-form input[type='submit']:hover,
body[data-tbc-page] .am-signup .tbc-join-form input[type='submit']:focus-visible {
  background: var(--tbc-red-dark);
  border-color: var(--tbc-red-dark);
}
body[data-tbc-page] .am-auth-form input[type='submit']:focus-visible,
body[data-tbc-page] .am-signup .tbc-join-form input[type='submit']:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
body[data-tbc-page] .am-form-login-switch-wrapper {
  display: block;
  margin: 18px 0 0;
  text-align: center;
}

/* ---- Links, notes, errors ---- */
body[data-tbc-page] .am-auth-form a,
body[data-tbc-page] .am-signup .tbc-join-form a,
body[data-tbc-page='signin'] .am-signup-link a {
  color: var(--tbc-gold);
  font-weight: 700;
  text-decoration: none;
}
/* Outside the card the ground is ~#282828, where TIM Gold dips under 4.5:1 — warm gold holds. */
body[data-tbc-page='signin'] .am-signup-link a {
  color: var(--tbc-gold-warm);
}
body[data-tbc-page] .am-auth-form a:hover,
body[data-tbc-page] .am-signup .tbc-join-form a:hover,
body[data-tbc-page='signin'] .am-signup-link a:hover {
  color: #fff;
  text-decoration: underline;
}
body[data-tbc-page] .am-auth-form .am-row-sendpass-notice .am-element {
  color: var(--tbc-grey-light);
  font-size: 14px;
}
body[data-tbc-page='signin'] ul.am-errors,
body[data-tbc-page] .am-signup .tbc-join-form ul.am-errors {
  margin: 0 0 18px;
  padding: 10px 12px;
  list-style: none;
  background: rgba(174, 17, 15, 0.15);
  border: 1px solid var(--tbc-red);
  border-radius: 2px;
  color: #fff;
  font: 400 14px/1.4 var(--tbc-body);
  text-align: center;
}
body[data-tbc-page='signin'] ul.am-errors li,
body[data-tbc-page] .am-signup .tbc-join-form ul.am-errors li {
  list-style: none;
  text-align: center;
  margin: 0;
  padding: 0;
  color: #fff;
}
body[data-tbc-page] .am-signup .tbc-join-form span.am-error,
body[data-tbc-page] .am-signup .tbc-join-form label.am-error {
  display: block;
  margin: 6px 0 0;
  font: 400 13px/1.35 var(--tbc-body);
  color: #fff;
  background: none;
  border-left: 3px solid var(--tbc-red);
  padding: 0 0 0 8px;
}
body[data-tbc-page] .am-auth-form .am-row-recaptcha .am-element {
  display: flex;
  justify-content: center;
}

/* ---- Language picker (small, quiet) ---- */
body[data-tbc-page] .am-lang-choice,
body[data-tbc-page] .am-lang-choice .am-lang-title {
  font: 400 13px/1.3 var(--tbc-body);
  color: var(--tbc-grey-mid);
}
body[data-tbc-page] .am-lang-choice .am-lang-val {
  vertical-align: baseline;
  color: var(--tbc-gold-warm);
  font: 700 13px/1.3 var(--tbc-body);
  text-decoration: none;
}

/* ---- Signup box (Join Offer): "already have an account" moves under the button ---- */
body[data-tbc-page='join'] .am-signup .tbc-join-form > form {
  display: flex;
  flex-direction: column;
}
body[data-tbc-page='join'] .am-signup .tbc-join-form > form > * {
  order: 1;
}
body[data-tbc-page='join'] .am-signup .tbc-join-form .am-login-text {
  order: 2;
  margin: 18px 0 0;
  padding: 0;
  background: none;
  text-align: center;
  font: 400 14px/1.4 var(--tbc-body);
}
body[data-tbc-page='join'] .am-signup .tbc-join-form .am-login-text span {
  color: var(--tbc-grey-mid) !important;
}
body[data-tbc-page='join'] .am-signup .am-form.tbc-join-form > .am-lang-choice {
  top: 14px;
  right: 18px;
  height: auto;
}

@media (max-width: 560px) {
  body[data-tbc-page='signin'] .am-body-content {
    padding: 28px 0 32px;
  }
  body[data-tbc-page='signin'] .am-auth-form,
  body[data-tbc-page='join'] .am-signup .am-form.tbc-join-form {
    padding: 44px 20px 28px;
    border-radius: 14px;
  }
  body[data-tbc-page] .am-auth-form legend,
  body[data-tbc-page] .am-signup .tbc-join-form legend {
    font-size: 25px;
    margin-bottom: 22px;
  }
}

/* ============================================================
   1.2.6/1.2.7 — WIDE JOIN CARDS ON DESKTOP, PER FORM (Matt 2026-10-05: "a wider version for
   desktop. That will bring up the image on the bottom"; then "These forms are all unique so
   it shouldn't update every page or form"). The plugin stamps <body data-tbc-form="…"> only
   for the forms it lists ($JOIN_FORMS, by aMember saved_form_id) and only on their first
   page (form#page-0). Any other signup form keeps the 560px single-column card.
     offer — the plan-tile Join Offers (3Month 327, 1Week 351, 1Year 352): Email · Username ·
             Password under the three tiles; opt-ins + NEXT on one row.
     free  — Free Registration (/members/signup, form 1): Username · Email · Password;
             Anti Spam + opt-ins; terms + NEXT.
     venue — TIMTv venue application (/members/signup/TIMTv, form 353; 1.2.14): each of its four
             fieldsets is a three-column grid (venue name and street span two; TV types, how to
             play and the confirmations span three), radios in a row; the footnote + NEXT share
             the last row. TV1Week (354) is an `offer` form.
   From 900px the card spans the plan-tile row (BEE row: 1440px max, 10px padding → 1420px).
   ============================================================ */

/* aMember centres #row-email-0 with auto margins, which shrinks it in a flex or grid parent
   (the free form's rows sit straight in the form). The ID beats it. */
body[data-tbc-form='free'] .am-signup .tbc-join-form > form > #row-email-0 {
  margin: 0 0 18px;
}

/* 1.2.8 — free form: the reCAPTCHA sits left under "Anti Spam" (it arrives with auto side
   margins); the terms checkbox lines up like the opt-ins (box, then a hanging text column). */
body[data-tbc-form='free'] .am-signup .tbc-join-form #row-grp-captcha .g-recaptcha {
  margin-left: 0;
  margin-right: 0;
}
/* (Text and links mixed in one label, so a hanging indent rather than a grid.) */
body[data-tbc-form='free'] .am-signup .tbc-join-form [id^='row-_i_agree'] .am-element > label {
  position: relative;
  display: block;
  margin: 0;
  padding: 0 0 0 28px;
  font: 400 14px/1.35 var(--tbc-body);
  color: var(--tbc-grey-light);
  text-align: left;
  cursor: pointer;
}
body[data-tbc-form='free'] .am-signup .tbc-join-form [id^='row-_i_agree'] .am-element > label > input[type='checkbox'] {
  position: absolute;
  top: 0;
  left: 0;
}

/* 1.2.14 — venue form at every width: selects look like the card's text fields; the timglobal theme's
   JS turns each radio label into a white toggle (.tim-label-custom-js, red when picked, built for
   plan tiles) — here they sit in a row and take the card's dark field style, TIM red when picked. */
body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset select {
  display: block;
  width: 100%;
  max-width: none;
  height: 44px;
  margin: 0;
  padding: 0 12px;
  box-sizing: border-box;
  background-color: #111;
  color: var(--tbc-white);
  border: 1px solid var(--tbc-ash);
  border-radius: 2px;
  font: 400 15px/18px var(--tbc-body);
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset select:focus {
  outline: none;
  border-color: var(--tbc-red);
  box-shadow: 0 0 0 1px var(--tbc-red);
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .am-element:has(> label.radio) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .am-element:has(> label.radio) > br {
  display: none;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .am-element > label.radio {
  flex: 1 1 auto;
  width: auto;
  margin: 0;
  padding: 10px 14px;
  background: #111;
  color: var(--tbc-white);
  border: 1px solid var(--tbc-ash);
  border-radius: 4px;
  font: 600 14px/1.3 var(--tbc-body);
  white-space: normal;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .am-element > label.radio:hover {
  background: #1c1c1c;
  border-color: var(--tbc-grey-mid);
  color: #fff;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .am-element > label.radio.tim-label-custom-js-active {
  background: var(--tbc-red);
  border-color: var(--tbc-red);
  color: #fff;
}
/* The timglobal theme floats every form's #row-html2-0 element right at 50% width (an old hack
   for another form, ID weight); the venue form's footnote is that row. */
body[data-tbc-form='venue'] .am-signup .tbc-join-form > form > #row-html2-0 > .am-element {
  float: none;
  width: auto;
}

/* 1.2.21 — TIMTv Partner Venue Terms box on the venue form (aMember agreement brick, 2026-10-16).
   Its label mixes text and the popup link, so a hanging indent (as the free form's terms box) rather
   than the opt-ins' two-column grid; normal weight, same size and colour as the opt-ins. */
body[data-tbc-form='venue'] .am-signup .tbc-join-form [id^='row-_i_agree'] .am-element > label {
  position: relative;
  display: block;
  margin: 4px 0 0;
  padding: 0 0 0 28px;
  font: 400 14px/1.35 var(--tbc-body);
  color: var(--tbc-grey-light);
  text-align: left;
  cursor: pointer;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form [id^='row-_i_agree'] .am-element > label > input[type='checkbox'] {
  position: absolute;
  top: 0;
  left: 0;
}

/* 1.2.15 — "What is TIMTv?" intro at the top of the venue form (Matt 2026-10-09: "the form looks
   great but it doesn't explain what TIMTV is or does"). The markup is form 353's first HTML brick
   (h-t-m-l-0, edited in aMember): .tbc-timtv-about = title + lede, four points, a "How it works"
   panel (steps + "More about TIMTv" → /timtv) and the existing-account note. Phones stack it in
   that order; from 900px it sits on the form's three columns (see the media block below). */
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about {
  margin: 0 0 30px;
  padding: 0 0 26px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  color: var(--tbc-grey-light);
  font: 400 15px/1.5 var(--tbc-body);
  text-align: left;
}
/* (Each part sets its own margins: a shared "… .tbc-timtv-about p" reset would out-rank them.) */
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about b {
  color: var(--tbc-white);
  font-weight: 700;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__title {
  margin: 0 0 12px;
  padding: 0;
  color: var(--tbc-white);
  font: 400 26px/1.15 var(--tbc-display);
  letter-spacing: 0;
  text-transform: none;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__lede {
  max-width: 62ch;
  margin: 0;
  padding: 0;
  font-size: 16px;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__points {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__points > li {
  margin: 0;
  padding: 12px 0 0 14px;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  position: relative;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__points > li::before {
  content: '';
  position: absolute;
  top: 19px;
  left: 0;
  width: 6px;
  height: 6px;
  background: var(--tbc-red);
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__points > li > b {
  display: block;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__how {
  margin: 22px 0 0;
  padding: 18px 20px 16px;
  background: #111;
  border: 1px solid var(--tbc-ash);
  border-radius: 4px;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__how-title {
  margin: 0 0 12px;
  padding: 0;
  color: var(--tbc-white);
  font: 800 13px/1.2 var(--tbc-body);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__steps {
  counter-reset: tbc-timtv-step;
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__steps > li {
  counter-increment: tbc-timtv-step;
  position: relative;
  min-height: 26px;
  margin: 0;
  padding: 0 0 0 38px;
  list-style: none;
  font-size: 14px;
  line-height: 1.4;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__steps > li::before {
  content: counter(tbc-timtv-step);
  position: absolute;
  top: 0;
  left: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--tbc-red);
  color: #fff;
  font: 800 14px/26px var(--tbc-body);
  text-align: center;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__steps > li > b {
  display: block;
  font-size: 15px;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__more {
  margin: 16px 0 0;
  padding: 12px 0 0;
  border-top: 1px solid var(--tbc-ash);
  font: 700 14px/1.3 var(--tbc-body);
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__more a {
  color: var(--tbc-gold-warm);
  text-decoration: none;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__more a::after {
  content: ' \2192';
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__more a:hover,
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__more a:focus-visible {
  color: var(--tbc-white);
  text-decoration: underline;
}
body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about .tbc-timtv-note {
  margin: 20px 0 0;
  font-size: 14px;
  color: var(--tbc-grey-light);
}

@media (min-width: 900px) {
  body[data-tbc-form] .am-signup .am-form.tbc-join-form {
    width: calc(100% - 20px);
    max-width: 1420px;
    margin: 20px auto 32px;
    padding: 40px 40px 28px;
  }
  body[data-tbc-form] .am-signup .tbc-join-form legend {
    margin-bottom: 26px;
  }
  body[data-tbc-form] .am-signup .tbc-join-form > form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 32px;
  }
  /* Anything aMember adds (errors, an HTML brick, an un-hidden coupon box) gets a full row. */
  body[data-tbc-form] .am-signup .tbc-join-form > form > * {
    grid-column: 1 / -1;
  }
  body[data-tbc-form] .am-signup .tbc-join-form .am-element.group:has(> label) {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 32px;
  }
  body[data-tbc-form] .am-signup .tbc-join-form .am-element.group > label,
  body[data-tbc-form] .am-signup .tbc-join-form .am-element.group > label:first-child {
    margin: 2px 0 0;
  }
  body[data-tbc-form] .am-signup .tbc-join-form > form > #row-buttons {
    grid-column: 3;
    align-self: end;
    margin: 4px 0 0;
  }
  body[data-tbc-form] .am-signup .tbc-join-form .am-login-text {
    margin-top: 22px;
  }

  /* ---- offer: the three fields live in the fieldset ---- */
  body[data-tbc-form='offer'] .am-signup .tbc-join-form .fieldset {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 32px;
    align-items: start;
  }
  body[data-tbc-form='offer'] .am-signup .tbc-join-form fieldset > legend {
    grid-column: 1 / -1;
  }
  /* :not(#tbc-x) lends ID weight to beat aMember's #row-email-0 auto margins. */
  body[data-tbc-form='offer'] .am-signup .tbc-join-form .fieldset > .am-row:not(#tbc-x) {
    margin: 0 0 18px;
  }
  body[data-tbc-form='offer'] .am-signup .tbc-join-form > form > #row-coupon-0 {
    grid-column: 1;
  }
  body[data-tbc-form='offer'] .am-signup .tbc-join-form > form > .am-row:has(> .am-element.group > label) {
    grid-column: 1 / span 2;
    align-self: end;
    margin: 4px 0 0;
  }

  /* ---- free: rows sit straight in the form; column 1 never narrower than the reCAPTCHA ---- */
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form {
    grid-template-columns: minmax(304px, 1fr) repeat(2, minmax(0, 1fr));
    align-items: start;
  }
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form > #row-html1-0 {
    margin: 0 0 26px;
  }
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form > #row-login-0 {
    grid-column: 1;
  }
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form > #row-email-0 {
    grid-column: 2;
  }
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form > #row-pass-0 {
    grid-column: 3;
  }
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form > #row-grp-captcha {
    grid-column: 1;
    margin: 4px 0 18px;
  }
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form > [id^='row-_newsletter'] {
    grid-column: 2 / span 2;
    margin: 4px 0 18px;
  }
  body[data-tbc-form='free'] .am-signup .tbc-join-form > form > [id^='row-_i_agree'] {
    grid-column: 1 / span 2;
    align-self: center;
    margin: 4px 0 0;
  }

  /* ---- venue: the fields live in four fieldsets, three columns each ---- */
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 32px;
    align-items: start;
  }
  /* :not(#tbc-x) lends ID weight to beat aMember's #row-email-0 auto margins. */
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset > .am-row:not(#tbc-x) {
    margin: 0 0 18px;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset > #row-timtv_venue_name-0,
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset > #row-timtv_street-0 {
    grid-column: span 2;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset > #row-timtv_tv_types-0,
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset > #row-timtv_delivery-0,
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset > .am-row:has(> .am-element.group > label) {
    grid-column: 1 / -1;
  }
  /* 1.2.21 — the Partner Venue Terms box spans the row like the opt-ins above it. */
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .fieldset > [id^='row-_i_agree'] {
    grid-column: 1 / -1;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form > form > #row-html2-0 {
    grid-column: 1 / span 2;
    align-self: center;
    margin: 4px 0 0;
  }
  /* 1.2.15 — the intro on the form's columns: title, lede and the points (two by two) over
     columns 1–2, the "How it works" panel in column 3, the account note under both. */
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 32px;
    align-items: start;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__lead,
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__points {
    grid-column: 1 / span 2;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__points {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 32px;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__title {
    font-size: 30px;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about__how {
    grid-column: 3;
    grid-row: 1 / span 2;
    margin: 0;
  }
  body[data-tbc-form='venue'] .am-signup .tbc-join-form .tbc-timtv-about .tbc-timtv-note {
    grid-column: 1 / -1;
  }
}

/* ============================================================
   1.2.16 — THE REST OF THE SIGNUP FORMS (Matt 2026-10-09: "optimized like the other join forms,
   especially the TIMRev join"). Layouts, by aMember form id ($JOIN_FORMS):
     plans     — radio-plan forms (TPPlus 296, signup-plans 332, GayDepravityX 338, yopboy69 345,
                 timvideovault 169, TIMCruiser 343): the timglobal theme's white plan toggles
                 (.tim-label-custom-js, name 25% / price 75% floated, so long names printed over
                 the price) become dark buttons, TIM red when picked: name left, price right on
                 phones; side by side, name over price, from 900px. TIMCruiser's profile fields
                 sit three across like `offer`.
     affiliate — TIMRev (/members/aff/signup, form 4): the BEE intro (banner, commission
                 structures) at the top of the card; Name · Email · Password three across; the
                 three affiliate types as buttons in a row.
     press     — Press (form 31): the "About TIM" box above the card loses its grey inline
                 panel; Name · Email · Website, then lists + terms beside NEXT.
     event     — Host a party (form 341): the intro reads as the card's heading; About You and
                 Event Information three across; "Additional Details" spans the row.
   ============================================================ */

/* ---- Shared (these four layouts, every width) ---- */
/* First + last name: two fields side by side (aMember prints them as one group). */
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form div.am-row#row-name-0 .am-element {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
/* Text areas and selects look like the card's text fields. */
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form textarea {
  display: block;
  width: 100%;
  max-width: none;
  min-height: 112px;
  margin: 0;
  padding: 10px 12px;
  box-sizing: border-box;
  background: #111;
  color: var(--tbc-white);
  border: 1px solid var(--tbc-ash);
  border-radius: 2px;
  box-shadow: none;
  font: 400 15px/1.4 var(--tbc-body);
  resize: vertical;
}
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form textarea:focus {
  outline: none;
  border-color: var(--tbc-red);
  box-shadow: 0 0 0 1px var(--tbc-red);
}
/* Plain HTML bricks inside the card (TIMCruiser's title, the party intro, the press welcome):
   the theme's red typewriter h2 / tiny h4 read as the card's heading and lede instead. Direct
   children only, so a BEE brick (TIMRev's intro) keeps its own design. */
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form [id^='row-html'] .am-element > div > h1,
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form [id^='row-html'] .am-element > div > h2 {
  margin: 0 0 12px;
  padding: 0;
  color: var(--tbc-white);
  font: 400 28px/1.15 var(--tbc-display);
  letter-spacing: 0;
  text-transform: none;
  text-shadow: none;
}
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form [id^='row-html'] .am-element > div > h4,
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form [id^='row-html'] .am-element > div > p {
  max-width: 70ch;
  margin: 0 0 10px;
  padding: 0;
  color: var(--tbc-grey-light);
  font: 400 16px/1.5 var(--tbc-body);
  text-transform: none;
  letter-spacing: 0;
}
/* The timglobal theme floats every form's #row-html2-0 element right at 50% (see `venue`). */
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-signup .tbc-join-form > form > #row-html2-0 > .am-element {
  float: none;
  width: auto;
}

/* Short forms: no 1000px-tall body (the theme keeps room for its old footer) above the footer. */
body:is([data-tbc-form='plans'], [data-tbc-form='affiliate'], [data-tbc-form='press'], [data-tbc-form='event']) .am-body {
  min-height: 0;
}
/* TIMCruiser: room between the plans and "Create profile". */
body[data-tbc-form='plans'] .am-signup .tbc-join-form > form > [id^='row-product_id'] + fieldset:not(#tbc-x) {
  margin-top: 16px;
}

/* ---- Plan / type buttons (plans: the plan radios; affiliate: the affiliate types) ---- */
body[data-tbc-form='plans'] .am-signup .tbc-join-form div.am-row[id^='row-product_id'] .am-element,
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form div.am-row#row-com_type-0 .am-element {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
/* The theme floats the plan row's element right at 50% from 500px (`.am-form #row-product_id_page-0-0
   .am-element`, ID weight): :not(#tbc-x) out-ranks it. */
body[data-tbc-form='plans'] .am-signup .tbc-join-form div.am-row[id^='row-product_id'] > .am-element:not(#tbc-x) {
  float: none;
  width: auto;
  max-width: none;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > br,
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > br {
  display: none;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label,
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 16px;
  float: none;
  width: auto;
  height: auto;
  min-height: 52px;
  margin: 0;
  padding: 14px 16px;
  box-sizing: border-box;
  background: #111;
  color: var(--tbc-white);
  border: 1px solid var(--tbc-ash);
  border-radius: 4px;
  box-shadow: none;
  text-align: left;
  white-space: normal;
  font: 600 15px/1.3 var(--tbc-body);
  cursor: pointer;
  transition: background-color 0.2s, border-color 0.2s;
}
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label {
  align-items: center;
}
/* The plan labels carry Bootstrap's .clearfix: its ::before/::after would be flex items (and gaps). */
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label::before,
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label::after,
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label::before,
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label::after {
  content: none;
  display: none;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label:hover,
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label:hover {
  background: #1c1c1c;
  border-color: var(--tbc-grey-mid);
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label.tim-label-custom-js-active,
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label.tim-label-custom-js-active {
  background: var(--tbc-red);
  border-color: var(--tbc-red);
  color: #fff;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label:has(input:focus-visible),
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label:has(input:focus-visible) {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
/* Before the theme script runs (or without it) the radios show; keep them in line. */
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label > input[type='radio'],
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label > input[type='radio'] {
  margin: 0 8px 0 0;
  accent-color: var(--tbc-red);
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-product-title {
  display: block;
  float: none;
  width: auto;
  max-width: none;
  flex: 1 1 auto;
  margin: 0;
  color: inherit;
  font: 700 17px/1.25 var(--tbc-body);
  text-align: left;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-product-terms {
  display: block;
  float: none;
  width: auto;
  max-width: none;
  flex: 0 1 auto;
  margin: 0;
  color: var(--tbc-grey-light);
  font: 600 15px/1.3 var(--tbc-body);
  text-align: right;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] label.tim-label-custom-js-active .am-product-terms {
  color: #fff;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-product-desc {
  flex: 1 0 100%;
  float: none;
  width: auto;
  margin: 0;
  color: inherit;
  font: 400 13px/1.35 var(--tbc-body);
  text-align: left;
}
body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-product-desc:empty {
  display: none;
}

/* ---- affiliate: the BEE intro on the card ---- */
/* The intro brick brings a whole BEE page (banner, headline, commission structures). */
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form > form > #row-html1-0 {
  margin: 0 0 28px;
  padding: 0 0 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-html1-0 .bee-image img {
  border-radius: 4px;
}
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-html1-0 .bee-block-5 a {
  border-color: var(--tbc-red);
  border-radius: 2px;
}
body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 {
  margin-top: 4px;
}

/* ---- press: the "About TIM" box above the card (form 31's header brick, inline grey panel) ---- */
body[data-tbc-form='press'] .am-signup > #html1 > div {
  max-width: 1420px;
  margin: 20px auto 0 !important;
  padding: 0 20px !important;
  background: none !important;
  border: 0 !important;
  color: var(--tbc-grey-mid);
  font: 400 14px/1.5 var(--tbc-body);
  text-align: center;
}
body[data-tbc-form='press'] .am-signup > #html1 > div b {
  color: var(--tbc-grey-light);
}
body[data-tbc-form='press'] .am-signup .tbc-join-form > form > #row-email-0 {
  margin: 0 0 18px;
}
body[data-tbc-form='press'] .am-signup .tbc-join-form > form > #row-html2-0 {
  margin: 0 0 24px;
}

/* ---- event: the intro brick = the card's heading ---- */
body[data-tbc-form='event'] .am-signup .tbc-join-form > form > #row-html1-0 {
  margin: 0 0 30px;
  padding: 0 0 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
body[data-tbc-form='event'] .am-signup .tbc-join-form #row-html1-0 em {
  color: var(--tbc-white);
}
body[data-tbc-form='event'] .am-signup .tbc-join-form fieldset + fieldset {
  margin-top: 12px;
}

@media (min-width: 900px) {
  /* ---- plans: the plans side by side; name over price ---- */
  body[data-tbc-form='plans'] .am-signup .tbc-join-form div.am-row[id^='row-product_id'] .am-element {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }
  body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-element > label {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 4px;
    min-height: 84px;
    padding: 16px 18px;
  }
  body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-product-title,
  body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-product-desc {
    flex: 0 0 auto;
  }
  body[data-tbc-form='plans'] .am-signup .tbc-join-form [id^='row-product_id'] .am-product-terms {
    flex: 0 0 auto;
    text-align: left;
  }
  /* The plan row sits in the fieldset (TPPlus…) or straight in the form (TIMCruiser). */
  body[data-tbc-form='plans'] .am-signup .tbc-join-form div.am-row[id^='row-product_id']:not(#tbc-x) {
    grid-column: 1 / -1;
    margin: 0 0 22px;
  }
  /* TIMCruiser: email · password · confirm in the fieldset, like `offer`. */
  body[data-tbc-form='plans'] .am-signup .tbc-join-form .fieldset,
  body[data-tbc-form='affiliate'] .am-signup .tbc-join-form .fieldset,
  body[data-tbc-form='event'] .am-signup .tbc-join-form .fieldset {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 32px;
    align-items: start;
  }
  /* :not(#tbc-x) lends ID weight to beat aMember's #row-email-0 auto margins. */
  body[data-tbc-form='plans'] .am-signup .tbc-join-form .fieldset > .am-row:not(#tbc-x),
  body[data-tbc-form='affiliate'] .am-signup .tbc-join-form .fieldset > .am-row:not(#tbc-x),
  body[data-tbc-form='event'] .am-signup .tbc-join-form .fieldset > .am-row:not(#tbc-x) {
    margin: 0 0 18px;
  }
  body[data-tbc-form='plans'] .am-signup .tbc-join-form > form > #row-coupon-0 {
    grid-column: 1;
  }

  /* ---- affiliate: the types three across, NEXT under the last ---- */
  body[data-tbc-form='affiliate'] .am-signup .tbc-join-form div.am-row#row-com_type-0 .am-element {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 32px;
  }
  body[data-tbc-form='affiliate'] .am-signup .tbc-join-form #row-com_type-0 .am-element > label {
    justify-content: center;
    min-height: 64px;
    text-align: center;
  }

  /* ---- press: rows sit straight in the form ---- */
  body[data-tbc-form='press'] .am-signup .tbc-join-form > form {
    align-items: start;
  }
  body[data-tbc-form='press'] .am-signup .tbc-join-form > form > #row-name-0 {
    grid-column: 1;
  }
  body[data-tbc-form='press'] .am-signup .tbc-join-form > form > #row-email-0 {
    grid-column: 2;
  }
  body[data-tbc-form='press'] .am-signup .tbc-join-form > form > #row-website-0 {
    grid-column: 3;
  }
  body[data-tbc-form='press'] .am-signup .tbc-join-form > form > [id^='row-_newsletter'] {
    grid-column: 1 / span 2;
    margin: 4px 0 18px;
  }
  body[data-tbc-form='press'] .am-signup .tbc-join-form > form > [id^='row-_i_agree'] {
    grid-column: 1 / span 2;
    align-self: center;
    margin: 4px 0 0;
  }

  /* ---- event: the message box ("Additional Details", a one-line field) spans its fieldset ---- */
  body[data-tbc-form='event'] .am-signup .tbc-join-form .fieldset > #row-event_message-0,
  body[data-tbc-form='event'] .am-signup .tbc-join-form .fieldset > .am-row:has(textarea) {
    grid-column: 1 / -1;
  }
}

/* ============================================================
   1.2.5 — SITE FOOTER: port of the TIM CMS footer (Matt 2026-10-05: "it should match the
   treasureislandmedia.com homepage"). The rules after the base block are tim-cms
   src/app/(frontend)/tim-original/chrome.css's footer rules (.to-footer*, .to-footcol*,
   .to-social*, .to-footnews*) as of tim-cms@cdc4b0b3, rescoped from tim-original to
   tim-amember. Re-extract them rather than hand-editing when the CMS footer changes.
   ============================================================ */

/* The footer's own Barlow family, with the regular weight the CMS footer's body text uses.
   Kept apart from 'Barlow' (600–900 only) so the sign-in and join cards keep the weight they
   were approved at; 600 and 700 reuse the same files. */
@font-face {
  font-family: 'TIM Footer Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/members/misc/tim-brand-chrome/asset?f=barlow-400.woff2') format('woff2');
}
@font-face {
  font-family: 'TIM Footer Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/members/misc/tim-brand-chrome/asset?f=barlow-600.woff2') format('woff2');
}
@font-face {
  font-family: 'TIM Footer Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/members/misc/tim-brand-chrome/asset?f=barlow-700.woff2') format('woff2');
}

/* What the footer inherits on the CMS (styles.css :root, body, global reset) and doesn't get
   from the aMember theme (Bootstrap 3 + the Drupal timglobal style.css: Arial 13px #444). */
[data-template='tim-amember'].tim-amember-footer {
  --tim-grey-mid: #9d9d9d;
  --font-body: 'TIM Footer Barlow', 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-display: 'Special Elite', 'Courier New', monospace;
  --to-gutter: 15px;
  display: block;
  clear: both;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--tim-grey-light);
  text-align: start;
  -webkit-font-smoothing: antialiased;
}
/* Reset at (0,1,0)/(0,1,1): beats the theme's element rules (h2, p, ul, a, img…) and loses to
   every ported rule below, which are all (0,2,0) or more. */
:where([data-template='tim-amember']) .to-footer,
:where([data-template='tim-amember']) .to-footer *,
:where([data-template='tim-amember']) .to-footer *::before,
:where([data-template='tim-amember']) .to-footer *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
:where([data-template='tim-amember']) .to-footer :is(h1, h2, h3, h4, p, ul, li, details, summary, nav, aside, time) {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}
:where([data-template='tim-amember']) .to-footer summary {
  display: list-item;
}
:where([data-template='tim-amember']) .to-footer a {
  color: inherit;
  text-decoration: none;
}
/* Bootstrap underlines and rings links on hover/focus; the CMS footer doesn't. */
:where([data-template='tim-amember']) .to-footer a:hover,
:where([data-template='tim-amember']) .to-footer a:focus {
  text-decoration: none;
  outline: none;
}
:where([data-template='tim-amember']) .to-footer .to-footer__legal-link:hover,
:where([data-template='tim-amember']) .to-footer .to-footer__legal-link:focus {
  text-decoration: underline;
}
:where([data-template='tim-amember']) .to-footer a:focus-visible {
  outline: 2px solid var(--tim-white);
  outline-offset: 2px;
  border-radius: 2px;
}
:where([data-template='tim-amember']) .to-footer img {
  max-width: 100%;
  display: block;
}
/* The CMS footer's `.container` (fluid, 15px gutters). Not Bootstrap's fixed-width one. */
[data-template='tim-amember'] .tbc-footer__container {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0 var(--to-gutter);
}

/* ---- tim-cms chrome.css footer rules (extracted) ---- */
[data-template='tim-amember'] .to-footer {
  background: #282828;
  border-top: 2px solid var(--tim-red);
  padding: 40px 0 calc(26px + env(safe-area-inset-bottom, 0px));
  margin-top: auto;
}

[data-template='tim-amember'] .to-footer__brand {
  grid-area: brand;
  min-width: 0;
  /* A centring flex column, not text-align: a flex item that is wider than its box still
     overflows evenly on both sides, so the wordmark can never drift off the centre line. */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

[data-template='tim-amember'] .to-footer__mark {
  position: relative;
  white-space: nowrap;
}

[data-template='tim-amember'] .to-footer__wordmark {
  display: block;
  font-family: var(--font-display);
  text-transform: uppercase;
  color: var(--tim-white);
  font-size: clamp(34px, 5.2vw, 82px);
  letter-spacing: 0.02em;
  line-height: 1.02;
}

[data-template='tim-amember'] .to-footer__wm-red {
  color: var(--tim-red);
}

[data-template='tim-amember'] .to-footer__tag {
  display: block;
  margin-top: 6px;
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 13px;
  color: var(--tim-grey-mid);
}

[data-template='tim-amember'] .to-footer__tag-name {
  color: var(--tim-gold);
}

[data-template='tim-amember'] .to-footer__main {
  --to-footnews-w: clamp(120px, calc(17.75vw - 33px), 225px);
  display: grid;
  grid-template-columns: var(--to-footnews-w) minmax(0, 1fr) var(--to-footnews-w);
  grid-template-areas:
    'news brand .'
    'news cols .';
  column-gap: 14px;
  row-gap: 28px;
  align-items: start;
}

[data-template='tim-amember'] .to-footer__social {
  position: absolute;
  top: 50%;
  left: calc(100% + 28px);
  transform: translateY(-50%);
  display: grid;
  grid-template-columns: repeat(3, 36px);
  gap: 6px;
}

[data-template='tim-amember'] .to-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 28px;
  background: var(--tim-red);
  border-radius: 2px;
  transition: background 140ms ease;
}

[data-template='tim-amember'] .to-social:hover {
  background: var(--tim-red-dark);
}

[data-template='tim-amember'] .to-social__icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: block;
}

[data-template='tim-amember'] .to-footer__cols {
  grid-area: cols;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, max-content));
  justify-content: center;
  column-gap: clamp(16px, calc(10vw - 80px), 72px);
  row-gap: 24px;
}

[data-template='tim-amember'] .to-footcol__h {
  font-family: var(--font-body);
  text-transform: uppercase;
  color: #777;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 1px;
  margin-bottom: 6px;
  white-space: nowrap; /* "Member Links" stays one line; a long link wraps instead */
}

[data-template='tim-amember'] .to-footcol__list {
  list-style: none;
}

[data-template='tim-amember'] .to-footcol__sum {
  list-style: none;
  cursor: default;
  pointer-events: none;
}

[data-template='tim-amember'] .to-footcol__sum::-webkit-details-marker {
  display: none;
}

[data-template='tim-amember'] .to-footcol__sum::marker {
  content: '';
}

[data-template='tim-amember'] .to-footcol__list a,
[data-template='tim-amember'] .to-footcol__logout {
  display: block;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 20px;
  color: var(--tim-white);
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  text-align: left;
  width: 100%;
}

[data-template='tim-amember'] .to-footcol__list a:hover,
[data-template='tim-amember'] .to-footcol__logout:hover {
  color: var(--tim-gold);
}

[data-template='tim-amember'] .to-footnews {
  --to-footnews-tint: 0.1;
  grid-area: news;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0,
    rgba(0, 0, 0, var(--to-footnews-tint)) 64px,
    rgba(0, 0, 0, var(--to-footnews-tint)) calc(100% - 64px),
    rgba(0, 0, 0, 0) 100%
  );
}

[data-template='tim-amember'] .to-footnews__win {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  padding-top: 6px;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 12px, #000 calc(100% - 40px), transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 12px, #000 calc(100% - 40px), transparent 100%);
}

[data-template='tim-amember'] .to-footnews[data-state='empty'] .to-footnews__win {
  display: none;
}

[data-template='tim-amember'] .to-footnews__track {
  will-change: transform;
}

[data-template='tim-amember'] .to-footnews[data-spin='on'] .to-footnews__win {
  touch-action: pan-x pinch-zoom;
  overscroll-behavior: contain;
  -webkit-user-select: none;
  user-select: none;
}

[data-template='tim-amember'] .to-footnews[data-spin='on'] .to-footnews__item {
  -webkit-user-drag: none;
}

[data-template='tim-amember'] .to-footnews__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

[data-template='tim-amember'] .to-footnews__item {
  display: block;
  padding: 13px var(--to-footnews-pad, 8px) 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  color: var(--tim-white);
  text-decoration: none;
  transition: background 140ms ease;
}

[data-template='tim-amember'] .to-footnews__item:hover,
[data-template='tim-amember'] .to-footnews__item:focus-visible {
  background: rgba(255, 255, 255, 0.045);
}

[data-template='tim-amember'] .to-footnews__item:focus-visible {
  outline: 2px solid #e18d33;
  outline-offset: -2px;
}

[data-template='tim-amember'] .to-footnews__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 6px;
  font-family: var(--font-body);
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #aaa;
}

[data-template='tim-amember'] .to-footnews__date {
  color: #e18d33;
  font-weight: 700;
}

[data-template='tim-amember'] .to-footnews__go {
  flex: none;
  margin-left: auto;
  color: #e18d33;
  opacity: 0;
  transform: translate(-3px, 3px);
  transition:
    opacity 140ms ease,
    transform 140ms ease;
}

[data-template='tim-amember'] .to-footnews__item:hover .to-footnews__go,
[data-template='tim-amember'] .to-footnews__item:focus-visible .to-footnews__go {
  opacity: 1;
  transform: none;
}

[data-template='tim-amember'] .to-footnews__title {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 5px;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 21px;
  font-weight: 600;
  color: var(--tim-white);
  transition: color 140ms ease;
}

[data-template='tim-amember'] .to-footnews__item:hover .to-footnews__title,
[data-template='tim-amember'] .to-footnews__item:focus-visible .to-footnews__title {
  color: #e18d33;
}

[data-template='tim-amember'] .to-footnews__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 8px;
  margin: 0 var(--to-footnews-pad, 8px);
  padding: 11px 0 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  text-decoration: none;
}

[data-template='tim-amember'] .to-footnews__foot:focus-visible {
  outline: 2px solid #e18d33;
  outline-offset: 3px;
}

[data-template='tim-amember'] .to-footnews__brand {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 24px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--tim-white);
  white-space: nowrap;
}

[data-template='tim-amember'] .to-footnews__brand-red {
  color: var(--tim-red);
}

[data-template='tim-amember'] .to-footnews__all {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #e18d33;
  white-space: nowrap;
  transition: color 140ms ease;
}

[data-template='tim-amember'] .to-footnews__foot:hover .to-footnews__all,
[data-template='tim-amember'] .to-footnews__foot:focus-visible .to-footnews__all {
  color: var(--tim-white);
}

[data-template='tim-amember'] .to-footnews__skel {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 12px var(--to-footnews-pad, 8px);
}

[data-template='tim-amember'] .to-footnews__skel-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

[data-template='tim-amember'] .to-footnews__skel-bar {
  display: block;
  width: 100%;
  height: 15px;
  border-radius: 2px;
  background: linear-gradient(90deg, #333 0, #3e3e3e 40%, #333 80%);
  background-size: 300% 100%;
  animation: to-footnews-shimmer 1.3s ease-in-out infinite;
}

[data-template='tim-amember'] .to-footnews__skel-bar--meta {
  width: 44%;
  height: 11px;
}

[data-template='tim-amember'] .to-footnews__skel-bar--short {
  width: 66%;
}

@keyframes to-footnews-shimmer {
  from {
    background-position: 100% 0;
  }
  to {
    background-position: 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-template='tim-amember'] .to-footnews__skel-bar {
      animation: none;
    }
}

@media (min-width: 960px) {
  [data-template='tim-amember'] .to-footnews {
      align-self: stretch;
      margin-top: -40px;
      margin-bottom: -30px;
    }
}

@media (max-width: 1279px) {
  [data-template='tim-amember'] .to-footnews {
      --to-footnews-pad: 6px;
    }
  [data-template='tim-amember'] .to-footnews__title {
      -webkit-line-clamp: 4;
    }
}

[data-template='tim-amember'] .to-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px 40px;
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

[data-template='tim-amember'] .to-footer__legal {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
  color: var(--tim-grey-mid);
  font-size: 12px;
  line-height: 1.6;
}

[data-template='tim-amember'] .to-footer__legal p {
  margin: 0;
}

[data-template='tim-amember'] .to-footer__legal-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

[data-template='tim-amember'] .to-footer__legal-link:hover {
  color: var(--tim-gold);
}

[data-template='tim-amember'] .to-footer__fsc {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
  text-decoration: none;
  opacity: 0.85;
  transition: opacity 140ms ease;
}

[data-template='tim-amember'] .to-footer__fsc:hover {
  opacity: 1;
}

[data-template='tim-amember'] .to-footer__fsc-label {
  font-family: var(--font-body);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tim-grey-mid);
  line-height: 1;
}

[data-template='tim-amember'] .to-footer__fsc-logo {
  display: block;
  width: 140px;
  height: auto;
}

@media (max-width: 959px) {
  [data-template='tim-amember'] .to-footer__main {
      grid-template-columns: minmax(0, 1fr);
      grid-template-areas:
        'brand'
        'news'
        'cols';
      row-gap: 28px;
    }
  [data-template='tim-amember'] .to-footer__mark {
      display: contents;
      white-space: normal; /* the phone wordmark wraps */
    }
  [data-template='tim-amember'] .to-footer__wordmark {
      order: 1;
    }
  [data-template='tim-amember'] .to-footer__tag {
      order: 2;
    }
  [data-template='tim-amember'] .to-footer__social {
      order: 3;
      position: static;
      transform: none;
      margin-top: 18px;
      grid-template-columns: repeat(5, 36px);
    }
  [data-template='tim-amember'] .to-footnews {
      width: 100%;
      max-width: 720px;
      justify-self: center;
      --to-footnews-pad: 10px;
    }
  [data-template='tim-amember'] .to-footnews__win {
      flex: none;
      height: 280px;
    }
  [data-template='tim-amember'] .to-footnews__title {
      -webkit-line-clamp: 3;
    }
}

@media (max-width: 900px) {
  [data-template='tim-amember'] .to-footer__cols {
      grid-template-columns: repeat(3, 1fr);
      width: 100%;
    }
  [data-template='tim-amember'] .to-footer__bottom {
      flex-direction: column;
      align-items: center;
      text-align: center;
    }
  [data-template='tim-amember'] .to-footer__legal {
      text-align: center;
    }
  [data-template='tim-amember'] .to-footer__fsc {
      align-items: center;
    }
}

@media (max-width: 720px) {
  [data-template='tim-amember'] .to-footer__cols {
      grid-template-columns: repeat(2, 1fr);
      gap: 28px 20px;
    }
  [data-template='tim-amember'] .to-footer__cols[data-accordion='on'] {
      display: block;
      border-top: 1px solid rgba(255, 255, 255, 0.1);
    }
  [data-template='tim-amember'] .to-footer__cols[data-accordion='on'] .to-footcol {
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }
  [data-template='tim-amember'] .to-footer__cols[data-accordion='on'] .to-footcol__sum {
      /* Re-enable the affordance the desktop rule above deliberately removes. */
      pointer-events: auto;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      /* Comfortable target without a separate min-height: 14+14 + the h2's line box. */
      padding: 14px 2px;
      -webkit-tap-highlight-color: transparent;
    }
  [data-template='tim-amember'] .to-footer__cols[data-accordion='on'] .to-footcol__h {
      margin-bottom: 0;
      color: var(--tim-gold);
    }
  [data-template='tim-amember'] .to-footer__cols[data-accordion='on'] .to-footcol__sum::after {
      content: '+';
      color: var(--tim-gold);
      font-size: 20px;
      line-height: 1;
      flex: none;
    }
  [data-template='tim-amember']
      .to-footer__cols[data-accordion='on']
      .to-footcol[open]
      .to-footcol__sum::after {
      content: '\2013';
    }
  [data-template='tim-amember'] .to-footer__cols[data-accordion='on'] .to-footcol__list {
      padding: 0 2px 10px;
    }
  [data-template='tim-amember']
      .to-footer__cols[data-accordion='on']
      .to-footcol__sum:focus-visible {
      outline: 2px solid var(--tim-gold);
      outline-offset: -2px;
    }
  [data-template='tim-amember'] .to-footcol__list a {
      min-height: 44px;
      display: flex;
      align-items: center;
      padding: 10px 0;
      line-height: 1.3;
      font-size: 15px;
    }
  [data-template='tim-amember'] .to-footer__social {
      grid-template-columns: repeat(5, 44px);
      gap: 8px;
    }
  [data-template='tim-amember'] .to-footnews {
      max-width: none;
      width: auto;
      justify-self: stretch;
      margin: 0 calc(-1 * var(--to-gutter, 15px));
      --to-footnews-pad: 15px;
    }
  [data-template='tim-amember'] .to-footnews__foot {
      min-height: 44px;
      align-items: center;
    }
  [data-template='tim-amember'] .to-social {
      width: 44px;
      height: 44px;
    }
}


/* ============================================================
   1.2.10 — No dead space above the footer (Matt 2026-10-05). The Drupal style.css gives
   .am-body `min-height: 1000px`, so a short member page (the dashboard, FAQ, Help Desk) was
   padded out to 1000px before the footer. On pages with the CMS footer the footer now sits
   right under the content. 1.2.12: and it ends after its 2257 / FSC row — it no longer
   stretches to the bottom of the window (Matt: "less under the footer").
   Pages without the CMS footer (sign-in, join) are untouched.
   ============================================================ */
body .am-layout:has(> .tim-amember-footer) > .am-body {
  min-height: 0;
}

/* ============================================================
   1.2.18 — Gold member menu on phones: every item on screen.
   The strip used to scroll sideways with a › cue; on an iPhone that read as the menu
   running off the edge (Matt 2026-10-09). The member menu is short (My Info, Affiliate
   Dashboard, Marketing Materials, Logout), so on phones it wraps onto a second line
   instead, centred, and the dropdowns are no longer clipped by a scroll box.
   ============================================================ */
@media (max-width: 767px) {
  [data-template='tim-amember'] .to-nav {
    height: auto;
    min-height: 30px;
  }
  [data-template='tim-amember'] .to-nav .to-nav__inner {
    flex-wrap: wrap;
    justify-content: center;
    height: auto;
    max-height: none;
    min-height: 30px;
    overflow: visible;
    padding: 2px 6px;
    row-gap: 0;
    touch-action: auto;
  }
  [data-template='tim-amember'] .to-nav .to-nav__inner > * {
    order: 0;
    flex: 0 0 auto;
  }
  [data-template='tim-amember'] .to-nav .to-nav__link {
    height: 28px;
    padding: 0 10px;
    font-size: 13px;
  }
  [data-template='tim-amember'] .to-nav::before,
  [data-template='tim-amember'] .to-nav::after,
  [data-template='tim-amember'] .to-nav .to-nav__more {
    display: none !important;
  }
}

/* ============================================================
   1.2.18 — Member Dashboard layouts (views/member/main.phtml stamps
   <body data-tbc-page="dashboard" data-tbc-dash="glass|site|console">).
   Glass is the default (Matt 2026-10-09). Classic = aMember's own page, none of this.
   ============================================================ */
body[data-tbc-page='dashboard'] {
  --tbc-dash-body: 'TIM Footer Barlow', 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
body[data-tbc-page='dashboard'] .am-body-content {
  background: none;
}
body[data-tbc-page='dashboard'] .am-body {
  min-height: 0;
}
body[data-tbc-page='dashboard'] .tbc-dash {
  max-width: 1180px;
  margin: 0 auto;
  padding: 40px 0 56px;
  font-family: var(--tbc-dash-body);
  color: var(--tbc-grey-light);
}
/* header */
body[data-tbc-page='dashboard'] .tbc-dash__head {
  text-align: center;
  margin-bottom: 28px;
}
body[data-tbc-page='dashboard'] .tbc-dash__kicker {
  margin: 0 0 8px;
  font: 700 12px/1 var(--tbc-dash-body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--tbc-grey-mid);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__title {
  margin: 0;
  font: 400 42px/1.1 var(--tbc-display);
  text-transform: uppercase;
  color: #fff;
  background: none;
  border: 0;
  padding: 0;
}
body[data-tbc-page='dashboard'] .tbc-dash__state {
  margin: 10px 0 0;
  font: 400 18px/1.45 var(--tbc-dash-body);
  color: var(--tbc-grey-light);
}
body[data-tbc-page='dashboard'] .tbc-dash__state b {
  color: #fff;
  font-weight: 700;
}
body[data-tbc-page='dashboard'] .tbc-dash__cta {
  margin: 22px 0 0;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 26px;
  border-radius: 4px;
  background: var(--tbc-red);
  color: #fff;
  font: 400 15px/1 var(--tbc-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(174, 17, 15, 0.35);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__btn:hover {
  background: var(--tbc-red-dark);
  color: #fff;
}
/* top blocks: help-desk notice + top ad slot */
body[data-tbc-page='dashboard'] .tbc-dash__top:empty,
body[data-tbc-page='dashboard'] .tbc-dash__bottom:empty {
  display: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-info-helpdesk {
  max-width: 760px;
  margin: 0 auto 22px;
  padding: 12px 20px;
  border: 1px solid rgba(201, 124, 42, 0.45);
  border-radius: 999px;
  background: rgba(201, 124, 42, 0.1);
  color: #fff;
  font: 600 15px/1.4 var(--tbc-dash-body);
  text-align: center;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-info-helpdesk a {
  color: var(--tbc-gold);
}
body[data-tbc-page='dashboard'] .tbc-dash .tim-suite-ads-wrap img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}
body[data-tbc-page='dashboard'] .tbc-dash__bottom {
  margin-top: 22px;
}
/* An ad slot holds its full height (inline style) until the ad script fills or hides it, so
   an empty Top slot pushed the cards 240px down for a moment on every load. Unfilled = no
   space; a filled slot (it gains <a><img>) keeps its own size. */
body[data-tbc-page='dashboard'] .tbc-dash ins[data-tim-zone]:not(:has(*)) {
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden;
}
/* grid */
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__grid {
  background: none;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  width: auto;
  margin: 0;
  float: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__grid--1 {
  grid-template-columns: minmax(0, 1fr);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__grid::before,
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__grid::after {
  display: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__col {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__col > .am-coll-content {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 0;
  margin: 0;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-layout-two-coll-top,
body[data-tbc-page='dashboard'] .tbc-dash .am-layout-two-coll-bottom {
  display: none;
}
/* cards */
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card {
  position: relative;
  margin: 0;
  padding: 24px 26px;
  border-radius: 16px;
  color: var(--tbc-grey-light);
  font-family: var(--tbc-dash-body);
  font-size: 16px;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card > h2 {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: none;
  font: 400 20px/1.2 var(--tbc-display);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #fff;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card > .am-block {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  min-height: 0;
  color: inherit;
  font: inherit;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card a {
  color: var(--tbc-gold);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
/* membership list */
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions > li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px 16px;
  margin: 0;
  padding: 14px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  background: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions > li:first-child {
  border-top: 0;
  padding-top: 2px;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-title,
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-title a,
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-title strong {
  font: 600 19px/1.3 var(--tbc-dash-body);
  color: #fff;
  text-decoration: none;
}
/* the theme prints " –" after each plan name (title – date on one line); the card lays them out */
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-title::after,
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-date::before {
  content: none !important;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-date {
  justify-self: end;
  text-align: right;
  font: 600 15px/1.3 var(--tbc-dash-body);
  color: #fff;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-date_lifetime {
  display: inline-block;
  padding: 3px 10px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tbc-grey-light);
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-link {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  font-size: 15px;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-link:empty,
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-desc:empty {
  display: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-link .upgrade-subscription {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  text-transform: capitalize;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-link .cancel-subscription {
  color: var(--tbc-grey-mid);
  text-transform: capitalize;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions_divider {
  display: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-subscriptions-desc {
  grid-column: 1 / -1;
  font-size: 14px;
  color: var(--tbc-grey-mid);
}
body[data-tbc-page='dashboard'] .tbc-dash .member-subscriptions-no h3 {
  margin: 0 0 6px;
  font: 600 18px/1.3 var(--tbc-dash-body);
  color: #fff;
}
/* account links */
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li {
  margin: 0;
  padding: 0;
  background: none;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li:first-child {
  border-top: 0;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li a,
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li > span {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  font: 400 16px/1.3 var(--tbc-dash-body);
  color: #fff;
  text-decoration: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li a::after {
  content: '›';
  margin-left: auto;
  color: var(--tbc-grey-mid);
  font-size: 20px;
  line-height: 1;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li a:hover {
  color: var(--tbc-gold);
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li:first-child a,
body[data-tbc-page='dashboard'] .tbc-dash .am-list-links li:first-child > span {
  padding-top: 0;
  color: var(--tbc-grey-light);
  font-weight: 400;
}
/* resources + files */
body[data-tbc-page='dashboard'] .tbc-dash .am-list-resources li,
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--personal-upload li {
  margin: 0;
  padding: 8px 0;
  background: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .am-list-resources li a,
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--personal-upload a {
  font-weight: 400;
}
/* email: lists as switches (the same checkboxes, restyled — aMember still saves on change) */
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter li {
  margin: 0;
  padding: 0;
  background: none;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter li:first-child {
  border-top: 0;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter label {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 0;
  padding: 13px 0;
  font: 400 16px/1.35 var(--tbc-dash-body);
  color: #fff;
  cursor: pointer;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter label *:not(input) {
  font-weight: inherit;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter li:first-child label {
  padding-top: 2px;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox'] {
  order: 2;
  flex: 0 0 auto;
  position: relative;
  width: 44px;
  height: 24px;
  margin: 0 0 0 auto;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 999px;
  background: #3a3a3e;
  border: 0;
  cursor: pointer;
  transition: background 0.15s;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox']::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #8b8b90;
  transition: transform 0.15s, background 0.15s;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox']:checked {
  background: var(--tbc-red);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox']:checked::after {
  transform: translateX(20px);
  background: #fff;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox']:focus-visible {
  outline: 2px solid var(--tbc-gold);
  outline-offset: 2px;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card__unsub {
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card__unsub label {
  color: var(--tbc-grey-light);
}
/* benefit card: banner centred */
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card .tim-suite-ads-wrap {
  margin: 0 auto;
  text-align: center;
}

/* ---- A · Glass: the affiliate portal / CMS sign-in card look ---- */
body[data-tbc-dash='glass'] {
  background:
    radial-gradient(1100px 720px at 42% 10%, rgba(174, 17, 15, 0.48), transparent 58%),
    radial-gradient(960px 620px at 96% 88%, rgba(40, 60, 120, 0.28), transparent 58%),
    radial-gradient(ellipse 800px 480px at 62% 48%, rgba(201, 124, 42, 0.1), transparent 62%),
    linear-gradient(180deg, #0b0b0b 0%, #141418 45%, #0e0e12 100%) !important;
  background-color: #0e0e12 !important;
  background-repeat: no-repeat !important;
}
html:has(> body[data-tbc-dash='glass']) {
  background: #0e0e12 !important;
}
body[data-tbc-dash='glass'] .am-layout,
body[data-tbc-dash='glass'] .am-body,
body[data-tbc-dash='glass'] .am-body-content-wrapper,
body[data-tbc-dash='glass'] .am-body-content {
  background: transparent !important;
}
body[data-tbc-dash='glass'] .tbc-dash .tbc-card {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 32%, transparent 55%),
    rgba(12, 13, 17, 0.8);
  -webkit-backdrop-filter: blur(14px) saturate(1.05);
  backdrop-filter: blur(14px) saturate(1.05);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 20px 56px rgba(0, 0, 0, 0.4);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  body[data-tbc-dash='glass'] .tbc-dash .tbc-card {
    background: rgba(16, 17, 22, 0.94);
  }
}

/* ---- 1.2.29 — Still images row: a card like the others (glass | site | console dress it) ---- */
body[data-tbc-page='dashboard'] .tbc-dash .tbc-card--tim-still[hidden] {
  display: none;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-still {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-still__note {
  flex: 1 1 200px;
  margin: 0;
  color: var(--tbc-grey-mid);
  font: 400 16px/1.35 var(--tbc-dash-body);
}
body[data-tbc-page='dashboard'] .tbc-dash .tbc-still .tbc-motion-switch {
  flex: 0 0 auto;
  position: relative;
  display: inline-flex;
  min-height: 30px;
}
/* Classic (aMember's own page): a plain widget, the note and the switch on one line. */
.tbc-card--tim-still[hidden] {
  display: none;
}
.tbc-still {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
}
.tbc-still__note {
  flex: 1 1 200px;
  margin: 0;
}

/* ---- B · Site: today's two columns on the site texture, done properly ---- */
body[data-tbc-dash='site'] .tbc-dash .tbc-dash__head {
  text-align: left;
}
body[data-tbc-dash='site'] .tbc-dash .tbc-dash__title {
  font-size: 36px;
}
body[data-tbc-dash='site'] .tbc-dash .tbc-card {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  background: rgba(20, 20, 22, 0.92);
}
body[data-tbc-dash='site'] .tbc-dash .tbc-card > h2 {
  padding-bottom: 10px;
  border-bottom: 2px solid var(--tbc-red);
}
body[data-tbc-dash='site'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox'] {
  order: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  border-radius: 3px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: transparent;
}
body[data-tbc-dash='site'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox']::after {
  top: 3px;
  left: 6px;
  width: 6px;
  height: 11px;
  border-radius: 0;
  background: none;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
}
body[data-tbc-dash='site'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox']:checked {
  background: var(--tbc-red);
  border-color: var(--tbc-red);
}
body[data-tbc-dash='site'] .tbc-dash .tbc-card--member-main-newsletter input[type='checkbox']:checked::after {
  transform: rotate(45deg) scale(1);
}

/* ---- C · Console: black, hairlines, one column of labelled rows, big numbers ---- */
body[data-tbc-dash='console'] {
  background: #050505 !important;
}
html:has(> body[data-tbc-dash='console']) {
  background: #050505 !important;
}
body[data-tbc-dash='console'] .am-layout,
body[data-tbc-dash='console'] .am-body,
body[data-tbc-dash='console'] .am-body-content-wrapper,
body[data-tbc-dash='console'] .am-body-content {
  background: transparent !important;
}
body[data-tbc-dash='console'] .tbc-dash {
  max-width: 1040px;
}
body[data-tbc-dash='console'] .tbc-dash .tbc-dash__head {
  text-align: left;
}
body[data-tbc-dash='console'] .tbc-dash .tbc-dash__title {
  font: 300 40px/1.15 var(--tbc-dash-body);
  text-transform: none;
}
body[data-tbc-dash='console'] .tbc-dash__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 28px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
body[data-tbc-dash='console'] .tbc-dash__stat {
  padding: 18px 16px 18px 0;
}
body[data-tbc-dash='console'] .tbc-dash__stat + .tbc-dash__stat {
  padding-left: 16px;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}
body[data-tbc-dash='console'] .tbc-dash__stat dt {
  font: 700 11px/1 var(--tbc-dash-body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--tbc-grey-mid);
}
body[data-tbc-dash='console'] .tbc-dash__stat dd {
  margin: 8px 0 0;
  font: 400 26px/1.15 var(--tbc-dash-body);
  color: #fff;
  overflow-wrap: anywhere;
}
body[data-tbc-dash='console'] .tbc-dash .tbc-dash__cta {
  text-align: left;
}
body[data-tbc-dash='console'] .tbc-dash .tbc-dash__col > .am-coll-content {
  gap: 0;
}
body[data-tbc-dash='console'] .tbc-dash .tbc-card {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 24px;
  padding: 22px 0;
  border-radius: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: none;
}
body[data-tbc-dash='console'] .tbc-dash .tbc-card > h2 {
  margin: 4px 0 0;
  font: 700 12px/1.3 var(--tbc-dash-body);
  letter-spacing: 0.16em;
  color: var(--tbc-grey-mid);
}
body[data-tbc-dash='console'] .tbc-dash .tbc-card > :not(h2) {
  grid-column: 2;
}
body[data-tbc-dash='console'] .tbc-dash .tbc-card .tim-suite-ads-wrap {
  margin: 0;
  text-align: left;
}

/* ---- phones + narrow windows ---- */
@media (max-width: 860px) {
  body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__col,
  body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__col > .am-coll-content {
    display: contents;
  }
  /* Glass on phones: Membership, Benefit, Email, Account, then the rest. */
  body[data-tbc-dash='glass'] .tbc-dash .tbc-card { order: 5; }
  body[data-tbc-dash='glass'] .tbc-dash .tbc-card--member-main-subscriptions { order: 1; }
  body[data-tbc-dash='glass'] .tbc-dash .tbc-card[id^='widget-widget-member'] { order: 2; }
  body[data-tbc-dash='glass'] .tbc-dash .tbc-card--member-main-newsletter { order: 3; }
  body[data-tbc-dash='glass'] .tbc-dash .tbc-card--member-main-links { order: 4; }
  body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }
  body[data-tbc-dash='console'] .tbc-dash .tbc-dash__grid {
    gap: 0;
  }
  body[data-tbc-dash='console'] .tbc-dash__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body[data-tbc-dash='console'] .tbc-dash__stat:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }
  body[data-tbc-dash='console'] .tbc-dash__stat:nth-child(n + 3) {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }
}
@media (max-width: 640px) {
  body[data-tbc-page='dashboard'] .tbc-dash {
    padding: 28px 0 40px;
  }
  body[data-tbc-page='dashboard'] .tbc-dash .tbc-dash__title {
    font-size: 30px;
  }
  body[data-tbc-page='dashboard'] .tbc-dash__state {
    font-size: 16px;
  }
  body[data-tbc-page='dashboard'] .tbc-dash .tbc-card {
    padding: 20px 18px;
    border-radius: 14px;
  }
  body[data-tbc-dash='console'] .tbc-dash .tbc-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding: 18px 0;
  }
  body[data-tbc-dash='console'] .tbc-dash .tbc-card > :not(h2) {
    grid-column: 1;
  }
  body[data-tbc-dash='console'] .tbc-dash__stat dd {
    font-size: 21px;
  }
  body[data-tbc-page='dashboard'] .tbc-dash .am-info-helpdesk {
    border-radius: 14px;
  }
}

/* ============================================================
   1.2.19 — Account pages in the dashboard look: profile, Marked Men profile,
   payment history, help desk (<body data-tbc-page="account" data-tbc-acct=…
   data-tbc-dash=glass|site|console>). aMember's forms and grids, restyled only.
   ============================================================ */
body[data-tbc-page='account'] {
  --tbc-dash-body: 'TIM Footer Barlow', 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --tbc-acct-card: rgba(12, 13, 17, 0.8);
  --tbc-acct-line: rgba(255, 255, 255, 0.1);
}
body[data-tbc-page='account'] .am-body {
  min-height: 0;
}
body[data-tbc-page='account'] .am-body-content {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px 0 56px;
  background: none;
  font-family: var(--tbc-dash-body);
  color: var(--tbc-grey-light);
}
body[data-tbc-dash='glass'][data-tbc-page='account'] {
  background:
    radial-gradient(1100px 720px at 42% 10%, rgba(174, 17, 15, 0.42), transparent 58%),
    radial-gradient(960px 620px at 96% 88%, rgba(40, 60, 120, 0.26), transparent 58%),
    linear-gradient(180deg, #0b0b0b 0%, #141418 45%, #0e0e12 100%) !important;
  background-color: #0e0e12 !important;
  background-repeat: no-repeat !important;
}
html:has(> body[data-tbc-dash='glass'][data-tbc-page='account']) {
  background: #0e0e12 !important;
}
body[data-tbc-dash='console'][data-tbc-page='account'],
html:has(> body[data-tbc-dash='console'][data-tbc-page='account']) {
  background: #050505 !important;
}
body[data-tbc-page='account'] .am-layout,
body[data-tbc-page='account'] .am-body-content-wrapper {
  background: transparent !important;
}
/* header (same pieces as the dashboard's) */
body[data-tbc-page='account'] .tbc-acct__head {
  margin: 0 0 26px;
  text-align: center;
}
body[data-tbc-dash='console'][data-tbc-page='account'] .tbc-acct__head,
body[data-tbc-dash='site'][data-tbc-page='account'] .tbc-acct__head {
  text-align: left;
}
body[data-tbc-page='account'] .tbc-dash__kicker {
  margin: 0 0 8px;
  font: 700 12px/1 var(--tbc-dash-body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--tbc-grey-mid);
}
body[data-tbc-page='account'] .tbc-acct__head .tbc-dash__title {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: 400 38px/1.1 var(--tbc-display);
  text-transform: uppercase;
  color: #fff;
}
body[data-tbc-dash='console'][data-tbc-page='account'] .tbc-acct__head .tbc-dash__title {
  font: 300 38px/1.15 var(--tbc-dash-body);
  text-transform: none;
}
body[data-tbc-page='account'] .tbc-acct__head .tbc-dash__state {
  margin: 10px 0 0;
  font: 400 17px/1.45 var(--tbc-dash-body);
  color: var(--tbc-grey-light);
}
/* empty ad slots take no space while the ad script decides (same as the dashboard) */
body[data-tbc-page='account'] ins[data-tim-zone]:not(:has(*)) {
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden;
}
body[data-tbc-page='account'] .tim-suite-ads-wrap img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

/* ---- the card every account page's content sits in ---- */
body[data-tbc-page='account'] .am-body-content > .am-form,
body[data-tbc-page='account'] #am-block-active-subscriptions,
body[data-tbc-page='account'] #am-block-payments,
body[data-tbc-page='account'] .am-body-content > .am-info,
body[data-tbc-page='account'] .am-grid-wrap,
body[data-tbc-page='account'] .am-helpdesk {
  position: relative;
  margin: 0 0 18px;
  padding: 24px 26px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: var(--tbc-acct-card);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 20px 56px rgba(0, 0, 0, 0.35);
  color: var(--tbc-grey-light);
  float: none;
  width: auto;
  max-width: none;
}
body[data-tbc-dash='glass'][data-tbc-page='account'] .am-body-content > .am-form,
body[data-tbc-dash='glass'][data-tbc-page='account'] #am-block-active-subscriptions,
body[data-tbc-dash='glass'][data-tbc-page='account'] #am-block-payments,
body[data-tbc-dash='glass'][data-tbc-page='account'] .am-body-content > .am-info,
body[data-tbc-dash='glass'][data-tbc-page='account'] .am-grid-wrap,
body[data-tbc-dash='glass'][data-tbc-page='account'] .am-helpdesk {
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 32%, transparent 55%),
    rgba(12, 13, 17, 0.8);
  -webkit-backdrop-filter: blur(14px) saturate(1.05);
  backdrop-filter: blur(14px) saturate(1.05);
}
body[data-tbc-dash='site'][data-tbc-page='account'] .am-body-content > .am-form,
body[data-tbc-dash='site'][data-tbc-page='account'] #am-block-active-subscriptions,
body[data-tbc-dash='site'][data-tbc-page='account'] #am-block-payments,
body[data-tbc-dash='site'][data-tbc-page='account'] .am-body-content > .am-info,
body[data-tbc-dash='site'][data-tbc-page='account'] .am-grid-wrap,
body[data-tbc-dash='site'][data-tbc-page='account'] .am-helpdesk {
  border-radius: 6px;
  background: rgba(20, 20, 22, 0.94);
  box-shadow: none;
}
body[data-tbc-dash='console'][data-tbc-page='account'] .am-body-content > .am-form,
body[data-tbc-dash='console'][data-tbc-page='account'] #am-block-active-subscriptions,
body[data-tbc-dash='console'][data-tbc-page='account'] #am-block-payments,
body[data-tbc-dash='console'][data-tbc-page='account'] .am-body-content > .am-info,
body[data-tbc-dash='console'][data-tbc-page='account'] .am-grid-wrap,
body[data-tbc-dash='console'][data-tbc-page='account'] .am-helpdesk {
  padding: 22px 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0;
  background: none;
  box-shadow: none;
}
/* section titles inside the cards (aMember h1s, fieldset legends, grid titles) */
body[data-tbc-page='account'] #am-block-active-subscriptions > h1,
body[data-tbc-page='account'] #am-block-payments > h1,
body[data-tbc-page='account'] .am-grid-wrap > h1,
body[data-tbc-page='account'] .am-body-content > div > h1,
body[data-tbc-page='account'] .am-form fieldset > legend {
  display: block;
  width: 100%;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: none !important;
  font: 400 20px/1.2 var(--tbc-display) !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #fff !important;
}
body[data-tbc-page='account'] .am-form fieldset > legend span {
  font: inherit !important;
  color: inherit !important;
}
body[data-tbc-page='account'] .am-form fieldset {
  margin: 22px 0 0;
  padding: 18px 0 0;
  border: 0;
  border-top: 1px solid var(--tbc-acct-line);
  background: none !important;
}
body[data-tbc-page='account'] .am-form fieldset:first-of-type {
  margin-top: 6px;
}
body[data-tbc-page='account'] .am-form fieldset > .fieldset,
body[data-tbc-page='account'] .am-form form {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ---- form rows: label column + field column, stacked on phones ---- */
body[data-tbc-page='account'] .am-form .am-row {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 6px 24px;
  align-items: start;
  margin: 0;
  padding: 12px 0;
  border: 0;
  background: none !important;
}
body[data-tbc-page='account'] .am-form .am-row::before,
body[data-tbc-page='account'] .am-form .am-row::after {
  display: none;
}
body[data-tbc-page='account'] .am-form .am-row > .am-element-title,
body[data-tbc-page='account'] .am-form .am-row > .am-element {
  /* the theme floats these at width/max-width 50% with ID-weight rules */
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0;
  text-align: left !important;
  background: none;
}
body[data-tbc-page='account'] .am-form .am-element-title label {
  display: block;
  padding-top: 11px;
  font: 600 15px/1.3 var(--tbc-dash-body);
  color: #fff;
}
body[data-tbc-page='account'] .am-form .am-element-title .comment,
body[data-tbc-page='account'] .am-form .am-element .comment {
  margin-top: 4px;
  font: 400 13px/1.4 var(--tbc-dash-body);
  color: var(--tbc-grey-mid);
}
body[data-tbc-page='account'] .am-form .required,
body[data-tbc-page='account'] .am-form .am-element-title .required {
  color: var(--tbc-red);
}
body[data-tbc-page='account'] .am-form .am-element {
  min-width: 0;
  overflow-wrap: anywhere;
  font: 400 15px/1.4 var(--tbc-dash-body);
  color: #fff;
  padding-top: 0;
}
body[data-tbc-page='account'] .am-form .am-element:not(:has(input, select, textarea, button, img)) {
  padding-top: 11px;
}
/* fields */
body[data-tbc-page='account'] .am-form input[type='text'],
body[data-tbc-page='account'] .am-form input[type='email'],
body[data-tbc-page='account'] .am-form input[type='password'],
body[data-tbc-page='account'] .am-form input[type='tel'],
body[data-tbc-page='account'] .am-form input[type='number'],
body[data-tbc-page='account'] .am-form input[type='date'],
body[data-tbc-page='account'] .am-form select,
body[data-tbc-page='account'] .am-form textarea {
  box-sizing: border-box;
  max-width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 8px !important;
  background: rgba(0, 0, 0, 0.45) !important;
  color: #fff !important;
  font: 400 15px/1.3 var(--tbc-dash-body) !important;
  box-shadow: none !important;
  color-scheme: dark;
}
body[data-tbc-page='account'] .am-form textarea {
  min-height: 110px;
}
body[data-tbc-page='account'] .am-form input:focus,
body[data-tbc-page='account'] .am-form select:focus,
body[data-tbc-page='account'] .am-form textarea:focus {
  outline: none;
  border-color: var(--tbc-gold) !important;
  box-shadow: 0 0 0 3px rgba(201, 124, 42, 0.25) !important;
}
body[data-tbc-page='account'] .am-form .am-element > input[type='text'],
body[data-tbc-page='account'] .am-form .am-element > input[type='email'],
body[data-tbc-page='account'] .am-form .am-element > input[type='password'],
body[data-tbc-page='account'] .am-form .am-element > select {
  width: min(100%, 420px);
}
body[data-tbc-page='account'] .am-form .am-element a {
  color: var(--tbc-gold);
}
/* first + last name side by side */
body[data-tbc-page='account'] .am-form .am-row[id^='row-name'] > .am-element {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px;
  max-width: 420px !important;
}
body[data-tbc-page='account'] .am-form .am-row[id^='row-name'] .am-element > input[type='text'] {
  display: block !important;
  float: none !important;
  flex: 1 1 0;
  min-width: 0;
  width: auto !important;
  margin: 0 !important;
}
/* name pairs, date pickers keep aMember's own inline layout */
body[data-tbc-page='account'] .am-form .am-element .am-element-name,
body[data-tbc-page='account'] .am-form .am-element .row-name input {
  width: auto;
}
/* buttons: save = red, upload = outline */
body[data-tbc-page='account'] .am-form #row-buttons-0,
body[data-tbc-page='account'] .am-form .am-row[id^='row-buttons'],
body[data-tbc-page='account'] .am-form .am-row[id^='row-save'] {
  padding-top: 20px;
}
body[data-tbc-page='account'] .am-form .am-row:has(input[type='submit']) > .am-element:only-child {
  grid-column: 2;
}
@media (max-width: 720px) {
  body[data-tbc-page='account'] .am-form .am-row:has(input[type='submit']) > .am-element:only-child {
    grid-column: 1;
  }
}
body[data-tbc-page='account'] .am-form input[type='submit'],
body[data-tbc-page='account'] .am-form button[type='submit'],
body[data-tbc-page='account'] .am-grid-wrap .button,
body[data-tbc-page='account'] #am-grid-wrap-ticket-button,
body[data-tbc-page='account'] .am-helpdesk input[type='submit'] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 26px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: var(--tbc-red) !important;
  color: #fff !important;
  font: 400 15px/1 var(--tbc-display) !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: 0 8px 24px rgba(174, 17, 15, 0.3) !important;
  cursor: pointer;
}
body[data-tbc-page='account'] .am-form input[type='submit']:hover,
body[data-tbc-page='account'] #am-grid-wrap-ticket-button:hover {
  background: var(--tbc-red-dark) !important;
}
body[data-tbc-page='account'] .am-form .am-element input[type='button'],
body[data-tbc-page='account'] .am-form .am-element button:not([type='submit']),
body[data-tbc-page='account'] .am-form .upload-control-upload,
body[data-tbc-page='account'] .am-form .am-upload-control-upload {
  min-height: 38px;
  padding: 0 16px !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  border-radius: 4px !important;
  background: transparent !important;
  color: #fff !important;
  font: 600 14px/1 var(--tbc-dash-body) !important;
  text-shadow: none !important;
  box-shadow: none !important;
  cursor: pointer;
}
body[data-tbc-page='account'] .am-form .upload-control-upload,
body[data-tbc-page='account'] .am-form .am-upload-control-upload {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 38px !important;
  text-transform: capitalize;
}
/* the Marked Men banner (an HTML brick above the form) */
body[data-tbc-acct='marked'] .am-body-content > div[id^='html'] {
  margin: 0 0 18px;
}
body[data-tbc-acct='marked'] .am-body-content > div[id^='html'] img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
}
body[data-tbc-page='account'] .am-form .am-avatar-preview img {
  border-radius: 50%;
}
/* the Marked Men form's banner (a BEE image brick) fills the card */
body[data-tbc-acct='marked'] .am-form img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

/* ---- payment history ---- */
body[data-tbc-page='account'] .am-active-invoice {
  margin: 0;
  padding: 14px 0;
  border: 0;
  border-top: 1px solid var(--tbc-acct-line);
  background: none !important;
  color: var(--tbc-grey-light);
  font: 400 15px/1.45 var(--tbc-dash-body);
}
body[data-tbc-page='account'] .am-active-invoice:first-of-type {
  border-top: 0;
  padding-top: 0;
}
body[data-tbc-page='account'] .am-active-invoice-header {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  align-items: baseline;
  color: var(--tbc-grey-mid);
  font-size: 14px;
}
body[data-tbc-page='account'] .am-active-invoice-header * {
  color: inherit;
  font-style: normal;
}
body[data-tbc-page='account'] .am-active-invoice-num {
  color: #fff !important;
  font-weight: 700;
}
body[data-tbc-page='account'] .am-active-invoice-rebill-info {
  flex-basis: 100%;
  color: var(--tbc-grey-light) !important;
}
body[data-tbc-page='account'] .am-active-invoice-rebill-info .am-error {
  color: var(--tbc-grey-light) !important;
  background: none !important;
}
body[data-tbc-page='account'] .am-active-invoice-product-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 14px;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body[data-tbc-page='account'] .am-active-invoice-product {
  list-style: none;
  margin: 0;
  padding: 0;
  font: 600 16px/1.4 var(--tbc-dash-body);
  color: #fff;
  background: none;
}
body[data-tbc-page='account'] .am-active-invoice-product::before {
  content: none;
}
body[data-tbc-page='account'] .am-active-invoice-cancel a,
body[data-tbc-page='account'] .am-active-invoice a {
  color: var(--tbc-gold);
}

/* ---- grids (payments table, ticket list) ---- */
body[data-tbc-page='account'] .am-grid-container {
  overflow-x: auto;
  border: 0;
  background: none;
  -webkit-overflow-scrolling: touch;
}
body[data-tbc-page='account'] table.am-grid {
  width: 100%;
  border-collapse: collapse;
  border: 0;
  background: none !important;
  font: 400 15px/1.4 var(--tbc-dash-body);
}
body[data-tbc-page='account'] table.am-grid tr,
body[data-tbc-page='account'] table.am-grid tr.am-grid-row,
body[data-tbc-page='account'] table.am-grid tr.emphasis,
body[data-tbc-page='account'] table.am-grid tr.odd,
body[data-tbc-page='account'] table.am-grid tr.even {
  background: none !important;
}
body[data-tbc-page='account'] table.am-grid th {
  padding: 0 12px 10px 0;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  background: none !important;
  font: 700 11px/1.2 var(--tbc-dash-body) !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tbc-grey-mid) !important;
  text-align: left;
  white-space: nowrap;
}
body[data-tbc-page='account'] table.am-grid th a {
  color: inherit !important;
}
body[data-tbc-page='account'] table.am-grid td {
  padding: 13px 12px 13px 0;
  border: 0;
  border-bottom: 1px solid var(--tbc-acct-line);
  background: none !important;
  color: var(--tbc-grey-light) !important;
  vertical-align: top;
}
body[data-tbc-page='account'] table.am-grid tr:last-child td {
  border-bottom: 0;
}
body[data-tbc-page='account'] table.am-grid td a {
  color: var(--tbc-gold) !important;
}
body[data-tbc-page='account'] table.am-grid td.am-member-payment-history-items,
body[data-tbc-page='account'] table.am-grid td:first-child a {
  color: #fff !important;
}
body[data-tbc-page='account'] table.am-grid .am-member-payment-history-amount {
  text-align: right;
  padding-right: 0;
  color: #fff !important;
  font-weight: 600;
  white-space: nowrap;
}
body[data-tbc-page='account'] .am-grid-title-desc {
  font: 400 13px/1 var(--tbc-dash-body);
  color: var(--tbc-grey-mid);
  text-transform: none;
}
body[data-tbc-page='account'] .am-norecord-actions {
  margin: 0 0 16px;
}

/* ---- help desk ---- */
body[data-tbc-page='account'] .am-body-content > .am-info,
body[data-tbc-page='account'] .am-body-content > .am-info * {
  color: var(--tbc-grey-light) !important;
  font-family: var(--tbc-dash-body) !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  text-align: left;
}
body[data-tbc-page='account'] .am-body-content > .am-info a {
  color: var(--tbc-gold) !important;
}
body[data-tbc-page='account'] .am-body-content > .am-info ul {
  margin: 4px 0 10px;
  padding-left: 0;
  list-style: none;
}
body[data-tbc-page='account'] .am-body-content > .am-info hr {
  margin: 14px 0;
  border: 0;
  border-top: 1px solid var(--tbc-acct-line);
}
body[data-tbc-page='account'] .am-helpdesk,
body[data-tbc-page='account'] .am-helpdesk * {
  font-family: var(--tbc-dash-body);
}
body[data-tbc-page='account'] .am-helpdesk-ticket,
body[data-tbc-page='account'] .am-helpdesk-message,
body[data-tbc-page='account'] .am-helpdesk-ticket-header,
body[data-tbc-page='account'] .am-helpdesk-reply-panel {
  background: none !important;
  border-color: var(--tbc-acct-line) !important;
  color: var(--tbc-grey-light) !important;
}
body[data-tbc-page='account'] .am-helpdesk-message {
  margin: 12px 0 0 !important;
  padding: 14px 16px !important;
  border: 1px solid var(--tbc-acct-line) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}
/* ticket thread: full width (aMember draws it inline-block, shrink-wrapped) */
body[data-tbc-page='account'] .am-helpdesk {
  display: block !important;
  box-sizing: border-box;
}
body[data-tbc-page='account'] .am-helpdesk-ticket,
body[data-tbc-page='account'] .am-helpdesk-message,
body[data-tbc-page='account'] .am-helpdesk-message-content {
  width: auto !important;
  max-width: none !important;
}
body[data-tbc-page='account'] .am-helpdesk-message-header {
  font: 400 14px/1.4 var(--tbc-dash-body);
  color: var(--tbc-grey-mid);
}
body[data-tbc-page='account'] .am-helpdesk-message-author {
  color: #fff;
  font-weight: 600;
}
body[data-tbc-page='account'] .am-helpdesk-message-content pre {
  margin: 10px 0 0;
  padding: 14px 16px;
  border: 1px solid var(--tbc-acct-line) !important;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.35) !important;
  color: #fff !important;
  font: 400 15px/1.55 var(--tbc-dash-body) !important;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
body[data-tbc-page='account'] .am-helpdesk-ticket-actions-container {
  margin: 10px 0;
  border: 1px solid var(--tbc-acct-line) !important;
  border-radius: 10px;
  background: none !important;
}
body[data-tbc-page='account'] .am-helpdesk-ticket-actions-container,
body[data-tbc-page='account'] .am-helpdesk-message-actions {
  font: 600 14px/1.4 var(--tbc-dash-body);
}
body[data-tbc-page='account'] .am-helpdesk-message-actions a {
  color: var(--tbc-gold) !important;
}
body[data-tbc-page='account'] .am-helpdesk-ticket-actions a,
body[data-tbc-page='account'] .am-grid-back {
  color: var(--tbc-gold) !important;
}
body[data-tbc-page='account'] .am-helpdesk-ticket-subject {
  color: #fff;
}

/* ---- phones ---- */
@media (max-width: 720px) {
  body[data-tbc-page='account'] .am-body-content {
    padding: 28px 0 40px;
  }
  body[data-tbc-page='account'] .tbc-acct__head .tbc-dash__title {
    font-size: 30px;
  }
  body[data-tbc-page='account'] .am-form .am-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding: 10px 0;
  }
  body[data-tbc-page='account'] .am-form .am-element-title label {
    padding-top: 0;
  }
  body[data-tbc-page='account'] .am-form .am-element:not(:has(input, select, textarea, button, img)) {
    padding-top: 0;
  }
  body[data-tbc-page='account'] .am-body-content > .am-form,
  body[data-tbc-page='account'] #am-block-active-subscriptions,
  body[data-tbc-page='account'] #am-block-payments,
  body[data-tbc-page='account'] .am-body-content > .am-info,
  body[data-tbc-page='account'] .am-grid-wrap,
  body[data-tbc-page='account'] .am-helpdesk {
    padding: 20px 18px;
    border-radius: 14px;
  }
}

/* ==========================================================================
   1.2.23 — TIMTv venue profile (/members/profile/Venue, aMember profile form 355). A page of the
   venue portal: the portal's head and pill tabs, the form three across like the application
   (form 353), radios and ticks as chips, Save at the right. Keyed on data-tbc-acct='venue' only.
   ========================================================================== */
body[data-tbc-acct='venue'] .am-body-content {
  max-width: 1188px;
  padding-left: 24px;
  padding-right: 24px;
}
body[data-tbc-acct='venue'] .tbc-acct__head {
  margin-bottom: 0;
}
body[data-tbc-acct='venue'] .tbc-dash__kicker {
  display: none;
}
body[data-tbc-acct='venue'] .tbc-acct__head .tbc-dash__title {
  font-size: 42px;
}
/* pill tabs (the CMS portal's .tvv-tabs) */
body[data-tbc-acct='venue'] .tbc-vtabwrap {
  display: flex;
  justify-content: center;
  margin: 24px 0 18px;
}
body[data-tbc-acct='venue'] .tbc-vtabs {
  display: inline-flex;
  max-width: 100%;
  gap: 2px;
  padding: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  border-radius: 999px;
  background: rgba(10, 12, 16, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.14);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
body[data-tbc-acct='venue'] .tbc-vtabs::-webkit-scrollbar {
  display: none;
}
body[data-tbc-acct='venue'] .tbc-vtabs a.tbc-vtab {
  flex: none;
  padding: 8px 14px;
  border-radius: 999px;
  font: 600 14px/1.5 var(--tbc-dash-body);
  white-space: nowrap;
  color: var(--tbc-grey-light);
  text-decoration: none;
}
body[data-tbc-acct='venue'] .tbc-vtabs a.tbc-vtab:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
}
body[data-tbc-acct='venue'] .tbc-vtabs a.tbc-vtab.is-on {
  background: var(--tbc-red);
  color: #fff;
}
/* the form: each fieldset its own glass card, fields three across */
body[data-tbc-acct='venue'] .am-body-content > .am-form {
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body[data-tbc-acct='venue'] .am-form fieldset,
body[data-tbc-acct='venue'] .am-form fieldset:first-of-type {
  margin: 18px 0 0;
  padding: 22px 26px 24px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 16px;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 32%, transparent 55%),
    rgba(12, 13, 17, 0.8) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 20px 56px rgba(0, 0, 0, 0.4);
}
body[data-tbc-acct='venue'] .am-form fieldset > legend {
  float: left;
  margin-bottom: 16px;
}
body[data-tbc-acct='venue'] .am-form fieldset > .fieldset {
  clear: both;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 18px;
}
body[data-tbc-acct='venue'] .am-form fieldset > .fieldset > .am-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  padding: 0;
  min-width: 0;
}
body[data-tbc-acct='venue'] .am-form fieldset > .fieldset > .am-row > .am-element {
  width: 100% !important;
}
body[data-tbc-acct='venue'] .am-form fieldset > .fieldset > #row-timtv_street-0 {
  grid-column: span 2;
}
body[data-tbc-acct='venue'] .am-form fieldset > .fieldset > #row-timtv_tv_types-0,
body[data-tbc-acct='venue'] .am-form fieldset > .fieldset > #row-timtv_delivery-0 {
  grid-column: 1 / -1;
}
body[data-tbc-acct='venue'] .am-form .am-element-title label {
  padding-top: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--tbc-grey-light);
}
body[data-tbc-acct='venue'] .am-form .am-element-title .comment {
  display: inline;
  margin: 0 0 0 6px;
}
body[data-tbc-acct='venue'] .am-form .am-element > input[type='text'],
body[data-tbc-acct='venue'] .am-form .am-element > select {
  width: 100% !important;
}
body[data-tbc-acct='venue'] .am-form .am-row[id^='row-name'] > .am-element {
  max-width: none !important;
}
/* radios and ticks as chips (the mockup): the box first, red when picked */
body[data-tbc-acct='venue'] .am-form .am-element:has(> label > input[type='radio']),
body[data-tbc-acct='venue'] .am-form .am-element:has(> label > input[type='checkbox']) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body[data-tbc-acct='venue'] .am-form .am-element:has(> label > input[type='radio']) > br,
body[data-tbc-acct='venue'] .am-form .am-element:has(> label > input[type='checkbox']) > br {
  display: none;
}
body[data-tbc-acct='venue'] .am-form .am-element > label:has(> input[type='radio']),
body[data-tbc-acct='venue'] .am-form .am-element > label:has(> input[type='checkbox']) {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 8px !important;
  background: rgba(0, 0, 0, 0.45) !important;
  color: var(--tbc-grey-light) !important;
  font: 400 15px/1.2 var(--tbc-dash-body) !important;
  cursor: pointer;
  white-space: nowrap;
}
body[data-tbc-acct='venue'] .am-form .am-element > label:has(> input:checked) {
  border-color: var(--tbc-red) !important;
  color: #fff !important;
}
body[data-tbc-acct='venue'] .am-form .am-element > label > input[type='radio'],
body[data-tbc-acct='venue'] .am-form .am-element > label > input[type='checkbox'] {
  /* 1.2.24 — the theme pins radios absolutely over the label's first letter */
  position: static !important;
  float: none !important;
  left: auto !important;
  top: auto !important;
  margin: 0 !important;
  accent-color: var(--tbc-red);
}
/* Save, at the right */
body[data-tbc-acct='venue'] .am-form .am-row:has(input[type='submit']) {
  display: flex !important;
  justify-content: flex-end;
  padding-top: 20px;
}
body[data-tbc-acct='venue'] .am-form .am-row:has(input[type='submit']) > .am-element:only-child {
  grid-column: auto;
}
@media (max-width: 900px) {
  body[data-tbc-acct='venue'] .am-form fieldset > .fieldset {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  body[data-tbc-acct='venue'] .am-body-content {
    padding-left: 16px;
    padding-right: 16px;
  }
  body[data-tbc-acct='venue'] .tbc-acct__head .tbc-dash__title {
    font-size: 32px;
  }
  body[data-tbc-acct='venue'] .tbc-vtabwrap {
    justify-content: flex-start;
  }
  body[data-tbc-acct='venue'] .am-form fieldset,
  body[data-tbc-acct='venue'] .am-form fieldset:first-of-type {
    padding: 18px 16px 20px;
    border-radius: 12px;
  }
  body[data-tbc-acct='venue'] .am-form fieldset > .fieldset {
    grid-template-columns: minmax(0, 1fr);
  }
  body[data-tbc-acct='venue'] .am-form fieldset > .fieldset > #row-timtv_street-0 {
    grid-column: auto;
  }
}

/* 1.2.25 — the venue profile's read-only "Your venue" card (edited on the portal's Directory tab). */
body[data-tbc-acct='venue'] .tbc-venuecard {
  margin: 0;
  padding: 22px 26px 20px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 16px;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 32%, transparent 55%),
    rgba(12, 13, 17, 0.8);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 20px 56px rgba(0, 0, 0, 0.4);
  font-family: var(--tbc-dash-body);
}
body[data-tbc-acct='venue'] .tbc-venuecard__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 12px;
}
body[data-tbc-acct='venue'] .tbc-venuecard__h {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: 400 20px/1.2 var(--tbc-display);
  text-transform: uppercase;
  color: #fff;
}
body[data-tbc-acct='venue'] .tbc-venuecard__edit {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 4px;
  font: 400 13px/1 var(--tbc-display);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
}
body[data-tbc-acct='venue'] .tbc-venuecard__edit:hover {
  border-color: var(--tbc-red);
  color: #fff;
}
body[data-tbc-acct='venue'] .tbc-venuecard__rows {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 18px;
  margin: 0;
}
body[data-tbc-acct='venue'] .tbc-venuecard__rows > div {
  min-width: 0;
}
body[data-tbc-acct='venue'] .tbc-venuecard__rows dt {
  font: 700 13px/1.3 var(--tbc-dash-body);
  color: var(--tbc-grey-light);
}
body[data-tbc-acct='venue'] .tbc-venuecard__rows dd {
  margin: 4px 0 0;
  font: 400 15px/1.4 var(--tbc-dash-body);
  color: #fff;
  overflow-wrap: anywhere;
}
body[data-tbc-acct='venue'] .tbc-venuecard__none {
  color: var(--tbc-grey-mid);
}
body[data-tbc-acct='venue'] .tbc-venuecard__note {
  margin: 14px 0 0;
  font: 400 13px/1.4 var(--tbc-dash-body);
  color: var(--tbc-grey-mid);
}
@media (max-width: 900px) {
  body[data-tbc-acct='venue'] .tbc-venuecard__rows {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  body[data-tbc-acct='venue'] .tbc-venuecard {
    padding: 18px 16px;
    border-radius: 12px;
  }
  body[data-tbc-acct='venue'] .tbc-venuecard__rows {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ---- 1.2.26 — no iOS zoom-on-focus ----
   iOS Safari zooms in when a text box under 16px takes focus and never zooms back out; the
   login page focuses its 15px username box on load, so iPhones arrived zoomed in with the
   header cut off. Touch screens only (mouse users keep the theme's sizes); !important because
   the aMember theme's form rules are more specific than anything we can scope to. */
@media (pointer: coarse) {
  input[type='text'],
  input[type='email'],
  input[type='password'],
  input[type='tel'],
  input[type='number'],
  input[type='search'],
  input[type='url'],
  input:not([type]),
  select,
  textarea {
    font-size: 16px !important;
  }
}
