
/* =======================================
   TYPOGRAPHY STYLES
   Type scales, font weights, spacing, and resets
   ======================================= */

   /* ------------------------------ Typography Resets ------------------------------ */
  .et_pb_module p,
  .et_pb_module h1,
  .et_pb_module h2,
  .et_pb_module h3,
  .et_pb_module h4,
  .et_pb_module h5,
  .et_pb_module h6,
  .et_pb_module ul,
  .et_pb_module ol,
  .et_pb_module li,
  .et_pb_module blockquote {
    margin: 0;
    padding: 0;
  }

   /* ------------------------------ Utilities ------------------------------ */
 h3 + p, 
 h3 + h5, 
 h6 + h2, 
 h2 + p, 
 h5 + p, 
 h3 + div {
    margin-top: 1rem !important;
  }

/* ------------------------------ Font Size Utilities ------------------------------ */
.fs-xs, .fs-xs p { font-size: var(--font-size-xs) !important; }
.fs-sm, .fs-sm p { font-size: var(--font-size-sm) !important; }
.fs-base, .fs-base p { font-size: var(--font-size-base) !important; }
.fs-md, .fs-md p { font-size: var(--font-size-md) !important; }
.fs-lg { font-size: var(--font-size-lg) !important; }
.fs-xl, .fs-xl p { font-size: var(--font-size-xl) !important; }
.fs-xxl, .fs-xxl p { font-size: var(--font-size-xxl) !important; }
.fs-xxxl, .fs-xxxl p { font-size: var(--font-size-xxxl) !important; }

.fs-h1 { font-size: var(--font-size-xxxl); line-height: var(--line-height-tight); }
.fs-h2 { font-size: var(--font-size-xxl);  line-height: var(--line-height-tight); }
.fs-h3 { font-size: var(--font-size-xl);   line-height: var(--line-height-tight); }
.fs-h4 { font-size: var(--font-size-lg);   line-height: var(--line-height-normal); }
.fs-h5 { font-size: var(--font-size-md);   line-height: var(--line-height-normal); }
.fs-h6 { font-size: var(--font-size-base); line-height: var(--line-height-normal); }

/* ------------------------------ Font Weight Utilities ------------------------------ */
.fw-light { font-weight: 300; }
.fw-regular { font-weight: 400; }
.fw-medium { font-weight: 500; }
.fw-semibold { font-weight: 600; }
.fw-bold { font-weight: 700; }

/* ------------------------------ Line Height Utilities ------------------------------ */
.lh-tight { line-height: var(--line-height-tight); }
.lh-normal { line-height: var(--line-height-normal); }
.lh-loose { line-height: var(--line-height-loose); }

/* ------------------------------ Alignment Styles ------------------------------ */
.ta-left { text-align: left !important; }
.ta-center { text-align: center !important; }
.ta-right { text-align: right !important; }

/* ------------------------------ Typography Styles ------------------------------ */
body:not(.et-fb) {
  font-family: var(--font-primary);
  color: var(--color-text);
}

/* ------------------------------ Heading Styles ------------------------------ */
body:not(.et-fb) h1 { font-size: var(--font-size-xxxl); line-height: var(--line-height-tight); margin-bottom: 0.5em; }
body:not(.et-fb) h2 { font-size: var(--font-size-xxl); line-height: var(--line-height-tight); margin-bottom: 0.5em; }
body:not(.et-fb) h3 { font-size: var(--font-size-xl); line-height: var(--line-height-tight); margin-bottom: 0.5em; }
body:not(.et-fb) h4 { font-size: var(--font-size-lg); line-height: var(--line-height-normal); margin-bottom: 0.5em; }
body:not(.et-fb) h5 { font-size: var(--font-size-md); line-height: var(--line-height-normal); margin-bottom: 0.5em; }
body:not(.et-fb) h6 { font-size: var(--font-size-base); line-height: var(--line-height-normal); margin-bottom: 0.5em; }



/* ------------------------------ Paragraph Styles ------------------------------ */
p, ul li, ol li {
  font-size: var(--font-size-base) !important;
  margin-bottom: calc(var(--spacing-sm) + var(--spacing-xs)) !important;
}

p:last-of-type { margin-bottom: 1rem; }
p + ol, p + ul { margin-top: -0.5rem; }

.small, .small p {
    font-size: var(--font-size-xs) !important;
    text-align: center;
    line-height: var(--line-height-normal);
  }
  .left-indent {
    padding-left: 1rem !important;
    text-align: left !important;
  }
 @media (max-width: 768px) {
  p, ul li, ol li {
    line-height: var(--line-height-normal);
  }
  .footer-left {
    margin: 1rem 0;
  }
  .footer-right {
    margin-top: 1rem;
  }
 }
  

/* ------------------------------ List Styles ------------------------------ */
/* --- Default Global List Style --- */
ul.styled, ol.styled,
.support ul, .support ol,
.et_pb_text ul, .et_pb_text ol,
.et_pb_toggle_content ul, .et_pb_toggle_content ol {
  list-style-position: outside;
  list-style-type: disc;
  margin-left: 2rem;
  padding-left: 0;
}

ul.styled li, ol.styled li,
.support li,
.et_pb_text li,
.et_pb_toggle_content li {
  margin-bottom: 0.5rem;
}

body ul, body ol {
  list-style-position: outside;
  list-style-type: disc;
  margin-left: 2rem;
  padding-left: 0;
}

ol.alpha {
  list-style-type: lower-alpha;
  margin-left: 2rem;
}

ol.decimal {
  list-style-type: decimal;
  margin-left: 2rem;
}

ol.roman {
  list-style-type: lower-roman;
  margin-left: 2rem;
}
/* ------------------- Global Bold Markers ------------------- */

/* Match ol with specific list-style-type */
ol[style*="lower-alpha"] li::marker,
ol.alpha li::marker {
  font-weight: bold;
}

ol[style*="decimal"] li::marker,
ol.decimal li::marker {
  font-weight: bold;
}

ol[style*="lower-roman"] li::marker,
ol.roman li::marker {
  font-weight: bold;
}
  


  /* ------------------------------ Table Styles ------------------------------ */
table {
  width: 100%;
  border-collapse: collapse;
  margin-top: var(--spacing-lg);
  margin-bottom: var(--spacing-md);
  box-shadow: var(--box-shadow);
}

/* Headings */
th {
  background-color: var(--color-primary);
  color: white !important;
  padding: var(--spacing-sm);
  text-align: left;
}

/* Table cells */
td {
  padding: var(--spacing-sm);
  border: 1px solid var(--color-border);
  vertical-align: top;
}

/* Row striping */
tr:nth-child(even) {
  background-color: var(--color-light-grey1);
}
tr:nth-child(odd) {
  background-color: #ffffff;
}

/* Ensure consistent font size in all tables */
table,
table th,
table td,
.responsive-table td,
.responsive-table td::before {
  font-size: var(--font-size-base); /* or a fixed size like 1rem if preferred */
  line-height: var(--line-height-normal);
}


/* ------------------------------ Responsive Table Styles ------------------------------ */
@media screen and (max-width: 768px) {
  .responsive-table thead {
    display: none;
  }

  .responsive-table,
  .responsive-table tbody,
  .responsive-table tr,
  .responsive-table td {
    display: block;
    width: 100%;
  }

  .responsive-table tr {
    /* margin-bottom: 2rem; */
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--color-primary);
    background-color: #ffffff; /* Optional: removes striping artifacts */
  }

  .responsive-table td {
    padding: 1rem;
    position: relative;
    border: none;
    border-bottom: 1px solid var(--color-border);
    background-color: transparent !important; /* Ensure clean mobile view */
  }

  .responsive-table td::before {
    content: attr(data-label);
    display: block;
    font-size: var(--font-size-base);
    font-weight: bold;
    margin-bottom: 0.25rem;
    color: var(--color-midnight, #001f3f);
  }

  /* Optional: remove last border for final cell */
  .responsive-table tr:last-child td:last-child {
    border-bottom: none;
  }
}

/* ----- SUPPORT PAGE ------ */
.support {
  --support-indent: 3rem; /* Change this value to control left padding sitewide */

  padding: 3rem 0;
  border-bottom: solid black 1px;
}

.support > * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.support h6 {
  background-color: var(--color-midnight, #001f3f);
  color: white;
  padding: 0.25em 1.5em;
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1.5rem !important;
}

.support h3,
.support h4,
.support p {
  padding-left: var(--support-indent);
  padding-right: var(--support-indent);
}

.support h3,
.support h4 {
  color: var(--color-gold);
  margin-bottom: 1rem;
}

.support.dfv h4 {
  margin-top: 2rem; /* or any value that suits your layout */
}

.support p {
  margin-bottom: 0.5rem;
}

.support p:last-of-type {
  margin-bottom: 0;
}

.support ul {
  padding-left: calc(var(--support-indent) * 2);
  list-style-position: outside;
  margin-bottom: 1rem;
}

.support li {
  margin-bottom: 0.5rem;
}

.support a {
  text-decoration: none;
  color: var(--color-gold);
  font-weight: bold;
}

/* ----- MOBILE TWEAKS ----- */
@media (max-width: 767px) {
  .support h3,
  .support h4,
  .support p,
  .support ul,
  .support li {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .support ul {
    padding-left: 1.5rem; /* bump slightly for bullets */
  }
}
.support {
  padding: 2rem 0 !important;
}
.support:first-of-type {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}
.support p:last-of-type {
  margin-bottom: 0 !important;
}