.tpls-body {
  margin: 0;
}

.tpls-site-header {
  position: absolute;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
  min-height: 88px;
  background: linear-gradient(180deg, rgba(3, 18, 39, .98), rgba(3, 22, 45, .82));
  color: #fff;
  font-family: Poppins, Arial, Helvetica, sans-serif;
  transition: background 180ms ease, box-shadow 180ms ease, transform 180ms ease, min-height 180ms ease;
}

.tpls-site-header.is-sticky {
  position: fixed;
  background: linear-gradient(180deg, rgba(3, 18, 39, .98), rgba(3, 22, 45, .94));
  box-shadow: 0 12px 30px rgba(0, 0, 0, .22);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

@media (prefers-reduced-motion: no-preference) {
  .tpls-site-header.is-sticky {
    animation: tplsStickyHeaderIn 180ms ease both;
  }
}

@keyframes tplsStickyHeaderIn {
  from {
    transform: translateY(-100%);
  }

  to {
    transform: translateY(0);
  }
}

.tpls-site-header * {
  box-sizing: border-box;
}

.admin-bar .tpls-site-header.is-sticky {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .tpls-site-header.is-sticky {
    top: 46px;
  }
}

.tpls-site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 88px;
  gap: 36px;
}

.tpls-site-logo {
  display: inline-flex;
  align-items: center;
  min-width: 150px;
  color: #fff;
  text-decoration: none;
}

.tpls-site-logo:hover,
.tpls-site-logo:focus {
  color: #fff;
}

.tpls-site-logo__img {
  display: block;
  width: 145px;
  max-width: 100%;
  height: auto;
	padding:20px;
}

.tpls-site-nav {
  display: flex;
  justify-content: center;
  gap: 42px;
  flex: 1;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.tpls-site-nav a {
  color: #fff;
  text-decoration: none;
}

.tpls-site-nav a:hover,
.tpls-site-nav a:focus {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.tpls-header-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 24px;
  border-radius: 4px;
  background: #e61d3f;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
}

.tpls-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.tpls-header-btn:hover,
.tpls-header-btn:focus {
  color: #fff;
  filter: brightness(.94);
}

.tpls-header-btn-secondary {
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .65);
}

.tpls-header-btn-secondary:hover,
.tpls-header-btn-secondary:focus {
  border-color: #fff;
}

.tpls-page {
  --tpls-navy: #061b37;
  --tpls-blue: #0b3159;
  --tpls-red: #e61d3f;
  --tpls-ink: #071b3a;
  --tpls-muted: #4f5d72;
  --tpls-line: #d8dee8;
  --tpls-soft: #f5f8fc;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  color: var(--tpls-ink);
  background: #fff;
  font-family: Poppins, Arial, Helvetica, sans-serif;
  line-height: 1.45;
  overflow: hidden;
}

.tpls-page * {
  box-sizing: border-box;
}

.tpls-page a {
  text-decoration: none;
}

.tpls-container {
  width: min(1200px, calc(100% - 56px));
  margin: 0 auto;
}

.tpls-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 650px;
  padding: 168px 0 80px;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(4, 22, 45, .9) 0%, rgba(5, 25, 48, .76) 38%, rgba(6, 28, 52, .28) 76%),
    var(--tpls-hero-image) center right / cover no-repeat;
}

.tpls-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: var(--tpls-hero-flag-image);
  background-repeat: no-repeat;
  background-position: right -8px bottom -4px;
  background-size: clamp(460px, 56vw, 980px) auto;
  filter: drop-shadow(0 18px 30px rgba(2, 10, 24, .28));
}

.tpls-hero .tpls-container,
.tpls-hero-content {
  position: relative;
  z-index: 1;
}

.tpls-hero-content {
  max-width: 560px;
}

.tpls-breadcrumb {
  margin-bottom: 44px;
  color: rgba(255,255,255,.82);
  font-size: 12px;
  font-weight: 700;
}

.tpls-page h1,
.tpls-page h2 {
  margin: 0;
  color: inherit;
  font-family: Forum, "Times New Roman", serif;
  font-weight: 400;
}

.tpls-page h1 {
  font-size: clamp(62px, 8vw, 92px);
  line-height: .97;
  letter-spacing: -.02em;
  text-transform: uppercase;
}

.tpls-page h2 {
  font-size: clamp(32px, 4vw, 44px);
  line-height: 1.08;
}

.tpls-page h3 {
  margin: 0;
  color: var(--tpls-ink);
  font-size: 16px;
  line-height: 1.25;
}

.tpls-stars {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 372px;
  max-width: 100%;
  margin: 28px 0 30px;
  color: var(--tpls-red);
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .24em;
}

.tpls-stars::before,
.tpls-stars::after {
  content: "";
  flex: 1;
  height: 3px;
  background: var(--tpls-red);
}

.tpls-hero-lede {
  max-width: 500px;
  margin: 0 0 16px;
  font-family: Forum, "Times New Roman", serif;
  font-size: 28px;
  line-height: 1.18;
}

.tpls-hero-copy {
  max-width: 540px;
  margin: 0 0 32px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
}

.tpls-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.tpls-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 26px;
  border: 0;
  border-radius: 4px;
  background: var(--tpls-red);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.tpls-btn:hover,
.tpls-btn:focus {
  color: #fff;
  filter: brightness(.94);
}

.tpls-btn-outline {
  background: rgba(5, 27, 55, .42);
  border: 1.5px solid var(--tpls-red);
}

.tpls-btn-navy {
  background: var(--tpls-navy);
}

.tpls-btn-light {
  background: transparent;
  border: 1.5px solid var(--tpls-red);
  color: var(--tpls-red);
}

.tpls-btn-light:hover,
.tpls-btn-light:focus {
  color: var(--tpls-red);
}

.tpls-section {
  padding: 46px 0;
}

.tpls-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
  gap: 70px;
  align-items: center;
}

.tpls-mission-solo {
  max-width: 880px;
  text-align: center;
}

.tpls-mission-solo .tpls-copy {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.tpls-youth-band {
  position: relative;
  padding: 0;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(4, 22, 45, .78) 0%, rgba(5, 25, 48, .48) 45%, rgba(6, 28, 52, .62) 100%),
    var(--tpls-youth-image) center center / cover no-repeat;
}

.tpls-youth-band::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0));
  pointer-events: none;
}

.tpls-youth-band .tpls-container {
  position: relative;
  min-height: 300px;
  display: flex;
  align-items: center;
}

.tpls-youth-band__content {
  max-width: 520px;
  padding: 42px 0;
}

.tpls-youth-band h2 {
  margin-bottom: 14px;
  color: #fff;
}

.tpls-youth-band p:not(.tpls-eyebrow) {
  max-width: 480px;
  margin: 0;
  color: rgba(255,255,255,.92);
  font-size: 17px;
  line-height: 1.7;
}

.tpls-eyebrow {
  margin: 0 0 10px;
  color: var(--tpls-red);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.tpls-copy {
  margin-top: 20px;
  color: var(--tpls-ink);
  font-size: 16px;
  line-height: 1.62;
}

.tpls-copy p + p {
  margin-top: 14px;
}

.tpls-value-card {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 30px;
  align-items: center;
  min-height: 215px;
  padding: 38px 46px;
  border: 1px solid var(--tpls-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(3, 21, 43, .08);
}

.tpls-value-card h3 {
  margin-bottom: 14px;
  font-family: Forum, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.12;
}

.tpls-value-card p {
  margin: 0;
  color: var(--tpls-ink);
}

.tpls-svg-icon {
  display: inline-grid;
  place-items: center;
  width: 66px;
  height: 66px;
  color: var(--tpls-navy);
  font-size: 42px;
  line-height: 1;
}

.tpls-svg-icon svg {
  display: block;
  width: 1em;
  height: 1em;
  overflow: visible;
}



.tpls-value-card .tpls-svg-icon {
  width: 92px;
  height: 92px;
  margin: 0 auto;
  color: var(--tpls-navy);
  font-size: 58px;
}

.tpls-value-card .tpls-svg-icon-shield-star {
  width: 132px;
  height: 132px;
  font-size: 132px;
}

.tpls-ways {
  padding-top: 36px;
  background: linear-gradient(180deg, #fff, #f8fafc);
}

.tpls-center {
  text-align: center;
}

.tpls-give-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 24px;
}

.tpls-give-card {
  min-height: 285px;
  padding: 32px 26px 28px;
  border: 1px solid var(--tpls-line);
  border-radius: 7px;
  background: #fff;
  text-align: center;
  box-shadow: 0 7px 18px rgba(4, 24, 49, .05);
}

.tpls-give-card .tpls-svg-icon {
  width: 74px;
  height: 74px;
  margin: 0 auto 18px;
  border: 1.5px solid rgba(230, 29, 63, .22);
  border-radius: 50%;
  background: linear-gradient(180deg, rgba(230, 29, 63, .06), rgba(6, 27, 55, .02));
  color: var(--tpls-navy);
  font-size: 35px;
  box-shadow: 0 10px 20px rgba(6, 27, 55, .055);
}

.tpls-give-card h3 {
  margin-bottom: 12px;
  font-family: Poppins, Arial, Helvetica, sans-serif;
  font-weight: 800;
}

.tpls-give-card p {
  min-height: 78px;
  margin: 0;
  color: #44536a;
  font-size: 12px;
  line-height: 1.45;
}

.tpls-give-card a {
  display: inline-block;
  margin-top: 18px;
  color: var(--tpls-red);
  font-size: 13px;
  font-weight: 900;
}

.tpls-plan-section {
  padding-top: 22px;
}

.tpls-plan-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.tpls-plan-card {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 36px;
  min-height: 425px;
  padding: 42px 48px;
  border-radius: 8px;
}

.tpls-plan-card-blue {
  background: linear-gradient(135deg, #f5f9ff, #eaf2fb);
}

.tpls-plan-card-red {
  background: linear-gradient(135deg, #fff5f5, #fffafa);
}

.tpls-plan-card .tpls-svg-icon {
  width: 98px;
  height: 98px;
  color: var(--tpls-navy);
  font-size: 98px;
}

.tpls-plan-card-red .tpls-svg-icon {
  color: var(--tpls-red);
}

.tpls-plan-card h2 {
  margin-bottom: 18px;
}

.tpls-plan-card p {
  margin: 0 0 22px;
  color: var(--tpls-ink);
  font-size: 14px;
  line-height: 1.55;
}


.tpls-plan-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 22px;
}

.tpls-plan-actions .tpls-btn {
  margin: 0;
}

.tpls-steps {
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  color: var(--tpls-ink);
  font-size: 13px;
  line-height: 1.55;
}

.tpls-steps li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  margin-bottom: 7px;
}

.tpls-steps span {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--tpls-navy);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.tpls-note {
  margin-top: 28px !important;
  color: #33445b !important;
  font-style: italic;
}

.tpls-benefits {
  padding-top: 20px;
}

.tpls-benefit-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-top: 28px;
}

.tpls-benefit {
  min-height: 110px;
  padding: 0 26px;
  border-right: 1px solid var(--tpls-line);
  text-align: center;
  color: var(--tpls-ink);
  font-size: 13px;
  line-height: 1.35;
}

.tpls-benefit-grid .tpls-svg-icon svg {
  width:2em;
  height:2em;
}

.tpls-benefit:last-child {
  border-right: 0;
}

.tpls-benefit .tpls-svg-icon {
  width: 45px;
  height: 45px;
  margin: 0 auto 8px;
  color: var(--tpls-navy);
  font-size: 34px;
}

.tpls-benefit p {
  margin: 0;
}

.tpls-lower {
  padding-bottom: 56px;
}

.tpls-lower-panel {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 58px;
  padding: 42px;
  border-radius: 8px;
  background: linear-gradient(135deg, #f3f8ff, #fff);
}

.tpls-lower-panel-contact-only {
  grid-template-columns: minmax(0, 640px);
  justify-content: center;
  text-align: center;
}

.tpls-lower-panel-contact-only .tpls-contact {
  padding-left: 0;
  border-left: 0;
}

.tpls-lower-panel-contact-only .tpls-contact-list {
  justify-items: center;
}

.tpls-video-placeholder {
  position: relative;
  display: grid;
  place-items: center;
  height: 226px;
  margin-top: 20px;
  overflow: hidden;
  border-radius: 8px;
  background:
    linear-gradient(90deg, rgba(5, 20, 39, .78), rgba(5,20,39,.15)),
    radial-gradient(circle at 29% 52%, #d7ad90 0 28px, transparent 29px),
    radial-gradient(circle at 70% 50%, #d7ad90 0 28px, transparent 29px),
    linear-gradient(120deg, #101c2d, #39495f);
}

.tpls-video-placeholder span {
  display: grid;
  place-items: center;
  width: 70px;
  height: 54px;
  border-radius: 4px;
  background: rgba(255,255,255,.92);
  color: var(--tpls-ink);
  font-size: 24px;
  box-shadow: 0 12px 30px rgba(0,0,0,.25);
}

.tpls-video-caption {
  margin: 18px 0 0;
  font-size: 17px;
  line-height: 1.35;
  text-align: center;
}

.tpls-contact {
  padding-left: 12px;
  border-left: 1px solid var(--tpls-line);
}

.tpls-contact h2 {
  margin-bottom: 14px;
}

.tpls-contact p {
  margin: 0;
  font-size: 16px;
}

.tpls-contact-list {
  display: grid;
  gap: 16px;
  margin: 28px 0 24px;
  color: var(--tpls-ink);
  font-size: 16px;
  font-weight: 700;
}

.tpls-contact-list a,
.tpls-contact-list span {
  color: var(--tpls-ink);
}

@media (max-width: 1100px) {
  .tpls-give-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }

  .tpls-split,
  .tpls-lower-panel {
    grid-template-columns: 1fr;
  }

  .tpls-contact {
    padding-left: 0;
    border-left: 0;
  }
}

@media (max-width: 820px) {
  .tpls-container {
    width: min(100% - 32px, 680px);
  }

  .tpls-hero {
    min-height: 700px;
    padding: 148px 0 58px;
    background:
      linear-gradient(90deg, rgba(4, 22, 45, .92) 0%, rgba(5, 25, 48, .78) 58%, rgba(6, 28, 52, .42) 100%),
      var(--tpls-hero-image) center right 18% / cover no-repeat;
  }

  .tpls-site-header,
  .tpls-site-header__inner {
    min-height: 76px;
  }

  .tpls-site-nav {
    display: none;
  }

  .tpls-site-logo {
    min-width: 0;
  }

  .tpls-site-logo__img {
    width: 118px;
  }

  .tpls-header-actions {
    gap: 8px;
  }

  .tpls-header-btn {
    min-height: 42px;
    padding: 0 14px;
    font-size: 11px;
  }

  .tpls-breadcrumb {
    margin-bottom: 34px;
  }

  .tpls-actions,
  .tpls-plan-grid,
  .tpls-plan-card,
  .tpls-value-card {
    grid-template-columns: 1fr;
  }

  .tpls-actions {
    display: grid;
  }

  .tpls-plan-actions {
    display: grid;
  }

  .tpls-give-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .tpls-benefit-grid {
    grid-template-columns: 1fr;
  }

  .tpls-benefit {
    padding: 20px 0;
    border-right: 0;
    border-bottom: 1px solid var(--tpls-line);
  }

  .tpls-benefit:last-child {
    border-bottom: 0;
  }

  .tpls-plan-card,
  .tpls-lower-panel {
    padding: 30px 24px;
  }
}

@media (max-width: 520px) {
  .tpls-page h1 {
    font-size: 58px;
  }

  .tpls-hero-lede {
    font-size: 24px;
  }

  .tpls-give-grid {
    grid-template-columns: 1fr;
  }
}

/* Legacy giving option modal buttons */
.tpls-give-card-link {
  display: inline-block;
  margin-top: 18px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tpls-red);
  cursor: pointer;
  font-family: Poppins, Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
}

.tpls-give-card-link:hover,
.tpls-give-card-link:focus {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.tpls-modal-open {
  overflow: hidden;
}

.tpls-modal {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 28px;
}

.tpls-modal[aria-hidden="false"] {
  display: flex;
}

.tpls-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(3, 18, 39, .76);
  backdrop-filter: blur(5px);
}

.tpls-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(680px, 100%);
  max-height: min(760px, calc(100vh - 56px));
  overflow: auto;
  padding: 42px 44px 38px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .32);
  outline: 0;
}

.tpls-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(6, 27, 55, .14);
  border-radius: 50%;
  background: #fff;
  color: var(--tpls-navy);
  cursor: pointer;
  font-size: 30px;
  line-height: 1;
}

.tpls-modal__close:hover,
.tpls-modal__close:focus {
  border-color: rgba(230, 29, 63, .35);
  color: var(--tpls-red);
}

.tpls-modal__icon {
  margin-bottom: 18px;
}

.tpls-modal__icon .tpls-svg-icon {
  width: 78px;
  height: 78px;
  border: 1.5px solid rgba(230, 29, 63, .22);
  border-radius: 50%;
  background: linear-gradient(180deg, rgba(230, 29, 63, .06), rgba(6, 27, 55, .02));
  color: var(--tpls-navy);
  font-size: 38px;
}

.tpls-modal h3 {
  margin: 0 0 14px;
  color: var(--tpls-ink);
  font-family: Forum, "Times New Roman", serif;
  font-size: clamp(32px, 4vw, 46px);
  font-weight: 400;
  line-height: 1.05;
}

.tpls-modal__lede {
  margin: 0 0 22px;
  color: #33445b;
  font-size: 16px;
  line-height: 1.65;
}

.tpls-modal__list {
  display: grid;
  gap: 12px;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}

.tpls-modal__list li {
  position: relative;
  padding-left: 26px;
  color: #33445b;
  font-size: 15px;
  line-height: 1.55;
}

.tpls-modal__list li::before {
  content: "";
  position: absolute;
  top: .56em;
  left: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--tpls-red);
}

.tpls-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}


.tpls-modal__contact {
  margin-top: 26px;
  padding: 18px 20px;
  border: 1px solid rgba(6, 27, 55, .12);
  border-left: 4px solid var(--tpls-red);
  border-radius: 10px;
  background: linear-gradient(180deg, #f8fbff, #fff);
  color: #33445b;
}

.tpls-modal__contact strong {
  display: block;
  margin-bottom: 5px;
  color: var(--tpls-ink);
  font-size: 14px;
  font-weight: 900;
}

.tpls-modal__contact span {
  display: block;
  font-size: 14px;
  line-height: 1.55;
}

.tpls-modal__contact a {
  color: var(--tpls-red);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 620px) {
  .tpls-modal {
    padding: 18px;
  }

  .tpls-modal__dialog {
    padding: 34px 24px 28px;
  }

  .tpls-modal__actions {
    display: grid;
  }
}


/* Legacy Society UI polish - 1.8.8 */
.tpls-copy,
.tpls-plan-card p,
.tpls-contact p {
  font-size: 15px;
}

.tpls-site-logo__img {
  width: 160px;
}

.tpls-site-nav {
  font-size: 12.5px;
}

.tpls-give-grid {
  gap: 12px;
}

.tpls-give-card {
  min-height: 300px;
  padding: 28px 20px 26px;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.tpls-give-card:hover,
.tpls-give-card:focus-within {
  transform: translateY(-3px);
  border-color: rgba(230, 29, 63, .28);
  box-shadow: 0 18px 34px rgba(4, 24, 49, .10);
}

.tpls-give-card h3 {
  font-size: 14px;
}

.tpls-give-card p {
  font-size: 13px;
  line-height: 1.5;
}

.tpls-give-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid rgba(230, 29, 63, .32);
  border-radius: 4px;
  color: var(--tpls-red);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.tpls-give-card a:hover,
.tpls-give-card a:focus {
  color: #fff;
  background: var(--tpls-red);
}

.tpls-benefit {
  font-size: 13px;
  line-height: 1.45;
}

.tpls-benefit .tpls-svg-icon {
  margin-bottom: 12px;
  font-size: 38px;
}

.tpls-contact .tpls-btn {
  background: var(--tpls-red);
}

.tpls-final-cta {
  padding: 56px 0 70px;
  background:
    radial-gradient(circle at top left, rgba(230, 29, 63, .08), transparent 34%),
    linear-gradient(135deg, #071b3a, #0b3159);
  color: #fff;
  text-align: center;
}

.tpls-final-cta h2 {
  color: #fff;
  font-size: clamp(36px, 4vw, 54px);
  text-transform: uppercase;
}

.tpls-final-cta p:not(.tpls-eyebrow) {
  max-width: 620px;
  margin: 18px auto 0;
  color: rgba(255,255,255,.82);
  font-size: 17px;
  line-height: 1.55;
}

.tpls-final-cta__actions {
  justify-content: center;
  margin-top: 28px;
}

.tpls-final-cta .tpls-btn-light {
  border-color: rgba(255,255,255,.7);
  color: #fff;
}

.tpls-final-cta .tpls-btn-light:hover,
.tpls-final-cta .tpls-btn-light:focus {
  color: #fff;
  border-color: #fff;
}

.tpls-final-cta .tpls-btn-navy {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.55);
}

@media (max-width: 820px) {
  .tpls-site-logo__img {
    width: 126px;
  }

  .tpls-give-card {
    min-height: 0;
  }

  .tpls-final-cta__actions {
    display: grid;
  }
}

@media (max-width: 520px) {
  .tpls-header-btn-secondary {
    display: none;
  }

  .tpls-final-cta {
    padding: 46px 0 54px;
  }
}


.tpls-will-note {
  margin-top: 18px !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}


/* Legacy giving cards: keep modal CTA anchored at bottom - 1.9.3 */
.tpls-give-card {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.tpls-give-card p {
  flex: 1 1 auto;
  margin-bottom: 10px;
}

.tpls-give-card-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  margin-top: auto;
  padding: 0 15px;
  border: 1px solid rgba(230, 29, 63, .34);
  border-radius: 4px;
  background: #fff;
  color: var(--tpls-red);
  cursor: pointer;
  font-family: Poppins, Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .03em;
  line-height: 1;
  text-transform: uppercase;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.tpls-give-card-link:hover,
.tpls-give-card-link:focus {
  background: var(--tpls-red);
  border-color: var(--tpls-red);
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}

.tpls-give-card-link span {
  margin-left: 5px;
}

/* Mobile navigation - 1.9.4 */
.tpls-mobile-toggle,
.tpls-mobile-menu {
  display: none;
}

.tpls-mobile-toggle {
  appearance: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255, 255, 255, .45);
  border-radius: 4px;
  background: rgba(255, 255, 255, .06);
  color: #fff;
  cursor: pointer;
}

.tpls-mobile-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform 180ms ease, opacity 180ms ease;
}

.tpls-mobile-toggle.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.tpls-mobile-toggle.is-open span:nth-child(2) {
  opacity: 0;
}

.tpls-mobile-toggle.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 1150px) {
  .tpls-site-header {
    background: linear-gradient(180deg, rgba(3, 18, 39, .98), rgba(3, 22, 45, .92));
  }

  .tpls-site-header__inner {
    gap: 18px;
  }

  .tpls-site-nav,
  .tpls-header-actions {
    display: none;
  }

  .tpls-mobile-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .tpls-mobile-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    padding: 0 0 22px;
    background: linear-gradient(180deg, rgba(3, 18, 39, .98), rgba(3, 22, 45, .96));
    border-top: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 22px 44px rgba(0, 0, 0, .28);
  }

  .tpls-mobile-menu:not([hidden]) {
    display: block;
  }

  .tpls-mobile-menu__inner {
    display: grid;
    gap: 14px;
    padding-top: 18px;
  }

  .tpls-mobile-primary,
  .tpls-mobile-secondary,
  .tpls-mobile-nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border-radius: 4px;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
  }

  .tpls-mobile-primary {
    background: var(--tpls-red, #e61d3f);
  }

  .tpls-mobile-nav {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
  }

  .tpls-mobile-nav a,
  .tpls-mobile-secondary {
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .055);
  }

  .tpls-mobile-primary:hover,
  .tpls-mobile-primary:focus,
  .tpls-mobile-secondary:hover,
  .tpls-mobile-secondary:focus,
  .tpls-mobile-nav a:hover,
  .tpls-mobile-nav a:focus {
    color: #fff;
    filter: brightness(.96);
  }
}

@media (max-width: 700px) {
  .tpls-mobile-nav {
    grid-template-columns: 1fr;
  }

  .tpls-mobile-primary,
  .tpls-mobile-secondary,
  .tpls-mobile-nav a {
    justify-content: flex-start;
    padding: 0 18px;
  }
}

@media (max-width: 520px) {
  .tpls-mobile-toggle {
    width: 42px;
    height: 42px;
  }
}


/* Pamphlet-informed Legacy Society updates */
.tpls-benefit-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.tpls-benefit {
  min-height: 190px;
  padding: 28px 24px;
  border: 1px solid var(--tpls-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(4, 24, 49, .05);
}

.tpls-benefit h3 {
  margin: 8px 0 8px;
  font-family: Poppins, Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
  text-transform: uppercase;
}

.tpls-benefit p {
  color: #44536a;
  font-size: 13px;
  line-height: 1.45;
}

.tpls-plan-card-blue .tpls-btn-navy,
.tpls-final-cta .tpls-btn-navy {
  white-space: normal;
  text-align: center;
}

@media (max-width: 900px) {
  .tpls-benefit-grid {
    grid-template-columns: 1fr;
  }
}

/* Ways to Give: 3-column desktop layout - 2.0.1 */
.tpls-give-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  max-width: 980px;
  margin: 28px auto 0;
}

.tpls-give-card {
  min-height: 285px;
  padding: 32px 26px 28px;
}

@media (max-width: 1100px) {
  .tpls-give-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: 940px;
  }
}

@media (max-width: 820px) {
  .tpls-give-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 680px;
  }
}

@media (max-width: 520px) {
  .tpls-give-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
  }
}

@media (max-width: 900px) {
  .tpls-youth-band .tpls-container {
    min-height: 240px;
  }

  .tpls-youth-band__content {
    max-width: 100%;
    padding: 34px 0;
  }
}

@media (max-width: 640px) {
  .tpls-youth-band .tpls-container {
    min-height: 220px;
  }

  .tpls-youth-band p:not(.tpls-eyebrow) {
    font-size: 15px;
    line-height: 1.6;
  }
}


/* Legacy wording/free-will prominence update - 2.0.6 */
.tpls-ways .tpls-center h2 {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.tpls-plan-card-featured {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(6, 27, 55, .14);
  background:
    radial-gradient(circle at top left, rgba(230, 29, 63, .10), transparent 34%),
    linear-gradient(135deg, #eef6ff 0%, #dfeeff 100%);
  box-shadow: 0 18px 44px rgba(6, 27, 55, .12);
}

.tpls-plan-card-featured::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: var(--tpls-red);
}

.tpls-plan-card-featured .tpls-svg-icon {
  color: var(--tpls-navy);
  filter: drop-shadow(0 10px 16px rgba(6, 27, 55, .12));
}

.tpls-plan-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin: 0 0 16px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(230, 29, 63, .10);
  color: var(--tpls-red);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.tpls-plan-card-featured h2 {
  font-size: clamp(38px, 4vw, 52px);
}

.tpls-plan-card-featured .tpls-btn {
  min-height: 54px;
  padding: 0 30px;
  box-shadow: 0 12px 24px rgba(6, 27, 55, .16);
}

@media (min-width: 980px) {
  .tpls-plan-card-featured {
    transform: translateY(-10px);
  }
}

@media (max-width: 820px) {
  .tpls-plan-card-featured {
    transform: none;
  }
}


/* Legacy page visual polish updates - 2.0.7 */

.tpls-youth-band {
  background:
    linear-gradient(
      90deg,
      rgba(4, 22, 45, .9) 0%,
      rgba(5, 25, 48, .68) 46%,
      rgba(6, 28, 52, .72) 100%
    ),
    var(--tpls-youth-image) center center / cover no-repeat;
}

.tpls-youth-band__content {
  max-width: 460px;
}

.tpls-ways .tpls-center h2 {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.12;
}

.tpls-mission-solo .tpls-copy {
  max-width: 820px;
}

.tpls-mission-solo .tpls-copy p {
  font-size: 17px;
  line-height: 1.65;
}

.tpls-plan-grid {
  gap: 18px;
}

.tpls-benefit {
  min-height: 150px;
  padding: 28px 30px;
}

@media (max-width: 820px) {
  .tpls-youth-band__content {
    max-width: 100%;
  }

  .tpls-ways .tpls-center h2 {
    font-size: clamp(28px, 7vw, 38px);
  }

  .tpls-mission-solo .tpls-copy p {
    font-size: 16px;
  }
}


/* Youth imagery reposition update - 2.0.9 */
.tpls-youth-image-divider {
  min-height: 260px;
  margin: 8px 0 0;
  background:
    linear-gradient(90deg, rgba(4, 22, 45, .38) 0%, rgba(5, 25, 48, .28) 44%, rgba(6, 28, 52, .62) 100%),
    var(--tpls-youth-image) center center / cover no-repeat;
}

@media (max-width: 820px) {
  .tpls-youth-image-divider {
    min-height: 210px;
    background-position: center center;
  }
}

@media (max-width: 520px) {
  .tpls-youth-image-divider {
    min-height: 180px;
  }
}


/* Move Ways to Give heading over the real imagery divider */
.tpls-youth-image-divider-with-copy {
  display: grid;
  align-items: center;
  min-height: 360px;
  margin: 0;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(4, 22, 45, .92) 0%, rgba(5, 25, 48, .76) 46%, rgba(6, 28, 52, .82) 100%),
    var(--tpls-youth-image) center center / cover no-repeat;
}

.tpls-youth-image-divider-with-copy .tpls-container {
  width: min(1100px, calc(100% - 56px));
}

.tpls-youth-image-divider__content {
  max-width: 900px;
  padding: 70px 0;
}

.tpls-youth-image-divider__content h2 {
  max-width: 900px;
  margin: 0;
  color: #fff;
  font-size: clamp(42px, 5.2vw, 72px);
  line-height: 1.03;
  text-transform: uppercase;
}

.tpls-youth-image-divider__content .tpls-eyebrow {
  color: var(--tpls-red);
}

/* Since the heading now lives over the image, tighten the card grid section top */
.tpls-ways {
  padding-top: 42px;
}

/* Larger hero/final CTA buttons for primary estate-plan actions */
.tpls-hero .tpls-btn,
.tpls-final-cta .tpls-btn {
  min-height: 54px;
  padding: 0 32px;
  font-size: 14px;
}

/* Ensure longer printable Letter of Intent button reads cleanly */
.tpls-btn {
  text-align: center;
}

.tpls-final-cta__actions {
  gap: 18px;
}

/* Contact formatting */
.tpls-contact-person {
  display: grid;
  gap: 3px;
  margin: 12px 0 18px;
  color: var(--tpls-ink);
}

.tpls-contact-person strong {
  display: block;
  font-size: 18px;
  font-weight: 900;
}

.tpls-contact-person span {
  color: #44536a;
  font-size: 14px;
  font-weight: 700;
}

.tpls-contact-list a strong {
  font-weight: 900;
}

@media (max-width: 820px) {
  .tpls-youth-image-divider-with-copy {
    min-height: 310px;
  }

  .tpls-youth-image-divider-with-copy .tpls-container {
    width: min(100% - 32px, 680px);
  }

  .tpls-youth-image-divider__content {
    padding: 52px 0;
  }

  .tpls-youth-image-divider__content h2 {
    font-size: clamp(32px, 8vw, 48px);
  }

  .tpls-hero .tpls-btn,
  .tpls-final-cta .tpls-btn {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .tpls-youth-image-divider-with-copy {
    min-height: 280px;
  }

  .tpls-youth-image-divider__content h2 {
    font-size: 30px;
  }
}


/* Requested copy/layout + Make Your Will prominence updates - 2.1.1 */

/* Move Ways to Give heading over the real imagery divider */
.tpls-youth-image-divider-with-copy {
  display: grid;
  align-items: center;
  min-height: 360px;
  margin: 0;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(4, 22, 45, .92) 0%, rgba(5, 25, 48, .76) 46%, rgba(6, 28, 52, .82) 100%),
    var(--tpls-youth-image) center center / cover no-repeat;
}

.tpls-youth-image-divider-with-copy .tpls-container {
  width: min(1100px, calc(100% - 56px));
}

.tpls-youth-image-divider__content {
  max-width: 900px;
  padding: 70px 0;
}

.tpls-youth-image-divider__content h2 {
  max-width: 900px;
  margin: 0;
  color: #fff;
  font-size: clamp(42px, 5.2vw, 72px);
  line-height: 1.03;
  text-transform: uppercase;
}

.tpls-youth-image-divider__content .tpls-eyebrow {
  color: var(--tpls-red);
}

.tpls-ways {
  padding-top: 42px;
}

/* Larger hero/final CTA buttons for primary estate-plan actions */
.tpls-hero .tpls-btn,
.tpls-final-cta .tpls-btn {
  min-height: 54px;
  padding: 0 32px;
  font-size: 14px;
  text-align: center;
}

.tpls-hero-actions {
  gap: 14px;
}

/* Make the will CTA prominent near the top without competing with the red primary CTA */
.tpls-btn-will,
.tpls-header-btn-secondary,
.tpls-mobile-primary {
  background: #fff;
  border: 1.5px solid rgba(255, 255, 255, .8);
  color: var(--tpls-navy);
}

.tpls-hero .tpls-btn-will {
  background: #fff;
  border-color: #fff;
  color: var(--tpls-navy);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
}

.tpls-btn-will:hover,
.tpls-btn-will:focus,
.tpls-header-btn-secondary:hover,
.tpls-header-btn-secondary:focus,
.tpls-mobile-primary:hover,
.tpls-mobile-primary:focus {
  color: var(--tpls-navy);
  filter: brightness(.94);
}

/* Ensure longer printable Letter of Intent button reads cleanly */
.tpls-final-cta__actions {
  gap: 18px;
}

/* Contact formatting */
.tpls-contact-person {
  display: grid;
  gap: 3px;
  margin: 12px 0 18px;
  color: var(--tpls-ink);
}

.tpls-contact-person strong {
  display: block;
  font-size: 18px;
  font-weight: 900;
}

.tpls-contact-person span {
  color: #44536a;
  font-size: 14px;
  font-weight: 700;
}

.tpls-contact-list a strong {
  font-weight: 900;
}

@media (max-width: 820px) {
  .tpls-youth-image-divider-with-copy {
    min-height: 310px;
  }

  .tpls-youth-image-divider-with-copy .tpls-container {
    width: min(100% - 32px, 680px);
  }

  .tpls-youth-image-divider__content {
    padding: 52px 0;
  }

  .tpls-youth-image-divider__content h2 {
    font-size: clamp(32px, 8vw, 48px);
  }

  .tpls-hero .tpls-btn,
  .tpls-final-cta .tpls-btn {
    width: 100%;
  }

  .tpls-hero-actions {
    display: grid;
  }
}

@media (max-width: 520px) {
  .tpls-youth-image-divider-with-copy {
    min-height: 280px;
  }

  .tpls-youth-image-divider__content h2 {
    font-size: 30px;
  }
}


/* Header Make Your Will text color fix - 2.1.2 */
.tpls-site-header .tpls-header-btn-secondary,
.tpls-site-header .tpls-header-btn-secondary:visited {
  background: #fff;
  border-color: #fff;
  color: var(--tpls-navy) !important;
}

.tpls-site-header .tpls-header-btn-secondary:hover,
.tpls-site-header .tpls-header-btn-secondary:focus {
  color: var(--tpls-navy) !important;
  filter: brightness(.94);
}


/* Remove youth divider and restore standard Ways heading - 2.1.3 */
.tpls-youth-image-divider,
.tpls-youth-image-divider-with-copy {
  display: none;
}

.tpls-ways {
  padding-top: 52px;
}

.tpls-ways .tpls-center h2 {
  display: block;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  color: var(--tpls-ink);
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.12;
  text-transform: uppercase;
}


/* Copy cleanup - 2.1.4
   Visible page copy now spells out "Turning Point USA" instead of "TPUSA".
*/


/* Header variable scope fix - 2.1.5
   The header sits outside .tpls-page, so define the key variables globally too.
*/
:root {
  --tpls-navy: #061b37;
  --tpls-blue: #0b3159;
  --tpls-red: #e61d3f;
  --tpls-ink: #071b3a;
  --tpls-muted: #4f5d72;
  --tpls-line: #d8dee8;
  --tpls-soft: #f5f8fc;
}

.tpls-site-header {
  --tpls-navy: #061b37;
  --tpls-blue: #0b3159;
  --tpls-red: #e61d3f;
  --tpls-ink: #071b3a;
}


/* Ways to Give youth background update - 2.1.6 */
.tpls-ways {
  position: relative;
  padding: 76px 0 72px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(246,249,253,.92) 100%),
    var(--tpls-youth-image) center center / cover no-repeat;
}

.tpls-ways::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top left, rgba(230, 29, 63, .08), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.88), rgba(255,255,255,.78));
  pointer-events: none;
}

.tpls-ways .tpls-container {
  position: relative;
  z-index: 1;
}

.tpls-ways .tpls-center {
  max-width: 960px;
  margin: 0 auto;
  padding: 26px 26px 8px;
  border-radius: 16px;
}

.tpls-ways .tpls-center h2 {
  display: block;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  color: var(--tpls-ink);
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.12;
  text-transform: uppercase;
}

@media (max-width: 820px) {
  .tpls-ways {
    padding: 62px 0 58px;
    background-position: center center;
  }

  .tpls-ways .tpls-center {
    padding: 20px 0 4px;
  }

  .tpls-ways .tpls-center h2 {
    font-size: clamp(28px, 7vw, 38px);
  }
}


/* Ways to Give background visibility fix - 2.1.7
   Previous overlay was too light/opaque, so the image could be technically loaded but visually hidden.
*/
.tpls-ways {
  position: relative;
  isolation: isolate;
  padding: 76px 0 72px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.82) 0%, rgba(246,249,253,.84) 100%),
    var(--tpls-youth-image) center center / cover no-repeat !important;
}

.tpls-ways::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(255,255,255,.22), rgba(255,255,255,.48));
  pointer-events: none;
}

.tpls-ways .tpls-container {
  position: relative;
  z-index: 1;
}

.tpls-ways .tpls-center {
  max-width: 960px;
  margin: 0 auto 28px;
  padding: 28px 28px 22px;
  border: 1px solid rgba(216, 222, 232, .78);
  border-radius: 18px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 16px 38px rgba(4, 24, 49, .08);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.tpls-give-card {
  background: rgba(255,255,255,.94);
}

@media (max-width: 820px) {
  .tpls-ways {
    padding: 62px 0 58px;
    background-position: center center !important;
  }

  .tpls-ways .tpls-center {
    padding: 22px 18px 18px;
  }
}


/* Copy apostrophe fix - 2.1.8 */


/* Ways to Give footer background + tablet plan stack - 2.1.9 */
.tpls-ways {
  position: relative;
  isolation: isolate;
  padding: 76px 0 72px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.86) 0%, rgba(246,249,253,.88) 100%),
    var(--tpls-footer-bg-image) center center / cover no-repeat !important;
}

.tpls-ways::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at top left, rgba(230, 29, 63, .08), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.72), rgba(255,255,255,.52));
  pointer-events: none;
}

.tpls-ways .tpls-container {
  position: relative;
  z-index: 1;
}

.tpls-ways .tpls-center {
  max-width: 960px;
  margin: 0 auto 28px;
  padding: 28px 28px 22px;
  border: 1px solid rgba(216, 222, 232, .78);
  border-radius: 18px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 16px 38px rgba(4, 24, 49, .08);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.tpls-ways .tpls-center h2 {
  display: block;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  color: var(--tpls-ink);
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.12;
  text-transform: uppercase;
}

.tpls-give-card {
  background: rgba(255,255,255,.95);
}

/* Tablet: stack Create Your Free Will and Already included Turning Point USA cards */
@media (max-width: 1150px) {
  .tpls-plan-grid {
    grid-template-columns: 1fr;
    max-width: 760px;
  }

  .tpls-plan-card-featured {
    transform: none;
  }
}

@media (max-width: 820px) {
  .tpls-ways {
    padding: 62px 0 58px;
    background-position: center center !important;
  }

  .tpls-ways .tpls-center {
    padding: 22px 18px 18px;
  }

  .tpls-ways .tpls-center h2 {
    font-size: clamp(28px, 7vw, 38px);
  }
}


/* Render fix: no inline PHP in background style - 2.2.0
   Uses a CSS-relative path for the existing theme footer background image.
*/
.tpls-ways {
  position: relative;
  isolation: isolate;
  padding: 76px 0 72px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.86) 0%, rgba(246,249,253,.88) 100%),
    url("../../img/footer-bg.jpg") center center / cover no-repeat !important;
}

.tpls-ways::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at top left, rgba(230, 29, 63, .08), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.72), rgba(255,255,255,.52));
  pointer-events: none;
}

.tpls-ways .tpls-container {
  position: relative;
  z-index: 1;
}

.tpls-ways .tpls-center {
  max-width: 960px;
  margin: 0 auto 28px;
  padding: 28px 28px 22px;
  border: 1px solid rgba(216, 222, 232, .78);
  border-radius: 18px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 16px 38px rgba(4, 24, 49, .08);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.tpls-ways .tpls-center h2 {
  display: block;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  color: var(--tpls-ink);
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.12;
  text-transform: uppercase;
}

.tpls-give-card {
  background: rgba(255,255,255,.95);
}

/* Tablet: stack Create Your Free Will and Already included Turning Point USA cards */
@media (max-width: 1150px) {
  .tpls-plan-grid {
    grid-template-columns: 1fr;
    max-width: 760px;
  }

  .tpls-plan-card-featured {
    transform: none;
  }
}

@media (max-width: 820px) {
  .tpls-ways {
    padding: 62px 0 58px;
    background-position: center center !important;
  }

  .tpls-ways .tpls-center {
    padding: 22px 18px 18px;
  }

  .tpls-ways .tpls-center h2 {
    font-size: clamp(28px, 7vw, 38px);
  }
}


/* Footer background filename fix - 2.2.1
   Correct theme image path: /wp-content/themes/tpusa/img/footer-bg.jpg
*/
.tpls-ways {
  background:
    linear-gradient(180deg, rgba(255,255,255,.86) 0%, rgba(246,249,253,.88) 100%),
    url("../../img/footer-bg.jpg") center center / cover no-repeat !important;
}


/* Ways section markup cleanup - 2.2.2
   Background is handled in CSS only; no inline PHP/style attribute is used on the section.
*/
.tpls-ways {
  background:
    linear-gradient(180deg, rgba(255,255,255,.86) 0%, rgba(246,249,253,.88) 100%),
    url("../../img/footer-bg.jpg") center center / cover no-repeat !important;
}


/* Mission imagery update + remove Ways background image - 2.2.5 */
.tpls-mission-feature {
  padding: 54px 0 52px;
}

.tpls-mission-feature__grid {
  display: grid;
  grid-template-columns: minmax(320px, 480px) minmax(0, 1fr);
  gap: 54px;
  align-items: center;
}

.tpls-mission-feature__media {
  position: relative;
  min-height: 480px;
}

.tpls-mission-photo {
  margin: 0;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 18px 42px rgba(4, 24, 49, .14);
}

.tpls-mission-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tpls-mission-photo--primary {
  width: min(100%, 430px);
  height: 470px;
}

.tpls-mission-photo--secondary {
  position: absolute;
  left: -10px;
  bottom: -20px;
  width: 240px;
  height: 180px;
  border: 8px solid #fff;
}

.tpls-mission-feature__content {
  max-width: 640px;
}

.tpls-mission-feature__content .tpls-copy {
  max-width: none;
}

.tpls-mission-feature__content .tpls-copy p {
  font-size: 17px;
  line-height: 1.68;
}

.tpls-mission-feature__content h2 {
  margin-bottom: 18px;
}

/* restore clean Ways section */
.tpls-ways {
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%) !important;
}

.tpls-ways::before {
  display: none !important;
}

.tpls-ways .tpls-center {
  max-width: 960px;
  margin: 0 auto 28px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.tpls-give-card {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

@media (max-width: 1150px) {
  .tpls-mission-feature__grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .tpls-mission-feature__media {
    min-height: 0;
    max-width: 540px;
    margin: 0 auto;
  }

  .tpls-mission-photo--primary {
    width: 100%;
    height: 400px;
  }

  .tpls-mission-photo--secondary {
    left: 18px;
    bottom: -18px;
    width: 220px;
    height: 165px;
  }

  .tpls-mission-feature__content {
    max-width: 820px;
    text-align: center;
  }

  .tpls-mission-feature__content .tpls-copy {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
  }

  .tpls-plan-grid {
    grid-template-columns: 1fr;
    max-width: 760px;
  }

  .tpls-plan-card-featured {
    transform: none;
  }
}

@media (max-width: 680px) {
  .tpls-mission-feature {
    padding: 46px 0 44px;
  }

  .tpls-mission-feature__media {
    max-width: 100%;
  }

  .tpls-mission-photo--primary {
    height: 320px;
  }

  .tpls-mission-photo--secondary {
    position: relative;
    left: 0;
    bottom: 0;
    width: 72%;
    max-width: 250px;
    height: 160px;
    margin: -30px auto 0;
  }

  .tpls-mission-feature__content .tpls-copy p {
    font-size: 16px;
  }
}


/* Mission image swap, Charlie quote, sticky contact - 2.2.6 */
.tpls-mission-photo--primary {
  width: min(100%, 450px);
  height: 480px;
}

.tpls-mission-photo--secondary {
  width: 260px;
  height: 190px;
}

.tpls-charlie-quote {
  position: relative;
  margin: 26px 0 0;
  padding: 24px 26px 22px 30px;
  border-left: 5px solid var(--tpls-red);
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(4, 24, 49, .96), rgba(8, 43, 78, .93)),
    radial-gradient(circle at top right, rgba(230, 29, 63, .22), transparent 42%);
  color: #fff;
  box-shadow: 0 18px 42px rgba(4, 24, 49, .14);
  overflow: hidden;
}

.tpls-charlie-quote::before {
  content: "“";
  position: absolute;
  top: -32px;
  right: 18px;
  color: rgba(255,255,255,.08);
  font-family: Forum, "Times New Roman", serif;
  font-size: 154px;
  line-height: 1;
}

.tpls-charlie-quote blockquote {
  position: relative;
  margin: 0;
  font-family: Forum, "Times New Roman", serif;
  font-size: clamp(24px, 2.4vw, 34px);
  line-height: 1.14;
}

.tpls-charlie-quote figcaption {
  position: relative;
  margin-top: 14px;
  color: rgba(255,255,255,.82);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.tpls-contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  gap: 48px;
  align-items: start;
}

.tpls-contact-main {
  max-width: 720px;
}

.tpls-contact-main h2 {
  margin-bottom: 14px;
}

.tpls-contact-main p:not(.tpls-eyebrow) {
  max-width: 620px;
  font-size: 17px;
  line-height: 1.7;
}

.tpls-contact-card--sticky {
  position: sticky;
  top: 112px;
  text-align: left;
}

.tpls-contact-card__kicker {
  margin: 0 0 10px;
  color: var(--tpls-red);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.tpls-contact-card--sticky .tpls-contact-links {
  margin-top: 18px;
}

.tpls-contact-card--sticky .tpls-contact-links a {
  justify-content: flex-start;
}

@media (max-width: 1150px) {
  .tpls-mission-photo--primary {
    width: 100%;
    height: 410px;
  }

  .tpls-contact-layout {
    grid-template-columns: 1fr;
  }

  .tpls-contact-main {
    max-width: 820px;
    text-align: center;
    margin: 0 auto;
  }

  .tpls-contact-main p:not(.tpls-eyebrow) {
    margin-left: auto;
    margin-right: auto;
  }

  .tpls-contact-card--sticky {
    position: static;
    max-width: 520px;
    margin: 0 auto;
    text-align: center;
  }

  .tpls-contact-card--sticky .tpls-contact-links a {
    justify-content: center;
  }
}

@media (max-width: 680px) {
  .tpls-charlie-quote {
    padding: 22px 20px 20px;
  }

  .tpls-charlie-quote blockquote {
    font-size: 24px;
  }

  .tpls-mission-photo--primary {
    height: 320px;
  }

  .tpls-mission-photo--secondary {
    width: 72%;
    max-width: 260px;
    height: 165px;
  }
}


/* Four-image mission mosaic - 2.2.7 */
.tpls-mission-mosaic {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  grid-template-rows: 240px 188px;
  gap: 16px;
  min-height: 0;
}

.tpls-mission-mosaic .tpls-mission-photo {
  position: relative;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 18px 42px rgba(4, 24, 49, .14);
}

.tpls-mission-mosaic .tpls-mission-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tpls-mission-photo--one {
  grid-row: 1 / 3;
}

.tpls-mission-photo--two {
  grid-column: 2;
  grid-row: 1;
}

.tpls-mission-photo--three {
  grid-column: 2;
  grid-row: 2;
}

.tpls-mission-photo--four {
  display: none;
}

/* Use the fourth image as a subtle framed overlay so all four appear without crowding. */
.tpls-mission-photo--four {
  display: block;
  position: absolute !important;
  left: 34px;
  bottom: -28px;
  width: 205px !important;
  height: 145px !important;
  border: 8px solid #fff !important;
  z-index: 3;
}

.tpls-mission-feature__media.tpls-mission-mosaic {
  position: relative;
  padding-bottom: 30px;
}

.tpls-mission-feature__media.tpls-mission-mosaic::before {
  content: "";
  position: absolute;
  left: -18px;
  top: 28px;
  width: 96px;
  height: 96px;
  border-radius: 999px;
  background: rgba(230, 29, 63, .12);
  z-index: -1;
}

.tpls-mission-feature__media.tpls-mission-mosaic::after {
  content: "";
  position: absolute;
  right: -14px;
  bottom: 36px;
  width: 130px;
  height: 130px;
  border-radius: 999px;
  background: rgba(4, 24, 49, .08);
  z-index: -1;
}

@media (max-width: 1150px) {
  .tpls-mission-mosaic {
    grid-template-rows: 250px 190px;
    max-width: 620px;
    padding-bottom: 34px;
  }

  .tpls-mission-photo--four {
    left: 28px;
    bottom: -18px;
  }
}

@media (max-width: 680px) {
  .tpls-mission-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 230px 145px 145px;
    gap: 12px;
    padding-bottom: 0;
  }

  .tpls-mission-photo--one {
    grid-column: 1 / 3;
    grid-row: 1;
  }

  .tpls-mission-photo--two {
    grid-column: 1;
    grid-row: 2;
  }

  .tpls-mission-photo--three {
    grid-column: 2;
    grid-row: 2;
  }

  .tpls-mission-photo--four {
    position: relative !important;
    left: auto;
    bottom: auto;
    grid-column: 1 / 3;
    grid-row: 3;
    width: 100% !important;
    height: 145px !important;
    border: 0 !important;
  }

  .tpls-mission-feature__media.tpls-mission-mosaic::before,
  .tpls-mission-feature__media.tpls-mission-mosaic::after {
    display: none;
  }
}


/* Sticky contact + mobile image focal-point fix - 2.2.8 */

/* Give the sticky card enough scrollable parent height to visibly stick. */
.tpls-contact-section {
  min-height: 620px;
  padding-top: 70px;
  padding-bottom: 70px;
}

.tpls-contact-layout {
  align-items: start;
}

.tpls-contact-card--sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 128px;
  align-self: start;
  z-index: 3;
}

/* Add a little visual emphasis so the side contact card feels intentional. */
.tpls-contact-card--sticky {
  border-top: 5px solid var(--tpls-red);
  box-shadow: 0 24px 54px rgba(4, 24, 49, .15);
}

/* Keep all mission images focused toward the top on mobile. */
@media (max-width: 680px) {
  .tpls-mission-mosaic .tpls-mission-photo img {
    object-position: center top;
  }

  .tpls-mission-photo--one img,
  .tpls-mission-photo--two img,
  .tpls-mission-photo--three img,
  .tpls-mission-photo--four img {
    object-position: center top;
  }
}

/* On tablet/mobile, keep the contact card normal so it does not block content. */
@media (max-width: 1150px) {
  .tpls-contact-section {
    min-height: 0;
    padding-top: 54px;
    padding-bottom: 54px;
  }

  .tpls-contact-card--sticky {
    position: static;
    top: auto;
  }
}


/* Sticky contact side layout + undo mobile top focal point - 2.2.9 */

/* Undo the previous mobile top focal-point override. */
@media (max-width: 680px) {
  .tpls-mission-mosaic .tpls-mission-photo img,
  .tpls-mission-photo--one img,
  .tpls-mission-photo--two img,
  .tpls-mission-photo--three img,
  .tpls-mission-photo--four img {
    object-position: center center !important;
  }
}

/* Make contact a true desktop side layout with enough height for sticky to be visible. */
.tpls-contact-section {
  min-height: 760px !important;
  padding-top: 82px !important;
  padding-bottom: 82px !important;
  background: #f4f8fd;
}

.tpls-contact-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 390px) !important;
  gap: 56px !important;
  align-items: start !important;
}

.tpls-contact-main {
  max-width: 720px;
  text-align: left !important;
  padding-top: 20px;
}

.tpls-contact-main h2 {
  margin-bottom: 16px;
}

.tpls-contact-main p:not(.tpls-eyebrow) {
  max-width: 620px;
  margin-left: 0 !important;
  margin-right: 0 !important;
  font-size: 18px;
  line-height: 1.7;
}

.tpls-contact-card--sticky {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 124px !important;
  align-self: start !important;
  z-index: 5;
  max-width: none !important;
  margin: 0 !important;
  text-align: left !important;
  border-top: 5px solid var(--tpls-red);
  box-shadow: 0 24px 54px rgba(4, 24, 49, .15);
}

.tpls-contact-card--sticky .tpls-contact-links {
  margin-top: 18px;
}

.tpls-contact-card--sticky .tpls-contact-links a {
  justify-content: flex-start !important;
}

.tpls-contact-card__btn {
  width: 100%;
  margin-top: 18px;
}

@media (max-width: 1150px) {
  .tpls-contact-section {
    min-height: 0 !important;
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }

  .tpls-contact-layout {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  .tpls-contact-main {
    max-width: 820px;
    margin: 0 auto;
    text-align: center !important;
    padding-top: 0;
  }

  .tpls-contact-main p:not(.tpls-eyebrow) {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .tpls-contact-card--sticky {
    position: static !important;
    top: auto !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  .tpls-contact-card--sticky .tpls-contact-links a {
    justify-content: center !important;
  }
}


/* Mobile fourth mission image height - 2.3.0 */
@media (max-width: 680px) {
  .tpls-mission-photo--four {
    height: 245px !important;
  }
}


/* Mobile fourth mission image no-overlap fix - 2.3.1 */
@media (max-width: 680px) {
  .tpls-mission-mosaic {
    grid-template-rows: 230px 145px 245px !important;
    margin-bottom: 22px;
  }

  .tpls-mission-photo--four {
    height: 245px !important;
  }
}


/* Safe contact test variations - 2.3.4

Test URLs:
- /legacy/?nick_contact=1
- /legacy/?contact_header=compact
- /legacy/?contact_header=logo
- /legacy/?contact_rail=1
*/

.tpls-header-contact {
  display: none;
  align-items: center;
  gap: 12px;
  margin-left: auto;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.tpls-header-contact a {
  color: #fff;
  text-decoration: none;
}

.tpls-header-contact a:hover,
.tpls-header-contact a:focus {
  color: rgba(255,255,255,.78);
}

.tpls-header-contact__name {
  color: rgba(255,255,255,.72);
}

.tpls-contact-header-compact .tpls-site-header {
  transition: padding .22s ease, background .22s ease, box-shadow .22s ease;
}

.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-header {
  padding-top: 8px;
  padding-bottom: 8px;
  background: rgba(4, 24, 49, .96);
  box-shadow: 0 12px 36px rgba(0,0,0,.18);
}

.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-header-contact {
  display: inline-flex;
}

.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-header-menu,
.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-header-actions {
  display: none;
}

.tpls-contact-header-logo .tpls-header-menu,
.tpls-contact-header-logo .tpls-header-actions {
  display: none;
}

.tpls-contact-header-logo .tpls-header-contact {
  display: inline-flex;
}

.tpls-contact-header-logo .tpls-site-header {
  background: rgba(4, 24, 49, .96);
  box-shadow: 0 12px 36px rgba(0,0,0,.18);
}

.tpls-floating-contact-card {
  position: fixed;
  top: 132px;
  right: max(18px, calc((100vw - 1280px) / 2));
  z-index: 999;
  width: min(330px, calc(100vw - 36px));
  padding: 24px 22px 22px;
  border-top: 5px solid var(--tpls-red);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(4, 24, 49, .22);
  color: var(--tpls-ink);
}

.tpls-floating-contact-card__close {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 999px;
  background: rgba(4, 24, 49, .06);
  color: var(--tpls-ink);
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
}

.tpls-floating-contact-card__kicker {
  margin: 0 0 10px;
  color: var(--tpls-red);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.tpls-floating-contact-card h3 {
  margin: 0 0 4px;
  font-size: 21px;
}

.tpls-floating-contact-card p:not(.tpls-floating-contact-card__kicker) {
  margin: 0;
  color: rgba(10, 28, 58, .72);
  font-size: 14px;
  line-height: 1.45;
}

.tpls-floating-contact-card__links {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}

.tpls-floating-contact-card__links a {
  color: var(--tpls-ink);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.tpls-floating-contact-card__btn {
  width: 100%;
  margin-top: 18px;
  min-height: 44px;
  padding-left: 16px;
  padding-right: 16px;
  font-size: 11px;
}

.tpls-contact-rail {
  position: fixed;
  right: 0;
  top: 42%;
  z-index: 998;
  display: grid;
  gap: 8px;
  padding: 14px 12px;
  border-radius: 12px 0 0 12px;
  background: var(--tpls-red);
  color: #fff;
  box-shadow: 0 18px 42px rgba(4, 24, 49, .22);
  text-align: center;
  transform: translateY(-50%);
}

.tpls-contact-rail span {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.tpls-contact-rail a {
  display: block;
  padding: 6px 8px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
}

.tpls-contact-rail a:hover,
.tpls-contact-rail a:focus {
  background: #fff;
  color: var(--tpls-red);
}

@media (max-width: 1150px) {
  .tpls-header-contact,
  .tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-header-contact,
  .tpls-contact-header-logo .tpls-header-contact,
  .tpls-floating-contact-card,
  .tpls-contact-rail {
    display: none !important;
  }
}


/* Compact header + sticky red contact bar variation - 2.3.5

Test URL:
- /legacy/?contact_header=bar
*/

.tpls-header-contact-bar {
  position: fixed;
  top: var(--tpls-header-height, 88px);
  left: 0;
  right: 0;
  z-index: 997;
  display: none;
  background: var(--tpls-red);
  color: #fff;
  box-shadow: 0 12px 30px rgba(4, 24, 49, .18);
  transform: translateY(-100%);
  opacity: 0;
  transition: transform .22s ease, opacity .22s ease;
}

.tpls-header-contact-bar__inner {
  width: min(1180px, calc(100% - 36px));
  min-height: 42px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.tpls-header-contact-bar__label {
  padding: 5px 9px;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: .12em;
}

.tpls-header-contact-bar a {
  color: #fff;
  text-decoration: none;
}

.tpls-header-contact-bar a:hover,
.tpls-header-contact-bar a:focus {
  color: rgba(255,255,255,.78);
}

.tpls-contact-header-bar .tpls-site-header {
  transition: padding .22s ease, background .22s ease, box-shadow .22s ease;
}

.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-site-header {
  padding-top: 8px;
  padding-bottom: 8px;
  background: rgba(4, 24, 49, .96);
  box-shadow: 0 12px 36px rgba(0,0,0,.18);
}

.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-header-contact-bar {
  display: block;
  transform: translateY(0);
  opacity: 1;
}

.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-header-logo img {
  max-height: 42px;
}

/* Add offset so anchor jumps/content do not hide under the bar while the variant is active. */
.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-page {
  scroll-margin-top: 132px;
}

@media (max-width: 1150px) {
  .tpls-header-contact-bar,
  .tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-header-contact-bar {
    display: none !important;
  }
}


/* Refined red contact bar variation - 2.3.6
   Test URL: /legacy/?contact_header=bar
*/
.tpls-header-contact-bar {
  top: 74px;
  background: linear-gradient(180deg, #f0183f 0%, #d91236 100%);
  border-top: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 10px 28px rgba(4, 24, 49, .20);
}

.tpls-header-contact-bar__inner {
  min-height: 46px;
  gap: 18px;
  font-size: 12px;
  line-height: 1;
}

.tpls-header-contact-bar__label {
  padding: 8px 16px;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  font-size: 11px;
  letter-spacing: .13em;
}

.tpls-header-contact-bar strong {
  font-size: 13px;
  letter-spacing: .06em;
}

.tpls-header-contact-bar a {
  font-size: 12px;
  letter-spacing: .06em;
}

.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-site-header {
  min-height: 74px;
  padding-top: 7px;
  padding-bottom: 7px;
}

/* Give the hero a little breathing room when the red bar is visible at the top of the viewport. */
.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-hero {
  scroll-margin-top: 124px;
}

@media (max-width: 1280px) {
  .tpls-header-contact-bar__inner {
    gap: 12px;
    font-size: 11px;
  }

  .tpls-header-contact-bar__label {
    padding: 7px 12px;
  }
}


/* Modal z-index fix - 2.3.7
   Ensure Ways to Give modals sit above sticky header, red contact bar, and plan cards.
*/
.tpls-modal {
  z-index: 99999 !important;
}

.tpls-modal[aria-hidden="false"],
.tpls-modal.is-active,
.tpls-modal.is-open {
  z-index: 99999 !important;
}

.tpls-modal__overlay {
  z-index: 99999 !important;
}

.tpls-modal__dialog {
  position: relative;
  z-index: 100000 !important;
}

body.tpls-modal-open .tpls-site-header,
body.tpls-modal-open .tpls-header-contact-bar,
body.tpls-modal-open .tpls-floating-contact-card,
body.tpls-modal-open .tpls-contact-rail {
  z-index: 1 !important;
}


/* Reliable compact header on scroll fix - 2.3.8
   Applies to:
   /legacy/?contact_header=compact
   /legacy/?contact_header=bar
*/
.tpls-contact-header-compact .tpls-site-header,
.tpls-contact-header-bar .tpls-site-header {
  transition:
    min-height .22s ease,
    padding .22s ease,
    background .22s ease,
    box-shadow .22s ease;
}

.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-header,
.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-site-header {
  min-height: 64px !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  background: rgba(4, 24, 49, .97) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,.2) !important;
}

.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-header-logo img,
.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-header-logo img {
  max-height: 38px !important;
  transition: max-height .22s ease;
}

/* Hide nav/actions for the compact-only variation once scrolled. */
.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-header-menu,
.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-header-actions {
  display: none !important;
}

/* Keep CTAs visible on the red-bar variation, just make the header tighter. */
.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-header-actions .tpls-header-btn {
  min-height: 38px !important;
  padding-left: 18px !important;
  padding-right: 18px !important;
  font-size: 11px !important;
}

.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-header-contact-bar {
  top: 64px !important;
}

@media (max-width: 1150px) {
  .tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-header,
  .tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-site-header {
    min-height: auto !important;
  }
}


/* Requested desktop scroll header tweaks - 2.3.9
   Applies when contact header compact/bar variations are scrolled.
*/
@media (min-width: 1151px) {
  .tpls-contact-header-is-scrolled .tpls-site-nav {
    display: none !important;
  }

  .tpls-contact-header-is-scrolled .tpls-site-logo__img {
    width: 90px !important;
    padding: 10px !important;
  }

  .tpls-contact-header-is-scrolled .tpls-site-header__inner {
    min-height: 64px !important;
  }

  /* Fallbacks for the legacy header class names used in earlier versions */
  .tpls-contact-header-is-scrolled .tpls-header-menu {
    display: none !important;
  }

  .tpls-contact-header-is-scrolled .tpls-header-logo img {
    width: 90px !important;
    max-height: none !important;
    padding: 10px !important;
  }

  .tpls-contact-header-is-scrolled .tpls-site-header {
    min-height: 64px !important;
  }
}


/* Scroll header padding zero - 2.4.0 */
.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-header,
.tpls-contact-header-bar.tpls-contact-header-is-scrolled .tpls-site-header {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}


/* Safe floating contact close fix - 2.4.2 */
.tpls-floating-contact-card.is-hidden {
  display: none !important;
}


/* Heading punctuation cleanup - 2.4.3
   Standard headings use no ending punctuation. Questions and intentionally sentence-style headings are left alone.
*/


/* Modal stacking + featured plan h2 size - 2.4.4
   Keep modals above sticky nav/header and the Create Your Free Will section.
*/
.tpls-modal,
.tpls-modal[aria-hidden="false"],
.tpls-modal.is-active,
.tpls-modal.is-open {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  isolation: isolate;
}

.tpls-modal__overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
}

.tpls-modal__dialog {
  position: relative !important;
  z-index: 2147483001 !important;
}

.tpls-modal[aria-hidden="false"] ~ .tpls-plan-section,
.tpls-modal.is-active ~ .tpls-plan-section,
.tpls-modal.is-open ~ .tpls-plan-section {
  z-index: auto !important;
}

/* Lower common sticky/floating page elements while a modal is open. */
body.tpls-modal-open .tpls-site-header,
body.tpls-modal-open .tpls-header-contact-bar,
body.tpls-modal-open .tpls-floating-contact-card,
body.tpls-modal-open .tpls-contact-rail,
body.tpls-modal-open .tpls-plan-section,
body.tpls-modal-open .tpls-plan-card-featured {
  z-index: 1 !important;
}

/* Requested featured card heading size. */
.tpls-plan-card-featured h2 {
  font-size: 44px !important;
  line-height: 1.06;
}


/* Card heading punctuation cleanup - 2.4.5
   Removes ending punctuation from standard/card headings.
   Keeps questions and intentionally punchy sentence headings like:
   Make your plan.
   Protect your legacy.
*/


/* Critical error rollback after modal JS test - 2.5.0
   Removes risky modal-force JS behavior. This restores the last stable page behavior.
*/
body.tpls-force-modal-open .tpls-site-header,
body.tpls-force-modal-open .tpls-header-contact-bar,
body.tpls-force-modal-open .tpls-floating-contact-card,
body.tpls-force-modal-open .tpls-contact-rail,
body.tpls-force-modal-open .tpls-plan-section,
body.tpls-force-modal-open .tpls-plan-grid,
body.tpls-force-modal-open .tpls-plan-card,
body.tpls-force-modal-open .tpls-plan-card-featured {
  visibility: visible !important;
  pointer-events: auto !important;
}

body.tpls-force-modal-open {
  overflow: auto !important;
}


/* CSS-only modal stacking fix - 2.5.1
   No JS/PHP changes. Uses :has() so the page layers are hidden only while a modal is open.
   This avoids the critical-error issue from the previous JS test.
*/
.tpls-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
}

.tpls-modal__overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
}

.tpls-modal__dialog {
  position: relative !important;
  z-index: 1000000 !important;
}

/* Modern-browser CSS fallback for the plan cards bleeding above the modal. */
@supports selector(body:has(.tpls-modal[aria-hidden="false"])) {
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-site-header,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-header-contact-bar,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-floating-contact-card,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-contact-rail,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-plan-section,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-plan-grid,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-plan-card,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-plan-card-featured {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal *,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal *::before,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal *::after {
    visibility: visible !important;
  }

  body:has(.tpls-modal[aria-hidden="false"]) {
    overflow: hidden !important;
  }
}

/* If the modal script uses classes instead of aria-hidden. */
@supports selector(body:has(.tpls-modal.is-open)) {
  body:has(.tpls-modal.is-open) .tpls-site-header,
  body:has(.tpls-modal.is-open) .tpls-header-contact-bar,
  body:has(.tpls-modal.is-open) .tpls-floating-contact-card,
  body:has(.tpls-modal.is-open) .tpls-contact-rail,
  body:has(.tpls-modal.is-open) .tpls-plan-section,
  body:has(.tpls-modal.is-open) .tpls-plan-grid,
  body:has(.tpls-modal.is-open) .tpls-plan-card,
  body:has(.tpls-modal.is-open) .tpls-plan-card-featured,
  body:has(.tpls-modal.is-active) .tpls-site-header,
  body:has(.tpls-modal.is-active) .tpls-header-contact-bar,
  body:has(.tpls-modal.is-active) .tpls-floating-contact-card,
  body:has(.tpls-modal.is-active) .tpls-contact-rail,
  body:has(.tpls-modal.is-active) .tpls-plan-section,
  body:has(.tpls-modal.is-active) .tpls-plan-grid,
  body:has(.tpls-modal.is-active) .tpls-plan-card,
  body:has(.tpls-modal.is-active) .tpls-plan-card-featured {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body:has(.tpls-modal.is-open) .tpls-modal,
  body:has(.tpls-modal.is-open) .tpls-modal *,
  body:has(.tpls-modal.is-active) .tpls-modal,
  body:has(.tpls-modal.is-active) .tpls-modal * {
    visibility: visible !important;
  }

  body:has(.tpls-modal.is-open),
  body:has(.tpls-modal.is-active) {
    overflow: hidden !important;
  }
}


/* Plan card h2 size update - 2.5.2 */
.tpls-plan-card h2,
.tpls-plan-card-featured h2 {
  font-size: 38px !important;
  line-height: 1.08;
}


/* Modal contact-only update - 2.5.3
   Modal popups no longer present form-style CTA buttons; they show contact info instead.
*/
.tpls-modal__actions {
  display: none !important;
}

.tpls-modal__contact-only {
  margin-top: 24px;
  padding: 22px;
  border: 1px solid rgba(216, 222, 232, .9);
  border-radius: 14px;
  background: #f8fafc;
}

.tpls-modal__contact-only h4 {
  margin: 0 0 8px;
  color: var(--tpls-ink);
  font-size: 16px;
  line-height: 1.25;
}

.tpls-modal__contact-only p {
  margin: 0 0 14px;
  color: rgba(10, 28, 58, .72);
  font-size: 14px;
  line-height: 1.55;
}

.tpls-modal__contact-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tpls-modal__contact-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--tpls-navy);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .03em;
  text-decoration: none;
  text-transform: uppercase;
}

.tpls-modal__contact-links a:hover,
.tpls-modal__contact-links a:focus {
  background: var(--tpls-red);
  color: #fff;
}

@media (max-width: 640px) {
  .tpls-modal__contact-links {
    display: grid;
  }

  .tpls-modal__contact-links a {
    width: 100%;
  }
}


/* Modal bottom contact box style - 2.5.4
   Keeps modal popups form-free, but restores the stronger bottom contact box styling.
*/
.tpls-modal__actions {
  display: none !important;
}

.tpls-modal__contact-only {
  margin-top: 28px;
  padding: 28px 34px;
  border: 1px solid rgba(216, 222, 232, .95);
  border-left: 7px solid var(--tpls-red);
  border-radius: 14px;
  background: #f8fafc;
  box-shadow: 0 10px 28px rgba(4, 24, 49, .04);
}

.tpls-modal__contact-only h4 {
  margin: 0 0 14px;
  color: var(--tpls-ink);
  font-size: 24px;
  line-height: 1.22;
  font-weight: 900;
}

.tpls-modal__contact-only p {
  margin: 0;
  color: rgba(10, 28, 58, .78);
  font-size: clamp(20px, 2.1vw, 28px);
  line-height: 1.35;
}

.tpls-modal__contact-only a {
  color: var(--tpls-red);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.tpls-modal__contact-only a:hover,
.tpls-modal__contact-only a:focus {
  color: var(--tpls-navy);
}

@media (max-width: 640px) {
  .tpls-modal__contact-only {
    padding: 22px 20px;
  }

  .tpls-modal__contact-only h4 {
    font-size: 20px;
  }

  .tpls-modal__contact-only p {
    font-size: 18px;
  }
}


/* Printable Letter of Intent button text update - 2.5.5 */


/* EIN display update - 2.5.6 */
.tpls-modal__ein {
  margin-top: 10px !important;
  color: rgba(10, 28, 58, .74) !important;
  font-size: 16px !important;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.tpls-contact-ein {
  display: inline-flex;
  margin-top: 6px;
  color: rgba(10, 28, 58, .72);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}


/* Modal buttons restored / EIN removed - 2.5.7 */
.tpls-modal__actions {
  display: flex !important;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 26px;
}

.tpls-modal__actions .tpls-btn {
  min-height: 54px;
  padding-left: 24px;
  padding-right: 24px;
}

.tpls-modal__actions .tpls-btn-outline-red {
  border: 2px solid var(--tpls-red);
  background: #fff;
  color: var(--tpls-red);
}

.tpls-modal__actions .tpls-btn-outline-red:hover,
.tpls-modal__actions .tpls-btn-outline-red:focus {
  background: var(--tpls-red);
  color: #fff;
}

.tpls-modal__ein,
.tpls-contact-ein {
  display: none !important;
}

@media (max-width: 640px) {
  .tpls-modal__actions {
    display: grid !important;
  }

  .tpls-modal__actions .tpls-btn {
    width: 100%;
  }
}


/* Modal contact box text size adjustment - 2.5.8 */
.tpls-modal__contact-only {
  padding: 24px 30px;
}

.tpls-modal__contact-only h4 {
  font-size: 20px !important;
  line-height: 1.25;
  margin-bottom: 10px;
}

.tpls-modal__contact-only p {
  font-size: clamp(17px, 1.45vw, 22px) !important;
  line-height: 1.42;
}

@media (max-width: 640px) {
  .tpls-modal__contact-only {
    padding: 20px 18px;
  }

  .tpls-modal__contact-only h4 {
    font-size: 18px !important;
  }

  .tpls-modal__contact-only p {
    font-size: 16px !important;
  }
}


/* Modal icon removal - 2.5.9
   Remove/hide the decorative icon at the top of modal popups for better readability.
*/
.tpls-modal .tpls-svg-icon,
.tpls-modal__icon {
  display: none !important;
}

.tpls-modal__dialog {
  padding-top: 48px;
}

.tpls-modal .tpls-eyebrow {
  margin-top: 0 !important;
}


/* Compact contact header is now the default - 2.6.0
   Query-string variations remain available:
   ?contact_header=compact  (default)
   ?contact_header=bar
   ?contact_header=logo
   ?contact_header=none
*/
@media (min-width: 1151px) {
  body.tpls-contact-header-compact .tpls-site-header,
  body.tpls-contact-header-bar .tpls-site-header {
    transition:
      min-height .22s ease,
      padding .22s ease,
      background .22s ease,
      box-shadow .22s ease;
  }

  body.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-header {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-header__inner {
    min-height: 64px !important;
  }

  body.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-logo__img {
    width: 90px !important;
    padding: 10px !important;
  }

  body.tpls-contact-header-compact.tpls-contact-header-is-scrolled .tpls-site-nav {
    display: none !important;
  }
}


/* Charlie image near quote - 2.6.1 */
.tpls-charlie-quote-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 164px;
  gap: 22px;
  align-items: stretch;
  margin-top: 26px;
}

.tpls-charlie-quote-wrap .tpls-charlie-quote {
  margin-top: 0;
  height: 100%;
}

.tpls-charlie-quote-image {
  position: relative;
  margin: 0;
  min-height: 100%;
  overflow: hidden;
  border-radius: 14px;
  background: #e8edf4;
  box-shadow: 0 18px 42px rgba(4, 24, 49, .14);
}

.tpls-charlie-quote-image::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(4,24,49,0) 48%, rgba(4,24,49,.28) 100%);
  pointer-events: none;
}

.tpls-charlie-quote-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 235px;
  object-fit: cover;
  object-position: center top;
}

@media (max-width: 1150px) {
  .tpls-charlie-quote-wrap {
    grid-template-columns: minmax(0, 1fr) 150px;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
  }

  .tpls-charlie-quote-image img {
    min-height: 225px;
  }
}

@media (max-width: 680px) {
  .tpls-charlie-quote-wrap {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .tpls-charlie-quote-image {
    max-width: 260px;
    min-height: auto;
    margin: 0 auto;
  }

  .tpls-charlie-quote-image img {
    min-height: 260px;
  }
}


/* Charlie quote image crop/layout refinement - 2.6.2
   The source image needs more horizontal room; this prevents the narrow crop that only showed hands/lighting.
*/
.tpls-charlie-quote-wrap {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px) !important;
  gap: 28px;
  align-items: stretch;
}

.tpls-charlie-quote-image {
  min-height: 100%;
  border-radius: 18px;
}

.tpls-charlie-quote-image img {
  min-height: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: left center !important;
}

@media (max-width: 1150px) {
  .tpls-charlie-quote-wrap {
    grid-template-columns: 1fr !important;
    max-width: 760px;
  }

  .tpls-charlie-quote-image {
    width: 100%;
    max-width: none;
    min-height: 260px;
  }

  .tpls-charlie-quote-image img {
    min-height: 260px !important;
    max-height: 340px;
    object-position: left center !important;
  }
}

@media (max-width: 680px) {
  .tpls-charlie-quote-image {
    width: 100%;
    max-width: none;
    min-height: 245px;
  }

  .tpls-charlie-quote-image img {
    min-height: 245px !important;
    max-height: 300px;
    object-position: left center !important;
  }
}


/* Charlie image under quote - 2.6.3 */
.tpls-charlie-quote-wrap.tpls-charlie-quote-wrap--stacked {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  margin-top: 26px;
}

.tpls-charlie-quote-wrap--stacked .tpls-charlie-quote {
  margin: 0;
}

.tpls-charlie-quote-image--below {
  width: 100%;
  max-width: 620px;
  height: 260px;
  min-height: 0 !important;
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
}

.tpls-charlie-quote-image--below img {
  width: 100%;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center center !important;
}

@media (max-width: 1150px) {
  .tpls-charlie-quote-image--below {
    max-width: 760px;
    height: 250px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 680px) {
  .tpls-charlie-quote-image--below {
    height: 225px;
  }
}


/* Charlie quote overlap treatment - 2.6.4 */
.tpls-charlie-quote-wrap.tpls-charlie-quote-wrap--stacked {
  position: relative;
  display: block !important;
  max-width: 100%;
  margin-top: 30px;
  padding-bottom: 150px;
}

.tpls-charlie-quote-wrap--stacked .tpls-charlie-quote {
  position: relative;
  margin: 0;
  padding: 42px 56px 88px;
  border-radius: 18px;
}

.tpls-charlie-quote-wrap--stacked .tpls-charlie-quote blockquote {
  max-width: 940px;
  font-size: clamp(34px, 3.2vw, 54px);
  line-height: 1.18;
}

.tpls-charlie-quote-wrap--stacked .tpls-charlie-quote figcaption {
  margin-top: 24px;
}

.tpls-charlie-quote-image--below {
  position: absolute;
  right: 32px;
  bottom: 0;
  z-index: 2;
  width: min(64%, 760px);
  max-width: none;
  height: 275px;
  margin: 0;
  border: 0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(4, 24, 49, .18);
}

.tpls-charlie-quote-image--below::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(4,24,49,0) 42%, rgba(4,24,49,.48) 100%),
    linear-gradient(90deg, rgba(4,24,49,.18), rgba(4,24,49,0) 52%);
  pointer-events: none;
}

.tpls-charlie-quote-image--below img {
  display: block;
  width: 100%;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center center !important;
}

@media (max-width: 1150px) {
  .tpls-charlie-quote-wrap.tpls-charlie-quote-wrap--stacked {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 128px;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote {
    padding: 34px 34px 78px;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote blockquote {
    font-size: clamp(28px, 4.5vw, 42px);
  }

  .tpls-charlie-quote-image--below {
    right: 24px;
    width: min(72%, 560px);
    height: 230px;
  }
}

@media (max-width: 680px) {
  .tpls-charlie-quote-wrap.tpls-charlie-quote-wrap--stacked {
    padding-bottom: 0;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote {
    padding: 28px 24px 30px;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote blockquote {
    font-size: 28px;
  }

  .tpls-charlie-quote-image--below {
    position: relative;
    right: auto;
    bottom: auto;
    width: calc(100% - 28px);
    height: 220px;
    margin: -14px auto 0;
  }
}


/* Charlie overlap/name + tablet centering fix - 2.6.5 */

/* Give the attribution room so the overlapping image does not cover Charlie's name. */
.tpls-charlie-quote-wrap--stacked .tpls-charlie-quote {
  padding-bottom: 150px !important;
}

.tpls-charlie-quote-wrap--stacked .tpls-charlie-quote figcaption {
  position: relative;
  z-index: 4;
  max-width: 42%;
}

/* Keep the overlapping image lower/right so it avoids the attribution at narrow desktop widths. */
.tpls-charlie-quote-image--below {
  right: 34px !important;
  bottom: -18px !important;
  width: min(58%, 700px) !important;
  height: 250px !important;
}

/* Tablet: center the entire mission section and image/quote area. */
@media (max-width: 1150px) {
  .tpls-mission-feature__grid {
    justify-items: center;
  }

  .tpls-mission-feature__content {
    width: 100%;
    max-width: 860px !important;
    margin-left: auto;
    margin-right: auto;
    text-align: center !important;
  }

  .tpls-mission-feature__content .tpls-copy {
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
  }

  .tpls-charlie-quote-wrap.tpls-charlie-quote-wrap--stacked {
    width: min(100%, 760px);
    margin-left: auto !important;
    margin-right: auto !important;
    padding-bottom: 128px !important;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote {
    text-align: left;
    padding-bottom: 118px !important;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote figcaption {
    max-width: 48%;
  }

  .tpls-charlie-quote-image--below {
    right: 24px !important;
    bottom: -8px !important;
    width: min(62%, 520px) !important;
    height: 220px !important;
  }
}

/* At the awkward in-between size, stack the image below to prevent overlap. */
@media (max-width: 860px) {
  .tpls-charlie-quote-wrap.tpls-charlie-quote-wrap--stacked {
    padding-bottom: 0 !important;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote {
    padding-bottom: 34px !important;
  }

  .tpls-charlie-quote-wrap--stacked .tpls-charlie-quote figcaption {
    max-width: none;
  }

  .tpls-charlie-quote-image--below {
    position: relative !important;
    right: auto !important;
    bottom: auto !important;
    width: calc(100% - 32px) !important;
    max-width: 640px !important;
    height: 230px !important;
    margin: -12px auto 0 !important;
  }
}

@media (max-width: 680px) {
  .tpls-charlie-quote-image--below {
    width: calc(100% - 28px) !important;
    height: 220px !important;
  }
}


/* Charlie quote layout query-string variations - 2.6.8

Preview URLs:
- ?quote_layout=overlap     Current overlap treatment
- ?quote_layout=split       Image left / quote right
- ?quote_layout=banner      Quote card with wide image banner below
- ?quote_layout=background  Quote over subtle Charlie background
- ?quote_layout=badge       Small image badge near attribution
*/

/* Shared reset for preview variations */
.tpls-charlie-quote-wrap[class*="tpls-quote-layout-"] {
  width: min(100%, 1060px);
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Option 1: split card, image left and quote right */
.tpls-quote-layout-split {
  display: grid !important;
  grid-template-columns: minmax(280px, 38%) minmax(0, 1fr) !important;
  gap: 0 !important;
  padding-bottom: 0 !important;
  border-radius: 20px;
  overflow: hidden;
  background: var(--tpls-navy);
  box-shadow: 0 24px 60px rgba(4, 24, 49, .16);
}

.tpls-quote-layout-split .tpls-charlie-quote-image--below {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 430px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  order: 1;
  box-shadow: none;
}

.tpls-quote-layout-split .tpls-charlie-quote {
  order: 2;
  margin: 0 !important;
  padding: 46px 50px !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.tpls-quote-layout-split .tpls-charlie-quote blockquote {
  font-size: clamp(30px, 3vw, 46px) !important;
  line-height: 1.18 !important;
}

.tpls-quote-layout-split .tpls-charlie-quote figcaption {
  max-width: none !important;
}

/* Option 2: simple banner under quote */
.tpls-quote-layout-banner {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  padding-bottom: 0 !important;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 24px 60px rgba(4, 24, 49, .16);
}

.tpls-quote-layout-banner .tpls-charlie-quote {
  margin: 0 !important;
  padding: 46px 56px 38px !important;
  border-radius: 20px 20px 0 0 !important;
  box-shadow: none !important;
}

.tpls-quote-layout-banner .tpls-charlie-quote blockquote {
  max-width: 900px;
  font-size: clamp(32px, 3.35vw, 50px) !important;
  line-height: 1.18 !important;
}

.tpls-quote-layout-banner .tpls-charlie-quote-image--below {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  height: 310px !important;
  margin: 0 !important;
  border-radius: 0 0 20px 20px !important;
  transform: none !important;
  box-shadow: none;
}

/* Option 3: Charlie image as subtle background */
.tpls-quote-layout-background {
  display: block !important;
  padding-bottom: 0 !important;
}

.tpls-quote-layout-background .tpls-charlie-quote {
  margin: 0 !important;
  padding: 54px 64px !important;
  border-radius: 20px !important;
  background:
    linear-gradient(90deg, rgba(4, 24, 49, .96) 0%, rgba(4, 24, 49, .90) 48%, rgba(4, 24, 49, .70) 100%),
    url("../../img/Charlie-Kirk.jpg") center center / cover no-repeat !important;
  box-shadow: 0 24px 60px rgba(4, 24, 49, .16);
}

.tpls-quote-layout-background .tpls-charlie-quote blockquote {
  max-width: 780px;
  font-size: clamp(32px, 3.25vw, 50px) !important;
  line-height: 1.18 !important;
}

.tpls-quote-layout-background .tpls-charlie-quote-image--below {
  display: none !important;
}

/* Option 4: small portrait badge near attribution */
.tpls-quote-layout-badge {
  display: block !important;
  position: relative;
  padding-bottom: 0 !important;
}

.tpls-quote-layout-badge .tpls-charlie-quote {
  margin: 0 !important;
  padding: 46px 56px 42px 210px !important;
  border-radius: 20px !important;
  min-height: 280px;
}

.tpls-quote-layout-badge .tpls-charlie-quote blockquote {
  max-width: 860px;
  font-size: clamp(30px, 3vw, 46px) !important;
  line-height: 1.18 !important;
}

.tpls-quote-layout-badge .tpls-charlie-quote-image--below {
  position: absolute !important;
  left: 42px !important;
  top: 50% !important;
  bottom: auto !important;
  right: auto !important;
  width: 132px !important;
  height: 132px !important;
  min-height: 0 !important;
  margin: 0 !important;
  border: 5px solid rgba(255,255,255,.9);
  border-radius: 999px !important;
  overflow: hidden;
  transform: translateY(-50%) !important;
  box-shadow: 0 16px 36px rgba(0,0,0,.25);
}

.tpls-quote-layout-badge .tpls-charlie-quote-image--below img {
  object-position: 30% center !important;
}

/* Tablet/mobile variations */
@media (max-width: 1150px) {
  .tpls-quote-layout-split {
    grid-template-columns: 1fr !important;
    max-width: 760px;
  }

  .tpls-quote-layout-split .tpls-charlie-quote-image--below {
    min-height: 280px !important;
    height: 280px !important;
    order: 1;
  }

  .tpls-quote-layout-split .tpls-charlie-quote {
    order: 2;
    padding: 38px 38px !important;
  }

  .tpls-quote-layout-banner,
  .tpls-quote-layout-background,
  .tpls-quote-layout-badge {
    max-width: 760px;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote {
    padding-left: 170px !important;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote-image--below {
    left: 30px !important;
    width: 112px !important;
    height: 112px !important;
  }
}

@media (max-width: 680px) {
  .tpls-quote-layout-split .tpls-charlie-quote,
  .tpls-quote-layout-banner .tpls-charlie-quote,
  .tpls-quote-layout-background .tpls-charlie-quote {
    padding: 28px 22px !important;
  }

  .tpls-quote-layout-split .tpls-charlie-quote blockquote,
  .tpls-quote-layout-banner .tpls-charlie-quote blockquote,
  .tpls-quote-layout-background .tpls-charlie-quote blockquote {
    font-size: 27px !important;
  }

  .tpls-quote-layout-split .tpls-charlie-quote-image--below,
  .tpls-quote-layout-banner .tpls-charlie-quote-image--below {
    height: 220px !important;
    min-height: 220px !important;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote {
    padding: 110px 22px 28px !important;
    text-align: left;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote blockquote {
    font-size: 27px !important;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote-image--below {
    top: 24px !important;
    left: 22px !important;
    transform: none !important;
    width: 74px !important;
    height: 74px !important;
  }
}


/* Charlie badge default + splitfill variation - 2.6.9 */

/* Make badge the cleaner preferred option with slightly smaller text */
.tpls-quote-layout-badge {
  max-width: 1080px;
}

.tpls-quote-layout-badge .tpls-charlie-quote {
  min-height: 0;
  padding: 46px 56px 42px 210px !important;
}

.tpls-quote-layout-badge .tpls-charlie-quote blockquote {
  max-width: 780px;
  font-size: clamp(27px, 2.55vw, 40px) !important;
  line-height: 1.22 !important;
}

.tpls-quote-layout-badge .tpls-charlie-quote figcaption {
  margin-top: 18px !important;
}

.tpls-quote-layout-badge .tpls-charlie-quote-image--below {
  width: 122px !important;
  height: 122px !important;
}

/* New option: splitfill */
.tpls-quote-layout-splitfill {
  display: grid !important;
  grid-template-columns: minmax(300px, 36%) minmax(0, 1fr) !important;
  gap: 0 !important;
  padding-bottom: 0 !important;
  border-radius: 20px;
  overflow: hidden;
  background: var(--tpls-navy);
  box-shadow: 0 24px 60px rgba(4, 24, 49, .16);
  max-width: 1080px;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote-image--below {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 430px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden;
  box-shadow: none !important;
  order: 1;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote-image--below::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(4,24,49,.12), rgba(4,24,49,.40)),
    linear-gradient(90deg, rgba(4,24,49,.08), rgba(4,24,49,0) 55%);
  pointer-events: none;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote-image--below img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 34% center !important;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote {
  order: 2;
  margin: 0 !important;
  padding: 48px 52px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote blockquote {
  max-width: 620px;
  font-size: clamp(27px, 2.45vw, 40px) !important;
  line-height: 1.22 !important;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote figcaption {
  max-width: none !important;
  margin-top: 18px !important;
}

@media (max-width: 1150px) {
  .tpls-quote-layout-badge,
  .tpls-quote-layout-splitfill {
    max-width: 760px;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote {
    padding: 38px 38px 34px 170px !important;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote blockquote {
    font-size: clamp(25px, 3.8vw, 34px) !important;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote-image--below {
    left: 30px !important;
    width: 104px !important;
    height: 104px !important;
  }

  .tpls-quote-layout-splitfill {
    grid-template-columns: 1fr !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote-image--below {
    min-height: 280px !important;
    height: 280px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote {
    padding: 38px 38px 40px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote blockquote {
    font-size: clamp(25px, 4vw, 34px) !important;
  }
}

@media (max-width: 680px) {
  .tpls-quote-layout-badge .tpls-charlie-quote {
    padding: 110px 22px 28px !important;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote blockquote {
    font-size: 24px !important;
    line-height: 1.24 !important;
  }

  .tpls-quote-layout-badge .tpls-charlie-quote-image--below {
    top: 22px !important;
    left: 22px !important;
    width: 72px !important;
    height: 72px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote {
    padding: 28px 22px 30px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote blockquote {
    font-size: 24px !important;
    line-height: 1.24 !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote-image--below {
    min-height: 220px !important;
    height: 220px !important;
  }
}


/* Splitfill layout fix - 2.7.0
   Keeps splitfill as a true side-by-side card on desktop/tablet and removes the gray empty area.
*/
.tpls-quote-layout-splitfill {
  display: grid !important;
  grid-template-columns: minmax(300px, 38%) minmax(0, 1fr) !important;
  grid-template-rows: auto !important;
  gap: 0 !important;
  width: min(100%, 1080px) !important;
  max-width: 1080px !important;
  min-height: 440px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  background: var(--tpls-navy) !important;
  box-shadow: 0 24px 60px rgba(4, 24, 49, .16);
}

.tpls-quote-layout-splitfill .tpls-charlie-quote-image,
.tpls-quote-layout-splitfill .tpls-charlie-quote-image--below {
  grid-column: 1 !important;
  grid-row: 1 !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 440px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  overflow: hidden !important;
  background: transparent !important;
  box-shadow: none !important;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote-image img,
.tpls-quote-layout-splitfill .tpls-charlie-quote-image--below img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 440px !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: 34% center !important;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote {
  grid-column: 2 !important;
  grid-row: 1 !important;
  position: relative !important;
  margin: 0 !important;
  padding: 54px 56px !important;
  border: 0 !important;
  border-left: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  align-self: center;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote::before {
  display: none !important;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote blockquote {
  max-width: 630px !important;
  font-size: clamp(27px, 2.45vw, 40px) !important;
  line-height: 1.22 !important;
}

.tpls-quote-layout-splitfill .tpls-charlie-quote figcaption {
  max-width: none !important;
  margin-top: 18px !important;
}

/* Keep splitfill side-by-side longer; stack only on narrower mobile/tablet. */
@media (max-width: 900px) {
  .tpls-quote-layout-splitfill {
    grid-template-columns: 1fr !important;
    min-height: 0;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote-image,
  .tpls-quote-layout-splitfill .tpls-charlie-quote-image--below {
    grid-column: 1 !important;
    grid-row: 1 !important;
    height: 270px !important;
    min-height: 270px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote-image img,
  .tpls-quote-layout-splitfill .tpls-charlie-quote-image--below img {
    min-height: 270px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote {
    grid-column: 1 !important;
    grid-row: 2 !important;
    padding: 36px 34px 40px !important;
    border-left: 0 !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote blockquote {
    font-size: clamp(25px, 4vw, 34px) !important;
  }
}

@media (max-width: 680px) {
  .tpls-quote-layout-splitfill .tpls-charlie-quote-image,
  .tpls-quote-layout-splitfill .tpls-charlie-quote-image--below {
    height: 220px !important;
    min-height: 220px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote-image img,
  .tpls-quote-layout-splitfill .tpls-charlie-quote-image--below img {
    min-height: 220px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote {
    padding: 28px 22px 30px !important;
  }

  .tpls-quote-layout-splitfill .tpls-charlie-quote blockquote {
    font-size: 24px !important;
    line-height: 1.24 !important;
  }
}


/* Splitfill overlay variation - 2.7.1
   Charlie image fills the full card, with the quote/content overlaid on the right.
*/
.tpls-quote-layout-splitfilloverlay {
  position: relative;
  display: flex !important;
  align-items: stretch;
  width: min(100%, 1080px) !important;
  max-width: 1080px !important;
  min-height: 460px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  background:
    linear-gradient(90deg, rgba(4,24,49,.24) 0%, rgba(4,24,49,.38) 34%, rgba(4,24,49,.78) 58%, rgba(4,24,49,.94) 100%),
    var(--tpls-navy) !important;
  box-shadow: 0 24px 60px rgba(4, 24, 49, .16);
}

.tpls-quote-layout-splitfilloverlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(4,24,49,.06), rgba(4,24,49,.08)),
    linear-gradient(90deg, rgba(4,24,49,.06) 0%, rgba(4,24,49,0) 42%, rgba(4,24,49,.14) 100%);
  pointer-events: none;
  z-index: 1;
}

.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image,
.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image--below {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 460px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  overflow: hidden !important;
  background: transparent !important;
  box-shadow: none !important;
  z-index: 0;
}

.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image img,
.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image--below img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 460px !important;
  object-fit: cover !important;
  object-position: 28% center !important;
  filter: saturate(1.02) contrast(1.02);
}

.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote {
  position: relative !important;
  z-index: 2;
  width: min(56%, 610px);
  margin: 0 0 0 auto !important;
  padding: 52px 52px 46px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  align-self: center;
}

.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote::before {
  display: none !important;
}

.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote blockquote {
  max-width: none !important;
  font-size: clamp(27px, 2.45vw, 40px) !important;
  line-height: 1.22 !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.18);
}

.tpls-quote-layout-splitfilloverlay .tpls-charlie-quote figcaption {
  max-width: none !important;
  margin-top: 18px !important;
}

@media (max-width: 1150px) {
  .tpls-quote-layout-splitfilloverlay {
    max-width: 760px !important;
    min-height: 400px;
    background:
      linear-gradient(90deg, rgba(4,24,49,.38) 0%, rgba(4,24,49,.58) 40%, rgba(4,24,49,.84) 64%, rgba(4,24,49,.94) 100%),
      var(--tpls-navy) !important;
  }

  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image,
  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image--below,
  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image img,
  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image--below img {
    min-height: 400px !important;
  }

  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote {
    width: min(62%, 470px);
    padding: 40px 36px 36px !important;
  }

  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote blockquote {
    font-size: clamp(25px, 3.8vw, 34px) !important;
  }
}

@media (max-width: 820px) {
  .tpls-quote-layout-splitfilloverlay {
    min-height: 0;
    background:
      linear-gradient(180deg, rgba(4,24,49,.12) 0%, rgba(4,24,49,.35) 42%, rgba(4,24,49,.88) 100%),
      var(--tpls-navy) !important;
  }

  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image,
  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image--below,
  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image img,
  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote-image--below img {
    min-height: 430px !important;
    object-position: 30% 20% !important;
  }

  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote {
    width: 100%;
    margin-top: auto !important;
    padding: 180px 24px 28px !important;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .tpls-quote-layout-splitfilloverlay .tpls-charlie-quote blockquote {
    font-size: 24px !important;
    line-height: 1.24 !important;
  }
}


/* Default Charlie quote layout set to splitfilloverlay - 2.7.2 */


@media (max-width: 1100px) {
  .tpls-hero::after {
    background-position: right -28px bottom 0;
    background-size: clamp(390px, 54vw, 760px) auto;
    opacity: .96;
  }
}

@media (max-width: 820px) {
  .tpls-hero::after {
    background-position: right -110px bottom 0;
    background-size: 620px auto;
    opacity: .46;
  }
}

@media (max-width: 640px) {
  .tpls-hero::after {
    background-position: right -160px bottom 0;
    background-size: 560px auto;
    opacity: .34;
  }
}

/* Hero flag/pole asset swap - 2.7.3 */


/* Optional planned-giving nav query-string variations - 2.7.5

Default:
- /legacy/ has no added navigation panel.

Preview options:
- /legacy/?legacy_nav=panel
- /legacy/?legacy_nav=bar
- /legacy/?legacy_nav=simple
*/

/* Shared */
.tpls-legacy-nav {
  position: relative;
  z-index: 3;
}

.tpls-legacy-nav__panel {
  border: 1px solid rgba(216, 222, 232, .88);
  background: rgba(255,255,255,.96);
  box-shadow: 0 24px 64px rgba(4, 24, 49, .14);
  backdrop-filter: blur(10px);
}

.tpls-legacy-nav__intro h2 {
  margin: 8px 0 12px;
  color: var(--tpls-ink);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.08;
}

.tpls-legacy-nav__intro p:not(.tpls-eyebrow) {
  margin: 0;
  color: rgba(10, 28, 58, .72);
  font-size: 15px;
  line-height: 1.65;
}

.tpls-legacy-nav__link {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid rgba(216, 222, 232, .95);
  background: #fff;
  color: var(--tpls-ink);
  cursor: pointer;
  font: inherit;
  text-align: left;
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.tpls-legacy-nav__link:hover,
.tpls-legacy-nav__link:focus {
  transform: translateY(-1px);
  border-color: rgba(230, 29, 63, .32);
  box-shadow: 0 12px 28px rgba(4, 24, 49, .09);
  outline: none;
}

.tpls-legacy-nav__link span {
  color: var(--tpls-ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.tpls-legacy-nav__link em {
  flex: 0 0 auto;
  color: var(--tpls-red);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tpls-legacy-nav__link--accent {
  background: var(--tpls-navy);
  border-color: var(--tpls-navy);
}

.tpls-legacy-nav__link--accent span,
.tpls-legacy-nav__link--accent em {
  color: #fff;
}

/* Variation 1: panel */
.tpls-legacy-nav--panel {
  margin-top: -42px;
  padding: 0 0 34px;
}

.tpls-legacy-nav--panel .tpls-legacy-nav__panel {
  display: grid;
  grid-template-columns: minmax(280px, 34%) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
  padding: 30px;
  border-radius: 18px;
}

.tpls-legacy-nav--panel .tpls-legacy-nav__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.tpls-legacy-nav--panel .tpls-legacy-nav__link {
  min-height: 58px;
  padding: 12px 14px 12px 16px;
  border-radius: 12px;
}

/* Variation 2: compact bar */
.tpls-legacy-nav--bar {
  margin-top: -24px;
  padding: 0 0 24px;
}

.tpls-legacy-nav--bar .tpls-legacy-nav__panel {
  padding: 14px 16px;
  border-radius: 999px;
}

.tpls-legacy-nav--bar .tpls-legacy-nav__intro {
  display: none;
}

.tpls-legacy-nav--bar .tpls-legacy-nav__links {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

.tpls-legacy-nav--bar .tpls-legacy-nav__link {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 8px 12px;
  border-radius: 999px;
}

.tpls-legacy-nav--bar .tpls-legacy-nav__link em {
  display: none;
}

/* Variation 3: simple list */
.tpls-legacy-nav--simple {
  padding: 34px 0 10px;
}

.tpls-legacy-nav--simple .tpls-legacy-nav__panel {
  padding: 24px;
  border-radius: 16px;
}

.tpls-legacy-nav--simple .tpls-legacy-nav__intro {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 20px;
}

.tpls-legacy-nav--simple .tpls-legacy-nav__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.tpls-legacy-nav--simple .tpls-legacy-nav__link {
  min-height: 46px;
  padding: 10px 14px;
  border-radius: 999px;
}

.tpls-legacy-nav--simple .tpls-legacy-nav__link em {
  display: none;
}

@media (max-width: 1150px) {
  .tpls-legacy-nav--panel {
    margin-top: -24px;
  }

  .tpls-legacy-nav--panel .tpls-legacy-nav__panel {
    grid-template-columns: 1fr;
    padding: 26px;
  }

  .tpls-legacy-nav__intro {
    text-align: center;
  }

  .tpls-legacy-nav__intro p:not(.tpls-eyebrow) {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 720px) {
  .tpls-legacy-nav--panel {
    margin-top: 0;
    padding-top: 22px;
  }

  .tpls-legacy-nav--panel .tpls-legacy-nav__panel,
  .tpls-legacy-nav--simple .tpls-legacy-nav__panel {
    padding: 22px 18px;
  }

  .tpls-legacy-nav--panel .tpls-legacy-nav__links {
    grid-template-columns: 1fr;
  }

  .tpls-legacy-nav--bar {
    margin-top: 0;
    padding-top: 16px;
  }

  .tpls-legacy-nav--bar .tpls-legacy-nav__panel {
    border-radius: 14px;
  }
}

#plan,
#contact,
#legacy-gift {
  scroll-margin-top: 100px;
}


/* Legacy giving top bar update - 2.7.6
   Desktop top bar now functions as a planned-giving navigation. Gift-option items
   scroll to Ways to Give and open the matching modal.
*/
.tpls-site-nav--legacy-giving {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-left: 28px;
  border-left: 1px solid rgba(255,255,255,.18);
}

.tpls-site-nav--legacy-giving a,
.tpls-site-nav--legacy-giving button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 0 14px;
  border: 0;
  border-right: 1px solid rgba(255,255,255,.18);
  background: transparent;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: .055em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: normal;
  max-width: 118px;
}

.tpls-site-nav--legacy-giving a:hover,
.tpls-site-nav--legacy-giving a:focus,
.tpls-site-nav--legacy-giving button:hover,
.tpls-site-nav--legacy-giving button:focus {
  background: rgba(255,255,255,.08);
  color: #fff;
  outline: none;
}

.tpls-site-nav--legacy-giving a:last-child {
  background: var(--tpls-red);
  border-right: 0;
  padding-left: 18px;
  padding-right: 18px;
}

.tpls-site-nav--legacy-giving a:last-child:hover,
.tpls-site-nav--legacy-giving a:last-child:focus {
  background: #c91535;
}

/* Compact header keeps the planned giving nav hidden on scroll, per prior selected behavior. */
.tpls-contact-header-is-scrolled .tpls-site-nav--legacy-giving {
  display: none !important;
}

/* Mobile dropdown version */
.tpls-mobile-legacy-giving {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border-top: 1px solid rgba(255,255,255,.12);
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.tpls-mobile-legacy-giving p {
  margin: 0 0 4px;
  color: rgba(255,255,255,.64);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tpls-mobile-legacy-giving button,
.tpls-mobile-legacy-giving a {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 10px;
  background: rgba(255,255,255,.04);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
}

.tpls-mobile-legacy-giving button::after,
.tpls-mobile-legacy-giving a::after {
  content: "→";
  color: var(--tpls-red);
}

@media (max-width: 1320px) {
  .tpls-site-nav--legacy-giving a,
  .tpls-site-nav--legacy-giving button {
    padding-left: 10px;
    padding-right: 10px;
    font-size: 9px;
    max-width: 100px;
  }
}

@media (max-width: 1150px) {
  .tpls-site-nav--legacy-giving {
    display: none !important;
  }
}

#legacy-gift {
  scroll-margin-top: 110px;
}


/* Top bar cleanup - 2.7.7
   Removed Legacy Giving Home from planned-giving nav.
   Header Make Your Will / Give Now CTAs are commented out in header-legacy.php.
*/
.tpls-site-nav--legacy-giving {
  margin-left: auto;
}

.tpls-site-nav--legacy-giving button,
.tpls-site-nav--legacy-giving a {
  max-width: 132px;
  padding-left: 16px;
  padding-right: 16px;
}

@media (max-width: 1320px) {
  .tpls-site-nav--legacy-giving button,
  .tpls-site-nav--legacy-giving a {
    max-width: 116px;
    padding-left: 12px;
    padding-right: 12px;
  }
}


/* Top bar cleanup + modal fallback - 2.7.8
   Legacy Giving Home removed. Header CTAs are commented out.
   Nav gift items scroll to Ways to Give and force-open matching modal as fallback.
*/
.tpls-site-nav--legacy-giving {
  margin-left: auto;
}

.tpls-site-nav--legacy-giving button,
.tpls-site-nav--legacy-giving a {
  max-width: 132px;
  padding-left: 16px;
  padding-right: 16px;
}

@media (max-width: 1320px) {
  .tpls-site-nav--legacy-giving button,
  .tpls-site-nav--legacy-giving a {
    max-width: 116px;
    padding-left: 12px;
    padding-right: 12px;
  }
}


/* Top nav size/mobile/modal refinement - 2.7.9 */
.tpls-site-nav--legacy-giving {
  margin-left: auto;
  border-left: 1px solid rgba(255,255,255,.18);
}

.tpls-site-nav--legacy-giving button,
.tpls-site-nav--legacy-giving a {
  min-height: 66px !important;
  max-width: none !important;
  padding-left: 18px !important;
  padding-right: 18px !important;
  font-size: 12px !important;
  line-height: 1.08 !important;
  letter-spacing: .035em !important;
}

.tpls-site-nav--legacy-giving button {
  min-width: 94px;
}

.tpls-site-nav--legacy-giving button:nth-of-type(1) {
  min-width: 126px;
}

.tpls-site-nav--legacy-giving button:nth-of-type(2),
.tpls-site-nav--legacy-giving button:nth-of-type(4),
.tpls-site-nav--legacy-giving button:nth-of-type(5) {
  min-width: 94px;
}

.tpls-site-nav--legacy-giving button:nth-of-type(3),
.tpls-site-nav--legacy-giving button:nth-of-type(6) {
  min-width: 110px;
}

.tpls-site-nav--legacy-giving a:last-child {
  min-width: 94px;
}

/* Keep mobile giving menu visible in the mobile nav. */
.tpls-mobile-legacy-giving {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border-top: 1px solid rgba(255,255,255,.12);
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.tpls-mobile-legacy-giving p {
  margin: 0 0 4px;
  color: rgba(255,255,255,.64);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tpls-mobile-legacy-giving button,
.tpls-mobile-legacy-giving a {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 10px;
  background: rgba(255,255,255,.04);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .035em;
  text-decoration: none;
  text-transform: uppercase;
}

.tpls-mobile-legacy-giving button::after,
.tpls-mobile-legacy-giving a::after {
  content: "→";
  color: var(--tpls-red);
}

@media (max-width: 1460px) {
  .tpls-site-nav--legacy-giving button,
  .tpls-site-nav--legacy-giving a {
    padding-left: 14px !important;
    padding-right: 14px !important;
    font-size: 11px !important;
  }

  .tpls-site-nav--legacy-giving button:nth-of-type(1) {
    min-width: 118px;
  }

  .tpls-site-nav--legacy-giving button:nth-of-type(3),
  .tpls-site-nav--legacy-giving button:nth-of-type(6) {
    min-width: 104px;
  }
}

@media (max-width: 1260px) {
  .tpls-site-nav--legacy-giving button,
  .tpls-site-nav--legacy-giving a {
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 10px !important;
  }

  .tpls-site-nav--legacy-giving button {
    min-width: 82px;
  }

  .tpls-site-nav--legacy-giving button:nth-of-type(1) {
    min-width: 108px;
  }

  .tpls-site-nav--legacy-giving button:nth-of-type(3),
  .tpls-site-nav--legacy-giving button:nth-of-type(6) {
    min-width: 96px;
  }
}

@media (max-width: 1150px) {
  .tpls-site-nav--legacy-giving {
    display: none !important;
  }
}


/* Contact anchor scroll update - 2.8.0
   Contact nav links scroll to the “Have Questions About Planned Giving?” section.
*/
#contact {
  scroll-margin-top: 110px;
}


/* Modal underlayer fix for Charlie quote section - 2.8.1
   Prevents the Charlie quote/photo block from painting above the modal overlay.
*/
@supports selector(body:has(.tpls-modal[aria-hidden="false"])) {
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-charlie-quote-wrap,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-charlie-quote,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-charlie-quote-image,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-mission-feature,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-mission-feature__media,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-mission-feature__content {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal *,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal *::before,
  body:has(.tpls-modal[aria-hidden="false"]) .tpls-modal *::after {
    visibility: visible !important;
  }
}

@supports selector(body:has(.tpls-modal.is-open)) {
  body:has(.tpls-modal.is-open) .tpls-charlie-quote-wrap,
  body:has(.tpls-modal.is-open) .tpls-charlie-quote,
  body:has(.tpls-modal.is-open) .tpls-charlie-quote-image,
  body:has(.tpls-modal.is-open) .tpls-mission-feature,
  body:has(.tpls-modal.is-open) .tpls-mission-feature__media,
  body:has(.tpls-modal.is-open) .tpls-mission-feature__content,
  body:has(.tpls-modal.is-active) .tpls-charlie-quote-wrap,
  body:has(.tpls-modal.is-active) .tpls-charlie-quote,
  body:has(.tpls-modal.is-active) .tpls-charlie-quote-image,
  body:has(.tpls-modal.is-active) .tpls-mission-feature,
  body:has(.tpls-modal.is-active) .tpls-mission-feature__media,
  body:has(.tpls-modal.is-active) .tpls-mission-feature__content {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body:has(.tpls-modal.is-open) .tpls-modal,
  body:has(.tpls-modal.is-open) .tpls-modal *,
  body:has(.tpls-modal.is-active) .tpls-modal,
  body:has(.tpls-modal.is-active) .tpls-modal * {
    visibility: visible !important;
  }
}

/* Also keep all quote/media stacking below normal modal z-index. */
.tpls-charlie-quote-wrap,
.tpls-charlie-quote,
.tpls-charlie-quote-image,
.tpls-mission-feature,
.tpls-mission-feature__media,
.tpls-mission-feature__content {
  z-index: 1;
}


/* Compliance/disclosure updates - 2.8.2 */
.tpls-disclosure-link {
  margin: 12px 0 0;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .02em;
}

.tpls-disclosure-link a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tpls-hero-disclosure-link {
  color: rgba(255,255,255,.86);
}

.tpls-hero-disclosure-link a:hover,
.tpls-hero-disclosure-link a:focus {
  color: #fff;
}

.tpls-modal-disclosure-link {
  color: rgba(10, 28, 58, .72);
}

.tpls-final-disclosure-link {
  color: rgba(255,255,255,.78);
  text-align: center;
}

.tpls-footer-disclosure {
  padding: 18px 0;
  background: #06172e;
  border-top: 1px solid rgba(255,255,255,.12);
  text-align: center;
}

.tpls-footer-disclosure a {
  color: rgba(255,255,255,.88);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .05em;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-transform: uppercase;
}

.tpls-footer-disclosure a:hover,
.tpls-footer-disclosure a:focus {
  color: #fff;
}

.tpls-benefits-disclaimer {
  max-width: 900px;
  margin: 22px auto 0;
  color: rgba(10, 28, 58, .68);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

.tpls-plan-card-note,
.tpls-plan-note,
.tpls-plan-card small {
  line-height: 1.55;
}


/* State disclosures page - 2.8.3 */
.tpls-disclosures-page {
  background: #f7f9fc;
}

.tpls-disclosures-hero {
  padding: 170px 0 72px;
  color: #fff;
  background: linear-gradient(90deg, rgba(4, 22, 45, .95), rgba(4, 22, 45, .82));
  background-color: var(--tpls-navy);
}

.tpls-disclosures-hero h1 {
  max-width: 980px;
  margin: 8px 0 18px;
  font-size: clamp(44px, 6vw, 78px);
  line-height: .96;
}

.tpls-disclosures-hero p {
  max-width: 820px;
  margin: 0;
  color: rgba(255,255,255,.88);
  font-size: 18px;
  line-height: 1.65;
}

.tpls-disclosures-content {
  padding-top: 64px;
}

.tpls-disclosures-card {
  max-width: 1040px;
  margin: 0 auto;
  padding: clamp(28px, 4vw, 54px);
  border: 1px solid rgba(216, 222, 232, .95);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 24px 64px rgba(4, 24, 49, .08);
}

.tpls-disclosures-card p {
  margin: 0 0 18px;
  color: rgba(10, 28, 58, .82);
  font-size: 16px;
  line-height: 1.72;
}

.tpls-disclosures-card a {
  color: var(--tpls-red);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tpls-disclosures-card hr {
  margin: 34px 0;
  border: 0;
  border-top: 1px solid rgba(216, 222, 232, .95);
}

.tpls-disclosures-card h2 {
  margin-bottom: 24px;
  color: var(--tpls-ink);
  font-size: clamp(34px, 4vw, 48px);
}

.tpls-state-disclosure {
  padding: 22px 0;
  border-top: 1px solid rgba(216, 222, 232, .72);
}

.tpls-state-disclosure:first-of-type {
  border-top: 0;
}

.tpls-state-disclosure h3 {
  margin: 0 0 8px;
  color: var(--tpls-red);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tpls-state-disclosure p {
  margin-bottom: 0;
}

.tpls-disclosures-final-note {
  margin-top: 34px !important;
  padding: 18px 20px;
  border-left: 5px solid var(--tpls-red);
  border-radius: 12px;
  background: #f8fafc;
  color: var(--tpls-ink) !important;
  font-size: 14px !important;
  font-weight: 900;
  letter-spacing: .03em;
  text-transform: uppercase;
}

@media (max-width: 720px) {
  .tpls-disclosures-hero {
    padding: 140px 0 54px;
  }

  .tpls-disclosures-card {
    padding: 24px 20px;
  }
}


/* State disclosures page enqueue fix - 2.8.4
   This page now directly enqueues the Legacy Society stylesheet from page-state-disclosures.php.
*/


/* Legal CTA information-flow updates - 2.8.5
   Hero buttons now scroll to on-page info/disclaimer areas instead of leaving immediately.
*/
html {
  scroll-behavior: smooth;
}

.tpls-scroll-anchor {
  display: block;
  height: 1px;
  scroll-margin-top: 120px;
}

#legacy-letter-of-intent,
#legacy-free-will-info {
  scroll-margin-top: 120px;
}

.tpls-hero-disclosure-link {
  margin-top: 8px;
}

/* Fallback hide for Advisory Council Learn More button, if present in a recognizable card. */
.tpls-advisory-council .tpls-btn,
.tpls-advisory-council a[href*="advisory"],
.tpls-advisory-council button {
  display: none !important;
}




/* Stable rollback - no target highlight - 2.8.9
   Removed all highlight scripts/styles after critical errors.
   Keeps the legal CTA info-flow update and disclosure links.
*/


/* Hero CTA note removal - 2.9.0
   Removed the helper/legal note under the hero CTAs.
*/


/* Hero Legacy Society logo update - 2.9.1 */
.tpls-hero-logo-title {
  max-width: 620px;
  margin: 0 0 18px;
  line-height: 1;
}

.tpls-hero-logo {
  display: block;
  width: min(100%, 620px);
  height: auto;
  filter: drop-shadow(0 16px 34px rgba(0, 0, 0, .24));
}

@media (max-width: 720px) {
  .tpls-hero-logo-title {
    max-width: 430px;
    margin-bottom: 14px;
  }

  .tpls-hero-logo {
    width: min(100%, 430px);
  }
}


/* Hero Legacy Society logo webp update - 2.9.2
   Logo source updated to /wp-content/themes/tpusa/img/logos/legacy-society-white.webp.
*/


/* Generational Impact benefit text update - 2.9.3 */
