/* Electra Consulting / Ivana Ross, LMFT: rebuilt from the GeneratePress + WPBakery site */
:root {
  --navy: #03389a;
  --navy-dk: #032667;
  --yellow: #ffd800;
  --red: #ff2616;
  --blue-btn: #0088cc;
  --toggle: #5472d2;
  --text: #222;
  --wrap: 1200px;
  --pad: 40px;
  --head: "Oswald", "Arial Narrow", sans-serif;
  --body: "ABeeZee", system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 15px/1.5 var(--body); color: var(--text); background: #fff; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: #1e73be; }
a:hover, a:focus { color: #000; }
.page-body a:not(.btn) { color: var(--navy); }
.form-box a:not(.btn), .white a:not(.btn) { color: #fff; }
h1, h2, h3 { font-family: var(--head); font-weight: 400; color: var(--navy); margin: 0 0 20px; }
h1 { font-size: 35px; line-height: 1.2; }
h2 { font-size: 22px; line-height: 1.2; }
h3 { font-size: 20px; line-height: 1.2; }
p, ul, blockquote { margin: 0 0 1.5em; }
ul { padding-left: 1.4em; }
strong { font-weight: 700; }
.container { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--pad); }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 100; background: #fff; padding: 8px 14px; }
.skip-link:focus { left: 8px; top: 8px; }
.center { text-align: center; }
.white, .white h1, .white h2, .white h3 { color: #fff; }
svg { width: 1em; height: 1em; fill: currentColor; flex: none; }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; font: 16px/1.2 var(--body); text-decoration: none; border-radius: 32px; padding: 18px 25px; border: 2px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s; text-align: center; }
.btn-blue { background: var(--blue-btn) linear-gradient(to bottom, rgba(255,255,255,.2), rgba(255,255,255,.01)); color: #fff; }
.btn-blue:hover, .btn-blue:focus { background-color: #0077b3; color: #fff; }
.btn-red { background: var(--red); color: #fff; }
.btn-red:hover, .btn-red:focus { background: #1e72bd; color: #fff; }
.btn-ghost { background: transparent; border-color: #fff; color: #fff; }
.btn-ghost:hover, .btn-ghost:focus { background: #fff; color: #222; }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; }
.btn-row.center { justify-content: center; }

/* ---------- Top bar (secondary navigation) ---------- */
.topbar { background: var(--navy-dk); }
.topbar ul { list-style: none; margin: 0 auto; display: flex; justify-content: center; flex-wrap: wrap; }
.topbar a { display: block; color: #fff; font-size: 10px; line-height: 25px; text-transform: uppercase; padding: 0 15px; text-decoration: none; }
.topbar a:hover { color: var(--red); }

/* ---------- Header ---------- */
.site-header { background: var(--navy) url(../img/pattern.webp) center / cover no-repeat; color: #fff; position: sticky; top: 0; z-index: 50; transition: box-shadow .2s; }
.site-header.scrolled { box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 40px 20px; transition: padding .2s; }
.site-header.scrolled .header-inner { padding-top: 8px; padding-bottom: 6px; }
.site-title { font: 35px/1.6 "Pacifico", cursive; color: #fff; text-decoration: none; white-space: nowrap; }
.site-title:hover { color: #fff; }
.site-description { font: 16px/1.5 var(--head); color: var(--yellow); margin: 0; }
.site-header.scrolled .site-title { font-size: 28px; }
.site-nav ul { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; }
.site-nav a { display: block; font: 16px/61px var(--head); color: var(--yellow); padding: 0 10px; text-decoration: none; transition: line-height .3s; }
.site-header.scrolled .site-nav a { line-height: 44px; }
.site-header.scrolled .site-nav ul { margin-top: 0; }
.site-nav a:hover, .site-nav a:focus, .site-nav a.active { color: #fff; }
.nav-toggle, .header-cta { display: none; }

/* ---------- Page hero (photo banner) ---------- */
.page-hero { position: relative; overflow: hidden; padding: 140px 0; background: var(--navy-dk); }
.page-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.page-hero .container { position: relative; }
.page-hero h1 { color: #fff; margin: 0; text-shadow: 0 1px 8px rgba(0,0,0,.35); }

/* ---------- Home hero (new) ---------- */
.hero { position: relative; overflow: hidden; background: var(--navy-dk); color: #fff; min-height: 560px; display: flex; align-items: center; }
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(3,38,103,.95) 0%, rgba(3,38,103,.85) 38%, rgba(3,38,103,.25) 68%, rgba(3,38,103,0) 100%); }
.hero .container { position: relative; z-index: 2; width: 100%; padding-top: 70px; padding-bottom: 70px; }
.hero-copy { max-width: 600px; }
.hero-eyebrow { font: 15px/1.4 var(--head); letter-spacing: .08em; text-transform: uppercase; color: var(--yellow); margin: 0 0 14px; }
.hero h1 { color: #fff; font-size: 52px; line-height: 1.1; margin: 0 0 20px; }
.hero-lead { font-size: 18px; line-height: 1.6; margin: 0 0 30px; color: #f2f5ff; }
.hero .btn-row { margin-bottom: 30px; }
.hero-trust { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 13px; color: #dfe6ff; }
.hero-trust li { display: flex; align-items: center; gap: 7px; }
.hero-trust li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--yellow); }

/* ---------- Content sections ---------- */
.section { padding: 35px 0 0; }
.band-navy { background: var(--navy-dk); }
.band-blue { background: var(--navy); }
.cols { display: grid; gap: 0 30px; }
.cols-2 { grid-template-columns: 1fr 1fr; }
.cols-3 { grid-template-columns: repeat(3, 1fr); }
.cols-4 { grid-template-columns: repeat(4, 1fr); }
.cols-6 { grid-template-columns: repeat(6, 1fr); }
.cols-8-4 { grid-template-columns: 2fr 1fr; }
.cols-3-9 { grid-template-columns: 1fr 3fr; }
.cols-3-6-3 { grid-template-columns: 1fr 2fr 1fr; }
.el { margin-bottom: 35px; }
.rounded { border-radius: 4px; }
.space-50 { height: 50px; }

.intro { padding: 35px 0 35px; }
.intro .cols { align-items: start; }
.intro p { margin-bottom: 22.5px; }

.circle { margin: 0 0 35px; text-align: center; }
.circle h2 { text-align: center; }
.circle img { border-radius: 50%; width: 100%; max-width: 258px; margin: 0 auto; aspect-ratio: 1; object-fit: cover; }

/* Home: advice section */
.advice { padding: 35px 0 40px; }
.advice h1, .advice .h1 { text-align: center; margin-bottom: 35px; }
.h1 { font: 35px/1.2 var(--head); color: var(--navy); }

/* Page body */
.page-body { padding: 20px 0 10px; }
.page-body .container > :first-child { margin-top: 0; }
.list-2 { columns: 2; column-gap: 30px; }
.list-2 li { break-inside: avoid; }
.cta-inline { margin: 0 0 1.5em; }

/* Services */
.svc-band { padding: 32px 0 35px; margin-bottom: 32px; }
.svc-band h1 { margin-bottom: 25px; }
.svc-band h2 { line-height: 1.5; }
.note-band { padding: 20px; margin: 0 0 35px; }
.note-band h1 { margin: 0; }

/* FAQ toggles */
.toggle { margin: 0 0 22px; }
.toggle summary { list-style: none; cursor: pointer; position: relative; padding-left: 42px; }
.toggle summary::-webkit-details-marker { display: none; }
.toggle summary h2 { margin: 0; }
.toggle summary::before { content: ""; position: absolute; left: 0; top: -3px; width: 28px; height: 28px; border: 2px solid transparent; border-radius: 20%; background: var(--toggle); box-sizing: content-box; }
.toggle summary::after { content: ""; position: absolute; left: 9px; top: 12px; width: 14px; height: 2px; background: #fff; box-shadow: none; }
.toggle:not([open]) summary .plus { position: absolute; left: 15px; top: 6px; width: 2px; height: 14px; background: #fff; z-index: 1; }
.toggle[open] summary .plus { display: none; }
.toggle .toggle-content { margin: 15px 0 0; padding-left: 42px; }
.toggle .toggle-content p { margin-bottom: 0; }

/* Testimonials */
blockquote { font-size: 18px; line-height: 1.5; font-style: italic; border-left: 5px solid rgba(0,0,0,.05); padding: 20px; margin: 0 0 35px; }
blockquote p:last-child { margin-bottom: 0; }

/* Reach Us / Book */
.contact-card { background: var(--navy); padding: 6px; display: block; margin-bottom: 35px; }
.form-box { background: var(--navy); padding: 20px; color: #fff; }
.form-box h1 { color: #fff; }
.sep { border: 0; border-top: 1px solid #ebebeb; margin: 0 0 35px; }
.map-band { background: var(--navy); margin-top: 15px; padding: 35px 0; }
.map-band iframe { width: 100%; height: 450px; border: 0; display: block; }
.zocdoc { margin-bottom: 35px; }
.zocdoc img { display: inline-block; }

/* Thank you / 404 */
.simple { padding: 60px 0 70px; text-align: center; }
.simple p { max-width: 640px; margin-left: auto; margin-right: auto; }

/* ---------- Footer ---------- */
.footer-widgets { background: var(--navy) url(../img/pattern.webp) top center / cover no-repeat; color: #eaeaea; padding: 50px 0; font-size: 14px; line-height: 1.5; }
.footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
.footer-widgets .widget-title { font: 17px/1.5 var(--head); color: var(--yellow); margin: 0 0 30px; }
.footer-widgets a { color: #fbed9c; text-decoration: none; }
.footer-widgets a:hover { color: #6cf3d6; }
.footer-menu { list-style: none; padding: 0; margin: 0 0 30px; }
.footer-menu li { margin-bottom: 5px; }
.social { display: inline-flex; font-size: 24px; }
.site-info { background: var(--navy-dk); text-align: center; padding: 10px 20px; font-size: 13px; }
.site-info a { color: #fff; text-decoration: none; display: inline-block; }
.site-info img { display: inline-block; }

/* ---------- Responsive ---------- */
@media (max-width: 1240px) {
  .site-nav a { padding: 0 7px; font-size: 15px; }
  .site-title { font-size: 30px; }
}
@media (max-width: 1100px) {
  .header-inner { flex-wrap: wrap; justify-content: center; text-align: center; padding: 18px 20px 6px; }
  .site-nav ul { justify-content: center; margin-top: 0; }
  .site-nav a { line-height: 44px; }
}
@media (max-width: 1024px) {
  :root { --pad: 30px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .cols-6 { grid-template-columns: repeat(3, 1fr); }
  .hero h1 { font-size: 44px; }
}
@media (max-width: 860px) {
  .cols-2, .cols-8-4, .cols-3-9, .cols-3-6-3 { grid-template-columns: 1fr; }
  .cols-4 { grid-template-columns: 1fr 1fr; }
  .intro .cols > :first-child { max-width: 520px; margin: 0 auto 30px; }
  .side-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; align-items: start; }
  .cols-3-9 > aside, .cols-3-6-3 > aside { order: 2; }
  .cols-3-6-3 > .book-left { order: 3; grid-template-columns: repeat(3, 1fr); }
  .book-left img { aspect-ratio: 1; object-fit: cover; }
}
@media (max-width: 767px) {
  :root { --pad: 20px; }
  body { font-size: 16px; }
  h1, .h1 { font-size: 28px; }
  h2 { font-size: 21px; }
  .topbar { display: none; }

  .header-inner, .site-header.scrolled .header-inner { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; padding: 10px 16px 12px; text-align: left; }
  .site-title, .site-header.scrolled .site-title { font-size: 26px; line-height: 1.5; }
  .site-description { display: none; }
  .nav-toggle { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--yellow); border: 1px solid rgba(255,255,255,.35); border-radius: 6px; padding: 9px 12px; font: 16px/1 var(--head); cursor: pointer; align-self: center; }
  .bars { display: grid; gap: 4px; width: 20px; }
  .bars span { height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s, opacity .2s; }
  .nav-toggle[aria-expanded="true"] .bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .bars span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] .bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-nav { grid-column: 1 / -1; display: none; margin: 0 -16px; background: #f2f2f2; }
  .site-nav.open { display: block; }
  .site-nav ul { display: block; margin: 0; }
  .site-nav a, .site-header.scrolled .site-nav a { color: var(--navy); line-height: 48px; font-size: 17px; padding: 0 20px; border-top: 1px solid #e0e0e0; }
  .site-nav a.active { color: var(--red); }
  .header-cta { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .header-cta .btn { padding: 11px 10px; font-size: 14px; border-radius: 26px; }
  .site-header.scrolled .header-cta .btn { padding: 8px 10px; }

  .page-hero { padding: 48px 0; }
  .hero { display: block; min-height: 0; }
  .hero-bg { position: relative; height: 230px; object-position: 82% 60%; }
  .hero::before { bottom: auto; height: 230px; background: linear-gradient(180deg, rgba(3,38,103,0) 45%, rgba(3,38,103,1) 100%); }
  .hero .container { padding-top: 0; padding-bottom: 36px; margin-top: -34px; }
  .hero h1 { font-size: 34px; }
  .hero-lead { font-size: 16px; margin-bottom: 24px; }
  .hero .btn-row { display: grid; }
  .hero-trust { gap: 6px 16px; }

  .cols-4, .cols-3 { grid-template-columns: 1fr 1fr; gap: 0 16px; }
  .cols-6 { grid-template-columns: repeat(3, 1fr); gap: 0 12px; }
  .circle h2 { font-size: 18px; min-height: 2.4em; display: flex; align-items: flex-end; justify-content: center; margin-bottom: 12px; }
  .btn { padding: 15px 20px; }
  .list-2 { columns: 1; }
  blockquote { font-size: 16px; padding: 14px 16px; }
  .map-band iframe { height: 320px; }
  .footer-grid { grid-template-columns: 1fr; gap: 10px; }
  .footer-grid .fw img { max-width: 220px; }
}
@media (max-width: 420px) {
  .header-cta .btn { font-size: 13px; }
  .hero h1 { font-size: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}
