/* =============================================================================
   TT GLOBAL STYLESHEET - MERGED
   Generated by scripts/merge_tt_stylesheets.py. Do not hand-edit; edit the
   sources and regenerate.

   PART 1  tt-landing-system.css, rescoped onto .tt-scope, and every
           previously UNSCOPED selector prefixed with .tt-scope so nothing leaks
           into the theme.
   PART 3  tt-flavors-for-gummies.css, .ttfg renamed to .tt-scope. It comes
           LAST on purpose: at equal specificity the later rule wins, so the
           .ttfg VALUES win every duplicate, which is the instruction.

   Fonts   @font-face points at https://assets.trueterpenes.com/fonts/suisse-intl (absolute). Relative font paths
           break when this sheet is pasted into Beaver Builder Global CSS.
           woff2 only: eot/svg/ttf/woff dropped.
   Fonts   deduped 5 duplicate @font-face blocks (both sheets declared
           the same five Suisse faces); the .ttfg declaration was kept.
   ============================================================================= */

/* ---------- PART 1: rescoped tt-landing-system.css ---------- */





.tt-scope {
  
  --tt-blue:          #0e61fe;   
                                 
                                 
  --tt-blue-mid:      #146ff8;
  --tt-blue-deep:     #23009b;   
  --tt-cyan:          #00aeff;   
  --tt-purple:        #6f23e1;
  --tt-sky:           #bedbff;   
  --tt-lavender:      #f7f3fb;   

  
  --tt-ink:           #121212;   
  --tt-black:         #000000;
  --tt-muted:         #464646;   
  --tt-line:          #eaeaec;   
  --tt-surface:       #ffffff;
  --tt-surface-2:     #f7f3fb;   
  --tt-surface-dark:  #121212;

  
  --tt-color-text:        var(--tt-ink);
  --tt-color-text-soft:   var(--tt-muted);
  --tt-color-bg:          var(--tt-surface);
  --tt-color-primary:     var(--tt-blue);
  --tt-color-primary-ink: #ffffff;
  --tt-color-accent:      var(--tt-cyan);
  --tt-color-border:      var(--tt-line);

  
  --tt-color-primary-hover: #0a4fd6;   
  --tt-color-success:       #00d084;
  --tt-color-danger:        #cf2e2e;

  
  --tt-font-display: "Suisse Int'l", "Suisse Intl", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --tt-font-body:    "Suisse Int'l", "Suisse Intl", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --tt-fw-normal:  400;
  --tt-fw-medium:  500;
  --tt-fw-display: 600;   
  --tt-fw-semi:    600;
  --tt-fw-bold:    700;   
  --tt-fw-black:   700;

  
  --tt-fs-xs:   0.8125rem;                          
  --tt-fs-sm:   0.9375rem;                          
  --tt-fs-base: 1rem;                               
  --tt-fs-md:   1.125rem;                           
  --tt-fs-lg:   clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --tt-fs-xl:   clamp(1.5rem, 1.25rem + 1.1vw, 2rem);
  --tt-fs-2xl:  clamp(2rem, 1.6rem + 1.9vw, 3rem);
  --tt-fs-3xl:  clamp(2.5rem, 1.9rem + 3vw, 4rem);

  --tt-lh-tight: 1.1;
  --tt-lh-snug:  1.25;
  --tt-lh-body:  1.6;

  
  --tt-space-1: 0.44rem;
  --tt-space-2: 0.67rem;
  --tt-space-3: 1rem;
  --tt-space-4: 1.5rem;
  --tt-space-5: 2.25rem;
  --tt-space-6: 3.38rem;
  --tt-space-7: 5.06rem;
  --tt-space-8: 7.5rem;

  
  --tt-container:        1200px;
  --tt-container-narrow: 820px;
  --tt-container-wide:   1440px;
  --tt-gutter:           var(--tt-space-4);
  --tt-section-y:        clamp(2.5rem, 1.5rem + 4vw, 6rem);

  
  --tt-radius-sm: 6px;
  --tt-radius:    12px;
  --tt-radius-lg: 20px;
  --tt-radius-pill: 999px;

  
  --tt-shadow-sm:    0 1px 2px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.08);
  --tt-shadow:       0 6px 20px rgba(0,0,0,.10);
  --tt-shadow-lg:    0 20px 50px rgba(0,0,0,.16);
  --tt-shadow-sharp: 6px 6px 0 rgba(0,0,0,.2);   
  --tt-shadow-crisp: 6px 6px 0 var(--tt-blue);   

  
  --tt-ease: cubic-bezier(.4, 0, .2, 1);
  --tt-dur:  180ms;
}
.tt-scope .tt-on-dark {
  --tt-color-text:      #ffffff;
  --tt-color-text-soft: rgba(255,255,255,.72);
  --tt-color-bg:        var(--tt-surface-dark);
  --tt-color-border:    rgba(255,255,255,.14);
  color: var(--tt-color-text);
  background: var(--tt-color-bg);
}
.tt-scope, .tt-scope * { box-sizing: border-box; }
.tt-scope {
  font-family: var(--tt-font-body);
  font-size: var(--tt-fs-base);
  line-height: var(--tt-lh-body);
  color: var(--tt-color-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.tt-scope img, .tt-scope svg, .tt-scope video { max-width: 100%; height: auto; display: block; }
.tt-scope p { margin: 0 0 var(--tt-space-3); }
.tt-scope a { color: var(--tt-color-primary); text-decoration: none; }
.tt-scope a:hover { text-decoration: underline; }
.tt-scope ul, .tt-scope ol { margin: 0 0 var(--tt-space-3); padding-left: 1.2em; }
.tt-scope .tt-h1, .tt-scope .tt-h2, .tt-scope .tt-h3, .tt-scope .tt-h4 {
  font-family: var(--tt-font-display);
  font-weight: var(--tt-fw-display);   
  line-height: var(--tt-lh-tight);
  color: var(--tt-color-text);
  margin: 0 0 var(--tt-space-3);
  letter-spacing: -0.02em;
}
.tt-scope .tt-h1 { font-size: var(--tt-fs-3xl); }
.tt-scope .tt-h2 { font-size: var(--tt-fs-2xl); }
.tt-scope .tt-h3 { font-size: var(--tt-fs-xl); line-height: var(--tt-lh-snug); }
.tt-scope .tt-h4 { font-size: var(--tt-fs-lg); line-height: var(--tt-lh-snug); }
.tt-scope .tt-eyebrow {
  display: inline-block;
  font-family: var(--tt-font-display);
  font-weight: var(--tt-fw-semi);
  font-size: var(--tt-fs-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tt-color-primary);
  margin-bottom: var(--tt-space-2);
}
.tt-scope .tt-lead { font-size: var(--tt-fs-md); line-height: var(--tt-lh-body); color: var(--tt-color-text-soft); }
.tt-scope .tt-muted { color: var(--tt-color-text-soft); }
.tt-scope .tt-accent { color: var(--tt-color-accent); }
.tt-scope .tt-gradient-text {
  background: linear-gradient(135deg, var(--tt-blue) 0%, var(--tt-purple) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.tt-scope .tt-container {
  width: 100%;
  max-width: var(--tt-container);
  margin-inline: auto;
  padding-inline: var(--tt-gutter);
}
.tt-scope .tt-container.tt-narrow { max-width: var(--tt-container-narrow); }
.tt-scope .tt-container.tt-wide { max-width: var(--tt-container-wide); }
.tt-scope .tt-section {
  padding-block: var(--tt-section-y);
  background: var(--tt-color-bg);
  color: var(--tt-color-text);
}
.tt-scope .tt-section.tt-alt { background: var(--tt-surface-2); }
.tt-scope .tt-section.tt-tight { padding-block: var(--tt-space-5); }
.tt-scope .tt-stack > * + * { margin-top: var(--tt-space-3); }
.tt-scope .tt-stack-lg > * + * { margin-top: var(--tt-space-5); }
.tt-scope .tt-cluster {
  display: flex; flex-wrap: wrap;
  gap: var(--tt-space-3); align-items: center;
}
.tt-scope .tt-cluster.tt-center { justify-content: center; }
.tt-scope .tt-grid {
  display: grid;
  gap: var(--tt-space-4);
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.tt-scope .tt-cols-2 { grid-template-columns: repeat(2, 1fr); }
.tt-scope .tt-cols-3 { grid-template-columns: repeat(3, 1fr); }
.tt-scope .tt-cols-4 { grid-template-columns: repeat(4, 1fr); }
.tt-scope .tt-split {
  display: grid;
  gap: clamp(1.5rem, 4vw, 4rem);
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.tt-scope .tt-split.tt-reverse > :first-child { order: 2; }
.tt-scope .tt-btn {
  --_bg: var(--tt-color-primary);
  --_fg: var(--tt-color-primary-ink);
  display: inline-flex; align-items: center; justify-content: center;
  gap: 0.5em;
  font-family: var(--tt-font-display);
  font-weight: var(--tt-fw-semi);
  font-size: var(--tt-fs-sm);
  line-height: 1;
  padding: 0.9em 1.6em;
  border: 2px solid transparent;
  border-radius: var(--tt-radius-pill);
  background: var(--_bg);
  color: var(--_fg);
  cursor: pointer;
  text-align: center;
  transition: transform var(--tt-dur) var(--tt-ease),
              background var(--tt-dur) var(--tt-ease),
              box-shadow var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-btn:hover { transform: translateY(-2px); text-decoration: none; color: var(--_fg); }
.tt-scope .tt-btn:active { transform: translateY(0); }
.tt-scope .tt-btn:focus-visible { outline: 3px solid var(--tt-sky); outline-offset: 2px; }
.tt-scope .tt-btn.tt-btn-primary:hover { --_bg: var(--tt-color-primary-hover); }
.tt-scope .tt-btn.tt-btn-secondary {
  --_bg: transparent; --_fg: var(--tt-color-primary);
  border-color: var(--tt-color-primary);
}
.tt-scope .tt-btn.tt-btn-secondary:hover { --_bg: var(--tt-color-primary); --_fg: #fff; }
.tt-scope .tt-btn.tt-btn-dark { --_bg: var(--tt-ink); --_fg: #fff; }
.tt-scope .tt-btn.tt-btn-ghost {
  --_bg: transparent; --_fg: var(--tt-color-text);
  border-color: var(--tt-color-border);
}
.tt-scope .tt-btn.tt-btn-ghost:hover { --_bg: var(--tt-color-border); }
.tt-scope .tt-on-dark .tt-btn.tt-btn-secondary { --_fg: #fff; border-color: rgba(255,255,255,.5); }
.tt-scope .tt-btn.tt-btn-sm { font-size: var(--tt-fs-xs); padding: 0.6em 1.1em; }
.tt-scope .tt-btn.tt-btn-lg { font-size: var(--tt-fs-md); padding: 1.05em 2.1em; }
.tt-scope .tt-btn.tt-btn-block { display: flex; width: 100%; }
.tt-scope .tt-badge {
  display: inline-flex; align-items: center; gap: 0.4em;
  font-family: var(--tt-font-display);
  font-size: var(--tt-fs-xs); font-weight: var(--tt-fw-semi);
  padding: 0.3em 0.75em;
  border-radius: var(--tt-radius-pill);
  background: var(--tt-sky); color: var(--tt-blue-deep);
  letter-spacing: 0.02em;
}
.tt-scope .tt-badge.tt-badge-sale { background: var(--tt-color-danger); color: #fff; }
.tt-scope .tt-badge.tt-badge-new { background: var(--tt-color-success); color: #06301f; }
.tt-scope .tt-badge.tt-badge-cyan { background: var(--tt-cyan); color: #05233a; }
.tt-scope .tt-badge.tt-badge-ghost { background: transparent; border: 1px solid var(--tt-color-border); color: var(--tt-color-text-soft); }
.tt-scope .tt-card {
  background: var(--tt-surface);
  border: 1px solid var(--tt-color-border);
  border-radius: var(--tt-radius-lg);
  padding: var(--tt-space-4);
  transition: transform var(--tt-dur) var(--tt-ease), box-shadow var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-card.tt-hoverable:hover { transform: translateY(-4px); box-shadow: var(--tt-shadow-lg); }
.tt-scope .tt-card.tt-card-flush { padding: 0; overflow: hidden; }
.tt-scope .tt-product-card {
  display: flex; flex-direction: column;
  background: var(--tt-surface);
  border: 1px solid var(--tt-color-border);
  border-radius: var(--tt-radius-lg);
  overflow: hidden;
  position: relative;
  transition: transform var(--tt-dur) var(--tt-ease), box-shadow var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-product-card:hover { transform: translateY(-4px); box-shadow: var(--tt-shadow-lg); }
.tt-scope .tt-product-card .tt-product-media {
}
.tt-scope .tt-product-card .tt-product-media img {
  width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply;
  transition: transform 300ms var(--tt-ease);
}
.tt-scope .tt-product-card:hover .tt-product-media img { transform: scale(1.04); }
.tt-scope .tt-product-card .tt-product-body {
}
.tt-scope .tt-product-card .tt-product-title {
}
.tt-scope .tt-product-card .tt-product-price {
}
.tt-scope .tt-product-card .tt-product-price del { color: var(--tt-color-text-soft); font-weight: var(--tt-fw-normal); font-size: 0.8em; margin-right: 0.4em; }
.tt-scope .tt-product-card .tt-btn { margin-top: auto; }
.tt-scope .tt-product-card .tt-badge { position: absolute; top: var(--tt-space-3); left: var(--tt-space-3); z-index: 2; }
.tt-scope .tt-feature { text-align: left; }
.tt-scope .tt-feature .tt-feature-icon {
  width: 48px; height: 48px; display: grid; place-items: center;
  border-radius: var(--tt-radius);
  background: var(--tt-sky); color: var(--tt-blue-deep);
  margin-bottom: var(--tt-space-3);
}
.tt-scope .tt-feature .tt-feature-icon svg { width: 24px; height: 24px; }
.tt-scope .tt-hero {
  position: relative;
  padding-block: clamp(3rem, 2rem + 6vw, 8rem);
  overflow: hidden;
}
.tt-scope .tt-hero.tt-hero-split .tt-container { display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: 1fr 1fr; align-items: center; }
.tt-scope .tt-hero.tt-hero-center { text-align: center; }
.tt-scope .tt-hero.tt-hero-center .tt-hero-copy { max-width: 46rem; margin-inline: auto; }
.tt-scope .tt-hero.tt-hero-center .tt-cluster { justify-content: center; }
.tt-scope .tt-hero .tt-hero-title { }
.tt-scope .tt-hero .tt-hero-preheading {
}
.tt-scope .tt-hero .tt-hero-sub { }
.tt-scope .tt-hero.tt-hero-center .tt-hero-sub { margin-inline: auto; }
.tt-scope .tt-hero .tt-hero-media img { border-radius: var(--tt-radius-lg); }
.tt-scope .tt-bg-wash { background: radial-gradient(120% 120% at 80% 0%, var(--tt-sky) 0%, var(--tt-lavender) 45%, #fff 100%); }
.tt-scope .tt-bg-brand { background: linear-gradient(135deg, var(--tt-blue-deep) 0%, var(--tt-blue) 100%); }
.tt-scope .tt-bg-vivid { background: linear-gradient(135deg, var(--tt-cyan) 0%, var(--tt-purple) 100%); }
.tt-scope .tt-cta {
  border-radius: var(--tt-radius-lg);
  padding: clamp(2rem, 1.5rem + 3vw, 4rem);
  text-align: center;
  color: #fff;
  background: linear-gradient(135deg, var(--tt-blue-deep) 0%, var(--tt-blue) 100%);
}
.tt-scope .tt-cta .tt-h2 { color: #fff; }
.tt-scope .tt-cta .tt-lead { color: rgba(255,255,255,.85); }
.tt-scope .tt-faq {
  background: #f6f6f6;               
  border-radius: var(--tt-radius-lg);
  padding: clamp(1.25rem, 1rem + 2vw, 3.75rem) clamp(1.25rem, 1rem + 3vw, 3.75rem);
}
.tt-scope .tt-on-dark .tt-faq { background: rgba(255,255,255,.05); }
.tt-scope .tt-faq-item {
  border-bottom: 1px solid var(--tt-color-border);
}
.tt-scope .tt-faq-item:last-child { border-bottom: 0; }
.tt-scope .tt-faq-item > summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: var(--tt-space-3);
  font-family: var(--tt-font-display); font-weight: var(--tt-fw-display);
  font-size: var(--tt-fs-md); color: var(--tt-color-text);
  padding: var(--tt-space-4) 0;
}
.tt-scope .tt-faq-item > summary::-webkit-details-marker { display: none; }
.tt-scope .tt-faq-item > summary::after {
  content: "+"; font-weight: var(--tt-fw-normal); font-size: 1.4em; line-height: 1;
  color: var(--tt-color-primary); transition: transform var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-faq-item[open] > summary::after { content: "\2013"; }
.tt-scope .tt-faq-item > summary:hover { color: var(--tt-color-primary); }
.tt-scope .tt-faq-item > :not(summary) {
  margin: 0 0 var(--tt-space-4); color: var(--tt-color-text-soft); max-width: 68ch;
}
.tt-scope .tt-list-check { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--tt-space-3); }
.tt-scope .tt-list-check li {
  position: relative; padding-left: 2rem;
  color: var(--tt-color-text); line-height: var(--tt-lh-snug);
}
.tt-scope .tt-list-check li::before {
  content: ""; position: absolute; left: 0; top: 0.1em;
  width: 1.3rem; height: 1.3rem; border-radius: 999px;
  background:
    var(--tt-color-primary)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
    center / 0.8rem no-repeat;
}
.tt-scope .tt-list-check.tt-list-success li::before { background-color: var(--tt-color-success); }
.tt-scope .tt-field { display: flex; flex-direction: column; gap: 0.4em; margin-bottom: var(--tt-space-3); }
.tt-scope .tt-label { font-family: var(--tt-font-display); font-weight: var(--tt-fw-medium); font-size: var(--tt-fs-sm); color: var(--tt-color-text); }
.tt-scope .tt-label .tt-req { color: var(--tt-color-danger); margin-left: 0.15em; }
.tt-scope .tt-input, .tt-scope .tt-select, .tt-scope .tt-textarea {
  font-family: var(--tt-font-body); font-size: var(--tt-fs-base);
  width: 100%; padding: 0.75em 0.9em;
  color: var(--tt-color-text); background: #fff;
  border: 1px solid var(--tt-color-border); border-radius: var(--tt-radius-sm);
  transition: border-color var(--tt-dur) var(--tt-ease), box-shadow var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-input:focus, .tt-scope .tt-select:focus, .tt-scope .tt-textarea:focus {
  outline: none; border-color: var(--tt-color-primary);
  box-shadow: 0 0 0 3px rgba(14,97,254,.15);
}
.tt-scope .tt-textarea { min-height: 8rem; resize: vertical; }
.tt-scope .tt-field-inline { display: flex; gap: var(--tt-space-2); }
.tt-scope .tt-field-inline .tt-input { flex: 1; }
.tt-scope .tt-text-center { text-align: center; }
.tt-scope .tt-text-left { text-align: left; }
.tt-scope .tt-text-right { text-align: right; }
.tt-scope .tt-mx-auto { margin-inline: auto; }
.tt-scope .tt-measure { max-width: 60ch; }
.tt-scope .tt-measure-narrow { max-width: 42ch; }
.tt-scope .tt-mt-0 { margin-top: 0; }
.tt-scope .tt-mb-0 { margin-bottom: 0; }
.tt-scope .tt-mt-3 { margin-top: var(--tt-space-3); }
.tt-scope .tt-mb-3 { margin-bottom: var(--tt-space-3); }
.tt-scope .tt-mt-5 { margin-top: var(--tt-space-5); }
.tt-scope .tt-mb-5 { margin-bottom: var(--tt-space-5); }
.tt-scope .tt-radius { border-radius: var(--tt-radius); }
.tt-scope .tt-radius-lg { border-radius: var(--tt-radius-lg); }
.tt-scope .tt-shadow { box-shadow: var(--tt-shadow); }
.tt-scope .tt-shadow-sharp { box-shadow: var(--tt-shadow-sharp); }
.tt-scope .tt-shadow-crisp { box-shadow: var(--tt-shadow-crisp); }
.tt-scope .tt-bg-sky { background: var(--tt-sky); }
.tt-scope .tt-bg-lav { background: var(--tt-lavender); }
.tt-scope .tt-fill-primary { color: var(--tt-color-primary); }
.tt-scope .tt-hide { display: none !important; }
.tt-scope .tt-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--tt-space-4); }
.tt-scope .tt-nav-links { display: flex; gap: var(--tt-space-4); align-items: center; margin: 0; padding: 0; list-style: none; }
.tt-scope .tt-nav-links a { color: var(--tt-color-text); font-family: var(--tt-font-display); font-weight: var(--tt-fw-display); font-size: var(--tt-fs-sm); }
.tt-scope .tt-nav-toggle {
  display: none; width: 44px; height: 44px; border: 0; background: none; cursor: pointer;
  flex-direction: column; justify-content: center; gap: 5px; padding: 10px;
}
.tt-scope .tt-nav-toggle span { display: block; height: 2px; background: var(--tt-color-text); border-radius: 2px; transition: transform var(--tt-dur) var(--tt-ease), opacity var(--tt-dur) var(--tt-ease); }
.tt-scope .tt-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(88vw, 360px);
  background: var(--tt-surface); color: var(--tt-color-text);
  transform: translateX(100%); transition: transform var(--tt-dur) var(--tt-ease);
  z-index: 1000; padding: var(--tt-space-5); overflow-y: auto; box-shadow: var(--tt-shadow-lg);
}
.tt-scope .tt-drawer.is-open { transform: translateX(0); }
.tt-scope .tt-drawer .tt-nav-links { flex-direction: column; align-items: stretch; gap: var(--tt-space-3); }
.tt-scope .tt-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.5);
  opacity: 0; visibility: hidden; transition: opacity var(--tt-dur) var(--tt-ease), visibility var(--tt-dur) var(--tt-ease);
  z-index: 999;
}
.tt-scope .tt-backdrop.is-open { opacity: 1; visibility: visible; }
.tt-scope .tt-modal-backdrop {
  position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; padding: var(--tt-space-4);
  background: rgba(0,0,0,.6); opacity: 0; visibility: hidden;
  transition: opacity var(--tt-dur) var(--tt-ease), visibility var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-modal-backdrop.is-open { opacity: 1; visibility: visible; }
.tt-scope .tt-modal {
  position: relative; width: 100%; max-width: 460px;
  background: var(--tt-surface); color: var(--tt-color-text);
  border-radius: var(--tt-radius-lg); padding: clamp(1.5rem, 1rem + 3vw, 3rem);
  box-shadow: var(--tt-shadow-lg);
  transform: translateY(12px) scale(.98); transition: transform var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-modal-backdrop.is-open .tt-modal { transform: none; }
.tt-scope .tt-modal-close {
  position: absolute; top: var(--tt-space-3); right: var(--tt-space-3);
  width: 32px; height: 32px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--tt-color-border); color: var(--tt-color-text); font-size: 1.1rem; line-height: 1;
}
.tt-scope .tt-tabs-list { display: flex; flex-wrap: wrap; gap: var(--tt-space-2); border-bottom: 1px solid var(--tt-color-border); margin-bottom: var(--tt-space-4); }
.tt-scope .tt-tab {
  border: 0; background: none; cursor: pointer; margin-bottom: -1px;
  font-family: var(--tt-font-display); font-weight: var(--tt-fw-display); font-size: var(--tt-fs-sm);
  color: var(--tt-color-text-soft); padding: var(--tt-space-3);
  border-bottom: 2px solid transparent;
}
.tt-scope .tt-tab[aria-selected="true"] { color: var(--tt-color-primary); border-bottom-color: var(--tt-color-primary); }
.tt-scope .tt-tab-panel[hidden] { display: none; }
.tt-scope .tt-carousel { position: relative; }
.tt-scope .tt-carousel-track {
  display: flex; gap: var(--tt-space-4); overflow-x: auto; scroll-snap-type: x mandatory;
  scroll-behavior: smooth; -webkit-overflow-scrolling: touch; padding-bottom: var(--tt-space-2);
  scrollbar-width: none;
}
.tt-scope .tt-carousel-track::-webkit-scrollbar { display: none; }
.tt-scope .tt-carousel-slide { flex: 0 0 auto; width: min(80%, 320px); scroll-snap-align: start; }
.tt-scope .tt-carousel-btn {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 44px; height: 44px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--tt-surface); color: var(--tt-color-text); box-shadow: var(--tt-shadow);
  display: grid; place-items: center; font-size: 1.2rem; line-height: 1;
}
.tt-scope .tt-carousel-btn.prev { left: -6px; }
.tt-scope .tt-carousel-btn.next { right: -6px; }
.tt-scope .tt-carousel-btn[disabled] { opacity: .35; cursor: default; }
.tt-scope .tt-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--tt-ease), transform .6s var(--tt-ease); }
.tt-scope .tt-reveal.is-visible { opacity: 1; transform: none; }
.tt-scope .tt-toast {
  position: fixed; bottom: var(--tt-space-4); left: 50%; z-index: 1200;
  transform: translateX(-50%) translateY(20px);
  background: var(--tt-ink); color: #fff; padding: .7em 1.2em; border-radius: var(--tt-radius-pill);
  font-family: var(--tt-font-display); font-size: var(--tt-fs-sm);
  opacity: 0; visibility: hidden; transition: opacity var(--tt-dur) var(--tt-ease), visibility var(--tt-dur) var(--tt-ease), transform var(--tt-dur) var(--tt-ease);
}
.tt-scope .tt-toast.is-open { opacity: 1; visibility: visible; transform: translateX(-50%); }
@media (max-width: 1024px) {
  .tt-scope .tt-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .tt-scope .tt-split, .tt-scope .tt-hero.tt-hero-split .tt-container { grid-template-columns: 1fr; }
  .tt-scope .tt-split.tt-reverse > :first-child { order: 0; }
  .tt-scope .tt-cols-2, .tt-scope .tt-cols-3, .tt-scope .tt-cols-4 { grid-template-columns: 1fr; }
  .tt-scope .tt-hide-mobile { display: none !important; }
  .tt-scope .tt-nav > .tt-nav-links { display: none; }
  .tt-scope .tt-nav-toggle { display: flex; }
}
@media (max-width: 600px) {
  .tt-scope { --tt-gutter: var(--tt-space-3); }
  .tt-scope .tt-btn.tt-btn-block-mobile { display: flex; width: 100%; }
  .tt-scope .tt-cluster.tt-stack-mobile { flex-direction: column; align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) {
  .tt-scope * { transition: none !important; animation: none !important; }
  .tt-scope .tt-btn:hover, .tt-scope .tt-card.tt-hoverable:hover, .tt-scope .tt-product-card:hover { transform: none; }
}

/* ---------- PART 2: alias bridge, legacy names -> winning .ttfg values ----------
   Generated. See scripts/merge_tt_stylesheets.py for why this exists.
   NOTE: --tt-cyan changes #00aeff -> #0693e3, which moves --tt-color-accent too. */
.tt-scope{
  --tt-blue:          var(--c-primary);
  --tt-blue-mid:      var(--c-primary-2);
  --tt-cyan:          var(--c-primary-3);   /* DIVERGENT: was #00aeff */
  --tt-ink:           var(--c-ink);
  --tt-muted:         var(--c-body);
  --tt-line:          var(--c-line);
  --tt-black:         var(--c-black);
  --tt-color-success: var(--c-green);
  --tt-font-body:     var(--font-body);
  --tt-font-display:  var(--font-display);
  --tt-container:     var(--container);
}

/* ---------- PART 3: tt-flavors-for-gummies.css (.ttfg wins) ---------- */
/* =============================================================================
   TT — GLOBAL BRAND STYLESHEET  (core seeded from /flavors-for-gummies/)
   -----------------------------------------------------------------------------
   PART A — page-faithful core (below): the palette, live type sizes, and real
            class hooks (`tt-shop-hero-preheading`, `fl-button`, `.TTFAQs-wrap`)
            from https://local.trueterpenes.com/flavors-for-gummies/. NOTE: the
            typeface was switched to Suisse Int'l globally (was Arial/Poppins) —
            see the font tokens; Font Awesome (icons) is still declared.
   PART B — global component layer (appended at the end): the same live-brand
            values extended into a reusable component set (buttons, badges,
            cards, grid, hero, tabs, carousel, modal/drawer, forms, CTA, …) so
            this one sheet can style a whole page. Added 2026-07-31 so
            tt-page-elements_v2.html runs entirely on this stylesheet.
   Scope    : EVERYTHING is nested under `.ttfg` so it can't leak into the theme
              — put class="ttfg" on <body> (or the page's root block).
   Excluded : the WordPress block-editor default palette hexes that appear in
              the page's embedded CSS but are never applied (#ffdd57, #ff6900,
              #cf2e2e, …) and Bootstrap's default link #428bca — inert framework
              defaults. Font Awesome @font-face is declared; glyph classes are
              the vendor's, not reproduced here.
   ============================================================================= */

/* ── FONTS ─────────────────────────────────────────────────────────────────
   Suisse Int'l (TT's brand typeface) — SELF-HOSTED and applied GLOBALLY via the
   font tokens below. Declared as "Suisse Intl" (no apostrophe), the name both
   the token stack and inline styles resolve to. woff2 + woff; weights
   400/500/600/700 + regular italic; files in fonts/SuisseIntl-font/. Falls back
   Inter → system → Arial if absent. (The page's original self-hosted Poppins
   600 was replaced by Suisse.) Font Awesome 5.15.4 is kept below as the icons.
   For the WP deploy, move these to the Bunny CDN and use absolute URLs.        */
@font-face {
  font-family: 'Suisse Intl'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('https://assets.trueterpenes.com/fonts/suisse-intl/SuisseIntl-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Suisse Intl'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('https://assets.trueterpenes.com/fonts/suisse-intl/SuisseIntl-Medium.woff2') format('woff2');
}
@font-face {
  font-family: 'Suisse Intl'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('https://assets.trueterpenes.com/fonts/suisse-intl/SuisseIntl-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Suisse Intl'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('https://assets.trueterpenes.com/fonts/suisse-intl/SuisseIntl-Bold.woff2') format('woff2');
}
@font-face {
  font-family: 'Suisse Intl'; font-style: italic; font-weight: 400; font-display: swap;
  src: url('https://assets.trueterpenes.com/fonts/suisse-intl/SuisseIntl-Italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 900; font-display: block;
  src: url('https://local.trueterpenes.com/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/webfonts/fa-solid-900.woff2') format('woff2');
}
@font-face {
  font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 400; font-display: block;
  src: url('https://local.trueterpenes.com/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/webfonts/fa-regular-400.woff2') format('woff2');
}
/* ── COLORS THAT EXIST ON THIS PAGE ────────────────────────────────────────
   Exactly the applied hexes found in the page DOM — no more, no less.        */
.tt-scope {
  --c-primary:     #0e61fe;   /* CTA / links (dominant brand hex on page)     */
  --c-primary-2:   #146ff8;   /* secondary blue                              */
  --c-primary-3:   #0693e3;   /* tertiary blue                              */
  --c-green:       #00d084;   /* accent                                     */
  --c-purple:      #6f23e1;
  --c-ink:         #121212;   /* headings / primary text                     */
  --c-body:        #464646;   /* secondary text                             */
  --c-brown:       #26180a;   /* deep earthy accent                          */
  --c-white:       #ffffff;
  --c-black:       #000000;
  --c-wash:        #f7f3fb;   /* soft lavender section wash                   */
  --c-faq:         #f6f6f6;   /* TTFAQs panel background                      */
  --c-line:        #eaeaec;   /* hairline borders                            */
  --c-line-2:      #efefef;

  /* Type sizes that exist on this page (14/16/18/20/24/28px + em hero) */
  --fs-14: 14px;
  --fs-16: 16px;   /* base */
  --fs-18: 18px;
  --fs-20: 20px;
  --fs-24: 24px;
  --fs-28: 28px;
  --fs-hero: 2.625em;  /* ≈42px — the page's H1 size */
  --fs-sub: 1.125em;

  /* Fonts: Suisse Int'l — applied globally to all elements (body + display) */
  --font-body:    "Suisse Int'l", "Suisse Intl", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-display: "Suisse Int'l", "Suisse Intl", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
/* ── BASELINE (scoped) ─────────────────────────────────────────────────────
   Reproduces the page's body typography: Arial, 16px, #121212 on white.      */
.tt-scope, .tt-scope * { box-sizing: border-box; }
.tt-scope {
  font-family: var(--font-body);
  font-size: var(--fs-16);
  line-height: 1.6;
  color: var(--c-ink);
  background: var(--c-white);
}
.tt-scope img { max-width: 100%; height: auto; display: block; }
.tt-scope p { margin: 0 0 1rem; color: var(--c-body); }
.tt-scope a { color: var(--c-primary); text-decoration: none; }
.tt-scope a:hover { text-decoration: underline; }
.tt-scope ul, .tt-scope ol { margin: 0 0 1rem; padding-left: 1.25em; }
/* ── HEADINGS — Suisse Int'l 600, the brand display face ───────────────────
   The page mixes em- and px-based sizes; these mirror the values observed.   */
.tt-scope h1, .tt-scope h2, .tt-scope h3, .tt-scope h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  color: var(--c-ink);
  margin: 0 0 0.5em;
}
.tt-scope h1 { font-size: var(--fs-hero); letter-spacing: -0.02em; }
.tt-scope h2 { font-size: var(--fs-28); }
.tt-scope h3 { font-size: var(--fs-24); }
.tt-scope h4 { font-size: var(--fs-20); }
.tt-scope .fl-heading { font-family: var(--font-display); font-weight: 600; color: var(--c-ink); }
/* ── REAL PAGE CLASSES (reproduced exactly as the page uses them) ──────────── */
/* Uppercase pre-heading above the hero H1 — live: an <h2> "FLAVORS FOR EDIBLES" */
.tt-scope .tt-shop-hero-preheading {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-16);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-primary);
  margin: 0 0 0.5rem;
}
/* Mobile-only hero image swap — live class on the page's hero art */
.tt-scope .tt-application-page_hero-image--mobile { display: none; }
/* Utility the page uses to hide chrome on small screens (appears 3×) */
@media (max-width: 768px) {
  .tt-scope .tt-hide-mobile { display: none !important; }
  .tt-scope .tt-application-page_hero-image--mobile { display: block; }
}
/* ── BUTTON — the page's CTA (.fl-button linking to #sign-up) ──────────────── */
.tt-scope .fl-button, .tt-scope .tt-button {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-16);
  line-height: 1;
  padding: 0.9em 1.75em;
  color: var(--c-white);
  background: var(--c-primary);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}
.tt-scope .fl-button:hover, .tt-scope .tt-button:hover { background: #0a4fd6; transform: translateY(-2px); text-decoration: none; color: var(--c-white); }
/* ── FAQ — reproduces the live .TTFAQs-wrap panel verbatim ─────────────────
   Real values from the page's embedded CSS: #F6F6F6 panel, 30/60/60 padding,
   centered, collapses padding at 720px.                                      */
.tt-scope .TTFAQs .TTFAQs-wrap, .tt-scope .tt-faq-product-category .TTFAQs-wrap {
  background: var(--c-faq);
  padding: 30px 60px 60px;
  display: flex;
  justify-content: center;
}
.tt-scope .tt-faq-product-category .TTFAQs-sidebar { display: none; }
@media (max-width: 720px) {
  .tt-scope .tt-faq-product-category section.TTFAQs { padding: 0; }
  .tt-scope .TTFAQs .TTFAQs-wrap { padding: 20px; }
}
/* Accordion rows inside the FAQ panel (zero-JS <details>/<summary>) */
.tt-scope .TTFAQs details { border-bottom: 1px solid var(--c-line); width: 100%; max-width: 820px; }
.tt-scope .TTFAQs details:last-child { border-bottom: 0; }
.tt-scope .TTFAQs summary {
  list-style: none; cursor: pointer;
  font-family: var(--font-display); font-weight: 600; font-size: var(--fs-18);
  color: var(--c-ink); padding: 1.25rem 0;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.tt-scope .TTFAQs summary::-webkit-details-marker { display: none; }
.tt-scope .TTFAQs summary::after { content: "+"; color: var(--c-primary); font-size: 1.4em; }
.tt-scope .TTFAQs details[open] summary::after { content: "\2013"; }
.tt-scope .TTFAQs details > :not(summary) { margin: 0 0 1.25rem; color: var(--c-body); }
/* ── SECTION WASH — the soft lavender the page uses behind content blocks ──── */
.tt-scope .tt-wash { background: var(--c-wash); }
/* ═══════════════════════════════════════════════════════════════════════════
   PART B — GLOBAL COMPONENT LAYER  (added 2026-07-31)
   The live-brand values above, extended into a reusable component set so a
   whole page can run on this one stylesheet. All scoped under `.ttfg`.
   ═══════════════════════════════════════════════════════════════════════════ */
/* Extra tokens the component layer needs (brand values consistent with live) */
.tt-scope {
  --c-blue-deep: #23009b;   /* house "True Terpenes Blue" (for brand gradients) */
  --c-sky:       #bedbff;
  --c-primary-hover: #0a4fd6;
  --radius:    12px;
  --radius-lg: 16px;
  --pill:      999px;
  --shadow:    0 6px 20px rgba(0,0,0,.10);
  --shadow-lg: 0 20px 50px rgba(0,0,0,.16);
  --ease: cubic-bezier(.4,0,.2,1);
  --dur:  180ms;
  --sp-2: .67rem; --sp-3: 1rem; --sp-4: 1.5rem; --sp-5: 2.25rem; --sp-6: 3.38rem;
  --container: 1200px;
  --section-y: clamp(2.5rem, 1.5rem + 4vw, 6rem);
  /* semantic surface aliases (remapped in dark) */
  --surface: #fff; --surface-2: var(--c-wash); --bg: #fff;
  --text: var(--c-ink); --text-soft: var(--c-body); --border: var(--c-line);
}
.tt-scope *, .tt-scope *::before, .tt-scope *::after { box-sizing: border-box; }
/* Dark context — put tt-on-dark on <body class=ttfg> (toggle) or any wrapper.
   Remaps both the base palette tokens and the surface aliases; keeps --c-white
   literally white so button text on brand fills stays readable. */
.tt-scope.tt-on-dark, .tt-scope .tt-on-dark {
  --c-ink: #ffffff; --c-body: rgba(255,255,255,.72); --c-line: rgba(255,255,255,.16);
  --c-faq: #1b1b1b; --c-wash: #161616;
  --surface: #1b1b1b; --surface-2: #161616; --bg: #121212;
  --text: #fff; --text-soft: rgba(255,255,255,.72); --border: rgba(255,255,255,.16);
  color: #fff; background: #121212;
}
/* ---- Layout primitives -------------------------------------------------- */
.tt-scope .tt-container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--sp-4); }
.tt-scope .tt-container.tt-narrow { max-width: 820px; }
.tt-scope .tt-section { padding-block: var(--section-y); background: var(--bg); color: var(--text); }
.tt-scope .tt-section.tt-alt { background: var(--surface-2); }
.tt-scope .tt-stack > * + * { margin-top: var(--sp-3); }
.tt-scope .tt-cluster { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }
.tt-scope .tt-cluster.tt-center { justify-content: center; }
.tt-scope .tt-grid { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.tt-scope .tt-cols-3 { grid-template-columns: repeat(3, 1fr); }
.tt-scope .tt-split { display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: 1fr 1fr; align-items: center; }
/* ---- Typography helpers (classes; base elements styled in Part A) -------- */
.tt-scope .tt-h1, .tt-scope .tt-h2, .tt-scope .tt-h3, .tt-scope .tt-h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.15; color: var(--text); margin: 0 0 var(--sp-3); letter-spacing: -0.02em; }
.tt-scope .tt-h1 { font-size: var(--fs-hero); }
.tt-scope .tt-h2 { font-size: var(--fs-28); }
.tt-scope .tt-h3 { font-size: var(--fs-24); line-height: 1.25; }
.tt-scope .tt-h4 { font-size: var(--fs-20); line-height: 1.25; }
.tt-scope .tt-eyebrow { display: inline-block; font-family: var(--font-display); font-weight: 600; font-size: var(--fs-14); letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-primary); margin-bottom: var(--sp-2); }
.tt-scope .tt-lead { font-size: var(--fs-sub); line-height: 1.6; color: var(--text-soft); }
.tt-scope .tt-muted { color: var(--text-soft); }
.tt-scope .tt-accent { color: var(--c-primary-3); }
.tt-scope .tt-measure { max-width: 60ch; }
.tt-scope .tt-mx-auto { margin-inline: auto; }
.tt-scope .tt-mb-5 { margin-bottom: var(--sp-5); }
.tt-scope .tt-text-center, .tt-scope .tt-center { text-align: center; }
.tt-scope .tt-gradient-text { background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-purple) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
/* ---- Buttons (pill, matches the live .fl-button feel) ------------------- */
.tt-scope .tt-btn { --_bg: var(--c-primary); --_fg: #fff; display: inline-flex; align-items: center; justify-content: center; gap: .5em; font-family: var(--font-display); font-weight: 600; font-size: var(--fs-14); line-height: 1; padding: .9em 1.6em; border: 2px solid transparent; border-radius: var(--pill); background: var(--_bg); color: var(--_fg); cursor: pointer; text-align: center; transition: transform var(--dur) var(--ease), background var(--dur) var(--ease); }
.tt-scope .tt-btn:hover { transform: translateY(-2px); text-decoration: none; color: var(--_fg); }
.tt-scope .tt-btn:focus-visible { outline: 3px solid var(--c-sky); outline-offset: 2px; }
.tt-scope .tt-btn.tt-btn-primary:hover { --_bg: var(--c-primary-hover); }
.tt-scope .tt-btn.tt-btn-secondary { --_bg: transparent; --_fg: var(--c-primary); border-color: var(--c-primary); }
.tt-scope .tt-btn.tt-btn-secondary:hover { --_bg: var(--c-primary); --_fg: #fff; }
.tt-scope .tt-btn.tt-btn-dark { --_bg: var(--c-ink); --_fg: #fff; }
.tt-scope .tt-btn.tt-btn-ghost { --_bg: transparent; --_fg: var(--text); border-color: var(--border); }
.tt-scope .tt-btn.tt-btn-ghost:hover { --_bg: var(--border); }
.tt-scope .tt-on-dark .tt-btn.tt-btn-secondary { --_fg: #fff; border-color: rgba(255,255,255,.5); }
.tt-scope .tt-btn.tt-btn-sm { font-size: 13px; padding: .6em 1.1em; }
.tt-scope .tt-btn.tt-btn-lg { font-size: var(--fs-sub); padding: 1.05em 2.1em; }
.tt-scope .tt-btn.tt-btn-block { display: flex; width: 100%; }
/* ---- Badges ------------------------------------------------------------- */
.tt-scope .tt-badge { display: inline-flex; align-items: center; gap: .4em; font-family: var(--font-display); font-size: var(--fs-14); font-weight: 600; padding: .3em .75em; border-radius: var(--pill); background: var(--c-sky); color: var(--c-blue-deep); }
.tt-scope .tt-badge.tt-badge-sale { background: #cf2e2e; color: #fff; }
.tt-scope .tt-badge.tt-badge-new { background: var(--c-green); color: #06301f; }
.tt-scope .tt-badge.tt-badge-cyan { background: #00aeff; color: #05233a; }
.tt-scope .tt-badge.tt-badge-ghost { background: transparent; border: 1px solid var(--border); color: var(--text-soft); }
/* ---- Cards + product cards + features ------------------------------------ */
.tt-scope .tt-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--sp-4); transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.tt-scope .tt-card.tt-hoverable:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.tt-scope .tt-feature .tt-feature-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: var(--radius); background: var(--c-sky); color: var(--c-blue-deep); margin-bottom: var(--sp-3); }
.tt-scope .tt-feature .tt-feature-icon svg { width: 24px; height: 24px; }
.tt-scope .tt-feature-img { width: 64px; height: 64px; object-fit: contain; margin-bottom: var(--sp-3); }
/* standalone SVG icon (live vape-page style) */
.tt-scope .tt-product-card { display: flex; flex-direction: column; position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.tt-scope .tt-product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.tt-scope .tt-product-media { aspect-ratio: 1/1; background: var(--c-wash); display: grid; place-items: center; overflow: hidden; }
.tt-scope .tt-product-media img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.tt-scope .tt-product-body { display: flex; flex-direction: column; gap: var(--sp-2); padding: var(--sp-4); flex: 1; }
.tt-scope .tt-product-title { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-sub); color: var(--text); margin: 0; }
.tt-scope .tt-product-price { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-20); color: var(--c-primary); }
.tt-scope .tt-product-price del { color: var(--text-soft); font-weight: 400; font-size: .8em; margin-right: .4em; }
.tt-scope .tt-product-card .tt-btn { margin-top: auto; }
.tt-scope .tt-product-card .tt-badge { position: absolute; top: var(--sp-3); left: var(--sp-3); z-index: 2; }
/* ---- Hero --------------------------------------------------------------- */
.tt-scope .tt-hero { position: relative; padding-block: clamp(3rem, 2rem + 6vw, 8rem); overflow: hidden; }
.tt-scope .tt-hero.tt-hero-split .tt-container { display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: 1fr 1fr; align-items: center; }
.tt-scope .tt-hero-title { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-hero); line-height: 1.1; letter-spacing: -0.02em; margin: 0 0 var(--sp-4); color: var(--text); }
.tt-scope .tt-hero-sub { font-size: var(--fs-sub); color: var(--text-soft); margin: 0 0 var(--sp-5); max-width: 42ch; }
.tt-scope .tt-hero-preheading { display: block; font-family: var(--font-display); font-weight: 600; font-size: var(--fs-14); letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-primary); margin: 0 0 var(--sp-2); }
.tt-scope .tt-hero-copy { min-width: 0; }
/* grid-child overflow guard */
.tt-scope .tt-hero-media img { border-radius: var(--radius-lg); }
.tt-scope .tt-bg-wash { background: radial-gradient(120% 120% at 80% 0%, var(--c-sky) 0%, var(--c-wash) 45%, #fff 100%); }
.tt-scope .tt-bg-brand { background: linear-gradient(135deg, var(--c-blue-deep) 0%, var(--c-primary) 100%); }
/* ---- CTA band ----------------------------------------------------------- */
.tt-scope .tt-cta { border-radius: var(--radius-lg); padding: clamp(2rem, 1.5rem + 3vw, 4rem); text-align: center; color: #fff; background: linear-gradient(135deg, var(--c-blue-deep) 0%, var(--c-primary) 100%); }
.tt-scope .tt-cta .tt-h2 { color: #fff; }
.tt-scope .tt-cta .tt-lead { color: rgba(255,255,255,.85); }
/* ---- Check list --------------------------------------------------------- */
.tt-scope .tt-list-check { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--sp-3); }
.tt-scope .tt-list-check li { position: relative; padding-left: 2rem; color: var(--text); line-height: 1.25; }
.tt-scope .tt-list-check li::before { content: ""; position: absolute; left: 0; top: .1em; width: 1.3rem; height: 1.3rem; border-radius: 999px; background: var(--c-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / .8rem no-repeat; }
/* ---- FAQ accordion (tt-faq / tt-faq-item — used outside the TTFAQs panel) */
.tt-scope .tt-faq { background: var(--c-faq); border-radius: var(--radius-lg); padding: clamp(1.25rem, 1rem + 2vw, 2.5rem); }
.tt-scope .tt-faq-item { border-bottom: 1px solid var(--border); }
.tt-scope .tt-faq-item:last-child { border-bottom: 0; }
.tt-scope .tt-faq-item > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); font-family: var(--font-display); font-weight: 600; font-size: var(--fs-sub); color: var(--text); padding: var(--sp-4) 0; }
.tt-scope .tt-faq-item > summary::-webkit-details-marker { display: none; }
.tt-scope .tt-faq-item > summary::after { content: "+"; font-weight: 400; font-size: 1.4em; line-height: 1; color: var(--c-primary); }
.tt-scope .tt-faq-item[open] > summary::after { content: "\2013"; }
.tt-scope .tt-faq-item > :not(summary) { margin: 0 0 var(--sp-4); color: var(--text-soft); max-width: 68ch; }
/* ---- Forms -------------------------------------------------------------- */
.tt-scope .tt-field { display: flex; flex-direction: column; gap: .4em; margin-bottom: var(--sp-3); }
.tt-scope .tt-label { font-family: var(--font-display); font-weight: 500; font-size: var(--fs-14); color: var(--text); }
.tt-scope .tt-label .tt-req { color: #cf2e2e; margin-left: .15em; }
.tt-scope .tt-input, .tt-scope .tt-select, .tt-scope .tt-textarea { font-family: var(--font-body); font-size: var(--fs-16); width: 100%; padding: .75em .9em; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; }
.tt-scope .tt-input:focus, .tt-scope .tt-select:focus, .tt-scope .tt-textarea:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(14,97,254,.15); }
/* ---- Tabs --------------------------------------------------------------- */
.tt-scope .tt-tabs-list { display: flex; flex-wrap: wrap; gap: var(--sp-2); border-bottom: 1px solid var(--border); margin-bottom: var(--sp-4); }
.tt-scope .tt-tab { border: 0; background: none; cursor: pointer; margin-bottom: -1px; font-family: var(--font-display); font-weight: 600; font-size: var(--fs-14); color: var(--text-soft); padding: var(--sp-3); border-bottom: 2px solid transparent; }
.tt-scope .tt-tab[aria-selected="true"] { color: var(--c-primary); border-bottom-color: var(--c-primary); }
.tt-scope .tt-tabs { display: block; }
.tt-scope .tt-tab-panel[hidden] { display: none; }
/* ---- Carousel ----------------------------------------------------------- */
.tt-scope .tt-carousel { position: relative; }
.tt-scope .tt-carousel-track { display: flex; gap: var(--sp-4); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; padding-bottom: var(--sp-2); scrollbar-width: none; }
.tt-scope .tt-carousel-track::-webkit-scrollbar { display: none; }
.tt-scope .tt-carousel-slide { flex: 0 0 auto; width: min(80%, 320px); scroll-snap-align: start; }
.tt-scope .tt-carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 999px; cursor: pointer; background: var(--surface); color: var(--text); box-shadow: var(--shadow); display: grid; place-items: center; font-size: 1.2rem; line-height: 1; }
.tt-scope .tt-carousel-btn.prev { left: -6px; }
.tt-scope .tt-carousel-btn.next { right: -6px; }
.tt-scope .tt-carousel-btn[disabled] { opacity: .35; cursor: default; }
/* ---- Nav + drawer + modal + toast (hooks match demo.js) ----------------- */
.tt-scope .tt-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); }
.tt-scope .tt-nav-links { display: flex; gap: var(--sp-4); align-items: center; margin: 0; padding: 0; list-style: none; }
.tt-scope .tt-nav-links a { color: var(--text); font-family: var(--font-display); font-weight: 600; font-size: var(--fs-14); }
.tt-scope .tt-nav-toggle { display: none; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; flex-direction: column; justify-content: center; gap: 5px; padding: 10px; }
.tt-scope .tt-nav-toggle span { display: block; height: 2px; background: currentColor; border-radius: 2px; }
.tt-scope .tt-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(88vw, 360px); background: var(--surface); color: var(--text); transform: translateX(100%); transition: transform var(--dur) var(--ease); z-index: 1000; padding: var(--sp-5); overflow-y: auto; box-shadow: var(--shadow-lg); }
.tt-scope .tt-drawer.is-open { transform: translateX(0); }
.tt-scope .tt-drawer .tt-nav-links { flex-direction: column; align-items: stretch; gap: var(--sp-3); }
.tt-scope .tt-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.5); opacity: 0; visibility: hidden; transition: opacity var(--dur) var(--ease), visibility var(--dur) var(--ease); z-index: 999; }
.tt-scope .tt-backdrop.is-open { opacity: 1; visibility: visible; }
.tt-scope .tt-modal-backdrop { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; padding: var(--sp-4); background: rgba(0,0,0,.6); opacity: 0; visibility: hidden; transition: opacity var(--dur) var(--ease), visibility var(--dur) var(--ease); }
.tt-scope .tt-modal-backdrop.is-open { opacity: 1; visibility: visible; }
.tt-scope .tt-modal { position: relative; width: 100%; max-width: 460px; background: var(--surface); color: var(--text); border-radius: var(--radius-lg); padding: clamp(1.5rem, 1rem + 3vw, 3rem); box-shadow: var(--shadow-lg); transform: translateY(12px) scale(.98); transition: transform var(--dur) var(--ease); }
.tt-scope .tt-modal-backdrop.is-open .tt-modal { transform: none; }
.tt-scope .tt-modal-close { position: absolute; top: var(--sp-3); right: var(--sp-3); width: 32px; height: 32px; border: 0; border-radius: 999px; cursor: pointer; background: var(--border); color: var(--text); font-size: 1.1rem; line-height: 1; }
.tt-scope .tt-toast { position: fixed; bottom: var(--sp-4); left: 50%; z-index: 1200; transform: translateX(-50%) translateY(20px); background: var(--c-ink); color: #fff; padding: .7em 1.2em; border-radius: var(--pill); font-family: var(--font-display); font-size: var(--fs-14); opacity: 0; visibility: hidden; transition: opacity var(--dur) var(--ease), visibility var(--dur) var(--ease), transform var(--dur) var(--ease); }
.tt-scope .tt-toast.is-open { opacity: 1; visibility: visible; transform: translateX(-50%); }
/* ---- Scroll reveal ------------------------------------------------------ */
.tt-scope .tt-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.tt-scope .tt-reveal.is-visible { opacity: 1; transform: none; }
/* ---- Responsive --------------------------------------------------------- */
@media (max-width: 768px) {
  .tt-scope .tt-hero.tt-hero-split .tt-container,
  .tt-scope .tt-split { grid-template-columns: 1fr; }
  .tt-scope .tt-cols-3 { grid-template-columns: 1fr; }
  .tt-scope .tt-nav > .tt-nav-links { display: none; }
  .tt-scope .tt-nav-toggle { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
  .tt-scope * { transition: none !important; animation: none !important; }
  .tt-scope .tt-btn:hover, .tt-scope .tt-card.tt-hoverable:hover, .tt-scope .tt-product-card:hover { transform: none; }
}
/* ═══════════════════════════════════════════════════════════════════════════
   PART C — MEGA-MENU NAVIGATION  (adapted from design/nav-beta-mk5/nav-comp.html)
   The mk5 nav re-skinned onto the live-brand tokens: mk5's #23009B/#0192FE/Suisse
   → --c-blue-deep/--c-primary; type is Suisse Int'l. `tt-`-prefixed (distinct from the simpler
   .tt-nav in Part B). Desktop megas open on hover (CSS); Collections master/detail
   + mobile drawer collapsibles are wired by an inline script in the page.
   ═══════════════════════════════════════════════════════════════════════════ */
.tt-scope {
  --nav-hover: #f2f2f6;
  --shadow-menu: 0 24px 48px -12px rgba(14,97,254,.18), 0 8px 16px -8px rgba(0,0,0,.08);
}
/* Utility bar */
.tt-scope .tt-utilbar { background: var(--c-blue-deep); color: #fff; font-size: 12px; letter-spacing: .04em; }
.tt-scope .tt-utilbar .tt-utilbar-wrap { max-width: 1440px; margin: 0 auto; padding: 8px 32px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.tt-scope .tt-utilbar .tt-certs span { margin-right: 16px; opacity: .92; }
.tt-scope .tt-utilbar .tt-certs span::before { content: "\2713 "; color: var(--c-sky); font-weight: 700; }
.tt-scope .tt-utilbar .tt-utilbar-links a { margin-left: 20px; opacity: .85; color: #fff; }
.tt-scope .tt-utilbar .tt-utilbar-links a:hover { opacity: 1; text-decoration: none; }
/* Sticky site header */
.tt-scope .tt-siteheader { background: var(--surface); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 100; }
.tt-scope .tt-siteheader .tt-siteheader-wrap { max-width: 1440px; margin: 0 auto; padding: 0 32px; height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.tt-scope .tt-logo { display: flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--c-blue-deep); letter-spacing: -.01em; }
.tt-scope .tt-logo-mark { width: 36px; height: 36px; background: var(--c-blue-deep); border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 14px; }
/* Mega nav bar (position context for the dropdowns) */
.tt-scope .tt-meganav { display: flex; align-items: center; gap: 4px; position: relative; }
.tt-scope .tt-meganav-item { position: static; }
.tt-scope .tt-meganav-link { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; font-family: var(--font-display); font-size: 15px; font-weight: 500; color: var(--c-ink); border-radius: 6px; transition: background .15s, color .15s; }
.tt-scope .tt-meganav-link:hover, .tt-scope .tt-meganav-item:hover .tt-meganav-link { background: var(--nav-hover); color: var(--c-primary); text-decoration: none; }
.tt-scope .tt-caret { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px,-2px); transition: transform .2s; }
.tt-scope .tt-meganav-item:hover .tt-caret { transform: rotate(225deg) translate(-2px,-2px); }
/* Mega dropdown panel */
.tt-scope .tt-mega { position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(8px); width: 1120px; max-width: calc(100vw - 48px); background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-menu); opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; overflow: hidden; }
.tt-scope .tt-meganav-item:hover .tt-mega, .tt-scope .tt-mega:hover { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.tt-scope .tt-mega-grid { display: grid; grid-template-columns: repeat(3, 1fr) 1.2fr; }
.tt-scope .tt-mega-col { padding: 28px; border-right: 1px solid var(--border); }
.tt-scope .tt-mega-col:last-child { border-right: 0; background: linear-gradient(180deg, #f7f9ff 0%, var(--c-sky) 100%); }
.tt-scope .tt-mega-eyebrow { font-family: var(--font-display); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--c-blue-deep); margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.tt-scope .tt-series-dot { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
.tt-scope .tt-series-dot.c { background: #1c9e5f; }
.tt-scope .tt-series-dot.f { background: var(--c-purple); }
.tt-scope .tt-series-dot.m { background: #7a7a82; }
.tt-scope .tt-mega-tag { font-size: 11px; color: var(--c-body); font-style: italic; margin: -4px 0 10px; line-height: 1.4; }
.tt-scope .tt-sub-eyebrow { font-family: var(--font-display); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--c-body); margin: 20px 0 8px; padding-bottom: 4px; border-bottom: 1px dashed var(--border); }
.tt-scope .tt-mega-list { list-style: none; display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; }
.tt-scope .tt-mega-list a { display: block; padding: 10px 12px; margin: 0 -12px; border-radius: 6px; font-family: var(--font-display); font-size: 15px; font-weight: 500; color: var(--c-ink); transition: background .15s, color .15s, padding-left .15s; }
.tt-scope .tt-mega-list a:hover { background: var(--nav-hover); color: var(--c-primary); padding-left: 16px; text-decoration: none; }
.tt-scope .tt-mega-desc { display: block; font-family: var(--font-body); font-size: 12px; font-weight: 400; color: var(--c-body); margin-top: 2px; }
.tt-scope .tt-mega-list a:hover .tt-mega-desc { color: var(--c-primary); opacity: .7; }
.tt-scope .tt-mega-badge { display: inline-block; font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 2px 6px; border-radius: 3px; background: var(--c-primary); color: #fff; margin-left: 8px; vertical-align: middle; }
.tt-scope .tt-mega-badge.flagship { background: var(--c-blue-deep); }
.tt-scope .tt-mega-badge.hero { background: var(--c-primary); }
.tt-scope .tt-mega-badge.new { background: var(--c-green); color: #06301f; }
.tt-scope .tt-mega-badge.sunset { background: #6b7280; }
.tt-scope .tt-mega-verb { display: inline-block; font-family: var(--font-display); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-body); margin-right: 6px; }
.tt-scope .tt-mega-list li.is-sunsetting { opacity: .55; }
.tt-scope .tt-mega-list li.is-sunsetting a { text-decoration: line-through; text-decoration-color: rgba(107,114,128,.6); }
.tt-scope .tt-mega-list li.is-sunsetting .tt-mega-desc { text-decoration: none; font-style: italic; color: #6b7280; }
.tt-scope .tt-mega-feature { display: flex; flex-direction: column; gap: 14px; height: 100%; }
.tt-scope .tt-mega-feature h3 { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--c-blue-deep); line-height: 1.25; margin: 0; }
.tt-scope .tt-mega-feature p { font-family: var(--font-body); font-size: 13px; color: var(--c-body); line-height: 1.55; margin: 0; }
.tt-scope .tt-feature-tools { list-style: none; display: flex; flex-direction: column; gap: 8px; margin: auto 0 0; padding: 0; }
.tt-scope .tt-feature-tools a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: 6px; font-family: var(--font-display); font-size: 14px; font-weight: 500; color: var(--c-ink); transition: border-color .15s, transform .1s; }
.tt-scope .tt-feature-tools a:hover { border-color: var(--c-primary); color: var(--c-blue-deep); transform: translateX(2px); text-decoration: none; }
.tt-scope .tt-tool-icon { width: 28px; height: 28px; background: var(--c-sky); border-radius: 6px; display: grid; place-items: center; font-size: 14px; }
.tt-scope .tt-mega-ctalink { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-display); font-weight: 600; color: var(--c-primary); font-size: 14px; margin-top: 4px; }
.tt-scope .tt-mega-ctalink::after { content: "\2192"; transition: transform .15s; }
.tt-scope .tt-mega-ctalink:hover { text-decoration: none; }
.tt-scope .tt-mega-ctalink:hover::after { transform: translateX(4px); }
.tt-scope .tt-mega-footer { background: var(--surface-2); border-top: 1px solid var(--border); padding: 14px 28px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: 13px; color: var(--c-body); }
.tt-scope .tt-mega-footer strong { color: var(--c-blue-deep); }
.tt-scope .tt-mega-footer a { color: var(--c-primary); font-weight: 600; }
/* Collections master/detail */
.tt-scope .tt-collections-md { display: grid; grid-template-columns: 220px 1fr; min-height: 300px; }
.tt-scope .tt-md-labels { list-style: none; background: var(--surface-2); border-right: 1px solid var(--border); padding: 12px 0; margin: 0; }
.tt-scope .tt-md-label { padding: 13px 20px; cursor: pointer; font-family: var(--font-display); font-weight: 500; font-size: 14px; color: var(--c-ink); border-left: 3px solid transparent; position: relative; transition: background .15s, color .15s, border-color .15s; }
.tt-scope .tt-md-label::after { content: '\203A'; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 18px; opacity: .35; transition: opacity .15s, transform .15s; }
.tt-scope .tt-md-label:hover, .tt-scope .tt-md-label.is-active { background: var(--surface); color: var(--c-primary); border-left-color: var(--c-primary); }
.tt-scope .tt-md-label:hover::after, .tt-scope .tt-md-label.is-active::after { opacity: 1; color: var(--c-primary); transform: translateY(-50%) translateX(2px); }
.tt-scope .tt-md-detail { padding: 22px 26px; }
.tt-scope .tt-md-content { display: none; }
.tt-scope .tt-md-content.is-active { display: block; }
.tt-scope .tt-md-tagline { font-size: 11px; color: var(--c-body); font-style: italic; margin-bottom: 14px; }
/* Hamburger + mobile drawer collapsibles (drawer container reuses Part B .tt-drawer) */
.tt-scope .tt-meganav-toggle { display: none; width: 40px; height: 40px; background: transparent; border: 1px solid var(--border); border-radius: 6px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; cursor: pointer; flex-shrink: 0; }
.tt-scope .tt-meganav-toggle span { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 1px; }
.tt-scope .tt-drawer-flat { padding: 16px 0; font-family: var(--font-display); font-size: 17px; font-weight: 500; color: var(--c-ink); border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; }
.tt-scope .tt-drawer-flat::after { content: '\203A'; opacity: .35; font-size: 22px; }
.tt-scope .tt-drawer-flat:hover { color: var(--c-primary); text-decoration: none; }
.tt-scope .tt-drawer-section { border-bottom: 1px solid var(--border); }
.tt-scope .tt-drawer-section-head { padding: 16px 0; font-family: var(--font-display); font-size: 17px; font-weight: 500; color: var(--c-ink); display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.tt-scope .tt-chev { font-size: 22px; opacity: .4; transition: transform .2s, opacity .2s; }
.tt-scope .tt-drawer-subsections { max-height: 0; overflow: hidden; transition: max-height .25s ease-out; }
.tt-scope .tt-drawer-section.is-open .tt-drawer-section-head { color: var(--c-primary); }
.tt-scope .tt-drawer-section.is-open .tt-chev { transform: rotate(90deg); opacity: 1; color: var(--c-primary); }
.tt-scope .tt-drawer-section.is-open .tt-drawer-subsections { max-height: 2000px; transition: max-height .4s ease-in; }
.tt-scope .tt-drawer-sub { padding: 4px 0 8px 16px; border-left: 2px solid var(--border); margin: 4px 0 4px 6px; }
.tt-scope .tt-drawer-sub-head { padding: 10px 0 6px; font-family: var(--font-display); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--c-body); }
.tt-scope .tt-drawer-sub-link { display: block; padding: 9px 0; font-family: var(--font-display); font-size: 14px; font-weight: 500; color: var(--c-ink); }
.tt-scope .tt-drawer-sub-link:hover { color: var(--c-primary); text-decoration: none; }
.tt-scope .tt-drawer-sub-link.is-sunsetting { color: var(--c-body); text-decoration: line-through; text-decoration-color: rgba(107,114,128,.5); }
/* Mega nav responsive — swap to hamburger below 1024px (megas are wide) */
@media (max-width: 1024px) {
  .tt-scope .tt-meganav { display: none; }
  .tt-scope .tt-mega { display: none; }
  .tt-scope .tt-meganav-toggle { display: flex; }
  .tt-scope .tt-utilbar .tt-certs { display: none; }
}
@media (max-width: 720px) {
  .tt-scope .tt-siteheader .tt-siteheader-wrap { padding: 0 16px; }
  .tt-scope .tt-cta-cluster .tt-hide-sm { display: none; }
}

/* ---------- PART 4: system gap fixes (OURS, push these upstream) ----------
   Added 2026-08-03. Not present in either source sheet.

   .tt-hero-preheading is `color: var(--c-primary)` = #0e61fe in the final sheet, and
   `var(--tt-color-primary)` = the same #0e61fe in the superseded one. .tt-bg-brand is
   `linear-gradient(135deg, #23009b, #0e61fe)`. So on a brand-ground hero the preheading is
   blue on blue: 2.69:1 at the dark end and 1.00:1 at the light end, i.e. invisible.
   .tt-on-dark exists for exactly this and remaps --tt-color-text to #ffffff, but it never
   covered the preheading. tt-page-elements_v3.html works around it with an inline
   style="color:#bedbff" on the LOUD hero, which is 3.55:1 and fails AA for 14px text.
   #ffffff measures 5.05:1 against the worst point of the gradient and passes.

   Specificity (0,3,0) beats the base (0,2,0) as a surface VARIANT, which is the same
   reason .tt-on-dark .tt-faq is left alone by the shadowing pass. */
.tt-scope .tt-on-dark .tt-hero-preheading{color:var(--tt-color-text)}
