
/* ============================================================
   LIGHTHOUSE FINANCIAL STRATEGIES
   Original Navy & Gold Palette — Playfair Display + Inter
   ============================================================ */
:root {
  --white:       #FFFFFF;
  --off-white:   #F8F9FC;
  --light-gray:  #EEF1F7;
  --mid-gray:    #DDE3EE;
  --border:      #C8D0E0;
  --text:        #1A1C22;
  --text-md:     #2E3240;
  --text-lt:     #5A6070;
  --text-xlt:    #8A90A0;
  /* Navy / Gold palette */
  --navy:        #0D2240;
  --navy-lt:     #1A3560;
  --navy-dk:     #081428;
  --gold:        #F2B931;
  --gold-lt:     #F7C95F;
  --gold-dk:     #8A5C12;
  --gold-bg:     #FDF9F0;
  /* Map old burgundy vars to navy for compatibility */
  --burgundy:    #0D2240;
  --burgundy-lt: #1A3560;
  --burgundy-dk: #081428;
  --burgundy-bg: #F0F4FA;
  --charcoal:    #0D2240;
  --charcoal-md: #1A2A40;
  --section-pad: 96px 0;
  --font-serif:  'Playfair Display', Georgia, serif;
  --font-sans:   'Inter', system-ui, sans-serif;
  --radius:      2px;
  --max-w:       1160px;
}

/* Retirement Health Scorecard exit-intent dialog */
.exit-popup[hidden] { display: none !important; }
.exit-popup {
  position: fixed;
  inset: 0;
  z-index: 200000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(6, 18, 36, .78);
  overflow-y: auto;
}
.exit-popup-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(400px, .85fr);
  width: min(1160px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: #fff;
  border: 1px solid rgba(200, 155, 55, .55);
  border-radius: 8px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .38);
}
.exit-popup-close {
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: rgba(13, 34, 64, .94);
  color: #fff;
  font: 400 31px/1 var(--font-sans);
  cursor: pointer;
}
.exit-popup-close:hover,
.exit-popup-close:focus-visible { background: var(--gold-dk); color: #fff; }
.exit-popup-media { min-height: 100%; background: var(--navy); }
.exit-popup-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 640px;
  object-fit: contain;
  object-position: center;
}
.exit-popup-content { padding: 38px 36px 30px; }
.exit-popup-eyebrow {
  display: block;
  margin-bottom: 10px;
  color: var(--gold-dk);
  font: 700 12px/1.2 var(--font-sans);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.exit-popup-content h2 {
  margin: 0 44px 16px 0;
  color: var(--navy);
  font-size: clamp(30px, 3vw, 39px);
  line-height: 1.08;
}
.exit-popup-content > p { margin: 0 0 12px; font-size: 14px; line-height: 1.5; }
.exit-popup-form { margin-top: 17px; }
.exit-popup-form label {
  display: block;
  margin: 12px 0 6px;
  color: var(--navy);
  font: 700 13px/1.3 var(--font-sans);
}
.exit-popup-form input {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #9aa5b3;
  border-radius: 3px;
  background: #fff;
  color: var(--navy);
  font: 400 16px/1.3 var(--font-sans);
}
.exit-popup-form input:focus-visible { outline: 3px solid rgba(200, 155, 55, .55); outline-offset: 2px; }
.exit-popup-submit { width: 100%; margin-top: 16px; }
.exit-popup-disclosure { margin: 13px 0 0 !important; font-size: 11px !important; line-height: 1.5 !important; color: #4e5865; }
.exit-popup-disclosure a { font-weight: 700; }
.exit-popup-status { margin: 10px 0 0 !important; color: var(--navy); font-weight: 700; }
body.exit-popup-open { overflow: hidden; }
@media (max-width: 800px) {
  .exit-popup { padding: 12px; }
  .exit-popup-panel { display: block; max-height: calc(100vh - 24px); }
  .exit-popup-media img { height: 225px; min-height: 0; }
  .exit-popup-content { padding: 30px 24px 26px; }
  .exit-popup-content h2 { margin-right: 34px; font-size: 31px; }
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  font-size: 20px;
  line-height: 1.8;
  color: var(--text);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--burgundy); text-decoration: none; transition: color 0.18s; }
a:hover { color: var(--burgundy-lt); }
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; }

/* ── TYPE ── */
.eyebrow {
  font-family: var(--font-sans);
  font-size: 11px; font-weight: 600;
  letter-spacing: 3px; text-transform: uppercase;
  color: var(--burgundy); margin-bottom: 18px; display: block;
}
h1, h2, h3 {
  font-family: var(--font-serif);
  line-height: 1.2; color: var(--charcoal);
}
h4 { font-family: var(--font-sans); font-weight: 600; line-height: 1.3; color: var(--charcoal); }
h1 { font-size: clamp(1.9rem, 4vw, 3.0rem); font-weight: 700; letter-spacing: -0.5px; }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight: 700; }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.8rem); font-weight: 400; font-style: normal; }
h4 { font-size: 1.05rem; }
p { margin-bottom: 1.2em; color: var(--text-md); }
p:last-child { margin-bottom: 0; }

.rule {
  width: 40px; height: 3px;
  background: var(--gold);
  margin: 20px 0 40px; display: block;
}
.rule-center { margin: 20px auto 40px; }

/* ── BUTTONS ── */
.btn {
  display: inline-block;
  font-family: var(--font-sans); font-weight: 600;
  font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase;
  padding: 15px 36px; border: 2px solid transparent;
  cursor: pointer; transition: all 0.2s; text-align: center;
  border-radius: var(--radius);
}
.btn-primary { background: var(--gold); color: var(--white); border-color: var(--burgundy); }
.btn-primary:hover { background: var(--gold-lt); border-color: var(--gold-lt); color: var(--white); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(46,74,107,0.28); }
.btn-outline { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.65); font-weight: 600; }
.btn-outline:hover { border-color: var(--white); background: rgba(255,255,255,0.10); color: var(--white); }
.btn-outline-dark { background: transparent; color: var(--charcoal); border-color: var(--charcoal); }
.btn-outline-dark:hover { background: var(--charcoal); color: var(--white); }

/* ── NAV ── */
#main-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: linear-gradient(to right,
    #ffffff 0%, #ffffff 22%,
    #b8cce0 34%, #6888aa 46%,
    #2a3e56 58%, var(--navy-dk) 72%, #141E2C 100%);
  box-shadow: 0 1px 0 rgba(0,0,0,0.08), 0 4px 24px rgba(0,0,0,0.12);
}
.nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0; height: 108px; max-width: 100%;
}
.nav-logo-img {
  display: flex; align-items: center; flex-shrink: 0;
  height: 108px; padding: 0 20px 0 0;
  background: #ffffff; align-self: stretch;
  text-decoration: none; overflow: hidden;
}
.nav-logo-img img { height: 98px; width: auto; max-width: 410px; object-fit: contain; }
.nav-links {
  display: flex; align-items: center; gap: 0;
  list-style: none; padding-right: 32px; margin-left: auto;
}
.nav-links li a {
  font-family: var(--font-sans); font-size: 14px; font-weight: 400;
  color: rgba(255,255,255,0.94); padding: 8px 12px;
  transition: color 0.18s; letter-spacing: 0.2px;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.80), 0 0 8px rgba(0,0,0,0.60);
}
.nav-links li a:hover { color: #ffffff; }
.nav-cta {
  background: var(--gold) !important;
  color: var(--white) !important;
  font-weight: 600 !important; font-size: 12px !important;
  letter-spacing: 1px ; padding: 10px 20px !important;
  border-radius: var(--radius); margin-left: 8px;
}
.nav-cta:hover { background: var(--gold-dk) !important; color: var(--white) !important; }
.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; margin-right: 24px; }
.hamburger span { display: block; width: 24px; height: 2px; background: var(--white); }
/* ---- Nav grouped dropdowns (v29) ---- */
.has-dropdown { position: relative; }
.nav-group {
  font-family: var(--font-sans); font-size: 14px; font-weight: 400;
  color: rgba(255,255,255,0.94); padding: 8px 12px; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px; letter-spacing: 0.2px;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.80), 0 0 8px rgba(0,0,0,0.60);
}
.nav-group:hover, .nav-group:focus { color: #ffffff; outline: none; }
.nav-group .caret { font-size: 10px; opacity: 0.85; }
.dropdown-menu {
  display: none; position: absolute; top: 100%; left: 0;
  background: var(--charcoal); min-width: 210px; padding: 8px 0; margin: 0;
  list-style: none; border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.38);
  border: 1px solid rgba(255,255,255,0.06); z-index: 1200;
}
.dropdown-menu li { margin: 0; }
.dropdown-menu li a {
  display: block; padding: 10px 18px; font-size: 14px;
  color: rgba(255,255,255,0.90); white-space: nowrap; text-shadow: none;
}
.dropdown-menu li a:hover { background: rgba(255,255,255,0.09); color: #ffffff; }
.has-dropdown:hover > .dropdown-menu,
.has-dropdown:focus-within > .dropdown-menu { display: block; }

/* ── HERO ── */
#home {
  min-height: calc(100vh - 96px); padding-top: 0;
  display: flex; align-items: center;
  position: relative; overflow: hidden;
}
.hero-photo-bg {
  position: absolute; inset: 0;
  background-image: url("images/img-639065bb2654.webp");
  background-size: 150% auto;
  background-position: left center;
  animation: hero-pan 28s ease-in-out infinite alternate;
  will-change: background-position;
}
@keyframes hero-pan {
  0%   { background-position: left center; }
  100% { background-position: right center; }
}
.hero-photo-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to right,
    rgba(8,20,40,0.58) 0%,
    rgba(13,34,64,0.50) 35%,
    rgba(13,34,64,0.30) 65%,
    rgba(13,34,64,0.08) 100%
  );
}
.hero-bg-lines {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(13,34,64,0.72) 0%, rgba(26,53,96,0.65) 60%, rgba(13,34,64,0.60) 100%);
}
.hero-accent-bar {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 4px; background: var(--gold);
}
.hero-content {
  position: relative; z-index: 2;
  max-width: 900px; padding: 28px 36px 26px;
}
.hero-content .eyebrow { color: rgba(255,255,255,0.90); margin-bottom: 12px; }
.hero-content h1 { color: var(--white); margin-bottom: 12px; letter-spacing: -0.5px; }
.hero-content h1 em { color:var(--gold); font-style: normal; }
.hero-lead {
  font-size: 1.38rem; color: rgba(255,255,255,0.94);
  max-width: 720px; margin-bottom: 20px; line-height: 1.52;
  font-family: var(--font-sans); font-weight: 300;
}
.hero-ctas {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 14px;
  margin-bottom: 24px;
}
.hero-ctas .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  white-space: nowrap;
}
.hero-ctas .btn-primary { min-width: 345px; }
.btn-hero-outline {
  background: transparent; color: var(--white);
  border-color: rgba(255,255,255,0.78);
  min-width: 330px;
  text-shadow: 1px 1px 3px rgba(8,20,40,.9);
}
.btn-hero-outline:hover {
  border-color: var(--white); background: rgba(255,255,255,0.12); color: var(--white);
}
.hero-stats {
  display: flex; gap: 0; flex-wrap: nowrap; align-items:center;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.08);
  justify-content: flex-start;
  width: 100%;
}
.stat { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.stat-num {
  font-family: var(--font-serif); font-size: 2.4rem;
  color:var(--gold); font-weight: 700; line-height: 1;
}
.stat-label {
  font-family: var(--font-sans); font-size: 12px; font-weight: 400;
  color: rgba(255,255,255,0.80); letter-spacing: 0.5px;
  text-transform: uppercase; line-height: 1.4;
}

/* ── WHO WE WORK WITH ── */
#who-we-work-with { padding: var(--section-pad); background: var(--white); }
.identity-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; margin-top: 48px;
  border: 1px solid var(--border); background: var(--border);
}
.identity-card {
  background: var(--white); padding: 36px 28px;
  transition: background 0.2s;
}
.identity-card:hover { background: var(--burgundy-bg); }
.id-num {
  font-family: var(--font-serif); font-size: 1.8rem;
  color: #5A6070; opacity: 1;
  line-height: 1; margin-bottom: 12px; font-style: italic;
}
.identity-card h4 { color: var(--charcoal); margin-bottom: 10px; font-size: 1rem; line-height: 1.4; }
.identity-card p { font-size: 17px; color: var(--text-lt); margin: 0; }

/* ── PROBLEM ── */
#problem { padding: var(--section-pad); background: var(--charcoal); }
#problem .eyebrow { color:var(--gold); }
#problem h2 { color: var(--white); }
#problem .rule { background: var(--gold); }
.problem-lead { font-family: var(--font-serif); font-style: normal; font-size: 1.1rem; color: rgba(255,255,255,0.90); max-width: 660px; margin-bottom: 0; }
.pain-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; margin-top: 48px;
  background: rgba(255,255,255,0.06);
}
.pain-card {
  padding: 32px 28px;
  background: rgba(255,255,255,0.03);
  border-top: 2px solid transparent;
  transition: border-color 0.2s, background 0.2s;
}
.pain-card:hover { border-top-color: var(--burgundy); background: rgba(46,74,107,0.08); }
.pain-card h4 { color: rgba(255,255,255,0.96); margin-bottom: 10px; font-size: 0.95rem; font-family: var(--font-sans); font-weight: 600; letter-spacing: 0.2px; }
.pain-card p { color: rgba(255,255,255,0.92); font-size: 17px; margin: 0; }
.problem-quote {
  margin-top: 56px; padding: 36px 44px;
  border-left: 3px solid var(--burgundy);
  background: rgba(46,74,107,0.08);
}
.problem-quote p {
  font-family: var(--font-sans); font-style: normal; font-weight: 500;
  font-size: 1.05rem; color: rgba(255,255,255,0.95); margin: 0;
}

/* ── BUCKET STRATEGY ── */
#bucket-strategy { padding: var(--section-pad); background: var(--off-white); }
.bucket-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 72px; align-items: start; margin-top: 48px;
}
.bucket-rule-block {
  border-left: 3px solid var(--burgundy);
  padding: 20px 24px; margin: 32px 0;
  background: var(--burgundy-bg);
}
.bucket-rule-block p {
  font-family: var(--font-serif); font-style: italic;
  font-size: 1.1rem; color: var(--burgundy-dk); margin: 0;
}
.analogy-block {
  background: var(--white); border: 1px solid var(--border);
  padding: 24px 28px; margin-top: 20px;
}
.analogy-label {
  font-family: var(--font-sans); font-size: 10px; font-weight: 700;
  letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--text-xlt); margin-bottom: 10px; display: block;
}
.analogy-block p { font-size: 18px; color: var(--text-lt); margin: 0; }
.bucket-img-wrap { position: sticky; top: 126px; }
.bucket-img-wrap img { border: 1px solid var(--border); }
.bucket-img-cap {
  font-size: 11px; color: var(--text-xlt); margin-top: 10px;
  text-align: center; line-height: 1.5; font-style: italic;
}
.bucket-trio {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 0; margin-top: 56px; border: 1px solid var(--border);
}
.bucket-trio-item {
  padding: 32px 24px; text-align: center;
  border-right: 1px solid var(--border);
}
.bucket-trio-item:last-child { border-right: none; }
.bucket-trio-item .ico { font-size: 1.6rem; margin-bottom: 14px; }
.bucket-trio-item h4 { font-size: 0.95rem; margin-bottom: 8px; }
.bucket-trio-item p { font-size: 17px; color: var(--text-lt); margin: 0; }

.bucket-video-section {
  margin-top: 46px;
  padding: 38px 42px;
  background: var(--white);
  border: 1px solid var(--border);
  border-top: 3px solid var(--gold);
  box-shadow: 0 10px 30px rgba(8,20,40,0.06);
}
.bucket-video-section h3 {
  margin-top: 0;
  margin-bottom: 16px;
  color: var(--navy);
}
.bucket-video-section p {
  max-width: 900px;
}
.bucket-video-kicker {
  font-family: var(--font-sans);
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin: 0 0 12px !important;
}
.bucket-video-embed {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 28px auto 14px;
  aspect-ratio: 16 / 9;
  background: var(--navy);
  border: 1px solid var(--border);
  box-shadow: 0 8px 24px rgba(8,20,40,0.14);
  overflow: hidden;
}
.bucket-video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.bucket-video-disclosure {
  max-width: 900px;
  margin: 14px auto 0 !important;
  color: var(--text-xlt) !important;
  font-size: 12px !important;
  line-height: 1.55 ;
  font-style: italic;
}
@media(max-width:760px){
  .bucket-video-section{padding:28px 22px;}
  .bucket-video-kicker{font-size:11px !important;letter-spacing:1.2px;}
}

/* ── BEACON 360 ── */
#beacon-360 { padding: var(--section-pad); background: var(--white); }
.beacon-grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 0; margin-top: 48px; border: 1px solid var(--border);
}
.beacon-col {
  padding: 36px 24px; border-right: 1px solid var(--border);
  position: relative;
}
.beacon-col:last-child { border-right: none; }
.beacon-col:first-child { border-top: 3px solid var(--burgundy); }
.beacon-col:nth-child(2) { border-top: 3px solid var(--burgundy); background: var(--off-white); }
.beacon-col:nth-child(3) { border-top: 3px solid var(--burgundy); }
.beacon-col:nth-child(4) { border-top: 3px solid var(--burgundy); background: var(--off-white); }
.beacon-n {
  font-family: var(--font-serif); font-size: 4rem;
  color: var(--burgundy); opacity: 0.07;
  position: absolute; top: 12px; right: 16px;
  line-height: 1; font-style: italic;
}
.beacon-icon {
  width: 40px; height: 40px; background: var(--gold);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 18px; color: var(--white); font-size: 1rem;
  border-radius: var(--radius);
}
.beacon-col h4 { font-size: 1rem; color: var(--charcoal); margin-bottom: 4px; }
.beacon-tag {
  font-family: var(--font-sans); font-size: 10px; font-weight: 600;
  letter-spacing: 2px; text-transform: uppercase;
  color: var(--burgundy); margin-bottom: 14px; display: block;
}
.beacon-col ul { list-style: none; padding: 0; }
.beacon-col ul li {
  font-size: 17px; color: var(--text-lt);
  padding: 5px 0 5px 14px; position: relative;
  border-bottom: 1px solid var(--border);
}
.beacon-col ul li:last-child { border-bottom: none; }
.beacon-col ul li::before { content: "—"; position: absolute; left: 0; color: var(--burgundy); font-size: 11px; top: 8px; }

/* ── THREE LANES ── */
#three-lanes { padding: var(--section-pad); background: var(--light-gray); }
.lanes-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 20px; margin-top: 48px;
}
.lane-card {
  background: var(--white); padding: 40px 30px;
  border: 1px solid var(--border);
  border-top: 3px solid var(--charcoal-md);
  transition: transform 0.2s, box-shadow 0.2s;
}
.lane-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,0.08); }
.lane-card:nth-child(2) { border-top-color: var(--burgundy); }
.lane-roman {
  font-family: var(--font-serif); font-size: 3rem; font-style: italic;
  color: var(--charcoal); opacity: 0.07; line-height: 1;
  margin-bottom: 6px;
}
.lane-card h3 { font-size: 1.15rem; font-style: normal; color: var(--charcoal); margin-bottom: 14px; font-family: var(--font-sans); font-weight: 600; }
.lane-card > p { font-size: 17px; color: var(--text-lt); margin-bottom: 18px; }
.lane-card ul { list-style: none; padding: 0; }
.lane-card ul li {
  font-size: 18px; color: var(--text-lt);
  padding: 6px 0 6px 16px; position: relative;
  border-bottom: 1px solid var(--border);
}
.lane-card ul li:last-child { border-bottom: none; }
.lane-card ul li::before { content: "–"; position: absolute; left: 0; color: var(--burgundy); }
.lane-disclaimer {
  font-size: 11px; color: var(--text-xlt); font-style: italic;
  margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border);
  font-family: var(--font-sans);
}

/* ── ABOUT ── */
#about { padding: var(--section-pad); background: var(--charcoal-md); }
#about .eyebrow { color:var(--gold); }
#about h2 { color: var(--white); }
#about .rule { background: var(--gold); }
.about-grid {
  display: grid; grid-template-columns: 1fr 1.9fr;
  gap: 64px; align-items: start; margin-top: 48px;
}
.about-photo-box {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10);
  aspect-ratio: 3/4; display: flex; align-items: center; justify-content: center;
}
.about-photo-placeholder {
  text-align: center; color: rgba(255,255,255,0.20);
  font-family: var(--font-sans); font-size: 13px;
}
.about-years {
  background: var(--gold); color: var(--white);
  padding: 18px 22px; text-align: center; margin-top: 12px;
}
.about-years strong {
  display: block; font-family: var(--font-serif);
  font-size: 2rem; line-height: 1;
}
.about-years span { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; font-family: var(--font-sans); }
.about-copy h3 { color: rgba(255,255,255,0.96); font-style: normal; font-size: 1.5rem; margin-bottom: 22px; }
.about-copy p { color: rgba(255,255,255,0.90); }
.about-blockquote {
  border-left: 3px solid var(--burgundy); padding: 20px 24px;
  margin: 28px 0; background: rgba(46,74,107,0.12);
}
.about-blockquote p {
  font-family: var(--font-serif); font-style: italic;
  color: var(--gold-lt) !important; font-size: 1.05rem; margin: 0;
}

/* ── BOOK ── */
#book { padding: var(--section-pad); background: var(--off-white); }
.book-grid {
  display: grid; grid-template-columns: 1fr 1.8fr;
  gap: 64px; align-items: center; margin-top: 48px;
}
.book-spine {
  background: var(--charcoal); padding: 52px 36px;
  box-shadow: 6px 6px 0 var(--burgundy);
  position: relative;
}
.book-spine::before {
  content: ""; position: absolute;
  top: 0; left: 0; right: 0; height: 4px;
  background: var(--gold);
}
.book-title-text {
  font-family: var(--font-serif); font-style: italic;
  font-size: 1.45rem; font-weight: 700; line-height: 1.3;
  color: var(--white); margin-bottom: 16px;
}
.book-sub {
  font-size: 13px; color: rgba(255,255,255,0.88);
  font-style: italic; margin-bottom: 28px; line-height: 1.6;
}
.book-byline {
  font-family: var(--font-sans); font-size: 12px;
  color: rgba(255,255,255,0.90); letter-spacing: 1px;
  border-top: 1px solid rgba(255,255,255,0.10); padding-top: 16px;
  text-transform: uppercase;
}
.book-topics { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 24px 0; }
.book-topic { font-size: 17px; color: var(--text-lt); display: flex; align-items: flex-start; gap: 10px; }
.book-topic::before { content: "–"; color: var(--burgundy); flex-shrink: 0; margin-top: 2px; }

/* ── SCHEDULE ── */
#schedule {
  padding: var(--section-pad);
  background: var(--navy-dk);
  text-align: center; position: relative; overflow: hidden;
}
#schedule::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.25) 0%, transparent 60%);
}
#schedule .eyebrow { color: rgba(255,255,255,0.88); position: relative; z-index: 1; }
#schedule h2 { color: var(--white); position: relative; z-index: 1; letter-spacing: -0.3px; }
#schedule .rule-center { background: rgba(255,255,255,0.25); position: relative; z-index: 1; }
.schedule-wrap { position: relative; z-index: 1; max-width: 660px; margin: 0 auto; }
.schedule-wrap > p { color: rgba(255,255,255,0.92); font-family: var(--font-serif); font-style: normal; font-size: 1.05rem; margin-bottom: 14px; }
.expect-box {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  padding: 36px; margin: 36px 0; text-align: left;
}
.expect-box h4 { color: rgba(255,255,255,0.96); margin-bottom: 18px; font-family: var(--font-sans); font-size: 0.9rem; letter-spacing: 1px; text-transform: uppercase; font-weight: 600; }
.expect-box ul { list-style: none; padding: 0; }
.expect-box ul li {
  color: rgba(255,255,255,0.92); padding: 9px 0 9px 20px;
  position: relative; border-bottom: 1px solid rgba(255,255,255,0.06);
  font-size: 18px;
}
.expect-box ul li:last-child { border-bottom: none; }
.expect-box ul li::before { content: "–"; position: absolute; left: 0; color: rgba(255,255,255,0.35); }
.schedule-note { margin-top: 16px; font-size: 12px; color: rgba(255,255,255,0.65); letter-spacing: 1.5px; text-transform: uppercase; font-family: var(--font-sans); }
.contact-row { display: flex; justify-content: center; gap: 48px; margin-top: 40px; flex-wrap: wrap; }
.contact-col { text-align: center; }
.contact-col strong { display: block; font-family: var(--font-sans); font-size: 10px; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; color: rgba(255,255,255,0.78); margin-bottom: 4px; }
.contact-col span { color: rgba(255,255,255,0.92); font-size: 17px; font-family: var(--font-serif); font-style: normal; }

/* ── FAQ ── */
#faq { padding: var(--section-pad); background: var(--white); }
.faq-list { max-width: 780px; margin-top: 48px; }
.faq-q { border-bottom: 1px solid var(--border); padding: 28px 0; }
.faq-q:first-child { border-top: 1px solid var(--border); }
.faq-q h4 { color: var(--charcoal); margin-bottom: 12px; font-size: 1rem; font-weight: 600; }
.faq-q p { font-size: 18px; color: var(--text-lt); margin: 0; }

/* ── FOOTER ── */
#footer { background: var(--charcoal); padding: 60px 0 36px; }
.footer-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 36px; }
.footer-cols {
  display: grid; grid-template-columns: 1.6fr 1fr 1fr;
  gap: 48px; padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.footer-brand h3 {
  font-family: var(--font-serif); color: var(--white);
  font-size: 1.3rem; margin-bottom: 6px; font-style: normal;
}
.footer-tag {
  font-family: var(--font-sans); font-size: 10px; font-weight: 600;
  letter-spacing: 3px; text-transform: uppercase;
  color:var(--gold); margin-bottom: 18px; display: block;
}
.footer-brand p { font-size: 14px; color: rgba(255,255,255,0.70); margin-bottom: 0.7em; line-height: 1.6; }
.footer-col-head {
  font-family: var(--font-sans); font-size: 10px; font-weight: 700;
  letter-spacing: 3px; text-transform: uppercase;
  color: rgba(255,255,255,0.65); margin-bottom: 18px; display: block;
}
.footer-nav ul { list-style: none; padding: 0; }
.footer-nav ul li { margin-bottom: 10px; }
.footer-nav ul li a { color: rgba(255,255,255,0.78); font-size: 14px; transition: color 0.18s; }
.footer-nav ul li a:hover { color:var(--gold); }
.footer-disc {
  font-family: var(--font-sans); font-size: 12px;
  line-height: 1.85; color: #ffffff;
  padding-top: 28px;
}
.footer-disc a { color: rgba(255,255,255,0.65); }
.footer-disc a:hover { color:var(--gold); }
.footer-bottom {
  margin-top: 24px; display: flex; justify-content: space-between;
  align-items: center; flex-wrap: wrap; gap: 12px;
  font-family: var(--font-sans); font-size: 11px; color: rgba(255,255,255,0.50);
}
.footer-badges { display: flex; gap: 10px; flex-wrap: wrap; }
.footer-badges a {
  color: rgba(255,255,255,0.62); font-size: 11px; font-family: var(--font-sans);
  border: 1px solid rgba(255,255,255,0.10); padding: 4px 10px; letter-spacing: 1px;
  transition: color 0.18s, border-color 0.18s;
}
.footer-badges a:hover { color:var(--gold); border-color: rgba(106,155,196,0.40); }

/* ── RESPONSIVE ── */
@media (max-width: 960px) {
  .nav-links { display: none; }
  .nav-links.open {
    display: flex; flex-direction: column; position: fixed;
    top: 96px; left: 0; right: 0;
    background: var(--charcoal); padding: 20px; gap: 4px;
    border-top: 1px solid rgba(255,255,255,0.06);
  }
  .hamburger { display: flex; }
  .nav-links.open { max-height: calc(100vh - 96px); overflow-y: auto; }
  .nav-links.open .has-dropdown { width: 100%; }
  .nav-links.open .nav-group { padding: 10px 12px; width: 100%; justify-content: flex-start; }
  .nav-links.open .dropdown-menu {
    display: block; position: static; background: transparent; border: none;
    box-shadow: none; padding: 0 0 6px 16px; min-width: 0;
  }
  .nav-links.open .dropdown-menu li a { padding: 8px 12px; }
  .identity-grid { grid-template-columns: 1fr 1fr; }
  .bucket-grid, .about-grid, .book-grid { grid-template-columns: 1fr; }
  .bucket-img-wrap { position: static; }
  .bucket-trio { grid-template-columns: 1fr; }
  .beacon-grid { grid-template-columns: 1fr 1fr; }
  .lanes-grid { grid-template-columns: 1fr; }
  .footer-cols { grid-template-columns: 1fr; gap: 32px; }
  .pain-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  :root { --section-pad: 64px 0; }
  body { font-size: 19px; }
  .hero-ctas { flex-direction: column; }
  .identity-grid { grid-template-columns: 1fr; }
  .pain-grid { grid-template-columns: 1fr; }
  .beacon-grid { grid-template-columns: 1fr; }
  .book-topics { grid-template-columns: 1fr; }
  .contact-row { flex-direction: column; gap: 20px; align-items: center; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

.book-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 0 0 4px 0;
}
.book-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--off-white);
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold);
  border-radius: 6px;
  padding: 14px 16px;
}
.book-card-icon {
  font-size: 1.4rem;
  flex-shrink: 0;
  line-height: 1;
  margin-top: 2px;
}
.book-card-title {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 3px;
  line-height: 1.3;
}
.book-card-sub {
  font-family: var(--font-sans);
  font-size: 13px;
  color: var(--text-lt);
  line-height: 1.35;
}

/* ── CASE STUDIES ── */
#case-studies { padding: var(--section-pad); background: var(--off-white); }
.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px; align-items:stretch; }
.case-card { background:var(--white); border:1px solid var(--border); border-top:3px solid var(--gold); border-radius:var(--radius); display:flex; flex-direction:column; overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.case-card:hover { transform:translateY(-3px); box-shadow:0 8px 28px rgba(0,0,0,0.09); }
.cc-photo { width:100%; height:210px; object-fit:cover; object-position:center 20%; display:block; }
.cc-body { padding:24px 26px 26px; display:flex; flex-direction:column; flex:1; }
.case-eyebrow { font-family:var(--font-sans); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gold-dk); margin-bottom:10px; }
.cc-body h3 { font-family:var(--font-serif); font-size:1.5rem; color:var(--navy); margin-bottom:12px; font-style:normal; line-height:1.15; }
.cc-sub { font-size:17px; color:var(--text-lt); margin-bottom:22px; flex:1; }
.cc-btn { align-self:flex-start; background:transparent; border:1px solid var(--gold); color:var(--gold-dk); font-family:var(--font-sans); font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:13px 26px; cursor:pointer; border-radius:var(--radius); transition:background .2s, color .2s; }
.cc-btn:hover { background:var(--gold); color:#fff; }
.case-card--soon { align-items:center; justify-content:center; text-align:center; border-top-color:var(--border); background:var(--light-gray); padding:48px 26px; min-height:340px; }
.case-card--soon .case-eyebrow { color:var(--text-xlt); }
.case-card--soon h3 { color:var(--text-lt); }
.case-card--soon p { font-size:16px; color:var(--text-xlt); margin:0; }
/* case study lightbox */
.cs-lightbox { display:none; position:fixed; inset:0; z-index:10000; background:rgba(8,20,40,0.92); padding:28px 16px; overflow-y:auto; }
.cs-panel { position:relative; background:var(--white); max-width:820px; width:100%; margin:0 auto; border-radius:4px; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,0.55); }
.cs-hero { width:100%; height:300px; object-fit:cover; object-position:center 20%; display:block; }
.cs-inner { padding:36px 44px 44px; }
.cs-inner h2 { font-family:var(--font-serif); color:var(--navy); font-size:2rem; font-style:normal; margin:2px 0 18px; }
.cs-label { font-family:var(--font-sans); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gold-dk); margin:26px 0 10px; }
.cs-inner p { font-size:17px; color:var(--text-md); line-height:1.65; margin:0 0 8px; }
.cs-inner ul { list-style:none; padding:0; margin:0; }
.cs-inner ul li { position:relative; padding:9px 0 9px 22px; font-size:16px; color:var(--text-md); line-height:1.55; border-bottom:1px solid var(--light-gray); }
.cs-inner ul li:last-child { border-bottom:none; }
.cs-inner ul li::before { content:"–"; position:absolute; left:0; color:var(--gold-dk); }
.cs-inner ul li strong { color:var(--navy); }
.cs-disclaimer { margin-top:28px; background:var(--off-white); border-left:3px solid var(--border); padding:18px 22px; font-size:13px; color:var(--text-lt); line-height:1.6; }
.cs-close { position:absolute; top:14px; right:14px; width:38px; height:38px; border-radius:50%; background:var(--navy); color:#fff; border:none; font-size:20px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1; box-shadow:0 2px 10px rgba(0,0,0,0.4); z-index:2; }
/* ---- Blog / Insights (v30) ---- */
#blog { padding: var(--section-pad); background: var(--white); }
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; align-items:stretch; }
.blog-card { background:var(--white); border:1px solid var(--border); border-top:3px solid var(--gold); border-radius:var(--radius); padding:24px 26px 26px; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease; }
.blog-card:hover { transform:translateY(-3px); box-shadow:0 8px 28px rgba(0,0,0,0.09); }
.blog-card h3 { font-family:var(--font-serif); font-size:1.28rem; color:var(--navy); margin:2px 0 12px; line-height:1.22; font-style:normal; }
.blog-excerpt { font-size:16px; color:var(--text-lt); margin-bottom:22px; flex:1; line-height:1.55; }
.blog-lede { font-size:18px !important; color:var(--text-md); font-style:italic; margin-bottom:8px !important; }
.blog-h { font-family:var(--font-serif); font-style:normal; color:var(--navy); font-size:1.2rem; margin:26px 0 8px; line-height:1.25; }

/* Visible authorship line used beneath every individual article title. */
.article-byline {
  margin: 14px 0 24px;
  color: var(--charcoal);
  font-family: var(--font-sans);
  font-size: 0.95rem;
  line-height: 1.55;
}
.article-byline p { margin: 0; }
.article-byline cite { font-family: inherit; }
.blog-article ul.blog-ul { list-style:none; padding:0; margin:6px 0; }
.blog-article ul.blog-ul li { position:relative; padding:8px 0 8px 22px; font-size:16px; color:var(--text-md); line-height:1.55; border-bottom:1px solid var(--light-gray); }
.blog-article ul.blog-ul li:last-child { border-bottom:none; }
.blog-article ul.blog-ul li::before { content:"\2013"; position:absolute; left:0; color:var(--gold-dk); }
.blog-article ul.blog-ul li strong { color:var(--navy); }
@media (max-width:900px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .blog-grid{ grid-template-columns:1fr; } }
/* ---- Circular couple avatars (v29) ---- */
.cc-avatar-wrap { display:flex; justify-content:center; padding:30px 26px 4px; }
.cc-avatar {
  width:150px; height:150px; border-radius:50%; object-fit:cover; object-position:50% 22%;
  border:4px solid #fff; box-shadow:0 3px 12px rgba(0,0,0,0.14), 0 0 0 2px var(--gold);
  background:#fff; display:block;
}
.cs-avatar-wrap { display:flex; justify-content:center; padding:40px 24px 6px; }
.cs-avatar {
  width:190px; height:190px; border-radius:50%; object-fit:cover; object-position:50% 22%;
  border:5px solid #fff; box-shadow:0 4px 18px rgba(0,0,0,0.20), 0 0 0 2px var(--gold);
  background:#fff; display:block;
}
@media (max-width:600px){
  .cc-avatar { width:128px; height:128px; }
  .cs-avatar { width:150px; height:150px; }
}
@media (max-width:900px){ .case-grid{ grid-template-columns:1fr; } .cs-inner{ padding:28px 24px 32px; } .cs-hero{ height:220px; } }

/* ---- TEMPORARY photo bands (v31 preview — remove class prefix temp- to delete) ---- */
.temp-photo-band{position:relative;width:100%;overflow:hidden;line-height:0;background:var(--navy);}
.temp-photo-band img{width:100%;height:100%;object-fit:cover;display:block;}
.temp-band-journey{height:clamp(190px,22vw,360px);}
.temp-band-journey img{object-position:center 42%;}
.temp-band-goal{height:clamp(320px,44vw,520px);}
.temp-band-goal img{object-position:center 58%;}

.temp-band-viewer{height:clamp(240px,26vw,430px);border-bottom:18px solid #fff;}
.temp-band-viewer img{object-position:center 56%;}
.temp-band-lighthouse{height:clamp(360px,34vw,540px);border-top:18px solid #fff;border-bottom:18px solid #fff;}
.temp-band-lighthouse img{object-position:center 52%;}

/* Parallax image bands */
.parallax-band{
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center var(--parallax-y, 50%);
  background-attachment: fixed;
}
.temp-band-viewer.parallax-band{
  background-image: url("images/viewer-coast-band.webp");
}
@media (max-width: 900px), (prefers-reduced-motion: reduce){
  .parallax-band{
    background-attachment: scroll;
    background-position: center center;
  }
}
@media(max-width:900px){
  .temp-band-viewer{height:clamp(180px,48vw,280px);border-bottom:12px solid #fff;}
  .temp-band-lighthouse{height:clamp(190px,52vw,300px);border-top:12px solid #fff;border-bottom:12px solid #fff;}
  .temp-band-viewer img{object-position:center 55%;}
  .temp-band-lighthouse img{object-position:center 50%;}
}
.temp-photo-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 6% 22px;
  background:linear-gradient(to top,rgba(8,20,40,0.78),rgba(8,20,40,0.05) 85%,transparent);
  color:#fff;font-family:var(--font-serif);font-style:italic;line-height:1.25;text-align:center;
  font-size:clamp(1.05rem,2.1vw,1.7rem);letter-spacing:.2px;}
@media(max-width:600px){.temp-photo-cap{font-size:1rem;padding:16px 6% 14px;}}
/* ---- v33 additions: hero chips, glossary, schedule qualifiers, service area ---- */
.hero-chips{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 20px;}
.hero-chips span{font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.5px;color:#fff;
  background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.28);padding:7px 15px;border-radius:30px;
  backdrop-filter:blur(2px);text-shadow:0 1px 3px rgba(8,20,40,.8);}
.hero-whowhere{font-family:var(--font-sans);font-size:14px;color:rgba(255,255,255,.92);margin:12px 0 0;
  text-shadow:1px 1px 3px rgba(8,20,40,.9);}
#glossary{padding:var(--section-pad);background:var(--off-white);}
.gloss-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px;}
.gloss-card{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:var(--radius);padding:20px 24px;}
.gloss-card dt{font-family:var(--font-serif);font-size:1.15rem;color:var(--navy);margin-bottom:6px;}
.gloss-card dd{margin:0;font-size:16px;color:var(--text-md);line-height:1.55;}
@media(max-width:760px){.gloss-grid{grid-template-columns:1fr;}}
.sched-qual{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:820px;margin:30px auto 6px;text-align:left;}
.sched-qual .q-box{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-radius:6px;padding:20px 24px;}
.sched-qual h4{font-family:var(--font-sans);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-lt);margin:0 0 12px;}
.sched-qual ul{list-style:none;margin:0;padding:0;}
.sched-qual li{color:rgba(255,255,255,0.90);font-size:15.5px;line-height:1.5;padding:6px 0 6px 20px;position:relative;}
.sched-qual li::before{content:"–";position:absolute;left:0;color:var(--gold-lt);}
.sched-steps{max-width:820px;margin:6px auto 22px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;text-align:left;}
.sched-steps .step{background:rgba(200,146,42,0.10);border:1px solid rgba(200,146,42,0.30);border-radius:6px;padding:18px 20px;}
.sched-steps .step .n{font-family:var(--font-serif);font-size:1.6rem;color:var(--gold-lt);line-height:1;}
.sched-steps .step strong{display:block;color:#fff;margin:0 0 6px;font-size:16px;}
.sched-steps .step span,.sched-steps .step p{color:rgba(255,255,255,0.82);font-size:14.5px;line-height:1.45;}
.sched-steps .step p{margin:0;}
@media(max-width:760px){.sched-qual,.sched-steps{grid-template-columns:1fr;}}
.service-area{background:var(--navy);color:#fff;padding:44px 0;text-align:center;}
.service-area h3{font-family:var(--font-serif);color:#fff;font-size:1.5rem;margin:0 0 8px;}
.service-area p{color:rgba(255,255,255,0.85);max-width:760px;margin:0 auto;font-size:16px;line-height:1.6;}

/* v36: sticky header */
.site-header{position:sticky;top:0;z-index:2000;background:var(--navy);box-shadow:0 2px 14px rgba(8,20,40,.28);}
.section-photo{max-width:960px;margin:34px auto 0;}
.section-photo img{width:100%;height:auto;display:block;border-radius:8px;box-shadow:0 8px 30px rgba(8,20,40,.16);}
.positioning-band{background:var(--off-white);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:26px 0;}
.positioning-band p{max-width:900px;margin:0 auto;text-align:center;font-family:var(--font-serif);font-size:1.2rem;color:var(--navy);line-height:1.5;}
.home-faq{padding:var(--section-pad);background:var(--off-white);}
.home-faq .faq-q{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:18px 24px;margin:12px 0;}
.home-faq .faq-q h4{margin:0 0 6px;font-family:var(--font-serif);color:var(--navy);font-size:1.12rem;}
.home-faq .faq-q p{margin:0;color:var(--text-md);font-size:16px;line-height:1.55;}
.home-faq-photo{
  position:relative;
  background:
    linear-gradient(180deg, rgba(8,20,40,.22), rgba(8,20,40,.30)),
    url('images/faq-lighthouse-background.webp') center center / cover no-repeat fixed;
}
.home-faq-photo .container{position:relative; z-index:1;}
.home-faq-photo .eyebrow{color:var(--gold-lt);}
.home-faq-photo h2{color:#fff;}
.home-faq-photo .rule{background:var(--gold);}
.home-faq-photo .faq-q{
  background:rgba(255,255,255,.92);
  border-color:rgba(255,255,255,.32);
  box-shadow:0 12px 34px rgba(8,20,40,.18);
}
@media(max-width:900px){
  .home-faq-photo{background-attachment:scroll;}
}
.cs-teaser{padding:var(--section-pad);}
.cs-teaser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:28px 0;align-items:stretch;}
.cs-teaser-card{display:flex;flex-direction:column;align-items:center;background:var(--white);border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:var(--radius);padding:18px 24px 24px;text-align:left;box-shadow:0 6px 20px rgba(8,20,40,.05);}
.cs-teaser-avatar-wrap{display:flex;justify-content:center;width:100%;margin:4px 0 16px;}
.cs-teaser-avatar{width:118px;height:118px;border-radius:50%;object-fit:cover;object-position:50% 22%;border:4px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.10),0 0 0 2px var(--gold);background:#fff;display:block;}
.cs-teaser-body{display:flex;flex-direction:column;flex:1;width:100%;}
.cs-teaser-body strong{display:block;font-family:var(--font-serif);color:var(--navy);font-size:1.15rem;margin-bottom:10px;line-height:1.25;}
.cs-teaser-body span{color:var(--text-lt);font-size:15px;line-height:1.58;display:block;}
.center-btn{text-align:center;margin-top:18px;}
@media(max-width:760px){.cs-teaser-grid{grid-template-columns:1fr;}.cs-teaser-card{padding:18px 20px 22px;}.cs-teaser-avatar{width:110px;height:110px;}}
.split-photo{float:right;width:340px;max-width:42%;margin:6px 0 18px 32px;border-radius:8px;box-shadow:0 8px 30px rgba(8,20,40,.16);}
@media(max-width:760px){.split-photo{float:none;width:100%;max-width:100%;margin:0 0 20px;}}
.porch-band{padding:56px 0;background:var(--white);}
.nav-logo-img{background:transparent !important;padding:0 16px 0 0 !important;height:auto !important;align-self:center !important;}
.nav-logo-img img{height:100px !important;width:auto !important;display:block;}

/* Added for Bucket Strategy homepage overview and schedule readability */
@media (max-width: 860px) {
  .bucket-overview-home { grid-template-columns: 1fr !important; }
  #schedule div[style*="grid-template-columns:repeat(2"] { grid-template-columns: 1fr !important; }
}


/* Homepage Beacon 360 summary cards */
.beacon-grid-summary .beacon-col{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.beacon-grid-summary .beacon-col ul{display:none;}


/* Homepage tightening — hero, self-identification, and retirement income challenge */
.hero-content{max-width:840px;padding-top:24px;padding-bottom:24px;}
.hero-lead{font-size:1.24rem;max-width:760px;margin-bottom:18px;font-weight:400;}
.identity-grid-tight{margin-top:34px;}
.identity-grid-tight .identity-card{padding:28px 26px;}
.identity-grid-tight .identity-card h4{font-size:1.04rem;line-height:1.45;margin-bottom:0;}
.pain-grid-compact{margin-top:36px;}
.pain-grid-compact .pain-card{padding:26px 24px;}
.pain-grid-compact .pain-card h4{margin-bottom:8px;}
.pain-short{font-size:16px!important;line-height:1.55;color:rgba(255,255,255,.92)!important;margin:0 0 12px!important;}
.pain-card details{margin-top:10px;border-top:1px solid rgba(255,255,255,.12);padding-top:10px;}
.pain-card summary{cursor:pointer;color:var(--gold);font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;list-style:none;}
.pain-card summary::-webkit-details-marker{display:none;}
.pain-card summary::after{content:' +';font-weight:700;}
.pain-card details[open] summary::after{content:' –';}
.pain-card details p{margin-top:10px!important;font-size:15.5px!important;line-height:1.6;color:rgba(255,255,255,.86)!important;}
/* Money Cycle phase cards expandable explanations */
.money-phase-details{margin-top:10px;border-top:1px solid rgba(46,74,107,.16);padding-top:10px;}
.money-phase-details summary{cursor:pointer;color:var(--gold);font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;list-style:none;}
.money-phase-details summary::-webkit-details-marker{display:none;}
.money-phase-details summary::after{content:' +';font-weight:700;}
.money-phase-details[open] summary::after{content:' –';}
.money-phase-details p{margin:10px 0 0!important;font-size:15.5px!important;line-height:1.6;color:var(--text-lt)!important;}

@media(max-width:760px){.hero-lead{font-size:1.12rem}.identity-grid-tight .identity-card{padding:24px 22px}.pain-grid-compact .pain-card{padding:24px 22px}}


/* Hero stats restored */
.hero-stats{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:28px;
  color:#fff;
  text-shadow:0 2px 8px rgba(8,20,40,.70);
  flex-wrap:wrap;
}
.hero-stats div:not(.stat-divider){
  display:flex;
  align-items:baseline;
  gap:7px;
}
.hero-stats strong{
  font-family:var(--font-serif);
  font-size:2.2rem;
  line-height:1;
  color:#fff;
}
.hero-stats span{
  font-family:var(--font-sans);
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.3px;
  color:#fff;
}
.hero-stats .stat-divider{
  color:var(--gold);
  font-weight:700;
  opacity:.95;
}
.hero-service-line{
  margin-top:14px;
  color:#fff;
  font-size:1.02rem;
  font-weight:700;
  text-shadow:0 2px 8px rgba(8,20,40,.75);
  max-width:820px;
}

/* Smaller human visual in the self-identification section */
.who-intro-visual{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,360px);
  gap:26px;
  align-items:center;
  margin-bottom:30px;
}
.who-intro-visual figure{
  margin:0;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(8,20,40,.14);
  background:var(--navy);
}
.who-intro-visual img{
  width:100%;
  display:block;
  aspect-ratio:4/3;
  object-fit:cover;
}
.who-intro-visual figcaption{
  color:#fff;
  font-size:.86rem;
  line-height:1.45;
  padding:12px 14px;
}
@media(max-width:850px){
  .who-intro-visual{grid-template-columns:1fr;}
  .hero-stats{gap:12px;}
  .hero-stats strong{font-size:1.85rem;}
  .hero-stats span{font-size:.8rem;}
}



/* Final hero stats and side-photo adjustments */
.hero-stats{
  display:flex;
  gap:0;
  flex-wrap:nowrap;
  align-items:center;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.08);
  justify-content:flex-start;
  width:100%;
  margin-top:26px;
  color:rgba(255,255,255,0.9);
}
.stat{display:flex;align-items:center;gap:10px;white-space:nowrap;}
.stat-num{
  font-family:var(--font-serif);
  font-size:2.4rem;
  color:var(--gold);
  font-weight:700;
  line-height:1;
}
.stat-label{
  font-family:var(--font-sans);
  font-size:12px;
  font-weight:400;
  color:rgba(255,255,255,0.80);
  letter-spacing:0.5px;
  text-transform:uppercase;
  line-height:1.4;
}
.stat-divider{
  color:rgba(255,255,255,0.55);
  margin:0 14px;
}
.hero-service-line{
  margin-top:14px;
  color:rgba(255,255,255,0.92);
  font-size:1rem;
  font-weight:400;
  text-shadow:0 2px 8px rgba(8,20,40,.72);
  max-width:860px;
}

.who-intro-visual{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:28px;
  align-items:start;
  margin-bottom:30px;
}
.who-side-photo{
  position:relative;
  margin:0;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(8,20,40,.14);
}
.who-side-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  aspect-ratio:4/5;
}
.who-photo-overlay{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:18px 20px 20px;
  color:#fff;
  font-family:var(--font-serif);
  font-size:1.08rem;
  font-weight:700;
  background:linear-gradient(180deg, rgba(8,20,40,0) 0%, rgba(8,20,40,.78) 75%, rgba(8,20,40,.86) 100%);
}
@media(max-width:1100px){
  .hero-stats{flex-wrap:wrap;row-gap:10px;}
}
@media(max-width:850px){
  .who-intro-visual{grid-template-columns:1fr;}
  .who-side-photo{max-width:360px;}
  .stat-divider{display:none;}
}


/* Refined hero stats to match original look */
.hero-stats{
  display:flex;
  gap:0;
  flex-wrap:nowrap;
  align-items:center;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.08);
  justify-content:flex-start;
  width:100%;
  margin-top:24px;
}
.hero-stats .stat{display:flex;align-items:center;gap:10px;white-space:nowrap;}
.hero-stats .stat-num{
  font-family:var(--font-serif);
  font-size:2.4rem;
  color:var(--gold);
  font-weight:700;
  line-height:1;
}
.hero-stats .stat-label{
  font-family:var(--font-sans);
  font-size:12px;
  font-weight:400;
  color:rgba(255,255,255,0.80);
  letter-spacing:0.5px;
  text-transform:uppercase;
  line-height:1.4;
}
.hero-stats .stat-divider{
  color:rgba(255,255,255,0.55);
  margin:0 14px;
  font-size:1.05rem;
}
.hero-service-line{
  margin-top:14px;
  color:rgba(255,255,255,0.92);
  font-size:1rem;
  font-weight:400;
  text-shadow:0 2px 8px rgba(8,20,40,.72);
  max-width:860px;
}

/* Full-width photo treatment in Who We Work Best With */
.who-full-photo{
  position:relative;
  margin:28px 0 34px;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(8,20,40,.14);
}
.who-full-photo img{
  width:100%;
  display:block;
  aspect-ratio:16/6;
  object-fit:cover;
}
.who-full-photo .who-photo-overlay{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:18px 26px 20px;
  color:#fff;
  font-family:var(--font-serif);
  font-size:1.08rem;
  font-weight:700;
  background:linear-gradient(180deg, rgba(8,20,40,0) 0%, rgba(8,20,40,.72) 70%, rgba(8,20,40,.84) 100%);
}

/* Retire prior side-photo layout if still present */
.who-intro-visual{display:block;}
.who-side-photo{display:none;}

@media(max-width:1100px){
  .hero-stats{flex-wrap:wrap;row-gap:10px;}
}
@media(max-width:850px){
  .hero-stats .stat-divider{display:none;}
  .who-full-photo img{aspect-ratio:4/3;}
}


/* Final fix: show the full BBQ couple image without over-cropping */
.who-full-photo img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:auto;
  object-fit:contain;
}
.who-full-photo{
  max-width:1110px;
}
.who-full-photo .who-photo-overlay{
  padding:20px 26px 22px;
}
@media(max-width:850px){
  .who-full-photo img{
    width:100%;
    height:auto;
  }
}


/* Who We Work Best With side image — match the kitchen couple image size */
.who-side-photo-match{
  float:right;
  width:420px;
  max-width:46%;
  margin:6px 0 18px 32px;
}
.who-side-photo-match img{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
  box-shadow:0 8px 30px rgba(8,20,40,.16);
}
.who-side-photo-match figcaption{
  margin-top:10px;
  font-family:var(--font-serif);
  font-size:1rem;
  font-weight:700;
  color:var(--navy);
}
.who-intro-copy{
  max-width:700px;
  color:var(--text-lt);
  font-size:1.05rem;
}
.who-full-photo{display:none !important;}
#who-we-work-with .identity-grid-tight{clear:both;}
@media(max-width:760px){
  .who-side-photo-match{
    float:none;
    width:100%;
    max-width:100%;
    margin:0 0 20px;
  }
}


/* Slightly smaller Case Studies feature photo while preserving the original image */
.section-photo{max-width:840px;margin:34px auto 0;}

/* Hero service line: slightly smaller and one line on desktop */
.hero-service-line{
  font-size:0.86rem !important;
  white-space:nowrap;
  max-width:none !important;
  width:max-content;
}

@media(max-width:900px){
  .hero-service-line{
    white-space:normal;
    width:auto;
    max-width:100% !important;
  }
}

/* Compact direct-contact block under schedule CTA */
.direct-contact-compact{
  margin-top:20px;
  color:rgba(255,255,255,0.92);
  text-align:center;
}
.direct-contact-label{
  font-family:var(--font-sans);
  font-size:12px;
  font-weight:700;
  letter-spacing:1.7px;
  color:rgba(255,255,255,0.78);
  margin-bottom:8px;
}
.direct-contact-row{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:34px;
  flex-wrap:wrap;
  font-size:16px;
  line-height:1.35;
}
.direct-contact-row strong{
  color:var(--gold-lt);
  margin-right:6px;
}
@media(max-width:700px){
  .direct-contact-row{
    gap:10px;
    flex-direction:column;
  }
}

/* Slightly larger hero subheader */
.hero-lead{
  font-size:1.32rem !important;
  line-height:1.52 ;
}
@media(max-width:760px){
  .hero-lead{
    font-size:1.16rem !important;
  }
}

/* Hero subheader: one step larger */
.hero-lead{
  font-size:1.40rem !important;
  line-height:1.50 ;
}
@media(max-width:760px){
  .hero-lead{
    font-size:1.18rem !important;
  }
}

.bucket-video-after {
  max-width: 900px;
  margin: 18px auto 0 !important;
  color: var(--text-md) !important;
  font-size: 15px !important;
  line-height: 1.6 ;
}

@media (max-width: 960px) {
  .nav-inner { height: 96px; }
  .nav-logo-img img { height: 82px !important; }
  .nav-links.open { top: 96px; max-height: calc(100vh - 96px); }
}

/* v-next authorized updates: hero reassurance, at-a-glance, warmer schedule section */
.hero-reassurance-line{
  margin:14px 0 0;
  color:#fff;
  font-size:1.04rem;
  font-weight:700;
  line-height:1.45;
  text-shadow:0 2px 8px rgba(8,20,40,.75);
  max-width:900px;
}
.at-a-glance{
  padding:var(--section-pad);
  background:var(--off-white);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.glance-card{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  max-width:980px;
  margin:34px auto 0;
  text-align:left;
}
.glance-item{
  background:var(--white);
  border:1px solid var(--border);
  border-left:3px solid var(--gold);
  border-radius:var(--radius);
  padding:20px 24px;
  box-shadow:0 6px 18px rgba(8,20,40,.045);
}
.glance-item h4{
  font-family:var(--font-sans);
  font-size:12px;
  letter-spacing:1.7px;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 8px;
}
.glance-item p{
  margin:0;
  color:var(--text-md);
  font-size:16px;
  line-height:1.55;
}
.glance-main h4{
  font-family:var(--font-serif);
  font-size:1.35rem;
  letter-spacing:0;
  text-transform:none;
  color:var(--navy);
}
.glance-wide{grid-column:1 / -1;}
.glance-item a{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.schedule-wrap-wide{max-width:920px;}
.schedule-reassurance{
  max-width:820px;
  margin:0 auto 26px;
  color:rgba(255,255,255,0.92);
  font-family:var(--font-serif);
  font-size:1.08rem;
  line-height:1.6;
}
.sched-qual.sched-qual-three{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:920px;
  margin:28px auto 26px;
}
.sched-qual .q-box p{
  color:rgba(255,255,255,0.88);
  font-size:15.5px;
  line-height:1.55;
  margin:0;
}
.schedule-subhead{
  font-family:var(--font-serif);
  color:#fff;
  font-size:1.6rem;
  margin:12px 0 16px;
}
.sched-steps.sched-steps-three{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:920px;
  margin:0 auto 28px;
}
.sched-steps.sched-steps-three .step strong{
  margin:0;
  line-height:1.45;
}
.cs-teaser-body span b{color:var(--navy);font-weight:700;}
@media(max-width:900px){
  .sched-qual.sched-qual-three,.sched-steps.sched-steps-three{grid-template-columns:1fr;}
}
@media(max-width:760px){
  .glance-card{grid-template-columns:1fr;}
  .hero-reassurance-line{font-size:0.98rem;}
}


/* Follow-up refinements: hero line parity and schedule no-fit box */
.hero-reassurance-line,
.hero-service-line{
  font-size:0.92rem !important;
  font-weight:400 !important;
  line-height:1.45;
}
.hero-reassurance-line{
  margin:14px auto 0;
  max-width:none !important;
  width:max-content;
}
@media(max-width:900px){
  .hero-reassurance-line{
    white-space:normal;
    width:auto;
    max-width:100% !important;
  }
}
.schedule-not-for-box{
  max-width:920px;
  margin:0 auto 28px;
  padding:22px 26px;
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.08);
  box-shadow:0 10px 24px rgba(0,0,0,0.12);
  text-align:left;
}
.schedule-not-for-box h4{
  margin:0 0 8px;
  font-family:var(--font-sans);
  font-size:12px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--gold-lt);
}
.schedule-not-for-box p{
  margin:0;
  color:rgba(255,255,255,0.88);
  font-size:15.5px;
  line-height:1.6;
}
.sched-steps.sched-steps-three .step span,
.sched-steps.sched-steps-three .step p{
  display:block;
  margin:8px 0 0;
  color:rgba(255,255,255,0.82);
  font-size:14.5px;
  line-height:1.55;
}

/* Keep the schedule heading on one desktop line without changing wording */
#schedule .schedule-wrap-wide h2{
  font-size:clamp(2rem,3vw,2.35rem);
  line-height:1.1;
}

/* Hero stat links and simple below-hero message section */
.hero-stats a.stat{
  color:inherit;
  text-decoration:none;
}
.hero-stats a.stat:hover,
.hero-stats a.stat:focus{
  color:inherit;
  text-decoration:none;
}
.hero-stats a.stat:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:6px;
  border-radius:4px;
}
.hero-below-message{
  background:var(--navy);
  padding:22px 0 24px;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.10);
  border-bottom:1px solid rgba(255,255,255,0.10);
}
.hero-below-line{
  margin:0;
  font-family:var(--font-serif);
  font-size:20px;
  font-weight:400;
  line-height:1.35;
}
@media(min-width:980px){
  .hero-below-line{white-space:nowrap;}
}
.hero-below-line + .hero-below-line{margin-top:6px;}
.hero-below-white{color:#fff;}
.hero-below-gold{color:var(--gold-lt);}
.hero-brokercheck {
  margin: 10px 0 0;
  font-size: 0.92rem;
  line-height: 1.4;
}
.hero-brokercheck a {
  color: #ffffff;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.hero-brokercheck a:hover,
.hero-brokercheck a:focus-visible {
  color: var(--gold-lt);
}

@media(max-width:760px){
  .hero-below-message{padding:18px 0 20px;}
  .hero-below-line{font-size:0.96rem;}
}


/* Homepage Bucket Strategy dark methodology band */
#bucket-strategy { padding: 0 0 var(--section-pad); background: var(--navy); }
.bucket-method-band { background: var(--navy); padding: 82px 0 52px; }
.bucket-method-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 360px); gap: 44px; align-items: center; }
.bucket-method-copy h2 { color: #fff; margin-bottom: 0; }
.bucket-method-eyebrow { color: var(--gold) !important; }
.bucket-method-subhead { margin: 18px 0 12px; color: var(--gold); font-family: var(--font-serif); font-size: clamp(1.45rem, 2.1vw, 2rem); line-height: 1.25; font-weight: 400; }
.bucket-method-lead { max-width: 650px; color: rgba(255,255,255,.84); font-size: 1.08rem; line-height: 1.75; margin: 0; }
.bucket-method-avatar { display: flex; justify-content: center; align-items: center; }
.bucket-method-avatar img { width: min(100%, 340px); height: auto; display: block; filter: drop-shadow(0 18px 36px rgba(0,0,0,.28)); }
.bucket-risk-home { margin-top: 46px; }
.bucket-risk-kicker { font-family: var(--font-sans); font-size: .72rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); margin: 0 0 16px; }
.bucket-risk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid rgba(216,213,206,.95); border-left: 4px solid var(--gold); background: #fff; box-shadow: 0 18px 40px rgba(0,0,0,.16); }
.bucket-risk-card { padding: 24px 28px; display: flex; gap: 14px; align-items: flex-start; background: #fff; }
.bucket-risk-card + .bucket-risk-card { border-left: 1px solid #D8D5CE; }
.bucket-risk-icon { font-size: 1.5rem; flex-shrink: 0; }
.bucket-risk-title { font-family: var(--font-sans); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--navy); margin: 0 0 6px; }
.bucket-risk-card p:not(.bucket-risk-title) { font-size: 16px; color: #3D3C38; margin: 0; line-height: 1.65; }

/* Homepage Bucket Strategy lower area: dark navy contrast */
#bucket-strategy .bucket-overview-home h3 { color: #fff; }
#bucket-strategy .bucket-overview-home p { color: rgba(255,255,255,.84) !important; }
#bucket-strategy .bucket-img-cap { color: rgba(255,255,255,.72); }
#bucket-strategy .bucket-overview-home .btn-primary { background: var(--gold); color: var(--navy) !important; }
@media (max-width: 860px) {
  .bucket-method-band { padding: 58px 0 42px; }
  .bucket-method-hero { grid-template-columns: 1fr; text-align: left; gap: 28px; }
  .bucket-method-avatar { justify-content: flex-start; }
  .bucket-risk-grid { grid-template-columns: 1fr; }
  .bucket-risk-card + .bucket-risk-card { border-left: none; border-top: 1px solid #D8D5CE; }
}

/* Sitewide typography refinement requested 2026-07-08: non-hero eyebrows and paragraph copy */
.eyebrow,
.case-eyebrow,
.bucket-video-kicker,
.bucket-risk-kicker {
  font-size: 19px !important;
}
.hero-content .eyebrow {
  font-size: 11px !important;
}
section:not(#hero) p,
.blog-excerpt {
  font-size: 22px !important;
  line-height: 1.65;
}
#footer p,
#footer .footer-disc,
#footer .footer-bottom,
.bucket-video-disclosure,
.cs-disclaimer,
.schedule-note {
  font-size: inherit;
}
.footer-brand p { font-size: 14px !important; }
.footer-disc { font-size: 12px !important; }
.footer-bottom { font-size: 11px !important; }
.bucket-video-disclosure { font-size: 12px !important; }
.cs-disclaimer { font-size: 13px !important; }
.schedule-note { font-size: 12px !important; }

/* Mustang road band refinement: show more lower image area and add white buffer before Money Cycle */
.temp-band-journey {
  height: clamp(250px, 28vw, 430px);
  border-bottom: 28px solid #fff;
}
.temp-band-journey img {
  object-position: center 64%;
}

/* Beacon 360 homepage process-card font sizing */
.beacon-grid-summary .beacon-col h4,
.beacon-grid-summary .beacon-tag,
.beacon-grid-summary .beacon-n,
.beacon-grid-summary .beacon-icon {
  font-size: 22px !important;
}
.beacon-grid-summary .beacon-tag {
  line-height: 1.35;
}
.beacon-grid-summary .beacon-icon {
  width: 44px;
  height: 44px;
}


/* Requested refinements 2026-07-08: homepage visual/font adjustments */
.hero-below-line{
  font-size:20px !important;
}
@media(max-width:760px){
  .hero-below-line{font-size:18px !important;}
}
.split-photo{
  width:420px;
  max-width:46%;
}
.goal-support-line{
  font-size:20px !important;
  white-space:nowrap;
}
@media(max-width:980px){
  .goal-support-line{white-space:normal;}
}
#problem .pain-grid .pain-card:first-child h4,
#problem .pain-grid .pain-card:first-child .pain-short,
#problem .pain-grid .pain-card:first-child summary,
#problem .pain-grid .pain-card:first-child details p{
  font-size:18px !important;
}
.money-phase-window-label{
  font-size:18px !important;
}
.money-phase-details summary{
  font-size:18px !important;
}
.bucket-risk-title{
  font-size:18px !important;
}
.bucket-trio-item h4{
  font-size:18px !important;
  text-transform:uppercase;
}
.beacon-grid-summary .beacon-col h4{
  font-size:26px !important;
}
.beacon-grid:not(.beacon-grid-summary) .beacon-col h4,
.beacon-grid:not(.beacon-grid-summary) .beacon-tag{
  font-size:22px !important;
}
@media(max-width:760px){
  .split-photo{float:none;width:100%;max-width:100%;margin:0 0 20px;}
}

/* Final refinement pass requested 2026-07-08 */
/* Move below-hero reassurance copy left while keeping the dark blue band. */
.hero-below-message{text-align:left;}
.hero-below-line{font-size:20px !important;line-height:1.32;}

/* Tight two-line portfolio goal statement. */
.goal-support-line{font-size:18px !important;line-height:1.18 ;white-space:normal !important;}
.goal-support-line span{display:block;}

/* Requested 25px feature captions/subheads. */
.temp-photo-cap{font-size:25px !important;}
.bucket-method-subhead{font-size:25px !important;}
.porch-band p{font-size:25px !important;}

/* Slightly larger BBQ section caption. */
.who-side-photo-match figcaption{font-size:22px !important;}

/* All cards in the Retirement Income Challenge pain grid at 18px. */
#problem .pain-grid .pain-card h4,
#problem .pain-grid .pain-card .pain-short,
#problem .pain-grid .pain-card summary,
#problem .pain-grid .pain-card details p{
  font-size:18px !important;
}

/* Smaller main-content disclosures/captions, excluding footer. */
#problem p[style*="font-size:12px"],
#bucket-strategy .bucket-img-cap,
.bucket-img-cap,
.bucket-video-disclosure,
.lane-disclaimer,
.cs-disclaimer{
  font-size:11px !important;
  line-height:1.45 ;
}
#three-lanes p[style*="font-size: 13px"],
#three-lanes p[style*="font-size:13px"]{
  font-size:11px !important;
  line-height:1.45 ;
}

/* Schedule step title words a bit larger. */
.sched-steps.sched-steps-three .step strong{font-size:20px !important;line-height:1.35;}
.sched-steps.sched-steps-three .step p{font-size:15.5px !important;}

/* Bucket Strategy page analogy labels larger; video intro line a little smaller. */
.analogy-label{font-size:24px !important;}
.bucket-video-kicker{font-size:16px !important;line-height:1.45 ;letter-spacing:.8px ;}

/* FAQ page question text larger. */
#faq .faq-q h4{font-size:26px !important;line-height:1.25;}

/* Beacon 360 cards: make header/tag words match more closely across homepage and page. */
.beacon-grid-summary .beacon-col h4,
.beacon-grid-summary .beacon-tag,
.beacon-grid:not(.beacon-grid-summary) .beacon-col h4,
.beacon-grid:not(.beacon-grid-summary) .beacon-tag{
  font-size:24px !important;
  line-height:1.25;
}

@media(max-width:760px){
  .temp-photo-cap{font-size:18px !important;}
  .hero-below-message{text-align:center;}
  .hero-below-line{font-size:18px !important;white-space:normal;}
  #faq .faq-q h4{font-size:22px !important;}
}

/* Follow-up refinements requested 2026-07-08 */
/* Move the dark-blue reassurance/local lines farther left and give them the full page width. */
.hero-below-message .container{
  max-width:none;
  width:100%;
  padding-left:24px;
  padding-right:24px;
}
.hero-below-message{text-align:left;}

/* Make requested feature caption/subheading lines 28px. */
.temp-photo-cap,
.bucket-method-subhead,
.porch-band p{
  font-size:28px !important;
}

/* Keep Why This Matters text the same size as the card copy in the Retirement Income Challenge cards. */
#problem .pain-grid .pain-card summary,
#problem .pain-grid .pain-card details p{
  font-size:18px !important;
}

/* Make the Bucket Strategy risk kicker title case instead of all caps. */
.bucket-risk-kicker{
  text-transform:none !important;
  letter-spacing:1.2px ;
}

@media(max-width:760px){
  .hero-below-message .container{padding-left:24px;padding-right:24px;}
  .temp-photo-cap,.bucket-method-subhead,.porch-band p{font-size:20px !important;}
}


/* Final requested refinements — compact spacing, targeted font/photo/footer adjustments */
:root { --section-pad: 78px 0; }

/* Center only the first below-hero reassurance line. */
.hero-below-message { text-align: left; }
.hero-below-message .hero-below-white { text-align: center !important; display: block; }
.hero-below-message .hero-below-gold { text-align: left !important; display: block; }

/* Keep the two feature subheads/captions at 28px across homepage and standalone page. */
.temp-photo-cap,
.bucket-method-subhead,
.porch-band p,
.bucket-video-section .bucket-video-kicker + h3,
.bucket-method-copy .bucket-method-subhead { font-size: 28px !important; }

/* Make the Bucket Strategy page hero gold subheading 28px even when inline styles exist. */
body .bucket-hero p[style*="A Common Sense"],
body p[style*="color:var(--gold-lt)"][style*="font-family:var(--font-serif)"] { font-size: 28px !important; }

/* Slightly smaller expandable labels in the challenge and money-cycle cards. */
#problem .pain-grid .pain-card summary { font-size: 16px !important; }
.money-phase-details summary { font-size: 16px !important; }

/* Keep the body copy inside those cards readable while labels are a bit smaller. */
#problem .pain-grid .pain-card h4,
#problem .pain-grid .pain-card .pain-short,
#problem .pain-grid .pain-card details p { font-size: 18px !important; }

/* Make main-content disclosures/captions match footer disclosure size without changing footer fonts. */
#problem p[style*="Image 2 shows"],
#problem p[style*="font-size:12px"],
.bucket-img-cap,
.bucket-video-disclosure,
.lane-disclaimer,
.cs-disclaimer,
#three-lanes p[style*="Lighthouse Financial Strategies and Cambridge Investment Research"],
#three-lanes p[style*="font-size: 13px"],
#three-lanes p[style*="font-size:13px"] { font-size: 12px !important; line-height: 1.45 ; }

/* Bucket Strategy video intro: smaller and title case, not all caps. */
.bucket-video-kicker { font-size: 14px !important; line-height: 1.45 ; letter-spacing: .4px ; text-transform: none !important; }

/* Homepage Bucket Strategy avatar slightly smaller. */
.bucket-method-avatar img { width: min(100%, 300px) !important; }

/* Hero stat labels slightly larger, but keep numbers unchanged. */
.hero-stats .stat-label { font-size: 14px !important; color: rgba(255,255,255,0.92) !important; }

/* Direct contact block: white contact values, gold labels. */
.direct-contact-label { color: #ffffff !important; }
.direct-contact-row { color: #ffffff !important; }
.direct-contact-row strong { color: var(--gold-lt) !important; }

/* Downsize case-study and porch imagery. */
.cs-teaser .section-photo { max-width: 680px !important; }
#case-studies .section-photo { max-width: 700px !important; }
.porch-band img { max-width: 760px !important; }

/* FAQ button should read as a solid white button over the photo background. */
.home-faq-photo .btn-outline { background: #ffffff !important; color: var(--navy) !important; border-color: #ffffff !important; }
.home-faq-photo .btn-outline:hover { background: rgba(255,255,255,.92) !important; color: var(--navy) !important; }

/* At-a-Glance box headers larger. */
.glance-item h4 { font-size: 16px !important; line-height: 1.25 ; }
.glance-main h4 { font-size: 1.55rem !important; }

/* Footer: larger tag line and tighter nav/resource lists. */
.footer-tag { font-size: 18px !important; line-height: 1.25 ; }
.footer-nav ul li { margin-bottom: 4px !important; line-height: 1.35 ; }
.footer-nav ul li a { line-height: 1.35 ; }
.footer-col-head { margin-bottom: 10px !important; }
#footer { padding-top: 52px !important; }

/* A little tighter vertical rhythm without changing site structure. */
.rule { margin-bottom: 30px !important; }
.identity-grid, .faq-list { margin-top: 34px !important; }
.cs-teaser-grid { margin-top: 22px !important; }
.at-a-glance, #who-we-work-with, #problem, #money-cycle, #three-lanes, #beacon-360, .home-faq, .cs-teaser { padding-top: 78px !important; padding-bottom: 78px !important; }

@media(max-width:760px){
  .hero-stats .stat-label{font-size:12px !important;}
  .temp-photo-cap,.bucket-method-subhead,.porch-band p{font-size:20px !important;}
  .cs-teaser .section-photo,#case-studies .section-photo,.porch-band img{max-width:100% !important;}
}


/* Final targeted refinement pass — 2026-07-08 */
/* Center both lines in the dark-blue reassurance message box. */
.hero-below-message,
.hero-below-message .hero-below-white,
.hero-below-message .hero-below-gold{
  text-align:center !important;
}
.hero-below-message .container{
  max-width:1280px !important;
  padding-left:24px !important;
  padding-right:24px !important;
}

/* Move the hero copy block slightly left on desktop only. */
@media(min-width:900px){
  .hero-content{
    margin-left:-28px !important;
  }
}

/* Make only hero stat labels a little bigger, not the numbers. */
.hero-stats .stat-label{
  font-size:16px !important;
  line-height:1.25 ;
}

/* Bucket Strategy homepage avatar: a little smaller and slightly lower. */
.bucket-method-avatar{
  align-self:end !important;
  padding-top:26px !important;
}
.bucket-method-avatar img{
  width:min(100%, 265px) !important;
}

/* Uniform smaller expandable labels across related card sections. */
#problem .pain-card summary,
.money-phase-details summary{
  font-size:14px !important;
  line-height:1.35 ;
}

/* Keep the three requested feature lines at 28px wherever they appear. */
.temp-photo-cap,
.bucket-method-subhead,
.bucket-method-copy .bucket-method-subhead,
body .bucket-hero p[style*="A Common Sense"],
.porch-band p{
  font-size:28px !important;
}

/* Tighter section spacing to reduce white/dead space without changing structure. */
:root{ --section-pad:64px 0; }
#who-we-work-with,
#problem,
#money-cycle,
#three-lanes,
#beacon-360,
.home-faq,
.cs-teaser{
  padding-top:64px !important;
  padding-bottom:64px !important;
}
.temp-photo-band + #money-cycle{
  padding-top:48px !important;
}
#three-lanes{
  padding-top:58px !important;
  padding-bottom:58px !important;
}
.porch-band{
  padding:40px 0 !important;
}
.rule{
  margin-bottom:22px !important;
}

/* At-a-Glance: tighter vertical spacing and no dead space. */
.at-a-glance{
  padding-top:52px !important;
  padding-bottom:52px !important;
}
.at-a-glance .rule{
  margin-bottom:20px !important;
}
.glance-card{
  margin-top:22px !important;
  gap:14px !important;
}
.glance-item{
  padding:16px 22px !important;
}
.glance-item h4{
  font-size:17px !important;
  line-height:1.25 ;
  margin-bottom:6px !important;
}
.glance-main h4{
  font-size:1.62rem !important;
}
.glance-item p{
  line-height:1.42 ;
}

/* Homepage FAQ questions larger. */
.home-faq .faq-q h4{
  font-size:28px !important;
  line-height:1.22 ;
}

/* Main-content disclosures/captions match footer disclosure size; footer itself is untouched. */
main .cs-disclaimer,
.cs-disclaimer,
.bucket-img-cap,
.bucket-video-disclosure,
.lane-disclaimer,
#problem p[style*="Image 2 shows"],
#problem p[style*="font-size:12px"],
#three-lanes p[style*="Lighthouse Financial Strategies and Cambridge Investment Research"],
#three-lanes p[style*="font-size: 13px"],
#three-lanes p[style*="font-size:13px"],
#bucket-strategy .bucket-img-cap,
#bucket-strategy .bucket-video-disclosure{
  font-size:12px !important;
  line-height:1.45 ;
}

/* Beacon 360 logo larger on homepage and Beacon page. */
#beacon-360 img[alt*="Beacon 360 Process"]{
  width:330px !important;
  max-width:100% !important;
}

/* Schedule qualification cards and not-for box headers larger. */
.sched-qual .q-box h4,
.schedule-not-for-box h4{
  font-size:19px !important;
  line-height:1.3 ;
}

/* Make How it works and its three step headers gold. */
.schedule-subhead{
  color:var(--gold-lt) !important;
}
.sched-steps.sched-steps-three .step strong{
  color:var(--gold-lt) !important;
}

@media(max-width:760px){
  .hero-content{margin-left:0 !important;}
  .hero-stats .stat-label{font-size:13px !important;}
  .temp-photo-cap,
  .bucket-method-subhead,
  .bucket-method-copy .bucket-method-subhead,
  body .bucket-hero p[style*="A Common Sense"],
  .porch-band p{font-size:20px !important;}
  .home-faq .faq-q h4{font-size:22px !important;}
  #beacon-360 img[alt*="Beacon 360 Process"]{width:260px !important;}
}

/* Micro-refinement pass — uniform card labels, disclosure sizing, image/card spacing, hero shift */
/* Move hero copy slightly farther left on desktop only. */
@media(min-width:900px){
  .hero-content{
    margin-left:-72px !important;
  }
}

/* Make all expandable micro-labels uniform across the related card sections. */
#problem .pain-card summary,
#problem .pain-card details summary,
.money-phase-details summary,
.money-phase details summary{
  font-size:13px !important;
  line-height:1.25 ;
  letter-spacing:.08em ;
}

/* Keep the Money Cycle caption/disclosure at footer disclosure size without changing footer styles. */
#problem p[style*="Image 2 shows"],
#money-cycle p[style*="Image 2 shows"],
main p[style*="Image 2 shows"]{
  font-size:12px !important;
  line-height:1.45 ;
}

/* Homepage Bucket Strategy avatar: smaller and lower/closer to the risk-card row. */
.bucket-method-avatar{
  align-self:end !important;
  padding-top:46px !important;
  transform:translateY(22px) !important;
}
.bucket-method-avatar img{
  width:min(100%, 240px) !important;
}

/* Three Lanes cards: reduce dead space at top and bottom while preserving structure. */
.lane-card{
  padding:26px 28px !important;
}
.lane-roman{
  margin-bottom:2px !important;
}
.lane-card h3{
  margin-bottom:10px !important;
}
.lane-card > p{
  margin-bottom:12px !important;
}
.lane-card ul li{
  padding-top:4px !important;
  padding-bottom:4px !important;
}

@media(max-width:760px){
  .hero-content{margin-left:0 !important;}
  .bucket-method-avatar{transform:none !important; padding-top:18px !important;}
}


/* Final follow-up refinements — 2026-07-08 */
/* Force Bucket Strategy gold subheading lines to 28px on home and standalone page. */
#bucket-strategy .bucket-method-subhead,
#bucket-strategy .bucket-method-copy .bucket-method-subhead,
.bucket-method-copy p.bucket-method-subhead,
body .bucket-hero p[style*="A Common Sense"],
body p[style*="A Common Sense Approach to Managing Income"]{
  font-size:28px !important;
  line-height:1.25 ;
}

/* Force porch/plan-protection caption to 28px. */
.porch-band p,
.porch-band p[style]{
  font-size:28px !important;
  line-height:1.25 ;
}

/* Less dead space at top of homepage Bucket Strategy section. */
#bucket-strategy .bucket-method-band,
.bucket-method-band{
  padding-top:52px !important;
  padding-bottom:30px !important;
}
.bucket-risk-home{ margin-top:28px !important; }

/* Money Cycle image disclosure: same size as current footer disclosure font. */
#money-cycle p[style*="Image 2 shows"],
#problem p[style*="Image 2 shows"],
main p[style*="Image 2 shows"]{
  font-size:12px !important;
  line-height:1.45 ;
  margin-top:8px !important;
}

/* Make every “Why this matters” label uniform in the challenge cards. */
#problem .pain-grid .pain-card details > summary,
#problem .pain-card details > summary,
.pain-grid .pain-card details > summary{
  font-family:var(--font-sans) !important;
  font-size:13px !important;
  line-height:1.25 ;
  letter-spacing:.08em ;
  font-weight:700 !important;
  text-transform:none !important;
}

/* Homepage Bucket Strategy avatar: smaller and lower, closer to the risk-card row. */
#bucket-strategy .bucket-method-avatar,
.bucket-method-avatar{
  align-self:end !important;
  padding-top:54px !important;
  transform:translateY(42px) !important;
}
#bucket-strategy .bucket-method-avatar img,
.bucket-method-avatar img{
  width:min(100%, 220px) !important;
}

/* Move the hero text starting point farther left on desktop. */
@media(min-width:900px){
  .hero-content{
    margin-left:-145px !important;
  }
}
@media(max-width:760px){
  .hero-content{ margin-left:0 !important; }
  #bucket-strategy .bucket-method-avatar,
  .bucket-method-avatar{ transform:none !important; padding-top:18px !important; }
}

/* Scroll-in card animation: cards fly in from sides, then settle in place. */
@media (prefers-reduced-motion: no-preference){
  .fly-card-ready{
    opacity:0;
    transition:opacity .65s ease, transform .65s ease;
    will-change:opacity, transform;
  }
  .fly-card-ready.fly-from-left{ transform:translateX(-58px); }
  .fly-card-ready.fly-from-right{ transform:translateX(58px); }
  .fly-card-ready.fly-in{
    opacity:1;
    transform:translateX(0);
  }
}
@media (prefers-reduced-motion: reduce){
  .fly-card-ready,
  .fly-card-ready.fly-from-left,
  .fly-card-ready.fly-from-right,
  .fly-card-ready.fly-in{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* Final micro-fixes requested — uniform labels, smaller disclosure, larger plan-protection line, repeat scroll animation, further hero shift */
/* Make all six “Why this matters” labels match the rest of the card text size. */
#problem .pain-grid .pain-card details > summary,
#problem .pain-card details > summary,
.pain-grid .pain-card details > summary,
.pain-card summary{
  font-size:18px !important;
  line-height:1.35 ;
  letter-spacing:0 ;
}

/* Make the Money Cycle image disclosure much smaller than body copy while not changing footer fonts. */
#money-cycle p[style*="Image 2 shows"],
#problem p[style*="Image 2 shows"],
main p[style*="Image 2 shows"]{
  font-size:10px !important;
  line-height:1.35 ;
  margin-top:7px !important;
}

/* Make “The life your plan is built to protect.” larger. */
.porch-band p,
.porch-band p[style]{
  font-size:32px !important;
  line-height:1.22 ;
}

/* Move the hero copy starting point a little farther left on desktop. */
@media(min-width:900px){
  .hero-content{
    margin-left:-180px !important;
  }
}
@media(max-width:760px){
  .hero-content{ margin-left:0 !important; }
}

/* Final follow-up edits — 2026-07-09 */
/* Move the hero copy starting point a little farther left on desktop. */
@media (min-width: 900px){
  .hero-content{ margin-left: -220px !important; }
}

/* Tighten the dead space at the top of the homepage Bucket Strategy band. */
#bucket-strategy .bucket-method-band,
.bucket-method-band{
  padding-top: 42px !important;
  padding-bottom: 48px !important;
}
#bucket-strategy .bucket-method-hero{
  gap: 36px !important;
  align-items: end !important;
}
#bucket-strategy .bucket-method-subhead,
.bucket-method-copy .bucket-method-subhead,
#bucket-strategy .bucket-method-band .bucket-method-subhead{
  font-size: 28px !important;
  line-height: 1.2 ;
}
#bucket-strategy .bucket-method-avatar{
  padding-top: 20px !important;
  align-self: end !important;
}
#bucket-strategy .bucket-method-avatar img,
.bucket-method-avatar img{
  width: min(100%, 268px) !important;
}

/* Make the Money Cycle disclosure very small, matching the small-disclosure treatment. */
.money-cycle-disclosure{
  font-size: 10px !important;
  line-height: 1.35 ;
  letter-spacing: .01em ;
}

/* Make the Bucket Strategy page disclosures very small. */
#bucket-strategy .bucket-img-cap,
#bucket-strategy .bucket-video-disclosure,
.bucket-img-cap,
.bucket-video-disclosure{
  font-size: 10px !important;
  line-height: 1.35 ;
}

/* Larger protection caption above At a Glance. */
.porch-band p,
.porch-band p[style]{
  font-size: 34px !important;
  line-height: 1.2 ;
}

/* About Mike badge text larger and CTA already renamed in markup. */
.about-years span{
  font-size: 14px !important;
  letter-spacing: 2.2px ;
}

/* Book page: enlarge the Inside the Book content. */
#book h4[style*="Inside the Book"]{
  font-size: 18px !important;
  letter-spacing: 2px ;
}
#book .book-card{
  padding: 18px 20px !important;
}
#book .book-card-icon{
  font-size: 1.85rem !important;
}
#book .book-card-title{
  font-size: 21px !important;
  line-height: 1.3 ;
}
#book .book-card-sub{
  font-size: 18px !important;
  line-height: 1.4 ;
}

/* Stronger, repeatable fly-in animation for cards, logos, and photos. */
@media (prefers-reduced-motion: no-preference){
  .fly-card-ready{
    opacity: 0;
    transition: opacity .82s cubic-bezier(.22,.61,.36,1), transform .82s cubic-bezier(.22,.61,.36,1) !important;
    will-change: opacity, transform;
    backface-visibility: hidden;
  }
  .fly-card-ready.fly-from-left{ transform: translate3d(-88px, 0, 0) !important; }
  .fly-card-ready.fly-from-right{ transform: translate3d(88px, 0, 0) !important; }
  .fly-card-ready.fly-in{
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
  }
}

@media (max-width: 760px){
  .porch-band p, .porch-band p[style]{ font-size: 24px !important; }
  #book .book-card-title{ font-size: 18px !important; }
  #book .book-card-sub{ font-size: 16px !important; }
  #bucket-strategy .bucket-method-band, .bucket-method-band{ padding-top: 34px !important; }
  #bucket-strategy .bucket-method-avatar img, .bucket-method-avatar img{ width: min(100%, 235px) !important; }
}

#book h4{ font-size: 18px !important; letter-spacing: 2px ; }

/* Revert hero first sentence to natural wrapping. */
.hero-content h1 .hero-h1-line-one{
  white-space: normal !important;
  display: inline !important;
}


/* Final targeted fixes: disclosures, bucket spacing, porch caption */
/* Make the Money Cycle disclosure very small. */
.money-cycle-disclosure,
#money-cycle .money-cycle-disclosure,
#money-cycle p.money-cycle-disclosure,
p.money-cycle-disclosure[style]{
  font-size: 9px !important;
  line-height: 1.3 ;
  letter-spacing: 0 ;
  color: var(--text-xlt) !important;
}

/* Make Bucket Strategy page disclosures very small. */
body .bucket-img-cap,
body #bucket-strategy .bucket-img-cap,
body .bucket-video-disclosure,
body #bucket-strategy .bucket-video-disclosure,
body #bucket-strategy p.bucket-img-cap,
body #bucket-strategy p.bucket-video-disclosure{
  font-size: 9px !important;
  line-height: 1.3 ;
  letter-spacing: 0 ;
}

/* Restore the home Bucket Strategy spacing closer to the original, only trimming the top a bit. */
#bucket-strategy .bucket-method-band,
.bucket-method-band{
  padding-top: 66px !important;
  padding-bottom: 52px !important;
}
#bucket-strategy .bucket-method-hero,
.bucket-method-hero{
  gap: 44px !important;
  align-items: center !important;
}
#bucket-strategy .bucket-method-copy,
.bucket-method-copy{
  padding-top: 0 !important;
}
#bucket-strategy .bucket-method-avatar,
.bucket-method-avatar{
  padding-top: 0 !important;
  align-self: center !important;
}

/* Make the porch caption larger above At a Glance. */
.porch-band p,
.porch-band p[style]{
  font-size: 36px !important;
  line-height: 1.18 ;
  margin-top: 18px !important;
}

@media (max-width: 760px){
  .porch-band p,
  .porch-band p[style]{
    font-size: 24px !important;
  }
  #bucket-strategy .bucket-method-band,
  .bucket-method-band{
    padding-top: 52px !important;
    padding-bottom: 44px !important;
  }
}

/* Final forced disclosure sizing */
.money-cycle-disclosure{
  font-size:17px !important;
  line-height:1.35 ;
}
#bucket-strategy .bucket-img-cap,
#bucket-strategy p.bucket-img-cap,
#bucket-strategy .bucket-video-disclosure,
#bucket-strategy p.bucket-video-disclosure,
.bucket-img-cap,
.bucket-video-disclosure{
  font-size:9px !important;
  line-height:1.25 ;
  letter-spacing:0 ;
}

/* Homepage Bucket Strategy avatar caption */
.bucket-avatar-caption{
  font-family: "Brush Script MT", "Segoe Script", "Lucida Handwriting", cursive;
  color: var(--gold);
  font-size: 30px;
  line-height: 1.1;
  text-align: center;
  margin: 8px 0 0;
  font-weight: 400;
}
.bucket-method-avatar{
  flex-direction: column;
}
@media(max-width:760px){
  .bucket-avatar-caption{
    font-size: 26px;
  }
}

/* Match homepage Bucket Strategy avatar caption size to standalone Bucket Strategy page */
.bucket-avatar-caption{
  font-size: 44px !important;
  line-height: 1.05 ;
  margin-top: 10px !important;
}
@media(max-width:760px){
  .bucket-avatar-caption{
    font-size: 34px !important;
  }
}

/* Enlarge homepage Bucket Strategy avatar caption to match avatar width */
#bucket-strategy .bucket-avatar-caption,
.bucket-avatar-caption{
  font-family: "Brush Script MT", "Segoe Script", "Lucida Handwriting", cursive !important;
  font-size: 58px !important;
  line-height: 1 ;
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  text-align: center !important;
  color: var(--gold) !important;
  margin: 12px auto 0 !important;
  white-space: nowrap !important;
}
@media(max-width:760px){
  #bucket-strategy .bucket-avatar-caption,
  .bucket-avatar-caption{
    font-size: 40px !important;
    width: min(100%, 240px) !important;
    max-width: 240px !important;
  }
}

/* Slightly reduce homepage Bucket Strategy avatar and caption */
#bucket-strategy .bucket-method-avatar img{
  width: min(100%, 250px) !important;
}
#bucket-strategy .bucket-avatar-caption,
.bucket-avatar-caption{
  font-size: 50px !important;
  width: min(100%, 270px) !important;
  max-width: 270px !important;
  margin-top: 10px !important;
}
@media(max-width:760px){
  #bucket-strategy .bucket-method-avatar img{
    width: min(100%, 220px) !important;
  }
  #bucket-strategy .bucket-avatar-caption,
  .bucket-avatar-caption{
    font-size: 36px !important;
    width: min(100%, 220px) !important;
    max-width: 220px !important;
  }
}

/* Swap support: keep swapped avatar blocks centered in their new locations without changing their current sizes */
#bucket-strategy .bucket-method-hero > div:has(img[src*="bucket-guy"]),
#bucket-strategy .bucket-method-hero > div:has(img[src*="The"]),
#bucket-strategy .bucket-method-hero > figure:has(img){
  justify-self: center;
}

/* Money Cycle intro image added to right side */
.money-cycle-intro{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(360px, 560px);
  gap:42px;
  align-items:center;
}
.money-cycle-intro-image img{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
  box-shadow:0 10px 32px rgba(8,20,40,.12);
}
@media(max-width:900px){
  .money-cycle-intro{
    grid-template-columns:1fr;
    gap:28px;
  }
  .money-cycle-intro-image{
    max-width:620px;
  }
}

.money-cycle-lightbox-trigger img{cursor:zoom-in}
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:99999;align-items:center;justify-content:center;padding:40px}
.lightbox.open{display:flex}
.lightbox-content{max-width:92vw;max-height:92vh}
.lightbox-close{position:absolute;top:20px;right:28px;color:#fff;font-size:46px;font-weight:bold;cursor:pointer}

/* ============================================================
   MOBILE-FRIENDLINESS POLISH PASS — 2026-07-09
   Phone-specific improvements only; desktop remains unchanged.
   ============================================================ */
@media (max-width: 760px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  html { scroll-padding-top: 78px; }
  body {
    padding-top: 72px;
    padding-bottom: 94px;
    font-size: 16px !important;
    line-height: 1.62 ;
  }
  .container,
  .footer-inner,
  .hero-below-message .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  :root { --section-pad: 46px 0 !important; }

  /* Header / navigation */
  #main-nav { position: fixed !important; }
  .nav-inner { height: 72px !important; min-height: 72px !important; }
  .nav-logo-img { padding-left: 8px !important; padding-right: 8px !important; max-width: calc(100vw - 72px) !important; }
  .nav-logo-img img { height: 58px !important; max-width: calc(100vw - 96px) !important; object-fit: contain !important; }
  .hamburger { display: flex !important; margin-right: 12px !important; padding: 10px !important; min-width: 46px; min-height: 46px; align-items: center; justify-content: center; }
  .hamburger span { width: 26px !important; height: 2px !important; }
  .nav-links.open {
    top: 72px !important;
    max-height: calc(100vh - 72px) !important;
    overflow-y: auto !important;
    padding: 14px 18px 24px !important;
    gap: 0 !important;
  }
  .nav-links.open li { width: 100% !important; }
  .nav-links.open li a,
  .nav-links.open .nav-group {
    display: block !important;
    width: 100% !important;
    padding: 12px 10px !important;
    font-size: 15px !important;
    line-height: 1.25 ;
  }
  .nav-links.open .dropdown-menu { padding-left: 12px !important; }
  .nav-cta { margin-left: 0 !important; margin-top: 6px !important; text-align: center !important; }

  /* Typography and rhythm */
  h1 { font-size: clamp(2rem, 9vw, 2.55rem) !important; line-height: 1.08 ; }
  h2 { font-size: clamp(1.7rem, 7.6vw, 2.15rem) !important; line-height: 1.13 ; }
  h3 { font-size: 1.35rem !important; line-height: 1.2 ; }
  h4 { font-size: 1rem !important; line-height: 1.3 ; }
  section:not(#home) p,
  .blog-excerpt,
  .problem-lead,
  .bucket-method-lead,
  .glance-item p,
  .faq-q p,
  .home-faq .faq-q p,
  .cc-sub,
  .cs-teaser-body span,
  .lane-card > p,
  .lane-card li,
  .beacon-col ul li {
    font-size: 16px !important;
    line-height: 1.58 ;
  }
  .eyebrow,
  .case-eyebrow,
  .bucket-risk-kicker,
  .bucket-video-kicker {
    font-size: 13px !important;
    letter-spacing: 1.6px ;
    line-height: 1.25 ;
  }
  .rule { margin: 14px 0 18px !important; }
  .rule-center { margin: 14px auto 18px !important; }

  /* Hero */
  #home {
    min-height: auto !important;
    display: block !important;
    padding: 34px 0 32px !important;
    overflow: hidden !important;
  }
  .hero-photo-bg {
    background-size: cover !important;
    background-position: 58% center !important;
    animation: none !important;
  }
  .hero-photo-overlay {
    background: linear-gradient(180deg, rgba(8,20,40,.84) 0%, rgba(13,34,64,.76) 52%, rgba(13,34,64,.62) 100%) !important;
  }
  .hero-bg-lines { background: rgba(8,20,40,.30) !important; }
  .hero-content {
    margin-left: 0 !important;
    max-width: 100% !important;
    padding: 0 18px !important;
  }
  .hero-content .eyebrow { font-size: 10px !important; letter-spacing: 2px ; margin-bottom: 10px !important; }
  .hero-content h1 { margin-bottom: 12px !important; }
  .hero-lead { font-size: 1.03rem !important; line-height: 1.48 ; margin-bottom: 16px !important; max-width: 100% !important; }
  .hero-ctas {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    margin-bottom: 18px !important;
    width: 100% !important;
  }
  .btn,
  .btn-primary,
  .btn-outline,
  .btn-hero-outline,
  .btn-outline-dark {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 14px 16px !important;
    font-size: 12px !important;
    line-height: 1.25 ;
    letter-spacing: 1px ;
    white-space: normal !important;
  }
  .hero-stats {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 18px !important;
    padding-top: 14px !important;
  }
  .hero-stats .stat {
    white-space: normal !important;
    gap: 10px !important;
    align-items: center !important;
  }
  .hero-stats .stat-num { font-size: 1.85rem !important; min-width: 54px !important; }
  .hero-stats .stat-label { font-size: 12px !important; line-height: 1.25 ; }
  .hero-stats .stat-divider { display: none !important; }
  .hero-service-line,
  .hero-reassurance-line { width: auto !important; white-space: normal !important; font-size: .92rem !important; }
  .hero-below-message { padding: 18px 0 !important; }
  .hero-below-line { font-size: 1rem !important; line-height: 1.35 ; white-space: normal !important; }
  .hero-below-line + .hero-below-line { margin-top: 8px !important; }

  /* Section spacing */
  #who-we-work-with,
  #problem,
  #money-cycle,
  #three-lanes,
  #beacon-360,
  .home-faq,
  .cs-teaser,
  .at-a-glance,
  #schedule,
  #faq,
  #about,
  #book,
  #bucket-strategy,
  .bucket-method-band { padding-top: 46px !important; padding-bottom: 46px !important; }
  .temp-photo-band { height: auto !important; min-height: 0 !important; border-bottom-width: 12px !important; }
  .temp-photo-band img { height: auto !important; min-height: 0 !important; object-fit: contain !important; }
  .temp-photo-cap { position: static !important; background: var(--navy) !important; font-size: 1rem !important; padding: 14px 18px !important; }

  /* Images and floated visuals */
  .split-photo,
  .who-side-photo-match,
  .section-photo,
  .porch-band img,
  .money-cycle-intro-image,
  .bucket-img-wrap {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 20px 0 !important;
  }
  .who-side-photo-match figcaption { font-size: 1rem !important; }
  .section-photo { margin-top: 22px !important; }
  .section-photo img,
  .split-photo,
  .who-side-photo-match img,
  .money-cycle-intro-image img { border-radius: 8px !important; }
  .porch-band { padding: 26px 0 !important; }
  .porch-band p, .porch-band p[style] { font-size: 1.35rem !important; line-height: 1.25 ; }

  /* Grids/cards stack cleanly */
  .identity-grid,
  .pain-grid,
  .bucket-grid,
  .bucket-method-hero,
  .bucket-risk-grid,
  .bucket-overview-home,
  .bucket-trio,
  .beacon-grid,
  .lanes-grid,
  .about-grid,
  .book-grid,
  .book-cards,
  .case-grid,
  .cs-teaser-grid,
  .blog-grid,
  .glance-card,
  .sched-qual,
  .sched-qual.sched-qual-three,
  .sched-steps,
  .sched-steps.sched-steps-three,
  .money-cycle-intro,
  #money-cycle div[style*="grid-template-columns:repeat(3"],
  #money-cycle div[style*="grid-template-columns: repeat(3"],
  #schedule div[style*="grid-template-columns"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .identity-card,
  .pain-card,
  .bucket-risk-card,
  .bucket-trio-item,
  .beacon-col,
  .lane-card,
  .glance-item,
  .home-faq .faq-q,
  .faq-q,
  .sched-qual .q-box,
  .sched-steps .step,
  .schedule-not-for-box,
  .expect-box,
  .cs-teaser-card,
  .case-card,
  .blog-card,
  .book-card {
    padding: 18px 18px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .bucket-risk-card + .bucket-risk-card,
  .beacon-col,
  .bucket-trio-item { border-left: 0 !important; border-right: 0 !important; }
  .pain-grid,
  .identity-grid,
  .beacon-grid,
  .bucket-trio { margin-top: 22px !important; }

  /* Money Cycle phone cleanup */
  #money-cycle [style*="grid-template-columns:repeat(3,1fr)"] > div:empty,
  #money-cycle [style*="grid-template-columns: repeat(3,1fr)"] > div:empty { display: none !important; }
  .money-phase-window-label { font-size: 13px !important; line-height: 1.45 ; padding: 12px 10px !important; }
  .money-phase-details summary,
  #problem .pain-card summary { font-size: 14px !important; line-height: 1.35 ; }
  .money-cycle-disclosure, #money-cycle .money-cycle-disclosure { font-size: 10px !important; }
  .money-cycle-lightbox-trigger { display: block !important; position: relative !important; }
  .money-cycle-lightbox-trigger::after {
    content: "Tap to enlarge";
    position: absolute;
    right: 10px;
    bottom: 10px;
    background: rgba(8,20,40,.88);
    color: #fff;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    padding: 7px 10px;
    border-radius: 999px;
  }
  .lightbox { padding: 18px !important; }
  .lightbox-content { max-width: 96vw !important; max-height: 84vh !important; }
  .lightbox-close { top: 8px !important; right: 14px !important; font-size: 42px !important; }

  /* Bucket Strategy phone cleanup */
  #bucket-strategy { padding-top: 0 !important; }
  .bucket-method-avatar, #bucket-strategy .bucket-method-avatar { transform: none !important; padding-top: 8px !important; justify-content: center !important; }
  #bucket-strategy .bucket-method-avatar img { width: min(100%, 190px) !important; margin: 0 auto !important; }
  .bucket-avatar-caption, #bucket-strategy .bucket-avatar-caption { font-size: 32px !important; max-width: 200px !important; width: 200px !important; }
  .bucket-method-subhead, #bucket-strategy .bucket-method-subhead { font-size: 1.35rem !important; line-height: 1.22 ; }
  .bucket-img-cap, .bucket-video-disclosure { font-size: 10px !important; }
  .bucket-video-section { padding: 22px 18px !important; margin-top: 28px !important; }

  /* Schedule / contact */
  #schedule .schedule-wrap-wide h2 { font-size: 1.85rem !important; line-height: 1.12 ; }
  .schedule-reassurance { font-size: 1rem !important; line-height: 1.55 ; }
  .schedule-subhead { font-size: 1.3rem !important; }
  .direct-contact-row { flex-direction: column !important; align-items: center !important; gap: 8px !important; font-size: 15px !important; }
  .contact-row { gap: 16px !important; }

  /* Footer */
  #footer { padding: 38px 0 112px !important; }
  .footer-cols { gap: 26px !important; padding-bottom: 30px !important; }
  .footer-tag { font-size: 14px !important; }
  .footer-brand p,
  .footer-nav ul li a,
  .footer-disc,
  .footer-disc p { font-size: 12px !important; line-height: 1.55 ; }
  .footer-badges { gap: 8px !important; }
  .footer-badges a { font-size: 10px !important; }

  /* Reduce motion/load on phones */
  .fly-card-ready,
  .fly-card-ready.fly-from-left,
  .fly-card-ready.fly-from-right,
  .fly-card-ready.fly-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Sticky bottom CTA for phones */
.mobile-sticky-cta { display: none; }
@media (max-width: 760px) {
  .mobile-sticky-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9998;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: rgba(8,20,40,.96);
    border-top: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 -8px 24px rgba(0,0,0,.22);
  }
  .mobile-sticky-cta a {
    font-family: var(--font-sans);
    text-align: center;
    border-radius: 4px;
  }
  .mobile-sticky-cta .mobile-sticky-primary {
    flex: 1 1 auto;
    background: var(--gold);
    color: var(--navy) !important;
    padding: 12px 10px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .8px;
    text-transform: uppercase;
    line-height: 1.15;
  }
  .mobile-sticky-cta .mobile-sticky-secondary {
    flex: 0 0 auto;
    color: #fff !important;
    padding: 10px 4px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.15;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

/* ============================================================
   TRUE MOBILE REBUILD OVERRIDE — 2026-07-09
   Strong phone-first overrides. This deliberately beats older
   desktop/inline styles that were still making the phone view feel
   like a squeezed desktop page.
   ============================================================ */
@media screen and (max-width: 900px) {
  html {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    scroll-padding-top: 66px !important;
  }
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    padding-top: 0 !important;
    padding-bottom: 88px !important;
    font-size: 17px !important;
    line-height: 1.58 ;
    -webkit-text-size-adjust: 100% !important;
  }
  * { max-width: 100%; }
  img, video, iframe, svg { max-width: 100% !important; height: auto !important; }

  /* Compact, genuinely mobile header */
  .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    background: #0D2240 !important;
  }
  .nav-inner {
    height: 64px !important;
    min-height: 64px !important;
    padding: 0 10px !important;
    background: #0D2240 !important;
  }
  .nav-logo-img {
    height: 64px !important;
    min-height: 64px !important;
    max-width: calc(100vw - 72px) !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: hidden !important;
  }
  .nav-logo-img img {
    height: 48px !important;
    width: auto !important;
    max-width: calc(100vw - 92px) !important;
    object-fit: contain !important;
    background: #fff !important;
    border-radius: 2px !important;
  }
  .hamburger {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    margin: 0 !important;
    padding: 10px !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    border-radius: 4px !important;
    background: rgba(255,255,255,.06) !important;
  }
  .hamburger span { width: 24px !important; height: 2px !important; background: #fff !important; }
  .nav-links {
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .nav-links.open {
    display: flex !important;
    position: fixed !important;
    top: 64px !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    max-height: calc(100vh - 64px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    background: #081428 !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
    padding: 10px 16px 22px !important;
    box-shadow: 0 18px 34px rgba(0,0,0,.35) !important;
  }
  .nav-links.open li { width: 100% !important; list-style: none !important; }
  .nav-links.open li a,
  .nav-links.open .nav-group {
    display: block !important;
    width: 100% !important;
    padding: 13px 8px !important;
    color: #fff !important;
    font-size: 16px !important;
    line-height: 1.25 ;
    text-shadow: none !important;
  }
  .nav-links.open .dropdown-menu {
    display: block !important;
    position: static !important;
    min-width: 0 !important;
    background: rgba(255,255,255,.04) !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 4px 0 7px 14px !important;
    margin: 0 0 4px !important;
  }
  .nav-links.open .dropdown-menu li a { font-size: 15px !important; padding: 9px 8px !important; }
  .nav-cta { margin: 8px 0 0 !important; text-align: center !important; background: var(--gold) !important; }

  /* Containers and text */
  .container,
  .footer-inner,
  .hero-below-message .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  section, .home-faq, .at-a-glance, .service-area, .bucket-method-band {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }
  h1 { font-size: clamp(2.0rem, 9.2vw, 2.55rem) !important; line-height: 1.08 ; letter-spacing: -.3px ; }
  h2 { font-size: clamp(1.65rem, 7.4vw, 2.12rem) !important; line-height: 1.12 ; }
  h3 { font-size: 1.35rem !important; line-height: 1.22 ; }
  h4 { font-size: 1rem !important; line-height: 1.32 ; }
  p, li, dd, dt, summary { overflow-wrap: anywhere !important; }
  p,
  section p,
  .problem-lead,
  .hero-lead,
  .bucket-method-lead,
  .lane-card li,
  .lane-card p,
  .faq-q p,
  .home-faq .faq-q p,
  .glance-item p,
  .footer-disc p {
    font-size: 16px !important;
    line-height: 1.56 ;
  }
  .eyebrow,
  .case-eyebrow,
  .bucket-risk-kicker,
  .bucket-video-kicker {
    font-size: 11px !important;
    letter-spacing: 1.7px ;
    line-height: 1.25 ;
    margin-bottom: 10px !important;
  }
  .rule { margin: 14px 0 20px !important; }
  .rule-center { margin: 14px auto 20px !important; }

  /* Phone hero: compact and readable, not a shrunken desktop section */
  #home {
    display: block !important;
    min-height: auto !important;
    height: auto !important;
    padding: 42px 0 36px !important;
    overflow: hidden !important;
  }
  .hero-photo-bg {
    background-size: cover !important;
    background-position: 60% center !important;
    animation: none !important;
    transform: none !important;
  }
  .hero-photo-overlay {
    background: linear-gradient(180deg, rgba(8,20,40,.91) 0%, rgba(13,34,64,.82) 56%, rgba(13,34,64,.70) 100%) !important;
  }
  .hero-accent-bar { width: 3px !important; }
  .hero-content {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 18px !important;
  }
  .hero-content h1 { margin-bottom: 14px !important; }
  .hero-content h1 br { display: none !important; }
  .hero-lead {
    max-width: 100% !important;
    margin: 0 0 18px !important;
    font-size: 1.02rem !important;
    line-height: 1.48 ;
    font-weight: 400 !important;
  }
  .hero-ctas { display: grid !important; grid-template-columns: 1fr !important; width: 100% !important; gap: 10px !important; margin: 0 0 18px !important; }
  .btn, .hero-ctas .btn, .btn-hero-outline, .btn-primary, .btn-outline, .btn-outline-dark {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 14px 14px !important;
    font-size: 12px !important;
    line-height: 1.2 ;
    letter-spacing: .8px ;
    white-space: normal !important;
    text-align: center !important;
  }
  .hero-stats {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding-top: 14px !important;
    margin-top: 0 !important;
    border-top: 1px solid rgba(255,255,255,.20) !important;
  }
  .stat { white-space: normal !important; width: 100% !important; }
  .stat-num { font-size: 1.75rem !important; min-width: 50px !important; }
  .stat-label { font-size: 11px !important; line-height: 1.25 ; }
  .stat-divider { display: none !important; }
  .hero-service-line, .hero-reassurance-line { white-space: normal !important; width: 100% !important; font-size: .92rem !important; line-height: 1.4 ; }
  .hero-below-message { padding: 18px 0 !important; }
  .hero-below-line { white-space: normal !important; font-size: 1rem !important; line-height: 1.35 ; display: block !important; }

  /* Hard-force all major desktop layouts into mobile one-column cards */
  .identity-grid,
  .identity-grid-tight,
  .pain-grid,
  .pain-grid-compact,
  .money-cycle-intro,
  .bucket-grid,
  .bucket-method-hero,
  .bucket-risk-grid,
  .bucket-overview-home,
  .bucket-trio,
  .beacon-grid,
  .lanes-grid,
  .about-grid,
  .book-grid,
  .book-cards,
  .case-grid,
  .cs-teaser-grid,
  .blog-grid,
  .glance-card,
  .sched-qual,
  .sched-qual-three,
  .sched-steps,
  .sched-steps-three,
  .footer-cols,
  [style*="grid-template-columns"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  [style*="grid-template-columns:repeat(3"] > div:empty,
  [style*="grid-template-columns: repeat(3"] > div:empty { display: none !important; }
  .identity-card,
  .pain-card,
  .money-phase,
  .bucket-risk-card,
  .bucket-trio-item,
  .beacon-col,
  .lane-card,
  .glance-item,
  .home-faq .faq-q,
  .faq-q,
  .q-box,
  .sched-steps .step,
  .schedule-not-for-box,
  .expect-box,
  .cs-teaser-card,
  .case-card,
  .blog-card,
  .book-card,
  [style*="padding:36px"],
  [style*="padding: 36px"] {
    padding: 18px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-left-width: 1px !important;
    border-right-width: 1px !important;
  }

  /* Images: never float or force desktop sizing on phones */
  .split-photo,
  .who-side-photo-match,
  .section-photo,
  .porch-band img,
  .money-cycle-intro-image,
  .bucket-img-wrap,
  figure,
  .about-photo-box,
  .book-spine {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 20px 0 !important;
  }
  .temp-photo-band { height: auto !important; min-height: 0 !important; }
  .temp-photo-band img { height: auto !important; min-height: 0 !important; object-fit: contain !important; }
  .temp-photo-cap { position: static !important; font-size: 1rem !important; line-height: 1.35 ; padding: 14px 18px !important; background: var(--navy) !important; }
  .porch-band { padding: 26px 0 !important; }
  .porch-band p, .porch-band p[style] { font-size: 1.35rem !important; line-height: 1.24 ; }

  /* Money Cycle: remove awkward desktop table feel */
  #money-cycle .container > div { max-width: 100% !important; }
  .money-cycle-intro { align-items: start !important; }
  .money-cycle-intro-image { order: 2 !important; }
  .money-cycle-intro-copy { order: 1 !important; }
  .money-phase-window-label { font-size: 13px !important; line-height: 1.4 ; padding: 12px !important; }
  .money-phase-details summary, .pain-card summary { font-size: 14px !important; padding: 10px 0 !important; }
  .money-cycle-lightbox-trigger { display: block !important; position: relative !important; }
  .money-cycle-lightbox-trigger::after {
    content: "Tap to enlarge";
    position: absolute;
    right: 10px;
    bottom: 10px;
    background: rgba(8,20,40,.88);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .6px;
    text-transform: uppercase;
    padding: 7px 10px;
    border-radius: 999px;
  }
  .lightbox { padding: 18px !important; }
  .lightbox-content { max-width: 96vw !important; max-height: 84vh !important; object-fit: contain !important; }
  .lightbox-close { top: 8px !important; right: 14px !important; font-size: 42px !important; }

  /* Bucket Strategy phone cleanup */
  .bucket-method-avatar, #bucket-strategy .bucket-method-avatar { transform: none !important; align-items: center !important; justify-content: center !important; }
  #bucket-strategy .bucket-method-avatar img { width: min(100%, 190px) !important; margin: 0 auto !important; }
  .bucket-avatar-caption, #bucket-strategy .bucket-avatar-caption { font-size: 32px !important; max-width: 210px !important; width: 210px !important; white-space: nowrap !important; }
  .bucket-method-subhead, #bucket-strategy .bucket-method-subhead { font-size: 1.35rem !important; line-height: 1.2 ; }
  .bucket-img-cap, .bucket-video-disclosure, #bucket-strategy .bucket-img-cap, #bucket-strategy .bucket-video-disclosure { font-size: 10px !important; line-height: 1.25 ; }

  /* Schedule/footer */
  #schedule .schedule-wrap-wide h2 { font-size: 1.8rem !important; }
  .schedule-reassurance { font-size: 1rem !important; line-height: 1.54 ; }
  .direct-contact-row, .contact-row { display: flex !important; flex-direction: column !important; gap: 8px !important; align-items: center !important; }
  #footer { padding-bottom: 120px !important; }
  .footer-cols { display: grid !important; grid-template-columns: 1fr !important; gap: 24px !important; }
  .footer-brand p, .footer-nav a, .footer-disc, .footer-disc p { font-size: 12px !important; line-height: 1.55 ; }

  /* No scroll animation on mobile */
  .fly-card-ready,
  .fly-card-ready.fly-from-left,
  .fly-card-ready.fly-from-right,
  .fly-card-ready.fly-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

@media screen and (max-width: 430px) {
  .container, .footer-inner, .hero-content { padding-left: 16px !important; padding-right: 16px !important; }
  h1 { font-size: 2.0rem !important; }
  h2 { font-size: 1.72rem !important; }
  .hero-content .eyebrow { font-size: 10px !important; letter-spacing: 1.4px ; }
  .mobile-sticky-cta { gap: 8px !important; padding-left: 10px !important; padding-right: 10px !important; }
  .mobile-sticky-cta .mobile-sticky-primary { font-size: 11px !important; }
  .mobile-sticky-cta .mobile-sticky-secondary { font-size: 10px !important; }
}

/* Subtle mobile hero background pan — added 2026-07-09
   Keeps mobile hero alive without using the stronger desktop animation. */
@media screen and (max-width: 900px) and (prefers-reduced-motion: no-preference) {
  #home .hero-photo-bg {
    background-size: auto 112% !important;
    background-position: 54% center !important;
    animation: hero-pan-mobile-subtle 42s ease-in-out infinite alternate !important;
    will-change: background-position !important;
  }
}

@keyframes hero-pan-mobile-subtle {
  0%   { background-position: 52% center; }
  100% { background-position: 66% center; }
}

@media screen and (max-width: 900px) and (prefers-reduced-motion: reduce) {
  #home .hero-photo-bg {
    animation: none !important;
    background-position: 60% center !important;
  }
}

/* HARD FIX: Mobile hero pan via actual layer transform, not background-position.
   This makes the image visibly drift on phones while keeping edges covered. */
@media screen and (max-width: 900px) and (prefers-reduced-motion: no-preference) {
  #home .hero-photo-bg {
    left: -14% !important;
    right: -14% !important;
    top: -3% !important;
    bottom: -3% !important;
    width: auto !important;
    height: auto !important;
    background-size: cover !important;
    background-position: center center !important;
    animation: hero-mobile-layer-pan 38s ease-in-out infinite alternate !important;
    transform: translate3d(-4%, 0, 0) scale(1.03) !important;
    will-change: transform !important;
  }
}

@keyframes hero-mobile-layer-pan {
  0% {
    transform: translate3d(-4%, 0, 0) scale(1.03);
  }
  100% {
    transform: translate3d(4%, 0, 0) scale(1.03);
  }
}

@media screen and (max-width: 900px) and (prefers-reduced-motion: reduce) {
  #home .hero-photo-bg {
    animation: none !important;
    transform: none !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    background-position: center center !important;
  }
}

/* FINAL FIX — mobile hero pan without edge strip/artifact.
   Uses a dedicated pseudo-layer so older mobile background-position/transform rules cannot cancel it. */
@media screen and (max-width: 900px) {
  #home {
    overflow: hidden !important;
    isolation: isolate !important;
  }
  #home .hero-photo-bg {
    position: absolute !important;
    inset: -12% 0 auto 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    height: auto !important;
    background: none !important;
    animation: none !important;
    transform: none !important;
    overflow: hidden !important;
  }
  #home .hero-photo-bg::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 118%;
    background-image: url("images/img-639065bb2654.webp");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    transform: translate3d(-8%, 0, 0) scale(1.02);
    backface-visibility: hidden;
  }
  #home .hero-accent-bar {
    display: none !important;
  }
}

@media screen and (max-width: 900px) and (prefers-reduced-motion: no-preference) {
  #home .hero-photo-bg::before {
    animation: hero-mobile-bg-layer-final 46s ease-in-out infinite alternate;
    will-change: transform;
  transition: none !important;
  }
}

@keyframes hero-mobile-bg-layer-final {
  0%   { transform: translate3d(-8%, 0, 0) scale(1.02); }
  100% { transform: translate3d(0, 0, 0) scale(1.02); }
}

@media screen and (max-width: 900px) and (prefers-reduced-motion: reduce) {
  #home .hero-photo-bg::before {
    animation: none !important;
    transform: translate3d(-4%, 0, 0) scale(1.02);
  }
}

/* VISIBLE MOBILE HERO PAN FIX — 2026-07-09
   Default mobile animation is ON. It is disabled only when the device explicitly requests reduced motion.
   Uses a wide pseudo-background layer so no edge/strip is exposed while the image drifts. */
@media screen and (max-width: 900px) {
  #home {
    overflow: hidden !important;
    isolation: isolate !important;
  }

  #home .hero-photo-bg {
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 124% !important;
    background: none !important;
    animation: none !important;
    transform: none !important;
    overflow: hidden !important;
    z-index: 0 !important;
  }

  #home .hero-photo-bg::before {
    content: "" !important;
    position: absolute !important;
    top: -2% !important;
    bottom: -2% !important;
    left: -22% !important;
    width: 144% !important;
    height: 104% !important;
    background-image: url("images/img-639065bb2654.webp") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    transform: translate3d(0,0,0) scale(1.02);
    animation: mobileHeroVisiblePan 24s ease-in-out infinite alternate !important;
    will-change: transform !important;
    backface-visibility: hidden !important;
  }

  #home .hero-photo-overlay,
  #home .hero-bg-lines,
  #home .hero-content {
    position: relative !important;
  }

  #home .hero-photo-overlay,
  #home .hero-bg-lines {
    z-index: 1 !important;
  }

  #home .hero-content {
    z-index: 2 !important;
  }

  #home .hero-accent-bar {
    display: none !important;
  }
}

@keyframes mobileHeroVisiblePan {
  0%   { transform: translate3d(0, 0, 0) scale(1.02); }
  100% { transform: translate3d(18%, 0, 0) scale(1.02); }
}

@media screen and (max-width: 900px) and (prefers-reduced-motion: reduce) {
  #home .hero-photo-bg::before {
    animation: none !important;
    transform: translate3d(9%, 0, 0) scale(1.02) !important;
  }
}


/* DEFINITIVE MOBILE HERO PAN FIX — actual img layer, not pseudo/background.
   This avoids Android/mobile conflicts where background-position or pseudo-element animation may be ignored
   and avoids !important transform declarations canceling keyframe motion. */
.hero-photo-mobile-pan-img {
  display: none;
}

@media screen and (max-width: 900px) {
  #home .hero-photo-bg {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    background: none !important;
    animation: none !important;
    transform: none !important;
    z-index: 0 !important;
  }

  #home .hero-photo-bg::before,
  #home .hero-photo-bg::after {
    content: none !important;
    display: none !important;
    animation: none !important;
  }

  #home .hero-photo-mobile-pan-img {
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 142vw !important;
    height: 112% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: translate3d(-57%, -50%, 0) scale(1.02);
    animation-name: heroActualImgPanMobile;
    animation-duration: 22s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  #home .hero-photo-overlay,
  #home .hero-bg-lines {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
  }

  #home .hero-content {
    position: relative !important;
    z-index: 2 !important;
  }
}

@-webkit-keyframes heroActualImgPanMobile {
  0%   { -webkit-transform: translate3d(-57%, -50%, 0) scale(1.02); transform: translate3d(-57%, -50%, 0) scale(1.02); }
  100% { -webkit-transform: translate3d(-43%, -50%, 0) scale(1.02); transform: translate3d(-43%, -50%, 0) scale(1.02); }
}

@keyframes heroActualImgPanMobile {
  0%   { -webkit-transform: translate3d(-57%, -50%, 0) scale(1.02); transform: translate3d(-57%, -50%, 0) scale(1.02); }
  100% { -webkit-transform: translate3d(-43%, -50%, 0) scale(1.02); transform: translate3d(-43%, -50%, 0) scale(1.02); }
}

@media screen and (max-width: 900px) and (prefers-reduced-motion: reduce) {
  #home .hero-photo-mobile-pan-img {
    animation: none !important;
    -webkit-animation: none !important;
    transform: translate3d(-50%, -50%, 0) scale(1.02) !important;
    -webkit-transform: translate3d(-50%, -50%, 0) scale(1.02) !important;
  }
}

/* MOBILE HERO BRIGHTNESS RESTORE — keep actual-img pan, restore richer/brighter photo look */
@media screen and (max-width: 900px) {
  #home .hero-photo-mobile-pan-img {
    opacity: 1 !important;
    filter: none !important;
  }

  #home .hero-photo-overlay {
    background: linear-gradient(
      180deg,
      rgba(8,20,40,.58) 0%,
      rgba(13,34,64,.50) 52%,
      rgba(13,34,64,.42) 100%
    ) !important;
  }

  #home .hero-bg-lines {
    background: rgba(8,20,40,.10) !important;
  }
}

@media screen and (max-width: 520px) {
  #home .hero-photo-overlay {
    background: linear-gradient(
      180deg,
      rgba(8,20,40,.62) 0%,
      rgba(13,34,64,.52) 52%,
      rgba(13,34,64,.44) 100%
    ) !important;
  }
}


/* MASTER LIST UPDATE — section headers, eyebrows, quotes/callouts slide in on scroll */
.inline-section-link {
  color: var(--navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--gold);
}
.inline-section-link:hover { color: var(--gold-dk); }

@media (prefers-reduced-motion: no-preference) {
  section:not(#home) .eyebrow.fly-card-ready,
  section:not(#home) h2.fly-card-ready,
  .problem-quote.fly-card-ready,
  .goal-support-line.fly-card-ready,
  .bucket-video-note.fly-card-ready,
  .bucket-video-disclosure.fly-card-ready,
  .cs-disclaimer.fly-card-ready,
  .schedule-note.fly-card-ready,
  blockquote.fly-card-ready {
    transition-duration: .72s !important;
  }
}

@media (max-width: 760px) {
  .inline-section-link { font-size: 16px; line-height: 1.45; }
}


/* MASTER LIST REAPPLY — internal links and section/callout reveal polish */
.inline-section-link {
  color: var(--navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--gold);
}
.inline-section-link:hover { color: var(--gold-dk); }
@media (prefers-reduced-motion: no-preference) {
  section:not(#home) .eyebrow.fly-card-ready,
  section:not(#home) h1.fly-card-ready,
  section:not(#home) h2.fly-card-ready,
  .problem-quote.fly-card-ready,
  .goal-support-line.fly-card-ready,
  .bucket-video-note.fly-card-ready,
  .bucket-video-disclosure.fly-card-ready,
  .cs-disclaimer.fly-card-ready,
  .schedule-note.fly-card-ready,
  .callout.fly-card-ready,
  .quote.fly-card-ready,
  blockquote.fly-card-ready {
    transition-duration: .72s !important;
  }
}
@media (max-width: 760px) {
  .inline-section-link { font-size: 16px; line-height: 1.45; }
}

/* HORIZONTAL MOBILE OVERFLOW FIX + STICKY MENU PRESERVATION — 2026-07-10
   Safer than hiding overflow on html/body, which can break sticky headers on some mobile browsers. */
html {
  max-width: 100%;
  overflow-x: clip;
}
body {
  max-width: 100%;
  overflow-x: clip;
}
*, *::before, *::after { box-sizing: border-box; }
img, svg, video, canvas, iframe { max-width: 100%; }

@media screen and (max-width: 900px) {
  html {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    scroll-padding-top: 66px !important;
  }
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  /* Keep the mobile menu/header visible while scrolling. */
  .site-header {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 99999 !important;
    width: 100% !important;
    max-width: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    background: #0D2240 !important;
  }
  .nav-inner {
    width: 100% !important;
    max-width: none !important;
  }

  main, section, footer, .container,
  .hero, .hero-content, .hero-stats, .hero-below, .hero-below-inner,
  .pain-grid, .pain-grid-compact, .identity-grid, .identity-grid-tight,
  .lanes-grid, .beacon-grid-summary, .sched-steps, .sched-steps-three,
  .sched-qual, .sched-qual-three, .schedule-wrap, .schedule-wrap-wide,
  .cs-teaser-grid, .glance-grid, .footer-grid, .money-cycle-intro {
    max-width: 100% !important;
  }
  .container, .hero-content, .hero-below-inner {
    padding-left: clamp(16px, 5vw, 22px) !important;
    padding-right: clamp(16px, 5vw, 22px) !important;
  }
  .hero-photo-bg, .hero-photo-overlay, .hero-bg-lines, .lightbox, .mobile-sticky-cta {
    max-width: 100vw !important;
    overflow: hidden !important;
  }
  #home .hero-photo-mobile-pan-img {
    max-width: none !important;
    width: 142vw !important;
  }
  .btn, .btn-primary, .btn-outline, .btn-hero-outline, .nav-cta,
  .mobile-sticky-primary, .mobile-sticky-secondary { white-space: normal !important; }
  h1, h2, h3, h4, p, li, a, span { overflow-wrap: break-word; }
  table { display: block; width: 100%; overflow-x: auto; }
  .lightbox-content img, .money-cycle-lightbox-trigger img, .bucket-image img,
  .section-photo img, .split-photo img { max-width: 100% !important; height: auto !important; }
}

@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}

/* ============================================================
   TEMPORARY WCAG 2.2 AA COLOR-CONTRAST PREVIEW — corrected
   Contrast-only overrides plus header CTA text sharpening.
   ============================================================ */
:root {
  --text-xlt: #626978;
  --gold-dk: #8A5C12;
}

/* Gold button surfaces retain the vibrant brand gold; dark navy text passes AA. */
.btn-primary,
.nav-cta,
.beacon-icon,
.about-badge,
.book-cover::before,
.cc-btn:hover {
  color: var(--navy-dk) !important;
}

.btn-primary:hover,
.nav-cta:hover {
  color: var(--navy-dk) !important;
}

/* The general navigation link shadow made the gold header CTA lettering look blurry. */
.nav-links li a.nav-cta,
.nav-links li a.nav-cta:hover,
.nav-links li a.nav-cta:focus-visible {
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

/* Small gold copy on light surfaces uses a darker accessible brand gold. */
#bucket-strategy .eyebrow,
#beacon-360 .eyebrow,
#three-lanes .eyebrow,
#book .eyebrow,
#faq .eyebrow,
#blog .eyebrow,
#glossary .eyebrow,
.case-eyebrow,
.cs-label,
.cc-btn,
.pain-card details[open] summary,
.money-phase-details summary,
.blog-article a,
.article-content a,
main p a,
main li a {
  color: var(--gold-dk);
}

/* Bright gold remains on navy because this pairing already passes. */
#problem .eyebrow,
#about .eyebrow,
#schedule .eyebrow,
.home-faq-photo .eyebrow,
#bucket-strategy.bucket-dark .eyebrow,
.dark-section .eyebrow,
.footer-brand .eyebrow,
.pain-card summary,
.sched-qual h4,
.sched-qual li::before,
.sched-steps .step .n {
  color: var(--gold-lt) !important;
}

.footer-brand p,
.footer-nav h4,
.footer-nav ul li a,
.footer-bottom,
.schedule-note {
  color: rgba(255,255,255,0.78);
}

/* ============================================================
   OFFICIAL ACCESSIBLE GOLD PALETTE — 2026-07-10
   Uses the approved Blue Angels-inspired palette with WCAG-safe light-surface text.
   ============================================================ */
:root {
  --gold-rich-preview: #F2B931;
  --gold-secondary: #F7C95F;
  --gold-light-accent: #FEE29B;
}

/* Header Schedule a Call button only: remove all lettering shadow. */
.site-header .nav-links li a.nav-cta,
.site-header .nav-links li a.nav-cta:hover,
.site-header .nav-links li a.nav-cta:focus,
.site-header .nav-links li a.nav-cta:focus-visible {
  background-color: var(--gold-rich-preview) !important;
  color: var(--navy-dk) !important;
  text-shadow: none !important;
  filter: none !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Approved primary gold on navy/dark-blue surfaces. */
#problem .eyebrow,
#about .eyebrow,
#schedule .eyebrow,
.home-faq-photo .eyebrow,
#bucket-strategy.bucket-dark .eyebrow,
.dark-section .eyebrow,
.footer-brand .eyebrow,
.pain-card summary,
.sched-qual h4,
.sched-qual li::before,
.sched-steps .step .n,
.hero-below-gold,
.bucket-method-eyebrow,
.bucket-method-subhead,
.direct-contact-row strong,
.bucket-overview-home .eyebrow,
.bucket-overview-home .bucket-method-subhead {
  color: var(--gold-rich-preview) !important;
}

.dark-section .rule,
.home-faq-photo .rule,
.bucket-dark .rule,
.btn-primary,
.mobile-sticky-primary {
  background-color: var(--gold-rich-preview) !important;
}

/* ============================================================
   FULL WCAG 2.2 AA ACCESSIBILITY IMPLEMENTATION — 2026-07-10
   ============================================================ */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.skip-link { position:fixed; left:16px; top:-120px; z-index:1000000; padding:14px 18px; background:#fff; color:#0D2240; border:3px solid #0D2240; border-radius:4px; font-weight:800; text-decoration:none; }
.skip-link:focus { top:16px; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid #FEE29B!important; outline-offset:4px!important; box-shadow:0 0 0 7px #0D2240!important; }
main { display:block; }
main:focus { outline:none; }
section[id], h1[id], h2[id], h3[id], [id] { scroll-margin-top:100px; }
.nav-group { appearance:none; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; padding:12px 10px; min-height:44px; }
.nav-group .caret { display:inline-block; transition:transform .2s ease; }
.nav-group[aria-expanded="true"] .caret { transform:rotate(180deg); }
.dropdown-menu[hidden] { display:none!important; }
.hamburger { min-width:44px; min-height:44px; }
.nav-links a, .nav-group, summary, .btn, .mobile-sticky-cta a { min-height:44px; }
summary { cursor:pointer; padding-block:10px; }
main p a, main li a { text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1.5px; }
main .btn, main .stat, main .money-cycle-lightbox-trigger { text-decoration:none; }
.schedule-access-help { margin:18px auto 0; max-width:720px; color:rgba(255,255,255,.9); font-size:1rem; }
.schedule-access-help a { color:#FEE29B!important; font-weight:700; }
.accessibility-page { padding:150px 0 90px; background:#fff; }
.accessibility-content { max-width:860px; }
.accessibility-content h1 { color:#0D2240; margin-bottom:28px; }
.accessibility-content h2 { color:#0D2240; margin-top:32px; font-size:1.45rem; }
.accessibility-content p { color:#333B49; font-size:1.05rem; line-height:1.75; }
.lightbox[aria-hidden="true"] { display:none!important; }
.lightbox.open { display:flex!important; }
.lightbox-close { border:2px solid #fff; background:#0D2240; color:#fff; min-width:48px; min-height:48px; cursor:pointer; }
.footer-disc, .footer-disc p { font-size:max(14px,.875rem)!important; line-height:1.6; }
@media (max-width:900px) {
  .nav-links:not(.open) { visibility:hidden; pointer-events:none; }
  .nav-links.open { visibility:visible; pointer-events:auto; }
  .nav-group { width:100%; text-align:left; display:flex; justify-content:space-between; align-items:center; }
  .dropdown-menu { position:static!important; }
  body.menu-open { overflow:hidden; }
}
@media (max-width:400px) {
  .btn, .nav-cta, .mobile-sticky-cta a { max-width:100%; white-space:normal!important; overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto!important; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; transition-delay:0ms!important; }
  .hero-photo-mobile-pan-img, .hero-photo-bg { animation:none!important; transform:none!important; }
}
@media (forced-colors: active) {
  :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid CanvasText!important; box-shadow:none!important; }
}

/* SECOND-PASS ACCESSIBILITY VERIFICATION FIXES — 2026-07-10 */
body.dialog-open { overflow: hidden !important; }


/* ACCESSIBLE VIDEO TRANSCRIPT — 2026-07-10 */
.video-transcript { max-width: 920px; margin: 22px auto 0; border: 1px solid rgba(13,34,64,.22); border-radius: 6px; background: #fff; color: #273142; text-align: left; }
.video-transcript summary { display: list-item; padding: 16px 20px; color: #0D2240; font-weight: 800; font-size: 1rem; line-height: 1.45; }
.video-transcript[open] summary { border-bottom: 1px solid rgba(13,34,64,.18); }
.video-transcript-body { padding: 20px; }
.video-transcript-body h4 { margin: 0 0 8px; color: #0D2240; font-size: 1.2rem; }
.video-transcript-body p { color: #333B49; font-size: 1rem; line-height: 1.75; margin: 0 0 1em; }
.video-transcript-body .video-transcript-note { font-style: italic; color: #626978; }
@media (max-width: 600px) { .video-transcript summary, .video-transcript-body { padding-left: 16px; padding-right: 16px; } }


/* ============================================================
   AUDIOEYE REMEDIATION PASS — 2026-07-10
   Preserve the exact visual treatment of homepage labels whose
   semantic heading level changed from H4 to H3.
   ============================================================ */
h3.ada-former-h4 {
  font-family: var(--font-sans);
  font-weight: 600;
  line-height: 1.3;
  color: var(--charcoal);
  font-size: 1.05rem;
}
.identity-card h3.ada-former-h4 { font-size: 1.05rem; }
.pain-card h3.ada-former-h4 { color: rgba(255,255,255,0.96); margin-bottom:10px; font-size:0.95rem; font-family:var(--font-sans); font-weight:600; letter-spacing:.2px; }
.beacon-col h3.ada-former-h4 { font-family:var(--font-sans); }
.home-faq .faq-q h3.ada-former-h4 { margin:0 0 6px; font-family:var(--font-serif); color:var(--navy); font-size:1.12rem; font-weight:400; }
.glance-item h3.ada-former-h4,
.q-box h3.ada-former-h4,
.schedule-not-for-box h3.ada-former-h4 { font-family:var(--font-sans); }


/* ============================================================
   HEADER NAV VISIBILITY + HOMEPAGE BRAND CAPTION — 2026-07-10
   Keep dropdown labels visually identical to the standard nav link.
   ============================================================ */
@media (min-width: 761px) {
  #main-nav .nav-links > li > .nav-group {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: rgba(255,255,255,0.94) !important;
    text-shadow: none !important;
    font-family: var(--font-sans) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    letter-spacing: 0.2px ;
  }

  #main-nav .nav-links > li > .nav-group:hover,
  #main-nav .nav-links > li > .nav-group:focus,
  #main-nav .nav-links > li > .nav-group:focus-visible,
  #main-nav .nav-links > li > .nav-group[aria-expanded="true"] {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    color: #ffffff !important;
    text-shadow: none !important;
  }

  #main-nav .nav-links > li > a:not(.nav-cta) {
    color: rgba(255,255,255,0.94) !important;
    text-shadow: none !important;
  }

  #main-nav .nav-links > li > a:not(.nav-cta):hover,
  #main-nav .nav-links > li > a:not(.nav-cta):focus-visible {
    color: #ffffff !important;
    text-shadow: none !important;
  }
}


/* FINAL HEADER NAV COLOR CORRECTION + HOMEPAGE BRAND CAPTION — 2026-07-10 */
@media (min-width: 761px) {
  .site-header nav .nav-links > li > button.nav-group,
  .site-header nav .nav-links > li > button.nav-group:visited {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-image: none !important;
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    opacity: 1 !important;
  }
  .site-header nav .nav-links > li > button.nav-group:hover,
  .site-header nav .nav-links > li > button.nav-group:focus,
  .site-header nav .nav-links > li > button.nav-group:focus-visible,
  .site-header nav .nav-links > li > button.nav-group[aria-expanded="true"] {
    background: transparent !important;
    background-image: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    filter: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    opacity: 1 !important;
  }
  .site-header nav .nav-links > li > button.nav-group .caret {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: .9 !important;
    text-shadow: none !important;
  }
}


/* DEFINITIVE HEADER NAV + BUCKET IMAGE REPAIR — 2026-07-10 */
@media (min-width: 761px) {
  .site-header .nav-links > li > button.nav-group {
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    background:transparent !important;
    background-color:transparent !important;
    background-image:none !important;
    border:none !important;
    box-shadow:none !important;
    text-shadow:none !important;
    filter:none !important;
    opacity:1 !important;
  }
  .site-header .nav-links > li > button.nav-group:hover,
  .site-header .nav-links > li > button.nav-group:focus,
  .site-header .nav-links > li > button.nav-group:focus-visible,
  .site-header .nav-links > li > button.nav-group[aria-expanded="true"] {
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    background:transparent !important;
    box-shadow:none !important;
    text-shadow:none !important;
  }
  /* Dropdown visibility follows the hidden attribute managed by accessible JavaScript. */
  .has-dropdown > .dropdown-menu:not([hidden]) { display:block !important; }
}
.bucket-img-wrap .bucket-strategy-lightbox-trigger img {
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
}


/* AudioEye bucket-strategy remediation 2026-07-10 */
.bucket-diagram-trigger {
  display:block; width:100%; padding:0; margin:0; background:#fff;
  border:3px solid #0D2240; border-radius:4px; cursor:zoom-in; text-align:left;
}
.bucket-diagram-trigger img { display:block; width:100%; height:auto; }
.bucket-diagram-trigger-label {
  display:block; padding:10px 14px; background:#0D2240; color:#fff;
  font-family:Inter,Arial,sans-serif; font-size:1rem; font-weight:700;
}
.bucket-diagram-trigger:hover .bucket-diagram-trigger-label,
.bucket-diagram-trigger:focus-visible .bucket-diagram-trigger-label { background:#17375E; }
.footer-heading { font-family:Inter,Arial,sans-serif; font-weight:700; margin:0 0 .5rem; }

/* AudioEye homepage modal trigger remediation */
.money-cycle-lightbox-trigger,.bucket-strategy-lightbox-trigger{font:inherit;color:inherit;text-align:inherit;}

/* 2026-07-10 AudioEye final targeted remediation: preserve former H3 appearance after semantic promotion */
h2.h3-visual { font-size:clamp(1.3rem,2.5vw,1.8rem); font-weight:400; font-style:normal; margin-bottom:18px; }
h2.ada-former-h4 { font-family:var(--font-sans); font-size:1.05rem; line-height:1.35; font-weight:600; font-style:normal; margin-bottom:10px; }
.identity-card h2.ada-former-h4 { font-size:1.05rem; }
.pain-card h2.ada-former-h4 { color:rgba(255,255,255,0.96); margin-bottom:10px; font-size:0.95rem; font-family:var(--font-sans); font-weight:600; letter-spacing:.2px; }
.beacon-col h2.ada-former-h4 { font-family:var(--font-sans); }
.home-faq .faq-q h2.ada-former-h4 { margin:0 0 6px; font-family:var(--font-serif); color:var(--navy); font-size:1.12rem; font-weight:400; }
.glance-item h2.ada-former-h4, .q-box h2.ada-former-h4, .schedule-not-for-box h2.ada-former-h4 { font-family:var(--font-sans); }
.lane-card h2.h3-visual { font-size:1.15rem; font-style:normal; color:var(--charcoal); margin-bottom:14px; font-family:var(--font-sans); font-weight:600; }
#bucket-strategy .bucket-overview-home h2.h3-visual { color:#fff; }

/* FONT CONSISTENCY + HOMEPAGE FAQ SIZE — 2026-07-10 */
/* Keep explanatory body copy in Inter; reserve Playfair for headings/editorial labels. */
#problem .problem-lead {
  font-family: var(--font-sans);
  font-style: normal;
  font-weight: 400;
}

/* Slightly enlarge all homepage FAQ questions while retaining Playfair Display. */
.home-faq .faq-q h2.h3-visual {
  font-family: var(--font-serif);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  line-height: 1.22;
  font-weight: 400;
  margin: 0 0 8px;
}


/* ============================================================
   TARGETED TYPOGRAPHY / BRAND-GOLD / MOBILE LOGO POLISH — 2026-07-11
   ============================================================ */
.schedule-gold-heading {
  color: var(--gold-rich-preview) !important;
  font-family: var(--font-sans) !important;
  font-size: clamp(1rem, 1.5vw, 1.18rem) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  margin-bottom: 12px !important;
}

.eyebrow.eyebrow-brand-gold {
  color: var(--gold-rich-preview) !important;
}

@media (max-width: 760px) {
  .nav-logo-img {
    max-width: calc(100vw - 62px) !important;
  }
  .nav-logo-img img {
    height: 56px !important;
    max-width: calc(100vw - 76px) !important;
  }
}

/* MOBILE-ONLY LOGO ENLARGEMENT — 2026-07-11 */
@media (max-width: 760px) {
  .nav-logo-img {
    max-width: calc(100vw - 58px) !important;
  }
  .nav-logo-img img {
    height: 66px !important;
    max-width: calc(100vw - 70px) !important;
    width: auto !important;
    object-fit: contain !important;
  }
}

/* EXTRA-LARGE MOBILE-ONLY LOGO — 2026-07-11 */
@media (max-width: 760px) {
  #main-nav,
  .nav-inner {
    height: 104px !important;
    min-height: 104px !important;
  }
  .nav-inner {
    padding: 0 8px !important;
  }
  .nav-logo-img {
    height: 104px !important;
    min-height: 104px !important;
    max-width: calc(100vw - 64px) !important;
    padding: 0 !important;
    overflow: visible !important;
    display: flex !important;
    align-items: center !important;
  }
  .nav-logo-img img {
    height: 92px !important;
    width: auto !important;
    max-width: calc(100vw - 72px) !important;
    object-fit: contain !important;
  }
  .nav-links.open {
    top: 104px !important;
    max-height: calc(100vh - 104px) !important;
  }
}

/* Entity clarification paragraph on the dark About hero */
#about .entity-clarifier {
  max-width: 760px;
  color: #ffffff;
  font-size: 1rem;
  line-height: 1.7;
  margin: 0 0 14px;
}

#about .entity-clarifier strong {
  color: #ffffff;
  font-weight: 700;
}


/* Beacon 360 homepage expandable phase details — 2026-07-16 */
.beacon-grid-summary .beacon-col {
  justify-content:flex-start;
  min-height:260px;
}
.beacon-grid-summary .beacon-col h2.ada-former-h4 {
  font-size:29px !important;
  line-height:1.2;
  margin-bottom:6px;
}
.beacon-grid-summary .beacon-phase-details {
  width:100%;
  margin-top:14px;
  text-align:left;
  border-top:1px solid var(--border);
}
.beacon-grid-summary .beacon-phase-details + .beacon-phase-details {
  margin-top:4px;
}
.beacon-grid-summary .beacon-phase-details summary {
  position:relative;
  cursor:pointer;
  list-style:none;
  padding:13px 24px 13px 0;
  color:var(--navy);
  font-family:var(--font-sans);
  font-size:15px;
  line-height:1.35;
  font-weight:700;
}
.beacon-grid-summary .beacon-phase-details summary::-webkit-details-marker { display:none; }
.beacon-grid-summary .beacon-phase-details summary::after {
  content:'+';
  position:absolute;
  right:2px;
  top:11px;
  color:var(--burgundy);
  font-size:22px;
  line-height:1;
  font-weight:500;
}
.beacon-grid-summary .beacon-phase-details[open] summary::after { content:'−'; }
.beacon-grid-summary .beacon-phase-details summary:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:3px;
  border-radius:2px;
}
.beacon-grid-summary .beacon-phase-details ul {
  display:block;
  margin:0 0 12px;
  padding:0;
}
.beacon-grid-summary .beacon-phase-details ul li {
  font-size:15px;
  line-height:1.45;
  color:var(--text-lt);
  text-align:left;
  padding:7px 0 7px 15px;
}
@media(max-width:760px){
  .beacon-grid-summary .beacon-col h2.ada-former-h4 { font-size:27px !important; }
  .beacon-grid-summary .beacon-phase-details summary { font-size:16px; }
}


/* Beacon 360 homepage follow-up and coordination sections — 2026-07-16 */
.beacon-home-followup {
  margin-top: 34px;
  border: 1px solid var(--border);
  border-left: 4px solid var(--gold);
  background: var(--off-white);
  padding: 8px 28px;
}
.beacon-home-followup .beacon-phase-details {
  width: 100%;
  margin: 0;
  text-align: left;
}
.beacon-home-followup .beacon-phase-details summary {
  position: relative;
  cursor: pointer;
  list-style: none;
  padding: 18px 34px 18px 0;
  color: var(--navy);
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 1.35;
  font-weight: 700;
}
.beacon-home-followup .beacon-phase-details summary::-webkit-details-marker { display: none; }
.beacon-home-followup .beacon-phase-details summary::after {
  content: '+';
  position: absolute;
  right: 2px;
  top: 15px;
  color: var(--burgundy);
  font-size: 26px;
  line-height: 1;
  font-weight: 500;
}
.beacon-home-followup .beacon-phase-details[open] summary::after { content: '−'; }
.beacon-home-followup .beacon-phase-details summary:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-radius: 2px;
}
.beacon-home-followup ul {
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}
.beacon-home-followup li {
  position: relative;
  padding: 8px 0 8px 20px;
  color: var(--text-md);
  font-size: 17px;
  line-height: 1.55;
}
.beacon-home-followup li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: var(--gold);
}
.beacon-coordinate-block {
  margin-top: 42px;
  padding: 38px 40px;
  background: var(--navy);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(8,20,40,.16);
}
.beacon-coordinate-block h3 {
  margin-bottom: 8px;
  color: var(--gold);
}
.beacon-coordinate-block .rule {
  background: var(--gold);
}
.beacon-coordinate-block p {
  max-width: 860px;
  margin: 0;
  color: rgba(255,255,255,.94);
  font-size: 18px;
  line-height: 1.75;
}
@media(max-width:760px){
  .beacon-home-followup { padding: 6px 20px; }
  .beacon-home-followup .beacon-phase-details summary { font-size: 17px; }
  .beacon-coordinate-block { padding: 28px 24px; }
  .beacon-coordinate-block p { font-size: 17px; }
}


/* HOMEPAGE FAQ SLIGHT SIZE REDUCTION — 2026-07-16 */
.home-faq .faq-q h2.h3-visual {
  font-size: clamp(1.25rem, 1.75vw, 1.58rem) !important;
  line-height: 1.22;
}
.home-faq .faq-q p {
  font-size: 15.5px !important;
  line-height: 1.55;
}
@media (max-width:760px) {
  .home-faq .faq-q h2.h3-visual { font-size: 1.2rem !important; }
  .home-faq .faq-q p { font-size: 15px !important; }
}

/* HOMEPAGE SCHEDULE LIFESTYLE IMAGE — 2026-07-16 */
.schedule-lifestyle {
  width: min(520px, 100%);
  margin: 26px auto 28px;
}
.schedule-lifestyle img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 8px 26px rgba(0,0,0,.24);
}
.schedule-lifestyle p {
  margin: 12px 0 0;
  color: var(--gold);
  font-family: var(--font-serif);
  font-size: 22px;
  font-style: italic;
  text-align: center;
}
@media(max-width:760px){
  .schedule-lifestyle { width: min(420px, 100%); margin: 22px auto 24px; }
  .schedule-lifestyle p { font-size: 20px; }
}


/* HOMEPAGE VERTICAL COMPACTION + READABLE EXPANDERS — 2026-07-16
   Deliberately excludes the Buckets Guy avatar block and its surrounding spacing. */
@media (min-width: 761px) {
  /* Reduce excess space in the self-identification cards. */
  #who-we-work-with .identity-grid-tight { margin-top: 24px !important; }
  #who-we-work-with .identity-grid-tight .identity-card { padding: 19px 22px !important; }
  #who-we-work-with .identity-card .id-num { margin-bottom: 7px !important; font-size: 1.65rem; }
  #who-we-work-with .identity-card h2.h3-visual { margin: 0 !important; line-height: 1.34 !important; }
  #who-we-work-with .goal-support-line { padding-top: 0 !important; padding-bottom: 0 !important; }
  #who-we-work-with .identity-grid-tight + div { margin-top: 22px !important; padding: 18px 26px !important; }
  #who-we-work-with .who-schedule-link { margin-top: 13px !important; }

  /* Compact the problem cards and quote while retaining all content. */
  #problem .pain-grid-compact { margin-top: 30px !important; }
  #problem .pain-grid-compact .pain-card { padding: 21px 21px !important; }
  #problem .pain-card h2.h3-visual { margin-bottom: 6px !important; line-height: 1.28 !important; }
  #problem .pain-card details { margin-top: 8px !important; padding-top: 8px !important; }
  #problem .problem-quote { margin-top: 32px !important; padding: 23px 30px !important; }

  /* Reduce transition space before the Bucket Strategy explanation. */
  #bucket-strategy .bucket-overview-home { margin-top: 26px !important; gap: 36px !important; }

  /* More compact Beacon cards and supporting callouts. */
  #beacon-360 .beacon-grid { margin-top: 31px !important; }
  #beacon-360 .beacon-grid-summary .beacon-col {
    min-height: 224px !important;
    padding: 25px 19px 20px !important;
  }
  #beacon-360 .beacon-icon { margin-bottom: 12px !important; }
  #beacon-360 .beacon-tag { margin-bottom: 9px !important; }
  #beacon-360 .beacon-grid-summary .beacon-phase-details { margin-top: 8px !important; }
  #beacon-360 .beacon-home-followup { margin-top: 24px !important; padding: 5px 24px !important; }
  #beacon-360 .beacon-coordinate-block { margin-top: 28px !important; padding: 29px 32px !important; }

  /* Tighten other homepage card groups without changing their wording. */
  #three-lanes .lanes-grid { margin-top: 30px !important; }
  #three-lanes .lane-card { padding-top: 24px !important; padding-bottom: 24px !important; }
  .cs-teaser .cs-teaser-grid { margin-top: 28px !important; }
  .home-faq .faq-q { padding-top: 18px !important; padding-bottom: 18px !important; }
}

/* The phase links need to remain easily readable for the site's older audience. */
#money-cycle .money-phase-details summary,
#beacon-360 .beacon-grid-summary .beacon-phase-details summary {
  font-size: 17px !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
#money-cycle .money-phase-details summary { padding: 10px 0 !important; }
#beacon-360 .beacon-grid-summary .beacon-phase-details summary { padding-top: 11px !important; padding-bottom: 11px !important; }

/* Slightly smaller Beacon 360 illustration, without changing the four phase cards. */
#beacon-360 .beacon-home-graphic { width: 300px !important; }
#beacon-360 .beacon-home-graphic img { width: 300px !important; max-width: 100%; height: auto !important; }

@media (max-width: 760px) {
  #who-we-work-with .identity-grid-tight { margin-top: 20px !important; }
  #who-we-work-with .identity-grid-tight .identity-card { padding: 18px 18px !important; }
  #who-we-work-with .identity-card .id-num { margin-bottom: 6px !important; }
  #problem .pain-grid-compact { margin-top: 24px !important; }
  #problem .pain-grid-compact .pain-card { padding: 20px 18px !important; }
  #problem .problem-quote { margin-top: 26px !important; padding: 21px 20px !important; }
  #bucket-strategy .bucket-overview-home { margin-top: 22px !important; gap: 24px !important; }
  #beacon-360 .beacon-home-graphic { width: 270px !important; margin: 10px auto 0 !important; }
  #beacon-360 .beacon-home-graphic img { width: 270px !important; }
  #beacon-360 .beacon-grid { margin-top: 25px !important; }
  #beacon-360 .beacon-grid-summary .beacon-col { min-height: 0 !important; padding: 22px 18px !important; }
  #beacon-360 .beacon-home-followup { margin-top: 20px !important; }
  #beacon-360 .beacon-coordinate-block { margin-top: 24px !important; padding: 24px 20px !important; }
  #money-cycle .money-phase-details summary,
  #beacon-360 .beacon-grid-summary .beacon-phase-details summary { font-size: 16.5px !important; }
}

/* COMPACT AT-A-GLANCE PANEL — REBALANCED 2026-07-16 */
.glance-card.glance-card-compact{
  display:grid;
  grid-template-columns:1.08fr 1fr 1.28fr;
  gap:0 !important;
  max-width:1040px;
  margin:22px auto 0 !important;
  background:var(--white);
  border:1px solid var(--border);
  border-left:4px solid var(--gold);
  border-radius:var(--radius);
  box-shadow:0 6px 18px rgba(8,20,40,.045);
  overflow:hidden;
}
.glance-card-compact > div{padding:22px 26px;min-width:0;}
.glance-card-compact .glance-identity,
.glance-card-compact .glance-office{border-right:1px solid var(--border);}
.glance-card-compact .glance-identity h2{margin:0 0 6px;color:var(--navy);font-size:1.55rem;}
.glance-card-compact p{margin:0;color:var(--text-md);font-size:16px;line-height:1.55;}
.glance-card-compact .glance-contact{display:grid;grid-template-columns:1fr;gap:14px;align-content:start;}
.glance-card-compact .glance-service{grid-column:1 / -1;border-top:1px solid var(--border);padding-top:16px;padding-bottom:16px;}
.glance-card-compact a{color:var(--navy);font-weight:700;overflow-wrap:anywhere;}
@media(max-width:900px){
  .glance-card.glance-card-compact{grid-template-columns:1fr 1fr;}
  .glance-card-compact .glance-identity{border-right:1px solid var(--border);}
  .glance-card-compact .glance-office{border-right:0;}
  .glance-card-compact .glance-contact{grid-column:1 / -1;border-top:1px solid var(--border);grid-template-columns:1fr 1fr;}
}
@media(max-width:620px){
  .glance-card.glance-card-compact{grid-template-columns:1fr;}
  .glance-card-compact > div{padding:18px 20px;}
  .glance-card-compact .glance-identity,
  .glance-card-compact .glance-office{border-right:0;border-bottom:1px solid var(--border);}
  .glance-card-compact .glance-contact{grid-column:auto;border-top:0;grid-template-columns:1fr;gap:12px;}
  .glance-card-compact .glance-service{grid-column:auto;}
}

/* BEACON 360 COORDINATION BLOCK — FORCE DARK-BLUE PRESENTATION */
#beacon-360 .beacon-coordinate-block {
  background: #0b2340 !important;
  border-color: rgba(255,255,255,.16) !important;
}
#beacon-360 .beacon-coordinate-block h3 {
  color: var(--gold) !important;
}
#beacon-360 .beacon-coordinate-block p {
  color: #ffffff !important;
}
#beacon-360 .beacon-coordinate-block .rule {
  background: var(--gold) !important;
}

/* WHO-WE-WORK-WITH CARD SPACING REFINEMENT — 2026-07-16 */
#who-we-work-with .identity-grid-tight .identity-card {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}
#who-we-work-with .identity-card .id-num {
  margin-bottom: 4px !important;
}
@media (max-width:760px) {
  #who-we-work-with .identity-grid-tight .identity-card {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
}


/* SCHEDULE PORCH IMAGE + REASSURANCE SIDE-BY-SIDE — 2026-07-16 */
.schedule-lifestyle-row {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 34px;
  align-items: center;
  max-width: 880px;
  margin: 26px auto 30px;
  text-align: left;
}
.schedule-lifestyle-row .schedule-lifestyle {
  width: 100%;
  margin: 0;
}
.schedule-lifestyle-row .schedule-reassurance {
  max-width: none;
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.7;
}
@media (max-width: 760px) {
  .schedule-lifestyle-row {
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 22px auto 26px;
  }
  .schedule-lifestyle-row .schedule-lifestyle {
    width: min(420px, 100%);
    margin: 0 auto;
  }
  .schedule-lifestyle-row .schedule-reassurance {
    text-align: left;
    font-size: 1rem !important;
    line-height: 1.62;
  }
}


/* CASE STUDIES TWO-COLUMN HOMEPAGE LAYOUT — 2026-07-16 */
.cs-teaser-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:38px;align-items:center;margin-top:28px;}
.cs-teaser-left{min-width:0;}
.cs-teaser-left .cs-teaser-grid{grid-template-columns:1fr !important;gap:14px !important;margin:0 !important;}
.cs-teaser-left .cs-teaser-card{flex-direction:row;align-items:center;text-align:left;padding:14px 18px !important;min-height:0;}
.cs-teaser-left .cs-teaser-avatar-wrap{width:auto;margin:0 18px 0 0;flex:0 0 auto;}
.cs-teaser-left .cs-teaser-avatar{width:86px;height:86px;}
.cs-teaser-left .cs-teaser-body strong{margin-bottom:5px;}
.cs-teaser-left .center-btn{text-align:left;margin-top:22px;}
.cs-teaser-right .section-photo{max-width:none !important;margin:0 !important;}
.cs-teaser-right .section-photo img{width:100%;height:auto;display:block;border-radius:8px;box-shadow:0 8px 30px rgba(8,20,40,.14);}
@media(max-width:900px){.cs-teaser-layout{grid-template-columns:1fr;gap:26px;}.cs-teaser-right{order:-1;}.cs-teaser-right .section-photo{max-width:680px !important;margin:0 auto !important;}.cs-teaser-left .center-btn{text-align:center;}}
@media(max-width:560px){.cs-teaser-left .cs-teaser-card{padding:14px !important;}.cs-teaser-left .cs-teaser-avatar-wrap{margin-right:14px;}.cs-teaser-left .cs-teaser-avatar{width:72px;height:72px;}.cs-teaser-layout{gap:22px;}}

/* CASE STUDIES FINAL ALIGNMENT — 2026-07-16 */
.cs-teaser-right{align-self:start;margin-top:-12px;}
.cs-teaser-main-button{text-align:center;margin-top:28px;}
@media(max-width:900px){.cs-teaser-right{margin-top:0;}.cs-teaser-main-button{margin-top:24px;}}

/* BUCKET STRATEGY TRANSITION REFINEMENT — 2026-07-16 */
#bucket-strategy .bucket-overview-home {
  margin-top: 10px !important;
}
#bucket-strategy .bucket-overview-home h2.h3-visual {
  color: var(--gold-lt) !important;
}
@media (max-width: 760px) {
  #bucket-strategy .bucket-overview-home {
    margin-top: 8px !important;
  }
}


/* KEY TERMS HUB — 2026-07-16 */
#glossary .glossary-eyebrow { color: var(--gold) !important; -webkit-text-fill-color: var(--gold) !important; }
#glossary .gloss-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:30px; }
#glossary .gloss-card { scroll-margin-top:110px; padding:24px 26px; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:0 5px 18px rgba(8,20,40,.07); }
#glossary .gloss-card dt { color:var(--navy); font-family:var(--font-serif); font-size:24px; font-weight:700; line-height:1.2; margin-bottom:12px; }
#glossary .gloss-card dd { margin:0; color:var(--text-md); }
#glossary .gloss-quick { margin:0; font-size:17px; line-height:1.65; color:var(--navy); }
#glossary .gloss-details { margin-top:14px; border-top:1px solid var(--border); padding-top:12px; }
#glossary .gloss-details summary { position:relative; list-style:none; cursor:pointer; color:var(--navy); font-size:17px; font-weight:700; padding-right:30px; }
#glossary .gloss-details summary::-webkit-details-marker { display:none; }
#glossary .gloss-details summary::after { content:'+'; position:absolute; right:0; top:-2px; color:var(--gold); font-size:24px; line-height:1; }
#glossary .gloss-details[open] summary::after { content:'−'; }
#glossary .gloss-details summary:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
#glossary .gloss-details > p { margin:14px 0 0; font-size:16.5px; line-height:1.72; }
#glossary .gloss-related a { font-weight:700; color:var(--navy); text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:3px; }
.article-term-link { color:inherit; text-decoration:underline; text-decoration-color:var(--gold); text-decoration-thickness:2px; text-underline-offset:3px; }
.article-term-link:hover { color:var(--gold-dk); }
@media(max-width:760px){
  #glossary .gloss-grid { grid-template-columns:1fr; gap:16px; }
  #glossary .gloss-card { padding:21px 20px; }
  #glossary .gloss-card dt { font-size:22px; }
  #glossary .gloss-quick, #glossary .gloss-details summary { font-size:17px; }
}


/* BLOG ARTICLE TYPOGRAPHY STANDARDIZATION — 2026-07-16 */
.blog-article-page .container {
  max-width: 860px !important;
}
.blog-article {
  font-family: var(--font-sans);
  color: var(--text-md);
}
.blog-article > .case-eyebrow {
  display: inline-block;
  margin: 0 0 12px;
  font-family: var(--font-sans);
  font-size: 18px !important;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .8px;
  text-transform: none;
  color: #9A650F !important;
}
.blog-article > h1 {
  margin: 0 0 20px;
  font-family: var(--font-serif);
  font-size: clamp(36px, 4.2vw, 46px) !important;
  line-height: 1.12;
  color: var(--navy);
}
.blog-article .blog-lede {
  margin: 0 0 30px !important;
  font-family: var(--font-sans);
  font-size: 20px !important;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1.7;
  color: var(--text-md);
}
.blog-article .blog-h {
  margin: 38px 0 12px;
  font-family: var(--font-serif);
  font-size: 27px !important;
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
  color: var(--navy);
}
.blog-article > p,
.blog-article .article-faq-item p {
  margin: 0 0 18px;
  font-family: var(--font-sans);
  font-size: 19px !important;
  line-height: 1.72;
  color: var(--text-md);
}
.blog-article ul.blog-ul {
  margin: 8px 0 24px;
  padding: 0;
}
.blog-article ul.blog-ul li {
  padding: 8px 0 8px 24px;
  font-family: var(--font-sans);
  font-size: 19px !important;
  line-height: 1.65;
  color: var(--text-md);
}
.blog-article ul.blog-ul li::before {
  color: #9A650F;
}
.blog-article strong {
  font-weight: 700;
  color: var(--navy);
}
.blog-article .article-faq-item {
  margin: 0 0 22px;
  padding: 18px 20px;
  background: var(--off-white);
  border-left: 3px solid var(--gold);
}
.blog-article .article-faq-question {
  margin: 0 0 7px;
  font-family: var(--font-sans);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.45;
  color: var(--navy);
}
.blog-article .article-faq-item p {
  margin-bottom: 0;
}
.blog-article .cs-disclaimer {
  margin-top: 34px;
  padding: 18px 22px;
  font-family: var(--font-sans);
  font-size: 14px !important;
  line-height: 1.65;
  color: var(--text-lt);
}
@media (max-width: 760px) {
  .blog-article-page .container { max-width: 100% !important; }
  .blog-article > .case-eyebrow { font-size: 17px !important; }
  .blog-article > h1 { font-size: 36px !important; }
  .blog-article .blog-lede { font-size: 19px !important; }
  .blog-article .blog-h { margin-top: 32px; font-size: 25px !important; }
  .blog-article > p,
  .blog-article ul.blog-ul li,
  .blog-article .article-faq-item p { font-size: 18px !important; }
  .blog-article .article-faq-question { font-size: 18px; }
}


/* BLOG ARTICLE TYPOGRAPHY — VERIFIED FINAL OVERRIDE 2026-07-16 */
section.blog-article-page > .container {
  width: min(100% - 40px, 800px) !important;
  max-width: 800px !important;
  margin-inline: auto !important;
}
section.blog-article-page .blog-article {
  font-family: var(--font-sans) !important;
  color: var(--text-md) !important;
}
section.blog-article-page .blog-article > .case-eyebrow {
  display: block !important;
  margin: 0 0 14px !important;
  font-family: var(--font-sans) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--gold-dk) !important;
  -webkit-text-fill-color: var(--gold-dk) !important;
}
section.blog-article-page .blog-article > h1 {
  margin: 0 0 22px !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(38px, 4.1vw, 48px) !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -.015em !important;
  color: var(--navy) !important;
}
section.blog-article-page .blog-article .blog-lede {
  margin: 0 0 34px !important;
  font-family: var(--font-sans) !important;
  font-size: 20px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.68 !important;
  color: var(--text-md) !important;
}
section.blog-article-page .blog-article h2.blog-h {
  margin: 42px 0 13px !important;
  font-family: var(--font-serif) !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -.01em !important;
  color: var(--navy) !important;
}
section.blog-article-page .blog-article > p,
section.blog-article-page .blog-article li,
section.blog-article-page .blog-article .article-faq-item p {
  font-family: var(--font-sans) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.72 !important;
  color: var(--text-md) !important;
}
section.blog-article-page .blog-article > p {
  margin: 0 0 19px !important;
}
section.blog-article-page .blog-article ul.blog-ul {
  margin: 10px 0 28px !important;
  padding: 0 !important;
}
section.blog-article-page .blog-article ul.blog-ul li {
  position: relative !important;
  padding: 11px 0 11px 24px !important;
  border-bottom: 1px solid var(--light-gray) !important;
}
section.blog-article-page .blog-article ul.blog-ul li:last-child {
  border-bottom: 0 !important;
}
section.blog-article-page .blog-article ul.blog-ul li::before {
  content: "–" !important;
  position: absolute !important;
  left: 0 !important;
  top: 11px !important;
  color: var(--gold-dk) !important;
}
/* Misconception and other label-led lists: label on its own line, explanation below. */
section.blog-article-page .blog-article ul.blog-ul li > strong:first-child {
  display: block !important;
  margin: 0 0 3px !important;
  font-size: 18px !important;
  line-height: 1.45 !important;
  color: var(--navy) !important;
}
section.blog-article-page .blog-article strong {
  font-weight: 700 !important;
  color: var(--navy) !important;
}
section.blog-article-page .blog-article .article-faq-item {
  margin: 0 0 18px !important;
  padding: 18px 20px !important;
  background: var(--off-white) !important;
  border-left: 4px solid var(--gold) !important;
  border-radius: 0 4px 4px 0 !important;
}
section.blog-article-page .blog-article .article-faq-question {
  margin: 0 0 6px !important;
  font-family: var(--font-sans) !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  color: var(--navy) !important;
}
section.blog-article-page .blog-article .cs-disclaimer,
section.blog-article-page .blog-article p:has(> strong:first-child) {
  font-size: 15px !important;
}
@media (max-width: 760px) {
  section.blog-article-page > .container {
    width: min(100% - 30px, 800px) !important;
  }
  section.blog-article-page .blog-article > .case-eyebrow { font-size: 17px !important; }
  section.blog-article-page .blog-article > h1 { font-size: 36px !important; }
  section.blog-article-page .blog-article .blog-lede { font-size: 19px !important; }
  section.blog-article-page .blog-article h2.blog-h {
    margin-top: 34px !important;
    font-size: 27px !important;
  }
  section.blog-article-page .blog-article > p,
  section.blog-article-page .blog-article li,
  section.blog-article-page .blog-article .article-faq-item p,
  section.blog-article-page .blog-article ul.blog-ul li > strong:first-child {
    font-size: 18px !important;
  }
}


/* Accessible FAQ accordions — answers remain in the HTML for SEO/AEO */
.faq-accordion {
  border-bottom: 1px solid var(--border);
  background: transparent;
}
.faq-accordion:first-of-type { border-top: 1px solid var(--border); }
.faq-accordion summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 4px;
  color: var(--navy);
}
.faq-accordion summary::-webkit-details-marker { display:none; }
.faq-accordion-question {
  font-family: var(--font-serif);
  font-size: clamp(1.18rem, 2vw, 1.55rem);
  line-height: 1.3;
}
.faq-accordion-icon {
  position: relative;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
}
.faq-accordion-icon::before,
.faq-accordion-icon::after {
  content: "";
  position: absolute;
  background: var(--gold);
  border-radius: 2px;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  transition: transform .2s ease, opacity .2s ease;
}
.faq-accordion-icon::before { width: 22px; height: 2px; }
.faq-accordion-icon::after { width: 2px; height: 22px; }
.faq-accordion[open] .faq-accordion-icon::after { opacity: 0; transform: translate(-50%,-50%) rotate(90deg); }
.faq-accordion-answer { padding: 0 54px 26px 4px; }
.faq-accordion-answer p { margin: 0; color: var(--text-lt); font-size: 18px; line-height: 1.7; }
.faq-accordion summary:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; border-radius: 4px; }
.home-faq .faq-accordion {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin: 12px 0;
  overflow: hidden;
}
.home-faq .faq-accordion summary { padding: 18px 24px; }
.home-faq .faq-accordion-question { font-size: 1.18rem; }
.home-faq .faq-accordion-answer { padding: 0 64px 20px 24px; }
.home-faq .faq-accordion-answer p { color: var(--text-md); font-size: 16px; line-height: 1.55; }
@media (max-width: 640px) {
  .faq-accordion summary { padding: 20px 2px; gap: 14px; }
  .faq-accordion-question { font-size: 1.08rem; }
  .faq-accordion-answer { padding: 0 36px 22px 2px; }
  .faq-accordion-answer p { font-size: 16px; }
  .home-faq .faq-accordion summary { padding: 16px 18px; }
  .home-faq .faq-accordion-answer { padding: 0 48px 18px 18px; }
}


/* 2026-07-21 final visual refinements: brighter imagery, matching BrokerCheck type, compact Bucket risk accordions */
.hero-photo-overlay {
  background: linear-gradient(
    to right,
    rgba(8,20,40,0.58) 0%,
    rgba(13,34,64,0.48) 35%,
    rgba(13,34,64,0.28) 65%,
    rgba(13,34,64,0.08) 100%
  ) !important;
}
.hero-brokercheck {
  margin: 8px 0 0 !important;
  font-family: var(--font-serif) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1.32 !important;
}
.home-faq-photo {
  background:
    linear-gradient(180deg, rgba(8,20,40,.25), rgba(8,20,40,.32)),
    url('images/faq-lighthouse-background.webp') center center / cover no-repeat fixed !important;
}
.bucket-risk-accordion {
  display:block !important;
  padding:0 !important;
  overflow:hidden;
}
.bucket-risk-accordion summary {
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr 24px;
  align-items:center;
  gap:14px;
  padding:22px 22px;
  cursor:pointer;
  list-style:none;
}
.bucket-risk-accordion summary::-webkit-details-marker { display:none; }
.bucket-risk-accordion summary:focus-visible { outline:3px solid var(--gold); outline-offset:-3px; }
.bucket-risk-accordion .bucket-risk-title { margin:0 !important; }
.bucket-risk-toggle { position:relative; width:20px; height:20px; display:block; }
.bucket-risk-toggle::before, .bucket-risk-toggle::after {
  content:''; position:absolute; left:50%; top:50%; background:var(--navy); transform:translate(-50%,-50%); border-radius:2px;
}
.bucket-risk-toggle::before { width:18px; height:2px; }
.bucket-risk-toggle::after { width:2px; height:18px; transition:opacity .2s ease, transform .2s ease; }
.bucket-risk-accordion[open] .bucket-risk-toggle::after { opacity:0; transform:translate(-50%,-50%) rotate(90deg); }
.bucket-risk-answer { padding:0 22px 22px 62px; }
.bucket-risk-answer p { margin:0 !important; }
@media(max-width:760px){
  .hero-brokercheck { font-size:18px !important; }
  .home-faq-photo { background-attachment:scroll !important; }
  .bucket-risk-accordion summary { padding:18px; gap:12px; }
  .bucket-risk-answer { padding:0 18px 18px 18px; }
}

/* Lighthouse parallax framing: square corners and top-anchored crop */
.temp-band-lighthouse,
.temp-band-lighthouse.parallax-band {
  border-radius: 0 !important;
  background-position: center var(--parallax-y, 8%) !important;
}
.temp-band-lighthouse::before,
.temp-band-lighthouse::after {
  border-radius: 0 !important;
}
@media (max-width: 900px) {
  .temp-band-lighthouse.parallax-band {
    border-radius: 0 !important;
    background-position: center 8% !important;
  }
}


/* Final lighthouse parallax framing: preserve added sky above the lighthouse while keeping a similar amount of rocks at the bottom */
.temp-band-lighthouse.parallax-band {
  background-image: none !important;
  background: #10233f !important;
  position: relative !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  height: clamp(310px, 24vw, 390px) !important;
}
.lighthouse-parallax-frame {
  border-radius: 0 !important;
}
.lighthouse-parallax-image {
  position: absolute !important;
  left: 0 !important;
  top: -20% !important;
  width: 100% !important;
  height: 140% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center 16% !important;
  border-radius: 0 !important;
  transform: translate3d(0,0,0) scale(1.02);
  will-change: transform;
  display: block !important;
}
@media (max-width: 900px) {
  .temp-band-lighthouse.parallax-band {
    height: clamp(240px, 48vw, 320px) !important;
  }
  .lighthouse-parallax-image {
    object-position: center 18% !important;
    transform: translate3d(0,0,0) scale(1.02);
  }
}
@media (prefers-reduced-motion: reduce) {
  .lighthouse-parallax-image {
    transform: translate3d(0,0,0) scale(1.02);
  }
}


/* Definitive lighthouse parallax rebuild — uses the same background method as the working viewer band. */
.temp-band-lighthouse.parallax-band {
  position: relative !important;
  overflow: hidden !important;
  height: clamp(310px, 24vw, 390px) !important;
  border-radius: 0 !important;
  background-color: #10233f !important;
  background-image: url("images/lighthouse-reframed-parallax.webp") !important;
  background-repeat: no-repeat !important;
  background-size: 112% auto !important;
  background-position: center var(--lighthouse-y, 18%) !important;
  background-attachment: fixed !important;
}

/* The former absolutely positioned lighthouse image is no longer used. */
.temp-band-lighthouse .lighthouse-parallax-image {
  display: none !important;
}

@media (max-width: 900px) {
  .temp-band-lighthouse.parallax-band {
    height: clamp(240px, 48vw, 320px) !important;
    background-size: auto 118% !important;
    background-position: center var(--lighthouse-y, 18%) !important;
    background-attachment: scroll !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .temp-band-lighthouse.parallax-band {
    background-attachment: scroll !important;
  }
}

/* Footer resource cleanup and CTA — 2026-07-22 */
.footer-nav ul li a.footer-resource-cta {
  display: inline-block;
  margin-top: 4px;
  padding: 10px 16px;
  border-radius: 4px;
  background: var(--gold);
  color: var(--navy) !important;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}
.footer-nav ul li a.footer-resource-cta:hover,
.footer-nav ul li a.footer-resource-cta:focus-visible {
  filter: brightness(1.08);
  color: var(--navy) !important;
  text-decoration: underline;
}
.schedule-heading-link {
  color: inherit;
  text-decoration: none;
}
.schedule-heading-link:hover,
.schedule-heading-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* ADA remediation 2026-07-22: WCAG 2.1 AA 1.4.11 non-text contrast.
   Active form-control boundaries must maintain at least 3:1 contrast
   against adjacent white backgrounds. */
.exit-popup-form input,
.exit-popup-form select,
.exit-popup-form textarea {
  border: 2px solid #66717F !important;
  background-color: #FFFFFF;
}
.exit-popup-form input:hover,
.exit-popup-form select:hover,
.exit-popup-form textarea:hover {
  border-color: #46515F !important;
}
.exit-popup-form input:focus-visible,
.exit-popup-form select:focus-visible,
.exit-popup-form textarea:focus-visible {
  border-color: #0D2240 !important;
  outline: 3px solid #FEE29B !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px #0D2240 !important;
}
