/*--------------------------------------------------------------
Inner pages - shared look (matches the homepage / model concept)
Loaded after homepage-revamp.css. Everything here is scoped to
inner pages (.tb-phead siblings) or to the header, so the
homepage itself is untouched.
--------------------------------------------------------------*/

/* "clip" (unlike "hidden") does not turn the page into a scroll
   container, so the sticky mobile header below keeps working. */
html,
body {
  overflow-x: clip;
}

/*--------------------------------------------------------------
# Page head (breadcrumb + title)
--------------------------------------------------------------*/
.tb-phead {
  background: linear-gradient(180deg, #f3f7ea 0%, #fff 100%);
  border-bottom: 1px solid var(--insur-bdr-color);
  padding: clamp(20px, 4vw, 40px) 0 clamp(18px, 3vw, 30px);
}

.tb-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  font-size: 13.5px;
  color: var(--insur-gray);
}

.tb-crumbs a {
  color: var(--insur-primary);
  font-weight: 600;
}

.tb-crumbs a:hover {
  text-decoration: underline;
}

.tb-crumbs span[aria-current] {
  color: var(--insur-black);
  font-weight: 600;
}

.tb-phead__title {
  margin: 12px 0 0;
  font-family: var(--tb-font-display);
  font-size: clamp(1.9rem, 5vw, 2.9rem);
  line-height: 1.12;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--tb-brand-dark);
  text-wrap: balance;
}

/*--------------------------------------------------------------
# Sections and headings on inner pages
--------------------------------------------------------------*/
.tb-phead ~ .tb-section {
  padding: clamp(36px, 6vw, 76px) 0;
}

.tb-phead ~ .tb-section .tb-head-row {
  margin-bottom: clamp(24px, 4vw, 40px);
}

.tb-phead ~ .tb-section .tb-heading {
  font-size: clamp(1.6rem, 3.6vw, 2.35rem);
}

.tb-phead ~ .tb-section .tb-sub {
  max-width: 62ch;
}

.tb-phead ~ .tb-section--light {
  background: #f4f7ee;
}

/*--------------------------------------------------------------
# Cards / ledgers
--------------------------------------------------------------*/
.tb-ledger {
  border-radius: 16px;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.tb-ledger > p {
  margin: 0 0 16px;
  font-size: 15px;
}

.tb-ledger > .tb-eyebrow {
  margin-bottom: 6px;
}

.tb-ledger__row {
  flex-wrap: wrap;
  row-gap: 4px;
}

.tb-ledger__value {
  margin-left: auto;
  overflow-wrap: anywhere;
}

/*--------------------------------------------------------------
# Tables
--------------------------------------------------------------*/
.table-responsive {
  border: 1px solid var(--insur-bdr-color);
  border-radius: 14px;
  background: #fff;
}

.table-responsive .table {
  margin: 0;
  min-width: 560px;
}

.table thead th {
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--insur-primary);
  background: #f4f7ee;
  border-bottom: 1px solid var(--insur-bdr-color);
  padding: 14px 16px;
  white-space: nowrap;
}

.table td {
  padding: 14px 16px;
  vertical-align: middle;
  color: var(--insur-gray);
  font-size: 15px;
}

.table td b {
  color: var(--insur-black);
}

/*--------------------------------------------------------------
# Images and embeds never overflow
--------------------------------------------------------------*/
.news-details img,
.page-wrapper iframe {
  max-width: 100%;
}

.news-details__content,
.news-details__content * {
  overflow-wrap: anywhere;
}

/*--------------------------------------------------------------
# Header: mobile / tablet
The theme swaps to the hamburger below 1200px. Make that bar
sticky, add a compact "Open an Account" pill, and tidy the toggler.
--------------------------------------------------------------*/
.tb-header__cta-mobile {
  display: none;
}

@media (max-width: 1199px) {
  .tb-header {
    position: sticky;
    top: 0;
    z-index: 990;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(8px);
  }

  .main-menu-two__wrapper-inner.tb-header__row {
    gap: 12px;
    padding-inline: 0;
  }

  .main-menu-two__main-menu-box {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
  }

  .tb-header__cta-mobile {
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    border-radius: 999px;
    background: var(--insur-primary);
    color: #fff;
    font-size: 13.5px;
    font-weight: 700;
    white-space: nowrap;
  }

  .tb-header__cta-mobile:hover {
    color: #fff;
    background: var(--tb-brand-dark);
  }

  .main-menu-two .mobile-nav__toggler {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    border: 1px solid var(--insur-bdr-color);
    border-radius: 12px;
    color: var(--insur-primary);
    font-size: 18px;
    background: #fff;
  }
}

@media (max-width: 400px) {
  .tb-header__cta-mobile {
    padding: 9px 13px;
    font-size: 12.5px;
  }

  .tb-header__logo img {
    height: 44px;
  }
}

/* Mobile drawer: full-width buttons, comfortable tap targets */
.mobile-nav__content {
  overflow-y: auto;
}

.mobile-nav__content .main-menu__list > li > a {
  min-height: 48px;
  display: flex;
  align-items: center;
}

/*--------------------------------------------------------------
# Small screens
--------------------------------------------------------------*/
@media (max-width: 575px) {
  .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .tb-phead ~ .tb-section .d-flex.flex-wrap > .tb-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .tb-ledger {
    padding: 20px 18px;
  }

  .tb-ledger__row {
    font-size: 14px;
  }

  .table td,
  .table thead th {
    padding: 12px;
  }
}

/*--------------------------------------------------------------
# Legacy sections brought in line with the new look
--------------------------------------------------------------*/
.tb-alt-band {
  background: #f4f7ee;
  padding-block: clamp(36px, 6vw, 70px);
  margin-top: 0 !important;
}

.about-four {
  padding-block: clamp(32px, 5vw, 64px);
}

.about-four h2,
.about-four h3,
.about-four h4 {
  font-family: var(--tb-font-display);
  color: var(--tb-brand-dark);
}

.team-one.team-two {
  padding-block: clamp(36px, 6vw, 80px);
  margin-top: 0 !important;
}

.team-one__single {
  height: 100%;
}

.team-one__img,
.team-one__img-box,
.team-one__img-box img {
  border-radius: 16px;
}

@media (max-width: 767px) {
  .team-one .row {
    row-gap: 22px;
  }

  .team-one__name {
    font-size: 16px;
  }

  .team-one__content {
    padding-top: 12px;
  }

  .team-one__img::after {
    display: none;
  }
}

/* pages built from the admin editor: keep media and text inside the column */
.news-one img,
.news-details img,
.about-four img {
  max-width: 100%;
  height: auto;
}

.news-one .row {
  row-gap: 24px;
}

/*--------------------------------------------------------------
# Open an account (forms hub + submission)
--------------------------------------------------------------*/
.tb-oa .tb-head-row {
  margin-bottom: 24px;
}

/* App card: the only account opened fully in the app */
.tb-oa-app {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px 28px;
  padding: 24px 28px;
  margin-bottom: 26px;
  border-radius: 22px;
  color: #fff;
  background: linear-gradient(135deg, var(--tb-brand-dark) 0%, var(--insur-primary) 100%);
  box-shadow: 0 22px 44px -22px rgba(10, 46, 34, 0.55);
}

.tb-oa-app__tag {
  display: inline-block;
  padding: 4px 12px;
  margin-bottom: 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: var(--insur-base);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tb-oa-app h3 {
  margin: 0 0 6px;
  font-family: var(--tb-font-display);
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  color: #fff;
}

.tb-oa-app p {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
}

.tb-oa-app__stores {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* Two-column area */
.tb-oa-cols {
  row-gap: 24px;
}

.tb-oa-card {
  background: #fff;
  border: 1px solid var(--insur-bdr-color);
  border-radius: 22px;
  padding: clamp(20px, 3vw, 30px);
  box-shadow: 0 18px 40px -26px rgba(16, 24, 40, 0.28);
}

.tb-oa-step {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  font-weight: 700;
  font-size: 15px;
  color: var(--tb-brand-dark);
}

.tb-oa-step span {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--insur-base);
  color: var(--tb-brand-dark);
  font-size: 13px;
  font-weight: 800;
}

/* Account chips */
.tb-oa-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
}

.tb-oa-chip {
  min-height: 42px;
  padding: 9px 16px;
  border: 1.5px solid var(--insur-bdr-color);
  border-radius: 999px;
  background: #fff;
  color: var(--insur-black);
  font: 600 14px var(--body, inherit);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.tb-oa-chip:hover {
  border-color: var(--insur-primary);
}

.tb-oa-chip[aria-selected="true"] {
  background: var(--insur-primary);
  border-color: var(--insur-primary);
  color: #fff;
  box-shadow: 0 8px 18px -10px rgba(var(--insur-primary-rgb), 0.7);
}

.tb-oa-panel[hidden] {
  display: none;
}

/* Downloadable form rows */
.tb-oa-forms {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
  display: grid;
  gap: 10px;
}

.tb-oa-forms li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--insur-bdr-color);
  border-radius: 16px;
  background: #fafcf5;
}

.tb-oa-forms__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(var(--insur-primary-rgb), 0.1);
  color: var(--insur-primary);
  font-size: 18px;
}

.tb-oa-forms__text {
  flex: 1;
  min-width: 0;
  display: grid;
  line-height: 1.3;
}

.tb-oa-forms__text b {
  color: var(--insur-black);
  font-size: 14.5px;
}

.tb-oa-forms__text small {
  color: var(--insur-gray);
  font-size: 12.5px;
}

.tb-oa-forms__dl {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1.5px solid var(--insur-primary);
  color: var(--insur-primary);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}

.tb-oa-forms__dl:hover {
  background: var(--insur-primary);
  color: #fff;
}

.tb-oa-docs {
  margin-bottom: 4px;
}

.tb-oa-docs li {
  font-size: 14.5px;
}

.tb-oa-note {
  display: flex;
  gap: 8px;
  margin: 14px 0 0;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(247, 174, 18, 0.12);
  color: #7a5200;
  font-size: 13.5px;
}

.tb-oa-note i {
  margin-top: 3px;
}

/* Loan forms disclosure */
.tb-oa-loans {
  margin-top: 16px;
  padding: 0 22px;
  border: 1px solid var(--insur-bdr-color);
  border-radius: 18px;
  background: #fff;
}

.tb-oa-loans summary {
  padding: 16px 0;
  cursor: pointer;
  font-weight: 700;
  font-size: 14.5px;
  color: var(--tb-brand-dark);
}

.tb-oa-loans summary i {
  margin-right: 8px;
  color: var(--insur-primary);
}

.tb-oa-loans[open] summary {
  border-bottom: 1px solid var(--insur-bdr-color);
  margin-bottom: 16px;
}

.tb-oa-loans .tb-oa-note {
  margin-bottom: 18px;
  background: var(--insur-extra);
  color: var(--insur-gray);
}

/* Submission card */
@media (min-width: 992px) {
  .tb-oa-submit {
    position: sticky;
    top: 90px;
  }
}

.tb-oa-field {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
}

.tb-oa-field[hidden] {
  display: none;
}

.tb-oa-field > label {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--tb-brand-dark);
}

.tb-oa-opt {
  font-weight: 500;
  color: var(--insur-gray);
}

.tb-oa-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.tb-oa-row > .tb-oa-field {
  min-width: 0;
}

.tb-oa-input {
  width: 100%;
  min-height: 48px;
  padding: 11px 14px;
  border: 1.5px solid #d3dccb;
  border-radius: 12px;
  background: #fff;
  color: var(--insur-black);
  font-size: 15px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

textarea.tb-oa-input {
  min-height: 0;
  resize: vertical;
}

.tb-oa-input:focus {
  outline: none;
  border-color: var(--insur-primary);
  box-shadow: 0 0 0 4px rgba(var(--insur-primary-rgb), 0.14);
}

.tb-oa-err {
  color: #b3261e;
  font-size: 13px;
  font-weight: 600;
}

.tb-oa-err:empty {
  display: none;
}

.tb-oa-alert {
  margin-bottom: 16px;
  padding: 10px 14px;
  border-radius: 12px;
  background: #fdecea;
  color: #8c1d18;
  font-size: 14px;
  font-weight: 600;
}

.tb-oa-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Upload zone */
.tb-oa-file {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.tb-oa-drop {
  display: grid;
  justify-items: center;
  gap: 2px;
  padding: 20px 16px;
  border: 2px dashed #b9c8a8;
  border-radius: 16px;
  background: #f7faf1;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.tb-oa-drop:hover,
.tb-oa-file:focus-visible + .tb-oa-drop {
  border-color: var(--insur-primary);
  background: #eef5e3;
}

.tb-oa-drop i {
  font-size: 24px;
  color: var(--insur-primary);
}

.tb-oa-drop b {
  color: var(--tb-brand-dark);
  font-size: 14.5px;
}

.tb-oa-drop small {
  color: var(--insur-gray);
  font-size: 12.5px;
}

.tb-oa-files {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.tb-oa-files:empty {
  display: none;
}

.tb-oa-files li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 8px 8px 12px;
  border: 1px solid var(--insur-bdr-color);
  border-radius: 12px;
  background: #fff;
  font-size: 13.5px;
}

.tb-oa-files li span {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--insur-black);
  font-weight: 600;
}

.tb-oa-files li small {
  color: var(--insur-gray);
  white-space: nowrap;
}

.tb-oa-files li button {
  flex: none;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: var(--insur-extra);
  color: var(--insur-black);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

.tb-oa-files li button:hover {
  background: #fdecea;
  color: #b3261e;
}

.tb-oa-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 4px 0 6px;
  font-size: 13.5px;
  color: var(--insur-gray);
  cursor: pointer;
}

.tb-oa-check input {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  accent-color: var(--insur-primary);
}

.tb-oa-submit__btn {
  width: 100%;
  margin-top: 14px;
  justify-content: center;
}

.tb-oa-submit__btn[disabled] {
  opacity: 0.7;
  cursor: progress;
}

.tb-oa-alt {
  margin: 12px 0 0;
  text-align: center;
  font-size: 13px;
  color: var(--insur-gray);
}

/* Success state */
.tb-oa-done {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 10px 0;
  text-align: center;
}

.tb-oa-done__badge {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--insur-base);
  color: var(--tb-brand-dark);
  font-size: 26px;
}

.tb-oa-done h3 {
  margin: 6px 0 0;
  font-family: var(--tb-font-display);
  color: var(--tb-brand-dark);
}

.tb-oa-done p {
  margin: 0;
}

.tb-oa-done__ref {
  padding: 8px 18px;
  border-radius: 12px;
  background: var(--insur-extra);
  color: var(--tb-brand-dark);
  font-family: var(--tb-font-display);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.tb-oa-done__text {
  max-width: 34ch;
  font-size: 14.5px;
  color: var(--insur-gray);
}

@media (max-width: 575px) {
  .tb-oa-app {
    padding: 20px;
    border-radius: 20px;
  }

  .tb-oa-card {
    border-radius: 20px;
  }

  .tb-oa-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .tb-oa-forms li {
    flex-wrap: wrap;
  }

  .tb-oa-forms__text {
    flex-basis: calc(100% - 60px);
  }

  .tb-oa-forms__dl {
    margin-left: 54px;
  }

  .tb-oa-loans {
    padding: 0 16px;
  }
}

.tb-oa-input::placeholder{color:#9aa49a;opacity:1}

/*--------------------------------------------------------------
# Header fit fix (desktop)
Keep every nav item on one line and budget the row so six links
plus Log in / Open an Account fit at every desktop width.
--------------------------------------------------------------*/
.main-menu-two .main-menu__list {
  flex-wrap: nowrap;
}

.main-menu-two .main-menu__list > li {
  flex: 0 0 auto;
}

.main-menu-two .main-menu__list > li > a,
.stricky-header .main-menu__list > li > a {
  white-space: nowrap;
}

@media (min-width: 1200px) {
  .main-menu-two__wrapper-inner.tb-header__row {
    gap: 24px;
  }

  .main-menu-two .main-menu__list > li > a,
  .stricky-header .main-menu__list > li > a {
    padding: 9px 12px;
    font-size: 14.5px;
  }

  .tb-header__actions {
    gap: 10px;
  }

  .tb-header__login {
    padding: 10px 18px;
    white-space: nowrap;
  }

  .main-menu-two__get-quote-btn,
  .stricky-header .main-menu-two__get-quote-btn {
    padding: 12px 22px !important;
    white-space: nowrap;
  }
}

/* 1200 to 1399: the container is only 1140px, so tighten a little more */
@media (min-width: 1200px) and (max-width: 1399px) {
  .main-menu-two__wrapper-inner.tb-header__row {
    gap: 14px;
  }

  .main-menu-two .main-menu__list > li > a,
  .stricky-header .main-menu__list > li > a {
    padding: 8px 9px;
    font-size: 14px;
  }

  .main-menu-two .main-menu__list > li + li,
  .stricky-header .main-menu__list > li + li {
    margin-left: 0;
  }

  .tb-header__login {
    padding: 9px 15px;
    font-size: 13.5px;
  }

  .main-menu-two__get-quote-btn,
  .stricky-header .main-menu-two__get-quote-btn {
    padding: 11px 18px !important;
    font-size: 13.5px !important;
  }
}

/*--------------------------------------------------------------
# One card style for every inner page
Same corner radius, border and soft shadow as the Open an Account
cards. Scoped to inner pages so the homepage keeps its own look.
--------------------------------------------------------------*/
:root {
  --tb-card-radius: 22px;
  --tb-card-border: 1px solid var(--insur-bdr-color);
  --tb-card-shadow: 0 18px 40px -26px rgba(16, 24, 40, 0.28);
  --tb-card-shadow-strong: 0 24px 48px -22px rgba(10, 46, 34, 0.5);
}

.tb-phead ~ section .tb-ledger,
.tb-phead ~ section .tb-calc__fields:not(.tb-ploan__fields),
.tb-phead ~ section .tb-ploan__card,
.tb-phead ~ section .tb-testimonial-card,
.tb-phead ~ section .tb-resource-card,
.tb-phead ~ section .sidebar__single,
.tb-phead ~ section .contact-page__form,
.tb-phead ~ section .team-one__single {
  background: #fff;
  border: var(--tb-card-border);
  border-radius: var(--tb-card-radius);
  box-shadow: var(--tb-card-shadow);
}

/* tinted / dark cards keep their colour, gain the same shape */
.tb-phead ~ section .tb-safety {
  border-radius: var(--tb-card-radius);
  box-shadow: var(--tb-card-shadow);
}

.tb-phead ~ section .tb-calc__results {
  border-radius: var(--tb-card-radius);
  box-shadow: var(--tb-card-shadow-strong);
}

.tb-phead ~ section .sidebar__category {
  background: #fff;
}

/* FAQ rows */
.tb-phead ~ section .faq-one-accrodion .accrodion,
.faq-one-accrodion .accrodion {
  border-radius: 18px;
  box-shadow: 0 12px 28px -22px rgba(16, 24, 40, 0.3);
}

.faq-one-accrodion .accrodion.active {
  box-shadow: var(--tb-card-shadow);
}

/* padding for cards that had none of their own */
.tb-phead ~ section .contact-page__form {
  padding: clamp(20px, 3vw, 32px);
}

.tb-phead ~ section .team-one__single {
  padding: 12px 12px 18px;
}

.tb-phead ~ section .team-one__img,
.tb-phead ~ section .team-one__img-box,
.tb-phead ~ section .team-one__img-box img {
  border-radius: 16px;
}

.tb-phead ~ section .team-one__img::after {
  display: none;
}

/* content cards that are links lift a little */
.tb-phead ~ section .tb-resource-card,
.tb-phead ~ section .tb-testimonial-card {
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tb-phead ~ section .tb-resource-card:hover,
.tb-phead ~ section .tb-testimonial-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 26px 48px -26px rgba(16, 24, 40, 0.34);
}

@media (max-width: 575px) {
  :root {
    --tb-card-radius: 20px;
  }
}

/* contact: the card is the frame, so drop the theme's inner square border */
.contact-page__form .comment-one__form,
.contact-page__form form,
.contact-page__form .contact-form-validated {
  border: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

/* calculator results: the big figure was dark text on the dark green card */
.tb-calc__results .tb-calc__results-headline,
.tb-calc__results h3 {
  color: #fff;
}

.contact-page__form .comment-one__form .row {
  border: 0;
  padding: 0;
  background: transparent;
}

/* Equal-height cards only when a card is the sole child of its column;
   stacked cards (sidebars) keep their natural height. */
[class*="col-"] > .tb-ledger:only-child {
  height: 100%;
}
/* The theme makes .table a block, which shrinks it inside its card */
.table-responsive .table {
  display: table;
  width: 100%;
}

/* App-store buttons are designed for dark backgrounds; make them solid on light cards */
.tb-phead ~ section .tb-ledger .tb-store-btn {
  background: var(--tb-brand-dark);
  border-color: var(--tb-brand-dark);
  color: #fff;
}

.tb-phead ~ section .tb-ledger .tb-store-btn:hover {
  background: var(--insur-primary);
  border-color: var(--insur-primary);
  color: #fff;
}

/*--------------------------------------------------------------
# Testimonial cards (homepage carousel + testimonials page)
--------------------------------------------------------------*/
.tb-tcard {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: 28px 28px 24px;
  overflow: hidden;
  background: #fff;
  border: var(--tb-card-border);
  border-radius: var(--tb-card-radius);
  box-shadow: var(--tb-card-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* brand accent bar along the top edge */
.tb-tcard::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--insur-primary), var(--insur-base));
}

.tb-tcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 50px -26px rgba(16, 24, 40, 0.38);
}

.tb-tcard__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 10px;
}

.tb-tcard__quote {
  font-family: var(--tb-font-display);
  font-size: 72px;
  line-height: 0.8;
  height: 34px;
  color: var(--insur-base);
  opacity: 0.85;
}

.tb-tcard__stars {
  display: inline-flex;
  gap: 3px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(247, 174, 18, 0.12);
  color: var(--tb-accent);
  font-size: 12px;
}

.tb-tcard__text {
  flex: 1;
  margin: 0 0 22px;
  padding: 0;
  border: 0;
  font-family: var(--tb-font-display);
  font-style: normal;
  font-weight: 500;
  font-size: 17px;
  line-height: 1.6;
  color: var(--insur-black);
}

.tb-tcard__author {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px dashed var(--insur-bdr-color);
}

.tb-tcard__avatar {
  position: relative;
  flex: none;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  overflow: hidden;
  border-radius: 50%;
  background: linear-gradient(140deg, var(--insur-primary), var(--tb-brand-dark));
  color: #fff;
  font-size: 16px;
  letter-spacing: 0.03em;
  box-shadow: 0 0 0 3px rgba(var(--insur-base-rgb), 0.35);
}

.tb-tcard__avatar img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tb-tcard__who {
  display: grid;
  min-width: 0;
  line-height: 1.3;
}

.tb-tcard__who strong {
  color: var(--insur-black);
  font-size: 15px;
}

.tb-tcard__who small {
  color: var(--insur-gray);
  font-size: 12.5px;
}

.tb-tcard__more {
  align-self: flex-start;
  margin-top: 16px;
  color: var(--insur-primary);
  font-size: 13.5px;
  font-weight: 700;
}

.tb-tcard__more i {
  margin-left: 4px;
  font-size: 11px;
  transition: transform 0.2s ease;
}

.tb-tcard__more:hover i {
  transform: translateX(3px);
}

/* owl carousel: equal height cards, room for the shadow */
.testimonial-three__carousel .owl-stage {
  display: flex;
}

.testimonial-three__carousel .owl-item {
  display: flex;
  padding-block: 8px 22px;
}

.testimonial-three__carousel .owl-item .item {
  width: 100%;
}

@media (max-width: 575px) {
  .tb-tcard {
    padding: 24px 20px 20px;
  }

  .tb-tcard__text {
    font-size: 16px;
  }
}

/*--------------------------------------------------------------
# Management team cards
--------------------------------------------------------------*/
.tb-team-row {
  row-gap: 26px;
}

.tb-team {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 12px 12px 22px;
  background: #fff;
  border: var(--tb-card-border);
  border-radius: var(--tb-card-radius);
  box-shadow: var(--tb-card-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.tb-team:hover {
  transform: translateY(-5px);
  box-shadow: 0 30px 54px -26px rgba(10, 46, 34, 0.42);
}

/* photo tile with a soft brand backdrop and a floating role pill */
.tb-team__photo {
  position: relative;
  aspect-ratio: 1 / 1.08;
  border-radius: calc(var(--tb-card-radius) - 8px);
  overflow: hidden;
  background:
    radial-gradient(circle at 84% 14%, rgba(255, 255, 255, 0.35) 0 13%, transparent 14%),
    linear-gradient(160deg, #c2cb4b 0%, #a9b43a 100%);
}

.tb-team__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform: scale(1.22);
  transform-origin: 50% 30%;
  transition: transform 0.5s ease;
}

.tb-team:hover .tb-team__photo img {
  transform: scale(1.28);
}

.tb-team__role {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  max-width: calc(100% - 20px);
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(10, 46, 34, 0.88);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.25;
}

.tb-team__body {
  position: relative;
  padding: 20px 10px 0;
  text-align: center;
}

/* small lime leaf mark above the name */
.tb-team__body::before {
  content: "";
  display: block;
  width: 26px;
  height: 26px;
  margin: 0 auto 10px;
  border-radius: 50% 0 50% 0;
  background: var(--insur-base);
  transition: transform 0.3s ease;
}

.tb-team:hover .tb-team__body::before {
  transform: rotate(90deg) scale(1.1);
}

.tb-team__name {
  margin: 0 0 8px;
  font-family: var(--tb-font-display);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--tb-brand-dark);
}

.tb-team__about {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--insur-gray);
}

@media (max-width: 575px) {
  .tb-team {
    padding: 8px 8px 16px;
  }

  .tb-team__role {
    font-size: 10px;
    padding: 5px 10px;
    bottom: 8px;
  }

  .tb-team__body {
    padding: 14px 4px 0;
  }

  .tb-team__name {
    font-size: 16px;
  }

  .tb-team__about {
    font-size: 12.5px;
  }
}

/*--------------------------------------------------------------
# Homepage cards: same radius and shadow as everywhere else
--------------------------------------------------------------*/
.tb-quick-card,
.tb-product-featured,
.tb-why-card,
.tb-resource-card,
.tb-safety,
.tb-app-promo {
  border-radius: var(--tb-card-radius);
}

.tb-quick-card,
.tb-product-featured,
.tb-why-card,
.tb-resource-card {
  box-shadow: var(--tb-card-shadow);
}

.tb-product-support-card {
  border-radius: 18px;
  box-shadow: 0 12px 28px -22px rgba(16, 24, 40, 0.3);
}

.tb-safety {
  box-shadow: var(--tb-card-shadow);
}

.tb-app-promo {
  box-shadow: var(--tb-card-shadow-strong);
}

.tb-quick-card:hover,
.tb-product-support-card:hover,
.tb-why-card:hover {
  box-shadow: 0 26px 48px -26px rgba(16, 24, 40, 0.34);
}

/*--------------------------------------------------------------
# Typography: News Gothic (brand) headings bold, body regular
--------------------------------------------------------------*/
.tb-heading,
.tb-phead__title,
.tb-hero2__title,
.tb-ledger__title,
.tb-team__name,
.tb-oa-app h3,
.tb-oa-done h3,
.tb-calc__results-headline {
  line-height: 1.28;
}

.tb-hero2__title {
  letter-spacing: 0;
}

/* quotes are body-length text: regular weight body font */
.tb-tcard__text,
.tb-testimonial-card__text,
.tb-hero2__voice blockquote {
  font-family: var(--insur-font);
}

/* Brand guideline: NewsGothic Bold for headings and subheadings */
h1, h2, h3, h4,
.tb-heading,
.tb-phead__title,
.tb-hero2__title,
.tb-ledger__title,
.tb-team__name,
.tb-oa-app h3,
.tb-oa-done h3,
.tb-quick-card__title,
.tb-why-card__title,
.tb-product-featured__title,
.tb-calc__results-headline {
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.tb-tcard__text,
.tb-testimonial-card__text,
.tb-hero2__voice blockquote {
  font-weight: 400;
  font-style: normal;
}
/*--------------------------------------------------------------
# FAQ rows: icon tile instead of the "?" circle
--------------------------------------------------------------*/
.faq-one-accrodion .accrodion-title {
  padding: 16px 44px 16px 16px;
}

.faq-one-accrodion .accrodion-title h4 {
  display: flex;
  align-items: center;
  font-size: 16.5px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--tb-brand-dark);
}

.faq-one-accrodion .accrodion-title h4 span.tb-faq-ico {
  flex: none;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-right: 14px;
  border: 1px solid var(--insur-bdr-color);
  border-radius: 13px;
  background: #fff;
  color: var(--insur-primary);
  font-size: 16px;
  line-height: 1;
  box-shadow: 0 8px 16px -10px rgba(16, 24, 40, 0.35);
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.faq-one-accrodion .accrodion:hover span.tb-faq-ico {
  transform: translateY(-1px);
}

.faq-one-accrodion .accrodion.active .accrodion-title h4 {
  color: var(--tb-brand-dark);
}

.faq-one-accrodion .accrodion.active span.tb-faq-ico {
  background: var(--insur-primary);
  border-color: var(--insur-primary);
  color: #fff;
}

.faq-one-accrodion .accrodion-title h4::before {
  right: -28px;
}

/* answer lines up under the question text (16 pad + 44 tile + 14 gap) */
.faq-one-accrodion .accrodion-content {
  padding: 8px 30px 20px 74px;
}

.faq-one-accrodion .accrodion-content p {
  line-height: 1.65;
  font-size: 15px;
}

@media (max-width: 575px) {
  .faq-one-accrodion .accrodion-title {
    padding: 14px 36px 14px 12px;
  }

  .faq-one-accrodion .accrodion-title h4 {
    font-size: 15px;
  }

  .faq-one-accrodion .accrodion-title h4 span.tb-faq-ico {
    width: 38px;
    height: 38px;
    margin-right: 10px;
    border-radius: 11px;
    font-size: 14px;
  }

  .faq-one-accrodion .accrodion-content {
    padding: 4px 18px 18px 18px;
  }
}

/*--------------------------------------------------------------
# Compact, modern forms (contact + loan applications)
Tighter heights and spacing, light borders, teal focus ring.
--------------------------------------------------------------*/
/* contact */
.comment-one__form .row {
  --bs-gutter-x: 16px;
  padding: clamp(18px, 3vw, 28px);
  border-radius: 18px;
  border-color: var(--insur-bdr-color);
}

.comment-form__input-box {
  margin-bottom: 14px;
}

.comment-form__input-box input[type="text"],
.comment-form__input-box input[type="email"] {
  height: 48px;
  padding-inline: 16px;
  font-size: 15px;
  color: var(--insur-black);
}

.comment-form__input-box textarea {
  height: 130px;
  padding: 12px 16px;
  font-size: 15px;
  color: var(--insur-black);
}

.comment-form__input-box.text-message-box {
  height: auto;
}

.comment-form__input-box input[type="text"],
.comment-form__input-box input[type="email"],
.comment-form__input-box textarea {
  border: 1.5px solid #d3dccb !important;
  background-color: #fff;
}

.comment-form__input-box input:focus,
.comment-form__input-box textarea:focus {
  border-color: var(--insur-primary) !important;
  box-shadow: 0 0 0 4px rgba(var(--insur-primary-rgb), 0.14);
}

.comment-form__btn-box {
  margin-top: 14px;
}

/* loan applications */
.tb-ploan__card {
  padding: clamp(16px, 2.6vw, 24px);
  margin-bottom: 16px;
  border-radius: 18px;
}

.tb-ploan__card-title {
  margin-bottom: 16px;
  font-size: 18px;
}

.tb-ploan__card-title-row {
  margin-bottom: 16px;
}

.tb-ploan__row {
  gap: 14px;
}

.tb-ploan__form .tb-calc__field {
  margin-bottom: 0;
}

.tb-ploan__form .tb-calc__label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
}

.tb-ploan__form .tb-calc__label-hint {
  display: block;
  margin-top: 4px;
  font-size: 11.5px;
}

.tb-ploan__form .tb-calc__input,
.tb-ploan__form .form-control,
.tb-ploan__form select {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  border: 1.5px solid #d3dccb;
  border-radius: 12px;
  background: #fff;
  font-size: 15px;
  font-weight: 500;
  color: var(--insur-black);
}

.tb-ploan__form textarea.tb-calc__input,
.tb-ploan__form textarea.form-control {
  height: auto;
  min-height: 90px;
  padding: 10px 14px;
}

.tb-ploan__form .tb-calc__input:focus,
.tb-ploan__form .form-control:focus,
.tb-ploan__form select:focus {
  outline: none;
  border-color: var(--insur-primary);
  box-shadow: 0 0 0 4px rgba(var(--insur-primary-rgb), 0.14);
}

.tb-ploan__form .tb-calc__input[type="file"],
.tb-ploan__form .form-control[type="file"] {
  height: auto;
  padding: 9px 14px;
}

@media (max-width: 767px) {
  .tb-ploan__row--2,
  .tb-ploan__row--3,
  .tb-ploan__row--4 {
    grid-template-columns: 1fr;
  }
}

/* Keep room for the ₦ prefix / % suffix inside the compact inputs. */
.tb-ploan__form .tb-calc__input-group .tb-calc__input {
  padding-left: 36px;
}

.tb-ploan__form .tb-calc__input-group .tb-calc__input--rate {
  padding-left: 14px;
  padding-right: 40px;
}

/*--------------------------------------------------------------
# Step-by-step application form (business loan)
--------------------------------------------------------------*/
.tb-wiz__bar {
  margin-bottom: 20px;
}

.tb-wiz__track {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: #e3ebd6;
}

.tb-wiz__track span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--insur-primary);
  transition: width 0.25s ease;
}

.tb-wiz__label {
  margin: 10px 0 0;
  font-size: 13.5px;
  color: var(--insur-gray);
}

.tb-wiz__label strong {
  color: var(--tb-brand-dark);
}

.tb-wiz__step[hidden],
.tb-wiz__nav [hidden],
.tb-wiz__add[hidden],
.tb-ploan__form td[hidden],
.tb-ploan__form th[hidden] {
  display: none !important;
}

.tb-wiz__nav {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 8px;
}

.tb-wiz__add {
  margin: -6px 0 18px;
  padding: 8px 16px;
  border: 1.5px dashed #b8c88a;
  border-radius: 999px;
  background: none;
  color: var(--insur-primary);
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
}

.tb-wiz__add:hover {
  background: rgba(var(--insur-primary-rgb), 0.06);
}

@media (max-width: 575px) {
  .tb-wiz__nav {
    flex-direction: column-reverse;
  }

  .tb-wiz__nav .tb-btn {
    width: 100%;
    justify-content: center;
  }
}
