/* Shared refinements on top of the site's existing Tailwind palette. */
html { scroll-padding-top: 1rem; scrollbar-gutter: stable; }
html body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; line-height: 1.6; }
body > main { flex: 1; padding-top: 2.5rem; padding-bottom: 1rem; }
main h1 { font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.15; letter-spacing: -0.025em; text-wrap: balance; }
main h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.25; text-wrap: balance; }
main h3 { line-height: 1.3; }
main h1, main h2, main h3, main summary { min-width: 0; overflow-wrap: anywhere; }
main .leading-relaxed { line-height: 1.6; }
main > .mb-20 { margin-bottom: 3.5rem; }
main > .mb-16 { margin-bottom: 3rem; }
main > .mb-12, main > .mb-14 { margin-bottom: 2.5rem; }
main .shadow-xl { box-shadow: 0 4px 20px rgb(15 41 66 / 6%); }
main .shadow-lg { box-shadow: 0 3px 12px rgb(15 41 66 / 8%); }
main a, button, summary { touch-action: manipulation; }
button, summary { min-height: 44px; }
main a:not([class]), .text-link { color: var(--color-blue-primary); text-decoration: underline; text-underline-offset: 4px; }
main p, main li { overflow-wrap: anywhere; }
main fieldset { min-inline-size: 0; }
main legend { max-width: 100%; }
main svg { flex-shrink: 0; }
[hidden] { display: none !important; }

.skip-link { position: absolute; left: 1rem; top: -100px; padding: .75rem 1rem; background: white; color: var(--color-navy-deep); z-index: 100; font-weight: 700; }
.skip-link:focus { top: .5rem; }
.site-header { position: relative; flex-shrink: 0; background: var(--color-pure-white); backdrop-filter: none; }
.site-header .header-inner { display: flex; flex-direction: row; flex-wrap: wrap; gap: 1rem; padding-top: .6rem; padding-bottom: .6rem; }
.site-header .header-inner > a { flex-shrink: 0; }
.site-header img { width: auto; height: 3rem; max-width: 200px; object-fit: contain; }
.site-header nav { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: 1fr; flex: 1; min-width: 0; max-width: 54rem; gap: .25rem; font-size: 1rem; line-height: 1.5; }
.site-header nav > a { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; padding: .5rem; border-radius: .375rem; text-align: center; overflow-wrap: anywhere; text-decoration: none; transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease; }
.site-header nav > a[aria-current] { color: var(--color-navy-deep); background: var(--color-blue-tint); border-bottom: 0; }
.site-header nav > a[href^="tel:"] { background: var(--color-blue-primary); color: var(--color-pure-white); box-shadow: none; }
.site-header nav > a:focus-visible { outline: 3px solid var(--color-navy-deep); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
  .site-header nav > a:hover { color: var(--color-navy-deep); background: var(--color-blue-tint); box-shadow: inset 0 0 0 1px var(--color-blue-border); }
  .site-header nav > a[href^="tel:"]:hover { color: var(--color-pure-white); background: var(--color-blue-hover); }
}
.menu-toggle { display: none; align-items: center; gap: .5rem; border: 1px solid var(--color-blue-primary); color: var(--color-blue-primary); background: white; padding: .45rem .7rem; border-radius: .5rem; font-weight: 700; cursor: pointer; }
.menu-toggle svg { width: 20px; height: 20px; }
.page-hero { padding: 1rem 0 2.5rem; }
.eyebrow { display: block; color: var(--color-blue-mid); font-size: 1rem; font-weight: 700; margin-bottom: .75rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-width: 0; max-width: 100%; min-height: 48px; padding: .7rem 1.2rem; border: 2px solid var(--color-blue-primary); border-radius: .65rem; font-size: 1rem; font-weight: 700; line-height: 1.4; background: var(--color-blue-primary); color: white; text-decoration: none; cursor: pointer; text-align: center; overflow-wrap: anywhere; transition: background-color 150ms ease, color 150ms ease; }
.button > span { min-width: 0; }
.button:disabled { cursor: wait; opacity: .7; }
.button:hover { background: var(--color-blue-hover); }
.button-secondary { color: var(--color-blue-primary); background: white; }
.button-secondary:hover { background: var(--color-blue-tint); }
.button-light { background: white; color: var(--color-blue-primary); border-color: white; }
.button-light:hover { background: var(--color-blue-tint); }
.button-outline-light { background: transparent; color: white; border-color: white; }
.button-outline-light:hover { background: rgb(255 255 255 / 15%); }
.action-row { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; margin-top: 1.25rem; }
.action-row > .button { flex: 1 1 12rem; }
.action-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: 36rem; margin-inline: auto; }
.home-hero { padding: 1rem 0 3rem; }
.home-hero > div:first-child { margin-bottom: 1.25rem; }
.home-hero > p { margin-bottom: 1.5rem; }
.home-contact { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.5rem; align-items: center; padding: 1.5rem; }
.home-contact p { margin-top: .75rem; }
.home-contact .action-row { margin-top: 0; justify-content: flex-end; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.service-card { display: flex; flex-direction: column; min-width: 0; background: white; border: 1px solid var(--color-blue-border); border-top: 4px solid var(--color-blue-primary); border-radius: .75rem; padding: 1.4rem; text-decoration: none; box-shadow: 0 2px 8px rgb(15 41 66 / 4%); }
.service-card:hover { background: var(--color-blue-tint); }
.service-card h2, .service-card h3 { font-size: 1.3rem; color: var(--color-navy-deep); margin-bottom: .5rem; }
.service-card p { font-size: 1rem; line-height: 1.55; color: var(--color-blue-ink); }
.service-card .service-link { display: block; font-weight: 700; font-size: 1rem; color: var(--color-blue-primary); padding-top: .8rem; margin-top: auto; }
.service-grid > a.group { display: flex; flex-direction: column; min-width: 0; padding: 1.4rem; }
.service-grid > a.group > span { padding-top: .8rem; margin-top: auto; }
.service-grid > a.group h3 { font-size: 1.3rem; }
.service-grid > a.group p, .service-grid > a.group > span { font-size: 1rem; }
.service-grid > a.group > div { width: 2.4rem; height: 2.4rem; margin-bottom: .75rem; }
.support-note { background: var(--color-blue-tint); border-left: 4px solid var(--color-blue-primary); border-radius: .75rem; padding: 1.5rem; }
.support-note p { margin-top: .75rem; }
.content-disclosure { width: 100%; border: 1px solid var(--color-blue-border); background: white; border-radius: .75rem; padding: 1rem 1.25rem; margin-bottom: 2rem; }
.content-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; list-style: none; font-weight: 700; color: var(--color-navy-deep); cursor: pointer; }
.content-disclosure > summary::after { content: "+"; font-size: 1.5rem; }
.content-disclosure[open] > summary::after { content: "−"; }
.content-disclosure > summary h2 { font-size: 1.3rem; margin: 0; }
.content-disclosure[open] > summary { margin-bottom: 1rem; }
.content-disclosure li { min-width: 0; max-width: 100%; }
.content-disclosure a { max-width: 100%; overflow-wrap: anywhere; }
summary::-webkit-details-marker { display: none; }
summary:focus-visible { outline: 3px solid var(--color-navy-deep); outline-offset: 3px; }
.compact-callout { padding: 1.5rem; text-align: left; }
.compact-callout p { margin: .75rem 0 0; }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; width: 100%; }
.contact-grid > .contact-panel { display: flex; flex-direction: column; min-width: 0; padding: 1.25rem; }
.contact-grid h2 { font-size: 1.5rem; text-wrap: wrap; }
.contact-grid p { margin-top: .5rem; }
.contact-grid .contact-action { display: flex; margin-top: auto; padding-top: 1rem; }
.contact-grid .contact-action .button { width: 100%; margin-top: 0; }
.contact-panel { padding: 2rem; border: 1px solid var(--color-blue-border); border-radius: .85rem; background: white; }
.contact-panel p { margin-top: .75rem; }
.email-panel { container-type: inline-size; }
.contact-panel .contact-address { display: block; overflow-wrap: anywhere; margin: .5rem 0 0; font-size: .95rem; font-size: clamp(.85rem, 5.4cqi, 1rem); font-weight: 500; letter-spacing: -.01em; }
.contact-panel .button { margin-top: .5rem; }
.contact-panel .action-row > .button { margin-top: 0; }
.site-footer { margin-top: 2.5rem; padding: 2rem 0; }
.site-footer .footer-inner { max-width: 72rem; margin: auto; padding: 0 1.25rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; text-align: left; font-size: 1rem; }
.site-footer .footer-inner > div { min-width: 0; }
.site-footer p { margin: .25rem 0; }
.site-footer a { color: white; text-underline-offset: 4px; }
.site-footer .footer-links { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.site-footer .footer-links a { min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; }
.site-footer .footer-email { overflow-wrap: anywhere; }
.site-footer button { text-decoration: underline; margin-left: .5rem; padding: .25rem; cursor: pointer; }
.site-footer .footer-links button { margin-left: 0; padding: 0; }
.site-footer :focus-visible, main .bg-blue-primary :focus-visible { outline-color: var(--color-pure-white); }
.form-progress { color: var(--color-blue-primary); font-weight: 700; margin-bottom: 1rem; }
.form-controls { display: flex; align-items: stretch; justify-content: space-between; flex-wrap: wrap; gap: .75rem; border-top: 1px solid var(--color-blue-border); padding-top: 1.25rem; margin-top: 1.5rem; }
.form-error { color: var(--color-navy-deep); background: var(--color-blue-tint); padding: .75rem 1rem; border-left: 4px solid var(--color-blue-primary); margin-top: 1rem; }
.form-intro { margin-bottom: 1.5rem; }
.choice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.choice { display: flex; align-items: flex-start; min-width: 0; gap: .65rem; padding: .75rem; border: 1px solid var(--color-blue-border); border-radius: .5rem; cursor: pointer; }
.choice:has(input:checked) { background: var(--color-blue-tint); border-color: var(--color-blue-primary); }
.choice input { width: 1.25rem; height: 1.25rem; accent-color: var(--color-blue-primary); margin-top: .2rem; flex-shrink: 0; }
.choice span { min-width: 0; overflow-wrap: anywhere; }
.question { margin: 1rem 0; padding: 1rem; background: var(--color-offwhite); border: 1px solid var(--color-blue-border); border-radius: .5rem; }
/* Floating the legend keeps wrapped headings inside the fieldset's border. */
.question legend { float: left; width: 100%; margin-bottom: .75rem; padding: 0; font-weight: 600; overflow-wrap: anywhere; }
.question > .choice-list, .question > .question-options { clear: both; }
.question-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.question-options .choice { min-width: 5rem; background: white; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.form-field { display: block; min-width: 0; font-weight: 700; margin-bottom: 1rem; overflow-wrap: anywhere; }
.form-field input, .form-field select { display: block; width: 100%; margin-top: .4rem; border: 2px solid var(--color-blue-border); border-radius: .5rem; padding: .7rem; font: inherit; font-weight: 400; background: white; }
.result-heading { margin-bottom: 1rem; }
#resultsCard { scroll-margin-top: 1rem; }
.toast { position: fixed; bottom: 1rem; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 2rem); background: var(--color-navy-deep); color: white; border: 1px solid white; padding: .75rem 1rem; border-radius: .5rem; z-index: 100; font-weight: 600; overflow-wrap: anywhere; }
.founder-highlights { padding: 1rem; }
.founder-values > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.founder-values > div > div { padding: 1.25rem; }
.founder-values p { font-size: 1rem; }
@media (min-width: 1200px) {
  .founder-values > div { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .action-pair { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1100px) {
  .site-header .header-inner { justify-content: space-between; }
  .nav-ready .menu-toggle { display: inline-flex; }
  .site-header nav { width: 100%; flex: 1 0 100%; max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; gap: .25rem .75rem; border-top: 1px solid var(--color-blue-border); padding-top: .5rem; }
  .nav-ready nav:not(.is-open) { display: none; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  body > main { padding-top: 1.5rem; }
  main h1 { font-size: 2rem; }
  main h2 { font-size: 1.5rem; }
  main .text-xl, main .text-2xl { font-size: 1.15rem; }
  main > .mb-20, main > .mb-16, main > .mb-12, main > .mb-14 { margin-bottom: 2rem; }
  main .p-6, main .p-7, main .p-8, main .p-10 { padding: 1.15rem; }
  main .mb-12, main .mb-10 { margin-bottom: 1.5rem; }
  main .mb-8 { margin-bottom: 1.25rem; }
  main .gap-10, main .gap-8 { gap: 1.25rem; }
  main a.px-8 { padding: .75rem 1rem; min-height: 48px; }
  .site-header img { height: 2.5rem; max-width: 175px; }
  .site-header .header-inner { gap: .5rem; }
  .home-hero { padding: .25rem 0 2rem; }
  .home-hero > div:first-child { border-radius: .5rem; padding: .4rem .6rem; font-size: .9rem; }
  .home-contact { grid-template-columns: 1fr; padding: 1.25rem; gap: 1rem; }
  .home-contact .action-row { justify-content: flex-start; }
  .service-grid { grid-template-columns: 1fr; gap: .6rem; }
  .service-grid > a.group, .service-card { padding: 1rem; border-top-width: 1px; border-left: 4px solid var(--color-blue-primary); }
  .service-grid > a.group > div { display: none; }
  .service-grid > a.group h3, .service-card h2, .service-card h3 { font-size: 1.15rem; margin-bottom: .3rem; }
  .service-grid > a.group > span, .service-card .service-link { padding-top: .4rem; font-size: .95rem; }
  .contact-grid { grid-template-columns: 1fr; gap: 1rem; }
  .contact-panel { padding: 1.25rem; }
  .page-hero { padding: .25rem 0 1.5rem; }
  .site-footer { margin-top: 1.5rem; padding: 1.5rem 0; }
  .site-footer .footer-inner { gap: 1rem; }
  .choice-list, .field-grid { grid-template-columns: minmax(0, 1fr); }
  .question { padding: .75rem; }
  .choice { padding: .6rem .75rem; }
  .form-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-controls .button { margin-top: 0; padding-inline: .6rem; }
  #backBtn[hidden] + #nextBtn { grid-column: 1 / -1; }
  .founder-feature > div { align-items: flex-start; }
  .founder-feature img { width: 6rem; height: 6rem; }
  .founder-values > div { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
  .founder-values > div > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem .75rem; text-align: left; }
  .founder-values > div > div > div { grid-row: 1 / 3; margin: 0; }
  .founder-values h3 { margin-bottom: 0; }
  .founder-values p { font-size: 1rem; }
}
@media (max-width: 479px) {
  .question-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 3.5rem), 1fr)); }
  .question-options .choice { flex-direction: column; align-items: center; min-width: 0; gap: .25rem; padding: .5rem .1rem; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  html.scroll-smooth { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
