/* SAS Blocks — Frontend Style v2.6.1 (restored) */

.sas-block { margin-bottom: 1.5rem; }
.sas-block:last-child { margin-bottom: 0; }
.sas-block__title { margin-top: 0; margin-bottom: .6rem; line-height: 1.25; }

@media (max-width: 767px) {
    .sas-block__title { margin-bottom: 0.9rem; }

    .sas-block .btn,
    .sas-block__content .btn {
        margin-top:    1.25rem;
        margin-bottom: 1.25rem;
        padding:       .65em 1.75em;
        min-height:    44px; /* accessible tap target */
    }
}

/* Larger */
.sas-block--larger .sas-block__title  { font-size: clamp(1.6rem,4vw,2.4rem); font-weight: 700; }
.sas-block--larger .sas-block__content { font-size: clamp(1rem,2vw,1.15rem); line-height: 1.7; }

/* Regular */
.sas-block--regular .sas-block__title { font-size: clamp(1.1rem,2.5vw,1.5rem); font-weight: 600; }

/* Feature */
.sas-block--feature .sas-block__title { font-size: clamp(1.2rem,3vw,1.75rem); font-weight: 700; }

/* Disclaimer */
.sas-block--disclaimer .sas-block__title {
    font-size: .875rem; font-weight: 700; margin-bottom: .35rem;
    text-transform: uppercase; letter-spacing: .04em;
}
.sas-block--disclaimer .sas-block__content { font-size: .8rem; color: #64748b; line-height: 1.65; }

/* Mini Menu — same typography as Regular */
.sas-block--minimenu .sas-block__title { font-size: clamp(1.1rem,2.5vw,1.5rem); font-weight: 600; }

/* Mini Menu Nav */
.sas-mini-menu {
    list-style: none;
    margin: 1rem 0 0 0;
    padding: 0;
}

@media (max-width: 767px) {
    .sas-mini-menu { margin-top: 2.25rem; }
}
.sas-mini-menu li {
    margin: 0;
    padding: 0;
}
.sas-mini-menu > li > a {
    display: block;
    padding: .5rem 0;
    color: #1e3a5f;
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid #e5edf3;
}
.sas-mini-menu > li:last-child > a {
    border-bottom: none;
}
.sas-mini-menu > li > a:hover {
    color: #2563eb;
}
/* Sub-menu */
.sas-mini-menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0 0 0 1rem;
}
.sas-mini-menu .sub-menu a {
    display: block;
    padding: .35rem 0;
    color: #475569;
    text-decoration: none;
    font-size: .9em;
}
.sas-mini-menu .sub-menu a:hover {
    color: #2563eb;
}

/* Bootstrap spacing utilities are used on the wrapper (.mb-*, .pt-*, .pb-*) */

/* Auto-gap: button following another inline button gets standard left margin */
.btn + .btn { margin-left: .5rem; }

/* Buttons that wrap to a new line get breathing room below */
.btn { margin-bottom: .4rem; }

/* Below: start a new line, stay compact, reset sibling indent.
   Two-class selector (.btn.sas-btn--below) beats Bootstrap's .btn specificity. */
.btn.sas-btn--below {
    margin-top:  .5rem;
    margin-left: 0 !important;
    margin-bottom: 1em;
}
.btn.sas-btn--below + .btn {
    margin-left: 0;
}

/* Highlights — fallback colors (theme overrides layer on top).
   Fixed: previous version had a dangling selector list that gave
   .sas-hl--infobox the warm yellow fallback by accident. */
.sas-hl--warm     { background: #fef9e7; border-left-color: #f59e0b; }
.sas-hl--call-out { background: #eff6ff; border-left-color: #3b82f6; }
.sas-hl--sidebar  { background: #f2f8ff; border-left-color: #94a3b8; color: #64748b; }

/* ── Image layouts ────────────────────────────────────────────── */
.sas-block__img { margin: 0; }
.sas-block__img img { display: block; max-width: 100%; height: auto; }
.sas-block__img--above-title { margin-bottom: 1rem; }
.sas-block__img--below-title { margin-top: 1rem; margin-bottom: 1rem; }

@media (max-width: 767px) {
    .sas-block__img--above-title { margin-bottom: 2rem; }
    .sas-block__img--below-title { margin-top: 2rem; margin-bottom: 2rem; }
}

/* Float-based left/right alignment — image aligns to content, text wraps under */
.sas-block__img--left-content {
    float: left;
    width: 38%;
    max-width: 300px;
    margin-right: 1.5rem;
    margin-bottom: 1rem;
}
.sas-block__img--right-content {
    float: right;
    width: 38%;
    max-width: 300px;
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}

/* Clearfix for blocks with floated images */
.sas-block::after {
    content: "";
    display: table;
    clear: both;
}

@media (max-width: 767px) {
    .sas-block__img--left-content,
    .sas-block__img--right-content {
        float: none;
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 1rem;
    }
}

/* ── SAS Hero Block — Frontend ───────────────────────────────── */
.sas-hero {
    width:       100vw;
    position:    relative;
    left:        50%;
    margin-left: -50vw;
    box-sizing:  border-box;
}
.sas-hero__inner {
    max-width:    1150px;
    margin-left:  auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
}
.sas-hero__text-wrap {
    /* Text background default is set inline by PHP */
    display: inline-block;
}
.sas-hero__title {
    margin-top:    0;
    margin-bottom: .5rem;
    font-size:     clamp(1.75rem,4vw,3rem);
    font-weight:   700;
    line-height:   1.2;
}
.sas-hero__sub {
  font-size:   var(--sas-regular-content-size);
  line-height: var(--sas-regular-content-lh);
    margin-bottom: 1.5rem;
}

.text-white .sas-hero__sub {
  color: white;
}

@media (max-width: 767px) {
    .sas-hero .sas-hero__cta {
        display: inline-block;
        margin-right: auto;
    }
}
.sas-hero__cta { display: inline-block; }

/* ── BCB Column Fixes ────────────────────────────────────────── */
/* Center images in BCB columns — text-align lives on the figure
   (parent); the inline-block img centers via the parent */
.wp-block-bcb-column .wp-block-image {
    text-align: center;
}
.wp-block-bcb-column .wp-block-image img {
    display: inline-block;
}

/* ======================================================
   SAS CTA BLOCK — frontend styles
   Override these variables in your theme's style.css
====================================================== */
:root {
  --sas-cta-accent:        #b91c1c;
  --sas-cta-bg:            #fef2f2;
  --sas-cta-border:        #fca5a5;
  --sas-cta-title-color:   #991b1b;
  --sas-cta-body-color:    #1f2937;
  --sas-cta-btn-bg:        #b91c1c;
  --sas-cta-btn-hover:     #991b1b;
  --sas-cta-btn-color:     #ffffff;
  --sas-cta-padding-x:     2rem;
  --sas-cta-padding-y:     2rem;
  --sas-cta-radius:        6px;
  --sas-cta-img-radius:    4px;
  --sas-cta-img-max-width: 100%;
}

.sas-block--cta {
  background-color: var(--sas-cta-bg);
  border-left: 4px solid var(--sas-cta-accent);
  padding: var(--sas-cta-padding-y) var(--sas-cta-padding-x);
  border-radius: var(--sas-cta-radius);
}

.sas-block--cta .sas-block__title {
  color: var(--sas-cta-title-color);
  margin-bottom: 0.75rem;
}

.sas-block--cta .sas-block__content,
.sas-block--cta .sas-block__content--1,
.sas-block--cta .sas-block__content--2 {
  color: var(--sas-cta-body-color);
}

.sas-block--cta .sas-block__content--2 {
  margin-top: 1rem;
}

.sas-block__img--cta {
  margin: 1rem 0;
}

.sas-block__img--cta img {
  max-width: var(--sas-cta-img-max-width);
  height: auto;
  border-radius: var(--sas-cta-img-radius);
  display: block;
}

.sas-block__cta-wrap {
  margin-top: 1.25rem;
}

.sas-cta-btn {
  display: inline-block;
  background-color: var(--sas-cta-btn-bg);
  color: var(--sas-cta-btn-color);
  border: 2px solid var(--sas-cta-btn-bg);
  border-radius: 4px;
  padding: 0.5rem 1.5rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease;
}

.sas-cta-btn:hover {
  background-color: var(--sas-cta-btn-hover);
  border-color: var(--sas-cta-btn-hover);
  color: var(--sas-cta-btn-color);
  text-decoration: none;
}

/* ── Lists inside sas-block__content ──────────────────────────────── */
.sas-block__content ul li {
  position:    relative;
  padding:     var(--sas-list-item-padding);
  border-bottom: 1px solid var(--sas-list-divider);
  line-height: 1.6;
}

.sas-block__content ul li:last-child {
  border-bottom: none;
}

.sas-hl--warm .sas-block__content ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sas-hl-warm-list-bullet-color);
}

@media (max-width: 767px) {
  .sas-block__content ul li {
    padding-top:    0.15em;
    padding-bottom: 0.85em;
    font-size:      0.95rem;
  }
}

/* ── Tables inside sas-block__content ─────────────────────────────── */
:root {
  --sas-table-header-bg:    #1a6eb1;
  --sas-table-header-text:  #ffffff;
  --sas-table-stripe:       #f0f7ff;
  --sas-table-border:       #dceaf5;
  --sas-table-hover:        #e4f0fb;
}

.sas-block__content table {
  width:           100%;
  border-collapse: collapse;
  font-size:       0.9rem;
  border:          1px solid var(--sas-table-border);
  border-radius:   6px;
  overflow:        hidden;
}

.sas-block__content table th {
  background:    var(--sas-table-header-bg);
  color:         var(--sas-table-header-text);
  text-align:    left;
  padding:       0.65em 1em;
  font-weight:   600;
  font-size:     0.85rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space:   nowrap;
}

.sas-block__content table td {
  padding:        0.6em 1em;
  border-bottom:  1px solid var(--sas-table-border);
  vertical-align: middle;
}

.sas-block__content table tr:last-child td {
  border-bottom: none;
}

.sas-block__content table tbody tr:nth-child(even) td {
  background: var(--sas-table-stripe);
}

.sas-block__content table tbody tr:hover td {
  background: var(--sas-table-hover);
}

/* Mobile: horizontal scroll so table never breaks layout */
@media (max-width: 767px) {
  .sas-block__content table {
    display:                  block;
    overflow-x:               auto;
    -webkit-overflow-scrolling: touch;
    font-size:                0.85rem;
  }

  .sas-block__content table th,
  .sas-block__content table td {
    padding: 0.6em 0.75em;
    white-space: nowrap;
  }
}

/* ── Ninja Forms — consistent with table/list styles ──────────────── */
.nf-form-cont {
  font-size: 0.9rem;
}

/* "Fields marked with an * are required" */
.nf-form-fields-required {
  font-size:     0.8rem;
  color:         #64748b;
  margin-bottom: 1.25rem;
}
.ninja-forms-req-symbol {
  color: #f7941d;
  font-weight: 700;
}

/* Field containers */
.nf-field-container {
  margin-bottom: 1.1rem;
}

/* Labels */
.nf-field-label label {
  display:       block;
  font-size:     0.82rem;
  font-weight:   600;
  color:         #1a2e4a;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
}
.nf-field-label label .ninja-forms-req-symbol {
  margin-left: 2px;
}

/* Inputs + textarea */
.nf-field-element input.ninja-forms-field,
.nf-field-element input.nf-element,
.nf-field-element textarea.ninja-forms-field,
.nf-field-element textarea.nf-element {
  width:         100%;
  padding:       0.55em 0.85em;
  font-size:     0.9rem;
  color:         #1a2e4a;
  background:    #f8fbff;
  border:        1px solid var(--sas-table-border, #dceaf5);
  border-radius: 4px;
  box-sizing:    border-box;
  transition:    border-color 150ms ease, box-shadow 150ms ease;
  -webkit-appearance: none;
}

.nf-field-element input.ninja-forms-field:focus,
.nf-field-element input.nf-element:focus,
.nf-field-element textarea.ninja-forms-field:focus,
.nf-field-element textarea.nf-element:focus {
  outline:      none;
  border-color: #1a6eb1;
  box-shadow:   0 0 0 3px rgba(26, 110, 177, 0.12);
  background:   #fff;
}

.nf-field-element textarea.ninja-forms-field,
.nf-field-element textarea.nf-element {
  min-height: 110px;
  resize:     vertical;
  line-height: 1.55;
}

/* Submit button */
.submit-wrap input[type="button"],
.submit-wrap input[type="submit"],
.submit-wrap button {
  background-color: #f7941d;
  color:            #ffffff;
  border:           none;
  border-radius:    4px;
  padding:          0.6em 2em;
  font-size:        0.9rem;
  font-weight:      600;
  letter-spacing:   0.04em;
  text-transform:   uppercase;
  cursor:           pointer;
  transition:       background-color 150ms ease;
  min-height:       44px;
}
.submit-wrap input[type="button"]:hover,
.submit-wrap input[type="submit"]:hover,
.submit-wrap button:hover {
  background-color: #d97d10;
}

/* Error messages */
.nf-error .ninja-forms-field {
  border-color: #dc2626 !important;
}
.nf-error-msg {
  font-size:  0.78rem;
  color:      #dc2626;
  margin-top: 0.3rem;
}

/* Mobile adjustments */
@media (max-width: 767px) {
  .nf-field-container          { margin-bottom: 1.35rem; }
  .nf-field-element input.ninja-forms-field,
  .nf-field-element input.nf-element,
  .nf-field-element textarea.ninja-forms-field,
  .nf-field-element textarea.nf-element { font-size: 1rem; padding: 0.65em 0.9em; }
  .submit-wrap input[type="button"],
  .submit-wrap input[type="submit"],
  .submit-wrap button          { width: 100%; padding: 0.75em 1em; font-size: 1rem; }
}