/*
 * tbd-cms.css — compatibility layer for legacy CMS markup on the new chrome.
 *
 * Existing CMS pages + the homepage's lower rows author markup with a subset of
 * Bulma classes (.columns/.column, .button, .content, .notification, .hero-body,
 * .menu-list, tabs, .card, helpers) and rely on the old `body.theme-new` styles.
 * The new chrome (base_texas.html -> layout/texas.html) is Bulma-free and only
 * loads tbd.css, so this file:
 *
 *   1. re-implements the Bulma primitives those templates need, and
 *   2. ports the homepage/article section styling from src/theme.sass,
 *
 * EVERYTHING is scoped under `.tbd-page` (the <body> class set by base_texas.html)
 * so it can never leak into, or be polluted by, the legacy Bulma stylesheet.
 * Design tokens are inherited from tbd.css; CMS-specific tokens are added below.
 */

.tbd-page {
  --cms-navy:       #061521;
  --cms-navy-soft:  rgba(6, 21, 33, 0.80);
  --cms-red:        #BF0A30;
  --cms-gold:       #DBC760;
  --cms-gold-dark:  #83621B;
  --cms-gold-hover: #eac35b;
  --cms-dark-gray:  #4A5565;
  --cms-light-gray: #E5E5E5;
  --cms-cream:      #F9F7F6;
  --cms-serif: 'Crimson Text', serif;
  --cms-sans:  'Archivo', sans-serif;
}

/* ════════════════════════════════════════════════════════════
   1. LAYOUT — container + Bulma flex grid
   ════════════════════════════════════════════════════════════ */
.tbd-page .container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
}
@media screen and (min-width: 1024px) { .tbd-page .container { max-width: 960px; } }
@media screen and (min-width: 1216px) { .tbd-page .container { max-width: 1152px; } }
@media screen and (min-width: 1408px) { .tbd-page .container { max-width: 1344px; } }

.tbd-page .columns {
  display: flex;
  flex-wrap: wrap;
  margin: -0.75rem;
}
.tbd-page .columns:not(:last-child) { margin-bottom: 0.75rem; }
.tbd-page .columns.is-multiline { flex-wrap: wrap; }
.tbd-page .columns.is-vcentered { align-items: center; }
.tbd-page .columns.is-centered { justify-content: center; }
.tbd-page .columns.is-gapless { margin: 0; }
.tbd-page .columns.is-gapless > .column { padding: 0; }
.tbd-page .columns.mt-4 { margin-top: 1rem; }

.tbd-page .column {
  display: block;
  flex: 1 1 0;
  padding: 0.75rem;
  min-width: 0;
}

/* Column sizing — applied from tablet up (matches Bulma: columns stack on mobile). */
@media screen and (min-width: 769px) {
  .tbd-page .column.is-1  { flex: none; width: 8.3333%; }
  .tbd-page .column.is-2  { flex: none; width: 16.6666%; }
  .tbd-page .column.is-3, .tbd-page .column.is-one-quarter  { flex: none; width: 25%; }
  .tbd-page .column.is-4, .tbd-page .column.is-one-third    { flex: none; width: 33.3333%; }
  .tbd-page .column.is-5  { flex: none; width: 41.6666%; }
  .tbd-page .column.is-6, .tbd-page .column.is-half         { flex: none; width: 50%; }
  .tbd-page .column.is-7  { flex: none; width: 58.3333%; }
  .tbd-page .column.is-8, .tbd-page .column.is-two-thirds   { flex: none; width: 66.6666%; }
  .tbd-page .column.is-9, .tbd-page .column.is-three-quarters { flex: none; width: 75%; }
  .tbd-page .column.is-10 { flex: none; width: 83.3333%; }
  .tbd-page .column.is-11 { flex: none; width: 91.6666%; }
  .tbd-page .column.is-12 { flex: none; width: 100%; }
  .tbd-page .column.is-offset-0 { margin-left: 0; }

  /* tablet-suffixed widths */
  .tbd-page .column.is-3-tablet  { flex: none; width: 25%; }
  .tbd-page .column.is-4-tablet  { flex: none; width: 33.3333%; }
  .tbd-page .column.is-6-tablet  { flex: none; width: 50%; }
  .tbd-page .column.is-12-tablet { flex: none; width: 100%; }
}

/* desktop-suffixed widths apply only from desktop up */
@media screen and (min-width: 1024px) {
  .tbd-page .column.is-3-desktop { flex: none; width: 25%; }
  .tbd-page .column.is-4-desktop { flex: none; width: 33.3333%; }
  .tbd-page .column.is-6-desktop { flex: none; width: 50%; }
  .tbd-page .column.is-8-desktop { flex: none; width: 66.6666%; }
}

/* Mobile: every column stacks full-width (Bulma default for non is-mobile columns). */
@media screen and (max-width: 768px) {
  .tbd-page .columns { flex-direction: column; }
  .tbd-page .column  { flex: none; width: 100% !important; max-width: 100%; }
}

/* ════════════════════════════════════════════════════════════
   2. SECTION / HERO scaffolding
   ════════════════════════════════════════════════════════════ */
.tbd-page .section { padding: 3rem 1.5rem; }
.tbd-page .section.is-paddingless { padding: 0; }
.tbd-page .hero { width: 100%; }
.tbd-page .hero-body { padding: 3rem 1.5rem; }
.tbd-page .hero-body.canvas { background: var(--cms-cream); }
.tbd-page .hero.is-light { background: var(--cms-cream); }

/* The themed sections (offerings/solution/etc.) own their vertical rhythm. */
.tbd-page section { padding: 2.5rem 1.5rem; }
.tbd-page section > .container { width: 100%; margin-left: auto; margin-right: auto; }

/* ════════════════════════════════════════════════════════════
   3. TYPOGRAPHY — .content + article + titles
   ════════════════════════════════════════════════════════════ */
.tbd-page .content { line-height: 1.6; }
.tbd-page .content h1,
.tbd-page .content h2,
.tbd-page .content h3,
.tbd-page .content h4,
.tbd-page .content h5,
.tbd-page .content h6 { color: var(--cms-navy); font-family: var(--cms-sans); line-height: 1.2; margin-bottom: 0.75rem; }
.tbd-page .content h1, .tbd-page .content .title { font-family: var(--cms-serif); }
.tbd-page .content p { color: var(--cms-navy); font-size: 1.05rem; line-height: 1.6; margin-bottom: 1rem; }
.tbd-page .content ul,
.tbd-page .content ol { margin: 0 0 1rem 1.5rem; }
.tbd-page .content li { margin-bottom: 0.4rem; }
.tbd-page .content article { margin-bottom: 1.5rem; }
.tbd-page .content blockquote { background: var(--light-gray); color: var(--cms-gold-dark); border-left: 4px solid var(--cms-gold-dark); padding: 1rem 1.25rem; margin: 1rem 0; }
.tbd-page article h1 { color: var(--cms-navy); text-transform: capitalize; }
.tbd-page article h2 { font-size: 1.5rem; font-family: var(--cms-sans); color: var(--cms-navy); }
.tbd-page article p { color: var(--cms-navy); font-size: 1.1rem; line-height: 1.5rem; margin-bottom: 1rem; }

.tbd-page .title { color: var(--cms-navy); font-family: var(--cms-serif); font-weight: 700; font-size: 2rem; line-height: 1.125; margin-bottom: 1rem; }
.tbd-page .subtitle { color: var(--cms-dark-gray); font-weight: 400; line-height: 1.25; margin-bottom: 1rem; }
.tbd-page .title.is-1, .tbd-page .is-size-1 { font-size: 3rem; }
.tbd-page .title.is-2, .tbd-page .is-size-2 { font-size: 2.5rem; }
.tbd-page .title.is-3, .tbd-page .is-size-3 { font-size: 2rem; }
.tbd-page .title.is-4, .tbd-page .is-size-4 { font-size: 1.5rem; }
.tbd-page .subtitle.is-5, .tbd-page .is-size-5 { font-size: 1.25rem; }
.tbd-page .is-size-6 { font-size: 1rem; }

/* ════════════════════════════════════════════════════════════
   4. BUTTONS  (Bulma .button + theme variants)
   ════════════════════════════════════════════════════════════ */
.tbd-page .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 5px;
  padding: 0.85rem 1.75rem;
  background-color: var(--white);
  color: var(--cms-navy);
  border: 1px solid var(--cms-navy);
  font-family: var(--cms-sans);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
}
.tbd-page .button:hover { background-color: var(--cms-navy); color: var(--white); border-color: transparent; }
.tbd-page .button.is-small { padding: 0.55rem 1rem; font-size: 0.85rem; }
.tbd-page .button.is-medium { padding: 1rem 2rem; font-size: 1.1rem; }
.tbd-page .button.is-large { padding: 1.15rem 2.5rem; font-size: 1.25rem; }
.tbd-page .button.is-fullwidth { width: 100%; }

.tbd-page .button.is-gold { background-color: var(--cms-gold); color: var(--cms-navy); border-color: transparent; }
.tbd-page .button.is-gold:hover { background-color: var(--cms-gold-hover); color: var(--cms-navy); }
.tbd-page .button.is-primary { background-color: var(--cms-navy); color: var(--white); border-color: transparent; }
.tbd-page .button.is-primary:hover { background-color: var(--white); color: var(--cms-navy); border-color: var(--cms-navy); }
.tbd-page .button.is-info { background-color: #31679b; color: var(--white); border-color: transparent; }
.tbd-page .button.is-info.is-inverted { background-color: var(--white); color: #31679b; }
.tbd-page .button.is-link, .tbd-page .button.is-outline { background: transparent; border: 1px solid var(--cms-navy); color: var(--cms-navy); }
.tbd-page .button.is-outline:hover { background: var(--cms-navy); color: var(--white); }
.tbd-page .button.is-outline-inverse { background: transparent; border: 1px solid var(--white); color: var(--white); }
.tbd-page .button.transparent { background-color: transparent; border-color: #31679b; color: #31679b; }

/* "Learn More →" affordances */
.tbd-page .cta-arrow::after { content: "\2192"; margin-left: 0.5em; transition: transform 0.3s; }
.tbd-page a.cta-arrow:hover::after { transform: translateX(3px); }
.tbd-page .learn-more { color: var(--cms-navy); font-family: var(--cms-sans); font-weight: 700; font-size: 1.05rem; text-decoration: none; }
.tbd-page .learn-more.cta-arrow::after { content: "\2192"; margin-left: 0.4em; }
.tbd-page .bullet-link { color: var(--cms-gold-dark); font-weight: 700; text-decoration: none; }
.tbd-page .bullet-link:hover { text-decoration: underline; }

/* ════════════════════════════════════════════════════════════
   5. NOTIFICATION / AD / TILE / IMAGE / LEVEL / ICON
   ════════════════════════════════════════════════════════════ */
.tbd-page .notification { background-color: var(--light-gray); border-radius: 6px; padding: 1.5rem; position: relative; }
.tbd-page .notification.is-info { background-image: linear-gradient(to right, #d6b04a, #ebd988); color: var(--cms-navy); }
.tbd-page .notification.is-primary { background-color: var(--cms-gold); color: var(--cms-navy); }
.tbd-page .notification.is-danger { background-color: #feecf0; color: #cc0f35; }
.tbd-page .ad .notification.is-info h2 { color: var(--cms-navy); font-family: var(--cms-sans); font-size: 1.2rem; font-weight: 700; line-height: 1.8rem; }
.tbd-page .ad .notification.is-info p { color: var(--cms-navy); font-size: 1.1rem; padding: 0.5rem 0; }
.tbd-page .ad .notification .button { border-color: var(--cms-navy); color: var(--cms-navy); }

.tbd-page .tile { display: block; }
.tbd-page .tile.is-ancestor { display: flex; flex-wrap: wrap; gap: 1rem; }
.tbd-page .tile.is-parent { display: flex; flex: 1 1 0; }
.tbd-page .tile.is-child { width: 100%; }

.tbd-page .image { display: block; position: relative; }
.tbd-page .image img { display: block; width: 100%; height: auto; }
.tbd-page .is-pulled-right { float: right; }
.tbd-page .is-pulled-left { float: left; }

.tbd-page .level { display: flex; align-items: center; justify-content: space-between; }
.tbd-page .level-left, .tbd-page .level-right { display: flex; align-items: center; }
.tbd-page .level-item { display: flex; align-items: center; }
.tbd-page .icon { display: inline-flex; align-items: center; justify-content: center; height: 1.5rem; width: 1.5rem; }

/* ════════════════════════════════════════════════════════════
   6. MENU-LIST + TABS (storage-types side nav, faq toggles)
   ════════════════════════════════════════════════════════════ */
.tbd-page .menu-list { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.tbd-page .menu-list li { margin: 0; }
.tbd-page .menu-list .tab-item { display: block; padding: 0.6rem 0.75rem; border-radius: 4px; cursor: pointer; color: var(--cms-navy); font-weight: 600; }
.tbd-page .menu-list .tab-item:hover { background: var(--light-gray); }
.tbd-page .menu-list .tab-item.is-active { background: var(--cms-navy); color: var(--white); }

.tbd-page .tab-content { display: none; }
.tbd-page .tab-content.is-active { display: block; }

/* ════════════════════════════════════════════════════════════
   7. CARDS (offerings/products/features/news)
   ════════════════════════════════════════════════════════════ */
.tbd-page .card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--cms-light-gray); border-radius: 4px; overflow: hidden; height: 100%; }
.tbd-page .card-image figure, .tbd-page .card figure { margin: 0; }
.tbd-page .card-content { padding: 1.25rem; }
.tbd-page .card-footer { display: flex; border-top: 1px solid var(--cms-light-gray); }
.tbd-page .card-footer-item { flex: 1; padding: 0.75rem; text-align: center; }
.tbd-page .card-details { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.5rem; flex-grow: 1; }
.tbd-page .card-details h3 { color: var(--cms-navy); font-family: var(--cms-serif); font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.tbd-page .card-details h4 { color: var(--cms-navy); font-size: 1.1rem; font-family: var(--cms-sans); }
.tbd-page .card-details p { color: var(--cms-navy-soft); font-family: var(--cms-sans); font-size: 1rem; line-height: 1.5; }
.tbd-page .card-details .price { color: var(--cms-navy); font-size: 1.1rem; font-weight: 700; }

/* ════════════════════════════════════════════════════════════
   8. SECTION TITLE + KICKER (shared chrome for the home rows)
   ════════════════════════════════════════════════════════════ */
.tbd-page .section-title { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 1rem; }
.tbd-page .section-title h2 { font-family: var(--cms-serif); font-size: 2.75rem; color: var(--cms-navy); font-weight: 700; line-height: 1; text-transform: uppercase; }
.tbd-page .section-title h2 .kicker { display: block; font-family: var(--cms-serif); font-size: 2.25rem; font-style: italic; font-weight: 400; line-height: 0.8; text-transform: capitalize; margin-bottom: 1rem; }
.tbd-page .section-title h2 .kicker::before { content: "\2014"; color: var(--cms-gold-dark); font-weight: 800; margin-right: 0.2rem; }
.tbd-page .section-title .cta-arrow { margin-top: auto; align-self: flex-end; font-weight: 700; color: var(--cms-navy); font-size: 1.1rem; text-decoration: none; white-space: nowrap; }
.tbd-page .section-header { color: var(--cms-navy); font-family: var(--cms-sans); font-size: 1.25rem; font-weight: 700; margin-bottom: 0.75rem; }
.tbd-page .bullet-links { list-style: none; margin: 0; padding: 0; }
.tbd-page .bullet-links li { margin-bottom: 0.5rem; }
.tbd-page .bullet-links a { color: var(--cms-navy); text-decoration: none; }
.tbd-page .bullet-links a:hover { color: var(--cms-gold-dark); text-decoration: underline; }

/* ════════════════════════════════════════════════════════════
   9. HOMEPAGE ROWS (ported from theme.sass, re-scoped to .tbd-page)
   ════════════════════════════════════════════════════════════ */

/* Offerings */
.tbd-page .offerings-section .card { background: rgba(255,255,255,0.6); border-radius: 4px; }
.tbd-page .offerings-section .card-details { gap: 1.25rem; padding: 2rem; }
.tbd-page .icon-wrapper,
.tbd-page .solution-item .icon-box {
  color: var(--cms-red);
  display: flex;
  width: 76px;
  height: 76px;
  justify-content: center;
  align-items: center;
  border-radius: 9999px;
  background: rgba(219, 199, 96, 0.10);
}
.tbd-page .icon-wrapper i,
.tbd-page .solution-item .icon-box i { font-size: 2.25rem; }
.tbd-page .icon-wrapper img { width: 45px; height: 40px; object-fit: contain; }
.tbd-page .offerings-section .learn-more { margin-top: auto; }

/* Solution (dark navy band) */
.tbd-page .solution-section { background-color: var(--cms-navy); color: var(--white); }
.tbd-page .solution-section p { color: rgba(255,255,255,0.8); }
.tbd-page .solution-section .section-title h2 { color: var(--white); }
.tbd-page .solution-list { display: flex; flex-direction: column; gap: 1rem; }
.tbd-page .solution-item { background: var(--cms-cream); color: var(--cms-navy); padding: 1.25rem 1.5rem; display: flex; gap: 0.75rem; align-items: center; border-radius: 4px; }
.tbd-page .solution-item p { color: var(--cms-navy); font-weight: 600; margin: 0; }
.tbd-page .solution-list .cta-arrow { align-self: flex-end; }

/* Products / coins macro */
.tbd-page .coins-section { background: linear-gradient(179deg, #D9D9D5 0.5%, #F9F7F6 99.56%); color: var(--cms-navy); }
.tbd-page .coins-section .cards { margin: 1rem 0; }
.tbd-page .coins-section .coin-card .card { transition: transform 0.3s ease; }
.tbd-page .coins-section .coin-card .card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.08); }
.tbd-page .coins-section .coin-card img { width: 100%; height: auto; display: block; }
.tbd-page .coins-section .card-details { gap: 0.5rem; }
.tbd-page .coins-section .card-details p { max-height: 5rem; overflow: hidden; }
.tbd-page .coins-section .card-details .button { width: 100%; }

/* Trust */
.tbd-page .trust-section { background-color: var(--cms-cream); }
.tbd-page .trust-section figure img { max-width: 700px; object-fit: cover; }

/* FAQ accordion */
.tbd-page .faq-section { background-color: var(--cms-cream); color: var(--cms-navy); }
.tbd-page .faq-item { border-bottom: 1px solid #ddd; padding: 1.5rem 0; }
.tbd-page .faq-item:first-child { padding-top: 0; }
.tbd-page .faq-item .question { font-size: 1.4rem; color: var(--cms-navy); cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-weight: 700; }
.tbd-page .faq-item .question .toggle-icon { margin-left: 1rem; flex-shrink: 0; position: relative; width: 1em; height: 1em; }
.tbd-page .faq-item .question .toggle-icon::before,
.tbd-page .faq-item .question .toggle-icon::after { content: ""; position: absolute; top: 50%; left: 0; width: 100%; height: 2px; background: var(--cms-gold-dark); transition: transform 0.2s; }
.tbd-page .faq-item .question .toggle-icon::after { transform: rotate(90deg); }
.tbd-page .faq-item.is-active .question .toggle-icon::after { transform: rotate(0deg); }
.tbd-page .faq-item .answer { color: var(--cms-dark-gray); margin-top: 1rem; font-size: 1.1rem; display: none; }
.tbd-page .faq-item.is-active .answer { display: block; }

/* CMS "qa" template accordion (templates/site/qa.html → live /faqs and other
   Q&A pages). Markup is <article> > h3.question.toggle-active + p.answer with no
   wrapper or .toggle-icon, so mirror the .faq-item look with a text +/- marker.
   Separators hang off the .question/.answer themselves (not <article>) so other
   CMS pages that nest <article> inside .content are untouched. */
.tbd-page .content .question.toggle-active { font-size: 1.4rem; color: var(--cms-navy); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-weight: 700; margin: 0; border-top: 1px solid #ddd; padding: 1.5rem 0 0; }
.tbd-page .content article:first-of-type .question.toggle-active { border-top: 0; padding-top: 0; }
.tbd-page .content .question.toggle-active::after { content: "+"; flex-shrink: 0; margin-left: 1rem; color: var(--cms-gold-dark); font-weight: 400; line-height: 1; }
.tbd-page .content .question.toggle-active.is-active::after { content: "\2013"; }
.tbd-page .content .answer { color: var(--cms-dark-gray); margin-top: 1rem; padding-bottom: 1.5rem; font-size: 1.1rem; display: none; }
.tbd-page .content .question.toggle-active.is-active + .answer,
.tbd-page .content .answer.is-active { display: block; }

/* Features / latest news */
.tbd-page .features-section { background-color: var(--cms-cream); }
.tbd-page .features-section .card figure { display: flex; align-items: center; justify-content: center; height: 220px; overflow: hidden; }
.tbd-page .features-section .card figure img { width: 100%; height: 100%; object-fit: cover; }
.tbd-page .features-section .card-details { padding: 1rem; }
.tbd-page .features-section .card-details h3 { font-size: 1.2rem; }
.tbd-page .features-section .card-details p { max-height: 6rem; overflow: hidden; }
.tbd-page .news-heading { border-bottom: 2px solid var(--cms-gold-dark); display: inline-block; padding-bottom: 5px; }

/* The .cards flex row used by several sections */
.tbd-page .cards { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
/* When .cards is combined with the Bulma .columns grid (e.g. the products macro),
   the column padding already supplies the gutter — the extra flex gap pushes the
   total past 100% and wraps a 4-up row onto a 5th line. Drop the gap in that case. */
.tbd-page .columns.cards { gap: 0; }

/* Generic side column (article pages) */
.tbd-page .aside .ad { position: sticky; top: calc(var(--nav-height) + 1rem); }

/* ════════════════════════════════════════════════════════════
   9b. CONTENT / ARTICLE PAGES  (site/article.html — matches the
       live production markup: breadcrumbs, content body, the
       "Have Questions" sidebar CTA, pricing tables, author block)
   ════════════════════════════════════════════════════════════ */
.tbd-page .top-separator { display: none; }
.tbd-page .article-page { background: var(--cms-cream); }
.tbd-page .article-page .columns { align-items: flex-start; }

.tbd-page .breadcrumbs { color: var(--cms-dark-gray); font-size: 1rem; user-select: none; margin-bottom: 1.25rem; }
.tbd-page .breadcrumbs a { color: var(--cms-dark-gray); text-decoration: none; }
.tbd-page .breadcrumbs a:hover { color: var(--cms-navy); text-decoration: underline; }

.tbd-page .featured-image { float: left; margin: 0 2rem 1rem 0; max-width: 320px; }
.tbd-page .featured-image img { width: 100%; height: auto; display: block; }
.tbd-page .featured-image .caption { font-size: 0.85rem; color: var(--cms-dark-gray); margin-top: 0.4rem; }
.tbd-page .content h2.feature { font-size: 1.25rem; color: var(--cms-navy); font-family: var(--cms-sans); margin-bottom: 1rem; }

/* "Have Questions" call-to-action (used in right sidebar + footer CTA blocks) */
.tbd-page .have-questions { background-color: var(--cms-gold); padding: 2.5rem; border-radius: 6px; overflow: hidden; }
.tbd-page .have-questions .info { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
.tbd-page .have-questions .info p { color: var(--cms-navy); }
.tbd-page .have-questions .info h2 { font-family: var(--cms-serif); font-size: 2.75rem; font-weight: 700; line-height: 1.05; text-transform: uppercase; color: var(--cms-navy); margin-bottom: 0.75rem; }
.tbd-page .have-questions .info h2 .emphasis { font-size: 2.25rem; font-style: italic; font-weight: 400; text-transform: capitalize; }
.tbd-page .have-questions .cta-buttons { display: flex; flex-direction: column; gap: 1.25rem; margin-top: 1.5rem; }
.tbd-page .have-questions .cta-box { border-left: 3px solid var(--cms-red); padding-left: 1rem; }
.tbd-page .have-questions .cta-box strong { display: block; color: var(--cms-navy); font-size: 1.1rem; }
.tbd-page .have-questions .cta-box span { font-size: 0.9rem; color: #333; }

.tbd-page .sidebar-cta .have-questions { padding: 2rem 1.5rem; }
.tbd-page .sidebar-cta .have-questions .info h2 { font-size: 2rem; line-height: 1; margin-bottom: 0; }
.tbd-page .sidebar-cta .have-questions .info h2 .emphasis { font-size: 2rem; }
.tbd-page .questions-container { width: 100%; }
/* File-based custom redesign pages (template "pages/*") carry their own CTAs,
   so suppress the footer "Have Questions?" block on them. */
.tbd-page.is-custom-page footer .questions-container { display: none; }
.tbd-page .footer-cta { padding: 0; }
.tbd-page .footer-cta .have-questions { margin-top: 0; border-radius: 0; }
.tbd-page .depo-brand-style-gold .breadcrumbs a:hover { color: var(--cms-gold-dark); }

/* Site footer — existing CMS footer content (link groups + copyright + CTA)
   rendered in the redesign's dark navy chrome (ported from theme.sass). */
.tbd-page footer { background: none; }
.tbd-page .footer-main { background-color: var(--cms-navy); color: #fff; padding: 4rem 1.5rem; font-size: 0.9rem; }
.tbd-page .footer-main .columns { gap: 1.5rem 0; align-items: flex-start; }
.tbd-page .footer-main .logo { display: block; background-color: var(--cms-cream); padding: 0.75rem; border-radius: 1rem; max-width: 140px; }
.tbd-page .footer-main h4 { color: #fff; text-transform: capitalize; margin-bottom: 1.25rem; font-size: 1rem; font-weight: 700; font-family: var(--cms-sans); }
.tbd-page .footer-main ul { list-style: none; margin: 0; padding: 0; }
.tbd-page .footer-main ul li { margin-bottom: 0.8rem; }
.tbd-page .footer-main ul li a { color: #ccc; text-decoration: none; transition: color 0.2s; }
.tbd-page .footer-main ul li a:hover { color: var(--cms-gold); text-decoration: none; }
.tbd-page .footer-main .copyright { border-top: 1px solid rgba(255,255,255,0.1); margin-top: 3rem; padding-top: 1.5rem; font-size: 0.8rem; color: #889db8; text-align: center; }
.tbd-page .footer-main .copyright p { color: #889db8; }

/* About-the-author block */
.tbd-page .notification.is-light { background: var(--light-gray); color: var(--cms-navy); }
.tbd-page .media { display: flex; gap: 1rem; align-items: flex-start; }
.tbd-page .media-left { flex-shrink: 0; }
.tbd-page .media-content { flex: 1; min-width: 0; }
.tbd-page .image.is-64x64 { width: 64px; height: 64px; }
.tbd-page .image.is-64x64 img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }

/* Tables (pricing / fee schedules) */
.tbd-page .table { width: 100%; border-collapse: collapse; background: var(--white); margin: 1rem 0; }
.tbd-page .table th,
.tbd-page .table td { padding: 0.75rem 1rem; text-align: left; }
.tbd-page .table thead th { background: var(--cms-navy); color: var(--white); font-family: var(--cms-sans); font-weight: 700; }
.tbd-page .table.simple tbody tr:nth-child(even) { background: var(--cms-cream); }
.tbd-page .table.with-border th,
.tbd-page .table.with-border td { border: 1px solid var(--cms-light-gray); }
@media screen and (max-width: 768px) {
  .tbd-page .table { display: block; overflow-x: auto; white-space: nowrap; }
  .tbd-page .featured-image { float: none; margin: 0 0 1rem; max-width: 100%; }
  .tbd-page .have-questions { padding: 1.5rem; }
}

/* ════════════════════════════════════════════════════════════
   9c. PRODUCT PAGES  (site/product.html — image viewer, details,
       spec tabs, "Where to Buy" modal with retailer radios)
   ════════════════════════════════════════════════════════════ */
.tbd-page .product-section .columns { gap: 2.5rem; }
.tbd-page .keyvalue { font-weight: 700; color: var(--cms-navy); margin: 0.25rem 0; }
.tbd-page .keyvalue span { font-style: italic; font-weight: 500; color: var(--cms-dark-gray); }
.tbd-page .keyvalue span::after { content: ":"; padding-right: 0.5rem; }

.tbd-page .product-details { display: flex; flex-direction: column; align-items: stretch; gap: 0.75rem; }
.tbd-page .product-details .product-title { padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: dashed 1px var(--cms-dark-gray); }
.tbd-page .product-details .product-title h3 { font-size: 2rem; font-weight: 600; line-height: 1.15; font-family: var(--cms-sans); color: var(--cms-navy); }
.tbd-page .product-details .category { font-size: 1rem; color: var(--cms-dark-gray); line-height: 1.2; letter-spacing: 0.16px; }
.tbd-page .product-details .price { display: flex; justify-content: flex-start; gap: 1rem; align-items: baseline; }
.tbd-page .product-details .price .orig { font-size: 1.1rem; text-decoration: line-through; color: var(--cms-dark-gray); }
.tbd-page .product-details .price .sale { font-size: 1.4rem; font-weight: 700; color: var(--cms-navy); }
.tbd-page .product-details h4 { font-size: 1.5rem; font-family: var(--cms-sans); color: var(--cms-navy); }
.tbd-page .product-details p { line-height: 1.4; color: var(--cms-navy); }
.tbd-page .product-details .button { font-size: 1.25rem; align-self: flex-start; margin: 1.5rem 0; }
.tbd-page figure.facet { width: 75px; height: 40px; background-color: var(--cms-cream); border-radius: 5px; border: solid 1px var(--cms-dark-gray); padding: 5px; margin: 0; }
.tbd-page figure.facet div { width: 100%; height: 100%; display: block; background-color: var(--cms-dark-gray); border-radius: 2px; }
.tbd-page figure.facet.gold div { background-color: var(--cms-gold); }
.tbd-page figure.facet.silver div { background-color: #757575; }

.tbd-page .image-viewer .main-image-wrapper { width: 100%; overflow: hidden; margin-bottom: 1rem; border-radius: 4px; border: 1px solid #eee; display: flex; justify-content: center; align-items: center; }
.tbd-page .image-viewer .main-image-wrapper img { max-width: 100%; height: auto; object-fit: contain; }
.tbd-page .thumbnails-container { display: flex; flex-wrap: wrap; gap: 10px; }
.tbd-page .thumbnail-item { width: 80px; height: 80px; border: 2px solid transparent; border-radius: 4px; cursor: pointer; overflow: hidden; transition: all 0.2s ease; }
.tbd-page .thumbnail-item img { width: 100%; height: 100%; object-fit: cover; }
.tbd-page .thumbnail-item:hover { border-color: var(--cms-gold-dark); opacity: 0.85; }

/* Spec tabs */
.tbd-page .tabs { margin-bottom: 1.5rem; }
.tbd-page .tabs ul { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--cms-light-gray); }
.tbd-page .tabs.is-centered ul { justify-content: center; }
.tbd-page .tabs li { cursor: pointer; padding-bottom: 0.5rem; }
.tbd-page .tabs li a { font-size: 1.25rem; font-weight: 700; color: var(--cms-navy); text-decoration: none; }
.tbd-page .tabs li.is-active { border-bottom: solid 3px var(--cms-red); }

/* "Where to Buy" modal + retailer radios */
.tbd-page .cta-reveal::after { content: "\00bb"; margin-left: 0.5em; }
.tbd-page .modal { display: none; position: fixed; inset: 0; z-index: 1000; align-items: center; justify-content: center; padding: 1rem; }
.tbd-page .modal.is-active { display: flex; }
.tbd-page .modal-background { position: absolute; inset: 0; background: rgba(6,21,33,0.78); }
.tbd-page .modal-card { position: relative; z-index: 1; width: 100%; max-width: 540px; background: var(--white); border-radius: 8px; overflow: hidden; text-align: center; }
.tbd-page .modal-card-head { position: relative; padding: 1.25rem 1.5rem 0; }
.tbd-page .modal-card-title { color: #757575; font-size: 0.875rem; font-weight: 700; text-transform: capitalize; }
.tbd-page .modal-card-head .close { position: absolute; top: 0.5rem; right: 1rem; background: none; border: none; cursor: pointer; font-size: 2rem; line-height: 1; color: var(--cms-navy); }
.tbd-page .modal-card-head .close::before { content: "\2A2F"; }
.tbd-page .modal-card-body { padding: 1.5rem; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.tbd-page .modal-card-body h2 { font-size: 1.5rem; font-family: var(--cms-sans); color: var(--cms-navy); }
.tbd-page .modal-card-body p { font-size: 1rem; color: var(--cms-navy); }
.tbd-page .options-view { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; width: 100%; }
.tbd-page .input-radio { display: flex; align-items: center; border-radius: 4px; border: solid 2px var(--cms-light-gray); padding: 1rem 1.25rem; gap: 1rem; cursor: pointer; }
.tbd-page .input-radio img { height: 32px; width: auto; }
.tbd-page .input-radio.is-active { border-color: var(--cms-gold); }
.tbd-page .stores.buttons { display: flex; padding-top: 1.5rem; gap: 1rem; width: 100%; }
.tbd-page .stores.buttons > div { flex: 1; }
.tbd-page .stores.buttons .button { width: 100%; }
.tbd-page .buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.tbd-page .button[disabled] { opacity: 0.5; pointer-events: none; cursor: not-allowed; }
.tbd-page .products .coins-section { background: none; }

/* ════════════════════════════════════════════════════════════
   9d. FORMS + CONTACT  (site/pages/contact.html)
   ════════════════════════════════════════════════════════════ */
.tbd-page .field { margin-bottom: 1rem; position: relative; }
.tbd-page .label { display: block; font-family: var(--cms-sans); font-weight: 600; color: var(--cms-navy); margin-bottom: 0.4rem; }
.tbd-page .field .required { color: var(--cms-red); margin-left: 0.15rem; }
.tbd-page .input,
.tbd-page .textarea,
.tbd-page select { width: 100%; font-family: var(--cms-sans); font-size: 1rem; color: var(--cms-navy); background: var(--white); border: 1px solid var(--cms-light-gray); border-radius: 4px; padding: 0.65rem 0.85rem; line-height: 1.4; }
.tbd-page .textarea { min-height: 8rem; resize: vertical; }
.tbd-page .input:focus,
.tbd-page .textarea:focus,
.tbd-page select:focus { outline: none; border-color: var(--cms-gold); box-shadow: 0 0 0 2px rgba(219,199,96,0.25); }
.tbd-page .control { margin-top: 0.5rem; }
.tbd-page .help { font-size: 0.85rem; margin-top: 0.25rem; }
.tbd-page .help.is-danger, .tbd-page .error-login { color: #cc0f35; }

.tbd-page .contact-us .backdrop-security { border-radius: 4px; min-height: 480px; display: flex; justify-content: center; align-items: center; overflow: hidden; }
.tbd-page .contact-us .backdrop-security img { min-width: 100%; object-fit: cover; }
.tbd-page .contact-form .notification { border-radius: 12px; }
.tbd-page .notification.is-white { background: var(--white); border: 1px solid var(--cms-light-gray); }
.tbd-page .notification.is-success { background: #effaf3; color: #257942; }
.tbd-page .hide { display: none; }
.tbd-page .have-questions.contacts { width: 100%; padding: 1.5rem; }
.tbd-page .tile.is-vertical { flex-direction: column; }

/* Misc real-markup classes */
.tbd-page .no-disc { list-style: none; margin-left: 0; }
.tbd-page .depo-brand-style { width: 100%; }

/* ════════════════════════════════════════════════════════════
   10. HELPERS  (visibility + text + misc)
   ════════════════════════════════════════════════════════════ */
.tbd-page .has-text-centered { text-align: center; }
.tbd-page .has-text-left { text-align: left; }
.tbd-page .has-text-right { text-align: right; }
.tbd-page .has-text-primary { color: var(--cms-navy); }
.tbd-page .has-text-link { color: var(--cms-gold-dark); }
.tbd-page .has-text-black { color: var(--black); }
.tbd-page .has-text-white { color: var(--white); }
.tbd-page .nowrap { white-space: nowrap; }
.tbd-page .mt-4 { margin-top: 1rem; }
.tbd-page .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media screen and (min-width: 1024px) {
  .tbd-page .is-hidden-desktop { display: none !important; }
}
@media screen and (max-width: 1023px) {
  .tbd-page .is-hidden-touch { display: none !important; }
}
@media screen and (max-width: 768px) {
  .tbd-page .is-hidden-mobile { display: none !important; }
  .tbd-page .section-title { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
  .tbd-page .section-title h2 { font-size: 2rem; }
  .tbd-page .section-title h2 .kicker { font-size: 2rem; }
  .tbd-page section { padding: 1.5rem 1rem; }
}
