/* Fallback font with adjusted metrics to match DM Sans - prevents layout shift */
@font-face {
  font-family: 'DM Sans Fallback';
  src: local('Arial');
  size-adjust: 105%;
  ascent-override: 92%;
  descent-override: 25%;
  line-gap-override: 0%;
}

:root{
  --brand:#234093;
  --secondary:#3d71b8;

  /* Updated blues to harmonize with lighter palette */
  --darkerBlueOne:#2E6DB0;  /* Medium-dark blue (was too dark #192e6a) */
  --darkerBlueTwo:#2563A8;  /* Medium blue (was too dark #142555) */
  --lightBlue:#5B9BD5;      /* Light approachable blue */
  --mediumBlue:#3B7DC4;     /* Professional medium blue */

  --accent:#fcaf17;
  --muted:rgba(33, 37, 41, 0.75);
  --bg:#F8FAFC;
  --fg:#0f172a;
  --surface:#ffffff;
  --surface-2:#eef2f7;
  --line:#e5e7eb;

  /* CTA colors */
  --cta:#e85902;
  --cta-hover:#cc4e02;

  /* Typography Color Tiers - Intentional hierarchy for readability */
  --text-primary: #1F2937;    /* Body text - strong readability */
  --text-heading: #0F172A;    /* Headings - maximum authority */
  --text-secondary: #4B5563;  /* TOC headings, prominent secondary elements */
  --text-tertiary: #6B7280;   /* TOC links, nav items, breadcrumbs */
  --text-meta: #6B7280;       /* Author, dates, timestamps (same as tertiary for accessibility) */
  --text-disabled: #9CA3AF;   /* Disabled states, decorative text */
}


.bg-warning {
  background-color: rgb(255,193,7) !important;
}

*{box-sizing:border-box}
body{
  font-family:"DM Sans", "DM Sans Fallback", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight:400; background:var(--bg); color:var(--text-primary); font-display: swap;
}

/* Never underline buttons */
.btn, .btn-brand, .btn-outline-brand, .btn-hero-secondary, .btn-outline-hero, .btn-light, [class*="btn-"] {
  text-decoration: none !important;
}

/* Skip to main content link for accessibility */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--brand);
  color: white;
  padding: 8px 16px;
  text-decoration: none;
  z-index: 9999;
  border-radius: 0 0 4px 0;
  font-weight: 600;
}

.skip-link:focus {
  top: 0;
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}

/* Visually hidden utility class for screen readers */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Fix scroll position for anchor links to account for sticky header */
html {
  scroll-padding-top: 69px; /* Matches exact header height */
  scrollbar-gutter: stable; /* Prevents content shift when scrollbar appears/disappears */
}

h6 {
	font-weight: 600;
}

/* Headings use maximum authority color */
h1, h2, h3, h4, h5, h6 {
  color: var(--text-heading);
}
/* Preserve white headings in hero sections and dark backgrounds */
.text-white h1, .text-white h2, .text-white h3, .text-white h4, .text-white h5, .text-white h6,
h1.text-white, h2.text-white, h3.text-white, h4.text-white, h5.text-white, h6.text-white,
.hero h1, .hero h2, .hero-curved h1, .hero-curved h2,
.calculator-hero h1, .calculator-hero h2, .calculator-hero h3,
.score-display h1, .score-display h2, .score-display h3 {
  color: #fff !important;
}

/* Keeps ordered list numbers aligned in Bootstrap accordion text */
ol {
	padding-left: 1.5rem;
	margin-left: 0.5rem;
	list-style-position: inside;
}
ol li {
	margin-bottom: 0.5rem;
}

/* Alternative method for older browsers - targets all elements with IDs */
[id] {
  scroll-margin-top: 69px;
}
.muted{ color: var(--text-meta); }
.text-muted { color: var(--text-meta) !important; }
.container-narrow{ max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: 15px; padding-right: 15px; width: 100%; }

/* Mobile & Tablet: 24px side padding on containers for consistent content area */
@media (max-width: 1199px) {
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl,
  .container-fluid,
  .container-narrow {
    max-width: 100% !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  /* Remove navbar default padding so only container padding applies */
  .navbar {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
.hero .section-kicker { font-size: .85rem; padding-top: 4em; }

/* Hero calculator link hover underline */
.hero-calc-link:hover {
  text-decoration: underline !important;
}

/* NAVBAR — solid white */
.nav-blur{ background:#fff; border-bottom:1px solid var(--line); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15); }
.navbar .nav-link{ color:#3d71b8; font-weight:400; font-size:.95rem; }
.navbar .nav-link:hover{ color:#234093; }
.navbar-brand img{ height:50px; width:119px; } /* explicit width prevents layout shift */
.navbar-tagline{
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  line-height:1.3;
  margin-left:.25rem;
  padding-left:.25rem;
  padding-top:2px;
  font-size:.9rem;
  font-weight:500;
  color:#000;
  white-space:nowrap;
  min-width:195px; /* reserve space to prevent layout shift on font load */
}

/* Reserve fixed width for navbar-brand on xl+ screens to prevent layout shift */
@media (min-width: 1400px) {
  .navbar-brand{ min-width:330px; } /* logo (119px) + tagline (195px) + spacing */
}
/* Hide tagline at 1400px */
@media (max-width: 1399px) {
  .navbar-tagline{ display: none !important; }
}

.navbar .navbar-collapse{ justify-content:flex-end; }
.nav-cta{ margin-left:.5rem; display: flex; gap: 0.5rem; white-space: nowrap; }
.nav-cta .btn{ white-space: nowrap; }

/* Reduce spacing to fit navbar better */
.navbar-brand{ margin-right:.5rem; }
.navbar-nav{ gap:.25rem !important; white-space: nowrap; }
.navbar .nav-link{ padding-left:.5rem !important; padding-right:.5rem !important; white-space: nowrap; }

/* DROPDOWNS */
.navbar .dropdown-menu{
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 18px 46px rgba(20,37,85,.20);
  background:#fff; padding:.75rem 1rem; z-index:1051;
}
.dropdown-menu.megamenu{ width:860px; }
@media (min-width:1200px){
  .navbar .dropdown .dropdown-menu.megamenu{
    left:50% !important; right:auto !important; transform:translateX(-50%) !important;
    max-width:min(92vw, 860px);
  }
}
.dropdown-menu.simple{ width:auto; min-width:280px; max-width:360px; left:0; right:auto; transform:none; }
.dropdown-menu.simple.solutions{ min-width:320px; max-width:580px; }

.dropdown-item{
  display:flex; align-items:flex-start; gap:.55rem;
  font-weight:400; font-size:.95rem; line-height:1.25;
  padding:.45rem .5rem; border-radius:6px;
  white-space:normal; overflow-wrap:anywhere;
  color:#3d71b8;
}
.dropdown-menu.simple.solutions .dropdown-item{
  white-space:nowrap;
}
.dropdown-item .bi{
  font-size:1rem; color:#3d71b8;
  margin-top:.15rem; line-height:1; flex:0 0 auto;
}
.dropdown-item:hover{
  background:color-mix(in srgb, #3d71b8, white 92%);
  color:#234093;
}
.dropdown-item:hover .bi{
  color:#234093;
}
.menu-heading{
  font-size:.8rem; font-weight:600; text-transform:uppercase;
  letter-spacing:.08em; color:var(--muted); margin:.1rem 0 .35rem;
}
@media (min-width: 1200px){
  .navbar .dropdown:hover>.dropdown-menu{display:block;}
  .navbar .dropdown-toggle:after{ vertical-align:.1em; }
}

/* Mobile menu styles - only apply when collapsed at 1200px */
@media (max-width: 1199px) {
  .nav-cta{ margin-left: 0; margin-top: 1rem; flex-direction: column; width: 100%; }
  .nav-cta .btn{ width: 100%; margin: 0 !important; font-size: 0.95rem; padding: 0.5rem 1rem; }
  .navbar .nav-link{ font-size: 0.95rem !important; }
}

/* BUTTONS (FLAT & perfectly centered text) */
.btn-brand{
  background: var(--accent);
  border: 1px solid var(--accent);
  color:#000;
  font-weight:600;
  /* Center the label perfectly */
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1.5;
  padding:0.375rem 0.75rem;
  font-size:1rem;
  border-radius:6px;
  box-shadow:none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn-brand:hover{ background: #fdbf3b; border-color: #fdbf3b; color:#000; }
.btn-brand:active{ background: #fdbf3b; border-color: #fdbf3b; color:#000; outline: none; box-shadow: none; }
.btn-brand:focus{ background: #fdbf3b; border-color: #fdbf3b; color:#000; outline: none; box-shadow: none; }
.btn-brand:focus-visible{ background: #fdbf3b; border-color: #fdbf3b; color:#000; outline: none; box-shadow: none; }

/* White button for blue backgrounds - prevents color vibration */
.btn-hero-white{
  background: #ffffff !important;
  border: 1px solid #ffffff;
  color: #3d71b8 !important;
  font-weight: 600;
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1.5;
  padding:0.375rem 0.75rem;
  font-size:1rem;
  border-radius:6px;
  box-shadow: none;
  transition: color .2s ease;
  text-decoration: none;
}
.btn-hero-white:hover{
  background: #ffffff !important;
  color: #234093 !important;
  text-decoration: none;
}
.btn-hero-white:active{
  color: #234093 !important;
}
.btn-hero-white.btn-lg {
  padding: 1rem 2.5rem;
  font-size: 1.1rem;
}
.btn-hero-white.btn-sm {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

/* White outline (hero secondary) */
.btn-outline-hero{
  background: transparent;
  border:1.5px solid #ffffff;
  color:#ffffff;
  font-weight:400;
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1.5;
  padding:0.375rem 0.75rem;
  font-size:1rem;
  border-radius:6px;
  transition: background-color .15s ease, color .15s ease, transform .12s ease, border-color .15s ease;
}
.btn-outline-hero:hover{ background:#ffffff; color:var(--mediumBlue); transform: translateY(-1px); border-color:#ffffff; }
.btn-outline-hero:active{ transform:none; }

/* Outline brand button - blue outline for secondary CTAs */
.btn-outline-brand {
  background: transparent;
  border: 1.5px solid #3d71b8;
  color: #3d71b8;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  border-radius: 6px;
  box-shadow: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  text-decoration: none;
}
.btn-outline-brand:hover {
  background: #3d71b8;
  border-color: #3d71b8;
  color: #fff;
  text-decoration: none;
}
.btn-outline-brand:active {
  background: #234093;
  border-color: #234093;
  color: #fff;
}
.btn-outline-brand.btn-lg {
  padding: 1rem 2.5rem;
  font-size: 1.1rem;
}

/* Override Bootstrap's .btn-primary to use site colors */
.btn-primary {
  background: var(--darkerBlueOne);
  border-color: var(--darkerBlueOne);
  color: #fff;
}
.btn-primary:hover,
.btn-primary:focus {
  background: var(--darkerBlueTwo);
  border-color: var(--darkerBlueTwo);
  color: #fff;
}
.btn-primary:active {
  background: var(--darkerBlueTwo);
  border-color: var(--darkerBlueTwo);
  color: #fff;
}

/* Override Bootstrap's .btn-outline-primary to use site colors */
.btn-outline-primary {
  border-color: var(--darkerBlueOne);
  color: var(--darkerBlueOne);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background: var(--darkerBlueOne);
  border-color: var(--darkerBlueOne);
  color: #fff;
}
.btn-outline-primary:active {
  background: var(--darkerBlueTwo);
  border-color: var(--darkerBlueTwo);
  color: #fff;
}

/* Nav Contact Button - clean brand blue outline for secondary CTA */
.nav-contact-btn {
  background: transparent;
  border: 1.5px solid #3d71b8;
  color: #3d71b8;
  font-weight: 500;
  /* Center the label perfectly */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  padding: 0.375rem 0.75rem;
  font-size: 0.95rem;
  border-radius: 6px;
  box-shadow: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  text-decoration: none;
}
.nav-contact-btn:hover {
  background: #3d71b8;
  border-color: #3d71b8;
  color: #fff;
  text-decoration: none;
}
.nav-contact-btn:active {
  background: #234093;
  border-color: #234093;
  color: #fff;
}
.nav-contact-btn:focus-visible {
  outline: 2px solid #3d71b8;
  outline-offset: 2px;
}

/* CARDS & UTILS */
.card-soft{ background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:0 10px 28px rgba(35,64,147,.17); }
.card-border{ border: 1px solid #e6e7e8; border-radius: 16px; }
.section-kicker{ color:var(--secondary); text-transform:uppercase; font-weight:600; letter-spacing:.12em; font-size:.78rem; margin-bottom: .5rem; }
.section-kicker-white { color:rgba(255,255,255,.9); }
.section-title{ font-weight:600; letter-spacing:-.01em; }
.icon-pill{
  width:40px; height:40px; border-radius:10px;
  background:linear-gradient(135deg, var(--darkerBlueOne), var(--brand)); color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
}

/* Icon pill gradient variants - harmonized color palette */
.icon-pill-blue{
  background: linear-gradient(135deg, #0066cc, #004fa3);
}
.icon-pill-orange{
  background: linear-gradient(135deg, #e85902, #cc4e02);
}
.icon-pill-teal{
  background: linear-gradient(135deg, #17a2b8, #117a8b);
}
.icon-pill-purple{
  background: linear-gradient(135deg, #6f42c1, #5a2d91);
}
.icon-pill-green{
  background: linear-gradient(135deg, #28a745, #208637);
}
.icon-pill-yellow{
  background: linear-gradient(135deg, #ffc107, #d39e00);
}

/* Icon pill icon styling */
.icon-pill i {
  font-size: 1.5rem;
  color: #fff;
}

/* Tool card hover effect (used on vertical pages) */
.tool-card-link .card {
  border: 1px solid rgba(0,0,0,0.15) !important;
}

.tool-card-link .card-body {
  padding: 0.75rem !important;
}

.tool-card-link .tool-icon {
  width: auto !important;
  height: auto !important;
  background: none !important;
  display: inline !important;
  margin-bottom: 0.25rem !important;
}

.tool-card-link:hover .tool-icon {
  color: var(--brand) !important;
}

.tool-card-link:hover .card {
  transform: translateY(-3px) !important;
  border-color: var(--brand) !important;
}

/* Compact Tool Cards (tools listing pages) */
.tool-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--darkerBlueOne), var(--brand));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tool-icon i {
  font-size: 1.25rem;
}

.tool-link {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--darkerBlueOne);
  text-decoration: none;
}

.tool-link:hover {
  color: var(--darkerBlueTwo);
}

.tool-link i {
  font-size: 0.75rem;
  margin-left: 4px;
}

/* Tool card headings - consistent size */
.card .card-body .h6,
.card .card-body h2.h6,
.card .card-body h3.h6 {
  color: #000;
  font-size: 1rem;
}

.card .card-body .small,
.card .card-body p.small {
  font-size: 0.875rem;
}

/* Tool cards mobile/tablet sizing */
@media (max-width: 991px) {
  .tool-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
  }

  .tool-icon i {
    font-size: 1rem;
  }
}

/* Feature card link styles */
.feature-card {
  text-decoration: none !important;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease;
  border: 1px solid rgba(0,0,0,.125);
}

.feature-card:hover {
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(0, 102, 204, 0.15);
  transform: translateY(-4px);
  border-color: rgba(0, 102, 204, 0.2);
}

.feature-card h4,
.feature-card .small,
.feature-card ul,
.feature-card li,
.feature-card p,
.feature-card span {
  color: inherit;
  text-decoration: none !important;
}

.feature-card .text-brand {
  transition: all 0.2s ease;
  text-decoration: none !important;
}

.feature-card:hover .text-brand {
  color: #004fa3 !important;
  font-weight: 600;
  text-decoration: none !important;
}

/* CAPTERRA RATING BADGES */
.capterra-badge a:hover{
  opacity: 0.85;
  transition: opacity 0.2s ease;
}
.capterra-badge{
  color: rgba(255,255,255,0.95);
}
.capterra-rating{
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.15rem;
}
.capterra-score{
  font-weight: 600;
  font-size: 0.95rem;
  color: rgba(255,255,255,0.95);
}
.capterra-stars{
  color: #fcaf17;
  font-size: 0.85rem;
  line-height: 1;
}
.capterra-stars i{
  margin-right: 1px;
}
.capterra-reviews{
  font-size: 0.75rem;
  color: rgba(255,255,255,0.75);
}

/* Star rating color (testimonials, reviews) */
.star-rating {
  color: #fcaf17;
}

/* HERO with taller, smoother wave */
.hero{
  position:relative; padding:7rem 0 7.75rem; color:#fff;
  background: linear-gradient(135deg, #3B7DC4 0%, #2E6DB0 35%, #2563A8 65%, #1C5499 100%);
  overflow:hidden;
}
.hero::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:280px;
  background-repeat:no-repeat; background-position:center bottom; background-size:100% 100%; pointer-events:none;
}
.hero h1{ font-weight:700; line-height:1.15; letter-spacing:-.012em; color:#fff; }
/* Easier-to-read hero lead */
.hero .lead{ font-size:1.12rem; color:rgba(255,255,255,.96); }

/* Mobile hero spacing - ensure clearance from fixed header */
@media (max-width: 991.98px) {
  .hero { padding: 8rem 0 5rem; }
  .hero-curved { padding: 8rem 0 6rem !important; }
}
@media (max-width: 767.98px) {
  .hero { padding: 8rem 0 4rem; }
  .hero-curved { padding: 8rem 0 5rem !important; }
}

/* Hero trust block */
.hero-trust {
  margin-top: 22px;
}
.hero-trust__kicker {
  font-size: 0.95rem;
  line-height: 1.35;
  color: rgba(255,255,255,0.82);
  margin-bottom: 8px;
}
.hero-trust__badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.hero-trust__badge img {
  height: 44px;
  width: auto;
  display: block;
  opacity: 0.88;
  filter: saturate(0.9);
}
.hero-trust__badge:hover img,
.hero-trust__badge:focus-visible img {
  opacity: 1;
  filter: saturate(1);
}
.hero-trust__badge:focus-visible {
  outline: 2px solid rgba(255,255,255,0.7);
  outline-offset: 4px;
  border-radius: 8px;
}
/* Hero trust dark variant (for light backgrounds) */
.hero-trust__kicker--dark {
  color: rgba(0,0,0,0.65);
}
.hero-trust__badge--dark img {
  height: 38px; /* ~13% smaller than hero variant */
}
.hero-trust__badge--dark:focus-visible {
  outline: 2px solid rgba(0,0,0,0.3);
}
/* Centered variant */
.hero-trust--centered {
  text-align: center;
}
.hero-trust__badges--centered {
  justify-content: center;
}

/* Credibility belt */
.cred-belt{ background:#fff; border-bottom:1px solid var(--line); }
@media (max-width: 767.98px){ .cred-belt .col-md-4 + .col-md-4{ margin-top:.35rem; } }

/* Sections */
.section-alt{ background:linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--surface-2), #fff 40%) 100%); }
.shot{ background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.shot .cap{ padding:.5rem .75rem; border-top:1px solid var(--line); font-size:.875rem; color:var(--muted); }
.cap .tag{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.15rem .5rem; border-radius:999px; font-weight:600;
  background: rgba(35,64,147,.12); color:#17306b; border:1px solid rgba(35,64,147,.28);
  margin-right: 8px;
}
.tag .bi {margin-right: 5px;}

/* Plans */
.plans .card{ border:1px solid var(--line); border-radius:16px; background:#fff; }
.plans .badge-brand{ background:color-mix(in srgb, var(--brand), white 18%); color:#fff; font-weight:600; border-radius:999px; padding:.3rem .6rem; }
.plans .badge-accent{ background:var(--accent); color:#1e293b; font-weight:700; border-radius:999px; padding:.35rem .65rem; box-shadow:0 8px 18px rgba(252,175,23,.25); letter-spacing:.02em; }
.plans .featured{ position:relative; border:1px solid color-mix(in srgb, var(--brand), #ffffff 68%); }
.plans .featured::before{ content:""; position:absolute; inset:0 auto auto 0; height:5px; width:100%; background:var(--darkerBlueOne); border-top-left-radius:16px; border-top-right-radius:16px; }
.plans ul{ list-style:none; padding-left:0; }
.plans ul li{ position:relative; padding-left:1.6rem; margin-bottom:.5rem; }
.plans ul li::before{ content:"✔"; position:absolute; left:0; top:0; color:var(--brand); font-weight:700; line-height:1.2; }

/* CTA band */
.cta-strong{ background: linear-gradient(135deg, var(--darkerBlueTwo), var(--darkerBlueOne)); color:#fff; }
.cta-strong .btn{ border-radius:6px; font-weight:600; padding:.7rem 1rem; }

/* Blog hero section */
.blog-hero{
  background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%);
  border-bottom: 1px solid #e9ecef;
}

/* Blog/Guide hero spacing system
   --------------------------------------------------
   Provides consistent editorial spacing for article headers.

   Spacing summary:
   - Nav → breadcrumbs: 20px (pt-4 on breadcrumb nav)
   - Breadcrumbs → category pill: 16px
   - Category pill → H1: 12px
   - H1 → byline: 10px
   - Byline → updated line: 4px
   - Updated/spacer → intro/dek: 14px
   - Intro/dek → body: 28px
   - TOC top aligns with content top
*/

/* Breadcrumb nav - adds breathing room below nav (accounting for nav shadow) */
.article-breadcrumb-nav {
  padding-top: 28px !important; /* Extra space to clear nav shadow (12px shadow + 16px visual gap) */
  margin-bottom: 0 !important;
}

.blog-hero .breadcrumb {
  margin-bottom: 0;
}

/* Breadcrumb typography - tertiary navigation */
.breadcrumb-item a {
  color: var(--text-tertiary);
  text-decoration: none;
}
.breadcrumb-item a:hover {
  color: var(--brand);
}
.breadcrumb-item.active {
  color: var(--text-meta);
}
.breadcrumb-item i {
  color: var(--text-disabled);
}

/* Mobile breadcrumb optimization */
@media (max-width: 767px) {
  .breadcrumb {
    font-size: 0.8rem;
  }
  .breadcrumb-item i {
    display: none;
  }
  .breadcrumb-item.active {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
  }
}

/* Hero content wrapper */
.article-hero-content {
  padding-top: 16px; /* Breadcrumbs → category pill */
}

/* Category badge/pill spacing */
.article-category-badge {
  margin-bottom: 12px !important; /* Category pill → H1 */
}

/* Article title */
.article-title {
  margin-bottom: 10px !important; /* H1 → byline */
}

/* Byline (author, date, read time) */
.article-byline {
  margin-bottom: 0 !important;
}

/* Updated date line */
.article-updated {
  margin-top: 4px !important;
  margin-bottom: 0 !important;
}

/* When updated is last child (no dek), add bottom margin for equal spacing */
.article-hero-content .article-updated:last-child {
  margin-bottom: 11px !important;
}

/* Spacer when no updated line */
.article-byline-spacer {
  height: 4px;
}

/* When spacer is last child (no dek), add bottom margin for equal spacing */
.article-hero-content .article-byline-spacer:last-child {
  margin-bottom: 11px;
}

/* Intro/dek paragraph */
.article-dek {
  margin-top: 18px !important; /* Extra breathing room below metadata */
  margin-bottom: 9px !important; /* Space before separator line */
}

/* Article content section - space from hero to body */
.article-content-section {
  padding-top: 31px; /* Space after separator line */
}

/* Blog article CTA card */
.blog-cta{
  background: linear-gradient(135deg, var(--darkerBlueTwo), var(--darkerBlueOne));
  color: #fff;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.blog-cta h3{ color: #fff; }
.blog-cta p{ color: rgba(255,255,255,.95); }
.blog-cta a:not(.btn){ color: #fff; text-decoration: underline; }
.blog-cta a:not(.btn):hover{ color: rgba(255,255,255,.8); }
.blog-cta .btn{
  background: transparent;
  border: 2px solid #fff;
  color: #fff;
  font-weight: 600;
  padding: .7rem 1.5rem;
  border-radius: 6px;
  display: inline-block;
  width: auto !important;
  max-width: fit-content;
  white-space: nowrap;
}
.blog-cta .btn:hover{
  background: #fff;
  color: var(--darkerBlueOne);
}

/* Social share buttons */
.share-btn{
  width: 40px;
  height: 40px;
  background-color: #003366;
  border: none;
}
.share-btn:hover{
  background-color: #004080;
}

/* Blog card hover effect */
.blog-card-hover,
.card-hover {
  transition: box-shadow 0.3s ease, transform 0.2s ease;
}
.blog-card-hover:hover,
.card-hover:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transform: translateY(-2px);
}

/* Blog category card text sizing */
.blog-card-hover .card-text {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
  margin-bottom: 0 !important;
}

.blog-card-hover .card-body {
  flex-grow: 0;
  padding-top: 3rem;
}

/* Featured/Pillar page cards with brand accent border */
.card-featured{
  border-left: 4px solid var(--brand);
}

/* Danger/Warning card - red accent */
.card-danger{
  border-left: 4px solid #dc3545 !important;
  background: #fff5f5;
}
.card-danger-top{
  border-top: 4px solid #dc3545 !important;
}
.card-danger h5 i,
.text-danger{
  color: #dc3545;
}

/* Success card - green accent */
.card-success{
  border-left: 4px solid #28a745 !important;
  background: #f0fff4;
}
.card-success-top{
  border-top: 4px solid #28a745 !important;
}
.text-success{
  color: #28a745;
}

/* Gradient box - gray gradient background */
.card-gradient{
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  padding: 30px;
  border-radius: 8px;
}

/* Template box - for email templates, code examples */
.template-box{
  background: #fff;
  padding: 25px 30px;
  border-radius: 4px;
  border: none;
  box-shadow: 0 2px 8px rgba(0,0,0,.08), 0 4px 20px rgba(0,0,0,.06);
  max-width: 600px;
}

/* Category hub featured card - brand gradient */
.card-hub-featured{
  background: linear-gradient(135deg, rgba(232,89,2,.05), rgba(252,175,23,.03));
  border-left: 4px solid var(--brand) !important;
}

/* Icon pill with green gradient (event management) */
.icon-pill-event{
  background: linear-gradient(135deg, #28a745, #1e7e34);
}

/* Resource Link Cards (Related Resources sections) */
.resource-link-card {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  transition: all 0.2s ease;
}
.resource-link-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
  border-color: rgba(0, 102, 204, 0.2);
  background: #fff;
}
.resource-link-card:hover .bi-arrow-right {
  transform: translateX(3px);
  transition: transform 0.2s ease;
}

/* Video Transcript Styles */
.transcript-container {
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  background: #fff;
}
.transcript-toggle {
  cursor: pointer;
  font-weight: 600;
  color: #0066cc;
  list-style: none;
  user-select: none;
}
.transcript-toggle:hover {
  color: #004fa3;
}
.transcript-toggle::-webkit-details-marker {
  display: none;
}

/* Fade-ins */
[data-animate]{ opacity:0; transform: translateY(10px); transition:.55s ease; }
[data-animate].in{ opacity:1; transform:none; }

/* Testimonials */
.testimonial{ border:1px solid var(--line); border-radius:16px; background:#fff; padding:1.25rem; }
.testimonial .logo{ max-height:28px; opacity:.9; }
blockquote{ margin:0; font-size:1.05rem; }

/* BLOG CATEGORY COLORS */
/* Badge styles */
.badge-membership-growth{ background-color: #e85902; color: white; }
.badge-software-selection{ background-color: #0066cc; color: white; }
.badge-event-management{ background-color: #28a745; color: white; }
.badge-member-engagement{ background-color: #6f42c1; color: white; }
.badge-marketing-communications{ background-color: #d63384; color: white; }
.badge-operations{ background-color: #ffc107; color: #000; }
.badge-technology-operations{ background-color: #ffc107; color: #000; }
.badge-revenue{ background-color: #17a2b8; color: white; }
.badge-non-dues-revenue{ background-color: #17a2b8; color: white; }
.badge-data-analytics{ background-color: #23478e; color: white; }

/* Icon color styles */
.color-membership-growth{ color: #e85902; }
.color-software-selection{ color: #0066cc; }
.color-event-management{ color: #28a745; }
.color-member-engagement{ color: #6f42c1; }
.color-marketing-communications{ color: #d63384; }
.color-operations{ color: #ffc107; }
.color-technology-operations{ color: #ffc107; }
.color-revenue{ color: #17a2b8; }
.color-non-dues-revenue{ color: #17a2b8; }
.color-data-analytics{ color: #23478e; }

/* Callout box styles with category colors */
.callout-membership-growth{ background: rgba(232,89,2,.05); border-left: 4px solid #e85902; }
.callout-software-selection{ background: rgba(0,102,204,.05); border-left: 4px solid #0066cc; }
.callout-event-management{ background: rgba(40,167,69,.05); border-left: 4px solid #28a745; }
.callout-member-engagement{ background: rgba(111,66,193,.05); border-left: 4px solid #6f42c1; }
.callout-marketing-communications{ background: rgba(214,51,132,.05); border-left: 4px solid #d63384; }
.callout-operations{ background: rgba(255,193,7,.05); border-left: 4px solid #ffc107; }
.callout-revenue{ background: rgba(23,162,184,.05); border-left: 4px solid #17a2b8; }
.callout-data-analytics{ background: rgba(35,71,142,.05); border-left: 4px solid #23478e; }

/* Author byline - used in blog articles */
.author-byline{
    margin-bottom: 30px;
    padding: 20px;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 6px;
}
.author-byline-inner{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.author-byline-name{ font-size: 15px; color: var(--text-primary); }
.author-byline-name a{ color: var(--text-primary); text-decoration: underline; }
.author-byline-separator{ color: var(--text-disabled); }
.author-byline-credentials{ font-size: 14px; color: var(--text-secondary); }

/* Category-colored author bylines */
.author-byline-membership-growth{ border-left: 4px solid #e85902; }
.author-byline-software-selection{ border-left: 4px solid #0066cc; }
.author-byline-event-management{ border-left: 4px solid #28a745; }
.author-byline-member-engagement{ border-left: 4px solid #6f42c1; }
.author-byline-marketing-communications{ border-left: 4px solid #d63384; }
.author-byline-operations{ border-left: 4px solid #ffc107; }
.author-byline-revenue{ border-left: 4px solid #17a2b8; }
.author-byline-data-analytics{ border-left: 4px solid #23478e; }

/* TL;DR / Quick Takeaways boxes */
.tldr-box{
    padding: 25px 25px 18px 25px;
    border-radius: 8px;
}
.tldr-box h2,
.tldr-box h3{
    margin-top: 0;
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 15px;
}
.tldr-box ul,
.blog-content .tldr-box ul{
    margin-bottom: 0;
    padding-left: 20px;
    line-height: 1.6;
}

/* Category-colored TL;DR boxes */
.tldr-box-membership-growth{ background: rgba(232,89,2,.05); border-left: 4px solid #e85902; }
.tldr-box-membership-growth h2 i, .tldr-box-membership-growth h3 i{ color: #e85902; }
.tldr-box-software-selection{ background: rgba(0,102,204,.05); border-left: 4px solid #0066cc; }
.tldr-box-software-selection h2 i, .tldr-box-software-selection h3 i{ color: #0066cc; }
.tldr-box-event-management{ background: rgba(40,167,69,.05); border-left: 4px solid #28a745; }
.tldr-box-event-management h2 i, .tldr-box-event-management h3 i{ color: #28a745; }
.tldr-box-member-engagement{ background: rgba(111,66,193,.05); border-left: 4px solid #6f42c1; }
.tldr-box-member-engagement h2 i, .tldr-box-member-engagement h3 i{ color: #6f42c1; }
.tldr-box-marketing-communications{ background: rgba(214,51,132,.05); border-left: 4px solid #d63384; }
.tldr-box-marketing-communications h2 i, .tldr-box-marketing-communications h3 i{ color: #d63384; }
.tldr-box-operations{ background: rgba(255,193,7,.05); border-left: 4px solid #ffc107; }
.tldr-box-operations h2 i, .tldr-box-operations h3 i{ color: #ffc107; }
.tldr-box-revenue{ background: rgba(23,162,184,.05); border-left: 4px solid #17a2b8; }
.tldr-box-revenue h2 i, .tldr-box-revenue h3 i{ color: #17a2b8; }
.tldr-box-data-analytics{ background: rgba(35,71,142,.05); border-left: 4px solid #23478e; }
.tldr-box-data-analytics h2 i, .tldr-box-data-analytics h3 i{ color: #23478e; }
.tldr-box-community{ background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%); border-left: 5px solid #9333ea; box-shadow: 0 2px 8px rgba(147,51,234,0.1); }
.tldr-box-community h2 i, .tldr-box-community h3 i{ color: #9333ea; }

/* Callout/card pseudo-headings - decorative titles that shouldn't be semantic headings */
.callout-title{ font-size: 1.1rem; font-weight: 600; margin-bottom: 0.75rem; }
.callout-title-brand{ color: #e85902; }
.callout-title-primary{ color: #0066cc; }
.callout-title-success{ color: #28a745; }
.callout-title-purple{ color: #6f42c1; }
.callout-title-danger{ color: #dc3545; }
.callout-title-dark{ color: var(--text-heading); }
.callout-title-green-dark{ color: #2e7d32; }
.callout-title-blue-dark{ color: #1565c0; }
.callout-title-orange-dark{ color: #e65100; }
.callout-title-purple-dark{ color: #7b1fa2; }

/* Card header utility - monochrome blue for tables and info cards */
.card-header-blue{ background-color: #2E6DB0; color: white; }
.card-border-blue{ border-color: #2E6DB0; }
.bg-blue-accent{ background-color: #2E6DB0; }

/* Blog table of contents - Unified responsive system */
.blog-toc-wrapper{
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding-bottom: 100px; /* Ensure sticky TOC unsticks before footer */
}

/* TOC container - shared styles */
.blog-toc{
  background: transparent;
  padding: 0;
  border: none;
}

/* TOC header/toggle button */
.blog-toc-toggle{
  display: none; /* Hidden on desktop */
  width: 100%;
  padding: 0.875rem 1rem;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fg);
  cursor: pointer;
  text-align: left;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.blog-toc-toggle:hover{
  background: #f9fafb;
  border-color: #d1d5db;
}
.blog-toc-toggle:focus{
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}
.blog-toc-toggle svg{
  transition: transform 0.3s ease;
}
.blog-toc-toggle[aria-expanded="true"] svg{
  transform: rotate(180deg);
}

/* TOC nav container */
.blog-toc-nav{
  /* Desktop: always visible, no extra styling needed */
}

/* TOC heading (desktop only) */
.blog-toc h3,
.blog-toc > p{
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: #111827;
  margin-top: 0;
  margin-bottom: 0.75rem !important;
  padding-left: 14px;
}

/* TOC list styles */
.blog-toc ul{
  list-style: none;
  padding: 0;
  margin: 0;
}
.blog-toc li{
  margin-bottom: 0;
  border-bottom: none;
}
.blog-toc a{
  font-size: 0.875rem;
  color: #6b7280;
  text-decoration: none;
  line-height: 1.4;
  display: block;
  padding: 8px 10px 8px 14px;
  border-radius: 8px;
  border-left: 3px solid transparent;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.blog-toc a:hover{
  color: var(--brand);
  text-decoration: underline;
  background-color: transparent;
}
.blog-toc a.active{
  background: #f3f4f6;
  color: var(--brand);
  font-weight: 600;
  border-left-color: var(--brand);
  padding-left: 13px; /* 14px - 3px border + 2px relaxed spacing */
}
.blog-toc a:focus-visible{
  outline: 2px solid var(--brand);
  outline-offset: 1px;
}

/* Utility: prevent text wrapping */
.nowrap{
  white-space: nowrap;
}

/* Blog content area */
.blog-content{
  flex: 1;
  min-width: 0;
}

/* Remove top margin from first element in blog content to align with TOC */
.blog-content > *:first-child {
  margin-top: 0;
}
.blog-content > *:first-child > *:first-child {
  margin-top: 0;
}

/* Desktop layout (992px and up) - Sticky sidebar with module styling */
@media (min-width: 992px) {
  .blog-toc{
    position: sticky;
    top: 96px;
    width: 240px;
    flex-shrink: 0;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    z-index: 10;
    /* Module container styling */
    padding: 16px 12px 12px 12px;
    border: 1px solid #cecfd3;
    border-radius: 10px;
    margin-top: 4px; /* Align with intro paragraph baseline */
  }
  .blog-toc-toggle{
    display: none;
  }
  .blog-toc-nav{
    display: block !important; /* Always visible on desktop */
  }
  /* Increase gap between TOC and content */
  .blog-toc-wrapper{
    gap: 28px;
  }
}

/* Mobile/Tablet layout (991px and below) - Collapsible */
@media (max-width: 991px) {
  .blog-toc-wrapper{
    flex-direction: column;
    gap: 1.5rem;
  }
  .blog-toc{
    width: 100%;
    position: relative;
    top: auto;
    order: -1; /* Move TOC above content on mobile */
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
  }
  .blog-toc h3,
  .blog-toc > p{
    display: none; /* Hide "In This Article" on mobile, toggle button replaces it */
  }
  .blog-toc-toggle{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .blog-toc-nav{
    display: none; /* Hidden by default on mobile */
    padding: 1rem;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-top: none;
    border-radius: 0 0 8px 8px;
    margin-top: -1px;
  }
  .blog-toc-nav.show{
    display: block;
  }
  .blog-toc-nav ul{
    max-height: 50vh;
    overflow-y: auto;
  }
  /* Reset desktop-specific link styles for mobile */
  .blog-toc li{
    border-bottom: 1px solid #e5e7eb;
  }
  .blog-toc li:last-child{
    border-bottom: none;
  }
  .blog-toc a{
    padding: 0.5rem 0;
    border-left: none;
    border-radius: 0;
    color: var(--brand);
  }
  .blog-toc a.active{
    background: transparent;
    border-left: none;
    padding-left: 0;
    color: var(--brand);
  }
  .blog-toc a:hover{
    background-color: rgba(35, 64, 147, 0.05);
    text-decoration: none;
    color: var(--darkerBlueOne, #1a3070);
  }
  .blog-toc h3,
  .blog-toc > p{
    padding-left: 0;
  }
}

/* Hide SVGs in blog content on mobile devices */
@media (max-width: 768px) {
  .blog-content svg {
    display: none !important;
  }
}

/* Blog category icon pill gradients */
.icon-pill-membership-growth{ background: linear-gradient(135deg, #e85902, #cc4e02); }
.icon-pill-software-selection{ background: linear-gradient(135deg, #0066cc, #0052a3); }
.icon-pill-event-management{ background: linear-gradient(135deg, #28a745, #208637); }
.icon-pill-member-engagement{ background: linear-gradient(135deg, #6f42c1, #5a2d91); }
.icon-pill-marketing-communications{ background: linear-gradient(135deg, #d63384, #b02968); }
.icon-pill-technology-operations{ background: linear-gradient(135deg, #ffc107, #d39e00); }
.icon-pill-non-dues-revenue{ background: linear-gradient(135deg, #17a2b8, #117a8b); }
.icon-pill-data-analytics{ background: linear-gradient(135deg, #23478e, #182f5e); }

/* Blog article card category color square */
.blog-card-hover.card-border-membership-growth::before,
.blog-card-hover.card-border-software-selection::before,
.blog-card-hover.card-border-event-management::before,
.blog-card-hover.card-border-member-engagement::before,
.blog-card-hover.card-border-marketing-communications::before,
.blog-card-hover.card-border-operations::before,
.blog-card-hover.card-border-revenue::before,
.blog-card-hover.card-border-data-analytics::before,
.blog-card-hover.card-border-technology-operations::before,
.blog-card-hover.card-border-non-dues-revenue::before {
  content: '';
  position: absolute;
  top: 1rem;
  left: 1rem;
  width: 14px;
  height: 14px;
  border-radius: 2px;
}
.blog-card-hover.card-border-membership-growth::before { background: #e85902; }
.blog-card-hover.card-border-software-selection::before { background: #0066cc; }
.blog-card-hover.card-border-event-management::before { background: #28a745; }
.blog-card-hover.card-border-member-engagement::before { background: #6f42c1; }
.blog-card-hover.card-border-marketing-communications::before { background: #d63384; }
.blog-card-hover.card-border-operations::before,
.blog-card-hover.card-border-technology-operations::before { background: #ffc107; }
.blog-card-hover.card-border-revenue::before,
.blog-card-hover.card-border-non-dues-revenue::before { background: #17a2b8; }
.blog-card-hover.card-border-data-analytics::before { background: #23478e; }

/* Blog card time indicator positioning */
.blog-card-hover .card-body > .d-flex:first-child {
  position: absolute;
  top: 1rem;
  right: 1rem;
  margin-bottom: 0 !important;
  line-height: 14px;
}

/* Related articles section - make entire card clickable */
.related-articles .card {
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  position: relative;
}

.related-articles .card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(35,64,147,.18);
}

.related-articles .card a {
  text-decoration: none;
  color: inherit;
}

.related-articles .card a:hover {
  color: inherit;
}

/* Feature Comparison Table */
.feature-comparison-table-wrapper {
  border: 1px solid var(--brand);
  overflow: hidden;
}

.feature-comparison-table {
  border: none;
}

.feature-comparison-table thead th {
  background: #f8f9fa;
  padding: 1.25rem 1.5rem;
  border: none;
  font-weight: 600;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--brand);
}

.feature-comparison-table tbody tr {
  border-bottom: 1px solid #f1f5f9;
}

.feature-comparison-table tbody tr:last-child {
  border-bottom: none;
}

.feature-comparison-table tbody tr:last-child td {
  border-bottom: none;
}

.feature-category-header {
  background: #e2e8f0 !important;
  padding: 1rem 1.5rem !important;
  font-weight: 700;
  font-size: 1rem;
  color: var(--brand) !important;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border-top: 1px solid var(--brand) !important;
  border-bottom: 1px solid var(--brand) !important;
}

.feature-comparison-table tbody td {
  padding: 1rem 1.5rem;
  vertical-align: middle;
  border: none !important;
}

.feature-comparison-table .feature-check {
  display: inline-block;
  color: var(--brand);
  font-size: 18px;
  font-weight: 700;
}


/* Comparison Table (Wild Apricot/MemberClicks) */
.comparison-table-wrapper {
  overflow-x: auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(35,64,147,0.08);
  padding: 1.5rem;
  max-width: 775px;
  margin-left: auto;
  margin-right: auto;
}

.comparison-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
}

.comparison-table thead tr {
  border-bottom: 2px solid #e6e7e8;
}

.comparison-table th {
  padding: 1.25rem 1rem;
  padding-right: 1.625rem;
  text-align: left;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--fg);
}

.comparison-table th.i4a-col {
  background: linear-gradient(135deg, rgba(253,183,20,0.1) 0%, rgba(253,183,20,0.05) 100%);
  border-radius: 8px 8px 0 0;
}

}

.comparison-table tbody tr {
  border-bottom: 1px solid #f0f0f0;
  transition: background-color 0.2s ease;
}

.comparison-table tbody tr:hover {
  background-color: #f8fafc;
}

.comparison-table tbody tr:last-child {
  border-bottom: none;
}

.comparison-table td {
  padding: 1.25rem 1rem;
  padding-right: 1.625rem;
  font-size: 0.95rem;
  vertical-align: middle;
}

.comparison-table .feature-name {
  font-weight: 600;
  color: var(--fg);
}

.comparison-table .i4a-cell {
  background: linear-gradient(135deg, rgba(253,183,20,0.05) 0%, rgba(253,183,20,0.02) 100%);
  font-weight: 500;
  color: var(--fg);
}

.comparison-table .i4a-cell i {
  font-size: 1.1rem;
  margin-right: 0.5rem;
}

.comparison-table .competitor-cell {
  color: var(--muted);
}

.comparison-table .competitor-cell i {
  font-size: 1.1rem;
  margin-right: 0.5rem;
}

/* Support Policy Table */
.support-options-table {
  border-collapse: collapse;
}

.support-options-table th,
.support-options-table td {
  border: 1px solid #666;
}

/* Accordion custom style */
.accordion-button:focus {
  box-shadow: none;
  border-color: inherit;
  outline: none;
}

/* Override Bootstrap default link styles */
a {
  color: var(--brand);
  text-decoration: none;
}

a:hover {
  color: var(--fg);
  text-decoration: underline;
}

/* Never underline links in header navigation and dropdowns */
.navbar a,
.navbar a:hover,
.navbar .nav-link,
.navbar .nav-link:hover,
.navbar .dropdown-menu a,
.navbar .dropdown-menu a:hover,
.navbar .dropdown-item,
.navbar .dropdown-item:hover {
  text-decoration: none !important;
}

/* Simple screenshot with just border */
.screenshot-simple {
  display: inline-block;
  max-width: 80%;
  border: 1px solid #dee2e6;
}
/* ========================================
   Bootstrap Tooltip Customization
   ======================================== */

/* Custom tooltip styling */
.tooltip {
  font-size: 0.875rem;
}

.tooltip-inner {
  max-width: 300px;
  padding: 0.75rem 1rem;
  background-color: #ffffff;
  color: #212529;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  text-align: left;
  line-height: 1.5;
}

.tooltip .tooltip-arrow::before {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
}

/* Arrow border for top placement */
.bs-tooltip-top .tooltip-arrow::before {
  border-top-color: #d1d5db;
}

.bs-tooltip-bottom .tooltip-arrow::before {
  border-bottom-color: #d1d5db;
}

/* Info icon hover state */
.bi-info-circle {
  color: #6c757d;
  cursor: help;
  transition: color 0.2s ease;
}

.bi-info-circle:hover {
  color: var(--brand, #0066cc);
}

/* ========================================
   Bootstrap Modal Customization
   ======================================== */

/* Modal trigger links styling */
a[data-bs-toggle="modal"] {
  cursor: pointer;
  transition: color 0.2s ease;
}

a[data-bs-toggle="modal"]:hover {
  color: var(--brandDark) !important;
  text-decoration: underline !important;
}

/* ========================================
   Pricing Page Specific Styles
   ======================================== */

/* Custom border color for pricing cards */
.pricing-border {
  border-color: rgba(0,0,0,0.350) !important;
}

/* Brand-colored border for Pro Platform card */
.pricing-border-brand {
  border-color: var(--brand) !important;
}

/* Smooth transitions for feature table row visibility */
.feature-comparison-table tbody tr {
  transition: opacity 0.2s ease, transform 0.2s ease;
}

/* Override Bootstrap accordion background colors */
#featureComparison .accordion-item.show-bg {
  background: #f8f9fa !important;
}
#featureComparison .accordion-button:not(.collapsed) {
  background-color: transparent;
}

/* Remove focus outline from accordion buttons */
.accordion-button:focus {
  box-shadow: none;
  border-color: inherit;
}

/* Smooth accordion transitions */
.accordion-collapse {
  transition: height 0.175s ease;
}

/* Clean, Minimal Range Slider */
.form-range {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  background: var(--brand);
  border-radius: 2px;
  outline: none;
  border: none;
}

.form-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  background: var(--brand);
  border: 3px solid #fff;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  transition: transform 0.15s ease;
}

.form-range::-webkit-slider-thumb:hover {
  transform: scale(1.1);
}

.form-range::-moz-range-thumb {
  -moz-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  background: var(--brand);
  border: 3px solid #fff;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  transition: transform 0.15s ease;
}

.form-range::-moz-range-thumb:hover {
  transform: scale(1.1);
}

.form-range::-moz-range-progress {
  background: var(--brand);
  height: 4px;
  border-radius: 2px;
}

.form-range:focus {
  outline: none;
}

.form-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 3px rgba(35, 64, 147, 0.2), 0 1px 4px rgba(0, 0, 0, 0.2);
}

.form-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 3px rgba(35, 64, 147, 0.2), 0 1px 4px rgba(0, 0, 0, 0.2);
}

/* ========================================
   Footer Styles
   ======================================== */

/* Main footer element */
footer {
  background: linear-gradient(180deg, var(--darkerBlueOne) 0%, var(--darkerBlueTwo) 100%);
  color: #fff;
  position: relative;
  z-index: 100;
}

/* Footer logo */
.footer-logo {
  height: 40px;
  margin-bottom: 1rem;
}

/* Footer text/paragraph */
.footer-text {
  color: rgba(255,255,255,0.8);
  line-height: 1.6;
}

/* Footer social links */
.footer-social-link {
  color: rgba(255,255,255,0.8);
  font-size: 1.5rem;
}
.footer-social-link:hover {
  color: rgba(255,255,255,1);
}

/* Footer bottom bar */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.15);
}

/* Footer copyright text */
.footer-copyright {
  color: rgba(255,255,255,0.7);
}

/* Footer legal links */
.footer-legal-link {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
}
.footer-legal-link:hover {
  color: rgba(255,255,255,1);
}

/* Footer legal separator */
.footer-legal-separator {
  color: rgba(255,255,255,0.4);
}

/* Footer links - light color with no underline */
.footer-link {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
}

.footer-link:hover {
  color: rgba(255, 255, 255, 1);
  text-decoration: none;
}

/* Footer section headings - uppercase white headers */
.footer-heading {
  color: #fff;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Footer column spacing - desktop only */
@media (min-width: 992px) {
  footer .row.py-4.g-3 {
    justify-content: space-between;
  }
}

/* ========================================
   Form & Contact Page Typography
   Consistent text colors for forms and contact pages
   ======================================== */

/* Form labels */
.form-label {
  color: var(--text-primary);
}

/* Secondary/helper text in forms and contact pages */
.contact-lead,
.form-helper {
  color: var(--text-secondary);
}

/* Meta text in contact/trust sections */
.contact-meta {
  color: var(--text-meta);
}

/* ========================================
   Hero Section Styles - Homepage & Vertical Pages
   Shared styles for curved hero sections across site
   ======================================== */

/* Hero Section with Curved Bottom */
.hero-curved {
  background: linear-gradient(135deg, #2E6DB0 0%, #3B7DC4 35%, #4A90E2 65%, #5B9BD5 100%);
  padding: 8rem 0 8rem;
  position: relative;
}


/* Curved bottom SVG wave */
.hero-curve-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  z-index: 1;
}

.hero-curve-bottom svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Reduce curve height on mobile for better spacing */
@media (max-width: 991px) {
  .hero-curve-bottom {
    height: 40px;
  }
}

/* Hero Button Styles */
.btn-hero-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2.5rem;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.8);
  color: #fff;
  font-weight: 500;
  font-size: 1.1rem;
  border-radius: 6px;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease;
}

.btn-hero-secondary:hover {
  background: rgba(255,255,255,0.15);
  border-color: #fff;
  color: #fff;
  text-decoration: none;
}

/* Scrolling Logos Marquee */
.logos-marquee {
  width: 100%;
  overflow: hidden;
  position: relative;
  background: #fff;
}

.logos-track {
  display: flex;
  gap: 3rem;
  animation: scroll 150s linear infinite;
  width: max-content;
}

.logo-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  width: 280px;
}

.logo-item img {
  max-width: 240px;
  max-height: 90px;
  width: auto;
  height: auto;
  object-fit: contain;
  opacity: 0.9;
  transition: all 0.3s ease;
}

.logo-item img:hover {
  opacity: 1;
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Pause animation on hover */
.logos-marquee:hover .logos-track {
  animation-play-state: paused;
}

/* Browser Frame (macOS-style screenshot container) */
.browser-frame {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  background: #e5e5e5;
}
.browser-header {
  background: #e5e5e5;
  padding: 12px 16px;
  border-bottom: 1px solid #d0d0d0;
}
.browser-buttons {
  display: flex;
  gap: 8px;
}
.browser-button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
}
.browser-button-close {
  background: #ff5f57;
}
.browser-button-minimize {
  background: #ffbd2e;
}
.browser-button-maximize {
  background: #28c840;
}
.browser-content {
  background: #fff;
}

/* Section Spacing */
.py-6 {
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
}

.section-light {
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}


/* Trust Badges */
.trust-badge {
  display: inline-block;
  padding: 1.5rem 1rem;
  transition: transform 0.2s ease;
}

.trust-badge:hover {
  transform: translateY(-2px);
}

.trust-badge-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #fdb714 0%, #f0a510 100%);
  border-radius: 10px;
  box-shadow: 0 3px 10px rgba(253, 183, 20, 0.25);
  position: relative;
}

.trust-badge-icon::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 10px;
  padding: 2px;
  background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.trust-badge-icon i {
  font-size: 1.5rem;
  color: #000;
  opacity: 0.9;
}

.trust-badge-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fg);
  margin-bottom: 0.25rem;
  line-height: 1.3;
}

.trust-badge-subtitle {
  font-size: 0.75rem;
  color: var(--muted);
  line-height: 1.4;
}

/* Blog Hero Illustration */
.blog-hero-illustration {
  position: relative;
  width: 100%;
  height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
  border-radius: 12px;
  overflow: hidden;
}

.blog-illustration-container {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Floating article cards */
.floating-card {
  position: absolute;
  background: white;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  padding: 1rem;
  animation: float 6s ease-in-out infinite;
}

.floating-card-1 {
  top: 10%;
  left: 10%;
  width: 120px;
  height: 80px;
  background: linear-gradient(135deg, var(--brand) 0%, var(--secondary) 100%);
  animation-delay: 0s;
}

.floating-card-2 {
  top: 15%;
  right: 15%;
  width: 100px;
  height: 70px;
  background: linear-gradient(135deg, var(--cta) 0%, var(--accent) 100%);
  animation-delay: 1s;
}

.floating-card-3 {
  bottom: 20%;
  left: 15%;
  width: 110px;
  height: 75px;
  background: linear-gradient(135deg, #5B9BD5 0%, var(--lightBlue) 100%);
  animation-delay: 2s;
}

.floating-card-4 {
  bottom: 15%;
  right: 10%;
  width: 90px;
  height: 65px;
  background: linear-gradient(135deg, var(--accent) 0%, #ffd54f 100%);
  animation-delay: 1.5s;
}

/* Central hub circle */
.central-hub {
  position: absolute;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand) 0%, var(--secondary) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(35, 64, 147, 0.25);
  z-index: 10;
}

.central-hub i {
  font-size: 3rem;
  color: white;
}

/* Connection lines */
.connection-line {
  position: absolute;
  height: 2px;
  background: linear-gradient(90deg, rgba(35, 64, 147, 0.2) 0%, rgba(35, 64, 147, 0.05) 100%);
  transform-origin: left center;
}

.line-1 {
  width: 150px;
  top: 30%;
  left: 15%;
  transform: rotate(-30deg);
}

.line-2 {
  width: 180px;
  top: 25%;
  right: 15%;
  transform: rotate(35deg);
}

.line-3 {
  width: 160px;
  bottom: 30%;
  left: 18%;
  transform: rotate(30deg);
}

.line-4 {
  width: 170px;
  bottom: 25%;
  right: 12%;
  transform: rotate(-35deg);
}

/* Decorative circles */
.deco-circle {
  position: absolute;
  border-radius: 50%;
  opacity: 0.1;
}

.deco-circle-1 {
  width: 200px;
  height: 200px;
  background: var(--brand);
  top: -50px;
  left: -50px;
}

.deco-circle-2 {
  width: 150px;
  height: 150px;
  background: var(--cta);
  bottom: -40px;
  right: -40px;
}

.deco-circle-3 {
  width: 100px;
  height: 100px;
  background: var(--accent);
  top: 40%;
  right: 5%;
}

/* Card content icons */
.card-icon {
  position: absolute;
  font-size: 1.5rem;
  color: white;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Floating animation */
@keyframes float {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  25% {
    transform: translateY(-15px) rotate(2deg);
  }
  50% {
    transform: translateY(-10px) rotate(-2deg);
  }
  75% {
    transform: translateY(-20px) rotate(1deg);
  }
}

/* Pulse animation for central hub */
@keyframes pulse {
  0%, 100% {
    box-shadow: 0 8px 24px rgba(35, 64, 147, 0.25);
  }
  50% {
    box-shadow: 0 8px 32px rgba(35, 64, 147, 0.4);
  }
}

.central-hub {
  animation: pulse 3s ease-in-out infinite;
}

/* Responsive adjustments for illustration */
@media (max-width: 991.98px) {
  .blog-hero-illustration {
    height: 300px;
  }

  .central-hub {
    width: 100px;
    height: 100px;
  }

  .central-hub i {
    font-size: 2rem;
  }

  .floating-card {
    transform: scale(0.8);
  }
}

@media (max-width: 767.98px) {
  .blog-hero-illustration {
    height: 250px;
  }
}

/* Responsive Adjustments */
@media (max-width: 991.98px) {
  .hero-curved {
    padding: 6rem 0 8rem;
  }

  h1 {
    font-size: 2.5rem !important;
  }

  h2 {
    font-size: 2rem !important;
  }

  /* Keep card titles at normal size */
  .card .card-body h2.h6 {
    font-size: 1rem !important;
  }

  /* Keep blog content headings appropriately sized */
  .blog-content h2 {
    font-size: 1.65rem !important;
  }
  .blog-content h2.h4 {
    font-size: 1.4rem !important;
  }
  .tldr-box h2,
  .tldr-box h3 {
    font-size: 1.35rem !important;
  }

  .py-6 {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }
}

@media (max-width: 767.98px) {
  .hero-curved {
    padding: 4rem 0 6rem;
  }

  .logos-track {
    gap: 2rem;
  }

  .logo-item {
    width: 120px;
    height: 60px;
  }

  .logo-item img {
    max-width: 100px;
    max-height: 45px;
  }

  .cta-box-modern {
    padding: 2.5rem 1.5rem;
  }

  /* Comparison Table - Mobile Card Layout */
  .comparison-table-wrapper {
    padding: 0;
    box-shadow: none;
    background: transparent;
    overflow-x: visible;
  }

  .comparison-table {
    min-width: 0;
  }

  .comparison-table thead {
    display: none;
  }

  .comparison-table tbody tr {
    display: block;
    background: #fff;
    border-radius: 12px;
    margin-bottom: 1rem;
    padding: 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-bottom: none;
  }

  .comparison-table tbody tr:hover {
    background-color: #fff;
  }

  .comparison-table td {
    display: block;
    padding: 0.75rem 0;
    border: none;
  }

  .comparison-table .feature-name {
    font-weight: 600;
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e5e7eb;
    color: var(--fg);
  }

  .comparison-table .competitor-cell,
  .comparison-table .i4a-cell {
    background: transparent;
    padding-left: 0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .comparison-table .competitor-cell::before {
    content: "Typical AMS";
    font-weight: 600;
    color: #6c757d;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: block;
    margin-bottom: 0.35rem;
  }

  .comparison-table .i4a-cell {
    background: none;
    padding: 0;
    border-radius: 0;
    margin-top: 0.5rem;
  }

  .comparison-table .i4a-cell::before {
    content: "i4a";
    font-weight: 600;
    color: var(--brand);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: block;
    margin-bottom: 0.35rem;
  }

  .comparison-table .competitor-cell i,
  .comparison-table .i4a-cell i {
    margin-right: 0.4rem;
  }
}

/* ================================================
   Guide Pages - Improved Content Spacing
   ================================================ */
.blog-content > div[id] {
  margin-bottom: 5rem;
}
.blog-content > div[id] + div[id] {
  padding-top: 1.5rem;
}
.blog-content h2 {
  margin-bottom: 2rem;
}
.blog-content h4 {
  margin-top: 3rem;
  margin-bottom: 1.25rem;
}

.blog-content p {
  margin-bottom: 1.5rem;
}
.blog-content ul, .blog-content ol {
  margin-bottom: 2rem;
}
.blog-content li {
  margin-bottom: 0.25rem;
}
.blog-content table {
  margin: 1.5rem 0;
}
.blog-content .card-soft {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}

/* Blog guide link pill */
.blog-guide-link-pill {
  background: rgba(var(--bs-primary-rgb), 0.05);
  border-radius: 6px;
  display: inline-block;
}

/* Accent-colored table headers */
.table-accent thead th {
  background: var(--bs-primary) !important;
  color: #fff !important;
  border-color: var(--bs-primary) !important;
}
.table-accent-orange thead th {
  background: #e85902 !important;
  color: #fff !important;
  border-color: #e85902 !important;
}
.table-accent-purple thead th {
  background: #6f42c1 !important;
  color: #fff !important;
  border-color: #6f42c1 !important;
}

/* ================================================
   Icon Check List - prevents text wrapping under icon
   Works with ul/li or div containers
   ================================================ */
.icon-check-list {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.icon-check-list li,
.icon-check-list > div {
  display: flex;
  align-items: flex-start;
  margin-bottom: 0.2rem;
}
.icon-check-list li:last-child,
.icon-check-list > div:last-child {
  margin-bottom: 0;
}
.icon-check-list li i,
.icon-check-list > div > i {
  flex-shrink: 0;
  margin-right: 0.5rem;
  margin-top: 0.15em;
}

/* ================================================
   Mobile Feature Checklist - Categorized Accordion
   ================================================ */

/* Hide desktop grid on mobile, show accordion */
@media (max-width: 767px) {
  .feature-checklist-mobile .feature-grid-desktop {
    display: none !important;
  }
  .feature-checklist-mobile .feature-accordion-mobile {
    display: block !important;
  }
}

/* Hide mobile accordion on desktop */
.feature-accordion-mobile {
  display: none;
  margin-bottom: 3.5rem;
}

/* Mobile accordion styling */
.feature-accordion-mobile .accordion-item {
  border: 1px solid #dee2e6;
  margin-bottom: 8px;
  border-radius: 8px !important;
  overflow: hidden;
}

.feature-accordion-mobile .accordion-button {
  padding: 12px 16px;
  font-size: 0.95rem;
  font-weight: 600;
  background: #f8f9fa;
}

.feature-accordion-mobile .accordion-button:not(.collapsed) {
  background: #e9ecef;
  color: var(--brand);
}

.feature-accordion-mobile .accordion-button::after {
  width: 1rem;
  height: 1rem;
  background-size: 1rem;
}

.feature-accordion-mobile .accordion-body {
  padding: 12px 16px;
}

.feature-accordion-mobile .feature-list-simple {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: 16px;
}

.feature-accordion-mobile .feature-list-simple li {
  font-size: 0.8rem;
  padding: 4px 0;
  break-inside: avoid;
  color: #333;
}

.feature-accordion-mobile .feature-count {
  font-size: 0.75rem;
  color: #6c757d;
  font-weight: 400;
  margin-left: 8px;
}

/* Override Bootstrap bg-light for better visibility */
.bg-light {
  background-color: #e9ecef !important;
}
