:root {
  --navy:#070f38;
  --blue:#083d75;
  --green:#078b13;
  --muted:#d0dbe5;
  --focus:#f5c843;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--navy);
  background:#fff;
  font-synthesis:none
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  font-size:16px;
  line-height:1.35
}
a {
  color:inherit
}
button,a,input {
  touch-action:manipulation
}
button {
  font:inherit
}
a,button {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:5px
}
section,article,footer {
  scroll-margin-top:24px
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-weight:800;
  line-height:1.08
}
button {
  cursor:pointer
}
.skip-link {
  position:fixed;
  left:15px;
  top:-90px;
  z-index:100;
  background:#fff;
  padding:15px;
  color:#070f38
}
.skip-link:focus {
  top:10px
}
.site-header {
  background:#fff
}
.header-inner {
  max-width:1536px;
  margin:auto;
  min-height:77px;
  padding:6px 2.8% 6px 3.6%;
  display:flex;
  align-items:center;
  gap:30px
}
.brand {
  flex:0 0 325px;
  text-decoration:none
}
.logo-crop {
  display:block;
  width:100%;
  aspect-ratio:337/72;
  position:relative;
  overflow:hidden
}
.logo-crop img {
  position:absolute;
  width:455.786%;
  height:auto;
  max-width:none;
  left:-14.243%;
  top:0
}
nav {
  display:flex;
  flex:1;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  white-space:nowrap
}
nav a {
  font-size:15px;
  text-decoration:none;
  position:relative;
  padding:15px 0;
  font-weight:600
}
nav a:hover {
  color:#0767ac
}
nav a.active:after {
  content:'';
  height:3px;
  background:#1468b0;
  border-radius:10px;
  position:absolute;
  bottom:4px;
  left:0;
  right:0
}
.button {
  min-height:46px;
  padding:9px 24px;
  display:inline-flex;
  gap:12px;
  justify-content:center;
  align-items:center;
  text-align:center;
  border-radius:12px;
  font-size:19px;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  border:2px solid transparent;
  transition:background .15s,box-shadow .15s
}
.button:hover {
  box-shadow:0 4px 15px #0002
}
.green {
  color:#fff;
  border-color:#41b824;
  background:linear-gradient(165deg,#159607,#00840c)
}
.green:hover {
  background:#06730d
}
.header-cta {
  font-size:16px;
  border-radius:6px;
  white-space:nowrap;
  min-height:44px;
  padding:8px 14px
}
.icon {
  width:50px;
  height:50px;
  flex-shrink:0
}
.header-cta .icon {
  width:24px;
  height:24px
}
.menu-toggle {
  display:none
}
.hero {
  color:#fff;
  background:radial-gradient(ellipse at 80% 20%,#0867bd66,transparent 50%),linear-gradient(150deg,#042544 0%,#073b7d 56%,#05254c 100%);
  position:relative;
  overflow:hidden
}
.hero:after {
  content:'';
  position:absolute;
  pointer-events:none;
  width:85%;
  height:130px;
  background:#0877d31a;
  transform:rotate(-15deg);
  right:-12%;
  top:35%;
  border-radius:50%
}
.hero-inner {
  position:relative;
  z-index:1;
  max-width:1536px;
  margin:auto;
  padding:23px 2.1% 20px 5.3%;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1.13fr) minmax(220px,.58fr);
  gap:10px;
  align-items:center;
  min-height:293px
}
.hero h1 {
  font-size:clamp(35px,3.05vw,49px);
  letter-spacing:-1.2px;
  line-height:1.04;
  max-width:660px
}
.hero-copy {
  position:relative
}
.green-swoosh {
  width:120px;
  height:9px;
  border-top:6px solid #5ddd16;
  border-radius:50%;
  margin:3px 0 10px 30%;
  transform:rotate(-2deg)
}
.hero-copy p {
  font-size:20px;
  line-height:1.3;
  max-width:650px
}
.hero-actions {
  display:flex;
  gap:16px;
  margin-top:21px;
  flex-wrap:wrap
}
.outline-light {
  border-color:#fff;
  background:#05264580;
  color:#fff;
  font-weight:500
}
.outline-light:hover {
  background:#092d58
}
.play {
  border-radius:50%;
  width:27px;
  height:27px;
  background:#fff;
  color:#082d55;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  font-size:15px;
  padding-left:3px
}
.device-crop {
  width:100%;
  aspect-ratio:526/280;
  position:relative;
  overflow:hidden;
  mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent)
}
.device-crop img {
  position:absolute;
  width:292.015%;
  height:auto;
  max-width:none;
  left:-136.122%;
  top:-31.429%
}
.hero-checklist {
  list-style:none;
  margin:0;
  padding:18px 19px;
  background:linear-gradient(130deg,#f7fcff,#e1efff);
  color:var(--navy);
  border-radius:13px;
  box-shadow:0 7px 22px #001b4230;
  font-weight:700;
  font-size:18px
}
.hero-checklist li {
  position:relative;
  padding-left:34px;
  line-height:1.25;
  margin:0 0 16px;
  letter-spacing:-.5px
}
.hero-checklist li:last-child {
  margin-bottom:0
}
.hero-checklist li:before {
  content:'✓';
  width:23px;
  height:23px;
  background:#079b15;
  color:white;
  border-radius:50%;
  position:absolute;
  left:0;
  top:0;
  text-align:center;
  font-size:20px;
  line-height:23px
}
.benefits {
  background:linear-gradient(#f8fbff,#eaf3fb)
}
.benefit-grid {
  max-width:1536px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  padding:20px 4%;
  gap:0
}
.benefit {
  display:flex;
  align-items:flex-start;
  gap:20px;
  padding:0 24px 0 36px;
  border-right:1px solid #a8b9c9
}
.benefit:first-child {
  padding-left:16px
}
.benefit:last-child {
  border-right:0;
  padding-right:0
}
.benefit .icon {
  color:#174e70;
  width:54px;
  height:54px
}
.benefit h2 {
  font-size:20px;
  letter-spacing:-.55px;
  margin-bottom:5px
}
.benefit p {
  font-size:16px;
  color:#080d1a;
  line-height:1.32
}
.plans {
  background:radial-gradient(ellipse at center,#fff 40%,#f5faff);
  padding:12px 28px 22px
}
.section-heading {
  text-align:center;
  margin:0 auto 27px
}
.section-heading h2 {
  font-size:40px;
  letter-spacing:-.7px;
  margin-bottom:3px
}
.section-heading p {
  font-size:17px
}
.plan-grid {
  max-width:1234px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:27px
}
.plan {
  border:2px solid #d1dde6;
  border-radius:15px;
  position:relative;
  display:flex;
  flex-direction:column;
  background:linear-gradient(120deg,#fff,#f7fbfe);
  box-shadow:0 1px 2px #0c3a5520;
  overflow:visible
}
.plan-heading {
  padding:8px 36px 6px;
  min-height:86px;
  border-radius:12px 12px 0 0
}
.plan h3 {
  font-size:30px;
  letter-spacing:-.5px;
  margin-bottom:1px
}
.plan-heading p {
  font-size:16px;
  line-height:1.22
}
.plan-content {
  padding:0 36px 15px;
  flex:1;
  display:flex;
  flex-direction:column
}
.price {
  display:flex;
  align-items:baseline;
  gap:6px;
  margin-bottom:5px;
  line-height:1.1
}
.price strong {
  font-size:44px;
  letter-spacing:-1px
}
.price span {
  font-size:20px;
  font-weight:700
}
.plan-features {
  list-style:none;
  padding:0;
  margin:0 0 17px;
  flex:1
}
.plan-features li {
  padding-left:26px;
  position:relative;
  font-size:14.5px;
  line-height:1.4;
  margin:3px 0
}
.plan-features li:before {
  content:'✓';
  color:#008d17;
  font-size:23px;
  font-weight:800;
  position:absolute;
  left:0;
  top:-5px
}
.plan .button {
  width:100%;
  min-height:42px;
  border-radius:13px;
  padding:6px 15px;
  font-size:20px
}
.outline {
  border-color:#123d69;
  background:transparent
}
.outline:hover {
  background:#e5f0fa
}
.plan.featured {
  border-color:#087dbb
}
.featured .plan-heading {
  background:linear-gradient(150deg,#006aa5,#063b79);
  color:#fff
}
.popular {
  position:absolute;
  z-index:2;
  top:-17px;
  left:50%;
  transform:translateX(-50%);
  background:linear-gradient(#16a214,#078014);
  border:1px solid #d3ebc7;
  border-radius:20px;
  padding:5px 18px;
  color:#fff;
  font-size:14px;
  font-weight:700;
  white-space:nowrap
}
.services {
  background:linear-gradient(120deg,#06335e,#02284f);
  color:#fff;
  padding:19px 4% 30px
}
.service-grid {
  max-width:1420px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0
}
.service {
  display:flex;
  gap:24px;
  padding:0 34px;
  border-right:1px solid #b9cfdf
}
.service:first-child {
  padding-left:6px
}
.service:last-child {
  border:0;
  padding-right:0
}
.service .icon {
  width:47px;
  height:47px
}
.service h2 {
  font-size:20px;
  letter-spacing:-.7px;
  margin-bottom:4px
}
.service p {
  font-size:15px;
  line-height:1.25
}
dialog {
  border:0;
  border-radius:18px;
  width:min(620px,calc(100% - 32px));
  padding:38px;
  color:var(--navy);
  box-shadow:0 20px 80px #0005
}
dialog::backdrop {
  background:#01162ccc
}
dialog h2 {
  font-size:28px;
  padding-right:25px;
  margin-bottom:22px
}
dialog p {
  margin-top:8px
}
.close-dialog {
  position:absolute;
  right:13px;
  top:9px;
  background:transparent;
  color:var(--navy);
  border:0;
  font-size:30px;
  width:44px;
  height:44px
}
.dialog-services {
  display:grid;
  gap:22px
}
.dialog-services h3 {
  font-size:20px
}
#selected-plan:empty {
  display:none
}
.wp-content {
  max-width:1170px;
  padding:40px 24px;
  margin:auto
}
.wp-content img {
  max-width:100%;
  height:auto
}
@media(min-width:1600px) {
  .hero-inner {
    min-height:330px
  }
  .plans {
    padding-top:24px;
    padding-bottom:32px
  }
  .section-heading {
    margin-bottom:34px
  }
  .plan-heading {
    padding-top:13px
  }
  .plan-content {
    padding-bottom:20px
  }
  .plan-features li {
    font-size:16px
  }
  .benefit-grid {
    padding-top:26px;
    padding-bottom:26px
  }
  .services {
    padding-top:26px
  }
}
@media(max-width:1450px) {
  .header-inner {
    gap:20px;
    padding-left:24px;
    padding-right:24px
  }
  .brand {
    flex-basis:270px
  }
  nav {
    gap:16px
  }
  nav a {
    font-size:13px
  }
  .header-cta {
    font-size:14px
  }
  .hero-inner {
    grid-template-columns:1.4fr 1.05fr .65fr;
    padding-left:4%;
    gap:8px
  }
  .hero h1 {
    font-size:39px
  }
  .hero-copy p {
    font-size:17px
  }
  .hero-actions {
    gap:12px
  }
  .hero-actions .button {
    font-size:16px;
    padding:9px 15px
  }
  .hero-checklist {
    font-size:16px;
    padding:18px 13px
  }
  .benefit {
    padding:0 20px;
    gap:13px
  }
  .benefit h2 {
    font-size:18px
  }
  .benefit p {
    font-size:15px
  }
  .benefit .icon {
    width:43px;
    height:43px
  }
  .plan-heading {
    padding-left:26px;
    padding-right:26px
  }
  .plan-content {
    padding-left:26px;
    padding-right:26px
  }
  .service {
    padding:0 23px;
    gap:17px
  }
  .service h2 {
    font-size:18px
  }
}
@media(max-width:1170px) {
  .header-inner {
    flex-wrap:wrap;
    gap:12px;
    min-height:85px
  }
  .brand {
    margin-right:auto;
    flex-basis:285px
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:12px;
    background:#fff;
    border:1px solid #bdccda;
    border-radius:7px;
    padding:10px;
    color:var(--navy);
    min-height:44px
  }
  .header-cta {
    font-size:15px;
    order:1
  }
  .menu-toggle {
    order:2
  }
  nav {
    display:none;
    order:3;
    flex-basis:100%;
    padding:10px 0 15px;
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:14px 28px
  }
  nav.is-open {
    display:flex
  }
  nav a {
    font-size:16px
  }
  .hero-inner {
    padding:32px 4%;
    grid-template-columns:1.2fr 1fr;
    gap:12px 22px
  }
  .hero h1 {
    font-size:43px
  }
  .hero-copy p {
    font-size:18px
  }
  .hero-checklist {
    grid-column:1/-1;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:13px 24px;
    padding:17px
  }
  .hero-checklist li {
    margin:0
  }
  .benefit-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:25px;
    padding:25px 4%
  }
  .benefit {
    border:0;
    padding:0!important;
    gap:18px
  }
  .benefit h2 {
    font-size:20px
  }
  .benefit p {
    font-size:16px
  }
  .section-heading h2 {
    font-size:36px
  }
  .plans {
    padding-top:24px
  }
  .plan-grid {
    gap:18px
  }
  .plan-heading {
    padding:12px 20px;
    min-height:113px
  }
  .plan-content {
    padding:0 20px 20px
  }
  .plan-heading p {
    font-size:15px
  }
  .price strong {
    font-size:38px
  }
  .price span {
    font-size:17px
  }
  .plan-features li {
    font-size:14px
  }
  .service-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:27px
  }
  .service {
    padding:0!important;
    border:0;
    gap:20px
  }
  .services {
    padding:30px 4%
  }
  .service h2 {
    font-size:20px
  }
  .service p {
    font-size:16px
  }
}
@media(max-width:700px) {
  .header-inner {
    padding:8px 18px;
    gap:9px
  }
  .brand {
    flex-basis:245px;
    max-width:calc(100% - 85px)
  }
  .header-cta {
    display:none
  }
  .menu-toggle {
    font-size:14px;
    padding:9px;
    gap:7px
  }
  .hero-inner {
    grid-template-columns:1fr;
    padding:30px 22px 24px;
    gap:22px
  }
  .hero h1 {
    font-size:38px;
    letter-spacing:-.9px;
    max-width:560px
  }
  .hero-copy p {
    font-size:18px;
    line-height:1.45
  }
  .green-swoosh {
    margin-top:7px;
    margin-bottom:15px;
    margin-left:30%
  }
  .hero-actions {
    gap:12px;
    margin-top:22px
  }
  .hero-actions .button {
    min-height:48px;
    padding:11px 16px;
    font-size:17px
  }
  .device-crop {
    max-width:530px;
    margin:0 auto;
    order:2
  }
  .hero-checklist {
    order:3;
    justify-content:flex-start;
    gap:14px 20px;
    padding:21px;
    font-size:17px
  }
  .hero-checklist li {
    flex-basis:calc(50% - 10px);
    letter-spacing:-.3px
  }
  .benefit-grid {
    padding:25px 23px;
    gap:24px 18px
  }
  .benefit {
    gap:10px
  }
  .benefit .icon {
    width:32px;
    height:32px
  }
  .benefit h2 {
    font-size:18px
  }
  .benefit p {
    font-size:15px
  }
  .plans {
    padding:28px 22px 30px
  }
  .section-heading {
    margin-bottom:29px
  }
  .section-heading h2 {
    font-size:34px
  }
  .section-heading p {
    font-size:16px;
    line-height:1.5;
    margin-top:10px
  }
  .plan-grid {
    grid-template-columns:1fr;
    gap:29px;
    max-width:470px
  }
  .plan-heading {
    padding:18px 26px 8px;
    min-height:0
  }
  .plan h3 {
    font-size:31px
  }
  .plan-heading p {
    font-size:16px;
    line-height:1.4
  }
  .plan-content {
    padding:8px 26px 24px
  }
  .price strong {
    font-size:44px
  }
  .price span {
    font-size:20px
  }
  .plan-features {
    margin-top:9px;
    margin-bottom:20px
  }
  .plan-features li {
    font-size:16px;
    margin:6px 0
  }
  .plan .button {
    min-height:46px
  }
  .featured .plan-heading {
    padding-top:20px;
    padding-bottom:15px
  }
  .services {
    padding:30px 24px
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:25px;
    max-width:470px
  }
  .service .icon {
    width:42px;
    height:42px
  }
  .service h2 {
    font-size:20px
  }
  .service p {
    font-size:16px
  }
  dialog {
    padding:28px 24px
  }
  .hero-actions .button {
    flex:1 1 220px
  }
}
@media(max-width:380px) {
  .hero h1 {
    font-size:34px
  }
  .hero-checklist li {
    flex-basis:100%
  }
  .benefit-grid {
    grid-template-columns:1fr
  }
  .brand {
    max-width:calc(100% - 78px)
  }
  .menu-toggle {
    font-size:13px
  }
  .plan-content,.plan-heading {
    padding-left:20px;
    padding-right:20px
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important
  }
}
@media print {
  .menu-toggle,dialog {
    display:none
  }
  .hero,.services {
    print-color-adjust:exact
  }
  .plan {
    break-inside:avoid
  }
  nav {
    display:none
  }
  .hero-inner {
    grid-template-columns:1fr
  }
  .device-crop {
    display:none
  }
}
/* Isolate the illustrated devices from the supplied design. */
.device-crop {
  mask-image:none;
  clip-path:polygon(1% 89%,10% 89%,10% 9%,11% 5%,13% 4%,82% 4%,85% 6%,85.5% 20%,94% 20%,98% 22%,99% 26%,99% 92%,98% 96%,95% 97%,79% 97%,75% 96%,6% 96%,1% 94%)
}
@media(max-width:700px) {
  .header-inner:has(nav.is-open) .header-cta {
    display:inline-flex;
    order:4;
    margin:0 0 12px
  }
  .hero-checklist li {
    min-width:0
  }
  .hero-checklist {
    column-gap:16px
  }
  .benefit-grid {
    grid-template-columns:1fr
  }
  .benefit .icon {
    width:42px;
    height:42px
  }
  .benefit {
    gap:16px
  }
}

/* Five-page site: readable content and shared navigation. */
.wp-content { max-width:860px; min-height:55vh; padding:clamp(32px,5vw,72px) 24px; line-height:1.75; font-size:18px; }
.wp-content h1 { font-size:clamp(34px,5vw,54px); line-height:1.12; margin-bottom:28px; letter-spacing:-1px; }
.wp-content h2 { font-size:clamp(23px,3vw,29px); line-height:1.25; margin:36px 0 14px; }
.wp-content h3 { margin:28px 0 12px; line-height:1.3; }
.wp-content p { margin:0 0 20px; }
.wp-content a { color:#07518a; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.wp-content a:hover { color:#06335e; }
.wp-content a:focus-visible { outline-color:#07518a; }
.law-footer { background:#061b34; color:#fff; padding:32px 24px; }
.law-footer-inner { max-width:1170px; margin:auto; }
.law-footer p { line-height:1.65; margin-bottom:12px; }
.law-footer-nav { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:6px 26px; white-space:normal; padding:4px 0 12px; }
.law-footer-nav a { color:#fff; font-size:15px; padding:10px 0; text-decoration:underline; text-underline-offset:4px; }
.law-footer-nav a:hover { color:#b8e2ff; }
.law-copyright { color:#c3d3e3; font-size:14px; }
@media(max-width:700px) { .wp-content { font-size:17px; } .law-footer-nav { display:flex; } }