/* GANTRY5 DEVELOPMENT MODE ENABLED.
 *
 * WARNING: This file is automatically generated by Gantry5. Any modifications to this file will be lost!
 *
 * For more information on modifying CSS, please read:
 *
 * http://docs.gantry.org/gantry5/configure/styles
 * http://docs.gantry.org/gantry5/tutorials/adding-a-custom-style-sheet
 */

@charset "UTF-8";
/* ==========================================================================
   Cards Block Particle
   All colors and sizes are driven by CSS custom properties set inline
   by the Twig template from Joomla custom field values.
   ========================================================================== */
.cards-block {
  background-color: var(--cards-bg, #f5f5f5);
  color: var(--cards-text, #222);
  padding: 3rem 1rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
/* ── Headline & Subhead ── */
.cards-block-headline {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--cards-text, #222);
}
.cards-block-subhead {
  font-size: 1.05rem;
  margin-bottom: 2rem;
  color: var(--cards-text, #222);
  opacity: 0.85;
}
/* ── Card Grid ── */
.cards-block-grid {
  margin-bottom: 2rem;
}
/* ── Individual Card ── */
.cards-block-card {
  background-color: var(--cards-card-bg, #0d5c6b);
  color: var(--cards-card-text, #fff);
  border-radius: 8px;
  padding: 1.75rem 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cards-block-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
.cards-block-card-title {
  font-size: var(--cards-header-size, 1.4rem);
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: var(--cards-card-text, #fff);
}
.cards-block .cards-block-card-link {
  color: inherit;
  text-decoration: none;
}
.cards-block .cards-block-card-link:hover {
  text-decoration: underline;
}
.cards-block-card-body {
  font-size: var(--cards-body-size, 0.95rem);
  line-height: 1.5;
  color: var(--cards-card-text, #fff);
}
.cards-block-card-body p, .cards-block-card-body span, .cards-block-card-body strong, .cards-block-card-body em, .cards-block-card-body li {
  font-size: inherit !important;
}
.cards-block-card-body a {
  color: inherit;
  text-decoration: underline;
}
.cards-block-card-body a:hover {
  opacity: 0.85;
}
/* ── Button Inside Card ── */
.cards-block-card-btn-wrap {
  margin-top: 1.25rem;
}
.cards-block .cards-block-card-btn {
  display: inline-block;
  padding: 0.5rem 1.5rem;
  font-size: 20px;
  font-weight: 800;
  color: var(--cards-card-bg, #0d5c6b);
  background-color: var(--cards-card-text, #fff);
  border-radius: 50px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.cards-block .cards-block-card-btn:hover {
  opacity: 0.88;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Bottom CTA Button ── */
.cards-block-cta {
  text-align: center;
  margin-top: 0.5rem;
}
.cards-block .cards-block-cta-btn {
  display: inline-block;
  padding: 0.75rem 2.25rem;
  font-size: 20px;
  font-weight: 800;
  color: var(--cards-cta-text, #222);
  background-color: var(--cards-cta-bg, #f0a500);
  border-radius: 50px;
  text-decoration: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.cards-block .cards-block-cta-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
.cards-block a {
  color: inherit !important;
  text-decoration: none !important;
}
.cards-block .cards-block-cta-btn {
  color: var(--cards-cta-text, #222) !important;
}
.cards-block .cards-block-cta-btn:hover {
  color: #FFF !important;
}
.cards-block .cards-block-card-btn {
  background-color: var(--card-btn-bg, var(--cards-card-text, #fff)) !important;
  color: var(--card-btn-text, var(--cards-card-bg, #0d5c6b)) !important;
}
.cards-block .cards-block-card-btn:hover {
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
.cards-block .cards-block-card-link, .cards-block .cards-block-card-link:hover {
  color: var(--cards-card-text, #fff) !important;
}
/* ── Responsive Adjustments ── */
@media (max-width: 767.98px) {
  .cards-block {
    padding: 2rem 1rem;
  }
  .cards-block-headline {
    font-size: 1.4rem;
  }
  .cards-block-card {
    padding: 1.5rem 1.25rem;
  }
}
/* ==========================================================================
  Video Embed Particle
  ========================================================================== */
.video-embed {
  background-color: #fff;
  color: #000;
  padding: 3rem 1rem;
}
.video-embed a {
  color: inherit !important;
  text-decoration: none !important;
}
.video-embed .video-embed-inner {
  max-width: 800px;
  /* content width — constant, tune to taste */
  margin: 0 auto;
}
.video-embed .video-embed-headline {
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.5rem;
  color: #000 !important;
}
.video-embed .video-embed-description {
  font-size: 24px;
  line-height: 30px;
  text-align: center;
  margin-bottom: 1.5rem;
  opacity: 0.85;
  color: #000 !important;
  /* editor wraps content in these — make them inherit the set size */
}
.video-embed .video-embed-description p, .video-embed .video-embed-description span, .video-embed .video-embed-description strong, .video-embed .video-embed-description em, .video-embed .video-embed-description li, .video-embed .video-embed-description a {
  font-size: inherit !important;
  line-height: inherit;
}
.video-embed .video-embed-description p:last-child {
  margin-bottom: 0;
}
.video-embed .video-embed-footer {
  font-size: 24px;
  line-height: 30px;
  margin-top: 1.5rem;
  text-align: center;
  color: #444 !important;
}
.video-embed .video-embed-footer span, .video-embed .video-embed-footer strong, .video-embed .video-embed-footer em, .video-embed .video-embed-footer li {
  font-size: inherit !important;
  color: inherit !important;
}
/* 16:9 responsive wrapper */
.video-embed .video-embed-wrapper {
  --vmw:  min(var(--video-max-width, 800px), calc(100vw - 2rem));
  width: var(--vmw);
  margin-left: calc(var(--vmw) / -2 + 50%);
  aspect-ratio: 1.7777777778;
  position: relative;
}
.video-embed .video-embed-wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
/* Responsive */
@media (max-width: 767.98px) {
  .video-embed {
    padding: 2rem 1rem;
  }
}
/* ==========================================================================
   Disclaimer Particle
   ========================================================================== */
.disclaimer {
  padding: 1.5rem 2rem;
  max-width: 1000px;
  margin: 0 auto;
  font-style: italic;
  color: #666 !important;
}
.disclaimer span, .disclaimer strong, .disclaimer li {
  font-size: inherit !important;
  color: inherit !important;
}
/* ==========================================================================
   Infographic Banner Particle
   ========================================================================== */
.infographic-banner {
  background-color: var(--infographic-bg, #4a2d8a);
  color: var(--infographic-text, #fff);
  padding: 2.5rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.infographic-banner-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Content: stat + description ── */
.infographic-banner-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}
.infographic-banner .infographic-banner-stat {
  font-size: var(--infographic-stat-size, 3.5rem);
  font-weight: 900 !important;
  line-height: 1.1;
  color: var(--infographic-text, #fff) !important;
}
.infographic-banner .infographic-banner-desc {
  font-size: var(--infographic-desc-size, 1.2rem);
  font-weight: 400;
  line-height: 1.4;
  color: var(--infographic-text, #fff) !important;
}
.infographic-banner .infographic-banner-desc span, .infographic-banner .infographic-banner-desc strong, .infographic-banner .infographic-banner-desc em, .infographic-banner .infographic-banner-desc b, .infographic-banner .infographic-banner-desc i {
  font-size: inherit !important;
  color: inherit !important;
}
.infographic-banner .infographic-banner-desc a {
  color: inherit !important;
  text-decoration: underline !important;
}
.infographic-banner .infographic-banner-desc a:hover {
  opacity: 0.85;
}
/* ── Optional button ── */
.infographic-banner-cta {
  margin-top: 1.5rem;
}
.infographic-banner .infographic-banner-btn {
  display: inline-block;
  padding: 0.65rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50px;
  text-decoration: none !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
  background-color: var(--infographic-btn-bg, #fff) !important;
  color: var(--infographic-btn-color, var(--infographic-bg, #4a2d8a)) !important;
}
.infographic-banner .infographic-banner-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Gantry overrides ── */
.infographic-banner a {
  color: inherit !important;
}
/* ── Desktop: inline layout, vertically centered ── */
@media (min-width: 992px) {
  .infographic-banner-content {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
  }
}
/* ── Mobile ── */
@media (max-width: 767.98px) {
  .infographic-banner {
    padding: 2rem 1.25rem;
  }
  .infographic-banner .infographic-banner-stat {
    font-size: calc(var(--infographic-stat-size, 3.5rem) * 0.75);
  }
  .infographic-banner .infographic-banner-desc {
    font-size: calc(var(--infographic-desc-size, 1.2rem) * 0.9);
  }
}
/* ==========================================================================
   Callout Banner Particle (width and marrgin-left work to break the particle out)
   ========================================================================== */
.callout-banner {
  background-color: var(--callout-bg, #d5dfe4);
  color: var(--callout-text, #222);
  padding: 2.5rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.callout-banner-inner {
  max-width: 900px;
  margin: 0 auto;
}
/* ── Content ── */
.callout-banner .callout-banner-content {
  font-size: var(--callout-font-size, 1rem);
  line-height: 1.6;
  color: var(--callout-text, #222) !important;
}
.callout-banner .callout-banner-content p, .callout-banner .callout-banner-content span, .callout-banner .callout-banner-content strong, .callout-banner .callout-banner-content em, .callout-banner .callout-banner-content li, .callout-banner .callout-banner-content b, .callout-banner .callout-banner-content i {
  font-size: inherit !important;
  color: inherit !important;
  text-align: center !important;
}
.callout-banner .callout-banner-content ul, .callout-banner .callout-banner-content ol {
  display: inline-block;
  text-align: left;
  margin: 0.75rem 0;
  padding-left: 1.5rem;
}
.callout-banner .callout-banner-content a {
  color: inherit !important;
  text-decoration: underline !important;
}
.callout-banner .callout-banner-content a:hover {
  opacity: 0.75;
}
/* ── Optional button ── */
.callout-banner-cta {
  margin-top: 1.5rem;
}
.callout-banner .callout-banner-btn {
  display: inline-block;
  padding: 0.65rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50px;
  text-decoration: none !important;
  background-color: var(--callout-btn-bg, #f0a500) !important;
  color: var(--callout-btn-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.callout-banner .callout-banner-btn:hover {
  opacity: 0.9;
  color: #FFF !important;
  background: #5F5F5F !important;
}
/* ── Gantry overrides ── */
.callout-banner a {
  color: inherit !important;
  text-decoration: none !important;
}
/* ── Responsive ── */
@media (max-width: 992px) {
  .callout-banner {
    padding: 2rem 1.25rem;
  }
  .callout-banner .callout-banner-content {
    font-size: calc(var(--callout-font-size, 1rem) * 0.9);
  }
  .callout-banner .callout-banner-content p, .callout-banner .callout-banner-content span, .callout-banner .callout-banner-content strong, .callout-banner .callout-banner-content em, .callout-banner .callout-banner-content li, .callout-banner .callout-banner-content b, .callout-banner .callout-banner-content i {
    font-size: inherit !important;
    color: inherit !important;
    text-align: left !important;
  }
}
/* ==========================================================================
   Hero Banner Particle
   Full-bleed hero with background image, overlay, and centered content.
   ========================================================================== */
.hero-banner {
  position: relative;
  color: var(--hero-banner-text, #fff);
  padding: 4rem 2rem;
  text-align: center;
  overflow: hidden;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
/* ── Background image layer ── */
.hero-banner-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
}
/* ── Color overlay layer ── */
.hero-banner-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}
/* ── Content layer ── */
.hero-banner-content {
  position: relative;
  z-index: 2;
}
.hero-banner-inner {
  max-width: 800px;
  margin: 0 auto;
}
/* ── Typography ── */
.hero-banner .hero-banner-headline {
  font-weight: 900;
  margin-bottom: 0.75rem;
  color: var(--hero-banner-text, #fff) !important;
}
.hero-banner .hero-banner-subhead {
  font-size: 24px;
  font-weight: 700;
  line-height: normal;
  margin-bottom: 0.5rem;
  text-align: center;
  color: var(--hero-banner-text, #fff) !important;
}
.hero-banner .hero-banner-subhead p, .hero-banner .hero-banner-subhead span, .hero-banner .hero-banner-subhead strong, .hero-banner .hero-banner-subhead em {
  font-size: inherit !important;
  color: inherit !important;
}
.hero-banner .hero-banner-body {
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 1.5rem;
  text-align: center !important;
  color: var(--hero-banner-text, #fff) !important;
  opacity: 0.9;
}
.hero-banner .hero-banner-body p, .hero-banner .hero-banner-body span, .hero-banner .hero-banner-body strong, .hero-banner .hero-banner-body em {
  font-size: inherit !important;
  color: inherit !important;
}
/* ── Email field ── */
.hero-banner-form {
  max-width: 420px;
  margin: 0 auto;
}
.hero-banner-email-wrap {
  margin-bottom: 0.75rem;
}
.hero-banner .hero-banner-email {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-radius: 4px;
  background-color: rgba(255, 255, 255, 0.95);
  color: #333;
  outline: none;
  transition: border-color 0.2s ease;
}
.hero-banner .hero-banner-email:focus {
  border-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
}
.hero-banner .hero-banner-email::placeholder {
  color: #999;
}
.hero-banner-error {
  font-size: 0.85rem;
  color: #ffcccc !important;
  margin-bottom: 0.5rem;
}
/* ── CTA button ── */
.hero-banner-cta {
  margin-top: 0.25rem;
}
.hero-banner .hero-banner-btn {
  display: inline-block;
  padding: 0.75rem 2.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none !important;
  background-color: var(--hero-banner-btn-bg, #f0a500) !important;
  color: var(--hero-banner-btn-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.hero-banner .hero-banner-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Responsive ── */
@media (max-width: 767.98px) {
  .hero-banner {
    padding: 3rem 1.25rem;
  }
  .hero-banner .hero-banner-subhead {
    font-size: 1.05rem;
  }
  .hero-banner .hero-banner-body {
    font-size: 0.85rem;
  }
  .hero-banner .hero-banner-btn {
    text-align: center;
  }
}
/* ==========================================================================
   Simple Content Particle
   ========================================================================== */
.simple-content {
  background-color: var(--simple-content-bg, transparent);
  padding: 3rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.simple-content-inner {
  max-width: 900px;
  margin: 0 auto;
}
/* ── Headline ── */
.simple-content .simple-content-headline {
  font-size: 56px;
  font-weight: 700;
  line-height: 64px;
  margin-bottom: 1rem;
  color: #222 !important;
}
/* ── Body ── */
.simple-content .simple-content-body {
  font-size: 1rem;
  line-height: 1.7;
  color: #444 !important;
}
.simple-content .simple-content-body p, .simple-content .simple-content-body span, .simple-content .simple-content-body strong, .simple-content .simple-content-body em, .simple-content .simple-content-body b, .simple-content .simple-content-body i, .simple-content .simple-content-body li {
  text-align: center !important;
}
.simple-content .simple-content-body ul, .simple-content .simple-content-body ol {
  display: inline-block;
  text-align: left;
  margin: 0.75rem 0;
  padding-left: 1.5rem;
}
/* ── Responsive ── */
@media (max-width: 992px) {
  .simple-content .simple-content-body p, .simple-content .simple-content-body span, .simple-content .simple-content-body strong, .simple-content .simple-content-body em, .simple-content .simple-content-body b, .simple-content .simple-content-body i, .simple-content .simple-content-body li {
    text-align: left !important;
  }
  .simple-content .simple-content-headline {
    text-align: left !important;
  }
}
@media (max-width: 767.98px) {
  .simple-content {
    padding: 2rem 1.25rem;
  }
  .simple-content .simple-content-headline {
    font-size: 40px;
    line-height: 48px;
  }
}
/* ==========================================================================
   Columns Particle
   ========================================================================== */
.columns-block {
  background-color: var(--columns-bg, transparent);
  padding: 3rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.columns-block-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Headline & Subhead ── */
.columns-block .columns-block-headline {
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: #222 !important;
}
.columns-block .columns-block-subhead {
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 2rem;
  color: #444 !important;
}
.columns-block .columns-block-subhead p, .columns-block .columns-block-subhead span, .columns-block .columns-block-subhead strong, .columns-block .columns-block-subhead em {
  font-size: inherit !important;
  color: inherit !important;
}
/* ── Column Grid ── */
.columns-block-grid {
  margin-bottom: 0;
}
/* ── Individual Column ── */
.columns-block-item {
  text-align: center;
  padding: 0.5rem;
}
.columns-block-icon {
  margin-bottom: 0.75rem;
}
.columns-block-icon img {
  max-width: 48px;
  max-height: 48px;
  height: auto;
}
.columns-block .columns-block-content {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #333 !important;
}
.columns-block .columns-block-content p, .columns-block .columns-block-content span, .columns-block .columns-block-content strong, .columns-block .columns-block-content em, .columns-block .columns-block-content b, .columns-block .columns-block-content i, .columns-block .columns-block-content li {
  font-size: inherit !important;
  color: inherit !important;
}
.columns-block .columns-block-content ul, .columns-block .columns-block-content ol {
  display: inline-block;
  text-align: left;
  margin: 0.5rem 0;
  padding-left: 1.5rem;
}
/* ── Mobile: stacked with dividers ── */
@media (max-width: 767.98px) {
  .columns-block {
    padding: 2rem 1.25rem;
  }
  .columns-block-item {
    padding: 1rem 0.5rem;
  }
  .columns-block-grid > div:first-child .columns-block-item {
    border-top: none;
  }
}
/* ==========================================================================
   Email Form Particle

   Desktop: center-aligned (except disclaimer which is always left)
   Mobile: left-aligned
   ========================================================================== */
.email-form {
  padding: 3rem 2rem;
  text-align: center;
}
.email-form-inner {
  max-width: 700px;
  margin: 0 auto;
}
/* ── Headline ── */
.email-form .email-form-headline {
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: #222 !important;
}
/* ── Body ── */
.email-form .email-form-body {
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  color: #444 !important;
  text-align: center;
}
.email-form .email-form-body p, .email-form .email-form-body span, .email-form .email-form-body strong, .email-form .email-form-body em {
  font-size: inherit !important;
  color: inherit !important;
}
/* ── Email input ── */
.email-form-fields {
  margin-bottom: 1rem;
}
.email-form-input-wrap {
  margin-bottom: 0.75rem;
}
.email-form .email-form-input {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  color: #333;
  outline: none;
  transition: border-color 0.2s ease;
}
.email-form .email-form-input:focus {
  border-color: #999;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
}
.email-form .email-form-input::placeholder {
  color: #999;
}
.email-form-error {
  font-size: 0.85rem;
  color: #cc0000 !important;
  margin-bottom: 0.5rem;
  text-align: left;
}
/* ── CTA button ── */
.email-form-cta {
  margin-bottom: 1.5rem;
}
.email-form .email-form-btn {
  display: inline-block;
  padding: 0.75rem 2.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none !important;
  background-color: var(--email-form-btn-bg, #f0a500) !important;
  color: var(--email-form-btn-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.email-form .email-form-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Disclaimer ── */
.email-form .email-form-disclaimer {
  font-size: 0.8rem;
  font-style: italic;
  line-height: 1.5;
  color: #666 !important;
  text-align: left;
}
.email-form .email-form-disclaimer p, .email-form .email-form-disclaimer span, .email-form .email-form-disclaimer strong, .email-form .email-form-disclaimer em, .email-form .email-form-disclaimer b, .email-form .email-form-disclaimer i {
  font-size: inherit !important;
  color: inherit !important;
}
/* ── Mobile/Tablet: left-aligned ── */
@media (max-width: 992px) {
  .email-form {
    padding: 2rem 1.25rem;
    text-align: left;
  }
  .email-form-cta {
    text-align: left !important;
  }
  .email-form .email-form-btn {
    display: block;
    text-align: center;
  }
  .email-form .email-form-body {
    text-align: left;
  }
}
/* ==========================================================================
   Email Form Hero Particle

   Markup: .email-form-hero-row is a flex container with up to three children:
     .email-form-hero-col--title  (the h2 title header)
     .email-form-hero-col--form   (headline, body, email/CTA, disclaimer)
     .email-form-hero-col--image  (the image)

   Two independent controls drive layout:
     .email-form-hero--header-top  / --header-side  -> title placement (desktop)
     .email-form-hero--img-left    / --img-right    -> image side (desktop)

   DESKTOP placement:
     header-top  -> title spans full width on top, form + image below.
     header-side -> title sits in the form column gutter (above the form),
                    NOT full width; image occupies the other column.
     img-left    -> image column visually left.
     img-right   -> image column visually right.

   MOBILE order (always title first; form/image follow the image side):
     img-right -> title, form, image
     img-left  -> title, image, form
   ========================================================================== */
.email-form-hero {
  padding: 3rem 2rem;
  text-align: left;
}
.email-form-hero .email-form-hero-inner {
  max-width: 1100px;
  margin: 0 auto;
}
/* ── Title header ── */
.email-form-hero .email-form-hero-title-header {
  font-weight: 600;
  margin: 0 0 1.25rem;
}
/* ── Headline / body ── */
.email-form-hero .email-form-hero-headline {
  margin: 0 0 0.75rem;
}
.email-form-hero .email-form-hero-body {
  font-size: 1.05rem;
  line-height: 1.6;
  margin: 0 0 1.25rem;
}
/* ── Image ── */
.email-form-hero .email-form-hero-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}
/* ── Email input + fields ── */
.email-form-hero .email-form-hero-fields {
  margin: 1.25rem 0;
}
.email-form-hero .email-form-hero-input-wrap {
  margin-bottom: 0.75rem;
}
.email-form-hero .email-form-hero-input {
  width: 100%;
  max-width: 420px;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 6px;
}
.email-form-hero .email-form-hero-error {
  color: #c0392b;
  font-size: 0.875rem;
  margin-bottom: 0.75rem;
}
/* ── Button ── */
.email-form-hero .email-form-hero-btn {
  display: inline-block;
  padding: 0.75rem 2.25rem;
  font-size: 1.05rem;
  font-weight: 700;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none !important;
  background-color: var(--efh-btn-bg, #f0a500) !important;
  color: var(--efh-btn-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.email-form-hero .email-form-hero-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Disclaimer ── */
.email-form-hero .email-form-hero-disclaimer {
  font-size: 0.8rem;
  font-style: italic;
  line-height: 1.5;
  color: #666 !important;
  text-align: left;
}
.email-form-hero .email-form-hero-disclaimer span, .email-form-hero .email-form-hero-disclaimer strong, .email-form-hero .email-form-hero-disclaimer em, .email-form-hero .email-form-hero-disclaimer b, .email-form-hero .email-form-hero-disclaimer i {
  font-size: inherit !important;
  color: inherit !important;
}
/* ── Gantry overrides ── */
.email-form-hero a {
  color: inherit !important;
  text-decoration: none !important;
}
/* ── Row container ── */
.email-form-hero .email-form-hero-row {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  /* mobile default: stacked */
  gap: 1.25rem;
}
.email-form-hero .email-form-hero-col, .email-form-hero .email-form-hero-col--title {
  width: 100%;
}
/* ==========================================================================
     MOBILE / TABLET (< 992px) — title first; form/image follow image side
     ========================================================================== */
@media (max-width: 991.98px) {
  /* Title always on top */
  /* img-right: title, form, image */
  /* img-left: title, image, form */
  .email-form-hero {
    padding: 2rem 1.25rem;
  }
  .email-form-hero .email-form-hero-col--title {
    order: 0;
  }
  .email-form-hero--img-right .email-form-hero-col--form {
    order: 1;
  }
  .email-form-hero--img-right .email-form-hero-col--image {
    order: 2;
  }
  .email-form-hero--img-left .email-form-hero-col--image {
    order: 1;
  }
  .email-form-hero--img-left .email-form-hero-col--form {
    order: 2;
  }
  .email-form-hero .email-form-hero-btn {
    width: 255px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
  }
  .email-form-hero .email-form-hero-input {
    max-width: 100%;
  }
}
/* just mobile */
@media (max-width: 767.92px) {
  .email-form-hero .email-form-hero-title-header {
    font-size: 40px;
    line-height: 48px;
  }
}
/* ==========================================================================
     DESKTOP (>= 992px) — CSS Grid for reliable title/form/image placement
     ==========================================================================
  
     Grid has two columns. Rows are implicit. We place each child into explicit
     grid lines so order is deterministic (flex `order` + wrap can't express
     "two items stacked on one side, one on the other").
  
     header-top : row 1 = title across both columns; row 2 = form | image
     header-side: title and form stacked in one column; image in the other,
                  spanning both rows.
  */
@media (min-width: 992px) {
  /* ----- HEADER TOP ----- */
  /* img-right: form left, image right */
  /* img-left: image left, form right */
  /* ----- HEADER SIDE -----
       Title and form stack in one column (rows 1 and 2). Image fills the other
       column across both rows. Image side chooses which column. */
  /* img-right: text column left, image right */
  /* img-left: image left, text column right */
  /* header-side: keep title margin tight to the form below it */
  .email-form-hero .email-form-hero-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 2.5rem;
    row-gap: 1.25rem;
    align-items: start;
  }
  .email-form-hero .email-form-hero-col, .email-form-hero .email-form-hero-col--title {
    max-width: none;
    width: auto;
  }
  .email-form-hero--header-top .email-form-hero-col--title {
    grid-column: 1 / -1;
    grid-row: 1;
  }
  .email-form-hero--header-top .email-form-hero-col--form, .email-form-hero--header-top .email-form-hero-col--image {
    grid-row: 2;
  }
  .email-form-hero--header-top.email-form-hero--img-right .email-form-hero-col--form {
    grid-column: 1;
  }
  .email-form-hero--header-top.email-form-hero--img-right .email-form-hero-col--image {
    grid-column: 2;
  }
  .email-form-hero--header-top.email-form-hero--img-left .email-form-hero-col--image {
    grid-column: 1;
  }
  .email-form-hero--header-top.email-form-hero--img-left .email-form-hero-col--form {
    grid-column: 2;
  }
  .email-form-hero--header-side .email-form-hero-col--title {
    grid-row: 1;
  }
  .email-form-hero--header-side .email-form-hero-col--form {
    grid-row: 2;
  }
  .email-form-hero--header-side .email-form-hero-col--image {
    grid-row: 1 / 3;
    align-self: stretch;
  }
  .email-form-hero--header-side.email-form-hero--img-right .email-form-hero-col--title {
    grid-column: 1;
  }
  .email-form-hero--header-side.email-form-hero--img-right .email-form-hero-col--form {
    grid-column: 1;
  }
  .email-form-hero--header-side.email-form-hero--img-right .email-form-hero-col--image {
    grid-column: 2;
  }
  .email-form-hero--header-side.email-form-hero--img-left .email-form-hero-col--image {
    grid-column: 1;
  }
  .email-form-hero--header-side.email-form-hero--img-left .email-form-hero-col--title {
    grid-column: 2;
  }
  .email-form-hero--header-side.email-form-hero--img-left .email-form-hero-col--form {
    grid-column: 2;
  }
  .email-form-hero--header-side .email-form-hero-col--title {
    margin-bottom: 0;
  }
}
/* ==========================================================================
   Content Left Image Particle

   Mobile/Tablet: stacked, image on top, text centered below
   Desktop: side-by-side, image left, text left-aligned right
   ========================================================================== */
.content-left-img {
  background-color: var(--cli-bg, transparent);
  padding: 3rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.content-left-img-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Image ── */
.content-left-img-image {
  text-align: center;
}
.content-left-img-image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}
/* ── Icon ── */
.content-left-img-icon {
  margin-bottom: 0.75rem;
}
.content-left-img-icon img {
  max-width: 48px;
  max-height: 48px;
  height: auto;
}
/* ── Headline ── */
.content-left-img .content-left-img-headline {
  font-weight: 500;
  margin-bottom: 0.75rem;
  color: #222 !important;
}
/* ── Body ── */
.content-left-img .content-left-img-body {
  font-size: 24px;
  line-height: 30px;
  margin-bottom: 1.25rem;
  color: #444 !important;
}
.content-left-img .content-left-img-body span, .content-left-img .content-left-img-body strong, .content-left-img .content-left-img-body em, .content-left-img .content-left-img-body b, .content-left-img .content-left-img-body i, .content-left-img .content-left-img-body li {
  font-size: inherit !important;
  color: inherit !important;
}
.content-left-img .content-left-img-body ul, .content-left-img .content-left-img-body ol {
  display: inline-block;
  text-align: left;
  margin: 0.75rem 0;
  padding-left: 1.5rem;
}
/* ── Email input ── */
.content-left-img-form {
  max-width: 400px;
}
.content-left-img-email-wrap {
  margin-bottom: 0.75rem;
}
.content-left-img .content-left-img-email {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  border-radius: 4px;
  background-color: #fff;
  color: #333;
  outline: none;
  transition: border-color 0.2s ease;
}
.content-left-img .content-left-img-email:focus {
  border-color: #999;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
}
.content-left-img .content-left-img-email::placeholder {
  color: #999;
}
.content-left-img-error {
  font-size: 0.85rem;
  color: #cc0000 !important;
  margin-bottom: 0.5rem;
}
/* ── CTA button ── */
.content-left-img-cta {
  margin-top: 0.25rem;
}
.content-left-img .content-left-img-btn {
  display: inline-block;
  padding: 0.65rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none !important;
  background-color: var(--cli-btn-bg, #f0a500) !important;
  color: var(--cli-btn-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.content-left-img .content-left-img-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Desktop: side-by-side, left-aligned text ── */
@media (min-width: 992px) {
  .content-left-img {
    text-align: left;
  }
  .content-left-img-image {
    margin-bottom: 0;
  }
  .content-left-img-form {
    margin-left: 0;
  }
}
/* ── Mobile ── */
@media (max-width: 769px) {
  .content-left-img {
    padding: 2rem 1.25rem;
  }
  .content-left-img .content-left-img-headline {
    font-size: 40px;
    line-height: 48px;
  }
  .content-left-img-form {
    max-width: 100%;
    margin: 0 auto;
  }
  .content-left-img p {
    text-align: center;
  }
}
/* ── Tablet: centered form/button ── */
@media (max-width: 991.98px) {
  .content-left-img-form {
    margin: 0 auto;
  }
  .content-left-img p {
    text-align: center;
  }
}
/* ==========================================================================
   Content Two Columns Particle

   Desktop: headline/subhead centered, items in two columns, left-aligned
   Tablet: single column, left-aligned
   Mobile: single column, left-aligned
   ========================================================================== */
.content-two-cols {
  background-color: var(--ctc-bg, transparent);
  padding: 3rem 2rem;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.content-two-cols-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Headline ── */
.content-two-cols .content-two-cols-headline {
  font-size: 36px;
  line-height: 44px;
  font-weight: 700;
  margin-bottom: 0.75rem;
  text-align: center;
  color: #222 !important;
}
/* ── Subhead ── */
.content-two-cols .content-two-cols-subhead {
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 2rem;
  text-align: center;
  color: #444 !important;
}
.content-two-cols .content-two-cols-subhead span, .content-two-cols .content-two-cols-subhead strong, .content-two-cols .content-two-cols-subhead em, .content-two-cols .content-two-cols-subhead b, .content-two-cols .content-two-cols-subhead i {
  font-size: inherit !important;
  color: inherit !important;
}
/* ── Items grid ── */
.content-two-cols-grid {
  margin-bottom: 0;
}
.content-two-cols-grid > div {
  display: flex;
  align-items: flex-start;
}
/* ── Individual item ── */
.content-two-cols-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  text-align: left;
  padding: 0.75rem 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #333 !important;
}
.content-two-cols-item span, .content-two-cols-item strong, .content-two-cols-item em, .content-two-cols-item b, .content-two-cols-item i, .content-two-cols-item li {
  color: inherit !important;
}
.content-two-cols-item h3, .content-two-cols-item h4 {
  font-weight: 700;
  margin-bottom: 0.25rem;
  color: #222 !important;
}
.content-two-cols-item p {
  margin-bottom: 0.5rem;
  color: inherit !important;
}
.content-two-cols-item ul, .content-two-cols-item ol {
  margin: 0.5rem 0;
  padding-left: 1.5rem;
}
.content-two-cols-item img {
  max-width: 24px;
  max-height: 24px;
  vertical-align: middle;
  margin-right: 0.5rem;
}
.content-two-cols-icon {
  flex-shrink: 0;
  padding-top: 0.5rem;
}
.content-two-cols-icon img {
  max-width: 28px;
  max-height: 28px;
  height: auto;
}
.content-two-cols-item-body {
  flex: 1;
}
.content-two-cols-item-body > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.content-two-cols .content-two-cols-subhead p {
  text-align: center !important;
}
/* ── Mobile/Tablet ── */
@media (max-width: 991.98px) {
  .content-two-cols .content-two-cols-headline {
    font-size: 1.6rem;
    text-align: left !important;
  }
  .content-two-cols .content-two-cols-subhead p {
    text-align: left !important;
  }
}
@media (max-width: 769px) {
  .content-two-cols {
    padding: 2rem 1.25rem;
  }
  .content-two-cols .content-two-cols-subhead p {
    text-align: left !important;
  }
  .content-two-cols .content-two-cols-headline {
    font-size: 32px;
    line-height: 38px;
    text-align: left !important;
  }
  .content-two-cols .content-two-cols-subhead p {
    text-align: left !important;
  }
}
/* ==========================================================================
   Sponsor Row Small Particle

   Desktop/Tablet: logos in a single row, centered
   Mobile: logos in a 3-column grid, centered
   ========================================================================== */
.sponsor-row-small {
  padding: 3rem 2rem;
  text-align: center;
}
.sponsor-row-small-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Headline ── */
.sponsor-row-small .sponsor-row-small-headline {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0.5rem;
  color: #222 !important;
}
/* ── Body ── */
.sponsor-row-small .sponsor-row-small-body {
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  color: #444 !important;
}
/* ── Logos row ── */
.sponsor-row-small-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
}
.sponsor-row-small-logo {
  flex-shrink: 0;
}
.sponsor-row-small-logo img {
  max-width: 100px;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sponsor-row-small-logo a {
  display: block;
}
/* ── Gantry overrides ── */
.sponsor-row-small a {
  color: inherit !important;
  text-decoration: none !important;
}
/* ── Mobile: 3-column grid ── */
@media (max-width: 767.98px) {
  .sponsor-row-small {
    padding: 2rem 1.25rem;
  }
  .sponsor-row-small .sponsor-row-small-headline {
    font-size: 1.5rem;
  }
  .sponsor-row-small-logos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    justify-items: center;
  }
}
/* ==========================================================================
   Sponsor Row Large Particle

   Desktop: logos in a single row, centered
   Tablet: 4-column grid
   Mobile: 2-column grid
   ========================================================================== */
.sponsor-row-large {
  padding: 3rem 2rem;
  text-align: center;
}
.sponsor-row-large-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Headline ── */
.sponsor-row-large .sponsor-row-large-headline {
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: #222 !important;
}
/* ── Body ── */
.sponsor-row-large .sponsor-row-large-body {
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 1.5rem;
  color: #444 !important;
}
/* ── Logos grid ── */
.sponsor-row-large-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 2rem;
}
.sponsor-row-large-logo {
  flex-shrink: 0;
}
.sponsor-row-large-logo img {
  max-width: 160px;
  max-height: 100px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sponsor-row-large-logo a {
  display: block;
}
/* ── Tablet: 4-column grid ── */
@media (max-width: 991.98px) {
  .sponsor-row-large-logos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    justify-items: center;
  }
}
/* ── Mobile: 2-column grid ── */
@media (max-width: 767.98px) {
  .sponsor-row-large {
    padding: 2rem 1.25rem;
  }
  .sponsor-row-large-logos {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
  }
}
/* ==========================================================================
   Columns With Circles Particle

   Desktop: 4 columns in a row
   Tablet: 2 columns
   Mobile: 2 columns
   ========================================================================== */
.columns-circles {
  background-color: var(--cwc-bg, transparent);
  padding: 3rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.columns-circles-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Individual item ── */
.columns-circles-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
}
/* ── Text caption ── */
.columns-circles .columns-circles-text {
  margin-bottom: 0.75rem;
  color: var(--cwc-text, #1a3c4d) !important;
  flex: 1;
}
/* ── Circular image ── */
.columns-circles-image {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}
.columns-circles-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* -- Table -- */
@media (max-width: 992px) {
  .columns-circles-image {
    max-width: 85%;
  }
  .columns-circles .columns-circles-text {
    width: 60%;
  }
}
/* ── Mobile ── */
@media (max-width: 767.98px) {
  .columns-circles {
    padding: 2rem 1rem;
  }
}
@media (max-width: 650px) {
  .columns-circles .columns-circles-text {
    width: 90%;
  }
}
/* ==========================================================================
   Product Hero Banner Particle

   Desktop: text left, image right
   Tablet/Mobile: stacked, text centered, image at bottom
   ========================================================================== */
.product-hero-banner {
  background-color: var(--phb-bg, transparent);
  padding: 3rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.product-hero-banner-inner {
  max-width: 1000px;
  margin: 0 auto;
}
/* ── Title Header ── */
.product-hero-banner .product-hero-banner-title {
  font-weight: 900;
  margin-bottom: 0.5rem;
  color: #222 !important;
}
/* ── Subhead ── */
.product-hero-banner .product-hero-banner-subhead {
  font-weight: 600;
  margin-bottom: 1rem;
  color: #333 !important;
}
/* ── Email input ── */
.product-hero-banner-fields {
  margin-bottom: 0.75rem;
}
.product-hero-banner-input-wrap {
  margin-bottom: 0.75rem;
}
.product-hero-banner .product-hero-banner-input {
  width: 100%;
  max-width: 400px;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  color: #333;
  outline: none;
  transition: border-color 0.2s ease;
}
.product-hero-banner .product-hero-banner-input:focus {
  border-color: #999;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
}
.product-hero-banner .product-hero-banner-input::placeholder {
  color: #999;
}
.product-hero-banner-error {
  font-size: 0.85rem;
  color: #cc0000 !important;
  margin-bottom: 0.5rem;
}
/* ── Buttons row (primary + optional secondary) ──
   Desktop: side by side, left-aligned (alignment set in the 992px block).
   Tablet (768–991): side by side, centered.
   Mobile (<768): stacked. */
.product-hero-banner .product-hero-banner-buttons {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: center;
  /* default (tablet/centered baseline) */
  margin: 1.25rem 0;
}
/* The email-capture variant stacks input + button vertically inside its own
   cell, so let that cell behave as a column while sitting in the row. */
.product-hero-banner .product-hero-banner-fields {
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* ── CTA button ── */
.product-hero-banner-cta {
  margin-bottom: 0;
  /* spacing handled by .product-hero-banner-buttons gap */
}
.product-hero-banner .product-hero-banner-btn {
  display: inline-block;
  padding: 0.65rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none !important;
  background-color: var(--phb-btn-bg, #f0a500) !important;
  color: var(--phb-btn-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.product-hero-banner .product-hero-banner-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Secondary button (outlined / light, matches mock) ── */
.product-hero-banner .product-hero-banner-btn--secondary {
  background-color: var(--phb-btn2-bg, #fff) !important;
  color: var(--phb-btn2-color, #222) !important;
  border: 1px solid #f0a500;
}
.product-hero-banner .product-hero-banner-btn--secondary:hover {
  opacity: 0.9;
  background-color: #f0a500 !important;
  color: #222 !important;
}
/* ── Body (below button) ── */
.product-hero-banner .product-hero-banner-body {
  font-size: 0.9rem;
  line-height: 1.6;
  color: #444 !important;
  margin-top: 1.25rem;
}
/* ── Image ── */
.product-hero-banner-image {
  text-align: center;
}
.product-hero-banner-image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}
/* ── Desktop: side-by-side, left-aligned text + buttons ── */
@media (min-width: 992px) {
  .product-hero-banner {
    text-align: left;
  }
  .product-hero-banner .product-hero-banner-buttons {
    justify-content: flex-start;
    /* desktop: left-aligned */
  }
  .product-hero-banner .product-hero-banner-fields {
    align-items: flex-start;
    /* email variant left-aligns on desktop */
  }
  .product-hero-banner .product-hero-banner-input {
    margin-left: 0;
  }
}
/* ── Mobile: stack the buttons ── */
@media (max-width: 767.98px) {
  .product-hero-banner {
    padding: 2rem 1.25rem;
  }
  .product-hero-banner .product-hero-banner-buttons {
    flex-direction: column;
    align-items: stretch;
    /* full-width stacked buttons */
  }
  .product-hero-banner .product-hero-banner-btn {
    text-align: center;
  }
  .product-hero-banner .product-hero-banner-input {
    max-width: 100%;
  }
}
/* ==========================================================================
   Social Media Embeds Particle

   Desktop: 4 columns
   Tablet: 2 columns
   Mobile: 1 column
   ========================================================================== */
.social-media-embeds {
  padding: 3rem 2rem;
  text-align: center;
}
.social-media-embeds-inner {
  max-width: 1200px;
  margin: 0 auto;
}
/* ── Subhead ── */
.social-media-embeds .social-media-embeds-subhead {
  margin-bottom: 1.5rem;
  color: #222 !important;
}
/* ── Embed item ── */
.social-media-embeds-item {
  overflow: hidden;
  /* Force all embeds to be responsive */
}
.social-media-embeds-item iframe {
  max-width: 100% !important;
  width: 100% !important;
}
.social-media-embeds-item blockquote {
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}
/* ── Responsive ── */
@media (max-width: 767.98px) {
  .social-media-embeds {
    padding: 2rem 1.25rem;
  }
  .social-media-embeds-item {
    max-width: 400px;
    margin: 0 auto;
  }
}
/* ==========================================================================
   Content Carousel Particle

   Uses CSS scroll-snap for smooth native scrolling.
   Desktop: 3 visible cards, arrow navigation
   Tablet: 2 visible cards, swipe only, peek next slide
   Mobile: 1 visible card, swipe only, peek next slide
   ========================================================================== */
.content-carousel {
  background-color: var(--cc-bg, #e8e8e8);
  padding: 3rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.content-carousel-inner {
  max-width: 1100px;
  margin: 0 auto;
}
/* ── Headline ── */
.content-carousel .content-carousel-headline {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #222 !important;
}
/* ── Carousel wrapper ── */
.content-carousel-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
/* ── Arrows ── */
.content-carousel-arrow {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #ccc;
  background: #fff;
  font-size: 1.5rem;
  line-height: 1;
  color: #0d5c6b;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
  padding: 0;
}
.content-carousel-arrow:hover {
  background-color: #f0f0f0;
}
/* ── Scrollable track ── */
.content-carousel-track {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  flex: 1;
}
.content-carousel-track::-webkit-scrollbar {
  display: none;
}
/* ── Individual slide ── */
.content-carousel-slide {
  flex: 0 0 calc(33.333% - 0.667rem);
  scroll-snap-align: start;
  display: flex;
  min-width: 0;
}
/* ── Card ── */
.content-carousel-card {
  background-color: var(--cc-card-bg, #0d5c6b);
  color: var(--cc-card-text, #fff);
  border-radius: 12px;
  padding: 2rem 1.5rem;
  font-size: var(--cc-font-size, 1rem);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}
.content-carousel-card span, .content-carousel-card strong, .content-carousel-card em, .content-carousel-card b, .content-carousel-card i, .content-carousel-card p {
  color: inherit !important;
  font-size: inherit !important;
}
.content-carousel[data-auto-scroll="yes"] .content-carousel-track {
  scroll-snap-type: none;
}
.content-carousel[data-auto-scroll="yes"] .content-carousel-arrow {
  display: none;
}
/* ── Tablet: 2 visible, no arrows, peek next slide ── */
@media (max-width: 991.98px) {
  .content-carousel-slide {
    flex: 0 0 calc(50% - 1rem);
  }
  .content-carousel-arrow {
    display: none;
  }
  .content-carousel-wrapper {
    gap: 0;
  }
  .content-carousel-track {
    padding-right: 2rem;
  }
}
/* ── Mobile: 1 visible, no arrows, peek next slide ── */
@media (max-width: 767.98px) {
  .content-carousel {
    padding: 2rem 1rem;
  }
  .content-carousel-slide {
    flex: 0 0 calc(85%);
  }
  .content-carousel-track {
    padding-right: 1rem;
  }
}
/* ==========================================================================
   Floating Action Button Particle
   ========================================================================== */
.floating-action-button {
  padding: 1.5rem 2rem;
  text-align: center;
}
.floating-action-button .fab-btn, .floating-action-button {
  display: inline-block;
  padding: 0.75rem 2.5rem;
  font-size: 1.05rem;
  font-weight: 700;
  border-radius: 50px;
  text-decoration: none !important;
  background-color: var(--fab-bg, #f0a500) !important;
  color: var(--fab-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.floating-action-button .fab-btn:hover, .floating-action-button:hover {
  opacity: 0.9;
  color: #FFF !important;
  background: #5F5F5F !important;
}
/* ==========================================================================
   Video Embed with Content Particle

   Desktop: content left, video right
   Tablet/Mobile: stacked, content on top, video below, centered
   ========================================================================== */
.video-embed-content {
  background-color: var(--vec-bg, transparent);
  padding: 3rem 2rem;
  text-align: center;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.video-embed-content-inner {
  max-width: 1100px;
  margin: 0 auto;
}
/* ── Headline ── */
.video-embed-content .video-embed-content-headline {
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: #222 !important;
}
/* ── Body ── */
.video-embed-content .video-embed-content-body {
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  color: #444 !important;
}
.video-embed-content .video-embed-content-body p {
  font-size: inherit !important;
  color: inherit !important;
  margin-bottom: 0.5rem;
}
.video-embed-content .video-embed-content-body a {
  color: #0d5c6b !important;
  text-decoration: underline !important;
}
.video-embed-content .video-embed-content-body ul, .video-embed-content .video-embed-content-body ol {
  text-align: left;
  padding-left: 1.25rem;
  margin-bottom: 0.75rem;
}
/* ── CTA button ── */
.video-embed-content-cta {
  margin-bottom: 1rem;
}
.video-embed-content .video-embed-content-btn {
  display: inline-block;
  padding: 0.65rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none !important;
  background-color: var(--vec-btn-bg, #f0a500) !important;
  color: var(--vec-btn-color, #222) !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.video-embed-content .video-embed-content-btn:hover {
  opacity: 0.9;
  background-color: #5F5F5F !important;
  color: #FFF !important;
}
/* ── Video ── */
.video-embed-content-video {
  position: relative;
  width: 100%;
}
.video-embed-content-video iframe {
  width: 100% !important;
  aspect-ratio: 1.7777777778;
  border: none;
  border-radius: 8px;
}
/* ── Gantry overrides ── */
.video-embed-content a {
  color: inherit !important;
  text-decoration: none !important;
}
.video-embed-content .video-embed-content-btn {
  background-color: var(--vec-btn-bg, #f0a500) !important;
  color: var(--vec-btn-color, #222) !important;
  text-decoration: none !important;
}
.video-embed-content .video-embed-content-btn:hover {
  background-color: #5F5F5F !important;
  color: #FFF !important;
  text-decoration: none !important;
}
.video-embed-content .video-embed-content-body a {
  color: #0d5c6b !important;
  text-decoration: underline !important;
}
.video-embed-content .video-embed-content-body a:hover {
  text-decoration: none !important;
}
/* ── Desktop: side-by-side, left-aligned text ── */
@media (min-width: 992px) {
  .video-embed-content {
    text-align: left;
  }
}
@media (max-width: 992px) {
  .video-embed-content .video-embed-content-body p {
    text-align: center !important;
  }
}
/* ── Mobile ── */
@media (max-width: 767.98px) {
  .video-embed-content {
    padding: 2rem 1.25rem;
  }
  .video-embed-content .video-embed-content-btn {
    display: block;
    width: 100%;
    text-align: center;
  }
}
/* ==========================================================================
   Comparison Table Module

   Desktop/Tablet: standard HTML table
   Mobile: accordion sections per column
   ========================================================================== */
.comparison-table {
  background-color: var(--ct-bg, #f5f5f5);
  padding: 3rem 2rem;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.comparison-table-inner {
  max-width: 1100px;
  margin: 0 auto;
}
/* ── Desktop/Tablet Table ── */
.comparison-table-desktop {
  display: block;
}
.comparison-table-desktop table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--ct-table-bg, #fff);
  border: 1px solid var(--ct-border, #e0e0e0);
}
.comparison-table-desktop thead th {
  font-size: var(--ct-header-size, 0.95rem);
  font-weight: 700;
  color: var(--ct-header-color, #222);
  background-color: var(--ct-header-bg, #eef0f2);
  padding: 1rem 1.25rem;
  text-align: left;
  border-bottom: 2px solid var(--ct-border, #e0e0e0);
  border-right: 1px solid var(--ct-border, #e0e0e0);
}
.comparison-table-desktop thead th:first-child {
  width: 20%;
}
.comparison-table-desktop thead th:last-child {
  border-right: none;
}
.comparison-table-desktop tbody td {
  font-size: var(--ct-cell-size, 0.9rem);
  color: var(--ct-cell-color, #444);
  padding: 0.85rem 1.25rem;
  border-bottom: 1px solid var(--ct-border, #e0e0e0);
  border-right: 1px solid var(--ct-border, #e0e0e0);
  vertical-align: middle;
}
.comparison-table-desktop tbody td:last-child {
  border-right: none;
}
.comparison-table-desktop .comparison-table-label {
  font-size: var(--ct-label-size, 0.9rem);
  font-weight: 700;
  color: var(--ct-label-color, #222);
}
.comparison-table-desktop tbody tr:nth-child(even) td {
  background-color: var(--ct-stripe, #f9f9f9);
}
/* ── Mobile Accordion ── */
.comparison-table-mobile {
  display: none;
}
.comparison-table-accordion {
  margin-bottom: 0.5rem;
}
.comparison-table-accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 1rem 1.25rem;
  background-color: var(--ct-header-bg, #eef0f2);
  border: 1px solid var(--ct-border, #e0e0e0);
  border-radius: 0;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}
.comparison-table-accordion-header.is-open {
  border-bottom-color: transparent;
}
.comparison-table-accordion-title {
  font-size: var(--ct-header-size, 0.95rem);
  font-weight: 700;
  color: var(--ct-header-color, #222);
}
.comparison-table-accordion-icon {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ct-expand, #666);
  width: 28px;
  height: 28px;
  border: 2px solid var(--ct-expand, #666);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
}
.comparison-table-accordion-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  border: 1px solid var(--ct-border, #e0e0e0);
  border-top: none;
}
.comparison-table-accordion-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid var(--ct-border, #e0e0e0);
  background-color: var(--ct-table-bg, #fff);
}
.comparison-table-accordion-row:last-child {
  border-bottom: none;
}
.comparison-table-accordion-row:nth-child(even) {
  background-color: var(--ct-stripe, #f9f9f9);
}
.comparison-table-accordion-label {
  font-size: var(--ct-label-size, 0.9rem);
  font-weight: 700;
  color: var(--ct-label-color, #222);
}
.comparison-table-accordion-value {
  font-size: var(--ct-cell-size, 0.9rem);
  color: var(--ct-cell-color, #444);
  text-align: right;
}
/* ── Responsive: switch at 768px ── */
@media (max-width: 767.98px) {
  .comparison-table {
    padding: 2rem 1rem;
  }
  .comparison-table-desktop {
    display: none;
  }
  .comparison-table-mobile {
    display: block;
  }
}
/* ==========================================================================
   Image with Content Particle

   Stacked, centered: headline -> body -> image.
   Image size set per block via .iwc--size-{small|medium|large|full}.
   ========================================================================== */
.image-with-content {
  padding: 2.5rem 2rem;
  text-align: center;
}
.image-with-content .image-with-content-inner {
  max-width: 1100px;
  margin: 0 auto;
}
/* ── Headline ── */
.image-with-content .image-with-content-headline {
  font-size: 1.875rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 1rem;
}
/* ── Body ── */
.image-with-content .image-with-content-body {
  font-size: 1.05rem;
  line-height: 1.6;
  margin: 0 0 1.5rem;
}
/* ── Image ── */
.image-with-content .image-with-content-image {
  margin: 0 auto;
}
.image-with-content .image-with-content-image img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 8px;
}
/* ── Image size presets (caps the image wrapper width, centered) ── */
.image-with-content.iwc--size-small .image-with-content-image {
  max-width: 320px;
}
.image-with-content.iwc--size-medium .image-with-content-image {
  max-width: 560px;
}
.image-with-content.iwc--size-large .image-with-content-image {
  max-width: 820px;
}
.image-with-content.iwc--size-full .image-with-content-image {
  max-width: 100%;
}
/* ── Mobile / tablet ── */
@media (max-width: 991.98px) {
  /* Size presets shouldn't exceed the viewport on small screens */
  .image-with-content {
    padding: 2rem 1.25rem;
  }
  .image-with-content .image-with-content-headline {
    font-size: 1.6rem;
  }
  .image-with-content .image-with-content-image {
    max-width: 100%;
  }
}
/* ==========================================================================
   Cards with Expansion module
   2-up card grid; per-card "Learn More" expansion. Hardened selectors,
   scoped under .mod-cards-expansion. Card color via --ce-card-bg.
   ========================================================================== */
.mod-cards-expansion {
  --ce-card-bg: #125b6b;
  --ce-heading: #2b2b2b;
  --ce-intro: #2b2b2b;
  --ce-card-text: #ffffff;
  --ce-card-muted: rgba(255, 255, 255, 0.85);
  --ce-card-link: #ffffff;
  padding: 2.5rem 1.5rem;
  box-sizing: border-box;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.mod-cards-expansion.mod-cards-expansion--text-dark {
  --ce-card-text: #1f1f1f;
  --ce-card-muted: rgba(0, 0, 0, 0.7);
  --ce-card-link: #0b3d49;
}
.mod-cards-expansion *, .mod-cards-expansion *::before, .mod-cards-expansion *::after {
  box-sizing: border-box;
}
.mod-cards-expansion .mod-cards-expansion__inner {
  max-width: 1100px;
  margin: 0 auto;
}
/* ── Subhead + intro (centered) ── */
.mod-cards-expansion .mod-cards-expansion__subhead {
  text-align: center;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--ce-heading);
  margin: 0 0 0.85rem;
  padding: 0;
}
.mod-cards-expansion .mod-cards-expansion__intro {
  text-align: center;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ce-intro);
  max-width: 760px;
  margin: 0 auto 2.25rem;
}
/* ── Grid ── */
.mod-cards-expansion .mod-cards-expansion__grid {
  display: grid;
  grid-template-columns: repeat(2, 350px);
  /* fixed-width columns, not 1fr */
  gap: 1.5rem;
  justify-content: center;
  /* centers the pair, kills the gap */
  align-items: start;
}
/* ── Card ── */
.mod-cards-expansion .mod-cards-expansion__card {
  background-color: var(--ce-card-bg);
  color: var(--ce-card-text);
  border-radius: 4px;
  overflow: hidden;
}
.mod-cards-expansion .mod-cards-expansion__card-inner {
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.5rem 1.25rem;
  height: 100%;
}
.mod-cards-expansion .mod-cards-expansion__card-title {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ce-card-text);
  margin: 0 0 0.6rem;
  padding: 0;
}
/* ── Card body (rich text) ── */
.mod-cards-expansion .mod-cards-expansion__card-body {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ce-card-text);
}
.mod-cards-expansion .mod-cards-expansion__card-body p {
  margin: 0 0 0.75rem;
}
.mod-cards-expansion .mod-cards-expansion__card-body p:last-child {
  margin-bottom: 0;
}
.mod-cards-expansion .mod-cards-expansion__card-body a, .mod-cards-expansion .mod-cards-expansion__expanded a {
  color: var(--ce-card-link);
  text-decoration: underline;
}
.mod-cards-expansion .mod-cards-expansion__card-body ul, .mod-cards-expansion .mod-cards-expansion__card-body ol, .mod-cards-expansion .mod-cards-expansion__expanded ul, .mod-cards-expansion .mod-cards-expansion__expanded ol {
  margin: 0.35rem 0 0.75rem 1.1rem;
  padding: 0;
  list-style: revert;
  font-size: 0.85rem;
  color: var(--ce-card-muted);
}
.mod-cards-expansion .mod-cards-expansion__card-body li, .mod-cards-expansion .mod-cards-expansion__expanded li {
  margin: 0.15rem 0;
  list-style: inherit;
}
/* ── Toggle button ("Learn More") ── */
.mod-cards-expansion .mod-cards-expansion__toggle {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4rem;
  width: auto;
  margin: 0.85rem 0 0;
  padding: 0 !important;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.9rem;
  color: var(--ce-card-text) !important;
  -webkit-appearance: none;
  appearance: none;
}
.mod-cards-expansion .mod-cards-expansion__toggle:hover, .mod-cards-expansion .mod-cards-expansion__toggle:focus, .mod-cards-expansion .mod-cards-expansion__toggle:active {
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  outline: none;
}
.mod-cards-expansion .mod-cards-expansion__toggle:focus-visible {
  outline: 2px solid var(--ce-card-text);
  outline-offset: 2px;
}
.mod-cards-expansion .mod-cards-expansion__toggle-label {
  text-decoration: none;
}
/* circular +/- icon */
.mod-cards-expansion .mod-cards-expansion__toggle-icon {
  position: relative;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border: 1px solid var(--ce-card-text);
  border-radius: 50%;
}
.mod-cards-expansion .mod-cards-expansion__toggle-icon::before, .mod-cards-expansion .mod-cards-expansion__toggle-icon::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  background-color: var(--ce-card-text);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.mod-cards-expansion .mod-cards-expansion__toggle-icon::before {
  top: 50%;
  left: 3.5px;
  right: 3.5px;
  height: 1.5px;
  transform: translateY(-50%);
}
.mod-cards-expansion .mod-cards-expansion__toggle-icon::after {
  left: 50%;
  top: 3.5px;
  bottom: 3.5px;
  width: 1.5px;
  transform: translateX(-50%);
}
.mod-cards-expansion .mod-cards-expansion__toggle[aria-expanded="true"] .mod-cards-expansion__toggle-icon::after {
  opacity: 0;
  transform: translateX(-50%) rotate(90deg);
}
/* ── Expansion panel ── */
.mod-cards-expansion .mod-cards-expansion__panel {
  height: 0;
  overflow: hidden;
  transition: height 0.25s ease;
}
.mod-cards-expansion .mod-cards-expansion__expanded {
  padding-top: 0.85rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--ce-card-text);
}
.mod-cards-expansion .mod-cards-expansion__expanded p {
  margin: 0 0 0.75rem;
}
.mod-cards-expansion .mod-cards-expansion__expanded p:last-child {
  margin-bottom: 0;
}
/* ── Tablet: keep 2-up ── */
@media (max-width: 991.98px) {
  .mod-cards-expansion .mod-cards-expansion__subhead {
    font-size: 1.45rem;
  }
}
/* ── Mobile: single column ── */
@media (max-width: 599.98px) {
  .mod-cards-expansion {
    padding: 1.75rem 1.1rem;
  }
  .mod-cards-expansion .mod-cards-expansion__grid {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }
}
/* ==========================================================================
   Content with Accordion module
   Hardened against theme/base overrides: high-specificity selectors,
   defensive resets on list + button. Scoped under .mod-content-accordion.
   ========================================================================== */
.mod-content-accordion {
  --ca-link: #1a7b8c;
  --ca-text: #2b2b2b;
  --ca-heading: #3a4a4d;
  --ca-rule: #e2e2e2;
  padding: 2.5rem 1.5rem;
  box-sizing: border-box;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}
.mod-content-accordion *, .mod-content-accordion *::before, .mod-content-accordion *::after {
  box-sizing: border-box;
}
.mod-content-accordion .mod-content-accordion__inner {
  width: 80%;
  max-width: 1200px;
  margin: 0 auto;
}
/* ── Subhead + intro (centered) ── */
.mod-content-accordion .mod-content-accordion__subhead {
  text-align: center;
  font-size: 3rem;
  font-weight: 400;
  line-height: 1.1;
  color: var(--ca-heading);
  margin: 0 0 1rem;
  padding: 0;
}
.mod-content-accordion .mod-content-accordion__body {
  text-align: center;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--ca-text);
  max-width: 1000px;
  margin: 0 auto 2.5rem;
}
.mod-content-accordion .mod-content-accordion__body a {
  color: var(--ca-link);
}
.mod-content-accordion .mod-content-accordion__body p {
  text-align: center !important;
}
/* ── Section ── */
.mod-content-accordion .mod-content-accordion__section {
  margin: 0 0 2rem;
}
.mod-content-accordion .mod-content-accordion__section-heading {
  font-size: 1.85rem;
  font-weight: 400;
  color: var(--ca-heading);
  margin: 0 0 0.5rem;
  padding: 0;
}
/* ── List / items (defensive reset against theme bullets) ── */
.mod-content-accordion ul.mod-content-accordion__list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.mod-content-accordion ul.mod-content-accordion__list > li.mod-content-accordion__item {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
}
.mod-content-accordion ul.mod-content-accordion__list > li.mod-content-accordion__item::before, .mod-content-accordion ul.mod-content-accordion__list > li.mod-content-accordion__item::marker {
  content: none !important;
  display: none !important;
}
/* ── Trigger (question row) — full button reset ── */
.mod-content-accordion .mod-content-accordion__trigger {
  display: flex !important;
  align-items: flex-start;
  gap: 0.65rem;
  width: 100%;
  margin: 0;
  padding: 0.5rem 0;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--ca-link) !important;
  -webkit-appearance: none;
  appearance: none;
  white-space: normal !important;
  /* ADD: override theme nowrap */
}
.mod-content-accordion .mod-content-accordion__trigger:hover, .mod-content-accordion .mod-content-accordion__trigger:focus, .mod-content-accordion .mod-content-accordion__trigger:active {
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  outline: none;
}
.mod-content-accordion .mod-content-accordion__trigger:focus-visible {
  outline: 2px solid var(--ca-link);
  outline-offset: 2px;
}
.mod-content-accordion .mod-content-accordion__question {
  font-size: 1rem;
  line-height: 1.4;
  color: var(--ca-link);
  text-decoration: underline;
  text-underline-offset: 2px;
  flex: 1 1 auto;
  /* take row space, allow shrink */
  min-width: 0;
  /* permit shrink below content width */
  overflow-wrap: break-word;
  /* break overlong words */
  white-space: normal !important;
  /* THE FIX: override theme nowrap */
}
.mod-content-accordion .mod-content-accordion__trigger:hover .mod-content-accordion__question {
  text-decoration: none;
}
/* ── Circular +/- icon (pure CSS) ── */
.mod-content-accordion .mod-content-accordion__icon {
  position: relative;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 0.12rem;
  border: 1px solid var(--ca-link);
  border-radius: 50%;
  background: none;
}
.mod-content-accordion .mod-content-accordion__icon::before, .mod-content-accordion .mod-content-accordion__icon::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  background-color: var(--ca-link);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.mod-content-accordion .mod-content-accordion__icon::before {
  top: 50%;
  left: 4px;
  right: 4px;
  height: 1.5px;
  transform: translateY(-50%);
}
.mod-content-accordion .mod-content-accordion__icon::after {
  left: 50%;
  top: 4px;
  bottom: 4px;
  width: 1.5px;
  transform: translateX(-50%);
}
.mod-content-accordion .mod-content-accordion__trigger[aria-expanded="true"] .mod-content-accordion__icon::after {
  opacity: 0;
  transform: translateX(-50%) rotate(90deg);
}
/* ── Panel / answer ── */
.mod-content-accordion .mod-content-accordion__panel {
  height: 0;
  overflow: hidden;
  transition: height 0.25s ease;
}
.mod-content-accordion .mod-content-accordion__answer {
  padding: 0.25rem 0 0.85rem 1.85rem;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--ca-text);
}
.mod-content-accordion .mod-content-accordion__answer a {
  color: var(--ca-link);
}
.mod-content-accordion .mod-content-accordion__answer ul, .mod-content-accordion .mod-content-accordion__answer ol {
  margin: 0.5rem 0 0.5rem 1.25rem;
  padding: 0;
  list-style: revert;
}
.mod-content-accordion .mod-content-accordion__answer li {
  margin: 0.25rem 0;
  list-style: inherit;
}
.mod-content-accordion .mod-content-accordion__answer p {
  margin: 0 0 0.75rem;
}
.mod-content-accordion .mod-content-accordion__answer p:last-child {
  margin-bottom: 0;
}
/* ── Tablet ── */
@media (max-width: 991.98px) {
  .mod-content-accordion .mod-content-accordion__subhead {
    font-size: 2.25rem;
    text-align: left !important;
  }
  .mod-content-accordion .mod-content-accordion__section-heading {
    font-size: 1.6rem;
  }
  .mod-content-accordion .mod-content-accordion__body p {
    text-align: left !important;
  }
}
/* ── Mobile ── */
@media (max-width: 575.98px) {
  .mod-content-accordion {
    padding: 1.75rem 1.1rem;
  }
  .mod-content-accordion .mod-content-accordion__subhead {
    font-size: 1.9rem;
    text-align: left;
  }
  .mod-content-accordion .mod-content-accordion__body {
    text-align: left;
    font-size: 0.95rem;
    margin-bottom: 1.75rem;
  }
  .mod-content-accordion .mod-content-accordion__section-heading {
    font-size: 1.5rem;
  }
  .mod-content-accordion .mod-content-accordion__inner {
    width: 100%;
  }
}
/* ==========================================================================
   Multiple Buttons module (mod_multiple_buttons)

   Lives in the Helium theme SCSS (NOT in the module) because Gantry's Module
   particle strips <style> tags from module output.

   Layout:
     Desktop / Tablet : centered row, wraps if needed
     Mobile (<576px)  : 2-up grid (two columns), matching the mock
   ========================================================================== */
.mod-multiple-buttons {
  padding: 1.5rem 1rem;
}
.mod-multiple-buttons .mod-multiple-buttons__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.75rem 1rem;
  max-width: 1100px;
  margin: 0 auto;
}
/* ── Base button ── */
.mod-multiple-buttons .mod-multiple-buttons__btn, .mod-multiple-buttons .mod-multiple-buttons__btn:hover {
  display: inline-block;
  padding: 0.75rem 2.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: 50px;
  cursor: pointer;
  text-align: center;
  text-decoration: none !important;
  transition: opacity 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
/* ── Primary (filled) ── */
.mod-multiple-buttons .mod-multiple-buttons__btn--primary {
  border: none;
  background-color: #f0a500 !important;
  color: #222 !important;
}
.mod-multiple-buttons .mod-multiple-buttons__btn--primary:hover {
  opacity: 0.9;
  background-color: #5f5f5f !important;
  color: #fff !important;
}
/* ── Secondary (outlined) ── */
.mod-multiple-buttons .mod-multiple-buttons__btn--secondary {
  background-color: #fff !important;
  color: #222 !important;
  border: 1px solid #f0a500;
}
.mod-multiple-buttons .mod-multiple-buttons__btn--secondary:hover {
  opacity: 0.9;
  background-color: #f0a500 !important;
  color: #222 !important;
}
/* ── Mobile: 2-up grid ── */
@media (max-width: 575.98px) {
  .mod-multiple-buttons .mod-multiple-buttons__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
  }
  .mod-multiple-buttons .mod-multiple-buttons__btn {
    padding: 0.75rem 1rem;
    /* narrower columns need less side padding */
    font-size: 1rem;
    width: 100%;
    /* fill the grid cell */
  }
}
/* BEGIN COLORS */
/* ENDS COLORS */
/* TYPEOGRAPHY */
/* END OF TYPEOGRAPHY */
/* BEGIN GANTRY OVERRIDES */
.ptotoday-brand-image .g-content {
  text-align: right;
}
#g-navigation .g-container {
  width: 100%;
}
#g-navigation .g-container .g-grid {
  align-items: flex-end;
}
#g-navigation .g-container .g-grid .g-block .g-content {
  margin: unset !important;
  padding-bottom: 5px;
}
.title1 .g-title {
  background: unset;
  color: #000;
}
#g-footer .g-horizontalmenu {
  padding: unset;
  text-align: left;
}
#g-footer > .g-container {
  padding-left: 2rem;
  width: 100vw;
}
.g-horizontalmenu li {
  padding: unset;
}
#g-offcanvas #g-mobilemenu-container ul > li.g-menu-item-link-parent > .g-menu-item-container > .g-menu-parent-indicator {
  border: 1px solid #000;
  background: #FFF;
}
#g-offcanvas #g-mobilemenu-container ul > li:not(.g-menu-item-type-particle):not(.g-menu-item-type-module).active > .g-menu-item-container {
  color: #FFF;
}
.g-offcanvas-toggle {
  color: #005A6D;
}
#g-footer .g-content {
  margin: 0.3rem 0 0 0;
  padding: unset;
}
.g-title {
  text-align: center;
}
#g5-container .settings-block .settings-param-title, span.g-title {
  color: #000 !important;
}
.g-main-nav .g-toplevel > li > .g-menu-item-container {
  font-size: 14px !important;
}
.list-inline-item > a.btn {
  border: none !important;
}
.list-inline-item:not(:last-child)::after {
  color: #000;
  content: "|";
}
/* END OF GANTRY OVERRIDES */
/* SLIDER OVERRIDES */
.mslider-item {
  width: unset !important;
}
.mslider-photo-link img {
  min-height: unset !important;
}
.mslider_main .mslider-photo-link img {
  height: unset;
  width: unset;
  max-height: unset;
  object-fit: cover;
}
.mslider_main .mslider-item-inner-cont {
  height: 100%;
  max-height: 280px;
  max-width: 251px;
  width: 100%;
}
.mslider-item-outer-cont .mslider-photo-link {
  background: #FFF;
  opacity: 1;
  height: 280px;
  width: 251px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.mslider_image_slider .mslider-detail-box {
  width: 100%;
  text-align: center;
}
.mslider-description {
  background: #f5f5f5;
  color: #000;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 30.17px;
  letter-spacing: -0.02em;
  text-align: center;
}
.slider-header {
  background: #f5f5f5;
  color: #000;
  margin-bottom: 0px !important;
  text-align: center;
}
.slider-con-temp {
  background: #f5f5f5;
  padding: 3rem 0;
  width: 100%;
}
/* END OF SLIDER OVERRIDES */
/* WALL OVERRIDES  */
.article-wall h3 a {
  color: #005A6D !important;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: -0.02em;
}
.article-wall h3 a:hover {
  color: #005A6D !important;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: -0.02em;
  text-decoration: underline;
}
.article-wall-secondary h3 a {
  color: #005A6D !important;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: -0.02em;
  text-decoration: underline !important;
  padding-right: 12px !important;
}
.article-wall-secondary h3 a:hover {
  text-decoration: none !important;
}
.article-wall-secondary div.mwall-desc {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: -0.02em;
  padding-right: 12px !important;
}
/* END OF WALL OVERRIDES  */
/* ELEMENT LEVEL STYLES CAN BE OVERRIDDEN */
body {
  color: #000;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 16px;
}
h1 {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 74px;
  font-weight: 700;
  line-height: 78px;
  letter-spacing: -0.03em;
}
h2, h3, h4, p {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-weight: 400;
  letter-spacing: -0.02em;
}
h2 {
  font-size: 56px;
  line-height: 64px;
}
h3 {
  font-size: 36px;
  line-height: 44px;
}
h4 {
  font-size: 24px;
  line-height: 32.68px;
  padding-top: 24px;
  margin: 0px;
}
p {
  font-size: 16px;
  line-height: 24px;
  text-align: left;
}
a {
  text-decoration: underline;
}
a:hover {
  text-decoration: none;
}
a, a:hover {
  color: #005A6D;
  font-weight: bolder;
}
blockquote {
  border-left: none;
  padding-left: 0px;
}
/* END OF ELEMENT LEVEL STYLES */
/* START OF PTO STYLES */
.nav-link-no-click > a:first-child {
  pointer-events: none;
}
ul.tags > li {
  margin-right: 0px !important;
}
ul.tags > li > .label-info[href], ul.tags > li > .label-info {
  background: #FFF;
  color: #005A6D;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 16.34px;
  letter-spacing: -0.02em;
  text-align: left;
}
ul.tags > li > a.btn.btn-sm.label.label-info {
  padding: 5px;
}
.list-inline-item > a.btn, ul.tags > li > a.list-inline-item.btn {
  border: none !important;
  padding: 5px;
}
ul.tags > li > a.btn.btn-sm.label.label-info:not(:last-child)::after {
  content: "|";
}
.plus-member-link > a:hover {
  color: #005A6D !important;
}
.category-name {
  color: #005A6D;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 16.34px;
  letter-spacing: -0.02em;
  text-align: left;
}
.nav-link-hover-state > a:hover {
  color: #005A6D !important;
  cursor: pointer;
}
.img-section-text-con > div {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: center;
}
.img-section-text-con > div h2 {
  margin: 0px;
}
.nav-spacer {
  border: 3px solid !important;
}
.nav-menu-con {
  position: relative;
}
.nav-menu-con > div {
  position: relative;
  transform: translateY(15px);
}
.pto-hero-greeting {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: unset;
}
.pto-hero-in-btn-con {
  align-items: center;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 10px;
}
.ptotoday-subheader {
  color: #FFF;
  font-size: 38px;
  font-weight: 700;
  line-height: 44px;
}
.ptotoday-select-primary {
  width: 262px;
  height: 40px;
  flex-shrink: 0;
  border-width: 2px;
  border-radius: 7px;
  color: #FFF;
  font-weight: 800;
  background-color: #0191B0;
}
.ptotoday-text-input {
  width: 328px !important;
  height: 40px !important;
  border-radius: 5px !important;
  background: #FFF;
}
.smaller-nav-text li {
  font-size: 14px;
}
.smallest-nav-text li {
  font-size: 10px;
}
.ptotoday-horizontal-menu li:not(:last-child)::after {
  content: "|";
  padding: 13px;
}
.last-footer-menu li:first-child::after {
  content: none !important;
  padding: 13px;
  text-decoration: none !important;
}
.ptotoday-horizontal-menu li a {
  color: #FFF;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 24px;
  letter-spacing: -0.02em;
  text-align: left;
}
.footer-top-menu-items li a {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 16px !important;
  font-weight: 600;
  line-height: 30px;
  letter-spacing: -0.02em;
  margin-bottom: 15px;
  text-align: left;
}
.last-footer-menu li:first-child {
  margin-right: 5px;
  pointer-events: none !important;
  text-decoration: none !important;
}
.pto-cat-page-sign-up-heading {
  margin: 10px auto;
  max-width: 40ch;
  text-align: center;
  width: 100%;
}
.sign-up-input-con {
  display: inline-flex !important;
  align-items: unset;
  justify-content: unset;
  flex-direction: unset;
}
.topic-page-article-grid h1 {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-weight: 400;
  font-size: 56px;
  line-height: 64px;
  letter-spacing: -0.02em;
}
.front-blurb {
  font-size: 22px;
  line-height: 29.96px;
  text-align: left;
}
.pto-section-img-con img {
  border-radius: 20%;
}
.get-in-touch, .sign-up-newsletter, .cat-sign-up-top-con {
  padding: 1rem 0px !important;
}
.get-in-touch {
  background-color: #0191B0 !important;
  color: #FFF !important;
}
.homepage-highlighted-article {
  color: #000;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-weight: 400;
  font-size: 56px;
  line-height: 64px;
  letter-spacing: -0.02em;
  text-decoration: none;
}
.homepage-highlighted-article:hover {
  color: #000;
  cursor: pointer;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-weight: 400;
  font-size: 56px;
  line-height: 64px;
  letter-spacing: -0.02em;
  text-decoration: none;
}
/* MODULES */
.ins-more-con {
  background-color: #0191B0;
  color: #FFF;
  height: 100%;
  padding: 16px 50px 24px 18px;
  max-height: 122px;
  max-width: 728px;
  width: 100%;
}
.ins-more-con-header {
  color: #FFF;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: -0.02rem;
  margin-top: 0px;
  margin-left: 0px;
  margin-right: 0px;
  margin-bottom: 14px;
}
.ins-more-con-inner-con {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 15px;
}
.ins-more-con-inner-con div {
  height: 100%;
  width: 100%;
}
.ins-more-con-input {
  background: #FFF;
  border-radius: 5px;
  color: #000;
  height: 100%;
  max-height: 40px;
  max-width: 328px;
  width: 100%;
}
/* END OF MODULES */
/* ADS */
.house-ads-con {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 50px;
  justify-content: center;
}
/* END OF ADS  */
/* ARTICLE / CATEGORY PAGE  */
.sponsor-container #ad-slot {
  display: none !important;
}
.sponsor-container div.offer {
  width: 100%;
  background-color: #00A7CC;
  padding: 18px;
  text-align: left;
  font: normal normal normal 20px/26px "Source Sans Pro", Arial, Helvetica, sans-serif;
  letter-spacing: -0.1px;
  color: #FFF;
}
.sponsor-container div.sponsor {
  background-color: #F2BA1B;
  padding: 2px 0 2px 8px;
  margin-bottom: 5px;
  line-height: 20px;
  color: #FFF;
  font-size: 18px;
}
.sponsor-container p.offer {
  margin-top: 20px;
  text-decoration: none;
}
.sponsor-container .offer a {
  text-align: left;
  font: normal normal normal 20px/28px "Source Sans Pro", Arial, Helvetica, sans-serif;
  letter-spacing: -0.1px;
  color: #000;
  font-weight: bold;
  background-color: #FEBB30;
  padding: 10px;
  display: inline-block;
  text-decoration: none !important;
}
.sponsor-container hr.coop {
  background-color: #7D7D7D;
  height: 0.5px;
}
.sponsor-container img.icon {
  margin-top: 15px;
}
.sponsor-container .icon.features {
  width: 42px;
  height: 41px;
}
.sponsor-container .icon.testimonials {
  width: 41px;
  height: 37px;
}
.sponsor-container .icon.pricing {
  width: 41px;
  height: 50px;
}
.sponsor-container .icon.overview {
  width: 41px;
  height: 42px;
}
.sponsor-container wbr.offer {
  text-indent: 0px;
  white-space: pre-wrap;
}
/* END OF ARTICLE / CATEGORY PAGE  */
/* BEGIN STYLES FOR TOPIC BLOCK SPONSORED ADS */
.top-ad-wrapper {
  background-color: #eee;
  padding: 11px;
}
.top-ad-container {
  margin: 0px 0px 14px 0px;
}
.sponsor-ad-title {
  text-transform: uppercase;
  font: 13px "quicksandregular", sans-serif;
  font-weight: 900;
  padding-bottom: 6px;
  color: #000;
}
.mobile-visible {
  display: none;
}
@media only screen and (max-width: 753px) {
  .top-ad-container {
    margin: 0px 0px 14px 0px;
  }
  .mobile-visible {
    width: 100%;
  }
}
/* END STYLES FOR TOPIC BLOCK SPONSORED ADS */
.ptotoday-btn-primary, .ecommerce-btn {
  padding: 9px 24px;
  border-radius: 17px;
  background: #FDBB30;
  color: #000;
  font-size: 20px;
  font-weight: 600;
  line-height: 22px;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  letter-spacing: -0.02em;
}
.ptotoday-btn-primary:hover, .ecommerce-btn:hover {
  padding: 9px 24px;
  border-radius: 17px;
  background: #5F5F5F;
  color: #FFF !important;
  font-size: 20px;
  font-weight: 600;
  line-height: 22px;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  letter-spacing: -0.02em;
}
.ptotoday-btn-primary:hover a, .ecommerce-btn:hover a {
  color: #FFF !important;
  text-decoration: none;
}
.ptotoday-btn-primary a, .ecommerce-btn a {
  color: #000 !important;
  text-decoration: none;
}
.ptotoday-btn-primary a:hover, .ecommerce-btn a:hover {
  color: #FFF !important;
  text-decoration: none;
}
.fourOhfour {
  background: #FFF;
  color: #000;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 50vh;
  text-align: start;
  width: 100%;
}
.fourOhfour > h1 {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 36px;
  line-height: 44px;
  font-weight: 400;
  letter-spacing: -0.02%;
}
.fourOhfour > p {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: -0.02%;
}
.fourOhfour > a {
  color: #005A6D !important;
}
.weekly-con {
  align-items: center;
  background: #000;
  bottom: 0;
  color: #FFF;
  display: flex;
  flex-direction: row;
  height: 50px;
  justify-content: space-between;
  left: 0;
  padding: 0rem 2rem;
  position: absolute;
  width: 100%;
  z-index: 10;
}
.weekly-social-con, .weekly-news-con, .weekly-input-con {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 10px;
}
.weekly-news-con > p {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 30px;
  width: 22ch;
}
.weekly-input-con > input {
  max-width: 230px;
}
/* END CUSTOM ptotoday-* styles */
/* INSURANCE STYLES */
#pricing-table-mobile {
  display: none !important;
}
.bordered-top {
  border-top: 1px solid #BDBDBD;
  border-left: 1px solid #BDBDBD;
  border-right: 1px solid #BDBDBD;
  background-color: #FFF;
  box-shadow: 3px 3px 0px 0px rgba(189, 189, 189, 0.3);
}
.bordered-middle {
  border-left: 1px solid #BDBDBD;
  border-right: 1px solid #BDBDBD;
  background-color: #FFF;
  box-shadow: 3px 3px 0px 0px rgba(189, 189, 189, 0.3);
}
.bordered-bottom {
  border-bottom: 1px solid #BDBDBD;
  border-left: 1px solid #BDBDBD;
  border-right: 1px solid #BDBDBD;
  background-color: #FFF;
  box-shadow: 3px 3px 0px 0px rgba(189, 189, 189, 0.3), 1px 3px 0px 0px rgba(189, 189, 189, 0.3);
  -moz-box-shadow: 3px 3px 0px 0px rgba(189, 189, 189, 0.3), 1px 3px 0px 0px rgba(189, 189, 189, 0.3);
  -webkit-box-shadow: 3px 3px 0px 0px rgba(189, 189, 189, 0.3), 1px 3px 0px 0px rgba(189, 189, 189, 0.3);
}
.pricing-amount {
  font-weight: 700;
  font-size: 18px;
  padding: 12px 0px 8px;
}
.long-bottom {
  padding-bottom: 18px;
}
/* AIDEN Jan-Feb 2022 */
#pricing-table {
  text-align: center;
}
#pricing-table > .comparison {
  height: 50px;
}
.custom-flex-row {
  display: flex;
}
.details-text {
  font-size: 14px;
}
[data-toggle="collapse"], [data-toggle="collapse is-open"] {
  text-decoration: underline;
  color: #000 !important;
}
[data-toggle="collapse"]:hover, [data-toggle="collapse is-open"]:hover {
  text-decoration: none;
}
[data-toggle="collapse"]::before {
  content: "+";
}
[data-toggle="collapse is-open"]::before {
  content: "-";
}
.collapse {
  transition: opacity 1s ease-out;
  opacity: 0;
  height: 0;
  overflow: hidden;
}
.is-toggled {
  transition: opacity 1s ease-out;
  display: block;
  opacity: 1;
  height: auto;
}
.bordered-middle {
  display: block;
  opacity: 1 !important;
  height: auto;
}
.column-padding-override {
  padding: unset !important;
}
.ins-h3 {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 44px;
  letter-spacing: -0.02em;
  text-align: center;
}
.ins-mbl-title-con {
  padding: 5px;
}
.text-left {
  text-align: left;
}
/* END OF INSURANCE  */
/* begin article override */
.article-heading, .caption, .intro-text > p, .author {
  color: #000;
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
  font-weight: 400;
  letter-spacing: -0.02rem;
  text-align: left;
}
.article-heading {
  font-size: 56px;
  line-height: 64px;
  margin: 10px 0px 20px 0px;
}
.full_picture {
  max-width: 420px;
  padding-right: 0px !important;
}
.caption {
  font-size: 13px;
  line-height: 16.34px;
  margin: 5px 0px 10px 0px;
  text-transform: uppercase;
}
.intro-text > p {
  font-size: 24px;
  line-height: 32px;
  margin: -5px 0px 9px 0px;
}
.author {
  font-size: 16px;
  font-style: italic;
  line-height: 24px;
}
.author > p {
  margin-top: 0px !important;
  margin-bottom: 0px !important;
}
.a2a_kit {
  display: flex;
  column-gap: 5px;
}
.a2a-kit > div {
  text-align: center;
  padding: 8px;
}
/*
    Social buttons at the top of article pages (Add To Any)
  */
.a2a-btn-big, .a2a-btn-small {
  display: flex;
  align-items: center;
  justify-content: center;
}
.a2a-btn-big {
  width: 25%;
  padding: 5px;
}
.a2a-btn-small {
  width: 12.5%;
  padding: 7px;
}
.facebook-icon {
  background-color: #0866FF;
}
.x-icon {
  background-color: #000;
}
.pinterest-icon {
  background-color: #E71623;
}
.email-icon {
  background-color: #D2D3D5;
}
.print-icon {
  background-color: #D2D3D5;
}
.end-of-article-signup {
  width: 80%;
  background-color: #00A9CA;
  padding: 15px;
  color: #FFF;
  font-weight: 500;
}
.a2a-btn-big {
  width: 25%;
}
.end-of-article-signup {
  width: 80%;
  background-color: #00A9CA;
  padding: 15px;
  color: #FFF;
  font-weight: 500;
}
/* 
    Topics A-Z
    I added these classes into my local joomla article for the topics landing. 
  */
.a2a_kit a {
  color: #FFF !important;
}
.mobile-icon {
  display: block;
}
.desktop-icon {
  display: none;
}
/* end article override */
/* TACO CALCULATOR */
.calculator {
  background: #FFD027;
  border-radius: 5px;
  margin-bottom: 15px;
  padding: 15px;
  width: 520px;
}
.calculator h1 {
  color: #4a4a4a;
  font-weight: 400;
  font-size: 16px;
  margin: 0px;
}
.calculator h2 {
  color: #000;
  font-weight: 900;
  font-size: 30px;
  margin: 0px;
  padding-bottom: 0.8rem;
}
.calculator p {
  color: #000;
  font-size: 16px;
  line-height: 23px;
  margin: 0px;
  padding-bottom: 0.7rem;
}
.calculator label {
  color: #000;
  margin-bottom: 0px;
}
.calculator input {
  font-size: 16px;
  margin-bottom: 10px;
  width: 100px;
}
/* END OF TACO CALCULATOR */
/* MEDIA QUERIES  */
@media screen and (max-width: 1190px) {
  /* PTO STYLES  */
  .pto-hero-greeting {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem;
  }
  #home-hero-img-con div, #home-hero-img-con div img {
    height: 100%;
  }
  .nav-link-no-click > a:first-child {
    pointer-events: all;
  }
  .nav-link-hover-state > a:hover {
    background: #005A6D;
    color: #FFF !important;
    cursor: pointer;
  }
}
@media screen and (max-width: 960px) {
  .hero-con div.pto-hero-greeting {
    flex: 0 100%;
    width: 100%;
  }
  #mwall_items_1 .mwall-item-inner .mwall-title a, #mwall_items_1 .mwall-item-inner .mwall-title span {
    font-size: 18px !important;
    line-height: 24px !important;
  }
}
@media screen and (max-width: 1025px) {
  /* PTO STYLES  */
  #nav-search-bar-con {
    width: 250px;
  }
  #nav-ins-btn {
    transform: translateX(150px);
  }
}
@media (max-width: 1024px) and (min-width: 768px) {
  /* INSURANCE */
  .insurance-body {
    padding: 0 10px;
  }
  .recommended {
    font-size: 14px;
  }
  p.hero-message {
    font-size: 37px;
  }
}
@media screen and (max-width: 768px) {
  /* ELEMENTS */
  /* END OF ELEMENTS  */
  /* GANTRY  */
  /* END OF GANTRY */
  /* SLIDER  */
  /* END OF SLIDER  */
  /* ADS */
  /* END OF ADS  */
  /* WALL  */
  /* END OF WALL */
  /* PTO STYLES */
  /* WEEKLY */
  /* END OF WEEKLY  */
  /* INSURANCE */
  /*mobile pricing tables*/
  /* END OF INSURANCE  */
  /* MODULES */
  /* END OF MODULES  */
  h1 {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-weight: 700;
    font-size: 48px;
    line-height: 52px;
    letter-spacing: -0.03em;
  }
  h2 {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-weight: 400;
    font-size: 28px;
    line-height: 44px;
    letter-spacing: -0.02em;
  }
  p {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.02em;
  }
  a {
    color: #005A6D;
  }
  #g-footer {
    padding: 8rem 0rem 0rem 0rem;
    position: relative;
  }
  .ptotoday-horizontal-menu li::after {
    content: none !important;
    padding: unset;
  }
  #g-footer .g-content {
    padding: unset;
  }
  #g-footer > .g-container {
    width: 100%;
  }
  .g-horizontalmenu li a {
    text-decoration: underline;
  }
  .g-content .row, .pto-article-con .col .row > *, .topic-page-article-grid .row > * {
    padding-left: unset;
  }
  .g-horizontalmenu li a {
    margin-bottom: unset;
    padding: unset;
  }
  #g-footer .fa-facebook {
    color: #0866FF;
  }
  #g-footer .fa-twitter {
    color: #1A9EEE;
  }
  #g-footer .fa-instagram {
    color: #FFF;
  }
  #g-footer .fa-pinterest {
    color: #E71623;
  }
  #g-footer .fa-youtube {
    color: #F91111;
  }
  #g-footer .g-copyright {
    margin-top: 20px;
    text-align: start;
  }
  .g-totop {
    padding-right: 2rem !important;
    text-align: center;
  }
  .mslider-wrapper-inner.mslider_horizontal_padding {
    padding: 0px;
  }
  .house-ads-con {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 50px;
    justify-content: center;
  }
  .article-wall h3 a {
    color: #005A6D !important;
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 30px;
    letter-spacing: -0.02em;
  }
  .article-wall div.mwall-desc {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: -0.02em;
  }
  .article-content-container {
    padding: 0px 20px;
  }
  .article-content-container div.platform-content.container, .article-content-container div.col, .article-content-container h1.article-heading.sourceHeader, .article-content-container div.col-sm-12.col-md-5.wrapper.full_picture.no-right-pad, .article-content-container div.col-sm-12.col-md-7.intro-text {
    padding: 0px;
  }
  .article-content-container .col-sm-12.col-md-5.wrapper.full_picture.no-right-pad > img {
    height: 240px;
    width: 360px;
  }
  .homepage-highlighted-article {
    color: #000;
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-weight: 400;
    font-size: 28px;
    line-height: 44px;
    letter-spacing: -0.02em;
    text-decoration: none;
  }
  .homepage-highlighted-article:hover {
    color: #000;
    cursor: pointer;
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-weight: 400;
    font-size: 28px;
    line-height: 44px;
    letter-spacing: -0.02em;
    text-decoration: none;
  }
  .img-section-text-con > div {
    padding: 15px;
  }
  .pto-hero-in-btn-con {
    align-items: start;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
  }
  .pto-hero-greeting {
    padding: 15px;
  }
  .pto-hero-btn {
    margin-top: 15px;
  }
  .ptotoday-subheader {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-weight: 700;
    font-size: 30px;
    line-height: 34px;
    letter-spacing: -0.02em;
    text-align: center;
  }
  .ptotoday-horizontal-menu {
    align-items: start;
    display: flex;
    flex-direction: column;
    gap: 5px;
    justify-content: start;
  }
  .ptotoday-horizonal-menu {
    gap: 0px;
  }
  .ptotoday-horizontal-menu li a {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: -0.02em;
    text-align: left;
    text-decoration: underline;
  }
  .footer-top-menu-items {
    margin-bottom: 15px;
  }
  .footer-top-menu-items li a {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-size: 16px !important;
    font-weight: 600;
    line-height: 30px;
    letter-spacing: -0.02em;
    margin-bottom: 0px;
    text-align: left;
  }
  .footer-top-menu-items li a:not(first-child) {
    font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 30px;
    letter-spacing: -0.02em;
    margin-bottom: 0px;
    text-align: left;
    text-decoration: underline;
  }
  .last-footer-menu {
    margin-top: 15px;
  }
  .sign-up-input-con {
    align-items: center;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
  }
  .topic-page-article-grid h1 {
    font-size: 40px;
    line-height: 48px;
  }
  .cat-sign-up-top-con {
    padding: 0px !important;
  }
  .pto-cat-page-sign-up-heading {
    margin: unset;
  }
  .weekly-con {
    background: none;
    flex-direction: column;
    height: fit-content;
    padding: unset;
    top: 0;
  }
  .weekly-social-con {
    display: none;
  }
  .weekly-news-con {
    flex-direction: column;
  }
  .weekly-news-con > p {
    text-align: center;
  }
  #main .container {
    padding: 0 10px;
  }
  #pricing-table {
    display: none !important;
  }
  #pricing-table-mobile {
    display: block !important;
  }
  .pricing-xs-block {
    background: #000;
    border: 1px solid #C5C5C5;
    box-shadow: 3px 3px 3px 0 rgba(197, 197, 197, 0.5);
    color: #FFF;
    margin-bottom: 22px;
  }
  .purple-bg {
    background: #37236E;
    color: #FFF;
  }
  .pricing-heading-xs {
    font-size: 24px;
    line-height: 34px;
    color: #FFF;
    padding: 5px 0 5px 12px;
  }
  .pricing-body-xs {
    background: #FFF;
    padding: 10px;
  }
  .pricing-amount {
    padding: 0 0 0 13px;
  }
  .ptotoday-logo-container > div {
    text-align: start !important;
  }
  .ins-h3 {
    font-size: 28px;
    line-height: 36px;
  }
  .ins-more-con {
    height: 100%;
    max-height: 250px;
  }
  .ins-more-con-inner-con {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 15px;
  }
  .calculator {
    width: 100%;
  }
  .platform-content.container > div.row {
    margin-left: 0px;
    margin-right: 0px;
  }
  #mwall_items_1 .mwall-item-inner .mwall-title a, #mwall_items_1 .mwall-item-inner .mwall-title span {
    font-size: 24px !important;
    line-height: 30px !important;
  }
}
@media only screen and (max-width: 753px) {
  /* ARTICLE & CATEGORY */
  .social-big {
    width: 23%;
  }
  .end-of-article-signup {
    width: 100%;
  }
  #jc .rbox {
    width: 98% !important;
  }
  .mobile-icon {
    display: block;
  }
  .desktop-icon {
    display: none;
  }
  .a2a_kit {
    padding-left: unset;
  }
  .smaller-nav-text li {
    font-size: 14px;
    margin: -5px 0px;
  }
  ul.g-horizontalmenu.smaller-nav-text.ptotoday-horizontal-menu.last-footer-menu > li:first-child {
    text-decoration: none !important;
  }
}
/*# sourceMappingURL=custom_38.css.map */