/* Shared site consistency overrides. Keep these below the main stylesheets. */

/* use the owner-approved homepage circuitry on every route. */
body {
  isolation: isolate;
  background: #030e1d;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(#020b1833, #020b1833),
    url("/assets/homepage-circuit-background.webp") center / cover no-repeat;
}
main.home-active .hero-accent {
  background: transparent;
}
main.home-active .hero-accent::after {
  content: none;
}
/* emphasize the main circle on phones and tablets. */
main.home-active .shield-visual {
  width: min(480px, 100%);
  transform: none;
}
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .shield-visual {
    width: min(320px, 60%);
    transform: translateY(-54px);
  }
}
@media (pointer: coarse) {
  main.home-active .shield-stage {
    animation: none;
    transform: none;
  }
}
@media (min-width: 941px) and (max-width: 1200px) and (orientation: landscape) {
  main.home-active .shield-stage {
    animation: none;
    transform: none;
  }
}
/* restore laptop movement with room for each changing word. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .animated-shield-stage {
    animation: laptop-shield-follow-brand 10s ease-in-out 1 forwards;
  }
}
@keyframes laptop-shield-follow-brand {
  0%, 8% { transform: translateX(0); }
  10%, 24% { transform: translateX(clamp(27.5px, 2.5vw, 42.5px)); }
  26%, 40% { transform: translateX(clamp(52.5px, 5vw, 77.5px)); }
  42%, 56% { transform: translateX(clamp(22.5px, 2vw, 35px)); }
  58%, 72% { transform: translateX(clamp(57.5px, 5.5vw, 85px)); }
  74%, 88% { transform: translateX(clamp(67.5px, 6.5vw, 100px)); }
  92%, 100% { transform: translateX(0); }
}
main.home-active .laptop-logo-follow .animated-shield-stage {
  animation: none !important;
  transform: translateX(var(--logo-follow-x, 0px));
}
main.home-active .laptop-logo-follow .family-word-window {
  max-width: var(--laptop-family-space, none);
}
main.home-active .laptop-logo-follow .family-word {
  font-size: min(1em, var(--laptop-family-font, 1em));
}
/* preserve the owner's exact two headline lines on every screen. */
main.home-active .hero-copy {
  container-type: inline-size;
}
main.home-active .hero-tagline {
  font-size: min(clamp(25px, 2.3vw, 39px), 6cqw) !important;
  line-height: 1.12 !important;
}
.hero-tagline .tagline-line {
  display: block;
  color: inherit;
  white-space: nowrap;
}
@media (max-width: 650px) {
  footer .footer-brand-lockup small {
    font-size: clamp(8px, 2.5vw, 12px);
  }
  main.home-active .hero-tagline {
    font-size: min(24px, 6cqw) !important;
  }
}
/* Heading normalization saves inline alignment; orientation must override it. */
/* enlarge portrait branding within the widest family animation.
   The full wordmark plus its 5.55em family slot stays below the copy width. */
@media (max-width: 650px) and (orientation: portrait) {
  main.home-active .hero-accent {
    padding-top: 2px;
  }
  main.home-active .hero-preparedness {
    transform: translateY(16px);
    text-align: center !important;
  }
  /* Keep the final three words together within the centered phone headline. */
  main.home-active .preparedness-time {
    display: inline-block;
    white-space: nowrap;
  }
  main.home-active .hero-copy .animated-brand {
    font-size: min(clamp(22px, 7.4vw, 42px), 8.25cqw) !important;
    /* Preserve the previous 6px visual offset, then close this gap by 2px. */
    margin-top: 30px;
  }
  main.home-active .hero-tagline {
    font-size: min(26px, 6.3cqw) !important;
    letter-spacing: -.02em;
  }
}
@media (min-width: 651px) and (max-width: 1100px) and (orientation: portrait) {
  main.home-active .hero-preparedness {
    transform: translateY(11px);
  }
  main.home-active .hero-copy .animated-brand {
    font-size: min(clamp(40px, 6.2vw, 68px), 7.8cqw) !important;
  }
  main.home-active .hero-tagline {
    font-size: min(clamp(30px, 3.4vw, 38px), 6cqw) !important;
  }
}

main.home-active .hero-login-actions .button {
  text-transform: uppercase;
}
main.home-active .hero-copy > :is(.hero-preparedness, .animated-brand, .hero-tagline) {
  text-align: start !important;
}
/* Keep both circuit borders visible on tall phones and tablets. */
@media (orientation: portrait) {
  body::before {
    background-size: 100% 100%;
  }
  /* center the requested hero copy while held vertically. */
  main.home-active .hero-copy > :is(.hero-preparedness, .animated-brand, .hero-tagline) {
    width: 100%;
    max-width: none;
    text-align: center !important;
  }
  main.home-active .hero-copy > .animated-brand {
    justify-content: center;
  }
}

/* bring the laptop logo slightly closer to the hero copy. */
@media (min-width: 941px) and (max-width: 1600px) and (orientation: landscape) {
  main.home-active .shield-stage {
    left: -34px;
  }
}
@media (min-width: 941px) and (max-width: 1600px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .hero-preparedness {
    transform: translateY(15px);
  }
  main.home-active .hero-copy > .hero-preparedness {
    text-align: left !important;
  }
}
/* move only the laptop copy and its buttons horizontally. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .hero-copy {
    transform: translateX(clamp(32px, 4vw, 56px));
  }
}
@media (min-width: 941px) and (max-width: 1200px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .hero-login-actions .button {
    padding-inline: 6px;
    font-size: clamp(10px, 1.15vw, 12px);
    letter-spacing: 0;
  }
  main.home-active .hero-login-actions .button span {
    overflow-wrap: normal !important;
  }
}
@media (min-width: 651px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-preparedness {
    transform: translateY(11px);
  }
}

/* landscape tablets follow the regular laptop composition. */
@media (min-width: 768px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-accent {
    height: auto;
    min-height: 0;
    padding-bottom: 72px;
  }
  main.home-active .hero-copy {
    height: auto;
  }
  main.home-active .hero-preparedness {
    transform: translateY(15px);
  }
  main.home-active .hero-tagline {
    margin-bottom: 0 !important;
  }
  main.home-active .hero-login-actions {
    position: static !important;
    margin: 22px 0 0 !important;
  }
  main.home-active .shield-stage {
    min-height: 440px;
    margin-bottom: -170px;
  }
  main.home-active .shield-visual {
    width: min(320px, 60%);
    transform: translateY(-54px);
  }
}
@media (min-width: 768px) and (max-width: 940px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-accent {
    grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr) !important;
    column-gap: 28px;
  }
}

/* Larger portrait tablets need the same full-width text column as phones. */
@media (min-width: 941px) and (orientation: portrait) {
  main.home-active .hero-accent {
    grid-template-columns: minmax(0, 1fr);
    height: auto;
    min-height: 0;
    padding-bottom: 70px;
  }
  main.home-active .hero-copy {
    height: auto;
    min-width: 0;
  }
  main.home-active .hero-login-actions {
    position: static !important;
    margin: 22px 0 0 !important;
  }
  main.home-active .shield-stage {
    min-height: 390px;
    margin: 0;
    animation: none;
    transform: none;
  }
  main.home-active .shield-visual {
    transform: none;
  }
}

/* portrait devices and landscape phones end with the three actions. */
@media (max-width: 1100px) and (orientation: portrait),
       (max-width: 1100px) and (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-actions-after-logo {
    row-gap: 24px;
    padding-bottom: 16px;
  }
  main.home-active .hero-actions-after-logo .hero-copy {
    height: auto;
  }
  main.home-active .hero-actions-after-logo > .shield-stage {
    min-height: 0;
    margin: 0;
  }
  main.home-active .hero-actions-after-logo .shield-visual {
    transform: none;
  }
  main.home-active .hero-actions-after-logo > .hero-login-actions,
  main.home-active .hero-copy > .hero-login-actions {
    position: static !important;
    margin: 0 auto !important;
    justify-self: center;
  }
}

@media (max-width: 1100px) and (orientation: portrait) {
  main.home-active .hero-actions-after-logo {
    row-gap: 12px;
  }
  main.home-active .hero-actions-after-logo .hero-tagline {
    margin-bottom: 0 !important;
  }
  main.home-active .hero-actions-after-logo > .shield-stage {
    margin-top: 0;
  }
}

@media (max-width: 1100px) and (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-copy > :is(.hero-preparedness, .animated-brand, .hero-tagline) {
    width: 100%;
    max-width: none;
    text-align: center !important;
  }
  main.home-active .hero-copy > .animated-brand {
    justify-content: center;
  }
  main.home-active .hero-actions-after-logo {
    grid-template-columns: minmax(0, 1fr);
    height: auto;
    min-height: 0;
  }
  main.home-active .hero-actions-after-logo > .shield-stage {
    left: 0;
    animation: none;
    transform: none;
  }
  main.home-active .hero-actions-after-logo > .hero-login-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* fit the full secured network access label in shared navigation. */
.site-header #main-nav a[href^="/bondsman"] {
  max-width: 172px;
  white-space: normal;
  text-align: center;
  line-height: 1.2;
}
@media (min-width: 941px) {
  .site-header {
    grid-template-columns: max-content minmax(0, 1fr) max-content;
  }
  .site-header .arrest-pulse {
    min-width: 0;
    white-space: normal;
  }
  .site-header .arrest-pulse-message {
    min-width: 0;
    max-width: 100%;
  }
  .site-header .arrest-pulse-light {
    flex-shrink: 0;
  }
}

/* keep the raised source marker with the final word on every screen. */
.site-header .arrest-pulse-ending {
  white-space: nowrap;
}
.site-header .arrest-pulse-footnote-marker,
footer .footer-stat sup {
  font-size: 9px;
}
.site-header .arrest-pulse-footnote-marker {
  position: static;
  vertical-align: super;
  line-height: 0;
}

/* use two deliberate lines on portrait phones and laptops. */
@media (max-width: 650px) and (orientation: portrait),
       (min-width: 941px) and (max-width: 1600px) and (orientation: landscape) {
  .site-header .arrest-pulse-copy {
    line-height: 1.3;
    white-space: nowrap;
  }
  .site-header .arrest-pulse-continuation {
    display: block;
  }
  .site-header .arrest-pulse-light {
    flex-shrink: 0;
  }
}
@media (max-width: 650px) and (orientation: portrait) {
  .site-header .arrest-pulse-comma {
    display: none;
  }
}

/* The site must never become wider than the browser viewport. */
html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: clip !important;
}
.site-header,
main,
main#app,
footer {
  max-width: 100% !important;
  box-sizing: border-box !important;
}
img,
svg,
video,
canvas {
  max-width: 100%;
}


/* One shared content width and box model across the long homepage. */
main.home-active > .section,
main.home-active section.section,
.homepage-how-it-works,
.homepage-about,
.homepage-faq,
.homepage-privacy,
.homepage-terms,
.homepage-accessibility,
.homepage-support {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

main.home-active .panel,
main.home-active .card,
main.home-active details,
main.home-active .faq-list,
main.home-active .cards,
main.home-active .section-heading,
main.home-active .how-summary,
main.home-active .how-summary-grid,
main.home-active .how-summary-card,
main.home-active .home-support-copy {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

main.home-active p,
main.home-active h1,
main.home-active h2,
main.home-active h3,
main.home-active summary,
main.home-active li,
main.home-active a,
main.home-active span {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

/* This was the main wide-text offender: never let these desktop lines force page width. */
.homepage-how-it-works .home-support-copy > span {
  max-width: 100% !important;
  white-space: normal !important;
}

/* stack the introductory accordions with the FAQ row gap. */
.homepage-faq > .homepage-what-is-mybondnow {
  padding-top: 0;
}
.homepage-faq > .faq-groups {
  margin-top: 10px;
  gap: 10px;
}
.homepage-overview-heading {
  margin: 0 0 12px;
  color: #78c2ff;
  font-size: 22px;
  text-align: center;
}
main.home-active :is(.homepage-founder-story, .homepage-what-mybondnow-does, .homepage-who-mybondnow-is-for, .homepage-what-happens-if-arrested, .homepage-prepare-before-arrest) {
  padding-top: 10px !important;
}
.homepage-who-mybondnow-is-for .cards {
  padding: 18px;
}
.homepage-who-mybondnow-is-for .card p {
  margin: 1em 0;
  padding: 0;
  color: var(--muted);
}

/* Legal/about accordion rows use the same collapsed height and full width. */
.homepage-privacy .privacy-section,
.homepage-terms .terms-section,
.homepage-accessibility .accessibility-section,
.homepage-about .about-story {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.homepage-privacy .privacy-section > summary,
.homepage-terms .terms-section > summary,
.homepage-accessibility .accessibility-section > summary,
.homepage-about .about-story > summary {
  width: 100% !important;
  min-height: 54px !important;
  padding: 16px 52px 16px 18px !important;
  box-sizing: border-box !important;
}

.homepage-faq .faq-contact.homepage-bottom-question { margin-top: 28px; }

.homepage-faq .section-heading {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  justify-items: center !important;
  gap: 6px !important;
  margin-bottom: 8px !important;
}
.homepage-faq .homepage-faq-intro-two-lines {
  display: grid !important;
  justify-items: center !important;
  align-content: center !important;
  gap: 4px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  text-align: center !important;
}
.homepage-faq .homepage-faq-intro-two-lines > span {
  display: block !important;
  max-width: 100% !important;
  white-space: normal !important;
}

/* lower homepage headings use the nearby 14px accordion gap. */
.homepage-support,
.homepage-faq,
.homepage-accessibility,
.homepage-terms,
.homepage-privacy {
  padding-top: 14px !important;
}

/* Match the final Accessibility row gap above the shared question box. */
main#app.home-active {
  padding-bottom: 14px !important;
}

.homepage-support .section-heading,
.homepage-accessibility .section-heading,
.homepage-terms .section-heading,
.homepage-privacy .section-heading {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  justify-items: center !important;
  gap: 6px !important;
  padding-top: 0 !important;
  margin-bottom: 8px !important;
}
.homepage-faq .section-heading :is(h1, h2),
.homepage-support .section-heading :is(h1, h2),
.homepage-accessibility .section-heading :is(h1, h2),
.homepage-terms .section-heading :is(h1, h2),
.homepage-privacy .section-heading :is(h1, h2) {
  margin: 0 !important;
  font-size: clamp(28px, 3vw, 38px) !important;
  line-height: 1.08 !important;
  text-align: center !important;
}
/* titles and their subtitles stay centered and stacked in either orientation. */
:is(.homepage-faq, .homepage-support, .homepage-accessibility, .homepage-terms, .homepage-privacy) > .section-heading > div {
  grid-column: 1;
  grid-row: 1;
}
:is(.homepage-faq, .homepage-support, .homepage-accessibility, .homepage-terms, .homepage-privacy) > .section-heading > p {
  grid-column: 1;
  grid-row: 2;
}
.homepage-faq .faq-group > :is(h2, h3) {
  text-align: center !important;
}
/* Let narrow portrait phones wrap before "and", only when the title needs it. */
@media (max-width: 650px) and (orientation: portrait) {
  .homepage-faq .homepage-payment-heading-ending {
    white-space: nowrap;
  }
}
.homepage-support .homepage-support-availability,
.homepage-accessibility .section-heading > p,
.homepage-terms .section-heading > p,
.homepage-privacy .section-heading > p {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  text-align: center !important;
}
.homepage-support .homepage-support-availability {
  display: grid !important;
  justify-items: center !important;
  gap: 6px !important;
}
.homepage-support .homepage-support-availability > span {
  display: block;
  max-width: 100%;
  white-space: normal;
}

.homepage-how-it-works .how-summary,
.homepage-how-it-works .how-summary-grid,
.homepage-how-it-works .cards {
  width: 100% !important;
  max-width: 100% !important;
}
/* match both explanation boxes to the surrounding body text. */
.homepage-how-it-works .how-summary-card {
  font-size: inherit !important;
  line-height: 1.5 !important;
}
.homepage-how-it-works .cards {
  transform: none !important;
  margin-top: 16px !important;
  margin-bottom: 0 !important;
  align-items: stretch !important;
}
.homepage-how-it-works .card,
.homepage-how-it-works .how-summary-card {
  height: auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

/* always-visible panels styled like expanded FAQ rows. */
#homepage-how-it-works {
  display: grid;
  gap: 10px;
}
#homepage-how-it-works .how-summary,
#homepage-how-it-works .how-summary-grid,
#homepage-how-it-works .cards {
  margin: 0 !important;
}
#homepage-how-it-works .how-summary-grid,
#homepage-how-it-works .cards {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
}
#homepage-how-it-works .homepage-static-panel {
  display: block !important;
  justify-items: normal !important;
  align-items: normal !important;
  width: 100%;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: linear-gradient(145deg, #0d243d, #0a192a);
  box-shadow: 0 8px 22px #0002;
  overflow: clip;
  text-align: left !important;
  text-wrap: wrap;
  color: #c7d7e8;
  font-weight: 400 !important;
}
#homepage-how-it-works .homepage-static-panel-title,
#homepage-how-it-works .how-it-works-label,
#homepage-how-it-works .homepage-how-it-works-search-subheading,
#homepage-how-it-works .homepage-static-panel-header > :is(h2, h3) {
  display: block !important;
  width: 100% !important;
  position: static !important;
  margin: 0 !important;
  padding: 16px 18px !important;
  border-bottom: 1px solid var(--line);
  color: #edf6ff !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
}
#homepage-how-it-works .how-primary-message,
#homepage-how-it-works .step-card > p {
  margin: 0;
  padding: 15px 18px 18px;
  color: #c7d7e8;
  font-weight: 400;
}
#homepage-how-it-works .homepage-seo-intro,
#homepage-how-it-works .home-support-copy {
  padding: 15px 18px 18px !important;
}
#homepage-how-it-works .homepage-seo-intro > .homepage-static-panel-title,
#homepage-how-it-works .home-support-copy > .homepage-how-it-works-search-subheading {
  margin: -15px -18px 15px !important;
  width: calc(100% + 36px) !important;
  max-width: none !important;
}
#homepage-how-it-works .home-support-copy > span:not(.homepage-how-it-works-search-subheading) {
  display: inline !important;
  white-space: normal !important;
}
#homepage-how-it-works .home-support-copy > span::after {
  content: " ";
}
#homepage-how-it-works .homepage-static-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 54px;
  padding: 6px 18px;
  border-bottom: 1px solid var(--line);
}
#homepage-how-it-works .homepage-static-panel-header > :is(h2, h3) {
  flex: 1 1 auto;
  min-width: 0;
  width: auto !important;
  padding: 0 !important;
  border-bottom: 0;
}
#homepage-how-it-works .homepage-static-panel-header > .button {
  flex: 0 0 auto;
  width: fit-content;
  max-width: 100%;
  min-height: 0;
  margin: 0;
  padding: 6px 10px;
  font-size: 18px;
  letter-spacing: .12em;
}
#homepage-how-it-works .homepage-static-panel-header > .button[href^="/bondsman"] {
  max-width: min(180px, 45%);
  white-space: normal;
  text-align: center;
  font-size: 12px;
  letter-spacing: normal;
}
@media (max-width: 480px) {
  #homepage-how-it-works .homepage-static-panel-header > .button {
    font-size: 14px;
    letter-spacing: .04em;
  }
}

main.home-active .cards > *,
main.home-active .two > *,
main.home-active .section-heading > *,
main.home-active .how-summary-grid > * {
  min-width: 0 !important;
  max-width: 100% !important;
}

footer {
  height: auto !important;
  min-height: 68px !important;
  padding: 6px 22px !important;
  box-sizing: border-box;
  grid-template-columns: max-content minmax(300px, 1fr) max-content !important;
  grid-template-rows: auto auto;
  column-gap: 24px !important;
  row-gap: 6px !important;
  align-items: center !important;
  overflow: hidden !important;
}
footer > .footer-copyright {
  grid-column: 1 / -1;
  margin: 0;
  min-width: 0;
  color: #aac0d6;
  font-size: 11px;
  line-height: 16px;
  text-align: center;
}
footer > .footer-brand-lockup:first-child {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 2px !important;
  align-items: center !important;
  justify-items: start !important;
  min-width: 0 !important;
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
}
footer > .footer-brand-lockup:first-child .footer-brand,
footer > .footer-brand-lockup:first-child small { display: block !important; margin: 0 !important; }
/* brand badge stays beside its copy within the compact footer. */
footer > .footer-brand-lockup:first-child {
  grid-template-columns: 48px minmax(0, 1fr) !important;
  gap: 12px !important;
}
footer .footer-stat {
  grid-column: 2 !important;
  min-width: 0 !important;
  padding: 0 12px !important;
  text-align: center !important;
  white-space: normal !important;
}
footer .footer-stat span { white-space: normal !important; }
footer nav {
  grid-column: 3 !important;
  justify-self: end !important;
  width: max-content !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: max-content max-content max-content max-content !important;
  grid-template-rows: repeat(2, auto) !important;
  column-gap: 22px !important;
  row-gap: 5px !important;
  align-items: center !important;
  justify-items: center !important;
  white-space: nowrap !important;
}
footer nav a,
footer nav .footer-policy-button { margin: 0 !important; padding: 0 !important; white-space: nowrap !important; }
.footer-about { grid-column: 1; grid-row: 1; align-self: center; }
.footer-faq { grid-column: 2; grid-row: 1; }
.footer-terms { grid-column: 3; grid-row: 1; }
.footer-privacy { grid-column: 2; grid-row: 2; }
.footer-support { grid-column: 3; grid-row: 2; }
.footer-accessibility { grid-column: 1; grid-row: 2; }
footer nav .footer-privacy-choices {
  grid-column: 4;
  grid-row: 1 / span 2;
  align-self: stretch;
  display: grid;
  grid-template-rows: repeat(2, 1fr);
  grid-template-rows: subgrid;
  row-gap: inherit;
  align-items: center;
  justify-items: center;
  font-size: 13px;
  line-height: 1.15;
  text-decoration: none;
}
.footer-privacy-choices > span { text-decoration: underline; text-underline-offset: .18em; }

@media (max-width: 940px) {
  .site-header {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    overflow: hidden !important;
  }
  .site-header .brand { min-width: 0 !important; }
  .site-header #main-nav {
    grid-column: 1 / -1;
    min-width: 0;
    flex-wrap: wrap;
    justify-content: center;
    overflow: visible;
  }
  .site-header .arrest-pulse {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow: hidden !important;
  }

  main.home-active {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    overflow-x: hidden !important;
  }

  main.home-active > *,
  main.home-active .section,
  main.home-active .panel,
  main.home-active .card,
  main.home-active .cards,
  main.home-active .faq-group,
  main.home-active .faq-list,
  main.home-active details,
  main.home-active .section-heading,
  main.home-active .how-summary,
  main.home-active .how-summary-grid,
  main.home-active .home-support-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  .homepage-how-it-works .how-summary-grid,
  .homepage-how-it-works .cards,
  main.home-active .cards,
  main.home-active .two {
    grid-template-columns: 1fr !important;
  }

  .homepage-how-it-works .how-summary-card,
  .homepage-how-it-works .home-support-copy {
    min-height: 0 !important;
    height: auto !important;
  }

  .homepage-how-it-works .home-support-copy {
    display: block !important;
    position: static !important;
    transform: none !important;
    text-align: left !important;
  }

  .homepage-how-it-works .home-support-copy > span {
    display: inline !important;
    white-space: normal !important;
    max-width: 100% !important;
  }
  .homepage-how-it-works .home-support-copy > span::after { content: " "; }

  .homepage-how-it-works .how-primary-message,
  .homepage-how-it-works .how-it-works-label {
    transform: none !important;
  }

  .homepage-faq .homepage-faq-intro-two-lines > span,
  .homepage-support .homepage-support-availability > span {
    white-space: normal !important;
  }
}

/* compact the header on landscape phones and portrait tablets. */
@media (max-width: 1100px) and (max-height: 500px) and (orientation: landscape) and (pointer: coarse),
       (min-width: 651px) and (max-width: 1100px) and (orientation: portrait) {
  .site-header {
    display: grid;
    min-height: 66px;
    padding-top: 6px;
    padding-bottom: 6px;
    grid-template-columns: max-content minmax(0, 1fr) max-content !important;
    grid-template-areas: "brand pulse menu" "nav nav nav";
    column-gap: 8px;
    row-gap: 0;
  }
  .site-header .brand {
    grid-area: brand;
  }
  .site-header .arrest-pulse {
    grid-area: pulse;
    grid-column: 2 !important;
    width: auto !important;
    min-width: 0;
    align-self: start;
    margin-top: 3px;
  }
  .site-header .arrest-pulse-message {
    min-width: 0;
    max-width: 100%;
  }
  .site-header .arrest-pulse-copy {
    min-width: 0;
    white-space: normal;
    line-height: 1.15;
  }
  .site-header .arrest-pulse-continuation {
    display: block;
  }
  .site-header .menu-button {
    grid-area: menu;
    display: block;
    margin: 0;
    border: 1px solid var(--line);
    background: #102943;
    color: #fff;
    border-radius: 7px;
    padding: 8px 11px;
  }
  .site-header #main-nav {
    grid-area: nav;
    grid-column: 1 / -1;
    display: none;
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    justify-content: center;
    overflow: visible;
  }
  .site-header #main-nav.open {
    display: flex;
  }
}

/* portrait devices and landscape phones need the stacked footer. */
/* enlarge the complete horizontal-tablet header in normal flow. */
@media (min-width: 768px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  .site-header {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) max-content !important;
    grid-template-areas: "brand pulse nav";
    min-height: 110px;
    padding: 14px clamp(18px, 3vw, 42px);
    gap: 16px;
  }
  .site-header .brand { grid-area: brand; }
  .site-header .brand img { width: 76px; height: 76px; }
  .site-header .brand span { font-size: 32px; }
  .site-header .brand small { font-size: 13px; }
  .site-header .arrest-pulse {
    grid-area: pulse;
    grid-column: 2 !important;
    width: auto !important;
    min-width: 0;
    font-size: 14px;
    line-height: 1.2;
    white-space: normal;
  }
  .site-header .arrest-pulse-copy { white-space: normal; }
  .site-header .arrest-pulse-continuation { display: block; }
  .site-header .arrest-pulse-light { width: 21px; height: 21px; flex-shrink: 0; }
  .site-header .menu-button { display: none; }
  .site-header #main-nav {
    grid-area: nav;
    display: flex;
    width: auto;
    margin: 0;
    padding: 0;
    gap: 6px;
    justify-content: center;
    flex-wrap: wrap;
    overflow: visible;
  }
  .site-header #main-nav a { font-size: 16px; padding: 8px 10px; }
  main [id] { scroll-margin-top: 212px; }
}
@media (min-width: 768px) and (max-width: 1279px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  .site-header {
    grid-template-columns: max-content minmax(0, 1fr) !important;
    grid-template-areas: "brand pulse" "nav nav";
    row-gap: 10px;
  }
  .site-header #main-nav { grid-column: 1 / -1; }
}

/* increase only the portrait-tablet arrest message. */
@media (min-width: 651px) and (max-width: 1100px) and (orientation: portrait) {
  .site-header .arrest-pulse { font-size: 14px; }
  .site-header .arrest-pulse-copy { line-height: 1.2; }
}

@media (max-width: 940px), (orientation: portrait),
       (max-width: 1100px) and (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  footer {
    position: static !important;
    height: auto !important;
    min-height: 68px !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: none;
    row-gap: 8px !important;
    padding: 8px 14px !important;
    overflow-x: hidden !important;
  }
  footer > .footer-brand-lockup:first-child,
  footer .footer-stat,
  footer nav {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch !important;
  }
  footer .footer-stat { padding: 0 !important; }
  footer nav {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 6px !important;
    white-space: normal !important;
  }
  footer nav a,
  footer nav .footer-policy-button {
    white-space: normal !important;
    text-align: center !important;
    font-size: 12px !important;
  }
}

/* Center the footer brand on portrait devices and landscape phones. */
@media (orientation: portrait),
       (max-width: 1100px) and (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  footer > .footer-brand-lockup:first-child {
    width: max-content !important;
    justify-self: center !important;
  }
  footer .footer-brand-lockup > div {
    text-align: center;
  }
}

@media (min-width: 941px) {
  body.role-sign-in-page main#app {
    padding-bottom: 92px !important;
    min-height: calc(100dvh - 70px) !important;
    box-sizing: border-box;
  }
  body.role-sign-in-page .login-section { padding-bottom: 24px !important; }
}

/* Help is available through the floating button; hide legacy question boxes
   immediately while the shared cleanup removes any cached or rendered copies. */
.site-bottom-question, #app .faq-contact { display: none !important; }

/* Retained styles for older cached shells; these boxes are no longer shown. */
.site-bottom-question {
  width: var(--question-content-width, calc(100% - 48px));
  margin: 0 auto calc(12px + var(--question-footer-clearance, 0px));
  margin-left: var(--question-content-left, auto);
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 16px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.site-bottom-question > h2 {
  margin: 0 0 4px;
  font-size: 24px;
  line-height: 1.5;
}
.site-bottom-question > p {
  margin: 4px 0 0;
}
.site-bottom-question > .homepage-question-invitation {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}
.homepage-question-invitation > span {
  display: block;
}
.homepage-question-invitation > span + span {
  margin-top: 4px;
}
@media (max-width: 940px) {
  .site-bottom-question { width: var(--question-content-width, calc(100% - 32px)); }
}

/* agency, family, and profile sign-in boxes share compact, centered columns. */
body main#app:has(> .agency-sign-in-intro),
body main#app:has(#account-login-form[data-role="family"]),
body main#app:has(#account-login-form[data-role="customer"]) {
  width: min(100%, 472px);
  min-height: 0 !important;
  margin-inline: auto;
  padding: 14px 16px 10px !important;
}
main#app > .agency-sign-in-intro {
  width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
main#app:has(> .agency-sign-in-intro) > .login-section,
main#app:has(#account-login-form[data-role="family"]) > .login-section,
main#app:has(#account-login-form[data-role="customer"]) > .login-section {
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  padding: 0 !important;
}
main#app:has(> .agency-sign-in-intro) .login-panel,
main#app:has(#account-login-form[data-role="family"]) .login-panel,
main#app:has(#account-login-form[data-role="customer"]) .login-panel {
  width: 100%;
  min-width: 0;
}
body:has(main#app > .agency-sign-in-intro) > .site-bottom-question,
body:has(#account-login-form[data-role="family"]) > .site-bottom-question,
body:has(#account-login-form[data-role="customer"]) > .site-bottom-question {
  width: min(440px, calc(100% - 32px));
  margin-inline: auto;
}

/* account introductions use the same open Agency panel style. */
.account-sign-in-intro {
  width: 100%;
  min-width: 0;
  margin: 0 0 10px;
  padding: 0;
  overflow: clip;
  overflow-wrap: anywhere;
}
.account-sign-in-intro > strong {
  display: block;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  color: #edf6ff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.35;
}
.account-sign-in-intro > p {
  margin: 0;
  padding: 15px 18px 18px;
  color: #c7d7e8;
}
/* Portrait tablets give all three introductions matching height and dividers. */
@media (min-width: 651px) and (orientation: portrait) {
  main#app > :is(.agency-sign-in-intro, .account-sign-in-intro) {
    display: grid;
    grid-template-rows: minmax(76.2px, auto) 1fr;
    min-height: 280px;
    width: 100%;
    min-width: 0;
    margin: 0 0 10px;
    padding: 0;
    overflow-wrap: anywhere;
  }
  :is(.agency-sign-in-intro, .account-sign-in-intro) > strong {
    display: flex;
    align-items: center;
  }
}

/* short tablet pages fill the screen above a compact footer. */
@media (min-width: 651px) {
  @media (max-width: 940px), (orientation: portrait), (pointer: coarse) and (min-height: 501px) {
    body:has(#account-login-form[data-role="family"]),
    body:has(#account-login-form[data-role="customer"]),
    body:has(main > .agency-sign-in-intro),
    body:has(main > .about-page),
    body:has(main.how-it-works-active) {
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
    }
    body:has(#account-login-form[data-role="family"]) > main,
    body:has(#account-login-form[data-role="customer"]) > main,
    body:has(main > .agency-sign-in-intro) > main,
    body:has(main > .about-page) > main,
    body:has(main.how-it-works-active) > main {
      margin-block: 0;
    }
    body > main.how-it-works-active,
    body > main:has(> .about-page) {
      width: 100%;
    }
    body:has(#account-login-form[data-role="family"]) > :is(header, main, .site-bottom-question, footer),
    body:has(#account-login-form[data-role="customer"]) > :is(header, main, .site-bottom-question, footer),
    body:has(main > .agency-sign-in-intro) > :is(header, main, .site-bottom-question, footer),
    body:has(main > .about-page) > :is(header, main, .site-bottom-question, footer),
    body:has(main.how-it-works-active) > :is(header, main, .site-bottom-question, footer) {
      flex: none;
    }
    body:has(#account-login-form[data-role="family"]) > footer,
    body:has(#account-login-form[data-role="customer"]) > footer,
    body:has(main > .agency-sign-in-intro) > footer,
    body:has(main > .about-page) > footer,
    body:has(main.how-it-works-active) > footer {
      position: static;
      margin-top: auto;
    }
  }
}

/* The moving master grows in place only after the family-name cycle finishes. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine),
       (min-width: 768px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .laptop-logo-follow .shield-stage img {
    transform-origin: center;
    scale: 1;
    transition: scale 220ms ease;
  }
  main.home-active .laptop-logo-follow.laptop-logo-settled .shield-stage img {
    scale: var(--logo-rest-scale, 1);
    transition-duration: 500ms;
  }
}
@media (prefers-reduced-motion: reduce) {
  main.home-active .laptop-logo-follow .shield-stage img { transition: none; }
}

/* On portrait tablets, keep the footer at the
   screen bottom on short pages and after the content on long pages. Retained
   designs and standalone print previews keep their existing document layout. */
@media (min-width: 651px) and (orientation: portrait) and (pointer: coarse) {
  :where(html:not([data-review-id^="older-"]) > body:not(:has(.review-document))) {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
  }
  :where(html:not([data-review-id^="older-"]) > body:not(:has(.review-document))) > :is(.site-header, main#app, .site-bottom-question, footer) {
    flex: none;
  }
  :where(html:not([data-review-id^="older-"]) > body:not(:has(.review-document))) > main#app {
    width: 100%;
    min-height: 0 !important;
    margin-block: 0;
  }
  :where(html:not([data-review-id^="older-"]) > body:not(:has(.review-document))) > footer {
    position: static !important;
    margin-top: auto !important;
  }
}

/* Only pages measured to fit the portrait tablet are centered. Long pages
   retain their original display, padding, and normal scrolling behavior. */
@media (min-width: 651px) and (orientation: portrait) and (pointer: coarse) {
  body:has(> #app.tablet-portrait-centered) > main#app {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: var(--tablet-center-top, 0px) !important;
    padding-bottom: var(--tablet-center-bottom, 0px) !important;
  }
  body > main#app.tablet-portrait-centered > #homepage-how-it-works {
    padding-block: 0;
  }
}

/* Preserve the approved How It Works centering before presentation scripts run. */
@media (min-width: 651px) and (orientation: portrait) and (pointer: coarse) {
  body > main#app.how-it-works-active {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: 16px;
  }
  body > main#app.how-it-works-active > #homepage-how-it-works {
    padding-block: 0;
  }
  body > main#app.tablet-portrait-centered > .section:first-child { padding-top: 0; }
  body > main#app.tablet-portrait-centered > .section:last-child { padding-bottom: 0; }
}

/* Laptop only, including resized/tall mouse-and-trackpad windows. Keep the
   touch-device layouts above unchanged. Page groups start below the header;
   do not change horizontal alignment or the already top-aligned home hero. */
@media (min-width: 651px) and (hover: hover) and (pointer: fine) {
  body:has(> main#app:not(.home-active)) {
    justify-content: flex-start;
    align-content: start;
  }
  body > main#app:not(.home-active) {
    margin-block: 0 !important;
    min-height: 0 !important;
    height: auto;
    max-height: none;
    padding-top: 14px !important;
    justify-content: flex-start !important;
    align-content: start !important;
    overflow: visible;
  }
  body > main#app:not(.home-active) > .section:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
    align-content: start;
  }
}

/* Portrait tablet only: larger homepage messages, wordmark and main logo.
   Container-relative caps preserve each line and the widest family-name phase. */
@media (min-width: 651px) and (max-width: 1100px) and (orientation: portrait) and (pointer: coarse) {
  main.home-active .hero-preparedness {
    font-size: min(clamp(26px, 3.5vw, 36px), 4.7cqw) !important;
  }
  main.home-active .hero-copy .animated-brand {
    font-size: min(clamp(48px, 7.2vw, 80px), 8.45cqw) !important;
  }
  main.home-active .hero-tagline {
    font-size: min(clamp(36px, 4.2vw, 46px), 7cqw) !important;
  }
  main.home-active .shield-visual {
    width: min(576px, 100%);
  }
  main.home-active .hero-login-actions .button {
    min-height: 84px;
    padding-block: 20px;
  }
}

/* Landscape touch tablets only: give larger copy and the moving logo room.
   Narrow tablets wrap the headline instead of reducing it below 28px. */
@media (min-width: 768px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-accent {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr) !important;
    column-gap: 28px;
    padding-inline: clamp(28px, 5vw, 76px);
    padding-top: 42px;
  }
  main.home-active .hero-preparedness {
    font-size: max(28px, min(clamp(28px, 3.2vw, 42px), 4.9cqw)) !important;
  }
  main.home-active .preparedness-first-line {
    white-space: normal;
  }
  main.home-active .preparedness-release-ending {
    display: block;
  }
  main.home-active .hero-copy .animated-brand {
    font-size: min(clamp(48px, 6.2vw, 86px), 12cqw) !important;
    margin-bottom: 20px !important;
  }
  main.home-active .laptop-logo-follow .family-word-window {
    max-width: none;
  }
  main.home-active .laptop-logo-follow .family-word {
    font-size: 1em;
  }
  main.home-active .hero-tagline {
    font-size: min(clamp(28px, 2.8vw, 40px), 7cqw) !important;
  }
  main.home-active .hero-login-actions,
  main.home-active .hero-copy:has(.analytics-consent-in-hero) > .hero-login-actions {
    margin-top: max(90px, var(--tablet-logo-actions-gap, 0px)) !important;
  }
  main.home-active .hero-login-actions .button {
    min-height: 76px;
    padding-block: 18px;
  }
  main.home-active .shield-stage {
    left: -60px;
    margin-left: 0;
  }
  main.home-active .shield-visual {
    width: min(428px, calc(90% + 48px));
    transform: translateY(34px);
  }
  main.home-active .laptop-logo-follow .shield-stage img {
    scale: var(--tablet-logo-moving-scale, 1);
    transition: none;
  }
  main.home-active .laptop-logo-follow.laptop-logo-settled .shield-stage img {
    scale: var(--logo-rest-scale, 1);
    transition: scale 500ms ease;
  }
  main.home-active .animated-shield-stage {
    animation: laptop-shield-follow-brand 10s ease-in-out 1 forwards;
  }
}

/* All formats: keep each Create Profile action paired with its slim Sign In button. */
main.home-active .hero-action-group {
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 6px;
  min-width: 0;
  min-height: 112px;
}
main.home-active .hero-action-group > .button {
  width: 100%;
  padding-block: 6px;
}
/* Fit the added action line inside the existing button dimensions. */
main.home-active .hero-action-group > .button span {
  font-size: min(1em, 14px);
  line-height: 1.15;
}
main.home-active .hero-create-profile {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 3px 8px;
  border: 1px solid #41678d;
  border-radius: 7px;
  background: #061a31;
  color: #eaf5ff;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: .025em;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}
main.home-active .hero-create-profile:hover {
  background: #102943;
}
main.home-active .hero-create-profile:focus-visible {
  outline: 3px solid #96d1ff;
  outline-offset: 2px;
}

/* Laptop only: lower the three homepage actions without changing page flow. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .hero-login-actions {
    translate: 0 48px;
  }
  /* The decorative rings share the image's scale, center and transition. */
  main.home-active .laptop-logo-follow .shield-visual::before {
    transform-origin: center;
    scale: 1;
    transition: scale 220ms ease;
  }
  main.home-active .laptop-logo-follow.laptop-logo-settled .shield-visual::before {
    scale: var(--logo-rest-scale, 1);
    transition-duration: 500ms;
  }
  @media (prefers-reduced-motion: reduce) {
    main.home-active .laptop-logo-follow .shield-visual::before {
      transition: none;
    }
  }
}

/* Keep the existing wordmark boxes on tablets and laptops. */
.animated-brand :is(.brand-prefix, .brand-ending) {
  display: contents;
}

/* Phones only: fit the longest family phrase on one line at a constant size.
   Keep the widened word slots so Daughter's and Loved One's remain readable. */
@media (max-width: 650px) and (orientation: portrait) and (pointer: coarse),
       (max-width: 1100px) and (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-copy .animated-brand {
    font-size: min(64px, 8.25cqw) !important;
    line-height: 1.2 !important;
    letter-spacing: -.045em !important;
    width: 100%;
    min-height: 1.28em;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    gap: 0;
  }
  main.home-active .animated-brand :is(.brand-prefix, .brand-ending) {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
  }
  /* The longer names need more than the original narrow animation slots. */
  @keyframes family-slot-open {
    0%, 8% { width: 0; opacity: 0; }
    10%, 24% { width: 3em; opacity: 1; }
    26%, 40% { width: 5em; opacity: 1; }
    42%, 56% { width: 2.65em; opacity: 1; }
    58%, 72% { width: 5.3em; opacity: 1; }
    74%, 88% { width: 5.75em; opacity: 1; }
    92%, 100% { width: 0; opacity: 0; }
  }
}

/* Owner-requested compact four-line headline on laptops and landscape tablets. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine),
       (min-width: 768px) and (min-height: 501px) and (orientation: landscape) and (pointer: coarse) {
  main.home-active .hero-accent {
    padding-top: 16px;
  }
  main.home-active .hero-preparedness {
    transform: none;
    line-height: 1;
  }
  main.home-active .preparedness-first-line,
  main.home-active .preparedness-arrest-ending,
  main.home-active .preparedness-release-ending {
    display: block;
    white-space: nowrap;
  }
  main.home-active .preparedness-first-line + br {
    display: none;
  }
  main.home-active .hero-copy .animated-brand {
    margin-top: 4px !important;
  }
  main.home-active .hero-tagline {
    margin-bottom: 0 !important;
  }
  main.home-active .hero-login-actions,
  main.home-active .hero-copy:has(.analytics-consent-in-hero) > .hero-login-actions {
    position: static !important;
    margin: 24px 0 0 !important;
    translate: none;
  }
}
/* Keep the laptop hero together, 10px below its previous position. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .hero-accent {
    padding-top: 26px;
  }
  main.home-active .hero-login-actions {
    translate: none;
  }
}

/* Keep the counter attribution on two centered lines on laptops only. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  footer #arrest-counter-source-note {
    white-space: pre-line !important;
    text-align: center;
  }
}

/* Laptop headline only: add 2px and grow its four lines upward. */
@media (min-width: 941px) and (orientation: landscape) and (hover: hover) and (pointer: fine) {
  main.home-active .hero-preparedness {
    font-size: calc(clamp(21px, 1.7vw, 24px) + 2px);
    margin-top: -8px;
  }
}

/* Center the requested actions on review pages 11–13, 23, 24, 26, 29, 30 and 31. */
.recovery-panel > .actions,
#account-recovery-form > .actions,
#reset-password-form > .actions,
.phone-verification-page #phone-send-form > .actions,
.phone-verification-page .login-panel > .actions,
#create-profile-form > .actions,
#edit-customer-profile-form > .actions,
.identity-provider-panel > .platform-access-completed-list + .actions,
#profile-passphrase-form > .actions,
#form-a-form > .actions {
  justify-content: center;
}

/* Page 25: match the existing panel divider without moving its content. */
.profile-review-page:not(.bondsman-profile-review-page):not(.family-profile-review-page) .profile-review-copy h2 {
  box-shadow: 0 1px 0 var(--line);
}

/* Pages 27 and 36: center Cancel below the existing primary action. */
#account-deletion-form > .actions,
.emergency-contact-form > .actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: start;
}
#account-deletion-form > .actions > [data-dismiss-control],
.emergency-contact-form > .actions > [data-dismiss-control] {
  justify-self: center;
}


.emergency-contact-forms { display: grid; gap: 24px; }

/* Center the paired actions after the logo on portrait tablets and landscape phones. */
@media (min-width: 651px) and (orientation: portrait),
       (max-width: 1100px) and (max-height: 500px) and (orientation: landscape) {
  main.home-active .hero-actions-after-logo > .hero-login-actions {
    position: static !important;
    left: auto !important;
    right: auto !important;
    width: max-content !important;
    max-width: calc(100vw - 32px) !important;
    margin: 0 auto !important;
    transform: none !important;
    translate: none !important;
    grid-column: 1 / -1;
    justify-self: center !important;
  }
}

/* Wider portrait tablets also keep the logo and actions in one centered column. */
@media (min-width: 1101px) and (orientation: portrait) {
  main.home-active .hero-actions-after-logo {
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto;
    min-height: 0;
    row-gap: 12px;
    padding-bottom: 70px;
  }
  main.home-active .hero-actions-after-logo .hero-copy {
    height: auto;
  }
  main.home-active .hero-actions-after-logo > .shield-stage {
    min-height: 390px;
    margin: 0;
  }
}
