/* === Red Barn Media Group - Charlie's Tropic Heating & Air === */

/* === CSS Custom Properties === */
:root {
  /* Brand Colors */
  --color-relaxed-blue: #2a99dd;
  --color-relaxed-blue-dark: #2180b8;
  --color-relaxed-blue-10: rgba(42, 153, 221, 0.1);
  --color-relaxed-blue-15: rgba(42, 153, 221, 0.15);
  --color-relaxed-blue-20: rgba(42, 153, 221, 0.2);
  --color-seafoam: #e9f6f6;
  --color-seafoam-5: rgba(233, 246, 246, 0.05);
  --color-sunshine-yellow: #f89f1a;
  --color-sunshine-yellow-dark: #d98816;
  --color-sunshine-yellow-15: rgba(248, 159, 26, 0.15);
  --color-sunshine-yellow-20: rgba(248, 159, 26, 0.2);
  --color-deep-blue: #1b2a77;
  --color-navy-blue: #020c3d;
  --color-tropic-green: #12a95e;

  /* Gradients */
  --color-gradient-dark: linear-gradient(84deg, #222222 0.05%, #1e1e1e 99.95%);
  --color-gradient-dark-2: linear-gradient(98deg, #1e1e1e 0.99%, #222222 99.01%);
  --color-gradient-dark-3: linear-gradient(265deg, #1e1e1e 0.1%, #222222 99.9%);
  --color-gradient-deep-sea: linear-gradient(84deg, #2a99dd 0.05%, #e9f6f6 99.95%);
  --color-gradient-sandy-beach: linear-gradient(84deg, #f89f1a 0.05%, #12a95e 99.95%);
  --color-gradient-yellow-fade-contact: linear-gradient(84deg, #3a2e0e 0.05%, #191919 99.95%);
  --color-gradient-yellow-fade: linear-gradient(
    84deg,
    rgba(248, 159, 26, 0.2) 0.05%,
    rgba(51, 51, 51, 0.2) 99.95%
  );
  --color-gradient-yellow-fade-2: linear-gradient(
    84deg,
    rgba(248, 159, 26, 0.45) 0.05%,
    rgba(51, 51, 51, 0.45) 99.95%
  );
  --color-gradient-blue-fade: linear-gradient(180deg, #121212 0%, rgba(14, 50, 72, 0.5) 100%);
  --color-gradient-blue-fade-reverse: linear-gradient(
    180deg,
    rgba(14, 50, 72, 0.5) 0%,
    #121212 100%
  );
  --color-gradient-green-fade: linear-gradient(180deg, #121212 0%, rgba(7, 67, 37, 0.5) 100%);
  --color-gradient-green-fade-reverse: linear-gradient(
    180deg,
    rgba(7, 67, 37, 0.5) 0%,
    #121212 100%
  );
  --color-gradient-blue: linear-gradient(
    180deg,
    #2a99dd 0%,
    #2473ba 26%,
    #1f4b95 59%,
    #1c337f 84%,
    #1b2a77 100%
  );
  --color-gradient-blue-reverse: linear-gradient(
    180deg,
    #1b2a77 0%,
    #1c337f 16%,
    #1f4b95 41%,
    #2473ba 74%,
    #2a99dd 100%
  );

  /* Generic */
  --color-white: #ffffff;
  --color-black: #121212;

  /* Neutrals */
  --color-neutral-50: #eef0f5;
  --color-neutral-100: #e5e7ea;
  --color-neutral-200: #dddee1;
  --color-neutral-300: #ccced6;
  --color-neutral-400: #c1c3cb;
  --color-neutral-500: #a9abb4;
  --color-neutral-600: #8d919a;
  --color-neutral-700: #656870;

  /* Dark Mode */
  --color-dark-mode: #1e1e1e;
  --color-dark-02dp: #222222;
  --color-dark-03dp: #252525;
  --color-dark-04dp: #272727;
  --color-dark-06dp: #2c2c2c;
  --color-dark-08dp: #2e2e2e;
  --color-dark-12dp: #333333;
  --color-dark-16dp: #353535;
  --color-dark-24dp: #383838;

  /* Typography */
  --font-cubano: cubano, sans-serif;
  --font-marine: marine, sans-serif;
  --font-hobo: hobo-std, sans-serif;
  --font-weight-bold: 700;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-regular: 400;
  --font-weight-black: 900;

  /* Layout */
  --hero-height: 600px;
  --hero-padding: 3rem;
  --transition-standard: 0.25s;
  --border-radius-standard: 0.5rem;
  --border-radius-large: 1.25rem;
  --border-radius-card: 0.75rem;
  --box-shadow-dropdown: 0 3rem 3rem rgba(0, 0, 0, 0.175);
  --margin-standard: 1rem;
}

/* === Base Styles === */
html,
body {
  width: 100%;
  height: 100%;
}

body {
  color: var(--color-navy-blue);
  font-family: var(--font-marine);
  font-weight: var(--font-weight-regular);
  background-color: var(--color-seafoam);
}

/* === Typography === */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: var(--font-cubano);
  color: var(--color-deep-blue);
  font-weight: var(--font-weight-regular);
  text-transform: uppercase;
}

.cubano {
  font-family: var(--font-cubano);
}
.hobo {
  font-family: var(--font-hobo);
}
.black {
  font-weight: var(--font-weight-black);
}
.bold {
  font-weight: var(--font-weight-bold);
}
.medium {
  font-weight: var(--font-weight-medium);
}
.regular {
  font-weight: var(--font-weight-regular);
}

.marine {
  font-family: var(--font-marine);
}
p,
ul li,
ol li,
table {
  font-size: 0.85rem;
  font-weight: var(--font-weight-regular);
}
.fs-7 {
  font-size: 0.85rem;
}
.fs-8 {
  font-size: 0.75rem;
}

.material-symbols-outlined {
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 200, 'opsz' 48;
  font-size: inherit;
  vertical-align: middle;
  position: relative;
}
.material-symbols-outlined.FILL {
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 200, 'opsz' 48;
}
/* === Icon Circle Utility Classes === */
.ctha-icon-circle-48 {
  width: 48px;
  height: 48px;
}

.ctha-icon-circle-34 {
  width: 34px;
  height: 34px;
}

.ctha-icon-sm {
  font-size: 18px;
}

.icon-button {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  justify-content: center;
}
.icon-list {
  list-style: none;
  padding-left: 0;
}
.icon-list li::before {
  padding-right: 0.25rem;
  content: attr(data-icon);
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 200, 'opsz' 48;
  position: relative;
  top: 0.1em;
}
.icon-list li.icon-relaxed-blue::before {
  color: var(--color-relaxed-blue);
}
.icon-list li.icon-sunshine-yellow::before {
  color: var(--color-sunshine-yellow);
}
/* === Menu Styles === */
.menu-container {
  background: var(--color-white);
  margin-top: 0 !important;
}

.menu-container.shrink-menu {
  box-shadow: 0 1px 0 0 var(--color-tropic-green);
}

.menu-container .ctha-menu-topper-padding {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition: var(--transition-standard);
}
.menu-container.shrink-menu .ctha-menu-topper-padding {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.navbar-nav {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 6rem;
  transition: height var(--transition-standard);
}

.shrink-menu .navbar-nav {
  height: 5rem;
}

/* Navigation Links */
.menu-container .navbar-light .navbar-nav .nav-link {
  color: var(--color-navy-blue);
  font-family: var(--font-marine);
  font-weight: var(--font-weight-black);
  font-size: 0.9rem;
}
.menu-container.shrink-menu .navbar-light .navbar-nav .nav-link {
  font-size: 0.85rem;
}

.dropdown-toggle:not(.has-dropdown)::after,
.dropend .dropdown-item:not(.has-dropend)::after,
.dropstart .dropdown-toggle:not(.has-dropstart)::before {
  border: 0 !important;
  margin: 0 !important;
}

.has-dropdown,
.has-dropend {
  align-items: center;
  gap: 0.25em;
}

.has-dropdown::after {
  content: 'keyboard_arrow_down';
  font-family: 'Material Symbols Outlined';
  border: 0;
  margin-left: 0;
  font-size: inherit;
  vertical-align: middle;
}
.dropend .dropdown-item.has-dropend::after {
  content: 'chevron_right';
  font-family: 'Material Symbols Outlined';
  border: 0;
  margin-left: 0.255em;
  font-size: 1em;
  vertical-align: middle;
}

.nav-fill .nav-item .dropdown-item {
  text-align: left !important;
}

.menu-container .navbar-light .navbar-nav .nav-link:is(:hover, :active) {
  color: var(--color-tropic-green);
}

/* Dropdown Styles */
.nav-item .dropdown-item {
  color: var(--color-white);
  font-family: var(--font-cubano);
  font-weight: var(--font-weight-medium);
  font-size: 1rem;
}

.nav-item .dropdown-item:is(:hover, :active) {
  background-color: #eee;
  border-radius: var(--border-radius-standard);
  color: var(--color-relaxed-blue) !important;
}

.navbar-expand-xl .navbar-nav .dropdown-menu {
  background: #fff;
  border: 0;
  box-shadow: var(--box-shadow-dropdown);
  padding: 0.5rem;
}

.navbar-expand-xl .navbar-nav .dropdown-menu.main-dropdown {
  top: 2rem;
  padding: 0.5rem;
  border-radius: var(--border-radius-standard);
  transition: top var(--transition-standard);
}

.ctha-mega-dropdown-row {
  background: var(--color-dark);
  border-radius: var(--border-radius-standard);
  transition-duration: var(--transition-standard);
}
.ctha-mega-dropdown-row:is(:hover, :focus, :active) {
  background-color: var(--color-relaxed-blue-15);
}

.navbar-expand-xl .navbar-nav .dropdown-menu.mega-dropdown {
  background: var(--color-gradient-blue);
  padding: 0.5rem;
  border-radius: var(--border-radius-large);
  transition: top var(--transition-standard);
  width: 100%;
}

.navbar-expand-xl .navbar-nav .dropdown-menu.sub-dropdown {
  border-radius: var(--border-radius-standard);
}

.ctha-mega-dropdown-group {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.ctha-mega-dropdown-group:is(:hover, :focus, :active) {
  background: var(--color-seafoam-5);
  border-radius: var(--border-radius-standard);
}

.ctha-mega-dropdown-group p {
  font-family: var(--font-cubano);
  font-size: 0.9rem;
  color: var(--color-white);
  transition-duration: var(--transition-standard);
  font-weight: var(--font-weight-medium);
  margin-bottom: 0rem;
  text-transform: uppercase;
}
.ctha-mega-dropdown-group:is(:hover, :focus, :active) p {
  color: var(--color-sunshine-yellow);
}

.ctha-mega-dropdown-group a {
  color: var(--color-neutral-50);
  transition-duration: var(--transition-standard);
}
.ctha-mega-dropdown-group a:is(:hover, :focus, :active) {
  color: var(--color-tropic-green);
}

/* Logo Styles */
.menu-container .container-fluid.ctha-logo-row {
  transition: all var(--transition-standard);
}

.menu-container .container-fluid .row .ctha-logo-place a.ctha-logo {
  position: absolute;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  top: 3rem;
  z-index: 2;
  transition-duration: 0.25s;
}

.menu-container .container-fluid .row .ctha-logo-place a.ctha-logo {
  background: url(../img/ctha-logo.svg);
  background-size: cover;
  width: 120px;
  height: 77px;
  transition-duration: 0.25s;
}

.menu-container.shrink-menu .container-fluid .row .ctha-logo-place a.ctha-logo {
  width: 109px;
  height: 70px;
  top: 2.25rem;
  transition-duration: 0.25s;
}

/* === Home Hero Styles === */
/* Mobile First: Mobile SVG centered for small screens */
.ctha-hero-intro {
  background: var(--color-seafoam) url('../img/ctha-hero-mobile.svg') center center no-repeat;
  background-size: 100% auto;
  height: var(--hero-height);
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

/* Tablet: For screens 768px and wider */
@media (min-width: 768px) {
  .ctha-hero-intro {
    margin-top: 136px;
  }
}

/* Desktop: For screens 1200px and wider, switch to full hero image */
@media (min-width: 1200px) {
  .ctha-hero-intro {
    background: var(--color-seafoam) url('../img/ctha-hero-800-600.webp') right bottom no-repeat;
    background-size: auto;
    height: var(--hero-height);
  }
}

.ctha-hero-intro.ctha-sub-page {
  height: fit-content;
  padding-top: 8rem;
  padding-bottom: 5rem;
}

.ctha-hero-intro h1 {
  font-size: calc(2rem + 1vw);
  line-height: 1;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
}
.ctha-hero-intro p {
  color: var(--color-navy-blue);
  font-weight: 700;
}

.ctha-hero-intro.ctha-sub-page h1 {
  font-size: calc(2rem + 0.75vw);
  line-height: 1;
  color: var(--color-white);
  font-weight: var(--font-weight-bold);
}
.ctha-hero-intro.ctha-sub-page p {
  color: var(--color-white);
}

.ctha-hero-image-col {
  position: relative;
}

/* === Service Hero Backgrounds (Desktop ≥1200px) === */
@media (min-width: 1200px) {
  .ctha-hero-intro.ac {
    background: var(--color-seafoam) url('../img/ctha-hero-ac-800-600.webp') right bottom no-repeat;
    background-size: auto;
  }
  .ctha-hero-intro.furnace {
    background: var(--color-seafoam) url('../img/ctha-hero-furnace-800-600.webp') right bottom
      no-repeat;
    background-size: auto;
  }
  .ctha-hero-intro.heat-pump {
    background: var(--color-seafoam) url('../img/ctha-hero-heat-pump-800-600.webp') right bottom
      no-repeat;
    background-size: auto;
  }
  .ctha-hero-intro.mini-split {
    background: var(--color-seafoam) url('../img/ctha-hero-mini-split-800-600.webp') right bottom
      no-repeat;
    background-size: auto;
  }
  .ctha-hero-intro.packaged-systems {
    background: var(--color-seafoam) url('../img/ctha-hero-package-unit-800-600.webp') right bottom
      no-repeat;
    background-size: auto;
  }
  .ctha-hero-intro.indoor-air-quality {
    background: var(--color-seafoam) url('../img/ctha-hero-iaq-800-600.webp') right bottom no-repeat;
    background-size: auto;
  }
}

/* === Button Styles === */
.btn {
  padding: 0.75rem 1rem;
  font-family: var(--font-marine);
  font-weight: var(--font-weight-black);
  border-radius: 50px;
  font-size: 1rem;
  line-height: 1.125;
  margin-bottom: 1rem;
  transition: all var(--transition-standard);
  text-transform: none;
  border: 2px solid transparent;
}

.btn.btn-menu {
  padding: 0.5rem 0.75rem;
  font-size: 0.85rem;
}
.btn.btn-lg {
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}
.btn.btn-xl {
  padding: 1.25rem 1.75rem;
  font-size: 1.5rem;
}

/* BLUE BTN - Relaxed Blue */
.btn-blue,
.btn-252420 {
  color: var(--color-seafoam);
  background: var(--color-relaxed-blue);
  border-color: var(--color-relaxed-blue);
}
.btn-blue:is(:hover, :active, :focus),
.btn-252420:is(:hover, :active, :focus) {
  color: var(--color-seafoam);
  background: var(--color-relaxed-blue-dark);
  border-color: var(--color-relaxed-blue-dark);
}

/* YELLOW BTN - Sunshine Yellow */
.btn-yellow {
  color: var(--color-navy-blue);
  background: var(--color-sunshine-yellow);
  border-color: var(--color-sunshine-yellow);
}
.btn-yellow:is(:hover, :active, :focus) {
  color: var(--color-navy-blue);
  background: var(--color-sunshine-yellow-dark);
  border-color: var(--color-sunshine-yellow-dark);
}

/* OUTLINE BTN - Seafoam Ghost */
.btn-outline {
  color: var(--color-seafoam);
  background: rgba(233, 246, 246, 0.2);
  border: 2px solid var(--color-seafoam);
}
.btn-outline:is(:hover, :active, :focus) {
  color: var(--color-white);
  background: rgba(233, 246, 246, 0.35);
  border-color: var(--color-white);
}

/* OUTLINE BTN - Sunshine Yellow Ghost */
.btn-outline-yellow {
  color: var(--color-sunshine-yellow);
  background: transparent;
  border: 2px solid var(--color-sunshine-yellow);
}
.btn-outline-yellow:is(:hover, :active, :focus) {
  color: var(--color-navy-blue);
  background: var(--color-sunshine-yellow);
  border-color: var(--color-sunshine-yellow-dark);
}

a.link-yellow {
  color: var(--color-sunshine-yellow);
  font-weight: var(--font-weight-bold);
}
a.link-yellow:is(:hover, :focus, :active) {
  text-decoration: underline;
}

a.link-blue {
  color: var(--color-relaxed-blue);
  font-weight: var(--font-weight-bold);
}
a.link-blue:is(:hover, :focus, :active) {
  text-decoration: underline;
}

a.link-seafoam {
  color: var(--color-seafoam);
  font-weight: var(--font-weight-bold);
}
a.link-seafoam:is(:hover, :focus, :active) {
  color: var(--color-seafoam);
  text-decoration: underline;
}

/* === Color Utility Classes === */
/* SUNSHINE YELLOW */
.text-yellow {
  color: var(--color-sunshine-yellow) !important;
}
.bg-yellow {
  background-color: var(--color-sunshine-yellow) !important;
}
.bg-yellow-20 {
  background-color: var(--color-sunshine-yellow-20) !important;
}
.border-yellow {
  border-color: var(--color-sunshine-yellow) !important;
}

/* TROPIC GREEN */
.text-green {
  color: var(--color-tropic-green) !important;
}
.bg-green {
  background-color: var(--color-tropic-green) !important;
}
.border-green {
  border-color: var(--color-tropic-green) !important;
}
.outline-green {
  outline: solid 2px var(--color-tropic-green) !important;
  outline-offset: 0.25rem !important;
}

/* DEEP BLUE */
.text-deep-blue {
  color: var(--color-deep-blue) !important;
}
.bg-deep-blue {
  background-color: var(--color-deep-blue) !important;
}
.border-deep-blue {
  border-color: var(--color-deep-blue) !important;
}

/* NAVY BLUE */
.text-navy {
  color: var(--color-navy-blue) !important;
}
.bg-navy {
  background-color: var(--color-navy-blue) !important;
}
.border-navy {
  border-color: var(--color-navy-blue) !important;
}

/* RELAXED BLUE */
.text-blue {
  color: var(--color-relaxed-blue) !important;
}
.bg-blue {
  background-color: var(--color-relaxed-blue) !important;
}
.bg-blue-15 {
  background-color: var(--color-relaxed-blue-15) !important;
}
.border-blue {
  border-color: var(--color-relaxed-blue) !important;
}

/* SEAFOAM */
.text-seafoam {
  color: var(--color-seafoam) !important;
}
.bg-seafoam {
  background-color: var(--color-seafoam) !important;
}
.border-seafoam {
  border-color: var(--color-seafoam) !important;
}
.bg-seafoam-5 {
  background: var(--color-seafoam-5) !important;
}

/* DARK */
.text-dark {
  color: var(--color-dark-mode) !important;
}
.bg-dark {
  background-color: var(--color-dark-mode) !important;
}
.border-dark {
  border-color: var(--color-dark-mode) !important;
}

/* GRAY */
.text-gray {
  color: var(--color-dark-16dp) !important;
}
.bg-gray {
  background-color: var(--color-dark-12dp) !important;
}
.border-gray {
  border-color: var(--color-dark-12dp) !important;
}

/* BLACK */
.text-black {
  color: var(--color-black) !important;
}
.bg-black {
  background-color: var(--color-black) !important;
}
.border-black {
  border-color: var(--color-black) !important;
}

/* Gradients */
.bg-gradient-dark {
  background: var(--color-gradient-dark) !important;
}
.bg-gradient-dark-2 {
  background: var(--color-gradient-dark-2) !important;
}
.bg-gradient-dark-3 {
  background: var(--color-gradient-dark-3) !important;
}
.bg-gradient-sandy-beach {
  background: var(--color-gradient-sandy-beach) !important;
}
.bg-gradient-deep-sea {
  background: var(--color-gradient-deep-sea) !important;
}
.bg-gradient-blue-fade {
  background: var(--color-gradient-blue-fade) !important;
}
.bg-gradient-blue-fade-reverse {
  background: var(--color-gradient-blue-fade-reverse) !important;
}
.bg-gradient-green-fade {
  background: var(--color-gradient-green-fade) !important;
}
.bg-gradient-green-fade-reverse {
  background: var(--color-gradient-green-fade-reverse) !important;
}
.bg-gradient-yellow-fade {
  background: var(--color-gradient-yellow-fade) !important;
}
.bg-gradient-blue {
  background: var(--color-gradient-blue) !important;
}
.bg-gradient-blue-reverse {
  background: var(--color-gradient-blue-reverse) !important;
}

.text-neutral {
  color: var(--color-neutral-50) !important;
}
.text-neutral-400 {
  color: var(--color-neutral-400) !important;
}
.text-neutral-600 {
  color: var(--color-neutral-600) !important;
}
.text-neutral-700 {
  color: var(--color-neutral-700) !important;
}
.fixed-bg-gradient {
  background-attachment: fixed !important;
}
/* === Component Styles === */
.img-fluid {
  margin-bottom: 2rem;
}

ul.list-group,
ol.list-group,
.card,
.table-responsive,
table.table-bordered {
  border-radius: var(--border-radius-card);
  margin-bottom: 1.5rem;
}
.card.h-100 {
  margin-bottom: 0;
}
.card .card-body {
  padding: 1.5rem;
}

/* === Coastal Card === */
.coastal-card {
  border: 4px solid #2a99dd;
  border-radius: var(--border-radius-large);
  background: url('/img/ctha-banner-palm-tree.svg') no-repeat right bottom / auto 100%,
    linear-gradient(141deg, #fff6ea 33%, #e9f6f6 67%);
  background-origin: border-box;
}
@media (max-width: 767px) {
  .coastal-card {
    background: none;
  }
}
@media (min-width: 1200px) and (max-width: 1400px) {
  .coastal-card {
    background-size: auto 75%, auto;
  }
}

/* === Service Area Card === */
.card.service-area {
  border-radius: 50rem;
  background-color: var(--color-deep-blue);
  margin-bottom: 0.75rem;
}
.card.service-area:hover {
  background: var(--color-navy-blue);
}
.card.service-area.no-link:hover {
  background-color: var(--color-deep-blue);
  background-image: none;
  cursor: default;
}
.card.service-area.no-link:hover .card-body span .material-symbols-outlined {
  color: var(--color-sunshine-yellow);
}
.card.service-area .card-body {
  padding: 0.85rem 1rem;
}
.card.service-area .card-body a,
.card.service-area .card-body > span {
  color: var(--color-seafoam);
  font-size: 0.9rem;
  font-family: var(--font-marine);
  font-weight: var(--font-weight-black);
}
.card.service-area:hover .card-body span,
.card.service-area:hover .card-body span .material-symbols-outlined {
  color: var(--color-white);
}

.card.service-area .card-body span .material-symbols-outlined {
  color: var(--color-sunshine-yellow);
}

.border-radius-large {
  border-radius: var(--border-radius-large) !important;
}

.accordion-button .material-symbols-outlined {
  transition: transform 0.3s ease-in-out;
}

.accordion-button em,
.accordion-button strong {
  font-style: normal !important;
  display: contents;
}

.accordion:not(.ctha-card-accordion) .accordion-button .material-symbols-outlined {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: 16px;
  background-color: var(--color-sunshine-yellow);
  color: var(--color-deep-blue);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Regular accordion: rotate add icon 45deg to form X */
.accordion:not(.ctha-card-accordion) .accordion-button:not(.collapsed) .material-symbols-outlined {
  transform: rotate(45deg);
}

/* Card accordion: rotate only the south_east arrow -180deg */
.ctha-card-accordion .accordion-button:not(.collapsed) .ctha-accordion-arrow {
  transform: rotate(-90deg);
}

.accordion {
  background: transparent;
  border: none;
  color: var(--color-deep-blue);
}
.accordion-item,
.accordion-header,
.accordion-button {
  background: transparent;
  border: none;
  color: var(--color-deep-blue);
}
.accordion-item {
  border-bottom: 1px solid var(--color-relaxed-blue);
}
.accordion-button {
  font-size: 1.125rem;
  font-family: var(--font-marine);
  font-weight: var(--font-weight-black);
  line-height: 1.625rem;
  padding: 0.5rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.accordion-body {
  font-size: 0.875rem;
}

/* OPTIMIZED: Grouped accordion radius resets */
.accordion-item:last-of-type,
.accordion-item:last-of-type .accordion-button,
.accordion-item:last-of-type .accordion-collapse {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.accordion-button:not(.collapsed) {
  color: var(--color-deep-blue);
  box-shadow: none;
  background: transparent;
}

.accordion-button::after {
  display: none !important;
}

.accordion a {
  color: var(--color-relaxed-blue);
  text-decoration: underline transparent;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.accordion a:hover {
  color: var(--color-relaxed-blue);
  text-decoration-color: var(--color-relaxed-blue);
}

.ctha-card-accordion .accordion-item {
  border: 0;
  border-radius: 0.5rem !important;
  margin-bottom: 0.75rem;
  background-color: rgba(233, 246, 246, 0.15);
  overflow: hidden;
}
.ctha-card-accordion .accordion-item:last-child {
  margin-bottom: 0;
}
.ctha-card-accordion .accordion-button {
  padding: 1rem;
  background-color: transparent;
  box-shadow: none;
  border-radius: 0.5rem !important;
  gap: 0.75rem;
}
.ctha-card-accordion .accordion-button::after {
  display: none;
}
.ctha-card-accordion .accordion-button:not(.collapsed) {
  background-color: transparent;
  color: inherit;
}
.ctha-card-accordion .accordion-item:has(.accordion-button:not(.collapsed)) {
  background-color: var(--bs-seafoam, #e9f6f6);
}
.ctha-card-accordion
  .accordion-item:has(.accordion-button:not(.collapsed))
  .accordion-button
  :is(h4, h5) {
  color: var(--color-deep-blue) !important;
}
.ctha-card-accordion .accordion-item:has(.accordion-button:not(.collapsed)) .ctha-accordion-icon {
  background-color: var(--color-sunshine-yellow);
  border: 4px solid var(--color-relaxed-blue);
}
.ctha-card-accordion .accordion-item:has(.accordion-button.collapsed) .ctha-accordion-icon {
  background-color: var(--color-seafoam);
}
.ctha-card-accordion .accordion-item:has(.accordion-button:not(.collapsed)) .ctha-accordion-arrow {
  color: var(--color-deep-blue) !important;
}
.ctha-card-accordion
  .accordion-item:has(.accordion-button:not(.collapsed))
  .ctha-accordion-arrow
  .material-symbols-outlined::before {
  content: 'north_east';
}
.ctha-card-accordion .accordion-item:has(.accordion-button:not(.collapsed)) .accordion-body {
  color: var(--color-navy-blue);
}
.ctha-card-accordion .accordion-collapse .accordion-body {
  padding: 0 1rem 1rem 1rem;
}

input.form-control,
textarea.form-control {
  color: var(--color-neutral-500) !important;
}

/* Coupon Cards */
.coupon-card {
  border: 4px dashed var(--color-deep-blue);
}

/* Coupon Card Code Badge */
.coupon-card-code {
  background: var(--color-deep-blue);
  border-radius: var(--border-radius-standard);
  font-size: 1.35rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
}

.coupon-card .card-body p {
  font-size: 1rem;
}

.coupon-card .card-footer {
  background: transparent;
  border: none;
  padding-bottom: 1rem;
}

.coupon-card .small {
  font-size: 65% !important;
}

/* Placeholder color */
input.form-control::placeholder,
textarea.form-control::placeholder {
  color: var(--color-neutral-500) !important;
  font-family: var(--font-marine);
  opacity: 1;
}

/* Select */
select.form-control {
  color: var(--color-neutral-500) !important;
}

select.form-control:has(option[value='']:checked),
select.form-control:has(option[disabled][selected]) {
  color: var(--color-neutral-500) !important;
}
input.form-control,
textarea.form-control,
input.form-control.contact_form,
textarea.form-control.contact_form {
  color: var(--color-neutral-500) !important;
  border: none;
}

/* === Utility Classes === */
em,
u {
  font-style: inherit !important;
  text-decoration: inherit !important;
}
a {
  text-decoration: none;
}

/* === Colored List Groups === */
ul.list-group.list-yellow,
ul.list-group.list-blue {
  list-style: none;
  padding-left: 0;
}

ul.list-group.list-yellow li,
ul.list-group.list-blue li {
  font-size: 0.75rem;
  border: none;
  border-radius: var(--border-radius-standard);
  padding: 0.65rem 0.65rem;
  margin-bottom: 0.5rem;
}

ul.list-group.list-yellow li {
  background: var(--color-sunshine-yellow-15);
}

ul.list-group.list-blue li {
  background: var(--color-relaxed-blue-10);
}

ul.list-group.list-yellow li .material-symbols-outlined,
ul.list-group.list-blue li .material-symbols-outlined {
  font-size: 0.95rem;
  margin-right: 0.25rem;
}

ul.list-group.list-yellow li .material-symbols-outlined {
  color: var(--color-sunshine-yellow);
}

ul.list-group.list-blue li .material-symbols-outlined {
  color: var(--color-relaxed-blue);
}
/* === Utility Classes === */

.rounded-bottom-xl {
  border-bottom-left-radius: 32px;
  border-bottom-right-radius: 32px;
}

/* === Opening Section === */

.ctha-overline {
  display: inline-block;
  background-color: var(--color-relaxed-blue);
  font-family: var(--font-hobo);
  font-size: 0.875rem;
  padding: 0.25rem 0.5rem;
  border-radius: var(--border-radius-standard);
}

.ctha-advantage-card {
  background: transparent;
  border: none;
  border-radius: var(--border-radius-standard);
  overflow: hidden;
  transition: background-color 0.5s ease, box-shadow 0.3s ease;
}

.ctha-advantage-card:hover {
  background-color: #2a99dd;
  box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.2);
}

.ctha-advantage-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-sunshine-yellow);
  border-radius: 50%;
  width: 56px;
  height: 56px;
}

.ctha-advantage-card:hover .ctha-advantage-icon {
  background: linear-gradient(102deg, #fff6ea 33%, #e9f6f6 67%);
  border: 4px solid var(--color-sunshine-yellow);
}

.ctha-advantage-icon .material-symbols-outlined {
  color: var(--color-deep-blue);
  font-size: 2.25rem;
}

/* === Service Badges === */
.badge-green {
  background-color: var(--color-tropic-green);
  color: var(--color-seafoam);
  font-family: var(--font-marine);
  font-weight: var(--font-weight-black);
  font-size: 0.625rem;
  line-height: 12px;
  padding: 0.25rem 0.5rem;
  border-radius: 300px;
}

/* === Sub Page Styles === */

/* === Footer Styles === */
.ctha-footer-top-graphic {
  background-image: url('../img/ctha-footer-top-graphic.svg');
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: center center;
  width: 100%;
  padding-top: 12.5%; /* 200/1600 = 12.5% to maintain aspect ratio */
  margin-top: -1px;
}

footer {
  background: var(--color-deep-blue);
}
footer .h6 {
  color: var(--color-seafoam);
  font-weight: var(--font-weight-bold);
  margin-bottom: 1rem;
}
footer p {
  color: var(--color-seafoam);
  margin-bottom: 0.25rem;
}
footer p a {
  color: var(--color-seafoam);
  font-family: var(--font-marine);
  font-weight: var(--font-weight-regular);
}
footer p a:is(:hover, :active, :focus) {
  color: var(--color-tropic-green);
}

/* === Media Queries === */
@media (max-width: 1400px) {
  .navbar-light .navbar-nav .nav-link {
    font-size: 0.85rem;
  }
  .overlay-icon {
    width: 50%;
    height: auto;
    z-index: 2;
  }
}

@media (max-width: 1200px) {
  .offcanvas-body {
    border-top: var(--color-tropic-green) 2px solid;
  }
  .navbar-nav,
  .shrink-menu .navbar-nav {
    height: fit-content;
  }
  .navbar-nav {
    width: auto;
  }

  .navbar {
    height: 95px;
    transition: height var(--transition-standard);
  }
  .shrink-menu .navbar {
    height: 80px;
  }

  .nav-fill .nav-item,
  .nav-fill > .nav-link {
    flex: 1 1 auto;
    text-align: left;
  }
  .dropend .dropdown-item.has-dropend::after {
    content: 'expand_more';
  }
  .navbar-light .navbar-nav .nav-link {
    font-size: 1.25rem;
  }

  .nav-pills .nav-link.active.ctha-nav-link-selector {
    background: var(--color-relaxed-blue);
    border-color: transparent;
    transform: translateY(0);
    transition: var(--transition-standard);
    border-bottom-left-radius: var(--border-radius-standard);
    border-bottom-right-radius: var(--border-radius-standard);
  }

  .ctha-banner-graphic-02 {
    display: none;
  }

  .ctha-banner-units {
    display: none;
  }
}

@media (max-width: 991px) {
  .ctha-menu-padding {
    padding: 0 1.5rem;
  }
  .navbar-light .navbar-nav .nav-link {
    font-size: 1.35rem;
  }
}

@media (max-width: 767px) {
  .ctha-hero-intro {
    height: fit-content;
    padding-top: 10rem;
    padding-bottom: 5rem;
  }
  .ctha-hero-intro.ctha-sub-page {
    height: fit-content;
    padding-top: 10rem;
    padding-bottom: 5rem;
  }
  .overlay-icon {
    display: none;
  }
}

@media (max-width: 576px) {
}

@media (max-width: 450px) {
  .ctha-menu-padding {
    padding: 0 0.25rem;
  }
}
