/* Keep a table's intrinsic width inside its own region, never the page grid. */
.breakdance .lfcp-root .pricingTables > *,
.breakdance .lfcp-root :is(.tableWrap, .oxy-shortcode):has(table) {
  min-width: 0;
  max-width: 100%;
}
.breakdance .lfcp-root .lfc-core-table-wrap,
#oxy-main .lfc-table-scroll {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
#oxy-main :is(.lfc-core-table-wrap, .lfc-table-scroll):focus-visible {
  outline: 3px solid #0b70b7;
  outline-offset: 3px;
}
#oxy-main .lfc-table-scroll-hint {
  margin: 0 0 10px;
  color: #52677f;
  font-size: 13px;
}
#oxy-main .lfc-table-label { display: none; }
/* Match existing desktop body cells after making the first column a true row heading. */
.breakdance .lfcp-root .lfc-table--stack tbody th {
  text-align: left;
  text-transform: none;
  letter-spacing: normal;
  font-size: inherit;
  background: transparent;
  color: inherit;
}
@media (max-width: 700px) {
  .breakdance .lfcp-root .lfc-table--stack {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    border: 0;
    background: transparent;
  }
  /* Keep column headers available to assistive technology, with explicit table roles. */
  .breakdance .lfcp-root .lfc-table--stack thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .breakdance .lfcp-root .lfc-table--stack tbody {
    display: grid;
    gap: 16px;
    width: 100%;
  }
  .breakdance .lfcp-root .lfc-table--stack tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    min-width: 0;
    background: #fff;
    border: 1px solid var(--line, #d1deeb);
  }
  .breakdance .lfcp-root .lfc-table--stack tbody :is(th, td) {
    display: block;
    width: auto;
    min-width: 0;
    max-width: none;
    padding: 12px 16px;
    border: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: left;
    font-size: 15px;
    line-height: 1.5;
  }
  .breakdance .lfcp-root .lfc-table--stack tbody th {
    grid-column: 1 / -1;
    background: var(--navy, #071b37);
    color: #fff;
    font-size: 17px;
    font-weight: 700;
  }
  .breakdance .lfcp-root .lfc-table--stack tbody td + td { border-top: 1px solid var(--line, #d1deeb); }
  #oxy-main .lfc-table--stack .lfc-table-label {
    display: block;
    margin-bottom: 4px;
    color: var(--muted, #52677f);
    font-size: 11px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
  }
  #oxy-main .lfc-table--stack .lfc-table-value { display: block; }
  .breakdance .lfcp-root .lfc-table--months tbody tr { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .breakdance .lfcp-root .lfc-table--months tbody td {
    border-top: 1px solid var(--line, #d1deeb);
    padding: 12px;
  }
  .breakdance .lfcp-root .lfc-table--months tbody td:not(:nth-child(3n + 2)) { border-left: 1px solid var(--line, #d1deeb); }
  .breakdance .lfcp-root .pricingTables > div { padding: 20px; }
}
/* The surrounding Oxygen grids must also be allowed to shrink around their content. */
#oxy-main :is(.oxy-container, .lfcp-post-content, .oxy-rich-text, .wp-block-table):has(table),
.breakdance .lfcp-root :is(.fleetDetail, .fleetDetail > *, .lfc-course-package, .lfc-course-package > *) {
  min-width: 0;
  max-width: 100%;
}
.breakdance .lfcp-root .lfc-course-package { overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .breakdance .lfcp-root :is(.fleetDetail, .allCoursePrices, .lfc-course-package) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .breakdance .lfcp-root .footerGrid { grid-template-columns: minmax(0, 1fr); }
  .breakdance .lfcp-root .footerGrid > * { min-width: 0; overflow-wrap: anywhere; }
}
@media (max-width: 700px) {
  .breakdance .lfcp-root .lfc-course-package strong { white-space: normal; }
  .breakdance .lfcp-root .lfc-detail-list { display: grid; grid-template-columns: minmax(0, 1fr); }
  .breakdance .lfcp-root .lfc-detail-list > div { min-width: 0; border-right: 0; border-bottom: 1px solid var(--line, #d1deeb); }
  .breakdance .lfcp-root .lfc-detail-list > div:last-child { border-bottom: 0; }
  .breakdance .lfcp-root :is(.contactGrid > *, .contactCards > *, .memberResourceGrid > *) { min-width: 0; overflow-wrap: anywhere; }
  .breakdance .lfcp-root .contactGrid { grid-template-columns: minmax(0, 1fr); }
  .breakdance .lfcp-root .memberResourceGrid a { min-width: 0; overflow-wrap: anywhere; }
}
.breakdance .lfcp-root .resourceSuggestion { overflow-wrap: anywhere; }
.breakdance .lfcp-root .privacyLayout > * { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .breakdance .lfcp-root .privacyLayout { grid-template-columns: minmax(0, 1fr); }
  .breakdance .lfcp-root .lfc-privacy-table--stack { min-width: 0; width: 100%; }
  .breakdance .lfcp-root .lfc-privacy-table--stack > :first-child {
    position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%);
  }
  .breakdance .lfcp-root .lfc-privacy-table--stack > :last-child { display: grid; gap: 16px; }
  .breakdance .lfcp-root .lfc-privacy-table--stack > :last-child > * { display: grid; grid-template-columns: minmax(0, 1fr); border: 1px solid var(--line, #d1deeb); }
  .breakdance .lfcp-root .lfc-privacy-table--stack [role=cell] { display: block; min-width: 0; padding: 16px; background: #fff; }
  .breakdance .lfcp-root .lfc-privacy-table--stack [role=cell] + [role=cell] { border-top: 1px solid var(--line, #d1deeb); }
  #oxy-main .lfc-privacy-table--stack .lfc-table-label { display: block; color: var(--blue, #1169ad); text-transform: uppercase; font-size: 11px; font-weight: 700; letter-spacing: .07em; margin-bottom: 6px; }
}
