/* v45 button colour lock (black buttons, white text) */
.btn-primary,
.button-primary,
a.btn-primary,
button.btn-primary,
input[type="submit"].btn-primary,
.about-cta a,
.about-cta .btn,
.df-about .btn,
.df-about button,
.df-about input[type="submit"]{
  background:#000 !important;
  color:#fff !important;
  border-color:#000 !important;
}
.btn-primary:hover,
.button-primary:hover,
a.btn-primary:hover,
button.btn-primary:hover,
.df-about .btn:hover,
.df-about button:hover,
.df-about input[type="submit"]:hover{
  background:#111 !important;
  border-color:#111 !important;
}
/* Header CTA (Start Here / Apply) */
.header-cta,
a.header-cta,
.topbar .apply-btn,
.topbar .cta,
a.apply-btn,
a.cta-btn,
a.btn-apply{
  background:#000 !important;
  color:#fff !important;
  border-color:#000 !important;
}
.header-cta:hover,
a.header-cta:hover,
.topbar .apply-btn:hover,
.topbar .cta:hover,
a.apply-btn:hover,
a.cta-btn:hover,
a.btn-apply:hover{
  background:#111 !important;
  border-color:#111 !important;
}



/* v46 site-wide primary buttons black */
a.btn, a.button, button, .btn, .button, input[type="submit"], input[type="button"]{
  background:#000;
  color:#fff;
  border-color:#000;
}
a.btn:hover, a.button:hover, button:hover, .btn:hover, .button:hover, input[type="submit"]:hover, input[type="button"]:hover{
  background:#111;
  border-color:#111;
}

/* v49 header standardisation (homepage header is master) */
.topbar a,
.topbar a:visited,
.topbar nav a,
.topbar nav a:visited{
  color:#000 !important;
  text-decoration:none !important;
}
.topbar a:hover,
.topbar a:focus,
.topbar nav a:hover,
.topbar nav a:focus{
  color:#000 !important;
  text-decoration:underline !important;
  text-decoration-thickness:2px;
  text-underline-offset:2px;
}

/* Remove any "active" underline/border under Home */
.topbar a.active,
.topbar a[aria-current="page"],
.topbar nav a.active,
.topbar nav a[aria-current="page"]{
  text-decoration:none !important;
  border-bottom:none !important;
  box-shadow:none !important;
}

/* Brand title size: match the larger homepage look site-wide */
.topbar .brand-title{
  font-size:28px !important;
  line-height:1.05 !important;
  font-weight:800 !important;
  letter-spacing:-0.2px;
}
@media (max-width: 720px){
  .topbar .brand-title{ font-size:22px !important; }
}
@media (max-width: 420px){
  .topbar .brand-title{ font-size:19px !important; }
}

/* Header CTA (Start Here / Apply) black */
.topbar .apply-btn,
.topbar .cta,
.topbar a.apply-btn,
.topbar a.cta-btn,
.topbar a.btn-apply{
  background:#000 !important;
  color:#fff !important;
  border-color:#000 !important;
  text-decoration:none !important;
}
.topbar .apply-btn:hover,
.topbar .cta:hover,
.topbar a.apply-btn:hover,
.topbar a.cta-btn:hover,
.topbar a.btn-apply:hover{
  background:#111 !important;
  border-color:#111 !important;
}

/* Footer links black */
footer a, footer a:visited{ color:#000 !important; }
footer a:hover, footer a:focus{ color:#000 !important; text-decoration:underline; }

/* v50 nav alignment + hover behaviour (no underline, slight pop) */
.topbar nav,
.topbar .nav,
.topbar .nav-links,
.topbar ul{
  align-items:center !important;
}

.topbar nav a,
.topbar .nav-link,
.topbar ul li a{
  display:inline-flex !important;
  align-items:center !important;
  line-height:1 !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
  transform-origin:center;
  transition: transform 120ms ease, font-weight 120ms ease;
  text-decoration:none !important;
}

/* Remove any border/underline coming from other CSS */
.topbar nav a:hover,
.topbar nav a:focus,
.topbar .nav-link:hover,
.topbar .nav-link:focus,
.topbar ul li a:hover,
.topbar ul li a:focus{
  text-decoration:none !important;
  border-bottom:none !important;
  box-shadow:none !important;
  transform: scale(1.06);
  font-weight:800 !important;
}

/* Ensure active/current also has no underline */
.topbar nav a.active,
.topbar nav a[aria-current="page"],
.topbar .nav-link.active,
.topbar .nav-link[aria-current="page"]{
  text-decoration:none !important;
  border-bottom:none !important;
  box-shadow:none !important;
  font-weight:800 !important;
}


/* v51 header fixes */
.topbar .apply-btn,
.topbar .cta,
.topbar .cta-btn,
.topbar .start-btn,
.topbar a.apply-btn,
.topbar a.cta-btn{
  background:#000 !important;
  color:#fff !important;
  border-color:#000 !important;
}
.topbar .apply-btn:hover,
.topbar .cta:hover,
.topbar .cta-btn:hover,
.topbar .start-btn:hover{
  background:#111 !important;
  color:#fff !important;
}

/* v52 header polish: center nav, fix baseline, CTA text white, no underline hover */
.topbar .topbar-inner{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap: 18px !important;
}
.topbar a.brand{ flex: 0 0 auto !important; }

.topbar nav.nav{
  flex: 1 1 auto !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
}
.topbar nav.nav a{
  display:inline-flex !important;
  align-items:center !important;
  line-height:1 !important;
  padding: 10px 10px !important;
  margin: 0 !important;
  text-decoration:none !important;
  border: 0 !important;
  box-shadow:none !important;
  transform-origin:center;
  transition: transform 120ms ease, font-weight 120ms ease;
}
/* remove any active underline/border */
.topbar nav.nav a.active,
.topbar nav.nav a[aria-current="page"]{
  text-decoration:none !important;
  border-bottom:none !important;
  box-shadow:none !important;
}
/* hover pop (no underline) */
.topbar nav.nav a:hover,
.topbar nav.nav a:focus{
  text-decoration:none !important;
  border-bottom:none !important;
  box-shadow:none !important;
  transform: scale(1.06);
  font-weight:800 !important;
}

/* CTA button: always white text */
.topbar a.cta,
.topbar a.cta:visited{
  background:#000 !important;
  color:#fff !important;
}
.topbar a.cta:hover,
.topbar a.cta:focus{
  background:#111 !important;
  color:#fff !important;
}


.about-tagline{font-weight:600;margin:0 0 10px 0;}

/* v54 About page solution tiles */
.about-links{ margin: 36px 0 0 0; }
.about-links h2{ margin: 0 0 14px 0; }
.about-links-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.about-tile{
  display:block;
  padding: 16px 16px;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 14px;
  text-decoration:none !important;
  color:#000 !important;
  background:#fff;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}
.about-tile:hover,
.about-tile:focus{
  transform: translateY(-2px);
  border-color: rgba(0,0,0,0.22);
  box-shadow: 0 10px 24px rgba(0,0,0,0.10);
  text-decoration:none !important;
}
.about-tile .tile-title{
  font-weight: 800;
  margin: 0 0 6px 0;
}
.about-tile .tile-desc{
  margin: 0;
  line-height: 1.4;
}
@media (max-width: 820px){
  .about-links-grid{ grid-template-columns: 1fr; }
}

/* v55 About tiles polish: soft grey cards + padding + spacing + hover */
.about-links-grid{
  gap: 16px !important;
}
.about-tile{
  background: #f7f7f7 !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  padding: 20px 20px !important;
}
.about-tile:hover,
.about-tile:focus{
  background: #ffffff !important;
  transform: translateY(-2px) !important;
  border-color: rgba(0,0,0,0.18) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.10) !important;
}

/* v59 Clean Start page (no outer card; only contact box grey) */
.start-main{ background:#fff; }
.start-container{
  max-width: 1100px;
  margin: 0 auto;
  padding: 56px 24px 64px;
}
.start-title{ margin: 0 0 10px; }
.start-lede{ margin: 0 0 20px; max-width: 720px; }

.start-cta{
  display:inline-block;
  background:#000;
  color:#fff !important;
  text-decoration:none !important;
  font-weight: 700;
  padding: 14px 20px;
  border-radius: 12px;
  line-height: 1;
}
.start-cta:hover,
.start-cta:focus{ transform: translateY(-1px); }

.start-contact{
  margin-top: 28px;
  background:#f7f7f7;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:14px;
  padding: 22px 22px;
  max-width: 860px;
}
.start-contact-title{ margin: 0 0 12px; font-size: 20px; }
.start-contact-line{ margin: 8px 0; }
.start-contact a{ color:#000 !important; text-decoration: underline; }

/* Ensure header CTA text stays white sitewide */
header .cta,
header a.cta,
header .topbar-cta,
header .start-here,
header a[href="/start/"]{
  color:#fff !important;
}

/* Mobile polish */
@media (max-width: 640px){
  .start-container{ padding: 40px 18px 52px; }
  .start-cta{ width: 100%; text-align:center; }
  .start-contact{ padding: 18px; }
}

/* v60 Layout: eliminate extra space below footer sitewide (sticky footer, no overflow gap) */
html, body{
  height: 100%;
  margin: 0;
}
body{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main{
  flex: 1 0 auto;
}
footer{
  flex-shrink: 0;
  margin-bottom: 0 !important;
  padding-bottom: 20px;
}

/* v61 Footer + link colour normalisation (sitewide) */

/* Ensure footer background matches site (light grey) */
footer, .site-footer, .footer, .footer.site-footer{
  background: #f3f5f7 !important;
}

/* Force footer text + links to black (kill blue) */
footer, .site-footer, .footer, .footer.site-footer,
footer p, footer li, footer span, footer strong, footer small,
.site-footer p, .site-footer li, .site-footer span, .site-footer strong, .site-footer small{
  color: #000 !important;
}
footer a, .site-footer a, .footer a, .footer.site-footer a{
  color: #000 !important;
  text-decoration: none !important;
}
footer a:hover, .site-footer a:hover, .footer a:hover, .footer.site-footer a:hover{
  text-decoration: underline !important;
}

/* If any footer columns headings inherit theme colour, normalise */
footer h1, footer h2, footer h3, footer h4,
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4{
  color:#000 !important;
}

/* v62 Services page — Mortgage Guy-style cards, black/white theme, light grey boxes */
.services-container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 24px 64px;
}
.services-title{ margin: 0 0 8px; }
.services-subtitle{
  margin: 0 0 28px;
  max-width: 820px;
}
.services-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}
.service-card{
  background: #f7f7f7;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  padding: 22px;
}
.service-card-title{
  margin: 0 0 10px;
  font-size: 20px;
}
.service-card-desc{
  margin: 0 0 16px;
  line-height: 1.5;
}
.service-card-actions{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
}
.service-link{
  color:#000 !important;
  text-decoration:none !important;
  font-weight:700;
}
.service-link:hover{ text-decoration: underline !important; }
.service-meet{
  display:inline-block;
  background:#000;
  color:#fff !important;
  text-decoration:none !important;
  font-weight:700;
  padding: 10px 14px;
  border-radius: 999px;
  line-height: 1;
}
.service-meet:hover{ transform: translateY(-1px); }

.services-note{
  margin-top: 28px;
  max-width: 820px;
}

@media (max-width: 980px){
  .services-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .services-container{ padding: 40px 18px 52px; }
  .services-grid{ grid-template-columns: 1fr; }
  .service-card-actions{ justify-content:flex-start; flex-wrap:wrap; }
}


/* If your global hero image is on body/main, this overlay will sit on top */
.services-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0.55);
  pointer-events:none;
}
.services-hero-inner{
  position:relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
  color: #fff;
}
.services-hero-title{
  font-size: clamp(40px, 5vw, 64px);
  margin: 0 0 10px;
  color:#fff;
}
.services-hero-subtitle{
  margin: 0 auto 28px;
  max-width: 760px;
  color:#fff;
  opacity: 0.95;
}

.svc-accordion-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 18px;
  align-items:start;
  margin-top: 18px;
}
.svc-acc-card{
  background: #f3f5f7; /* slightly grey */
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 16px;
  overflow:hidden;
  box-shadow: 0 10px 24px rgba(0,0,0,0.10);
}
.svc-acc-header{
  width:100%;
  display:flex;
  align-items:center;
  gap: 12px;
  padding: 18px 18px;
  background: transparent;
  border: 0;
  text-align:left;
  cursor:pointer;
  color:#000;
}
.svc-acc-header:focus-visible{
  outline: 3px solid rgba(0,0,0,0.35);
  outline-offset: 2px;
}
.svc-acc-icon{
  width: 26px;
  height: 26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#000;
}
.svc-acc-icon svg{ width:26px; height:26px; }
.svc-acc-title{
  font-size: 20px;
  font-weight: 800;
  line-height: 1.1;
  color:#000;
  flex: 1;
}
.svc-acc-caret{
  width: 22px;
  height: 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#000;
  transition: transform .18s ease;
}
.svc-acc-caret svg{ width:22px; height:22px; }

.svc-acc-header[aria-expanded="true"] .svc-acc-caret{
  transform: rotate(180deg);
}

.svc-acc-panel{
  padding: 0 18px 18px;
  color:#000;
}
.svc-acc-panel p{
  margin: 0 0 14px;
  line-height: 1.5;
}
.svc-acc-actions{
  display:flex;
  gap: 14px;
  align-items:center;
  flex-wrap:wrap;
}
.svc-acc-link{
  color:#000 !important;
  text-decoration:none !important;
  font-weight:800;
}
.svc-acc-link:hover{ text-decoration: underline !important; }

.svc-acc-meet{
  display:inline-block;
  background:#000;
  color:#fff !important;
  text-decoration:none !important;
  font-weight:800;
  padding: 10px 14px;
  border-radius: 999px;
  line-height: 1;
}
.svc-acc-meet:hover{ transform: translateY(-1px); }

@media (max-width: 900px){
  .svc-accordion-grid{ grid-template-columns: 1fr; }
  .services-hero{ padding: 44px 0 56px; }
}

/* v65 Services accordion — tighter typography + micro animations + consistent icons */

.services-hero{
  padding: 48px 0 58px;
  background: rgba(0,0,0,0.55);
  position: relative;
}
.services-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0.55);
  pointer-events:none;
}
.services-hero-inner{
  position:relative;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
  color: #fff;
}
.services-hero-title{
  font-size: clamp(40px, 4.6vw, 62px);
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  color:#fff;
}
.services-hero-subtitle{
  margin: 0 auto 22px;
  max-width: 760px;
  color:#fff;
  opacity: 0.95;
  font-size: 16px;
  line-height: 1.55;
}

.svc-accordion-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 18px;
  align-items:start;
  margin-top: 14px;
}

.svc-acc-card{
  background: #f3f5f7;
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 16px;
  overflow:hidden;
  box-shadow: 0 10px 22px rgba(0,0,0,0.10);
  transform: translateZ(0);
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.svc-acc-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(0,0,0,0.12);
  background: #eef1f4;
}

.svc-acc-header{
  width:100%;
  display:flex;
  align-items:center;
  gap: 12px;
  padding: 16px 18px;
  background: transparent;
  border: 0;
  text-align:left;
  cursor:pointer;
  color:#000;
}
.svc-acc-header:focus-visible{
  outline: 3px solid rgba(0,0,0,0.35);
  outline-offset: 2px;
}

.svc-acc-icon{
  width: 24px;
  height: 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#000;
  flex: 0 0 24px;
}
.svc-acc-icon svg{ width:24px; height:24px; }

.svc-acc-title{
  font-size: 19px;
  font-weight: 800;
  line-height: 1.15;
  color:#000;
  flex: 1;
}

.svc-acc-caret{
  width: 22px;
  height: 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#000;
  transition: transform .22s cubic-bezier(.2,.8,.2,1);
}
.svc-acc-caret svg{ width:22px; height:22px; }

.svc-acc-card.is-open .svc-acc-caret{
  transform: rotate(180deg);
  animation: svcCaretPop .22s cubic-bezier(.2,.8,.2,1);
}
@keyframes svcCaretPop{
  0%{ transform: rotate(180deg) scale(0.96); }
  60%{ transform: rotate(180deg) scale(1.05); }
  100%{ transform: rotate(180deg) scale(1); }
}

.svc-acc-panel{
  padding: 0 18px 16px;
  color:#000;
  animation: svcPanelIn .16s ease-out;
}
@keyframes svcPanelIn{
  from{ opacity:0; transform: translateY(4px); }
  to{ opacity:1; transform: translateY(0); }
}
.svc-acc-panel p{
  margin: 0 0 12px;
  line-height: 1.55;
  font-size: 15px;
}

.svc-acc-actions{
  display:flex;
  gap: 14px;
  align-items:center;
  flex-wrap:wrap;
}
.svc-acc-link{
  color:#000 !important;
  text-decoration:none !important;
  font-weight:800;
}
.svc-acc-link:hover{ text-decoration: underline !important; }

.svc-acc-meet{
  display:inline-block;
  background:#000;
  color:#fff !important;
  text-decoration:none !important;
  font-weight:800;
  padding: 10px 14px;
  border-radius: 999px;
  line-height: 1;
  transition: transform .12s ease, filter .12s ease;
}
.svc-acc-meet:hover{ transform: translateY(-1px); filter: brightness(1.05); }

@media (max-width: 900px){
  .svc-accordion-grid{ grid-template-columns: 1fr; }
  .services-hero{ padding: 42px 0 52px; }
}



/* v66 services layout clean centered */
.services-container{
max-width:1100px;
margin:0 auto;
padding:60px 24px;
text-align:center;
}

.services-title{
font-size:48px;
margin-bottom:10px;
color:#000;
}

.services-tagline{
max-width:720px;
margin:0 auto 40px auto;
color:#000;
}

.svc-accordion-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:22px;
text-align:left;
}

.svc-acc-card{
background:#f3f5f7;
border:1px solid rgba(0,0,0,0.08);
border-radius:14px;
overflow:hidden;
}

.svc-acc-header{
width:100%;
background:transparent;
border:0;
padding:18px;
font-weight:700;
font-size:18px;
text-align:left;
cursor:pointer;
}

.svc-acc-panel{
padding:0 18px 18px 18px;
}

.svc-acc-link{
display:inline-block;
margin-top:10px;
color:#000 !important;
text-decoration:none;
font-weight:700;
}

.svc-acc-link:hover{
text-decoration:underline;
}

@media(max-width:900px){
.svc-accordion-grid{
grid-template-columns:1fr;
}
}



/* v67 services two independent columns + no black header on open + click-outside close */
.svc-columns{
display:flex;
gap:22px;
align-items:flex-start;
}

.svc-col{
flex:1;
display:flex;
flex-direction:column;
gap:22px;
}

.svc-acc-header{
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
background:#f3f5f7 !important;
color:#000 !important;
}

.svc-acc-header:hover{
background:#eef1f4 !important;
}

.svc-acc-header:focus,
.svc-acc-header:active{
background:#f3f5f7 !important;
color:#000 !important;
}

.svc-acc-chev{
display:inline-block;
transition:transform 160ms ease;
font-size:18px;
line-height:1;
}

.svc-acc-card.is-open .svc-acc-chev{
transform:rotate(180deg);
}

@media(max-width:900px){
.svc-columns{
flex-direction:column;
}
}


/* v71 Resources system — Mortgage Guy style, DF theme */

.resources-container{
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 24px;
  text-align: center;
}

.resources-title{
  font-size: 48px;
  font-weight: 800;
  margin: 0 0 10px;
  color: #000;
}

.resources-tagline{
  max-width: 760px;
  margin: 0 auto 40px;
  color:#000;
  font-size: 18px;
  line-height: 1.55;
}

.resource-tile{
  background: #f3f5f7;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 22px rgba(0,0,0,0.08);
  transition: transform 140ms ease, box-shadow 140ms ease;
}

.resource-tile-link{
  display:block;
  color: inherit;
  text-decoration: none;
}

.resource-tile-image{
  width:100%;
  height: 190px;
  background-size: cover;
  background-position: center;
}

.resource-tile-body{
  padding: 18px 18px 20px;
}

.resource-tile-title{
  margin: 0 0 8px;
  font-size: 19px;
  font-weight: 800;
  color:#000;
}

.resource-tile-text{
  margin: 0 0 14px;
  color:#000;
  line-height: 1.5;
}

.resource-tile-cta{
  display:inline-block;
  font-weight: 800;
  color:#000;
}
/* v97 — Resources tiles polish */
.resource-tile-title{
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.resource-tile-text{
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.resource-tile-cta{
  font-weight: 700;
}


.resource-tile:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(0,0,0,0.10);
}

.resource-article-container{
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 24px;
}

.resource-article-box{
  /* Keep articles a consistent, readable width across every resource */
  max-width: 980px;
  margin: 0 auto;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 16px 32px rgba(0,0,0,0.10);
}

.resource-article-actions{
  display:flex;
  gap:12px;
  margin-top: 22px;
}

.resource-hero-image{
  width: 100%;
  height: 220px;
  border-radius: 14px;
  background-size: cover;
  background-position: center;
  margin-bottom: 18px;
}

.resource-article-title{
  margin: 0 0 8px;
  color:#000;
  font-size: 40px;
  line-height: 1.12;
  font-weight: 900;
}

.resource-article-dek{
  margin: 0 0 18px;
  color:#000;
  font-size: 18px;
  line-height: 1.55;
}

.resource-divider{
  height: 2px;
  background: rgba(0,0,0,0.20);
  margin: 18px 0 22px;
}

.resource-article h2{
  margin: 22px 0 10px;
  color:#000;
  font-size: 22px;
}

.resource-article p, .resource-article li{
  color:#000;
  line-height: 1.65;
  font-size: 16px;
}

.resource-article ul{
  margin: 0 0 8px 18px;
}

.resource-callout{
  background: #f3f5f7;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  padding: 16px;
  margin: 18px 0;
}

.resource-callout h3{
  margin: 0 0 8px;
  color:#000;
  font-size: 18px;
}

.resource-buttons{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.resource-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 12px 18px;
  border-radius: 12px;
  font-weight: 800;
  text-decoration:none;
}

.resource-btn.primary{
  background:#000;
  color:#fff !important;
  border: 1px solid #000;
}

.resource-btn.secondary{
  background:#f3f5f7;
  color:#000 !important;
  border: 1px solid rgba(0,0,0,0.14);
}

@media (max-width: 900px){
  .resource-article-title{ font-size: 34px; }
}




/* Resource article hero image (top of article) */
.resource-hero-image-wrap{
  width:100%;
  border-radius:16px;
  overflow:hidden;
  margin-bottom:18px;
  background:#f2f2f2;
}
.resource-hero-image-wrap 

/* v77 — Resource article hero banner sizing + polish */
.resource-hero-img{
  width: 100%;
  height: 260px;        /* desktop banner height */
  object-fit: cover;    /* crop cleanly */
  object-position: center;
  border-radius: 14px;
  display: block;
  margin: 0 0 18px 0;
}

/* Mobile: tighter banner */
@media (max-width: 768px){
  .resource-hero-img{
    height: 180px;
  }
}



/* v79 RESOURCE CARD POLISH */

.resource-card{
  display:block;
  background:#f3f3f3;
  border-radius:14px;
  overflow:hidden;
  text-decoration:none;
  color:#000;
  transition:transform .25s ease, box-shadow .25s ease;
}

.resource-card:hover{
  transform:translateY(-6px);
  box-shadow:0 12px 28px rgba(0,0,0,0.15);
}

.resource-card-image{
  position:relative;
  height:160px;
  overflow:hidden;
}

.resource-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.resource-card-title{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:12px 16px;
  font-size:20px;
  font-weight:700;
  color:white;
  background:linear-gradient(to top, rgba(0,0,0,.65), transparent);
}

.resource-read{
  display:inline-block;
  margin-top:10px;
  font-weight:600;
  transition:transform .2s ease;
}

.resource-card:hover .resource-read{
  transform:translateX(6px);
}


/* v83 — Single Resources landing (force 3 columns desktop) */
.resources-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:24px;
}

@media (max-width: 1024px){
  .resources-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width: 700px){
  .resources-grid{ grid-template-columns:1fr; }
}


/* v84 — Resource article hero banner sizing */
.resource-hero-img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  object-position: center;
  border-radius: 14px;
  display: block;
  margin: 0 0 18px 0;
}

@media (max-width: 768px){
  .resource-hero-img{ height: 170px; }
}


/* v87 — Resources landing header */
.resources-page-head{
  margin-bottom: 18px;
}

.resources-page-head h1{
  margin: 0 0 8px 0;
}

.resources-page-head p{
  margin: 0;
  max-width: 900px;
}


/* v89 — ensure primary button text is white */
.btn.btn-primary{
  color: #fff !important;
}



/* v93 — Support legacy resource card media blocks (background-image) */
.resource-card__media{
  position: relative;
  height: 160px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.resource-card__media-title{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 12px 16px;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,.65), transparent);
}


/* v95 fix: ensure secondary buttons are GREY with BLACK text (match resource secondary buttons) */
.btn-secondary,
a.btn-secondary,
button.btn-secondary,
.btn.btn-secondary,
a.btn.btn-secondary,
button.btn.btn-secondary{
  background:#f3f5f7 !important;
  color:#000 !important;
  border: 1px solid rgba(0,0,0,0.14) !important;
}

.btn-secondary:hover,
a.btn-secondary:hover,
button.btn-secondary:hover,
.btn.btn-secondary:hover,
a.btn.btn-secondary:hover,
button.btn.btn-secondary:hover{
  filter: brightness(0.97);
}


/* =========================
   Calculators page styling
   Matches TheMortgageGuy layout but in Divorce Financing black/white palette
   ========================= */
.calculators-page .calc-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.calculators-page .calc-card{
  background: rgba(255,255,255,0.96);
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 16px;
  padding: 18px 18px 16px;
  box-shadow: 0 10px 26px rgba(0,0,0,0.14);
}

.calculators-page .calc-card h3{
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.25;
  color: #111;
}

.calculators-page .calc-card p{
  margin: 0 0 14px;
  color: rgba(0,0,0,0.78);
  line-height: 1.5;
}

.calculators-page .calc-card .btn.primary{
  background: #111 !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  box-shadow: none !important;
}

.calculators-page .calc-card .btn.primary:hover{
  filter: brightness(1.12);
}

/* Keep cards looking good on very small screens */
@media (max-width: 420px){
  .calculators-page .calc-card{ padding: 16px; border-radius: 14px; }
}



/* =========================
   Contact page styling
   (match the site's current card language)
   ========================= */
.df-contact .contact-grid{
  display:grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap:18px;
  align-items:start;
  margin-top:16px;
}

.df-contact .contact-panels{
  display:grid;
  grid-template-columns: 1fr;
  gap:16px;
}

.df-contact .contact-card{
  background: rgba(255,255,255,0.96);
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 16px;
  padding: 18px 18px 16px;
  box-shadow: 0 10px 26px rgba(0,0,0,0.14);
}

.df-contact .contact-card h2{
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.25;
  color: #111;
}

.df-contact .contact-card p{
  margin: 0 0 12px;
  color: rgba(0,0,0,0.78);
  line-height: 1.5;
}

.df-contact .contact-lines{
  margin:10px 0 14px;
  display:flex;
  flex-direction:column;
  gap:6px;
  color: rgba(0,0,0,0.88);
}

.df-contact .btn-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:12px 0 0;
}

.df-contact .small-note{
  margin-top:10px;
  color: rgba(0,0,0,0.68);
  font-size: 14px;
}

.df-contact .inline-link{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.df-contact .contact-profile{
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 18px;
  overflow:hidden;
  background: rgba(255,255,255,0.96);
  box-shadow: 0 10px 26px rgba(0,0,0,0.14);
}

.df-contact .contact-portrait{
  width:100%;
  height: 320px;
  object-fit: cover;
  object-position: 50% 25%;
  display:block;
}

.df-contact .contact-profile-text{
  padding: 16px 16px 18px;
  color: #111;
}

.df-contact .contact-name{ font-size:18px; font-weight:900; }
.df-contact .contact-role{ font-size:13px; font-weight:700; margin-top:2px; }
.df-contact .contact-brand{ margin-top:10px; font-weight:900; }
.df-contact .contact-sub{ color: rgba(0,0,0,0.62); font-weight:700; font-size:13px; margin-top:2px; }
.df-contact .contact-mini{ margin-top:10px; display:flex; flex-direction:column; gap:4px; }
.df-contact .contact-loc{ color: rgba(0,0,0,0.62); font-size:13px; margin-top:2px; }

/* Make primary contact buttons black/white for a crisp DF feel */
.df-contact .btn.primary{
  background:#111 !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,0.18) !important;
  box-shadow:none !important;
}
.df-contact .btn.primary:hover{ filter: brightness(1.12); }

@media (max-width: 980px){
  .df-contact .contact-grid{ grid-template-columns: 1fr; }
  .df-contact .contact-portrait{ height: 260px; }
}


/* =========================
   Mobile header fix (burger-only)
   ========================= */
@media (max-width: 1100px){
  .topbar nav.nav{display:none !important;}
  .topbar-right{display:none !important;}
  .nav-toggle{display:flex !important; margin-left:auto !important; flex:0 0 auto;}
  .topbar-inner{max-width:100% !important; width:100% !important; overflow:hidden !important; gap:12px !important;}
  .brand{min-width:0 !important;}
  .brand-text{min-width:0 !important;}
}
@media (max-width: 480px){
  .topbar-inner{padding-left:12px !important; padding-right:12px !important;}
  .nav-toggle{width:42px !important; height:42px !important; border-radius:12px !important;}
}




/* =========================
   Mobile nav polish (no huge gap, add Apply Now)
   ========================= */
@media (max-width: 1100px){
  /* Show START HERE button in header on mobile */
  .topbar-right{display:flex !important; align-items:center !important; gap:10px !important;}
  .topbar-right .contact-stack{display:none !important;}
  .topbar-right .cta{
    display:inline-flex !important;
    padding:10px 12px !important;
    border-radius:12px !important;
    font-size:14px !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
  /* Keep burger pinned on-screen */
  .nav-toggle{margin-left:10px !important;}
  .topbar-inner{
    overflow:hidden !important;
  }
}

/* Mobile slide-out menu: fit content, remove bottom gap */
.mobile-nav{
  height:auto !important;
  max-height: calc(100vh - 16px) !important;
  top:8px !important;
  right:8px !important;
  border-radius:14px !important;
  overflow:hidden !important;
}
.mobile-nav-inner{
  height:auto !important;
  max-height: calc(100vh - 32px) !important;
  overflow-y:auto !important;
}
.mobile-nav-footer{
  margin-top: 10px !important; /* was auto -> created huge empty space */
}
.mobile-apply{
  background:#ffffff !important;
  color:#111 !important;
  border:1px solid rgba(0,0,0,.18) !important;
}
.mobile-apply:hover{filter:brightness(0.97) !important;}

/* Footer: tighter on mobile */
@media (max-width: 820px){
  .footer-grid{grid-template-columns:1fr !important;}
  .footer-desc{display:none !important;}
}


/* --- Mobile header refinements (v106) --- */
@media (max-width: 900px){
  html, body { overflow-x: hidden; }
  .topbar-right{ gap: 10px; }
  /* Ensure START HERE doesn't overflow on narrow screens */
  .topbar-right .cta{
    white-space: normal !important;
    width: 96px;
    padding: 10px 10px;
    text-align: center;
    line-height: 1.05;
  }
  /* Prevent iOS tap highlight / blue fill */
  .nav-toggle, .topbar-right .cta{
    -webkit-tap-highlight-color: transparent;
  }
  .nav-toggle:active, .nav-toggle:focus, .nav-toggle:focus-visible{
    background: #fff !important;
  }
}
/* About portrait: keep head in frame on mobile */
@media (max-width: 700px){
  img.about-photo-img{
    object-position: 50% 15% !important;
  }
}
/* Services accordion headers: consistent height on mobile */
@media (max-width: 700px){
  .svc-acc-header{
    min-height: 78px;
  }
}



/* --- v107 mobile fixes --- */
@media (max-width: 1100px){
  /* Burger button should never turn blue (about page imported styles) */
  .nav-toggle{
    background:#fff !important;
    border-color: rgba(0,0,0,.18) !important;
    box-shadow:none !important;
    -webkit-tap-highlight-color: transparent !important;
  }
  .nav-toggle:active,
  .nav-toggle:focus,
  .nav-toggle:focus-visible{
    background:#fff !important;
    box-shadow:none !important;
    outline:none !important;
  }
  .nav-toggle-icon,
  .nav-toggle-icon::before,
  .nav-toggle-icon::after{
    background:#111 !important;
  }

  /* Services accordion: make all cards same height as the tallest (Bridge) */
  .svc-acc-header{
    min-height: 92px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
  }
}

/* Calculators: ensure last card is not tight against footer on iPhone */
.calculators-page .translucent-box{
  padding-bottom: 48px !important;
}
.calculators-page .calc-grid{
  margin-bottom: 18px !important;
}



/* =========================
   v108 Mobile fixes (burger colour, services equal headers, calculator bottom spacing)
   ========================= */
@media (max-width: 1100px){
  /* Burger should never go blue on iOS */
  .nav-toggle,
  .df-about .nav-toggle{
    background:#fff !important;
    border:1px solid rgba(0,0,0,0.12) !important;
    box-shadow:none !important;
    outline:none !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-appearance:none !important;
    appearance:none !important;
  }
  .nav-toggle:active,
  .nav-toggle:focus,
  .nav-toggle:focus-visible,
  .df-about .nav-toggle:active,
  .df-about .nav-toggle:focus,
  .df-about .nav-toggle:focus-visible{
    background:#fff !important;
    box-shadow:none !important;
    outline:none !important;
  }

  /* Services: make all accordion headers the same height as the tallest card */
  .svc-acc-header{
    min-height: 96px !important;
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    display:flex !important;
    align-items:center !important;
  }
  .svc-acc-title{
    line-height: 1.15 !important;
  }

  /* Calculators: ensure last card clears footer on iPhone */
  body.calculators-page .translucent-box{
    padding-bottom: 140px !important;
  }
}

/* iOS: never allow horizontal scroll */
html, body{ overflow-x:hidden !important; }


/* v111: calculators extra clearance so last card never sits under footer */
body.calculators-page .hero{
  padding-bottom: 180px !important;
}
body.calculators-page .translucent-box{
  padding-bottom: 200px !important;
}



/* ===== MOBILE: Calculators page spacing (prevent header overlap) ===== */
@media (max-width: 768px){
  body.calculators-page .hero{
    padding-top: 120px !important; /* ensures first card clears sticky header */
    padding-bottom: 110px !important;
  }
}


/* v3 desktop uniform page title for Calculators (match Services/Resources) */
@media (min-width: 901px){
  body.calculators-page .translucent-box > h1{
    font-size: 48px;
    font-weight: 800;
    text-align: center;
    margin: 0 0 10px;
    color:#000;
  }
}
