/* ============================================================
   ALTUS Aviation — child theme CSS
   Tokens + component classes per themify-translation-guide §2/§5.
   Values ported verbatim from the approved build (locked v2).
   ============================================================ */

:root {
  --altus-red: #D32B38;
  --red-top: #F43745;
  --red-bottom: #A82630;
  --gradient-red: linear-gradient(180deg, #F43745 0%, #A82630 100%);
  --ink: #14181F;
  --text-body: #3D434C;
  --text-secondary: #6A7078;   /* 12px+ only */
  --text-on-dark: #FFFFFF;
  --text-on-dark-muted: rgba(255,255,255,0.72);
  --surface-cloud: #F6F7F9;
  --surface-carbon: #0E1116;
  --border-card: #E7E9ED;
  --border-field: #D9DCE1;
  --status-green: #1FA971;
  --shadow-card: 0 1px 3px rgba(20,24,31,0.06);
  --shadow-card-hover: 0 8px 24px rgba(20,24,31,0.10);
  --shadow-media: 0 8px 28px rgba(20,24,31,0.16);
  --radius-card: 12px;
  --radius-button: 8px;
  --content-max: 1200px;
  --font-heading: 'Plus Jakarta Sans', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-label: 'Plus Jakarta Sans', sans-serif; /* 600, 11–12px, uppercase, 0.12em */
  --ease-smooth: cubic-bezier(0.22, 0.61, 0.36, 1);
  --duration-med: 450ms;
  --duration-fast: 200ms;
}

/* ---------- base ---------- */
body {
  font-family: var(--font-body);
  color: var(--text-body);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--ink);
}
h1 { letter-spacing: -0.02em; }

:focus-visible {
  outline: 2px solid var(--altus-red);
  outline-offset: 2px;
}

/* Anchored sections clear the sticky header. */
[id] { scroll-margin-top: 96px; }

/* ---------- skip link ---------- */
.altus-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  background: var(--ink);
  color: #FFFFFF;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  padding: 12px 20px;
  border-radius: 0 0 var(--radius-button) 0;
  text-decoration: none;
}
.altus-skip-link:focus {
  left: 0;
}

/* ---------- buttons ---------- */
.altus-btn-primary a,
a.altus-btn-primary,
button.altus-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 14px 24px;
  background: var(--gradient-red);
  color: #FFFFFF !important;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  border: none;
  border-radius: var(--radius-button);
  text-decoration: none !important;
  cursor: pointer;
  box-sizing: border-box;
  transition: filter var(--duration-fast) var(--ease-smooth);
}
.altus-btn-primary a:hover,
a.altus-btn-primary:hover,
button.altus-btn-primary:hover {
  filter: brightness(1.06);
}
.altus-btn-secondary a,
a.altus-btn-secondary,
button.altus-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 14px 24px;
  background: #FFFFFF;
  color: var(--ink) !important;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-button);
  text-decoration: none !important;
  cursor: pointer;
  box-sizing: border-box;
  transition: background var(--duration-fast) var(--ease-smooth);
}
.altus-btn-secondary a:hover,
a.altus-btn-secondary:hover,
button.altus-btn-secondary:hover {
  background: var(--surface-cloud);
}

/* Header menu "Get a quote" item → red gradient button. */
#main-nav .altus-btn-quote a,
.altus-btn-quote > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 22px !important;
  background: var(--gradient-red);
  color: #FFFFFF !important;
  font-family: var(--font-heading);
  font-weight: 600;
  border-radius: var(--radius-button);
  transition: filter var(--duration-fast) var(--ease-smooth);
}
#main-nav .altus-btn-quote a:hover,
.altus-btn-quote > a:hover {
  filter: brightness(1.06);
}

/* ---------- text helpers ---------- */
.altus-grad-text {
  background: var(--gradient-red);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: inline-block;
}
.altus-label,
.altus-eyebrow {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
}
.altus-eyebrow--red { color: var(--altus-red); }
.altus-prose { max-width: 760px; }

.altus-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #FFFFFF;
  border: 1px solid var(--border-card);
  border-radius: 999px;
  padding: 7px 14px;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--text-body);
}
.altus-status-pill::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--status-green);
}

/* ---------- trust bar ---------- */
.altus-trust-bar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.altus-trust-bar span {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
}
.altus-trust-bar a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--text-secondary);
}

/* ---------- flight-data strip (hero) ---------- */
.altus-flight-strip {
  display: flex;
  flex-wrap: wrap;
  margin-top: 40px;
  border: 1px solid var(--border-card);
  border-radius: 8px;
  background: #FFFFFF;
  position: relative;
  z-index: 2;
}
.altus-flight-strip > div {
  flex: 1 1 0;
  min-width: 130px;
  padding: 14px 18px;
}
.altus-flight-strip > div + div {
  border-left: 1px solid var(--border-card);
}
.altus-flight-strip .val {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 22px;
  color: var(--ink);
}
.altus-flight-strip .key {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-top: 4px;
}

/* ---------- cards ---------- */
.altus-card {
  background: #FFFFFF;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: transform var(--duration-med) var(--ease-smooth),
              box-shadow var(--duration-med) var(--ease-smooth);
}
.altus-card:hover,
.altus-card:focus-within {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}
.altus-card--static:hover,
.altus-card--static:focus-within {
  transform: none;
  box-shadow: var(--shadow-card);
}
.altus-card a {
  text-decoration: none;
}
.altus-card .card-media {
  height: 180px;
  overflow: hidden;
  background: linear-gradient(135deg, #14181F, #0E1116);
  border-radius: 12px 12px 0 0;
}
.altus-card .card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.altus-card .card-body { padding: 20px 22px 16px; }
.altus-card .card-label {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--altus-red);
  margin-bottom: 8px;
}
.altus-card h3 {
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
}
.altus-card .card-desc {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-body);
  margin: 0 0 10px;
}
.altus-card .card-spec {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
}
.altus-card .card-cta {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 2px;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 15px;
  color: var(--altus-red);
}
.altus-card .card-rule {
  display: block;
  height: 2px;
  width: 0%;
  background: var(--gradient-red);
  transition: width var(--duration-med) var(--ease-smooth);
}
.altus-card:hover .card-rule,
.altus-card:focus-within .card-rule {
  width: 100%;
}

/* ---------- framed imagery ---------- */
.altus-frame,
.altus-frame img {
  border-radius: var(--radius-card);
}
.altus-frame {
  overflow: hidden;
  box-shadow: var(--shadow-media);
}
.altus-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------- pillars (Why ALTUS / How we train) ---------- */
.altus-pillar .pillar-num {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--altus-red);
}
.altus-pillar h3 {
  font-size: 19px;
  font-weight: 700;
  margin: 10px 0 8px;
}
.altus-pillar p {
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
}

/* ---------- course-page components ---------- */
.altus-spec-strip {
  display: flex;
  flex-wrap: wrap;
  border: 1px solid var(--border-card);
  border-radius: 8px;
  background: #FFFFFF;
}
.altus-spec-strip > div {
  flex: 1 1 0;
  min-width: 140px;
  padding: 14px 18px;
}
.altus-spec-strip > div + div {
  border-left: 1px solid var(--border-card);
}
.altus-spec-strip .val {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 18px;
  color: var(--ink);
}
.altus-spec-strip .key {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-top: 4px;
}

.altus-syllabus dl {
  margin: 0;
}
.altus-syllabus .row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border-card);
}
.altus-syllabus dt {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 16px;
  color: var(--ink);
  margin: 0;
}
.altus-syllabus dd {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin: 0;
  white-space: nowrap;
}

.altus-stage .stage-num {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--altus-red);
}
.altus-stage h3 {
  font-size: 18px;
  font-weight: 700;
  margin: 10px 0 8px;
}
.altus-stage p {
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
}

.altus-cred-list .row {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-card);
  font-size: 15px;
}

/* ---------- breadcrumb ---------- */
.altus-breadcrumb {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 18px 24px 0;
}
.altus-breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
}
.altus-breadcrumb li {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-secondary);
}
.altus-breadcrumb li + li::before {
  content: "/";
  margin: 0 8px;
  color: var(--border-card);
}
.altus-breadcrumb a {
  display: inline-flex;
  align-items: center;
  min-height: 44px; /* QA 44px target patch */
  color: var(--text-secondary);
  text-decoration: none;
}
.altus-breadcrumb a:hover {
  color: var(--altus-red);
  text-decoration: underline;
}
.altus-breadcrumb [aria-current="page"] {
  color: var(--ink);
}

/* ---------- chips (FAQ topics, Resources categories) ---------- */
.altus-chip a,
a.altus-chip {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 18px;
  background: #FFFFFF;
  border: 1px solid var(--border-card);
  border-radius: 999px;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 14px;
  color: var(--ink) !important;
  text-decoration: none !important;
  transition: border-color var(--duration-fast) var(--ease-smooth),
              box-shadow var(--duration-fast) var(--ease-smooth);
}
.altus-chip a:hover,
a.altus-chip:hover {
  border-color: var(--altus-red);
  box-shadow: var(--shadow-card);
}

/* ---------- FAQ / accordion patches (Themify Accordion module) ---------- */
.altus-faq .accordion-title,
.altus-faq .themify_builder_accordion .accordion-title a {
  min-height: 44px; /* QA patch */
}
.altus-faq .themify_builder_accordion .builder-accordion-item {
  background: #FFFFFF;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  margin-bottom: 12px;
  overflow: hidden;
}
.altus-faq .accordion-title a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 16px;
  color: var(--ink);
  text-decoration: none;
}
.altus-faq .accordion-content {
  padding: 0 20px 18px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-body);
}

/* ---------- quote form (Contact addon) ---------- */
.altus-quote-form label {
  display: block;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 6px;
}
.altus-quote-form input[type="text"],
.altus-quote-form input[type="email"],
.altus-quote-form input[type="tel"],
.altus-quote-form select,
.altus-quote-form textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
  background: #FFFFFF;
  border: 1px solid var(--border-field);
  border-radius: var(--radius-button);
  box-sizing: border-box;
}
.altus-quote-form input:focus-visible,
.altus-quote-form select:focus-visible,
.altus-quote-form textarea:focus-visible {
  outline: 2px solid var(--altus-red);
  outline-offset: 1px;
}
.altus-quote-form button[type="submit"],
.altus-quote-form .contact-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 14px 28px;
  background: var(--gradient-red);
  color: #FFFFFF;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  border: none;
  border-radius: var(--radius-button);
  cursor: pointer;
  transition: filter var(--duration-fast) var(--ease-smooth);
}
.altus-quote-form button[type="submit"]:hover,
.altus-quote-form .contact-submit:hover {
  filter: brightness(1.06);
}
.altus-form-status[role="status"],
.altus-form-status[role="alert"] {
  font-size: 15px;
  line-height: 1.6;
}
.altus-form-status .err { color: var(--altus-red); }

/* ---------- CTA band / dark sections ---------- */
.altus-cta-band,
.altus-dark {
  color: var(--text-on-dark-muted);
}
.altus-cta-band h2,
.altus-cta-band h3,
.altus-dark h2,
.altus-dark h3 {
  color: var(--text-on-dark);
}

/* ---------- footer (Ultra footer styled dark) ---------- */
#footerwrap {
  background: var(--ink);
  color: var(--text-on-dark-muted);
}
#footerwrap a {
  color: var(--text-on-dark-muted);
  text-decoration: none;
}
#footerwrap a:hover {
  color: #FFFFFF;
  text-decoration: underline;
}
#footerwrap .footer-nav a,
#footerwrap a[href^="tel:"] {
  display: inline-flex;
  align-items: center;
  min-height: 44px; /* QA patch: footer phone + menu links */
}

/* Header phone link 44px patch (if present). */
#headerwrap a[href^="tel:"] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* ---------- article/post styling (single posts, child CSS only) ---------- */
.single-post .post-content h2 {
  font-size: 28px;
  margin: 40px 0 14px;
}
.single-post .post-content h3 {
  font-size: 21px;
  margin: 32px 0 10px;
}
.single-post .post-content p,
.single-post .post-content li {
  font-size: 17px;
  line-height: 1.65;
  color: var(--text-body);
}
.single-post .post-content blockquote {
  margin: 28px 0;
  padding: 4px 0 4px 20px;
  border-left: 3px solid transparent;
  border-image: var(--gradient-red) 1;
  font-style: normal;
  color: var(--ink);
}
.single-post .post-content .altus-callout {
  background: var(--surface-cloud);
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  padding: 20px 24px;
  margin: 28px 0;
}
.single-post .post-content img {
  border-radius: var(--radius-card);
}
.single-post .post-content .altus-table-wrap {
  overflow-x: auto; /* 360px fix — scroll wrappers, never clipping */
}
.single-post .post-content table {
  border-collapse: collapse;
  width: 100%;
  min-width: 520px;
  font-size: 15px;
}
.single-post .post-content th {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  text-align: left;
  padding: 10px 14px;
  border-bottom: 2px solid var(--border-card);
}
.single-post .post-content td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-card);
}

/* Resources post grid — make Post-module cards match .altus-card. */
.altus-post-grid .post {
  background: #FFFFFF;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: transform var(--duration-med) var(--ease-smooth),
              box-shadow var(--duration-med) var(--ease-smooth);
}
.altus-post-grid .post:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}
.altus-post-grid .post-image img {
  border-radius: 12px 12px 0 0;
  display: block;
}
.altus-post-grid .post-title {
  font-size: 19px;
  padding: 0 20px;
}
.altus-post-grid .post-content {
  padding: 0 20px 18px;
  font-size: 15px;
}

/* ---------- Find-Your-Path selector ---------- */
.altus-path fieldset {
  border: 0;
  padding: 0;
  margin: 0 0 32px;
  min-width: 0;
}
.altus-path legend {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: 12px;
  padding: 0;
}
.altus-path .opts {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.altus-path .altus-opt {
  flex: 1 1 200px;
  min-height: 64px;
  text-align: left;
  padding: 18px 20px;
  background: #FFFFFF;
  border: 2px solid var(--border-card);
  border-radius: 12px;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  box-shadow: var(--shadow-card);
  transition: transform 200ms var(--ease-smooth), border-color 200ms, box-shadow 200ms;
}
.altus-path .altus-opt[aria-pressed="true"] {
  border-color: var(--altus-red);
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(20,24,31,0.12);
}
.altus-path-highlight {
  box-shadow: 0 0 0 2px #F43745, 0 10px 28px rgba(168,38,48,0.18) !important;
}

/* ---------- hero flight chart ---------- */
@keyframes fp-pulse {
  0%   { transform: scale(0.6); opacity: 0.9; }
  70%  { transform: scale(1.5); opacity: 0; }
  100% { transform: scale(1.5); opacity: 0; }
}
.altus-fp-desktop { display: block; }
.altus-fp-narrow  { display: none; }
@media (max-width: 799px) {
  .altus-fp-desktop { display: none; }
  .altus-fp-narrow  { display: block; }
}

/* ---------- rise-and-fade (gated: html.altus-js added by altus-motion.js,
   which no-ops under prefers-reduced-motion) ---------- */
html.altus-js [data-rise] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.55s var(--ease-smooth), transform 0.55s var(--ease-smooth);
}
html.altus-js [data-rise].altus-risen {
  opacity: 1;
  transform: none;
}

/* ---------- reduced motion: kill everything ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  html.altus-js [data-rise] {
    opacity: 1;
    transform: none;
  }
  .altus-card:hover,
  .altus-card:focus-within,
  .altus-post-grid .post:hover,
  .altus-path .altus-opt[aria-pressed="true"] {
    transform: none;
  }
}

/* ---------- quote-form row (added during homepage build 2026-07-21) ---------- */
.altus-quote-form { padding: 104px 0; }
.altus-quote-form .module_column:first-child > .module-wrap,
.altus-quote-form .module_column:first-child {
}
.altus-quote-form .tb-column:first-child,
.altus-quote-form .module_column:first-child {
  background: #FFFFFF;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  padding: 36px;
  box-sizing: border-box;
}
.altus-quote-form .module-contact .contact-name-wrap label,
.altus-quote-form .module-contact label {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
}
.altus-quote-form .module-contact input[type=text],
.altus-quote-form .module-contact input[type=email],
.altus-quote-form .module-contact input[type=tel],
.altus-quote-form .module-contact select,
.altus-quote-form .module-contact textarea {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
  background: #FFFFFF;
  border: 1px solid var(--border-field);
  border-radius: var(--radius-button);
  padding: 10px 14px;
  min-height: 44px;
}
.altus-quote-form .module-contact button[type=submit] {
  background: var(--gradient-red);
  color: #FFFFFF;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  border: none;
  border-radius: var(--radius-button);
  min-height: 48px;
  padding: 14px 28px;
  cursor: pointer;
  transition: filter var(--duration-fast) var(--ease-smooth);
}
.altus-quote-form .module-contact button[type=submit]:hover { filter: brightness(1.06); }


/* ---------- course-page FAQ + cloud section (added 2026-07-21) ---------- */
.altus-sec-cloud { background: var(--surface-cloud); padding: 96px 24px; }
.altus-faq .module-accordion { width: 100%; max-width: 860px; margin: 12px auto 0; padding: 0; }
.altus-faq .module-accordion > li { list-style: none; background: #FFFFFF; border: 1px solid var(--border-card); border-radius: var(--radius-card); box-shadow: var(--shadow-card); margin-bottom: 12px; overflow: hidden; }
.altus-faq .accordion-content { max-width: 700px; }

.altus-faq.altus-faq ul.ui.module-accordion > li { border: 1px solid var(--border-card) !important; border-radius: var(--radius-card) !important; }


/* ============================================================
   ALTUS — FAQ accordion refinement (2026-07-22)
   Themify's default accordion-title rendered at 8px 16px,
   inline-flex, align-start (question too close to the top) with
   no indicator. These higher-specificity rules fix the padding,
   vertically centre the question, and add a red chevron.
   Applies to the FAQ page and every course-page FAQ (.altus-faq).
   ============================================================ */
.altus-faq .module-accordion > li > .accordion-title { min-height: 0; }
.altus-faq .module-accordion .accordion-title a.tb_title_accordion,
.altus-faq .accordion-title a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  box-sizing: border-box;
  padding: 20px 24px !important;
  min-height: 44px;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.45;
  color: var(--ink);
  text-decoration: none;
}
.altus-faq .accordion-title a .accordion-title-wrap { flex: 1 1 auto; }
.altus-faq .accordion-title a:hover .accordion-title-wrap { color: var(--altus-red); }
.altus-faq .accordion-title a::after {
  content: "";
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  margin-left: 8px;
  border-right: 2px solid var(--altus-red);
  border-bottom: 2px solid var(--altus-red);
  transform: translateY(-2px) rotate(45deg);
  transition: transform var(--duration-med, 450ms) var(--ease-smooth, ease);
}
.altus-faq .accordion-title a[aria-expanded="true"]::after {
  transform: translateY(2px) rotate(-135deg);
}
.altus-faq .accordion-content {
  padding: 2px 24px 22px !important;
  max-width: 720px;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-body);
}
.altus-faq .accordion-content p { margin: 0 0 12px; }
.altus-faq .accordion-content p:last-child { margin: 0; }
.altus-faq .accordion-content a { color: var(--altus-red); text-decoration: underline; }


/* ---------- Blog post layout (2026-07-22) ---------- */
/* Header meta: inline date above the title, category as a red chip below it */
.single-post .post-date {
  display: block;
  text-align: center;
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin: 0 0 12px;
}
.single-post .post-meta { text-align: center; margin: 16px 0 0; }
.single-post .post-meta .post-category a {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--altus-red);
  text-decoration: none;
  border: 1px solid var(--border-card);
  border-radius: 999px;
  padding: 6px 14px;
  display: inline-block;
  transition: border-color var(--duration-med) var(--ease-smooth);
}
.single-post .post-meta .post-category a:hover { border-color: var(--altus-red); }
.single-post .post-author, .single-post .post-comment { display: none; }

/* Prev/next navigation as cards */
.single-post .post-nav {
  display: flex;
  gap: 16px;
  max-width: 860px;
  margin: 56px auto 0;
  padding: 0;
  border: 0;
}
.single-post .post-nav .prev, .single-post .post-nav .next { flex: 1 1 50%; float: none; width: auto; }
.single-post .post-nav .next { text-align: right; margin-left: auto; }
.single-post .post-nav .arrow { display: none; }
.single-post .post-nav a {
  display: block;
  background: #FFFFFF;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  padding: 18px 22px;
  color: var(--ink);
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  transition: transform var(--duration-med) var(--ease-smooth), box-shadow var(--duration-med) var(--ease-smooth);
}
.single-post .post-nav a:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.single-post .post-nav a::before {
  display: block;
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: 6px;
}
.single-post .post-nav .prev a::before { content: "Previous guide"; }
.single-post .post-nav .next a::before { content: "Next guide"; }

/* More guides (appended after content; supersedes same-category Related Posts) */
.altus-more-guides { margin: 64px 0 8px; }
.altus-mg-heading { text-align: center; margin: 0 0 32px; }
.altus-mg-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.altus-more-guides .post { margin: 0; }
.altus-more-guides .post-image { margin: 0 0 16px; }
.altus-more-guides .post-image img { width: 100%; height: auto; }
.altus-mg-cat {
  display: block;
  padding: 0 20px;
  margin: 0 0 6px;
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--altus-red);
}
.altus-more-guides .post-title { margin: 0 0 8px; }
.altus-more-guides .post-title a { color: var(--ink); text-decoration: none; }
.altus-mg-date { color: var(--text-secondary); font-size: 13px; }
.single-post .related-posts { display: none; }

@media (max-width: 900px) {
  .altus-mg-row { grid-template-columns: 1fr; }
  .single-post .post-nav { flex-direction: column; }
  .single-post .post-nav .next { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .single-post .post-nav a { transition: none; }
  .single-post .post-nav a:hover { transform: none; }
}


/* Guide body links + a11y (2026-07-22, v1.0.5) */
.single-post .post-content-inner a:not([class]) {
  color: #D32B38;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}
.single-post .post-content-inner a:not([class]):hover,
.single-post .post-content-inner a:not([class]):focus-visible {
  color: #A82630;
  text-decoration-thickness: 2px;
}
.altus-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}


/* Header nav current-page state — AA contrast (2026-07-22, v1.0.8) */
#headerwrap #main-nav .current-menu-item > a,
#headerwrap #main-nav .current_page_item > a {
  color: #D32B38;
}


/* Spec-strip label alignment (2026-07-22, v1.0.11): pin the small key labels
   to the bottom of each cell so DURATION / FORMAT / ENTRY REQUIREMENTS /
   ASSESSMENT sit on one line even when the values above them wrap. */
.altus-spec-strip > div {
  display: flex;
  flex-direction: column;
}
.altus-spec-strip .key {
  margin-top: auto;
  padding-top: 4px;
}


/* Accordion outer frame removal (2026-07-22, v1.0.12): Themify draws a faint
   1px box + grey fill on ul.ui.module-accordion around the whole question
   stack — the cards carry their own borders, so the outer frame goes. */
.altus-faq ul.ui.module-accordion {
  border: 0 !important;
  background: transparent !important;
}

/* ==========================================================================
   Native-module course template (test build 2026-07-22, v1.0.13)
   Namespace: altus-nv-*  — used ONLY by the Themify-native rebuild of the
   course template (test page tb-test-multirotor). Sections are real Builder
   rows/columns; text lives in native Text/Buttons/Image/Accordion modules.
   #pagewrap prefix where a rule must beat themify-generated CSS (loads after
   altus.css — see handoff "methods").
   ========================================================================== */

/* ---- section rhythm: row = full-bleed band, row_inner = content column ---- */
#pagewrap .altus-nv-sec > .row_inner {
  max-width: var(--content-max);
  margin: 0 auto;
  width: 100%;
}
.altus-nv-cloud { background: var(--surface-cloud); }
.altus-nv-sec { background: #FFFFFF; padding: 96px 24px; }
.altus-nv-sec.altus-nv-cloud { background: var(--surface-cloud); }
.altus-nv-hero { padding: 24px 24px 0; }
.altus-nv-specRow { padding: 48px 24px 72px; }
.altus-nv-who { padding: 8px 24px 88px; }

/* generic type inside nv sections */
#pagewrap .altus-nv-sec .tb_text_wrap h2 {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 34px);
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 12px 0 16px;
}
#pagewrap .altus-nv-sec .tb_text_wrap p {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--text-body);
  margin: 0 0 14px;
  text-wrap: pretty;
}

/* ---- hero ---- */
#pagewrap .altus-nv-hero > .row_inner { align-items: center; }
#pagewrap .altus-nv-heroCopy h1 {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(34px, 4vw, 52px);
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--ink);
  margin: 16px 0 0;
}
#pagewrap .altus-nv-heroCopy p.altus-officially {
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-secondary);
  margin: 12px 0 0;
}
#pagewrap .altus-nv-heroCopy p.altus-lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--text-body);
  margin: 18px 0 0;
  max-width: 520px;
}
/* CTA pair: two Buttons modules sit inline */
.altus-nv-heroText .module-buttons { display: inline-block; margin: 30px 14px 0 0; }
#pagewrap .module-buttons.altus-btn-primary a.builder_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 14px 24px;
  background: var(--gradient-red);
  color: #FFFFFF !important;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  border: none;
  border-radius: var(--radius-button);
  text-decoration: none !important;
  cursor: pointer;
  box-sizing: border-box;
  transition: filter var(--duration-fast) var(--ease-smooth);
}
#pagewrap .module-buttons.altus-btn-primary a.builder_button:hover { filter: brightness(1.06); }
#pagewrap .module-buttons.altus-btn-secondary a.builder_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 14px 24px;
  background: #FFFFFF;
  color: var(--ink) !important;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-button);
  text-decoration: none !important;
  cursor: pointer;
  box-sizing: border-box;
  transition: background var(--duration-fast) var(--ease-smooth);
}
#pagewrap .module-buttons.altus-btn-secondary a.builder_button:hover { background: var(--surface-cloud); }

/* hero image: framed, fixed aspect band, art-directed crop, flight-path accent */
.altus-nv-heroImg { position: relative; }
#pagewrap .altus-nv-heroImg img {
  height: clamp(300px, 36vw, 460px);
  width: 100%;
  object-fit: cover;
  object-position: 32% 48%;
}
.altus-nv-heroImg::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 260' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='cpg' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='%23F43745'/%3E%3Cstop offset='100%25' stop-color='%23A82630'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M 252 148 C 290 130, 320 112, 344 92' fill='none' opacity='0.9' stroke='url(%23cpg)' stroke-dasharray='6 7' stroke-width='1.5'/%3E%3Ccircle cx='344' cy='92' r='4' fill='%23D32B38'/%3E%3C/svg%3E");
  background-size: 100% 100%;
}

/* ---- narrow prose sections (who / runs) ---- */
.altus-nv-who .tb_text_wrap,
.altus-nv-runs .tb_text_wrap { max-width: 720px; }

/* ---- what you'll learn ---- */
#pagewrap .altus-nv-learn h3 {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--altus-red);
  margin: 0 0 10px;
}
#pagewrap .altus-nv-learn .tb_text_wrap p { font-size: 16px; line-height: 1.65; margin: 0 0 20px; max-width: 640px; }
.altus-nv-theory { margin-top: 12px; }
.altus-nv-practical { margin-top: 44px; }
ul.altus-nv-syllabus {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
  gap: 0 40px;
  max-width: 780px;
}
ul.altus-nv-syllabus li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 11px 2px;
  border-bottom: 1px solid var(--border-card);
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
}
ul.altus-nv-syllabus li .hrs {
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  white-space: nowrap;
}
#pagewrap .altus-nv-learn p.altus-nv-note {
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-secondary);
  margin: 18px 0 0;
  max-width: 640px;
}
/* practical flight-line: CSS counters draw the numbered waypoints */
ol.altus-nv-flightline {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  max-width: 640px;
  counter-reset: nvstage;
}
ol.altus-nv-flightline::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 10px;
  bottom: 30px;
  width: 2px;
  background: var(--gradient-red);
  opacity: 0.65;
}
ol.altus-nv-flightline li {
  position: relative;
  padding: 0 0 30px 52px;
  counter-increment: nvstage;
}
ol.altus-nv-flightline li::before {
  content: counter(nvstage);
  position: absolute;
  left: 0;
  top: 0;
  width: 24px;
  height: 24px;
  border: 2px solid var(--altus-red);
  border-radius: 50%;
  background: var(--surface-cloud);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 10px;
  color: var(--altus-red);
  box-sizing: border-box;
}
ol.altus-nv-flightline li strong {
  display: block;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 17px;
  color: var(--ink);
}
ol.altus-nv-flightline li .chk {
  display: block;
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-top: 5px;
}

/* ---- how training runs / what you leave with ---- */
.altus-nv-leave { margin-top: 40px; }
.altus-nv-leave .tb_text_wrap {
  max-width: 720px;
  padding-top: 28px;
  border-top: 1px solid var(--border-card);
}
#pagewrap .altus-nv-leave .tb_text_wrap h2 {
  font-size: clamp(22px, 2.4vw, 28px);
  margin: 0 0 12px;
}

/* ---- FAQ heading (accordion itself reuses .altus-faq rules) ---- */
.altus-nv-faqHead { max-width: 860px; margin: 0 auto; }
#pagewrap .altus-nv-faqHead h2 { margin: 12px 0 8px; }

/* ---- related courses ---- */
.altus-nv-relHead { margin-bottom: 36px; }
#pagewrap .altus-nv-relHead h2 { margin: 12px 0 0; }
.altus-nv-related .altus-card { display: block; }
.altus-nv-relHeadRow { padding: 96px 24px 0; }
.altus-nv-relCards { padding: 0 24px 96px; }

/* ---- nv fix round 2 (2026-07-22, v1.0.14) ---- */
#pagewrap .altus-nv-heroText .module-buttons {
  display: inline-block;
  width: auto;
  margin: 30px 14px 0 0;
  vertical-align: top;
}
#pagewrap .altus-nv-faqHead {
  display: block;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
}
#pagewrap .altus-nv-relCards .altus-card { display: block; }

/* ---- nv fix round 3 (v1.0.15): CTA pair as ONE Buttons module.
   Themify columns are display:grid — grid items blockify, so two separate
   Buttons modules can never sit inline. One module, two buttons; first =
   primary, last = secondary. ---- */
#pagewrap .module-buttons.altus-nv-ctas { margin-top: 30px; }
#pagewrap .altus-nv-ctas .module-buttons-item { margin: 0 14px 8px 0; }
#pagewrap .altus-nv-ctas .module-buttons-item a.builder_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 14px 24px;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  border-radius: var(--radius-button);
  text-decoration: none !important;
  cursor: pointer;
  box-sizing: border-box;
}
#pagewrap .altus-nv-ctas .module-buttons-item:first-child a.builder_button {
  background: var(--gradient-red);
  color: #FFFFFF !important;
  border: none;
  transition: filter var(--duration-fast) var(--ease-smooth);
}
#pagewrap .altus-nv-ctas .module-buttons-item:first-child a.builder_button:hover { filter: brightness(1.06); }
#pagewrap .altus-nv-ctas .module-buttons-item:last-child a.builder_button {
  background: #FFFFFF;
  color: var(--ink) !important;
  border: 1px solid var(--border-card);
  transition: background var(--duration-fast) var(--ease-smooth);
}
#pagewrap .altus-nv-ctas .module-buttons-item:last-child a.builder_button:hover { background: var(--surface-cloud); }

/* ---- nv fix round 4 (v1.0.16): flight-path accent must paint ABOVE the
   lazy-loaded image (which forms its own stacking context mid-transition) ---- */
.altus-nv-heroImg::after { z-index: 2; }

/* ---- nv fix round 5 (v1.0.17): Themify suppresses module ::after boxes
   (lazy-load machinery), so the flight-path accent hangs off the hero image
   COLUMN instead of the Image module ---- */
#pagewrap .altus-nv-hero .module_column:last-child { position: relative; }
#pagewrap .altus-nv-hero .module_column:last-child::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  pointer-events: none;
  z-index: 2;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 260' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='cpg' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='%23F43745'/%3E%3Cstop offset='100%25' stop-color='%23A82630'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M 252 148 C 290 130, 320 112, 344 92' fill='none' opacity='0.9' stroke='url(%23cpg)' stroke-dasharray='6 7' stroke-width='1.5'/%3E%3Ccircle cx='344' cy='92' r='4' fill='%23D32B38'/%3E%3C/svg%3E");
  background-size: 100% 100%;
}

/* ---- nv fix round 6 (v1.0.18): EDIT-SAFE native cards.
   Themify's inline editor rewrites anchors inside Text-module content
   (href becomes data-tb-inline-nav) and never restores them on save, so a
   card can no longer be an <a> wrapper living in a Text module. New card
   pattern: card = COLUMN (custom_css_column "altus-card"), Image module
   (css "card-media", link set on the MODULE SETTING - edit-safe) + Text
   module with NO anchors. Whole-card click = stretched link grown from the
   image anchor. ---- */
#pagewrap .module_column.altus-card { position: relative; cursor: pointer; }
#pagewrap .module_column.altus-card .module { position: static; }
#pagewrap .module_column.altus-card .module-image.card-media { margin: 0; }
#pagewrap .altus-card .card-media a { display: block; height: 100%; }
#pagewrap .module_column.altus-card .card-media a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
#pagewrap .module_column.altus-card .card-body { padding: 20px 22px 16px; }

/* ---- nv fix round 7 (v1.0.19): the Image module's .image-wrap is
   position:relative (tf_rel), which trapped the stretched card link at the
   image box. Static inside cards so the link's ::after grows to the whole
   column. ---- */
#pagewrap .module_column.altus-card .card-media .image-wrap { position: static; }

/* ---- nv fix round 8 (v1.0.20): rise-animation elements must stay visible
   in the Builder. The builder re-renders modules AFTER altus-motion.js has
   set up its IntersectionObserver, so any [data-rise] element re-rendered
   by the builder is hidden (opacity 0) and never observed. Guard: while
   editing, everything is simply visible. Fixes the "spec strip text
   disappears when Builder is on" report (and the quote-row aside on every
   live page's builder view). ---- */
body.themify_builder_active [data-rise] {
  opacity: 1 !important;
  transform: none !important;
}


/* ===== v1.0.21 — leave-with certificate list (native course pages) ===== */
#pagewrap .altus-nv-leave ul.altus-nv-leaveList{list-style:none;margin:18px 0 0;padding:0}
#pagewrap .altus-nv-leave .altus-nv-leaveList li{position:relative;padding:6px 0 6px 26px;color:#3D434C;font-weight:500}
#pagewrap .altus-nv-leave .altus-nv-leaveList li::before{content:"";position:absolute;left:0;top:1.05em;width:14px;height:2px;border-radius:1px;background:linear-gradient(90deg,#F43745,#A82630)}

/* v1.0.22 — leave-with add-on note */
#pagewrap .altus-nv-leave .altus-nv-leaveNote{margin-top:16px;font-size:14px;color:#6A7078}

/* v1.0.23 — venue-card map links to AA red (contact/about static cards) */
#pagewrap .altus-card--static a{color:#D32B38}

/* v1.0.24 — in-prose links in builder text modules to AA red + underline (FAQ answers, intros) */
#pagewrap .tb_text_wrap a:not([class]){color:#D32B38;font-weight:500;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
#pagewrap .tb_text_wrap a:not([class]):hover,#pagewrap .tb_text_wrap a:not([class]):focus-visible{color:#A82630;text-decoration-thickness:2px}


/* ---------- v1.0.25 — native-conversion helpers: About/Resources/Contact/FAQ (2026-07-23) ----------
   Plain-text → native module conversion round 2: centered closing CTA band,
   venue cards (no image), row rhythm helpers. */
#pagewrap .altus-nv-ctaBand { text-align: center; }
#pagewrap .altus-nv-ctaBand h2 { font-size: clamp(28px, 3.2vw, 38px); margin: 0 0 12px; }
#pagewrap .altus-nv-ctaBand p { font-family: var(--font-body); font-size: 17px; line-height: 1.65; color: var(--text-body); margin: 0; }
#pagewrap .module-buttons.altus-nv-ctasCenter { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 30px; }
#pagewrap .altus-nv-ctasCenter .module-buttons-item { margin: 0; }
#pagewrap .module_column.altus-nv-venue .card-body { padding: 32px; }
#pagewrap .altus-nv-venue .altus-eyebrow { margin: 0 0 14px; }
#pagewrap .altus-nv-venue h3 { font-size: 21px; margin: 0 0 10px; }
#pagewrap .altus-nv-venue .card-desc { margin: 0; line-height: 1.7; }
#pagewrap .altus-nv-pb0 { padding-bottom: 0; }
#pagewrap .altus-nv-trustRow { padding: 0 24px 96px; }


/* ---------- v1.0.26 — solid bg fallback under gradient CTAs (2026-07-23) ----------
   background: var(--gradient-red) resets background-color to transparent, so axe
   has no computable colour under the white label when the button sits on cloud.
   A solid brand-red layer under the gradient is visually inert (gradient paints
   on top) and gives 7.0:1 white-on-#A82630 for the checker + a real fallback if
   the gradient ever fails to paint. */
#pagewrap .altus-nv-ctas .module-buttons-item:first-child a.builder_button { background-color: #A82630; }
.altus-btn-primary a, a.altus-btn-primary, button.altus-btn-primary { background-color: #A82630; }


/* ---------- v1.0.27 — Resources native conversion: featured card row + article-card grid (2026-07-23) ---------- */
/* featured article: the whole ROW INNER is the card box; image col + body col; stretched link from the Image module */
#pagewrap .altus-nv-featRow { padding: 8px 24px 48px; }
#pagewrap .altus-nv-featRow > .row_inner { position: relative; max-width: var(--content-max); margin: 0 auto; background: #FFFFFF; border: 1px solid var(--border-card); border-radius: var(--radius-card); box-shadow: var(--shadow-card); overflow: hidden; transition: box-shadow var(--duration-fast) var(--ease-smooth), transform var(--duration-fast) var(--ease-smooth); }
#pagewrap .altus-nv-featRow > .row_inner:hover, #pagewrap .altus-nv-featRow > .row_inner:focus-within { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
#pagewrap .altus-nv-featRow .module_column, #pagewrap .altus-nv-featRow .module, #pagewrap .altus-nv-featRow .image-wrap { position: static; }
#pagewrap .altus-nv-featRow .module-image.card-media { margin: 0; height: 100%; min-height: 280px; }
#pagewrap .altus-nv-featRow .card-media a { display: block; height: 100%; }
#pagewrap .altus-nv-featRow .card-media a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
#pagewrap .altus-nv-featRow .card-media img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; display: block; }
#pagewrap .altus-nv-featRow .feat-body { padding: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; justify-content: center; height: 100%; }
#pagewrap .altus-nv-featRow .feat-body .altus-eyebrow { margin: 0 0 16px; }
#pagewrap .altus-nv-featRow .feat-body h2 { font-size: clamp(24px, 2.8vw, 34px); line-height: 1.2; margin: 0; }
#pagewrap .altus-nv-featRow .feat-desc { font-family: var(--font-body); font-size: 16px; line-height: 1.65; color: var(--text-body); margin: 16px 0 0; max-width: 480px; }
#pagewrap .feat-meta, #pagewrap .card-meta { font-family: var(--font-label); font-weight: 600; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-secondary); }
#pagewrap .altus-nv-featRow .feat-meta { margin: 22px 0 0; }
/* red dash divider */
#pagewrap .altus-dash { display: block; height: 3px; width: 56px; background: var(--gradient-red); border-radius: 2px; margin-top: 12px; }
#pagewrap .altus-dash--wide { width: 72px; margin-top: 14px; }
/* article grid cards (reuse altus-card column mechanics; taller media, bottom-pinned meta) */
#pagewrap .altus-nv-artCard .card-media { height: 200px; }
#pagewrap .module_column.altus-nv-artCard { grid-template-rows: auto 1fr; }
#pagewrap .altus-nv-artCard .module-text { height: 100%; }
#pagewrap .altus-nv-artCard .module-text .tb_text_wrap { height: 100%; display: flex; flex-direction: column; }
#pagewrap .module_column.altus-nv-artCard .card-body { flex: 1; display: flex; flex-direction: column; padding: 26px 26px 24px; }
#pagewrap .altus-nv-artCard .card-body .altus-eyebrow { margin: 0 0 10px; }
#pagewrap .altus-nv-artCard h3 { font-size: 19px; line-height: 1.3; margin: 0; color: var(--ink); }
#pagewrap .altus-nv-artCard .card-desc { font-size: 15px; line-height: 1.65; margin: 12px 0 16px; }
#pagewrap .altus-nv-artCard .card-meta { margin: auto 0 0; }
/* second cards row spacing: grid gap between stacked card rows */
#pagewrap .altus-nv-gridMid { padding-bottom: 28px; }


/* ---------- v1.0.28 — band rhythm parity for converted Resources rows (2026-07-23) ---------- */
#pagewrap .altus-nv-gridHead { padding: 72px 24px 0; }
#pagewrap .altus-nv-ctaRow { padding: 88px 24px; }


/* ---------- v1.0.29 — featured-card image fills full card height (2026-07-23) ----------
   The image column is a grid item; the module inside sizes to content, leaving a
   white strip under the photo. Flex the column so the Image module stretches to
   the full (body-driven) card height; keep min-height for mobile stacking. */
#pagewrap .altus-nv-featRow .module_column:first-child { display: flex; }
#pagewrap .altus-nv-featRow .module_column:first-child .module { flex: 1; width: 100%; }
#pagewrap .altus-nv-featRow .module-image.card-media { height: auto; min-height: 280px; }
#pagewrap .altus-nv-featRow .card-media .image-wrap { height: 100%; }


/* ---------- v1.0.30 — Contact native conversion: reach-us card, venue cards, quote heading, speak-to-us (2026-07-23) ---------- */
/* text-style link buttons (tel / mailto / portal links moved onto Buttons module settings) */
#pagewrap .module-buttons.altus-nv-linkBtn { margin: 0; }
#pagewrap .altus-nv-linkBtn .module-buttons-item { margin: 0; }
#pagewrap .altus-nv-linkBtn .module-buttons-item a.builder_button { background: none; border: none; padding: 0; min-height: 44px; border-radius: 0; }
#pagewrap .altus-nv-telBtn a.builder_button { font-family: var(--font-heading); font-weight: 700; font-size: 24px; color: var(--ink) !important; }
#pagewrap .module-buttons.altus-nv-telBtn { margin: 0 0 14px; }
#pagewrap .altus-nv-mailBtn a.builder_button { font-family: var(--font-heading); font-weight: 600; font-size: 18px; color: var(--ink) !important; }
#pagewrap .module-buttons.altus-nv-mailBtn { margin: 0 0 18px; }
/* reach-us card (Contact hero right column) */
#pagewrap .module_column.altus-nv-reach { padding: 32px; }
#pagewrap .altus-nv-reach .altus-eyebrow { margin: 0 0 18px; }
#pagewrap .reach-label { font-family: var(--font-body); font-size: 14px; color: var(--text-secondary); margin: 0 0 4px; }
#pagewrap .altus-nv-mapBtn a.builder_button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 14px 24px; background: #FFFFFF; color: var(--ink) !important; font-family: var(--font-heading); font-weight: 600; font-size: 15px; line-height: 1; border: 1px solid var(--border-card); border-radius: 8px; }
#pagewrap .altus-nv-mapBtn a.builder_button:hover { border-color: var(--ink); }
/* venue cards, contact variant (multi-module card: padding on the column) */
#pagewrap .module_column.altus-nv-venueC { padding: 32px; }
#pagewrap .altus-nv-venueC .altus-eyebrow { margin: 0 0 14px; }
#pagewrap .altus-nv-venueC h3 { font-size: 21px; margin: 0 0 10px; }
#pagewrap .venue-addr { font-family: var(--font-body); font-size: 14px; line-height: 1.6; color: var(--text-secondary); margin: 0 0 12px; }
#pagewrap .altus-nv-venueC .card-desc { margin: 0 0 12px; line-height: 1.7; }
#pagewrap .altus-nv-mapLink .module-buttons-item a.builder_button { font-family: var(--font-body); font-weight: 500; font-size: 15px; color: #D32B38 !important; text-decoration: underline; text-underline-offset: 2px; }
/* quote-band heading + jump anchor (native Text replaces the plain-text block) */
#pagewrap .altus-jump { position: relative; top: -140px; display: block; visibility: hidden; }
#pagewrap .altus-nv-quoteHead h2 { font-weight: 700; font-size: clamp(28px, 3vw, 36px); letter-spacing: -0.02em; margin: 0 0 8px; }
#pagewrap .altus-nv-quoteHead p { font-family: var(--font-body); font-size: 16px; line-height: 1.65; color: var(--text-body); margin: 0 0 28px; }
/* speak-to-us block */
#pagewrap .speak-eb1 { margin-bottom: 14px; }
#pagewrap .speak-eb2 { margin-bottom: 10px; }
#pagewrap .altus-nv-speakTel a.builder_button { font-family: var(--font-heading); font-weight: 700; font-size: 22px; color: var(--ink) !important; }
#pagewrap .module-buttons.altus-nv-speakTel { margin: 0 0 8px; }
#pagewrap .speak-addr { font-family: var(--font-body); font-size: 15px; line-height: 1.7; color: var(--text-body); margin: 0 0 24px; }
#pagewrap .altus-nv-speakPortal a.builder_button { font-family: var(--font-body); font-weight: 500; font-size: 15px; color: #D32B38 !important; text-decoration: underline; text-underline-offset: 2px; }


/* ---------- v1.0.31 — FAQ native conversion helpers (2026-07-23) ---------- */
#pagewrap .altus-nv-mb24 { margin-bottom: 24px; }
#pagewrap .altus-nv-faqHead h2 { font-size: clamp(24px, 2.8vw, 32px); margin: 12px 0 0; }
#pagewrap .module-buttons.altus-nv-mt0 { margin-top: 0; }


/* ---------- v1.0.32 — accordion polish, Andre 2026-07-23 (course pages + FAQ page) ----------
   1) 20px top spacing above the answer text (was 2px).
   2) Kill Themify's default inset box-shadow on .accordion-content — its blur
      edge painted a thin grey vertical line at the content box's right
      boundary when expanded (content is max-width 720px inside the wider card).
   3) Accordion title bar white instead of Themify's #F7F7F7 grey. */
#pagewrap .altus-faq .accordion-content { padding: 20px 24px 22px !important; box-shadow: none; }
#pagewrap .altus-faq .accordion-title, #pagewrap .altus-faq .accordion-title a { background: #FFFFFF; }


/* ---------- v1.0.33 — accordion animation fix (2026-07-23) ----------
   The v1.0.32 20px/22px vertical padding sat on .accordion-content itself,
   but that padding is pinned by !important while Themify's slide animates
   the box — so the panel slid to 42px and SNAPPED shut (and open). Vertical
   spacing now lives INSIDE the animated box (on the answer subrow), so the
   slide runs 0 → full height with no jump. Horizontal padding stays on the
   container (not animated). */
#pagewrap .altus-faq .accordion-content { padding: 0 24px !important; }
#pagewrap .altus-faq .accordion-content > *:first-child { padding-top: 20px; }
#pagewrap .altus-faq .accordion-content > *:last-child { padding-bottom: 22px; }


/* ---------- v1.0.34 — accordion polish applied SITEWIDE (2026-07-23) ----------
   Andre: apply to all pages with accordions. Today only the 11 course pages
   and the FAQ page have accordions (all inside .altus-faq rows, already
   covered) — these generic selectors make the same treatment automatic for
   ANY future accordion module, whatever row it sits in: white title bar,
   no inset shadow, 20px/22px vertical spacing INSIDE the animated box
   (never on .accordion-content — it cannot animate, see v1.0.33). */
#pagewrap .module-accordion .accordion-content { padding: 0 24px !important; box-shadow: none; }
#pagewrap .module-accordion .accordion-content > *:first-child { padding-top: 20px; }
#pagewrap .module-accordion .accordion-content > *:last-child { padding-bottom: 22px; }
#pagewrap .module-accordion .accordion-title, #pagewrap .module-accordion .accordion-title a { background: #FFFFFF; }


/* ---------- v1.0.35 — accordion spacing reduced for Andre's review (2026-07-23) ----------
   With the inset shadow gone the 20/22 spacing read too airy. Trial values:
   12px top / 16px bottom, inside the animated box as per the v1.0.33 rule. */
#pagewrap .module-accordion .accordion-content > *:first-child { padding-top: 12px; }
#pagewrap .module-accordion .accordion-content > *:last-child { padding-bottom: 16px; }


/* ---------- v1.0.36 — divider line between question and answer (2026-07-23) ----------
   Hairline under the title, only while the item is OPEN (no stray line on
   collapsed items). Lives on the title, not the animated content box, so
   the slide stays smooth. Card-border grey to match the system. */
#pagewrap .module-accordion li.current .accordion-title { border-bottom: 1px solid var(--border-card); }


/* ---------- v1.0.37 — focus outlines: mouse clicks clean, keyboard keeps a ring (2026-07-23) ----------
   Clicking an accordion title flashed the UA's heavy black focus ring, then
   left the theme's dotted outline sitting on the divider. Removing outlines
   entirely would fail the brand a11y floor (visible keyboard focus), so:
   mouse/touch focus (:focus without :focus-visible) shows nothing; keyboard
   focus (:focus-visible) gets the brand red ring. Form fields keep their own
   existing focus styling — links/buttons only here. */
#pagewrap a:focus:not(:focus-visible), #pagewrap button:focus:not(:focus-visible), #pagewrap [tabindex]:focus:not(:focus-visible) { outline: none; }
#pagewrap a:focus-visible, #pagewrap button:focus-visible { outline: 2px solid #D32B38; outline-offset: 2px; }


/* ---------- v1.0.38 — kill the dark divider flash on accordion open (2026-07-23) ----------
   Theme puts "transition: ... border 0.3s ..." on .accordion-title and its
   collapsed border is "0 none rgb(51,51,51)" — so the v1.0.36 divider
   animated width 0→1px AND colour #333→#E7E9ED, reading as a thick black
   line for a split second (Andre's video). Base state now carries a constant
   1px TRANSPARENT border (no width change, no title-height shift) and only
   the colour swaps on open; border is dropped from the transition list so
   the swap is instant. Colour/background hover transitions kept. */
#pagewrap .module-accordion .accordion-title { border-bottom: 1px solid transparent; transition: color 0.3s, background-color 0.3s; }
#pagewrap .module-accordion li.current .accordion-title { border-bottom-color: var(--border-card); }
